Conventions¶
The binary format for WebAssembly modules is a dense linear encoding of their abstract syntax. [1]
The format is defined by an attribute grammar whose only terminal symbols are bytes. A byte sequence is a well-formed encoding of a module if and only if it is generated by the grammar.
Each production of this grammar has exactly one synthesized attribute: the abstract syntax that the respective byte sequence encodes. Thus, the attribute grammar implicitly defines a decoding function (i.e., a parsing function for the binary format).
Except for a few exceptions, the binary grammar closely mirrors the grammar of the abstract syntax.
Note
Some phrases of abstract syntax have multiple possible encodings in the binary format. For example, numbers may be encoded as if they had optional leading zeros. Implementations of decoders must support all possible alternatives; implementations of encoders can pick any allowed encoding.
The recommended extension for files containing WebAssembly modules in binary format is “\(\mathtt{.wasm}\)” and the recommended Media Type is “\(\mathtt{application/wasm}\)”.
| [1] | Additional encoding layers – for example, introducing compression – may be defined on top of the basic representation defined here. However, such layers are outside the scope of the current specification. |
Grammar¶
The following conventions are adopted in defining grammar rules for the binary format. They mirror the conventions used for abstract syntax. In order to distinguish symbols of the binary syntax from symbols of the abstract syntax, \(\mathtt{typewriter}\) font is adopted for the former.
- Terminal symbols are bytes expressed in hexadecimal notation: \(\def\mathdef778#1{\mathtt{0x#1}}\mathdef778{0F}\).
- Nonterminal symbols are written in typewriter font: \(\mathtt{valtype}, \mathtt{instr}\).
- \(B^n\) is a sequence of \(n\geq 0\) iterations of \(B\).
- \(B^\ast\) is a possibly empty sequence of iterations of \(B\). (This is a shorthand for \(B^n\) used where \(n\) is not relevant.)
- \(B^?\) is an optional occurrence of \(B\). (This is a shorthand for \(B^n\) where \(n \leq 1\).)
- \(x{:}B\) denotes the same language as the nonterminal \(B\), but also binds the variable \(x\) to the attribute synthesized for \(B\).
- Productions are written \(\mathtt{sym} ::= B_1 \Rightarrow A_1 ~|~ \dots ~|~ B_n \Rightarrow A_n\), where each \(A_i\) is the attribute that is synthesized for \(\mathtt{sym}\) in the given case, usually from attribute variables bound in \(B_i\).
- Some productions are augmented by side conditions in parentheses, which restrict the applicability of the production. They provide a shorthand for a combinatorial expansion of the production into many separate cases.
Note
For example, the binary grammar for value types is given as follows:
Consequently, the byte \(\def\mathdef783#1{\mathtt{0x#1}}\mathdef783{7F}\) encodes the type \(\href{../syntax/types.html#syntax-valtype}{\mathsf{i32}}\), \(\def\mathdef784#1{\mathtt{0x#1}}\mathdef784{7E}\) encodes the type \(\href{../syntax/types.html#syntax-valtype}{\mathsf{i64}}\), and so forth. No other byte value is allowed as the encoding of a value type.
The binary grammar for limits is defined as follows:
That is, a limits pair is encoded as either the byte \(\def\mathdef787#1{\mathtt{0x#1}}\mathdef787{00}\) followed by the encoding of a \(\href{../syntax/values.html#syntax-int}{\def\mathdef727#1{{\mathit{u}#1}}\mathdef727{\mathit{32}}}\) value, or the byte \(\def\mathdef788#1{\mathtt{0x#1}}\mathdef788{01}\) followed by two such encodings. The variables \(n\) and \(m\) name the attributes of the respective \(\href{../binary/values.html#binary-int}{\def\mathdef747#1{{\mathtt{u}#1}}\mathdef747{\mathtt{32}}}\) nonterminals, which in this case are the actual unsigned integers those decode into. The attribute of the complete production then is the abstract syntax for the limit, expressed in terms of the former values.
Auxiliary Notation¶
When dealing with binary encodings the following notation is also used:
- \(\epsilon\) denotes the empty byte sequence.
- \(||B||\) is the length of the byte sequence generated from the production \(B\) in a derivation.
Vectors¶
Vectors are encoded with their \(\href{../binary/values.html#binary-int}{\def\mathdef747#1{{\mathtt{u}#1}}\mathdef747{\mathtt{32}}}\) length followed by the encoding of their element sequence.


instruction_queue module¶
-
class
instruction_queue.
InstructionQueue
(head, publisher)[source]¶ Bases:
object
Holds protocol instructions and starts a job.
The instructionArray file is an array (list) of instructions.
- An instruction is an array (list) of groups + a specified tool which executes
- the group.
- A group can be defined as the lifecycle of a tip. Each group holds
- a single command.
- A command is one of the following:
- Transfer; Consolodate; Distribute; Mix
- The instructionQueue iteratively selects an instruction in the
- instructionArray and passes its groups to the
head
object along with the specified tool(pipette). Thehead
object uses its theQueue object (the_queue
) to iteratively processes the groups in the instruction until theQueue is empty, which triggers the InstructionQueue to select the next instruction. All protocol processing stops when the instructionQueue is empty.
-
ins_step
()[source]¶ Increment to the next instruction in the
instructionArray
-
instructionArray
= []¶
-
send_instruction
(instruction)[source]¶ Execute groups (
head.pipette()
) from the given instruction list one by one
-
start_infinity_job
(infinity_instructions)[source]¶ Start a job and save instructions to a variable (infinity_data) so they can be perpetually run with
start_job()


pragma solidity ^0.4.23;
// Adapted from:
// https://github.com/OpenZeppelin/openzeppelin-solidity/blob/ad12381549c4c0711c2f3310e9fb1f65d51c299c/contracts/lifecycle/Pausable.sol
import "../acl/ACLRequiring.sol";
/**
* @title Pausable
* @dev Allows a contract functionality to be paused
* @notice Uses an ACL contract to check for proper authorization to pause/unpause a contract
*/
contract Pausable is ACLRequiring {
/**
* @dev The storage position in the contract storage where the implementation address will be stored
* @notice The implementation value is stored using the 'key-value' nature of the contract storage and
* is thus not affected by the contract's state data layout
*/
bytes32 private constant isPausedStorePosition = keccak256("com.marketplace.pausable.ispaused");
/**
* @dev Paused event is emitted every time the contract is paused
*/
event Paused();
/**
* @dev Unpaused event is emitted every time the contract is unpaused
*/
event Unpaused();
/**
* @dev Constructor function
* @param _aclAddress Address of the ACL contract to be used for authorization purposes
*/
constructor(address _aclAddress) ACLRequiring(_aclAddress) public { }
/**
* @dev Modifier restricts execution by requiring contract to be in an unpaused state
*/
modifier whenNotPaused() {
require(isPaused() == false);
_;
}
/**
* @dev Modifier restricts execution by requiring contract to be in an paused state
*/
modifier whenPaused() {
require(isPaused());
_;
}
/**
* @dev Returns whether the contract is paused
* @return _isPaused Returns true if the contract is paused
*/
function isPaused() public view returns(bool _isPaused) {
bytes32 position = isPausedStorePosition;
assembly {
_isPaused := sload(position)
}
}
/**
* @dev Sets the paused state of the contract
* @param _isPaused New value of the paused state
*/
function setIsPaused(bool _isPaused) private {
bytes32 position = isPausedStorePosition;
assembly {
sstore(position, _isPaused)
}
}
/**
* @dev Pauses the contract execution
*/
function pause() onlyProductOwner whenNotPaused public {
setIsPaused(true);
emit Paused();
}
/**
* @dev Unpauses the contract execution
*/
function unpause() onlyProductOwner whenPaused public {
setIsPaused(false);
emit Unpaused();
}
} |


BMCF
Home
(current)
About
Campaigns
Blog
Logout
BMSC
Create Funding account
Remember me
Create Funding account


|
Microsoft Azure IoT Device SDK for C
1.0.0-preview.3
The Microsoft Azure IoT device libraries for C contain code that facilitates building devices and applications that connect to and are managed by Azure IoT Hub services.
|
Extends the IoTHubCLient_LL module with additional features. More...
#include "iothub_client_ll.h"
Go to the source code of this file.
Functions | |
| IOTHUB_CLIENT_HANDLE | IoTHubClient_CreateFromConnectionString (const char *connectionString, IOTHUB_CLIENT_TRANSPORT_PROVIDER protocol) |
| Creates a IoT Hub client for communication with an existing IoT Hub using the specified connection string parameter. More... | |
| IOTHUB_CLIENT_HANDLE | IoTHubClient_Create (const IOTHUB_CLIENT_CONFIG *config) |
| Creates a IoT Hub client for communication with an existing IoT Hub using the specified parameters. More... | |
| void | IoTHubClient_Destroy (IOTHUB_CLIENT_HANDLE iotHubClientHandle) |
| Disposes of resources allocated by the IoT Hub client. This is a blocking call. More... | |
| IOTHUB_CLIENT_RESULT | IoTHubClient_SendEventAsync (IOTHUB_CLIENT_HANDLE iotHubClientHandle, IOTHUB_MESSAGE_HANDLE eventMessageHandle, IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK eventConfirmationCallback, void *userContextCallback) |
Asynchronous call to send the message specified by eventMessageHandle . More... | |
| IOTHUB_CLIENT_RESULT | IoTHubClient_GetSendStatus (IOTHUB_CLIENT_HANDLE iotHubClientHandle, IOTHUB_CLIENT_STATUS *iotHubClientStatus) |
| This function returns the current sending status for IoTHubClient. More... | |
| IOTHUB_CLIENT_RESULT | IoTHubClient_SetMessageCallback (IOTHUB_CLIENT_HANDLE iotHubClientHandle, IOTHUB_CLIENT_MESSAGE_CALLBACK_ASYNC messageCallback, void *userContextCallback) |
| Sets up the message callback to be invoked when IoT Hub issues a message to the device. This is a blocking call. More... | |
| IOTHUB_CLIENT_RESULT | IoTHubClient_GetLastMessageReceiveTime (IOTHUB_CLIENT_HANDLE iotHubClientHandle, time_t *lastMessageReceiveTime) |
This function returns in the out parameter lastMessageReceiveTime what was the value of the time function when the last message was received at the client. More... | |
| IOTHUB_CLIENT_RESULT | IoTHubClient_SetOption (IOTHUB_CLIENT_HANDLE iotHubClientHandle, const char *optionName, const void *value) |
This API sets a runtime option identified by parameter optionName to a value pointed to by value . optionName and the data type value is pointing to are specific for every option. More... | |
Extends the IoTHubCLient_LL module with additional features.
IoTHubClient is a module that extends the IoTHubCLient_LL module with 2 features:
| IOTHUB_CLIENT_HANDLE IoTHubClient_Create | ( | const IOTHUB_CLIENT_CONFIG * | config | ) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified parameters.
| config | Pointer to an IOTHUB_CLIENT_CONFIG structure |
The API does not allow sharing of a connection across multiple devices. This is a blocking call.
IOTHUB_CLIENT_HANDLE
value that is used when invoking other functions for IoT Hub client and NULL
on failure. | IOTHUB_CLIENT_HANDLE IoTHubClient_CreateFromConnectionString | ( | const char * | connectionString, |
| IOTHUB_CLIENT_TRANSPORT_PROVIDER | protocol | ||
| ) |
Creates a IoT Hub client for communication with an existing IoT Hub using the specified connection string parameter.
| connectionString | Pointer to a character string |
| protocol | Function pointer for protocol implementation |
Sample connection string:
HostName=[IoT Hub name goes here].[IoT Hub suffix goes here, e.g., private.azure-devices-int.net];DeviceId=[Device ID goes here];SharedAccessKey=[Device key goes here];
IOTHUB_CLIENT_HANDLE
value that is used when invoking other functions for IoT Hub client and NULL
on failure. | void IoTHubClient_Destroy | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle | ) |
Disposes of resources allocated by the IoT Hub client. This is a blocking call.
| iotHubClientHandle | The handle created by a call to the create function. |
| IOTHUB_CLIENT_RESULT IoTHubClient_GetLastMessageReceiveTime | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle, |
| time_t * | lastMessageReceiveTime | ||
| ) |
This function returns in the out parameter lastMessageReceiveTime
what was the value of the time
function when the last message was received at the client.
| iotHubClientHandle | The handle created by a call to the create function. |
| lastMessageReceiveTime | Out parameter containing the value of time function when the last message was received. |
| IOTHUB_CLIENT_RESULT IoTHubClient_GetSendStatus | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle, |
| IOTHUB_CLIENT_STATUS * | iotHubClientStatus | ||
| ) |
This function returns the current sending status for IoTHubClient.
| iotHubClientHandle | The handle created by a call to the create function. |
| iotHubClientStatus | The sending state is populated at the address pointed at by this parameter. The value will be set to IOTHUBCLIENT_SENDSTATUS_IDLE if there is currently no item to be sent and IOTHUBCLIENT_SENDSTATUS_BUSY if there are. |
| IOTHUB_CLIENT_RESULT IoTHubClient_SendEventAsync | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle, |
| IOTHUB_MESSAGE_HANDLE | eventMessageHandle, | ||
| IOTHUB_CLIENT_EVENT_CONFIRMATION_CALLBACK | eventConfirmationCallback, | ||
| void * | userContextCallback | ||
| ) |
Asynchronous call to send the message specified by eventMessageHandle
.
| iotHubClientHandle | The handle created by a call to the create function. |
| eventMessageHandle | The handle to an IoT Hub message. |
| eventConfirmationCallback | The callback specified by the device for receiving confirmation of the delivery of the IoT Hub message. This callback can be expected to invoke the IoTHubClient_SendEventAsync function for the same message in an attempt to retry sending a failing message. The user can specify a NULL value here to indicate that no callback is required. |
| userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
NOTE: The application behavior is undefined if the user calls the IoTHubClient_Destroy function from within any callback.
| IOTHUB_CLIENT_RESULT IoTHubClient_SetMessageCallback | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle, |
| IOTHUB_CLIENT_MESSAGE_CALLBACK_ASYNC | messageCallback, | ||
| void * | userContextCallback | ||
| ) |
Sets up the message callback to be invoked when IoT Hub issues a message to the device. This is a blocking call.
| iotHubClientHandle | The handle created by a call to the create function. |
| messageCallback | The callback specified by the device for receiving messages from IoT Hub. |
| userContextCallback | User specified context that will be provided to the callback. This can be NULL . |
NOTE: The application behavior is undefined if the user calls the IoTHubClient_Destroy function from within any callback.
| IOTHUB_CLIENT_RESULT IoTHubClient_SetOption | ( | IOTHUB_CLIENT_HANDLE | iotHubClientHandle, |
| const char * | optionName, | ||
| const void * | value | ||
| ) |
This API sets a runtime option identified by parameter optionName
to a value pointed to by value
. optionName
and the data type value
is pointing to are specific for every option.
| iotHubClientHandle | The handle created by a call to the create function. |
| optionName | Name of the option. |
| value | The value. |
The options that can be set via this API are:
value
is a pointer to an unsigned
int
with the timeout value in milliseconds. This is only supported for the HTTP protocol as of now. When the HTTP protocol uses CURL, the meaning of the parameter is total request time. When the HTTP protocol uses winhttp, the meaning is the same as the dwSendTimeout
and dwReceiveTimeout
parameters of the WinHttpSetTimeouts API.value
is pointer to a long.value
is pointer to a long.value
is pointer to a long.value
is pointer to a long.value
is pointer to a long.


