HTTPClient and the Request Lifecycle
Objective
In this chapter, you will learn how to access and interact with remote servers via the HTTP protocol. You will also examine the XHLHTTPRequest (XHR) lifecycle and how it is implemented within Titanium.
Contents
Your Titanium application can interact with remote servers over HTTP using the Ti.Network.HTTPClient object. Titanium's HTTPClient API mirrors that of the XMLHTTPRequest object in the web browser, so if you have done any Ajax programming in the browser (outside of libraries like Dojo or jQuery, which use XMLHTTPRequest), HTTPClient will be familiar to you.
As shown in the code example below, you declare an HTTPClient object and pass to it a number of parameters. Of these, the most critical is the onload callback function. It is the function called when data is returned and available for use. The onerror callback function is called when there's a network error, such as a timeout.
var url = "https://www.appcelerator.com";
var xhr = Ti.Network.createHTTPClient({
onload: function(e) {
// this function is called when data is returned from the server and available for use
// this.responseText holds the raw text return of the message (used for text/JSON)
// this.responseXML holds any returned XML (including SOAP)
// this.responseData holds any returned binary data
Ti.API.debug(this.responseText);
alert('success');
},
onerror: function(e) {
// this function is called when an error occurs, including a timeout
Ti.API.debug(e.error);
alert('error');
},
timeout:5000 /* in milliseconds */
});
xhr.open("GET", url);
xhr.send(); // request is actually sent with this statement
It is possible to use HTTPClient to interact with many popular types of web services, but the easiest form to work with are REST-style web services. Defining and explaining RESTful web services is beyond the scope of this guide, but you can learn more about REST here. For our purposes, it is sufficient to understand that a 'resource' is some bit of data on the web, identified by a URI. Most commonly, your mobile application will interact with this data on the web using HTTP GET or POST requests (though the full range of HTTP verbs are supported by HTTPClient: GET, POST, PUT, and DELETE).
The handling of network communication is handled asynchronously. Mobile data networks are less reliable and consistently available than office or home Internet connections. You would not want your application to hang while waiting on an HTTP request to return.
GET requests
Making a GET (or any other type of) request to a resource on the web consists of three steps:
-
Creating an HTTP Client (starts on line 2 in the code above)
-
Opening an HTTP connection to a specified resource (line 18)
-
Sending an HTTP request (line 19)
Most of the time, simply sending the request is not useful to your application. You are likely interested in the data the server will respond with, which is available in the response body. In order to access this data, you can specify callback functions to be executed at specific points in the lifecycle of the request. As shown in the code above, onload is called after a response from the resource has been successfully received, and oneerror is called if there is an error.
Within those callback functions:
-
this.responseText holds the returned payload as raw text
-
this.responseXML holds the payload as an XML document instance
-
this.responseData holds the payload as a BLOB (binary data)
POST requests
Often you will need to send data to the server in the body of your request, as you would in a standard HTML form. This is typically accomplished via a POST (or PUT) request. Titanium provides an easy way of sending along a POST body with a request, automatically serializing JavaScript object graphs into form-encoded POST parameters:
var xhr = Ti.Network.createHTTPClient();
xhr.onload = function(e) {
//handle response, which at minimum will be an HTTP status code
};
xhr.open('POST','http://www.myblog.com/post.php');
xhr.send({
title:'My awesome blog',
body:'Today I met Susy at the laundromat. Best day EVAR\!'
});
You can also send arbitrary string data as the body of your post by passing a string to send:
xhr.send('<some><xml><data></data></xml></some>');
HTTP headers
It is often necessary to manually add HTTP headers to your requests. This can be accomplished easily by using the setHeader function on HTTPClient. NOTE: HTTP Headers must be set AFTER client.open(), but before client.send(), as below:
var client = Ti.Network.createHTTPClient();
client.open('POST','http://someserver.com/files/new');
client.setHeader('Content-Type','text/csv');
client.send('foo,bar,foo,bar');
XHR lifecycle
HTTPClient implements the five XHR ready states defined by the W3 specification. Should you need to, your app can react to these state changes with the onreadystatechange callback. The five states are:
-
UNSENT (numeric value 0) – The object has been constructed. Titanium doesn't report on this state with the onreadystatechange handler.
-
OPENED (numeric value 1) – The open() method has been successfully invoked. During this state request headers can be set using setRequestHeader() and the request can be made using the send() method.
-
HEADERS_RECEIVED (numeric value 2) – All redirects (if any) have been followed and all HTTP headers of the final response have been received. Several response members of the object are now available.
-
LOADING (numeric value 3) – The response entity body is being received.
-
DONE (numeric value 4) – The data transfer has been completed or something went wrong during the transfer (e.g. infinite redirects).
In code, it would look like this:
var xhr = Ti.Network.createHTTPClient({
onload: function(e) {
// function called in readyState DONE (4)
Ti.API.info('onload called, readyState = '+this.readyState);
},
onerror: function(e) {
// function called in readyState DONE (4)
Ti.API.info('onerror called, readyState = '+this.readyState);
},
ondatastream: function(e) {
// function called as data is downloaded
Ti.API.info('ondatastream called, readyState = '+this.readyState);
},
onsendstream: function(e) {
// function called as data is uploaded
Ti.API.info('onsendstream called, readyState = '+this.readyState);
},
onreadystatechange: function(e) {
switch(this.readyState) {
case 0:
// after HTTPClient declared, prior to open()
// though Ti won't actually report on this readyState
Ti.API.info('case 0, readyState = '+this.readyState);
break;
case 1:
// open() has been called, now is the time to set headers
Ti.API.info('case 1, readyState = '+this.readyState);
break;
case 2:
// headers received, xhr.status should be available now
Ti.API.info('case 2, readyState = '+this.readyState);
break;
case 3:
// data is being received, onsendstream/ondatastream being called now
Ti.API.info('case 3, readyState = '+this.readyState);
break;
case 4:
// done, onload or onerror should be called now
Ti.API.info('case 4, readyState = '+this.readyState);
break;
}
},
timeout:5000 /* in milliseconds */
});
xhr.open("GET", 'http://training.appcelerator.com.s3.amazonaws.com/atp_doc.pdf');
xhr.send(); // request is actually sent with this statement
Hands-on Practice
Goal
In this activity, you will write an app that downloads and displays an image from a remote web URL using the HTTPClient object.
Resources
To perform the steps in this activity, you will need to reference the HTTPClient API docs at http://developer.appcelerator.com/apidoc/mobile/latest/Titanium.Network.HTTPClient-object.html. You will also need a working internet connection on your simulator/emulator or test device.
Steps
-
Create a new Titanium Mobile project.
-
In app.js, declare an HTTPClient object with a name of your choosing. It will GET the image at http://developer.appcelerator.com/assets/img/DEV_appteam_photo.png
-
Write an onload callback for your HTTPClient that will perform these operations:
-
Log the HTTP status code to the console. See the API docs for the correct property to use to access the status code.
-
Define an ImageView object whose image property is set equal to the binary data returned from the network.
-
Add that ImageView object to the win1 window so that it will be displayed.
-
-
Write an onerror callback for your HTTPClient that will perform these operations:
-
Log the HTTP status code to the console.
-
Display the contents of the error message in an alert() dialog.
-
-
Make sure to open and then send the request.
-
Build and test your app. The photo should be displayed on the first tab after it is downloaded.
References and Further Reading
Summary
In this chapter, you learned learned that Titanium implements the XHLHTTPRequest (XHR) via the HTTPClient module. You used that module to access and interact with remote servers over HTTP. You also examined the XHR lifecycle and how it is implemented within Titanium.


Contains data for course ratings
| Name | Description |
|---|---|
| course_id | Course id for the course receiving ratings |
| ualberta_feedback_user_id | Encrypted Coursera user id for ualberta feedback data. |
| feedback_system | Feedback system: STAR for course ratings |
| feedback_rating | Value of the rating. Should be 1-5 for active course ratings |
| feedback_max_rating | Maximum value of the rating: 5 for course ratings |
| feedback_ts | Timestamp when the feedback was left |
CREATE TABLE feedback_course_ratings ( course_id varchar ,ualberta_feedback_user_id VARCHAR(50) NOT NULL ,feedback_system varchar ,feedback_rating int4 ,feedback_max_rating int4 ,feedback_ts timestamp ,PRIMARY KEY (course_id, feedback_system, ualberta_feedback_user_id, feedback_ts) ,FOREIGN KEY (course_id) REFERENCES courses(course_id) );


Note: All users with access to this toolchain will be able to access artifacts derived from this repository, such as build artifacts in the Delivery Pipeline.


{% include head.html %}
{% include coa-header.html %} {% include dash-top-nav.html %}-
This dashboard is for informational purposes and may not have been prepared for or be suitable for legal, engineering, or surveying purposes. It does not represent an on-the-ground survey and represents only the approximate relative location of traffic signals.


