Deconvolution Layer
Batch Normalization
Q-learning v SARSA
Policy Iteration v Value Iteration
Q Learning
Policy Gradients
Actor Critic methods
Trust Region Methods
Monte Carlo Tree Search
Inverse Reinforcement Learning
One shot learning
Meta learning
A3C
Distributed DL
MAC vs Digital Signatures
MLE and KL Divergence
Lipschitz Continuity
Exposure bias problem
Gini coefficient
Pareto distribution
Deconvolution Layer
- torch.nn.ConvTranspose2d in PyTorch
- ambiguous name, no deconvolutions
- a deconvolution layer maps from a lower to higher dimension, a sort of upsampling
- the transpose of a non-padded convolution is equivalent to convolving a zero-padded input
- zeroes are inserted between inputs which cause the kernel to move slower, hence also called fractionally strided convolution
- deconv layers allow the model to use every point in the small image to “paint” a square in the larger one
- deconv layers have uneven overlap in the output, conv layers have overlap in the input
- leads to the problem of checkerboard artifacts
- resize-convolution instead transposed-convolution to avoid checkerboard artifacts
References
Batch Normalization
- torch.nn.BatchNorm2d in PyTorch
- normalizses the data in each batch to have zero mean and unit covariance
- provides some consistency between layers by reducing internal covariate shift
- allows a higher learning rate to be used, reduces the learning time
- after normalizing the input, it is squased through a linear function with parameters gamma and beta
- output of batchnorm = gamma * normalized_input + beta
- having gamma and beta allows the network to choose how much ‘normalization’ it wants for every feature; shift and scale
References
Q-learning v SARSA
- SARSA stands for state-action-reward-state-action
- SARSA is on-policy; that is sticks to the policy it is learning. Q-learning is off-policy
- SARSA improves the estimate of Q by using the transitions from the policy dervied from Q
- Q-learning updates the Q estimate using the observed reward and the maximum reward possible for the next state
References
Policy Iteration v Value Iteration
- PI: trying to converge the policy to optimal; VI: trying to converge the value function to optimal
- PI: policy evaluation (calculating value function using ) ) + policy improvement; repeat until policy is stable
- VI: policy evaluation (calculating value function using ); single policy update
References
Q Learning
- Model free learning: the agent has no idea about the state transition and reward functions; it learns everything from experience by interacting with the environment
- Q-Learning is based on Time-Difference Learning
-
- See notes on Q-Learning v SARSA
- -greedy approach: choose a random action with probability , or action according to the current estimate of Q-values otherwise; this approach controls the exploration vs exploitation
References
Policy Gradients
- Run a policy for a while; see what actions led to higher rewards; increase their probability
- Take the gradient of log probability of trajectory, then weight it by the final reward
- Increase the probability of actions that lead to higher reward
- With as the policy objective function
- This suffers from high variance and is a simplistic view; credit assignment problem is hard
- Baseline: whether a reward is better or worse than what you expect to get
- A simple baseline: constant moving average of rewards experienced so far from all trajectories; Vanilla REINFORCE
- Reducing variance further using better baselines -> Actor critic algorithm
References
Actor Critic Methods
- Works well when there is an infinite input and output space
- Requires much less training time than policy gradient methods
- Actor => takes in the environment states and determines the best action to take
- Critic => takes in the environment and the action from the actor and returns a score that represents how good the action is for the state
- Both the actor (policy) and critic (Q function) are different neural networks
References
Trust Region Methods
- A kind of local policy search algorithm
- ‘local’ because every new policy is somewhat closer to the earlier policy
- TRPO uses policy gradients but has a constraint on how the polices are updated
- Each new policy has to be close to the older one in terms of the KL-divergence
- Since polices are nothing but probability distributions over the actions, KL divergence is a natural way to measure the distance
- Constraint Policy Optimization (CPO) is another trust region method using contraints on the cost function to keep an agent’s action under a limit while maintaining optimal performance
References
Monte Carlo Tree Search
- MCTS is based on two idea:
- a true value of an action may be evaluated using random simulation
- these values maybe used to efficiently adjust the policy towards a best-first strategy
- THe algorithm builds a search tree till a computational budget - time or memory is exhausted
- The algorthim has four parts which are applied per iteration
- Selection: descending down the root node till an expandable non-terminal node
- Expansion: adding child nodes towards the tree
- Simulation: simulate the default policy from the new node(s) to produce an output
- Backpropagation: the simulation result is ‘backed up’ through the selected nodes
- Selection + Expansion => Tree policy; Simluation => Default policy
- The backpropagatin step informs future tree policy decision
References
Inverse Reinforcement Learning
- Learning the reward fucntion by observing expert behaviour
- Imitation learning (behaviour cloning and IRL) tries to copy the teacher’s actions
- Learning the reward function can make the system robust to changes in the environment’s transition mechanics
- Learning the reward function is also transferable from one type of agent to another, as it encodes all that is needed to excel in the envirnment
- Think of IRL as a way to learn an abstraction or latent representation of the target
- Another big motivation for IRL is that it is extremely difficult to manually specifiy a reward function to an agent, like in a self driving car
- Instead of simply copying the expert behavior, we can then try to learn the underlying reward function which the expert is trying to optimize
References
One Shot Imitation Learning
- Trying to learn with very limited demonstrations
- The model is given multiple demonstrations and conditioned on one instance of a task, to help learn that task, and so on similarly other tasks as well
- Generalise the understanding of various tasks
References
- The agent learns a policy to learn policies
- Given a task and an model, the agent can learn a policy to master that task
- But it may fail if the task is altered
- Meta Learning tries to devise methods to learn policies which can learn policies further and can therefore perform multiple tasks
References
Asynchronous Actor-Critic Agents (A3C)
- Asychronous Advantage Actor-Critic
- Asychronous: Unlike other learning agent algos like DQN, A3C has multiple worker agents interacting with the environment providing a more diverse experience to the learning phase
- Advantage: like in PG methods
- Actor-Critic: same as Actor Critic
- The workers independently work by learning from the environment and update the global network
References
Distributed DL
- Synchronous Distributed SGD (Centralised)
- Parameter Server
- Gradients are sent to the parameter server that computes the updates
- Workers reeive updated models
- Synchronous Distributed SGD (Decentralised)
- All-Reduce the gradients to every worker
- Models on each node are updated with the same average gradients
- Asynchronous Distributed SGD (Centralised)
- Asynchronous parameter udpates
- Lag problem
- Workers update when they complete their gradient calculation
References
MAC vs Digital Signatures
- Message Authentication Codes (MAC): detects modification of messages based on a ‘shared key’
- Symmetric key based algorithms for pretecting integrity
- Example: HMAC (key-hashed MAC), CBC-MAC / CMAC (block cipher based)
- Digital Signatures: detects modification of messages based on a asymmetric key pair
- Asymmetric keys: public key and private key
- The sender signs with its private key, the receiver can verify the signature with the sender’s public key
- MACs are faster and take less size; but Digital Signatures provide non-repudiation (if the recipient passes the message and the proof to a third party, can the third party be confident that the message originated from the sender ?)
References
MLE and KL Divergence
- Maximum likelihood estimation (MLE):
Given a dataset of sie n drawn from a distribution , the MLE estimate of is defined as
or
- Equivalently, this can be formulated as iid samples, negative log-likelihood
- KL Divergence:
Relative entropy, it measures the dissimilarity of two probability distributions
- Expand above to get
- In the limit, KL is same as MLE
- In generative models, MLE isn’t suitable as the probability density under the trained model for any actual input is almost always zero
- For more details: blog
References
Lipschitz Continuity
- This property is often used in deep learning and differential equations over ‘funny’ functions
- Lipschitz continuity is a simple way to bound the function values
- Refer to the wiki page for a more generalized defination
- Notice, the Lipschitz constant is the bound on the slope AKA derivative of the function in the specified domain
- Using this condition provides a safe way to talk about differentiability of the function (Rademacher’s Theorem)
References
Exposure bias problem
- Recurrent models are trained to predict the next word given the previous ground truth words as input
- At test time, they are used to generate an entire sequence by predicting one word at a time, and by feeding the generated word back as input at the next time
step
- This is not good because the model was trained on a different distribution of inputs, namely, words drawn from the data distribution, as opposed to words drawn from the model distribution
- The errors made along the way will quickly accumulate
- This is knowns as exposure bias which occurs when a model is only exposed to the training data distribution, instead of its own predictions
- This is the discrepancy between training and inference stages
References
Gini Coefficient
- Gini coefficient is a single number aimed at measureing the degree of inequality in a distribution.
- Given a group of people producing posts/comments, this can be used to estimate the dispersion in content production, i.e., most posts/comments come from a selectd few or from a diverse set of users.
- A gini coefficient of 0 means perfect equality, and 1 means perfect concentration in a single individual.
- where n is the number of participating members, and is the content produced, or wealth.
- Alternatively, Gini coefficient can be thought of as the ratio of the area that lies between the line of equality and the Lorenz curve over the total area under the line of equality.
- Points on the Lorenz curve is the proportion of overall income or wealth assumed by the botton x% of the people [economics]. See the income distribution graph on the Lorenz curve wiki page.
- Palma ratio is another measure of inequality.
Pareto distribution
- Pareto optimality is a situation that cannot be modified so as to make any one individual or preference criterion better off without making at least one individual or preference creiterion worse off.
- Write down the value model equations, constraints. Define the objective function. Run a convex hull optimizer on simple grid search to get a set of solutions for the equations. Use a tie-breaker (a way to decide on trade-off, either objectively coded or using product sense) to choose amongst the solutions.


Before Change
layer_name = "fc%d" % self.__num_layers_fc
self.__log("Adding fully connected layer %s..." % layer_name)
reshape = isinstance(self.__last_layer(), layers.convLayer) or isinstance(self.__last_layer(),
layers.poolingLayer)
if regularization_coefficient is None and self.__reg_coeff is not None:
regularization_coefficient = self.__reg_coeff
if regularization_coefficient is None and self.__reg_coeff is None:
After Change
layer_name = "fc%d" % self.__num_layers_fc
self.__log("Adding fully connected layer %s..." % layer_name)
reshape = self.__last_layer_outputs_volume()
if regularization_coefficient is None and self.__reg_coeff is not None:
regularization_coefficient = self.__reg_coeff
if regularization_coefficient is None and self.__reg_coeff is None:


5 Kilowatts In A 3D Printed Jet Boat
by Lewin DayRadio control projects used to be made of materials such as metal or wood, and involve lots of hand crafted parts. That’s still one way to go about things, but 3D printing has become a popular tool in recent years. [RCLifeOn] has been working on a 3D printed jet boat, which recently got a serious power upgrade.
The boat in question received a 5000W brushless motor – significant power for a vehicle weighing less than 2kg. Powered by a 12S lithium pack, and outfitted with a water jacket for cooling, it drives the boat through an off-the-shelf turbine after initial attempts to DIY the drivetrain were unsuccessful.
The biggest problem in the project came from coupling the motor to the turbine. A 3D printed coupler was unable to hold up to the strain, while attempts to make a metal part failed due to the lack of a lathe. Eventually the solution was found by daisy chaining two off-the-shelf parts together.
The boat proved itself ably on the water, with the large motor proving more than capable of shifting the boat at a strong clip. It’s an excellent shakedown for the parts that will eventually find themselves in a powered surfboard build. We’ve seen [RCLifeOn]’s work before, too, like these stylish 3D printed sneakers. Video after the break.


The SchemaTool is a tool to create/drop/update database schemas based on <tt>ClassMetadata</tt> class descriptors.
| link |
www.doctrine-project.org |
|---|---|
| since | 2.0 |
| author |
Guilherme Blanco<EMAIL_ADDRESS>|
| author |
Jonathan Wage<EMAIL_ADDRESS>|
| author |
Roman Borschel<EMAIL_ADDRESS>|
| author |
Benjamin Eberlei<EMAIL_ADDRESS>|
| author |
Stefano Rodriguez<EMAIL_ADDRESS>|
| package |
Default |
__construct(\Doctrine\ORM\EntityManagerInterface $em)
addDiscriminatorColumnDefinition(\Doctrine\ORM\Mapping\ClassMetadata $class, \Doctrine\DBAL\Schema\Table $table) : array
\Doctrine\DBAL\Schema\Table
array
The portable column definition of the discriminator column as required by the DBAL.
createSchema(array $classes) : void
| Throws |
|
|---|
array
dropDatabase() : void
dropSchema(array $classes) : void
In any way when an exception is thrown it is suppressed since drop was issued for all classes of the schema and some probably just don't exist.
array
gatherColumn(\Doctrine\ORM\Mapping\ClassMetadata $class, array $mapping, \Doctrine\DBAL\Schema\Table $table) : array
array
The field mapping.
\Doctrine\DBAL\Schema\Table
array
The portable column definition as required by the DBAL.
gatherColumns(\Doctrine\ORM\Mapping\ClassMetadata $class, \Doctrine\DBAL\Schema\Table $table) : array
\Doctrine\DBAL\Schema\Table
array
The list of portable column definitions as required by the DBAL.
gatherRelationJoinColumns(array $joinColumns, \Doctrine\DBAL\Schema\Table $theJoinTable, \Doctrine\ORM\Mapping\ClassMetadata $class, array $mapping, array &$primaryKeyColumns, array &$addedFks, array &$blacklistedFks) : void
| Throws |
|
|---|
array
\Doctrine\DBAL\Schema\Table
array
array
array
array
gatherRelationsSql(\Doctrine\ORM\Mapping\ClassMetadata $class, \Doctrine\DBAL\Schema\Table $table, \Doctrine\DBAL\Schema\Schema $schema, array &$addedFks, array &$blacklistedFks) : void
This includes the SQL for foreign key constraints and join tables.
| Throws |
|
|---|
\Doctrine\DBAL\Schema\Table
\Doctrine\DBAL\Schema\Schema
array
array
getCreateSchemaSql(array $classes) : array
array
array
The SQL statements needed to create the schema for the classes.
getDefiningClass(\Doctrine\ORM\Mapping\ClassMetadata $class, string $referencedColumnName) : array
Previously this was a simple task, but with DDC-117 this problem is actually recursive. If its not a simple field, go through all identifier field names that are associations recursively and find that referenced column name.
TODO: Is there any way to make this code more pleasing?
string
array
(ClassMetadata, referencedFieldName)
getDropDatabaseSQL() : array
array
getDropSchemaSQL(array $classes) : array
array
array
getSchemaFromMetadata(array $classes) : \Doctrine\DBAL\Schema\Schema
getUpdateSchemaSql(array $classes, boolean $saveMode = false) : array
If $saveMode is set to true the command is executed in the Database, else SQL is returned.
array
The classes to consider.
boolean
True for writing to DB, false for SQL string.
array
The sequence of SQL statements.
processingNotRequired(\Doctrine\ORM\Mapping\ClassMetadata $class, array $processedClasses) : boolean
updateSchema(array $classes, boolean $saveMode = false) : void
array
boolean
platform : \Doctrine\DBAL\Platforms\AbstractPlatform
quoteStrategy : \Doctrine\ORM\Mapping\QuoteStrategy


This page illustrates the handling of code cells containing (continuation) prompts and outputs. Upon activation, the prompts and output are stripped. Furthermore, the code cell is split wherever there is an output or blank line.
Note: the implementation currently assumes that all commands in all code cells are prefixed by prompts.
This is the original cell:
sage: 1 + 1 2 sage: x = 3 sage: y = 4 sage: z = 5 sage: x + y + \ ....: z 7
This is the resulting live cell:
sage: 1 + 1 2 sage: x = 3 sage: y = 4 sage: z = 5 sage: x + y + \ ....: z 7


Crude Oil Prices News & Forecast: WTI pulled back from two-month highs
by Yohay ElamCommodity Report: Crude Oil Price Forecast [Video]
Oil prices have pulled back from their highest levels in two months on Friday. Ongoing uncertainty over whether the United States and China will be able to reach a partial trade deal has been the main driver. Read more…
Market Wrap: Christine Lagarde, dire PMIs and oil prices
We’ve been quite struck by the resurgence in oil prices over the past two days. WTI crude oil futures are back near two-month highs. It has been interesting to see petrol prices gain while other markets sensitive to the US-China trade war lose out.
We are interpreting this pickup in oil prices as a refocus on supply-side issues in the lead up to the OPEC meeting in December. The price action implies more than we have seen in the news flow. Reports in recent days have suggested OPEC+ will extend its output cuts at its upcoming meeting. We think an extension was already priced in so markets might be positioning for deeper output cuts. Read more...


Research: Topics
Researchers are listed below each major research area
Last update: 1 October 2012
"Wired" project
Boyden, Kopell, Wilson, Desimone, Eichenbaum, Graybiel, Miller, Eden, Kramer, Brown
- Designing a system to collect and analyze electrical neural data from thousands of sites in the brain
- High-throughput digital data storage and analysis architectures
- Automated spike sorting methods
- Geometries of probes
Optogenetic perturbation of brain rhythms
Boyden, Han, Kopell, Desimone, Brown, Borgers, Kramer, Ritt, Eden
- Optogenetic perturbation of cognitive circuits
- Technologies for automating neural recording
- Protein delivery to neurons
- Somatosensory cortex oscillations
- Amygdala-hippocampal dynamics
- Cortical dynamics and attention using optogenetics
- Optogenetics and anesthesia effect analysis
- Gamma oscillations and cell assemblies
Neural Data Analysis
Desimone, Kramer, Eden, Eichenbaum, Whittington, Ritt, Cheng, Sarma, Kopell, Purdon, Cash, Stufflbeam, Hamalainen, Vaina
- Relationship between point processes and continuous signals
- Disambiguating statistical covariates
- Combining dynamical systems and statistical methods
- Dynamical properties of optogenetic stimulation
- Statistics of spiking in Parkinson's Disease
- Statistical changes in sleep and anesthesia
- Data analysis and epilepsy
- Analyzing connectivity from imaging data
Origins and propagation of rhythms
Moore, Jones, Kopell, Miller, Borgers, Boyden
- Model and verification of MEG data
- Gamma rhythms in the frontal cortex
- Gamma rhythms and cell assemblies
- Origins of the local field potential
- Propagation of rhythms
Rhythms and cognition
Kopell, Jones, Moore, Whittington, Eichenbaum, Han, Miller, Wilson, Brown, Graybiel, Polley
- Thalamic alpha Model
- Alpha rhythms and attention
- Beta rhythms and selective attention
- Beta rhythms and the hippocampus
- Causal evidence supporting a role for gamma and alpha oscillations in sensory information processing
- Cholinergic modulation of attention
- Multiple gamma rhythms in the auditory cortex and implications for bottom-up processing
- Encoding rules using rhythms
- Thalamic rhythms and cognition
- Non-Traditional Mechanisms for Regulating Neocortical Dynamics: The Hemo-Neural Hypothesis
Dynamics of anesthesia and sleep
Brown, Kopell, Purdon, Wilson, Cash
- Tracking coherence
- Anteriorizarion
- Burst suppression
- Identifying general anesthesia
- Mechanisms underlying ketamine anesthesia
- Anesthetics and aging
- Fibromyalgia and Sleep
- Sleep Oscillations During REM
- Ripple-Spindle Interactions during SWS
Parkinson's Disease
Han, Boyden, Kopell, Eden, Cheng, Jones, Ritt
- Dynamics in the basal ganglia loop
- Deep Brain Stimulation
Schizophrenia
Kopell, Le Beau, Whittington, Kocsis
- Aberrant interlaminar coupling
- A Link between NMDA synapses and pathology of schizophrenia
- Developmental models of schizophrenia
- Other animal models of schizophrenia
Epilepsy
Kramer, Cash, Moore, Eden, Jones, Stufflebeam, Hamalainen, Kopell, Borgers
- Human brain voltage data during seizure
- Non-invasive control of neural circuits
- The "resting network"
- A rodent model of epilepsy