Log Time with Google Calendar
Start
End
Get meetings from
Prob lay mo!
Unable to log time for the meetings highlighted in red.
Heads up!
No meetings found for that date range.
Meeting
Start Time
End Time
Time Spent
Ticket
Log
Log Time


The following section describes how to set up the Lift Front-End Toolkit module FoBo to provide AngularJS and it's UI modules, bootstrap and more the way it is set up in this demo.
If you plan to use FoBo in a new project I can recommend using the lift-advanced-bs3 Template Application as a starting point then most of the setup presented in this section will be done for you.
Make sure to check for the latest version in the FoBo Github readme .
Embedding the prettyprint dependency settings code here Embedding the prettyprint dependency settings code hereFoBo currently have artifacts for Lift 2.5, 2.6, 3.0 and 3.1. For more information about dependency settings supported toolkits and more, see the FoBo readme on Github .
FoBo takes care of and provides minified resources in production and more easily debuggable code in development, this is done without any need for code changes and at the same time, by using Fobo, you do not clutter your applications assets space with toolkit library code that should not be directly manipulated any way. By changing a available FoBo toolkit init parameters you can quickly change the version of the front end toolkit's you are using or add another FoBo supported one.
Embedding the prettyprint Boot.scala code heredata-lift="head"
attribute to it, then when lift
processes the page it will be moved into the page head, this could be useful if you have page
specific resource needs.
Embedding the prettyprint default.html code here
Embedding the prettyprint index.html code here
Specific to this demo we are setting the data-ng-app="foboDemoApp"
(Angular bootstrap directive) in
the same tag as the lift surround tag this means that we have set the root element of the Angular application
so that it will surround/include most of the code and it will be available on all demo pages.
You are, in your application, of course free to set the data-ng-app name and directive where ever it fits your needs best.


