References - DEPRECATED
Standards and style
Embedded operating systems
Note: Since GNU/Linux derived embedded systems are intended for a different class of applications, they currently do not make the subject of this project.
Written in C++
-
eCos - The embedded configurable operating system by Cygnus Solutions (Wikipedia)
-
ScmRTOS - Single-Chip Microcontroller Real-Time Operating System
-
Miosix embedded OS - a kernel designed to run on 32bit microcontrollers; supports a priority-based scheduler, an innovative scheduler based on control theory which is the subject of academic research, and the EDF scheduler
Written in C
-
µC/OS-III - µC/OS-III is a highly portable, ROMable, scalable, preemptive, real-time, deterministic, multitasking kernel for microprocessors, microcontrollers and DSPs, by Micrium.
-
FreeRTOS - is probably the most popular open source, cross platform, real time operating system, available from Real Time Engineers Ltd.
-
CMSIS with RTOS API - CMSIS 3.0 is expanded with a standardized API for Real-Time Operating System (RTOS) kernels and support for System View Description (SVD) XML files; Feabhas PDF
-
Contiki - The Open Source OS for the Internet of Things
-
TNKernel - a compact and very fast real-time kernel for the embedded 32/16/8 bits microprocessors inspired by the μITRON 4.0 specification
-
NuttX - the NuttX Real-Time Operating System with TCP/IP, USB and more
-
ChibiOS/RT - a complete, portable, open source, compact and extremely fast RTOS (German flavour)
-
TinyOS - an open source, BSD-licensed operating system designed for low-power wireless devices
-
RT-Thread - an open source real-time operating system for embedded devices
-
uKOS-II - RTOS µKernel
Quantum Leaps (QP)
QP Active Object (Actor) Frameworks is a SourceForge project. The QP family consists of QP/C, QP/C++, and QP-nano frameworks, which are all strictly quality controlled, superbly documented, and commercially licensable. It is backed by Quantum Leaps LLC who also published a very good book Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems.
C/C++ language & libraries
-
GNU Tools for ARM Embedded Processors - Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors (Cortex-M0/M0+/M3/M4, Cortex-R4/R5)
-
C++ reference - a wiki with lots of C++ language and libraries references
-
“libc++” C++ Standard Library - a LLVM sub-project, also available via ViewVC
-
libstdc++-v3 - The GNU Standard C++ Library v3, part of the GNU GCC
-
GNU Common C++ and GNU uCommon C++ - are both very portable and highly optimized class framework for writing C++ applications; stream classes are not included;
-
Apache C++ Standard Library (STDCXX) - also available via ViewVC
-
uClibc++ - an embedded C++ library, also available for Git browse; a good inspiration for embedded systems;
-
uSTL - the small STL library; a port of usTL 1.3 is also available on eCos; SourceForge, including Git browse
-
boost - portable C++ source libraries; all kind of libraries, interesting to look at, but sometimes quite complicated;
-
Platinum - Platinum (Pt) is a comprehensive C++ framework, which allows developers to write high-performance applications for many platforms with only one codebase.
-
Dinkum EC++ Library - a conforming implementation of the Embedded C++ library, as specified by the Embedded C++ Technical Committee.
-
Thumb2 Newlib Toolchain - a GCC/Newlib based toolchain project
-
libopencm3 - a free firmware library for various ARM Cortex-M3 microcontrollers including ST STM32, (a very elaborate doxygen configuration)
-
STM32plus - a C++ library for STM32
-
libstm32pp - A template peripheral library for the STM32 microcontrollers, written in C++
TCP/IP libraries
-
lwIP - A Lightweight TCP/IP stack
-
uIP - The uIP Embedded TCP/IP Stack
-
UDP/IP - a Tiny Embedded UDP/IP Stack Implementation for FreeRTOS
-
Practical C++ Sockets - provides wrapper classes for a subset of the Berkeley C Socket API for TCP and UDP sockets
-
C/C++ Sockets Library - The ultimate socket library for C and C++
-
Polar SSL - Straighforward, Secure Communication
-
CycloneTCP - TCP/IP Solutions for Embedded Systems
Testing
-
Jenkins - an extendable open source continuous integration server
-
JUnit - the common Java framework for unit testing
-
CppUnit - C++ port of JUnit
-
CppTest - a portable and powerful, yet simple, unit testing framework for handling automated tests in C++
-
xUnit++ - a unit testing platform for C++
-
Google Test - a great unit testing for C++
-
Google Mock - adds Hamcrest matchers and mocks
Miscellaneous
-
Doxygen - the de facto standard tool for generating documentation from annotated C++ sources
Hardware
Development boards
-
LeafLabs - a company that builds Maple, an ARM Cortex M3 board, programmed using an Arduino-like development environment.
Books


Survey Paused
You have paused the survey. If you wish to continue the survey, please click on 'Back' to go back to the previous page. If you want to exit, please click 'Exit'.
You have paused the survey. If you wish to continue the survey, please click on 'Back' to go back to the previous page. If you want to exit, please click 'Exit'.


RT @brian_pearce: "Metrics are like the rumble strip on a hw.  It wakes you up before you hit a wall" - @kerrizor #roa3
3/7/2013, 3:06:22 PM
Favs: 0
Retweets: 0
link


Welcome to EndPwn.
We seem to be having some technical difficulties.
Our main site seems to be inaccessable.
Discord will start momentarily.
If this is in error, press
here
to load the site.


The Search Framework Java API is used to write a plug-in application for Google
Earth or Google Maps to search a custom data source. The plug-in creates requests
and responses in the framework's Common Search Format, a generic format that
can be adapted to deal with spatial data from any data store. For further information,
see the Search Framework API Developer Guide.
|
Class Summary |
| GeomMetadata |
A simple data structure for holding per-geometry metadata such as:
name - a label for the geometry
snippet - a short piece of text to associate with the geometry
description - text (possibly lengthy) to associate with the geometry
|
| KmlPluginPreferences |
Abstract class for pluging preferences for general purpose KML returned by
the various Google Earth Search plugins. |
| KmlProperties |
KmlProperties is a container of KML property keys for use within the search
framework. |
| KmlSearchPlugin |
This abstraction provides Kml style search response using
KmlPluginPreferences. |
| PluginPreferences |
Abstract class for preferences for the KML returned by
the various plugins. |
| SearchContainer |
A SearchContainer is the object that stores a single search request issued by
any supported interface and stores any number of search responses to this
request. |
| SearchRequest |
A SearchRequest is the object that encapsulates the parameters from search requests issued by supported interfaces. |
| SearchResponse |
A SearchResponse is an object that represents one or many result sets as created by a single search plug-in |
| StyleData |
A class for representing styles to associate with each geometry |


Project repository: https://github.com/gmdayley/vr-fstree
First person puzzle game
Inspired by Antichamber
Unrealistic levels
Minimal, low poly graphics
Levels designed for HTC Vive
The Tower idea:
Levels are connected by an elevator
Completing a level will open elevator doors
class GameManager
{
var mIsVROn;
var mGameStatus;
var mCamera
var mSoundManager;
var mInputManager;
var mAnimator;
...
XVRRendering(eye);
Render();
UpdateLogic(dt);
};
class InputManager
{
var mIsVRon;
var mManager;
var mCamera;
var mPreviousCameraPosition;
// Public functions
UpdateCamera();
UpdateControllers();
IsPressingPrimaryButton();
IsPressingSecondaryButton();
IsGripPressed();
GetController();
HasPressedMenuButton();
VibrateController();
GetPlayAreaSize();
};
Depending on the input device found the input manager will manage input from:
Each level has a predefined structure
class Level {
/* Variables */
Init();
Render();
UpdateLogic();
IsPointedPositionValid();
DrawHUD();
IsLevelCompleted();
SetupOpenglLights();
/* Level-specific functions */
};
function Level::Level{}
Common classes:
This level will show a list of all the levels allowing the player to choose one of the levels to
play.
Classes used:
Pecularities:
A room with a 4-way portal cube where each side shows a different view
Pecularities:
Drawing Level. The player will have to connect the light cones by drawing in the air
Classes and Shaders:
Pecularities:
Drawing Level. The player will have to connect the opposite light cones by drawing in the air
Classes and Shaders:
Pecularities:
The player will have to walk through 5 coloured paths that will move each set of colored flying objects to form a code digit
Classes and Shaders:
A room with 4 walls full of blocks. Pressing all of the extruded blocks will open the elevator
Peculiarities:
Classes and Shaders:
FPS Style. Targets will randomly spawn around the room. Shooting them without getting player life to 0 will unlock the elevator
Classes and Shaders:
Final Level. Flying object and numbers will move according to player movements. Typing the correct code will unlock the ending game animation
Pecularities:
Classes and Shaders:
FrancoDLL.dll
XVR - OpenVR interaction
Project repository: https://github.com/gmdayley/vs-fstree
http://tinyurl.com/sortvr


IAAC IN THE MOON
- Iaac students ready for the next step!
- A group of worldwide students have jumped into the crazy adventure of overpopulate the moon in a
- small crater with "just" 150km diameter. Together with SPACE X, IaaC will be preparing soon the first
- tourist spacetrip to the new town in Petavius!
On Archdaily or Dezeen it is possible to find some of the most recent conceptual projects in the moon.
Over the last years many studies have been brough to light by many architects.
Elon Musk placing the first stone for the project. Kind of.