I have based this workshop on examples for you to try yourself, because you won’t be able to learn how to program unless you try it out. I’ve picked example data that I hope will be interesting to Navy and Marine Corp public health researchers and practitioners. You can download the slides from the workshop by clicking here.
To try out these examples, you need some set-up:
This section will walk you through each step.
R is free and open-source software. You can download a copy for just about any operating system at the ]Comprehensive R Archive Network (CRAN)] (https://cran.r-project.org/). Look for the links on this page to “Download for …” and your operating system.1 If your computer has restrictions on what you can download, you may need to take to your system administrator or IT team to discuss whether you can download and install R and, if so, how. In that case, you may also need to talk with them about a strategy for installing R packages, as well.
You do not have to have RStudio2 In this section, I’m referring to RStudio, the software. It is produced by a company that is also called “RStudio”. RStudio, the company, includes a team of some of the best and most prolific R programmers currently contributing packages to extend R. A lot of the packages covered in this booklet were created and are maintained by members of the RStudio team. to run R, but it makes the experience much nicer. I also think it’s much easier to learn R when using RStudio to run it rather than using R by itself.
RStudio is an Integrated Development Environment (IDE)3 Integrated Development Environment (IDE). A program that provides a helpful interface for developing code, often geared to a specific programming language. It typically includes tools and a visual set-up for the programmer’s convenience. You should download it after you have downloaded R. You can download it here. You want the Desktop, open source edition. Download this and install it on your computer as you would any other software package from a website.
When you downloaded the R software from CRAN, you downloaded what’s called base R. This is the “engine” to run the heart of R, plus a few key extension packages. There are now several thousand packages available for R. These packages extend the core functionality of R, and we’ll be using a lot of these extra packages in this booklet.
When you need to use an R package that did not come with base R (most of them), you will first
need to install it to your computer. This can be done from R with the install.packages
function. This installs a package from an online repository to your computer, saving the code
in a special location that R can find. Since this function is downloading code from online,
your computer needs to have an internet connection when you run install.packages
, or you’ll
get an error.
This booklet uses a number of R packages beyond base R. To install all the packages that you’ll need, run the following code in your version of R:
install.packages(c("readr", "ggplot2", "forcats", "magrittr",
"dplyr", "lubridate", "sf", "tigris",
"DT", "plotly", "leaflet", "flexdashboard",
"tidyr", "stringr"))
I’ve created a repository on GitHub4 GitHub. An online platform for directories tracked with
the version control software git
. It has become a very popular place for coders to post code
from their projects, especially for open-source projects like R packages. You may need to get
a GitHub account to be able to clone this example directory. Even if not, it’s not a bad idea to
get an account if you work a lot with data and open-source code. You can find this example
repository by clicking here. On the
page takes you to, click on the “Clone or download” button and then select “Download ZIP”.
This will download a single zipped file to your computer. When you unzip the file, it will be a special type of directory, an R Project directory. To open the R Project and start on the examples, open RStudio, then go to “File” -> “Open Project”. A pop-up window will open to let you navigate through your files and find an R Project to open. Navigate to the directory you downloaded, which should be called “navy_public_health_examples” and doubleclick on the file in this directory called “navy_public_health_examples.Rproj”.
This will open the project. In the “Files” pane of RStudio, you should see some subdirectories for “R” and “data”. These have the example R code and data, respectively, for you to try the examples in this booklet. The code in each of the R files should run independently, including the code to load all required packages. Figure 1.1 shows what this package should look like once you’ve downloaded and opened it, as well as opened the “plot.R” file in the project’s “R” subdirectory.
Click on the Next button (or navigate using the links at the top of the page) to continue.


--- layout: post title: Frequently Awkward Questions for the Entertainment Industry date: 2006-07-14 00:00:00 categories: amusing digital-media ---
Frequently Awkward Questions for the Entertainment Industry: "EFF has prepared a sample list of tough questions for times when you hear entertainment industry representatives speaking and want to challenge their positions."


User Profile Settings
Manage your user profile
General Settings
User ID
User account login ID
Given Name
Your first name
Surname
Your family name
Email
Your email address.
Assigned roles
| Role | Description |
| {{name}} | {{description}} |
Save settings
Password
Current Password
Enter your current password to authenticate the password change request.
New Password
Enter your new password
Confirm Password
Confirm the new password by entering it again in order to detect typos.
Change password


Thu Feb 10, 2000
Youth Hostel, Bulawayo.
Well, I was tired and desperate last night and lost a shitload of money to some crooked taxi driver and his big friends.
Today was great. There are so many Canadians staying here. I hooked up with this guy from Montreal and did some touring today. In the morning, we did a Township tour and saw arts and crafts production, and a traditional medicine market. Benson (the guide) even took us to his home.
Caught a minibus taxi - never thought I’d survive that. After lunch at Nandos, we took the tour to Matopos National Park to the amazing Matobo hills and saw Cecil John Rhodes’ grave. We then saw some Bushmen paintings before heading back.
The whole lot cost $2850 (Zim). The currency exchange is too confusing, so it’s lost on me. I do know, if I’m wise and careful, accommodation and food can be negligible - BUT there are separate prices for tourist areas for foreigners and locals. Because of the fuel crisis, Mugabe has doubled prices in an effort to milk the tourist income for all it’s worth!
 The people here are super friendly, when it rains the phones don’t work, and as a “Kiwa” (white), I stand out like a sore thumb (or sitting duck).
This journal entry has been transcribed from the handwritten original. For more information about this transcription project, see this blog post.


All Docs
How to do stuff with boomerang
The following is a list of all items identified in the use case document and then some.
HOWTO
- Howto 0 — How to get data out of a beacon/before_beacon event handler
- Howto 1a — User clicks a link on a page we control and page is usable when onload fires
- Howto 1b — User clicks a link on a page we control and page is usable at some developer determined point
- Howto 2 — Measure perceived performance of content loaded dynamically
- Howto 3 — Measure a user's bandwidth/latency along with page load time
- Howto 4 — Measure more than just page load time
- Howto 5 — Request/page tagging
- Howto 6 — Configuring boomerang
- Howto 7 — Protecting the beacon from abuse
- Howto 8 — Measure DNS latency
TODO
- TODO 1 — Measure a random sample of users instead of all users
- TODO 2 — User types in URL/clicks a bookmark or link on a page we don't control and our page is usable when onload fires
- TODO 2 — User types in URL/clicks a bookmark or link on a page we don't control and our page is usable at some developer determined point
The latest code and docs is available on github.com/yahoo/boomerang


|
Drake
|
Implements a point cloud (with contiguous storage), whose main goal is to offer a convenient, synchronized interface to commonly used fields and data types applicable for basic 3D perception.
This is a mix between the philosophy of PCL (templated interface to provide a compile-time open set, run-time closed set) and VTK (non-templated interface to provide a very free form run-time open set). You may construct one PointCloud which will contain different sets of data, but you cannot change the contained data types after construction. However, you can mutate the data contained within the structure and resize the cloud.
Definitions:
This point cloud class provides the following fields:
xyz(i)
, mutable_descriptor(i)
) to avoid overhead when accessing a single element (either copying or creating a reference).#include <drake/perception/point_cloud.h>
Public Types | |
| using | T = float |
| Geometric scalar type. More... | |
| using | C = uint8_t |
| Color channel scalar type. More... | |
| using | D = T |
| Descriptor scalar type. More... | |
Public Member Functions | |
| PointCloud (int new_size=0, pc_flags::Fields fields=pc_flags::kXYZs, bool skip_initialize=false) | |
Constructs a point cloud of a given new_size , with the prescribed fields . More... | |
| PointCloud (const PointCloud &other) | |
| Copies another point cloud's fields and data. More... | |
| PointCloud (PointCloud &&other) | |
| Takes ownership of another point cloud's data. More... | |
| PointCloud (const PointCloud &other, pc_flags::Fields copy_fields) | |
| Copies another point cloud's fields and data. More... | |
| PointCloud & | operator= (const PointCloud &other) |
| PointCloud & | operator= (PointCloud &&other) |
| ~PointCloud () | |
| pc_flags::Fields | fields () const |
| Returns the fields provided by this point cloud. More... | |
| int | size () const |
| Returns the number of points in this point cloud. More... | |
| void | resize (int new_size, bool skip_initialize=false) |
| Conservative resize; will maintain existing data, and initialize new data to their invalid values. More... | |
Geometric Descriptors - XYZs | |
| bool | has_xyzs () const |
| Returns if this cloud provides XYZ values. More... | |
| Eigen::Ref< const Matrix3X< T > > | xyzs () const |
| Returns access to XYZ values. More... | |
| Eigen::Ref< Matrix3X< T > > | mutable_xyzs () |
| Returns mutable access to XYZ values. More... | |
| Vector3< T > | xyz (int i) const |
| Returns access to an XYZ value. More... | |
| Eigen::Ref< Vector3< T > > | mutable_xyz (int i) |
| Returns mutable access to an XYZ value. More... | |
Geometric Descriptors - Normals | |
| bool | has_normals () const |
| Returns if this cloud provides normals. More... | |
| Eigen::Ref< const Matrix3X< T > > | normals () const |
| Returns access to normals. More... | |
| Eigen::Ref< Matrix3X< T > > | mutable_normals () |
| Returns mutable access to normals. More... | |
| Vector3< T > | normal (int i) const |
| Returns access to a normal. More... | |
| Eigen::Ref< Vector3< T > > | mutable_normal (int i) |
| Returns mutable access to a normal. More... | |
Geometric Descriptors - RGBs | |
| bool | has_rgbs () const |
| Returns if this cloud provides RGB colors. More... | |
| Eigen::Ref< const Matrix3X< C > > | rgbs () const |
| Returns access to RGB colors. More... | |
| Eigen::Ref< Matrix3X< C > > | mutable_rgbs () |
| Returns mutable access to RGB colors. More... | |
| Vector3< C > | rgb (int i) const |
| Returns access to an RGB color. More... | |
| Eigen::Ref< Vector3< C > > | mutable_rgb (int i) |
| Returns mutable access to an RGB color. More... | |
Run-Time Descriptors | |
| bool | has_descriptors () const |
| Returns if this point cloud provides descriptor values. More... | |
| bool | has_descriptors (const pc_flags::DescriptorType &descriptor_type) const |
| Returns if the point cloud provides a specific descriptor. More... | |
| const pc_flags::DescriptorType & | descriptor_type () const |
| Returns the descriptor type. More... | |
| Eigen::Ref< const MatrixX< D > > | descriptors () const |
| Returns access to descriptor values. More... | |
| Eigen::Ref< MatrixX< D > > | mutable_descriptors () |
| Returns mutable access to descriptor values. More... | |
| VectorX< T > | descriptor (int i) const |
| Returns access to a descriptor value. More... | |
| Eigen::Ref< VectorX< T > > | mutable_descriptor (int i) |
| Returns mutable access to a descriptor value. More... | |
Container Manipulation | |
| void | SetFrom (const PointCloud &other, pc_flags::Fields fields_in=pc_flags::kInherit, bool allow_resize=true) |
| Copies all points from another point cloud. More... | |
| void | Expand (int add_size, bool skip_initialization=false) |
Adds add_size default-initialized points. More... | |
Fields | |
| bool | HasFields (pc_flags::Fields fields_in) const |
| Returns if a point cloud has a given set of fields. More... | |
| void | RequireFields (pc_flags::Fields fields_in) const |
| Requires a given set of fields. More... | |
| bool | HasExactFields (pc_flags::Fields fields_in) const |
| Returns if a point cloud has exactly a given set of fields. More... | |
| void | RequireExactFields (pc_flags::Fields field_set) const |
| Requires the exact given set of fields. More... | |
Static Public Member Functions | |
| static bool | IsDefaultValue (T value) |
| static bool | IsInvalidValue (T value) |
Static Public Attributes | |
| static constexpr T | kDefaultValue = std::numeric_limits<T>::quiet_NaN() |
| Represents an invalid or uninitialized value. More... | |
| static constexpr C | kDefaultColor {} |
| using C = uint8_t |
Color channel scalar type.
| using T = float |
Geometric scalar type.
|
explicit |
Constructs a point cloud of a given new_size
, with the prescribed fields
.
If kDescriptors
is one of the fields, then descriptor
should be included and should not be kNone
.
| new_size | Size of the point cloud after construction. |
| fields | Fields that the point cloud contains. |
| skip_initialize | Do not default-initialize new values. |
| PointCloud | ( | const PointCloud & | other | ) |
Copies another point cloud's fields and data.
| PointCloud | ( | PointCloud && | other | ) |
Takes ownership of another point cloud's data.
| PointCloud | ( | const PointCloud & | other, |
| pc_flags::Fields | copy_fields | ||
| ) |
Copies another point cloud's fields and data.
| copy_fields | Fields to copy. If this is kInherit , then other s fields will be copied. Otherwise, only the specified fields will be copied; the remaining fields in this cloud are left default initialized. |
| ~PointCloud | ( | ) |
Returns access to a descriptor value.
has_descriptors()
must be true. | const pc_flags::DescriptorType& descriptor_type | ( | ) | const |
Returns the descriptor type.
Returns access to descriptor values.
has_descriptors()
must be true. | void Expand | ( | int | add_size, |
| bool | skip_initialization = false |
||
| ) |
Adds add_size
default-initialized points.
| add_size | Number of points to add. |
| skip_initialization | Do not require that the new values be initialized. |
| pc_flags::Fields fields | ( | ) | const |
Returns the fields provided by this point cloud.
| bool has_descriptors | ( | ) | const |
Returns if this point cloud provides descriptor values.
| bool has_descriptors | ( | const pc_flags::DescriptorType & | descriptor_type | ) | const |
Returns if the point cloud provides a specific descriptor.
| bool has_normals | ( | ) | const |
Returns if this cloud provides normals.
| bool has_rgbs | ( | ) | const |
Returns if this cloud provides RGB colors.
| bool has_xyzs | ( | ) | const |
Returns if this cloud provides XYZ values.
| bool HasExactFields | ( | pc_flags::Fields | fields_in | ) | const |
Returns if a point cloud has exactly a given set of fields.
| bool HasFields | ( | pc_flags::Fields | fields_in | ) | const |
Returns if a point cloud has a given set of fields.
|
static |
|
static |
Returns mutable access to a descriptor value.
has_descriptors()
must be true. Returns mutable access to descriptor values.
has_descriptors()
must be true. Returns mutable access to a normal.
has_normals()
must be true. Returns mutable access to normals.
has_normals()
must be true. Returns mutable access to an RGB color.
has_rgbs()
must be true. Returns mutable access to RGB colors.
has_rgbs()
must be true. Returns mutable access to an XYZ value.
has_xyzs()
must be true. Returns mutable access to XYZ values.
has_xyzs()
must be true. Returns access to a normal.
has_normals()
must be true. Returns access to normals.
has_normals()
must be true. | PointCloud& operator= | ( | const PointCloud & | other | ) |
| PointCloud& operator= | ( | PointCloud && | other | ) |
| void RequireExactFields | ( | pc_flags::Fields | field_set | ) | const |
Requires the exact given set of fields.
| std::runtime_error | if this point cloud does not have exactly these fields. |
| void RequireFields | ( | pc_flags::Fields | fields_in | ) | const |
Requires a given set of fields.
| std::runtime_error | if this point cloud does not have these fields. |
| void resize | ( | int | new_size, |
| bool | skip_initialize = false |
||
| ) |
Conservative resize; will maintain existing data, and initialize new data to their invalid values.
Returns access to an RGB color.
has_rgbs()
must be true. Returns access to RGB colors.
has_rgbs()
must be true. | void SetFrom | ( | const PointCloud & | other, |
| pc_flags::Fields | fields_in = pc_flags::kInherit , |
||
| bool | allow_resize = true |
||
| ) |
Copies all points from another point cloud.
| other | Other point cloud. |
| fields_in | Fields to copy. If this is kInherit , then both clouds must have the exact same fields. Otherwise, both clouds must support the fields indicated this parameter. |
| allow_resize | Permit resizing to the other cloud's size. |
| int size | ( | ) | const |
Returns the number of points in this point cloud.
Returns access to an XYZ value.
has_xyzs()
must be true. Returns access to XYZ values.
has_xyzs()
must be true.
|
static |
Represents an invalid or uninitialized value.