Big Five Personality Test
Home
Personality Quiz
No.
Question
Strongly Disagree
Disagree
Neutral
Agree
Strongly Agree
1.
Feel comfortable around people.
2.
Don't like to draw attention to myself.
3.
Sympathize with others' feelings.
4.
Am not interested in other people's problems.
5.
Am always prepared.
6.
Often forget to put things back in their proper place.
7.
Am relaxed most of the time.
8.
Change my mood a lot.
9.
Spend time reflecting on things.
10.
Do not have a good imagination.


I charge $8 per hour as you read, do not fret, I charge only when I'm working on the website! If you would like to purcahse a website, you can email me at goalscorerbuisness@outlook.com.


EGEA Alumni get-together 2019
Home
Location
Accommodation
Programme
Registration
(current)
Organisers
The registration has ended!
We hope to see you in September! In the meantime, try playing snake :)
Courtesy of xurxodiz


A monotonic clock for scheduling timeouts and delayed messages.
More...
#include <actor_clock.hpp>
Inherited by caf::detail::test_actor_clock, and caf::detail::thread_safe_actor_clock.
|
| enum class | stall_policy {
fail
,
skip
} |
| | Configures how the clock responds to a stalling actor when trying to schedule a periodic action. More...
|
| |
|
using | clock_type = std::chrono::steady_clock |
| | Underlying clock type.
|
| |
|
using | time_point = typename clock_type::time_point |
| | Discrete point in time.
|
| |
|
using | duration_type = typename clock_type::duration |
| | Time interval.
|
| |
|
|
virtual time_point | now () const noexcept |
| | Returns the current wall-clock time.
|
| |
| disposable | schedule (action f) |
| | Schedules an action for execution.
|
| |
| disposable | schedule (time_point t, action f) |
| | Schedules an action for execution at a later time.
|
| |
| virtual disposable | schedule_periodically (time_point first_run, action f, duration_type period)=0 |
| | Schedules an action for periodic execution.
|
| |
| disposable | schedule (time_point t, action f, strong_actor_ptr target) |
| | Schedules an action for execution by an actor at a later time.
|
| |
| disposable | schedule_periodically (time_point first_run, action f, strong_actor_ptr target, duration_type period, stall_policy policy) |
| | Schedules an action for periodic execution by an actor.
|
| |
| disposable | schedule (time_point t, action f, weak_actor_ptr target) |
| | Schedules an action for execution by an actor at a later time.
|
| |
| disposable | schedule_periodically (time_point first_run, action f, weak_actor_ptr target, duration_type period, stall_policy policy) |
| | Schedules an action for periodic execution by an actor.
|
| |
|
disposable | schedule_message (time_point t, strong_actor_ptr receiver, mailbox_element_ptr content) |
| | Schedules an arbitrary message to receiver for time point t .
|
| |
|
disposable | schedule_message (time_point t, weak_actor_ptr receiver, mailbox_element_ptr content) |
| | Schedules an arbitrary message to receiver for time point t .
|
| |
|
disposable | schedule_message (time_point t, group target, strong_actor_ptr sender, message content) |
| | Schedules an arbitrary message to target for time point t .
|
| |
A monotonic clock for scheduling timeouts and delayed messages.
◆ stall_policy
Configures how the clock responds to a stalling actor when trying to schedule a periodic action.
| Enumerator |
|---|
| skip | Causes the clock to dispose an action send an error to the actor.
|
◆ schedule() [1/4]
Schedules an action for execution.
- Parameters
-
- Note
- The action runs on the thread of the clock worker and thus must complete within a very short time in order to not delay other work.
◆ schedule() [2/4]
Schedules an action for execution at a later time.
- Parameters
-
| t | The local time at which the action should run. |
| f | The action to schedule. |
- Note
- The action runs on the thread of the clock worker and thus must complete within a very short time in order to not delay other work.
◆ schedule() [3/4]
Schedules an action for execution by an actor at a later time.
- Parameters
-
| t | The local time at which the action should get enqueued to the mailbox of the target. |
| f | The action to schedule. |
| target | The actor that should run the action. |
◆ schedule() [4/4]
Schedules an action for execution by an actor at a later time.
- Parameters
-
| target | The actor that should run the action. |
| f | The action to schedule. |
| t | The local time at which the action should get enqueued to the mailbox of the target. |
◆ schedule_periodically() [1/3]
Schedules an action for periodic execution.
- Parameters
-
| first_run | The local time at which the action should run initially. |
| f | The action to schedule. |
| period | The time to wait between two runs. A non-positive period disables periodic execution. |
- Note
- The action runs on the thread of the clock worker and thus must complete within a very short time in order to not delay other work.
◆ schedule_periodically() [2/3]
Schedules an action for periodic execution by an actor.
- Parameters
-
| first_run | The local time at which the action should get enqueued to the mailbox of the target for the first time. |
| f | The action to schedule. |
| target | The actor that should run the action. |
| period | The time to wait between two messages to the actor. |
| policy | The strategy for dealing with a stalling target. |
◆ schedule_periodically() [3/3]
Schedules an action for periodic execution by an actor.
- Parameters
-
| first_run | The local time at which the action should get enqueued to the mailbox of the target for the first time. |
| f | The action to schedule. |
| target | The actor that should run the action. |
| period | The time to wait between two messages to the actor. |
| policy | The strategy for dealing with a stalling target. |
The documentation for this class was generated from the following file:
- libcaf_core/caf/actor_clock.hpp