Provides an easy to use interface to control the iiwa in combination with MoveIt!. More...
#include <robot_interface.h>
Public Member Functions | |
| virtual void | buttonEventCallback (const std_msgs::String::ConstPtr &msg) |
| This callback function is called whenever one of the buttons on the SmartPad is pressed. More... | |
| void | clearPathConstraints () |
| geometry_msgs::PoseStamped | getBasePose () const |
| std::vector< double > | getJointPositions () |
| Returns the current joint positions. More... | |
| std::vector< double > | getJointVelocities () |
| Returns the current joint velocities. More... | |
| bool | getMFButtonState () |
| Returns true if the green button on the Media Flange is being pressed. More... | |
| geometry_msgs::PoseStamped | getPose (const std::string &end_effector_link="") |
| Returns the current cartesian Pose. More... | |
| void | jointStateCallback (const sensor_msgs::JointState::ConstPtr &msg) |
| void | mfButtonStateCallback (const std_msgs::Bool::ConstPtr &msg) |
| Callback function to store current button state in member variable. More... | |
| virtual bool | moveAlongCartesianPathInWorldCoords (const std::vector< geometry_msgs::Pose > &waypoints, double eef_step, double jump_threshold, bool avoid_collisions=true, bool approvalRequired=true) |
| virtual void | planAndMove (const geometry_msgs::Pose &target_pose, bool approvalRequired=true, const std::string &pose_name=std::string("given pose")) |
| Plans a motion to a given endeffector pose. More... | |
| virtual void | planAndMove (const geometry_msgs::Pose &target_pose, const std::string &pose_name=std::string("given pose"), bool approvalRequired=true) |
| Deprecated. More... | |
| virtual void | planAndMove (const geometry_msgs::PoseStamped &target_pose, bool approvalRequired=true, const std::string &pose_name=std::string("given pose")) |
| Plans a motion to a given endeffector pose. More... | |
| virtual void | planAndMove (const geometry_msgs::PoseStamped &target_pose, const std::string &pose_name=std::string("given pose"), bool approvalRequired=true) |
| Deprecated. More... | |
| virtual void | planAndMove (const std::vector< double > &joint_group_positions, bool approvalRequired=true, const std::string &pose_name=std::string("given pose")) |
| Plans a motion to a given joint space goal. More... | |
| virtual void | planAndMove (const std::vector< double > &joint_group_positions, const std::string &pose_name=std::string("given pose"), bool approvalRequired=true) |
| Deprecated.  Plans a motion to a pose given in another coordinate frame.  More... | |
| virtual void | publishPoseGoal (const geometry_msgs::PoseStamped &target_pose, double duration) |
| virtual void | publishPoseGoalLinear (geometry_msgs::PoseStamped target_pose) |
| Publishes a cartesian pose goal to the CartesianPoseLin topic. More... | |
| virtual void | publishTrajectory (const trajectory_msgs::JointTrajectory &trajectory) |
| Publishes a joint trajectory to the command topic of the controller. More... | |
| RobotInterface (ros::NodeHandle *node_handle, const std::string &planning_group, const std::vector< double > &base_pose) | |
| Constructs a new RobotInterface with the given parameters. More... | |
| RobotInterface (ros::NodeHandle *node_handle, const std::string &planning_group, const std::string &base_frame=std::string("iiwa_link_0")) | |
| Constructor that assumes all joint angles as 0.0 for the base pose. More... | |
| virtual bool | runTrajectoryAction (const trajectory_msgs::JointTrajectory &trajectory) |
| Runs a joint trajectory action and waits for the robot to finish. More... | |
| void | setBasePose (const std::vector< double > &new_base_pose) |
| void | setPathConstraints (const moveit_msgs::Constraints &constraint) |
| virtual void | waitForApproval () |
| Waits for the user to click 'Next' in RViz. More... | |
Protected Member Functions | |
| void | moveToCurrentTarget (const std::string &pose_name, bool approvalRequired) |
| Plans and moves to current target. More... | |
| void | updateRobotState () |
| Gets the current robot state and stores it. More... | |
Protected Attributes | |
| geometry_msgs::PoseStamped | base_pose_ |
| Base pose in world coordinates. More... | |
| std::vector< double > | base_pose_jointspace_ |
| Base pose in joint space coordinates. More... | |
| ros::Subscriber | button_subscriber_ |
| Subscribes to the button topic of the robot. More... | |
| ros::Publisher | cartPoseLin_publisher_ |
| The publisher to publish cartesian pose goals for linear motions. More... | |
| const robot_state::JointModelGroup * | joint_model_group_ |
| The actual JointModelGroup instance. More... | |
| std::vector< std::string > | joint_names_ |
| A vector of joint names. More... | |
| sensor_msgs::JointState::ConstPtr | joint_state_ptr_ |
| Current joint states. More... | |
| ros::Subscriber | joint_state_subscriber_ |
| Subscribes to the joint_states topic. More... | |
| ros::Subscriber | mfButton_subscriber_ |
| Subscribes to the button topic (Media Flange) of the robot. More... | |
| bool | mfButtonState_ |
| State of Media Flange UserButton. More... | |
| moveit::planning_interface::MoveGroupInterface | move_group_ |
| The MoveGroupInterface to use MoveIt!. More... | |
| moveit::planning_interface::MoveGroupInterface::Plan | movement_plan_ |
| This is where a MoveIt! plan will be stored. More... | |
| ros::NodeHandle * | node_handle_ |
| The NodeHandle used to publish or subscribe messages. More... | |
| const std::string | PLANNING_GROUP_ |
| The name of the planning group/joint model group to use. More... | |
| moveit::planning_interface::PlanningSceneInterface | planning_scene_interface_ |
| The PlanningSceneInterface to represent the planning scene. More... | |
| robot_state::RobotState | robot_state_ |
| This is where the current robot state is stored. More... | |
| Eigen::Affine3d | text_pose_ |
| The position of the status text, usually above the robot's head. More... | |
| tf::TransformListener | tf_listener_ |
| ros::Publisher | trajectory_publisher_ |
| The publisher to publish trajectory messages to the command topic of the controller. More... | |
| moveit_visual_tools::MoveItVisualTools | visual_tools_ |
| Tools used to visualize in RViz. More... | |
Provides an easy to use interface to control the iiwa in combination with MoveIt!.
All public methods are virtual, so that derived classes can overwrite them in case they need modified versions.
Definition at line 58 of file robot_interface.h.
| iimoveit::RobotInterface::RobotInterface | ( | ros::NodeHandle * | node_handle, |
| const std::string & | planning_group, | ||
| const std::vector< double > & | base_pose | ||
| ) |
Constructs a new RobotInterface with the given parameters.
| node_handle | The NodeHandle used to publish and subscribe to topics. |
| planning_group | The planning group/joint model group to plan for. |
| base_pose | Base pose in joint space coordinates (for tasks where robot often returns to one pose). |
Definition at line 44 of file robot_interface.cpp.
| iimoveit::RobotInterface::RobotInterface | ( | ros::NodeHandle * | node_handle, |
| const std::string & | planning_group, | ||
| const std::string & | base_frame = std::string("iiwa_link_0") |
||
| ) |
Constructor that assumes all joint angles as 0.0 for the base pose.
| node_handle | The NodeHandle used to publish and subscribe to topics. |
| planning_group | The planning group/joint model group to plan for. |
| !DEPRECATED! | We suggest not to use this parameter at all as it might be removed in future versions. It does not have any effect anymore. |
Definition at line 68 of file robot_interface.cpp.
|
virtual |
This callback function is called whenever one of the buttons on the SmartPad is pressed.
To make it useful, a class should be derived from RobotInterface and the callback function overwritten to something useful. For the buttons to be shown on the SmartPad, they have to be configured via a launch file (like in iiwa_stack/iiwa_ros/launch/toolbar_example.launch) prior to the RosSmartServo application being launched on the iiwa!
| msg | A string containing information about which button was pressed or released. |
Definition at line 298 of file robot_interface.cpp.
|
inline |
Definition at line 263 of file robot_interface.h.
|
inline |
Definition at line 259 of file robot_interface.h.
| std::vector< double > iimoveit::RobotInterface::getJointPositions | ( | ) |
Returns the current joint positions.
Definition at line 303 of file robot_interface.cpp.
| std::vector< double > iimoveit::RobotInterface::getJointVelocities | ( | ) |
Returns the current joint velocities.
Definition at line 308 of file robot_interface.cpp.
|
inline |
Returns true if the green button on the Media Flange is being pressed.
Definition at line 230 of file robot_interface.h.
| geometry_msgs::PoseStamped iimoveit::RobotInterface::getPose | ( | const std::string & | end_effector_link = "" | ) |
Returns the current cartesian Pose.
| end_effector_link | Name of the endeffector link, if left empty, end effector link of planning group will be used. |
Definition at line 312 of file robot_interface.cpp.
|
inline |
Definition at line 210 of file robot_interface.h.
|
inline |
Callback function to store current button state in member variable.
| msg | A Bool message containing the button state read from topic mftButtonState. |
Definition at line 224 of file robot_interface.h.
|
virtual |
Definition at line 210 of file robot_interface.cpp.
|
protected |
Plans and moves to current target.
Definition at line 346 of file robot_interface.cpp.
|
virtual |
Plans a motion to a given endeffector pose.
It will show the planned trajectory in RViz and, if approvalRequired is set to true, will ask for confirmation before moving to the goal.
| target_pose | The pose goal. |
| pose_name | The name of the pose that will be shown in RViz. |
| approvalRequired | If set to true, it will only move after confirmation in RViz. |
Definition at line 77 of file robot_interface.cpp.
|
virtual |
Deprecated.
Use the one which has approvalRequired before pose_name instead.
Definition at line 72 of file robot_interface.cpp.
|
virtual |
Plans a motion to a given endeffector pose.
It will show the planned trajectory in RViz and, if approvalRequired is set to true, will ask for confirmation before moving to the goal.
| target_pose | The pose goal. |
| pose_name | The name of the pose that will be shown in RViz. |
| approvalRequired | If set to true, it will only move after confirmation in RViz. |
Definition at line 88 of file robot_interface.cpp.
|
virtual |
Deprecated.
Use the one which has approvalRequired before pose_name instead.
Definition at line 83 of file robot_interface.cpp.
|
virtual |
Plans a motion to a given joint space goal.
It will show the planned trajectory in RViz and, if approvalRequired is set to true, will ask for confirmation before moving to the goal.
| joint_group_positions | The joint goal. |
| pose_name | The name of the pose that will be shown in RViz. |
| approvalRequired | If set to true, it will only move after confirmation in RViz. |
Definition at line 99 of file robot_interface.cpp.
|
virtual |
Deprecated.
Use the one which has approvalRequired before pose_name instead.
Definition at line 94 of file robot_interface.cpp.
|
virtual |
Definition at line 142 of file robot_interface.cpp.
|
virtual |
Definition at line 146 of file robot_interface.cpp.
|
virtual |
Definition at line 152 of file robot_interface.cpp.
|
virtual |
!UNTESTED! Plans a motion to a pose given in another coordinate frame.
The coordinates of the second pose will be interpreted with the first pose as origin. This method is called by the other ones that plan in a different coordinate system like the current tool pose or the base pose.
| first_pose | The first pose. The pose given with the other parameters will be concatenated onto this one. |
| px | The translation in x-direction of the second pose. |
| py | The translation in y-direction of the second pose. |
| pz | The translation in z-direction of the second pose. |
| rx | The x-component of the quaternion of the second pose. |
| ry | The y-component of the quaternion of the second pose. |
| rz | The z-component of the quaternion of the second pose. |
| rw | The w-component of the quaternion of the second pose. |
| approvalRequired | If set to true, it will only move after confirmation in RViz. |
Definition at line 105 of file robot_interface.cpp.
|
virtual |
Definition at line 127 of file robot_interface.cpp.
|
virtual |
Definition at line 131 of file robot_interface.cpp.
|
virtual |
Definition at line 137 of file robot_interface.cpp.
|
virtual |
Definition at line 190 of file robot_interface.cpp.
|
virtual |
Definition at line 194 of file robot_interface.cpp.
|
virtual |
Definition at line 200 of file robot_interface.cpp.
|
virtual |
Definition at line 175 of file robot_interface.cpp.
|
virtual |
Definition at line 179 of file robot_interface.cpp.
|
virtual |
Definition at line 185 of file robot_interface.cpp.
|
virtual |
Plans a motion relative to a given pose and moves to it.
The coordinates of the second pose will still be interpreted in the world frame. Only the orientation of both will be concatenated. This method is called by the ones that plan relative to the current pose or base pose.
| first_pose | The first pose. |
| px | The translation in x-direction of the second pose. |
| py | The translation in y-direction of the second pose. |
| pz | The translation in z-direction of the second pose. |
| rx | The x-component of the quaternion of the second pose. |
| ry | The y-component of the quaternion of the second pose. |
| rz | The z-component of the quaternion of the second pose. |
| rw | The w-component of the quaternion of the second pose. |
| approvalRequired | If set to true, it will only move after confirmation in RViz. |
Definition at line 157 of file robot_interface.cpp.
|
virtual |
Definition at line 205 of file robot_interface.cpp.
| geometry_msgs::PoseStamped iimoveit::RobotInterface::poseFromJointAngles | ( | const std::vector< double > & | joint_group_positions | ) |
Calculates the robot's endeffector pose from given joint angles, relative to robot base.
| joint_group_positions | Pose in joint space |
Definition at line 316 of file robot_interface.cpp.
|
virtual |
Publishes a Pose to the command topic of the controller.
This has to be used with care, as this method does not check whether the robot is close to the starting point of the trajectory. As the command topic expects trajectory messages, the pose will be put in a trajectory containing this single pose.
| target_pose | The pose to publish. |
| duration | The duration value of the trajectory message. |
Definition at line 246 of file robot_interface.cpp.
|
virtual |
Definition at line 259 of file robot_interface.cpp.
|
virtual |
Publishes a cartesian pose goal to the CartesianPoseLin topic.
This does not work within the simulation as it uses KUKAs linear motion functionality. This also means that there will be no obstacle avoidance as it does not plan its path via MoveIt.
| target_pose | The pose goal. |
Definition at line 263 of file robot_interface.cpp.
|
virtual |
Publishes a joint trajectory to the command topic of the controller.
This has to be used with care, as this method does not check whether the robot is close to the starting point of the trajectory.
| trajectory | The trajectory to publish. |
Definition at line 223 of file robot_interface.cpp.
|
virtual |
Runs a joint trajectory action and waits for the robot to finish.
This has to be used with care, as this method does not check whether the robot is close to the starting point of the trajectory.
| trajectory | The trajectory. |
Definition at line 227 of file robot_interface.cpp.
| void iimoveit::RobotInterface::setBasePose | ( | const std::vector< double > & | new_base_pose | ) |
Definition at line 337 of file robot_interface.cpp.
|
inline |
Definition at line 262 of file robot_interface.h.
|
protected |
Gets the current robot state and stores it.
Definition at line 342 of file robot_interface.cpp.
|
virtual |
Waits for the user to click 'Next' in RViz.
Definition at line 219 of file robot_interface.cpp.
|
protected |
Base pose in world coordinates.
Definition at line 283 of file robot_interface.h.
|
protected |
Base pose in joint space coordinates.
Definition at line 282 of file robot_interface.h.
|
protected |
Subscribes to the button topic of the robot.
Definition at line 271 of file robot_interface.h.
|
protected |
The publisher to publish cartesian pose goals for linear motions.
Definition at line 269 of file robot_interface.h.
|
protected |
The actual JointModelGroup instance.
Definition at line 276 of file robot_interface.h.
|
protected |
A vector of joint names.
Definition at line 280 of file robot_interface.h.
|
protected |
Current joint states.
Definition at line 285 of file robot_interface.h.
|
protected |
Subscribes to the joint_states topic.
Definition at line 270 of file robot_interface.h.
|
protected |
Subscribes to the button topic (Media Flange) of the robot.
Definition at line 272 of file robot_interface.h.
|
protected |
State of Media Flange UserButton.
Definition at line 284 of file robot_interface.h.
|
protected |
The MoveGroupInterface to use MoveIt!.
Definition at line 274 of file robot_interface.h.
|
protected |
This is where a MoveIt! plan will be stored.
Definition at line 277 of file robot_interface.h.
|
protected |
The NodeHandle used to publish or subscribe messages.
Definition at line 267 of file robot_interface.h.
|
protected |
The name of the planning group/joint model group to use.
Definition at line 273 of file robot_interface.h.
|
protected |
The PlanningSceneInterface to represent the planning scene.
Definition at line 275 of file robot_interface.h.
|
protected |
This is where the current robot state is stored.
Definition at line 281 of file robot_interface.h.
|
protected |
The position of the status text, usually above the robot's head.
Definition at line 279 of file robot_interface.h.
|
protected |
Definition at line 286 of file robot_interface.h.
|
protected |
The publisher to publish trajectory messages to the command topic of the controller.
Definition at line 268 of file robot_interface.h.
|
protected |
Tools used to visualize in RViz.
Definition at line 278 of file robot_interface.h.


