$$\hat{U}(x,y) = \theta_0 + \theta_1 x + \theta_2 y + \theta_3\,\sqrt{(x-x_g)^2 + (y-y_g)^2}\ .$$
Adapt the vacuum world (Chapter agents-chapter for
reinforcement learning by including rewards for squares being clean.
Make the world observable by providing suitable percepts. Now experiment
with different reinforcement learning agents. Is function approximation
necessary for success? What sort of approximator works for this
application?
Implement an exploring reinforcement learning
agent that uses direct utility estimation. Make two versions—one with a
tabular representation and one using the function approximator in
Equation (4x3-linear-approx-equation). Compare their
performance in three environments:
Devise suitable features for reinforcement learning in stochastic grid
worlds (generalizations of the $4\times 3$ world) that contain multiple
obstacles and multiple terminal states with rewards of $+1$ or $-1$.
Extend the standard game-playing environment
(Chapter game-playing-chapter) to incorporate a reward
signal. Put two reinforcement learning agents into the environment (they
may, of course, share the agent program) and have them play against each
other. Apply the generalized TD update rule
(Equation (generalized-td-equation)) to update the
evaluation function. You might wish to start with a simple linear
weighted evaluation function and a simple game, such as tic-tac-toe.
Compute the true utility function and the best linear
approximation in $x$ and $y$ (as in
Equation (4x3-linear-approx-equation)) for the
following environments:
Implement the REINFORCE and PEGASUS algorithms and apply them to the $4\times 3$ world,
using a policy family of your own choosing. Comment on the results.
Investigate the application of reinforcement learning ideas to the
modeling of human and animal behavior.
Is reinforcement learning an appropriate abstract model for evolution?
What connection exists, if any, between hardwired reward signals and
evolutionary fitness?
This exercise explores the quality of the $n$-gram model of language.
Find or create a monolingual corpus of 100,000 words or more. Segment it
into words, and compute the frequency of each word. How many distinct
words are there? Also count frequencies of bigrams (two consecutive
words) and trigrams (three consecutive words). Now use those frequencies
to generate language: from the unigram, bigram, and trigram models, in
turn, generate a 100-word text by making random choices according to the
frequency counts. Compare the three generated texts with actual
language. Finally, calculate the perplexity of each model.
Write a program to do **segmentation** of
words without spaces. Given a string, such as the URL
“thelongestlistofthelongeststuffatthelongestdomainnameatlonglast.com,”
return a list of component words: \[“the,” “longest,” “list,”
$\ldots$\]. This task is useful for parsing URLs, for spelling
correction when words runtogether, and for languages such as Chinese
that do not have spaces between words. It can be solved with a unigram
or bigram word model and a dynamic programming algorithm similar to the
Viterbi algorithm.
Zipf’s law of word distribution states the following:
Take a large corpus of text, count the frequency of every word in the
corpus, and then rank these frequencies in decreasing order. Let $f_{I}$
be the $I$th largest frequency in this list; that is, $f_{1}$ is the
frequency of the most common word (usually “the”), $f_{2}$ is the
frequency of the second most common word, and so on. Zipf’s law states
that $f_{I}$ is approximately equal to $\alpha / I$ for some constant
$\alpha$. The law tends to be highly accurate except for very small and
very large values of $I$.
Choose a corpus of at least 20,000 words of online text, and verify
Zipf’s law experimentally. Define an error measure and find the value of
$\alpha$ where Zipf’s law best matches your experimental data. Create a
log–log graph plotting $f_{I}$ vs. $I$ and $\alpha/I$ vs. $I$. (On a
log–log graph, the function $\alpha/I$ is a straight line.) In carrying
out the experiment, be sure to eliminate any formatting tokens (e.g.,
HTML tags) and normalize upper and lower case.
(Adapted from @Jurafsky+Martin:2000.) In this exercise you will develop a classifier for
authorship: given a text, the classifier predicts which of two candidate
authors wrote the text. Obtain samples of text from two different
authors. Separate them into training and test sets. Now train a language
model on the training set. You can choose what features to use;
$n$-grams of words or letters are the easiest, but you can add
additional features that you think may help. Then compute the
probability of the text under each language model and chose the most
probable model. Assess the accuracy of this technique. How does accuracy
change as you alter the set of features? This subfield of linguistics is
called stylometry; its successes include the identification of the author of the
disputed Federalist Papers @Mosteller+Wallace:1964 and
some disputed works of Shakespeare @Hope:1994. @Khmelev+Tweedie:2001 produce good results with
a simple letter bigram model.
This exercise concerns the classification of spam email.
Create a corpus of spam email and one of non-spam mail. Examine each
corpus and decide what features appear to be useful for classification:
unigram words? bigrams? message length, sender, time of arrival? Then
train a classification algorithm (decision tree, naive Bayes, SVM,
logistic regression, or some other algorithm of your choosing) on a
training set and report its accuracy on a test set.
Create a test set of ten queries, and pose them to three major Web
search engines. Evaluate each one for precision at 1, 3, and 10
documents. Can you explain the differences between engines?
Try to ascertain which of the search engines from the previous exercise
are using case folding, stemming, synonyms, and spelling correction.
Estimate how much storage space is necessary for the index to a 100
billion-page corpus of Web pages. Show the assumptions you made.
Write a regular expression or a short program to extract company names.
Test it on a corpus of business news articles. Report your recall and
precision.
Consider the problem of trying to evaluate the quality of an IR system
that returns a ranked list of answers (like most Web search engines).
The appropriate measure of quality depends on the presumed model of what
the searcher is trying to achieve, and what strategy she employs. For
each of the following models, propose a corresponding numeric measure.
Read the following text once for
understanding, and remember as much of it as you can. There will be a
test later.
An HMM grammar is essentially a standard HMM whose state
variable is $N$ (nonterminal, with values such as $Det$, $Adjective$,
$Noun$ and so on) and whose evidence variable is $W$ (word, with values
such as $is$, $duck$, and so on). The HMM model includes a prior
${\textbf{P}}(N_0)$, a transition model
${\textbf{P}}(N_{t+1}|N_t)$, and a sensor model
${\textbf{P}}(W_t|N_t)$. Show that every HMM grammar can be
written as a PCFG. \[Hint: start by thinking about how the HMM prior can
be represented by PCFG rules for the sentence symbol. You may find it
helpful to illustrate for the particular HMM with values $A$, $B$ for
$N$ and values $x$, $y$ for $W$.\]
Consider the following PCFG for simple verb phrases:
Consider the following simple PCFG for noun phrases:
Outline the major differences between Java (or any other computer
language with which you are familiar) and English, commenting on the
“understanding” problem in each case. Think about such things as
grammar, syntax, semantics, pragmatics, compositionality,
context-dependence, lexical ambiguity, syntactic ambiguity, reference
finding (including pronouns), background knowledge, and what it means to
“understand” in the first place.
This exercise concerns grammars for very simple languages.
Consider the sentence “Someone walked slowly to the supermarket” and a
lexicon consisting of the following words:
Collect some examples of time expressions, such as “two o’clock,”
“midnight,” and “12:46.” Also think up some examples that are
ungrammatical, such as “thirteen o’clock” or “half past two fifteen.”
Write a grammar for the time language.
Some linguists have argued as follows:
In this exercise you will transform $\large \varepsilon_0$ into
Chomsky Normal Form (CNF). There are five steps: (a) Add a new start
symbol, (b) Eliminate $\epsilon$ rules, (c) Eliminate multiple words on
right-hand sides, (d) Eliminate rules of the form
Consider the following toy grammar:
Using DCG notation, write a grammar for a
language that is just like $\large \varepsilon_1$, except that it enforces agreement between
the subject and verb of a sentence and thus does not generate
ungrammatical sentences such as “I smells the wumpus.”
Consider the following PCFG:
An augmented context-free grammar can represent languages that a regular
context-free grammar cannot. Show an augmented context-free grammar for
the language $a^nb^nc^n$. The allowable values for augmentation
variables are 1 and $SUCCESSOR(n)$, where $n$ is a value. The rule for a sentence
in this language is
Augment the $\large \varepsilon_1$ grammar so that it handles article–noun agreement. That is,
make sure that “agents” and “an agent” are ${\it NP}$s, but
“agent” and “an agents” are not.
Consider the following sentence (from The New York Times,
July 28, 2008):
Without looking back at
Exercise washing-clothes-exercise, answer the following
questions:
Select five sentences and submit them to an online translation service.
Translate them from English to another language and back to English.
Rate the resulting sentences for grammaticality and preservation of
meaning. Repeat the process; does the second round of iteration give
worse results or the same results? Does the choice of intermediate
language make a difference to the quality of the results? If you know a
foreign language, look at the translation of one paragraph into that
language. Count and describe the errors made, and conjecture why these
errors were made.
The $D_i$ values for the sentence in
Figure mt-alignment-figure sum to 0. Will that be true
of every translation pair? Prove it or give a counterexample.
(Adapted from [@Knight:1999].) Our translation model assumes that, after the phrase
translation model selects phrases and the distortion model permutes
them, the language model can unscramble the permutation. This exercise
investigates how sensible that assumption is. Try to unscramble these
proposed lists of phrases into the correct order:
Calculate the most probable path through the HMM in
Figure sr-hmm-figure for the output sequence
$[C_1,C_2,C_3,C_4,C_4,C_6,C_7]$. Also give its probability.
We forgot to mention that the text in
Exercise washing-clothes-exercise is entitled “Washing
Clothes.” Reread the text and answer the questions in
Exercise washing-clothes2-exercise. Did you do better
this time? Bransford and Johnson [@Bransford+Johnson:1973] used this
text in a controlled experiment and found that the title helped
significantly. What does this tell you about how language and memory
works?
In the shadow of a tree with a dense, leafy canopy, one sees a number of
light spots. Surprisingly, they all appear to be circular. Why? After
all, the gaps between the leaves through which the sun shines are not
likely to be circular.
 The image curve separating white pixels from black pixels is
sometimes called the “outline” of the sphere. Show that the outline of a
sphere, viewed in a perspective camera, can be an ellipse. Why do
spheres not look like ellipses to you?
Consider an infinitely long cylinder of radius $r$ oriented with its
axis along the $y$-axis. The cylinder has a Lambertian surface and is
viewed by a camera along the positive $z$-axis. What will you expect to
see in the image if the cylinder is illuminated by a point source at
infinity located on the positive $x$-axis? Draw the contours of constant
brightness in the projected image. Are the contours of equal brightness
uniformly spaced?
Edges in an image can correspond to a variety of events in a scene.
Consider Figure illuminationfigure
(page illuminationfigure, and assume that it is a picture of a real
three-dimensional scene. Identify ten different brightness edges in the
image, and for each, state whether it corresponds to a discontinuity in
(a) depth, (b) surface orientation, (c) reflectance, or (d)
illumination.
A stereoscopic system is being contemplated for terrain mapping. It will
consist of two CCD cameras, each having ${512}\times {512}$ pixels on a
10 cm $\times$ 10 cm square sensor. The lenses to be used have a focal
length of 16 cm, with the focus fixed at infinity. For corresponding
points ($u_1,v_1$) in the left image and ($u_2,v_2$) in the right image,
$v_1=v_2$ because the $x$-axes in the two image planes are parallel to
the epipolar lines—the lines from the object to the camera. The optical
axes of the two cameras are parallel. The baseline between the cameras
is 1 meter.
Which of the following are true, and which are false?
Which of the following are true, and which are false?
(Courtesy of Pietro Perona.) Figure bottle-figure shows
two cameras at X and Y observing a scene. Draw the image seen at each
camera, assuming that all named points are in the same horizontal plane.
What can be concluded from these two images about the relative distances
of points A, B, C, D, and E from the camera baseline, and on what basis?
Monte Carlo localization is
biased for any finite sample size—i.e., the expected
value of the location computed by the algorithm differs from the true
expected value—because of the way particle filtering works. In this
question, you are asked to quantify this bias.
Implement Monte Carlo localization for a
simulated robot with range sensors. A grid map and range data are
available from the code repository at
aima.cs.berkeley.edu. You should demonstrate
successful global localization of the robot.
Consider a robot with two simple manipulators, as
shown in figure figRobot2. Manipulator A is a square block of side 2
which can slide back and on a rod that runs along the x-axis from
x=$-$10 to x=10. Manipulator B is a square block of side 2 which can
slide back and on a rod that runs along the y-axis from y=-10 to y=10.
The rods lie outside the plane of manipulation, so the rods do not
interfere with the movement of the blocks. A configuration is then a
pair ${\langle}x,y{\rangle}$ where $x$ is the x-coordinate of the center
of manipulator A and where $y$ is the y-coordinate of the center of
manipulator B. Draw the configuration space for this robot, indicating
the permitted and excluded zones.
Suppose that you are working with the robot in
Exercise AB-manipulator-ex and you are given the
problem of finding a path from the starting configuration of
figure figRobot2 to the ending configuration. Consider a potential
function $$D(A, {Goal})^2 + D(B, {Goal})^2 + \frac{1}{D(A, B)^2}$$
where $D(A,B)$ is the distance between the closest points of A and B.
Consider the robot arm shown in
Figure FigArm1. Assume that the robot’s base element is
60cm long and that its upper arm and forearm are each 40cm long. As
argued on page inverse-kinematics-not-unique, the inverse kinematics of a robot is often
not unique. State an explicit closed-form solution of the inverse
kinematics for this arm. Under what exact conditions is the solution
unique?
Consider the robot arm shown in
Figure FigArm1. Assume that the robot’s base element is
70cm long and that its upper arm and forearm are each 50cm long. As
argued on page inverse-kinematics-not-unique, the inverse kinematics of a robot is often
not unique. State an explicit closed-form solution of the inverse
kinematics for this arm. Under what exact conditions is the solution
unique?
Implement an algorithm for calculating the Voronoi
diagram of an arbitrary 2D environment, described by an $n\times n$
Boolean array. Illustrate your algorithm by plotting the Voronoi diagram
for 10 interesting maps. What is the complexity of your algorithm?
This exercise explores the relationship between
workspace and configuration space using the examples shown in
Figure FigEx2.
1. Consider the robot configurations shown in
Figure FigEx2(a) through (c), ignoring the obstacle
shown in each of the diagrams. Draw the corresponding arm
configurations in configuration space. (Hint: Each
arm configuration maps to a single point in configuration space, as
illustrated in Figure FigArm1(b).)
Consider a mobile robot moving on a horizontal surface. Suppose that the
robot can execute two kinds of motions:
Consider the simplified robot shown in
Figure FigEx3. Suppose the robot’s Cartesian
coordinates are known at all times, as are those of its goal location.
However, the locations of the obstacles are unknown. The robot can sense
obstacles in its immediate proximity, as illustrated in this figure. For
simplicity, let us assume the robot’s motion is noise-free, and the
state space is discrete. Figure FigEx3 is only one
example; in this exercise you are required to address all possible grid
worlds with a valid path from the start to the goal location.
In Figure Fig5(b) on
page Fig5, we encountered an augmented finite state machine for
the control of a single leg of a hexapod robot. In this exercise, the
aim is to design an AFSM that, when combined with six copies of the
individual leg controllers, results in efficient, stable locomotion. For
this purpose, you have to augment the individual leg controller to pass
messages to your new AFSM and to wait until other messages arrive. Argue
why your controller is efficient, in that it does not unnecessarily
waste energy (e.g., by sliding legs), and in that it propels the robot
at reasonably high speeds. Prove that your controller satisfies the
dynamic stability condition given on page polygon-stability-condition-page.
(This exercise was first devised by Michael
Genesereth and Nils Nilsson. It works for first graders through graduate
students.) Humans are so adept at basic household tasks that they often
forget how complex these tasks are. In this exercise you will discover
the complexity and recapitulate the last 30 years of developments in
robotics. Consider the task of building an arch out of three blocks.
Simulate a robot with four humans as follows: Find and analyze an account in the popular media of one or more of the
arguments to the effect that AI is impossible.
Attempt to write definitions of the terms “intelligence,” “thinking,”
and “consciousness.” Suggest some possible objections to your
definitions.
Does a refutation of the Chinese room argument necessarily prove that
appropriately programmed computers have mental states? Does an
acceptance of the argument necessarily mean that computers cannot have
mental states?
In the brain replacement argument, it is
important to be able to restore the subject’s brain to normal, such that
its external behavior is as it would have been if the operation had not
taken place. Can the skeptic reasonably object that this would require
updating those neurophysiological properties of the neurons relating to
conscious experience, as distinct from those involved in the functional
behavior of the neurons?
Suppose that a Prolog program containing many clauses about the rules of
British citizenship is compiled and run on an ordinary computer. Analyze
the “brain states” of the computer under wide and narrow content.
Alan Perlis [@Perlis:1982] wrote, “A year spent in artificial
intelligence is enough to make one believe in God”. He also wrote, in a
letter to Philip Davis, that one of the central dreams of computer
science is that “through the performance of computers and their programs
we will remove all doubt that there is only a chemical distinction
between the living and nonliving world.” To what extent does the
progress made so far in artificial intelligence shed light on these
issues? Suppose that at some future date, the AI endeavor has been
completely successful; that is, we have build intelligent agents capable
of carrying out any human cognitive task at human levels of ability. To
what extent would that shed light on these issues?
Compare the social impact of artificial intelligence in the last fifty
years with the social impact of the introduction of electric appliances
and the internal combustion engine in the fifty years between 1890 and
1940.
I. J. Good claims that intelligence is the most important quality, and
that building ultraintelligent machines will change everything. A
sentient cheetah counters that “Actually speed is more important; if we
could build ultrafast machines, that would change everything,” and a
sentient elephant claims “You’re both wrong; what we need is ultrastrong
machines.” What do you think of these arguments?
Analyze the potential threats from AI technology to society. What
threats are most serious, and how might they be combated? How do they
compare to the potential benefits?
How do the potential threats from AI technology compare with those from
other computer science technologies, and to bio-, nano-, and nuclear
technologies?
Some critics object that AI is impossible, while others object that it
is *too* possible and that ultraintelligent machines pose a
threat. Which of these objections do you think is more likely? Would it
be a contradiction for someone to hold both positions?
1. Draw a minimal-sized decision tree for the
three-input XOR function.
2. Draw a minimal-sized decision graph for the
three-input XOR function.

.
1. Create a data set with two input attributes, such that the
information gain at the root of the tree for both attributes is
zero, but there is a decision tree of depth 2 that is consistent
with all the data. What would $\chi^2$ pruning do on this data set
if applied bottom up? If applied top down?
2. Modify DECISION-TREE-LEARNING to include $\chi^2$-pruning. You might wish to consult
Quinlan [@Quinlan:1986] or [@Kearns+Mansour:1998] for details.
1. First, we need to find a way to classify such examples, given a
decision tree that includes tests on the attributes for which values
can be missing. Suppose that an example $\textbf{x}$ has a missing value for
attribute $A$ and that the decision tree tests for $A$ at a node
that $\textbf{x}$ reaches. One way to handle this case is to pretend that
the example has all possible values for the
attribute, but to weight each value according to its frequency among
all of the examples that reach that node in the decision tree. The
classification algorithm should follow all branches at any node for
which a value is missing and should multiply the weights along each
path. Write a modified classification algorithm for decision trees
that has this behavior.
2. Now modify the information-gain calculation so that in any given
collection of examples $C$ at a given node in the tree during the
construction process, the examples with missing values for any of
the remaining attributes are given “as-if” values according to the
frequencies of those values in the set $C$.
| | $\quad A_1\quad$ | $\quad A_2\quad$ | $\quad A_3\quad$ | $\quad A_y\quad$ | $\quad y\quad$ |
| --- | --- | --- | --- | --- | --- |
| $\textbf{x}_1$ | 1 | 0 | 0 | 0 | 1 |
| $\textbf{x}_2$ | 1 | 0 | 1 | 1 | 1 |
| $\textbf{x}_3$ | 0 | 1 | 0 | 0 | 1 |
| $\textbf{x}_4$ | 0 | 1 | 1 | 0 | 0 |
| $\textbf{x}_5$ | 1 | 1 | 0 | 1 | 1 |
| $\textbf{x}_6$ | 0 | 1 | 0 | 1 | 0 |
| $\textbf{x}_7$ | 0 | 0 | 1 | 1 | 1 |
| $\textbf{x}_8$ | 0 | 0 | 1 | 0 | 0 |
1. Show that decision lists can represent any Boolean function, if the
size of the tests is not limited.
2. Show that if the tests can contain at most $k$ literals each, then
decision lists can represent any function that can be represented by
a decision tree of depth $k$.
1. Expand out the equation for the circle and show what the weights
$w_i$ would be for the decision boundary in the four-dimensional
feature space $(x_1, x_2, x_1^2, x_2^2)$. Explain why this means
that any circle is linearly separable in this space.
2. Do the same for ellipses in the five-dimensional feature space
$(x_1, x_2, x_1^2, x_2^2, x_1 x_2)$.
| | | | | | | | | | | | | | | |
| --- | --- | --- | --- | --- | --- |
| $\textbf{x}_1$ | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| $\textbf{x}_2$ | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 1 |
| $\textbf{x}_3$ | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
| $\textbf{x}_4$ | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 |
| $\textbf{x}_5$ | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
| $\textbf{x}_6$ | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
| $\textbf{T}$ | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1. Run the perceptron learning rule on these data and show the
final weights.
2. Run the decision tree learning rule, and show the resulting
decision tree.
3. Comment on your results.
1. Assume that the network has one hidden layer. For a given assignment
to the weights $\textbf{w}$, write down equations for the value of the
units in the output layer as a function of $\textbf{w}$ and the input layer
$\textbf{x}$, without any explicit mention of the output of the
hidden layer. Show that there is a network with no hidden units that
computes the same function.
2. Repeat the calculation in part (a), but this time do it for a
network with any number of hidden layers.
3. Suppose a network with one hidden layer and linear activation
functions has $n$ input and output nodes and $h$ hidden nodes. What
effect does the transformation in part (a) to a network with no
hidden layers have on the total number of weights? Discuss in
particular the case $h \ll n$.
1. Show that it can always be done for $N3$ points on a
plane of dimension $d2$, unless they are collinear.
2. Show that it cannot always be done for $N4$ points on a
plane of dimension $d2$.
3. Show that it can always be done for $N4$ points in a
space of dimension $d3$, unless they are coplanar.
4. Show that it cannot always be done for $N5$ points in a
space of dimension $d3$.
5. The ambitious student may wish to prove that $N$ points in general
position (but not $N+1$) are linearly separable in a space of
dimension $N-1$.
1. Design and denomination determine the mass of a coin.
2. For a given program, input determines output.
3. Climate, food intake, exercise, and metabolism determine weight gain
and loss.
4. Baldness is determined by the baldness (or lack thereof) of one’s
maternal grandfather.
1. Zip code determines the state (U.S.).
2. Design and denomination determine the mass of a coin.
3. Climate, food intake, exercise, and metabolism determine weight gain
and loss.
4. Baldness is determined by the baldness (or lack thereof) of one’s
maternal grandfather.
1. $C = {True} \Rightarrow P(A,B)$,
$C_1 = P(x,y) \Rightarrow Q(x,y)$, $C_2
= ??$.
2. $C = {True} \Rightarrow P(A,B)$, $C_1 = ??$,
$C_2 = ??$.
3. $C = P(x,y) \Rightarrow P(x,f(y))$, $C_1 = ??$,
$C_2 = ??$.
If there is more than one possible solution, provide one example of each
different kind.
1. How many functionally different literals can be generated? Two
literals are functionally identical if they differ only in the names
of the *new* variables that they contain.
2. Can you find a general formula for the number of different literals
with a predicate of arity $r$ when there are $n$ variables
previously used?
3. Why does not allow literals that contain no previously used
variables?
The doctor does some research and discovers that disease $B$ actually
comes in two versions, dextro-$B$ and levo-$B$, which are equally likely
and equally treatable by the anti-$B$ drug. Now that there are three
hypotheses, what will the two statisticians do?
.
1. By integrating over the range $[0,1]$, show that the normalization
constant for the distribution $[a,b]$ is given by
$\alpha = \Gamma(a+b)/\Gamma(a)\Gamma(b)$ where $\Gamma(x)$ is the Gamma function,
defined by $\Gamma(x+1)x\cdot\Gamma(x)$ and
$\Gamma(1)1$. (For integer $x$,
$\Gamma(x+1)x!$.)
2. Show that the mean is $a/(a+b)$.
3. Find the mode(s) (the most likely value(s) of $\theta$).
4. Describe the distribution $[\epsilon,\epsilon]$ for very
small $\epsilon$. What happens as such a distribution is updated?
1. Write down an expression for the likelihood of $D$ (i.e., the
probability of seeing this particular sequence of examples, given a
fixed value of $\pi$) in terms of $\pi$, $p$, and $n$.
2. By differentiating the log likelihood $L$, find the value of $\pi$
that maximizes the likelihood.
3. Now suppose we add in $k$ Boolean random variables
$X_1, X_2,\ldots,X_k$ (the “attributes”) that describe each sample,
and suppose we assume that the attributes are conditionally
independent of each other given the goal $Y$. Draw the Bayes net
corresponding to this assumption.
4. Write down the likelihood for the data including the attributes,
using the following additional notation:
- $\alpha_i$ is $P(X_i=true \| Y=true)$.
- $\beta_i$ is $P(X_i=true \| Y=false)$.
- $p_i^+$ is the count of samples for which $X_i=true$
and $Y=true$.
- $n_i^+$ is the count of samples for which $X_i=false$
and $Y=true$.
- $p_i^-$ is the count of samples for which $X_i=true$
and $Y=false$.
- $n_i^-$ is the count of samples for which $X_i=false$
and $Y=false$.
\[Hint: consider first the probability of seeing a
single example with specified values for $X_1, X_2,\ldots,X_k$ and
$Y$.\]
5. By differentiating the log likelihood $L$, find the values of
$\alpha_i$ and $\beta_i$ (in terms of the various counts) that
maximize the likelihood and say in words what these
values represent.
6. Let $k = 2$, and consider a data set with 4 all four possible
examples of thexor function. Compute the maximum
likelihood estimates of $\pi$, $\alpha_1$, $\alpha_2$, $\beta_1$,
and $\beta_2$.
7. Given these estimates of $\pi$, $\alpha_1$, $\alpha_2$, $\beta_1$,
and $\beta_2$, what are the posterior probabilities
$P(Y=true | x_1,x_2)$ for each example?
1. Implement a priority queue for adjustments to the utility estimates.
Whenever a state is adjusted, all of its predecessors also become
candidates for adjustment and should be added to the queue. The
queue is initialized with the state from which the most recent
transition took place. Allow only a fixed number of adjustments.
2. Experiment with various heuristics for ordering the priority queue,
examining their effect on learning rates and computation time.
1. The $4\times 3$ world described in the chapter.
2. A ${10}\times {10}$ world with no obstacles and a +1 reward
at (10,10).
3. A ${10}\times {10}$ world with no obstacles and a +1 reward
at (5,5).
1. A ${10}\times {10}$ world with a single $+1$ terminal state
at (10,10).
2. As in (a), but add a $-1$ terminal state at (10,1).
3. As in (b), but add obstacles in 10 randomly selected squares.
4. As in (b), but place a wall stretching from (5,2) to (5,9).
5. As in (a), but with the terminal state at (5,5).
The actions are deterministic moves in the four directions. In each
case, compare the results using three-dimensional plots. For each
environment, propose additional features (besides $x$ and $y$) that
would improve the approximation and show the results.
1. The searcher will look at the first twenty answers returned, with
the objective of getting as much relevant information as possible.
2. The searcher needs only one relevant document, and will go down the
list until she finds the first one.
3. The searcher has a fairly narrow query and is able to examine all
the answers retrieved. She wants to be sure that she has seen
everything in the document collection that is relevant to her query.
(E.g., a lawyer wants to be sure that she has found
all relevant precedents, and is willing to spend
considerable resources on that.)
4. The searcher needs just one document relevant to the query, and can
afford to pay a research assistant for an hour’s work looking
through the results. The assistant can look through 100 retrieved
documents in an hour. The assistant will charge the searcher for the
full hour regardless of whether he finds it immediately or at the
end of the hour.
5. The searcher will look through all the answers. Examining a document
has cost \\$ A; finding a relevant document has value \\$ B; failing
to find a relevant document has cost \\$ C for each relevant
document not found.
6. The searcher wants to collect as many relevant documents as
possible, but needs steady encouragement. She looks through the
documents in order. If the documents she has looked at so far are
mostly good, she will continue; otherwise, she will stop.
> The procedure is actually quite simple. First you arrange things into
different groups. Of course, one pile may be sufficient depending on how
much there is to do. If you have to go somewhere else due to lack of
facilities that is the next step, otherwise you are pretty well set. It
is important not to overdo things. That is, it is better to do too few
things at once than too many. In the short run this may not seem
important but complications can easily arise. A mistake is expensive as
well. At first the whole procedure will seem complicated. Soon, however,
it will become just another facet of life. It is difficult to foresee
any end to the necessity for this task in the immediate future, but then
one can never tell. After the procedure is completed one arranges the
material into different groups again. Then they can be put into their
appropriate places. Eventually they will be used once more and the whole
cycle will have to be repeated. However, this is part of life.
> 0.1: VP $\rightarrow$ Verb
> 0.2: VP $\rightarrow$ Copula Adjective
> 0.5: VP $\rightarrow$ Verb the Noun
> 0.2: VP $\rightarrow$ VP Adverb
> 0.5: Verb $\rightarrow$ is
> 0.5: Verb $\rightarrow$ shoots
> 0.8: Copula $\rightarrow$ is
> 0.2: Copula $\rightarrow$ seems
> 0.5: Adjective $\rightarrow$ unwell
> 0.5: Adjective $\rightarrow$ well
> 0.5: Adverb $\rightarrow$ well
> 0.5: Adverb $\rightarrow$ badly
> 0.6: Noun $\rightarrow$ duck
> 0.4: Noun $\rightarrow$ well
1. Which of the following have a nonzero probability as a VP? (i)
shoots the duck well well well(ii) seems the well well(iii) shoots
the unwell well badly
2. What is the probability of generating “is well well”?
3. What types of ambiguity are exhibited by the phrase in (b)?
4. Given any PCFG, is it possible to calculate the probability that the
PCFG generates a string of exactly 10 words?
> 0.6: NP $\rightarrow$ Det\ AdjString\ Noun
> 0.4: NP $\rightarrow$ Det\ NounNounCompound
> 0.5: AdjString $\rightarrow$ Adj\ AdjString
> 0.5: AdjString $\rightarrow$ $\Lambda$
> 1.0: NounNounCompound $\rightarrow$ Noun
> 0.8: Det $\rightarrow$ the
> 0.2: Det $\rightarrow$ a
> 0.5: Adj $\rightarrow$ small
> 0.5: Adj $\rightarrow$ green
> 0.6: Noun $\rightarrow$ village
> 0.4: Noun $\rightarrow$ green
where $\Lambda$ denotes the empty string.
1. What is the longest NP that can be generated by this grammar? (i)
three words(ii) four words(iii) infinitely many words
2. Which of the following have a nonzero probability of being generated
as complete NPs? (i) a small green village(ii) a green
green green(iii) a small village green
3. What is the probability of generating “the green green”?
4. What types of ambiguity are exhibited by the phrase in (c)?
5. Given any PCFG and any finite word sequence, is it possible to
calculate the probability that the sequence was generated by the
PCFG?
1. Write a context-free grammar for the language $a^n b^n$.
2. Write a context-free grammar for the palindrome language: the set of
all strings whose second half is the reverse of the first half.
3. Write a context-sensitive grammar for the duplicate language: the
set of all strings whose second half is the same as the first half.
$Pronoun \rightarrow \textbf{someone} \quad Verb \rightarrow \textbf{walked}$
$Adv \rightarrow \textbf{slowly} \quad Prep \rightarrow \textbf{to}$
$Article \rightarrow \textbf{the} \quad Noun \rightarrow \textbf{supermarket}$
Which of the following three grammars, combined with the lexicon,
generates the given sentence? Show the corresponding parse tree(s).
| $\quad\quad\quad\quad (A):\quad\quad\quad\quad$ | $\quad\quad\quad\quad(B):\quad\quad\quad\quad$ | $\quad\quad\quad\quad(C):\quad\quad\quad\quad$ |
| --- | --- | --- |
| $S\rightarrow NP\space VP$ | $S\rightarrow NP\space VP$ | $S\rightarrow NP\space VP$ |
| $NP\rightarrow Pronoun$ | $NP\rightarrow Pronoun$ | $NP\rightarrow Pronoun$ |
| $NP\rightarrow Article\space Noun $ | $NP\rightarrow Noun$ | $NP\rightarrow Article\space NP$ |
| $VP\rightarrow VP\space PP$ | $NP\rightarrow Article\space NP$ | $VP\rightarrow Verb\space Adv$ |
| $VP\rightarrow VP\space Adv\space Adv$ | $VP\rightarrow Verb\space Vmod$ | $Adv\rightarrow Adv\space Adv$ |
| $VP\rightarrow Verb$ | $Vmod\rightarrow Adv\space Vmod$ | $Adv\rightarrow PP$ |
| $PP\rightarrow Prep\space NP$ | $Vmod\rightarrow Adv$ | $PP\rightarrow Prep\space NP$ |
| $NP\rightarrow Noun$ | $Adv\rightarrow PP$ | $NP\rightarrow Noun$ |
| $\quad$ | $PP\rightarrow Prep\space NP$ | $\quad$ |
For each of the preceding three grammars, write down three sentences of
English and three sentences of non-English generated by the grammar.
Each sentence should be significantly different, should be at least six
words long, and should include some new lexical entries (which you
should define). Suggest ways to improve each grammar to avoid generating
the non-English sentences.
Children learning a language hear only positive
examples of the language and no negative
examples. Therefore, the hypothesis that “every possible
sentence is in the language” is consistent with all the observed
examples. Moreover, this is the simplest consistent hypothesis.
Furthermore, all grammars for languages that are supersets of the true
language are also consistent with the observed data. Yet children do
induce (more or less) the right grammar. It follows that they begin
with very strong innate grammatical constraints that rule out all of
these more general hypotheses a priori.
Comment on the weak point(s) in this argument from a statistical
learning viewpoint.
(${\it X}$
$\rightarrow$${\it Y}$),
(e) Convert long right-hand sides into binary rules.
1. The start symbol, $S$, can occur only on the left-hand side in CNF.
Replace ${\it S}$ everywhere by a new symbol
${\it S'}$ and add a rule of the form
${\it S}$
$\rightarrow$${\it S'}$.
2. The empty string, $\epsilon$ cannot appear on the right-hand side
in CNF. $\large \varepsilon_0$ does not have any rules with $\epsilon$, so this is not
an issue.
3. A word can appear on the right-hand side in a rule only of the form
(${\it X}$
$\rightarrow$*word*).
Replace each rule of the form (${\it X}$
$\rightarrow$…*word* …)
with (${\it X}$
$\rightarrow$…${\it W'}$ …)
and (${\it W'}$
$\rightarrow$*word*),
using a new symbol ${\it W'}$.
4. A rule (${\it X}$
$\rightarrow$${\it Y}$)
is not allowed in CNF; it must be (${\it X}$
$\rightarrow$${\it Y}$
${\it Z}$) or (${\it X}$
$\rightarrow$*word*).
Replace each rule of the form (${\it X}$
$\rightarrow$${\it Y}$)
with a set of rules of the form (${\it X}$
$\rightarrow$…), one
for each rule (${\it Y}$
$\rightarrow$…),
where (…) indicates one or more symbols.
5. Replace each rule of the form (${\it X}$
$\rightarrow$${\it Y}$
${\it Z}$ …) with two rules, (${\it X}$
$\rightarrow$${\it Y}$
${\it Z'}$) and (${\it Z'}$
$\rightarrow$${\it Z}$
…), where ${\it Z'}$ is a new symbol.
Show each step of the process and the final set of rules.
> $S \rightarrow NP\space VP$
> $NP \rightarrow Noun$
> $NP \rightarrow NP\space and\space NP$
> $NP \rightarrow NP\space PP$
> $VP \rightarrow Verb$
> $VP \rightarrow VP\space and \space VP$
> $VP \rightarrow VP\space PP$
> $PP \rightarrow Prep\space NP$
> $Noun \rightarrow Sally\space; pools\space; streams\space; swims$
> $Prep \rightarrow in$
> $Verb \rightarrow pools\space; streams\space; swims$
1. Show all the parse trees in this grammar for the sentence “Sally
swims in streams and pools.”
2. Show all the table entries that would be made by
a (non-probabalistic) CYK parser on this sentence.
> $S \rightarrow NP \space VP[1.0] $
> $NP \rightarrow \textit{Noun}[0.6] \space|\space \textit{Pronoun}[0.4] $
> $VP \rightarrow \textit{Verb} \space NP[0.8] \space|\space \textit{Modal}\space \textit{Verb}[0.2]$
> $\textit{Noun} \rightarrow \textbf{can}[0.1] \space|\space \textbf{fish}[0.3] \space|\space ...$
> $\textit{Pronoun} \rightarrow \textbf{I}[0.4] \space|\space ...$
> $\textit{Verb} \rightarrow \textbf{can}[0.01] \space|\space \textbf{fish}[0.1] \space|\space ...$
> $\textit{Modal} \rightarrow \textbf{can}[0.3] \space|\space ...$
The sentence “I can fish” has two parse trees with this grammar. Show
the two trees, their prior probabilities, and their conditional
probabilities, given the sentence.
$$S(n) \rightarrow}}A(n) B(n) C(n) \ .$$
Show the rule(s) for each of ${\it A}$,
${\it B}$, and ${\it C}$.
> Banks struggling to recover from multibillion-dollar loans on real
> estate are curtailing loans to American businesses, depriving even
> healthy companies of money for expansion and hiring.
1. Which of the words in this sentence are lexically ambiguous?
2. Find two cases of syntactic ambiguity in this sentence (there are
more than two.)
3. Give an instance of metaphor in this sentence.
4. Can you find semantic ambiguity?
1. What are the four steps that are mentioned?
2. What step is left out?
3. What is “the material” that is mentioned in the text?
4. What kind of mistake would be expensive?
5. Is it better to do too few things or too many? Why?
1. have, programming, a, seen, never, I, language, better
2. loves, john, mary
3. is the, communication, exchange of, intentional, information
brought, by, about, the production, perception of, and signs, from,
drawn, a, of, system, signs, conventional, shared
4. created, that, we hold these, to be, all men, truths, are, equal,
self-evident
Which ones could you do? What type of knowledge did you draw upon? Train
a bigram model from a training corpus, and use it to find the
highest-probability permutation of some sentences from a test corpus.
Report on the accuracy of this model.
1. If the nearest distance to be measured is 16 meters, what is the
largest disparity that will occur (in pixels)?
2. What is the distance resolution at 16 meters, due to the pixel
spacing?
3. What distance corresponds to a disparity of one pixel?
1. Finding corresponding points in stereo images is the easiest phase
of the stereo depth-finding process.
2. Shape-from-texture can be done by projecting a grid of light-stripes
onto the scene.
3. Lines with equal lengths in the scene always project to equal
lengths in the image.
4. Straight lines in the image necessarily correspond to straight lines
in the scene.
1. Finding corresponding points in stereo images is the easiest phase
of the stereo depth-finding process.
2. In stereo views of the same scene, greater accuracy is obtained in
the depth calculations if the two camera positions are
farther apart.
3. Lines with equal lengths in the scene always project to equal
lengths in the image.
4. Straight lines in the image necessarily correspond to straight lines
in the scene.
To simplify, consider a world with four possible robot locations:
$X=\{x_,x_,x_,x_\}$. Initially, we
draw $N\geq $ samples uniformly from among those locations. As
usual, it is perfectly acceptable if more than one sample is generated
for any of the locations $X$. Let $Z$ be a Boolean sensor variable
characterized by the following conditional probabilities:
$$\begin{aligned}
P(z\mid x_) &=& } \qquad\qquad P(\lnot z\mid x_)\;\;=\;\;} \\
P(z\mid x_) &=& } \qquad\qquad P(\lnot z\mid x_)\;\;=\;\;} \\
P(z\mid x_) &=& } \qquad\qquad P(\lnot z\mid x_)\;\;=\;\;} \\
P(z\mid x_) &=& } \qquad\qquad P(\lnot z\mid x_)\;\;=\;\;}\ .\end{aligned}$$
MCL uses these probabilities to generate particle weights, which are
subsequently normalized and used in the resampling process. For
simplicity, let us assume we generate only one new sample in the
resampling process, regardless of $N$. This sample might correspond to
any of the four locations in $X$. Thus, the sampling process defines a
probability distribution over $X$.
1. What is the resulting probability distribution over $X$ for this new
sample? Answer this question separately for
$N=,\ldots,}$, and for $N=\infty$.
2. The difference between two probability distributions $P$ and $Q$ can
be measured by the KL divergence, which is defined as
$${KL}(P,Q) = \sum_i P(x_i)\log\frac{P(x_i)}{Q(x_i)}\ .$$ What are
the KL divergences between the distributions in (a) and the true
posterior?
3. What modification of the problem formulation (not the algorithm!)
would guarantee that the specific estimator above is unbiased even
for finite values of $N$? Provide at least two such modifications
(each of which should be sufficient).
1. Show that hill climbing in this potential field will get stuck in a
local minimum.
2. Describe a potential field where hill climbing will solve this
particular problem. You need not work out the exact numerical
coefficients needed, just the general form of the solution. (Hint:
Add a term that “rewards" the hill climber for moving A out of B’s
way, even in a case like this where this does not reduce the
distance from A to B in the above sense.)
2. Draw the configuration space for each of the workspace diagrams in
Figure FigEx2(a)–(c). (Hint: The
configuration spaces share with the one shown in
Figure FigEx2(a) the region that corresponds to
self-collision, but differences arise from the lack of enclosing
obstacles and the different locations of the obstacles in these
individual figures.)
3. For each of the black dots in Figure FigEx2(e)–(f),
draw the corresponding configurations of the robot arm in workspace.
Please ignore the shaded regions in this exercise.
4. The configuration spaces shown in
Figure FigEx2(e)–(f) have all been generated by a
single workspace obstacle (dark shading), plus the constraints
arising from the self-collision constraint (light shading). Draw,
for each diagram, the workspace obstacle that corresponds to the
darkly shaded area.
5. Figure FigEx2(d) illustrates that a single planar
obstacle can decompose the workspace into two disconnected regions.
What is the maximum number of disconnected regions that can be
created by inserting a planar obstacle into an obstacle-free,
connected workspace, for a 2DOF robot? Give an example, and argue
why no larger number of disconnected regions can be created. How
about a non-planar obstacle?
- Rolling forward a specified distance.
- Rotating in place through a specified angle.
The state of such a robot can be characterized in terms of three
parameters ${\langle}x,y,\phi$, the x-coordinate and y-coordinate of the
robot (more precisely, of its center of rotation) and the robot’s
orientation expressed as the angle from the positive x direction. The
action “$Roll(D)$” has the effect of changing state ${\langle}x,y,\phi$
to ${\langle}x+D \cos(\phi), y+D \sin(\phi), \phi {\rangle}$, and the
action $Rotate(\theta)$ has the effect of changing state
${\langle}x,y,\phi {\rangle}$ to
${\langle}x,y, \phi + \theta {\rangle}$.
1. Suppose that the robot is initially at ${\langle}0,0,0 {\rangle}$
and then executes the actions $Rotate(60^{\circ})$, $Roll(1)$,
$Rotate(25^{\circ})$, $Roll(2)$. What is the final state of the
robot?
2. Now suppose that the robot has imperfect control of its own
rotation, and that, if it attempts to rotate by $\theta$, it may
actually rotate by any angle between $\theta-10^{\circ}$ and
$\theta+10^{\circ}$. In that case, if the robot attempts to carry
out the sequence of actions in (A), there is a range of possible
ending states. What are the minimal and maximal values of the
x-coordinate, the y-coordinate and the orientation in the final
state?
3. Let us modify the model in (B) to a probabilistic model in which,
when the robot attempts to rotate by $\theta$, its actual angle of
rotation follows a Gaussian distribution with mean $\theta$ and
standard deviation $10^{\circ}$. Suppose that the robot executes the
actions $Rotate(90^{\circ})$, $Roll(1)$. Give a simple argument
that (a) the expected value of the location at the end is not equal
to the result of rotating exactly $90^{\circ}$ and then rolling
forward 1 unit, and (b) that the distribution of locations at the
end does not follow a Gaussian. (Do not attempt to calculate the
true mean or the true distribution.)
The point of this exercise is that rotational uncertainty quickly
gives rise to a lot of positional uncertainty and that dealing with
rotational uncertainty is painful, whether uncertainty is treated in
terms of hard intervals or probabilistically, due to the fact that
the relation between orientation and position is both non-linear
and non-monotonic.
1. Design a deliberate controller that guarantees that the robot always
reaches its goal location if at all possible. The deliberate
controller can memorize measurements in the form of a map that is
being acquired as the robot moves. Between individual moves, it may
spend arbitrary time deliberating.
2. Now design a reactive controller for the same task.
This controller may not memorize past sensor measurements. (It may
not build a map!) Instead, it has to make all decisions based on the
current measurement, which includes knowledge of its own location
and that of the goal. The time to make a decision must be
independent of the environment size or the number of past
time steps. What is the maximum number of steps that it may take for
your robot to arrive at the goal?
3. How will your controllers from (a) and (b) perform if any of the
following six conditions apply: continuous state space, noise in
perception, noise in motion, noise in both perception and motion,
unknown location of the goal (the goal can be detected only when
within sensor range), or moving obstacles. For each condition and
each controller, give an example of a situation where the robot
fails (or explain why it cannot fail).
Brain. The Brain direct the hands in the execution of a
plan to achieve the goal. The Brain receives input from the Eyes, but
cannot see the scene directly.  The Eyes report a brief description of the scene
to the Brain: “There is a red box standing on top of a green box, which
is on its side” Eyes can also answer questions from the Brain such as,
“Is there a gap between the Left Hand and the red box?” If you have a
video camera, point it at the scene and allow the eyes to look at the
viewfinder of the video camera, but not directly at the scene.
Left hand and right hand. One person
plays each Hand. The two Hands stand next to each other, each wearing an
oven mitt on one hand, Hands execute only simple commands from the
Brain—for example, “Left Hand, move two inches forward.” They cannot
execute commands other than motions; for example, they cannot be
commanded to “Pick up the box.” The Hands must be
blindfolded. The only sensory capability they have is the
ability to tell when their path is blocked by an immovable obstacle such
as a table or the other Hand. In such cases, they can beep to inform the
Brain of the difficulty.