{%extends 'base.html' %} {% block body %}
Sign In
{% from "includes/_formhelpers.html" import render_field %} {% include 'includes/_messages.html' %}
{{render_field(login_form.username, class_="form-control")}}
{{render_field(login_form.password, class_="form-control")}}
{{render_field(login_form.submit2)}}
Not a member yet? Click here to register!
Sign Up!
{% from "includes/_formhelpers.html" import render_field %}
{{render_field(reg_form.name, class_="form-control")}}
{{render_field(reg_form.email, class_="form-control")}}
{{render_field(reg_form.username, class_="form-control")}}
{{render_field(reg_form.password, class_="form-control")}}
{{render_field(reg_form.confirm, class_="form-control")}}
{{render_field(reg_form.submit1)}}
{% endblock %}


|
frontier_exploration_turtlebot
0.1
|
class to find the the presence of the obstacle and to distinguish the position of the obstance in the front or rear of the turtlebot More...
#include <CollisionDetector.h>
Public Member Functions | |
| CollisionDetector () | |
| constructor CollisionDetector class initializes values of CollisionFlag to 0 More... | |
| ~CollisionDetector () | |
| destructor CollisionDetector class destroys CollisionDetector class objects when it goes out of scope. More... | |
| void | laserCallback (const sensor_msgs::LaserScan::ConstPtr &msg) |
| laser callback functionCheck :A call back function to read laserscan data and checks if the obstacle is within the vicinity of the robot and sets the CollisionFlag(0,1,2) based on the position of the object More... | |
| int | checkObstacles () |
| returns the value stored in CollisionFlag More... | |
Private Attributes | |
| int | CollisionFlag |
class to find the the presence of the obstacle and to distinguish the position of the obstance in the front or rear of the turtlebot
Definition at line 46 of file CollisionDetector.h.
| CollisionDetector::CollisionDetector | ( | ) |
constructor CollisionDetector class initializes values of CollisionFlag to 0
| none |
Definition at line 40 of file CollisionDetector.cpp.
References CollisionFlag.
| CollisionDetector::~CollisionDetector | ( | ) |
destructor CollisionDetector class destroys CollisionDetector class objects when it goes out of scope.
| none |
Definition at line 45 of file CollisionDetector.cpp.
| int CollisionDetector::checkObstacles | ( | ) |
returns the value stored in CollisionFlag
| none |
Definition at line 95 of file CollisionDetector.cpp.
References CollisionFlag.
Referenced by PathPlanning::linearPathGenerator(), PathPlanning::spiralPathGenerator(), and TEST().
| void CollisionDetector::laserCallback | ( | const sensor_msgs::LaserScan::ConstPtr & | msg | ) |
laser callback functionCheck :A call back function to read laserscan data and checks if the obstacle is within the vicinity of the robot and sets the CollisionFlag(0,1,2) based on the position of the object
| msg | of type sensor_msgs::LaserScan |
Definition at line 48 of file CollisionDetector.cpp.
References CollisionFlag.
Referenced by PathPlanning::PathPlanning(), and TEST().
|
private |
Definition at line 49 of file CollisionDetector.h.
Referenced by checkObstacles(), CollisionDetector(), and laserCallback().