¶ Garage RoomCopyright(c) 2016 Stefano Balietti MIT Licensed Garage room, does nothing, just keep clients in. |
"use strict";
|
¶ Global scope |
module.exports = GarageRoom;
var Room = require('./Room');
GarageRoom.prototype.__proto__ = Room.prototype;
GarageRoom.prototype.constructor = GarageRoom;
function GarageRoom(config) {
config = config || {};
config.acm = {
notify: {
onConnect: false,
onStageUpdate: false,
onStageLevelUpdate: false,
onStageLoadedUpdated: false
}
};
|
|
No node instance in the garage. TODO: Here. |
config.node = null;
Room.call(this, 'Garage', config);
this.registerRoom();
}
|
|
Empty methods. |
GarageRoom.prototype.setupGame = function() {
|
|
Nothing. |
};
GarageRoom.prototype.startGame = function() {
|
|
Nothing. |
};
GarageRoom.prototype.pauseGame = function() {
|
|
Nothing. |
};
GarageRoom.prototype.resumeGame = function() {
|
|
Nothing. |
};
GarageRoom.prototype.stopGame = function() {
|
|
Nothing. |
};
|


Nautilus project summary
Thus, rather than viewing geochemical proxies as replacements for empirical quantification of geological mass fluxes, these approaches are necessarily complementary.


My Gear:
40
Speed (km/h)
25
RPM
25
Speed for ahbnytnh:
10
Distance :
10
Total Count
40
Distance left (m)
25
Total Players
25
Game Time
35
Dataflow Time
35


Leafactor
Automatic refactor of Android apps for energy efficiency
Code repositories
Java refactorings
XML refactorings
Publications
Best Paper Award
Luis Cruz and Rui Abreu
(
2018
).
Using Automatic Refactoring to Improve Energy Efficiency of Android Apps
.
In
CIbSE XXI Ibero-American Conference on Software Engineering
.
Luis Cruz and Rui Abreu
(
2017
).
Performance-based Guidelines for Energy Efficient Mobile Applications
.
In
IEEE/ACM International Conference on Mobile Software Engineering and Systems, MobileSoft 2017
.
Luis Cruz and Rui Abreu and Jean-Noël Rouvignac
(
2017
).
Leafactor: Improving Energy Efficiency of Android Apps via Automatic Refactoring
.
In
IEEE/ACM International Conference on Mobile Software Engineering and Systems, MobileSoft 2017
.


Supporting Brooklyn College in its mission to provide affordable access to excellent higher education


Geographic distribution of substantiated disease outbreaks selected in study of timeliness of key outbreak milestones in the WHO African Region, 2017–2019. CCHF, Crimean-Congo hemorrhagic fever; WHO, World Health Organization. cVDPV2, circulating vaccine-derived poliovirus type 2


| Ice40up_simple_adc Project Summary |
| Implementation Name: |
impl_1 |
Performance Grade: |
High-Performance_1.2V |
| Strategy Name: |
Strategy1 |
Operating conditions: |
IND |
| Part Name: |
iCE40UP5K-SG48I |
Last Milestone: |
Gate-Level Simulation File (Passed) |
| Device Family: |
iCE40UP |
Timing Errors: |
Place & Route, 0 (setup), 0 (hold) |
| Device Type: |
iCE40UP5K |
Project Created: |
2018/09/24 18:07:52 |
| Package Type: |
SG48 |
Project Updated: |
2018/09/24 18:07:52 |
| Project File: |
D:/Radiant_porting/ADC_deltaSigma/SimpleSigmaDeltaADCSourceCode/project/ice40up/verilog/ice40up_verilog.rdf |
| Implement Location: |
D:/Radiant_porting/ADC_deltaSigma/SimpleSigmaDeltaADCSourceCode/project/ice40up/verilog/impl_1 |


Cacti - T. pachanoi & Cannabis (Bolivian)
We were in Argentina´s north, in the state of Jujuy, in a little town called Humahuaca. We were searching for mescaline containing cacti, we went to Coctaca an area where a guide told us that a mescaline containing cacti growed. But we prepare the cacti and didnt felt anything more than a stomach pain. We smoked a very bad pot and went sleep.
Some days after that we get together in that same town with some friends that came from a trip to Perů´s Machu Pichu and Bolivia. In Bolivia they could buy very cheap dryed San Pedro slices in 'El mercado de las brujas' in a Magic Shop they selled all kinds of powders and also San Pedro. These guys also buy some very very good marihuana in Santa Cruz, Bolivia (a city that produces lots of cocaine and specially marihuana). So we boiled the cacti slices for some hours (more than 15 slices), I have to say we where very anxious and we didnt boiled it the necesary amout of time (recommended four to six hours) so the effects of mescaline where kinda mild.
We smoked pot and walked into the dark mountain very stoned and affected by THC, in the dark cigarettes and all kinds of lights very very strong and had some kind of aura, our eyes experienced a delay. This effects could be bolivian marihuana or San Pedro, or maybe both. I really felt mescaline when I was walking in the middle of the dark later with my friend Nico heading to some girls house who lived in the end of a very dark street. In that walk I could experience the desire of closing my eyes and I did it, images and colours and strange shapes appeared, not very fluently. Despite the dark place and the cold we didnt experience paranoia or fear, something strange because some days after walking the same st. we felt a little insecure. My pupils were wide open and I felt inside a cloud or something, I closed my eyes and thinking started intense and continous. We smoked more pot during the night, but it didnt made much. When I focused my eyes everything shaked.
next time I will Boil the cacti lots of hours.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Guidance
Guidance to help schools understand how to respond to requests from parents and childcare providers about wraparound and holiday childcare.
Ref: DFE-00117-2016 PDF , 308KB , 16 pages
This guidance is for:
It may also be useful for:
It includes how to respond to:
‘Wraparound childcare’ is childcare that schools provide outside of normal school hours, such as breakfast clubs or after school childcare.
‘Holiday childcare’ is childcare that schools provide during school holidays.
Published: 26 May 2016


