Up to now, SKiDL supported hierarchy by applying the @subcircuit
decorator to a Python function:
@subcircuit
def analog_average(in1, in2, avg):
"""Output the average of the two inputs."""
# Create two 1K resistors.
r1, r2 = 2 * Part('Device', 'R', value='1K', dest=TEMPLATE)
# Each input connects thru a resistor to the avg output.
r1[1,2] += in1, avg
r2[1,2] += in2, avg
Then this subcircuit is instantiated by calling the function with nets passed as arguments:
in1, in2, in3, in4, out1, out2 = Net()*6 # Make some I/O nets.
analog_average(in1, in2, out1) # One instantiation of the averager.
... Some more code ...
analog_average(in3, in4, out2) # A second instantiation.
It was pointed out that this method of instantiating subcircuits is quite different from what is used for parts. Unlike the connections to a subcircuit that are all made at a single place when the function is called, the connections to a part can be placed at various, non-contiguous locations in the code:
q_npn = Part("Device", "Q_NPN_BCE") # Instantiate a transistor.
...
q_npn['E'] += Net('GND') # Connect the emitter to ground.
...
q_npn['B'] += in1 # Connect an input to the base.
...
q_npn['C'] += out1 # Connect the output to the collector.
Another issue is that you can pass a part instance as an argument to a subcircuit that connects it to the internal circuitry. But you can’t do the same thing with a subcircuit function without making changes to the code because of the syntactic differences in how connections are made:
@subcircuit
def analog_average(in1, in2, avg, r):
"""Output the average of the two inputs."""
r1, r2 = r(num_copies=2) # Create two copies of the resistor part.
r1[1,2] += in1, avg
r2[1,2] += in2, avg
# If r was a subcircuit function, this would have to be written as:
# r(in1, avg)
# r(in2, avg)
To make subcircuits act more like parts, the @package
decorator has been introduced.
Just replace the @subcircuit
decorator while keeping everything else the same:
@package
def analog_average(in1, in2, avg):
r1, r2 = 2 * Part('Device', 'R', value='1K', dest=TEMPLATE)
r1[1,2] += in1, avg
r2[1,2] += in2, avg
Instantiating the subcircuit now occurs in two phases. First, create instances of the subcircuit wherever they are needed:
avg1 = analog_average()
...
avg2 = analog_average()
In the second phase, make connections to these subcircuits as if they were parts with the names of the function parameters serving as pin names:
in1, in2, in3, in4, out1, out2 = Net()*6
# Make connections. You can use either [] or . to reference the I/O.
avg1['in1'] += in1
avg1.in2 += in2
avg1['avg'] += out1
...
avg2['in1'] += in3
avg2['in2'] += in4
avg2.avg += out2
In addition to nets, pins, and buses, you can pass any other type of
parameter to subcircuits.
For example, analog_average
could take a float as a ratio
parameter to
set the amount each input contributes to the output:
@package
def analog_average(in1, in2, avg, ratio):
r = Part('Device', 'R', dest=TEMPLATE)
r1 = r(value=2000 * ratio)
r2 = r(value=2000 * (1-ratio))
r1[1,2] += in1, avg
r2[1,2] += in2, avg
Then the subcircuit can either be instantiated with a given ratio:
avg1 = analog_average(ratio=0.25)
avg1.in1 += in1
avg1.in2 += in2
avg1.avg += out1
or you can set the ratio outside the function call:
avg2 = analog_average()
avg2.ratio = 0.25 # Use a normal assignment (=) since this is not a circuit connection.
avg2.in1 += in3
avg2.in2 += in4
avg2.avg += out2
A subcircuit function instantiates its circuitry when it is called.
But this doesn’t happen when using a package.
Instead, the subcircuit is placed in a list and executed after the
complete circuit is finalized
(i.e., whenever ERC()
or generate_netlist()
is called).
The arguments passed to the function consist of the connections
and other values that were assigned to the package parameters in the preceding code.
That’s about it for the @package
decorator.
Since it’s new, it hasn’t seen a lot of use and there could be unknown bugs
lying in wait.
If you have questions or problems, please ask on the
SKiDL forum or
raise an issue.


