JACK BOLTON
ABOUT ME
Hi! I am Jack Bolton. I am currently attending CodeCrew's Code School to be the kind of developer you want in the time of need. In the past, I have worked for many companies as a dish washer, cook, packager, and most recently a reel builder at a chemical company assembly shop. I have been curious about computer technology for about a decade now, but only recently began coding with Code Crew. I went from completely no coding experience, to creating the page you see now in only six weeks. While working at all of the jobs that I've had, I became aware of the fact that over time I would become better at certain tasks than people who have been doing those tasks long before I arrived. I can't wait to see what becomes the equivalent of that in my coding. I just like the thought of being the guy to go to when you want something done right.


Film review by Kevin Patterson
THE BLAIR WITCH PROJECT Rating: ***1/2 (out of four) R, 1999 Directors/Screenplay: Daniel Myrick and Eduardo Sanchez Starring Cast: Heather Donahue, Joshua Leonard, Michael Williams
Almost everyone predicted that cinema in 1999 would be the year of Lucas and Kubrick, but few would have guessed ahead of time that one of the most talked-about films of the year after THE PHANTOM MENACE and EYES WIDE SHUT would be a micro-budget horror film called THE BLAIR WITCH PROJECT. The film was made (do I even need to repeat this story?) on a budget of $37,000 and boasts an intriguing premise: it claims to be the footage, only recently discovered, shot by three film students who disappeared in the woods near a small town called Burkittsville while making a documentary about the local legend of the "Blair Witch." This is, of course, a piece of fiction, though reportedly much of what we see was improvised on the spot by the three actors (Heather Donahue, Joshua Leonard, and Michael Williams, all using their real names), who really did shoot the footage themselves and who were given only a broad outline by co-writers and directors Daniel Myrick and Eduardo Sanchez.
Since the scenes were filmed by the actors, with the directors waiting off-camera and out of sight, there are no special effects or scenes of gruesome murder in THE BLAIR WITCH PROJECT, and the witch herself never actually appears on-screen. The "horror" rests instead on slowly escalating psychological tension, as the students become lost in the woods, their map disappears, and unseen menaces seem to draw nearer. They seem to be surrounded by strange noises at night whose origins they cannot determine, and in the morning, ominous-looking stick figures made of twigs and leaves are found outside their tent. One night, children's voices are heard outside and their tent suddenly collapses on them, but when they run outside, there is no one in sight. As their situation grows more desperate, they start to turn against each other and lay blame for their predicament, mostly on Heather, who had conceived of the project and who insisted beyond all reason that they were not lost.
John Carpenter said once that horror revolves around the loss of control, and Myrick and Sanchez seem to understand that. Until the last five minutes, the overall effect of THE BLAIR WITCH PROJECT is more disturbing than it is "scary" in the way the word is typically understood. Since none of the apparent supernatural elements are ever witnessed on screen, there are very few moments that are likely to make the audience jump out of their seats in fright. Instead, we come to empathize with the three characters as they endure day after day that is dominated by fear and confusion; what the film lacks in visceral thrills is compensated for by the human tragedy that plays itself out. Towards the end, Heather records a tearful apology to Josh's and Mike's families as well as her own and accepts responsibility for the untimely end which she knows they will soon meet. This scene is matched in power perhaps only by the final five minutes, which will truly scare many viewers witless and which end with an ambiguous but unsettling visual that will not easily be forgotten.
All three performers pull off their roles almost flawlessly. Heather is perhaps the most interesting of the trio, as her later need to put some sort of emotional distance between herself and the increasingly grim situation accounts partly for the fact that the entire ordeal is caught on camera. Even when they are hopelessly lost and running out of food, she insists that they keep filming, and Josh, who had earlier screamed at her to turn the camera off, later takes a look through the lens and tells her he understands, because watching through the camera rather than through one's own eyes is "not quite reality." She is also the most flawed of the three, as it was her initial overconfidence that led indirectly to their predicament. Both Josh and Mike are also quite believable and sympathetic, though the way in which one of them is revealed as being responsible for the map disappearing doesn't really work: it strikes me as an amazingly boneheaded stunt, however frustrated the guilty party may have been.
I don't know if there's really much of a theme or a point to THE BLAIR WITCH PROJECT aside from some fairly routine "humankind's arrogance in overstepping its boundaries" implications. It's a story that exists mostly for its own sake, as an experiment in blending two cinematic approaches that are usually incompatible, i.e. the supernatural thriller and the verisimilitude of a pseudo-documentary. On this level, however, it does definitely succeed. There is never the sense that we are watching actors perform a scene, and the supernatural elements are necessarily implied rather than shown (an appearance by a CGI-rendered Blair Witch would have turned the whole thing into a long joke with a bad punchline). The key to the film's success is the realization that, for the most part, stories sink or swim with their characters. By giving the protagonists center stage and keeping the spooks off-screen, Myrick and Sanchez have made THE BLAIR WITCH PROJECT into a film that is not only disturbing and occasionally downright chilling, but tragic and empathetic as well. It's a bold debut, and I would be surprised if I see a better horror film any time soon.
Send comments to<EMAIL_ADDRESS>http://members.aol.com/ReviewsKTP/reviews.html
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Quick start
(Assuming user has already installed the prerequisites, and is using the FitHiChIP source downloaded from GitHub)
The file sample_script.sh (provided in GitHub archive) contains the sample script to execute FitHiChIP. The sample command to run FitHiChIP is:
bash FitHiChIP_HiCPro.sh -C configuration_file_name
where,
FitHiChIP_HiCPro.sh: main executable of FitHiChIP pipeline.
In the GitHub archive, four configuration files are provided for users to check:
configfile_BiasCorrection_CoverageBias:
This configuration file can be used as template to execute FitHiChIP(L) & FitHiChIP(L+M) with coverage bias regression.
configfile_BiasCorrection_ICEBias:
Template of configuration file corresponding to FitHiChIP(L) & FitHiChIP(L+M) with ICE bias regression.
configfile_P2P_BiasCorrection_CoverageBias:
Template of configuration file corresponding to FitHiChIP(S) & FitHiChIP(S+M) with coverage bias regression.
configfile_P2P_BiasCorrection_ICEBias:
Template of configuration file corresponding to FitHiChIP(S) & FitHiChIP(S+M) with ICE bias regression.
Note
Selection of the configuration file depends on the FitHiChIP background model (i.e. loose L or stringent S) and the bias regression method (i.e. coverage bias or ICE bias) to be used.
User should tally these configuration files with the parameters mentioned in section Setting up configuration file for understanding the configuration parameters.
For installing FitHiChIP via Docker or Singularity image, please check the section Installation
Description of the test data
Above mentioned configuration files are set according to the dataset provided in the folder TestData within the GitHub archieve. The folder contains sample HiChIP data, peak files, and also sample dataset for differential analysis of HiChIP loops.
User need to download following files within the "TestData" folder for executing FitHiChIP:
Sample_ValidPairs.txt.gz:
Sample valid pairs file, an output from HiC-Pro pipeline.
Sample.Peaks.gz:
Reference ChIP-seq peak information correspondin to the given data.
chrom_hg19.sizes:
Size of individual chromosomes corresponding to the reference genome hg19
Note
For different reference genome, user needs to download appropriate chromosome size file from the UCSC genome browser site.
For example, above mentioned file can be downloaded from the link: <http://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.chrom.sizes>
Note
The folder "TestData" also contains one directory "DiffLoopData" which contains dataset regarding differential HiChIP loop analysis. The dataset is described in the page Differential analysis of HiChIP loops.
Configuration parameters according to the test data
Please check the page Setting up configuration file for a detailed description.
Sample logs from the console, corresponding to the TestData
Upon executing the test data with one of the above mentioned configuration files, user can tally the output logs in console with the model console output provided in the file SampleConsoleOutput.txt, to debug about any errors regarding installation / execution.
Output file description
Output files are generated within the specified OutDir.
User can check the details of FitHiChIP output files are provided in the page Details of FitHiChIP outputs.
In particular, user should check for the following files:
PREFIX.interactions_FitHiC_Q"QVALUE".bed
PREFIX.interactions_FitHiC_Q"QVALUE"_MergeNearContacts.bed (generated only if MergeInt = 1)


Page heading - parent name
Content goes here
Page last reviewed: 8 August 2017
Next review due: 8 August 2020
Content goes here
Page last reviewed: 8 August 2017
Next review due: 8 August 2020