Goals available for this plugin:
| Goal | Report? | Description |
|---|---|---|
| revapi:check | No | Runs the API check of old and new artifacts using the specified configuration of extensions declared as dependencies of the plugin. |
| revapi:check-fork | No | No description. |
| revapi:convert-config-to-xml | No | This is a helper goal to convert the old JSON Revapi configuration
inside the POM files into the new XML based format. You usually
need to run this goal just once in each module.
Note that this does not touch the external configuration files. The old and new style configuration still works together well, though. Note that this goal changes the contents of pom.xml of the built modules. You are advised to check the modifications for correctness and to update the formatting of the changed lines to your liking. |
| revapi:help | No | Display help information on revapi-maven-plugin. Call mvn revapi:help -Ddetail=true
-Dgoal=<goal-name> to display parameter details. |
| revapi:report | Yes | No description. |
| revapi:report-aggregate | Yes | Uses the configuration supplied at the top level aggregator project
to run analysis on all sub-projects.
The artifacts to compare are taken from the configurations of
the child projects while the configuration of Revapi and the
extensions to use are taken from the aggregator project. The
analyses are run in succession using a single instance of Revapi.
Therefore you need to configure your custom Revapi reporter(s) to
somehow not overwrite their reports, but append to it. The default
site page generator can do this and the
|
| revapi:report-fork | Yes | No description. |
| revapi:update-release-properties | No | No description. |
| revapi:update-versions | No | No description. |
| revapi:validate-configuration | No | No description. |
The following specifies the minimum requirements to run this Maven plugin:
| Maven | 3.2.5 |
| JDK | 1.8 |
| Memory | No minimum requirement. |
| Disk Space | No minimum requirement. |
You should specify the version in your project's plugin configuration:
<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.revapi</groupId> <artifactId>revapi-maven-plugin</artifactId> <version>0.14.2</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.revapi</groupId> <artifactId>revapi-maven-plugin</artifactId> <version>0.14.2</version> </plugin> ... </plugins> </build> ... <!-- To use the report goals in your POM or parent POM --> <reporting> <plugins> <plugin> <groupId>org.revapi</groupId> <artifactId>revapi-maven-plugin</artifactId> <version>0.14.2</version> </plugin> ... </plugins> </reporting> ... </project>
For more information, see "Guide to Configuring Plug-ins"


Error 404: Page not found.
The page or file you are looking for does not exist.
Back to my website
© John Doe 2020


Javascript looping project
Welcome to the neighborhood number and string replacer.
please enter a number
Please enter a number
Submit
Your final output will display below here.


{% include 'fragments/forms/generic_tabular.html' with form=form %}
{% else %}
Reset Your Password?
The link that you followed was invalid or incomplete. Try copying and pasting the full link into the address bar. Alternatively, try sending another request.
{% endif %}
{% endblock %}


Chapter 12
THE FARMS AT SUNBURY
What happened after the foreclosure? Cousin Harvey V. Warner found some letters
written by RJ to RB between March of 1936 and
|
Thurman found two available farms about five miles from Sunbury, near the intersection of State Routes 61 and 656, in were adjacent to each other but the land was divided by the state roads. The larger farm, on Route 61, had an attractive two-story red brick home for his family and the other farm had a frame house for |
|
his parents and Ethel.
TG s House
RJ s ledger contains a record of an investment and the related expenses. There is an entry for March 1934 for down payment on the 60-acre farm of $1575. Additional expenses include lime, paint etc. $103.81; well drilled $71.40; grass seed $30.48; wallpaper $12.45; electric plant $248.52; wiring and fixtures $40.25; pump parts, lumber, blinds and hardware $26.81; washer $52.80; plowing $23.25; chickens $13.50 and feed $9.15. Total investment $2235. This farm was rented to MH Warner for $10.00 a month. Some of the rent received was in lieu of cash for fence installation, various repairs and an amount for produce from the garden, honey from MH s bees, and extra chickens raised by broody hens.
The moving date was
|
|
(Warner) Pugh York
was born Louisa Bell had been ill for two years and was moved in an ambulance to Roger s home in Ashley. Ethel remembers she cried all the way and thought it was the saddest day of her life. The house on state Route |
The New Home of MH, Louisa Belle and Ethel 656 was a step back when
compared to the modern
improvements that had been made on the house in
Among the first purchases was a Delco Plant to produce electricity. A small building was erected a short distance behind the house for this equipment. The Delco Plant was a small engine that ran on kerosene, after being started with gasoline. On more than one occasion I watched as my grandfather primed the engine and spun the fly wheel to start the engine. This engine turned a generator that produced 32 volts and charged 16 glass gallon size lead acid batteries that were shelved on one wall of the building. A full charge would run the few lights for a while. Ethel soon learned that it was necessary to start the engine for adequate electricity whenever she did washing or ironing.
In addition to the house there was an old barn, another building, a chicken house, and an outhouse. MH soon had a flock of sheep, some hives of bees, and several kinds of chickens. There were two or three very small portable metal pens or cages for broody hens to hatch baby chickens. My earliest memories of this farm was when I learned to broadcast grass seed while walking across what was to be a pasture field and later getting into trouble trying to teach baby chickens to swim.
There was another entry in RJ s ledger for May 1935 for a 283 acre farm. This was designated as an $11,000 investment--land value $6000 and buildings $5000. The buildings listed included a 34x20 brick house $2000; 2 story frame 44x84 barn $3000; 34x84 barn $200; 14x24 garage $200-- all with metal roofs. The down payment was $1304.71+143.22 taxes. Mortgage $8800. Rent was $800 a year paid from a share of the crops. Thurman moved his family to this farm.
These farms became a place for family to gather. Because Louisa was ill they came often. Once again the closeness that working together had produced in the earlier years became evident. They had known their chores at an early age and that the work they did was contributing to the welfare of the whole family. The older brothers offered much advice to their younger sister during their visits.
Aunt Ethel was single and going to school at
My introduction to the world of romance was the observation
of the courtship of Eskham Hayes with my Aunt Ethel. They both had attended
school in
|
to Ethel s new home may not have been the only obstacle in this developing relationship. Eskham also had to contend with a number of Ethel s nieces and nephews all begging for a ride in that marvelous rumble seat. We really enjoyed being in the wind and the feeling of going fast while riding in |
that rumble seat. The car also had a radio Model of the Hayes Courting Car which played music we did not hear at home.
I remember Red Sails in the Sunset and When Its Springtime in the Rockies as the first popular songs I heard on his radio. On more than one occasion RJ came out to the car and ordered us to get away and let them visit.
According to the ledger the plan was good on paper but
otherwise in reality. Information from the several letters written to RB
indicates that it was a very difficult time. The year 1936 was a gloomy year
that was brightened by the birth of Nancy Gene (Warner)
Letter 1
Dear RB
Congratulations on the 3 yr. contract. I sent the note to you as instructed. I lost my
job here Monday night by a 3-2 vote. I know not which way to turn. I don t think
there is much chance for a revision of the vote. The deciding vote was my banker.
I wish there was some way for me to unload the farm. Forget I wrote you. RJ
P.S. I sent
each month after that & we hoped to clear up all in 6 mo. Keep in mind I will pay
half if the other boys pay nothing. I am writing them tonight but I didn t mention
the note. I hope and pray that I shall never mention my financial problems to either
of them again. I received our original note for $500 payable in two years from
RJ was hired as the Superintendent of Xenia schools,
Aunt Ethel Hayes told a story that she had wondered about
for many years. Many times while her mother was in pain she had said she didn t
understand why the Lord did not take her. MH had attended the Palestine
Christian Church and evidently felt that maybe her
Juanita (Warner)
|
Just over ten days later the family gathered for the second funeral that month. Cancer had taken Louisa Belle. I only remember her as being ill. Joy May remembers
her grandmother working in her kitchen in One of the stories about Louisa Belle that my brother, Dave, recalls, was about Louisa s ability to work with bees and beehives. MH had a hive of bees that swarmed. He followed them across several counties and got them into a box. He said Louisa would get them into a hive. She had the ability to move bees with her bare hands. She described the experience, They feel so very soft from the flutter of their little wings. |
Louisa Belle Warner 1874 1936
One
story that Ethel told about Louisa was about a Christmas gift from Hubert. He placed a small blue velvet box under the
tree. When she opened it she found a toy watch. Louisa explained that he was in
college and money was scarce and only meant it as a joke. She convinced her not
to cry but to proudly wear the watch. Years later he gave her a blue velvet box
with a real watch.
There was a sad procession across
The next day there was another quick trip to Sunbury, the barn was still burning when we got there. I remember the crumpled metal and the smell of the burning animals that had not escaped the flames. It would be years later that Cousin James (Jim) Warner would tell that he had been building little fires with stick matches he filched from the box by the cook stove and stomping them out and one of the fires got away from him. The milk truck was there to pick up the cans of milk and the driver saw the flames. He yelled for help and grabbed a bucket to throw water on the flames but the fire spread too fast. Years later, Jim s brothers and sisters would tell a much different story.
After the barn burned
|
|
Thurman was interested in having a good dairy herd so a state of the art cow barn was added including a large silo for ensilage. This was a unique semicircular milking barn built part way around a silo to expedite feeding milk cows. There were stanchions to hold 20 to 30 milk cows. These were arranged around the center silo to minimize distribution of silage. Cousin Jim remembers, Twice a day someone would climb up into the silo and with a pitchfork drop 20 30 bushels of ensilage down and then place the right amount for each |
The New Warner Barn & Milking Barn cow.
Some of us learned to use a scoop shovel to remove manure that accumulated in the barn. Thurman called it chawed grass.
|
Ethel (Warner) and Eskham Hayes were married in the There was a picnic at Roger s house in Ashley to announce the marriage. MH was told it was his birthday party but he was suspicious and would not attend. I remember that either Aunt Ethel or Juanita ate all around the sides of her piece of watermelon and Paul or David grabbed the top and ran off with it before she could eat it. Ethel and Eskham went to MH the next day and Ethel |
|
told him she brought him a birthday gift. When he asked, Ethel and Eskham Hayes
What? she told him, A new son-in-law! He went right
on reading his newspaper and did not say a word. Juanita (Warner)
During this time MH was diagnosed with diabetes. He had fainted several times due to this condition. He was only 65 and the stress from the loss of his farm, his wife, his family leaving home may have been events that affected his health. Ethel and Eskham lived with MH for the next two years.
Letter 2 Undated, written about 1939
Dear RB and Marie, Sun P.M.
I go from one headache to a heartache and then back to the headache.
Dad refused to take a check of any kind from me Saturday eve. I gave him a
check for $10. He sat and looked at it for 9 minutes without saying a word.
He handed it back with the statement that you and I think he is incapable of
taking care of a few sheep and not worthy of a loan until he can get on his feet
he is done with us. He said some very bitter statements.
1. We are forcing Ethel and Eskham to keep him.
2. We have defeated him from getting a pension.
3. We made him a pauper and are determined to keep him a pauper.
4. He was going
to
5. He knew where the poorhouse was located and we could call on him there
the rest of his life.
6. Our efforts to help are insulting -- Done as charity and not as help.
He went out crying, got in the old car and when I followed up to get my car out
of his way he was still full and overflowing -- drove away -- I don t know the
answer.  I am sending my blanks in Monday and waiting for
my assessment to be paid through the Bureau.
I left my check for $10 with Sis. If she couldn t get him to take it she was to get
it cashed and give it to him a dollar at a time. Boy what a day! RJ
P.S. The psychology of our effort to help Dad is having the correct reaction on
his heart. He needs help too proud to let it seem like charity. I am still willing to
borrow $100 for sheep and let him mess with them but pay the $10 payments
on the note and not expect any return.
P.S. TG also was informed that he must make the payment on the note at the
Galena Bank. He said he would. Jo seemed in healthy spirits. RJ Warner
There were many changes during 1938-40. Six more Warner
babies were born into the upcoming generation. Myron Hubert was born to JH and
Helen,
|
MH married Catherine English Henry, |
Catherine Needless to say, this marriage was disturbing to the beliefs of some, especially
1874-1953 cousins back in the hills. In his younger years, MH had attended the Palestine Christian Church where his father James Wells was an Elder.
RJ would later write about his visit with some of his more
fundamental relatives back in the
Dad recorded something his aunt said, I never could understand you boys all going to the
Methodist church, you all were well enough educated, until-- if you had studied your
bible, you would know there is no religion in the Methodist church. She went on to inform him that the Methodists violated the bible teaching on the Lord s Supper, baptism and church organization and informed him what was right in each instance. To keep her going he asked, How often do you go to a Methodist church? The answer came quick, I ve never been in a Methodist church in my life, and never expect to be! He changed the subject.
RJ was concerned about the anguish and division that was often caused by religion and those relatives who thought their theology was the only way. He wrote:
There were Churches of Christ, Methodist, Lutheran, Catholic, Baptist and
Presbyterian churches all within walking distance (seven miles). We had relatives,
whom we liked, in all of these denominations. It seemed that almost all
families attended church. Many young people attended Evangelistic services
in more than one denomination.
When harvest time for thrashing grain, or butchering the winter meat supply,
or raising new buildings, or a quilting bee, members of all churches met and
worked together as a community. These occasions caused some of us to see
good church people regardless of denomination attended working together to
accomplish a purpose. No questions were asked about religion when the call
went out for laborers to harvest the crops of a neighbor who was ill and his crop
was ready. It was on Sunday when the church bells rang that the people of our
community segregated in an activity. RJ Warner
|
RB married Gladys Marie Jacoby me off to a good start in life, this dear lady went a long way in making me what I am today. I have vague memories of Jesse. I know she was sick. I have very fond memories of Marie. To me she was a special person and I never referred to her as my stepmother. She was always my mother and I will always remember her as Mother. |
Aunt Marie
Ethel and Eskham Hayes bought a house about two miles up
Route 656 in
After difficult years of farming, Thurman and Jo chose to
modify their farming operation. They moved their family to a farm near
Shirley Juanita (Hayes) McMullen was born
Another letter from RJ to RB,
Soon after Catherine died,
he finally needed more than home care and entered a nursing
home. He died
The gathering place for the family shifted to Ethel s home. Some of us remember the five brothers, sitting in her front yard discussing farming, school and politics. There were always disagreements but they were always brothers!
Go to Chapter:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13,
14, 15,
16, 17


