Company profile - Canadian Company Capabilities
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Integra Technologies Limited
Mailing Address:
1-1355 Confederation StSarnia, Ontario
N7S 4T2
Location Address:
1-1355 Confederation StSarnia, Ontario
N7S 4T2
Tel.:<PHONE_NUMBER>
Tel.:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Logo
Company Profile
INTEGRA Technologies provides specialty mechanical services which ensure the safety, reliability and effectiveness of Bolted
Joints. The company's services are used by the world's Power Generation and Oil & Gas Industries to reduce the impact that bolting processes (assembly or disassembly) have on outage durations. INTEGRA's Bolted Joint Reliability Services are used by this industry as well as the Hydrocarbons Processing Industry to rectify and eliminate dangerous bolted flange leakage problems. In addition, the company's considerable expertise and capabilities in this field are often called upon by clients who wish to outsource all of their boting-related requirements.
Since 1986, the personnel of today’s INTEGRA have been developing services and products to achieve leak-free critical path asset utilization. At the heart of our business is the continuous combination of technology, application expertise and skilled, experienced personnel.
We began as the Bolting Services Group of Westinghouse Nuclear where we introduced ultrasonic technologies and processes. We also developed hydraulic tensioning products specifically for Westinghouse turbines. We continued our business progress and became the Bolting Services Group of the Flexitallic Gasket Company where we added in-depth knowledge of gasket design and interaction, with a particular specialty in understanding and dealing with ring joint flanges.
Next, we became the North American Service Group of Hydratight where we developed the first turbine casing closure systems and turbine coupling machines for use in fossil and nuclear markets. We also introduced hydraulic tensioning tooling and processes to the subsea market in the Gulf of Mexico. In 1995, we became INTEGRA Technologies.
Since that time we have continued to develop our core capabilities and have added additional technologies and services taking us all the way to maximizing asset utilization.
Full profile
Full profile
Contact information
Company description
238299 - All Other Building Equipment Contractors
Product / Service / Licensing
to ensure quick joint dissembly and reassembly during our
client's maintenance outages. This ranges from powerful torquing
tools, hydraulic nut splitters, hydraulic bolt tensioners and
destructive and non-destructive stud and bolt removal equipment.
TALON™ ART Bolt Tensioners are the innovative result from decades of field services, developed from a crystal clear understanding of the hands-on struggles with antiquated technology. The many leading-edge features incorporated into TALON™ ART Bolt Tensioners deliver measurable on-the-job advantages during installation, as well as ongoing servicing.
Experience the highest level of Certainty of Outcome℠ with the unique TALON™ Auto-Retract Bolt Tensioning System. And importantly, get back to profitable production sooner.
VIPER™ Simultaneous Bolting System has proven performance in the industry. When operated by ROV on a Gulf of Mexico pipeline repair clamp at 3500ft water depth, the entire bolting procedure took under 6 hours.
Patented – US Patent #7,673,849 and Worldwide.
effectiveness of bolted joints. The company is contracted by
clients experiencing joint leakage problems in their plants as
well as those wishing to minimize outage durations by modifying
their bolting procedures. Our services include Gasket and Flange
Analysis, In-situ machining, Controlled Bolting (tensioning,
torquing, thermal), Qualiy Assurance (ultrasonic bolt load
measurements), Outage Project Management (related to bolting
issues) and Trouble Shooting / Process Improvement Consultations.
that accurate loading of these fasteners is acheived. Accurate
tightening of bolts is essential to achieve overall integrity
and reliability of the flanged joint.
Resource planning and careful operation management ensures the flexibility to mobilize personnel and equipment to meet our customers constantly changing requirements while still providing the highest quality of work and client satisfaction.
Many major plant outages require machining services with a substantial proportion of pipecutting, weld prepping and heat exchanger face re-facing.
INTEGRA Technologies has experienced technicians who can work effectively in and around the confines of boilers and heat exchangers. Special purpose machines are available to suit the wide range of pipe diameters, wall thickness and restricted access areas. The ability to simultaneously cut and weld prep is advantageous to many applications and is something we can execute with complete Certainty of Outcome℠.
Capabilities
Pipe Cutting, Weld Prep Beveling & Transitioning
Flange Facing
Spot Facing, Raised Face, Ring Type Joints (RTJ), Weld Build-Up
INTEGRA BlackWidow™ Stud Drilling System
Diaphragm Removal
TRU-Bore™ Line Boring
Drilling & Tapping
Portable Lathes
Portable Milling
Pump, Motor, and Compressor Bases
service. The service monitors for leaks of volatile organic
compounds (VOC's) in critical plant operations. Sealchek is
utilized to help clients ensure compliance with industry and
environmental regulations.
machining and coupling bolt retrofits. Our rapid line boring
capabilities (usually less than 2 hours per hole) significantly
reduce outage durations when such is required. This service,
termed "BFW Process" is central whenever traditional problem-
prone turbine coupling bolts are replaced by Hydraulic Coupling
Bolts.
record-breaking speed. By integrating the most advanced induction
bolt heating system with hydraulic turbine closure and ultrasonic
bolt load measurement, FasTrak slashes the outage time required
for turbine overhauls.
Firm to develop bolting procedural specifications for new
plants. In doing so, the client can thus be assured of a leak
free start-up of his facility. Furthermore, these initial
Project Management services can help to ensure optimum plant
operation by eliminating bolting related problems throughout the
life of the plant before they can otherwise occur.
nut splitters and ancillary equipment including Steam Turbine
disassembly tools can be rented by Contractors and End-users.
equipment for tasks such as flange facing, milling and boring.
Technologies provides unique services to determine the loads
carried by pipe and large equipment supporting hangers. Third
Parties around the world have recognized the importance of these
services as a critical coponent of comprehensive hanger stress
analysis programmes.
5130-Hand Tools, Power Driven
Technology profile
international gasket manufacturing company. In addition, the
precurser of the present company was once owned by one of the
world's largest Power Generation equipment manufacturers. As a
result, INTEGRA is uniquely qualified to address all aspects of
bolted joint issues in the industries which it serves.
Market profile
Alliances:
Strategic alliances:
We will consider working with foreign agents who haveconsiderable exerience promoting high-value and complex
Mechanical Joint Integrity and Joint Process Improvement
Services to the Power Generation and Hydrocarbons Processing
Industries within their countries.
Geographic markets:
Export experience:
- Australia
- India
- Ireland
- Korea, Republic of
- Mexico
- South Africa
- Taiwan
- United Kingdom
- United States
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- District of Columbia
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming
Actively pursuing:
- Algeria
- Brazil
- Japan
Sector information
Unique applications:
Reactor Manways, vessel manways, heat exchangers, pipe flanges, compressors, turbines, boilersKey / Major clients:
SyncrudeSuncor
Exxon/Mobil
BP
Shell
PetroCanada
Imperial Oil
Dow Chemical
Nova Chemicals
Chevron
Phillips 66
Success stories:
FlangeTrak Leak Prevention Process has been used successfully to prevent and solve leak problem for a variety of construction and maintenance projects.BlackHawk High Performance Hydraulic Nuts has solved significant safety and speed problems associated with torquing large critical bolted connections
Third-Party Information Liability Disclaimer
Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.
Contacts
Contact information
Description
Company description
238299 - All Other Building Equipment Contractors
Products, services and licensing
Product / Service / Licensing
to ensure quick joint dissembly and reassembly during our
client's maintenance outages. This ranges from powerful torquing
tools, hydraulic nut splitters, hydraulic bolt tensioners and
destructive and non-destructive stud and bolt removal equipment.
TALON™ ART Bolt Tensioners are the innovative result from decades of field services, developed from a crystal clear understanding of the hands-on struggles with antiquated technology. The many leading-edge features incorporated into TALON™ ART Bolt Tensioners deliver measurable on-the-job advantages during installation, as well as ongoing servicing.
Experience the highest level of Certainty of Outcome℠ with the unique TALON™ Auto-Retract Bolt Tensioning System. And importantly, get back to profitable production sooner.
VIPER™ Simultaneous Bolting System has proven performance in the industry. When operated by ROV on a Gulf of Mexico pipeline repair clamp at 3500ft water depth, the entire bolting procedure took under 6 hours.
Patented – US Patent #7,673,849 and Worldwide.
effectiveness of bolted joints. The company is contracted by
clients experiencing joint leakage problems in their plants as
well as those wishing to minimize outage durations by modifying
their bolting procedures. Our services include Gasket and Flange
Analysis, In-situ machining, Controlled Bolting (tensioning,
torquing, thermal), Qualiy Assurance (ultrasonic bolt load
measurements), Outage Project Management (related to bolting
issues) and Trouble Shooting / Process Improvement Consultations.
that accurate loading of these fasteners is acheived. Accurate
tightening of bolts is essential to achieve overall integrity
and reliability of the flanged joint.
Resource planning and careful operation management ensures the flexibility to mobilize personnel and equipment to meet our customers constantly changing requirements while still providing the highest quality of work and client satisfaction.
Many major plant outages require machining services with a substantial proportion of pipecutting, weld prepping and heat exchanger face re-facing.
INTEGRA Technologies has experienced technicians who can work effectively in and around the confines of boilers and heat exchangers. Special purpose machines are available to suit the wide range of pipe diameters, wall thickness and restricted access areas. The ability to simultaneously cut and weld prep is advantageous to many applications and is something we can execute with complete Certainty of Outcome℠.
Capabilities
Pipe Cutting, Weld Prep Beveling & Transitioning
Flange Facing
Spot Facing, Raised Face, Ring Type Joints (RTJ), Weld Build-Up
INTEGRA BlackWidow™ Stud Drilling System
Diaphragm Removal
TRU-Bore™ Line Boring
Drilling & Tapping
Portable Lathes
Portable Milling
Pump, Motor, and Compressor Bases
service. The service monitors for leaks of volatile organic
compounds (VOC's) in critical plant operations. Sealchek is
utilized to help clients ensure compliance with industry and
environmental regulations.
machining and coupling bolt retrofits. Our rapid line boring
capabilities (usually less than 2 hours per hole) significantly
reduce outage durations when such is required. This service,
termed "BFW Process" is central whenever traditional problem-
prone turbine coupling bolts are replaced by Hydraulic Coupling
Bolts.
record-breaking speed. By integrating the most advanced induction
bolt heating system with hydraulic turbine closure and ultrasonic
bolt load measurement, FasTrak slashes the outage time required
for turbine overhauls.
Firm to develop bolting procedural specifications for new
plants. In doing so, the client can thus be assured of a leak
free start-up of his facility. Furthermore, these initial
Project Management services can help to ensure optimum plant
operation by eliminating bolting related problems throughout the
life of the plant before they can otherwise occur.
nut splitters and ancillary equipment including Steam Turbine
disassembly tools can be rented by Contractors and End-users.
equipment for tasks such as flange facing, milling and boring.
Technologies provides unique services to determine the loads
carried by pipe and large equipment supporting hangers. Third
Parties around the world have recognized the importance of these
services as a critical coponent of comprehensive hanger stress
analysis programmes.
5130-Hand Tools, Power Driven
Technology
Technology profile
international gasket manufacturing company. In addition, the
precurser of the present company was once owned by one of the
world's largest Power Generation equipment manufacturers. As a
result, INTEGRA is uniquely qualified to address all aspects of
bolted joint issues in the industries which it serves.
Market
Market profile
Alliances:
Strategic alliances:
We will consider working with foreign agents who haveconsiderable exerience promoting high-value and complex
Mechanical Joint Integrity and Joint Process Improvement
Services to the Power Generation and Hydrocarbons Processing
Industries within their countries.
Geographic markets:
Export experience:
- Australia
- India
- Ireland
- Korea, Republic of
- Mexico
- South Africa
- Taiwan
- United Kingdom
- United States
- Alabama
- Alaska
- Arizona
- Arkansas
- California
- Colorado
- Connecticut
- Delaware
- District of Columbia
- Florida
- Georgia
- Hawaii
- Idaho
- Illinois
- Indiana
- Iowa
- Kansas
- Kentucky
- Louisiana
- Maine
- Maryland
- Massachusetts
- Michigan
- Minnesota
- Mississippi
- Missouri
- Montana
- Nebraska
- Nevada
- New Hampshire
- New Jersey
- New Mexico
- New York
- North Carolina
- North Dakota
- Ohio
- Oklahoma
- Oregon
- Pennsylvania
- Rhode Island
- South Carolina
- South Dakota
- Tennessee
- Texas
- Utah
- Vermont
- Virginia
- Washington
- West Virginia
- Wisconsin
- Wyoming
Actively pursuing:
- Algeria
- Brazil
- Japan
Sector
Sector information
Unique applications:
Reactor Manways, vessel manways, heat exchangers, pipe flanges, compressors, turbines, boilersKey / Major clients:
SyncrudeSuncor
Exxon/Mobil
BP
Shell
PetroCanada
Imperial Oil
Dow Chemical
Nova Chemicals
Chevron
Phillips 66
Success stories:
FlangeTrak Leak Prevention Process has been used successfully to prevent and solve leak problem for a variety of construction and maintenance projects.BlackHawk High Performance Hydraulic Nuts has solved significant safety and speed problems associated with torquing large critical bolted connections


Warehouse Keeper:
Welcome! What can I do for you today? It costs only 30 Adena to store items. If you are a manager, please let me know in advance and I will give you an item that will help the clan's development.
Private Warehouse.
Clan Warehouse.
Check honorary item.


After I start the service, it stops immediately.
This is usually caused by an invalid or in-use serial port or log file. In the unregistered version, this will also occur if the service is started outside the 30 day evaluation period. Please refer to the Windows Application Event Log to see exactly why the service terminated. Click here to find out about restrictions in the unregistered version.
After I start the service, it stops after a few minutes, hours, or days.
The unregistered version will run for a random amount of time and then stop. Please refer to the Windows Event Log to see exactly why the service terminated. Click here to find out about restrictions in the unregistered version.
Can Serial Logger Service monitor more than one serial port?
Yes! Support for multiple instances is a new feature added to version 1.2. Each serial port can be logged to a separate log file.
Can multiple ports be written to the same log file?
No. Each instance must have exclusive write access to its log file.
How do I send a "login" or "start" command to the serial device that I want to monitor?
Click here for details.
How can I manually rotate the log file?
Click here for details.
How can I view the serial port data in real time?
If you want to view data as it comes in, you can use a program such as the Unix-like "tail" program in combination with Serial Logger Service. You can download a "free" version of Tail for Win32 from here.


--- layout: post status: publish published: true title: Cubs Hire Rob Deer as Assistant Hitting Coach author: display_name: Corey Fineran login: Corey email<EMAIL_ADDRESS>url: '' author_login: Corey author_email<EMAIL_ADDRESS>wordpress_id: 7977 wordpress_url: http://ivyenvy.com/?p=7977 date: '2012-11-26 17:40:51 +0000' date_gmt: '2012-11-26 23:40:51 +0000' categories: - Offense - Coaching tags: - Bip Roberts - Dale Sveum - James Rowson - Rob Deer - Hitting Coach - Batting Coach comments: [] ---
When I heard today that the Cubs hired Rob Deer to fill the role as Assistant Hitting Coach, I realized that while I know his name, the extent of my knowledge of the gentleman is limited to this:
I seem to remember stacking up Rob Deer baseball cards like Andy and his massive Bip Roberts collection. It seemed that every pack I opened in the late 80s contained a Rob Deer card. So if the Cubs dig up this guy, he must know something about hitting, right?
Well, maybe. If he knows a lot about hitting, he sure doesn't know how to do it. Or at least he didn't when he was a ballplayer. In his 11-year career, Deer is a .220 hitter and had a strikeout rate of almost 200 per 162 games. For 20 years, he held the AL record for most strikeouts in a season.
So should we be concerned that this guy will be instructing our batters how to hit the ball? While looking through the hitting coaches in Major League Baseball, there are quite a few names that are recognizable, but there's also a lot of names of guys that had insignificant careers as players.
If you are wondering about his qualifications, Deer has been a roving hitting instructor for the Padres. Bruce Miles posted this quote today, which was dug up by The Hardball Times. Deer was asked about being a hitting coach after striking out so much and having such a low batting average.
“I answer that a lot,” responded Deer, who was minor-league hitting coordinator for the Padres at the time. “I don't teach the way I hit. I understand how to hit .300. I know what it takes. We tell the guys to be selectively aggressive. We want that to be their approach. We tell them 'Be patiently aggressive.' That's our motto. What does it mean? If you get a good pitch to hit and you take it, that's your fault. We don't ever want to take aggressiveness away. But, we don't want to swing at bat pitches, either. I'll be the first to admit I don't want them to hit like I did."
Deer is a former teammate to Cubs manager Dale Sveum and this may be more of a move to help Sveum shape the team's attitude and clubhouse than anything else. Familiarity within the coaching staff can be valuable. Deer will be assisting James Rowson and with a roster this young, Rowson could probably use some help.


Player functions
freeze_player unfreeze_player SetPlayer FaceDirection EnterRoom
freeze_player
function freeze_player();
Use this function to prevent the player from moving by the following movement functions of the template.
See also: unfreeze_player
unfreeze_player
function unfreeze_player();
Use this function to undo the freeze_player function and let the characters move again.
See also: freeze_player
SetPlayer
function SetPlayer(Character*ch);
Usage:
cEgo.SetPlayer();
Similar to the AGS function Character.SetAsPlayer(). The difference is, that make the previous character clickable again, whereas the new character gets unclickable.
FaceDirection
function FaceDirection (this Character*, eDirection dir);
Usage:
cEgo.FaceDirection(eDir_Left);
Similar to the AGS function Character.FaceLocation. Possible directions are: eDir_Left, eDir_Right, eDir_Up, eDir_Down
EnterRoom
function EnterRoom(this Character*, int newRoom, int x, int y, eDirection dir, bool onWalkable);
Usage:
cEgo.EnterRoom(1,15,15,eDir_Left,true);
Similar to the AGS function Character.ChangeRoom. The difference is, that you can also define, it which direction the character should look. Using this function makes the character turn to the direction, mentioned above.
Semi-blocking movement functions
Semi-blocking means, that you can cancel the movement, but certain code is only executed, after the character has actually reached it’s goal. To archive this, these functions are called inside an if-clause.
Example:
if(MovePlayer(20,20)) Display("The player has reached the destination.");
If the player’s character reaches the coordinates 20,20, the message “I’m there” is being displayed. If the movement is being cancelled by a mouseclick, the message doesn’t appear.
MovePlayer MovePlayerEx GoToCharacter GoToCharacterEx NPCGoToCharacter any_click_move any_click_walk any_click_walk_look any_click_walk_look_pick any_click_use_inv GoTo Go WalkOffScreen set_approaching_char
MovePlayer
int MovePlayer(int x, int y);
Moves the player character around on walkable areas, a wrapper for MovePlayerEx. Returns 1, if the character has reached it’s goal and 0 if the movement has been cancelled before.
See also: MovePlayerEx
MovePlayerEx
int MovePlayerEx(int x, int y, WalkWhere direct);
Move the player character to x,y coords, waiting until he/she gets there, but allowing to cancel the action by pressing a mouse button. Returns 1, if the character hasn’t cancelled the movement and 0 if the movement has been cancelled before. 2 is returned, if the characters has actually reached it’s goal: eg. if a walkable area is being removed while the player is still moving.
GoToCharacter
int GoToCharacter(Character*charid, eDirection dir, bool NPCfacesplayer, int blocking);
The same as GoToCharacterEx, just with the one character being the player and a default offset of x=35px and y=20px. Returns 1, if the character has reached it’s goal and 0 if the movement has been cancelled before.
See also: GoToCharacterEx
GoToCharacterEx
int GoToCharacterEx(Character*chwhogoes, Character*ch, eDirection dir, int xoffset, int yoffset, bool NPCfacesplayer, int blocking);
Goes to a character staying at the side defined by ‘direction’: 1 up, 2 right, 3 down, 4 left and it stays at xoffset or yofsset from the character. blocking: 0=non-blocking; 1=blocking; 2=semi-blocking Returns 1, if the character has reached it’s goal and 0 if the movement has been cancelled before.
See also: GoToCharacter, NPCGoToCharacter
NPCGoToCharacter
int NPCGoToCharacter(Character*charidwhogoes, Character*charidtogoto, eDirection dir, bool NPCfacesplayer, int blocking);
The same as GoToCharacterEx, just with an default offset of x=35 and y=20 Returns 1, if the character has reached it’s goal and 0 if the movement has been cancelled before.
See also: GoToCharacterEx
any_click_move
int any_click_move(int x, int y, eDirection dir);
Moves the player character to the coordinates given in the parameters. If the player reaches the destination, it’s turns to the given direction. Returns 1, if the character has reached it’s goal and 0 if the movement has been cancelled before. You can use this kind of functions (including the movePlayer function which is called by this function), to check if the player actually reached it’s destination. For example:
if (any_click_move(130,110,eDir_Left)==1) player.Say("I've reached the place.");
So the Message is only displayed, if the movement hasn’t been cancelled.
See also: MovePlayer, MovePlayerEx
any_click_walk
int any_click_walk(int x, int y, eDirection dir);
This function is almost similar to any_click_move. But it’s only called, if the current action is eMA_WalkTo.
See also: MovePlayer, MovePlayerEx, any_click_move
any_click_walk_look
int any_click_walk_look(int x, int y, eDirection dir, String lookat);
This function moves the player character to the given location, turns it to the given direction and lets it say the message, given in the string.
See also: any_click_walk
any_click_walk_look_pick
int any_click_walk_look_pick(int x, int y, eDirection dir, String lookat, int objectID, InventoryItem*item, AudioClip *sound);
This function starts the same as any_click_walk_look. If an object ID > 0 has been given, this object is set invisible. Afterwards the inventory item is going to be added to the player’s inventory and if there’s an audioclip in the parameters, that one is played too.
The function return 0 if the action has been cancelled, before the player has reached the coordinates. 1 is returned if the player has reached the given destination, but has not picked up the item. 2 is returned, if the item has been picked up.
See also: any_click_walk_look, any_click_walk
any_click_use_inv
int any_click_use_inv (InventoryItem*item, int x, int y, eDirection dir);
This function moves the player to the given destination. It returns 0, if the action is unhandled, 1 is returned, if the action is handled, but has been cancelled. 2 is returned, if everything went fine. A possible usage is:
if (any_click_use_inv (iWrench,100,130,eDir_Left)==2) player.Say("I will now repair this pipe.");
See also: any_click_walk_look, any_click_walk
GoTo
GoTo(int blocking);
Go to whatever the player clicked on. This function is used to intercept a walk-to event and check if the player has reached it’s goal. E.g. this is used in the exit extension processing. blocking: 0=non-blocking; 1=blocking; 2=semi-blocking
See also: Go, MovePlayer, WalkOffScreen
Go
Go();
Goes to whatever the player clicked on. You can cancel the action, and returns 1 if the player has gone to it. This is just a shortcut for GoTo(2), which means semi-blockable.
See also: GoTo
WalkOffScreen
WalkOffScreen();
Handles the action of hotspots or objects with the exit extension (‘>e’). Take a look at chapter about extensions to see what this function does.
See also: Extensions
set_approaching_char
set_approaching_char(bool enable);
If set to true, the player walks to other chars before talking or giving items. This behaviour is initially defined in the guiscript, this function is used to change it during runtime.


A program to calculate the longest shortest path of a graph using Dijkstra's algorithm.
More...
#include <assert.h>
#include <ctype.h>
#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <time.h>
|
|
#define | EXT_SIZE (1024*1024) |
| |
|
#define | MAX_LINE_LEN 512 |
| |
|
#define | error_exit(msg) error_exit_fun(msg, __FILE__, __LINE__) |
| |
|
| void | error_exit_fun (const char *const msg, const char *const file, const int lineno) |
| |
| int | sift_up (int *heap, int *distance, int *index, int current) |
| |
| int | sift_down (int *heap, int *distance, int *index, int current, const int size) |
| |
| int | dijkstra (struct graph *G, int source) |
| |
| int | main (int argc, const char *const *const argv) |
| |
A program to calculate the longest shortest path of a graph using Dijkstra's algorithm.
- Author
- Tri-Peter Shrive
| int dijkstra |
( |
struct graph * |
G, |
|
|
int |
source |
|
) |
| |
implementation of the dijkstra algorithm
- Parameters
-
| G | graph attributes |
| source | source node |
| void error_exit_fun |
( |
const char *const |
msg, |
|
|
const char *const |
file, |
|
|
const int |
lineno |
|
) |
| |
utility function that simplifies error handling
- Parameters
-
| msg | message to be displayed |
| file | file name |
| lineno | line number |
| int main |
( |
int |
argc, |
|
|
const char *const *const |
argv |
|
) |
| |
reads data from file storing nodes and weights in graph structure. then calls dijkstra's algorithm and assesses longest shortes path
| int sift_down |
( |
int * |
heap, |
|
|
int * |
distance, |
|
|
int * |
index, |
|
|
int |
current, |
|
|
const int |
size |
|
) |
| |
sifts an entry down through binary heap
- Parameters
-
| heap | nodes in heap |
| distance | distance of nodes in heap |
| index | index of nodes in heap |
| current | current position of node in heap |
| size | size of heap |
| int sift_up |
( |
int * |
heap, |
|
|
int * |
distance, |
|
|
int * |
index, |
|
|
int |
current |
|
) |
| |
sifts an entry up through binary heap
- Parameters
-
| heap | nodes in heap |
| distance | distance of nodes in heap |
| index | index of nodes in heap |
| current | current position of node in heap |


| Class and Description |
|---|
| Cloneable
This interface is implemented by objects that can be cloned.
|
| HashRange
Descriptor for hash range.
|
| KeyRange
Represents the key range of data partitions within a block.
|
| MetricFactory
A serializable metric factory.
|
| Pair
Pair class.
|
| StateMachine
A finite state machine that can be created with user defined states and transitions.
|
| StateMachine.Builder
Builder that builds a StateMachine.
|
| Class and Description |
|---|
| Pair
Pair class.
|
| Class and Description |
|---|
| DataSkewMetricFactory
A
MetricFactory which is used for data skew handling. |
| KeyExtractor
Extracts a key from an element.
|
| Class and Description |
|---|
| Cloneable
This interface is implemented by objects that can be cloned.
|
| Class and Description |
|---|
| Cloneable
This interface is implemented by objects that can be cloned.
|
| Class and Description |
|---|
| Cloneable
This interface is implemented by objects that can be cloned.
|
| Class and Description |
|---|
| KeyExtractor
Extracts a key from an element.
|
| Class and Description |
|---|
| Cloneable
This interface is implemented by objects that can be cloned.
|
| Class and Description |
|---|
| KeyExtractor
Extracts a key from an element.
|
| Class and Description |
|---|
| KeyRange
Represents the key range of data partitions within a block.
|
| Pair
Pair class.
|
| Class and Description |
|---|
| KeyRange
Represents the key range of data partitions within a block.
|
| Class and Description |
|---|
| StateMachine
A finite state machine that can be created with user defined states and transitions.
|
| Class and Description |
|---|
| KeyRange
Represents the key range of data partitions within a block.
|
| Class and Description |
|---|
| KeyRange
Represents the key range of data partitions within a block.
|
| Class and Description |
|---|
| KeyExtractor
Extracts a key from an element.
|
| Class and Description |
|---|
| Pair
Pair class.
|
Copyright © 2019 The Apache Software Foundation. All rights reserved.


{% extends "collect/base.html" %} {% block profile-active %}active{%endblock%} {% block title %}Password change{% endblock %} {% block content %}
Here you can change your password.


Settings of increasing complexity:
- Multi-armed bandit
- Bandit linear optimization
- Bandit convex optimization
Multi-armed bandit
- \(\de\)-greedy algorithm: Balancing exploitation which gives \(O(\sqrt T)\) regret and exploration which gives \(O(T^{\fc 34} \sqrt n)\) regret.
\(\de\)-greedy algorithm
- With probability \(\de\), explore.
- Play \(i_t\sim U_n\).
- \(\wh f_t(x) = \wh \ell_t^T x\).
- \(\wh \ell_t = \fc{n}{\de}\ell_t(i_t)e_{i_t}\).
- With probability \(1-\de\), exploit.
- Play \(i_t\sim x_t\).
- \(\wh f_t(x) = 0\). (We can’t use information here because it wasn’t uniformly generated.)
- Update using a bandit algorithm \(x_{t+1} = A(\wh f_1,\ldots, \wh f_t)\).
The \(\wh \ell_t\) were chosen so \[ \E \wh \ell_t(i) = \ell_t(i).\] We have \[\E R_T \le 3 GD\sqrt T + \de T,\] where \(G\le \fc n\de\).
EXP3
Exponential weights for exploration and exploitation
Adversarial setting.
Blog post.
We can explore and exploit at the same time if we (a) keep track of a probability distribution and update it, and (b) if we reweight the loss functions to make the expected value correct.
Idea: Use the MWU (hedge) algorithm.
Updates
\[\begin{align}
y_{t+1}(i) & = x_t(i) e^{\ep \wh\ell_t(i)}\\
x_{t+1}&= \pa{1-\rc{\sqrt T}} \fc{y_{t+1}}{\ve{y_{t+1}}_1} + \rc{n \sqrt T}\one.
\end{align}\]
Question: wht’s the purpose of the \(x_t\) update? To make sure every arm is played at least with some probability? (E.g. will be played infinitely many times.)
Get \(R_T\le O(\sqrt{Tn \ln n})\).
UCB1
Stochastic setting.
“Optimism in the face of uncertainty.”
Blog post.
Algorithm: first play each once; then at each step play the action with highest upper confidence bound \[j = \amax_j \ol x_j + \ub{\sfc{2\ln T}{n_j}}{a(n_j, T)}.
\]
UCB on MAB with \(K\) actions where \(X_{i,t}\in [0,1], X_{i,t}\sim D_i\) are independent, has expected cumulative regret, \(\ol x_{i,s}\) the empirical mean after playing \(i\) \(s\) times, \[ \E R(T) = O(\sqrt{KT \ln T}). \]
Proof.
- Let \(\De_i = \mu^*-\mu_i\), \(P_i(T)\) be the number of times \(i\) is picked by time \(T\), \(I_t\) be the \(t\)th choice, \(a(s,t)\) be the width of the CI at time \(t\) after \(s\) observations. Then
\[\begin{align}
\E G_A(T) &= \sum_i \mu_i \E P_i(T)\\
\E P_i(T) &= 1+\sum_{t=K}^T (I_t=i)\\
&\le m + \sum_{t=K}^T (I_t=i\wedge P_i(t-1)\ge m)\\
&\le m + \sum_{t=K}^T (U_i(t-1) \ge U^*(t-1), P_i(t-1)\ge m)\\
&\le m + \sumo t{\iy} \sum_{s=m}^{t-1}\sum_{s'=1}^{t-1} (\ol x_{i,s} + a(s,t-1) \ge \ol x_{s'}^* + a(s',t-1))\\
&\le \ff{8\ln T}{\De_i^2} + \sumo t{\iy} \sum_{s=m}^t \sum_{s'=1}^t 2t^{-4} = \fc{8\ln T}{\De_i^2} + 1 + \fc{\pi^2}{3}.
\end{align}\]
We chose \(m\) so that \(\mu^* \ge \mu_i +2a(m,t)\). This implies either
\[\begin{align}
\ol x_{s'}^* &\le \mu^* - a(s',t)\\
\ol x_{i,s} & \ge \mu_i + a(s,t)
\end{align}\]
which happen with probabilities \(t^{-4}\).
- This gives regret \[\E R(T) \le \min(8 \sum_{i:\mu_i <\mu^*} \fc{\ln T}{\De_i} + \pa{1+\fc{\pi^2}3}\pa{\sumo jK\De_j}, \max \De_i T).\]
- Optimizing gives \(\De_i = O(\sqrt{\ln T})\).
The idea is to upper bound by events that cover and we can better estimate. This involves summing over all \((s,s')\). The \(m\) is introduced so that at that time \(\mu^*\) and \(\mu_i\) will be far enough apart.
Thompson sampling
(from 229T p. 191)
For each time \(t = 1,\ldots, T\):
- Sample a model from the posterior: \(\theta_t\sim p(\te | a_{1:t-1}, r_{1:t-1})\)
- Choose the best action under that model: \(a_t = \amax_a p(r | \te_t, a)\).
Thompson sampling outperforms UCB in many settings.
\[
\E[\text{Regret}]
\le (1+\ep)
\sum_{j:\De_j>0}
\fc{\De_j\ln T}{KL(\mu_j||\mu^*)}
+O\pf{d}{\ep^2}.
\]
- Thompson sampling generalizes to RL.
- It does not choose actions that take into accound the value of information gained.
Gittins index?
BLO
SCRIBLE
Attains \(O(\sqrt T\ln T)\) regret.
BCO
- [BE16] [paper](https://arxiv.org/pdf/1507.06580v1.pdf) JMLR version - inefficient, \(\wt O(\poly(n)\sqrt T)\)-regret algorithm.
- [BEL16] [paper](https://arxiv.org/pdf/1607.03084.pdf) - \(\wt O(\poly(n)\sqrt T)\)-regret and \(\poly(T)\)-time algorithm.
FKM
Generic reduction from BCO to (first-order) OCO by using gradient estimators. FKM is an instantiation of the algorithm with regret \(O(T^{\fc 34})\).
Contextual bandits
- EXP4 (adversarial) - Exponential weights for exploration and exploitation with expert advice. Do MWU with the experts. (Where does it use the context?)
- [LCLS10] A Contextual-Bandit Approach to Personalized News Article Recommendation
- Model: stochastic setting, at time \(t\), expected payoff of \(a\) is linear in feature \(x_{t,a}\) (given for all \(a\), in the simplest case they are equal over all \(a\)), (\(\te_a^*\) is the unknown coefficient vector) \[ \E[r_{t,a}|x_{t,a}] = x_{t,a}^T\te_a^*.\]
- Assume iid context and reward vectors.
- Algorithm: LinUCB attains regret \(\wt O(\sqrt{KdT})\). Combine UCB with linear regression. (Think of linear functions as the “policy space”.)
- Requires time at least linear in the number of arms.
- [DHKK] Efficient Optimal Learning for Contextual Bandits
- Compare not to the best fixed policy (choosing the same arm), but best policy in some space \(\Pi\). (Question: what about comparing to best policy for other bandit problems? Ex. what’s the algorithm for vanilla MAB?)
- Solves the contextual bandit problem for large policy spaces (in tie \(\poly\log(N)\), \(K\) the number of arms, and achieves regret \(O(\sqrt{TK\ln N})\)). (Complexity analysis assumes existence of argmax oracle (AMO) which gives \(\amax_{\pi\in \Pi} \sumo{t'}t r_{t'}(\pi(x_{t'}))\).
- Idea:
- Policy elimination (intractable)
- Choose a distribution over the remaining experts that minimizes some kind of maximum variance.
- Eliminate bad experts: all policies that are suboptimal by more than \(2b_t\). (NTS: whp the best policy remains, \(\pi_{\max}\in \Pi_t\), and remaing policies are good, \(\eta_D(\pi_{\max}) - \eta_D(\pi) \le 4b_t\).
- Unbiased estimator of policy values \(\eta_t(\pi) = \rc{t} \sum \fc{r \one(\pi(x) = a)}{p}\).
- Randomized UCB (tractable given AMO; frequency of choosing, confidence bound determined by estimated regret)
- Approximately minimize a certain variance. (Do this optimization problem with the argmax oracle. How?)
- Smooth out distribution and play according to it.
- No elimination here.
- Question: how about nonfinite sets - ex. VC dimension, Rademacher complexity?
Concrete Q: In the MAB setting, what if you compare to the best policy in a given set? I’m confused: can the policies have memory (depending on past results)? In this case, you can’t start following a policy midway. Let’s say they don’t. Now some policies may recommend the same action and some actions may not be recommended so scale accordingly.
A: Yes. See [ACFS02]; they get regret \(O((\ln N)^{\rc 2}\sqrt{T})\) where \(N\) is the number of strategies.


$def with (templates) $:{RENDER("common/stage_title.html", ["User Suspensions", "Moderator Control Panel", "/modcontrol"])}
Enter a userid or username, and select a predefined infraction and sanction. Reason, duration, and action will be filled in.
Enter a userid or username, reason for suspending, and a release date or duration. The user will be automatically unbanned after they attempt to sign in to their account on or after the release date.
Enter a userid or username and a reason for banning.
Enter a userid or username. The user will be released from their ban or suspension.


As part of a curriculum enrichment programme initiated by Maker Education working group (MEWG) members at LJMU this inventory aims to:-
Its objectives are:-
Feel free to contact a member you might know for information or help. Or contact the group directly.
We couldn't upload the response; please click the button below to send your response via email instead.
It's important we get the details of anyone adding to the inventory. Please complete all the fields about you.
Please tell us about the item(s) you would like us to map to the maker inventory:-
| Item | Quantity | Location | Availability | |
|---|---|---|---|---|
| {{ asset.item }} | {{ asset.quantity }} | {{ asset.location }} | {{ asset.availability }} |
Thanks a lot for submitting your response to the HEdWorks Maker Inventory. We will keep you updated on the progress of the inventory and how to access it in the future. Feel free to contact us in the meantime, and please disseminate this survey among colleagues.
Yours sincerely,
Brett Lempereur (Project lead), Mark Felthamn (Project co-lead), David Llewellyn-Jones (Technical lead), Mark Sabino (Technical co-lead), and all at MEWG.


{%- if site.footer_content -%}
Copyright © {{ site.time | date: '%Y' }} {{ site.footer_content }}. All rights reserved.


Rancho Gordo New World Specialty Food, a Napa–based specialty food company has announced plans to open a retail space at the San Francisco Ferry Plaza Building Marketplace, home of Bay Area food legends like Acme Bread, Cowgirl Creamery and the Slanted Door. Read More
Cowgirl Creamery, award winning makers of artisan cheese and proprietors of three of the best cheese stores in the country, are offering a 30 minute Cowgirl Creamery Experience at their shop in San Francisco’s landmark Ferry Building. Read More
San Francisco’s Ferry Building announced today that Mariposa Baking Company will move from its kiosk location into one the coveted Marketplace nave shops. Read More
Subscribe to the Ferry Building Marketplace e‑newsletter to get the latest news and events!


Status
{{ card.status }}
{{ card.status }}
0" style="justify-content: center" [selectable]="false" selected
color="warn">
Card Number
{{ card.cardNumber }}
Gender
{{ card.gender }}
Phone Number
{{ card.phoneNumber | phoneNumber }}
Age
{{ card.age }}
Address
{{ card.address.street }}
{{ card.address.city }}, {{ card.address.state?.name }} {{ card.address.zipcode }}
Member Since
{{ card.created | date: 'longDate' }}


Embedded Views
Embedded Views
Overview
An Embedded Views are state flows within an existing state. This allows for developers to make more robust and complex states by putting a state within a state and have both states talk to each other and interact with one another. The purpose of this tutorial page is to go over the basics on how to embedded a view into a state and some advice on how to set up the various interations.
Tutorial Note:
This tutorial assumes you know basics of the JSON and iVXjs. If some of these concepts are hard to follow, feel free to look at the introductory tutorials for more info.
Sample Embedded View: Playlist
A simple use case for Embedded Views is a playlist where the state has a collection of links that they click that takes them to various videos, forms and links.
Part 1: Set up the Parent Navigation State
For the playlist, we will need to use the Navigation state that will list all of our embedded states. The state that you are embeddeding in called a “Parent State.”
Parent State - A parent state is the state that has embedded states. The parent state will have special properties that allows it overwrite some aspect of its embedded states.
Note: a parent state can not be embedded in another state.
Step 1: Set up the JSON for the experience:
So to get started, we will set up the JSON and the Navigation State and have the default state be the Playlist:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
"id": "parent-navigation-state",
"name": "Parent Menu Scene",
"url": "/parent-navigation-state",
"type": "navigation",
"section": {
"classes": "parent-navigation-state"
},
"onLinksReady": [
{
"eventName": "animateElement",
"args": {
"element": ".navigation-state-container",
"animationClasses": "show"
}
}
],
"links": [
]
}
{},
{}
]
}
Step 2: Add the Embedded Views Collection
Now, we will actually embed our views into the Parent States. To embedded the views, we add the property to embedded views. This is a collection of view objects with properties to set up each view. Let’s see an example of the playlist with one embedded view and one state:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
"id": "parent-navigation-state",
"name": "Parent Menu Scene",
"url": "/parent-navigation-state",
"type": "navigation",
"section": {
"classes": "parent-navigation-state"
},
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1"
}
]
}
],
"onLinksReady": [
{
"eventName": "animateElement",
"args": {
"element": ".navigation-state-container",
"animationClasses": "show"
}
}
],
"links": [
]
}
{},
{}
]
}
Let’s break the properties a bit:
- id - Id of the view. This id gets added to the container where the states will be place if there needs to be special targeting for this view.
- name - A human readable name for the view. It is only used for JSON readability.
- type - The type of view. Currently, iVXjs just supports the “custom” type which just puts the state on the page without any other functions.
- classes - CSS classes to add to the view.
- appendTo - The dom element to put the view.
- Note: The dom must exist in the expereince container and can’t be added to any state content (Such as inputs, videos, etc.). If you need a special embedded flow structure, you will have to use an HTML scene with the elements in them.
- states - The states to add to this view
- stateId - The id of the state to add. The state must have an embedded property (See Part 2)
Part 2: Embedded State Definition
Since we have indicated the state we want to embed let’s define it. In the case of the playlist example, the state we are embedding is a video state. Here is an example video state:
...
{
"playerSettings": {
"youtubeId": "pU9Q6oiQNd0",
"controls": {
"type": "standard"
}
},
"section": {
"classes": "child-video-state-1"
},
"onVideoReady": [
{
"eventName": "animateElement",
"args": {
"element": ".video-state-container",
"animationClasses": "show"
}
}
],
"name": "Child Video Scene 1",
"url": "/child-video-state-1",
"type": "video",
"id": "child-video-state-1"
}
...
Above, the state can’t be embedded, due the fact that there is no
way the iVXjs knows that the video state can be embedded. To change this,
you will need to add a property called embedded
to the state.
- embedded - indicates this state can be embedded. If this property is found on a state, the state can’t have any embedded views.
So, we will need to update the above state definition with the property:
...
{
"playerSettings": {
"youtubeId": "pU9Q6oiQNd0",
"controls": {
"type": "standard"
}
},
"section": {
"classes": "child-video-state-1"
},
"onVideoReady": [
{
"eventName": "animateElement",
"args": {
"element": ".video-state-container",
"animationClasses": "show"
}
}
],
"name": "Child Video Scene 1",
"url": "/child-video-state-1",
"type": "video",
"id": "child-video-state-1",
"embedded" : true
}
...
Part 3: Setting up navigation in our playlist
We now have a child video state and a parent state that we embedded the video in. We will now discuss how to navigate to it.
Step 1: Adding the link to the playlist
In the partent navigation state, we will need to add a link that points to is child video state. To do this we will add a link definition to the links collection:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
"id": "parent-navigation-state",
"name": "Parent Menu Scene",
"url": "/parent-navigation-state",
"type": "navigation",
"section": {
"classes": "parent-navigation-state"
},
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1"
}
]
}
],
"onLinksReady": [
{
"eventName": "animateElement",
"args": {
"element": ".navigation-state-container",
"animationClasses": "show"
}
}
],
"links": [{
"id" : "link-1",
"label" : "Video 1",
"route" : "parent-navigation-state.child-video-state"
}]
}
{},
{}
]
}
As you see, the link uses the new route
property to point to its child. So when
the link is clicked the link will go its child video state.
Step 2: Add navigation to the child state
When the child video ends, let’s say it returns to the parent so the video hides. (We will add more videos later). Normally, you would add a “next” to the state to do navigation:
...
{
"playerSettings": {
"youtubeId": "pU9Q6oiQNd0",
"controls": {
"type": "standard"
}
},
"section": {
"classes": "child-video-state-1"
},
"onVideoReady": [
{
"eventName": "animateElement",
"args": {
"element": ".video-state-container",
"animationClasses": "show"
}
}
],
"next" : [{
"route" : "parent-navigation-state"
}],
"name": "Child Video Scene 1",
"url": "/child-video-state-1",
"type": "video",
"id": "child-video-state-1",
"embedded" : true
}
...
But, with embedded views, the Parent state actually indicates flow and navigation. The child’s next collection is ignored. So, we will now add the next to the state in the embedded view:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
...
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1",
"next": [
{
"route": "parent-navigation-state"
}
]
}
]
}
],
...
}
{},
{}
]
}
So, this indicates that the user wants the child video state to navigate to the
parent navigation state (the playlist). Though this works, a more flexible solution
is to change the route to use the ^
symbol which indicates that you want to go back to
the parent:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
...
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1",
"next": [
{
"route": "^"
}
]
}
]
}
],
...
}
{},
{}
]
}
Part 3: Adding more states:
This playlist is kind of boring since there is only one state. Let’s add more videos to the embedded view.
Let’s assume we have these three video states defined somewhere, lets add them to the embedded views.
We will repeat the steps in Part 2 and add them to the parent-navigation-state:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
"id": "parent-navigation-state",
"name": "Parent Menu Scene",
"url": "/parent-navigation-state",
"type": "navigation",
"section": {
"classes": "parent-navigation-state"
},
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1",
"next" : [{
"route" : "^"
}]
},
{
"stateId": "child-video-state-2",
"next" : [{
"route" : "^"
}]
},
{
"stateId": "child-video-state-3",
"next" : [{
"route" : "^"
}]
}
]
}
],
"onLinksReady": [
{
"eventName": "animateElement",
"args": {
"element": ".navigation-state-container",
"animationClasses": "show"
}
}
],
"links": [{
"id" : "link-1",
"label" : "Video 1",
"route" : "parent-navigation-state.child-video-state"
},
{
"id" : "link-2",
"label" : "Video 2",
"route" : "parent-navigation-state.child-video-state"
},
{
"id" : "link-3",
"label" : "Video 3",
"route" : "parent-navigation-state.child-video-state"
}]
}
]
}
This might be annoying for the user to always have to click on the video once it plays
to pick the video. So, let’s make each video go to the next video in the list after it plays.
To do this we will update the navigation for each state in the view to point to. To do this, we
will still use the ^
indicator but now it will add a second state that points to its child: ^.child-state-id
.
So we will change the above example to this:
{
"defaultState": [
{
"stateId": "parent-navigation-state"
}
],
"states" : [{
"id": "parent-navigation-state",
"name": "Parent Menu Scene",
"url": "/parent-navigation-state",
"type": "navigation",
"section": {
"classes": "parent-navigation-state"
},
"embeddedViews": [
{
"id": "playlist-content",
"name": "Playlist Content",
"type": "custom",
"classes": "basic",
"appendTo": "footer",
"states": [
{
"stateId": "child-video-state-1",
"next" : [{
"route" : "^.child-video-state-2"
}]
},
{
"stateId": "child-video-state-2",
"next" : [{
"route" : "^.child-video-state-3"
}]
},
{
"stateId": "child-video-state-3",
"next" : [{
"route" : "^"
}]
}
]
}
],
"onLinksReady": [
{
"eventName": "animateElement",
"args": {
"element": ".navigation-state-container",
"animationClasses": "show"
}
}
],
"links": [{
"id" : "link-1",
"label" : "Video 1",
"route" : "parent-navigation-state.child-video-state"
},
{
"id" : "link-2",
"label" : "Video 2",
"route" : "parent-navigation-state.child-video-state"
},
{
"id" : "link-3",
"label" : "Video 3",
"route" : "parent-navigation-state.child-video-state"
}]
}
]
}
Conclusion
Above is a very simple example to get you started. But, there are many more ways the embedded view can be used. Check out the embedded view example to see more examples of each state using embedded flows including the above tutorial with other states.