Lesson 39 - Introduction to Physical Simulations
Introduction
This lesson and the next one are a little different in that they are not just just three.js and WebGL, but also include material about pysical simulations. This lesson focuses on the physics of springs while the next looks into the physics of rope (which turns out to be rather spring-like as well).
Spring physics can be quite complex if one takes into account all the possible variables, but if one simplifies the problem down to a simple inelastic spring then it becomes much simpler. The physics of springs was first elucidated in the 17th century by Robert Hooke. The following diagram summarizes the physics:
But in a practical sense, how does the spring actually "work"? If we are going to simulate it in JavaScript, how does it work? Well. there are many levels at which we could try the simulation, but will keep it very simple and just simulate a simple, one-dimensional undamped spring. using Hooke's Law:
F = -kX
where X is vector describing the initial velocity, k is the resistance or tightness of the spring and F is the force needed to be applied to result in X.
Newton’s third law says that every force has an equal and opposite force. If two objects a and b are connected together by a spring then the spring will apply one force which pulls object a towards object b, and an equal and opposite force pulling object b towards a. However, if you want to attach one object to a fixed point in space its you can apply the force of the object in one direction. This makes sense is you consider that a point which cannot move as having infinite mass.
In our case, the "infinite mass" is the plate to which the spring is attached (as in the illustration above). We model the spring as an attractive force upwards. So the ball descends initially under the force of gravity, but slows to a stop and returns to its intial position, then falls again ad infinitum (since we aren't modeling a damped spring).
For an excellent discussion of the physics of springs and modeling physical processes in general, please read Glen Fielder excellent series in the Gaffer on Games.
Implementation
We won't cover all the details of the implementation. Suffice it to say that the modeling is based on a port of the Gaffer's Runge-Kutta simulation library to JavaScript and three.js. The library is in Physics3D.js and State3D.js. It is a pretty complete implementation, including velocity, mass, spin and torque in 3D. It is implemented such that there are two callbacks required:
- One that does the rendering of the system being modeled, based on the current state of the system
- One that calculates the forces to be applied based on the current state of the system
This is the initialization:
function initializeDemo() {
var initialPos = new THREE.Vector3(0, 5, 0);
var initialMom = new THREE.Vector3(0, 0, 0);
var mass = 1.0;
var size = 1.0;
physics3D = new GFX.Physics3D(render, forces, initialPos, initialMom, mass, size);
var ballGeometry = new THREE.SphereGeometry(1, 32, 32);
ballMesh = new THREE.Mesh(ballGeometry, new THREE.MeshLambertMaterial({color: 0xFF0000}));
ballMesh.position.set(0, 10, 0);
gfxScene.add(ballMesh);
var plateGeometry = new THREE.BoxGeometry(3, 0.25, 3);
plateMesh = new THREE.Mesh(plateGeometry, new THREE.MeshLambertMaterial({color: 0x888888}));
plateMesh.position.set(0, 5.5, 0);
gfxScene.add(plateMesh);
springMat = new THREE.MeshPhongMaterial({color: 0xc0c0c0, shininess:50});
createSpring( 5 );
}
We intialize the system by passing in our rendering and forces callbacks, the intial position of the ball and its momentum, size and mass. Then we create the ball itself and the plate. Then call to createSpring to do that. The code in createSpring is this:
function createSpring( posY ) {
var TWO_PI = Math.PI * 2.0;
var NTWISTS = 10;
var ANGLE_INCR = Math.PI / 6;
var height = 6 - posY;
var cylY = 5.5 - height * 0.5;
var x,z;
var y = height/2;
var radius = 0.25;
var n = 0;
var yIncr = height / (TWO_PI / ANGLE_INCR * NTWISTS );
var helix = [];
for( var phi=0; philt;=TWO_PI*NTWISTS; phi+=ANGLE_INCR ) {
x = Math.cos(phi) * radius;
y -= yIncr;
z = Math.sin(phi) * radius;
helix.push( new THREE.Vector3(x, y, z));
n++;
}
var curve = new THREE.CatmullRomCurve3( helix );
var geometry = new THREE.TubeGeometry( curve, n, 0.05, 6, false );
if (springMesh !== undefined) {
springMesh.geometry.dispose();
gfxScene.remove( springMesh );
}
springMesh = new THREE.Mesh(geometry, springMat);
springMesh.position.set(0,cylY,0);
gfxScene.add( springMesh );
}
This code is fairly straightforward. It simply iterates around a circle in X and Z to generate the coils and increments each step in Y to create the helix. The set of X,Y,Z points are then pushed into an array which is passed to a THREE.TubeGeometry to create spring.
Note that the spring is disposed and recreated in each frame. This is a bit wasteful. However, experimenting with morphing the vertices created weird artifacts so went with this approach. Seems to perform acceptably on any modern platform including mobile phones.
The Callbacks
The two callbacks are pretty straightforward. The render callback is very simple:
function render( state ) {
ballMesh.position.set(state.position.x, state.position.y - 1, state.position.z);
createSpring( state.position.y );
}
And the forces callback is also pretty simple (since the simulation is simple):
function forces (state, t, derivative ) {
var FORCE_X = 0;
var FORCE_Y = 2;
var FORCE_Z = 0;
var FORCE_SCALE = -5.0;
var TORQUE_X = 0.0;
var TORQUE_Y = 0.0;
var TORQUE_Z = 0.0;
// attract towards origin
derivative.force.copy(state.position);
derivative.force.multiplyScalar(FORCE_SCALE);
// add forces to the calculated derivative
derivative.force.x += FORCE_X;
derivative.force.y += FORCE_Y;
derivative.force.z += FORCE_Z;
// add torque to the calculated derivative
derivative.torque.x = TORQUE_X;
derivative.torque.y = TORQUE_Y;
derivative.torque.z = TORQUE_Z;
}
Note that this is all about the forces (linear) and torque (rotational force) because we are using Runge-Kutte. See the Gaffer's article for all the gory details.
And that's it! Click on this link to see the actual rendered demo in all it's springy glory!
As always, the original sources are on github here.


org.openflow.protocol
Class OFPhysicalPort
java.lang.Object
org.openflow.protocol.OFPhysicalPort
public class OFPhysicalPort
- extends java.lang.Object
Represents ofp_phy_port
- Author:
- David Erickson<EMAIL_ADDRESS>- Mar 25, 2010
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
MINIMUM_LENGTH
public static int MINIMUM_LENGTH
OFP_ETH_ALEN
public static int OFP_ETH_ALEN
portNumber
protected short portNumber
hardwareAddress
protected byte[] hardwareAddress
name
protected java.lang.String name
config
protected int config
state
protected int state
currentFeatures
protected int currentFeatures
advertisedFeatures
protected int advertisedFeatures
supportedFeatures
protected int supportedFeatures
peerFeatures
protected int peerFeatures
OFPhysicalPort
public OFPhysicalPort()
getPortNumber
public short getPortNumber()
- Returns:
- the portNumber
setPortNumber
public void setPortNumber(short portNumber)
- Parameters:
portNumber
- the portNumber to set
getHardwareAddress
public byte[] getHardwareAddress()
- Returns:
- the hardwareAddress
setHardwareAddress
public void setHardwareAddress(byte[] hardwareAddress)
- Parameters:
hardwareAddress
- the hardwareAddress to set
getName
public java.lang.String getName()
- Returns:
- the name
setName
public void setName(java.lang.String name)
- Parameters:
name
- the name to set
getConfig
public int getConfig()
- Returns:
- the config
setConfig
public void setConfig(int config)
- Parameters:
config
- the config to set
getState
public int getState()
- Returns:
- the state
setState
public void setState(int state)
- Parameters:
state
- the state to set
getCurrentFeatures
public int getCurrentFeatures()
- Returns:
- the currentFeatures
setCurrentFeatures
public void setCurrentFeatures(int currentFeatures)
- Parameters:
currentFeatures
- the currentFeatures to set
getAdvertisedFeatures
public int getAdvertisedFeatures()
- Returns:
- the advertisedFeatures
setAdvertisedFeatures
public void setAdvertisedFeatures(int advertisedFeatures)
- Parameters:
advertisedFeatures
- the advertisedFeatures to set
getSupportedFeatures
public int getSupportedFeatures()
- Returns:
- the supportedFeatures
setSupportedFeatures
public void setSupportedFeatures(int supportedFeatures)
- Parameters:
supportedFeatures
- the supportedFeatures to set
getPeerFeatures
public int getPeerFeatures()
- Returns:
- the peerFeatures
setPeerFeatures
public void setPeerFeatures(int peerFeatures)
- Parameters:
peerFeatures
- the peerFeatures to set
readFrom
public void readFrom(org.jboss.netty.buffer.ChannelBuffer data)
- Read this message off the wire from the specified ByteBuffer
- Parameters:
data
-
writeTo
public void writeTo(org.jboss.netty.buffer.ChannelBuffer data)
- Write this message's binary format to the specified ByteBuffer
- Parameters:
data
-
hashCode
public int hashCode()
- Overrides:
hashCode
in class java.lang.Object
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in class java.lang.Object


Pay the debt to get the judgment cancelled
{% if data['paidwhatiowe'] == 'true' %}{{ partyName( 'claimant' ) }} claims you owe them £1,500. You claim you've paid £500.
{% endif %}If {{ partyName( 'claimant' ) }} confirms you've paid £1,500 {% if data['paidwhatiowe'] == 'true' %}in total{% endif %} before 4pm on {{ now | date("add", 7, "day") | date( "D MMMM YYYY" ) }}, the judgment will be cancelled.
If you pay later, or you dispute all or part of the claim, the judgment will stay on the register for 6 years. You can apply to have it removed, but you'll have to pay a fee of £255.
Will you pay {% if data['paidwhatiowe'] == 'true' %}the remaining £1,000{% else %}£1,500{% endif %} before 4pm on {{ now | date("add", 7, "day") | date( "D MMMM YYYY" ) }}?


 More...
|
| |
| virtual Datatype * | getSubType (uintb off, uintb *newoff) const |
| | Recover component data-type one-level down. More...
|
| |
|
virtual int4 | numDepend (void) const |
| | Return number of component sub-types.
|
| |
|
virtual Datatype * | getDepend (int4 index) const |
| | Return the i-th component sub-type.
|
| |
|
virtual void | printNameBase (ostream &s) const |
| | Print name as short prefix.
|
| |
| virtual int4 | compare (const Datatype &op, int4 level) const |
| | Compare for functional equivalence. More...
|
| |
| virtual int4 | compareDependency (const Datatype &op) const |
| | Compare for storage in tree structure. More...
|
| |
|
virtual Datatype * | clone (void) const =0 |
| | Clone the data-type.
|
| |
| virtual void | saveXml (ostream &s) const |
| | Serialize the data-type to XML. More...
|
| |
|
int4 | typeOrder (const Datatype &op) const |
| | Order this with -op- datatype.
|
| |
| int4 | typeOrderBool (const Datatype &op) const |
| | Order this with -op-, treating bool data-type as special. More...
|
| |
| void | saveXmlBasic (ostream &s) const |
| | Save basic data-type properties. More...
|
| |
| void | saveXmlRef (ostream &s) const |
| | Write an XML reference of this to stream. More...
|
| |
The base datatype class for the decompiler.
Used for symbols, function prototypes, type propagation etc.
| int4 Datatype::compare |
( |
const Datatype & |
op, |
|
|
int4 |
level |
|
) |
| const |
|
virtual |
Compare for functional equivalence.
Compare this with another data-type. 0 (equality) means the data-types are functionally equivalent (even if names differ) Smaller types come earlier. More specific types come earlier.
- Parameters
-
| op | is the data-type to compare with this |
| level | is maximum level to descend when recursively comparing |
- Returns
- negative, 0, positive depending on ordering of types
Reimplemented in TypeSpacebase, TypeCode, TypeStruct, TypeEnum, TypeArray, and TypePointer.
| int4 Datatype::compareDependency |
( |
const Datatype & |
op | ) |
const |
|
virtual |
Compare for storage in tree structure.
Ordering of data-types for the main TypeFactory container. Comparison only goes down one-level in the component structure, before just comparing pointers.
- Parameters
-
| op | is the data-type to compare with this |
- Returns
- negative, 0, positive depending on ordering of types
Reimplemented in TypeSpacebase, TypeCode, TypeStruct, TypeEnum, TypeArray, and TypePointer.
| Datatype * Datatype::getSubType |
( |
uintb |
off, |
|
|
uintb * |
newoff |
|
) |
| const |
|
virtual |
Recover component data-type one-level down.
Given an offset into this data-type, return the component data-type at that offset. Also, pass back a "renormalized" offset suitable for recursize getSubType() calls: i.e. if the original offset hits the exact start of the sub-type, 0 is passed back. If there is no valid component data-type at the offset, return NULL and pass back the original offset
- Parameters
-
| off | is the offset into this data-type |
| newoff | is a pointer to the passed-back offset |
- Returns
- a pointer to the component data-type or NULL
Reimplemented in TypeSpacebase, TypeStruct, and TypeArray.
| void Datatype::saveXml |
( |
ostream & |
s | ) |
const |
|
virtual |
Serialize the data-type to XML.
Write out a formal description of the data-type as an XML <type> tag. For composite data-types, the description goes down one level, describing the component types only by reference.
- Parameters
-
| s | is the stream to write to |
Reimplemented in TypeSpacebase, TypeCode, TypeStruct, TypeEnum, TypeArray, TypePointer, TypeVoid, TypeUnicode, and TypeChar.
| int4 Datatype::typeOrderBool |
( |
const Datatype & |
op | ) |
const |
|
inline |
Order this with -op-, treating bool data-type as special.
Order data-types, with special handling of the bool data-type. Data-types are compared using the normal ordering, but bool is ordered after all other data-types. A return value of 0 indicates the data-types are the same, -1 indicates that this is prefered (ordered earlier), and 1 indicates this is ordered later.
- Parameters
-
| op | is the other data-type to compare with this |
- Returns
- -1, 0, or 1


Modern Alchemy
Beta, 2019
Thanks to little alchemy/little alchemy 2 for gobs of inspiration. I stole lots of ideas but the code is my own. Any similarities between this game and any other are probably intentional, because this is a work of satire.
link to first beta feedback: https://www.facebook.com/meredith.l.matthews/posts/10215090569636199
textmark via http://www.commentslive.com/text-maker/
help, ideas and encouragement from filthmeister Nobilis Reed,
phoenix rouseau https://www.facebook.com/420ACAB69, needs credit link,
connie burns https://www.facebook.com/connieburnsbeads needs credit link,
scott roche,
mom,
katrina,
bethany tanner https://www.facebook.com/Bethany.Tanner.1977
icons: https://game-icons.net/
Delapouite http://delapouite.com/ under CC BY 3.0
sbed http://opengameart.org/content/95-game-icons under CC BY 3.0
Lorc http://lorcblog.blogspot.com/ under CC BY 3.0
and the rest: https://game-icons.net/about.html#authors
florida: https://www.onlinewebfonts.com/icon/466862
and the rest: https://game-icons.net/about.html#authors


kXML is licensed under the BSD license (see below). Please note that the BSD license mandates to keep the copyright note when including kXML in own projects. If you are using kXML in your own project (open source or not), please let us know, so we can link it at our samples page.
Copyright (c) 2002-2007 Stefan Haustein, Oberhausen, Rhld., Germany Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


|
Combo #1 What's included: Regular Sized Popcorn (1) Your Choice of Candy (1) |
Combo #2 What's included: Large Sized Popcorn (1) Your Choice of Candy (1) Your Choice of Fountain Drink (1) |
|
Combo #3 What's included: Large Sized Popcorn (1) Your Choice of Candy (2) Your Choice of Fountain Drink (1) |
Combo #4 What's included: Medium Sized Popcorn (2) Your Choice of Candy (2) Your Choice of Fountain Drink (1) |


Welcome to the Updated List!
Check out the list below!
Add or Remove List Items Below!
Study A LOT!!!
Practice my work
Eat Dinner
Go to Bed
Add Item


|
XMC Peripheral Library for XMC4000 Family
2.1.4
|
#include <xmc_usbd.h>
Datenfelder | |
| uint8_t * | inBuffer |
| uint32_t | inBufferSize |
| volatile uint32_t | inInUse: 1 |
| uint32_t | isConfigured: 1 |
| uint32_t | isStalled: 1 |
| uint32_t | maxPacketSize: 7 |
| uint32_t | maxTransferSize: 19 |
| uint8_t * | outBuffer |
| uint32_t | outBufferSize |
| uint32_t | outBytesAvailable |
| volatile uint32_t | outInUse: 1 |
| uint32_t | outOffset |
| uint32_t | sendZeroLengthPacket: 1 |
| uint32_t | txFifoNum: 4 |
| uint32_t | type: 2 |
| uint8_t * | xferBuffer |
| uint32_t | xferCount |
| uint32_t | xferLength |
| uint32_t | xferTotal |
| uint32_t | address: 8 |
| uint32_t | direction: 1 |
| uint32_t | number: 4 |
| uint32_t | pading: 3 |
Describes a USB endpoint
All information to control an endpoint is stored in this structure. It contains information about the endpoints and the status of the device.
| uint32_t address |
The endpoint address including the direction
| uint32_t direction |
The endpoint direction
| uint8_t* inBuffer |
The buffer for operation as IN endpoint
| uint32_t inBufferSize |
The size of the EP IN buffer
| volatile uint32_t inInUse |
Sets if the selected USB IN endpoint is currently in use
| uint32_t isConfigured |
The flag showing, if the endpoint is configured
| uint32_t isStalled |
Sets if the selected USB endpoint is stalled.
| uint32_t maxPacketSize |
The maximum size of packet for USB endpoint ( due to FS Speed device only 64 Byte )
| uint32_t maxTransferSize |
The maximum amount of data the core can send at once.
| uint32_t number |
The endpoint number.It can be from 0 to 6
| uint8_t* outBuffer |
The buffer for operation as OUT endpoint
| uint32_t outBufferSize |
The size of the EP OUT buffer
| uint32_t outBytesAvailable |
The number of bytes available in the EP OUT buffer
| volatile uint32_t outInUse |
Sets if the selected USB OUT endpoint is currently in use
| uint32_t outOffset |
The read offset of the EP OUT buffer
| uint32_t pading |
Padding between number and direction
| uint32_t sendZeroLengthPacket |
If set, a zero length packet will be send at the end of the transfer
| uint32_t txFifoNum |
Endpoint transmit Fifo Number
| uint32_t type |
The endpoint type
| uint8_t* xferBuffer |
The buffer of the current transfer
| uint32_t xferCount |
Bytes transfered of the current USB data transfer
| uint32_t xferLength |
The length of the current transfer
| uint32_t xferTotal |
The length of total data in buffer


Located at 56°59' N; 23°53' E, in the Gulf of Riga, just west of the city of Riga.
The town has stores, bank, pharmacy and medical services.
The inlet of river Lielupe is surrounded by shallow sand banks. There is a red leading light, but the buoyage has no lights.


Using Eclipse with a Sorcer Service Provider
Download install and configure Eclipse
Please follow the steps below to setup the Eclipse IDE.
- Please download Eclipse IDE for Java Developers or Eclipse IDE for Java EE Developers for your operating system from: http://www.eclipse.org/downloads/
- Unzip the downloaded file and start Eclipse by running Eclipse.exe (on Windows) or ./eclipse (on Linux/Unix/Mac OS X).
-
Install the Maven Integration for Eclipse (m2e) - to do that in Eclipse go to Help -> Eclipse Marketplace and search for this plugin (see below), then click install and follow the instructions, accept the license agreement and finally restart Eclipse.
Import Sorcer service provider project
To import the project generated using the Sorcer Provider Archetype into eclipse please follow the following steps:
-
Go to: File -> Import... and select Maven -> Existing Maven Projects
-
Next, browse and select the top-level directory of the generated service provider project (Hello in the example below) When you do it for the first time it may take a couple minutes since Eclipse will try to download all necessary plugins and libraries.
-
Once this directory is selected you can selects defaults or directly click on Finish.
Compile and run the project
To enforce a manual compilation of the project in Eclipse select the particular module you’d like to compile or the top-level project (Hello in the example below) to compile all modules. Next right click it, go to: Run as and select Maven clean or Maven install respectively.


title: Object.fromEntries
stage: 2
contributors: Darien Maillet Valentine, Jordan Harband, Kevin Gibbons
Introduction
`Object.fromEntries` takes a list of key-value pairs, such as that produced by `Object.entries`, and returns a new object whose properties are given by those entries.
Object.fromEntries ( iterable )
When the `fromEntries` method is called with argument _iterable_, the following steps are taken:
1. Let _obj_ be ObjectCreate(%ObjectPrototype%).
1. Assert: _obj_ is an extensible ordinary object with no own properties.
1. Let _iter_ be ? GetIterator(_iterable_).
1. Repeat,
1. Let _next_ be ? IteratorStep(_iter_).
1. If _next_ is *false*, return _obj_.
1. Let _nextItem_ be ? IteratorValue(_next_).
1. If Type(_nextItem_) is not Object, then
1. Return ? IteratorClose(_iter_, ThrowCompletion(a newly created *TypeError* object)).
1. Let _key_ be Get(_nextItem_, `"0"`).
1. If _key_ is an abrupt completion, return ? IteratorClose(_iter_, _key_).
1. Let _key_ be _key_.[[Value]]
1. Let _value_ be Get(_nextItem_, `"1"`).
1. If _value_ is an abrupt completion, return ? IteratorClose(_iter_, _value_).
1. Let _value_ be _value_.[[Value]]
1. Let _propertyKey_ be ToPropertyKey(_key_).
1. If _propertyKey_ is an abrupt completion, return ? IteratorClose(_iter_, _propertyKey_).
1. Let _propertyKey_ be _propertyKey_.[[Value]]
1. Peform ! CreateDataPropertyOrThrow(_obj_, _propertyKey_, _value_).
_iterable_ is expected to be an object that implements an @@iterator method that returns an iterator object that produces a two element array-like object whose first element is a value that will be used as a property key and whose second element is the value to associate with that property key.


I am an Instructor in Emergency Medicine and Medical Toxicology at Weill Cornell Medical College. My research focuses on using artificial intelligence for drug discovery and syndromic surveillance. I am also interested in creating computable representations of medical reasoning.
To this end, I use social media (Twitter, YouTube, etc) for syndromic surveillance and to construct computable knowledge representations. We also try to explain interesting patterns we observe in the context of known biochemical signaling as contained in repositories such as PubChem.
I am grateful for funding from the National Institute on Drug Abuse (NIDA) in the form of their Loan Repayment Program and start-up funding provided by the Emergency Department at Weill Cornell Medical College.
We are presenting at the Inaugural Weill Cornell Research Symposium.
21 May 2023See you at EAPCCT! We are presenting posters on the structural motifs of novel psychoactive substaces, and dose-response relationship of DNP.
03 Mar 2023Part 2 of our updated review of the toxicity of medications for COVID is published in JMT


UTF Snow
UTF Snow is a tiny, highly configurable library that snows down interactive UTF characters on your page.
Try out the configurations below
Content
❄
♥
☀
☄
★
☢
☣
Colour
Speed multiplier
Density multiplier
Particle Limit
Mouse Tilt
Mouse Nudge
Mouse Pop
const
utfSnow
=
new
UTFSnow
(
)
utfSnow.pause()
utfSnow.resume()


Ming's Toy face detection demo
OpenCV.js is loading...
-
Hi,
-
For security issue, I have to move everything from my local machine to the UC filespaces, or all browsers block my request to access client’s camera.
-
I read this page, which teaches me read image frame from client’s camera.
-
I read this page, which talk about object detection inference using opencv.js
-
Put together, this app uses HTML, JavaScript with opencv.js. The inference happens in client’s browser.


@* * Copyright 2023 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import uk.gov.hmrc.digitalservicestax.views.html.helpers._ @this( govukDetails: GovukDetails ) @(keyList: List[String], errors: ErrorTree, messages: UniformMessages[Html], showErrors: Boolean = true, showDetails: Boolean = true)(inner: Html) @key=@{keyList.mkString(".")} @messages.get(s"$key.heading.large").map { largeHead => @if(keyList.length == 1) {
@msg
}


|
libguac
1.3.0
|
Defines the guac_socket object and functionss for using and manipulating it. More...
Go to the source code of this file.
Data Structures | |
| struct | guac_socket |
| The core I/O object of Guacamole. More... | |
Functions | |
| guac_socket * | guac_socket_alloc () |
| Allocates a new, completely blank guac_socket. More... | |
| void | guac_socket_free (guac_socket *socket) |
| Frees the given guac_socket and all associated resources. More... | |
| void | guac_socket_require_keep_alive (guac_socket *socket) |
| Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open. More... | |
| void | guac_socket_instruction_begin (guac_socket *socket) |
| Marks the beginning of a Guacamole protocol instruction. More... | |
| void | guac_socket_instruction_end (guac_socket *socket) |
| Marks the end of a Guacamole protocol instruction. More... | |
| guac_socket * | guac_socket_open (int fd) |
| Allocates and initializes a new guac_socket object with the given open file descriptor. More... | |
| guac_socket * | guac_socket_nest (guac_socket *parent, int index) |
| Allocates and initializes a new guac_socket which writes all data via nest instructions to the given existing, open guac_socket. More... | |
| guac_socket * | guac_socket_tee (guac_socket *primary, guac_socket *secondary) |
| Allocates and initializes a new guac_socket which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket. More... | |
| guac_socket * | guac_socket_broadcast (guac_client *client) |
| Allocates and initializes a new guac_socket which duplicates all instructions written across the sockets of each connected user of the given guac_client. More... | |
| ssize_t | guac_socket_write_int (guac_socket *socket, int64_t i) |
| Writes the given unsigned int to the given guac_socket object. More... | |
| ssize_t | guac_socket_write_string (guac_socket *socket, const char *str) |
| Writes the given string to the given guac_socket object. More... | |
| ssize_t | guac_socket_write_base64 (guac_socket *socket, const void *buf, size_t count) |
| Writes the given binary data to the given guac_socket object as base64- encoded data. More... | |
| ssize_t | guac_socket_write (guac_socket *socket, const void *buf, size_t count) |
| Writes the given data to the specified socket. More... | |
| ssize_t | guac_socket_read (guac_socket *socket, void *buf, size_t count) |
| Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer. More... | |
| ssize_t | guac_socket_flush_base64 (guac_socket *socket) |
| Flushes the base64 buffer, writing padding characters as necessary. More... | |
| ssize_t | guac_socket_flush (guac_socket *socket) |
| Flushes the write buffer. More... | |
| int | guac_socket_select (guac_socket *socket, int usec_timeout) |
| Waits for input to be available on the given guac_socket object until the specified timeout elapses. More... | |
Defines the guac_socket object and functionss for using and manipulating it.
| guac_socket* guac_socket_alloc | ( | ) |
Allocates a new, completely blank guac_socket.
This guac_socket will do absolutely nothing when used unless its handlers are defined.
| guac_socket* guac_socket_broadcast | ( | guac_client * | client | ) |
Allocates and initializes a new guac_socket which duplicates all instructions written across the sockets of each connected user of the given guac_client.
The returned socket is a write-only socket. Attempts to read from the socket will fail. If a write occurs while no users are connected, that write will simply be dropped.
Return values (error codes) from each user's socket will not affect the in-progress write, but each failing user will be forcibly stopped with guac_user_stop().
If an error occurs while allocating the guac_socket object, NULL is returned, and guac_error is set appropriately.
| client | The client associated with the group of connected users across which duplicates of all instructions should be written. |
| ssize_t guac_socket_flush | ( | guac_socket * | socket | ) |
Flushes the write buffer.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to flush |
| ssize_t guac_socket_flush_base64 | ( | guac_socket * | socket | ) |
Flushes the base64 buffer, writing padding characters as necessary.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to flush |
| void guac_socket_free | ( | guac_socket * | socket | ) |
Frees the given guac_socket and all associated resources.
| socket | The guac_socket to free. |
| void guac_socket_instruction_begin | ( | guac_socket * | socket | ) |
Marks the beginning of a Guacamole protocol instruction.
| socket | The guac_socket beginning an instruction. |
| void guac_socket_instruction_end | ( | guac_socket * | socket | ) |
Marks the end of a Guacamole protocol instruction.
| socket | The guac_socket ending an instruction. |
| guac_socket* guac_socket_nest | ( | guac_socket * | parent, |
| int | index | ||
| ) |
Allocates and initializes a new guac_socket which writes all data via nest instructions to the given existing, open guac_socket.
Freeing the returned guac_socket has no effect on the underlying, nested guac_socket.
If an error occurs while allocating the guac_socket object, NULL is returned, and guac_error is set appropriately.
| parent | The guac_socket this new guac_socket should write nest instructions to. |
| index | The stream index to use for the written nest instructions. |
| guac_socket* guac_socket_open | ( | int | fd | ) |
Allocates and initializes a new guac_socket object with the given open file descriptor.
The file descriptor will be automatically closed when the allocated guac_socket is freed.
If an error occurs while allocating the guac_socket object, NULL is returned, and guac_error is set appropriately.
| fd | An open file descriptor that this guac_socket object should manage. |
| ssize_t guac_socket_read | ( | guac_socket * | socket, |
| void * | buf, | ||
| size_t | count | ||
| ) |
Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket to read from. |
| buf | The buffer to read bytes into. |
| count | The maximum number of bytes to read. |
| void guac_socket_require_keep_alive | ( | guac_socket * | socket | ) |
Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open.
This ping will take the form of a "nop" instruction.
| socket | The guac_socket to declare as requiring an automatic keep-alive ping. |
| int guac_socket_select | ( | guac_socket * | socket, |
| int | usec_timeout | ||
| ) |
Waits for input to be available on the given guac_socket object until the specified timeout elapses.
If an error occurs while waiting, a negative value is returned, and guac_error is set appropriately.
If a timeout occurs while waiting, zero value is returned, and guac_error is set to GUAC_STATUS_INPUT_TIMEOUT.
| socket | The guac_socket object to wait for. |
| usec_timeout | The maximum number of microseconds to wait for data, or -1 to potentially wait forever. |
| guac_socket* guac_socket_tee | ( | guac_socket * | primary, |
| guac_socket * | secondary | ||
| ) |
Allocates and initializes a new guac_socket which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket.
Freeing the returned guac_socket will free both primary and secondary sockets.
Return values (error codes) will come only from the primary socket. Locks (like those used by guac_socket_instruction_begin() and guac_socket_instruction_end()) will affect only the primary socket.
If an error occurs while allocating the guac_socket object, NULL is returned, and guac_error is set appropriately.
| primary | The primary guac_socket to which all socket operations should be delegated. The error codes returned by socket operations, if any, will always come from this socket. This socket will also be the only socket locked when instructions begin (or unlocked when instructions end). |
| secondary | The secondary guac_socket to which all data written to the primary guac_socket should be copied. If an error prevents the write from succeeding, that error will be ignored. Only errors from the primary guac_socket will be acknowledged. |
| ssize_t guac_socket_write | ( | guac_socket * | socket, |
| const void * | buf, | ||
| size_t | count | ||
| ) |
Writes the given data to the specified socket.
The data written may be buffered until the buffer is flushed automatically or manually.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to write to. |
| buf | A buffer containing the data to write. |
| count | The number of bytes to write. |
| ssize_t guac_socket_write_base64 | ( | guac_socket * | socket, |
| const void * | buf, | ||
| size_t | count | ||
| ) |
Writes the given binary data to the given guac_socket object as base64- encoded data.
The data written may be buffered until the buffer is flushed automatically or manually. Beware that, because base64 data is buffered on top of the write buffer already used, a call to guac_socket_flush_base64() MUST be made before non-base64 writes (or writes of an independent block of base64 data) can be made.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to write to. |
| buf | A buffer containing the data to write. |
| count | The number of bytes to write. |
| ssize_t guac_socket_write_int | ( | guac_socket * | socket, |
| int64_t | i | ||
| ) |
Writes the given unsigned int to the given guac_socket object.
The data written may be buffered until the buffer is flushed automatically or manually.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to write to. |
| i | The unsigned int to write. |
| ssize_t guac_socket_write_string | ( | guac_socket * | socket, |
| const char * | str | ||
| ) |
Writes the given string to the given guac_socket object.
The data written may be buffered until the buffer is flushed automatically or manually.
If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.
| socket | The guac_socket object to write to. |
| str | The string to write. |


|
ipass
|
The ledstrip class. More...
#include <ledstrip.hpp>
Public Member Functions | |
| LEDstrip (hwlib::target::pins clock, hwlib::target::pins data) | |
| pin select More... | |
| void | clear () |
| Clears al the LEDs. More... | |
| void | show () |
| Sets all the led. More... | |
| void | setAllBrightness (uint8_t brightness) |
| Sets all the LEDs to the given brightness value between 0 and 31. More... | |
| void | setAllColor (uint8_t r, uint8_t g, uint8_t b) |
| Sets all the LEDs to the given color. More... | |
| void | setColor (uint32_t posled, uint8_t r, uint8_t g, uint8_t b) |
| Sets a color on a given position. More... | |
| void | setBrightness (uint32_t posled, uint8_t brightness) |
| Sets brightness on a given position. More... | |
| void | MoveColorsUp () |
| Moves all the led one position. More... | |
| void | rainbow () |
| Makes a rainbow. More... | |
| void | disco () |
| Makes a Disco. More... | |
| void | snake (int speed, uint8_t r, uint8_t g, uint8_t b) |
| Makes a snake. More... | |
| Color | getColor (uint32_t posled) |
| gets the color of a position More... | |
The ledstrip class.
This is the base class for the ledstrip library. This class defines all the base charachteristics of a ledstrip. All the LEDstrip functions are declared and defined in this class.
| LEDstrip::LEDstrip | ( | hwlib::target::pins | clock, |
| hwlib::target::pins | data | ||
| ) |
pin select
Here we use the hwlib to target the output pins
| void LEDstrip::clear | ( | ) |
Clears al the LEDs.
This function sets al the leds to 0.
The clear function sets all the LED to off.
| void LEDstrip::disco | ( | ) |
Makes a Disco.
Makes a disco.
This function makes a rainbow of 6 colors.
| Color LEDstrip::getColor | ( | uint32_t | posled | ) |
gets the color of a position
gets the color out the array
This function returns a struct color of a position
| void LEDstrip::MoveColorsUp | ( | ) |
Moves all the led one position.
Moves all leds a position up.
The current position of all the LEDs is + 1
| void LEDstrip::rainbow | ( | ) |
Makes a rainbow.
This function makes a rainbow of 3 color.
| void LEDstrip::setAllBrightness | ( | uint8_t | brightness | ) |
Sets all the LEDs to the given brightness value between 0 and 31.
This function sets all the led to a given brightness.
To turn on all the LED brightness you have to call this function and give a value between 0 and 31.
| void LEDstrip::setAllColor | ( | uint8_t | r, |
| uint8_t | g, | ||
| uint8_t | b | ||
| ) |
Sets all the LEDs to the given color.
This function sets all the led to a given color.
This LEDstrip works with Red, Green and blue. If you want all the LEDs to one collor you call SetAllColor.
| void LEDstrip::setBrightness | ( | uint32_t | posled, |
| uint8_t | brightness | ||
| ) |
Sets brightness on a given position.
This function sets a given brightness to a given position on the ledstrip.
Here you can set position x on a given brightness
| void LEDstrip::setColor | ( | uint32_t | posled, |
| uint8_t | r, | ||
| uint8_t | g, | ||
| uint8_t | b | ||
| ) |
Sets a color on a given position.
This function sets a given color to a given position on the ledstrip.
Here you can set position x on a given color.
| void LEDstrip::show | ( | ) |
Sets all the led.
This functions sends the array with all the info to the strip.
The array with all the led info wil loop through the function. Depending if there is a 1 or 0 the SendByte en SendBit function will be called. Nothing will happen aslong you do not call the show function. At first the sendstart function will be called. After the start de array will be call. At the end the endframe will be called. Four end-frame bytes are seemingly indistinguishable from a white pixel, and empirical testing suggests it can be left out...but it's always a good idea to follow the datasheet.
| void LEDstrip::snake | ( | int | speed, |
| uint8_t | r, | ||
| uint8_t | g, | ||
| uint8_t | b | ||
| ) |
Makes a snake.
A snake through the ledstrip.
Makes a snake through the strip at a given speed en color. Where speed 1 the fastest is.


--- layout: default title: Home ---
We bring the energy and speed of a startup to your business.
We build custom software and launch it — fast.
Nick was integral to the success of the new barre3.com. He was able to significantly improve our performance and overall design pre-launch.”
– Peter Marks, Director of Technology, Barre3
We're Rails experts and can improve the architecture of your Rails application beyond MVC. See Nick's talk on the subject.
Read more About Us.
Please get in touch. Email<EMAIL_ADDRESS>Arch's founder, Nick Urban, will be happy to schedule a call and give advice about your project.


Mohamed Salah shares ankle treatment video as Liverpool star steps up injury recovery
The Reds forward is still trying to shake off an ongoing problem he originally sustained in a crunching tackle with Leicester's Hamza Choudhury on October 5
by Darren Wells, https://www.mirror.co.uk/authors/darren-wells/Mohamed Salah has offered an insight into his continuing rehabilitation from the ankle injury he suffered at the beginning of last month.
The Liverpool forward has been struggling to fully recover from the problem after Hamza Choudhury's heavy tackle forced him out of the clash against Leicester on October 5.
Salah has played for his club since, but aggravated the issue in the win over Man City just days after boss Jurgen Klopp admitted the injury was not going away.
The original tackle from Choudhury left Salah with a sprained ankle, but Klopp revealed the Egyptian still has fluid around the joint which re-appears after exercise.
"I think it is more really annoying - for him, not me - the fact that it always has a bit of fluid in, and he has to deal with it, we get it out and it comes back, and stuff like that," Klopp said.
Salah was substituted late on in the win over City last Sunday, shortly after Fernandinho's tackle looked to have caused him further damage.
He was grimacing with pain after the challenge, and was then seen with ice strapped to his ankle at full-time.
The 27-year-old reported for international duty with Egypt the following day, but after undergoing scans it was decided he would play no part in his country's fixtures with Kenya and Comoros.
Liverpool were anxious at allowing Salah to go away with Egypt without having properly assessed his injury, while the star wore a protective boot as a precaution.
However since his withdrawal from the international squad, Salah has uploaded a video of himself receiving treatment on his ankle from Liverpool club physio Richie Partridge.
He now has just over a week to regain full fitness before Liverpool's next fixture against Crystal Palace in the Premier League on November 23.


#include <config.h>
Include dependency graph for bytes.h:
This graph shows which files directly or indirectly include this file:
Defines | |
| #define | SWAP_FLOAT(x, y) do { *(unsigned int *)&x = bswap_32( *(unsigned int *)&y ); } while (0) |
| #define | BE_TO_CPU_INT16(ret, val) (ret = bswap_16(val)) |
| #define | BE_TO_CPU_INT32(ret, val) (ret = bswap_32(val)) |
| #define | BE_TO_CPU_FLOAT(ret, val) SWAP_FLOAT(ret, val) |
| #define | LE_TO_CPU_INT16(ret, val) (ret = val) |
| #define | LE_TO_CPU_INT32(ret, val) (ret = val) |
| #define | LE_TO_CPU_FLOAT(ret, val) (ret = val) |
Functions | |
| unsigned short | bswap_16 (unsigned short val) |
| unsigned int | bswap_32 (unsigned int val) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|


Cookbook¶
A collection of “How-Tos” highlighting popular ways to extend Alembic.
Note
This is a new section where we catalogue various “how-tos” based on user requests. It is often the case that users will request a feature only to learn it can be provided with a simple customization.
Building an Up to Date Database from Scratch¶
There’s a theory of database migrations that says that the revisions in existence for a database should be
able to go from an entirely blank schema to the finished product, and back again. Alembic can roll
this way. Though we think it’s kind of overkill, considering that SQLAlchemy itself can emit
the full CREATE statements for any given model using create_all()
. If you check out
a copy of an application, running this will give you the entire database in one shot, without the need
to run through all those migration files, which are instead tailored towards applying incremental
changes to an existing database.
Alembic can integrate with a create_all()
script quite easily. After running the
create operation, tell Alembic to create a new version table, and to stamp it with the most recent
revision (i.e. head
):
# inside of a "create the database" script, first create
# tables:
my_metadata.create_all(engine)
# then, load the Alembic configuration and generate the
# version table, "stamping" it with the most recent rev:
from alembic.config import Config
from alembic import command
alembic_cfg = Config("/path/to/yourapp/alembic.ini")
command.stamp(alembic_cfg, "head")
When this approach is used, the application can generate the database using normal SQLAlchemy techniques instead of iterating through hundreds of migration scripts. Now, the purpose of the migration scripts is relegated just to movement between versions on out-of-date databases, not new databases. You can now remove old migration files that are no longer represented on any existing environments.
To prune old migration files, simply delete the files. Then, in the earliest, still-remaining
migration file, set down_revision
to None
:
# replace this:
#down_revision = '290696571ad2'
# with this:
down_revision = None
That file now becomes the “base” of the migration series.
Conditional Migration Elements¶
This example features the basic idea of a common need, that of affecting how a migration runs based on command line switches.
The technique to use here is simple; within a migration script, inspect
the EnvironmentContext.get_x_argument()
collection for any additional,
user-defined parameters. Then take action based on the presence of those
arguments.
To make it such that the logic to inspect these flags is easy to use and
modify, we modify our script.py.mako
template to make this feature
available in all new revision files:
"""${message}
Revision ID: ${up_revision}
Revises: ${down_revision}
Create Date: ${create_date}
"""
# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
from alembic import op
import sqlalchemy as sa
${imports if imports else ""}
from alembic import context
def upgrade():
schema_upgrades()
if context.get_x_argument(as_dictionary=True).get('data', None):
data_upgrades()
def downgrade():
if context.get_x_argument(as_dictionary=True).get('data', None):
data_downgrades()
schema_downgrades()
def schema_upgrades():
"""schema upgrade migrations go here."""
${upgrades if upgrades else "pass"}
def schema_downgrades():
"""schema downgrade migrations go here."""
${downgrades if downgrades else "pass"}
def data_upgrades():
"""Add any optional data upgrade migrations here!"""
pass
def data_downgrades():
"""Add any optional data downgrade migrations here!"""
pass
Now, when we create a new migration file, the data_upgrades()
and data_downgrades()
placeholders will be available, where we can add optional data migrations:
"""rev one
Revision ID: 3ba2b522d10d
Revises: None
Create Date: 2014-03-04 18:05:36.992867
"""
# revision identifiers, used by Alembic.
revision = '3ba2b522d10d'
down_revision = None
from alembic import op
import sqlalchemy as sa
from sqlalchemy import String, Column
from sqlalchemy.sql import table, column
from alembic import context
def upgrade():
schema_upgrades()
if context.get_x_argument(as_dictionary=True).get('data', None):
data_upgrades()
def downgrade():
if context.get_x_argument(as_dictionary=True).get('data', None):
data_downgrades()
schema_downgrades()
def schema_upgrades():
"""schema upgrade migrations go here."""
op.create_table("my_table", Column('data', String))
def schema_downgrades():
"""schema downgrade migrations go here."""
op.drop_table("my_table")
def data_upgrades():
"""Add any optional data upgrade migrations here!"""
my_table = table('my_table',
column('data', String),
)
op.bulk_insert(my_table,
[
{'data': 'data 1'},
{'data': 'data 2'},
{'data': 'data 3'},
]
)
def data_downgrades():
"""Add any optional data downgrade migrations here!"""
op.execute("delete from my_table")
To invoke our migrations with data included, we use the -x
flag:
alembic -x data=true upgrade head
The EnvironmentContext.get_x_argument()
is an easy way to support
new commandline options within environment and migration scripts.
Sharing a Connection with a Series of Migration Commands and Environments¶
It is often the case that an application will need to call upon a series
of commands within Commands, where it would be advantageous
for all operations to proceed along a single transaction. The connectivity
for a migration is typically solely determined within the env.py
script
of a migration environment, which is called within the scope of a command.
The steps to take here are:
- Produce the
Connection
object to use. - Place it somewhere that
env.py
will be able to access it. This can be either a. a module-level global somewhere, or b. an attribute which we place into theConfig.attributes
dictionary (if we are on an older Alembic version, we may also attach an attribute directly to theConfig
object). - The
env.py
script is modified such that it looks for thisConnection
and makes use of it, in lieu of building up its ownEngine
instance.
We illustrate using Config.attributes
:
from alembic import command, config
cfg = config.Config("/path/to/yourapp/alembic.ini")
with engine.begin() as connection:
cfg.attributes['connection'] = connection
command.upgrade(cfg, "head")
Then in env.py
:
def run_migrations_online():
connectable = config.attributes.get('connection', None)
if connectable is None:
# only create Engine if we don't have a Connection
# from the outside
connectable = engine_from_config(
config.get_section(config.config_ini_section),
prefix='sqlalchemy.',
poolclass=pool.NullPool)
# when connectable is already a Connection object, calling
# connect() gives us a *branched connection*.
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata
)
with context.begin_transaction():
context.run_migrations()
Branched Connections
Note that we are calling the connect()
method, even if we are
using a Connection
object to start with.
The effect this has when calling connect()
is that SQLAlchemy passes us a branch of the original connection; it
is in every way the same as the Connection
we started with, except it provides nested scope; the
context we have here as well as the
close()
method of this branched
connection doesn’t actually close the outer connection, which stays
active for continued use.
New in version 0.7.5: Added Config.attributes
.
Replaceable Objects¶
This recipe proposes a hypothetical way of dealing with what we might call a replaceable schema object. A replaceable object is a schema object that needs to be created and dropped all at once. Examples of such objects include views, stored procedures, and triggers.
Replaceable objects present a problem in that in order to make incremental changes to them, we have to refer to the whole definition at once. If we need to add a new column to a view, for example, we have to drop it entirely and recreate it fresh with the extra column added, referring to the whole structure; but to make it even tougher, if we wish to support downgrade operarations in our migration scripts, we need to refer to the previous version of that construct fully, and we’d much rather not have to type out the whole definition in multiple places.
This recipe proposes that we may refer to the older version of a replaceable construct by directly naming the migration version in which it was created, and having a migration refer to that previous file as migrations run. We will also demonstrate how to integrate this logic within the Operation Plugins feature introduced in Alembic 0.8. It may be very helpful to review this section first to get an overview of this API.
The Replaceable Object Structure¶
We first need to devise a simple format that represents the “CREATE XYZ” /
“DROP XYZ” aspect of what it is we’re building. We will work with an object
that represents a textual definition; while a SQL view is an object that we can define
using a table-metadata-like system,
this is not so much the case for things like stored procedures, where
we pretty much need to have a full string definition written down somewhere.
We’ll use a simple value object called ReplaceableObject
that can
represent any named set of SQL text to send to a “CREATE” statement of
some kind:
class ReplaceableObject(object):
def __init__(self, name, sqltext):
self.name = name
self.sqltext = sqltext
Using this object in a migration script, assuming a Postgresql-style syntax, looks like:
customer_view = ReplaceableObject(
"customer_view",
"SELECT name, order_count FROM customer WHERE order_count > 0"
)
add_customer_sp = ReplaceableObject(
"add_customer_sp(name varchar, order_count integer)",
"""
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count)
VALUES (in_name, in_order_count);
END;
$$ LANGUAGE plpgsql;
"""
)
The ReplaceableObject
class is only one very simplistic way to do this.
The structure of how we represent our schema objects
is not too important for the purposes of this example; we can just
as well put strings inside of tuples or dictionaries, as well as
that we could define any kind of series of fields and class structures we want.
The only important part is that below we will illustrate how organize the
code that can consume the structure we create here.
Create Operations for the Target Objects¶
We’ll use the Operations
extension API to make new operations
for create, drop, and replace of views and stored procedures. Using this
API is also optional; we can just as well make any kind of Python
function that we would invoke from our migration scripts.
However, using this API gives us operations
built directly into the Alembic op.*
namespace very nicely.
The most intricate class is below. This is the base of our “replaceable”
operation, which includes not just a base operation for emitting
CREATE and DROP instructions on a ReplaceableObject
, it also assumes
a certain model of “reversibility” which makes use of references to
other migration files in order to refer to the “previous” version
of an object:
from alembic.operations import Operations, MigrateOperation
class ReversibleOp(MigrateOperation):
def __init__(self, target):
self.target = target
@classmethod
def invoke_for_target(cls, operations, target):
op = cls(target)
return operations.invoke(op)
def reverse(self):
raise NotImplementedError()
@classmethod
def _get_object_from_version(cls, operations, ident):
version, objname = ident.split(".")
module = operations.get_context().script.get_revision(version).module
obj = getattr(module, objname)
return obj
@classmethod
def replace(cls, operations, target, replaces=None, replace_with=None):
if replaces:
old_obj = cls._get_object_from_version(operations, replaces)
drop_old = cls(old_obj).reverse()
create_new = cls(target)
elif replace_with:
old_obj = cls._get_object_from_version(operations, replace_with)
drop_old = cls(target).reverse()
create_new = cls(old_obj)
else:
raise TypeError("replaces or replace_with is required")
operations.invoke(drop_old)
operations.invoke(create_new)
The workings of this class should become clear as we walk through the
example. To create usable operations from this base, we will build
a series of stub classes and use Operations.register_operation()
to make them part of the op.*
namespace:
@Operations.register_operation("create_view", "invoke_for_target")
@Operations.register_operation("replace_view", "replace")
class CreateViewOp(ReversibleOp):
def reverse(self):
return DropViewOp(self.target)
@Operations.register_operation("drop_view", "invoke_for_target")
class DropViewOp(ReversibleOp):
def reverse(self):
return CreateViewOp(self.view)
@Operations.register_operation("create_sp", "invoke_for_target")
@Operations.register_operation("replace_sp", "replace")
class CreateSPOp(ReversibleOp):
def reverse(self):
return DropSPOp(self.target)
@Operations.register_operation("drop_sp", "invoke_for_target")
class DropSPOp(ReversibleOp):
def reverse(self):
return CreateSPOp(self.target)
To actually run the SQL like “CREATE VIEW” and “DROP SEQUENCE”, we’ll provide
implementations using Operations.implementation_for()
that run straight into Operations.execute()
:
@Operations.implementation_for(CreateViewOp)
def create_view(operations, operation):
operations.execute("CREATE VIEW %s AS %s" % (
operation.target.name,
operation.target.sqltext
))
@Operations.implementation_for(DropViewOp)
def drop_view(operations, operation):
operations.execute("DROP VIEW %s" % operation.target.name)
@Operations.implementation_for(CreateSPOp)
def create_sp(operations, operation):
operations.execute(
"CREATE FUNCTION %s %s" % (
operation.target.name, operation.target.sqltext
)
)
@Operations.implementation_for(DropSPOp)
def drop_sp(operations, operation):
operations.execute("DROP FUNCTION %s" % operation.target.name)
All of the above code can be present anywhere within an application’s
source tree; the only requirement is that when the env.py
script is
invoked, it includes imports that ultimately call upon these classes
as well as the Operations.register_operation()
and
Operations.implementation_for()
sequences.
Create Initial Migrations¶
We can now illustrate how these objects look during use. For the first step, we’ll create a new migration to create a “customer” table:
$ alembic revision -m "create table"
We build the first revision as follows:
"""create table
Revision ID: 3ab8b2dfb055
Revises:
Create Date: 2015-07-27 16:22:44.918507
"""
# revision identifiers, used by Alembic.
revision = '3ab8b2dfb055'
down_revision = None
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table(
"customer",
sa.Column('id', sa.Integer, primary_key=True),
sa.Column('name', sa.String),
sa.Column('order_count', sa.Integer),
)
def downgrade():
op.drop_table('customer')
For the second migration, we will create a view and a stored procedure which act upon this table:
$ alembic revision -m "create views/sp"
This migration will use the new directives:
"""create views/sp
Revision ID: 28af9800143f
Revises: 3ab8b2dfb055
Create Date: 2015-07-27 16:24:03.589867
"""
# revision identifiers, used by Alembic.
revision = '28af9800143f'
down_revision = '3ab8b2dfb055'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
from foo import ReplaceableObject
customer_view = ReplaceableObject(
"customer_view",
"SELECT name, order_count FROM customer WHERE order_count > 0"
)
add_customer_sp = ReplaceableObject(
"add_customer_sp(name varchar, order_count integer)",
"""
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count)
VALUES (in_name, in_order_count);
END;
$$ LANGUAGE plpgsql;
"""
)
def upgrade():
op.create_view(customer_view)
op.create_sp(add_customer_sp)
def downgrade():
op.drop_view(customer_view)
op.drop_sp(add_customer_sp)
We see the use of our new create_view()
, create_sp()
,
drop_view()
, and drop_sp()
directives. Running these to “head”
we get the following (this includes an edited view of SQL emitted):
$ alembic upgrade 28af9800143
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [sqlalchemy.engine.base.Engine] BEGIN (implicit)
INFO [sqlalchemy.engine.base.Engine] select relname from pg_class c join pg_namespace n on n.oid=c.relnamespace where pg_catalog.pg_table_is_visible(c.oid) and relname=%(name)s
INFO [sqlalchemy.engine.base.Engine] {'name': u'alembic_version'}
INFO [sqlalchemy.engine.base.Engine] SELECT alembic_version.version_num
FROM alembic_version
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] select relname from pg_class c join pg_namespace n on n.oid=c.relnamespace where pg_catalog.pg_table_is_visible(c.oid) and relname=%(name)s
INFO [sqlalchemy.engine.base.Engine] {'name': u'alembic_version'}
INFO [alembic.runtime.migration] Running upgrade -> 3ab8b2dfb055, create table
INFO [sqlalchemy.engine.base.Engine]
CREATE TABLE customer (
id SERIAL NOT NULL,
name VARCHAR,
order_count INTEGER,
PRIMARY KEY (id)
)
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] INSERT INTO alembic_version (version_num) VALUES ('3ab8b2dfb055')
INFO [sqlalchemy.engine.base.Engine] {}
INFO [alembic.runtime.migration] Running upgrade 3ab8b2dfb055 -> 28af9800143f, create views/sp
INFO [sqlalchemy.engine.base.Engine] CREATE VIEW customer_view AS SELECT name, order_count FROM customer WHERE order_count > 0
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] CREATE FUNCTION add_customer_sp(name varchar, order_count integer)
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count)
VALUES (in_name, in_order_count);
END;
$$ LANGUAGE plpgsql;
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET version_num='28af9800143f' WHERE alembic_version.version_num = '3ab8b2dfb055'
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] COMMIT
We see that our CREATE TABLE proceeded as well as the CREATE VIEW and CREATE FUNCTION operations produced by our new directives.
Create Revision Migrations¶
Finally, we can illustrate how we would “revise” these objects.
Let’s consider we added a new column email
to our customer
table:
$ alembic revision -m "add email col"
The migration is:
"""add email col
Revision ID: 191a2d20b025
Revises: 28af9800143f
Create Date: 2015-07-27 16:25:59.277326
"""
# revision identifiers, used by Alembic.
revision = '191a2d20b025'
down_revision = '28af9800143f'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
op.add_column("customer", sa.Column("email", sa.String()))
def downgrade():
op.drop_column("customer", "email")
We now need to recreate the customer_view
view and the
add_customer_sp
function. To include downgrade capability, we will
need to refer to the previous version of the construct; the
replace_view()
and replace_sp()
operations we’ve created make
this possible, by allowing us to refer to a specific, previous revision.
the replaces
and replace_with
arguments accept a dot-separated
string, which refers to a revision number and an object name, such
as "28af9800143f.customer_view"
. The ReversibleOp
class makes use
of the Operations.get_context()
method to locate the version file
we refer to:
$ alembic revision -m "update views/sp"
The migration:
"""update views/sp
Revision ID: 199028bf9856
Revises: 191a2d20b025
Create Date: 2015-07-27 16:26:31.344504
"""
# revision identifiers, used by Alembic.
revision = '199028bf9856'
down_revision = '191a2d20b025'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
from foo import ReplaceableObject
customer_view = ReplaceableObject(
"customer_view",
"SELECT name, order_count, email "
"FROM customer WHERE order_count > 0"
)
add_customer_sp = ReplaceableObject(
"add_customer_sp(name varchar, order_count integer, email varchar)",
"""
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count, email)
VALUES (in_name, in_order_count, email);
END;
$$ LANGUAGE plpgsql;
"""
)
def upgrade():
op.replace_view(customer_view, replaces="28af9800143f.customer_view")
op.replace_sp(add_customer_sp, replaces="28af9800143f.add_customer_sp")
def downgrade():
op.replace_view(customer_view, replace_with="28af9800143f.customer_view")
op.replace_sp(add_customer_sp, replace_with="28af9800143f.add_customer_sp")
Above, instead of using create_view()
, create_sp()
,
drop_view()
, and drop_sp()
methods, we now use replace_view()
and
replace_sp()
. The replace operation we’ve built always runs a DROP and
a CREATE. Running an upgrade to head we see:
$ alembic upgrade head
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [sqlalchemy.engine.base.Engine] BEGIN (implicit)
INFO [sqlalchemy.engine.base.Engine] select relname from pg_class c join pg_namespace n on n.oid=c.relnamespace where pg_catalog.pg_table_is_visible(c.oid) and relname=%(name)s
INFO [sqlalchemy.engine.base.Engine] {'name': u'alembic_version'}
INFO [sqlalchemy.engine.base.Engine] SELECT alembic_version.version_num
FROM alembic_version
INFO [sqlalchemy.engine.base.Engine] {}
INFO [alembic.runtime.migration] Running upgrade 28af9800143f -> 191a2d20b025, add email col
INFO [sqlalchemy.engine.base.Engine] ALTER TABLE customer ADD COLUMN email VARCHAR
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET version_num='191a2d20b025' WHERE alembic_version.version_num = '28af9800143f'
INFO [sqlalchemy.engine.base.Engine] {}
INFO [alembic.runtime.migration] Running upgrade 191a2d20b025 -> 199028bf9856, update views/sp
INFO [sqlalchemy.engine.base.Engine] DROP VIEW customer_view
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] CREATE VIEW customer_view AS SELECT name, order_count, email FROM customer WHERE order_count > 0
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] DROP FUNCTION add_customer_sp(name varchar, order_count integer)
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] CREATE FUNCTION add_customer_sp(name varchar, order_count integer, email varchar)
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count, email)
VALUES (in_name, in_order_count, email);
END;
$$ LANGUAGE plpgsql;
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET version_num='199028bf9856' WHERE alembic_version.version_num = '191a2d20b025'
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] COMMIT
After adding our new email
column, we see that both customer_view
and add_customer_sp()
are dropped before the new version is created.
If we downgrade back to the old version, we see the old version of these
recreated again within the downgrade for this migration:
$ alembic downgrade 28af9800143
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
INFO [sqlalchemy.engine.base.Engine] BEGIN (implicit)
INFO [sqlalchemy.engine.base.Engine] select relname from pg_class c join pg_namespace n on n.oid=c.relnamespace where pg_catalog.pg_table_is_visible(c.oid) and relname=%(name)s
INFO [sqlalchemy.engine.base.Engine] {'name': u'alembic_version'}
INFO [sqlalchemy.engine.base.Engine] SELECT alembic_version.version_num
FROM alembic_version
INFO [sqlalchemy.engine.base.Engine] {}
INFO [alembic.runtime.migration] Running downgrade 199028bf9856 -> 191a2d20b025, update views/sp
INFO [sqlalchemy.engine.base.Engine] DROP VIEW customer_view
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] CREATE VIEW customer_view AS SELECT name, order_count FROM customer WHERE order_count > 0
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] DROP FUNCTION add_customer_sp(name varchar, order_count integer, email varchar)
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] CREATE FUNCTION add_customer_sp(name varchar, order_count integer)
RETURNS integer AS $$
BEGIN
insert into customer (name, order_count)
VALUES (in_name, in_order_count);
END;
$$ LANGUAGE plpgsql;
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET version_num='191a2d20b025' WHERE alembic_version.version_num = '199028bf9856'
INFO [sqlalchemy.engine.base.Engine] {}
INFO [alembic.runtime.migration] Running downgrade 191a2d20b025 -> 28af9800143f, add email col
INFO [sqlalchemy.engine.base.Engine] ALTER TABLE customer DROP COLUMN email
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] UPDATE alembic_version SET version_num='28af9800143f' WHERE alembic_version.version_num = '191a2d20b025'
INFO [sqlalchemy.engine.base.Engine] {}
INFO [sqlalchemy.engine.base.Engine] COMMIT
Don’t Generate Empty Migrations with Autogenerate¶
A common request is to have the alembic revision --autogenerate
command not
actually generate a revision file if no changes to the schema is detected. Using
the EnvironmentContext.configure.process_revision_directives
hook, this is straightforward; place a process_revision_directives
hook in MigrationContext.configure()
which removes the
single MigrationScript
directive if it is empty of
any operations:
def run_migrations_online():
# ...
def process_revision_directives(context, revision, directives):
if config.cmd_opts.autogenerate:
script = directives[0]
if script.upgrade_ops.is_empty():
directives[:] = []
# connectable = ...
with connectable.connect() as connection:
context.configure(
connection=connection,
target_metadata=target_metadata,
process_revision_directives=process_revision_directives
)
with context.begin_transaction():
context.run_migrations()
Don’t emit CREATE TABLE statements for Views¶
It is sometimes convenient to create Table
instances for views
so that they can be queried using normal SQLAlchemy techniques. Unfortunately this
causes Alembic to treat them as tables in need of creation and to generate spurious
create_table()
operations. This is easily fixable by flagging such Tables and using the
include_object
hook to exclude them:
my_view = Table('my_view', metadata, autoload=True, info=dict(is_view=True)) # Flag this as a view
Then define include_object
as:
def include_object(object, name, type_, reflected, compare_to):
"""
Exclude views from Alembic's consideration.
"""
return not object.info.get('is_view', False)
Finally, in env.py
pass your include_object
as a keyword argument to EnvironmentContext.configure()
.