CARBASTAT- carbachol injection, solution
Novartis Ophthalmics
CARBASTAT® (Carbachol Intraocular Solution, USP) 0.01% is a sterile balanced salt solution of carbachol for intraocular injection. The active ingredient is represented by the structural formula:
Established name: Carbachol
Chemical name: Ethanaminium, 2-[(aminocarbonyl)oxy]-N,N,N -trimethyl-, chloride.
Each mL contains: Active: Carbachol 0.01%.
Inactive: Sodium chloride 0.64%, potassium chloride 0.075%, calcium chloride dihydrate 0.048%, magnesium chloride hexahydrate 0.03%, sodium acetate trihydrate 0.39%, sodium citrate dihydrate 0.17%, sodium hydroxide and/or hydrochloric acid to adjust pH (5.0-7.5) and water for injection USP.
Carbachol is a potent cholinergic (parasympathomimetic) agent which produces constriction of the iris and ciliary body resulting in reduction in intraocular pressure. The exact mechanism by which carbachol lowers intraocular pressure is not precisely known.
Intraocular use for obtaining miosis during surgery. In addition, Carbastat® (Carbachol Intraocular Solution USP) reduces the intensity of intraocular pressure elevation in the first 24 hours after cataract surgery.
Should not be used in those persons showing hypersensitivity to any of the components of this preparation.
For single-dose intraocular use only. Discard unused portion. Intraocular carbachol 0.01% should be used with caution in patients with acute cardiac failure, bronchial asthma, peptic ulcer, hyperthyroidism, G.I. spasm, urinary tract obstruction and Parkinson's disease.
There are no adequate and well controlled studies in pregnant women. Carbastat® should be used during pregnancy only if the potential benefit justifies the potential risk to the fetus.
Aseptically remove the sterile vial from the blister package by peeling the backing paper and dropping the vial onto a sterile tray. Withdraw the contents into a dry sterile syringe, and replace the needle with an atraumatic cannula prior to intraocular irrigation. No more than one-half milliliter should be gently instilled into the anterior chamber for the production of satisfactory miosis. It may be instilled before or after securing sutures. Miosis is usually maximal within two to five minutes after application.
CARBASTAT (Carbachol Intraocular Solution, USP) 0.01%
1.5 mL sterile glass vials in cartons of 12 (12 x 1.5 mL)
NDC 58768-735-12
Store at controlled room temperature 15°-30°C (59°-86°F).
Rx only
Manufactured by OMJ Pharmaceuticals, Inc.,
San Germán, P.R. 00683
for Novartis Ophthalmics
Duluth, GA 30097
5007-D
March, 2001
|
CARBASTAT
carbachol injection, solution | ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| ||||||||||||||||||||||
| Labeler - Novartis Ophthalmics |


Hidden Fates Tin - Charizard GX
https://bit.ly/hf-zard
Check Stock
Hidden Fates Tin - Gyarados GX
https://bit.ly/hf-gyarados
Check Stock
Hidden Fates Tin - Raichu GX
https://bit.ly/hf-raichu
Check Stock
Champion's Path ETB
https://bit.ly/cp-etb
Check Stock
Dubwool V Box
https://bit.ly/dubwool
Check Stock
Stow-on-Side Pin Collection
https://bit.ly/stowonside
Check Stock
Circhester Pin Collection
https://bit.ly/circhester
Check Stock
Shining Legends Raichu
https://bit.ly/sl-raichu
Check Stock


Left
blueyellow
break12
break28
break29
Cool Loop 7
Ominous
Organ Echo Chords
Right
blueyellow
break12
break28
break29
Cool Loop 7
Ominous
Organ Echo Chords


WITNESS LIST Public Education Committee March 25, 2003-2:00P HB 317 For: Borden, Sandi (Texas Elementary Principals & Supervisors Association) Campbell, Jack (Texas Association of Business) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) Reeves, Gary (Texas Association School Personnel Administrators) Soehnge, Karen (TX Association of School Administrators) Against: Wall, Marjorie (Texas State Teachers Association) On: Whelan, Lauren (Association of Texas Professional Educators) HB 318 For: Campbell, Jack (Texas Association of Business) Carpenter, Bill (Houston I.S.D.) DeLeon, Marty (Texas Assoc of School Boards) Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) Jackson, Diane (Spring Branch ISD) Reeves, Gary (Texas Association School Personnel Administrators) Soehnge, Karen (TX Association of School Administrators) Against: Bacon, Tim (Texas State Teachers Association) Emberton, Sherilyn (Self) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Whelan, Lauren (Association of Texas Professional Educators) On: Franz, Bill (State Board for Educator Certification) Raab, Ted Melina (Texas Federation of Teachers) HB 451 For: DeLeon, Marty (TASB) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Soehnge, Karen (TX Association of School Administrators) Venable, Peggy (Citizens for a Sound Economy) Whelan, Lauren (ATPE) HB 557 For: DeLeon, Marty (Texas Association of School Boards) Soehnge, Karen (TX Association of School Administrators) Against: Bacon, Tim (Texas State Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) Whelan, Lauren (ATPE) On: Anderson, David (Texas Education Agency) Hollingsworth, Lonnie (Texas Classroom Teachers Association) HB 1226 For: Eckhart, Harley (Texas Elementary Principals & Supervisors Association) Maresh, Marquette (Texas Association of School Boards & Council of School Attorneys) Pogue, Christie (Hays CISD & Texas Association of School Boards) Raab, Ted Melina (Texas Federation of Teachers) Soehnge, Karen (TX Association of School Administrators) HB 1277 For: Soehnge, Karen (TX Association of School Administrators) Venable, Peggy (Citizens for a Sound Economy) Against: Gregg, Brock (Association of Texas Professional Educators) Owen, Martha (Texas Federation of Teachers) Raab, Ted Melina (Texas Federation of Teachers) Wall, Marjorie (Texas State Teachers Association) On: Hollingsworth, Lonnie (Texas Classroom Teachers Association) HB 1564 For: O'Daniel, Patrick (City of Westlake) Against: Soehnge, Karen (TX Association of School Administrators) On: Stuck, T. Lynn (Office of the Attorney General) HB 1564 Committee Substitute (Madden) For: Petty, Trent (Town of Westlake) HB 1698 For: Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) Venable, Peggy (Citizens for a Sound Economy) Against: Gregg, Brock (Association of Texas Professional Educators) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Owen, Martha (Texas Federation of Teachers) Raab, Ted Melina (Texas Federation of Teachers) Wall, Marjorie (Texas State Teachers Association) HB 1844 For: Douglass, Cathy (Texas Association of School Boards) Gregg, Brock (Association of Texas Professional Educators) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Jackson, Diane (Spring Branch ISD) Raab, Ted Melina (Houston Federation of Teachers) Raab, Ted Melina (Texas Federation of Teachers) Reeves, Gary (Texas Association School Personnel Administrators) Soehnge, Karen (TX Association of School Administrators) Wall, Marjorie (Texas State Teachers Association) HB 1949 For: Bacon, Tim (Texas State Teachers Association) Douglass, Cathy (Texas Association of School Boards) Gregg, Brock (ATPE) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) Soehnge, Karen (TX Association of School Administrators) On: Anderson, David (Texas Education Agency) HB 2013 For: Jackson, Diane (Spring Branch ISD) HB 2061 For: Douglass, Cathy (Texas Association of School Boards) Gregg, Brock (ATPE) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Soehnge, Karen (TX Association of School Administrators) HB 2072 For: Douglass, Cathy (Texas Assoc. of School Boards) Gregg, Brock (ATPE) Hollingsworth, Lonnie (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) Wall, Marjorie (Texas State Teachers Association) HB 2723 For: De Leon, Marty (Texas Assoc of School Boards) Reeves, Gary (Texas Assoc. School Personnel Administrators) Soehnge, Karen (TX Association of School Administrators) Against: Hollingsworth, Lonnie (Texas Classroom Teachers Association) Raab, Ted Melina (Texas Federation of Teachers) Wall, Marjorie (Texas State Teachers Association) Whelan, Lauren (Assoc. of Texas Professional Educators) On: Franz, Bill (State Board for Educator Certification) Fuller, Edward (SBEC) HR 308 On: Anderson, David (Texas Education Agency)