CCONJ
: coordinating conjunction
This document is a placeholder for the language-specific documentation
for CCONJ
.
Treebank Statistics (UD_Polish)
There are 25 CCONJ
lemmas (0%), 26 CCONJ
types (0%) and 1855 CCONJ
tokens (3%).
Out of 15 observed tags, the rank of CCONJ
is: 10 in number of lemmas, 13 in number of types and 11 in number of tokens.
The 10 most frequent CCONJ
lemmas: i, a, ale, więc, oraz, lub, czy, albo, ani, to
The 10 most frequent CCONJ
types: i, a, ale, więc, oraz, lub, czy, albo, ani, to
The 10 most frequent ambiguous lemmas: i (CCONJ 1180, PART 32), a (CCONJ 234, ADV 1), czy (PART 135, CCONJ 19), ani (CCONJ 16, PART 6), to (PRON 372, VERB 138, AUX 90, CCONJ 13), jak (ADV 80, ADP 29, CCONJ 6), nie (PART 1010, CCONJ 4), aż (PART 21, CCONJ 2, SCONJ 1), tylko (PART 83, CCONJ 2), jednak (PART 107, CCONJ 1)
The 10 most frequent ambiguous types: i (CCONJ 1096, PART 30), a (CCONJ 149, ADV 1), czy (PART 30, CCONJ 19), ani (CCONJ 14, PART 5), to (PRON 199, AUX 78, VERB 74, DET 26, CCONJ 13), jak (ADV 43, ADP 28, CCONJ 6), nie (PART 773, PRON 5, CCONJ 4), aż (PART 17, CCONJ 2), tylko (PART 73, CCONJ 2), jednak (PART 88, CCONJ 1)
- i
- a
- czy
- ani
- to
- jak
- nie
- aż
- tylko
- jednak
Morphology
The form / lemma ratio of CCONJ
is 1.040000 (the average of all parts of speech is 1.696102).
The 1st highest number of forms (2) was observed with the lemma “więc”: Wiec, więc.
The 2nd highest number of forms (1) was observed with the lemma “a”: a.
The 3rd highest number of forms (1) was observed with the lemma “albo”: albo.
CCONJ
does not occur with any features.
Relations
CCONJ
nodes are attached to their parents using 6 different relations: pl-dep/cc (1505; 81% instances), pl-dep/advmod (341; 18% instances), pl-dep/case (5; 0% instances), pl-dep/nmod (2; 0% instances), pl-dep/fixed (1; 0% instances), pl-dep/mark (1; 0% instances)
Parents of CCONJ
nodes belong to 11 different parts of speech: VERB (984; 53% instances), NOUN (575; 31% instances), ADJ (178; 10% instances), PROPN (78; 4% instances), NUM (12; 1% instances), PRON (12; 1% instances), AUX (7; 0% instances), CCONJ (4; 0% instances), DET (3; 0% instances), ADV (1; 0% instances), SCONJ (1; 0% instances)
1847 (100%) CCONJ
nodes are leaves.
7 (0%) CCONJ
nodes have one child.
1 (0%) CCONJ
nodes have two children.
The highest child degree of a CCONJ
node is 2.
Children of CCONJ
nodes are attached using 2 different relations: pl-dep/case (8; 89% instances), pl-dep/advmod (1; 11% instances)
Children of CCONJ
nodes belong to 3 different parts of speech: ADV (4; 44% instances), CCONJ (4; 44% instances), PART (1; 11% instances)
CCONJ in other languages: [u]


Tools: D3.js
I worked together with a doctor, the subject matter expert, from January to July 2023 to bring his visual design of a dashboard displaying patients' health records to life, creating an interactive timeline visualization befitting of high dimensional medical data. This dashboard was meant to be eventually used by clinicians specialised in sexual health. The goal of the project is to transform the way medical data is currently presented, utilizing visualization techniques to represent complex information in a digestible graphical format to easily obtain insights, changes and patterns.
Click here to go directly to the interactive visualization.
The data shown on the UI represents test results, vaccinations, contraceptive methods and medication. The left hand section of the screen is a Summary Timeline, showing time on the x-axis and five clinical domains along the y-axis. For space efficiency, data represented in the Summary Timeline are not always fully granular - in some cases they are summarised or merged sub-categories. Adjacent (to the right) of each of the five domains of the Summary Timeline are five corresponding Detail Panels, specific to each domain and also to a selected date. All data represented in these panels are fully granular.
The Summary Timeline acts as an launch pad from which the user can explore the more granular data of the Detail Panels, as well as robust support for clinical context for the other representations.
The client required the Timeline and Detail Panel of each domain to be exactly adjacent to ensure ease of reference between them.
For the five domains, to help inform the visual design, the client had categorized their 'Conceptual Dimensions': Entity-taxonomic, Property, Temporal, Evaluative
The client then prototyped a static version
The x-axis header shows a timeline for a year, which are divided into months. The timeline can be clicked in year increments, left (past) and right (future). Every date for which data is represented is shown as a blue hyperlink which when clicked, refreshes the dashboard instantly with updated data. A red reference line helps the clinician connect all health records logged on the same selected date, particularly useful because the five domains are spread out vertically across a distance beyond the screen height.
Data is represented in categories, sub-categories and labelled glyphs. One of the challenges was implementing the complex logic of encoding and positioning the glyphs and labels, enhanced by the temporal and hierarchical nature of the data. Glyphs are customized for each domain and encoded to visualize multiple attributes of the record simultaneously. More information about each health record are shown with hover tooltips for each glyph. On click of a glyph, full information is formulated to be shown in the tooltip.
For some domains, important values are rendered on the top right corner of a glyph, instead of only been revealed when the tooltip is activated.
The 'traffic light' colors alongside a legend help clinicians intuitively identify health results. To help clinicians understand the different color encoding of labels, hover tooltips appear with custom content for each domain.
Glyphs are placed strategically on screen in specific rows and columns. Flexbox, CSS and D3.js was used to position the HTML DIV blocks into the correct coordinates on screen, while being responsive to various sreen sizes. A code snippet of how this was done is shown below.
container
.selectAll('.groups')
.data(data, (d) => d[0])
.join(
(enter) => {
// render each sub-category. widthPercs contain an array of percentage values to determine the amount of space each sub-category occupies within a detail panel
const root = enter
.append('div')
.attr('class', (_, i) => `groups group-${i}`)
.style('width', (_, i) => widthPercs[i]);
return root;
},
(update) => update
)
.append('div')
.style('display', 'flex')
.style('flex-direction', 'column')
.selectAll('.boxes')
.data(
(d) => d[1],
(d, i) => d[0] + '-' + i
)
.join(
(enter) => {
// box containing rows of glyphs for each sub-category
const root = enter
.append('div')
.attr('class', (_, i) => `boxes box-${i}`)
.style('border-radius', '8px')
.style(
'background',
'linear-gradient(to bottom right, #efefef, white)'
)
.style('margin', '6px');
root
.append('p')
.style('border-bottom', '1px solid black')
.style('padding', '2px 6px')
.style('font-weight', 'black')
.style('font-size', '14px')
.style('font-family', 'Montserrat')
.style('text-align', 'center')
.html((d) => d[0]); // sub-category title
return root;
},
(update) => update
)
.append('div')
.selectAll('.marker-group-row')
.data(
(d) => d[1],
(d, i) => d[0] + '-' + i
)
.join(
(enter) => {
// a row of glyphs for each sub-category. which row a glyph belonged to had to be specific, not random placement.
return enter
.append('div')
.attr('class', (d) => `marker-group-row marker-group-row-${d[0]}`)
.style('display', 'flex');
},
(update) => update
)
.selectAll('.marker-group')
.data(
(d) => d[1],
(d, i) => d[0] + '-' + i
)
.join(
// append marker group inside each div
(enter) => {
const root = enter
.append('div')
.attr('class', (d) => {
return `marker-group marker-group-${d[0]}`;
})
.style('display', 'flex')
.style('flex-direction', 'column')
.style('padding', '2.5px')
.style('width', window.innerWidth <= 1440 ? '33px' : '48px')
.style('height', '50px');
// append container inside each marker group to store shape and labels, necessary to do this also to resent previous css styles
const markerGroup = root
.append('div')
.style('position', 'relative')
.style('width', window.innerWidth <= 1440 ? '33px' : '48px')
.style('height', '20px');
const markers = markerGroup
.selectAll('.marker')
.data(
// filter for test result at selected date and the last test result before the selected date
(d) =>
d[1]
.filter(
(d) =>
d.timestamp &&
d.timestamp.getTime() < selectedDate.getTime()
)
.sort((a, b) => a['timestamp'] - b['timestamp'])
.slice(-1)
.concat(
d[1].filter(
(d) =>
d.timestamp &&
d.timestamp.getTime() === selectedDate.getTime()
)
),
(d) => d[outerAccessorCol] + '-' + d[innerAccessorCol]
)
.join(
(enter) => {
// render the two test results as glyphs
const markerCurrent = enter
.append('div')
.style('position', 'absolute')
.attr('class', 'marker marker-current')
.style(
'transform',
(d, i) =>
`translate(${
(window.innerWidth <= 1440 ? 45 / 4 : 55 / 4) +
(showPrevious
? (window.innerWidth <= 1440 ? 6 : 7.5) * (i + 1)
: window.innerWidth <= 1440
? 6
: 7.5) +
'px'
},0px)rotate(-135deg)`
)
.style('width', window.innerWidth <= 1440 ? '7px' : '9px')
.style('height', window.innerWidth <= 1440 ? '7px' : '9px')
.on('click', onClick)
.on('mouseover', onMouseEnter)
.on('mouseout', onMouseLeave);
markerCurrent
.filter(
(d) =>
d.timestamp &&
d.timestamp.getTime() === selectedDate.getTime()
)
.style('background-color', colorAccessorScaled);
if (showPrevious) {
markerCurrent
.filter(
(d) =>
d.timestamp &&
d.timestamp.getTime() < selectedDate.getTime()
)
.style('border-width', '2px')
.style('border-style', 'solid')
.style('border-color', colorAccessorScaled)
.style('border-left', colorAccessorScaled)
.style('border-bottom', colorAccessorScaled);
}
return markerCurrent;
},
(update) => update
);
renderHoverableLabels(root, dataset, selectedDate, 'STIs');
return root;
},
(update) => update
);
There are quirks for specific domains, which are summarized below
Regarding STI-related tests, clinicians often ask the question: Was the test result normal on a specific date? Was it normal most recent to that date? Hence, it was necessary to show both test results adjacently. A diamond-shaped glyph, representing a test result on selected date, was chosen to visually match the left arrow-shaped glyph representing a previous result.
BBIs and Vaccines are considered together in their own shared domain because of their strong inter-relationships with each other. This is due to the availability of vaccinations for certain BBIs (HAV and HBV) and the impact of being infected by certain BBIs (in particular HIV, HBV and HCV) on the importance, dosing, scheduling and performance of other vaccines.
There was further layout customization just for this domain to arrange the BBis and Vaccines into the same card component.
On the timeline, contraception and medications doses are are either represented as triangle marks or as a range with a rectangle bar. If the end date of doses exceeds the first and last date of the current year, an arrow head is attached to end(s) of the rectangle bar to visually convey continuity.
My client made a presentation of the final visualization to a group of other experts in the medical field and here was their response:
"They loved it so much that all 16 members unanimously agreed they want it to be the exemplar interface for all future Electronic Health Record tenders. It is going to be part of our speciality's national specification requirements - the first speciality globally that has such sophisticated, tangible requirements."