WITNESS LIST Health Services Committee February 23, 1999-1:30P SB 93 For: Canales-Jud, Theresa (Her daughter), Dallas Deaton, Diana (Texas Assisted Living Association), Austin Denton, Ann (Enterprise Foundation), Austin Gladden, Wilhelmina (American Association of Retired Persons), Ft. Worth Griffin, Randy (Himself and Texas Assisted Living Association), Plano Harris, Lauralee (Mental Health Association of Tarrant), Richland Hills Hayes, Aaryce (Advocacy, Inc.), Austin Latimer, David (Texas Association of Homes and Services for the Aging), Austin Mathews, C.W. "Mat" (Texas Organization of Residential Care Communities), Del Valle Rich, Sid (Texas Association of Residential Care Communities), Austin Against: Laing, W.N., Jr. (Himself), Waco Pace, Kay (Unlimited Care & the small care home industry), Arlington On: Bradberry, Anita (Texas Association for Home Care), Austin Gold, Marc (Long Term Care Policy, Texas Department of Human Services), Austin Lehrman, Jim (Texas Department of Human Services), Austin Registering, but not testifying: For: Baumbach, Susan (Texas Health Care Association), Austin Ferris, Beth (Texas Advocates for Nursing Home Residents), Austin Gantt, Melanie (Mental Health Association in Texas), Austin Gilchrist, Alfred (Texas Medical Association), Austin Hennigan, Mary (Texas Occupational Therapy), Austin Holliday, Sid (TALA), Galveston Holtermann, John (Texas Silver-Haired Legislature), San Marcos Marshall, Susan (The Arc of Texas), Austin McCarter, Peggy (Texas Assisted Living Association), San Antonio McClure, Spencer (Texas Council of Community MHMR Centers, Inc.), Austin Prough, Andrew (Citizens Commission on Human Rights), Austin Rose, Harold (American Association of Retired Persons), Austin Swift, Larry (Brain Injury Association of Texas), Austin Against: Nelson, Pat (Residential care homes & senior Texans), Arlington St. Clair, Deborah (The elderly / disabled Texans), Waco St. Clair, Johnny (Himself), Waco On: Callaway, Sherry (Merrill Gardens in San Antonio & Texas Assisted Living Assn.), Boerne Henderson, Marina (Texas Health and Human Services Commission), Austin Mitchell, Bettye (Texas Department of Protective & Regulatory Services), Austin Steele, Penny (Texas Department of Mental Health and Mental Retardation), Austin Willis, John (Texas Department on Aging), Austin Written materials submitted: For: Gantt, Melanie (Mental Health Association), Austin Lovelace, Joe (National Alliance for the Mentally Ill), Dallas SB 94 For: Bradberry, Anita (Texas Association for Home Care), Austin Hayes, Aaryce (Advocacy, Inc.), Austin Registering, but not testifying: For: Cernoch, Jennifer (Texas Respite Resource Network), San Antonio Denton, Ann (Enterprise Foundation), Austin Ferris, Beth (Texas Advocates for Nursing Home Residents), Austin Gilchrist, Alfred (Texas Medical Association), Austin Gladden, Wilhelmina (American Association for Retired Persons), Ft. Worth Harris, Lauralee (Mental Health Association of Tarrant), N Richland Hill Hennigan, Mary (Texas Occupational Therapy Association), Irving Holtermann, John (Texas Silver-Haired Legislature), San Marcos Latimer, David (Texas Association of Homes & Services for the Aging), Austin Prough, Andrew (Citizens Commission on Human Rights), Austin Schwartz, Jonas (United Cerebral Palsy of Texas), Austin Swift, Larry (Brain Injury Association of Texas), Austin Tesmer, David (Texas Health Resources), Grand Prairie Walker, Craig (Texas Hospital Home Health Association), Austin On: Gold, Marc (Texas Department of Human Services), Austin Henderson, Marina (Texas Health & Human Services Commission), Austin Jakovich, Derek (Bureau of Licensing & Compliance, Texas Dept. of Health), Austin Mixon, Paula (Texas Department of Protective & Regulatory Services), Austin Saldivar, Nora (Texas Department of Health, Health Facility Licensing), Austin Stearman, Nance (Texas Department of Health), Austin Written materials submitted: For: Gantt, Melanie (Mental Health Association in Texas), Austin Lovelace, Joe (National Alliance for the Mentally Ill), Dallas SB 95 For: Bradberry, Anita (Texas Association for Home Care), Austin Denton, Ann (Enterprise Foundation), Austin Gladden, Wilhelmina (American Association of Retired Persons), Ft. Worth Hayes, Aaryce (Advocacy, Inc.), Austin Schwartz, Jonas (United Cerebral Palsy of Texas), Austin Registering, but not testifying: For: Baumbach, Susan (Texas Health Care Association), Austin Cernoch, Jennifer (Texas Respite Resource Network), San Antonio Gilchrist, Alfred (Texas Medical Association), Austin Harris, Lauralee (Mental Health Association), NRichland Hills Hennigan, Mary (Texas Occupational Therapy Association), Austin Latimer, David (Texas Associatin of Homes & Services for the Aging), Austin Swift, Larry (Brain Injury Association of Texas), Austin On: Dale, Sarah (Texas Department of Housing and Community Affairs), Austin Garvin, John (Texas Department on Housing & Community Affairs), Austin Gold, Marc (Texas Department of Human Services), Austin Henderson, Marina (Texas Department of Health & Human Services), Austin Holtermann, John (Texas Silver-Haired Legislature), San Marcos Jakovich, Derek (Department of Health), Austin Mitchell, Bettye (Texas Department of Protective & Regulatory Services), Austin Saldivar, Nora (Texas Department of Health), Austin Stearman, Nance (Texas Department of Health), Austin Written materials submitted: For: Gantt, Melanie (Mental Health Association in Texas), Austin Prough, Andrew (Citizen's Commission on Human Rights), Austin SB 96 On: Bradberry, Anita (Texas Association for Home Care), Austin Denton, Ann (Enterprise Foundation), Austin Registering, but not testifying: For: Cernoch, Jennifer (Texas Respite Resource Network), San Antonio Gladden, Wilhelmina (American Association of Retired Persons), Ft. Worth Holtermann, John (Texas Silver-Haired Legislature), San Marcos Latimer, David (Texas Association of Homes and Services for the Aging), Austin Marshall, Susan (The Arc of Texas), Austin Prough, Andrew (Citizen's Commission on Human Rights), Austin Schwartz, Jonas (United Cerebral Palsy of Texas), Austin Swift, Larry (Brain Injury Association of Texas), Austin On: Gold, Marc (Texas Department of Human Services), Austin Henderson, Marina (Texas Health & Human Services Commission), Austin Jakovich, Derek (Texas Department of Health), Austin Mixon, Paula (Texas Department of Protective & Regulatory Services), Austin Saldivar, Nora (Texas Department of Health), Austin Stearman, Nance (Texas Department of Health), Austin Written materials submitted: For: Denton, Ann (Enterprise Foundation), Austin Gantt, Melanie (Mental Health Association in Texas), Austin Hayes, Aaryce (Advocacy, Inc.), Austin Lovelace, Joe (National Alliance for the Mentally Ill), Dallas SB 200 For: Gladden, Wilhelmina (American Association of Retired Persons), Ft. Worth Harris, Lauralee (Mental Health Association of Tarrant), Richland Hills Hayes, Aaryce (Advocacy, Inc.), Austin Against: Deaton, Diana (Texas Assisted Living Association), Austin Rich, Sid (Texas Association of Residential Care Communities), Austin On: Gold, Marc (Texas Department of Human Services), Austin Registering, but not testifying: For: Holtermann, John (Texas Silver-Haired Legislature), San Marcos Latimer, David (Texas Association of Homes and Services for the Aging), Austin Swift, Larry (Brain Injury Association of Texas), Austin Against: Holliday, Sid (TALA), Galveston On: Henderson, Marina (Texas Health & Human Services Commission), Austin Lehrman, Jim (Texas Department of Human Services), Austin Mitchell, Bettye (Texas Department of Protective & Regulatory Services), Austin Willis, John (Texas Department on Aging), Austin Written materials submitted: For: Gantt, Melanie (Mental Health Association in Texas), Austin Against: Griffin, Randy (Legacy Living Centers), Plano SB 254 Registering, but not testifying: For: Courtney, Chuck (Texas Retailers Association), Austin Gonzales, David (Legend Pharmacy), Austin Hull, Sharon (Texas Pharmacy Association), Austin On: Hatcher, Johnny (Texas Department of Public Safety), Austin Taylor, Larry (Texas Department of Public Safety), Austin SB 413 For: Hargrave, Terry, PhD (Texas Association for Marriage & Family Therapy), Amarillo Pulliam, George (Himself), Houston Registering, but not testifying: For: Ashby, Cindy (Texas Counseling Association), Austin Hernandez, Leslie (National Association of Social Workers), Austin SB 511 Registering, but not testifying: For: Courtney, Chuck (Texas Retailers Association), Austin Gonzales, David (Legend Pharmacies S.W.), Austin Hull, Sharon (Texas Pharmacy Association), Austin On: Dodson, Gay (Texas State Board of Pharmacy), Austin