French police clear migrant makeshift camps in northern Paris
More than 1,600 people were cleared, a day after the government announced tighter immigration policies.
French police have evacuated hundreds of migrants from two camps in northern Paris on Thursday, a day after the government unveiled a series of measures to a "take back control" of immigration.
About 600 police officers escorted the migrants from tents where coaches transported them to reception centres, in an operation that began under a steady rain at about 6:00am (05:00 GMT), an AFP news agency reporter said.
The two camps near the Porte de la Chapelle, sheltered under the ring round that surrounds the capital, were believed to hold between 600 and 1,200 migrants.
More:
French Prime Minister Edouard Philippe said his country must "take back control of immigration" and come up with clear choices regarding asylum and integration.
Granting asylum seekers the right to remain in the country, he said in a speech on Wednesday, needs to be "actively based on our principles and goals".
Many of the occupants, which included families with children, said they were from Afghanistan or sub-Saharan Africa.
Paris Mayor Anne Hidalgo told Al Jazeera that these large-scale operations have taken place before.
"Every time, we're told it won't happen again, but we need proper processing procedures when people arrive in France in order for them to have their rights respected," Hidalgo said.
"In camps like these, about 20 percent of people are refugees who are here legally but have not been offered any kind of housing," she said.
"There are also homeless families."
'Skilled labour shortage'
According to Al Jazeera's Natasha Butler, reporting from Paris, the government seeks to introduce immigration quotas for workers in an attempt to "address the country's skilled labour shortage industry".
"There are also plans to tighten rules for asylum seekers. Access to healthcare will be limited, and benefits more rigorously controlled," Butler said.
At the scene of the evacuation on Thursday, Paris police chief Didier Lallement said the operation, one of the largest in the capital since camps regularly began springing up in 2015, was "decided in the framework of the implementation of the [government] plan".
"It did not happen by chance," he told reporters.
"I will no longer tolerate these installations by the roadside here or anywhere else on public spaces in Paris."
The government of President Emmanuel Macron has promised to crack down on immigration, a move widely seen as an attempt to keep right-wing parties from siphoning off voters ahead of municipal elections next year.
Interior Minister Christophe Castaner warned on Wednesday that the several camps housing up to 3,000 migrants in northeastern Paris would be evacuated "before the end of the year".
Castaner also said that 16,000 places would be made available in three new migrant centres, an effort to keep migrants from setting up new settlements.
Awa, a 32-year-old woman from the Ivory Coast, said on Thursday that she had been sleeping in a tent at the Porte de la Chapelle since she arrived in France a year ago.
"It's raining, it's cold. I don't know where I will go, but I'm glad to go because I will have a roof over my head tonight," she said, as she waited in line for a coach, carrying just a backpack.


§1-29 Computation of time. The time in which any act provided by law is to be done is computed by excluding the first day and including the last, unless the last day is a Sunday or holiday and then it is also excluded. When so provided by the rules of court, the last day also shall be excluded if it is a Saturday. [L 1923, c 3, §1; RL 1925, §19; RL 1935, §20; RL 1945, §20; RL 1955, §1-40; HRS §1-29; am L 1973, c 31, §2]
Cross References
Holidays, see §§8-1 to 8-3.
"Month", "year" defined, see §1-20.
"Successive" weeks, see §601-13.

Attorney General Opinions
Section refers to calculation of time in terms of days rather than hours. Att. Gen. Op. 92-6.
Case Notes
Where act to be done a specified period before a certain event, how computed. 8 H. 602; 8 H. 735, 738 (single justice); 19 H. 225 (prior to statutory exclusion of Sunday).
Statute applied: 10 H. 249; 18 H. 7; 24 H. 250 (district court proceeding at time when statute applicable only to circuit court proceedings); 38 H. 443. Not applicable where time was fixed by the judge. 28 H. 455 (Prior to adoption of present rules of court).
Publication "for not less than ten days" before letting contract not satisfied by one publication more than ten days prior. 30 H. 94.


Home > Reference > Functions reference > Get functions > Get(DocumentsPath)
Get(DocumentsPath) Purpose Returns the path to the Documents folder for the current user. Format Get(DocumentsPath) Parameters None Data type returned text Originated in FileMaker Pro 8.0 Description In Windows, the path format is /Drive:/Users/UserName/Documents/. In OS X, the path format is /DriveName/Users/username/Documents/. When running on FileMaker Server, Get(DocumentsPath) returns the location of the Documents folder, which is in the same folder as the server's Backups, Databases, and Scripts folders. The Documents folder is used as a shared location that scripts from different sessions or other processes on the machine can use to import or export files. For more information, see FileMaker Server Help. Notes • In FileMaker WebDirect, this function is not supported and always an empty string. • For information on how functions evaluate differently on the host versus the client, search the FileMaker Knowledge Base available at http://help.filemaker.com. Examples For FileMaker Pro, for a user named John Smith, returns: /C:/Users/John Smith/Documents/ in Windows. /Macintosh HD/Users/johnsmith/Documents/ in OS X For FileMaker Server, returns: /C:/Program Files/FileMaker/FileMaker Server/Data/Documents in Windows Vista. /Macintosh HD/Library/FileMaker Server/Data/Documents in OS X Related topics Functions reference (category list) Functions reference (alphabetical list) About formulas About functions Defining calculation fields Using operators in formulas Get(DocumentsPathListing) function


- getItemAt(int) - Method in class com.github.sahasatvik.struct.LinkedList
-
This method returns the item (type <T>
) at the index passed to it.
- getListItemAt(int) - Method in class com.github.sahasatvik.struct.LinkedList
-
This method returns the ListItem<T>
at the index passed to it.
- getOption(String) - Method in class com.github.sahasatvik.cli.ArgHandler
-
This method returns the Option whose short or long form matches the String passed to
it.
- getOption(char) - Method in class com.github.sahasatvik.cli.ArgHandler
-
This method returns the Option whose short form contains the charcter passed to it.
- getSize() - Method in class com.github.sahasatvik.struct.LinkedList
-
This method recalculates and returns the size of the LinkedList, ie, the
number of items in it.
- getState() - Method in class com.github.sahasatvik.cli.Option
-
This method returns the current state of the Option.
- getValue() - Method in class com.github.sahasatvik.cli.Argument
-
This method returns the raw value of the Argument.
- getValue(Class<T>) - Method in class com.github.sahasatvik.cli.Argument
-
This method returns the value of the Argument, parsed into an Object of Class
'clazz'.
- getValue(Parser<T>) - Method in class com.github.sahasatvik.cli.Argument
-
This method returns the value of the Argument, parsed using the Parser passed
to it.
- getValue() - Method in class com.github.sahasatvik.cli.Option
-
This method returns the value of the Option, if set previously.


Demo with Guess Type Tern plugin
See
https://github.com/angelozerr/tern-guess-types
for more infos.
require('')