Static Method Summary
| Static Public Methods | ||
| public static |
createElement(name: *, internal: boolean): * |
|
| public static |
define() Defines core attributes of the class |
|
| public static |
getDPI(): * DEPRECATED |
|
| public static |
getIconEnum(): * |
|
| public static |
getInternalName(name: *): * |
|
| public static |
internalRegister(cls: *) |
|
| public static |
prefix(name: *): * |
|
| public static |
register(cls: *) |
|
| public static |
setDefault(element: *): * |
Constructor Summary
| Public Constructor | ||
| public |
|
Member Summary
| Public Members | ||
| public get |
background: * |
|
| public set |
|
|
| public |
|
|
| public get |
ctx: * |
|
| public set |
|
|
| public |
|
|
| public get |
description: * |
|
| public set |
|
|
| public get |
disabled: * |
|
| public set |
|
|
| public |
hidden: * |
|
| public get |
|
|
| public set |
|
|
| public get |
modalRunning: * |
|
| public |
|
|
| public |
packflag: * |
|
| public get |
parentWidget: * |
|
| public set |
|
|
| public |
|
|
| public |
shadow: * |
|
| public |
|
|
| public |
title: * |
|
| public get |
|
|
| public set |
causes calls to setPathValue to go through toolpath app.datapath_set(path="" newValueJSON="") |
|
| public get |
|
|
| public set |
|
|
| public |
|
| Private Members | ||
| private |
__background: * |
|
| private |
__cbs: *[] |
|
| private |
|
|
| private |
_active_animations: *[] |
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
_ctx: * |
|
| private |
_description: * |
|
| private |
|
|
| private |
_disdata: * |
|
| private |
_flashcolor: * |
|
| private |
_flashtimer: * |
|
| private |
|
|
| private |
_id: * |
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
_modaldata: * |
|
| private |
_modalstack: *[] |
|
| private |
|
|
| private |
|
|
| private get |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
_tooltip_ref: * |
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
|
| private |
|
Method Summary
| Public Methods | ||
| public |
|
|
| public |
abortToolTips(delayMs: number): * |
|
| public |
addEventListener(type: *, cb: *, options: *): * |
|
| public |
animate(_extra_handlers: {}): * returns a new Animator instance |
|
| public |
appendChild(child: *): * |
|
| public |
|
|
| public |
checkInit(): * |
|
| public |
|
|
| public |
set havePickClipboard to true in define() to enable mouseover pick clipboarding |
|
| public |
|
|
| public |
|
|
| public |
destroy() |
|
| public |
doOnce(func: *, timeout: *) |
|
| public |
findArea(): * |
|
| public |
|
|
| public |
|
|
| public |
|
|
| public |
flushUpdate(force: boolean) |
|
| public |
formatNumber(value: *, args: {}): * |
|
| public |
genBoxCSS(subkey: *): * |
|
| public |
getClassDefault(key: *, checkForMobile: boolean, defaultval: *): * |
|
| public |
getDPI(): * try to use this method |
|
| public |
getDefault(key: *, checkForMobile: boolean, defaultval: *): * |
|
| public |
getDefault_intern(key: *, checkForMobile: boolean, defaultval: *): * |
|
| public |
getElementById(id: *): * |
|
| public |
getPathDescription(ctx: *, path: *): * |
|
| public |
getPathMeta(ctx: *, path: *): * |
|
| public |
getPathValue(ctx: *, path: *): * |
|
| public |
getScreen(): * |
|
| public |
getStyle(): * |
|
| public |
|
|
| public |
getSubDefault(key: *, subkey: *, backupkey: *, defaultval: *): * get a sub style from a theme style class. |
|
| public |
getTotalRect(): * |
|
| public |
getWinHeight(): * |
|
| public |
getWinWidth(): * |
|
| public |
|
|
| public |
hasClassDefault(key: *): * |
|
| public |
hasDefault(key: *): * |
|
| public |
|
|
| public |
init() |
|
| public |
|
|
| public |
loadData(obj: *): * for saving ui state. |
|
| public |
loadJSON(obj: *) |
|
| public |
noMargins(): * |
|
| public |
noMarginsOrPadding(): * |
|
| public |
noPadding(): * |
|
| public |
|
|
| public |
|
|
| public |
|
|
| public |
on_resize(newsize: *) |
|
| public |
onadd() |
|
| public |
overrideClass(style: *) |
|
| public |
overrideClassDefault(style: *, key: *, val: *) |
|
| public |
overrideDefault(key: *, val: *, localOnly: boolean): * |
|
| public |
overrideTheme(theme: *): * |
|
| public |
parseNumber(value: *, args: {}): * |
|
| public |
pickElement(x: *, y: *, args: {}, marginy: number, nodeclass: *, excluded_classes: *): * |
|
| public |
popModal() |
|
| public |
|
|
| public |
|
|
| public |
pushReportContext(key: *) |
|
| public |
regenTabOrder(): * find owning screen and tell it to update the global tab order |
|
| public |
|
|
| public |
removeChild(child: *, trigger_on_destroy: boolean) |
|
| public |
removeEventListener(type: *, cb: *, options: *): * |
|
| public |
replaceChild(newnode: *, node: *): boolean |
|
| public |
saveData(): {} for saving ui state. |
|
| public |
setBoxCSS(subkey: *) |
|
| public |
|
|
| public |
setPathValue(ctx: *, path: *, val: *) |
|
| public |
setPathValueUndo(ctx: *, path: *, val: *) |
|
| public |
setUndo(val: *): * |
|
| public |
|
|
| public |
toJSON(): * |
|
| public |
traverse(type_or_set: *): * |
|
| public |
|
|
| public |
unhide() |
|
| public |
update() |
|
| public |
|
|
| public |
|
| Private Methods | ||
| private |
__updateDisable(val: *) |
|
| private |
|
|
| private |
_doMobileDefault(key: *, val: *): * |
|
| private |
|
|
| private |
child classes can override this to prevent focus on flash |
|
| private |
_forEachChildWidget(cb: *, thisvar: *) Iterates over all child widgets, including ones that might be inside of normal DOM nodes. |
|
| private |
|
|
| private |
|
Static Public Methods
public static createElement(name: *, internal: boolean): * source
Params:
| Name | Type | Attribute | Description |
| name | * | ||
| internal | boolean |
|
Return:
| * |
public static define() source
Defines core attributes of the class
Example:
static define() {return {
tagname : "custom-element-x",
style : "[style class in theme]"
subclassChecksTheme : boolean //set to true to disable base class invokation of checkTheme()
havePickClipboard : boolean //whether element supports mouse hover copy/paste
pasteForAllChildren : boolean //mouse hover paste happens even over child widgets
copyForAllChildren : boolean //mouse hover copy happens even over child widgets
}}
public static getDPI(): * source
DEPRECATED
scaling ratio (e.g. for high-resolution displays)
Return:
| * |
public static getInternalName(name: *): * source
Params:
| Name | Type | Attribute | Description |
| name | * |
Return:
| * |
public static internalRegister(cls: *) source
Params:
| Name | Type | Attribute | Description |
| cls | * |
public static register(cls: *) source
Params:
| Name | Type | Attribute | Description |
| cls | * |
public static setDefault(element: *): * source
Params:
| Name | Type | Attribute | Description |
| element | * |
Return:
| * |
Public Constructors
public constructor() source
Public Members
public get background: * source
public set background source
public class_default_overrides: {} source
public get ctx: * source
public set ctx source
public default_overrides: {} source
public get description: * source
public set description source
public get disabled: * source
public set disabled source
public hidden: * source
public get internalDisabled: * source
public set internalDisabled source
public get modalRunning: * source
public my_default_overrides: {} source
public packflag: * source
public get parentWidget: * source
public set parentWidget source
public shadow: * source
public title: * source
public set useDataPathUndo source
causes calls to setPathValue to go through toolpath app.datapath_set(path="" newValueJSON="")
every child will inherit
public get useNativeToolTips: * source
public set useNativeToolTips source
Private Members
private __background: * source
private __cbs: *[] source
private _active_animations: *[] source
private _client_disabled_set: * source
private _clipboard_keydown: * source
private _clipboard_keyend: * source
private _clipboard_keystart: * source
private _ctx: * source
private _description: * source
private _description_final: * source
private _disdata: * source
private _flashcolor: * source
private _flashtimer: * source
private _has_own_tooltips: * source
private _id: * source
private _last_clipboard_keyevt: * source
private _last_description: * source
private _last_theme_update_key: * source
private _modaldata: * source
private _modalstack: *[] source
private _override_class: * source
private _parentWidget: * source
private get _reportCtxName: * source
private _screenStyleTag: * source
private _themeOverride: * source
private _tool_tip_abort_delay: * source
private _tooltip_ref: * source
private _tooltip_timer: * source
private _useDataPathUndo: * source
private _useNativeToolTips: * source
Public Methods
public abortAnimations() source
public abortToolTips(delayMs: number): * source
Params:
| Name | Type | Attribute | Description |
| delayMs | number |
|
Return:
| * |
public addEventListener(type: *, cb: *, options: *): * source
Params:
| Name | Type | Attribute | Description |
| type | * | ||
| cb | * | ||
| options | * |
Return:
| * |
public animate(_extra_handlers: {}): * source
returns a new Animator instance
example:
container.animate().goto("style.width", 500, 100, "ease");
Params:
| Name | Type | Attribute | Description |
| _extra_handlers | {} |
|
Return:
| * |
public clipboardCopy() source
set havePickClipboard to true in define() to enable mouseover pick clipboarding
public clipboardPaste() source
public connectedCallback() source
public destroy() source
public doOnce(func: *, timeout: *) source
Params:
| Name | Type | Attribute | Description |
| func | * | ||
| timeout | * |
|
public flushSetCSS() source
public flushUpdate(force: boolean) source
Params:
| Name | Type | Attribute | Description |
| force | boolean |
|
public formatNumber(value: *, args: {}): * source
Params:
| Name | Type | Attribute | Description |
| value | * | ||
| args | {} |
|
Return:
| * |
public getClassDefault(key: *, checkForMobile: boolean, defaultval: *): * source
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| checkForMobile | boolean |
|
|
| defaultval | * |
|
Return:
| * |
public getDPI(): * source
try to use this method
scaling ratio (e.g. for high-resolution displays) for zoom ratio use getZoom()
Return:
| * |
public getDefault(key: *, checkForMobile: boolean, defaultval: *): * source
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| checkForMobile | boolean |
|
|
| defaultval | * |
|
Return:
| * |
public getDefault_intern(key: *, checkForMobile: boolean, defaultval: *): * source
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| checkForMobile | boolean |
|
|
| defaultval | * |
|
Return:
| * |
public getPathDescription(ctx: *, path: *): * source
Params:
| Name | Type | Attribute | Description |
| ctx | * | ||
| path | * |
Return:
| * |
public getPathMeta(ctx: *, path: *): * source
Params:
| Name | Type | Attribute | Description |
| ctx | * | ||
| path | * |
Return:
| * |
public getPathValue(ctx: *, path: *): * source
Params:
| Name | Type | Attribute | Description |
| ctx | * | ||
| path | * |
Return:
| * |
public getSubDefault(key: *, subkey: *, backupkey: *, defaultval: *): * source
get a sub style from a theme style class. note that if key is falsy then it just forwards to this.getDefault directly
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| subkey | * | ||
| backupkey | * |
|
|
| defaultval | * |
|
Return:
| * |
public hide(sethide: boolean) source
Params:
| Name | Type | Attribute | Description |
| sethide | boolean |
|
public init() source
public loadData(obj: *): * source
for saving ui state. see saveUIData() export
should fail gracefully.
also, it doesn't rebuild the object graph, it patches it; for true serialization use the toJSON/loadJSON or STRUCT interfaces.
Params:
| Name | Type | Attribute | Description |
| obj | * |
Return:
| * |
public loadJSON(obj: *) source
Params:
| Name | Type | Attribute | Description |
| obj | * |
public on_disabled() source
public on_enabled() source
public on_remove() source
public on_resize(newsize: *) source
Params:
| Name | Type | Attribute | Description |
| newsize | * |
public onadd() source
public overrideClass(style: *) source
Params:
| Name | Type | Attribute | Description |
| style | * |
public overrideClassDefault(style: *, key: *, val: *) source
Params:
| Name | Type | Attribute | Description |
| style | * | ||
| key | * | ||
| val | * |
public overrideDefault(key: *, val: *, localOnly: boolean): * source
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| val | * | ||
| localOnly | boolean |
|
Return:
| * |
public parseNumber(value: *, args: {}): * source
Params:
| Name | Type | Attribute | Description |
| value | * | ||
| args | {} |
|
Return:
| * |
public pickElement(x: *, y: *, args: {}, marginy: number, nodeclass: *, excluded_classes: *): * source
Params:
| Name | Type | Attribute | Description |
| x | * | ||
| y | * | ||
| args | {} |
|
|
| marginy | number |
|
|
| nodeclass | * |
|
|
| excluded_classes | * |
|
Return:
| * |
public popModal() source
public popReportContext() source
public pushModal(handlers: *, autoStopPropagation: boolean, pointerId: *, pointerElem: *): * source
Params:
| Name | Type | Attribute | Description |
| handlers | * |
|
|
| autoStopPropagation | boolean |
|
|
| pointerId | * |
|
|
| pointerElem | * |
|
Return:
| * |
public pushReportContext(key: *) source
Params:
| Name | Type | Attribute | Description |
| key | * |
public regenTabOrder(): * source
find owning screen and tell it to update the global tab order
Return:
| * |
public remove(trigger_on_destroy: boolean) source
Params:
| Name | Type | Attribute | Description |
| trigger_on_destroy | boolean |
|
public removeChild(child: *, trigger_on_destroy: boolean) source
Params:
| Name | Type | Attribute | Description |
| child | * | ||
| trigger_on_destroy | boolean |
|
public removeEventListener(type: *, cb: *, options: *): * source
Params:
| Name | Type | Attribute | Description |
| type | * | ||
| cb | * | ||
| options | * |
Return:
| * |
public replaceChild(newnode: *, node: *): boolean source
Params:
| Name | Type | Attribute | Description |
| newnode | * | ||
| node | * |
public saveData(): {} source
for saving ui state. see saveUIData() export
should fail gracefully.
Return:
| {} |
public setBoxCSS(subkey: *) source
Params:
| Name | Type | Attribute | Description |
| subkey | * |
public setCSS(setBG: boolean) source
Params:
| Name | Type | Attribute | Description |
| setBG | boolean |
|
public setPathValue(ctx: *, path: *, val: *) source
Params:
| Name | Type | Attribute | Description |
| ctx | * | ||
| path | * | ||
| val | * |
public setPathValueUndo(ctx: *, path: *, val: *) source
Params:
| Name | Type | Attribute | Description |
| ctx | * | ||
| path | * | ||
| val | * |
public traverse(type_or_set: *): * source
Params:
| Name | Type | Attribute | Description |
| type_or_set | * |
Return:
| * |
public undoBreakPoint() source
public unhide() source
public update() source
public updateToolTipHandlers() source
public updateToolTips() source
Private Methods
private __updateDisable(val: *) source
Params:
| Name | Type | Attribute | Description |
| val | * |
private _clipboardHotkeyInit() source
private _doMobileDefault(key: *, val: *): * source
Params:
| Name | Type | Attribute | Description |
| key | * | ||
| val | * |
Return:
| * |
private _ensureChildrenCtx() source
private _forEachChildWidget(cb: *, thisvar: *) source
Iterates over all child widgets, including ones that might be inside of normal DOM nodes.
This is done by recursing into the dom tree and stopping at any node that's descended from ui_base.UIBase
Params:
| Name | Type | Attribute | Description |
| cb | * | ||
| thisvar | * |