AccDC is a free development resource for international businesses, organizations, and academic institutions wishing to incorporate Accessible Innovation within future web technologies.
"Accessible Innovation" refers to the creation of new technologies that include Accessibility as a core platform feature of development.
AccDC was awarded the "Above and Beyond Accessibility Award" from the United States Department of Labor, and was presented at the Developing with Accessibility Event, hosted by the Federal Communications Commission in Washington DC in 2012.
The AccDC API is a JavaScript based Dynamic Content Management System that automates the rendering of dynamic content to ensure accessibility for screen reader and keyboard only users.
The AccDC Technical Style Guide is designed to provide reliable and consistent interaction designs that are accessible to the highest percentage of people possible, and to establish a baseline for Functional Accessibility that can be utilized, built upon, studied, and tested against.
AccDC Bootstrap is an HTML parser that renders advanced, accessible interactive controls using semantic HTML markup.
AccDC API Mirrors:
At its core, AccDC is a JavaScript based API that manages dynamic content objects, called AccDC Objects, by automating accessible rendering processes for Rich Internet Applications.
This works by acting as a standalone interface, or as a scaled down plugin for jQuery, Dojo, or MooTools, that extends the functionality of each by tying into their respective rendering processes.
This normalization makes it possible to share UI components built using AccDC Objects between jQuery, Dojo, and MooTools, without requiring modification, since all such functionality ties into the same AccDC API commands.
The AccDC API manages all of the following rendering processes separately within each AccDC Object instance:
Additionally, the AccDC API automates all of the following accessibility features for rendered dynamic content through AccDC Objects:
View the Core API tab for a comprehensive listing of AccDC API properties and methods.
To learn how to set up AccDC within a working code environment, view the AccDC Technical Style Guide.