Base class to control a connected camera. More...
#include <stcamera_interface.h>
Public Member Functions | |
| bool | deviceIsLost () |
| StCameraInterface (StApi::IStDeviceReleasable *dev, ros::NodeHandle nh_parent, const std::string &camera_namespace, StParameter *param, uint32_t queue_size=STCAMERA_QUEUE_SIZE) | |
| virtual | ~StCameraInterface () |
Protected Member Functions | |
| bool | enableChunkCallback (omronsentech_camera::EnableChunk::Request &req, omronsentech_camera::EnableChunk::Response &res) |
| bool | enableEventAcquisitionCallback (omronsentech_camera::EnableEventAcquisition::Request &req, omronsentech_camera::EnableEventAcquisition::Response &res) |
| bool | enableEventNodeCallback (omronsentech_camera::EnableEventNode::Request &req, omronsentech_camera::EnableEventNode::Response &res) |
| bool | enableImageAcquisitionCallback (omronsentech_camera::EnableImageAcquisition::Request &req, omronsentech_camera::EnableImageAcquisition::Response &res) |
| bool | enableTriggerCallback (omronsentech_camera::EnableTrigger::Request &req, omronsentech_camera::EnableTrigger::Response &res) |
| void | eventDataStreamCB (StApi::IStCallbackParamBase *p, void *pvContext) |
| void | eventDeviceCB (StApi::IStCallbackParamBase *p, void *pvContext) |
| void | eventGenApiNodeCB (GenApi::INode *p, void *pvContext) |
| void | eventInterfaceCB (StApi::IStCallbackParamBase *p, void *pvContext) |
| void | eventSystemCB (StApi::IStCallbackParamBase *p, void *pvContext) |
| bool | executeNodeCallback (omronsentech_camera::ExecuteNode::Request &req, omronsentech_camera::ExecuteNode::Response &res) |
| MapCallback * | getCallbackMap (std::string &module_name) |
| bool | getChunkListCallback (omronsentech_camera::GetChunkList::Request &req, omronsentech_camera::GetChunkList::Response &res) |
| bool | getEnumListCallback (omronsentech_camera::GetEnumList::Request &req, omronsentech_camera::GetEnumList::Response &res) |
| bool | getEventAcquisitionStatusListCallback (omronsentech_camera::GetEventAcquisitionStatusList::Request &req, omronsentech_camera::GetEventAcquisitionStatusList::Response &res) |
| bool | getEventNodeStatusListCallback (omronsentech_camera::GetEventNodeStatusList::Request &req, omronsentech_camera::GetEventNodeStatusList::Response &res) |
| bool | getGenICamNodeInfoCallback (omronsentech_camera::GetGenICamNodeInfo::Request &req, omronsentech_camera::GetGenICamNodeInfo::Response &res) |
| bool | getImageAcquisitionStatusCallback (omronsentech_camera::GetImageAcquisitionStatus::Request &req, omronsentech_camera::GetImageAcquisitionStatus::Response &res) |
| bool | getLastErrorCallback (omronsentech_camera::GetLastError::Request &req, omronsentech_camera::GetLastError::Response &res) |
| GenApi::INodeMap * | getNodeMap (std::string &module_name) |
| bool | getTriggerListCallback (omronsentech_camera::GetTriggerList::Request &req, omronsentech_camera::GetTriggerList::Response &res) |
| void | initializeCameraInfo () |
| void | publishEventDefault (omronsentech_camera::Event &msg) |
| bool | readNodeBoolCallback (omronsentech_camera::ReadNodeBool::Request &req, omronsentech_camera::ReadNodeBool::Response &res) |
| bool | readNodeCallback (omronsentech_camera::ReadNode::Request &req, omronsentech_camera::ReadNode::Response &res) |
| bool | readNodeEnumCallback (omronsentech_camera::ReadNodeEnum::Request &req, omronsentech_camera::ReadNodeEnum::Response &res) |
| bool | readNodeFloatCallback (omronsentech_camera::ReadNodeFloat::Request &req, omronsentech_camera::ReadNodeFloat::Response &res) |
| bool | readNodeIntCallback (omronsentech_camera::ReadNodeInt::Request &req, omronsentech_camera::ReadNodeInt::Response &res) |
| bool | readNodeStringCallback (omronsentech_camera::ReadNodeString::Request &req, omronsentech_camera::ReadNodeString::Response &res) |
| bool | sendSoftTriggerCallback (omronsentech_camera::SendSoftTrigger::Request &req, omronsentech_camera::SendSoftTrigger::Response &res) |
| bool | writeNodeBoolCallback (omronsentech_camera::WriteNodeBool::Request &req, omronsentech_camera::WriteNodeBool::Response &res) |
| bool | writeNodeCallback (omronsentech_camera::WriteNode::Request &req, omronsentech_camera::WriteNode::Response &res) |
| bool | writeNodeEnumIntCallback (omronsentech_camera::WriteNodeEnumInt::Request &req, omronsentech_camera::WriteNodeEnumInt::Response &res) |
| bool | writeNodeEnumStrCallback (omronsentech_camera::WriteNodeEnumStr::Request &req, omronsentech_camera::WriteNodeEnumStr::Response &res) |
| bool | writeNodeFloatCallback (omronsentech_camera::WriteNodeFloat::Request &req, omronsentech_camera::WriteNodeFloat::Response &res) |
| bool | writeNodeIntCallback (omronsentech_camera::WriteNodeInt::Request &req, omronsentech_camera::WriteNodeInt::Response &res) |
| bool | writeNodeStringCallback (omronsentech_camera::WriteNodeString::Request &req, omronsentech_camera::WriteNodeString::Response &res) |
Base class to control a connected camera.
This is a base class to control a connected camera, including callback for services.
Definition at line 145 of file stcamera_interface.h.
| stcamera::StCameraInterface::StCameraInterface | ( | StApi::IStDeviceReleasable * | dev, |
| ros::NodeHandle | nh_parent, | ||
| const std::string & | camera_namespace, | ||
| StParameter * | param, | ||
| uint32_t | queue_size = STCAMERA_QUEUE_SIZE |
||
| ) |
Constructor.
| [in] | dev | Pointer to the IStDeviceReleasable of the device. |
| [in] | nh_parent | The main ROS node handle. |
| [in] | camera_namespace | The namespace for the device. |
| [in] | param | Pointer to the StParameter class instance. |
| [in] | queue_size | Used for initializing publisher (Maximum number of outgoing messages to be queued for delivery to subscribers). Default is set to STCAMERA_QUEUE_SIZE |
Definition at line 41 of file stcamera_interface.cpp.
|
virtual |
Destructor.
All event node callbacks are deregistered and the callbacks are released here.
Definition at line 248 of file stcamera_interface.cpp.
| bool stcamera::StCameraInterface::deviceIsLost | ( | ) |
Check if the device is disconnected.
Definition at line 292 of file stcamera_interface.cpp.
|
protected |
ROS service callback for enabling or disabling chunk.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1021 of file stcamera_interface.cpp.
|
protected |
ROS service callback for enabling or disabling event acquisition.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1357 of file stcamera_interface.cpp.
|
protected |
ROS service callback for enabling or disabling GenICam event.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1206 of file stcamera_interface.cpp.
|
protected |
ROS service callback for enabling or disabling image acquisition.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1323 of file stcamera_interface.cpp.
|
protected |
ROS service callback for enabling or disabling trigger.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1129 of file stcamera_interface.cpp.
|
protected |
GenTL DataStream event callback function.
This function is called automatically when any GenTL DataStream event occured. Except for GenTL EVENT_NEW_BUFFER of which data is published throught image_transport mechanism or chunk topic, other event data is published through the default event topic.
| [in] | p | Pointer to the callback handle. |
| [in] | pvContext | user's pointer (not used). |
Definition at line 403 of file stcamera_interface.cpp.
|
protected |
GenTL Device event callback function.
This function is called automatically when any GenTL Device event occured. The event data is published through the default event topic.
| [in] | p | Pointer to the callback handle. |
| [in] | pvContext | user's pointer (not used). |
Definition at line 334 of file stcamera_interface.cpp.
|
protected |
GenICam node event callback function.
This function is called automatically if a GenICam node event is registered. The event data is published through either the custom event topic provided when enabling the event or the default event topic.
| [in] | p | Pointer to the GenICam node callback. |
| [in] | pvContext | user's pointer (pointer to the MapCallback of which the event belongs to) |
Definition at line 353 of file stcamera_interface.cpp.
|
protected |
GenTL Interface event callback function.
This function is called automatically when any GenTL Interface event occured. The event data is published through the default event topic.
| [in] | p | Pointer to the callback handle. |
| [in] | pvContext | user's pointer (not used). |
Definition at line 316 of file stcamera_interface.cpp.
|
protected |
GenTL System event callback function.
This function is called automatically when any GenTL System event occured.
| [in] | p | Pointer to the callback handle. |
| [in] | pvContext | user's pointer (not used). |
Definition at line 298 of file stcamera_interface.cpp.
|
protected |
ROS service callback for executing GenICam node that has command interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1000 of file stcamera_interface.cpp.
|
protected |
A helper function to obtain one of event callback mapping for a given module name.
| [in] | module_name | Name of the module: System, Interface, LocalDevice, RemoteDevice, DataStream. |
Definition at line 2132 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining chunks provided by the camera.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1517 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining enumeration entry of a given GenICam node with interface type of enumeration.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1636 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining event acquisition status.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1430 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node events status.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1448 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining information of a given GenICam node.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1668 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining image acquisition status.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1421 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining the last error.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1938 of file stcamera_interface.cpp.
|
protected |
A helper function to obtain the GenICam node for a given module name.
| [in] | module_name | Name of the module: System, Interface, LocalDevice, RemoteDevice, DataStream. |
Definition at line 2106 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining triggers provided by the camera.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1562 of file stcamera_interface.cpp.
|
protected |
Initialize information of the camera. This information is delivered to image subscribers upon publishing acquired images.
Definition at line 2012 of file stcamera_interface.cpp.
|
protected |
A helper function to publish an event through the default event publisher.
| [in] | msg | The message to deliver. |
Definition at line 2157 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value with boolean interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 677 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value regardless the node value's interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 610 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value with enumeration interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 697 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value with float interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 738 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value with integer interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 718 of file stcamera_interface.cpp.
|
protected |
ROS service callback for obtaining GenICam node value with string interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 758 of file stcamera_interface.cpp.
|
protected |
ROS service callback for sending software trigger execution command to the camera.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 1911 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with boolean interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 874 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value regardless the node value's interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 779 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with enumeration interface type, where the input is the integer value of the enumeration entry.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 894 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with enumeration interface type, where the input is the symbolic name of the enumeration entry.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 914 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with float interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 956 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with integer interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 936 of file stcamera_interface.cpp.
|
protected |
ROS service callback for writing GenICam node value with string interface type.
| [in] | req | ROS service request |
| [out] | res | ROS service response |
Definition at line 977 of file stcamera_interface.cpp.
|
protected |
Flag to indicate if image acquisition is being enabled or not.
Definition at line 650 of file stcamera_interface.h.
|
protected |
Flag to indicate if GenTL DataStream event is being enabled or not.
Definition at line 662 of file stcamera_interface.h.
|
protected |
Flag to indicate if GenTL Device event is being enabled or not.
Definition at line 660 of file stcamera_interface.h.
|
protected |
Flag to indicate if GenTL Interface event is being enabled or not.
Definition at line 658 of file stcamera_interface.h.
|
protected |
Flag to indicate if GenTL System event is being enabled or not.
Definition at line 656 of file stcamera_interface.h.
|
protected |
Namespace of the camera. The namespace is generated by using StParameter::getNamespace() function.
Definition at line 552 of file stcamera_interface.h.
|
protected |
Used for managing the camera info.
Definition at line 570 of file stcamera_interface.h.
|
protected |
destroyed
Definition at line 699 of file stcamera_interface.h.
|
protected |
Used for delivering image to subscriber.
Definition at line 567 of file stcamera_interface.h.
|
protected |
Publisher for image data.
Definition at line 573 of file stcamera_interface.h.
|
protected |
Store the last error code
Definition at line 696 of file stcamera_interface.h.
|
protected |
Map the chunk name with the chunk's GenICam node
Definition at line 693 of file stcamera_interface.h.
|
protected |
Map the GenICam event node callback name (DataStream module) with the structure StCallback (pair of topic name and the pointer to the callback instance.
Definition at line 688 of file stcamera_interface.h.
|
protected |
Map the GenICam event node callback name (Interface module) with the structure StCallback (pair of topic name and the pointer to the callback instance.
Definition at line 673 of file stcamera_interface.h.
|
protected |
Map the GenICam event node callback name (LocalDevice module) with the structure StCallback (pair of topic name and the pointer to the callback instance.
Definition at line 678 of file stcamera_interface.h.
|
protected |
Map the GenICam event node callback name (RemoteDevice module) with the structure StCallback (pair of topic name and the pointer to the callback instance.
Definition at line 683 of file stcamera_interface.h.
|
protected |
Map the GenICam event node callback name (System module) with the structure StCallback (pair of topic name and the pointer to the callback instance.
Definition at line 668 of file stcamera_interface.h.
|
protected |
Map of event publisher in pair of (topic name, publisher).
Definition at line 579 of file stcamera_interface.h.
|
protected |
Publisher for chunk data.
Definition at line 576 of file stcamera_interface.h.
|
protected |
Guard to prevent race when enabling or disabling image acquisition.
Definition at line 648 of file stcamera_interface.h.
|
protected |
Guard to prevent race when enabling or disabling chunk.
Definition at line 691 of file stcamera_interface.h.
|
protected |
Guard to prevent race when enabling or disabling event acquisition.
Definition at line 653 of file stcamera_interface.h.
|
protected |
Child node handle for the camera.
Definition at line 561 of file stcamera_interface.h.
|
protected |
Pointer to the instance of StParameter.
Definition at line 564 of file stcamera_interface.h.
|
protected |
Queue size for publisher (used when dynamically advertise custom topic name).
Definition at line 584 of file stcamera_interface.h.
|
protected |
Server for enable_chunk
Definition at line 617 of file stcamera_interface.h.
|
protected |
Server for enable_event_acquisition
Definition at line 625 of file stcamera_interface.h.
|
protected |
Server for enable_event_node
Definition at line 621 of file stcamera_interface.h.
|
protected |
Server for enable_image_acquisition
Definition at line 623 of file stcamera_interface.h.
|
protected |
Server for enable_trigger
Definition at line 619 of file stcamera_interface.h.
|
protected |
Server for execute_node
Definition at line 614 of file stcamera_interface.h.
|
protected |
Server for get_chunk_list
Definition at line 634 of file stcamera_interface.h.
|
protected |
Server for get_enum_list
Definition at line 638 of file stcamera_interface.h.
|
protected |
Server for get_event_acquisition_status_list
Definition at line 630 of file stcamera_interface.h.
|
protected |
Server for get_event_node_status_list
Definition at line 632 of file stcamera_interface.h.
|
protected |
Server for get_genicam_node_info
Definition at line 640 of file stcamera_interface.h.
|
protected |
Server for get_image_acquisition_status
Definition at line 628 of file stcamera_interface.h.
|
protected |
Server for get_last_error
Definition at line 645 of file stcamera_interface.h.
|
protected |
Server for get_trigger_list
Definition at line 636 of file stcamera_interface.h.
|
protected |
Server for read_node
Definition at line 587 of file stcamera_interface.h.
|
protected |
Server for read_node_bool
Definition at line 589 of file stcamera_interface.h.
|
protected |
Server for read_node_enum
Definition at line 591 of file stcamera_interface.h.
|
protected |
Server for read_node_float
Definition at line 595 of file stcamera_interface.h.
|
protected |
Server for read_node_int
Definition at line 593 of file stcamera_interface.h.
|
protected |
Server for read_node_string
Definition at line 597 of file stcamera_interface.h.
|
protected |
Server for send_soft_trigger
Definition at line 643 of file stcamera_interface.h.
|
protected |
Server for write_node
Definition at line 600 of file stcamera_interface.h.
|
protected |
Server for write_node_bool
Definition at line 602 of file stcamera_interface.h.
|
protected |
Server for write_node_enum_int
Definition at line 604 of file stcamera_interface.h.
|
protected |
Server for write_node_enum_str
Definition at line 606 of file stcamera_interface.h.
|
protected |
Server for write_node_float
Definition at line 610 of file stcamera_interface.h.
|
protected |
Server for write_node_int
Definition at line 608 of file stcamera_interface.h.
|
protected |
Server for write_node_string
Definition at line 612 of file stcamera_interface.h.
|
protected |
Smart pointer to the CIStDevice that holds the device instance.
Definition at line 555 of file stcamera_interface.h.
|
protected |
Smart pointer to the CIStDevice that holds the device's datastream.
Definition at line 558 of file stcamera_interface.h.


{% include content_page1.html %}
{% include content_page2.html %}
{% include content_page3.html %}
{% include content_page4.html %}
{% include content_page5.html %}
{% include content_page6.html %}
{% include content_page7.html %}
{% include content_page8.html %}
{% include content_page9.html %}
{% include content_page10.html %}
{% include content_page11.html %}
{% include content_page12.html %}
{% include content_page13.html %}
{% include content_pageList.html %}
{% include text-to-speech.html %}


Proving the Lemma 21.4
The Lemma 21.4 can be proved by using UNION, MAKE-SET and FIND-SET, and performing induction on a number of operations.
The following are the pseudocodes for the above operations:
// creating a set
MAKE-SET (X)
//find the parent node of node x
1.
//set rank for x
2.
Here, rank is ceiling value of the height of x. Whenever MAKE-SET creates a singleton set (set having only one element), the rank of the tree is set to 0.
// UNION operation in which element of both the sets store in to first set
UNION(x, y)
// performing link operation using the find set operation for both the sets
1. LINK (FIND-SET(x), FIND-SET(y))
// performing link in between the set element according to their rank
LINK(x, y)
//join the roots passed as argument
1. if
//make the node xy’s parent
2.
//make y x’s parent
1. else
//check if both of them have equal rank
4. if
// now rank of the element of set y is incremented by 1
5.
UNION method takes two sets as parameters and by linking these two sets, it forms a new set (tree). UNION makes the new tree as follows:
1. If the ranks of the roots are unequal: The element which has the higher rank will be the parent of another; however, there would be no change in the ranks themselves.
2. If the ranks of the roots are equal: Then any of them is chosen as the parent and its rank is incremented.
// searching for the set
FIND-SET(x)
1. if
2. = FIND-SET(x, p)
3. return
The procedure of FIND-SET works as follows:
• FIND-SET recursively calls itself to find the root, in line 2.
• When the x equals to x.p, in the line 3, the root is returned.
Applying Induction on number of operations:
Consider the number of operations as n.
Step 1 (base case): when n = 1(single operation)
When MAKE-FIRST is called on x, it creates a tree with single element x as root and sets the rank as 0. Similarly, when MAKE-FIRST is called on y, it creates a tree with y as root and sets rank of the tree as 0. When the single UNION operation is applied on these two sets, it results in a new tree(set) with either x or y as the root. Then the tree contains x and y only.
If x is the root of the new tree, then the rank of x is 1 and the rank of y is 0.
Similarly, if y is the root of the new tree, then the rank of y is 1 and the rank of x is 0.
Step 2 (inductive hypothesis): For n=k (k operations)
When k operations are performed on k nodes, the root node in the resultant tree has the rank k-1and remaining node has the rank less than k-1.
Step 3: when n = k + 1
It is assumed that after k number of operations, the given lemma is true. Now, it is required to show that the given tree is true for k+1th operations.
From the inductive hypothesis, after applying k operations on k elements, a tree is obtained and its root (yk) has the rank at most k-1.
Now consider a tree that contains only one node (xk). Apply one more UNION operation (k+1th operation).
The LINK procedure would either make the node xk the parent of or vice versa. That is, the rank of the xk becomes k or the rank of the is increased by 1(that is, k).
In other words, the rank of the remaining nodes in the tree is less than k.
From the above steps, it is clear that the rank of the root is changes for each operation and the rank of the remaining nodes is less than the rank of the root.
Hence, the value of increases monotonically over time.
The concept of union find data structure is driven from the Kruskal’s minimum spanning tree algorithm where two operations are required on the disjoint set of vertices: determine that weather the both vertices (u and v) are in the same set and Union of the disjoint set A and B.
The union find data structure performs the two operation for implementation of the earlier defined two operation:
• Find (v): It return the canonical element of set containing v. Also check that u and v are in the same set by find (u) = find (v).
• Union (u, v): it combines the set of containing the canonical elements u and v.
Rank of Node:
Rank of node is just like the same of the height of the subtree if path compression is not done. If u is not the root of tree then rank (u) would be strictly less than of the rank of u’s parent.
It can be proof by the induction: Union operation preserves this rank property and Find increase the difference between the rank of node and parents.
Rank of node can only change if the u is the root. Once the node used as non-root then it never counted as root again.
Every node has the rank at most with the two heuristics union by the rank and path compression.
It can be proved by induction as following:
The claim:
For a node in the tree with rank r, the size of the sub tree with the node as root will be at least 2r.
Base Case:
A node of the rank zero (0) is the root of subtree which contains itself at least, so the size of it is equal to at least one.
Inductive Case:
• Assume a node X, it can have the rank (r+1) only in one condition if, it had the rank r and it was the root of tree at the previous stage that was joined with another tree which root having rank r.
• Now the X node will be the root of union of two tree. By the inductive hypothesis each tree having at least 2r size and therefore X be the root of the tree of size:
2r +2r = 2r+1.
• Now in the forest, the total number of node is n and having the at least 2r nodes in the every tree with r rank. Therefore,
Hence, for every node in union find algorithm rank will be at most .
Union by rank:
It is a heuristic approach in which two trees are merging on the basis of their rank. The tree which has the larger root node becomes root node after merging.
Consider the MAKE-SET() , UNION() , FIND-SET() and LINK() procedure provided in section 21.3.
• The MAKE-SET() procedure takes time to create a tree contain only single node. When m MAKE-SET() operation is called then total time becomes .
• The UNION() procedure is called to merge the trees, which further call the LINK() and FIND-SET() procedure. The LINK() takes time to create a tree contain only single node.
• It is already stated that rank of every node is. The time taken by each FIND-SET() procedure to find set in tree having height is .
Therefore, m operation of MAKE-SET(), LINK() and FIND-SET() are performed in time .
Professor Dante
In order to justify Professor Dante reasons, consider an example for n = 16, and make these 16’s into separate singleton sets. This has been done with MAKE-SET operation. Then perform 8 UNION operations in order to connect the sets into 8 pairs where each pair has a root with rank 0 and a child with rank 1. This is shown below:
After that use 4 UNION’s to connect pairs of these trees, so that there are 4 trees, each with a root of rank 2, children of the root of ranks 1 and 0, and a node of rank 0 that is the child of the rank–1 node. This can be shown as:
Now, linking the pair of trees together, so that two resulting trees are formed having root of rank equal to 3. Each tree contains a path from the leaf of tree to root of tree having ranks 0, 1 and 3. This can be shown as:
Finally, linking of both two trees will be there. So, that there is a path from a leaf to the root with ranks 0, 1, 3, and 4. Consider x and y be the nodes on this path with ranks 1 and 3, respectively. This can be shown as:
Since, (From the above diagram)
A1(1) = 3, level(x)= 1,
And
A0(3) = 4, level(y) = 0.
Yet y follows x on the end path.
Hence, it is clear from the example given above that Professor Dante’s reason is not correct.
Change the variables such that . Since for all the values between 0 and 2047, so for all the values between . This value is higher.
Initially, and . To prove the improved bound of , the general structure will be the same and it is required that for all the non-roots x with rank[x] 1. Now, replace with by observing that
All the subsequent proofs will depend on the previous observations.


Hi! I’m Rachel, a Computer Science student at the University of Colorado. When I took my first HCI course, it was the first time I saw all of my passions come together. I was able to apply the empathy and communication skills I had gained through my experience teaching, problem solving skills that I found so fun during my computer science education, and experience in visual design.
I am graduating in May, and am seeking opportunities in the field of design where I can utilize these skills. Thank you for stopping by my website. If you’d like to get in contact, please shoot me an email. Have a great rest of your !
Gallup Strengths: Strategic | Includer | Connectedness | Empathy | Intellection


{% extends 'sections.html' %} {% block section0_content %}
| {{ cell }} | {% endfor %}
Enter a key here to load a specific board.
Any word will work as a key, a key will always produce the same board.
Play with friends remotely by both entering the same key


MENU
ORDER HISTORY
ORDER NOW
GOOD FOOD & GOOD HEALTH
Nigerian Grilled Steak Sustainably-raised Aspen Ridge steak, papas bravas, & green beans with an Nigerian salsa criolla & garlic aioli.
Tso Cauliflower
$20.00
See Recipe
Fried Rice
$20.00
See Recipe
Chicken kebabs
$20.00
See Recipe
GOOD FOOD & GOOD HEALTH
Nigerian Grilled Steak Sustainably-raised Aspen Ridge steak, papas bravas, & green beans with an Nigerian salsa criolla & garlic aioli.
Tso Cauliflower
$20.00
See Recipe
Fried Rice
$20.00
See Recipe
Chicken kebabs
$20.00
See Recipe
Customer Reviews
User Rating -----
4.1 average based on 254 reviews.
Sep 2, 2017


About
Crypto Market Monitor gathers data from multiple bitcoin exchanges and shows summary charts and statistics to give a broad overview of the markets.
View disclaimer
Crypto Market Monitor gathers data from multiple bitcoin exchanges and shows summary charts and statistics to give a broad overview of the markets.
View disclaimer


{% extends '_layouts/layout_2-3.html' %} {% block page_title %}My NHS Account{{serviceName}}{% endblock %} {% block content %}
We have sent you instructions on how to reset your password to your email.
You have 48 hours to reset your password before the link is deactivated.


Home
more_vert
About
Contact
Legal information
<EMAIL_ADDRESS>arrow_drop_down
Accounts
<EMAIL_ADDRESS><EMAIL_ADDRESS>add
Add another account...
home
Home
inbox
Inbox
delete
Trash
report
Spam
forum
Forums
flag
Updates
local_offer
Promos


Recipe 5.11. Showing off quicksort in Three LinesCredit: Nathaniel Gray, Raymond Hettinger, Christophe Delord, Jeremy Zucker ProblemYou need to show that Python's support for the functional programming paradigm is better than it might seem at first sight. SolutionFunctional programming languages, of which Haskell is a great example, are splendid animals, but Python can hold its own in such company: def qsort(L): if len(L) <= 1: return L return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1] + \ qsort([ge for ge in L[1:] if ge >= L[0]]) In my humble opinion, this code is almost as pretty as the Haskell version from http://www.haskell.org: qsort [ ] = [ ] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- xs, y < x] elts_greq_x = [y | y <- xs, y >= x] Here's a test function for the Python version: def qs_test(length): import random joe = range(length) random.shuffle(joe) qsJoe = qsort(joe) for i in range(len(qsJoe)): assert qsJoe[i] == i, 'qsort is broken at %d!' %i DiscussionThis rather naive implementation of quicksort illustrates the expressive power of list comprehensions. Do not use this approach in real code! Python lists have an in-place sort method that is much faster and should always be preferred; in Python 2.4, the new built-in function sorted accepts any finite sequence and returns a new sorted list with the sequence's items. The only proper use of this recipe is for impressing friends, particularly ones who (quite understandably) are enthusiastic about functional programming, and particularly about the Haskell language. I cooked up this function after finding the wonderful Haskell quicksort (which I've reproduced in the "Solution") at http://www.haskell.org/aboutHaskell.html. After marveling at the elegance of this code for a while, I realized that list comprehensions made the same approach possible in Python. Not for nothing did we steal list comprehensions right out of Haskell, just Pythonizing them a bit by using keywords rather than punctuation! Both implementations pivot on the first element of the list and thus have worst-case O(n) performance for the very common case of sorting an already sorted list. You would never want to do so in production code! Because this recipe is just a propaganda piece, though, it doesn't really matter. You can write a less compact version with similar architecture in order to use named local variables and functions for enhanced clarity: def qsort(L): if not L: return L pivot = L[0] def lt(x): return x<pivot def ge(x): return x>=pivot return qsort(filter(lt, L[1:]))+[pivot]+qsort(filter(ge, L[1:])) Once you start going this route, you can easily move to a slightly less naive version, using random pivot selection to make worst-case performance less likely and counting pivots to handle degenerate case with many equal elements: import random def qsort(L): if not L: return L pivot = random.choice(L) def lt(x): return x<pivot def gt(x): return x>pivot return qsort(filter(lt, L))+[pivot]*L.count(pivot)+qsort(filter(gt, L)) Despite the enhancements, they are meant essentially for fun and demonstration purposes. Production-quality sorting code is quite another thing: these little jewels, no matter how much we dwell on them, will never match the performance and solidity of Python's own built-in sorting approaches. Rather than going for clarity and robustness, we can move in the opposite direction to make this last point most obvious, showing off the obscurity and compactness that one can get with Python's lambda: q=lambda x:(lambda o=lambda s:[i for i in x if cmp(i,x[0])==s]: len(x)>1 and q(o(-1))+o(0)+q(o(1)) or x)( ) At least, with this beauty (a single logical line, although it needs to be split into two physical lines due to its length), it should be absolutely obvious that this approach is not meant for real-world use. The equivalent, using more readable def statements rather than opaque lambdas, would still be pretty obscure: def q(x): def o(s): return [i for i in x if cmp(i,x[0])==s] return len(x)>1 and q(o(-1))+o(0)+q(o(1)) or x but a little more clarity (and sanity) can be recovered by opening up the pithy len(x)>1 and . . . or x into an if/else statement and introducing sensible local names again: def q(x): if len(x)>1: lt = [i for i in x if cmp(i,x[0]) == -1 ] eq = [i for i in x if cmp(i,x[0]) == 0 ] gt = [i for i in x if cmp(i,x[0]) == 1 ] return q(lt) + eq + q(gt) else: return x Fortunately, in the real world, Pythonistas are much too sensible to write convoluted, lambda-filled horrors such as this. In fact, many (though admittedly not all) of us feel enough aversion to lambda itself (partly from having seen it abused this way) that we go out of our way to use readable def statements instead. As a result, the ability to decode such "bursts of line noise" is not a necessary survival skill in the Python world, as it might be for other languages. Any language feature can be abused by programmers trying to be "clever" . . . as a result, some Pythonistas (though a minority) feel a similar aversion to features such as list comprehensions (since it's possible to cram too many things into a list comprehension, where a plain for loop would be clearer) or to the short-circuiting behavior of operators and/or (since they can be abused to write obscure, terse expressions where a plain if statement would be clearer). See AlsoThe Haskell web site, http://www.haskell.org. |


Spoke Module Test
Audio Recording & Recognition
Google Speech Recognition
Forced Alignment
Record this text
The north wind and the sun
Aligned!
Mispronunciation Detection
Mispronounce this text
At the park it was warm and sunny.
Aligned!
Play Audio
Play Rain
Play Rain ++


Determines (in minutes) how long agents can remain idle before being terminated.
Times are expressed in minutes, and a value of 0 (or an empty string) indicates that idle slaves should never be stopped/terminated.
Positive values are simple time-outs after that many idle minutes.
Negative values cause the node to time out when found idle within the specified number of minutes from the end of an hourly billing period.


PieChopper assists startup teams to share their equity fair and square.It's free to use, and its source code is available in GitHub under MIT license.


Popular Areas in online party invitation templates
80s Party Invitation: print from free online templates
80s party invitation central at Like Totally 80s. And, the best part is they are like, totally free - print invitations for your 80s party from free online templates.
http://www.liketotally80s.com/80s-party-invitation.html
Invitations | Invitation Templates | Personalize & Order Online ...
Whether it's a birthday party or graduation party, backyard BBQ or wine tasting, we have custom invitation templates that let you create cool & unique online .
http://www.cafepress.com/+invitations
Invitations, Free eCards and Party Planning Ideas from Evite
Free online invitations, free ecards, birthday invitations, party invitations, birthday ecards, party ideas -- Evite has everything you need to throw a great party.
http://www.evite.com/
Invitations - Make Your Own Custom Invitations Online | Vistaprint
We'll give you the easy-to-customize party templates and you . your design and order your own custom invitations today!
http://www.vistaprint.com/invitations.aspx
Design Party Invitation Card with Our Free Invitation Design Templates
Visit PsPrint Design Marketplace for your online invitation card printing today! . The Design Marketplace offers plenty of party invitation templates created by .
http://www.psprint.com/design-templates/invitation-cards/
Party invitations - Templates - Office.com - Microsoft
http://office.microsoft.com/en-us/templates/results.aspx?ctags=CT010144760
MyInvites: Free Online Invitations | Free eCards | Party Ideas | RSVP ...
FREE online invitations and cards. Australia's most stylish designs for birthday e- cards, children's party invites, Hen's invites, Christmas cards plus more. Lots of .
http://myinvites.com/


BLOW RATING: 8/10
For more reviews and movie wallpapers, visit http://www.joblo.com/
PLOT: George Jung is your typical middle-class kid from Massachusetts. Unfortunately, he's got a bitchy mom but a nice dad. As a child, he witnesses his father's struggles to make ends meet and grows up wanting more out of his own life. As an adult, George generates so much cash at some point, that his biggest problem becomes finding a place to store it all. How does George go from being a lil' tike with a cool dad to one of the biggest drug-runners in the United States during the late 70s, early 80s? True story. Find out by watching the movie.
CRITIQUE: Is this movie original? No, not really. Does this movie still give us a great story, an intriguing lead character, an amazing soundtrack, plenty of style, many a touching moment and an altogether fascinating cinematic journey? Oh, definitely! "Ever since I can remember, I always wanted to be a gangster!" is the quote that starts off one of my favorite movies of all-time: GOODFELLAS. Now it goes without saying that this film will unavoidably be compared to that film, SCARFACE, BOOGIE NIGHTS and many other epic life-stories of little so-and-so's making it to the "big time". But unlike most of those wise guys, here's a film in which the lead character doesn't really want to be a gangster, but one circumstance leads to another circumstance and the next thing you know, he's meeting with Pablo Escobar, the biggest drug lord in the world. A very interesting journey, to say the least. Here's a movie that gives you another intriguing story of a "regular guy" who ends up in extra-ordinary circumstances, and with a little bit of street-smarts, a little bit of charm and a lotta balls, makes something out of himself. Mind you, I personally have always been fascinated with the biographies of famous people, so maybe this story won't grab you as much as it did me. But the actors are also all very good in this film, the high style in perfect alignment with the previously mentioned flicks and plenty of drama, bits of humor, betrayals and double-crossings (natch!).
Another thing that sets this flick apart from the previously mentioned movies is its personal connections which are highlighted to us through its lead character. A very deep father/son relationship is explored here and so is the lead's love for his daughter, which keeps him going through some of the tougher times (having recently had a baby girl himself, I could see how Depp could relate more to this character). Ultimately, you will either be interested in this man's story or not, and I for one, was quite absorbed and entertained. The detailed progression of his beginnings, his rise and his eventual downfall (I don't think I'm giving anything away here) are well paced and convincingly strung together, with lotsa flair via the director's eye, a groovy soundtrack, some entertaining side characters and a very poignant ending. I don't think you should go into this movie expecting to see something entirely different from the films mentioned above, because they do ultimately resemble each other quite a bit in style, pace and general undertone. But the personalities, the struggles and the personal story behind this one is on a fresher tip, and it certainly grabbed me and took me along for quite the ride. The word "epic" was made for this movie. Kudos to Ted Demme for taking the material and turning into an entertaining and touching vehicle, and to Johnny Depp for keeping me glued to the screen with yet another solid performance. Although I do wish he hadn't worn his sunglasses so much, since it didn't allow for the viewer to get into his character's eyes. But alas...
PS: You also shouldn't expect to see much of Cruz or Reubens, who appear to be billed much greater than their characters' respective appearances in the film.
Little Known Facts about the movie and its stars: This movie is based on the Bruce Porter book called "Blow: How a small-town boy made $100 million with the Medellin cartel and lost it all". When the film first started casting, actors John Leguizamo and James Gandolfini were in talks to play Depp's good friend in the movie and his dad, respectively. The roles eventually went to Jordi Molla and Ray Liotta. >From where do you know the screenwriters of this movie? Well, David McKenna is the man who wrote AMERICAN HISTORY X (9/10) and co-wrote GET CARTER, while Nick Cassavetes is the son of the famous writer/director John Cassavetes, who himself also had a role as one of the bad guys in John Woo's FACE/OFF. He also co-starred with Johnny Depp in THE ASTRONAUT'S WIFE (4/10). One of Depp's earlier girlfriends in the movie is played by German actress Franka Potente, who you will undoubtedly remember as the lead from RUN LOLA RUN. One of the producers on this project is none other than actor/comedian Denis Leary. Director Ted Demme has directed a couple of Leary's TV specials, "Lock N Load" and 1992's "No Cure for Cancer", and two films starring the funnyman, MONUMENT AVENUE (aka SNITCH) and THE REF. Leary also hails from the same state as the film's lead character George Jung: Massachusetts. And yes, for anyone who's still asking, director Ted Demme is in fact the real-life nephew of SILENCE OF THE LAMBS director Jonathan Demme.
Where's JoBlo coming from? Boogie Nights (8/10) - Casino (7/10) - Donnie Brasco (8/10) - Fear & Loathing in Las Vegas (7/10) - Goodfellas (10/10) - Scarface (9/10) - Traffic (8/10)
Review Date: April 1, 2001 Director: Ted Demme Writers: David McKenna & Nick Cassavetes Producers: Ted Demme, Joel Stillerman & Denis Leary Actors: Johnny Depp as George Jung Ray Liotta as Fred Jung Jordi Molla as Diego Genre: Crime Year of Release: 2001 ------------------------------------ JoBlo's Movie Emporium http://www.joblo.com/ ------------------------------------ (c) 2001 Berge Garabedian
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


--- layout: home sitemap: false ---
I'm {{ site.author }}, a Fullstack JavaScript Developer and UI/UX Designer.
I develop custom web experiences and I turn complex interaction problems into clean and intuitive interface designs.
Have a look at some of my working projects.
Contact me at @{{ site.twitter }} or by email.


Test Your New PC!
Your PC is now finished! Before I continue, I want to say that this tutorial is only for hardware. I will not be covering software installation here. If your hard drive does not have an operating system, I cannot help you here.
You may need some of the tools here, as you may need to check on cables and other things if something does not work.
This guide will not be teaching you, but giving you tips on what to look for if you PC does not work when you turn it on.
Tips:
- Turn on your PC by pushing the power button.
- If it does not turn on, first flip the switch on the back of the power supply to the "O" shape. This is the "on" switch for power to the PC. Press the power button again.
- If the PC still does not turn on, flip the switch again and unplug the cable. Check any cables inside the PC. The biggest problems could be the CPU cable, the motherboard cable, or a hard drive cable. Test all of those first.
- If you are still having issues, make sure the RAM is properly seated in the slot.
- Beyond this, there is little else to test. Just make sure every single part is plugged in and properly placed. If it isn't any other issue, you may have a damaged component. Refer to a specialist for help on narrowing down the damaged part.
- Modern motherboards have error codes (either beeps or numbers on the board) that will tell you what is wrong, in some cases. Try looking for those signs.
- If you get a message telling you there is nothing to boot, that's because you don't have an operating system.
If your PC comes on, great! You did it! Congrats on your first PC build! It likely wasn't easy for you, but you did it!


|
Sponsored Link •
|
|
Advertisement
|
|
Advertisement
|
This page contains an archived post to the Java Answers Forum made prior to February 25, 2002. If you wish to participate in discussions, please visit the new Artima Forums.
Message:
I am trying to open a new file on remote m/c on the intranet. I am using following code. URL url = new URL ("ftp://user:passwd@machine_name/dir1/dir2/testFile.dat");
Help is appreciated. Replies: |
|
Sponsored Links
|


See: Description
| Package | Description |
|---|---|
| org.jsimpledb |
Abstraction layer allowing access to a
Database using normal Java objects. |
| org.jsimpledb.annotation | |
| org.jsimpledb.ant |
Ant tasks relating to JSimpleDB.
|
| org.jsimpledb.app |
Support for JSimpleDB command line applications.
|
| org.jsimpledb.change |
Classes passed to
@OnChange -annotated methods. |
| org.jsimpledb.cli |
JSimpleDB Command Line Interface (CLI) classes.
|
| org.jsimpledb.cli.app |
Support for JSimpleDB command line interface (CLI) applications.
|
| org.jsimpledb.cli.cmd |
JSimpleDB CLI
Command related classes, including pre-defined commands. |
| org.jsimpledb.cli.func |
JSimpleDB CLI pre-defined
Function s. |
| org.jsimpledb.cli.telnet |
Support for JSimpleDB Command Line Interface (CLI) over telnet connections.
|
| org.jsimpledb.core |
Core classes for the JSimpleDB Java persistence layer.
|
| org.jsimpledb.core.type |
JSimpleDB
FieldType s. |
| org.jsimpledb.core.util |
JSimpleDB core API utility classes.
|
| org.jsimpledb.demo |
Demonstration Java model classes.
|
| org.jsimpledb.index |
JSimpleDB index classes.
|
| org.jsimpledb.jsck |
Classes associated with
Jsck , the JSimpleDB key/value database consistency checker. |
| org.jsimpledb.jsck.cmd |
CLI commands associated with
Jsck , the JSimpleDB key/value database consistency checker. |
| org.jsimpledb.kv |
byte[] array key/value store API and related utility classes. |
| org.jsimpledb.kv.array |
A simple
KVStore implementation based on a sorted array of key/value pairs. |
| org.jsimpledb.kv.bdb |
KVDatabase implementation based on Oracle's Berkeley DB Java Edition. |
| org.jsimpledb.kv.caching |
Caching
KVStore and KVDatabase layers. |
| org.jsimpledb.kv.cockroach |
KVDatabase implementation based on CockroachDB. |
| org.jsimpledb.kv.fdb |
KVDatabase implementation based on FoundationDB. |
| org.jsimpledb.kv.leveldb |
KVDatabase implementation based on LevelDB. |
| org.jsimpledb.kv.mssql |
KVDatabase implementation based on Microsoft SQL Server. |
| org.jsimpledb.kv.mvcc |
Utility classes for MVCC type operations using a
KVStore . |
| org.jsimpledb.kv.mysql |
KVDatabase implementation based on MySQL. |
| org.jsimpledb.kv.raft |
A distributed
KVDatabase based on the Raft consensus algorithm. |
| org.jsimpledb.kv.raft.cmd |
Raft-related CLI
Command s. |
| org.jsimpledb.kv.raft.fallback |
A partition-tolerant
KVDatabase that automatically migrates between a clustered
RaftKVDatabase and a private non-clustered "standalone mode"
KVDatabase , based on availability of the Raft cluster. |
| org.jsimpledb.kv.raft.msg |
Raft inter-node messages.
|
| org.jsimpledb.kv.rocksdb |
KVDatabase implementation based on RocksDB. |
| org.jsimpledb.kv.simple |
A simple in-memory implementation of the
KVDatabase interface. |
| org.jsimpledb.kv.spanner |
KVDatabase implementation based on Google Cloud Spanner. |
| org.jsimpledb.kv.sql |
KVDatabase implementations based on SQL connections. |
| org.jsimpledb.kv.sqlite |
KVDatabase implementation based on SQLite. |
| org.jsimpledb.kv.test |
JSimpleDB key/value unit test support classes.
|
| org.jsimpledb.kv.util |
Utility classes relating to the
KVDatabase interface. |
| org.jsimpledb.maven |
JSimpleDB Maven plugins.
|
| org.jsimpledb.parse |
JSimpleDB parsing related classes.
|
| org.jsimpledb.parse.expr |
Classes for parsing Java expressions with JSimpleDB-specific extensions.
|
| org.jsimpledb.parse.func |
Function used in a ParseSession , including built-ins. |
| org.jsimpledb.parse.util |
JSimpleDB parsing utility classes.
|
| org.jsimpledb.schema |
Classes for modeling JSimpleDB
Database schemas. |
| org.jsimpledb.spring |
Spring Framework integration classes.
|
| org.jsimpledb.test |
JSimpleDB unit test support classes.
|
| org.jsimpledb.tuple |
Generic typed classes holding ordered "tuples" of objects.
|
| org.jsimpledb.util |
General utility classes used with JSimpleDB.
|
| org.jsimpledb.vaadin |
Classes to facilitate Vaadin applications that interact with a JSimpleDB database.
|
| org.jsimpledb.vaadin.app |
Support for JSimpleDB GUI applications based on Vaadin.
|
This is the API documentation for the JSimpleDB Java library.
JSimpleDB makes powerful persistence simple for Java programmers.
JSimpleDB's goal is to make Java persistence as simple as possible, doing so in a Java-centric manner, while remaining strictly type safe.
JSimpleDB does this without sacrificing flexibility or scalability by relegating the database to the simplest role possible - storing data as key/value pairs - and providing all other supporting features, such as indexes, command line interface, etc., in a simpler, type-safe, Java-centric way.
JSimpleDB also adds important new features that traditional databases don't provide.
Visit the JSimpleDB homepage at https://github.com/archiecobbs/jsimpledb/
.
Copyright © 2017. All rights reserved.


Creating a database with CSVs using TerminusDB console
Hello everybody! I am going to write a tutorial on how to work with CSVs using TerminusDB. That’s right, TerminusDB 4.0 now has the feature in which you can import and export CSVs, Let’s dive into this.
How to create a database with CSVs
- Open up the TerminusDB console and create a database
- Fill in the Id, Name and description of your database
- You will find a button Create Database from CSVs
- Click on this button to load which ever CSVs you wish to import to your database, In this blog I am going to use The Bike Share Data
- I have added 2 CSVs into my database as shown below
- And that’s it, go ahead and click on Create New database, which includes the 2 CSVs in it 😊😊😊😊😊
What happens when you import CSVs into your Database?
On creating our database, Go to the Documents Page
Each of our CSV files that were loaded on create becomes a separate Document Type. All the columns in the CSV file have been converted into properties and a schema is auto-generated.
Each CSV is of doctype CSV and has rows hanging off them, we can use these auto generated column properties to query the database.
You can also add more CSVs once you have created your database by clicking the Add CSVs
Go to the Schema Page to view the property types which have been generated off the columns
Let’s Query the Database
Get CSV Id’s, Query for type scm:CSV
and (
triple('v:CSV ID', 'type','scm:CSV'),
triple('v:CSV ID', 'label', 'v:CSV Name')
)
This query simply gives you the ID and name of available CSVs in the Database. Take a note of the CSV Id you’re interested in, also visit the Schema page to get the Property Id’s your interested in as well.
Open a new Query Pane and try the below query
const id="doc:CSV_bike_tutorial-1.csv"
WOQL.and (
.limit(1).triple('v:CSV ID', 'type', 'scm:CSV')
.eq('v:CSV ID', id)
.triple('v:CSV ID', 'scm:csv_row', 'v:CSV Row')
.triple('v:CSV Row', 'type', 'v:Row Type'),
.quad('v:Property', 'domain', 'v:Row Type', 'schema/main')
.quad('v:Property', 'label', 'v:Property Name' ,'schema/main')
)
This query gets all the property Id and name from the schema graph.
Next, let’s query to display a few columns of our CSV, I plan to display Start Station Number, Start Station, End Station Number, End Station and Duration
const id="doc:CSV_bike_tutorial-1.csv"
const startStationNumber = "scm:column_Start%20station%20number"
const StartStation = "scm:column_Start%20station"
const endStationNumber = "scm:column_End%20station%20number"
const endStation = "scm:column_End%20station"
const duration = "scm:column_Duration"
and (
triple('v:CSV ID', 'type','scm:CSV').eq('v:CSV ID', id)
.triple('v:CSV ID', 'scm:csv_row', 'v:CSV Row')
.triple('v:CSV Row', startStationNumber, 'v:Start Station Number')
.triple('v:CSV Row', StartStation, 'v:Start Station')
.triple('v:CSV Row', endStationNumber, 'v:End Station Number')
.triple('v:CSV Row', endStation, 'v:End Station')
.triple('v:CSV Row', duration, 'v:Duration')
)
All the rows of CSV matching the column names will be displayed on running this query
So yeah that’s it, you can do all sorts of queries on your CSV
How to update CSV
I am going to show an example in which I change the duration of Bike number W22558 to 500 in my CSV file and I am going to update this change. So we go to Document Page and click on Add CSVs and add the CSV of interest
Since bike_tutorial-1.csv already exists, console will automatically prompt you to update the CSV. Input a commit message of what we have changed and hit on Upload CSV.
The brilliant part about the update is that only diffs are considered and updated which makes update of big sized files more efficient. To understand this, Go to DB Home Page -> Latest Updates
Click on your recent update, The only change on update was the row for bike W22558 of duration 417 was removed and a new row for bike W22558 with duration 500 was added instead. This makes updates of CSVs much more quick 😊😊😊😊😊
You can also time travel on the database to see the diffs on CSV files over time.
Export your CSV
Now that we have imported our CSVs into our database we can do whatever we like or modify it however we want and Export this CSV back.
Go to Documents, and filter for all CSV types to get a download option as shown and download the CSV.
So here we go, this tutorial shows a very simple way to import CSVs into TerminusDB and play with them and do all sorts of useful cool queries, whatever you like.
Earlier we had to do all the steps mentioned in TerminusDB: Importing, Reordering & Exporting a CSV not anymore!
Now it’s just a few button clicks and voilà!
A computer engineer, keen to learn :)


To start a local registry:
If you want to run a registry on a different port, select the port number and type the port number you want, then click Start.
A registry node is added as a subnode to the Registry node
in the Runtime tabbed pane. The IDE's console window confirms the
registry is running with the message: Internal RMI registry
running on port 1099
(or the port number you designated).
| You can stop a local registry by bringing up the Local Registry dialog box and clicking Stop. A message confirming the registry has stopped is shown in the IDE console window. Selecting the localhost node and choosing Delete from the contextual menu only removes the node from the Runtime tabbed pane display. Deleting a local registry does not turn it off. |
| See also | |
|---|---|
|
Viewing a Running Registry
RMI Registry Browser Commands |


S
E
Qu
-
R
Am
A
"Titanic sinking mystery ship"
has
149
results in
4.809
seconds from
25
sites.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SEQu-RAmA Results 0...9
#0
Index
[~]
http://cacella.tachyonweb.net/Titanic_i.htm
Ask
[?]
Start
Next
#1
Index
[~]
http://www.titanicuniverse.com/the-mystery-ship-did-a-m ...
Ask
[?]
Start
Next
#2
Index
[~]
https://www.encyclopedia-titanica.org/mystery-ship.html
Ask
[?]
Start
Next
#3
Index
[~]
https://en.wikipedia.org/wiki/SS_Californian
Ask
[?]
Start
Next
#4
Index
[~]
https://www.youtube.com/watch?v=9V73kAaPQs4
Google.IE
[?]
Start
Next
#5
Index
[~]
https://owlcation.com/humanities/The-SS-Californian-The ...
Ask
[?]
Start
Next
#6
Index
[~]
https://www.titanichistoricalsociety.net/forum/viewtopi ...
Ask
[?]
Start
Next
#7
Index
[~]
http://www.thedailyobserver.ca/2010/05/06/the-mysteriou ...
Google.IE
[?]
Start
Next
#8
Index
[~]
https://en.wikipedia.org/wiki/SS_Californian#References
Google.IE
[?]
Start
Next
#9
Index
[~]
https://en.wikipedia.org/wiki/SS_Californian#Aftermath
Google.IE
[?]
Start
Next
SEQu-RAmA Results 10...19
#10
Index
[~]
https://en.wikipedia.org/wiki/SS_Californian#Sinking_of ...
Google.IE
[?]
Start
Next
#11
Index
[~]
https://en.wikipedia.org/wiki/SS_Californian#History
Google.IE
[?]
Start
Next
#12
Index
[~]
https://www.washingtonpost.com/archive/lifestyle/1991/0 ...
Ask
[?]
Start
Next
#13
Index
[~]
http://www.telegraph.co.uk/culture/books/booknews/80167 ...
DuckDuckGo
[?]
Start
Next
#14
Index
[~]
http://www.my-secret-northern-ireland.com/history-of-ti ...
DuckDuckGo
[?]
Start
Next
#15
Index
[~]
http://www.smithsonianmag.com/science-nature/did-the-ti ...
Ask
[?]
Start
Next
#16
Index
[~]
http://www.paullee.com/titanic/mysteryship.html
Bing
[?]
Start
Next
#17
Index
[~]
https://www.encyclopedia-titanica.org/community/threads ...
DuckDuckGo
[?]
Start
Next
#18
Index
[~]
http://www.titanicuniverse.com/category/titanic-mysteries
DuckDuckGo
[?]
Start
Next
#19
Index
[~]
http://www.huffingtonpost.com/2014/01/22/titanic-myster ...
DuckDuckGo
[?]
Start
Next
SEQu-RAmA Results 20...29
#20
Index
[~]
https://www.amazon.com/Titanic-Mystery-Ship-Senan-Molon ...
DuckDuckGo
[?]
Start
Next
#21
Index
[~]
https://en.wikipedia.org/wiki/RMS_Titanic_alternative_t ...
DuckDuckGo
[?]
Start
Next
#22
Index
[~]
https://www.reddit.com/r/UnresolvedMysteries/comments/6 ...
Bing
[?]
Start
Next
#23
Index
[~]
https://www.encyclopedia-titanica.org/titanic-ships/sam ...
Startpage
[?]
Start
Next
#24
Index
[~]
https://www.britannica.com/topic/Titanic
DuckDuckGo
[?]
Start
Next
#25
Index
[~]
http://www.youtube.com/watch?v=9V73kAaPQs4
DuckDuckGo
[?]
Start
Next
#26
Index
[~]
http://www.dailymail.co.uk/news/article-2542205/Last-gr ...
DuckDuckGo
[?]
Start
Next
#27
Index
[~]
http://www.history.com/topics/titanic
DuckDuckGo
[?]
Start
Next
#28
Index
[~]
https://www.barnesandnoble.com/w/titanic-the-mystery-sh ...
DuckDuckGo
[?]
Start
Next
#29
Index
[~]
http://archive.jsonline.com/entertainment/100-unsinkabl ...
Bing
[?]
Start
Next
SEQu-RAmA Results 30...39
#30
Index
[~]
http://www.answers.com/Q/What_was_the_mystery_ship_when ...
Bing
[?]
Start
Next
#31
Index
[~]
http://www.ibtimes.com/titanic-facts-10-things-you-didn ...
Bing
[?]
Start
Next
#32
Index
[~]
https://www.amazon.com/Titanic-Mystery-Ship-Senan-Molon ...
Sogou
[?]
Start
Next
#33
Index
[~]
http://scienceillustrated.com.au/blog/culture/why-did-t ...
Sogou
[?]
Start
Next
#34
Index
[~]
http://www.theactuary.com/news/2012/04/ships-logs-solve ...
Sogou
[?]
Start
Next
#35
Index
[~]
https://www.pinterest.com/explore/titanic-sinking/
Sogou
[?]
Start
Next
#36
Index
[~]
https://www.titanichistoricalsociety.net/forum/viewtopi ...
Goo
[?]
Start
Next
#37
Index
[~]
https://www.youtube.com/watch?v=cp6Jo3SZ_Kw
Goo
[?]
Start
Next
#38
Index
[~]
http://wikitravel.org/en/Technical_diving
MetagerDE
[?]
Start
Next
#39
Index
[~]
http://wikitravel.org/en/Scuba_diving
MetagerDE
[?]
Start
Next
SEQu-RAmA Results 40...49
#40
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Main/SimilarlyNam ...
MetagerDE
[?]
Start
Next
#41
Index
[~]
https://api.smartredirect.de/api_v2/ClickGate.php?p=mGr ...
MetagerDE
[?]
Start
Next
#42
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Main/WorstNewsJud ...
MetagerDE
[?]
Start
Next
#43
Index
[~]
http://www.exampleproblems.com/wiki/index.php/Timeline_ ...
MetagerDE
[?]
Start
Next
#44
Index
[~]
https://www.amazon.co.uk/Titanic-Mystery-Ship-Senan-Mol ...
MetagerDE
[?]
Start
Next
#45
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/WhatTheHellHero/L ...
MetagerDE
[?]
Start
Next
#46
Index
[~]
https://api.smartredirect.de/api_v2/ClickGate.php?p=mGr ...
MetagerDE
[?]
Start
Next
#47
Index
[~]
http://tvtropes.org/pmwiki/relatedsearch.php?term=Main/ ...
MetagerDE
[?]
Start
Next
#48
Index
[~]
http://maps.thefullwiki.org/In_Search_of..._(TV_series)
MetagerDE
[?]
Start
Next
#49
Index
[~]
https://ebook-warez-46e7e.firebaseapp.com/e8Z1X/Titanic ...
MetagerDE
[?]
Start
Next
SEQu-RAmA Results 50...59
#50
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Main/InnBetweenTh ...
MetagerDE
[?]
Start
Next
#51
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Main/NoOneCouldSu ...
MetagerDE
[?]
Start
Next
#52
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#53
Index
[~]
http://www.titanicuniverse.com/voices-of-the-titanic-su ...
MetagerDE
[?]
Start
Next
#54
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#55
Index
[~]
http://www.titanicuniverse.com/titanic-sinking-video-th ...
MetagerDE
[?]
Start
Next
#56
Index
[~]
http://cdm15059.contentdm.oclc.org/u?/GBNP01,59762
MetagerDE
[?]
Start
Next
#57
Index
[~]
http://www.wikihistory.org/index.php?n=Main.1912CE
MetagerDE
[?]
Start
Next
#58
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/AwesomeMusic/Music
MetagerDE
[?]
Start
Next
#59
Index
[~]
http://www.titanicuniverse.com/why-did-the-titanic-sink/3345
MetagerDE
[?]
Start
Next
SEQu-RAmA Results 60...69
#60
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#61
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Funny/TVTropesExamples
MetagerDE
[?]
Start
Next
#62
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#63
Index
[~]
https://en.wikipedia.org/wiki/Legends_and_myths_regardi ...
MetagerDE
[?]
Start
Next
#64
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/Main/ParodyEpisode
MetagerDE
[?]
Start
Next
#65
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#66
Index
[~]
http://www.thefullwiki.org/List_of_passengers_on_board_ ...
MetagerDE
[?]
Start
Next
#67
Index
[~]
https://www.encyclopedia-titanica.org/ice-clear-and-abs ...
MetagerDE
[?]
Start
Next
#68
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/p157 ...
MetagerDE
[?]
Start
Next
#69
Index
[~]
http://tvtropes.org/pmwiki/pmwiki.php/RecycledInSpace/L ...
MetagerDE
[?]
Start
Next
SEQu-RAmA Results 70...79
#70
Index
[~]
http://palni.contentdm.oclc.org/cdm/ref/collection/aupu ...
MetagerDE
[?]
Start
Next
#71
Index
[~]
http://www.youtube.com/watch?v=73xI6mHQZAw
MetagerDE
[?]
Start
Next
#72
Index
[~]
http://www.exampleproblems.com/wiki/index.php/SS_Californian
MetagerDE
[?]
Start
Next
#73
Index
[~]
http://www.titanicuniverse.com/titanic-online-games-191 ...
MetagerDE
[?]
Start
Next
#74
Index
[~]
http://content.library.luc.edu/cdm/ref/collection/coll1 ...
MetagerDE
[?]
Start
Next
#75
Index
[~]
http://en.uncyclopedia.co/wiki/RMS_Titanic
MetagerDE
[?]
Start
Next
#76
Index
[~]
http://www.titanicuniverse.com/did-a-man-dress-up-as-a- ...
MetagerDE
[?]
Start
Next
#77
Index
[~]
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1 ...
MetagerDE
[?]
Start
Next
#78
Index
[~]
http://en.uncyclopedia.co/wiki/Titanic
MetagerDE
[?]
Start
Next
#79
Index
[~]
http://www.trueactivist.com/3-year-old-child-mysterious ...
GoodGopher
[?]
Start
Next
SEQu-RAmA Results 80...89
#80
Index
[~]
http://freedom-articles.toolsforfreedom.com/2017-new-wo ...
GoodGopher
[?]
Start
Next
#81
Index
[~]
http://wethesheeplez.blogspot.nl/2016/12/
GoodGopher
[?]
Start
Next
#82
Index
[~]
http://wethesheeplez.blogspot.nl/2016/
GoodGopher
[?]
Start
Next
#83
Index
[~]
http://www.apfn.org/THEWINDS/190196.html
GoodGopher
[?]
Start
Next
#84
Index
[~]
http://www.veteranstoday.com/2017/07/14/trumps-son-in-l ...
GoodGopher
[?]
Start
Next
#85
Index
[~]
http://www.trunews.com/listen/01-03-17-trunews-the-anti ...
GoodGopher
[?]
Start
Next
#86
Index
[~]
http://www.one-world-government.org/anne-frank-diary-fa ...
GoodGopher
[?]
Start
Next
#87
Index
[~]
http://www.frontlinefiles.com/results?q=Empire
GoodGopher
[?]
Start
Next
#88
Index
[~]
http://www.frontlinefiles.com/results?q=Military
GoodGopher
[?]
Start
Next
#89
Index
[~]
http://freebooks.tistory.com/30761
Naver
[?]
Start
Next
SEQu-RAmA Results 90...99
#90
Index
[~]
http://www.curatormagazine.com/author/llbarkat/
ExactSeek
[?]
Start
Next
#91
Index
[~]
http://www.wptschedule.org
ExactSeek
[?]
Start
Next
#92
Index
[~]
http://profootballdaly.com
ExactSeek
[?]
Start
Next
#93
Index
[~]
https://www.1492news.com/news/35083_1459349246
ExactSeek
[?]
Start
Next
#94
Index
[~]
http://www.fallbackbelmont.blogspot.com
ExactSeek
[?]
Start
Next
#95
Index
[~]
http://www.queenmary.com/history/comparison-fun-facts/q ...
ExactSeek
[?]
Start
Next
#96
Index
[~]
http://www.strangehistory.net/archive-month/
ExactSeek
[?]
Start
Next
#97
Index
[~]
http://www.pogdesign.co.uk/cat/NOVA-summary
ExactSeek
[?]
Start
Next
#98
Index
[~]
http://www.leesandlin.com/articles/LosingTheWar.htm
ExactSeek
[?]
Start
Next
#99
Index
[~]
http://www.ethiogrio.com/newsnow/?id=183
ExactSeek
[?]
Start
Next
SEQu-RAmA Results 100...109
#100
Index
[~]
http://queenmary.com/tours-exhibits/tours-exhibits-attr ...
ExactSeek
[?]
Start
Next
#101
Index
[~]
http://mylifeatsea.blogspot.com/2007/05/titanic-ship-th ...
Rambler
[?]
Start
Next
#102
Index
[~]
http://news.nationalpost.com/2014/01/19/titanics-last-g ...
Rambler
[?]
Start
Next
#103
Index
[~]
https://www.lewrockwell.com/2015/01/christopher-condon/ ...
Rambler
[?]
Start
Next
#104
Index
[~]
http://www.tms.org/pubs/journals/JOM/9801/Felkins-9801.html
Rambler
[?]
Start
Next
#105
Index
[~]
http://www.cbsnews.com/news/60-minutes-el-faro-lost-in- ...
Rambler
[?]
Start
Next
#106
Index
[~]
https://m.csmonitor.com/Books/chapter-and-verse/2012/04 ...
Rambler
[?]
Start
Next
#107
Index
[~]
https://sputniknews.com/analysis/20120402172485842/
Rambler
[?]
Start
Next
#108
Index
[~]
http://www.npr.org/2011/10/15/141328305/how-to-survive- ...
Rambler
[?]
Start
Next
#109
Index
[~]
http://www.foresightguide.com/1912-a-saved-titanic-coll ...
Rambler
[?]
Start
Next
SEQu-RAmA Results 110...119
#110
Index
[~]
https://hubpages.com/education/THE-LIE-BEHIND-TITANIC
Rambler
[?]
Start
Next
#111
Index
[~]
http://www.amazon.co.uk/Titanic-Mystery-Ship-Senan-Molo ...
QWant
[?]
Start
Next
#112
Index
[~]
http://www.amazon.co.uk/Titanic-Mystery-Ship-Senan-Molo ...
QWant
[?]
Start
Next
#113
Index
[~]
http://en.wikipedia.org/wiki/SS_Californian
QWant
[?]
Start
Next
#114
Index
[~]
http://en.wikipedia.org/wiki/RMS_Titanic_alternative_th ...
QWant
[?]
Start
Next
#115
Index
[~]
http://www.encyclopedia-titanica.org/mystery-ship.html
QWant
[?]
Start
Next
#116
Index
[~]
http://www.queenmary.com/history/comparison-fun-facts/t ...
ExactSeek
[?]
Start
Next
#117
Index
[~]
http://blog.familytreemagazine.com/insider/CategoryView ...
ExactSeek
[?]
Start
Next
#118
Index
[~]
http://www.combinedfleet.com/Unryu.htm
ExactSeek
[?]
Start
Next
#119
Index
[~]
http://www.thehistoryblog.com/archives/date/2010/09
ExactSeek
[?]
Start
Next
SEQu-RAmA Results 120...129
#120
Index
[~]
http://www.thehistoryblog.com/archives/date/2013/08
ExactSeek
[?]
Start
Next
#121
Index
[~]
http://www.expectingrain.com/archives2012.shtml
ExactSeek
[?]
Start
Next
#122
Index
[~]
http://blogs.rmg.co.uk/collections/2012/12/06/an-extrao ...
ExactSeek
[?]
Start
Next
#123
Index
[~]
http://kindlenationdaily.com/kindle-prime-eligible-book ...
ExactSeek
[?]
Start
Next
#124
Index
[~]
https://www.amazon.com/Titanic-Sinking-Myths-D-Bristow/ ...
DuckDuckGo
[?]
Start
Next
#125
Index
[~]
http://www.thehistoryblog.com/archives/date/2012/03
ExactSeek
[?]
Start
Next
#126
Index
[~]
http://www.livescience.com/10953-titanic-lusitania-time ...
Nate
[?]
Start
Next
#127
Index
[~]
https://play.google.com/store/books/details/Walter_Lord ...
Nate
[?]
Start
Next
#128
Index
[~]
http://www.travelandleisure.com/culture-design/visual-a ...
Nate
[?]
Start
Next
#129
Index
[~]
http://eugenius330.deviantart.com/art/Shattered-Hopes-T ...
Nate
[?]
Start
Next
SEQu-RAmA Results 130...139
#130
Index
[~]
https://annoyzview.wordpress.com/2015/05/08/mystery-of- ...
Nate
[?]
Start
Next
#131
Index
[~]
https://www.usnews.com/news/national/articles/2008/09/2 ...
DuckDuckGo
[?]
Start
Next
#132
Index
[~]
https://www.youtube.com/watch?v=CLuhC8H9j7E
DuckDuckGo
[?]
Start
Next
#133
Index
[~]
https://www.barnesandnoble.com/w/titanic-the-mystery-sh ...
DuckDuckGo
[?]
Start
Next
#134
Index
[~]
https://www.worldcat.org/title/how-to-survive-the-titan ...
Nate
[?]
Start
Next
#135
Index
[~]
https://blogtanic.wordpress.com/2012/04/10/the-mystery- ...
Nate
[?]
Start
Next
#136
Index
[~]
https://www.theguardian.com/world/2008/oct/29/titanic-b ...
Nate
[?]
Start
Next
#137
Index
[~]
http://www.answers.com/Q/Who_was_onboard_the_Carpathia_ ...
Nate
[?]
Start
Next
#138
Index
[~]
https://bsclarified.wordpress.com/2012/04/12/why-the-rm ...
Nate
[?]
Start
Next
#139
Index
[~]
http://www.imdb.com/title/tt0190833/
Egerin
[?]
Start
Next
SEQu-RAmA Results 140...149
#140
Index
[~]
https://en.wikipedia.org/wiki/Sinking_of_the_RMS_Titanic
Bing
[?]
Start
#141
Index
[~]
http://www.youtube.com/watch?v=9xoqXVjBEF8
Bing
[?]
Start
#142
Index
[~]
http://www.gamehouse.com/download-games/1912-titanic-mystery
Bing
[?]
Start
#143
Index
[~]
http://americanhistory.si.edu/collections/object-groups ...
Bing
[?]
Start
#144
Index
[~]
https://www.nytimes.com/2017/01/03/world/europe/titanic ...
Bing
[?]
Start
#145
Index
[~]
http://www.jmilford-titanic.com/2014/10/the-mystery-shi ...
Bing
[?]
Start
#146
Index
[~]
http://www.history.com/news/first-map-of-entire-titanic ...
Bing
[?]
Start
#147
Index
[~]
https://scratch.mit.edu/projects/67574706/
Bing
[?]
Start
#148
Index
[~]
https://prezi.com/uipnt6bbq6_v/history-mystery-did-tita ...
Bing
[?]
Start
Copyright © 2017 William F. Gilreath. All Rights Reserved.
Meta-search for 'Titanic sinking mystery ship' has 149 results on Sat Jul 22 09:21:09 PDT 2017
Internal IP address: '<IP_ADDRESS>'. External IP address/hostname: '<IP_ADDRESS>'/'ipNameExternal'.


 Track, complete, share, and collect bucket list items with the people around you.
Track your progress as you complete and work towards completing your bucketlist!
Collect badges and achievements as you complete various items. Can you collect them all?
Share your story with family, friends, and the community. Find more items that you'd like to do and give others your ideas.


All Fortnite Chapter 2 daily challenges leaked
by Calum PattersonAfter finally releasing the first set of proper patch notes in Chapter 2, Epic confirmed that daily challenges are making a comeback in Fortnite, and leakers may have already found them all.
Epic removed the tradition daily challenges back in August 2019, which annoyed some players as it essentially meant there was less to do if you were a ‘free’ player.
Without buying the Battle Pass, there were more limited challenges available each day. But Epic quickly rectified things by confirming that the limited-time missions which were replacing them would be available to all players, even those without the battle pass.
Daily challenges are back though, in addition to the continuing limited-time missions, confirmed in the v11.20 patch notes, with three available to complete each day.
As the name implies, the tasks rotate on a daily basis, but leakers have managed to compile a full list of all the challenges possibly coming in future days throughout Season 1 of Chapter 2.
The full list of leaked daily challenges, courtesy of FortniteInsider:
- Apply Shields
- Catch Fish
- Catch items from fishing spots at Lazy Lake
- Catch items from fishing spots at Slurpy Swamps
- Catch items from fishing spots at Sweaty Sands
- Catch Weapons
- Damage
- Damage with Explosives
- Damage with Pickaxe
- Damage with Rares
- Damage with Scoped Weapons
- Damage with SMGs
- Damage to Structures
- Damage with Uncommon Weapons
- Damage to Vehicles
- Damage with Epic Weapons
- Eliminations
- Blow up a fishing spot with an Explosive weapon
- Use a Harpoon on a fishing spot
- Catch items from fishing spots
- Gain Health
- Harvest Brick
- Harvest Metal
- Harvest Wood
- Hit Weakpoints
- Outlast enemies in solos or duos
- Outlast enemies in solos or squads
- Pickup each rarity
- Pickup legendary weapons in different matches
- Top 10 solo or duos
- Top 10 solo or squads
- Win a Team Rumble match
- Play Matches
- Play Matches with friends
- Search Ammo Boxes
- Search Ammo Boxes [can be specific to any named POI]
- Search Chests
- Search Supply Drops
- Use throwable items in different matches
- Use traps in different matches
As noted in the v11.20 patch notes, you can have three active daily challenges at a time, and once a day you can swap one of them out for another.
Each challenge will reward you with XP, and as mentioned, you don’t need to be a Battle Pass owner to access them – simply check the newest challenges when you log in each day.
With Season 1 of Chapter 2 now extended until early February, so we can expect to see this list of varied challenges rotate over the next few months, hopefully giving you a chance to complete all of them.
As with all leaks, it’s important to note that things could change in development.


Timer
is a non-visual component designed to run some screen controller code at specified time intervals.
The timer works in a thread that handles user interface events, therefore it can update screen components. Timer
stops working when a screen it was created for is closed.
Timers are described using the timer
element.
delay
- a required attribute; it defines timer interval in milliseconds;autostart
- an optional attribute; when it is set to true
, timer starts immediately
after the screen is opened. By default, the value is false
, which means that the timer will start
only when its start()
method is invoked;
repeating
- an optional attribute, turns on repeated executions of the timer. If the attribute is
set to true
, the timer runs in cycles at equal intervals defined in the delay
attribute. Otherwise, the timer runs only once – delay
milliseconds after the timer start.
To execute some code on timer, subscribe to its TimerActionEvent
in the screen controller.


Computation and visualization of Taxicab Correspondence Analysis, Choulakian (2006) <doi:10.1007/s11336-004-1231-4>. Classical correspondence analysis (CA) is a statistical method to analyse 2-dimensional tables of positive numbers and is typically applied to contingency tables (Benzecri, J.-P. (1973). L'Analyse des Donnees. Volume II. L'Analyse des Correspondances. Paris, France: Dunod). Classical CA is based on the Euclidean distance. Taxicab CA is like classical CA but is based on the Taxicab or Manhattan distance. For some tables, Taxicab CA gives more informative results than classical CA.
| Version: | 0.1.0 |
| Imports: | grDevices, graphics, stats, utils |
| Suggests: | GA, testthat |
| Published: | 2018-07-18 |
| Author: | Jacques Allard and Vartan Choulakian |
| Maintainer: | Jacques Allard <jacques.allard at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | TaxicabCA results |
| Reference manual: | TaxicabCA.pdf |
| Package source: | TaxicabCA_0.1.0.tar.gz |
| Windows binaries: | r-devel: TaxicabCA_0.1.0.zip, r-release: TaxicabCA_0.1.0.zip, r-oldrel: TaxicabCA_0.1.0.zip |
| OS X binaries: | r-release: TaxicabCA_0.1.0.tgz, r-oldrel: TaxicabCA_0.1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=TaxicabCA to link to this page.


There is only one routine on the client side.
| MPI_COMM_CONNECT(port_name, info, root, comm, newcomm) | |
| IN port_name | network address (string, used only on root) |
| IN info | implementation-dependent information (handle, used only on root) |
| IN root | rank in comm of root node (integer) |
| IN comm | intracommunicator over which call is collective (handle) |
| OUT newcomm | intercommunicator with server as remote group (handle) |
This routine establishes communication with a server specified by port_name. It is collective over the calling communicator and returns an intercommunicator in which the remote group participated in an MPI_COMM_ACCEPT.
If the named port does not exist (or has been closed), MPI_COMM_CONNECT raises an error of class MPI_ERR_PORT.
If the port exists, but does not have a pending MPI_COMM_ACCEPT, the connection attempt will eventually time out after an implementation-defined time, or succeed when the server calls MPI_COMM_ACCEPT. In the case of a time out, MPI_COMM_CONNECT raises an error of class MPI_ERR_PORT.
Advice
to implementors.
The time out period may be arbitrarily short or long. However, a high
quality implementation will try to queue connection attempts so that a
server can handle simultaneous requests from several clients. A high
quality implementation may also provide a mechanism, through the info
arguments to MPI_OPEN_PORT, MPI_COMM_ACCEPT and/or
MPI_COMM_CONNECT, for the user to
control timeout and queuing behavior.
( End of advice to implementors.)
MPI provides no guarantee of fairness in servicing connection
attempts. That is, connection attempts are not necessarily satisfied
in the order they were initiated and competition from other
connection attempts may prevent a particular connection attempt
from being satisfied.
port_name is the address of the server. It must be the same as the name returned by MPI_OPEN_PORT on the server. Some freedom is allowed here. If there are equivalent forms of port_name, an implementation may accept them as well. For instance, if port_name is (hostname:port), an implementation may accept (ip_address:port) as well.


AutoCanvas Class
A canvas that supports handwriting recognition.
Constructor
AutoCanvas
()
Item Index
Methods
- checkForValidRecognitionResults
- clear
- clearMode
- displayTextOverlay
- find
- getCanvasEnabled
- hideTextOverlay
- initializeInk
- inkMode
- renderAllStrokes
- renderStroke
- resetCanvas
- resetClearQueue
- restoreMode
- saveMode
- selectAllStrokes
- setCanvasEnabled
- setDefaults
- setRecognizerByName
- tempEraseMode
- toColorString
- toColorString
- toColorStruct
Properties
Methods
checkForValidRecognitionResults
-
recognitionResults
Checks the handwriting recognition results for valid input according to the conversion dictionary. If any valid input is found, the appropriate key from the conversion dictionary is returned.
Parameters:
-
recognitionResults
IVectorViewThe text candidates returned by handwriting recognition.
Returns:
The text that was recognized.
clear
()
Clears the canvas of all strokes.
clearMode
()
private
Clear the current ink mode.
displayTextOverlay
-
text
Displays text over the canvas. This also disables the canvas.
Parameters:
-
text
StringThe text to display.
find
()
private
Calls asynchronous handwriting recognition, which returns a list of results. Each result has a list of potential text candidates. We use the conversion dictionary to check against all potential text candidates to see if we have valid input. If the handwriting is recognized as valid input we call handwritingRecognitionCallback.
getCanvasEnabled
()
Boolean
Returns whether the canvas is enabled.
Returns:
Whether the canvas is enabled.
hideTextOverlay
()
private
Hides the text overlay that displays converted handwriting.
initializeInk
-
elementId
-
[configuration]
Creates a canvas DOM Element inside the Element with the specified elementId. The canvas begins responding to pen, mouse, and touch input upon creation. Accepts a configuration Object containing various configuration properties. Sample configuration:
{ errorHandler : function(ex) { throw ex; }, messageHandler: function(message) { Debug.writeLn(message); }, alphabetDictionary : [ "X": ["x","X","%","T","t"], "O": ["o","O","0","Q"] ], recognitionCallback: function(value) { Debug.writeLn("Input recognized: " + value); }, clearTimeoutDuration: 2000, autoConvertHandwritingToText: true, fontSize: "10rem" }
Parameters:
-
elementId
StringA case-sensitive string representing the unique ID of the element to create a canvas inside of.
-
[configuration]
Object optionalAn optional object containing several configuration parameters which affect the behaviour of the canvas.
-
[errorHandler]
Function optionalA callback function to handle errors.
-
ex
ErrorThe Error object that will be passed into the errorHandler if an error occurs.
-
-
[messageHandler]
Function optionalA callback function for debugging messages.
-
message
StringThe debug message that will be passed into messageHandler.
-
-
[alphabetDictionary]
Object optionalAn object that defines the input that should be recognized by handwriting recognition.
-
[recognitionCallback]
Function optionalA callback function for when handwriting is recognized.
-
recognitionCallback
StringThe text that was recognized to be passed into recognitionCallback.
-
[clearTimeoutDuration=1000]
Number optionalThe length of time in milliseconds to wait for additional user input before clearing unrecognized handwriting from the canvas.
-
[autoConvertHandwritingToText=false]
Boolean optionalDetermines if handwriting should automatically be converted to text as soon as it is recongized.
-
[fontSize="4rem"]
String optionalThe CSS value for the font size of text in the canvas.
-
inkMode
()
private
Sets the ink mode to inking (default).
renderAllStrokes
-
[dontFind]
Redraws (from the beginning) all strokes in the canvases. All canvases are erased, then the paper is drawn, then all the strokes are drawn.
Parameters:
-
[dontFind]
Boolean optionalWhether to not perform handwriting recognition after rendering the strokes.
renderStroke
-
stroke
-
color
-
width
-
ctx
Draws a single stroke into a specified canvas 2D context, with a specified color and width.
Parameters:
-
stroke
InkStrokeThe stroke to draw.
-
color
NsIVariantColor or style to use for stroke lines. Default #000 (black).
-
width
FloatThe width of the stroke.
-
ctx
CanvasRenderingContext2DThe 2D context to draw the stroke on.
resetCanvas
()
Resets the canvas back to default inkable mode.
resetClearQueue
()
private
Prevents any queued calls to clear from happening then empties the queue.
restoreMode
()
private
Restore the saved ink mode.
saveMode
()
private
Save the current ink mode.
selectAllStrokes
()
private
Makes all strokes a part of the selection.
setCanvasEnabled
-
value
Sets whether the canvas is enabled.
Parameters:
-
value
BooleanWhether the canvas should be enabled (allow pen, mouse, and touch inout from the user).
setDefaults
()
private
Change the color and width in the default (used for new strokes) to the values currently set in the current context. Note that we cannot just set the width in stroke.drawingAttributes.size.width, or the color in stroke.drawingAttributes.color. The stroke API supports get and put operations for drawingAttributes, but we must execute those operations separately, and change any values inside drawingAttributes between those operations.
setRecognizerByName
-
recname
Finds a specific recognizer, and sets the inkManager's default to that recognizer.
Parameters:
-
recname
StringThe name of the InkManager recognizer.
Returns:
Whether it found the recognizer specified by recname.
tempEraseMode
()
private
Change the ink mode to erase for erasers on the back of pens (like the Surface Pro 1 & 2). Uses the saveMode()/restoreMode() functions to return us to our previous mode when done erasing.
toColorString
-
color
Convert from Windows.UI.Color to html's color hex string.
Parameters:
-
color
Windows.UI.ColorColor object to convert.
Returns:
Converted color hex string.
toColorString
-
num
Converts an integer to its 2-digit string hexideciaml representation. Assumes arg num is a number (0..255).
Parameters:
-
num
NumberInteger to convert.
Returns:
Converted hex string.
toColorStruct
-
color
Convert from the few color names used in this library to Windows.UI.Input.Inking's color code. If it isn't one of those, then decode the hex string. Otherwise return gray. The alpha component is always set to full (255).
Parameters:
-
color
StringName of the color. Ex: "Black", "Blue", "Red"
Returns:
Converted color.
Properties
autoConvertHandwritingToText
Boolean
private
Controls whether handwriting should automatically be converted to text. When handwriting is recognized as valid input, the canvas will be cleared, disabled and covered by an overlay that contains the text that was recognized.
canvasEnabled
Boolean
private
Controls whether the canvas is currently accepting user input (pen, mouse, touch).
clearTimeoutDuration
Number
private
This is how long in milliseconds we should wait before clearing invalid input. The default value for clearTimeout is 1000 ms. This can be overridden by the configuration in initializeInk().
context
CanvasRenderingContext2D
private
The "mode" of whether we are inking or erasing is controlled by this variable, which should be pointing to inkContext.
conversionDictionary
Object
private
List of objects that determine the valid input for handwriting recognition. If any of the letters in the list is detected by handwriting recognition it should accept the char key as input. Otherwise it will notify a list of conversions every time handwriting recognition occurs via sendNotification().
drawingAttributes
Windows.UI.Input.Inking.InkDrawingAttributes
private
Keeps track of the inkManager's ink drawing attributes.
inkCanvas
Windows.UI.Input.Inking.InkManager
private
Represents the ink interface.
inkContext
CanvasRenderingContext2D
private
2D ink context.
penID
Number
private
Global memory of the current pointID (for pen, and, separately, for touch). We ignore handlePointerMove() and handlePointerUp() calls that don't use the same pointID as the most recent handlePointerDown() call. This is because the user sometimes accidentally nudges the mouse while inking or touching. This can cause move events for that mouse that have different x,y coordinates than the ink trace or touch path we are currently handling. pointer* events maintain this pointId so that one can track individual fingers, the pen, and the mouse.
queuedClear
Number
private
Numerical id of the clear timeout that is set on the window. Keeps track of whether we have already called clear (clear is usually called on a timeout to give the user more time to finish inking).
savedContext
CanvasRenderingContext2D
private
Saved 2D ink context.
savedMode
Windows.UI.Input.Inking.InkManipulationMode
private
Saved ink mode.
savedStyle
NsIVariant
private
Saved color or style to use for strokes.
textOverlayElement
HTMLElement
private
A reference to the element that contains the text to display if autoConvertHandwritingToText is enabled.
Events
EventHandler.handlePointerDown
private
Fired on pen down, mouse left down, and touch down. Signals the start of a stroke.
Event Payload:
-
evt
PointerEventThe pointer down event.
EventHandler.handlePointerMove
private
Fired when the pen, mouse, or finger moves.
Event Payload:
-
evt
PointerEventThe pointer move event.
EventHandler.handlePointerOut
private
Fired when the pen or mouse goes outside the canvas. We treat the event of the pen leaving the canvas as the same as the pen lifting; it completes the stroke.
Event Payload:
-
evt
PointerEventThe pointer out event.
EventHandler.handlePointerUp
private
Fired when the pen, mouse, or finger lifts off the canvas.
Event Payload:
-
evt
PointerEventThe pointer up event.
handwritingRecognitionCallback
private
This is an optional callback the user can send in when initializing ink. It is called with the string that was recognized whenever valid handwriting is recognized. If the callback is not null it will expect a true or false return value. The return value decides whether the string should be accepted as input. If false the handwriting will be cleared.
Event Payload:
-
recognizedText
StringThe text that was recognized.
onError
private
Error handler. Can be overriden when the ink is initialized.
Event Payload:
-
ex
ErrorThe error that was thrown.
sendNotification
private
Message handler for debugging info. Can be overriden when the ink is initialized.
Event Payload:
-
message
StringThe message being sent.


{include file=comm/head.html} {include file=comm/top.html}
[search:content drophtml=1 dropblank=1 len=50 mark=1]