Be one of the first to gain access.
Please click below to request one of the first invites for the Everest Platform.
You will receive an email with a link to the application when launched. Please indicate the platform you are most interested in.


This is the most easterly port of entry on the north east coast of Cuba.
The sheltered bay is a hurricane hole and there is a 30 meter high lighthouse that marks the entrance to the bay.
Position 21º 06.00'N, 75º 57.95'W.
This is now a port of entry. Officials are reported to be very courteous and friendly. You will be asked to anchor off until clearance has been completed.
There is a good report by SY Lily about clearing in here in 2015 - adjacent.
See Cuba Formalities for detailed information on clearing into and out of Cuba.
The entrance channel to the port is narrow but well marked. If help is required to navigate up the channel, call for assistance on VHF channel 13 or 16.
The marina is very well sheltered, even in a hurricane. Yachts are Med-moored here (see photo courtesy of SY Lily who visited here in 2015). It is rather isloated however, so a hire car is probably a good idea for re-provisioning and getting around. Holquin is 20km away.
There is also an anchorage with a water taxi service.
Some repairs are possible.
Last updated May 2015.


Class ConstructAction.StringInput
Defines an input object for an action derived from ConstructAction.
This input object extpects the user to enter a string in a edit field.
Pressing enter or TAB or clicking the mouse proceeds to the next input object.
Inheritance
System.Object
ConstructAction.StringInput
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Assembly: CADability.dll
public class StringInput : ConstructAction.InputObject, ConstructAction.IInputObject, ICommandHandler
Constructors
|
Improve this Doc
View Source
Declaration
public StringInput(string resourceId)
Parameters
| Type |
Name |
Description |
| System.String |
resourceId |
the resource id to specify a string from the StringTable.
ResourceId+".Label": the Label left of the
edit box. ResourceId+".ShortInfo": a short tooltip text ResourceId+"DetailedInfo":
a longer tooltip text.
|
Fields
|
Improve this Doc
View Source
Only used when IsFileNameInput is true. This is the filter for the
file open dialog.
Declaration
public string FileNameFilter
Field Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
If true there will be an file open dialog when this input becomes visible.
Declaration
Field Value
| Type |
Description |
| System.Boolean |
|
|
Improve this Doc
View Source
If true, this input can be used as a file open dialog input. In the corresponding context menu
the file open dialog can be opened.
Declaration
public bool IsFileNameInput
Field Value
| Type |
Description |
| System.Boolean |
|
|
Improve this Doc
View Source
Declaration
public bool NotifyOnLostFocusOnly
Field Value
| Type |
Description |
| System.Boolean |
|
Properties
|
Improve this Doc
View Source
Content
Declaration
public string Content { get; set; }
Property Value
| Type |
Description |
| System.String |
|
|
Improve this Doc
View Source
Mouse input should be forwarded to another input object and only processed
by this input, when the other input object is fixed.
Declaration
public object ForwardMouseInputTo { get; set; }
Property Value
| Type |
Description |
| System.Object |
|
Methods
|
Improve this Doc
View Source
ConnectWithTextObject(Text, IView)
Connects this input filed with a Text object.
The Text object displays the carret in the view so you can edit the text
in the view directly
Declaration
public void ConnectWithTextObject(Text text, IView vw)
Parameters
| Type |
Name |
Description |
| Text |
text |
the text object
|
| IView |
vw |
the view, in which the editing is supposed to happen
|
Events
|
Improve this Doc
View Source
Provide a method here when the string also changes by other means than user input.
Declaration
public event ConstructAction.StringInput.GetStringDelegate GetStringEvent
Event Type
|
Improve this Doc
View Source
Provide a handler here if you want to be notified about input changes.
Declaration
public event ConstructAction.StringInput.SetStringDelegate SetStringEvent
Event Type
Explicit Interface Implementations
|
Improve this Doc
View Source
Declaration
bool ICommandHandler.OnCommand(string MenuId)
Parameters
| Type |
Name |
Description |
| System.String |
MenuId |
|
Returns
| Type |
Description |
| System.Boolean |
|
|
Improve this Doc
View Source
Declaration
void ICommandHandler.OnSelected(MenuWithHandler selectedMenuItem, bool selected)
Parameters
| Type |
Name |
Description |
| MenuWithHandler |
selectedMenuItem |
|
| System.Boolean |
selected |
|
|
Improve this Doc
View Source
Declaration
bool ICommandHandler.OnUpdateCommand(string MenuId, CommandState CommandState)
Parameters
| Type |
Name |
Description |
| System.String |
MenuId |
|
| CommandState |
CommandState |
|
Returns
| Type |
Description |
| System.Boolean |
|
Implements