Contracts
Two Ring Software offers two decades of programming experience, spanning:
- iPhone, Watch and TV apps and SDKs
- fullstack deployment with ES/PHP/Ruby/Python
- cloud architecture on Heroku and AWS
- scientific applications of Boost/CGAL/Matlab
- embedded programming on Arduino/FPGAs
- good old-fashioned hacking on TI-85 calculators
Reach out today to get started on your project!
<EMAIL_ADDRESS>(434) 879-6103
For a more complete list of recent work, please see my
résumé (PDF).
Andrew at Two Ring Software was able to jump right into our project and quickly produce quality results. His expertise in the Apple ecosystem, low-level technologies, SDK development and UI/UX interactions combined to quickly deliver what we needed. We loved working and interacting with him and hope to do so again soon!
Heather Ryan, EVP & COO, 121nexus
Over the years, Andrew has provided guidance, and himself grown, in all aspects of the development lifecycle. He brings impressive knowledge and expertise to the table, and is just great to work with. With Two Ring Software, you'll get the full package to get your app up and running. You’ll be amazed with the results.
Ed Davidson, PharmD, MPH, Partner, Insight Therapeutics


Slonik is a commandline utility designed specifically to setup and modify configurations of the Slony-I replication system.
This document is meant as a developer syntax-booklet, not as a manual on how to configure and set up a replication system.
Back to Index
The slonik commandline utility is supposed to be used embedded into shell scripts and reads commands from files or stdin (via here documents for example). Nearly all of the real configuration work is done by calling stored procedures after loading the Slony-I support base into a database. You may find documentation for those procedures in the Slony-I Schema Documentation , as well as in comments associated with them in the database.
Slonik was created because:
The slonik command language is format free. Commands begin with keywords and are terminated with a semicolon. Most commands have a list of parameters, some of which have default values and are therefore optional. The parameters of commands are enclosed in parentheses. Each option consists of one or more keywords, followed by an equal sign, followed by a value. Multiple options inside the parentheses are separated by commas. All keywords are case insensitive. The language should remind the reader of SQL.
Option values may be:
Comments begin at a hash sign (#) and extend to the end of the line.
Commands can be combined into groups of commands with optional
on error and on success conditionals.
The syntax for this is:
try {
<commands>
}
[on error { <commands> }]
[on success { <commands> }]
Those commands are grouped together into one transaction per
participating node.
Back to Index
The following commands must appear as a "preamble" at the very top of every slonik command script. They do not cause any direct action on any of the nodes in the replication system, but affect the execution of the entire script.
Must be the very first command in every slonik script. Defines the namespace in which all Slony-I specific functions, procedures, tables and sequences are defined. The namespace name is built by prefixing the given string literal with an underscore. This namespace will be identical in all databases that participate in the same replication group.
No user objects are supposed to live in this namespace and the namespace is not allowed to exist prior to adding a database to the replication system. Thus, if you add a new node using pg_dump -s on a database that is already in the cluster of replicated databases, you will need to drop the namespace via the SQL command DROP SCHEMA _testcluster CASCADE; .
CLUSTER NAME = 'testcluster';
Back to Index
Describes how the slonik utility can reach a nodes database in the cluster from where it is run (likely the DBA's workstation). The conninfo string is the string agrument given to the PQconnectdb() libpq function. The user as to connect must be the special replication superuser, as some of the actions performed later may include operations that are strictly reserved for database superusers by PostgreSQL.
The slonik utility will not try to connect to the databases unless some subsequent command requires the connection.
Note: As mentioned in the original documents, Slony-I is designed as an enterprise replication system for data centers. It has been assumed throughout the entire development that the database servers and administrative workstations involved in replication and/or setup and configuration activities can use simple authentication schemes like trust. Alternatively, libpq can read passwords from .pgpass .
Note: If you need to change the DSN information for a node, as would happen if the IP address for a host were to change, you may submit the new information using this command, and that configuration will be propagated. Existing slon processes will need to be restarted in order to become aware of the configuration change.
NODE 1 ADMIN CONNINFO = 'dbname=testdb host=server1 user=slony';
Back to Index
Prints the string literal on standard output.
ECHO 'Node 1 initialized successfully';
Back to Index
Terminates script execution immediately, rolling back every open transaction on all database connections. The slonik utility will return the given value as its program termination code.
EXIT 0;
Back to Index
Initialize the first node in a new Slony-I replication cluster. The initialization process consists of creating the cluster namespace, loading all the base tables, functions, procedures and initializing the node.
For this process to work, the SQL scripts of the Slony-I system must be installed on the DBA workstation (the computer currently executing the slonik utility), while on the system where the node database is running the shared objects of the Slony-I system must be installed in the PostgreSQL library directory. Also the procedural language PL/pgSQL is assumed to be installed in the target database already.
| ID = <ival> | The unique, numeric ID number of the node. This MUST be 1. |
| COMMENT = <string> | A descriptive text added to the node entry in the table sl_node. |
INIT CLUSTER (
ID = 1,
COMMENT = 'Node 1'
);
Back to Index
Initialize a new node and add it to the configuration of an existing cluster.
The initialization process consists of creating the cluster namespace in the new node (the database itself must already exist), loading all the base tables, functions, procedures and initializing the node. The existing configuration of the rest of the cluster is copied from the event node.
The same installation requirements as for the init cluster command apply.
| ID = <ival> | The unique, numeric ID number of the new node. |
| COMMENT = <string> | A descriptive text added to the node entry in the table sl_node. |
| SPOOLNODE = <boolean> | Specifies that the new node is a virtual spool node for file archiving of replication log. If true slonik will not attempt to initialize a database with the replication schema. |
| EVENT NODE = <ival> | (Optional) The ID of the node used to create the configuration event that tells all existing nodes about the new node. Default value is 1. |
STORE NODE (
ID = 2,
COMMENT = 'Node 2'
);
Back to Index
Drop a node. This command removes the specified node entirely from the replication systems configuration. If the replication daemon is still running on that node (and processing events), it will attempt to uninstall the replication system and terminate itself.
| ID = <ival> | Node ID of the system to remove. |
| EVENT NODE = <ival> | Node ID of the system to generate the event. |
DROP NODE (
ID = 2
);
Back to Index
Restores all tables to the unlocked state, with all original user triggers, constraints and rules, eventually added Slony-I specific serial key columns dropped and the Slony-I schema dropped. The node becomes a standalone database. The data is left untouched.
| ID = <ival> | Node ID of the system to uninstall. |
UNINSTALL NODE (
ID = 3
);
Back to Index
Causes an eventually running replication daemon on the specified node to shutdown and restart itself. Theoretically this command should be obsolete. In practice, TCP timeouts can delay critical configuration changes to actually happen in the case where a former forwarding node failed and needs to be bypassed by subscribers.
RESTART NODE 2;
Back to Index
Configures how the replication daemon of one node connects to the database of another node. If the replication system is supposed to use a special backbone network segment, this is the place to user the special IP addresses or hostnames. An existing configuration can be overwritten.
The conninfo string must contain all information to connect to the database as the replication superuser. The names server or client have nothing to do with the particular role of a node within the cluster configuration. It should be simply viewed as "the server has the message or data that the client is supposed to get". For a simple 2 node setup, paths into both directions must be configured.
It does not do any harm to configure path information from every node to every other node (full cross product). The connections are not established unless they are required to actually transfer events or confirmations because of listen entries or data because of subscriptions.
| SERVER = <ival> | Node ID of the database to connect to. |
| CLIENT = <ival> | Node ID of the replication daemon connecting. |
| CONNINFO = <string> | PQconnectdb() argument to establish the connection. |
| CONNRETRY = <ival> | (Optional) Number of seconds to wait before another attempt to connect is made in case the server is unavailable. Default is 10. |
STORE PATH (
SERVER = 1,
CLIENT = 2,
CONNINFO = 'dbname=testdb host=server1 user=slony'
);
Back to Index
Remove the connection information between server and client.
| SERVER = <ival> | Node ID of the server of this connection. |
| CLIENT = <ival> | Node ID of the client. |
| EVENT NODE = <ival> | (Optional) The ID of the node used to create the configuration event that tells all existing nodes about dropping the path. Defaults to the client. |
DROP PATH (
SERVER = 1,
CLIENT = 2
);
Back to Index
A listen entry causes a node (receiver) to query an event provider for events that originate from a specific node, as well as confirmations from every existing node. It requires a path to exist so that the receiver (as client) can connect to the provider (as server).
Every node in the system must listen for events from every other node in the system. As a general rule of thumb, a subscriber (see SUBSCRIBE SET) should listen for events of the set's origin on the same provider, where it receives the data from. In turn, the origin of the data set should listen for events from the origin in the opposite direction. A node can listen for events from one and the same origin on different providers at the same time. However, to process SYNC events from that origin, all data providers must have the same or higher sync status, so this will not result in any faster replication behaviour.
| ORIGIN = <ival> | ID of the event origin the receiver is listening for. |
| PROVIDER = <ival> | (Optional) ID of the node from which the receiver gets events from the origin. Default is the origin. |
| RECEIVER = <ival> | ID of the node receiving the events. |
STORE LISTEN (
ORIGIN = 1,
RECEIVER = 2,
);
Back to Index
Remove a listen configuration entry.
| ORIGIN = <ival> | ID of the event origin the receiver is listening for. |
| PROVIDER = <ival> | (Optional) ID of the node from which the receiver gets events from the origin. Default is the origin. |
| RECEIVER = <ival> | ID of the node receiving the events. |
DROP LISTEN (
ORIGIN = 1,
RECEIVER = 2,
);
Back to Index
In the Slony-I replication system, every replicated table is required to have at least one UNIQUE constraint who's columns are declared NOT NULL. Any primary key satisfies this requirement.
As a last resort, this command can be used to add such an attribute to a table that does not have a primary key. Since this modification can have unwanted side effects, it is strongly recommended that users add a unique and not null attribute by other means.
| NODE ID = <ival> | ID of the set origin where the table will be added as set member (See SET ADD TABLE). |
| FULLY QUALIFIED NAME = <string> |
The full name of the table consisting of the schema and table name
as the expression
|
TABLE ADD KEY (
NODE ID = 1,
FULLY QUALIFIED NAME = 'public.history'
);
Back to Index
In the Slony-I replication system, replicated tables are organized in sets. As a general rule of thumb, a set should contain all the tables of one application, that have relationships. In a well designed application, this is equal to all the tables in one schema.
The smallest unit one node can subscribe for replication from another node is a set. A set always has an origin. In classical replication terms, that would be the "master." Since in Slony-I a node can be the "master" over one set, while receiving replication data in the "slave" role for another at the same time, this terminology may easily become misleading and should therefore be replaced with set origin and subscriber.
| ID = <ival> | Unique ID of the set to be created. |
| ORIGIN = <ival> | Initial origin of the set. |
| COMMENT = <string> | A descriptive text added to the set entry. |
CREATE SET (
ID = 1,
ORIGIN = 1,
COMMENT = 'Tables of ticket system'
);
Back to Index
Drop a set of tables from the Slony-I configuration. This automatically unsubscribes all nodes from the set and restores the original triggers and rules on all subscribers.
| ID = <ival> | Unique ID of the set to be dropped. |
| ORIGIN = <ival> | The current origin of the set. |
DROP SET (
ID = 5,
ORIGIN = 1
);
Back to Index
Merge a set of tables and sequences into another one. This function is a workaround for the problem that it is not possible to add tables/sequences to already-subscribed sets. One may create a temporary set, add the new objects to that, subscribe all nodes currently subscribed to the other set to this new one, and then merge the two together.
This request will fail if the two sets do not have exactly the same set of subscribers.
| ID = <ival> | Unique ID of the set to contain the union of the two separate sets. |
| ADD ID = <ival> | Unique ID of the set whos objects should be transferred. |
| ORIGIN = <ival> | The current origin of the two sets. |
MERGE SET (
ID = 2,
ADD ID = 9999,
ORIGIN = 1
);
Back to Index
Add an existing user table to a replication set. The set cannot currently be subscribed by any other node - that functionality is supported by theMERGE SET command.
| SET ID = <ival> | ID of the set to which the table is added. |
| ORIGIN = <ival> | The current origin of the set. A future version of slonik might figure out this information by itself. |
| ID = <ival> | Unique ID of the table. These ID's are not only used to uniquely identify the individual table within the replication system. The numeric value of this ID also determines the order in which the tables are locked in a LOCK SET command for example. So these numbers should represent any applicable table hierarchy to make sure the slonik command scripts do not deadlock at any critical moment. |
| FULLY QUALIFIED NAME = <string> | The full table name as described in TABLE ADD KEY. |
| KEY = { <string> | SERIAL } | (Optional) The index name that covers the unique and not null column set to be used as the row identifier for replication purposes. Or the keyword SERIAL to use the special column added with a previous TABLE ADD KEY command. Default is to use the table's primary key. The index name is not fully qualified; you must omit the namespace. |
| COMMENT = <string> | A descriptive text added to the Slony-I configuration data. |
SET ADD TABLE (
SET ID = 1,
ORIGIN = 1,
ID = 20,
FULLY QUALIFIED NAME = 'public.tracker_ticket',
COMMENT = 'Support ticket'
);
Back to Index
Add an existing user sequence to a replication set. The set cannot currently be subscribed by any other node - that functionality is supported by the MERGE SET command.
| SET ID = <ival> | ID of the set to which the sequence is added. |
| ORIGIN = <ival> | The current origin of the set. A future version of slonik might figure out this information by itself. |
| ID = <ival> | Unique ID of the sequence. |
| FULLY QUALIFIED NAME = <string> | The full sequence name as described in TABLE ADD KEY. |
| COMMENT = <string> | A descriptive text added to the Slony-I configuration data. |
SET ADD SEQUENCE (
SET ID = 1,
ORIGIN = 1,
ID = 21,
FULLY QUALIFIED NAME = 'public.tracker_ticket_id_seq',
COMMENT = 'Support ticket id sequence'
);
Back to Index
Drop an existing user table to a replication set.
Note that this action will not drop a candidate primary key created using TABLE ADD KEY .
| ORIGIN = <ival> | The current origin of the set. A future version of slonik might figure out this information by itself. |
| ID = <ival> | Unique ID of the table. |
SET DROP TABLE (
ORIGIN = 1,
ID = 20,
);
Back to Index
Drops an existing user sequence from a replication set.
| ORIGIN = <ival> | The current origin of the set. |
| ID = <ival> | Unique ID of the sequence. |
SET DROP SEQUENCE (
ORIGIN = 1,
ID = 21
);
Back to Index
Change the set a table belongs to. The current set and the new set must origin on the same node and subscribed by the same nodes. CAUTION: Due to the way subscribing to new sets works make absolutely sure that the subscription of all nodes to the sets is completely processed before moving tables. Moving a table too early to a new set causes the subscriber to try and add the table already during the subscription process, which fails with a duplicate key error and breaks replication.
| ORIGIN = <ival> | The current origin of the set. A future version of slonik might figure out this information by itself. |
| ID = <ival> | Unique ID of the table. |
| NEW SET = <ival> | Unique ID of the new set. |
SET MOVE TABLE (
ORIGIN = 1,
ID = 20,
NEW SET = 3
);
Back to Index
Change the set a sequence belongs to. The current set and the new set must origin on the same node and subscribed by the same nodes. CAUTION: Due to the way subscribing to new sets works make absolutely sure that the subscription of all nodes to the sets is completely processed before moving sequences. Moving a sequence too early to a new set causes the subscriber to try and add the sequence already during the subscription process, which fails with a duplicate key error and breaks replication.
| ORIGIN = <ival> | The current origin of the set. A future version of slonik might figure out this information by itself. |
| ID = <ival> | Unique ID of the sequence. |
| NEW SET = <ival> | Unique ID of the new set. |
SET MOVE SEQUENCE (
ORIGIN = 1,
ID = 54,
NEW SET = 3
);
Back to Index
By default, all user defined triggers and constraints are disabled on all subscriber nodes while a table is replicated. This command can be used to explicitly exclude a trigger from being disabled.
| TABLE ID = <ival> | The unique, numeric ID number of the table the trigger is defined for. |
| TRIGGER NAME = <string> | The name of the trigger as it appears in the pg_trigger system catalog. |
| EVENT NODE = <ival> | (Optional) The ID of the node used to create the configuration event that tells all existing nodes about the special trigger. Default value is 1. |
STORE TRIGGER (
TABLE ID = 2,
TRIGGER NAME = 'cache_invalidation'
);
Back to Index
Remove the special handling for the specified trigger.
| TABLE ID = <ival> | The unique, numeric ID number of the table the trigger is defined for. |
| TRIGGER NAME = <string> | The name of the trigger as it appears in the pg_trigger system catalog. |
| EVENT NODE = <ival> | (Optional) The ID of the node used to create the configuration event that tells all existing nodes about removing the special trigger. Default value is 1. |
DROP TRIGGER (
TABLE ID = 2,
TRIGGER NAME = 'cache_invalidation'
);
Back to Index
Causes a node (subscriber) to start replicating a set of tables either from the origin or from another provider node, which must be a currently forwarding subscriber itself.
The application tables contained in the set must already exist and should ideally be currently empty. The current version of Slony-I will not attempt to copy the schema of the set. The replication daemon will start copying the current content of the set from the given provider and then try to catch up with any update activity that happened during that copy process. After successful subscription, the tables are guarded on the subscriber using triggers against accidental updates by the application.
Note: If you need to revise subscription information for a node, you may submit the new information using this command, and the new configuration will be propagated throughout the replication network. The normal reason to revise this information is that you want a node to subscribe to a different provider node, or for a node to become a "forwarding" subscriber so it may later become the provider for a later subscriber.
| ID = <ival> | ID of the set to subscribe |
| PROVIDER = <ival> | Node ID of the data provider where this set is subscribed from. |
| RECEIVER = <ival> | Node ID of the new subscriber. |
| FORWARD = <boolean> | Flag whether or not the new subscriber should store the log information during replication to make it possible candidate for the provider role for future nodes. |
SUBSCRIBE SET (
ID = 1,
PROVIDER = 1,
RECEIVER = 3,
FORWARD = YES
);
Back to Index
Stops the subscriber from replicating the set. The tables are opened up for full access by the client application on the former subscriber. The tables are not truncated or otherwise modified. All original triggers, rules and constraints are restored.
Warning! Resubscribing an unsubscribed set requires a complete fresh copy of data from the provider to be transferred since the tables have been subject to possible independent modifications.
| ID = <ival> | ID of the set to unsubscribe. |
| RECEIVER = <ival> | Node ID of the subscriber. |
UNSUBSCRIBE SET (
ID = 1,
RECEIVER = 3
);
Back to Index
Guards a replication set against client application updates in preparation for a MOVE SET command.
This command must be the first in a possible statement group (try). The reason for this is that it needs to commit the changes made to the tables (adding a special trigger function) before it can wait for every concurrent transaction to finish. At the same time it cannot hold an open transaction to the same database itself since this would result in blocking itself forever.
| ID = <ival> | ID of the set to lock. |
| ORIGIN = <ival> | Node ID of the current set origin. |
LOCK SET (
ID = 1,
ORIGIN = 1
);
Back to Index
Unlock a previously locked set.
| ID = <ival> | ID of the set to unlock. |
| ORIGIN = <ival> | Node ID of the current set origin. |
UNLOCK SET (
ID = 1,
ORIGIN = 1
);
Back to Index
Changes the origin of a set from one node to another. The new origin must be a current subscriber of the set. The set must currently be locked on the old origin.
After this command, the set cannot be unlocked on the old origin any more. The old origin will continue as a forwarding subscriber of the set and the subscription chain from the old origin to the new origin will be reversed, hop by hop. As soon as the new origin has finished processing the event (that includes any outstanding sync events that happened before, i.e. fully catching up), the new origin will take over and open all tables in the set for client application update activity.
This is not failover, as it requires a fully functional old origin node.
| ID = <ival> | ID of the set to transfer. |
| OLD ORIGIN = <ival> | Node ID of the current set origin. |
| NEW ORIGIN = <ival> | Node ID of the new set origin. |
MOVE SET (
ID = 1,
OLD ORIGIN = 1,
NEW ORIGIN = 3
);
Back to Index
WARNING: This command will abandon the status of the failed node. There is no possibility to let the failed node join the cluster again without rebuilding it from scratch as a slave slave.
The failover command causes the backup node to take over all sets that currently originate on the failed node. Slonik will contact all other direct subscribers of the failed node to determine which node has the highest sync status for each set. If another node has a higher sync status than the backup node, the replication will first be redirected so that the backup node replicates against that other node, before assuming the origin role and allowing update activity.
After successful failover, all former direct subscribers of the failed node become direct subscribers of the backup node. The failed node can and should be removed from the configuration with DROP NODE.
| ID = <ival> | ID of the failed node. |
| BACKUP NODE = <ival> | ID of the node that will take over all sets. |
FAILOVER (
ID = 1,
BACKUP NODE = 1,
);
Back to Index
Executes a script containing arbitrary SQL statements on all nodes that are subscribed to a set at a common controlled point within the replication transaction stream.
The specified event origin must be the origin of the set. The script file must not contain any START or COMMIT TRANSACTION calls. (This may change in PostgreSQL 8.0 once nested transactions, aka savepoints, are supported) In addition, non-deterministic DML statements (like updating a field with CURRENT_TIMESTAMP) must be avoided, since the data changes done by the script are explicitly not replicated.
| SET ID = <ival> | The unique, numeric ID number of the set affected by the script. |
| FILENAME = <string> | The name of the file containing the SQL script to execute. |
| EVENT NODE = <ival> | (Optional) The ID of the current origin of the set. The default value is 1. |
| EXECUTE ONLY ON = <ival> | (Optional) The ID of the only node to actually execute the script. This option causes the script to be propagated by all nodes but executed only by one. The default is to execute the script on all nodes that are subscribed to the set. |
EXECUTE SCRIPT (
SET ID = 1,
FILENAME = 'changes_20040510.sql',
EVENT NODE = 1
);
Back to Index
Waits for event confirmation.
Slonik remembers the last event generated on every node during script execution (events generated by earlier calls are currently not checked). In certain situations it is necessary that events generated on one node (such as CREATE SET) are processed on another node before issuing more commands (for instance, SUBSCRIBE SET). WAIT FOR EVENT may be used to cause the slonik script to wait until the subscriber node is ready for the next action.
WAIT FOR EVENT must be called outside of any try block in order to work, since new confirm messages don't become visible within a transaction.
| ORIGIN = <ival>|ALL | The origin of the event(s) to wait for. |
| CONFIRMED = <ival>|ALL | The node ID of the receiver that must have confirmed the event(s). |
| WAIT ON = <ival> | The ID of the node where to check the sl_confirm table. The default value is 1. |
| TIMEOUT = <ival> | The number of seconds to wait. Default is 600 (10 minutes), 0 means wait forever. |
Resets the name to oid mapping, usefull for restoring after a pg_dump.
| SET ID = <ival> | The unique, numeric ID number of the set affected by the script. |
| EVENT NODE = <ival> | (Optional) The ID of the current origin of the set. The default value is 1. |
| EXECUTE ONLY ON = <ival> | (Optional) The ID of the only node to actually update the mapping on. The default is to execute this on all nodes that are subscribed to the set. |
REPAIR CONFIG (
SET ID = 1,
EVENT NODE = 2
);
Back to Index
WAIT FOR EVENT (Back to Index
The commands used in Slonik invoke stored procedures in the namespace created for the replication instance. Slonik provides one convenient way to invoke these procedures; it is just as possible to invoke them directly to manage the Slony-I instances.
See the Schema Documentation for more details.


My Bad!
This is still under construcion :(
Oh, hello there!
My name is Jamie, and I currently study at Asia Pacific College. This is my first labwork. Yay!


| Welcome to my website. I am an audio/speech technology developer and researcher. Currently, I am doing my PhD at the CSTR-University of Edinburgh, where I research on new signal representations and acoustic modelling for statistical parametric speech synthesis. Also, my interests cover a wide range of disciplines, such as Music, Digital Audio, real-time audio effects, Computer Programming, Acoustics, and so on. You will find on this website information about me, including education, publications, projects, trips, and especially the stuff that I love the most: Audio Technology Development !! |
Publications
-
C. Valentini-Botinhao, O. Watts, F. Espic, and S.King, “Examplar-based speech waveform generation for text-to-speech,” In Proc. 2018 IEEE Spoken Language Technology Workshop (SLT), Athens, Greece, December, 2018. [pdf]
-
F. Espic, A. Govender, M. S. Ribeiro, C. Valentini-Botinhao, O. Watts, “The CSTR entry to the Blizzard Challenge 2018,” In Proc. Blizzard Challenge, Hyderabad, India, September, 2018. [pdf]
-
O. Watts, C. Valentini-Botinhao, F. Espic, and S. King “Exemplar-based Speech Waveform Generation,” in Proc. Interspeech, Hyderabad, India, September, 2018. [pdf] [samples] [code]
-
S. Ronanki, M. S. Ribeiro, F. Espic, and O. Watts, “The CSTR entry to the Blizzard Challenge 2017,” In Proc. Blizzard Challenge, Stockholm, Sweden, August, 2017. [pdf]
-
F. Espic, C. Valentini-Botinhao, and S. King, “Direct Modelling of Magnitude and Phase Spectra for Statistical Parametric Speech Synthesis,” in Proc. Interspeech, Stockholm, Sweden, August, 2017. [pdf, samples and code]
-
F. Espic, C. Valentini-Botinhao, Z. Wu, and S. King, “Waveform generation based on signal reshaping for statistical parametric speech synthesis,” in Proc. Interspeech, San Francisco, CA, USA, September, 2016. [pdf] [samples] [code]
-
F. Villavicencio, J. Yamagishi, J. Bonada, and F. Espic, “Applying spectral normalisation and efficient envelope estimation and statistical transformation for the Voice Conversion Challenge 2016,” in Proc. Interspeech, San Francisco, CA, USA, September, 2016. [pdf]
-
V. Poblete, F. Espic, S. King, R. M. Stern, F. Huenupan, J. Fredes, and N. Becerra Yoma, “A perceptually-motivated low-complexity instantaneous linear channel normalization technique applied to speaker verification,” Computer Speech and Language, Volume 31, Issue 1, Pages 1-27, 2015. [pdf]
-
W. Hussein, S. M. Khan, J. Zamorano, F. Espic, and N. Becerra Yoma, “A novel ultrasound based technique for classifying gas bubble sizes in liquids,” Measurement Science and Technology, 25, no. 12, 2014. [pdf]
Other publications and talks
-F. Espic, C. Valentini-Botinhao, and S. King, “MagPhase Vocoder: Magnitude and phase analysis/synthesis for statistical parametric speech synthesis,” UK-Speech Conference, Cambridge, UK, September, 2017.
-
S.King, O. Watts, S. Ronanki, Z. Wu, and F. Espic “Tutorial: Deep Learning for Text-to-Speech Synthesis, using the Merlin toolkit,” Interspeech Conference, Stockholm, Sweden, August, 2017. [slides and videos]
-
F. Espic, “A Survey About IFIR Filters and Their More Recent Improvements,” report, University of Miami, 2011. Cited in the book “Digital Signal Processing with Matlab Examples, Volume 1” by Jose Maria Giron-Sierra, Springer, 2017. [pdf]
-
F. Espic, Talk on Waveform generation based on signal reshaping for statistical parametric speech synthesis. UK-Speech Conference, Sheffield, UK, June, 2016. [video]
-
F. Espic, “A Phrase Recognition System Intended for Musical Applications,” report, University of Miami, 2011. [pdf]
-
F. Espic, “A Simple Music Transcription Method Using Comb Filter Techniques and Envelope Detection,” report, University of Miami, 2011. [pdf]


We Have Provide Best Education!
Your Thought and Your Views See Here!
Illustration
Mordern & Expert
Mordern Technology
Online and Off-line Education
Our the Best My School Team!
Math's Professor
Director
Manager (CEO)
Team Leader
Teacher


By using the RGraph.clipTo
API
functions the Line chart can be drawn in
two passes so that it's colored differently on each pass.
Update
There's information on this HOWTO page
about creating dual color Line charts using
gradients. It's very simple and can be done using either the
RGraph Gradient()
shortcut or more directly with the canvas linear gradient functionality.
<script src="RGraph.common.core.js"></script> <script src="RGraph.line.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="600" height="250" !style="border: 1px solid #ccc"> [No canvas support] </canvas>This is the code that generates the chart - it should be placed AFTER the canvas tag(s):


 You are, unfortunately, not the star of the show.
While you might think of yourself as cool, and receive small bouts of coolness, you are ultimately pretty uncool. You are, unfortunately, not the star of the show.


View Highscores
Time: 0
The Coding Quiz Challenge
Are you ready to test your coding skills?
Start Quiz!
Enter question here
Enter choices here
Continue
All done!


Simon has been a PostgreSQL Major Developer since release 8.0 and is liked and trusted throughout the Postgres community. He has also worked extensively with Teradata, Oracle and DB2 and has been responsible for RDBMS selection at a number of major companies. He has a crystal ball.
A look at the things we need to do in the next 20 years to continue to provide a relevant, cutting edge solution to the world's data problems. We'll look back over the last 20 years of our own development, as well as looking at what has happened in academia and industry over the same period and where things are going now. Where next? Come and see.


%include templates/parts/head.html
%include templates/parts/navBar.htmlEXAMS
Midterm
Tuesday, May 9th
7-9pm
Hewlett 200
Final
Tuesday, June 13th
8:30-11:30am
Hewlett 200 and NVIDIA
Teaching Team
<EMAIL_ADDRESS>The CS109 Final is next Tuesday (June 13th) at 8:30AM. Students with surnames that start with the letter A through L will take the exam in NVIDIA, students with surnames that start with the letter M through Z will take the exam in Hewlett 200. The exam is 3 hours. It is open notes, open book, closed computer.
The best thing you can do is practice! We have a Practice Final. In addition on Monday and Wednesday of this week we went over some extra practice problems. The problems from Wednesday were written up: Extra Problems #3. When you have finished taking the practice final, check your answers against the Practice Final Solution
The last CS109 problem set is out. You will implement two of the most classic machine learning algorithms: Naive Bayes and Logistic Regression! It is due on the last day of class -- unfortunetly we can't accept any late submissions.
Just for fun: Here is a public playlist where we can share music amongst our class (it uses, Spotify): https://open.spotify.com/user/1251835474/playlist/5JDismsK1CH2YLMRZcqUvc. I'll add a few songs that I play before class. You can add music that you like and of course feel free to checkout each other's music. Sharing music is completely optional and is independent of your grade.
This quarter we are going to hold the first ever Stanford CS109, Probability for Computer Scientists, Contest. The contest is completely optional. See the contest handout for more details.
Here is a khan style explanation that shows how you the linear regression algorithm can be derived using MLE:
The penultimate problem set is now availible. The problem set includes problems such as understanding the probability of survival on the titanic, evaluating peer grading, a/b testing.
The midterm solutions are now availible. If you have any questions about how to solve these problems, go talk to a TA or Chris. We would love to explain how to approach these (and similar) problems.
A few notes before the weekend. The midterm review session was today and was recorded. See the video link if you couldn't make it in person. I just released the practice midterm solution. I strongly recommend that you don't look at the solutions until you have seriously attempted the problems -- it is much harder to identify a correct solution than to generate one.
I'm in the process of combining my lecture notes into a topic driven format (where notes are composed based on concept, not lecture). You are free to use the work in progress: Course Reader. It is very rough at the moment -- I expect to update it by Sunday morning.
I made a minor update to problem 10 on PSet 4. I had previously emitted that you should assume that your prior belief that the email was written by user A is 0.5 (and thus your prior belief that the email was written by user B is also 0.5).
Pset #4 is out. It uses real probability distributions from the IPCC Climate Change report and has you implement biometric keystroke identification.
The CS109 Midterm is coming up (it is going to be 7pm, next Tuesday in Hewlett 200). To prepare we have posted solutions to the first two problem sets (see the Problem Sets tab). We have added a practice midterm and we will share solutions on Friday. Sometimes students want even more practice! So we posted extra problems (see the Resources tab).
The midterm is two hours long. It will be open notes, closed computer. It will cover concepts up until today's lecture (May 3rd), all problem sets 1 through 3 and many problems from problem set 4. See the problem set 4 splash page for an explination of which problems from it are fair game.
We are going to hold a Midterm Review session this Friday (May 5th) in Skilling Auditorium from 12:30-1:20pm. It will be recorded.
Pset #3 is out. It has one programming problem that asks you to predict elections based off of polling data. We made a small change to problem 11, the bloom filter, on April 25th to make it a more narative driven problem :-).
Want to practice more probability in a smaller setting with TAs. In theory it will be a chance for us to solve problems together in a way that is more guided than office hours and more involved than lecture. Come, ask see what it is about! : Gates 104. : Tomorrow, Thursday 4/19 from 1:30p to 2:20p.
In class on Monday we talked about how Binomial distributions and Galton boards. Here is the video:
Problem set #2 is out! A few of the problems require you to process data. The datasets are now availible.
Update: We slightly updated the wording in problem 3 to make it clear that you can assume that two movies are conditionally independent given that the user does not like the genre.
Problem set #1 is due on Friday. Submit your assignment by uploading it to the CS109 gradescope page. Gradescope is a tool that we will use to electronically grade and give you feedback on your problem sets. If you want to manually sign up, our class code is: MY6WP9.
There will be a Python tutorial led by Head TA William Monroe Thursday (4/13) from 4:30pm-5:20pm in Gates B01.
PSet #1 has been released! Office hours will start tomorrow -- see the office hour calendar for times and locations. There were a few clarifications to problems added on the morning of April 6th. See the errata on the pset for more details.
You can optionally write up your problem sets using the LaTex system. See this intro to LaTex, and the LaTex code used to generate it. You can use this LaTex template custom made for CS109 problem sets. Though you may install LaTeX, it is often much easier to use an online LaTeX editor. Two good options are: www.overleaf.com and www.sharelatex.com.
Former CS109 student Joe Delgado has written a nunber of snippets for Latex in Sublime, which he has made available on github.
We put together some handouts to help you understand where we are going to go in CS109 and how we plan to get there. See the Administrivia handout for details on logistics.
The Course Schedule page shows you the topics that we are going to cover in CS109 and the corresponding readings. We will also post materials from lecture on the schedule page.
Welcome to CS109! We are looking forward to a fun quarter. Class starts Monday April 3rd at 10:30am in NVIDIA Auditorium.


| Event | Description |
on_far_from_home |
Triggered every frame the object is far enough away from its home (as per the territory_radius property). |
on_land |
Triggered every frame the object is touching the floor. |
on_leave_hazard |
Triggered when the object was on a hazardous sector, but no longer is. |
on_reach_destination |
Triggered every frame that the object is in its destination, by moving there with any of the "move" actions, or by reaching the final destination with any of the "follow_path" actions. |
on_touch_hazard |
Triggered when it touches a hazard, whether from a hitbox, or from a sector. |
on_touch_wall |
Triggered every frame it is touching a wall. |
| Event | Description |
on_hitbox_touch_a_n |
Triggered when one of the object's attack hitboxes touches an opponent's normal hitbox. The opposite doesn't exist since it's reserved by the engine for controlling attack damage, but you can try the on_damage event. |
on_hitbox_touch_eat |
Triggered when one of the object's normal hitboxes touches an opponent's "eat" hitbox. Particularly useful for tool objects. |
on_hitbox_touch_n_n |
Triggered when one of the object's normal hitboxes touches an opponent's normal hitbox. |
on_pikmin_land |
Triggered when a thrown Pikmin lands on it. Technically, triggers when one of a thrown Pikmin's hitboxes touches one of its normal hitboxes. |
on_touch_object |
Triggered every frame it is touches an object, for every object it's touching. |
on_touch_opponent |
Same as on_touch_object , but for opponents only. |
| Event | Description |
on_damage |
Triggered when the object takes any sort of damage. |
on_finish_receiving_delivery |
Triggered when another object, delivered to it by carrier Pikmin, finishes being received. |
on_held |
Triggered when the object is picked up by another one. Particularly useful for tool objects. |
on_itch |
Triggered when the object takes a certain amount of damage after the last itch, as defined by the itch_damage property. It will also only trigger if it's been a certain amount of time since the last itch, as per itch_time . If the current state cannot handle this event, it will continue being sent until an event shows up that can handle it. |
on_receive_message |
Triggered when another object sent it a message. The contents of the message can be obtained with the get_info action. |
on_released |
Triggered when the object was being held by another, but has now been released. Particularly useful for tool objects. |
on_start_receiving_delivery |
Triggered when another object, delivered to it by carrier Pikmin, starts being received. |
on_weight_added |
Triggered when an object starts standing atop this one, thus adding weight. |
on_weight_removed |
Triggered when an object that was standing atop this one leaves, thus removing weight. |
In this list, any argument surrounded by square brackets is optional.
| Action | Description |
else |
If the corresponding if action's check ends up being false, the script will run the actions after this else , until it reaches the matching end_if . |
end_if |
Closes a condition started by an if action. |
goto |
goto <label_name>
- Orders the script to jump to where the label named <label_name> is. The label must be in the same event block as this
goto . You can use this to loop actions multiple times in a row by returning to the top of the loop.
|
if |
Only executes the next actions, until an else or end_if action, if the condition you specify is true. If not, it jumps to the matching else or end_if action.
if <left> <operator> <right>
-
<left> and <right> are two values, and <operator> is how you want to compare them. As such, it makes sense to replace at least one of the values with a variable. Note that due to scripting limitations, only <right> may have spaces, if it is a string. The possible operators are:
= : True if <left> matches <right>. It works with text too.
!= : True if they don't match; also works with text.
< : True if the number in <left> is less than the number in <right>.
> : Greater than.
<= : Less than or equal.
>= : Greater than or equal.
|
label |
label <label_name>
- Labels this point of the script as <label_name>. You can then use the
goto action to force the script to go to this point at will. Each label is only accessible to the event block it belongs to.
|
set_state |
set_state <state>
- Instantly changes to the specified state. If it was meant to run any actions after this one, they will not be run.
|
| Action | Description |
follow_path_randomly |
follow_path_randomly [<path_label>]
- Tells the object to pick a random path stop in the area, and begin heading there, following the path stops necessary to get there. If you specify a path label, the object will only be able to cross path links with this label. The choice of first stop is not affected by the label, but if you wrote a label, the last path stop has to have an outgoing link with that label. When the mob gets there, or in the case it can't follow a path there, the
on_reach_destination event will be triggered.
|
follow_path_to_absolute |
follow_path_to_absolute <x> <y> [<path_label>]
- Tells the object to begin heading towards the specified area coordinates, following the path stops necessary to get there. If you specify a path label, the object will only be able to cross path links with this label. The choice of first and last path stop are not affected by the label. When the mob gets there, or in the case it can't follow a path there, the
on_reach_destination event will be triggered.
|
move_to_absolute |
move_to_absolute <x> <y> [<z>]
- Tells the object to begin moving to the specified area coordinates. The Z coordinate will only be useful if the object can fly (see
set_flying ).
|
move_to_relative |
move_to_relative <x> <y> [<z>]
- Tells the object to begin moving to the specified relative coordinates. The Z coordinate will only be useful if the object can fly (see
set_flying ).
|
move_to_target |
move_to_target <target>
-
Tells the object to begin moving towards a special target. Possible values:
arachnorb_foot_logic : Used by arachnorb feet objects to move according to the internal plan. See the arachnorb_plan_logic action for more information.
away_from_focused_mob : Move away from the focused object, thus going in the direct opposite direction.
focused_mob : Move towards the focused object, following it as it moves.
focused_mob_position : Move towards the position of the focused object at this exact moment. In other words, don't follow it as it moves.
home : Move towards home (spawn point).
linked_mob_average : Move towards the average position of its linked objects. Useful for keeping an arachnorb's head in the center position of its feet objects, for instance.
|
set_flying |
set_flying <true/false>
- Sets whether or not this object can fly.
|
set_gravity |
set_gravity <multiplier>
- Sets how gravity affects this object. 1 is normal, 0 is no gravity, 0.5 is half gravity, -1 is upwards gravity, etc.
|
stabilize_z |
stabilize_z <reference> <offset>
- Changes the object's Z coordinate to match the Z coordinate of its highest (if the reference is
highest ) or lowest (if the reference is lowest ) linked object. After changing it, it also moves it up by the specified offset.
|
stop |
Makes the object stop moving laterally, and makes it stop rotating. If it was following a path, it will also stop doing that. |
stop_vertically |
Kills the object's vertical momentum. |
teleport_to_absolute |
teleport_to_absolute <x> <y> <z>
- Instantly teleports the object to the specified area coordinates.
|
teleport_to_relative |
teleport_to_relative <x> <y> <z>
- Instantly teleports the object to the specified relative coordinates.
|
turn_to_absolute |
turn_to_absolute <angle>
- Turn towards the specified absolute angle.
turn_to_absolute <x> <y>
- Turn towards the specified area coordinates.
|
turn_to_relative |
turn_to_relative <angle>
- Turn <angle> degrees anti-clockwise.
turn_to_relative <x> <y>
- Turn towards the specified relative coordinates.
|
turn_to_target |
turn_to_target <target>
-
Turns towards a special target. Possible values are:
arachnorb_head_logic : Used by arachnorb head objects to turn according to where their feet objects are located. See the arachnorb_plan_logic action for more information.
focused_mob : Constantly turn towards the focused mob. You can make it stop with the stop action.
home : Turn towards home (spawn point).
|
| Action | Description |
add_health |
add_health <amount>
- Add <amount> health to the object's health. You can also remove some health by specifying a negative number.
|
finish_dying |
Runs the procedure related to the end of the object's death sequence. Amongst other things, this makes enemies unleash a spirit. |
receive_status |
receive_status <status name>
- Applies the specified status effect.
|
remove_status |
remove_status <status name>
- Removes the specified status effect, if the object is currently afflicted by it.
|
set_far_reach |
set_far_reach <reach_name>
- Makes it use the specified reach as the "far reach", from here on out.
|
set_health |
set_health <amount>
- Sets the object's health to the specified number.
|
set_huntable |
set_huntable <true/false>
- Sets whether or not this object can currently be hunted by other objects. This does not affect whether or not other objects can hurt it.
|
set_near_reach |
set_near_reach <reach_name>
- Makes it use the specified reach as the "near reach", from here on out.
|
set_team |
set_team <team_name>
-
Sets the object's current team. Objects in the same team will not hunt or harm each other. For valid values, see the
team property of object types.
|
start_dying |
Runs the procedure related to the start of the object's death sequence. Amongst other things, this makes enemies unleash a cloud of sparkle particles. |
| Action | Description |
get_chomped |
Makes the object get chomped as if it were a Pikmin. This is only applicable if run inside the on_hitbox_touch_eat event. |
release |
All captured Pikmin are safely freed. |
start_chomping |
Sets what body parts will be used to trap Pikmin from here on out.
start_chomping <victim_max> <body_parts>
- <victim_max> is the maximum number of Pikmin that can be caught. <body_parts> is the name of the body part(s) that will be used for trapping, one per word.
|
stop_chomping |
Makes it so no body parts will be used for chomping any more, from here on out. |
swallow |
swallow <number>
- Makes the object swallow <number> amount out of the captured Pikmin, picked at random. This kills the Pikmin.
|
swallow_all |
Makes the object swallow all captured Pikmin. This kills the Pikmin. |
| Action | Description |
focus |
focus trigger
- Focuses on the object that triggered the event.
focus link
- Focuses on the first linked object, if any. You cannot use this when the mob has just spawned, since it doesn't have link information by that point.
focus parent
- Focuses on the parent object, if any. You cannot use this when the mob has just spawned, since it doesn't have parent information by that point.
|
link_with_focused_mob |
Establishes a link between this mob and its focused mob, but not the other way around. If that mob is already a linked mob, nothing happens. |
load_focused_mob_memory |
load_focused_mob_memory <slot_number>
- Obtains a saved mob from the "focused mob memory", and focuses on that one instead. Loses mob focus if there is no mob in the specified slot, or if that specified mob has already disappeared. See also:
save_focused_mob_memory .
|
save_focused_mob_memory |
save_focused_mob_memory <slot_number>
- Saves the currently focused mob into the "focused mob memory", in the specified slot number. Does nothing if there is no currently focused mob. See also:
load_focused_mob_memory .
|
| Action | Description |
hold_focused_mob |
hold_focused_mob <body_part_name>
- Makes the mob hold the focused mob in its grasp. The focused mob will follow wherever the specified body part is.
|
order_release |
Orders the Pikmin that is holding on to this object to release it. |
release_stored_mobs |
Releases any objects stored "inside" this one with store_focus_inside . |
store_focus_inside |
Takes the focused object and stores it "inside" the current one. Once inside, it is not visible and cannot be interacted with. Objects stored inside another can be released with release_stored_mobs . |
throw_focused_mob |
throw_focused_mob <x> <y> <z> <max_height>
- Makes the focused mob be thrown in an arc from where it is towards the specified absolute coordinates. The peak of its jump reaches a height specified by the <max_height> parameter. If this mob was holding the focused mob, then it will stop holding. If the <max_height> is 0, the mob is simply gently released.
|
| Action | Description |
get_angle |
get_angle <destination_variable_name> <center_x> <center_y> <focus_x> <focus_y>
- Sets the variable <destination_variable_name> to the angle between the two sets of coordinates. This angle is in degrees, like other angles used in scripts.
|
get_coordinates_from_angle |
get_coordinates_from_angle <x_destination_variable_name> <y_destination_variable_name> <angle> <distance>
- Sets the destination variables to the X and Y coordinates that represent the specified angle and distance. Basically, imagine an imaginary point at coordinates 0,0. If you go in the specified angle, for the specified distance, you'll end up at the returned coordinates. The angle should be in degrees, like other angles used in scripts.
|
get_distance |
get_distance <destination_variable_name> <center_x> <center_y> <focus_x> <focus_y>
- Sets the variable <destination_variable_name> to the distance between the two sets of coordinates.
|
get_floor_z |
get_floor_z <destination_variable_name> <x> <y>
- Sets the variable <destination_variable_name> to the Z coordinate of the floor at the specified coordinates. If there is no sector at those coordinates, the variable will receive the value 0.
|
get_focus_info |
get_focus_info <destination_variable_name> <information_from_focus>
- Works like the
get_info action, but when applicable, returns information from the focused mob instead, if any.
|
get_focus_var |
get_focus_var <destination_variable_name> <focused_mob_variable_name>
- Sets the variable <destination_variable_name> of this mob to the same value as the variable <focused_mob_variable_name> of the focused mob, if any.
|
get_info |
get_info <destination_variable_name> <information>
-
Sets the variable <destination_variable_name> to some special information. The possible data are:
angle : Current angle.
body_part : For events that deal with hitboxes, this is the name of this mob's body part that's responsible.
chomped_pikmin : How many Pikmin it currently has chomped.
day_minutes : What time of the in-game day it is, in minutes.
field_pikmin : How many Pikmin are currently on the field.
focus_distance : Distance between the object and the focused object.
frame_signal : What the signal was that triggered an on_frame_signal event.
group_task_power : For group task type objects, this is the "Pikmin power" currently being applied.
hazard : Name of the hazard that the object has touched or left.
health : The object's current health.
health_ratio : The object's current health ratio. 0 for 0%, 1 for 100%, 0.5 for 50%, etc.
latched_pikmin : How many Pikmin are currently latched on to it.
latched_pikmin_weight : Total weight of the Pikmin that are currently latched on to it.
message : What the message was that got sent when the on_receive_message event got triggered.
message_sender : Name of the type of object that sent the message, when an on_receive_message event gets triggered.
mob_category : Category of the mob that triggered the event. This is the same name as the corresponding folder in Game_data/Types . Only available for certain events.
mob_type : Type of the mob that triggered the event. This is the name defined in the name property of the object type's Data.txt file. Only available for certain events.
other_body_part : For events that deal with hitboxes, this is the name of the other mob's body part that's responsible.
x : Current X coordinate.
y : Current Y coordinate.
z : Current Z coordinate.
weight : Current weight on top of it.
|
| Action | Description |
calculate |
calculate <destination_variable_name> <left> <operator> <right>
- Calculates the mathematical operation between the operands and sets the variable to the result. It makes sense to use a variable in at least one of the operands, otherwise you're just punching in a fixed number calculation that any household calculator could tell you about. The operator can be
+ (add), - (subtract), * (multiply), / (divide), or % (modulo). For instance, calculate jumps $jumps + 1 would increment the number of jumps. Be careful not to get your $ signs confused – the <destination_variable_name> field shouldn't use it!
|
get_random_decimal |
get_random_decimal <destination_variable_name> <minimum_value> <maximum_value>
- Places a random value between <minimum_value> and <maximum_value> (including) into the variable <destination_variable_name>. This number is a real number, so it can have decimal places.
|
get_random_int |
get_random_int <destination_variable_name> <minimum_value> <maximum_value>
- Places a random value between <minimum_value> and <maximum_value> (including) into the variable <destination_variable_name>. This number is an integer number, so it will not have decimal places.
|
set_var |
set_var <destination_variable_name> <value>
- Sets the value of the specified variable.
|
| Action | Description |
set_hiding |
set_hiding <true/false>
- Sets whether or not the engine should hide this object from here on out. This makes the object, as well as its shadow and health to not be drawn. This is useful, for instance, when a Sheargrub digs underground.
|
set_shadow_visibility |
set_shadow_visibility <true/false>
- Sets whether or not the engine should draw this object's shadow from here on out.
|
start_height_effect |
Records the object's current Z and, from here on out, scales the object larger the higher it is from that pivot Z. This creates a fake perspective effect that reflects how high the object is. This feature cannot scale any smaller than normal size. Use stop_height_effect to return to normal. |
start_particles |
start_particles <generator_name> [<x offset>] [<y offset>] [<z offset>]
- Begin emitting particles using the specified particle generator. If specified, x, y, and z are the relative coordinates of the object at which to place the particles. If the particle generator specified has no interval (i.e. it only launches particles once and then it's over), then the particle generator is automatically removed from the object after it emits its particles. An object can only have one script-given particle generator attached at a time.
|
stop_height_effect |
Stops the height effect started with start_height_effect . This also gets called every time the object touches the floor. |
stop_particles |
Removes any currently attached particle generator. |
| Action | Description |
arachnorb_plan_logic |
Special logic for arachnorb-type enemies. This is used to internally plan what sort of movements the arachnorb's feet will need to do for the next sequence of steps, so that it can achieve the specified goal. This only works on the object that represents the arachnorb's head, which must be a parent object with feet children objects. In order for the engine to know where to position the feet, the following script variables should be declared: max_step_distance specifies the maximum distance a foot can move per step; max_turn_angle specifies the maximum amount of degrees the arachnorb can turn per step; min_turn_angle specifies the minimum amount of degrees the arachnorb can turn per step; feet_normal_distance specifies the usual distance the feet are from the center of the head.
arachnorb_plan_logic home
- Sets up the internal logic for the arachnorb to head home. This will automatically decide how to turn or how to walk forward to get there.
arachnorb_plan_logic forward
- Sets up the internal logic for the arachnorb to move forward.
arachnorb_plan_logic cw_turn
- Sets up the internal logic for the arachnorb to rotate clockwise. When this is called manually, the arachnorb turns a random angle between the minimum and maximum turn amounts.
arachnorb_plan_logic ccw_turn
- Same as the
cw_turn goal, but for a counter-clockwise turn.
|
delete |
Delete this object. |
drain_liquid |
Makes the liquid in the sector it is on start draining. After a few seconds, it will be completely liquid-free. This will affect the sector it is on as well as all neighboring sectors that have liquid. |
print |
print <text>
- Prints some text to the top of the screen. Only useful for debugging the script, so you know how much a variable is worth, where the script passes, etc.
|
set_animation |
set_animation <animation>
- Changes to and begins the animation <animation>.
set_animation <animation> no_restart
- Same as normal, but doesn't set the frame number to 0, meaning that animation will continue from whatever frame number the previous one left off.
set_animation <animation> random_time
- Same as normal, but starts on a random time.
set_animation <animation> random_time_on_spawn
- Same as above, but only when the enemy has just spawned. Otherwise it starts the animation from the beginning.
|
set_limb_animation |
set_limb_animation <animation>
- Same as
set_animation , but for the limb connecting it to its parent mob.
|
set_sector_scroll |
set_sector_scroll <x_speed> <y_speed>
- Makes the sector this object is on begin scrolling, with the specified speed in the X axis (units per second) and the specified speed in the Y axis. Its floor texture will scroll along, and any objects on this sector will be dragged too. Setting both values to 0 will make it stop scrolling, naturally.
|
set_timer |
set_timer <amount>
- Starts the mob's timer with the specified time period. Writing 0 makes the current timer stop, without triggering any
on_timer events.
|
show_message_from_var |
show_message_from_var <variable_name>
- Shows a message on-screen using the text inside the specific variable. You can make use of markup for this.
|
spawn |
spawn <spawn data>
- Instantly creates a new object, with the information in the supplied spawn data block. See here for more information.
|


加载中...
title
tag
1
info
This is desc
or subtitle
This is content
A.
This is content B.
This is content C.
This is content D.
This is content E.
This is content F.
This is content G.
This is author
title
(open index.html in a new window)
This is content
A.
This is content B.
This is content C.
This is content D.
This is content E.
This is content F.
This is content G.
This is content H.
This is content I.
This is content J.
This is content K.
This is author
title
title
prefix
Suffix
tag
1
tag
2
info
This is desc
or subtitle
This is content
A.
This is content B.
This is content C.
This is content D.
This is author
title
info
This is desc
or subtitle
This is content
A.
This is content B.
This is content C.
This is content D.
This is author


Inflation Rates Up By 5.56PC in November, From 4.9PC In October
by Francis MuliThe cost of living (inflation rate) went up from 4.95 percent in the month of October to 5.56 in November.
The Kenya National Bureau of Statistics (KNBS) notes that the cost of food and non-alcoholic drinks’ index increased by 0.62 per cent.
On the other side, the index for housing, water, electricity, gas and other fuels increased by 0.29 per cent mainly due to increase in the cost of house rent and cooking fuels.
The cost of Potatoes Irish, tomatoes, maize flour shifted, maize flour lose, green gram, kerosene, petroleum and diesel prices also recorded a significant rise in the month under review.
Read: Inflation Spikes To 4.95 Percent As Maize Floor Price Hits Ksh145
“This increase was greatly contributed by increase in prices of potatoes (Irish), tomatoes, maize flour-sifted, green grams and mineral waters which increased by 7.0, 6.1, 4.3, 3.9 and 2.4 per cent, respectively,”
The price of Gas (LPG) decreased by 1.1 per cent and transport index increased by 0.29 per cent mainly due to increase in pump prices of diesel and petrol.
The prices of fresh milk, wheat flour and sugar prices dropped by 4.1, 0.6 and 0.5 per cent respectively.


{% include "svg/svg-symbols.svg" %}
{% include "components/buttons.html" %}
{% include "components/forms.html" %}
{% include "components/dropdowns.html" %}
{% include "components/button-status.html" %}
{% include "components/alerts.html" %}
{% include "components/typography.html" %}
{% include "components/header.html" %}
{% include "components/container.html" %}


Storefront/Octoblu Workflow Integration Example
This is a example page (to be used with the Storefront workflow example) that shows to the allow a manager to approve/deny a request for an application and then call and Octoblu workflow
Would you like to approve the request?
Citrix Developer
For more information on Citrix Developer and building with Citrix SDKs Click Here.
Citrix Storefront
For more information on Citrix Storefront Click Here.
Citrix Octoblu
For more information on Citrix Octoblu Click Here.


Money Play. Should Red double? If doubled should White take?
pips Red=126 White=167
(CorrectAnswer= 0/0, ErrorScore= 0)
A lot of players would quickly discard the idea of doubling here because Red has a lot of work to do. However, those two white blots in Red’s home board create gammon opportunities and that is just enough to swing the vote in favour of doubling now.
Of course, White has a trivial take and virtually nobody would drop this. In such situations it pays to know your opponent and if he/she is someone would take later despite the position deteriorating, then Red can wait a roll or two. Technically, however, this is double/take.
Of course, White has a trivial take and virtually nobody would drop this. In such situations it pays to know your opponent and if he/she is someone would take later despite the position deteriorating, then Red can wait a roll or two. Technically, however, this is double/take.
Cube analysis 2-ply cubeless equity +0.503 0.650 0.265 0.013 - 0.350 0.072 0.003 Cubeful equities: 1. Double, take +0.769 2. Double, pass +1.000 (+0.231) 3. No double +0.731 (-0.038) Proper cube action: Double, take


Religious Values, based off of 9axes is a political quiz that attempts to assign percentages on nine different religious axes. You will be presented by a statement, and then you will answer with your opinion on the statement, from Strongly Agree to Strongly Disagree, with each answer slightly affecting your scores. At the end of the quiz, your answers will be compared to the maximum possible for each value, thus giving you a percentage. Answer honestly!
There are nine independent axes, where each has two opposing values assigned to them. They are:
Pro-Catholic vs Anti-Catholic
People who are Pro-Catholic tend to favour traditional Catholic theology, Papal authority and the Catholic Church, whereas people who are Anti-Catholic tend to oppose tradition Catholic theology, Papal authority and Catholic influence.
Pro-Protestant vs Anti-Protestant
People who are Pro-Protestant tend to favour reformation theology, individual practice and decentralised church structure whereas people who are Anti-Protestant, tend to oppose reformation theology and religious schisms.
Pro-Orthodox vs Anti-Orthodox
People who are Pro-Orthodox tend to favour Eastern European religious traditions, glorification of the Roman Emperor Constantine and leavened bread in religious rituals, whereas people who are Anti-Orthodox tend to oppose Eastern Christian Traditions and the authority of the Eastern Patriarchs.
Philo-Semitic vs Anti-Semitic
People who are Philo-Semitic tend to favour Zionism, Old Testament Traditions and the interests of Jews, whereas people who are Anti-Semitic tend to oppose the existance of the State of Israel, Talmudic law and what they perceive to be Jewish influence.
Islamophilic vs Islamophobic
People who are Islamophilic tend to favour Palestinian Nationalism, Islamic Tradition and Sharia Law, whereas those who are Islamophobic tend to oppose the existance of the State of Palestine, Islamic tradition and Sharia Law.
Pro-Buddhist vs Anti-Buddhist
People who are Pro-Buddhist tend to favour Tibetan Nationalism, the Doctrine of Dukkha and Human Perfection, whereas those who are Anti-Buddhist tend to favour the belief in the flawed nature of humanity, while typically opposing Buddhist idolitry and the doctrine of enlighenment.
Pro-Pagan vs Anti-Pagan
People who are Pro-Pagan tend to favour Pantheistic worship, human sacrifices and worship of nature, whereas those who are Anti-Pagan tend to favour Monotheism and worship of a creator rather than creation.
Satanic vs Divine
People who are Satanic tend to sympathise with the Serpent of the Garden of Eden, favour a belief in the righteousness of the Biblical Satan and in some sects, Progressive cultural values, whereas those who hold divinity as a core value tend to favour Monotheism, worship of the God of the Bible and a strong emphasis on Biblical values.
Atheistic vs Religious
People who are Atheistic tend to favour a materialistic world view, a Secular government, and among extremeists, a crackdown on religious worship, whereas those who are religious tend to favour Moralism, religious worship and, among extremists, Theocracy.
My first test, it is a compass test that can be found here
My second test, it is an axes test that can be found here here
¯\_(ツ)_/¯
Too bad
Legal notice: The 8values project's license grants the rights to "modify, merge, publish, distribute" the software as long as "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software." The included notice can be found here. This project is released under the same license.


Some Lists
💿
More Stuff
📀
Home
𝕎𝔼𝔹𝔸ℝ𝕋
A list of my favorite things(in order)
Trees
Oak
Maple
Spruce
Palm
Rocks
Oranges
Birds
the sky
Block
elements
Block
elements
m
i
c
r
o
s
c
o
p
I
c
A great list of escape characters
here


Cosmopolitan Foodies
Recipes from Around the World
Recipes
Biography
Contact Us
Pasta Nepoletana
Fritatta
Chickpea Curry
Ricotta Pancakes
Turli
Petulla
Haggis Bon Bons


Emotion Experiment
Click on the video whenever you feel aroused.
(Hover to see the time stamps)
Timestamps
Next


Log Out
Well, you're logged out. I hope you're happy now, hero.
{% extends "base.html" %} {% load widget_tweaks %} {% load bootstrap %} {% block title %}Log Out{% endblock %} {% block body_class %}logout{% endblock %} {% block content %}
Well, you're logged out. I hope you're happy now, hero.


...
This is the blank page for what will hopefully be a succesful project
This is testing if github is listening


--- layout: post title: Developer talent agencies - the truth behind the hype type: post parent_id: '0' published: false password: '' status: draft categories: [] tags: - ideation - startup meta: _wpcom_is_markdown: '1' _oembed_220097354ef38600e6d6270169e684f0: _oembed_time_220097354ef38600e6d6270169e684f0: '1493805464' author: login: timabell email<EMAIL_ADDRESS>display_name: timabell first_name: '' last_name: '' permalink: "/" ---
I've been looking for my next .NET contract recently so I've been spending a lot of time dealing with the day-to-day hassle of searching for and keeping track of my leads, along with dealing with a small army of variable quality recruitment firms. Once again I find myself thinking I'd pay someone to do a lot of this for me, if I could get the new contract even a day earlier, or get a fractionally higher rate (by doing a better job finding work or being a better negotiator) then it could easily pay for itself, just like the accountants I use free up my time to concentrate on my business.
So I did some research, and found 10x - who make some rather bold claims such as the start of "Our Mission" on the 10x about page:
10x exists for one simple reason: to revolutionize the way the world does business
Uh, good luck with that. Sheesh.
Anyway, I initially thought I'd found the answer, an agent to do all the leg-work so I can concentrate on doing actual coding work for clients.
https://flic.kr/p/SYQSYf
What wasn't immediately obvious is that their model is to take a percentage of your contract rate / salary which is the same as most 3rd party recruiters.
10x Management, on the other hand, gets a cut of your hourly rate...
... I feel that eliminating the burden of the administrative drudgery that comes with freelancing is alone well worth their cut~ dristoph
So dristoph's comment on slashdot tells us how it works financially, and shows that I'm not the only contractor who thinks a service in this area has value.
In fact they are struggling to find work for the rockstars (shudder) they already have on their Rolodex:
“Exactly how we tap into the pipeline of companies and startups that need us is still something we’re nailing down,” he said. “We haven’t figured out where the fire hose is.”
This is from The New Yorker article about 10x that 10x still link to in their site's header. (Even though it's a three year old article)
They also only cover a few cities, and only operate in America, so I suspect that like many other third-party recruiters they are building a few lucrative relationships with a manageable number of hiring-companies and easily marketable programmers. That's fine for them but that implies they can't serve the much wider market of developers who want to get the best jobs and rates that they can for minimal time-cost.
10x has been covered at least three times on the mighty (and time-consuming) slashdot with many insightful comments underneath each:
The hype machine continues. The 10x website changes every time I look at it. The list of cities gone, so-called 10x'er profiles have been added.
In my personal experience in order to find the optimal contract given my current employee count of one I have to use a broad search, and that includes dealing with third-party recruiters.


Album > The Beatles (White Album) [Disc 2]
Artist > The Beatles
Year of Release > 1968
Label > Apple
Tracks
1.
Birthday
2.
Yer Blues
3.
Mother Nature's Son
4.
Everybody's Got Something To Hide Except Me And My Monkey
5.
Sexy Sadie
6.
Helter Skelter
7.
Long, Long, Long
8.
Revolution 1
9.
Honey Pie
10.
Savoy Truffle
11.
Cry Baby Cry
12.
Revolution 9
13.
Good Night


Tell us about TeenPhest
Tell Us About Klin Aura
Tell Us About TBA
Tell us about store
Tell Us About Teenz Parliament
Tell Us About K-Hub


About Me
I'm a web developer in training based in Seattle, Washington.
I always fascinated by web development and explore various ways or shortcuts to approach the solution. My technical aptitude in cutting-edge web technologies, combined with abilities such as quick learner, reliable personality, and always hold a positive attitude, make me a strong addition to any engineering team.
My Skills
-
Jedi Ninja Greek Newbie