Introduction to Software Architectures
Table of Contents
1 About This Sprint
This sprint reviews how to describe a non-trivial software system in the form of a software architecture.
For more information on this topic, see e.g. the course PA1453 Software Architecture and Quality
.
2 User Stories covered in this Sprint
- As a software designer I want to be able to divide my design into manageable chunks so that I can get a better overview.
- As a software designer I want to address the quality requirements of the software system early on so that they are not missed.
- As a software designer I want to address the quality requirements of the software system in the most appropriate way to facilitate the rest of the development project.
3 Introduction
When developing software there are a number of challenges to keep in mind. For example, the project manager want to reduce the development costs, your marketing department will want to reduce time-to market, considering that your application is going to spend 90% of its lifespan in maintenance, your company will want to decrease the maintenance costs, and your product managers want to increase system quality. We can summarise these needs in what is known as the Iron Triangle. Ignoring Euclidean geometry, this can be summarised as:
Figure 1: The Iron Triangle of Software Development
In order to balance these requests (and many more) you, as software developers, take decisions (Note how only one of the challenges appear to be about software. I won’t say any more about this for now, but I encourage you to think about how you would address the other challenges in your software). Software architecting is about identifying which business and technical decisions are necessary, and finding solutions that satisfy all stakeholders.
The software architecture is a tool for understanding which decisions are necessary, for planning how to instantiate these decisions in your software, and for communicating your decisions to the rest of the development team. You also use them to predict quality, and identify opportunities for reuse.
Going back to the iron triangle. Jan Bosch once said “Functionality is easy.” Anyone can implement functionality. It’s just a matter of hacking away until you have the right functionality. It is the other three corners that require planning, and where a software architecture may help. Let’s review each of the corners:
- On Time
- What features are most important to deliver first? How much time do you have? How can you structure the system so that you can develop features in parallel?
- On Budget
- What resources do you have available? How do you structure the software to make best use of the available expertise? What can you buy? What must you build?
- On Quality
- The obvious bit here is how you structure the software so that you can test it properly, but there is more to say here. The software architecture defines a potential to achieve certain quality attributes (for example, one structure may be good for reliability, another for modifiability, and a third for throughput). We may, in fact, define “on time” and “on budget” to also be specific quality requirements, that should be balanced alongside with performance, maintainability, reliability etc. ISO9126 (and it’s successor ISO 25010) goes one step further and also includes functionality as one quality attribute among the rest.
3.1 Architecture as Decisions
The first thing of a software architecture is thus that it consists of conscious decisions on how to address different concerns from different stakeholders. This includes decisions on concerns where you do not have the right competence available in-house, decisions on concerns where you need to deliver parts of the system in a certain order, decisions on concerns about how to achieve different quality requirements, and decisions on how to balance all these different concerns such that you focus on the most important concerns (side note: how do you prioritise your concerns?).
I will even go so far as to say that the decisions are the software architecture. The rest is just instantiations of these decisions. The instantiation is important, since this brings together all of your decisions into one coherent system that you are able to communicate to others, and to evaluate to ensure that you actually satisfy the right balance of quality requirements.
A more traditional definition is provided by the Software Engineering Institute (The definition below is from their book Software Architecture in Practice (Bass et al. 2012)):
The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
3.2 Architecture Views
If you’ve payed attention to the other sprints in this course, it should not come as a surprise to you that the software archtiecture is documented in a number of different ways, depending on what you are focusing on. Consider the maps below. All three represent London, but from different perspectives.
(There are also Other maps of London that are equally valid representations of the city. For example, there are sewage maps, electricity maps, gas maps, etc.)
If you are sightseeing, you might use the river map and take a boat. If you are walking or driving, the A-Z map is probably your best friend. If you just want to get from point A to point B, you use the tube map.
In the same way, you express your software architecture using different types of “maps” depending on what you intend to do. Philippe Kruchten expressed this in 1994 as the “4+1 view of architecture”:
This has influenced many design methodologies, including UML. The current best practice is to define a set of views (possibly from a suggested superset of potential views) that are relevant for your system. I am a bit old-fasioned, so I usually stick with a subset of Hofmeister et al. (2000)’s views:
- A Conceptual View
- describing the system as a series of collaborating conceptual “logical” components.
- A Module View
- describing the system as implementable modules corresponding to UML packages.
- An Execution View
- studying the runtime behaviour of the modules.
- A Code View
- focusing on the development and build environment.
3.3 Working with the Views
In UML, the “Scenarios” that Kruchten describes are your use cases. In Hofmeister et al. (2000), it corresponds to your decisions. In Bass et al. (2012) it is your architectural drivers. You use these scenarios (use cases, decisions, architectural drivers, etc.) to define what you need to model on an architecture level, and then you focus on different engineering concerns of these “whats” in each of the viewpoints.
Engineering Concerns
- Conceptual View
- How does the system fulfill the requirements?
- How are COTS components to be integrated? How do they interact with the rest of the system?
- How is domain specific hardware and/or software incorporated into the system?
- How is functionality partitioned into product releases?
- How does the system incorporate portions of the prior generations of the product and how will it support future generations?
- How are product lines supported?
- How can the impact of changes in requirements or the domain be minimized?
- Module View
- How is the product mapped to the software platform?
- What system support/services does it use, and exactly where?
- How can testing be supported?
- How can dependencies between modules be minimised?
- How can reuse of modules and subsystems be maximised?
- What techniques can be used to insulate the product from changes in COTS software, in the software platform, or changes to standards?
- Execution View
- How does the system meet its performance, recovery and reconfiguration requirements?
- How can one balance resource usage (for example, load balancing)?
- How can one achieve the necessary concurrency, replication and distribution without adding too much complexity to the control algorithms?
- How can the impact of changes in the runtime platform be minimised?
- Code View
- How can the time and effort for product upgrades be reduced?
- How should product versions and releases be managed?
- How can build time be reduced?
- What tools are needed to support the development environment?
- How are integration and testing supported?
Once you have the scenarios (decisions) for your first iteration ready, you basically work your way through the different views. There is an implicit order between them, because you need a conceptual overview before you can start defining modules, and you need the modules before you can start allocating these to your runtime platform. You also need the modules and the runtime overview before you start planning how to build, test, and integrate your system. However, it is also important to know that the decisions you take in the process of creating one view will impact the views you have already done, so you need to go back and revise in a highly iterative process.
3.4 Architecture Evaluation
You set out in your quest for architecture design with a well defined set of intentions; your (and your stakeholders) primary concerns. You have balanced these intentions against each other and the importance of each stakeholder, you have taken decisions on how to realise a system that satisfies these intentions, and you have instantiated your decisions in a number of different views of your system.
As a good engineer, you should not be satisfied here. The software architecture is a relatively cheap artefact to produce, and it has a considerable impact on your quality requirements. Your architecture is also expressed in several different views, and you need to integrate these views into a whole. Lindvall et al. (2003) distinguishes between Early Architecture Evaluation and Late Architecture Evaluation:
Early Architecture Evaluation
- Do we meet the quality requirements on the system?
- Do all stakeholders share a common understanding of the system?
- Are all requirements accounted for?
- Are there any weak spots in ther architecture?
- Can the system (and/or the architecture) be improved?
- Does the development team have all the necessary resources?
- Should we let this project continue?
Late Architecture Evaluation
- Hard metrics.
- How did we do? What needs to be improved for the next release?
There is a range of different evaluation methodologies available, from ad-hoc based “looking at the architecture and trying to find challenges based on past experiences and logical reasoning”, via more structured versions of this, up to simulation-based and mathematical models. The most commonly used is what is called scenario-based, which is a way to structure your experiences and focus your analysis into one scenario at a time.
Once you have evaluated your architecture, you need to decide whether you satisfy your quality requirements (and your other engineering concerns) or not. If you do, then you are done and can continue building your system. If not, you transform the architecture. This means that you change the architecture in one or several ways in order to improve those qualities that were lacking in your evaluation. Then you re-evaluate to see whether your transformations meet their goal and that they did not negatively effect any other of your qualities.
Figure 4: The Architecture Evaluation Cycle
A Good Software Architecture
- Is based on conscious decisions
- Is evaluated to ensure that it satisfies the specific goals for the system
- Pays attention to current and future quality attributes
- Is well documented, with traceability to the architecture decisions
- Features well defined modules(components), with well defined interfaces and well defined responsibilities
- Is restricted to a small set of interaction patterns that are consistently used
3.5 Architecture Tactics
Bass et al. introduces one more crucial aid for designing your architecture, namely Architecture Tactics. When you have your architectural drivers and need to decide how to actually adress these in your software architecture, architectural tactics suggest solutions on an architectural level for different quality requirements. The tactics are described on a high level, so you need to work with them quite extensively in order to actually fit them into your system.
For example, if performance is a concern for you, Bass et al. suggest that you can focus on managing the resource demand (e.g. by reducing overhead, rate limit the incoming data, or be more efficient in your computations), you may manage the resources smarter (e.g. by introducing concurency), or you may divide the work better (e.g. with a different scheduling policy). Of course, you may decide to use several of these tactics at once. Which tactic to use depends on your system and your data.
I suggest that you have a look in the Software Architecture in Practice book by Bass et al. and get an overview of the available tactics. These are good engineering principles that help you achieve your quality requirements in a more repeatable way.
3.6 Summary
To summarise, software architecture design is about:
- Identifying what needs to be decided in order to support the required functionality with the right level of quality.
- Deciding on solutions (for example with the help of tactics) that will address the required qualities.
- Instantiating those solutions in different viewpoints of the system.
- Evaluating whether your instantiation sufficiently address the decisions, and whether you thus sufficiently satisfy your quality requirements.
- Iterating until you are satisfied.
4 Learning Material
4.1 Book Chapters
- C. Larman, Applying UML and Patterns, 3rd Edition, Chapters:
- Architecture Analysis
- Logical Architecture Refinement
- UML Deployment and Component Diagrams
- Documenting Architecture: UML & the N+1 View Model
4.2 Screencasts
4.3 Books and Articles
- L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice, Third Edition. Addison-Wesley Publishing Co., Reading MA, 2012.
- C. Hofmeister, R. Nord, and D. Soni. Applied Software Architecture. Addison-Wesley, Reading MA, 2000.
- R. Kazman, L. Bass, M. Webb, and G. Abowd. SAAM: A method for analyzing the properties of software architectures. In Proceedings of the 16th international conference on Software engineering, pages 81–90. IEEE Computer Society Press, 1994.
- P.B. Kruchten, “The 4+ 1 view model of architecture.” IEEE software 12.6 (1995): 42-50.
- M. Lindvall, R. T. Tvedt, and P. Costa. An empirically-based process for software architecture evaluation. Empirical Software Engineering, 8:83–108, 2003.
- M. Svahnberg and F. Mårtensson. Six years of evaluating software architectures in student projects. Journal of Systems & Software, 80(11):1893–1901, 2007.
5 Experiential Learning
5.1 Sprint Test Plan
Go through the user stories for this sprint and make sure you have a clear understanding of how to solve each of them.
Revisit and update your risks and contingencies section.
Add and/or revise the following items to your glossary:
- Software Architecture
- The 4+1 Views of Architecture
- Architecture Viewpoints
- Conceptual View
- Module View
- Execution View
- Code View
- Quality Aspects
- Quality Attribute
- Quality Requirement
- Architecture Evaluation
- Early Architecture Evaluation
- Late Architecture Evaluation
- SAAM/ATAM
- Architecture Tactics
Make sure you understand what each item is, the notation for them, and how to use them either in isolation or together with the other concepts.
5.2 Update Course Backlog
Are there any common architecture styles? What are their qualities? How can you deal with (new) functionality that uses several of the components in the system (for example, a new feature may require a new UI dialogue, new business logic on several levels, new database connections, new tables in the database)?
Are there any other questions that you want answered? Add them, along with a brief strategy for how to find an answer.
6 Sprint Acceptance Tests
You are done with this sprint when:
- You understand the relationship between quality and software architecture.
- You understand how different views of a software system interact to create a richer picture of the entire system.
- You have an overview of different means available to evaluate your software architecture.
- You understand how architecture tactics can be used to drive your quality-focused architecture design work forward.
- You have considered which quality attributes are relevant for your system.
You may also have
- Updated your Sprint Test Plan
- Updated your Course Backlog