--- layout: default title: Auditions group: about group-weight: 5 permalink: /about/auditions/ ---
Orchestra Santa Monica encourages advanced non-professional musicians to audition for volunteer positions. Interested applicants should submit a resume of their musical background, including orchestral experience, to conductor@orchestrasantamonica.org.


@*
* Copyright 2019 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import models._
@(periodKey: Int, taxAvoidanceForm: Form[TaxAvoidance], backLink: Option[String])(reliefsTaxAvoidance : Option[ReliefsTaxAvoidance])(implicit atedContext: AtedContext, messages: Messages)
@import uk.gov.hmrc.play.views.html._
@import uk.gov.hmrc.play.views.html.helpers._
@import views.html.helpers._
@import views.html.helpers.error._
@import utils._
@taxAvoidanceAndPromoter(id: String, isVisible: Boolean, reliefCode: String, schemeFormValue: Field, promoterValue : Field) = {
@if(isVisible) {


This is a callout.
It has an easy to override visual style, and is appropriately subdued.
It's dangerous to go alone, take this.This is a secondary callout
It has an easy to override visual style, and is appropriately subdued.
It's dangerous to go alone, take this.This is a secondary callout
It has an easy to override visual style, and is appropriately subdued.
It's dangerous to go alone, take this.


I am lucky to have the privilege of having two sisters, a brother, and a loving mother and father. One downside of having a large nuclear family is keeping track of everyones Christmas lists. With the six of us, it is tricky to keep track of who wants what, and who already made a purchase for someone.
To make things easier this year, my Dad gave me the idea of making a web application where we could all post our desired gifts, and keep track of which gifts have already been purchased.
I used Python Django as my web framework, along with a postgresql database, some bootstrap and CSS to make things pretty, and finally, I deployed my application using Heroku.
For my family's privacy, I will not post the live URL, but I will share screenshots and detail my development in this writeup.
For each family member I created a user account. Upon opening my web app, unauthenticated users are redirected to the login page. Once a user is logged in, a session is created for them, and they do not have to continue logging so long as they do not delete their session cookie.
Upon logging in, the user is redirected to their Home page.
The Home page displays the lists for all users. From here the user can review everyones lists, and if they see a gift they want to get for someone, they can claim this gift by clicking the red Claim this Gift button. As can bee seen in the below screenshot, a user cannot claim their own gift. No red button appears under the users' gifts.
Once a user claims a gift, the gift will be marked as claimed and all other users, with the exception of the requestor, will be able to see that a gift has been claimed. In addition to this, an email is sent to all users, with the exception of the requestor, stating that a gift has been claimed.
In the prior screenshot, no gifts were claimed. The screenshot below demonstrates what users see after gifts have been claimed. The gift, Book: The Lost Limericks... is claimed by the logged in user, and the gift Weatherproof Men's Outdoor Socks, 4-pair is claimed by a different user. Notice that after claiming a gift, we have the option to Unclaim it.
Two of Dopey's gifts have been claimed. Let's login as Dopey and see what their homepage looks like:
Dopey has no idea that his gifts were claimed! No surprises will be spoiled on Christmas Day.
To manage a user's list, they can click on the My List link in the navigation bar. On this page, they can add and delete items from their list. When adding an item, there is an optional field 'Gift Link'. This makes finding online items that much easier for other users.
Users can also manage their accounts by clicking on the Account link in the navigation bar. Here they can set their email, and change their password.
Due to time constraints, I did not have time to implement all my desired features in this project.
For next year's edition, I'd like to add:


Boeing orders sink as customers opt to convert MAX
Boeing Co took 10 new plane orders last month, but saw some customers swapping those for the U.S. planemaker's grounded 737 MAX planes in favor of more expensive wide-body planes as doubts lingered about the MAX's return to service.
REUTERS: Boeing Co took 10 new plane orders last month, but saw some customers swapping those for the U.S. planemaker's grounded 737 MAX planes in favor of more expensive wide-body planes as doubts lingered about the MAX's return to service.
Net orders so far this year came to just 45 at the end of October, down from 56 in September, further widening the gap on sales this year with the company's European rival Airbus SE which has now sold nearly 500 more planes.
The numbers included what Boeing called the "conversion" by Air Lease Corp of 15 MAX orders into five 787 Dreamliners. A second unnamed customer also removed three MAX planes from the order book.
(Reporting by Sanjana Shivdas and Ankit Ajmera in Bengaluru; editing by Patrick Graham)


|
| Property | arduino |
| | Implement digital outputs using an Arduino, via the Matlab Arduino toolbox. More...
|
| |
|
|
self | dotsWritableDOutArduino () |
| | Arguments are ultimately passed to openDevice.
|
| |
| timestamp | writeDigitalPin (self, pin, value) |
| | Write to a single digital output channel. More...
|
| |
| timestamp | writeDigitalPins (self, pins, values) |
| | Write to a multiple digital output channels at once. More...
|
| |
|
self | dotsWritableDOut () |
| | Constructor takes no arguments.
|
| |
| timestamp | sendStrobedWord (self, word, port) |
| | Send a strobed digital word. More...
|
| |
| timestamp | sendTTLPulse (self) |
| | Send a single TTL pulse. More...
|
| |
| firstTimestamp lastTimestamp | sendTTLPulses (self, numPulses, pauseBetweenPulses, channel) |
| | Send multiple TTL pulses Timestamps are estimates of onset times of first and last pulses. More...
|
| |
| timestamp | sendTTLSignal (self, channel, signal, frequency) |
| | Send a TTL signal or waveform. More...
|
| |
|
self | dotsWritable () |
| |
Constructor takes no arguments.
|
| |
|
| initialize (self, varargin) |
| |
Locate, acquire, configure, etc. device and component resources.
|
| |
|
time | getDeviceTime (self) |
| |
Get the current time from clockFunction.
|
| |
|
| close (self) |
| |
Release any resources acquired by initialize().
|
| |
|
| delete (self) |
| |
Automatically close when Matlab is done with this object.
|
| |
◆ writeDigitalPin()
| timestamp writeDigitalPin |
( |
self |
, |
|
|
pin |
, |
|
|
value |
|
|
) |
| |
Write to a single digital output channel.
pin is string value is scalar
◆ writeDigitalPins()
| timestamp writeDigitalPins |
( |
self |
, |
|
|
pins |
, |
|
|
values |
|
|
) |
| |
Write to a multiple digital output channels at once.
pin is cell array of strings value is vector
◆ arduino
Implement digital outputs using an Arduino, via the Matlab Arduino toolbox.
The arduino object
The documentation for this class was generated from the following file:
- dotsWritableDOutArduino.m


pips Red=158 White=176
(CorrectAnswer= 0/0, ErrorScore= 0)
Thanks to the publication of “Opening Concepts” by Michihito Kageyama and Roland Herrera there has been a marked increase in the number of players employing the “Double Tiger” concept. This is where you hit two checkers in your home board but at the same time you expose two blots. This sort of play was very rare twenty or thirty years but has become much more commonplace in the last couple of years and the book has certainly made the technique available to a wider audience.
One of the benefits of a Double Tiger play is that your opponent must the whole of his next roll (unless he rolls a double) to enter his checkers from the bar, thus the hitting player gets a significant gain in tempo. On the downside if either of the Double Tiger blots is hit then that can result in a loss of tempo for the original hitting player.
Having learnt any new technique it is important not to use it just because you can. This week’s position is a good example. Black had a 41 to play and looked no further than 6/5*, 6/2*, employing his newly learnt Double Tiger technique.
Sadly for him the position did not merit the play. The key points that Black should have taken into consideration are as follows: after the roll Black will lead in the race by 22 pips; White cannot be blitzed because he has an anchor on Black’s ace-point; although ugly, White has two home board points to Black’s one so may come out ahead in any hitting contest.
All these factors should lead Black away from the Double Tiger. The far more prosaic 11/7, 8/7 is correct. With this play Black consolidates his racing chances. He also has four White checkers behind his 3-point prime. Meanwhile his rear checkers are not in any danger of an imminent blitz by White because white simply doesn’t have enough checkers in the attack zone.
The Double Tiger technique is powerful when applied correctly and everybody should be aware of it. Equally well, and just as importantly, you must know when not to use it. Put White’s checker on Black’s 23-pt on the 21-pt and give Black a 21 then the Double Tiger play 6/5*, 6/4* is clearly correct as when it works it can quickly give Black a huge edge.
As it is, in the original position black’s 6/5*, 6/2* is an error. As ever, think carefully about your game plan before you make any move in backgammon - it really does pay dividends!
One of the benefits of a Double Tiger play is that your opponent must the whole of his next roll (unless he rolls a double) to enter his checkers from the bar, thus the hitting player gets a significant gain in tempo. On the downside if either of the Double Tiger blots is hit then that can result in a loss of tempo for the original hitting player.
Having learnt any new technique it is important not to use it just because you can. This week’s position is a good example. Black had a 41 to play and looked no further than 6/5*, 6/2*, employing his newly learnt Double Tiger technique.
Sadly for him the position did not merit the play. The key points that Black should have taken into consideration are as follows: after the roll Black will lead in the race by 22 pips; White cannot be blitzed because he has an anchor on Black’s ace-point; although ugly, White has two home board points to Black’s one so may come out ahead in any hitting contest.
All these factors should lead Black away from the Double Tiger. The far more prosaic 11/7, 8/7 is correct. With this play Black consolidates his racing chances. He also has four White checkers behind his 3-point prime. Meanwhile his rear checkers are not in any danger of an imminent blitz by White because white simply doesn’t have enough checkers in the attack zone.
The Double Tiger technique is powerful when applied correctly and everybody should be aware of it. Equally well, and just as importantly, you must know when not to use it. Put White’s checker on Black’s 23-pt on the 21-pt and give Black a 21 then the Double Tiger play 6/5*, 6/4* is clearly correct as when it works it can quickly give Black a huge edge.
As it is, in the original position black’s 6/5*, 6/2* is an error. As ever, think carefully about your game plan before you make any move in backgammon - it really does pay dividends!
1. Cubeful 2-ply 11/7 8/7 Eq.: +0.450 0.621 0.168 0.008 - 0.379 0.093 0.002 2. Cubeful 2-ply 6/5* 6/2* Eq.: +0.419 (-0.031) 0.598 0.194 0.016 - 0.402 0.116 0.006 3. Cubeful 2-ply 20/16 6/5* Eq.: +0.320 (-0.130) 0.582 0.169 0.011 - 0.418 0.129 0.007 4. Cubeful 2-ply 13/9 6/5* Eq.: +0.288 (-0.161) 0.571 0.179 0.014 - 0.429 0.135 0.008 5. Cubeful 0-ply 21/20 11/7 Eq.: +0.245 (-0.205) 0.563 0.144 0.007 - 0.437 0.082 0.002


| 1 |
Adolph_2020 |
Pandemic Politics: Timing State-Level Social Distancing Responses to COVID-19 |
Christopher Adolph; Kenya Amano; Bree Bang-Jensen; Nancy Fullman; John Wilkerson |
2020 |
2020-03-31 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>46326 |
g8lsrojl |
0.889843 |
|
Liu_P_2020, Abouk_2020 |
| 2 |
Yezli_2020 |
COVID-19 social distancing in the Kingdom of Saudi Arabia: Bold measures in the face of political, economic, social and religious challenges |
Yezli, Saber; Khan, Anas |
2020 |
2020-04-21 |
PMC |
Y |
|
|
10.1016/j.tmaid.2020.101692 |
44kpu8nw |
0.701946 |
|
|
| 3 |
Abouk_2020 |
The Immediate Effect of COVID-19 Policies on Social Distancing Behavior in the United States |
Rahi Abouk; Babak Heydari |
2020 |
2020-04-10 |
BioRxiv |
N |
|
|
10.1101/2<IP_ADDRESS>57356 |
2jd7aa2d |
0.691504 |
|
Klausner_2020, Adolph_2020, Pike_2020, Milne_2020 |
| 4 |
Scarabel_2020 |
Canada needs to rapidly escalate public health interventions for its COVID-19 mitigation strategies |
Scarabel, Francesca; Pellis, Lorenzo; Bragazzi, Nicola Luigi; Wu, Jianhong |
2020 |
2020-03-31 |
PMC |
Y |
|
|
10.1016/j.idm.2020.03.004 |
vwwt70mo |
0.678660 |
|
Tuite_2020 |
| 5 |
Feehan_2020 |
Quantifying interpersonal contact in the United States during the spread of COVID-19: first results from the Berkeley Interpersonal Contact Study |
Dennis Feehan; Ayesha Mahmud |
2020 |
2020-04-17 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>64014 |
3e4hdfir |
0.660860 |
|
|
| 6 |
Siedner_2020 |
Social distancing to slow the U.S. COVID-19 epidemic: an interrupted time-series analysis |
Mark J Siedner; Guy Harling; Zahra Reynolds; Rebecca F Gilbert; Atheendar Venkataramani; Alexander C Tsai |
2020 |
2020-04-08 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>52373 |
ls408b2b |
0.607177 |
|
Adolph_2020, Klausner_2020, Pike_2020, Abouk_2020 |
| 7 |
Willem_2020 |
SOCRATES: An online tool leveraging a social contact data sharing initiative to assess mitigation strategies for COVID-19 |
Lander Willem; Thang Van Hoang; Sebastian Funk; Pietro Coletti; Philippe Beutels; Niel Hens |
2020 |
2020-03-06 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>30627 |
d4dnz2lk |
0.603405 |
|
Chen_2007, Klepac_2020 |
| 8 |
Eubank_2020 |
Commentary on Ferguson, et al., “Impact of Non-pharmaceutical Interventions (NPIs) to Reduce COVID-19 Mortality and Healthcare Demand” |
Eubank, S.; Eckstrand, I.; Lewis, B.; Venkatramanan, S.; Marathe, M.; Barrett, C. L. |
2020 |
2020-04-08 |
PMC |
Y |
PMC7140590 |
|
10.1007/s11538-020-00726-x |
kqntu6ej |
0.588365 |
|
|
| 9 |
Soucy_2020 |
Estimating the effect of physical distancing on the COVID-19 pandemic using an urban mobility index |
Jean-Paul R. Soucy; Shelby L. Sturrock; Isha Berry; Nick Daneman; Derek R. MacFadden; Kevin A. Brown |
2020 |
2020-04-07 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>54288 |
radi0wlh |
0.564115 |
|
Liu_H_2020, Kraemer_2020, Malik_2020 |
| 10 |
Williams_2020 |
Public perceptions and experiences of social distancing and social isolation during the COVID-19 pandemic: A UK-based focus group study |
Simon N Williams; Christopher J Armitage; Tova Tampe; Kimberly Dienes |
2020 |
2020-04-15 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>61267 |
kweh1doo |
0.557538 |
|
|
| 11 |
Utsunomiya_2020 |
Growth rate and acceleration analysis of the COVID-19 pandemic reveals the effect of public health measures in real time |
Yuri Tani Utsunomiya; Adam Taiti Harth Utsunomiya; Rafaela Beatriz Pintor Torrecilha; Silvana Cassia Paulan; Marco Milanesi; Jose Fernando Garcia |
2020 |
2020-04-02 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>47688 |
39ywzw6a |
0.552855 |
|
Kraemer_2020 |
| 12 |
Ganem_2020 |
The impact of early social distancing at COVID-19 Outbreak in the largest Metropolitan Area of Brazil. |
Fabiana Ganem; Fabio Macedo Mendes; Silvano Barbosa Oliveira; Victor Bertolo Gomes Porto; Wildo Araujo; Helder Nakaya; Fredi A Diaz-Quijano; Julio Croda |
2020 |
2020-04-08 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>55103 |
9bi6pobg |
0.550897 |
Coelho_2020 |
Coelho_2020 |
| 13 |
Shuler_2020 |
Partial unlock model for COVID-19 or similar pandemic averts medical and economic disaster |
Robert L Shuler |
2020 |
2020-04-06 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>48082 |
lmmrnitr |
0.547084 |
|
Siraj_2020 |
| 14 |
Klepac_2020 |
Contacts in context: large-scale setting-specific social mixing matrices from the BBC Pandemic project |
Petra Klepac; Adam J Kucharski; Andrew JK Conlan; Stephen Kissler; Maria Tang; Hannah Fry; Julia R Gog |
2020 |
2020-02-19 |
BioRxiv |
N |
|
|
10.1101/2<IP_ADDRESS>23754 |
fugb778l |
0.543157 |
|
Porco_2004, Chen_2007 |
| 15 |
Shuler_2020 |
Partial unlock caseload management for COVID-19 can save 1-2 million lives worldwide |
Robert L Shuler; Theodore Koukouvitis |
2020 |
2020-04-17 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>64139 |
wkxuup8k |
0.535535 |
|
|
| 16 |
Pike_2020 |
An international comparison of the second derivative of COVID-19 deaths after implementation of social distancing measures |
William Thomas Pike; Vikas Saini |
2020 |
2020-03-25 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>41475 |
ln26bux8 |
0.533742 |
|
Milne_2020, Klausner_2020, Yuan_2020, Anderson_2020 |
| 17 |
Bryant_2020 |
Estimating the impact of mobility patterns on COVID-19 infection rates in 11 European countries |
Patrick Bryant; Arne Elofsson |
2020 |
2020-04-17 |
BioRxiv |
N |
|
|
10.1101/2<IP_ADDRESS>63644 |
emejt26r |
0.532712 |
|
|
| 18 |
Stangeland_2020 |
How to evaluate the success of the COVID-19 measures implemented by the Norwegian government by analyzing changes in doubling time |
Biljana Stangeland |
2020 |
2020-03-30 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>45187 |
617bm90s |
0.530554 |
|
Pike_2020, Pedersen_2020, Klausner_2020, Anderson_2020 |
| 19 |
Malik_2020 |
COVID-19 related social distancing measures and reduction in city mobility |
Amyn Abdul Malik; Chandra Couzens; Saad B Omer |
2020 |
2020-04-06 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>48090 |
71b6ai77 |
0.501680 |
|
Liu_H_2020, Soucy_2020, Milne_2020 |
| 20 |
Chen_2020 |
COVID-19 control in China during mass population movements at New Year |
Chen, Simiao; Yang, Juntao; Yang, Weizhong; Wang, Chen; Bärnighausen, Till |
2020 |
2020-03-13 |
PMC |
Y |
PMC7159085 |
32105609.0 |
10.1016/s0140-6736(20)30421-9 |
6kuigenh |
0.496167 |
|
Liu_H_2020, Yuan_2020 |
| 21 |
Park_2020 |
Changes in Subway Ridership in Response to COVID-19 in Seoul, South Korea: Implications for Social Distancing |
Park, Jewel |
2020 |
2020-04-14 |
COMM-USE |
Y |
PMC7163336 |
|
10.7759/cureus.7668 |
l3rria7o |
0.482761 |
|
|
| 22 |
Bernstein_2020 |
Further analysis of the impact of distancing upon the COVID-19 pandemic |
Daniel J. Bernstein |
2020 |
2020-04-16 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>48025 |
qjf23a7e |
0.470416 |
|
|
| 23 |
Teslya_2020 |
Impact of self-imposed prevention measures and short-term government intervention on mitigating and delaying a COVID-19 epidemic |
Alexandra Teslya; Thi Mui Pham; Noortje E. Godijk; Mirjam E. Kretzschmar; Martin C.J. Bootsma; Ganna Rozhnova |
2020 |
2020-03-16 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>34827 |
xfjexm5b |
0.458858 |
|
Milne_2020, Anderson_2020, Yuan_2020 |
| 24 |
Liu_H_2020 |
Synchronized travel restrictions across cities can be effective in COVID-19 control |
Haiyan Liu; Xuemei Bai; Huanfeng Shen; Xiaoping Pang; Zeyu Liang; Yue Liu |
2020 |
2020-04-06 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>50781 |
jxj10857 |
0.458163 |
|
Kraemer_2020 |
| 25 |
Liu_P_2020 |
Diminishing Marginal Benefit of Social Distancing in Balancing COVID-19 Medical Demand-to-Supply |
Pai Liu; Payton Beeler; Rajan K Chakrabarty |
2020 |
2020-04-14 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>59550 |
rzh7ja6a |
0.457448 |
|
Adolph_2020, Kissler_2020, Bayham_2020, Abouk_2020 |
| 26 |
Park_2020 |
Potential roles of social distancing in mitigating the spread of coronavirus disease 2019 (COVID-19) in South Korea |
Sang Woo Park; Kaiyuan Sun; Cécile Viboud; Bryan T Grenfell; Jonathan Dushoff |
2020 |
2020-03-30 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>45815 |
7t3ci8tl |
0.429189 |
Blumberg_2020 |
Yuan_2020 |
| 27 |
Lin_S_2020 |
Which Measures are Effective in Containing COVID-19? Empirical Research Based on Prevention and Control Cases in China |
Shanlang Lin; Junpei Huang; Ziwen He; Dandan Zhan |
2020 |
2020-03-30 |
BioRxiv |
N |
|
|
10.1101/2<IP_ADDRESS>46110 |
z470rn66 |
0.419020 |
|
Prem_2020, Kraemer_2020, Anderson_2020 |
| 28 |
Sjödin_2020 |
Only strict quarantine measures can curb the coronavirus disease (COVID-19) outbreak in Italy, 2020 |
Sjödin, Henrik; Wilder-Smith, Annelies; Osman, Sarah; Farooq, Zia; Rocklöv, Joacim |
2020 |
2020-04-02 |
None |
Y |
PMC7140595 |
32265005.0 |
10.2807/1560-7917.es.2<IP_ADDRESS>0280 |
agnbus8b |
0.407775 |
|
Jiang_2020 |
| 29 |
Eastman_2020 |
Mathematical modeling of COVID-19 containment strategies with considerations for limited medical resources |
Brydon Eastman; Cameron Meaney; Michelle Przedborski; Mohammad Kohandel |
2020 |
2020-04-22 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>68585 |
51g3vhcx |
0.403445 |
|
|
| 30 |
Bruinen_de_Bruin_2020 |
Initial impacts of global risk mitigation measures taken during the combatting of the COVID-19 pandemic |
Bruinen de Bruin, Yuri; Lequarre, Anne-Sophie; McCourt, Josephine; Clevestig, Peter; Pigazzani, Filippo; Zare Jeddi, Maryam; Colosio, Claudio; Goulart, Margarida |
2020 |
2020-04-15 |
PMC |
Y |
|
|
10.1016/j.ssci.2020.104773 |
urkuofmu |
0.389938 |
|
Anderson_2020, Yuan_2020 |
| 31 |
Jarvis_2020 |
Quantifying the impact of physical distance measures on the transmission of COVID-19 in the UK |
Christopher I Jarvis; Kevin Van Zandvoort; Amy Gimma; Kiesha Prem; Petra Klepac; G James Rubin; W John Edmunds |
2020 |
2020-04-03 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>49023 |
8do4tojk |
0.378380 |
|
Kretzschmar_2020, Soucy_2020, Kraemer_2020 |
| 32 |
Steffen_2010 |
Influenza in Travelers: Epidemiology, Risk, Prevention, and Control Issues |
Steffen, Robert |
2010 |
2010-04-28 |
PMC |
N |
PMC7088976 |
21308527.0 |
10.1007/s11908-010-0100-9 |
a2w8yxye |
0.377901 |
|
|
| 33 |
Patterson-Lomba_2020 |
Optimal timing for social distancing during an epidemic |
Oscar Patterson-Lomba |
2020 |
2020-04-01 |
BioRxiv |
N |
|
|
10.1101/2<IP_ADDRESS>48132 |
cm91jxde |
0.376561 |
|
Milne_2020, Lauro_2020, Kissler_2020 |
| 34 |
Klausner_2020 |
A single holiday was the turning point of the COVID-19 policy of Israel |
Ziv Klausner; Eyal Fattal; Eitan Hirsch; Shmuel C Shapira |
2020 |
2020-03-30 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>44412 |
32hjzdum |
0.361638 |
|
Yuan_2020, Milne_2020 |
| 35 |
Salomon_2020 |
Defining high-value information for COVID-19 decision-making |
Joshua A Salomon |
2020 |
2020-04-08 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>52506 |
iymhykq8 |
0.351999 |
|
Tuite_2020 |
| 36 |
Paternina-Caicedo_2020 |
Social interventions can lower COVID-19 deaths in middle-income countries |
Angel Jose Paternina-Caicedo; Marc Choisy; Christian Garcia-Calavaro; Guido Camargo-España; José Rojas-Suarez; Carmelo Dueñas; Adrian Smith; Fernando Pio De la Hoz-Restrepo |
2020 |
2020-04-21 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>63727 |
wolrseqc |
0.350409 |
|
|
| 37 |
McCoy_2020 |
CAN-NPI: A Curated Open Dataset of Canadian Non-Pharmaceutical Interventions in Response to the Global COVID-19 Pandemic |
Liam G McCoy; Jonathan Smith; Kavya Anchuri; Isha Berry; Joanna Pineda; Vinyas Harish; Andrew T Lam; Seung Eun Yi; Sophie Hu; Benjamin Fine |
2020 |
2020-04-22 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>68460 |
zp4oddrt |
0.334652 |
|
|
| 38 |
Perkins_2020 |
Estimating unobserved SARS-CoV-2 infections in the United States |
Alex Perkins; Sean M. Cavany; Sean M Moore; Rachel J Oidtman; Anita Lerch; Marya Poterek |
2020 |
2020-03-18 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>36582 |
fb8mca1h |
0.326160 |
|
Javan_2020 |
| 39 |
Gunzler_2020 |
Time-Varying COVID-19 Reproduction Number in the United States |
Douglas Gunzler; Ashwini R Sehgal |
2020 |
2020-04-15 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>60863 |
crmrqy74 |
0.324235 |
|
|
| 40 |
Brooks-Pollock_2020 |
The Population Attributable Fraction (PAF) of cases due to gatherings and groups with relevance to COVID-19 mitigation strategies |
Ellen Brooks-Pollock; Jonathan M Read; Thomas House; Graham Medley; Matt J Keeling; Leon Danon |
2020 |
2020-03-23 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>39537 |
mzcajw8c |
0.318382 |
|
Cousien_2019, Wang_2020 |
| 41 |
Pedersen_2020 |
A simple method to quantify country-specific effects of COVID-19 containment measures |
Morten Gram Pedersen; Matteo Meneghini |
2020 |
2020-04-10 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>57075 |
aqwdg489 |
0.310957 |
|
Yuan_2020, Anderson_2020, Milne_2020 |
| 42 |
Thorpe_2020 |
Estimating the number of SARS-CoV-2 infections in the United States |
Dayton G Thorpe; Kelsey Lyberger |
2020 |
2020-04-17 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>64519 |
7sexfkxq |
0.306204 |
|
|
| 43 |
Pepe_2020 |
COVID-19 outbreak response: a first assessment of mobility changes in Italy following national lockdown |
Emanuele Pepe; Paolo Bajardi; Laetitia Gauvin; Filippo Privitera; Brennan Lake; Ciro Cattuto; Michele Tizzoni |
2020 |
2020-03-27 |
BioRxiv |
Y |
|
|
10.1101/2<IP_ADDRESS>39933 |
sgkuqcq6 |
0.303073 |
|
Kraemer_2020, Liu_H_2020 |


es6 Our Best Practices for Writing React Components How to Benchmark React Components: The Quick and Dirty Guide
javascript Our Best Practices for Writing React Components Build a Node.js API in Under 30 Minutes How to Benchmark React Components: The Quick and Dirty Guide Getting Started with React Native in 20 Minutes
react Our Best Practices for Writing React Components How to Benchmark React Components: The Quick and Dirty Guide Getting Started with React Native in 20 Minutes
software development Our Best Practices for Writing React Components Create a Django API in Under 20 Minutes
web development How Flexbox works — explained with animated gifs Our Best Practices for Writing React Components Create a Django API in Under 20 Minutes Build a Node.js API in Under 30 Minutes How to Benchmark React Components: The Quick and Dirty Guide


Home
Services
Edit Profile
Monetize
Biography
Checkout
{{.Total}}
{{.Name}}
{{.Public}}
{{.Btc}}
{{.Credit-Card}}
1
Your cart on the way...
Back


About me
Hi. My name is Stan and I'm an IT guy.

During last years I have been working mainly at OpenStack area, being a core developer in Mirantis for a several years and working as Reilability Engineer in GoDaddy cloud team nowadays. In my free time I usually write some software, play table tennis or travel to other countries. If you wanna ask me something - feel free to do so.

If you wanna propose me a job - here is my actual CV


HOME
ABOUT
BLOG
CONTACT
MORE
JAVASCRIPT CARNIVAL: Dress The Clown!
Use the Left and right arrow keys to cycle through outfits.
Use the Up and Down arrow keys to pick the body part you want to style.
You Are Currently Editing The
Head