An Event
is an object
that allows you to be notified
when something interesting happens.
Here's an example of using the
chrome.tabs.onCreated
event
to be notified whenever there's a new tab:
chrome.tabs.onCreated.addListener(function(tab) { appendToLog('tabs.onCreated --' + ' window: ' + tab.windowId + ' tab: ' + tab.id + ' index: ' + tab.index + ' url: ' + tab.url); });
As the example shows,
you register for notification using addListener()
.
The argument to addListener()
is always a function that you define to handle the event,
but the parameters to the function depend on
which event you're handling.
Checking the documentation for
chrome.tabs.onCreated
,
you can see that the function has a single parameter:
a Tab object
that has details about the newly created tab.
You can invoke the following methods on any Event
object:
void addListener(function callback(...)) void removeListener(function callback(...)) bool hasListener(function callback(...))


« Zoo Plan:
Table of Contents
Software By: Solidify inc
**This working prototype is functioning Documentation for the Interactive Zoo Project.
Actual Work & Progress Coming Soon But Please Enjoy This BETA release.
Table of Contents
Slide Presentation
Zoo Introduction
Zoo Home
Zoo 3D Prototype
Zoo Prototype
The client wants to build an interactive Zoo...
Thanks for your time having me in your office.
Stop searching and build more
I want to help!
Save the planet.
Love life.
Lets Build a Better Future
Learn More!