When you're close
You are my most
The chosen rose
I hold your cheeks
And they are my peak
Spider girl
I will make you
Be surprised
And everyday
You will
Just
Be
And smile.
My highest dream
The me and you
The sweetest spring
Believe it too
Eternal youth
We will do it too,
Our stories
Are only in the start
So for now
Just take your time
But see your heart
And our sweet truth
Another bigger glance
Because
The gates to heaven
Lives in your arms.


{{ error_message }}
{% endif %}See our volunteers, what they can do, and how much time they have. We have available {{available_hours}} hours of per week of engineering time and we are currently donating {{donated_hours}} hours per week.
| Name | Description | Time avalable/donating (weekly) | Sector | Skills |
|---|---|---|---|---|
| {{engineer.name}} ({{engineer.finished_projects}} finished {%if engineer.finished_projects == 1%}project{%else%}projects{%endif%}) | {{engineer.description}} | {{engineer.time_available}}/{{engineer.time_per_week}} | {% for sector in engineer.sectors.all %} {{ sector.name }} {% endfor %} | {% for skill in engineer.skills.all %} {{ skill.name }} {% endfor %} |
A 2013 Summer of Hack project by Michal and Ellora.


Welcome!
Javascript fun
Text To Image converter
Text To Image converter (colored version)
Online Chat (only works on ugrad server)
Markov Chain Text Generator
Visualize LISP code using trees
Checkers AI (WIP)
Labyrinth generator
Cellular Automata
Basic Game Of Life
Basic Game Of Life (colored version)
Voting Rule
Stochastic Voting Rule (Heat Model)
Stochastic Voting Rule (Plane Filler)
Stochastic Voting Rule (Height Map)
Games
lost
Static stuff
Image gallery
I am bored!
Mirrors:
https://slemonide.github.io/
http://www.ugrad.cs.ubc.ca/~y9v0b/


s6
Software
skarnet.org
The s6-ipcserver program
s6-ipcserver is an
UCSPI server tool for
Unix domain sockets, i.e. a super-server.
It accepts connections from clients, and forks a
program to handle each connection.
Interface
s6-ipcserver [ -1 ] [ -q | -Q | -v ] [ -d | -D ] [ -P | -p ] [ -a perms ] [ -c maxconn ] [ -C localmaxconn ] [ -b backlog ] [ -G gidlist ] [ -g gid ] [ -u uid ] [ -U ] path prog...
- s6-ipcserver binds a Unix domain socket to path.
- It can drop its root privileges.
- It closes its stdin and stdout.
- For every client connection to this socket, it
forks. The child sets some environment variables, then
executes prog... with stdin reading from the socket and
stdout writing to it.
- Depending on the verbosity level, it logs what it does to stderr.
- It runs until killed by a signal. Depending on the received
signal, it may kill its children before exiting.
- s6-ipcserver actually doesn't do any of this itself. It is
a wrapper, rewriting the command line and executing into a chain
of programs that perform those duties.
Implementation
- s6-ipcserver parses the options and arguments it is given, and
builds a new command line with them. It then executes into that new
command line.
- The first program s6-ipcserver executes into is
s6-ipcserver-socketbinder.
It will create and bind a Unix domain socket to path, then
execute into the rest of the command line.
- If a privilege-dropping operation has been requested, the
program that s6-ipcserver-socketbinder executes into is
s6-applyuidgid.
It will drop the root privileges, then execute into the rest of the
command line.
- The next program in the chain is
s6-ipcserverd. It is executed into
by s6-applyuidgid, or directly by s6-ipcserver-socketbinder if no
privilege-dropping operation has been requested. s6-ipcserverd is
the long-lived process, the "daemon" itself, accepting connections
from clients.
- For every client, s6-ipcserverd will spawn an instance of
prog..., the remainder of the command line.
Options
- -1 : write a newline to stdout, before
closing it, right after binding and listening to the Unix socket.
If stdout is suitably redirected, this can be used by monitoring
programs to check when the server is ready to accept connections.
- -q : be quiet.
- -Q : be normally verbose. This is the default.
- -v : be verbose.
- -d : allow instant rebinding to the same path
even if it has been used not long ago - this is the SO_REUSEADDR flag to
setsockopt()
and is generally used with server programs. This is the default. Note that
path will be deleted if it already exists at program start time.
- -D : disallow instant rebinding to the same path.
- -P : disable client credentials lookups. The
IPCREMOTEEUID and IPCREMOTEEGID environment variables will be unset
in every instance of prog.... This is the portable option,
because not every system supports credential lookup across Unix domain
sockets; but it is not as secure.
- -p : enable client credentials lookups. This
is the default; it works at least on Linux, Solaris, and
*BSD systems. On systems that do not support it, every connection
attempt will fail with a warning message.
- -c maxconn : accept at most
maxconn concurrent connections. Default is 40. It is
impossible to set it higher than 1000.
- -C localmaxconn : accept at most
localmaxconn connections from the same user ID.
Default is 40. It is impossible to set it higher than maxconn.
- -b backlog : set a maximum of
backlog backlog connections on the socket. Extra
connection attempts will rejected by the kernel.
- -a perms : create the socket with
permissions perms, which is an octal number from 0000 to 0777.
Default is 0777, meaning everyone can connect to it. 0700 means only processes having the
same uid as the s6-ipcserver process can connect to it.
- -G gidlist : change s6-ipcserver's
supplementary group list to gidlist after binding the socket.
This is only valid when run as root. gidlist must be a
comma-separated list of numerical group IDs.
- -g gid : change s6-ipcserver's groupid
to gid after binding the socket. This is only valid when run
as root.
- -u uid : change s6-ipcserver's userid
to uid after binding the socket. This is only valid when run
as root.
- -U : change s6-ipcserver's user id, group id and
supplementary group list
according to the values of the UID, GID and GIDLIST environment variables
after binding the socket. This is only valid when run as root.
This can be used with the
s6-envuidgid
program to easily script a service that binds to a privileged socket
then drops its privileges to those of a named non-root account.
Notes
- s6-ipcserver does not interpret its options itself. It just
dispatches them to the appropriate program on the command line that
it builds.
- Previous versions of s6-ipcserver were
monolithic: it did the work of s6-ipcserver-socketbinder,
s6-applyuidgid and s6-ipcserverd itself. The functionality has now
been split into several different programs because some service startup
schemes require the daemon to get its socket from an external
program instead of creating and binding it itself. The most obvious
application of this is upgrading a long-lived process without
losing existing connections.


