The ParSimulator class is designed specifically for symmetric, shared memory multiprocessors (SMPs). The multi-core processors that have become ubiquitous in recent years are an important instance of this class of machines. The software technology that underlies the ParSimulator is OpenMP (see http://www.openmp.org), which is an extension of the C and C++ compilers and runtime systems to support multi-threaded computing. The OpenMP standard is now supported by most (probably all) major compilers: the GNU C++ Compiler and professional editions of Microsoft Visual Studio are important examples (important to me, that is, because those are what I use for most of my simulation work).
The critical first step, therefore, to using the ParSimulator is to enable the OpenMP extensions for your compiler. For the GNU C++ compiler, simply add the flag '-fopenmp' to your linker and compiler arguments. For MS Visual Studio, this is a build option. For other compilers and development environments, see your documentation. Prior to executing a simulation, the maximum number of threads that will be used by OpenMP (and, therefore, the simulator) can be set with the OMP_NUM_THREADS environment variable (this works for the GNU compilers, at least). The default in most cases is to use a number of threads equal to the number of processors or cores in your computer.
Having enabled the OpenMP options for your compiler, you are ready to start preparing your model to work with the parallel simulator. As a first step, you can do the following. This example assumes that your main simulation routine looks something like this:
... Simulator<IO_Type>* sim = new Simulator<IO_Type>(my_model); /** * Register listeners with the Simulator to collect statistics * .... */ while (sim->nextEventTime() < t_end) sim->execNextEvent(); ...or this
... Simulator<IO_Type>* sim = new Simulator<IO_Type>(my_model); /** * Register listeners with the Simulator to collect statistics * .... */ sim->execUntil(t_end); ...which does the same thing. The reason for this assumption is described in the section on limitations. Note, however, that any Listeners you have registered with your Simulator instance will work normally (almost, I'll get to that).
Assuming you have code like the above, replace it with code like the following:
... ParSimulator<IO_Type>* sim = new ParSimulator<IO_Type>(my_model); /** * Register listeners with the ParSimulator to collect statistics * .... */ sim->execUntil(t_end); ...This should work just like your previous code with the following caveats.
First, your models must not share variables. All information exchanged between models must occur via events at their input and output. Moreover, the order of items in the bags of input received by your model may change from run to run, though the contents are guaranteed to be the same. Therefore, the repeatability of your simulation runs depends on your models being insensitive to the order of elements in their input bags.
Second, reports produced by your listeners may be formatted in ways you do not expect. For any individual atomic model, the listing of state transitions and output events will be in time order. Across models, however, this may not be the case. For example, suppose that you have two atomic models arranged as follows: A->B. You may see all state transitions and output for A listed first, followed by all state transitions and outputs for B. Most likely, these will be intermingled. Note too that the output reported for network models may not be in its proper time order, though the output reported for its atomic components will be.
The reason for these orderings is that, though the simulation of each model is done in the proper time order of its events, the ParSimulator overlaps simulation of models whenever this is possible. In the above example, it is possible to simulate model A without worrying about what B is doing because B never provides input to A. The simulator (if properly configured) will take advantage of this to simulate A and B in parallel. Hence, we may see all of the output from A before we see anything for B. Once again, however, all callbacks to registered Listeners for any particular atomic model will be in the proper time order.
Note too that this implies that callbacks to your listeners may occur in parallel. In the above example, it may be that the same listener receives concurrent notifications about a state change for model A and state change for model B, or output from A and state change of B, or any such combination. It is imperative therefore that the callbacks in your listeners be thread safe.
This implies also that your network models must have routing methods that are thread safe. This is true for the network models that are included with Adevs. If you have implemented your own network models, be sure that their route methods are thread safe.
Third, and most critical, your atomic components must implement the new lookahead method, which is inherited from the Devs base class. This method must return a positive value subject to the guarantees described in section 9.2. For the purposes of getting your code to compile and run, your lookahead methods can simply return a very small value (i.e., something positive but close to zero; say 1E-8 or 1E-9). In this case, your simulator should compile and (very slowly) execute. Even if you have the patience to wait for it to complete, however, the outcome will likely be wrong. Nonetheless, such a test will determine if your build environment is setup properly.
The above changes are sufficient in most cases to make your existing, sequential simulator execute with the parallel simulator. In summary, these mandatory steps are:
These steps alone are unlikely to yield an improvement in performance (or, indeed, correct results). As a general rule, correctly speeding up your simulation requires giving the ParSimulator specific information about your model; information that only you can provide. Without this information, the synchronization overhead incurred by the parallel simulation algorithm is staggeringly huge. The majority of this document deals with the problem of creating parallel simulations that are fast and execute correctly.
Beyond these purely technical limits, also note that making effective use of this (or any) parallel discrete event simulator is difficult. Applications of practical interest require the identification of lookahead for the model's atomic components, partitioning of the model among the available processors, and implementing code to enable the parallel simulator to take advantage of your model's lookahead and partitioning.
So while this guide addresses issues specific to using the ParSimulator class, I strongly recommend that, if you are not already intimately familiar with parallel simulation, that you obtain a book on the topic. ``Building Software for Simulation'', authored by James Nutaro (the author of this manual) and published by Wiley in 2010, contains a chapter on conservative discrete event simulation with DEVS in general and Adevs in particular. You may find this book to be a useful introduction, though there are other excellent texts on the subject.
To illustrate, consider a very simple, atomic model that acts as a transcriber. In the absence of input, the model neither changes state nor produces output: its time advance is infinite. Upon receiving an input, the model retains it for exactly one unit of time and then expels it. So, for example, if the input to the system is the series of letters 'A', 'B', and 'C' at times 1, 2, and 3 respectively, then its output is 'A', 'B', and 'C' at times 2, 3, and 4 respectively. If the model receives an input while transcribing, then that input is discarded. So, for example, if 'A', 'B', and 'C' arrive at times 2, 2.5, and 3 then the output from the model is 'A' and 'C' at times 3 and 4.
If I know the input to this model until some time t, then I can determine its output until time t+1. Significantly, I do not need to know its input in the interval from t to t+1. For instance, suppose I know that the input at time zero is 'A'. Clearly, the only output of the model in the interval 0 to 1 (inclusive) is the value 'A' at time 1. Moreover, suppose I know that the input at t=0 is 'A' and that there is no other input until at least time 0.5. In this case, I know that the output until (but not including) time 1.5 consists only of 'A' at time 1. Any input following time 0.5 cannot occur until, at its earliest, time 1.5. This model has a lookahead of 1. Given its input to time t, its output is fixed to time t+1. Output in this interval does not depend on input in the same interval.
In network models, lookahead may accumulate. As an example, suppose that two transcribers are connected in series. In this case, the lookahead of the composite is two; i.e., the sum of the lookaheads of the components. If, however, a network model comprises two transcribers in parallel, then the lookahead of the network is only one. Generally speaking, however, larger networks tend to have larger lookaheads, and large lookahead is essential for getting good performance from the simulator.
To take advantage of lookahead in a model, the simulator must be told that it exists. This is done by overriding the lookahead method of the Devs class. All atomic and network models inherit this method from the Devs base class, and its default implementation is to return zero.
Lookahead is most useful to the simulator if it is coupled with a capability to actually calculate the model's outputs to this time. To calculate those outputs, however, requires knowledge of the intervening states. An atomic model enables the simulator to project its output into the future by implementing two method: beginLookahead and endLookahead.
The beginLookahead method is called to notify the model that further calculations of its outputs and state transitions are speculative. The default behavior of the beginLookahead method is to throw an exception, which notifies the simulator that this model does not support projecting its output into the future. An atomic model overriding this method must be capable of restoring its state variables to the instant that beginLookahead was called. The endLookahead method is called by the simulator when it is done projecting that model's output. This method must restore the model to the same state it was in when the beginLookahead method was called.
These methods are demonstrated by the Transcribe class shown below. This atomic model implements the transcriber described above.
/** * This model copies its input to its output following a * delay. */ class Transcribe: public adevs::Atomic<char> { public: Transcribe():adevs::Atomic<char>(),ttg(DBL_MAX),to_transcribe(' '){} void delta_int() { ttg = DBL_MAX; } void delta_ext(double e, const adevs::Bag<char>& xb) { if (ttg == DBL_MAX) { ttg = 1.0; // Find the largest input value adevs::Bag<char>::const_iterator iter = xb.begin(); to_transcribe = *iter; for (; iter != xb.end(); iter++) { if (to_transcribe < *iter) to_transcribe = *iter; } } else ttg -= e; } void delta_conf(const adevs::Bag<char>& xb) { delta_int(); delta_ext(0.0,xb); } void output_func(adevs::Bag<char>& yb) { yb.insert(to_transcribe); } double ta() { return ttg; } void gc_output(adevs::Bag<char>&){} double lookahead() { return 1.0; } void beginLookahead() { // Save the state chkpt.ttg = ttg; chkpt.to_transcribe = to_transcribe; } void endLookahead() { // Restore the state ttg = chkpt.ttg; to_transcribe = chkpt.to_transcribe; } char getMemory() const { return to_transcribe; } private: double ttg; char to_transcribe; struct checkpoint_t { double ttg; char to_transcribe; }; checkpoint_t chkpt; };A model comprising two transcribers connected in series is defined as follows.
/** * This model defines a pair of transcribers connected * in series as shown: -> t1 -> t2 ->. */ class Series: public adevs::Network<char> { public: Series(): Network<char>(), t1(),t2() { t1.setParent(this); t2.setParent(this); } void getComponents(adevs::Set<adevs::Devs<char>*>& c) { c.insert(&t1); c.insert(&t2); } void route(const char& x, adevs::Devs<char>* model, adevs::Bag<adevs::Event<char> >& r) { adevs::Event<char> e; e.value = x; if (model == this) e.model = &t1; else if (model == &t1) e.model = &t2; else if (model == &t2) e.model = this; } double lookahead() { return t1.lookahead()+t2.lookahead(); } private: Transcribe t1, t2; };
The above code examples illustrate all possible changes to your models - network and atomic - that might be needed to facilitate parallel simulation. Of these changes, only the lookahead method of the atomic model is actually required. The ParSimulator calculates default (and very conservative) lookaheads for the Network models if these are required. Atomic models that provide the endLookahead and beginLookahead methods may improve the execution time of the simulation. But only the lookahead values of the atomic models (or their parent if the model is partitioned by hand; see the next section) are actually required for correct execution.
In an ideal partitioning of the model, each thread is assigned roughly the same number of models, each model requires roughly the same amount of computational effort, and models assigned to separate threads rarely exchange inputs and outputs. This is the ideal that you should strive for in assigning your models to threads.
The actual assignment of a model to a thread is straightforward. Network and Atomic objects inherit the setProc method from their Devs base class. To assign the model to a particular thread, pass the number of that thread to the setProc method before the ParSimulator is created. Threads are numbered from 0 to the maximum number of threads (i.e., OMP_NUM_THREADS) minus one.
As the ParSimulator setups the simulation, it examines the thread to which each model is assigned and take the following actions:
This partitioning of the model tells the simulator how to distribute its computational workload. It does not tell the simulator which parts of the workload communicate with each other. For example, if half of your model is assigned to thread 0 and the other half to thread 1, the simulator does not yet know if the models in 0 send input to the models in 1, vice versa, or both. Without further information, the simulator assumes that every thread contains models that must communicate with all other threads. This is the most conservative assumption, and it imposes a substantial synchronization overhead.
If you know something about how the models assigned to the threads communicate, then you can provide this information to the simulator. This is done by passing a LpGraph object to the constructor of the ParSimulator. The LpGraph is a directed graph and the presence of an edge from node k to node j indicates that the models in thread k send input to the models in thread j. Absence of an edge indicates no flow of information along the missing edge. An edge is added to the LpGraph by calling its addEdge(A,B) method. This creates an edge from thread A to thread B.
The following snippet of code illustrates the partitioning procedure. This segment of code creates the block diagram model shown in Fig. 9.1. This model consists of two atomic components, A and B, and a network with two components C1 and C2. The model A is assigned to thread 0, B to thread 1, and the network C with its components C1 and C2 to thread 2. With this partition, thread 0 sends input to thread 1, thread 1 sends input to thread 2, and thread 2 to thread 0.
ModelA* A = new ModelA(); ModelB* B = new ModelB(); NetworkModelC* C = new NetworkModelC(); SimpleDigraph<IO_Type>* model = new SimpleDigraph<IO_Type>(); model.add(A); model.add(C); model.add(B); model.couple(A,B); model.couple(B,C); model.couple(C,A); A.setProc(0); B.setProc(1); C.setProc(2); LpGraph lpg; lpg.addEdge(0,1); lpg.addEdge(1,2); lpg.addEdge(2,3); ParSimulator<IO_Type> sim(model,lpg);
The generator operates as follows. It produces output at regular intervals of 1/2 units of time until it receives an input. At that time it stops. Note that the lookahead of the generator is zero because its pending output may be canceled at any time. The lookahead of the network, however, is one. That is, the lookahead of the network is the sum of its series components.
A Listener is constructed for this model to record the state and output trajectories of every component. This listener is made thread safe by the critical section placed around writes to standard output. It reports state and output trajectories for each atomic model in proper time order, but interleaves the trajectories of these models with each other.
The complete implementation of the model, listener, and simulator are shown below.
#include "Transcribe.h" #include "Genr.h" #include "adevs.h" #include <iostream> using namespace adevs; using namespace std; /** * Extend the SimpleDigraph class to allow its lookahead * to be set manually. */ class SimpleDigraphWithLookahead: public SimpleDigraph<char> { public: SimpleDigraphWithLookahead(): SimpleDigraph<char>(), look_ahead(0.0) { } void setLookahead(double look_ahead) { this->look_ahead = look_ahead; } double lookahead() { return look_ahead; } private: double look_ahead; }; /** * Listener to record the output and state trajectories of the * component models. */ Genr* A_g; Transcribe *A_t, *B, *C1, *C2; SimpleDigraphWithLookahead *A, *C; class Listener: public EventListener<char> { public: Listener(){} void outputEvent(Event<char> y, double t) { string which = which_model(y.model); #pragma omp critical cout << which << " @ t = " << t << ", y(t)= " << y.value << endl; } void stateChange(Atomic<char>* model, double t) { if (model == A_g) #pragma omp critical cout << which_model(A_g) << " @ t = " << t << ", running= " << A_g->isRunning() << ", next output= " << A_g->getNextOutput() << endl; else if (model == A_t) #pragma omp critical cout << which_model(A_t) << " @ t = " << t << ", memory= " << A_t->getMemory() << ", ta()= " << A_t->ta() << endl; else if (model == C1) #pragma omp critical cout << which_model(C1) << " @ t = " << t << ", memory= " << C1->getMemory() << ", ta()= " << C1->ta() << endl; else if (model == C2) #pragma omp critical cout << which_model(C2) << " @ t = " << t << ", memory= " << C2->getMemory() << ", ta()= " << C2->ta() << endl; else if (model == B) #pragma omp critical cout << which_model(B) << " @ t = " << t << ", memory= " << B->getMemory() << ", ta()= " << B->ta() << endl; else assert(false); } private: string which_model(Devs<char>* model) { if (model == A_g) return "A.A_g"; if (model == A_t) return "A.A_t"; if (model == A) return "A"; if (model == B) return "B"; if (model == C1) return "C.C1"; if (model == C2) return "C.C2"; if (model == C) return "C"; assert(false); return ""; } }; int main(int argc, char** argv) { // Component A A_g = new Genr(); A_t = new Transcribe(); A = new SimpleDigraphWithLookahead(); A->setLookahead(A_t->lookahead()+A_g->lookahead()); A->add(A_g); A->add(A_t); A->couple(A,A_g); // A -> A_g A->couple(A_g,A_t); // A_g -> A_t A->couple(A_t,A); // A_t -> A A->setProc(0); // Assign to thread zero // Component B B = new Transcribe(); B->setProc(1); // Assign to thread one // Component C C1 = new Transcribe(); C2 = new Transcribe(); C = new SimpleDigraphWithLookahead(); C->setLookahead(C1->lookahead()+C2->lookahead()); C->add(C1); C->add(C2); C->couple(C,C1); // C -> C1 C->couple(C2,C); // C2 -> C C->couple(C1,C2); // C1 -> C2 C->couple(C2,C1); // C2 -> C1 C->setProc(2); // Assign to thread two // Create the overarching model SimpleDigraph<char>* model = new SimpleDigraph<char>(); model->add(A); model->add(B); model->add(C); model->couple(A,B); model->couple(B,C); model->couple(C,A); // Create the corresponding LPGraph LpGraph lpg; lpg.addEdge(0,1); lpg.addEdge(1,2); lpg.addEdge(2,0); // Create the simulator ParSimulator<char>* sim = new ParSimulator<char>(model,lpg); // Register the listener Listener* listener = new Listener(); sim->addEventListener(listener); // Run the simulation until t=10 sim->execUntil(10.0); // Cleanup and exit delete sim; delete listener; delete model; return 0; }
A subset of the output produced by this simulation is shown below. The intermingling of reported events in time is immediately apparent.
... C.C2 @ t = 7.5, y(t)= G C @ t = 7.5, y(t)= G C.C1 @ t = 7.5, y(t)= I C.C2 @ t = 7.5, memory= I, ta()= 1 C.C1 @ t = 7.5, memory= G, ta()= 1 C.C1 @ t = 8.5, y(t)= G C.C2 @ t = 8.5, y(t)= I C @ t = 8.5, y(t)= I C.C1 @ t = 8.5, memory= I, ta()= 1 C.C2 @ t = 8.5, memory= G, ta()= 1 A.A_g @ t = 7.5, running= 0, next output= I A.A_g @ t = 8.5, running= 0, next output= I A.A_g @ t = 9.5, running= 0, next output= I C.C1 @ t = 9.5, y(t)= I C.C2 @ t = 9.5, y(t)= G C @ t = 9.5, y(t)= G C.C1 @ t = 9.5, memory= G, ta()= 1 C.C2 @ t = 9.5, memory= I, ta()= 1 ...
However, a search for just the events for model C1 gives the expected result: all of its events are listed in their proper time order. Specifically, the command 'grep C2 output', where 'output' is the file with the results of the simulation, yields the following:
C.C2 @ t = 3.5, memory= A, ta()= 1 C.C2 @ t = 4.5, y(t)= A C.C2 @ t = 4.5, memory= C, ta()= 1 C.C2 @ t = 5.5, y(t)= C C.C2 @ t = 5.5, memory= E, ta()= 1 C.C2 @ t = 6.5, y(t)= E C.C2 @ t = 6.5, memory= G, ta()= 1 C.C2 @ t = 7.5, y(t)= G C.C2 @ t = 7.5, memory= I, ta()= 1 C.C2 @ t = 8.5, y(t)= I C.C2 @ t = 8.5, memory= G, ta()= 1 C.C2 @ t = 9.5, y(t)= G C.C2 @ t = 9.5, memory= I, ta()= 1So too for the output of model 'A_g', which is shown below:
A.A_g @ t = 0.5, y(t)= A A.A_g @ t = 0.5, running= 1, next output= B A.A_g @ t = 1, y(t)= B A.A_g @ t = 1, running= 1, next output= C A.A_g @ t = 1.5, y(t)= C A.A_g @ t = 1.5, running= 1, next output= D A.A_g @ t = 2, y(t)= D A.A_g @ t = 2, running= 1, next output= E A.A_g @ t = 2.5, y(t)= E A.A_g @ t = 2.5, running= 1, next output= F A.A_g @ t = 3, y(t)= F A.A_g @ t = 3, running= 1, next output= G A.A_g @ t = 3.5, y(t)= G A.A_g @ t = 3.5, running= 1, next output= H A.A_g @ t = 4, y(t)= H A.A_g @ t = 4, running= 1, next output= I A.A_g @ t = 4.5, y(t)= I A.A_g @ t = 4.5, running= 0, next output= I A.A_g @ t = 5.5, running= 0, next output= I A.A_g @ t = 6.5, running= 0, next output= I A.A_g @ t = 7.5, running= 0, next output= I A.A_g @ t = 8.5, running= 0, next output= I A.A_g @ t = 9.5, running= 0, next output= ISo the individual traces for these components appear in the proper order in the output, but they are intermingled in an arbitrary way.
If your input and output types are primitive objects (ints, chars, etc.) or simple structure, then the default approach to memory management is sufficient. Indeed, the default memory manager should be sufficient for any types of objects for which the compiler's default copy constructor and assignment operator produce deep copies. If you are passing pointers to complex objects or objects that use their own internal scheme for managing memory (e.g., that use copy on write semantics, reference counting, etc.), then you will need to build a custom memory manager. The MessageManager interface is used for this purpose, and your custom MessageManager is provided to the ParSimulator as the final argument to its constructor.
The MessageManager has two virtual methods that must be overridden by any derived class. The first is the clone method, which has the signature
X clone(X& value)where X is the type of object that your simulator uses for input and output. This method must create and return a deep copy of the value. The second method is destroy, and it has the signature
void destroy(X& value)where X is as before. This method must free the memory associated with the value.
The implementation of the default memory manager is as follows:
template <typename X> class NullMessageManager: public MessageManager<X> { public: /// Uses the objects default copy constructor X clone(X& value) { return value; } /// Takes no action on the value void destroy(X& value){} };To illustrate the construction of a new MessageManager, the implementation below is for a model that uses C style strings (i.e., null terminate arrays of characters) for input and output. The clone method allocates memory for a string and then copies to it the contents of the value. The destroy method frees the memory allocated for the string.
class CStringMessageManager: public adevs::MessageManager<char*> { public: char* clone(char* & value) { char* new_string = new char[strlen(value)]; strcpy(new_string,value); return new_string; } void destroy(char* & value) { delete [] value; } };If this message manager were supplied to the simulator in the example of the previous section, then the ParSimulator would be constructed as follows:
. . . CStringMessageManager* msg_mngr = new CStringMessageManager(); ParSimulator<char*>* sim = new ParSimulator<char*>(model,lpg,msg_mngr); . . .The simulator would then use the supplied message manager for handling input and output objects that exist simultaneously in the simulator's many threads.


| Class | Description |
|---|---|
| Command |
The Command class is at the very core of the entire command framework.
|
| CommandGroup |
A
CommandGroup is a list of commands which are executed in sequence. |
| ConditionalCommand |
A
ConditionalCommand is a Command that starts one of two commands. |
| InstantCommand |
This command will execute once, then finish immediately afterward.
|
| PIDCommand |
This class defines a
Command which interacts heavily with a PID loop. |
| PIDSubsystem |
This class is designed to handle the case where there is a
Subsystem which uses a single
PIDController almost constantly (for instance, an elevator which attempts to stay at a
constant height). |
| PrintCommand |
A
PrintCommand is a command which prints out a string when it is initialized, and then
immediately finishes. |
| Scheduler |
The
Scheduler is a singleton which holds the top-level running commands. |
| StartCommand |
A
StartCommand will call the start() method of another command
when it is initialized and will finish immediately. |
| Subsystem |
This class defines a major component of the robot.
|
| TimedCommand |
A
TimedCommand will wait for a timeout before finishing. |
| WaitCommand |
A
WaitCommand will wait for a certain amount of time before finishing. |
| WaitForChildren |
This command will only finish if whatever
CommandGroup it is in has no active children. |
| WaitUntilCommand |
WaitUntilCommand - waits until an absolute game time.
|
| Exception | Description |
|---|---|
| IllegalUseOfCommandException |
This exception will be thrown if a command is used illegally.
|


game Class
Item Index
Properties
Methods
CanvasSpace
-
x
-
y
Converts the screen coordinates x,y to canvas x,y. For this to be correct, x and y must be inside the canvas in screen space.
Parameters:
-
x
NumberThe x-coord in screen space
-
y
NumberThe y-coord in screen space
Returns:
draw
()
The draw function. Called directly after update every loop
GetCanvasOffset
()
Gets the offset of the canvas relative to the screen. Useful for getting the canvas space. Sets game.canvasOffset
ResizeCanvas
-
width
-
height
Sets the canvas resolution to width x height.
Parameters:
-
width
NumberThe horizontal resolution to set the canvas
-
height
NumberThe vertical resolution to set the canvas
SetLogic
-
logic
Sets the logic to use during the game loop. There can only be one logic active at a time.
Parameters:
-
logic
GameLogicThe logic to use
start
()
Should be called after document.ready. Gets the canvas element and context.
update
()
The update function. Called directly before draw every loop
Properties
canvas
Context
The canvas element's 2d context. This is what you draw to.
canvasElement
Canvas
The canvas element in the DOM
canvasOffset
Object
An object with x and y attributes that represents the offset of the canvas in relation to the screen
height
Number
The height of the canvas.The same as canvasElement.height
Default: 400
width
Number
The width of the canvas. The same as canvasElement.width
Default: 400


A series of talks and workshops designed to broaden perspectives and foster learning
🕖 19.00 (GMT+1)
We will be hosting HackPlay talks!! Check out on: HackPlay website
Learning is always interesting. As part of our mission, we have created Talks & Workshops. Here you will find a space where experts will be invited to share their knowledge about the most edge-cutting topics in technology.
Due to our goal to include as many people as possible, T&W will take place online. The talks will be streamed live on Twitch and discussion will take place afterwards in our Discord server. Each T&W will be recorded on YouTube.
During the semester, we will organize these events periodically. With each T&W it's date and time will be announced. Generally, they will take place at 7 p.m. (GMT+1). As the dates vary we recommend to anyone interested to subscribe to our email list in order to get information about our future talks or workshops.


Fixing a div absolutely inside a relatively positioned element
Learn when and how to use Static, Relative, Absolute and Fixed Positioning effectively
If you are a beginner or intermediate level Web Designer and you are terrified of the position rule in CSS, rest assured that you are not alone. With only four possible values - Static, Relative, Absolute, and Fixed - at first glance it seems like it would be easy to learn. In reality, this is the one rule that frustrates both beginners and seasoned veterans on a regular basis.
Why is it so difficult to pick up? Well, I think it's just advanced enough that many beginning designers haven't made it to the point where they need to tackle it yet. On the other hand, intermediate and advanced users find it very simple to use once they know how to use it.
Once they've learned, they often forget what they've learned because they don't use it for another month or so, and then they do a quick Google search to refresh their memory.
There isn't enough demand for quality resources to teach it, and so everyone just gravitates to a few sites to learn it and there aren't many new sites that take up the issue, so we never really see much diversity in the way the information is presented.
I'm going to attempt to put it all together here in one place so that, hopefully you will have a good reference where you can quickly find the exact info you need on the subject. Here goes:
First of all, it is important to understand why and when to use each positioning value:
- Static:
- This is the default value for position:
- You do not need to designate this in CSS unless you need to change an elements position value as it has been set to relative, absolute or fixed previously such as with the use of Media Queries.
- Relative:
- Use if you want to position this element in relation to it's original position in the document.
- You may use this to designate this element to use positioning on a child element. In other words, you may use position: relative; on a div and then position another element which lives inside that div in relation to the designated div. More on this in a few minutes.
- Absolute:
- Use this to position an element in relation to a previously designated element.
- If no other parent element is designated with position: relative; then you can position in relation to the viewport itself.
- Fixed:
- This element will be positioned with respect to the viewport and will remain in that position permanently even when the rest of the page scrolls.
- This is often used for a menu bar at the top of the screen.
- Remember to pay attention to the z-axis attribute in CSS when using this. I usually designate a z-axis of 10 or higher for a menu bar to stay above certain items such as embedded You-Tube videos.

Examples
Now that you have a basic understanding of when and why to use the different values for position: let's take a look at some code examples:

margin: 10px;
width: 150px;
height: 100px;
background-color: LightGray;
}
.parent-relative {
margin: 10px;
position: relative;
width: 150px;
height: 100px;
background-color: DimGray;
}
.red {
position: static;
width: 50px;
height: 50px;
background-color: red;
}
.blue {
position: relative;
top: 10px;
left: 30px;
width: 50px;
height: 50px;
background-color: blue;
}
.yellow {
position: absolute;
bottom: 30px;
left: 30px;
width: 50px;
height: 50px;
background-color: yellow;
}
.green {
position: fixed;
width: 50px;
height: 50px;
background-color: green;
bottom: 0;
right: 0;
z-index: 12;
}
Line yy, Column xx
Spaces: 4 HTML/CSS
Important Observations
In the example above we have seven examples. The first is the red div which is set to static and therefor it is not necessary to display more than one. It will always appear exactly where it is supposed to in the flow of the document. In this case in the upper left hand corner of it's parent div.
Blue divs
The next two divs are blue. The first has a parent div that is set to static and the second has it's parent div set to relative. Because the blue div is set to relative, it will always be positioned relative to where it would normally be positioned in the flow of the document. The purpose of the example is to show that the parent div's setting of relative has no effect on the blue div.
Yellow divs
Now we take a look at the yellow divs. Wait a minute where is the first yellow div? No, the layout isn't broken. We've set the parent div to static on the first one, so the yellow div is being positioned in reference to the first parent element that has a position of relative. In this case, the div that surrounds the code snippet is set to relative, so the yellow div is now being positioned in reference to the code snippet div. If this div were set to static instead of relative, then the yellow div would appear in the lower left hand corner of the browser window.
Green divs
Now for the green div. Well, there isn't much to see here, or is there? Note that both of the green divs are placed in the bottom right hand corner of the page one on top of the other. The green divs are position: fixed; and they will stay where we put them in reference to the viewport. Also note that the parent div's status of static or relative makes absolutely no difference in this example. Fixed elements are always positioned in reference to the viewport no matter how their parent elments are designated.
Let's do something EPIC!


For us it is very important to know you in order to deliver the best experience.
We want to spread and share our knowlegde and love for movement.
We are willing to inspire others through movement.


We examine services!
- productize plug-and-play systems
- aggregate vertical solutions
- scale intuitive models
- drive user-centric synergies
- expedite vertical e-commerce
- architect rich paradigms
- incentivize B2B mindshare
- embrace synergistic experiences
- iterate world-class mindshare
- orchestrate one-to-one mindshare
- optimize distributed initiatives


The connection timed out !
Please try again after reducing the depth.
×
{% block body %}{% endblock body %}


⊗
Page 1
Page 2
Themes
School links
Music downloads
Backgrounds
☰
Welcome to my hotlist!
Classroom
Google Docs
Youtube
Gmail


This section details how to restore the SQL Server backup on a Windows AWS Server. This documentation assumes that you have to use Windows SQL Server to restore the backup but that is probably not true.
Create a Windows SQL Server
On AWS launch a new EC2 server.
For the AMI search “SQL Server” and select “Microsoft Windows Server 2019 with SQL Server 2019 Standard”.
For choosing an Instance Type I’ve tried a few. I found the queries to be very slow and couldn’t identify a blocking reason (I/O, CPU, Network, Queries, etc). So I can probably recommend any instance that has 16 GB of memory is really all you need.
I’ve tried ‘m5a.8xlarge’ and i3 storage-optimized. They don’t seem to increase performance.
If you are using a storage-optimized instance-type install AWS drivers so that windows can see the drive,
Then once you are in windows open disk management and format the additional drive and ensure you install the backup to the newly partitioned drive (probably D:)
To download to local disk: Copy-S3Object -BucketName your-s3-bucket-name -Key NLX/LMI-Oct2015.bak -LocalFile ‘C:Documents-Oct2015.bak’
Download and Install S3Browser
As a note: this is the preferred method. Additionally, it is recommeded that you buy premium ($30) to download faster
Open internet explorer
Go to internet options
Select security
Select internet
Select custom level
Scroll down and click enable file download
Download google chrome
Download and install S3Browser for faster downloads
Add IAM access and secret key to account to gain access to s3
Add the key to use the pro version
Select the options and mark concurrent downloads to 10~20
Download the NLX.bak file
Open s3 browser
Download the file from s3
The file will download in many parts
After the files are downloaded it will take awhile to merge the files locally into one nlx.bak file
Download Through the Web Browser
Open internet explorer
Go to internet options
Select security
Select internet
Select custom level
Scroll down and click enable file download
Download google chrome
Login to AWS S3 and download your file
Restore the NLx.bak File
Click windows and search for studio
Copy down the server name in the connect window for the python script later – if its blank click more
Start up SQL Server Management Studio, right-click on databases, ‘Restore Database’, pick file in device,
Screen will think for a minute once u select the file
Once u regain control select ok
Add Indexes
You will need to wait some time for the database to restore. Final step is to ADD INDEXES to the new database!
Click each table and add a non-cluster index for generatedJobId and/or applicationId when the table has it. This should speed your queries up big time. You may also want to add an index to the datetime fields as well.
Additional Instructions
The instructions below are included if you are planning to run a python script to process with the server. You may not have access to the provided python script at this time so these are left here for your reference.
Prepare for Running Python Script
Download Notepad++ (or other code editor)
Install python if it isn’t already (google python install)
In the requirements.txt file add ‘#egg=skills_util’ to the git url
Setup pipenv env with ‘pipenv –python 3.8’ (assuming thats the version you downloaded)
This step should generate a Pipfile from your requirements file. If it does not produce a pipfile with your items then do the following – install the requirements pipenv install -r requirements.txt


Veggies are proven to increase your friendship, says vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Other useful links include:
I'm actually an untidy person. I'm not ordered at all. In some senses I have to use grids to bring some order to the chaos that's whirring around in my head. Hamish Muir
Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jÃcama salsify.
Split in Half
Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jÃcama salsify.
Split in Half
Nori grape silver beet broccoli kombu beet greens fava bean potato quandong celery. Bunya nuts black-eyed pea prairie turnip leek lentil turnip greens parsnip. Sea lettuce lettuce water chestnut eggplant winter purslane fennel azuki bean earthnut pea sierra leone bologi leek soko chicory celtuce parsley jÃcama salsify.


LU WEI HSU
A frontend engineer,
base on Taipei / Taiwan.
Links
Resume
Github
Linkedin
Projects
nuxt-realwold-app


using address:
check plan number of factory:
check business plan:
factory address: build plan number:check all box machine of:
factory address: user address (can be empty):get box machine info:
box address:
total stock:
box price:
show all stock:
box address:draw:
box address: draw times: to:


Trade of the Day: Canopy Growth Leaves Bullish Mark on the Charts
CGC stock flashes a bullish reversal pattern on the charts
Cannabis stocks rallied on Wednesday, Nov. 20 on the back of a congressional committee passing a bill that looked to lift the federal ban on weed. As a result, shares of Canopy Growth (NYSE:CGC) also got a boost, which in turn left a notable bullish mark behind on the chart. All else being equal, this now calls for more upside in the stock.
Before looking at this trade idea, allow me to say that the medical cannabis industry, while quickly growing, is also highly sensitive to headline news, particularly as it relates to regulatory headlines.
Yesterday’s rally in cannabis stocks is a prime example of this, but we must not forget that this can cut both ways. In other words, while I see the below trade idea as valid, it does also come with the potential for much above average volatility and thus risk.
CGC Stock Charts
For perspective let’s first look at the multi-year chart with weekly increments. Here we see that CGC stock has been on a steady decline since early May; the down-trend is well in tact and defined. In September the stock then dropped below horizontal support around the $25 mark and fell even further in days following the company’s latest earnings report.
From a momentum perspective, the weekly MACD oscillator at the bottom of the chart is now deeply oversold, although it has been so for the past two months.
It is too early to detect much of a bullish reversal on the weekly chart just yet and the down-trend remains firmly in tact. As we will see on the daily chart, however, this could be in the process of changing.
On the daily chart we see that CGC stock gapped lower on Nov. 14 following the latest earnings report that investors were not impressed by. After two more days of selling, however, on Nov. 19 sellers finally exhausted themselves as the stock failed to stay lower and printed an outside day, i.e. a bullish reversal day. This was followed on Nov. 20 with a big follow-through buying day.
The down-gap on Nov. 14 followed by the up-gap on Nov. 20 formed a so-called ‘island reversal pattern,’ which should have at least short-term bullish implications for the stock.
If momentum continues, I see the stock moving higher toward a next upside target around $20, possibly followed by $22. Any strong bearish reversal that wipes out the gains of the Nov. 20 rally would be a stop loss signal.
Do you like high probability stock, ETF and options trades? Serge Berger sends them out for free daily. Sign up at www.thesteadytrader.com


class AdaptiveDecoding(object):
Known subclasses: cma.transformations.DiagonalDecoding
base class for adaptive decoding.
The adaptive decoding class is "dual" to the StasticalModel class, in that for linear transformations adapting either one or the other is equivalent.
TODO: this is a stump
| Method | __init__ |
len(scaling) determines the dimension. |
| Method | __mul__ |
A linear transformation expressed by multiplication |
| Method | norm |
return norm of x prior to the transformation |
| Method | transform |
apply the transformation / decoding AKA geno-pheno tf |
| Method | transform |
inverse transformation (encoding), might return None |
| Method | update |
AKA update. |
| Method | update |
update model here, if lazy update is implemented |
| Property | condition |
return condition number of the squared transformation matrix |
| Property | correlation |
return correlation matrix or None |
cma.transformations.DiagonalDecoding
len(scaling) determines the dimension.
The initial transformation is (typically) np.diag(scaling)
.
cma.transformations.DiagonalDecoding
A linear transformation expressed by multiplication
cma.transformations.DiagonalDecoding
apply the transformation / decoding AKA geno-pheno tf
cma.transformations.DiagonalDecoding
inverse transformation (encoding), might return None
cma.transformations.DiagonalDecoding
AKA update.
vectors are "isotropic", e.g.:
sm = StatisticalModel...() ad = AdaptiveDecoding...() z = sm.sample(1)[0] y = ad * z # decoding applied x = m + y # candidate solution ad.tell([sm.transform_inverse(z)], [0.1]) sm.update([y / ad], [0.01]) # remark that y / ad != z
where the symmetric transformation sm.transform_inverse(z) makes z isotropic.
TODO: what exactly does this mean, is this a generic construction, is this even the right construction?
| Parameters | |
| vectors | is a list of samples. |
| weights | define a learning rate for each vector. |
cma.transformations.DiagonalDecoding
return condition number of the squared transformation matrix


Definition at line 17 of file Ray.hpp.
◆ Ray() [1/3]
| raylib::Ray::Ray |
( |
::Ray |
ray | ) |
|
|
inline |
◆ Ray() [2/3]
Definition at line 23 of file Ray.hpp.
25 direction = Direction;
◆ Ray() [3/3]
Definition at line 28 of file Ray.hpp.
29 set(GetMouseRay(mousePosition, camera));
◆ CheckCollisionBox()
| bool raylib::Ray::CheckCollisionBox |
( |
::BoundingBox |
box | ) |
|
|
inline |
Definition at line 63 of file Ray.hpp.
64 return CheckCollisionRayBox(*
this, box);
◆ CheckCollisionSphere()
| bool raylib::Ray::CheckCollisionSphere |
( |
::Vector3 |
center, |
|
|
float |
radius |
|
) |
| |
|
inline |
Definition at line 55 of file Ray.hpp.
56 return CheckCollisionRaySphere(*
this, center, radius);
◆ CheckCollisionSphereEx()
| bool raylib::Ray::CheckCollisionSphereEx |
( |
::Vector3 |
center, |
|
|
float |
radius, |
|
|
::Vector3 * |
collisionPoint |
|
) |
| |
|
inline |
Definition at line 59 of file Ray.hpp.
60 return CheckCollisionRaySphereEx(*
this, center, radius, collisionPoint);
◆ Draw()
Definition at line 50 of file Ray.hpp.
51 DrawRay(*
this, color);
◆ GetCollisionGround()
| RayHitInfo raylib::Ray::GetCollisionGround |
( |
float |
groundHeight | ) |
|
|
inline |
Definition at line 75 of file Ray.hpp.
76 return GetCollisionRayGround(*
this, groundHeight);
◆ GetCollisionModel()
Definition at line 67 of file Ray.hpp.
68 return GetCollisionRayModel(*
this, model);
◆ GetCollisionTriangle()
Definition at line 71 of file Ray.hpp.
72 return GetCollisionRayTriangle(*
this, p1, p2, p3);
◆ GetDirection()
| inline ::Vector3 raylib::Ray::GetDirection |
( |
| ) |
|
|
inline |
◆ GetPosition()
| inline ::Vector3 raylib::Ray::GetPosition |
( |
| ) |
|
|
inline |
◆ operator=() [1/2]
| Ray& raylib::Ray::operator= |
( |
const ::Ray & |
ray | ) |
|
|
inline |
◆ operator=() [2/2]
| Ray& raylib::Ray::operator= |
( |
const Ray & |
ray | ) |
|
|
inline |
◆ set()
| void raylib::Ray::set |
( |
::Ray |
ray | ) |
|
|
inline |
Definition at line 32 of file Ray.hpp.
33 position = ray.position;
34 direction = ray.direction;
◆ SetDirection()
| void raylib::Ray::SetDirection |
( |
::Vector3 |
value | ) |
|
|
inline |
◆ SetPosition()
| void raylib::Ray::SetPosition |
( |
::Vector3 |
value | ) |
|
|
inline |


WITNESS LIST
Property Tax Reform & Relief, Select
May 10, 2016 9:00 AM
Property Tax Reform and Relief
ON:
Adair, Bob tax analyst (also providing written testimony) (TTARA), Houston, TX
Alexander, Russell Property Tax Consultant (also providing written testimony) (Self),
Bellaire, TX
Bassett, Steve CPA School District (Fort Bend ISD)
Belt, Robert CPA - Auditor for cities, counties, and schools (Belt Harris Pechacek),
Houston, TX
Bentley, Geri Mayor Pro Tem (League City)
Betancourt, Tammy CEO Houston Boma (Houston Boma), Houston, TX
Carter, James Appraiser/ Expert Witness (also providing written testimony) (Property
Evaluation Services/ O'Connor & Associates), Houston
Casale, Bob Real Estate (Self)
Cox, Braden Director US State Public Policy (also providing written testimony) (Amazon)
Craymer, Dale President (also providing written testimony) (Texas Taxpayers & Research
Association), Austin, TX
Diaz, Lisa (My family), Houston, TX
Forbes, Dean P. Retired (Self)
Galbraith, Patricia Managing Tax Director (AECT), Metairie, LA
Gonzalez, Jose Carlos Employee Benefit Administration (also providing written
testimony) (Self; Family/ Community)
Hart, Coach Dan Retired Coach (Kinkaid) (also providing written testimony) (Taxpayers
For Equal Appraisal (Posse)), Ho., TX
Hartman, Al Commercial R.E. (Hi-Reit)
Henley, Terry GE Retired - Engineer (also providing written testimony) (City of Meadows
Place (small cities)), Meadows Place, TX
Hogue, Tiffany (also providing written testimony) (Texas Organizing Project)
Hotze, Bruce R. (Let the People Vote Houston)
Hunt, Lisa Rector, St. Stephen's Episcopal Church (also providing written testimony) (My
Parish)
Hunt, Stacy G. Apartment Development & Mgt (Self; My firm (Greystar) and the Texas
Apt. Assn.)
Ingram, Robert Tax Consultant (500 client)
Johnson, Cheryl E Galveston Co. Tax Assessor Collector (also providing written
testimony) (GCTO & Co. Citizens)
Kennedy, John Senior Analyst (also providing written testimony) (Texas Taxpayers &
Research Association (TTARA)), Austin
Khan, W Barry Developer (also providing written testimony) (Self; TAAHP, TAA and
Texas Builders)
Larsen, Yvonne Sales & Director-elect Seinna Mud 10 (Self)
Laymon, Aaron Real Estate Broker (also providing written testimony) (Self; Fort Bend &
Harris County property owner)
Lehmann, David R. Lobbyist (The Taxpayers of Texas)
Lewis, Mike President, Lewis Food Town (Lewis Food Town), Houston, TX
WITNESS LIST
Property Tax Reform & Relief, Select
May 10, 2016 9:00 AM
McCloskey, Scott Electrical Engineer (also providing written testimony) (Self), Sugar
Land, TX
Meyer, Tony (Self)
Miller, Bert Business Owner & Mayor of Navasota (City of Navasota), Navasota
Moore, Steve Apartment Owner (AMG. inc)
Morris, Malcolm attorney (also providing written testimony) (Self; Reverend John R.
Bisagao), Ho., TX
Mosbacher, Jerry Hospice (also providing written testimony) (Self; Many other
Taxpayers), TX
Norman, Scott Executive Director (Texas Association of Builders), Austin, TX
Olson, Franklin (also providing written testimony) (The Metropolitan Organization)
Osenbagh, John C. real estate/property tax (also providing written testimony) (Self)
Patel, A. Childcare Center (Self)
Pederson, Rick (also providing written testimony) (Self), Fulshear, TX
Quintero, James Analyst (also providing written testimony) (Texas Public Policy
Foundation)
Sharp, Kathryn VP of Tax for Stage Stores (also providing written testimony) (Self; Stage
Stores), Houston, TX
Shipp, Earl Vice President, Gulf Coast Operations (also providing written testimony)
(DOW Chemical - also TTARA, TCC & TAM), Freeport, TX
Shoemaker, David Senior Policy Analyst (also providing written testimony) (Select
Committee for Property Tax Relief and Reform)
Spears, John Stephen retired (also providing written testimony) (Self)
Stalinsky, Cheryl Retired Economic Development Dir (Self)
Staples, Todd President (Texas Oil & Gas Association), Austin, TX
Stiefer, Sands L. Chief Appraiser, Harris Co. Appraisal District (also providing written
testimony) (Self; Harris CAD)
Stone, Dawn (also providing written testimony) (Self), Conroe, TX
Sullivan, Mike Harris County Tax Assessor- Collector (Self), Houston, TX
Thompson, Jessie (Self)
Turney, Bill Retired (Self)
Valenta, John Property Tax Manager (TXOGA/ TTARA), Houston, TX
Wald, Jerome S. Retired state employee (Self)
Walla, Allison HR - Delta Refractions, INC. (also providing written testimony) (Weston
Lakes)
Weisfeld, Sheldon Real Estate Investments (also providing written testimony) (Self;
SADANA Global, WEKAN developments)
Welling, Fred Real Estate Developer (Self)
Whitehead, Glen Chief Appraiser (Fort Bend Central Appraisal District), Rosenberg
Williams, Kenneth Veterinarian (Retired) (also providing written testimony) (Self),
Houston, TX
Wilson, William C. Retired (Self), Cypress, TX
Wright, Mary Ann CFO & Mustang Cat (Mustang Cat (Caterpillar Dealership))
WITNESS LIST
Property Tax Reform & Relief, Select
May 10, 2016 9:00 AM
Registering, but not testifying:
ON:
Ball, Barbara Housewife (Weston Lakes)
Boyer, Lance Regional Security Advisor (Self), Katy, TX
Brown, Allen Taxpayer (Allen Brown), Kingwood, TX
Clayton, Rhonda Retired Educator (Weston Lakes), Katy, TX
Dalwadi, Sumit Hospitality Management & Development (Dalwadi Hospitality
Management)
Doherty, Joanne Retired (Self), Burton, TX
Evans, Brad Realtor (Luckey Lane Properties)
Fairfield, Stephen community developer (Covenant Community Capital), Houston
Fite, Walter Retired (Self), Missouri City, TX
Ford, J Steve Real Estate (Affordable Housing), Houston
Friedberg, Andrew S. Mayor (City of Bellaire)
Hoelscher, Dennis Business Information Systems (Self), Richmond, TX
Kilday, Les Apartment Developer (Affordable Housing), Sugar Land
Kline, Sue Retired (Weston Lakes)
Lindsey (USA RET) 30 yrs, Col. Terry Engineer, Home Owner, Business Owner (Self;
Homeowners), Houston, TX
Lofton, Mattie retired - Texas Retired Teachers (Weston Lakes), Fulshear, TX
Martin, Robert E. CPA (Self), Houston, TX
Moufon Jr., Jerry Business (City of Deer Park)
Owen, Allen Mayor Missouri City (Missouri City)
Patel, Ajay Hotel Owner (Pika Hotels/THLA)
Peck, Karen Attorney; also Vice President, Spring Branch ISD Board of Trustees (Spring
Branch ISD Board of Trustees), Houston, TX
Pennington, Robert City Finance (City of Cleveland)
Polasek (Mayor of Victoria), Paul Self Employed (Self)
Robinson, Mike Real Estate Developer (Affordable Housing)
Russell, Gerald Retired (Self)
Scarborough, Jim Real Estate Developer (Taxpayer)
Scarbrough, Daphne retail/metal fabricator (myself as a sale proprietor), Houston, TX
Schei, Inger Lise Home (Grayson Lakes, Katy 77494 TX), Katy, TX
Sheffield, Heather Social Media Consultant (Spring Branch Speaks)
Singh, Roy Retired (Self), Houston, TX
Stafford, Brad City Manager (City of Navasota), Navasota, TX
Strausand, Ben Banker (Self)
Stripling, Hortense Retired HR Professional (Weston Lakes), Weston Lakes, TX
Walker, Carl Oil & Gas Industry - Property Tax (TXOGA/TTARA), Houston, TX
Wolff, Ed Realtor (Self & Clients), Houston, TX
Wyatt, Jerry Coucilman, Missouri City, TX (Missouri City)
WITNESS LIST
Property Tax Reform & Relief, Select
May 10, 2016 9:00 AM
Providing written testimony:
ON:
Bechtel, Michael Mayor (City of Morgan's Point), Morgan's Point, TX
Berry, Kenneth Engineer (Citizens of San Patricia County)
Cernosek, Larry Automotive (Self; other small business), Deer Park, TX
Gay, Clifford Retired (Self), Richmond, TX
Guerra-Cardus, Laura non-profit child advocacy (Children's Defense Fund - TX), Austin,
TX
Hopkins, Earlene Retired educator public schools (Self; Weston Lakes)
Hyde, Walter (my family), Houston
McMahon, Rod Steel Business (North American Metals, Inc.), Houston, TX
Mutope-Johnson, Ayesha attorney (ret.), civic organizer (St. James Episcopal Church
Community Outreach), Ho., TX
Ramirez, Ricardo Intergovernmental Relations Manager (City of Sugar Land), Sugar Land,
TX
Smith, T. Randall Pastor (Texas Impact), Houston, TX


Adjust Example App v4.11.3
Track Simple Event
Track Revenue Event
Track Callback Event
Track Partner Event
Enable/disable offline mode
Enable/disable SDK
Is SDK enabled?


Google Summer of Code Progress June 24
This is midterm period and the dipy website has a proper frontend now! And more improvements coming.
Progress so far
The custom content management system is improved and has a better frontend now.
Social network feeds for twitter and google plus are now added and a hexagonal gallery is placed in the home page.
The documentation generation script is also updated to upload documentation of different versions separately in github. And the django site is updated by checking the contents of the github repository through github API.
The current pull requests are #9 and #1082
You can visit the site under development at http://dipy.herokuapp.com/
Details of content management system
The custom CMS now allows maximum flexibility. It is possible to edit almost every content in the website. Fixed sections, documentation versions, pages, publications, gallery images, news feeds, carousal images, everything can be edited from the admin panel.
One of the most important additions in the CMS is that now we can create any number of pages and we will get a url for that page. So this allows us to create any custom page and link it from anywhere. Also with a single click that page can be put in the nav bar.
To make the the nav bar dynamic I had to pass the same context to every template. Thankfully this can be achieved with “context_processors” in a dry way. Also this allows the documentation links to be changed without changing the template.
For now the documentations are hosted in the dipy_web github repository. Different versions of documentations are linked automatically into django by checking the content of the repository using github API.
There is also option of excluding some documentation versions from the admin panel.
Details of the frontend
Although most parts of the website now have a basic styling, the frontend is still under constant improvement. The progress can be best visualized through some screenshots:
What’s next
We have to automate the documentation generation process. A build server will be triggered whenever there is a new commit the documentation will be automatically updated in the website. Also there are some command line tools for which the docs must be generated.
I have to include facebook feed in the home page. Also the honeycomb gallery is cool but a carousal with up-to-date contents like upcoming events and news will be more useful. The styling of all parts of the website can be improved.
Then I have to clean up the code a bit and add some more documentation and start testing the internals. After that we have to think of deployment and things like search engine optimization and caching etc.
Will be back with more updates soon! :)
Posted with Tags:


Defining a variable:
var myVariable=2;
Converting a string to a number:
Number("2");
While loops:
var n=1
while (n<5){
console.log(n);
n++;
}
Take note of the semicolons, parenthesis and brackets.
Also notice you increment the counter with ++ instead of +=.
For loops:
for (var i=0; i<=5; i++){
console.log(i);
}
Defining a class:
function Person (){}
New instances of objects:
var person1= new
Person();
var person2= new
Person();
The constructor method:
This is called at the moment of instantiation and there is no need to explicitly define it.
function Person(){
alert('Someone new.');
}
var person1= new
Person();
var person2= new
Person();
Properties:
These are variables available to instances of the class (function.) 'This' refers to the current object, which is similar to the concept of 'self' in Ruby.
function Person(name){
this.name=name;
alert('Someone new.');
}
var person1= new
Person('Tom');
var person2= new
Person('Betty');
Methods:
Methods follow the same logic as properties except they are functions. To define a method, assign a function to a named property of the class's prototype property.
function Person(name){
this.name=name;
alert('Someone new.');
}
Person.prototype.sayHello
=function (){
alert('hello');
};
var person1= new
Person('Tom');
var person2= new
Person('Betty');
person1.sayHello();
//-> hello
Defining a variable:
myVariable=2;
Converting a string to a number:
"2".to_i
While loops:
n=1
while n <= 5
puts n
n+=1
end
For loops:
for n in 1..5
puts n
n+=1
end
Defining a class:
class Person
end
New instances of objects:
@person1=Person.new
@person2=Person.new
The initialize method:
It's called automatically at the moment of instantiation
class Person
def initialize
puts "Someone new."
end
end
@person1=Person.new
@person2=Person.new
Instance Variables:
These are variables to instances of the class. Defined with an @.
class Person
def initialize(name)
@name=name
puts "Someone new."
end
end
@person1=Person.new('Tom')
@person2=Person.new('Betty')
Methods:
Methods are called the same way that instance variables are called on an object. However, they are defined within the class.
class Person
def initialize(name)
@name=name
puts "Someone new."
end
def say_hello
puts "hello"
end
end
@person1=Person.new('Tom')
@person2=Person.new('Betty')
@person1.say_hello
//-> hello


BeiGene drug wins US FDA approval for rare form of lymphoma
REUTERS: The U.S. Food and Drug Administration on Thursday approved BeiGene Ltd's lymphoma treatment, validating the China-based drugmaker's strategy of largely using data from trials held outside the United States to file for approval.
The company tested the treatment, Brukinsa, in 118 patients with mantle cell lymphoma enrolled in two studies. About three-quarters were Asian, 21per cent Caucasian, and just between 10per cent to 15per cent were from the United States, BeiGene said.
The FDA granted accelerated approval to the capsules for the treatment of adult patients with mantle cell lymphoma who have received at least one prior therapy. (https://bit.ly/2QkvjHu)
(Reporting by Tamara Mathias and Manojna Maddipatla in Bengaluru; Editing by Shounak Dasgupta)


Largest Integer
-
Implement a Javascript function that takes ANY COMMA DELIMITED STRING as a parameter and
returns the LARGEST integer value. The user will enter the string in the text box below and
the result will display in the panel. If the string does not return any integers, No Integers
Found should be displayed. Sample I/O:
- input: 10, 3, 232, ,3000, 120, B, 51, 6, 7, 120, 10, 10 - output: 3000
- input: A, B, C - output: No Integers Found
- input: 500, 11, 222, 44 , 6 , 7, 22,Z, - output: 500
- input: " " - output: No Integers Found
- input: -3, 0, -1 - output: 0
-
Make the text box required so that the user cannot click on the Submit button if there is no value.
-
Use the class panel-danger to make the results panel red if the result is No Integers Found.
-
BONUS - Write unit tests to validate your controller. Execute npm test to run the unit tests.


The health checker evaluates various areas of your site for best practice settings, configuration, potential problems, etc. You can easily fix problems by pressing a button. You can add your own health checks, have a look at the documentation for more information about custom health checks.


LIST OF AVAILABLE FLIGHTS
* Please scroll right to see more flight details
| # | Flight no. | Flight type | Source | Desination | Date of Journey | Departure time | Arrival time | Class | Meal | Intermediate Stops | Flight status | Amount | Discount (in %) | Action |
|---|
| # | Flight no. | Flight type | Source | Desination | Date of Journey | Departure time | Arrival time | Class | Meal | Intermediate Stops | Flight status | Amount | Discount (in %) | Action |
|---|


An example using routerLink
The breadcrumb component is a type of navigation that indicates the position of a page within the application’s page
hierarchy. Users can navigate backward by selecting the previous pages in the navigation path.
The breadcrumb is responsive. When the last breadcrumbs item's edge overflows the available area, the earliest
breadcrumb will be added to an overflow menu at the start of the breadcrumb trail. By default, these items are
displayed in the menu with the most recently added at the top. This can be changed by setting the
[reverse]
input to [true]
.
An example using href


This tests that infinite values don't break dygraphs.
gviz line chart:
same data drawn using dygraphs:


[gecode-users] tracing without programming?
Christian Schulte
cschulte at kth.se
Wed Jan 18 11:26:28 CET 2017
Yes, for these examples I added the tracing as an example how to do it.
Cheers
Christian
--
Christian Schulte, www.gecode.org/~schulte
Professor of Computer Science, KTH, cschulte at kth.se
Expert Researcher, SICS, cschulte at sics.se
-----Original Message-----
From: Johannes Waldmann [mailto:johannes.waldmann at htwk-leipzig.de]
Sent: Wednesday, January 18, 2017 11:17
To: cschulte at kth.se; users at gecode.org
Subject: Re: [gecode-users] tracing without programming?
On 01/17/2017 01:46 PM, Christian Schulte wrote:
> Please consult MPG, it explains Gist.
Right. ("Node -> Label branches" could be on by default?) I will use Gist
some more in the next iteration of my course.
(10.1) "Each node in the tree represents a fixpoint of propagation".
I wish there was a way to visualize individual propagation steps.
Since this thread is originally about tracing: I found that MPG mentions
that some examples are compiled with tracing enabled.
Grepping the source suggests that these are descartes-folium, hamming, and
money. Indeed `money -trace all` looks nice, and it does show individual
propagations.
Best regards - J.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4623 bytes
Desc: not available
URL: <http://www.gecode.org/pipermail/users/attachments/20170118/6127e404/attachment-0001.bin>
More information about the users
mailing list


-
Microservices: Lessons from the Frontline
www.thoughtworks.com
Are Microservices gaining momentum? Looking at the interest in Microservices in Australia at the moment, it is evident that this is a Service ...
-
GNU Project Archives
ftp.gnu.org
This archive is also available by anonymous ftp and rsync , and from mirrors worldwide .
-
Internationally acclaimed barrister Amal Alamuddin marries an actor - The ...
www.thebusinesswomanmedia.com
Amal Alamuddin, a 36 year old London-based dual-qualified English barrister and New York litigation attorney who has long been a high-profile figure ...
-
Shooting Tokyo - A photographer's guide - ShootTokyo
shoottokyo.com
I have spend much of my time as a photographer shooting Tokyo. I have explored most parts of this city. This is the guide of my favorite places to ...
-
Troy Hunt: Everything you need to know about the Shellshock Bash bug
www.troyhunt.com
Observations, musings and conjecture about the world of software and technology
-
John Carmack's Brilliant Oculus Connect Keynote Goes 'off Message from the ...
www.roadtovr.com
There are two sorts of people in this world: those that have listened to John Carmack talk and those who are unenlightened. One of the key minds ...
 I shan’t!!! *swings out window on chandelier* ...
-
Ospina on making his Arsenal debut
www.arsenal.com
‘I felt really happy when I went on to the pitch because people were supporting me a lot’
-
For Cinephiles, Netflix Is Less and Less an Option
ww2.kqed.org
Once you could rent everything and anything through the Internet colossus, but no more ...
-
The magic of Vince Lombardi
www.packers.com
A certain magic still lingers in the name "Lombardi." Check out this 1980's NFL Films feature that captures the man, the myth and the legend of Vince ...
-
Mujer Seduce a Mujeres
www.youtube.com
No dejes de ver cómo reaccionan ellas cuando es una mujer quien las invita a salir. Comenta. Comparte. Más videos cada domingo en ...
-
SpaceX Webcast
www.spacex.com
SpaceX designs, manufactures and launches advanced rockets and spacecraft..
-
Settlers Of Catan 4Th Edition
www.kalahari.com
Buy Settlers Of Catan 4Th Edition online. Safely purchase this & other Toys products from South Africa's most trusted name in online shopping.
-
2014 Guide to Big Data | DZone
www.dzone.com
#articleText { padding: 0 !important; } h2 { font-size: 38px !important; font-weight: 500 !important; letter-spacing: 1px; } a { text-decoration: ...
-
Visions of a Post-Agile World
sprint.ly
When I first started programming in the late 1990s my toolset was comparable to that of a manufacturer a hundred years ago; we were forced in those ...
-
Everyone Spoils at Some Point In Their Lives | Netflix Spoilers
spoilers.netflix.com
Some secrets are just too good to keep. Join Netflix and explore the who, what, and why behind the spoiler trend.
-
Inked Playmats - Inked Playmats
www.inkedplaymats.com
We print custom playmats for trading card games such as Magic the Gathering, YuGiOh!, CardFight! Vanguard and more!
-
Chile e Islandia, donde es menos probable morir asesinado
internacional.elpais.com
Expertos analizan factores que hacen a ambos países los más seguros en sus respectivos continentes
-
The Settlers of Catan
www.nochesdeteiboltop.com
Si hablamos de juegos para iniciar en el hobby no podemos ignorar The Settlers of Catan. Desde su lanzamiento en el '95 ha sido el juego por ...
-
Apple sells 10 million iPhones in opening weekend record
www.theverge.com
Apple released its iPhone 6 and iPhone 6 Plus handsets last week, and they’re already setting new sales records. The company reports that it has sold ...
-
San Juan Sacatepéquez: peligro de militarización y Estado de Excepción
comunitariapress.wordpress.com
Por: Quimy De León A pesar de los intentos de la comunidad de que las autoridades llegaran desde anoche para detener la agresión de paramilitares que ...
-
Dear Wizards: it's time to make a 'Magic the Gathering' video game for ...
www.theverge.com
Magic: the Gathering is one of the best games ever made. If you've never played it because it looks too nerdy or complex, you're missing out; even ...
-
Mice and Mystics
boardgamegeek.com
Game description from the publisher: In Mice and Mystics players take on the roles of those still loyal to the king – but to escape the clutches of ...
-
Popeye the Sailor -- A Dream Walking # 14 September 26, 1934
www.youtube.com
Popeye the Sailor -- Fleisher Studios This is a list of the 109 cartoons starring Popeye the Sailor, produced from 1933 to 1942 by Fleischer Studios ...
-
Review: Kommissar, the cold war board game
boingboing.net
Deanna Dahlsad escapes Soviet Russia, sends her friends to Siberia, and braves the wicked Kommissar in this 1960s-era board game.


Let's get started!
CSS & DESIGN are PERFECT for you!

Click Here to Explore!
JAVA! is Definitely your language!
Click Here to Explore!
C# is made for YOU!
Click Here to Explore!
PHP is your true calling!
Click Here to Explore!


Across: 1. Alien enemy holds royal power by right (9) 8. Consequences of strike if one guy has ten points! (13) 11. Wishes that beer-makers will go out East (5) 12. Measure climb (5) 13. Held in club with journalist (5) 16. Priest's faith rejected one queen (6) 17. Outcome of Ulster problem? (6) 18. European farewell - now that is universal (5) 19. Half-back collects silver in photos (6) 20. Bit of atmosphere after Dr Hillhead's yarn! (6) 21. Flight from pests? (5) 24. Smoke from vehicle carrying back soldier (5) 26. Funny language in crumbling old book (5) 27. Grim, I lost coin to scientific investigator (13) 28. Beasts love to stuff the workers! (9) Down: 2. Doesn't include Botham in awards? (5) 3. Imagine I go to solve puzzle (6) 4. Ms Fields chewed 24 with energy (6) 5. Team stands in visitor's doorways (5) 6. Adventurers who shoot dogs and cats from vehicles? (13) 7. Abnormality of bad rule stuns Anna! (13) 9. Mock slow movement of Whistler (9) 10. 25 soldier gives Nero tunic (9) 13. Low notes are about right for trumpets (5) 14. String is new, it gets twisted (5) 15. To be beaten for 500-odd seconds (5) 22. Canter around in a dream (6) 23. In France, she is caught in exercises and may be fired! (6) 25. Norma falls for Italian! (5) 26. Rule broken about g-gun! (5)


BACKGROUND
Hi!! My name is Marco and I'm a student at Tecnológico de Monterrey and I currently live in Mexico City. My goal is to be able to create elaborate creative experiences using technology!
Get a random greeting or a random person!
Click here to see the server response directly.
PORTFOLIO
Portal Videogame
A Unity-based fps videogame with rockets and portals. Rocket Travellers is a 3D unity test game where your character can go through portals, navigate the platform and shoot rockets at enemies.Features:
- Player Controllers with Movement and Jumping Physics.
- Rocket Launchers and Rocket Jumping Mechanics.
- Player and Enemmy health bars.
- Collisions.
- Portals.
Flight Reservation Application
A C++ application that simulates a flight reservation system. "ViajandoAndo" is a flight reservation application that simulates a flight reservation system.Features:
- Flight reservation system.
- User management system.
- Data persistance.
- File Streaming.
- User Input.
- User Interaction.
HOBBIES
Drawing & Painting
Playing Videogames
Working Out
FAVORITE MEDIA
| Type | Name | Author | Date |
|---|---|---|---|
| Music | Daydreaming | Daisy | Aug 15, 2018 |
| Videogames | Valorant | Riot Games | Jun 2, 2020 |
| Movies and Series | The Great Dictator | Charles Chaplin | Oct 15, 1940 |


My full name is Brian William Mahaffey. I was born and raised in England and moved to America when I was 8 years old. I am currently a Junior at Western Reserve Academy


Notebooks
Story: Names and descriptions of bags, nets and things worn
Names and descriptions of bags, nets and things worn
Title
Names and descriptions of bags, nets and things worn
Collection
Summary
Names and descriptions of nets, bags and things worn, found on an insert in the notebook.
Categories
Artefact and dress, Custom and daily life
Keywords
names (of things worn, nets and bags) , dress (names and descriptions of things worn) , bags (, nets and names and descriptions of things worn) , words and sentences (names and descriptions of things worn, bags and nets) , nets (and bags and things worn)
Story Pages
not numbered