Our subscriptions include 1-3 nights that you can use each month. Nights can even be collected like points for a 7 night booking. We're currently in prelaunch beta. Apply for your chance to become an early adopter.


Introduction to stunnel
The stunnel package contains a
program that allows you to encrypt arbitrary TCP connections inside
SSL (Secure Sockets Layer) so you can easily communicate with
clients over secure channels. stunnel can be used to add SSL functionality
to commonly used Inetd daemons
such as POP-2, POP-3, and IMAP servers, along with standalone
daemons such as NNTP, SMTP, and HTTP. stunnel can also be used to tunnel PPP over
network sockets without changes to the server package source code.
This package is known to build and work properly using an LFS-9.1
platform.
Package Information
stunnel Dependencies
Optional
netcat
(required for tests), tcpwrappers, and
TOR
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/stunnel
Installation of stunnel
The stunnel daemon
will be run in a chroot jail by an unprivileged
user. Create the new user and group using the following commands as
the root
user:
groupadd -g 51 stunnel &&
useradd -c "stunnel Daemon" -d /var/lib/stunnel \
-g stunnel -s /bin/false -u 51 stunnel
Note
A signed SSL Certificate and a Private Key is necessary to run
the stunnel daemon.
After the package is installed, there are instructions to
generate them. However, if you own or have already created a
signed SSL Certificate you wish to use, copy it to /etc/stunnel/stunnel.pem
before starting the
build (ensure only root
has read
and write access). The .pem
file
must be formatted as shown below:
-----BEGIN PRIVATE KEY-----
<many encrypted lines of private key>
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
<many encrypted lines of certificate>
-----END CERTIFICATE-----
-----BEGIN DH PARAMETERS-----
<encrypted lines of dh parms>
-----END DH PARAMETERS-----
Install stunnel by running the
following commands:
Note
For some systems with binutils
versions prior to 2.25, configure may fail. If
necessary, fix it either with:
sed -i '/LDFLAGS.*static_flag/ s/^/#/' configure
or, if LLVM-10.0.0 with Clang is installed, you can
replace ./configure
... with CC=clang
./configure ... in the first command below.
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--disable-systemd &&
make
If you have installed the optional netcat application, the
regression tests can be run with make
check.
Now, as the root
user:
make docdir=/usr/share/doc/stunnel-5.56 install
If you do not already have a signed SSL Certificate and Private
Key, create the stunnel.pem
file in
the /etc/stunnel
directory using the
command below. You will be prompted to enter the necessary
information. Ensure you reply to the
Common Name (FQDN of your server) [localhost]:
prompt with the name or IP address you will be using to access the
service(s).
To generate a certificate, as the root
user, issue:
make cert
Command Explanations
--disable-systemd
: This
switch disables systemd socket activation support which is not
available in BLFS.
make docdir=...
install: This command installs the package and
changes the documentation installation directory to standard naming
conventions.
Configuring stunnel
Config Files
/etc/stunnel/stunnel.conf
Configuration Information
As the root
user, create the
directory used for the .pid
file
created when the stunnel daemon
starts:
install -v -m750 -o stunnel -g stunnel -d /var/lib/stunnel/run &&
chown stunnel:stunnel /var/lib/stunnel
Next, create a basic /etc/stunnel/stunnel.conf
configuration file
using the following commands as the root
user:
cat >/etc/stunnel/stunnel.conf << "EOF"
; File: /etc/stunnel/stunnel.conf
; Note: The pid and output locations are relative to the chroot location.
pid = /run/stunnel.pid
chroot = /var/lib/stunnel
client = no
setuid = stunnel
setgid = stunnel
cert = /etc/stunnel/stunnel.pem
;debug = 7
;output = stunnel.log
;[https]
;accept = 443
;connect = 80
;; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SSL
;; Microsoft implementations do not use SSL close-notify alert and thus
;; they are vulnerable to truncation attacks
;TIMEOUTclose = 0
EOF
Finally, add the service(s) you wish to encrypt to the
configuration file. The format is as follows:
[<service>
]
accept = <hostname:portnumber>
connect = <hostname:portnumber>
If you use stunnel to encrypt a
daemon started from [x]inetd, you may need to
disable that daemon in the /etc/[x]inetd.conf
file and enable a
corresponding <service>
_stunnel service.
You may have to add an appropriate entry in /etc/services
as well.
For a full explanation of the commands and syntax used in the
configuration file, issue man
stunnel.
Boot Script
To automatically start the stunnel daemon when the system
is booted, install the /etc/rc.d/init.d/stunnel
bootscript from the
blfs-bootscripts-20191204 package.
make install-stunnel