Hello, world!
First name:
Last name:
Work days:
PTO days:
Holidays days:
Hours Worked:
Hours Billable:
TPS:
Date
Task
Comment
Time
Status
Billable
Non-Billable


Documentation Artifacts¶
Read the Docs can build the documentation in alternative formats (epub, pdf,
zipped html) and shows download links to these in the versions menu. The Doctr
Versions Menu also supports such “Downloads” links: the
doctr-versions-menu utility looks for Download links in a
file _downloads
in every subfolder of gh-pages
.
This _downloads
file should be generated as part of building documentation, in
the .travis.yml
file: Travis should build all binary documentation
artifacts (epub/pdf/zip), upload them to an external provider, and write the
appropriate labels and links to the _downloads
file (e.g. in
docs/_build/html/_downloads
).
If building the documentation artifacts on Travis is too complicated, you could
also create them on your local workstation as part of the release process,
upload them manually (e.g. to your project’s Github Releases page), and have
Travis only write the (anticipated) links to the _downloads
file. In any
case, you should not add documentation artifacts to your gh-pages
branch: Git is not good at keeping large binary objects; you will blow up the
size of your repository.
Building artifacts¶
As an example for how build documentation, see the doctr_version_menu
package’s doctr_build.sh
script (which is sourced from .travis.yml
):
The following excerpt handles building the artifacts, after the main html
documentation has already been built in docs/_build/html
.
mkdir docs/_build/artifacts
echo "### [zip]"
zip-folder --debug -a -o "docs/_build/artifacts/doctr_versions_menu-$TRAVIS_TAG.zip" docs/_build/html
echo "### [pdf]"
tox -e docs -- -b latex _build/latex
tox -e run-cmd -- python docs/build_pdf.py docs/_build/latex/*.tex
echo "finished latex compilation"
mv docs/_build/latex/*.pdf "docs/_build/artifacts/doctr_versions_menu-$TRAVIS_TAG.pdf"
echo "### [epub]"
tox -e docs -- -b epub _build/epub
mv docs/_build/epub/*.epub "docs/_build/artifacts/doctr_versions_menu-$TRAVIS_TAG.epub"
Obviously, the above depends on the specifics of the .tox.
file, and a
docs/build_pdf.py
script. The zip artifact is created using zip-folder
from the
zip-files package.
LaTeX on Travis¶
Building the pdf artifact will require installing LaTeX (texlive) on Travis.
The doctr_versions_menu
package provides an example how to do this.
Consider the following excerpt from .travis.yml
:
install:
# any failure stops the build
- set -e
- export PATH=/tmp/texlive/bin/x86_64-linux:$PATH
- travis_wait source .travis/texlive/texlive_install.sh
- pip install tox
- pip freeze
- printenv
cache:
directories:
- /tmp/texlive
- $HOME/.texlive
This installs texlive via the support scripts in .travis/texlive
. Due to the
use of caching, the installation only takes significant time on the first
Travis run of a given branch.
Uploading artifacts¶
The doctr_build.sh
script also gives an example on how to upload the
artifacts to an external service. Future releases of doctr_versions_menu
may include tools to simplify uploading documentation artifacts to third-party
providers.
Uploading to Bintray¶
Bintray has a generous free account for open source project. Create an account there, and set up a “repo” and “package” mirroring the names of the Github project.
Uploading to Bintray requires to set the BINTRAY_USER
, BINTRAY_SUBJECT
,
BINTRAY_REPO
, BINTRAY_PACKAGE
and BINTRAY_TOKEN
environment
variables in .travis.yml
.
In the doctr_build.sh
script, you can verify that these environment variables
are set correctly:
if [ ! -z "$TRAVIS" ] && [ "$TRAVIS_EVENT_TYPE" != "pull_request" ]; then
echo "## Check bintray status"
# We *always* do this check: we don't just want to find out about
# authentication errors when making a release
if [ -z "$BINTRAY_USER" ]; then
echo "BINTRAY_USER must be set" && sync && exit 1
fi
if [ -z "$BINTRAY_TOKEN" ]; then
echo "BINTRAY_TOKEN must be set" && sync && exit 1
fi
if [ -z "$BINTRAY_PACKAGE" ]; then
echo "BINTRAY_PACKAGE must be set" && sync && exit 1
fi
url="https://api.bintray.com/repos/$BINTRAY_SUBJECT/$BINTRAY_REPO/packages"
response=$(curl --user "$BINTRAY_USER:$BINTRAY_TOKEN" "$url")
if [ -z "${response##*$BINTRAY_PACKAGE*}" ]; then
echo "Bintray OK: $url -> $response"
else
echo "Error: Cannot find $BINTRAY_PACKAGE in $url: $response" && sync && exit 1
fi
fi
Then only when deploying the documentation of a tagged release, and assuming
the documentation artifacts have been generated in docs/_build/artifacts
,
the following code uploads them:
echo "Upload artifacts to bintray"
for filename in docs/_build/artifacts/*; do
url="https://api.bintray.com/content/$BINTRAY_SUBJECT/$BINTRAY_REPO/$BINTRAY_PACKAGE/$TRAVIS_TAG/$(basename $filename)"
echo "Uploading $filename artifact to $url"
response=$(curl --upload-file "$filename" --user "$BINTRAY_USER:$BINTRAY_TOKEN" "$url")
if [ -z "${response##*success*}" ]; then
case "$filename" in
*.zip) filelabel="html";;
*.epub) filelabel="epub";;
*.pdf) filelabel="pdf";;
*) echo "Unknown type $filename";;
esac
echo "Uploaded $filename: $response"
echo "[$filelabel]: https://dl.bintray.com/$BINTRAY_SUBJECT/$BINTRAY_REPO/$(basename $filename)" >> docs/_build/html/_downloads
else
echo "Error: Failed to upload $filename: $response" && sync && exit 1
fi
done
echo "Publishing release on bintray"
url="https://api.bintray.com/content/$BINTRAY_SUBJECT/$BINTRAY_REPO/$BINTRAY_PACKAGE/$TRAVIS_TAG/publish"
response=$(curl --request POST --user "$BINTRAY_USER:$BINTRAY_TOKEN" "$url")
if [ -z "${response##*files*}" ]; then
echo "Finished bintray release : $response"
else
echo "Error: Failed publish release on bintray: $response" && sync && exit 1
fi
Uploading to Github Releases¶
Attaching files to a Github release requires a GITHUB_TOKEN
for
authorization in the .travis.yml
file.
Note that such a token has very broad authorization to all repositories for a particular user account. If you use such a token, you might as well use it also for deploying Doctr (in lieu of the more fine-tuned deploy key).
In doctr_build.sh
, the GITHUB_TOKEN
can be verified as
if [ ! -z "$TRAVIS" ] && [ "$TRAVIS_EVENT_TYPE" != "pull_request" ]; then
echo "## Check GITHUB_TOKEN status"
# We *always* do this check: we don't just want to find out about
# authentication errors when making a release
if [ -z "$GITHUB_TOKEN" ]; then
echo "GITHIB_TOKEN must be set" && sync && exit 1
fi
GH_AUTH_HEADER="Authorization: token $GITHUB_TOKEN"
url="https://api.github.com/repos/$TRAVIS_REPO_SLUG"
curl -o /dev/null -sH "$AUTH" "$url" || { echo "Error: Invalid repo, token or network issue!"; sync; exit 1; }
fi
Then, for tagged releases where the documentation artifacts have been built in
docs/_build/artifacts
, the files could be uploaded with:
url="https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases"
echo "Make release from tag $TRAVIS_TAG: $url"
API_JSON=$(printf '{"tag_name": "%s","target_commitish": "master","name": "%s","body": "Release %s","draft": false,"prerelease": false}' "$TRAVIS_TAG" "$TRAVIS_TAG" "$TRAVIS_TAG")
echo "submitted data = $API_JSON"
response=$(curl --data "$API_JSON" --header "$GH_AUTH_HEADER" "$url")
echo "Release response: $response"
url="https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases/tags/$TRAVIS_TAG"
echo "verify $url"
response=$(curl --silent --header "$GH_AUTH_HEADER" "$url")
echo "$response"
eval $(echo "$response" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=')
echo "id = $id"
for filename in docs/_build/artifacts/*; do
url="https://uploads.github.com/repos/$TRAVIS_REPO_SLUG/releases/$id/assets?name=$(basename $filename)"
echo "Uploading $filename as release asset to $url"
response=$(curl "$GITHUB_OAUTH_BASIC" --data-binary @"$filename" --header "$GH_AUTH_HEADER" --header "Content-Type: application/octet-stream" "$url")
echo "Uploaded $filename: $response"
case "$filename" in
*.zip) filelabel="html";;
*.epub) filelabel="epub";;
*.pdf) filelabel="pdf";;
*) echo "Unknown type $filename";;
esac
echo $response | python -c 'import json,sys;print(json.load(sys.stdin)["browser_download_url"])' | sed "s/^/[$filelabel]: /" >> docs/_build/html/_downloads
done


| Getting started … |
Install & ExploreInstallation instructions to get niqlow going on your system(s).
Browse and run test code, examples, and replications |
Tutorials
|
OODPRead the latest draft of the OODP academic paper that provides a niqlow-based definition of structural estimation and the existing literature. |
| niqlow has 3 components (separate but integrated) |
|
| | |
| Derived Dynamic Programs | Object Oriented Objective Optimization in Ox | CF's Ox Inteface to the MPI Library |
| Stages of using niqlow … |
DESIGN | SOLVE | ESTIMATE |
Step 1. Design Your DP model
|
Step 2. Solve the model
- Use Methods to solve Bellman's equation for your model and compute choice probabilities.
- Create Data outcomes for the solution, either simulated data or (averaged) predictions.
|
Step 3. Find parameter values
- Use the integrated FiveO tools to maximize an objective or solve a system of
equations that depends on the solved DP model.
- See how to maximize a function in Get Started with FiveO
- Select among standard algorithms
- Use objectives that are integrated with DP models and external data or create your own.
|
Required DP Components
- Choose among derived Bellman classes to base your template for each point \(\theta\) of the state space.
- Choose key/required features of \(\theta\):
- Code Utility()
- Set the discount factor δ
Further customizations
When ready create the spaces
- As your code executes the model is built until you tell DDP to
CreateSpaces
- DDP will built your state space \(\Theta\), the feasible action spaces \(A(\theta)\) and the space of problems (group
space \(\Gamma\)).
- Storage is economized by limiting storage at each point \(\theta\) and relying heavily on shared (static) variables
- Now your code can solve and use the model …
|
Choose & apply a solution method.
- Solve for discrete choice probabilities (CCPs) under different assumptions or solve for reservation values of continuous
random shocks.
- Apply the solution to your model using its Solve() function.
- Let the method handle storage and computation efficiently accounting for your clock and other details.
- Create more than one method object to compare their performance
Create outcomes for the solved model
- Create a Panel of outcomes so you can Simulate outcomes from the model or read in external data to compute likelihood .
- Create a PanelPrediction to Predict expected outcomes (averaged over all random elements) and read in
external moments to compare them to.
- Send a solution method to the data object: when any prediction or econometric calculation is needed the model will be resolved (a nested algorithm).
Map model outcomes to data
- Map components (actions, state variables) to external data
- Treat unmapped components as missing.
- Add auxiliary outcomes to the data to augment incomplete information.
- Automatically integrate over "random effects" when computing econometrics objectives and the add values across
fixed effects (observed groups)
|
Parameterize your DP model
- Make parameters of Utility and state transitions objects of a Parameter or ParameterBlock
class.
-
- Use built-in types of parameters to constrain them to open intervals in one or more related dimensions.
- Control which parameters are free to vary or should be held fixed by solution algorithms.
Create a criterion (objective)
- Use an automatically generated econometric objective already available that depend on external data.
- Create a system of equations to find Equilibrium prices.
- Add DP parameters to the objective/system so they are associated with it.
- Use built-in features to handle BHHH iteration
- Choose among GMM weighting options
Optimize your objective.
- Apply an Algorithm(s) using its Iterate() function.
- Apply different methods, monitor and checkpoint progress
- Rest assured: the DP model is re-solved each time the criterion is re-evaluated because you sent the solution method to the data objects.
- Turn DP iteration on and off in order to carry out Two-Stage Estimation.
|
| When your model … |
Becomes Big
- Use CFMPI package to work in parallel on a Linux cluster
- Let niqlow handle parallel processing in optimization and model solving with no recoding
- Or use high levels tools provided to create your own Client/Server and Peer-to-Peer tasks
- Or use the low-level interfaces with the MPI library to customize.
| Is Estimated
- Use the estimated/equilibrium parameters to conduct policy experiments:
- Change a parameter value at the top level of your code and be assured its propagates down to the DP solution and
back up through predictions or simulated outcomes.
- Create your own derived class to change the clock, expand the state space, allow more choice re-using the existing code and
changing only what is necessary
|
Is a Contribution
- Add new elements of your model to the niqlow source code on your computer then request your changes be implemented (pulled) into niqlow.
- Create test or demonstration code for your new components or for core parts of niqlow.
- Post your model code as a github repository to share it with others.
- When your paper is published request your code be added to the replications.
|
| The fine print … |
|
|
|


|
Groovy JDK |
| Method Summary | |
|---|---|
boolean
|
asBoolean()
Coerce an Object array to a boolean value. |
Object
|
asType(Class clazz)
Converts the given array to either a List, Set, or SortedSet. |
Map
|
collectEntries(Map collector, Closure transform)
Iterates through this array transforming each item using the transform closure
and returning a map of the resulting transformed entries.
|
Map
|
collectEntries(Map collector)
A variant of collectEntries using the identity closure as the transform. |
Map
|
collectEntries(Closure transform)
Iterates through this array transforming each item using the transform closure
and returning a map of the resulting transformed entries.
|
Map
|
collectEntries()
A variant of collectEntries using the identity closure as the transform. |
List
|
collectMany(Closure projection)
Projects each item from a source array to a collection and concatenates (flattens) the resulting collections into a single list. |
boolean
|
contains(Object value)
Checks whether the array contains the given value. |
Number
|
count(Object value)
Counts the number of occurrences of the given value inside this array. |
Number
|
count(Closure closure)
Counts the number of occurrences which satisfy the given closure from inside this array. |
Map
|
countBy(Closure closure)
Sorts all array members into groups determined by the supplied mapping closure and counts the group size. |
Object[]
|
drop(int num)
Drops the given number of elements from the head of this array if they are available. |
Object[]
|
dropWhile(Closure condition)
Create a suffix of the given array by dropping as many elements as possible from the front of the original array such that calling the given closure condition evaluates to true when passed each of the dropped elements. |
boolean
|
equals(List right)
Determines if the contents of this array are equal to the contents of the given list, in the same order. |
Object
|
find(Closure condition)
Finds the first element in the array that matches the given closure condition. |
Collection
|
findAll(Closure condition)
Finds all elements of the array matching the given Closure condition. |
Collection
|
findAll()
Finds the elements of the array matching the IDENTITY Closure (i.e. matching Groovy truth). |
Object
|
first()
Returns the first item from the array. |
Collection
|
flatten()
Flatten an array. |
List
|
getAt(Collection indices)
Select a List of items from an Object array using a Collection to identify the indices to be selected. |
List
|
getAt(Range range)
Support the range subscript operator for an Array |
List
|
getAt(IntRange range)
|
List
|
getAt(EmptyRange range)
|
List
|
getAt(ObjectRange range)
|
Collection
|
grep(Object filter)
Iterates over the array of items and returns a collection of items that match the given filter - calling the Object#isCase
method used by switch statements.
|
Collection
|
grep()
Iterates over the array returning each element that matches using the IDENTITY Closure as a filter - effectively returning all elements which satisfy Groovy truth. |
Object
|
head()
Returns the first item from the Object array. |
Object
|
inject(Closure closure)
Iterates through the given array as with inject(Object[],initialValue,closure), but using the first element of the array as the initialValue, and then iterating the remaining elements of the array. |
Object
|
inject(Object initialValue, Closure closure)
Iterates through the given array, passing in the initial value to the closure along with the first item. |
Iterator
|
iterator()
Attempts to create an Iterator for the given object by first converting it to a Collection. |
String
|
join(String separator)
Concatenates the toString() representation of each
items in this array, with the given String as a separator between each
item.
|
Object
|
last()
Returns the last item from the array. |
Object
|
max()
Adds max() method to Object arrays. |
Object
|
max(Closure closure)
Selects the maximum value found from the Object array using the closure to determine the correct ordering. |
Object
|
max(Comparator comparator)
Selects the maximum value found from the Object array using the given comparator. |
Object
|
min()
Adds min() method to Object arrays. |
Object
|
min(Comparator comparator)
Selects the minimum value found from the Object array using the given comparator. |
Object
|
min(Closure closure)
Selects the minimum value found from the Object array using the closure to determine the correct ordering. |
Object[]
|
minus(Iterable removeMe)
Create an array composed of the elements of the first array minus the elements of the given Iterable. |
Object[]
|
minus(Object[] removeMe)
Create an array composed of the elements of the first array minus the elements of the given array. |
Object[]
|
minus(Object removeMe)
Create a new object array composed of the elements of the first array minus the element to remove. |
Object[]
|
plus(Object[] right)
Create an array as a union of two arrays. |
Object[]
|
plus(Object right)
Create an array containing elements from an original array plus an additional appended element. |
Object[]
|
plus(Collection right)
Create an array containing elements from an original array plus those from a Collection. |
Object[]
|
plus(Iterable right)
Create an array containing elements from an original array plus those from an Iterable. |
Object[]
|
reverse()
Creates a new array containing items which are the same as this array but in reverse order. |
Object[]
|
reverse(boolean mutate)
Reverse the items in an array. |
Object[]
|
reverseEach(Closure closure)
Iterate over each element of the array in the reverse order. |
int
|
size()
Provide the standard Groovy size() method for an array.
|
Object[]
|
sort()
Modifies this array so that its elements are in sorted order. |
Object[]
|
sort(boolean mutate)
Sorts the given array into sorted order. |
Object[]
|
sort(Comparator comparator)
Sorts the given array into sorted order using the given comparator. |
Object[]
|
sort(boolean mutate, Comparator comparator)
Modifies this array so that its elements are in sorted order as determined by the given comparator. |
Object[]
|
sort(Closure closure)
Sorts the elements from this array into a newly created array using the Closure to determine the correct ordering. |
Object[]
|
sort(boolean mutate, Closure closure)
Modifies this array so that its elements are in sorted order using the Closure to determine the correct ordering. |
Object
|
sum()
Sums the items in an array. |
Object
|
sum(Object initialValue)
Sums the items in an array, adding the result to some initial value. |
Object
|
sum(Closure closure)
Sums the result of apply a closure to each item of an array. |
Object
|
sum(Object initialValue, Closure closure)
Sums the result of applying a closure to each item of an array to some initial value. |
Object[]
|
tail()
Returns the items from the Object array excluding the first item. |
Object[]
|
take(int num)
Returns the first num elements from the head of this array.
|
Object[]
|
takeWhile(Closure condition)
Returns the longest prefix of this array where each element passed to the given closure evaluates to true. |
String
|
toArrayString()
Returns the string representation of the given array. |
List
|
toList()
Allows conversion of arrays into a mutable List. |
SpreadMap
|
toSpreadMap()
Creates a spreadable map from this array. |
String
|
toString()
Returns the string representation of this array's contents. |
| Method Detail |
|---|
public boolean asBoolean()
public Object asType(Class clazz)
clazz
- the desired class.public Map collectEntries(Map collector, Closure transform)
transform
closure
and returning a map of the resulting transformed entries.
def letters = "abc" def nums = [0, 1, 2] as Integer[] // collect letters with index assert nums.collectEntries( [:] ) { index -> [index, letters[index]] } == [0:'a', 1:'b', 2:'c'] assert nums.collectEntries( [4:'d'] ) { index -> [(index+1): letters[index]] } == [1:'a', 2:'b', 3:'c', 4:'d']
collector
- the Map into which the transformed entries are put.transform
- the closure used for transforming, which has an item from self as the parameter and
should return a Map.Entry, a Map or a two-element list containing the resulting key and value.public Map collectEntries(Map collector)
collector
- the Map into which the transformed entries are put.public Map collectEntries(Closure transform)
transform
closure
and returning a map of the resulting transformed entries.
def letters = "abc" def nums = [0, 1, 2] as Integer[] // collect letters with index using list style assert nums.collectEntries { index -> [index, letters[index]] } == [0:'a', 1:'b', 2:'c'] // collect letters with index using map style assert nums.collectEntries { index -> [(index): letters[index]] } == [0:'a', 1:'b', 2:'c']
transform
- the closure used for transforming, which has an item from self as the parameter and
should return a Map.Entry, a Map or a two-element list containing the resulting key and value.public Map collectEntries()
public List collectMany(Closure projection)
def nums = [1, 2, 3, 4, 5, 6] as Object[] def squaresAndCubesOfEvens = nums.collectMany{ it % 2 ? [] : [it**2, it**3] } assert squaresAndCubesOfEvens == [4, 8, 16, 64, 36, 216]
projection
- a projecting Closure returning a collection of items.public boolean contains(Object value)
value
- the value being searched for.public Number count(Object value)
compareTo(value) == 0
or equals(value)
).value
- the value being searched for.public Number count(Closure closure)
closure
- a closure condition.public Map countBy(Closure closure)
Example usage:
assert ([1,2,2,2,3] as Object[]).countBy{ it % 2 } == [1:2, 0:3]
closure
- a closure mapping items to the frequency keys.public Object[] drop(int num)
String[] strings = [ 'a', 'b', 'c' ] assert strings.drop( 0 ) == [ 'a', 'b', 'c' ] as String[] assert strings.drop( 2 ) == [ 'c' ] as String[] assert strings.drop( 5 ) == [] as String[]
num
- the number of elements to drop from this array.num
ones, or else the empty array, if this
array has less than num
elements.public Object[] dropWhile(Closure condition)
def nums = [ 1, 3, 2 ] as Integer[] assert nums.dropWhile{ it <= 3 } == [ ] as Integer[] assert nums.dropWhile{ it < 3 } == [ 3, 2 ] as Integer[] assert nums.dropWhile{ it != 2 } == [ 2 ] as Integer[] assert nums.dropWhile{ it == 0 } == [ 1, 3, 2 ] as Integer[]
condition
- the closure that must evaluate to true to
continue dropping elements.public boolean equals(List right)
false
if either collection is null
.right
- the List being compared.public Object find(Closure condition)
def list = [1,2,3] as Integer[] assert 2 == list.find { it > 1 } assert null == list.find { it > 5 }
condition
- a closure condition.public Collection findAll(Closure condition)
def items = [1,2,3,4] as Integer[] assert [2,4] == items.findAll { it % 2 == 0 }
condition
- a closure condition.public Collection findAll()
Example:
def items = [1, 2, 0, false, true, '', 'foo', [], [4, 5], null] as Object[] assert items.findAll() == [1, 2, true, 'foo', [4, 5]]
public Object first()
def array = [3, 4, 2].toArray() assert array.first() == 3
public Collection flatten()
public List getAt(Collection indices)
indices
- a Collection of indices.public List getAt(Range range)
range
- a Range.public List getAt(IntRange range)
range
- an IntRange.public List getAt(EmptyRange range)
range
- an EmptyRange.public List getAt(ObjectRange range)
range
- an ObjectRange.public Collection grep(Object filter)
Object#isCase
method used by switch statements. This method can be used with different
kinds of filters like regular expressions, classes, ranges etc.
Example:
def list = ['a', 'b', 'aa', 'bc', 3, 4.5] as Object[] assert list.grep( ~/a+/ ) == ['a', 'aa'] assert list.grep( ~/../ ) == ['aa', 'bc'] assert list.grep( Number ) == [ 3, 4.5 ] assert list.grep{ it.toString().size() == 1 } == [ 'a', 'b', 3 ]
filter
- the filter to perform on each element of the array (using the Object#isCase method).public Collection grep()
Example:
def items = [1, 2, 0, false, true, '', 'foo', [], [4, 5], null] as Object[] assert items.grep() == [1, 2, true, 'foo', [4, 5]]
public Object head()
def array = [3, 4, 2].toArray() assert array.head() == 3
public Object inject(Closure closure)
closure
- a closure.public Object inject(Object initialValue, Closure closure)
initialValue
- some initial value.closure
- a closure.public Iterator iterator()
public String join(String separator)
toString()
representation of each
items in this array, with the given String as a separator between each
item.separator
- a String separator.public Object last()
def array = [3, 4, 2].toArray() assert array.last() == 2
public Object max()
public Object max(Closure closure)
closure
- a Closure used to determine the correct ordering.public Object max(Comparator comparator)
comparator
- a Comparator.public Object min()
public Object min(Comparator comparator)
comparator
- a Comparator.public Object min(Closure closure)
closure
- a Closure used to determine the correct ordering.public Object[] minus(Iterable removeMe)
removeMe
- a Collection of elements to remove.public Object[] minus(Object[] removeMe)
removeMe
- an array of elements to remove.public Object[] minus(Object removeMe)
removeMe
- an element to remove from the array.public Object[] plus(Object[] right)
Integer[] a = [1, 2, 3] Integer[] b = [4, 5, 6] assert a + b == [1, 2, 3, 4, 5, 6] as Integer[]
right
- the right Array.public Object[] plus(Object right)
Integer[] a = [1, 2, 3] Integer[] result = a + 4 assert result == [1, 2, 3, 4] as Integer[]
right
- the value to append.public Object[] plus(Collection right)
Integer[] a = [1, 2, 3] def additions = [7, 8] assert a + additions == [1, 2, 3, 7, 8] as Integer[]
right
- a Collection to be appended.public Object[] plus(Iterable right)
class AbcIterable implements Iterable{ Iterator iterator() { "abc".iterator() } } String[] letters = ['x', 'y', 'z'] def result = letters + new AbcIterable() assert result == ['x', 'y', 'z', 'a', 'b', 'c'] as String[] assert result.class.array
right
- an Iterable to be appended.public Object[] reverse()
public Object[] reverse(boolean mutate)
mutate
- true if the array itself should be reversed in place and returned, false if a new array should be created.public Object[] reverseEach(Closure closure)
closure
- a closure to which each item is passed.public int size()
size()
method for an array.public Object[] sort()
public Object[] sort(boolean mutate)
def orig = ["hello","hi","Hey"] as String[] def sorted = orig.sort(false) assert orig == ["hello","hi","Hey"] as String[] assert sorted == ["Hey","hello","hi"] as String[] orig.sort(true) assert orig == ["Hey","hello","hi"] as String[]
mutate
- false will always cause a new array to be created, true will mutate the array in place.public Object[] sort(Comparator comparator)
comparator
- a Comparator used for the comparison.public Object[] sort(boolean mutate, Comparator comparator)
def orig = ["hello","hi","Hey"] as String[] def sorted = orig.sort(false, String.CASE_INSENSITIVE_ORDER) assert orig == ["hello","hi","Hey"] as String[] assert sorted == ["hello","Hey","hi"] as String[] orig.sort(true, String.CASE_INSENSITIVE_ORDER) assert orig == ["hello","Hey","hi"] as String[]
mutate
- false will always cause a new array to be created, true will mutate arrays in place.comparator
- a Comparator used for the comparison.public Object[] sort(Closure closure)
closure
- a Closure used to determine the correct ordering.public Object[] sort(boolean mutate, Closure closure)
def orig = ["hello","hi","Hey"] as String[] def sorted = orig.sort(false) { it.size() } assert orig == ["hello","hi","Hey"] as String[] assert sorted == ["hi","Hey","hello"] as String[] orig.sort(true) { it.size() } assert orig == ["hi","Hey","hello"] as String[]
mutate
- false will always cause a new array to be created, true will mutate arrays in place.closure
- a Closure used to determine the correct ordering.public Object sum()
public Object sum(Object initialValue)
initialValue
- the items in the array will be summed to this initial value.public Object sum(Closure closure)
array.sum(closure)
is equivalent to:
array.collect(closure).sum()
.closure
- a single parameter closure that returns a numeric value..public Object sum(Object initialValue, Closure closure)
array.sum(initVal, closure)
is equivalent to:
array.collect(closure).sum(initVal)
.closure
- a single parameter closure that returns a numeric value..initialValue
- the closure results will be summed to this initial value.public Object[] tail()
String[] strings = ["a", "b", "c"] def result = strings.tail() assert strings.class.componentType == String
public Object[] take(int num)
num
elements from the head of this array.
String[] strings = [ 'a', 'b', 'c' ] assert strings.take( 0 ) == [] as String[] assert strings.take( 2 ) == [ 'a', 'b' ] as String[] assert strings.take( 5 ) == [ 'a', 'b', 'c' ] as String[]
num
- the number of elements to take from this array.num
elements of this array,
or else the whole array if it has less then num
elements.public Object[] takeWhile(Closure condition)
def nums = [ 1, 3, 2 ] as Integer[] assert nums.takeWhile{ it < 1 } == [] as Integer[] assert nums.takeWhile{ it < 3 } == [ 1 ] as Integer[] assert nums.takeWhile{ it < 4 } == [ 1, 3, 2 ] as Integer[]
condition
- the closure that must evaluate to true to
continue taking elements.public String toArrayString()
{1, 2, "a"}
.public List toList()
public SpreadMap toSpreadMap()
public String toString()
|
Groovy JDK |


Images
Images are specified with <IMG> tags which have the
following attributes:
- src: url specifying the location of the image.
- border: border width in pixels (black).
- width: element width.
- height: element height.
- vspace: margins above and below the element.
- hspace : margins to the left and right of the
element.
For example:


| Opcode / Instruction | Op/En | 64/32 bit Mode Support | CPUID Feature Flag | Description |
|---|---|---|---|---|
| F2 0F AE /6 UMWAIT r32, <edx>, <eax> | A | V/V | WAITPKG | A hint that allows the processor to stop instruction execution and enter an implementation-dependent optimized state until occurrence of a class of events. |
1. The Mod field of the ModR/M byte must have value 11B.
| Op/En | Tuple | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
|---|---|---|---|---|---|
| A | NA | ModRM:r/m (r) | NA | NA | NA |
UMWAIT instructs the processor to enter an implementation-dependent optimized state while monitoring a range of addresses. The optimized state may be either a light-weight power/performance optimized state or an improved power/performance optimized state. The selection between the two states is governed by the explicit input register bit[0] source operand.
UMWAIT is available when CPUID.7.0:ECX.WAITPKG[bit 5] is enumerated as 1. UMWAIT may be executed at any privilege level. This instruction’s operation is the same in non-64-bit modes and in 64-bit mode.
The input register contains information such as the preferred optimized state the processor should enter as described in the following table. Bits other than bit 0 are reserved and will result in #GP if nonzero.
| Bit Value | State Name | Wakeup Time | Power Savings | Other Benefits |
|---|---|---|---|---|
| bit[0] = 0 | C0.2 | Slower | Larger | Improves performance of the other SMT thread(s) on the same core. |
| bit[0] = 1 | C0.1 | Faster | Smaller | NA |
| bits[31:1] | NA | NA | NA | Reserved |
The instruction wakes up when the time-stamp counter reaches or exceeds the implicit EDX:EAX 64-bit input value (if the monitoring hardware did not trigger beforehand).
Prior to executing the UMWAIT instruction, an operating system may specify the maximum delay it allows the processor to suspend its operation. It can do so by writing TSC-quanta value to the following 32bit MSR (IA32_UMWAIT_CONTROL at MSR index E1H):
If the processor that executed a UMWAIT instruction wakes due to the expiration of the operating system timelimit, the instructions sets RFLAGS.CF; otherwise, that flag is cleared.
The UMWAIT instruction causes a transactional abort when used inside a transactional region.
The UMWAIT instruction operates with the UMONITOR instruction. The two instructions allow the definition of an address at which to wait (UMONITOR) and an implementation-dependent optimized operation to perform while waiting (UMWAIT). The execution of UMWAIT is a hint to the processor that it can enter an implementation-dependent-optimized state while waiting for an event or a store operation to the address range armed by UMONITOR. The UMWAIT instruction will not wait (will not enter an implementation-dependent optimized state) if any of the
following instructions were executed before UMWAIT and after the most recent execution of UMONITOR: IRET, MONITOR, SYSEXIT, SYSRET, and far RET (the last if it is changing CPL).
The following additional events cause the processor to exit the implementation-dependent optimized state: a store to the address range armed by the UMONITOR instruction, an NMI or SMI, a debug exception, a machine check exception, the BINIT# signal, the INIT# signal, and the RESET# signal. Other implementation-dependent events may also cause the processor to exit the implementation-dependent optimized state.
In addition, an external interrupt causes the processor to exit the implementation-dependent optimized state regardless of whether maskable-interrupts are inhibited (EFLAGS.IF =0).
Following exit from the implementation-dependent-optimized state, control passes to the instruction after the UMWAIT instruction. A pending interrupt that is not masked (including an NMI or an SMI) may be delivered before execution of that instruction.
Unlike the HLT instruction, the UMWAIT instruction does not restart at the UMWAIT instruction following the handling of an SMI.
If the preceding UMONITOR instruction did not successfully arm an address range or if UMONITOR was not executed prior to executing UMWAIT and following the most recent execution of the legacy MONITOR instruction (UMWAIT does not interoperate with MONITOR), then the processor will not enter an optimized state. Execution will continue to the instruction following UMWAIT.
A store to the address range armed by the UMONITOR instruction will cause the processor to exit UMWAIT if either the store was originated by other processor agents or the store was originated by a non-processor agent.
os_deadline ← TSC+(IA32_MWAIT_CONTROL[31:2]<<2) instr_deadline ← UINT64(EDX:EAX) IF os_deadline < instr_deadline: deadline ← os_deadline using_os_deadline ← 1 ELSE: deadline ← instr_deadline using_os_deadline ← 0 WHILE monitor hardware armed AND TSC < deadline: implementation_dependent_optimized_state(Source register, deadline, IA32_UMWAIT_CONTROL[0] ) IF using_os_deadline AND TSC > deadline: RFLAGS.CF ← 1 ELSE: RFLAGS.CF ← 0 RFLAGS.AF,PF,SF,ZF,OF ← 0
UMWAIT uint8_t _umwait(uint32_t control, uint64_t counter);
None
#GP(0) If src[31:1] != 0.
If CR4.TSD = 1 and CPL != 0.
#UD If CPUID.7.0:ECX.WAITPKG[bit 5]=0.


@@include('./header.html')
Sport Scope 30'
- Automatic Camera Controls
- 30 ft. Extended Height
- 10 yr. Frame Warranty
- Easy Set-up and Operation
- Everything Included
- HD Camera and 9" Monitor
- Choice of Tower Color
Made in the USA
Hudl ready
$300 off
your 30' endzone camera order!
$4,199
(Offer through March 31, 2016)
Learn More
@@include('./footer.html')


Jurgen Klopp is well liked within the footballing community. He is considered one of the most passionate Managers across the sport! It's not rare for him to celebrate a goal like a player would. There's no doubt he's the right man to lead to Liverpool to glory!
| Team and Country | Years Managed |
|---|---|
| Mainz 05, Germany | 7 years |
| Borussia Dortmund, Germany | 7 years |
| Liverpool FC, England | 1 1/2 years and counting! |


Digital artwork is one of my favorite things to do in my spare time. I love urban sketching and drawing pictures of local buildings and icons


Online PCA for multivariate and functional data using perturbation methods, low-rank incremental methods, and stochastic optimization methods.
| Version: | 1.3.1 |
| Depends: | R (≥ 3.0.2), RSpectra |
| Imports: | Rcpp (≥ 0.11.4), splines, stats |
| LinkingTo: | Rcpp, RcppArmadillo |
| Published: | 2016-09-22 |
| Author: | David Degras [aut, cre], Herve Cardot [ctb] |
| Maintainer: | David Degras <ddegrasv at gmail.com> |
| License: | GPL-3 |
| URL: | https://cran.r-project.org/package=onlinePCA |
| NeedsCompilation: | yes |
| Materials: | NEWS |
| CRAN checks: | onlinePCA results |
| Reference manual: | onlinePCA.pdf |
| Package source: | onlinePCA_1.3.1.tar.gz |
| Windows binaries: | r-devel: onlinePCA_1.3.1.zip, r-release: onlinePCA_1.3.1.zip, r-oldrel: onlinePCA_1.3.1.zip |
| OS X binaries: | r-release: onlinePCA_1.3.1.tgz, r-oldrel: onlinePCA_1.3.1.tgz |
| Old sources: | onlinePCA archive |
Please use the canonical form https://CRAN.R-project.org/package=onlinePCA to link to this page.


28 May 2015
The first paper of my PhD is finally out! Its full title is "Integrative modeling reveals the principles of multi-scale chromatin boundary formation in human nuclear organization" but in talks and posters I've been referring to the project as "Unravelling higher order chromatin organisation" (geddit?) or even "the ENCODE-ing of ..." (referencing ENCODE, of course).
[full post]
07 May 2015
Recently I discovered that some academic publishers will let you submit PDF figures right up until acceptance, where they then need to be in an "editable" format. Vector figures inside PDF containers are editable of course, but the author guidelines for your journal of choice may well say otherwise, instead offering a list of ancient and bewildering image formats which are deemed acceptable. It's baffling to me why a journal would prefer a pptx
PowerPoint file containing your figure than a modern open standard like SVG
(not a format without consistency issues, admittedly). So for this reason I needed to convert a bunch of PDF figures to EPS (encapsulated postscript) without too much manual effort.
[full post]
28 Apr 2015
With under two weeks to go to the 2015 UK general election, there's no better time to take stock of all the voter intention polls being published by the British media. The data has already been aggregated by UKpollingreport—a site I've used before for analysis of the Scottish independence referendum—and there's not much more to be said then is already widely known: it's likely no single party will win an outright majority and we'll be left with a coalition or minority government.
[full post]
13 Apr 2015
I'm creeping towards the tail-end of my PhD so it's probably time to dust off my CV and tidy it up. In the past I've written this document a few different ways, from LaTeX to a custom Inkscape document, but I've decided to move with the times and try something new: a markdown CV that compiles to both an HTML web version and well-formatted PDF.
[full post]
26 Aug 2014
Living in Edinburgh it's been hard to avoid the build-up to Scotland's referendum on independence. On September 18th 2014, less than a month away as I write this, people living in Scotland will go to the polls to answer the question: Should Scotland be an independent country?
[full post]
01 Jul 2014
Apparently an 80s commerical for the helmet manufacturer Bell bore the slogan:
"If you've got a $10 head, wear a $10 helmet". Nowadays it's a deeply-ingrained
and widely accepted idea among bikers that it's worth
spending a lot of money on your headgear. A top-of-the-line Arai can sell for
almost four figures, particularly if you want a nice
race rep
design, but what are you getting for your money and, in particular, is it
any safer than a helmet you pickup for a tenth of that price?
[full post]
21 Jun 2014
I think Wordpress is a great CMS and I'm reluctant to leave it behind. While
it doesn't have much hacker kudos, in my opinion (and undoubtedly many others)
Wordpress is a very usable and near-complete blogging
platform which doesn't leave much justification for reinventing the wheel. It also seems to have reached
a kind of critical mass where it's own "like" and "follow" features are
useful tools, with the latter a decent way of building an audience that
don't use RSS readers and aren't interested in the extra cruft that comes with twitter. In fact, my Wordpress blog currently has
more followers than my twitter account, and I suspect a higher CTR per
post. So with that in mind, why am I making the switch?
[full post]


{% extends "layout/main.html" %} {% block content %}
Are you sure you want to delete this post? This can't be undone.


Actress Lee Young Ae reveals her remote modern mansion in 'The Butlers'
by KayRosaActress Lee Young Ae presented viewers with a glimpse of her life in 'The Butlers'.
On the November 24th installment of the variety program, the cast members visited the home of Lee Young Ae. As the star of many hit dramas and films throughout the decades, Lee Young Ae last gained attention as a cameo in 'My ID Is Gangnam Beauty' last year.
Keeping a relatively low profile, Lee Young Ae appeared to lead a quiet family life with her husband and two children in Yangpyeong County. Her home was revealed to be a slick modern mansion with an expansive front yard, surrounded by the mountains.
During the show, Lee Young Ae shared a piece of her organic lifestyle, introducing her two children and her home-grown green onions.
In related news, Lee Young Ae will return to the big screen as the lead actress in the upcoming film 'Bring Me Home'.


I combine business strategy and emotional design to create authentic and meaningful experiences.
Apart from being a web developer and designer, I enjoy most of my time being outdoors. In the winter, I am an avid snowboarder and bonfire master. During the summer months, I enjoy trips to the Jersey Shore, skateboarding, and hiking.
When forced indoors, I weightlift and exercise to keep fit, I am an aspiring chef, and I stay up-to-date with the latest professional Philadelphia sports teams news. EAGLES - SUPERBOWL LII CHAMPS!!


Diethanolamine belongs to the class of ethanolamines. Among many other applications it is mainly used in the production of agrochemicals, detergents and surfactants.
expand_moreDiethylethanolamine (DEEA) belongs to the class of aminoalcohols . It is a colorless to yellow liquid with an aminelike odor and is miscible in water. It is a versatile intermediate with a variety of applications.
expand_moreN,N-Dimethylethanolamine S (DMEOA, DMAE) belongs to the class of N-alkylated aminoalcohols. DMEOA is a colorless to slightly yellow liquid with a amine-like odor.
expand_moreTriethanolamine belongs to the class of ethanolamines. Among many other applications it is mainly used in the production of fabric softeners.
expand_more


Citrus works with XML messages and XPath expressions. When using XSD schema rules your XML messages do follow some namespace declaration rules. The namespaces and the according prefixes can be managed in a central namespace context component. All XPath expressions will use the context for namespace resolving.
Your project defines the following namespaces in central context:


RT @ManningBooks: 📢Now in print!🍾
Easy job hunting and interesting work.
Mastering Java, the beating heart of enterprise software enginee…
10/24/2022, 7:02:54 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @ManningBooks: 📢Now in print!🍾
Easy job hunting and interesting work.
Mastering Java, the beating heart of enterprise software enginee…
10/24/2022, 7:02:54 AM
Favs: 0
Retweets: 0
link


Paul Hanaoka
Designer at Liferay
...good thing I'm not a Designer!
Crown Agency
Solve problems,
with Designers,
by focusing on users.
"...the rendering of intent."
Jared Spool
It's not:
Make this *thing* look better
Maximize the Value
Why should I focus
on users?
Users are:
Prospects
Customers
Coworkers
TLDR:
How to get there?
#1 Get Designers involved early
#2 Help them understand better
#1 Involved Early
- Reveal the right vision
- Stay on target
Reveal the right vision
Stay on target
"Are you trying to pass your own statements off as ancient wisdom?"
#2 Understand Better
- Review effectively
- Inform with data
Review effectively
Rules for Reviewing: 1/5
Set clear goals
- Improve the design
- Is this useable?
- Is it delightful?
- NOT:
- Show everyone how smart you are
- Make everyone happy
Rules for Reviewing: 2/5
Know where you are
Provide stage-appropriate feedback
Rules for Reviewing: 3/5
Provide problems,
not solutions
Rules for Reviewing: 4/5
Provide scenarios,
not opinions
Rules for Reviewing: 5/5
Test!
Early and often!
Inform with data
Useful tools
- Google Analytics
- Liferay Forms
- Hotjar
Involved Early
- Reveal the vision
- Stay on target
Understand Better
- Review effectively
- Inform with data
Thank you!
liferay.design/herding-cats/
★★★★★
Rate My Session
Download the
Liferay Events App Today!