Kubevirt Api Access Control
Access to KubeVirt resources are controlled entirely by Kubernete’s Resource Based Access Control (RBAC) system. This system allows KubeVirt to tie directly into the existing authentication and authorization mechanisms Kubernetes already provides to its core api objects.
KubeVirt RBAC Role Basics
Typically when people think of Kubernetes RBAC system, they’re thinking about granting users access to create/delete kubernetes objects (like Pods, deployments, etc), however those same RBAC mechanisms work naturally with KubeVirt objects as well.
When we look at KubeVirt’s objects, we can see they are structured just like the objects that come predefined in the Kubernetes core.
For example, look here’s an example of a VirtualMachine spec.
apiVersion: kubevirt.io/v1alpha1
kind: VirtualMachine
metadata:
name: vm-ephemeral
spec:
domain:
devices:
disks:
- disk:
bus: virtio
name: registrydisk
volumeName: registryvolume
resources:
requests:
memory: 64M
volumes:
- name: registryvolume
registryDisk:
image: kubevirt/cirros-registry-disk-demo:devel
In the spec above, we see the KubeVirt VirtualMachine object has an apiVersion field and a kind field just like a Pod spec does. The kubevirt.io portion of the apiVersion field represents KubeVirt apiGroup the resource is a part of. The kind field reflects the resource type.
Using that information, we can create an RBAC role that gives a user permission to create, delete, and view all VirtualMachine objects.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: vm-access
labels:
kubevirt.io: ""
rules:
- apiGroups:
- kubevirt.io
resources:
- virtualmachines
verbs:
- get
- delete
- create
- update
- patch
- list
- watch
This same logic can be applied when creating RBAC roles for other KubeVirt objects as well. If we wanted to extend this RBAC role to grant similar permissions for VirtualMachinePreset objects, we’d just have to add a second resource kubevirt.io resource list. The result would look like this.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: vm-access
labels:
kubevirt.io: ""
rules:
- apiGroups:
- kubevirt.io
resources:
- virtualmachines
- virtualmachinepresets
verbs:
- get
- delete
- create
- update
- patch
- list
- watch
KubeVirt Subresource RBAC Roles
Access to a VirtualMachines’s VNC and console stream using KubeVirt’s virtctl tool is managed by the Kubernetes RBAC system as well. Permissions for these resources work slightly different than the other KubeVirt objects though.
Console and VNC access is performed using the KubeVirt Stream API, which has its own api group called subresources.kubevirt.io. Below is an example of how to create a role that grants access to the VNC and console streams APIs.
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: vm-vnc-access
labels:
kubevirt.io: ""
rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- virtualmachines/console
- virtualmachines/vnc
verbs:
- get
Limiting RBAC To a Single Namespace.
A ClusterRole can be bound to a user in two different ways.
When a ClusterRoleBinding is used, a user is permitted access to all resources defined in the ClusterRole across all namespaces in the cluster.
When a RoleBinding is used, a user is limited to accessing only the resources defined in the ClusterRole within the namespace RoleBinding exists in.
Limiting RBAC To a Single Resource.
A user can also be limit to accessing only a single resource within a resource type. Below is an example that only grants VNC access to the VirtualMachine named ‘bobs-vm’
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
name: vm-vnc-access
labels:
kubevirt.io: ""
rules:
- apiGroups:
- subresources.kubevirt.io
resources:
- virtualmachines/console
- virtualmachines/vnc
resourceName:
- bobs-vm
verbs:
- get
Default Kubevirt RBAC Roles
The next release of KubeVirt is coming with three default ClusterRoles that admins can use to grant users access to KubeVirt resources. In most cases, these roles will prevent admins from ever having to create their own custom KubeVirt RBAC roles.
More information about these default roles can be found in the KubeVirt user guide here


Click one of each source/ex-filter/em-filter/fluorophore (from ) to add them to the graph. Click on the selected features (from ) to remove them from the graph. Hover over a spectrum to visualize a short description below this paragraph. Click on a spectrum to visualize the raw data at the end of the page.
Notice! This interface has been developed for GoogleChrome (v74) and FireFox (v66). Thus, it may not be fully compatible with other browsers (e.g., Safari, IExplorer,...).Mouse coordinates (wavelength, relative intensity): ...
You must select one of each of source, excitation/emission fitler, and fluorophore to be able to model the spectra throught the optical configuration.
Selected Source
Selected Excitation Filter
Selected Fluorophore
Selected Emission Filter
Click on a selected feature to remove it from the current selection.
Input
Click to add to current selection.
Click to add to current selection.
Click to add to current selection.
Click to add to current selection.
Click on a portion of the spectra to see its extensive details here.


|
Literature CD
|
|
This CD will provide complete information for your laundry equipment.
|
||
|
Please select a language to proceed.
|
||
|
|
||
|
Note: Viewing PDF files requires Adobe Reader® (version 7.0 or higher), which can be downloaded for free at www.adobe.com.
|
||
|
|


--- layout: post title: GitCast date: '2010-06-12T17:50:00.000+02:00' author: Luca Ferrari tags: - git modified_time: '2010-06-12T17:50:20.699+02:00' blogger_id: tag:blogger.com,1999:blog-1836481905487384887.post-5242247198540700391 blogger_orig_url: http://fluca1978.blogspot.com/2010/06/gitcast.html permalink: /:year/:month/:day/:title.html ---


soundPlay is a simple app to pull random playlists from SoundCloud. The idea for this app came from Josh over at Listen2EDM
If you're into electronic music, go give his site a look.
I'm using AngularJS, Bootstrap, and NodeJS to power the website. All of the data is pulled from the SoundCloud API.
Send me an email or hit me up on Github if you'd like to see any new features or come across any bugs.
This is just a side project for fun, so there will definitely be bugs. Send me an email if you find anything.


Node object.
More...
#include <orbtree_node.h>
|
|
| Node (const KeyValue &kv_) |
| |
|
| Node (KeyValue &&kv_) |
| |
|
template<class... T> |
| | Node (T &&... args) |
| |
|
KeyValue & | get_key_value () |
| |
|
const KeyValue & | get_key_value () const |
| |
|
bool | is_red () const |
| |
|
bool | is_black () const |
| |
|
void | set_red () |
| |
|
void | set_black () |
| |
|
NodeHandle | get_parent () const |
| |
|
NodeHandle | get_left () const |
| |
|
NodeHandle | get_right () const |
| |
|
void | set_parent (NodeHandle p) |
| |
|
void | set_left (NodeHandle x) |
| |
|
void | set_right (NodeHandle x) |
| |
|
void | set_deleted () |
| | Set a flag indicating this node has been deleted (but memory has not been freed yet).
|
| |
|
bool | is_deleted () const |
| | Check if this node is deleted.
|
| |
|
void | swap (Node &n) |
| |
|
|
KeyValue | kv |
| | Key and (optionally) value stored in this node.
|
| |
|
IndexType | parent |
| | Parent node reference, actually an index in a vector; also stores red-black flag.
|
| |
|
IndexType | left |
| | Left child.
|
| |
|
IndexType | right |
| | Right child.
|
| |
|
|
class | NodeAllocatorCompact< KeyValueT, NVTypeT, IndexType > |
| |
template<class KeyValueT, class NVTypeT, class IndexType>
struct orbtree::NodeAllocatorCompact< KeyValueT, NVTypeT, IndexType >::Node
Node object.
The documentation for this struct was generated from the following file:


Screenshot
Twitter API
REST API
- Search API is very powerful & easy to use
- Maximum tweets returned: 100 (defaults to 15)
- Lots of parameters, location, language, time period, contains certain words
API Libraries
Twitter Endorsed Libs
- I used TwitterAPIExchange, a PHP library
- Allows you to authenicate and make requests very simply, letting you focus on what you're doing
- Tradeoff: If the API updates, libs need changes to support new features / changed features
Example setup:
Searching, Sorting & Displaying Tweets
- PHP data passed to JavaScript for processing
- All tweets are sorted by favourite count, and the top 10 are kept
- Room for improvement: Stop sorting once 10 top are formed
- The top 10 tweets are then iterated over, converted to DOM elements, and added to the page
- Twitter supply a useful script (widget.js) to style tweets you're displaying


figure responsible-video
element. Directive will do the rest.
Uploaded on October 27, 2011
What do you think the world will look like in 2019? Predicting future trends is usually done poorly by Analysts so company's seem to want to give consumer a glimpse of what
they want the future to look like.
Microsoft has just released a video showcasing magical
gadget after magical gadget.
Earlier this month "Microsoft Office Labs Vision 2019,"
was released and now we have "Productivity Future Vision (2011)". Both are inspiring and beautifully edited.