--- title: Deprecated features in PHP 7.0.x version: "7.0" tags: - "7.0" - deprecated ---
PHP 4 style constructors (methods that have the same name as the class they
are defined in) are deprecated, and will be removed in the future. PHP 7
will emit E_DEPRECATED
if a PHP 4 constructor is the
only constructor defined within a class. Classes that implement a
__construct() method are unaffected.
<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>
The above example will output:
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; foo has a deprecated constructor in example.php on line 3
Static calls to methods that are not declared static are deprecated, and may be removed in the future.
<?php
class foo {
function bar() {
echo 'I am not static!';
}
}
foo::bar();
?>
The above example will output:
Deprecated: Non-static method foo::bar() should not be called statically in - on line 8 I am not static!
The salt option for the password_hash() function has been deprecated to prevent developers from generating their own (usually insecure) salts. The function itself generates a cryptographically secure salt when no salt is provided by the developer - therefore custom salt generation should not be needed.
capture_session_meta
SSL context option
The capture_session_meta
SSL context option has been
deprecated. SSL metadata is now available through the
stream_get_meta_data() function.


Introduction
Two approaches for calculating partition functions
- Markov chains to sample
- (Jerrum04, JerrumSinclair1993) Certain Markov chains mix rapidly; used to approximate permanent with nonnegative entries and partition function for ferromagnetic Ising.
- Variational methods: partition function is the solution of a (intractable) optimization problem over the polytope of valid distributions.
- Popular, faster, easier to parallelize
- Little theoretical understanding
- Another algorithm: Belief propagation (solving non-convex relaxation)
- Regime of correlation decay and locally tree-like graphs.
Use Sherali-Adams and Lasserre convex programming hierarchies to get the first provable, convex variational methods. They work because local correlations propagate to global correlations, the opposite of correlation decay.
(See hierarchies.)
Definitions and setting
Ising model \(p(x)\propto \exp\pa{\sum_{i,j} J_{i,j}x_ix_j}\), \(x\in \{-1,1\}^n\) is \(\De\)-dense if letting \(J_T=\sum_{i,j}|J_{i,j}|\), \[
\forall i,j\in [n], \De |J_{i,j}|\le \fc{J_T}{n^2},
\] (Ex. if the \(J_{i,j}\) is 1 for an edge and 0 for a non-edge, and the graph has density \(cn^2\), then \(\De = \rc{c}\).)
\(p\) is regular if \(\sum_j |J_{i,j}|=J'\). The adjacency matrix is \(A_{i,j} = \fc{|J_{i,j}|}{J'}\). Let \(\rank_\tau(A)\) be the number of eigenvalues with \(\ad\ge\tau\).
Why dense Ising models?
- There are PTAS for CSPs for dense constraint graphs.
- Mean-field ferromagnetic Ising model: each spin interacts with every other spin.
Result
- Algorithm based on SA hierarchy achieving additive approximation of \(\ep J_T\) to \(\ln Z\) in time \(n^{O\prc{\De \ep^2}}\).
- Algorithm based on Lasserre hierarchy achieving additive approximation of \(\ep n J'\) to \(\ln Z\) in time \(n^{\rank_{\Om(\ep^2)}(A)/\Om(\ep^2)}\).
Method
Dense graphs, SA
- (Variational characterization of \(\ln Z\)) \(\ln Z = \max_{\mu\in M} \sum_{i\sim j} J_{i,j} \E_\mu [x_ix_j] + H(\mu)\) where \(M\) is the polytope of distributions over \(\{-1,1\}^n\). (Maximum achieved at \(\mu=p\).)
- Proof. The KL divergence to \(p\) is \(\ge 0\).
- Relax to \(M'\supeq M\).
- Need to design surrogates for \(H(\mu)\).
- Popular choice: Bethe entropy. (But it is not an upper bound in general.)
- Instead, design \(\wt H(\mu) \ge H(\mu)\) whenever \(\mu\in M\), then round to distributions.
- Define the augmented mean-field pseudo-entropy functional \[
H_{aMF,k}(\mu) = \min_{|S|\le k}H(\mu_S) + \sum_{i\nin S} H(\mu_i |\mu_S).
\]
- By the chain rule and “conditioning reduces entropy”, \(H(\mu)\le H_{aMF,k}(\mu)\).
- \(H(\mu_i|\mu_S)\) is concave, so \(H_{aMF,k}(\mu)\) is concave. (Proof omitted.)
- The relaxation is \[
\max_{\mu\in SA(O(1/(\De \ep^2)))} \bc{
\sum_{i,j} J_{i,j} \E_\mu[x_ix_j] + H_{aMF,k}(\mu)
}
\]
- Correlation rounding: pick a seed set, condition on it, and round other variables independently. (YoshidaZhou2014) There is a set of size \(k=O\prc{\De \ep^2}\) such that \[
\ab{\sum_{i,j} J_{i,j} \E_\mu[x_ix_j|x_S] - \sum_{i,j} J_{i,j} \E_\mu [x_i|x_S] \E_\mu[x_j|x_S]}\le \fc{100}{\De k}J_T.
\]
- Letting \(\wt\mu(x) = \mu(x_S) \prod_{i\nin S} \mu(x_i|x_S)\), \(\E_{\wt\mu} [x_ix_j|x_S] = \E_\mu[x_i|x_S]\mu[x_j|x_S]\).Combine YZ14 with \(H\le H_{aMF,k}\).
Low threshold rank, Lasserre
- The correlation rounding bound changes to: \(\exists |S|\le \rank_{\Om(\ep^2)}(A)\), \(...\le \ep J_T\).
Interpretation
- High temperature \(|H| = O\prc{d}\)
- Dobrushin’s uniqueness criterion: correlation decay
- MC methods work and give \((1+\ep)\) factor approximation, stronger.
- Transition threshold \(|J|=\Te\prc{d}\).
- MC provide no nontrivial guarantee.
- We get \(\ep n\) additive factor approximation.
- Low temperature \(|J|=\om\prc{d}\). :(


Simple, embeddable component to download the current webpage to a PDF via Inq.pub
To use just copy the code below and customize as needed
Code loading...


Marc meeting: nonparametric-bayes manuscript
Very good meeting today going over some big picture considerations in the presentation of the nonparametric-bayes manuscript with Marc. (Also see new entries in issues log on nonparametric-bayes.) Make it clear that we are making a point rather than providing a tool. Focus on the tipping point context rather than the general management context.
- Comparison against a parametric Bayesian model (40)
- Comparison against an active learning parametric model facing a tipping point (41)
Parametric Bayesian model
Drafting parametric Bayesian case for comparison, following Marc’s suggestion. So far, code as implemented in BUGS
More on the exit time problem
- Alan pointed me to earlier work of Schuss & Matkowsky (1979)
- Also, an electronic version of Don Ludwig’s article: Ludwig (1981)
Warning signals Reading
Alan pointed out Boerlijst et. al. (2013) on warning signals in PLoS ONE today. A very nice piece! It’s quite useful how it show that the early warning signal can appear in unmonitored variables (e.g. juvenile dynamics) or in variables without adequate noise to provide a signal. Kind of funny that they pitch it as a counterexample to the conjecture that early warning signals are universal, since even Scheffer has avoided that word, and it’s not really a counterexample given the caveat of some process noise and complete observability of the system people have so far assumed (while your work with Derin is a more conclusive counter-example by going beyond fold bifurcations)… Anyway, good examples. We need a better understanding of warning signals in this multi-dimensional context at large.
Recently Noam pointed out Streeter & Dugmore (2013) , which looks like a nice spatial warning signal example (with the classic patterns, rather than the Bel et. al. (2012) pattern), but haven’t had time for a closer read yet.
Other reading
Trying to get a hold of Ludwig & Walters (1981) as well. A tough day for reading with the UCSC subscription access down due to “power outages”
Interesting preprint on advice for data reuse, White et. al. (2013)
Misc and code-tricks
My knitr scripts are not executing in parallel with snow/snowfall packages(?) Parallelizes fine when run chunk by chunk. (e.g. example with snowfall). Knitr runs parallel fine with
multicore
. Weird.An interesting puzzle on knitr list today: wrangling crazy ascii tables in
Hmisc::summary.function
. A good solution would just rewrite the class’sprint
method to be a table object (e.g. compatible withxtable
andpander::pandoc_table
), but instead we can hack the ascii, adjusting the options that are passed toprint.char.matrix
:Created a PURL persistent identifier for the notebook purl.org/globalecology/lab-notebook. Existing public top level domain. Waiting for approval for my own top-level domain (cboettig).
library(Hmisc)
df = data.frame(Age = round(rnorm(100, 50,15)), Sex = rep(c("M", "W")))
out <- summary.formula( ~ Age + Sex, data = df, method = "reverse")
print(out, hsep= '|', csep='|', vsep='-', left.border=FALSE, top.border=FALSE)
References
- Golan Bel, Aric Hagberg, Ehud Meron, (2012) Gradual Regime Shifts in Spatially Extended Ecosystems. Theoretical Ecology 5 591-604 10.1007/s12080-011-0149-6
- Maarten C. Boerlijst, Thomas Oudman, André M. de Roos, Ricard V. Solé, (2013) Catastrophic Collapse Can Occur Without Early Warning: Examples of Silent Catastrophes in Structured Ecological Models. Plos One 8 e62033-NA 10.1371/journal.pone.0062033
- Donald Ludwig, Carl J. Walters, (1981) Measurement Errors And Uncertainty in Parameter Estimates For Stock And Recruitment. Canadian Journal of Fisheries And Aquatic Sciences 38 711-720 10.1139/f81-094
- Zeev Schuss, Bernard J. Matkowsky, (1979) The Exit Problem: A New Approach to Diffusion Across Potential Barriers. Siam Journal on Applied Mathematics 36 604-623 10.1137/0136043
- R. Streeter, A. J. Dugmore, (2013) Anticipating Land Surface Change. Proceedings of The National Academy of Sciences 110 5779-5784 10.1073/pnas.1220161110
- Ethan White, Elita Baldridge, Zachary Brym, Kenneth Locey, Daniel McGlinn, Sarah Supp, (2013) Nine simple ways to make it easier to (re)use your data. PeerJ PrePrints https://peerj.com/preprints/7
- Donald Ludwig, (1981). Escape from Domains of Attraction for Systems Perturbed by Noise, Nonlinear Phenomena in Physics and Biology.


Today DZone released my first Refcard: ”Selenium 2.0: Using the WebDriver API to Create Robust User Acceptance Tests.” I have been interested in writing a Refcard for a long time but have never pulled the trigger. For whatever reason, I decided to jump on the bandwagon last month. Writing this card was quite a challenge, as it’s difficult to boil down a big topic into only six pages while keeping it useful. Thus far the feedback from the community has been largely positive.
If you’re looking for your next automated testing tool for browser-based user acceptance tests, download the card and let me know what you think!


N64 Wasm (it may not look like its loading, but it is. just press the play button once and wait for a bit.)
Play Game
Browse
Remap Buttons
Login
Logout
Advanced
Advanced
Options
Import Save File (EEP)
{ data.eepName }
Import Save File (SRA)
{ data.sraName }
Import Save File (FLA)
{ data.flaName }
{rom.title}
Load Savestate
{item.Name}
New Rom
Advanced
Export Save (EEP)
Export Save (SRA)
Export Save (FLA)
Options
Reset
Save Cloud
Load Cloud
Save State
Load State
Zoom Out
Zoom In
Full Screen
Drag/Drop
Rom File
View source on GitHub
Login
×
Password
Remap Buttons
×
Player 1
Options
Button
Keyboard
Joypad
Remap
D-Up
Key
Joypad
D-Down
Key
Joypad
D-Left
Key
Joypad
D-Right
Key
Joypad
A
Key
Joypad
B
Key
Joypad
Start
Key
Joypad
Z
Key
Joypad
L
Key
Joypad
R
Key
Joypad
Menu
Key
Joypad
CUP
Key
CDOWN
Key
CLEFT
Key
CRIGHT
Key
UP
Key
DOWN
Key
LEFT
Key
RIGHT
Key
Please press a { data.remapMode }
{ data.inputController.Key_Last }
Disable Audio Sync (may help with choppy framerates)
Show FPS
Player 2 Invert Y-Axis
Player 3 Invert Y-Axis
Player 4 Invert Y-Axis


// create image for spaceship
PanicBlaster
Progress
Energy
Level
0
AX
0
AY
0
You Lose - DOUG DURHAM!!!
Press enter to try again
You have completed level
0
Press enter to continue
Don't Panic
Press enter to continue
Game Paused
Press 'p' to Continue