Kenyans React As Handshake Fever Catches Up With Didmus Barasa, Simba Arati [Photos]
by WycliffeThat politics is not for the faint-hearted is not a secret. For as long as I can remember I have seen foes become friends and political buddies turn enemies.
For the past few weeks, Kimilili Member of Parliament Didmus Barasa and his Dagoretti North counterpart Simba Arati have been trading jabs online and even in public rallies they attended.
This is following the violence that was witnessed in the Kibra constituency during the recently concluded by-election.
Jubilee had fronted former international football star McDonald Mariga who conceded an early defeat to Orange Democratic Movement (ODM) party’s Imran Okoth.
In a video that went viral, ODM supporters, who were in the company of Arati, were filmed manhandling Barasa.
Barasa was roughed up by the rowdy youth as he spoke to Arati who had just arrived at DC Grounds in Kibra where voting was going on. The lawmaker lost his signature hat in the process.
Read: Garissa Woman Rep Anab Subow In Trouble With #KOT Over ‘Uncircumcised Raila’ Remark
Arati’s efforts to calm down the youth were futile as they demanded that Barasa leaves the polling station.
The lawmaker and politicians allied to his Jubilee party criticized Arati and the ODM party for allegedly unleashing goons at him and other leaders who were in the constituency.
ODM accused Deputy President William Ruto who is said to have pushed for Mariga’s candidature of invading ODM leader Raila Odinga’s stronghold.
The leaders allied to Jubilee including former Kakamega Senator Boni Khalwalwe were accused of bribing voters claims they have dismissed.
Read Also: Family Seeks Justice For Man Run Over By Car In Kibra MP-Elect Imran Okoth’s Campaign Convoy
Edwin Sifuna, the ODM secretary-general is quoted saying the supporters were defending “Baba’s bedroom”.
The accusations degenerated to an online spat between the leaders from the two camps who exchanged unprintables.
But all that seems to be in the past now as Arati and Barasa were on Tuesday photographed while exchanging pleasantries at Parliament moments before Imran took oath of office as Kibra MP.
One would agree with former Italian politician Niccolò Machiavelli that unscrupulous behaviour is and will always be normal for survival in politics.
From the smiles, on their faces, a section of Kenyans think the lawmakers have buried the hatchet. But will the ‘truce’ last?
Here are some of the reactions online:


SPEECH-DISPATCHER(1) User Commands SPEECH-DISPATCHER(1) NAME speech-dispatcher - server process managing speech requests in Speech Dispatcher SYNOPSIS speech-dispatcher [-{d|s}] [-l {1|2|3|4|5}] [-c com_method] [-S socket_path] [-p port] | [-v] | [-h] DESCRIPTION speech-dispatcher is a server process that is responsible for transform‐ ing requests for text-to-speech output into actual speech hearable in the speakers. It arbitrates concurrent speech requests based on message pri‐ orities, and abstracts different speech synthesizers. Client programs, like screen readers or navigation software, send speech requests to speech-dispatcher using TCP protocol (with the help of client libraries). speech-dispatcher is usually started automatically by client libraries (i.e. autospawn), so you only need to run it manually if testing/debug‐ ging, or when in other explicit need for a special setup. OPTIONS -d, --run-daemon Run as a daemon -s, --run-single Run as single application -a, --spawn Start only if autospawn is not disabled -l, --log-level Set log level (1..5) -c, --communication-method Communication method to use (unix_socket or inet_socket) -S, --socket-path Socket path to use for 'unix_socket' method (filesystem path or 'default') -p, --port Specify a port number for 'inet_socket' method -P, --pid-file Set path to pid file -C, --config-dir Set path to configuration -v, --version Report version of this program -D, --debug Output debugging information into /tmp/.speech-dispatcher -h, --help Print this info BUGS Please report bugs to<EMAIL_ADDRESS>SEE ALSO spd-say(1) The full documentation for speech-dispatcher is maintained as a Texinfo manual. If the info and speech-dispatcher programs are properly installed at your site, the command info speech-dispatcher should give you access to the complete manual. speech-dispatcher 0.7.1 March 2011 SPEECH-DISPATCHER(1)


Overview
topics
vocabulary
-
Details about a topic
{% for i in topic_ids %}
{{ i }}
{% endfor %}
words