When entering the name of a FITS table that is to be opened by a program, an optional row filter may be specified to select a subset of the rows in the table. A temporary new FITS file is created on the fly which contains only those rows for which the row filter expression evaluates to true. The primary array and any other extensions in the input file are also copied to the temporary file. (If a `#' character is appended to the name or number of the table HDU then only the primary array, and none of the other HDUs in the input file will be copied into the temporary file). The original FITS file is closed and the new virtual file is opened by the application program. The row filter expression is enclosed in square brackets following the file name and extension name (e.g., 'file.fits[events][GRADE==50]' selects only those rows where the GRADE column value equals 50). When dealing with tables where each row has an associated time and/or 2D spatial position, the row filter expression can also be used to select rows based on the times in a Good Time Intervals (GTI) extension, or on spatial position as given in a SAO-style region file.


|
Bow and Arrow
|
#include <vbe.h>
Data Fields | |
| uint16_t | ModeAttributes |
| mode attributes More... | |
| uint8_t | WinAAttributes |
| window A attributes More... | |
| uint8_t | WinBAttributes |
| window B attributes More... | |
| uint16_t | WinGranularity |
| window granularity More... | |
| uint16_t | WinSize |
| window size More... | |
| uint16_t | WinASegment |
| window A start segment More... | |
| uint16_t | WinBSegment |
| window B start segment More... | |
| phys_bytes | WinFuncPtr |
| real mode/far pointer to window function More... | |
| uint16_t | BytesPerScanLine |
| bytes per scan line More... | |
| uint16_t | XResolution |
| horizontal resolution in pixels/characters More... | |
| uint16_t | YResolution |
| vertical resolution in pixels/characters More... | |
| uint8_t | XCharSize |
| character cell width in pixels More... | |
| uint8_t | YCharSize |
| character cell height in pixels More... | |
| uint8_t | NumberOfPlanes |
| number of memory planes More... | |
| uint8_t | BitsPerPixel |
| bits per pixel More... | |
| uint8_t | NumberOfBanks |
| number of banks More... | |
| uint8_t | MemoryModel |
| memory model type More... | |
| uint8_t | BankSize |
| bank size in KB More... | |
| uint8_t | NumberOfImagePages |
| number of images More... | |
| uint8_t | Reserved1 |
| reserved for page function More... | |
| uint8_t | RedMaskSize |
| uint8_t | RedFieldPosition |
| uint8_t | GreenMaskSize |
| uint8_t | GreenFieldPosition |
| uint8_t | BlueMaskSize |
| uint8_t | BlueFieldPosition |
| uint8_t | RsvdMaskSize |
| uint8_t | RsvdFieldPosition |
| uint8_t | DirectColorModeInfo |
| phys_bytes | PhysBasePtr |
| physical address for flat memory frame buffer More... | |
| uint8_t | Reserved2 [4] |
| Reserved - always set to 0. More... | |
| uint8_t | Reserved3 [2] |
| Reserved - always set to 0. More... | |
| uint16_t | LinBytesPerScanLine |
| uint8_t | BnkNumberOfImagePages |
| uint8_t | LinNumberOfImagePages |
| uint8_t | LinRedMaskSize |
| uint8_t | LinRedFieldPosition |
| uint8_t | LinGreenMaskSize |
| uint8_t | LinGreenFieldPosition |
| uint8_t | LinBlueMaskSize |
| uint8_t | LinBlueFieldPosition |
| uint8_t | LinRsvdMaskSize |
| uint8_t | LinRsvdFieldPosition |
| uint32_t | MaxPixelClock |
| uint8_t | Reserved4 [190] |
| char | vbe_signature [4] |
| uint16_t | vbe_version |
| uint32_t | oem_string_ptr |
| uint8_t | capabilities [4] |
| uint16_t | video_mode_ptr |
| uint16_t | total_memory |
| uint16_t | oem_software_rev |
| uint32_t | oem_vendor_name_ptr |
| uint32_t | oem_product_name_ptr |
| uint32_t | oem_product_rev_ptr |
| uint8_t | reserved [222] |
| uint8_t | oem_data [256] |
| phys_bytes PhysBasePtr |
| uint16_t XResolution |


PM Hasina attends airshow in Dubai
by bdnews24.comPrime Minister Sheikh Hasina has kicked off her four-day visit to the UAE by attending the Dubai airshow.
The Bangladesh leader joined the inauguration ceremony of the five-day event -- one of the world's largest aviation exhibitions -- at the Dubai World Centre on Sunday.
The show will boast 1,300 exhibitors, including commercial aircraft-makers Airbus and Boeing, among others.
Hasina will travel to Abu Dhabi in the evening to attend a dinner hosted by Bangladesh Ambassador to the UAE Md Imran.
During her visit from Nov 16 to Nov 19, the prime minister will also witness the signing of bilateral agreements between the Bangladesh Investment Development Authority and Emirates Development Authority, the Bangladesh Economic Zones Authority and Emirates Economic Zone Authority, and a protocol on the allotment of a piece of land for the Bangladesh embassy in Abu Dhabi.
Hasina is also expected to meet with big investment groups and business in the UAE.
The foreign minister said the UAE's DP World -- a global port operator -- has also expressed interest in developing sea ports and related infrastructure in Bangladesh.
The office of Sheikh Ahmed Dalmook Al Maktoum, a member of Dubai's royal family, is also keen on undertaking different power and dredging projects in Bangladesh.
Apart from that, the Emirates Economic Zone Authority also wants to establish cooperation with Bangladesh Economic Zone Authority, he said.
A delegation of the authority has already visited Bangladesh on a couple of occasions.
Hasina will also inaugurate thr NID registration programme for non-resident Bangladeshis living in the UAE at the embassy in Abu Dhabi.
The registration facility is expected to benefit Bangladesh expatriates for whom it is difficult to come to Bangladesh to their NID registration because of time and expenses, the foreign minister said.
The Emirates Economic Zone also wants to invest in infrastructure and local employment in Bangladesh.
They would like to invest in waste management sector and create a hub in Bangladesh Economic Zone for international exports of Halal products to the gulf countries, according to Momen.
The foreign minister, who will accompany the prime minister, will inaugurate a training programme on skill development of Bangladesh expatriate workers jointly organised by the Bangladesh Consulate General, Dubai and Bangladesh Association in Sharjah.
The Bangladesh Consulate General will provide training on language skill development, computer, driving, and personality development of the workers at the consulate premises for the Bangladesh expatriate workers, he said.


Jan, 2017
Course: Intro To Programming, PHP, Javascript, Drupal.
Fall, 2016
Course: Fullstack Javascript
2008-2010
Worked towards a Major in Air Traffic Control and a minor in Mathematics.
August 2014-March 2015
At Amazon I was a CSA III in the Amazon Payments department. During my time there I took call from my department along side with Amazon Canada and the regular Amazon Customer Service Issues line. I helped customers solved any and every problem that they came to me with. I recieved 2 promotions within the first 2 months of my job there and was a top performer in my department,
April 2011-May 2014
During my time at El Roco I was the manager in the Bottleshop. My duties included everything from receiving and signing in shipments, ringing customers up at the register, making the schedule for about 10-20 people depending on current staff size, as well as doing the first round of job interviews for any potential employee.
March 2010-June 2011
At Petco I was the Lead Stock Associate. My job duties included around recieving shipments, making sure the back warehouse was keep in order, keeping the floor stocking and also ringing customers up at the register when lines began to form. From time to time I also helped out in other departments when I was needed.
So now you know what I can. But what now you have got to be wondering, who am i and what do i do for fun. I grew up in San Diego, Ca. During my time there I spent every bit of it I could enjoying everything San Diego has to offer to a kid. Everything from surfing, to wakeboarding or even just bicycling down the boardwalk. Seaworld was a short drive from my house so I spent many weekends during the summer there. My family also spent most of our holiday vacations camping. Our most popular location was the Colorado River and the dunes in Glamis. I also played a few sports including baseball, soccer and roller hockey. Hockey was by far my favorite
At 13 I moved to Portland, OR and stayed through High School. After the move I transitioned from roller hockey to ice. But when I made it to High School I ended up having to play for a completely different school than where I went since my school did not have it's own team. Which was awkward to say the least.
When I graduated High School my next adventure was College. I decided I wanted to be an Air Traffic Controller at a young age so I made my way to University of North Dakota. UND has the best civilian ATC training program but it also has the drawback of being in North Dakota. I went to UND for 2 years and spent some of that time working toward smy Pilot's License when I decided that Aviation was just not for me. I moved on but stayed in ND as I decided what was next. It was also during this time that my interest in computers grew. I learned how to build my first PC and got pretty into PC gaming. Since then I have taken apart and upgraded various computer components many times.
Eventually while trying decide what I wanted to do next I decided on coding. During High School I had taken every computer class they offered and I enjoyed every single one of them. So since there are so many opportnities here I made my way back to Portland. My first step was to make it through the Full Stack JavaScript course at Portland Code School. I enjoyed my time there and learned a lot but unfortunately the school close down in the last weeks of class. But we did not give up. The students and teachers preservered on and finished the course outside the school at where ever would take us. During this time is when I finished my capstone project with my partner. After that the job hunt began
After a few months of job search I decided I wanted to get some more tools in belt to help secure a better job. That is when I decided to go to Epicodus. Which brings us to where we are now with you reading this portfolio and hopefully with a job offer.


Nicola Adams retires from boxing with unbeaten pro record
The double Olympic champion broke the news in an open letter on Wednesday morning
by Jacob Murtagh, https://www.mirror.co.uk/authors/jacob-murtagh/Nicola Adams has announced her retirement from boxing at the age of 37.
Adams, the two-time Olympic champion and current WBO flyweight world champion, penned an open letter to her local newspaper, the Yorkshire Evening Post, in which she revealed that continuing her in-ring career risked serious injury.
Adams became the first woman to win Olympic gold in her sport when he took the flyweight title at London 2012 and successfully defended her crown in Rio four years later.
She won the vacant WBO belt against Isabel Milan in 2018, less than 18 months after he first professional bout, and bows out with an unbeaten professional record of five wins and one draw.
"I'm immensely honoured to have represented our country - to win double Olympic gold medals and then the WBO championship belt is a dream come true," she wrote.
"But it's not without taking its toll on my body, and aside from the expected aches and pains, I've been advised that any further impact to my eye would most likely lead to irreparable damage and permanent vision loss.
"It has been an honour to compete on the global stage, and it has been a privilege to fight against such remarkable athletes. Whilst I am proud of my achievements, the unwavering belief from everyone in my corner, is something I will appreciate for the rest of my life.
"To my wonderful team, I would not be the fighter I am today without your encouragement and understanding - what you have taught me goes beyond the ring. Particularly special thanks go to the wonderful Alwyn Belcher, my coach and personal mentor of many years.
"Hanging up my gloves was always going to hard, but I have never felt luckier, And I'm so immensely proud of how far the sport has come."


Technical Blog 2: Javascript Fundamentals
Javascript and the DOM
Intro
JavaScript is a key component in web development, while HTML contains the content and CSS the style of the web page, JavaScript contains the interactions the user can have with the webpage.
HTML and CSS
To explain HTML and CSS a little more how about a quick story?
Henry loved to work; he had no trouble producing thousands of lines of code in space of seconds. But Henry was very bad at organization and presentation. His wife Cassandra, however, was very good at it. In just a few simple lines Cassandra would leave Henry's working looking organized and professional. Sometimes Cassandra gets confused and NOTHING lines up, but eventually with the help of many others, Cassandra will be back up to speed in no time!
As you might have guessed Henry represents HTML, it is simple to use and as far as a basic web page, its all you need! If, however, you would like to add some styling and make all that content look nice, we look to CSS (Cassandra). But while seeming simple at first, due to the nature how positioning, CSS can become complicated.
Control Flows and Loops
A control flow lets you know the sequence to do things in. It can be like cooking recipe! You always prepare the ingredients fist, and then you can add in ingredients and heat following this recipe to finish the dish. Loops are like when you need to add something to the mixture, you are not sure how much, so you add a little, stir a little until you get your desired outcome.
The control flow lets you know the order that the code is executed in so that the program can run in a predictable way. And the loop lets the program know to repeat something until a condition has been met.
Interacting with the DOM
The DOM stands for Document Object Model, and it uses JavaScript to display the contents of a web page, which includes both the HTML and the CSS code. It gets displayed in a tree format where a parent node can have child nodes that can also be parents to other child nodes. The developer can then manipulate the web page through the DOM by making changes in code (it’s a local version, so it won’t change it for other people) such as changing text, the color of certain elements and the layout. There are also other helpful tools to let you make permanent changes, see the efficiency of your page and much much more!
Simply put, the DOM displays the code of the page for a developer to see and manipulate with JavaScript.
Arrays vs Objects
An array is a collecting of elements (such as sentences or numbers, or even objects) and to access those elements you make use of the index, which is the position of the element you want to access. If you do not know the position, there are also helpful search functions that can search through an array for the element that you are looking for.
An object is exactly like it sounds, an object, and it can be anything! An object has characteristics or properties, that can be set. For example, a dog object can have the property of name which is Sam and a property of color which is brown. To access data in an object, you simply state the object you want to investigate followed by a dot and then the property that you want to find out.
Functions, and why they're needed
A function is a collection of instructions that is executed when called by the program. It can seem counter intuitive at first, you might say “why not just write all the code in the main program?”, and that is because a program can be thousands of lines long and a function lets you use that collection of code easily at other places in your code without having to retype it. Often, it can be hard to read another developer’s code, and functions help that as it splits up the tasks and makes the code easier to understand.
Summary
The things we talked about in this blog post, as the saying goes, is only the tip of the iceberg. There much more intricacies of the interactions between HTML CSS and JavaScript, manipulating the DOM and the flow, types, and functions of a program! I am still learning myself but is not it exciting to think of all the things you can do with it!


|
Max API
8.2.0
|
The Jitter File Format (JXF) stores matrix data in a binary (not human-readable) form.
When using Jitter you can create JXF files by sending the write message to a jit.matrix object. Conversely you can read JXF files from disk using the read message. This section will cover first the API functions that one can use from C to read and write JXF files. Then it will break down the file format at the bit level.
Most Jitter users do not need or want to know about the internal binary format of a JXF-file. Even users who want to read and write JXF-files from C do not need to know the internal details if they use the functions of the Jitter API for the binary interface. Not only is the API more convenient, but using the functions provided by Cycling '74 may protect your code from having to be altered in the future in the event of a specification change.
There are two primary functions one should use to read data from a JXF file. jit_bin_read_header() reads the version number and the size of the file from the header, and has the following signature:
jit_bin_read_matrix() imports matrix data from a file to a matrix, resizing the matrix if necessary, and has the following signature:
Here’s a chunk of code that shows how to read a matrix from disk:
Similarly there are two functions one should use when writing data to a JXF file. jit_bin_write_header() writes a header to a file, and has the following signature:
jit_bin_write_matrix() writes a matrix to a file, and has the following signature:
Here’s a section of code that shows how you might write a file with one matrix. Note that the initial filesize argument to jit_bin_write_header() is bogus, but that the header is written again at the end of the operation when the filesize can be determined from the file position after writing the matrix.
The internal format of JXF-files is based on the Interchange File Format (IFF) (http://en.wikipedia.org/wiki/Interchange_File_Format). An IFF file is built up from chunks. All data in IFF files is big-endian. Several convenience macros defined in jit.byteorder.h are available to help convert numbers to the proper format before and after they're written to and read from a JXF file: BE_I32() can be called on 32-bit integers, BE_F32() on 32-bit floats, and BE_F64() on 64-bit doubles.
Each chunk in an IFF file begins with a four character Type ID. This is followed by a 32-bit unsigned integer specifying the size of the chunk content in bytes. In a JXF file, the 32-bit integer part of the first chunk tells us the size of the file, and all the subsequent chunks, which begin immediately after the first chunk, contain matrices. In the future chunks may also be used to store other kinds of data.
Here is a tabular overview of an example minimal JXF file.
Container Chunk
| groupID | JIT_BIN_CHUNK_CONTAINER ('FORM') |
| File size | 32-bit int |
| IFF Type | JIT_BIN_FORMAT ('JIT!') |
| Format Chunk | |
| chunkID | JIT_BIN_CHUNK_FORMAT_VERSION ('FVER') |
| Chunk size | 12 bytes |
| Version | JIT_BIN_VERSION_1 (0x3C93DC80) |
| Matrix Chunk | |
| chunk ID | JIT_BIN_CHUNK_MATRIX ('MTRX') |
| chunk size | 32-bit int |
| offset | 32-bit int |
| type | 4-char |
| planecount | 32-bit int |
| dimcount | 32-bit int |
| dim | Array of 32-bit ints that contain the dimensions |
| data |
The data offset of the matrix chunk represents the offset, in bytes, from the beginning of the chunk to the beginning of the data portion of the chunk. The type is one of CHAR, LONG, FL32 and FL64. The dim array contains dimcount elements, each of which is a 32-bit int. The data portion consists of the cells of the matrix written out one at a time in row-major order. Planar data is multiplexed in each cell. For example, a 3-plane 2 by 2 matrix would be written out in the following order:
| Plane | Dim 0 | Dim 1 |
| 0 | 0 | 0 |
| 1 | 0 | 0 |
| 2 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 0 |
| 2 | 1 | 0 |
| 0 | 0 | 1 |
| 1 | 0 | 1 |
| 2 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 1 |
| 2 | 1 | 1 |
The various chunks discussed above can be represented by the C structs listed below:


Before Change
context.aggregate_to(csv_rows_count, 1)
uri = row[0]
if not uri or not uri.startswith("gs://"):
context.aggregate_to(invalid_uri, 1)
return
// In a real-world system, you may want to provide a default id for labels
// that were not in the dictionary. In this sample, we simply skip it.
After Change
csv_rows_count.inc()
uri = row[0]
if not uri or not uri.startswith("gs://"):
invalid_uri.inc()
return
// In a real-world system, you may want to provide a default id for labels
// that were not in the dictionary. In this sample, we simply skip it.


You have come to the right place. No more waste of your precious time over manual data entry. Your reports are just few clicks away! Get excited. You can now spend all the time you save on a more meaningful task ;) Are you ready?


| Items Archived | 11 |
| Bitstream Views | 84,917 |
| Item Views | 95,431 |
| Collection Views | 2,358 |
| Community Views | 1,188 |
| User Logins | 55 |
| Searches Performed | 63,651 |
| Licence Rejections | 0 |
| OAI Requests | 0 |
| Content Type | Number of items |
|---|---|
| All Items | 11 |
| Preprint | 0 |
| Thesis or Dissertation | 0 |
| Research Paper | 0 |
| Action | Number of times |
|---|---|
| browse | 96,744 |
| Item Views | 95,431 |
| Bitstream Views | 84,917 |
| browse_by_item | 65,064 |
| Searches Performed | 63,651 |
| browse_by_value | 31,867 |
| Community List Views | 10,785 |
| Collection Views | 2,358 |
| Item Updated | 1,340 |
| Community Views | 1,188 |
| Workspace Item Views | 860 |
| browse_mini | 636 |
| Bitstream Updates | 225 |
| Bundles Added | 211 |
| Workflow Item Updates | 187 |
| workflow_item | 177 |
| Workflow Advanced One Stage | 131 |
| Bundle Updates | 111 |
| Bitstreams Added | 110 |
| Bitstreams Created | 110 |
| Bundles Created | 107 |
| auth | 60 |
| Workspace Items Deleted | 56 |
| User Logins | 55 |
| Items Created | 55 |
| Workspace Items Created | 55 |
| Tasks Claimed | 54 |
| Licences Accepted | 54 |
| Workflow Starts | 53 |
| submission_complete | 53 |
| authenticate | 48 |
| //localhost | 31 |
| Error in discovery while setting up date facet range | 30 |
| Workflow Task Returned to Pool | 20 |
| EPerson Group Updates | 17 |
| Collection Updates | 16 |
| EPerson Record Updated | 12 |
| Items Added | 11 |
| Items Archived | 11 |
| Items Installed | 11 |
| Bitstreams Removed | 11 |
| Bitstreams Deleted | 11 |
| autoregister | 8 |
| Bundles Deleted | 7 |
| Bundles Removed | 7 |
| type=ldap-login | 7 |
| ldap_authentication | 5 |
| User Login Failures | 5 |
| User Profile Views | 5 |
| Reject Workspace Item from Workflow | 4 |
| EPerson Accounts Created | 3 |
| Items Deleted | 3 |
| Workflow Items Rejected to Workspace | 2 |
| Reason for Workspace Item Rejection Completed | 2 |
| Error while retrieving related items | 1 |
| ip_mismatch | 1 |
| 0 | 1 |
| Licence Rejections | 1 |
| EPerson Groups Created | 1 |
| Collections Created | 1 |
| Collections Added | 1 |
| Licence Rejections | 0 |
| OAI Requests | 0 |
| User | Number of logins |
|---|---|
| Address 14 | 12 |
| Address 7 | 12 |
| Address 1 | 5 |
| Address 12 | 5 |
| Address 16 | 4 |
| Address 3 | 2 |
| Address 2 | 2 |
| Address 8 | 2 |
| Address 17 | 2 |
| Address 11 | 1 |
| Address 13 | 1 |
| Address 10 | 1 |
| Address 9 | 1 |
| Address 5 | 1 |
| Address 4 | 1 |
| Address 6 | 1 |
| Address 15 | 1 |
| Address 18 | 1 |
| Word | Number of searches |
|---|---|
| null | 63,143 |
| daumier | 40 |
| honor?? | 24 |
| holocaust | 24 |
| les | 19 |
| philosophy | 17 |
| your | 17 |
| figurine | 17 |
| lost | 15 |
| bleus | 15 |
| case | 15 |
| bas | 15 |
| studies | 14 |
| michael | 14 |
| femmes | 11 |
| de | 11 |
| wagner | 11 |
| nobody | 10 |
| ami | 10 |
| personne | 10 |
| friend | 10 |
| socialistes | 9 |
| women | 9 |
| jewish | 8 |
| orchestra | 8 |
| judaism | 8 |
| ring | 8 |
| judaic | 7 |
| vienna | 7 |
| civil | 7 |
| jews | 7 |
| mandel | 7 |
| near | 7 |
| eastern | 7 |
| code | 6 |
| institute | 6 |
| arabic | 5 |
| development | 5 |
| center | 5 |
| vue | 5 |
| cinq | 5 |
| idiot | 5 |
| head | 5 |
| sens | 5 |
| bowl | 5 |
| the | 5 |
| european | 5 |
| Average views per item | 8,676 |
| Level | Number of lines |
|---|---|
| Warnings | 6 |
| Operation | |
|---|---|
| Log Processing Time | 230 seconds |
| Output Processing Time | 0 seconds |
| Log File Lines Analysed | 456,999 lines |


If you are joining an existing LAN collaboration, configure your machine as a satellite (there already is a hub).
If you are starting a fresh LAN setup, you have to first configure a hub. Select the Hub
< Back


| Project Details | |
|---|---|
| Course | BSc (Hons) in Software Development |
| Module | Applied Project and Minor Dissertation |
| College | GMIT Galway |
| Students | Kevin Barry G00339811 Cian Gannon G00337022 |
| Project Supervisors | Mr Martin Kenirons Dr. John Healy |
| Project Title | Techbook |
Table of contents generated with markdown-toc
Social media today plays an expanding significant role in society, the information technology industry and the field of computer science. The use of social media is a hot-topic for many organizations, with the aim to identify approaches in which companies can use applications to increase profits and grow product awareness. On a day-to-day basis, users from across the globe are becoming increasingly frustrated, wasting valuable time, scrolling through irrelevant content while companies are wasting money advertising to users outside their market. In order to achieve the optimal benefits from social media, for both users and businesses, the development of these technologies require approaches that focus on specific human interests and values.
This project aims to deliver a solution by developing a platform with the goal of delivering a social experience that targets a specific user base. As the authors are in the field of computer science the focus of the content will be to appeal to the tech savvy user. The proposed solution will be a web application that will offer a unique online community to users and businesses interested in technology.
The project has been developed as a MEAN stack Angular 6 CRUD Web Application. The initial project was generated with Angular CLI version 6.0.1. The system utilises a 3 tier architecture using MongoDB, ExpressJs, Angular and NodeJs.
Techbook is a social media platform that offers a unique experience offering a community for users interested in technology to communicate.
To view the video demonstration click the video below.
Click below to view our the Dissertation PDF for the project. The dissertation contains an in depth view of all aspects of the development from research and design to implementation and final evaluation.
Click below to view the TypeDocs for the project. This contains all documentation for the angular client.
Click below to view the API documentation for the project. This contains all documentation for the API.
Below is a brief list of some of the technologies used. For a comprehensive list of dependencies see here
Clone this repository to your machine.
> git clone https://github.com/Final-Year-Project-Cian-Kevin/final-project.git
The project uses MongoDB. To instructions on how to install MongoDB click the link provided below.
After cloning the project some libraries and decencies will be required. This can be achieved by installing and updating the node package manager.
Navigate to the downloaded repository and enter :
> npm install
> ng update
> npm update
To deploy locally navigate to the project directory in cmd.
Run the following command to build the project and launch the server:
> npmstart
The server will now be running and connected to the MongoDB. Navigate to `localhost:3000
to view the application.
This application is currently deployed on an AWS instance. Click Here to TechBook live
Below is a preview of some of the applications pages rendered on both a mobile device and PC. Please note these are the inital screenshots of the pages and may have changed by the time the project is submitted. To view all pages click Here for TechBook live. An indepth explanation of each page is available in System Design section of the Dissertation.
| Web view | Mobile view |
|---|---|
| Web view | Mobile view |
|---|---|
| Web view | Mobile view |
|---|---|
| Web view | Mobile view |
|---|---|
| Web view | Mobile view |
|---|---|
| Web view | Mobile view |
|---|---|
| ## About Page | |
| Web view | Mobile view |
| :-------------------------: | :-------------------------: |
Generated using TypeDoc


View.maxx
Syntax
maxx : int
Description
The maxx function is used to determine the maximum value of x for the current graphics mode.
Example
This program outputs the maximum x value.
setscreen ("graphics")
put "The maximum x value is ", maxx
Details
The screen should be in a "graphics" mode. If it is not, it will automatically be set to "graphics" mode. See setscreen for details.
For the default IBM PC compatible graphics mode (CGA), maxx = 319.
Status
Exported unqualified.
This means that you can call the function by calling maxx or by calling View.maxx.
See also
Draw.Dot for an example of the use of maxx and for a diagram illustrating x and y positions.


STREET DRAMA
Two men rushed to hospital after cops cordon off Kirkcaldy street
by Rachel MacphersonTWO men have been rushed to hospital this morning following a "disturbance" on a Kirkcaldy street.
Police rushed to the scene on Links Street - which has been cordoned off following the incident.
Emergency services arrived at the incident at around 10.50am following reports of a "disturbance" on Links Street.
It is understood that the two men do have not "life-threatening" injuries at this stage.
A Police Scotland spokeswoman said: "We were called at ten to eleven this morning following a report that two men had been injured during a disturbance on links street in Kirkcaldy.
"Both men have been taken to Victoria Hospital in Kirkcaldy.
"At this time we don't have details on their injuries but medics do not believe they are life-threatening at this stage.
"Enquires on going."
We previously reported how a perv had exposed himself to a woman in Glasgow's Queen's Park earlier this week.
Cops confirmed they had launched a probe into the incident as they hunt the man responsible.


Table Borders
To specify table borders in CSS, use the border property.
Collapse Table Borders
The border-collapse property sets whether the table borders should be collapsed into a single border.
Table Width and Height
Width and Height of a table are defined by the width and height properties.
Horizontal Alignment
THe text-align property sets the Horizontal Alignment (like left, right or center) of the content in th or tb.
By Default, the content of the th elements are center aligned and the content of the td elements are left aligned.
Vertical Alignment
The vertical-align property sets the vertical alignment (like top, bottom or middle) of the content in th or td.
By Default, the vertical alignment of the content in a table is middle(for both th and td elements).
Table Padding
To control the space between the border and the content in a table, use the padding property on td and th elements.
Horizontal Dividers
Add the border-bottom property to th and td for horizontal dividers.
Hoverable Table
Use the :hover selector on tr to highlight table rows on mouse over.
Table Color
The example below specifies the background-color and text color of the th elements.
| Name |
Relationship |
| Thirunavukkarasu |
TS's Husband |
| TS |
Thirunavukkarasu's Wife |


What a responsive site is, and why responsiveness is important?
Responsive Web Design makes your web page look good on all devices (desktops, tablets, and phones). Responsive Web Design is about using CSS and HTML to resize, hide, shrink, enlarge, or move the content to make it look good on any screen.
What mobile first design is, and why it's important?
It allows faster load times on mobiles and less data usage and helps simplify the design of a site by designing the page for a mobile first.
What frameworks are, and their pros and cons?
A framework is a standardized set of concepts, practices and criteria for dealing with a common type of problem, which can be used as a reference to help us approach and resolve new problems of a similar nature. In the world of web design, to give a more straightforward definition, a framework is defined as a package made up of a structure of files and folders of standardized code (HTML, CSS, JS documents etc.) which can be used to support the development of websites, as a basis to start building a site. The advantages are it speeds up the mock-up process, clean and tidy code, solutions to common CSS problems, browser compatibility, learn good practices, having a single procedure to resolve common problems makes maintaining various projects more straightforward, helpful in collaborative work.
A website wireframe, also known as a page schematic or screen blueprint, is a visual guide that represents the skeletal framework of a website. Wireframes are created for the purpose of arranging elements to best accomplish a particular purpose.
The aspects of your wireframes you found difficult to implement, and why?
I had difficulty making the image size responsive because the code did not seem to work.


|
NetProcGame
|
Packages | |
| package | config |
| package | game |
| package | modes |
| package | tools |
Classes | |
| struct | DriverGlobalConfig |
| struct | DriverGroupConfig |
| struct | DriverState |
| struct | Event |
| struct | SwitchConfig |
| struct | SwitchRule |
| struct | DMDConfig |
| class | PinProc |
| Container for libpinproc (via P/Invoke) methods. More... | |
| class | ProcDevice |
| Wrapper for netpinproc (libpinproc native interface). More... | |
| class | YamlConfig |
Enumerations | |
| enum | LogLevel { Verbose = 0, Info = 1, Warning = 2, Error = 3 } |
| enum | MachineType { Invalid = 0, Custom = 1, WPCAlphanumeric = 2, WPC = 3, WPC95 = 4, SternWhitestar = 5, SternSAM = 6 } |
| enum | SwitchType { NO = 0, NC = 1 } |
| enum | Result { Success = 1, Failure = 0 } |
| enum | EventType { Invalid = 0, SwitchClosedDebounced = 1, SwitchOpenDebounced = 2, SwitchClosedNondebounced = 3, SwitchOpenNondebounced = 4, DMDFrameDisplayed = 5, None = 6 } |


OpenFOAM joint technical committee meeting
Andre Weiner
TU Braunschweig, ISM, Flow Modeling and
Control Group
SIG Data-driven modeling
Short term goals
- lower technical barrier to get started with data-driven modeling with OF
- promote data-driven modeling available in OF (e.g., dynamic mode decomposition)
More details available in the write-up.
Long term goals
- when/how to combine ML and CFD?
- accelerate developments (best practices)
- ML as natural element of CFD workflow
More details available in the write-up.
Roadmap (excerpt)
- automated integration of libTorch in OF
- OF-Python interface
- tutorials and lecture material
- ML+OF hackathon
More details available in the write-up.
Current members, alphabetical
- Andre Weiner, TU Braunschweig, chair
- Dirk Gründing, TU Darmstadt
- Holger Marschall, TU Darmstadt
- Karthik Kashinath, Nvidia
- Neil Ashton, AWS
- Tomislav Marić, TU Darmstadt, co-chair
Next up
- set up infrastructure, central point of contact
- organize first meeting
- complete lecture material
- organize with other TCs and SIGs
- plan hackathon (summer 2022)


Kluivert: "Ansu should drop down to B team if he doesn't get minutes"
The Dutchman spoke exclusively to SPORT about the latest at La Masia
by Tomàs Andreu, Albert RogéIn the interview with SPORT, Patrick Kluivert was asked about Ansu Fati's situation. The teenage forward burst on to the scene earlier this season but has found minutes harder to come by recently. Kluivert, Barcelona's director of youth football, believes games with Barça B could be the answer.
Ansu Fati has jumped straight into the first team. How is his progression being managed?
It's being overseen more by (sporting director Eric) Abidal and (his assistant Ramon) Planes. We're communicating well with each other. If all the first-team players are at 100 percent, I have the feeling that he will have to play for Barça B to get some minutes in his legs. We saw that with Carles Perez at the weekend, too.
Ansu was playing under Victor Valdes in preseason. What happened with Valdes? Why did he leave the U19s after just two months?
Everyone asks me that question. I get it. I don't want to go down a negative path. I don't want to harm anyone. It's not good for me, for Victor or for the club. There are four people that know what happened and I want to leave it like that, it's better for everyone that way. Sometimes you have to make decisions at football clubs, which is what we did, and I don't want to start a debate
The U19 team is very important, Ansu was there not long ago...
The step from the U19s to Barça B isn't as complicated as from the B team to the first team. Players that have spent three years in the B team have to leave, either on loan or sold. The step between barça B and the first team has to be fluid.


Contributions¶
This section is highly incomplete as many have contributed to cloudmesh over the years. Contributors can be located from the different versions and packages in the at:
In Summer 2019 we started to put this section into it to make sure we do not forget contributions and to allow better communication to others what was achieved by the individual contributors. In future we may change this to topical sections here we focus on the technology.
Gregor von Laszewski
Fugang Wang
Summer 2019¶
Vafa Andalibi
Implemented atuomated aws registration in browser, i.e.
cms register aws yaml
command, tested successfully on Linux, MacOS and Windows.Implemented
image()
andimages()
for aws providerImplemented
@DatabaseImportAsJson
decorator to import data to database usingmongoimport
which significantly improved the bulk database import, e.g. incms image list --cloud=aws --refresh
the import time was improved from roughly 1 hour to 20 seconds.Fixing
key upload/delete
for aws providerImplemented
ssh()
for aws provider, as well as testing/debugging it oncms ssh
andcms vm ssh
, addressing #224Re-implemented
set_server_metadata()
andget_server_metadata()
(collaboration with Prof. von Laszewski) for aws providerSeveral patches on
create()
method for aws provider, i.e. key assignment, metadata set/get and returneddict
to be saved in the databaseFixes on
update_dict()
forkey
andimage
Implementing
find_all_by_name()
for mongodbAdded patches to improve database utilization, used in
cms start/stop
and other commands addressing #222, #223 and #225Implemented
run2()
inShell
inCommon3
to address the file-system redirection issue on windows when running subprocesses using pythonUpdated
output
dict forimage
andvm
on aws providerFixing the
cms init
bug for windows.Implementing the workaround for running the
mongod.exe
in user space to prevent asking user to administrative privilegeimplemented
wait()
in awswriting
test_01_clean_local_remote
and test forwait()
Sriman Pullakhandam
compute/aws/Provider.py
Created/Updated the compute AWS Provider and implemented the following methods:
def start
def stop
def info
def list
def suspend
def resume
def destroy
def create
def rename
def delete_server_metadata
Test classes
Created test_06_vm_provider.py to run all the methods from the Compute AWS Provider.
Saurabh Swaroop
Implemented Print Function (AWS)
Implemented list_secgroups Function (AWS)
Implemented list_secgroup_rules Function (AWS)
Implemented add_secgroup Function (AWS)
Implemented add_secgroup_rule Function (AWS)
Implemented remove_secgroup Function (AWS)
Implemented upload_secgroup Function (AWS)
Implemented add_rules_to_secgroup Function (AWS)
Implemented remove_rules_from_secgroup Function (AWS)
Implemented list_public_ips Function (AWS)
Implemented delete_public_ip Function (AWS)
Implemented create_public_ip Function (AWS)
Implemented find_available_public_ip Function (AWS)
Implemented attach_public_ip Function (AWS)
Implemented detach_public_ip Function (AWS)
Implemented Start Function (AWS)
Implemented Stop Function (AWS)
Implemented Info Function (AWS)
Implemented suspend Function (AWS)
Implemented resume Function (AWS)
Implemented destroy Function (AWS)
Implemented create Function (AWS)
Implemented rename Function (AWS)
Implemented add_server_metadata Function (AWS)
Implemented delete_server_metadata Function (AWS)
Implemented update_dict Function (Mostly copied from openstack implementation)
Modified sec.py to display secgroup info for AWS
Enhanced test_04_sec_command
Enhanced test_05_secgroup_provider
Alex Axthelm
Write what you have done
Joaquin Avila Eggleton
compute/azure/Provider.py
Created the compute Azure Provider and implemented the following methods:
def __init__
def get_resource_group
def set_server_metadata
def get_server_metadata
def delete_server_metadata
def list_secgroups
def list_secgroup_rules
def add_secgroup
def add_secgroup_rule
def remove_secgroup
def upload_secgroup
def add_rules_to_secgroup
def remove_rules_from_secgroup
def create
def create_vm_parameters
def create_nic
def start
def reboot
def stop
def resume
def suspend
def info
def status
def list
def destroy
def images
def flavors
def flavor
def find
def image
def get_list
def update_dict
Test classes
Created test_compute_pyazure.py to run all the methods from the Compute Azure Provider.
cloudmesh.yaml
Added Azure specific attributes
Moeen Arshad


I used to buy this all the time when I was a teenager.
Great for Rock, metal and whatever is trendy with the kids in the music scene and always up to date.
it usually features a fair few songs to learn as well as riffs and interviews.
Great for beginners to intermediate players
Total Guitar is a monthly magazine based in the United Kingdom. The magazine is the best selling guitar magazine in Europe.
The magazine is owned by Future plc, who publish many other magazines ranging from drums and video games to mountain bikes and knitting magazines.
Despite a non-filmi background, Deepika Padukone has achieved what many of her peers with roots in Bollywood yearn to and has become one of the most bankable stars in Bollywood.Before entering Bollywood, she was a model and part of the Kingfisher Calendar 2006.
Deepika made a big bang Bollywood debut opposite Shah Rukh Khan in Farah Khan's Om Shanti Om released in 2007.The daughter of India's first badminton star Prakash Padukone, she also played badminton at national-level championships but left midway.Her latest film Chennai Express again opposite Shah Rukh Khan had a dream run at the box office. Her next film Ram-Leela opposite Ranveer Singh is set to release on November 15, 2013.
Rock magazines usually consist of a main image of a band member from a rock or heavy metal band, they normally have numerous tattoos all over there body, darkened eyes with eyeliner and even flowing long black hair. The masthead would also be a big and bold text that makes it easy for the viewer to read such as the 'KERRANG' one to the side.
The colour scheme for rock magazines are similar for most rock magazines, they mainly all use white, black and red. However KERRANG uses a small amount of red to keep it subtle, therefore KERRANG differs from most rock magazines.


org.apache.axis.attachments
Class MultiPartRelatedInputStream
java.lang.Object
|
+--java.io.InputStream
|
+--java.io.FilterInputStream
|
+--org.apache.axis.attachments.MultiPartRelatedInputStream
- public class MultiPartRelatedInputStream
- extends java.io.FilterInputStream
This simulates the multipart stream
| Fields inherited from class java.io.FilterInputStream |
in |
| Methods inherited from class java.io.FilterInputStream |
available, mark, markSupported, reset, skip |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
log
protected static org.apache.commons.logging.Log log
MIME_MULTIPART_RELATED
public static final java.lang.String MIME_MULTIPART_RELATED
parts
protected java.util.HashMap parts
orderedParts
protected java.util.LinkedList orderedParts
rootPartLength
protected int rootPartLength
closed
protected boolean closed
eos
protected boolean eos
is
protected java.io.InputStream is
boundaryDelimitedStream
protected BoundaryDelimitedStream boundaryDelimitedStream
soapStream
protected java.io.InputStream soapStream
soapStreamBDS
protected java.io.InputStream soapStreamBDS
boundary
protected byte[] boundary
cachedSOAPEnvelope
protected java.io.ByteArrayInputStream cachedSOAPEnvelope
contentLocation
protected java.lang.String contentLocation
contentId
protected java.lang.String contentId
READ_ALL
protected static final java.lang.String[] READ_ALL
MultiPartRelatedInputStream
public MultiPartRelatedInputStream(java.lang.String contentType,
java.io.InputStream is)
throws AxisFault
- Multipart stream.
- Parameters:
the
- string that holds the contentTypeis
- the true input stream from where the source.
getAttachmentByReference
public Part getAttachmentByReference(java.lang.String[] id)
throws AxisFault
addPart
protected void addPart(java.lang.String contentId,
java.lang.String locationId,
AttachmentPart ap)
readAll
protected void readAll()
throws AxisFault
getAttachments
public java.util.Collection getAttachments()
throws AxisFault
readTillFound
protected Part readTillFound(java.lang.String[] id)
throws AxisFault
- This will read streams in till the one that is needed is found.
- Parameters:
The
- id is the stream being sought. TODO today its only handles CID. all ContentId streams
should be prefixed by "cid:"
getContentLocation
public java.lang.String getContentLocation()
- Return the content location.
- Returns:
- the Content-Location of the stream.
Null if no content-location specified.
getContentId
public java.lang.String getContentId()
- Return the content id of the stream
- Returns:
- the Content-Location of the stream.
Null if no content-location specified.
read
public int read(byte[] b,
int off,
int len)
throws java.io.IOException
- Read the root stream.
- Overrides:
read
in class java.io.FilterInputStream
read
public int read(byte[] b)
throws java.io.IOException
- Overrides:
read
in class java.io.FilterInputStream
read
public int read()
throws java.io.IOException
- Overrides:
read
in class java.io.FilterInputStream
close
public void close()
throws java.io.IOException
- Overrides:
close
in class java.io.FilterInputStream
Copyright © 2001 Apache XML Project. All Rights Reserved.


Cancer Studies
The Cancer Genome Atlas (TCGA) targets more than 30 different cancer types, collecting hundreds of samples for each type. Each disease is studied individually by multiple groups across TCGA. Our Center is analyzing data collected for many of these diseases in order to understand each cancer more deeply. Our GDAC is also exploring associations between the various diseases to identify commonalities.
Our GDAC has participated in analysis for the following cancer types:
- Adrenocortical Carcinoma
- Breast Cancer
- Colorectal Cancer
- Endometrial Cancer
- Gastric Cancer
- Glioblastoma Multiforme
- Ovarian Cancer
- Prostate Cancer
- Thyroid Cancer
- Pan-Cancer Analysis
Our GDAC is participating in ongoing analysis for the following cancer types in TCGA: Cervical cancer, Cholangiocarcinoma, Liver Hepatocellular Carcinoma, Mesothelioma, Pancreas, Paraganglioma and Pheochromocytoma, Sarcoma, Stomach-Esophageal, Testicular Germ Cell cancer, Thymoma, and Uveal Melanoma. Our GDAC is also contributing to the pan-cancer analysis of 33 tumor types called the Pan-Cancer Atlas.
Adrenocortical Carcinoma
Integrative analysis of 91 ACC cases. Comprehensive genomic characterization and integrative analysis revealed (left to right) whole-genome doubling as a hallmark of ACC progression, identified three ACC subtypes with distinct clinical outcome, demonstrated many statistical associations between the adrenal differentiation score and genomic features of the ACC cases that can be queried and visualized using Regulome Explorer, and enabled comparison of ACC's mutation signature with other cancer types in TCGA.
Publications
- The Cancer Genome Atlas Network
- Comprehensive Pan-Genomic Characterization of Adrenocortical Carcinoma
- Cancer Cell 29, 723-736 (2016)
Resources
Breast Cancer
Associations between molecular features. Statistically significant associations between features with genomic coordinates are indicated by arcs connecting pairs of dots which represent the features. Two examples are shown: significant associations between microRNA and mRNA expression levels (Left), and between copy-number and mRNA expression (Right).
Publications
- The Cancer Genome Atlas Network
- Comprehensive molecular portraits of human breast tumors
- Nature 490, 61–70 (2012)
Resources
Colorectal Cancer
A "hotspot" of CRC aggressiveness in region 20q13.12. Certain chromosomal regions are enriched in clinically associated molecular features. Region 20q13.12 includes a local amplification (orange) and 11 genes (blue), all of which are expressed more highly in aggressive tumors. A number of methylation probes (green) are also statistically associated with tumor aggression, nearly all (8/10) with decreased levels in aggressive tumors.
Publications
- The Cancer Genome Atlas Network
- Comprehensive molecular characterization of human colon and rectal cancer.
- Nature 487, 330-337 (2012)
Resources
Endometrial Cancer
Figure 4: Gene Expression Profiling Identifies Three Gene Expression Subtypes. (A) Tumors from TCGA separated into three clusters on the basis of gene expression, namely mitotic, hormonal and immunoresponsive. (B) The three clusters are significantly correlated with patient overall survival and progression-free survival. (C) Association of the three clusters with clinical/pathological features, mutation, copy-number variation and cluster assignments from different data types. (D) Molecular and clinical features associated with tumor histology and FOXM1 transcriptional factor network are significantly activated in the mitotic subtype.
Publications
- The Cancer Genome Atlas Network
- Integrated genomic characterization of endometrial carcinoma
- Nature 497, 67–73 (2013)
Gastric Cancer
Integrated Molecular Analysis Identifies Distinct Gastric Cancer Subtypes
Subsets of gastric cancer patients share molecular signatures reflected in multiple types of measurements. The central part of this figure (bordered by red line) indicates how a patient tumor sample (each corresponding to a column) falls into several possible patterns specific to molecular platforms as indicated by a blue tile. For example, in a single sample, copy number (SCNA) can be either High (blue in row 1) or Low (blue in row 16). Analysis by our Center played a role in revealing that four overall patterns are seen in the data, as indicated by the vertical red separation lines. Furthermore, these overall patterns were characterized by several key variables, as seen in the annotations below the box, the covariant tracks above the box, and the icons at the top of the figure representing DNA mismatch repair, diffuse cell type, Epstein-Barr virus, and aneuploidy, respectively. The key variables formed the basis of the classification of gastric molecular subtypes in the study.
Publications
- The Cancer Genome Atlas Network
- Comprehensive Molecular Characterization of Gastric Adenocarcinoma
- Nature 513, 202-209 (2014)
Resources
Glioblastoma Multiforme
Publications
- The Cancer Genome Atlas Network
- The Somatic Genomic Landscape of Glioblastoma
- Cell 155, 462–477 (2013)
Resources
Ovarian Cancer
Publications
- D. Yang, S. Khan, Y. Sun, K. Hess, I. Shmulevich, A. K. Sood, W. Zhang
- Association of BRCA1 and BRCA2 Mutations With Survival, Chemotherapy Sensitivity, and Gene Mutator Phenotype in Patients With Ovarian Cancer
- JAMA 306, 1557–1565 (2011)
Prostate Cancer
Figure 1. The Molecular Taxonomy of Primary Prostate Cancer
Comprehensive molecular profiling of 333 primary prostate cancer samples revealed seven genomically distinct subtypes.
Publications
- The Cancer Genome Atlas Network
- The Molecular Taxonomy of Primary Prostate Cancer
- Cell, Vol. 163, No 4, pp. 1011-1025 (2015)
Resources
Thyroid Cancer
Figure 7. Unsupervised Clusters for miRNA-seq Data
Heatmap showing discriminatory miRs (5p or 3p mature strands) with the largest 6% of metagene matrix score, as well as miR-204-5p, 221-3p, and 222-3p, which were highlighted in correlations to BRS and TDS scores. The scalebar shows log2 normalized (reads-per-million, RPM), median centered miR abundance. miR names in red are discussed in the text. Gray vertical lines in the clinical information tracks mark samples without clinical data, and in the mutation tracks gray lines identify samples without sequence data.
Publications
- The Cancer Genome Atlas Network
- Integrated Genomic Characterization of Papillary Thyroid Carcinoma
- Cell, Vol. 159, No. 3, 676-690 (2014)
Resources
Pan-Cancer Analysis
Publications
- The Cancer Genome Atlas Network
- The Cancer Genome Atlas Pan-Cancer analysis project
- Nature Genetics, 45, 1113-1120, (2013)
- Knijnenburg, TA, Bismeijer T, Wessels LF, and Shmulevich I
- A multilevel pan-cancer map links gene mutations to cancer hallmarks
- Chin J Cancer, 34, 48, (2015)


Home
Teams
About
About
Find Us
Partridge Green, Shermanbury Road, King George V Playing Fields
Contact
1st Team Manager : Andy Whibly -
07747 626114
2nd Team Manager : Pete Hurrell -
07708 712316
Committee - Keith Miller :