Graduation block 'appalling', says student's mum
The University of Otago interns caught abusing their overseas work placements are being used as scapegoats, a medical student's family says.
The university prevented 53 final-year medical students from graduating with their peers after it discovered they were holidaying instead of interning in hospitals during overseas placements, and falsified papers to cover it up.
Their punishments include paying back any government grant money owed, writing a reflective essay and making up time with extra approved work.
However, a medical professional who is also mother of one medical student not being punished said the practice was well known yet only a few were paying the price.
The woman, who spoke to RNZ on the condition of anonymity, said her son would be able to graduate but it would be without many of his fellow students.
"Obviously it's put a total dampener on the whole ceremony. These students have got bonds over the last five years and need to keep those bonds going in order to be effective practitioners and support each other," she said.
"I think it's ostracising some students unfairly when it was obviously the university's system that let them down and the individual students have been the ones who have taken the fall."
The university investigation found one in five of its final year medical students across the Wellington, Dunedin and Christchurch campuses did not meet its attendance requirements.
The students did need to be punished and made to reflect on their actions, but stopping them from graduating was overkill, she said.
"To say on one hand, yes, you can graduate. You can become a doctor next week because we need you working in the hospitals, but actually you're not going to be able to stand on the stage and get recognition for the five years work and study that you've done with your colleagues.
"I think that's appalling, it's making these students into scapegoats."
Many medical professionals were horrified by what had happened, she said.
"I think that everyone feels quite sick that these students are being made to take the blame for what is a well-known and well-documented and evidenced process that's been going on for years."
A practising GP for more than 30 years was concerned the students may be outed when graduation day comes around.
Each ceremony features a graduand booklet, listing who is being awarded their degrees on the day and who will get their degree in absentia.
He said that could be used to identify those being punished for abusing their placement or could mean other absent students were painted as guilty if it wasn't handled carefully.
"If the large group of trainee interns is listed as in absentia, then that does become very, very long-term public record. While not denying the fact that they have acted very, very inappropriately, it does raise the question of is theirs some sort of punishment disproportionate and very long term to what they have actually done," he said.
The students should not be the only ones to bear the blame, he said, as the university either did not know about the placement issues when it should have or failed to act if it did.
The University of Otago said its latest inquiry would look at the placement issues from previous years and how the issue flew under the radar, but it needed to act when concerns were raised about this year's cohort.
It was yet to work out the finer details of the graduation ceremony, but it would ensure student's confidentiality, the university said.


Algorithms for Walking, Running, Swimming, Flying, and Manipulation
© Russ Tedrake, 2023
Last modified .
How to cite these notes, use annotations, and give feedback.
Note: These are working notes used for a course being taught at MIT. They will be updated throughout the Spring 2023 semester. Lecture videos are available on YouTube.
| Previous Chapter | Table of contents | Next Chapter |
The view of dynamics and controls taken in these notes builds heavily on
tools from optimization -- and our success in practice depends heavily on the
effective application of numerical optimization. There are many excellent
books on optimization, for example
The intention of this chapter is, therefore, mainly to provide a launchpad and to address some topics that are particularly relevant in robotics but might be more hidden in the existing general treatments. You can get far very quickly as a consumer of these tools with just a high-level understanding. But, as with many things, sometimes the details matter and it becomes important to understand what is going on under the hood. We can often formulate an optimization problem in multiple ways that might be mathematically equivalent, but perform very differently in practice.
Some of the algorithms from optimization are quite simple to implement yourself; stochastic gradient descent is perhaps the classic example. Even more of them are conceptually fairly simple, but for some of the algorithms, the implementation details matter a great deal -- the difference between an expert implementation and a novice implementation of the numerical recipe, in terms of speed and/or robustness, can be dramatic. These packages often use a wealth of techniques for numerically conditioning the problems, for discarding trivially valid constraints, and for warm-starting optimization between solves. Not all solvers support all types of objectives and constraints, and even if we have two commercial solvers that both claim to solve, e.g. quadratic programs, then they might perform differently on the particular structure/conditioning of your problem. In some cases, we also have nicely designed open-source alternatives to these commercial solvers (often written by academics who are experts in optimization) -- sometimes they compete well with the commercial solvers or even outperform them in particular problem types.
As a result, there are also a handful of software packages that attempt
to provide a layer of abstraction between the formulation of a mathematical
program and the instantiation of that problem in each of the particular
solvers. Famous examples of this include CVX and YALMIP for MATLAB, and JuMP for Julia.
We have a number of tutorials on mathematical programming in
The general formulation is ...
It's important to realize that even though this formulation is incredibly general, it does have it's limits. As just one example, when write optimizations to plan trajectories of a robot, in this formulation we typically have to choose a-priori as particular number of decision variables that will encode the solution. Although we can of course write algorithms that change the number of variables and call the optimizer again, somehow I feel that this "general" formulation fails to capture, for instance, the type of mathematical programming that occurs in sample-based optimization planning -- where the resulting solutions can be described by any finite number of parameters, and the computation flexibly transitions amongst them.
Local optima. Convex functions, convex constraints.
If an optimization problem is nonconvex, it does not necessarily mean that the optimization is hard. There are many cases in deep learning where we can reliably solve seemingly very high-dimensional and nonconvex optimization problems. Our understanding of these phenomenon is evolving rapidly, and I suspect anything I write here will shortly become outdated. But the current thinking in supervised learning mostly revolves around the idea that over-parameterization is key -- that many of these success stories are happening in a regime where we actually have more decision variables than we have data, and that the search space is actually dense with solutions that can fit the data perfectly (the so-called "interpolating solutions"), that not all global minima are equally robust, and that the optimization algorithms are performing some form of implicit regularization in order to pick a "good" interpolating solution.
Given the equality-constrained optimization problem $$\minimize_\bz \ell(\bz) \quad \subjto \quad \bphi(\bz) = 0,$$ where $\bphi$ is a vector. Define a vector $\lambda$ of Lagrange multipliers, the same size as $\phi$, and the scalar Lagrangian function, $$L(\bz,{\bf \lambda}) = \ell(\bz) + \lambda^T\phi(\bz).$$ A necessary condition for $\bz^*$ to be an optimal value of the constrained optimization is that the gradients of $L$ vanish with respect to both $\bz$ and $\lambda$: $$\pd{L}{\bz} = 0, \quad \pd{L}{\lambda} = 0.$$ Note that $\pd{L}{\lambda} = \phi(\bz)$, so requiring this to be zero is equivalent to requiring the constraints to be satisfied.
Consider the following optimization: $$\min_{x,y} x+y, \quad \subjto \quad x^2 + y^2 = 1.$$ The level sets of $x+y$ are straight lines with slope $-1$, and the constraint requires that the solution lives on the unit circle.
Simply by inspection, we can determine that the optimal solution should be $x=y=-\frac{\sqrt{2}}{2}.$ Let's make sure we can obtain the same result using Lagrange multipliers.
Formulating $$L = x+y+\lambda(x^2+y^2-1),$$ we can take the derivatives and solve \begin{align*} \pd{L}{x} = 1 + 2\lambda x = 0 \quad & \Rightarrow & \lambda = -\frac{1}{2x}, \\ \pd{L}{y} = 1 + 2\lambda y = 1 - \frac{y}{x} = 0 \quad & \Rightarrow & y = x,\\ \pd{L}{\lambda} = x^2+y^2-1 = 2x^2 -1 = 0 \quad & \Rightarrow & x = \pm \frac{1}{\sqrt{2}}. \end{align*} Given the two solutions which satisfy the necessary conditions, the negative solution is clearly the minimizer of the objective.
One of the most powerful use cases for semidefinite programming is
in writing convex relaxations of more general non-convex optimization
problems. One particularly useful example of this is the general
quadratic optimization problem, written as \begin{align*} \min_\by
\quad &\bx^T\bQ\bx \\ \subjto \quad & \bx^T \bA_i \bx \ge 0, \\ &
\bB\bx \ge {\bf 0}, \\& \bx = \begin{bmatrix} 1 \\ \by \end{bmatrix}.
\end{align*} In the following, we won't make any assumptions about
$\bQ$ or $\bA_i$ being PSD. For instance, quadratic equality
constraints of the form $\bx^T\bA\bx=0$ (which are generically
nonconvex) can be encoded with two constraints: $ \bx^T\bA\bx \ge 0$
and $-\bx^T\bA\bx \ge 0.$ The SDP relaxation
Consider the problem: \begin{align*} \min_x \quad & \| x - a \|^2
\\ \text{subject to} \quad & \| x - b \|^2 \ge 1 \end{align*} This
problem is non-convex, however we can write a convex relaxation of
the problem using the semidefinite-programming
relaxation:\begin{align*} \min_{x,y} \quad & y - 2ax + a^2 \\
\text{subject to} \quad & y - 2bx + b^2 \ge 1 \\ & y \ge x^2
\end{align*} where we write $y \ge x^2$ as the semidefinite
constraint $\begin{bmatrix} y & x \\ x & 1 \end{bmatrix} \succeq 0.$
†
I've plotted the feasible region and the objective with an arrow. As you can see, the feasible region is the epigraph of $y=x^2$ intersected with the linear constraint. Now here is the key point: for linear objectives, the optimal solution will (almost) never be active on the linear constraint unless it's at a vertex of the feasible set (this is related to the classical picture from linear programming). In this example specifically, the constraint $y=x^2$ will be inactive only if $a = b;$ for every other objective, this relaxation will give $y=x^2$, and will give the optimal solution to the original problem. Note that we could have equally well written a quadratic equality constraint.
Another useful example is \begin{align*} \min_\bx \quad & \bx^T{\bf A}\bx + {\bf b}^T \bx, \\ \text{subject to} \quad & \bx^T\bx = 1. \end{align*} Again this optimization is non-convex, but we can write the semidefinite-programming relaxation as \begin{align*} \min_{{\bf Y},\bx} \quad & \trace({\bf AY}) + {\bf b}^T \bx, \\ \text{subject to} \quad & \trace({\bf Y}) = 1, \\ & {\bf Y} \succeq \bx\bx^T, \end{align*} where the PSD constraint is again written using the Schur complement. For the case where $\bx\in\Re^2,$ the PSD constraint gives us that $Y_{11} \ge x_1^2$ and $Y_{22} \ge x_2^2$; combined with the trace constraint this gives us $$Y_{22} = 1-Y_{11} \ge x_2^2 \Rightarrow 1 - x_2^2 \ge Y_{11} \ge x_1^2 \Rightarrow 1 \ge x_1^2 + x_2^2.$$ Once again the picture looks like the affine section of a cone (now in higher dimensions). Given the linear objective, we expect the optimal solution to be unbounded, or active on one ore more of the constraints. Almost always the constraint $${\bf Y} \succeq \bx \bx^T$$ will be active, and when ${\bf Y} = \bx\bx^T$ we have $\bx^T\bx = 1.$ When the convex relaxation gives the optimal solution to the original problem, we say that the convex relaxation is "tight".
Let's compare this to the simpler relaxation, \begin{align*} \min_\bx \quad & \bx^T{\bf A}\bx + {\bf b}^T \bx, \\ \text{subject to} \quad & \bx^T\bx \le 1, \end{align*} which can be written as a second-order cone program (SOCP). When the objective is linear $({\bf A}=0, {\bf b} \neq 0)$, even this simpler relaxation will be tight. But when the objective is quadratic, if the minimum of the quadratic falls inside the unit disk, then the relaxation will not be tight (it will be "loose") -- the optimal solution will satisfy the constraints $\bx^T\bx \le 1$, but will not have $\bx^T \bx = 1.$ In the PSD relaxation, the convex relaxation will be tight, because the objective is now linear (in the lifted coordinates), and will push towards the boundary so long as ${\bf b} \neq 0$.
I've given a numerical example you can play with in the notebook: What's amazing is that this SDP relaxation even gives the optimal solution when the objective is non-convex. I've given an example in the notebook with a concave objective (e.g. ${\bf A} \preceq 0$).
It turns out that in the same way that we can use SDP to search over
the positive quadratic equations, we can generalize this to search over
the positive polynomial equations. To be clear, for quadratic equations
we have \[ {\bf P}\succeq 0 \quad \Rightarrow \quad \bx^T {\bf P} \bx \ge
0, \quad \forall \bx. \] It turns out that we can generalize this to \[
{\bf P}\succeq 0 \quad \Rightarrow \quad {\bf m}^T(\bx) {\bf P} {\bf
m}(\bx) \ge 0, \quad \forall \bx, \] where ${\bf m}(\bx)$ is a vector of
polynomial equations, typically chosen as a vector of monomials
(polynomials with only one term). The set of positive polynomials
parameterized in this way is exactly the set of polynomials that can be
written as a sum of squares
Even better, there is quite a bit that is known about how to choose
the terms in ${\bf m}(\bx)$. For example, if you give me the polynomial
\[ p(x) = 2 - 4x + 5x^2 \] and ask if it is positive for all real $x$, I
can convince you that it is by producing the sums-of-squares
factorization \[ p(x) = 1 + (1-2x)^2 + x^2, \] or the factorization \[
p(x) = \begin{bmatrix} 1 \\ x \end{bmatrix}^T \begin{bmatrix} 2 & -2 \\
-2 & 5 \end{bmatrix} \begin{bmatrix} 1 \\ x \end{bmatrix}, \] since the
matrix in this quadratic form is PSD. In general, I can produce a
monomial vector containing all monomials with degree up to the the
half of the degree of $p$ (we can actually do much better, but I
will defer those details). In practice, what this means for us is that
people have authored optimization front-ends which take a high-level
specification with constraints on the positivity of polynomials and they
automatically generate the SDP problem for you, without having to think
about what terms should appear in ${\bf m}(\bx)$ (c.f.
As it happens, the particular choice of ${\bf m}(\bx)$ can have a huge
impact on the numerics of the resulting semidefinite program (and on your
ability to solve it with commercial solvers).
We will write optimizations using sums-of-squares constraints as \[ p(\bx) \sos \] as shorthand for the constraint that $p(\bx) \ge 0$ for all $\bx$, as demonstrated by finding a sums-of-squares decomposition.
This is surprisingly powerful. It allows us to use convex optimization to solve what appear to be very non-convex optimization problems.
Consider the following famous non-linear function of two variables
(called the "six-hump-camel": $$p(x) = 4x^2 + xy - 4y^2 - 2.1x^4 + 4y^4
+ \frac{1}{3}x^6.$$ This function has six local minima, two of them
being global minima
By formulating a simple sums-of-squares optimization, we can actually find the minimum value of this function (technically, it is only a lower bound, but in this case and many cases, it is surprisingly tight) by writing: \begin{align*} \max_\lambda \ \ & \lambda \\ \text{s.t. } & p(x) - \lambda \text{ is sos.} \end{align*} Go ahead and play with the code (most of the lines are only for plotting; the actual optimization problem is nice and simple to formulate).
Note that this finds the minimum value, but does not actually
produce the $\bx$ value which mimimizes it. This is possible
The S-procedure.
The S-procedure
Using the quotient ring
Quotient rings via sampling
The generic formulation of a nonlinear optimization problem is \[ \min_z c(z) \quad \subjto \quad \bphi(z) \le 0, \] where $z$ is a vector of decision variables, $c$ is a scalar objective function and $\phi$ is a vector of constraints. Note that, although we write $\phi \le 0$, this formulation captures positivity constraints on the decision variables (simply multiply the constraint by $-1$) and equality constraints (simply list both $\phi\le0$ and $-\phi\le0$) as well.
The picture that you should have in your head is a nonlinear, potentially non-convex objective function defined over (multi-dimensional) $z$, with a subset of possible $z$ values satisfying the constraints.
Note that minima can be the result of the objective function having zero derivative or due to a sloped objective up against a constraint.
Numerical methods for solving these optimization problems require an initial guess, $\hat{z}$, and proceed by trying to move down the objective function to a minima. Common approaches include gradient descent, in which the gradient of the objective function is computed or estimated, or second-order methods such as sequential quadratic programming (SQP) which attempts to make a local quadratic approximation of the objective function and local linear approximations of the constraints and solves a quadratic program on each iteration to jump directly to the minimum of the local approximation.
While not strictly required, these algorithms can often benefit a great
deal from having the gradients of the objective and constraints computed
explicitly; the alternative is to obtain them from numerical
differentiation. Beyond pure speed considerations, I strongly prefer to
compute the gradients explicitly because it can help avoid numerical
accuracy issues that can creep in with finite difference methods. The
desire to calculate these gradients will be a major theme in the discussion
below, and we have gone to great lengths to provide explicit gradients of
our provided functions and automatic differentiation of user-provided
functions in
When I started out, I was of the opinion that there is nothing difficult
about implementing gradient descent or even a second-order method, and I
wrote all of the solvers myself. I now realize that I was wrong. The
commercial solvers available for nonlinear programming are substantially
higher performance than anything I wrote myself, with a number of tricks,
subtleties, and parameter choices that can make a huge difference in
practice. Some of these solvers can exploit sparsity in the problem (e.g.,
if the constraints operate in a sparse way on the decision variables).
Nowadays, we make heaviest use of SNOPT
Augmented Lagrangian
An advanced, but very readable book on MIP
| Previous Chapter | Table of contents | Next Chapter |


| DOSE: |
1 tablet |
oral |
MDMA |
(pill / tablet) |
While in search of some mushrooms we came across a friend of a friend that had anything but the magic fungus. My friends and I took interest in some LSD and MDMA. This post will be about the MDMA experience, one that truly changed my life!
It being my first MDMA experience I was quite nervous, as I am with all the new drugs I try, as I realize that I am basically doing something to myself that will take control away from me. A group of myself and three close friends, my boyfriend C, a friend since high school R, and a newly found friend who is becoming more part of this growing family M. We decided to take the X and our house wanting a true bonding experience. We prepared by pulling all our futon mattresses together in the living room, making one huge bed. We figured we could roll around hugging and touching, since that’s what we had read we were going to want to do.
My boyfriend, C, made some orange juice, which was supposed to enhance the experience, the rest of us did not. We downed the pill around 6:40 pm and waited. We kept ourselves busy listening to the Beatles, Beck, Radiohead, and Moby with a surround sound speaker system. About 45 min or so later I looked at my hands and saw that they looked particularly strange, sort of 'rubbery'. They freaked me out a bit so I quickly looked away. I laid back on a mattress between R and C. I became significantly warmer and the top of my head began to tingle. I began to panic a bit, perhaps because of a lack of control, so I asked C and R to help calm me. They grabbed my hands and talked to me about how the pill will necessarily cause a positive effect and I only need to wait out the initial rush.
 I took a deep breath and loved everything the most I had ever loved anything. I reported to my friends that it had hit me and described my symptoms: The light coming from above was distinctly more yellow and calm, the darkness of the corner of the room became a slight pink color; I became aware of how appreciative I was of the people around me, and love them all as brothers; the touch of things to me felt much more interesting; I had the greatest desire to bring everyone to where I currently was; and I kept Whispering 'Wow. Wowowow.' It was absolutely amazing. I have never felt so good.
I quickly inquired as to the symptoms of the others but no one had any symptoms quite as intense as mine yet. Then M looked very intensely into space and whispered 'Woah'. I knew it hit him to so I crawled over to him and said enthusiastically 'How do you feel?' he looked at me and said 'Wonderful. What do you want to do with your life?' M was in! We talked about how important we were for each other briefly and then felt the same concern to bring everyone to our level. We crawled over to R and C to ask how they felt. R was beginning to feel it but not as intensely as us. C felt nothing yet and was beginning to feel discouraged. Suddenly R was In and we all joined to hug and focus to bring C to this beautiful world. We concluded that perhaps the orange juice that he had drank was slowing the digestion and circulation of the pill. C decided to go for a jog by himself and hope to get it going through recognition of movement being different.
The rest of us were concerned for his happiness but decided it would be best if we let him do his thing. So we decided to take a walk and try to find some new sensations. We chatted about how this is how it should always be and slipped more and more intensely into the 'Roll'. We met up with C quickly and we all hugged in celebration as he was beginning to feel it too! We sat in the middle of the sidewalk in a circle and talked. It was probably about 8 pm by now and dark out. The cars that drove by seemed very bright and foreign, the grass that I pulled from the ground to handle seemed plastic and very similar to Easter grass, the bark on the tree too felt fake. I brought up a fun theory: 'What if we were actually in the matrix and by taking this pill (that was actually blue instead of red) we were recognizing how everything was fake except for each other and how we felt.'
We now hit the peak of our experience, I would say, and were non-stop confessing our appreciation for each other, my love for my boyfriend, and how we recognized that this drug fortunately doesn’t add fake emotions, yet lowers your inhibitions enough to be able to truly express how you feel.  The touch I am referring to isn’t sexual at all, but loving, holding hands, hugging, completely casual. Touch is merely another level of intimacy in communication, just like looking each other in the eyes is more intimate than looking at the floor while speaking.
We finally decided to head back to the house: me encircled in our new friend M's jacket and arms and R an C with arms around each other sharing their appreciation since high school (graduated 2 years ago). When we returned we contemplated how anyone could truly feel like dancing around at a club while 'rolling', we were so content with being this personal and relaxed.
I decided to bring the guys some different textures of food and they thanked me for always being so caring and another round of appreciating praises circulated. Taste wasn’t too different for me but it was fun to crunch a carrot to mush. We loved to feel each other's faces and I presented the idea for people to feel the inside of each others mouths and teeth.
We talked then about our lives and how we had to truly do what we love to do. These thoughts have been the topic of discussion many times before but never has it felt so real and important. We had the confidence to make it a concrete goal. Forget the 9 to 5, forget what everyone said we HAVE to do and truly contemplate what we want and DO IT. We became determined to stop our friend M's shakes from lack of sleep and too much work, and work to remove his earring that he got to remind himself that he is a slave until he can break free. We destroyed the personal space bubble that existed between us all, and discovered a new way to live. We determined that when the MDMA wears off our inhibitions will necessarily return but that we know now how we should act and that we would have to practice to overcome our inhibitions. It was a wonderful revealing experience for us all!
Around 11 pm or so we all became sleepy. I was resolved to going to bed but it was suggested that we smoke a cigarette. It boosted us for a little bit, but not for long and I fell deeply asleep. The next day we all concluded that we were relaxed and had less stress but were still productive. It has been four days now and I have still been having very deep sleeps and relaxed days. We are still pushing the personal space boundaries and are doing pretty good! We count down the days until we can have another amazing experience!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Component type returned by the styled tagged template function.
React functional component.
Note: Styled components have forwarded refs and are therefore exotic components, which are not really callable.
Generated using TypeDoc
Component type returned by the styled tagged template function.


Submit Company Information
| Company Profile Information | |
|---|---|
| Company Name: | |
| Address: | |
| Website: | |
| Company Phone: | |
| Company Size: | |
| Industry: | |
| Type: | |
| Primary Contact Name: | |
| Email Address: | |
| Contact Phone: | |
| NAICS: | |
| Certifications: | |
| PSC Codes: |
| Company Profile Information | |
|---|---|
| Company Name: | |
| Address: | |
| Website: | |
| Company Phone: | |
| Company Size: | |
| Industry: | |
| Type: | |
| Primary Contact Name: | |
| Email Address: | |
| Contact Phone: | |
| NAICS: | |
| Certifications: | |
| PSC Codes: |


Meet Eli!
He is a professional Bee Keeper who loves to learn new things. He is currently a student studying Leadership Ethics and Organizational Sustainability & Entrepreneurship at St. Joseph's University. Eli was born unable to breath, requiring resuscitation by the medical team. This event resulted in a brain injury leaving Eli with a condition referred to as Alexia. Alexia is the inability, due to cerebral damage, to comprehend or understand writing.
Eli uses attributes about a person like hair and height as contextual references to be able to recognize an individual. To give you Eli’s perspective, please see below image which shows what people look like to him.
What is Alexia?
Alexia is a version of Dyslexia caused by brain injury resulting in an inability to understand written language whereas Dyslexia describes difficulty reading and writing.
There are many different types of Alexia that are broadly classified in Central Alexia and Peripheral Alexia. Alexia is common following strokes to the left side of the brain.
What causes Alexia?
Alexia is a rare condition which results in impaired reading and writing and associated disorders like Gerstmann's syndrome components (acalculia, finger agnosia, right-left disorientation), prosopagnosia (difficulty recognizing faces), as well as anomia (a form of aphasia in which the patient is unable to recall the names of everyday objects). The occipital lobe is the part of the brain which processes visual information, allowing you to see people, objects and surroundings. The temporal lobe works in association with the occipital lobe to interpret the things we see. Damage along the neuronal pathways for which this information travels is thought to contribute to development of Alexia and other associated disorders.
Who is diagnosed with Alexia?
As of 2015, 10.6% of the American population, ages 18 and older, suffer from Cognitive disorders. To put this in perspective, 1 in 5 American adults live with some form of disability like motor, cognitive, vision etc.
Each year, approximately 795,000 people suffer a stroke. About 600,000 of these are first attacks, and 185,000 are recurrent attacks.
The image on the left was given to a patient with Alexia who then tried to copy the image and presented the image on the right. The patient was unable to copy the design accurately due to the disconnect between their occipital and temporal lobe. Similarly, below is an example of a patient with Alexia copying cyrillic alphabet (2nd line).
Unfortunately, there is not a lot of information explaining the disorder commonly known as Alexia and more studies are necessary in order to contribute to a full and complete understanding of this disorder and treatment options.


Making Packages¶
Introduction¶
As part of the 1.4.4 release the concept of packages was introduced to the web dashboard. A package is a ZIP file that contains all the necessary files for a plug-in, plus instructions on installing the files.
Examples of files that can be in a package are:- NVelocity templates
- XSL-T definitions
- Images
- Javascript
- Binaries
As well as the content files, every package must contain a manifest file. This file contains the instructions for how to install the package. Generally a manifest will contain two sections: where to copy the files and the configuration changes to make.
Writing a Manifest¶
A manifest consists of three parts:- Information about the package
- Included files and their destination
- Configuration changes
Package Information¶
The package information consists of a name, description and type. These are displayed in the admin plug-in to provide additional details on package.
Example:¶
1<package>
2 <name>Package name</name>
3 <description>Package description</description>
4 <type>Plugin</type>
5 <!-- Other elements omitted -->
6</package>
Elements¶
| Element | Description | Type | Required |
| name | The name of the package. | string | Yes |
| description | A description of the package and what it contains. | string | No |
| type | The type of contents of the package. Currently this is only for informational purposes. | enum * Plugin * Theme |
Yes |
Included Files¶
The ZIP file can contain one or more files that need to be copied to the dashboard. This section in the manifest provides the instructions to where to copy the folders.
Note:_ The ZIP file can contain files that are not referenced by the manifest. If there are non-referenced files, they will be ignored (i.e. not installed).
Example¶
1<package>
2 <folders>
3 <folder>
4 <location>relativePath</location>
5 <files>
6 <file>nameInPackage</file>
7 </files>
8 </folder>
9 </folders>
10 <!-- Other elements omitted -->
11</package>
Elements¶
| Element | Description | Type | Required |
| folders | Root element for the file references. | container | Yes |
| folder | Defines a folder. Each file to be copied must be copied to a folder (files can be copied to multiple folders). This element defines the target folder for one or more files. There can be multiple folder elements under a folders element. \\ Note:_ Unlike a file system, this element cannot contain sub-folders. If sub-folders are required, they must have their own folder element. | container | No |
| location | The location of the folder. Each folder must be a relative path. If the folder does not exist, then it will be created automatically by the installation process. | string | Yes |
| files | The files to be copied into the folder. | container | No |
| file | The name of the file to be copied. This must be the name of the file within the package, the target file will have the same file name. There can be multiple file elements under a files element. | string | No |
Configuration¶
The final section of the manifest contains the configuration elements to add.
Example¶
1<package>
2 <configuration>
3 <setting>
4 <path>xPath</path>
5 <name>settingName</name>
6 <filter>xPathFilter</filter>
7 <value>configValue</value>
8 <attributes>
9 <attribute name="attribName" value="attribValue" />
10 </attributes>
11 </setting>
12 </configuration>
13 <!-- Other elements omitted -->
14</package>
Elements¶
| Element | Description | Type | Required |
| configuration | The root element for the configuration. | container | Yes |
| setting | A configuration setting. This will map to a single configuration element in dashboard.config. \\ There can be multiple setting elements under a configuration element. |
container | No |
| path | An XPath statement to locate the configuration setting. This will be used to find the parent of the setting. | string | Yes |
| name | The name of the configuration element. This is the name of the element that will be added to dashboard.config. | string | Yes |
| filter | An optional filter to find an existing occurrence of the element. This is needed for elements that can have the same name (e.g. xslReportBuildPlugin, xslFile, etc.) Otherwise it is assumed that there will only be one element with the name in the parent. \\ If used, this is a standard XPath where statement (i.e. the value between \[ and \]). |
string | No |
| value | The value to set. | string | No |
| attributes | The root element for the attribute definitions. | container | No |
| attribute | An attribute to add to the element. There can be multiple attribute elements under the attributes element. This element has two required attributes: * name: the name of the attribute * value: the value to set for the attribute |
element | No |
Testing a Package¶
Currently the only way to test a package and ensure that it works is to install it.
Note:_ Before installing, make sure you back up dashboard.config and any other important files. Alternately use a fresh install of the web dashboard.
Once the package has been built (including the manifest), go to the administrative plug-in and attempt to load and install the plug-in. If the plug-in installs without any problem, check the log to ensure everything occurred as planned. Then check to make sure the packaged contents are working as expected.
Finally, try to uninstall the package. In theory a package should cleanly uninstall, reverting the dashboard back to its previous state. However, in reality all an uninstall does is remove the new entries (either files or configuration settings or both.)
Including a Package in the Build¶
This section covers the process to add a new package to the CruiseControl.NET distribution. If the package will be distributed by an alternate route, then this section is not relevant.
Since the package will contain files that are normally included in the dashboard, there is no point in building the packages independently. Instead the best approach is to modify the build script to also generate the package.
To modify the script for a new package, use the following steps:- Under the packages folder in the dashboard project add a folder for the new package
- Add an XML called Manifest.xml to this folder
- Add the configuration details (as above) to this file and save it
- Open ccnet.build and add a target for the new package
- In this target, use the <zip> command to compress all the required files (including the manifest)
- The <zip> command should output the file to $\{build.dir\}\WebDashboard\Packages folder
- Include the new target name in the depends attribute of the "build.packages" target
- Save the file and test the build
To modify an existing package just apply the relevant steps from the above process.
The following is an example of a target for generating a package:
1<target name="build.serverLog.package" description="Generates the server log package">
2 <mkdir dir="${build.dir}\WebDashboard\Packages\" verbose="${verbosity}"/>
3 <zip zipfile="${build.dir}\WebDashboard\Packages\ServerLog.zip">
4 <fileset basedir="${src.dir}\WebDashboard\Packages\ServerLog">
5 <include name="*.*"/>
6 </fileset>
7 <fileset basedir="${src.dir}\WebDashboard\Templates">
8 <include name="ServerLog.vm"/>
9 </fileset>
10 </zip>
11</target>
Make sure the relevant files are checked into source control, otherwise the package will build incorrectly.
Update packages.xml¶
Adjust project\WebDashboard\packages\packages.xml so that it knows about the new package.
The zip file name is the one specified in the build script.
Also make sure that the names are the same in the manifest files as in the packages.xml file. (attribute name)
The description attribute of packages.xml is used in the dashboard, not the description of the manifest file.
When changes are done to dashboard.config, standard inclusion of a package, be sure to set the installed to yes in this file.
Examples¶
The following are examples of manifest that have already been written:
Queue Status Display¶
This is a very simple package. It contains a single template (ServerQueueStatus.vm) and a single configuration change (adds the plug-in to the server plug-in list).
1<package>
2 <name>Queue Status Display</name>
3 <description>Display the status of the queues.</description>
4 <type>Plugin</type>
5 <folders>
6 <folder>
7 <location>Templates</location>
8 <files>
9 <file>ServerQueueStatus.vm</file>
10 </files>
11 </folder>
12 </folders>
13 <configuration>
14 <setting>
15 <path>/dashboard/plugins/serverPlugins</path>
16 <name>queueStatusServerPlugin</name>
17 </setting>
18 </configuration>
19</package>
Modification History¶
This example shows that a package does not always need to include files. Instead the package can just define configuration changes. In this example the manifest defines a single new plug-in.
1<package>
2 <name>Modification History</name>
3 <description>Modification history for a project.</description>
4 <type>Plugin</type>
5 <folders />
6 <configuration>
7 <setting>
8 <path>/dashboard/plugins/projectPlugins</path>
9 <name>modificationHistoryProjectPlugin</name>
10 </setting>
11 </configuration>
12</package>
NDepend Results¶
In this example, the package contains a single file that is used in multiple places. Additionally, the configuration changes involve both a filter and multiple attributes. The filter condition on each setting allows the installer to identify which element to modify out of several possibilities.
1<package>
2 <name>NDepend Results</name>
3 <description>Display the results of a NDepend run.</description>
4 <type>Plugin</type>
5 <folders>
6 <folder>
7 <location>Xsl</location>
8 <files>
9 <file>ndependreport-ccnet.v2.xsl</file>
10 </files>
11 </folder>
12 </folders>
13 <configuration>
14 <setting>
15 <path>/dashboard/plugins/buildPlugins/buildReportBuildPlugin/xslFileNames</path>
16 <filter>.='xsl\ndependreport-ccnet.v2.xsl'</filter>
17 <name>xslFile</name>
18 <value>xsl\ndependreport-ccnet.v2.xsl</value>
19 </setting>
20 <setting>
21 <path>/dashboard/plugins/buildPlugins</path>
22<EMAIL_ADDRESS>23 <name>xslReportBuildPlugin</name>
24 <attributes>
25 <attribute name="description" value="NDepend Details"/>
26 <attribute name="actionName" value="NDependDetailsBuildReport"/>
27 <attribute name="xslFileName" value="xsl\ndependreport-ccnet.v2.xsl"/>
28 </attributes>
29 </setting>
30 </configuration>
31</package>
NUnit Results¶
This is a fairly complex example. Not only does it make multiple configuration changes, it also installs multiple files (although all to the same place). Again, the settings use filters to correctly identify the right element to modify and some of the settings have multiple attributes.
1<package>
2 <name>NUnit Results</name>
3 <description>Display the results of a NUnit run.</description>
4 <type>Plugin</type>
5 <folders>
6 <folder>
7 <location>Xsl</location>
8 <files>
9 <file>unittests.xsl</file>
10 <file>tests.xsl</file>
11 <file>timing.xsl</file>
12 </files>
13 </folder>
14 </folders>
15 <configuration>
16 <setting>
17 <path>/dashboard/plugins/buildPlugins/buildReportBuildPlugin/xslFileNames</path>
18 <filter>.='xsl\unittests.xsl'</filter>
19 <name>xslFile</name>
20 <value>xsl\unittests.xsl</value>
21 </setting>
22 <setting>
23 <path>/dashboard/plugins/buildPlugins</path>
24<EMAIL_ADDRESS>25 <name>xslReportBuildPlugin</name>
26 <attributes>
27 <attribute name="description" value="NUnit Details"/>
28 <attribute name="actionName" value="NUnitDetailsBuildReport"/>
29 <attribute name="xslFileName" value="xsl\tests.xsl"/>
30 </attributes>
31 </setting>
32 <setting>
33 <path>/dashboard/plugins/buildPlugins</path>
34<EMAIL_ADDRESS>35 <name>xslReportBuildPlugin</name>
36 <attributes>
37 <attribute name="description" value="NUnit Timings"/>
38 <attribute name="actionName" value="NUnitTimingsBuildReport"/>
39 <attribute name="xslFileName" value="xsl\timing.xsl"/>
40 </attributes>
41 </setting>
42 </configuration>
43</package>


Several of your commits contain changes that you want to keep in a single commit. For example, the addition of a new feature in a commit A and some fixes to this feature in a commit B. You want them to be in a single commit to deliver the new feture already fixed.
Here, we target a fine grained modification of our commits.
If you prefer to forget your history and rewrite it completely, prefer
How to Squash Several Git Commits into a Single One?
All you need is to squash your commits into a single one that you can
For squashing your commits, you need first to have them in a sequence.
If some commits that you want to squash are mixed with commits you don't want to squash, first
Once your commits are properly ordered, here is the information you need to prepare:
COMMIT_LAST=$(git rev-parse HEAD) # Identify the last commit
COMMIT_START=<commit SHA-1> # Identify the first commit to squash
COMMIT_STOP=<commit SHA-1> # Identify the last commit to squash
MESSAGE="<message>" # Message of the squashed commit
Once ready, just squash the sequence into a single commit:
git reset --hard ${COMMIT_START}~1 # Place the branch on the commit before the sequence
git cherry-pick -n ${COMMIT_START}~1..${COMMIT_STOP} # Reproduce the sequence without commiting
git commit -m "${MESSAGE}" # Commit the result with the squash message
git cherry-pick ${COMMIT_STOP}..${COMMIT_LAST} # Apply the remaining commits
To squash a set of Git commits, first ensure git reset --hard
to restart the branch just before the sequence to squash.
The main command to retrieve your commits is git cherry-pick
.
Use it to retrieve the commits you need to reproduce as is.
For the sequence to squash, pick them with the -n
option to retrieve only there changes.
You can commit all of them at once with git commit
.


Bachelor of Technical Faculty "Mihajlo Pupin", Zrenjanin Major in Manager of business communications
Aleph ICT Course, Novi Sad Course for basic programming (Java and OOP)
Aleph ICT Course, Novi Sad Course for frontend developing
SanjaProtic/my-resume on GitHub
View here..
Made with Angular and Sass
PhotoStock - responsive website
View here..
Made with Html and Css
HomeExcenge - responsive website
View here..
Made with Html and Css


by Rhia Dixon
Posted on January 31, 2019
I mentioned in a previous post that I took the non-traditional road to becoming a software engineer by attending a coding bootcamp, and that I did manage to learn a few tech-ish things. Well, I also learned quite a few non-tech things during the course of the program.
While I could go on and on about how awesome my program was, how much I loved the challenge, all the languages I learned, and the people who have helped me out in one way or another... I would be remiss to not mention that soft skills...work skills...LIFE skills are also important. I’m pretty positive that learning these things has contributed to my current success, and I’d like to share what I found with you.
The “P-word” has been my arch-nemesis most of my adult life. Procrastination has had me up til the wee hours of the morning cranking out enumerable lines of code to meet assignment deadlines. Procrastination has had me biting my nails trying to brainstorm 5-page essays. Procrastination lures me in with the promise of later...and later...only to vanish at the critical hour, leaving me to find inspiration in the wind. I realized during my bootcamp that procrastination could be prevented simply by planning. Really.
I was introduced to Trello by a classmate during a group project. Trello has changed my life y’all! It’s like having a bulletin board and post-it notes to plan your project. It is so worth it to break down projects into easily measured pieces, and putting things in the “Done” column is extremely satisfying. People can do all kinds of planning with Trello. I’m currently using Trello boards for various projects: goal-setting, house-cleaning, travel planning, and speaking engagements. If you don’t have a planner or an app like Trello already, find a planning tool that works for you and commit to using it daily to add/update tasks. You will see a marked spike in your productivity.
I’m specifically talking about LinkedIn and Twitter. So, I’ve had a LinkedIn account for a few years, and a Twitter for about 12 months; however, I didn’t really start off using either of them right. My Twitter is a current curating work in progress, and I just got the hang of LinkedIn about a year ago. I mean, I had my resume info out there, and I had 500+ connections...but I didn’t have many endorsements for skills, nor did I have recommendations from co-workers. I also wasn’t interacting with other people in my network! I was just another face on LinkedIn with a plethora of skills and no personality.
My bootcamp offered career services, and my career liaison just happened to be an amazing firecracker of a woman! Amber Vaughan taught me the value of requesting recommendations from people who knew how I worked. She also taught me about engaging with others on posts and getting connected with the right people. If you do not have a LinkedIn account, please get one. It’s free, and it is one of the best networking tools to have. Here are few things you should do if you have LinkedIn and/or Twitter:
Building your network is critical to your success when it comes to finding opportunities. Most of the people at my current job knew at least one person in the company prior to applying for positions. A resume is designed to showcase your knowledge, skills, and abilities. It is not particularly helpful for expressing how great of a teammate you are, or how your passion for volunteering has provided opportunities for leadership growth. While what you know is important, who you know will help you get beyond the “screeners” and to the actual interview.
Your network will be able to recommend you for open positions and vouch for you! Your network is where you will find amazing mentors, opportunities to advance professionally, and interesting volunteer events to support. When networking opportunities arise, take them. Sometimes, networking can be as simple as following up with a connection on LinkedIn, attending a meetup, or engaging in Twitter conversations. Sometimes it takes a little more effort than that. Regardless, it is important. Flipping a quick conversation into to a connection gets easier and more natural as you do it, so get to it!
One of the most important things I learned during my bootcamp experience was to ask questions. ASK. ALL. THE. QUESTIONS. I paid for my course, I showed up everyday, and I told myself I had too much at stake to not understand a concept. So I asked every question that popped up. Sometimes I asked the teacher, sometimes the TA, and often I asked the Google. 99% of the time, I wasn’t the only one who was perplexed.
This has carried over into my software engineering life. I have a strong desire to be a consistent contributor to my team.  I’m coding in languages I didn’t learn in class, so those “WTF” moments happen at a certain degree of frequency. I don’t beat myself up over it though. I ask questions for clarification of the goal, understanding of the syntax, and reasoning behind certain design choices. One of the main reasons I was hired for my current role was my willingness to ask questions. Asking questions is a win-win for the asker and the answerer. The asker gets the information they need to be successful, and the answerer often is challenged to think more about why and how something is being done.
I learned that trying out new tech, new solutions, new meetups, and applying for new jobs is only as scary as I make it. I’ve blown away entire repositories due to failed attempts at new tech. I have been to meetups I liked and didn’t like. I have applied to jobs where I’m probably the least qualified applicant.
In every anxiety-inducing moment, asking myself “What’s the worst that could happen?” definitely strengthened my resolve. For instance, applying for jobs, the worst-case scenario is that you don’t get a call or an interview. The best-case? You get the job, or they make up one for you because you’re so awesome. Trying new tech, the worst-case scenario is that it won’t work. Best case? It works amazingly well. Changing how you view the possible outcomes will greatly help your confidence in trying something new. Go for all of the things your heart desires! The worst that could happen is you are told no.


Express is web framework for Node, which allows you to quickly and easily setup a webserver in your project
The first step of express is to create a new JavaScript file such as "app.js"
You then want to create a constant with which you import express:
const express = require('express')
const app = express()
The require function is built into Node as a way of including modules that exist in seperate files, like an express installation (which can be found in the node_modules folder in your project)
In order for express to start the webserver you need to have this function call at the bottom of your file
app.listen(8080)
The number giving as an argument to the function is the port which you want express to listen on
You might notice that if you go to http://localhost:8080 after starting the server, that there wont be anything showing
REST API and serving HTML files will be explained in the next chapter


| Contents |
AutotunerPID Toolkit function list |
| |
|
| autogui |
Matlab S-function for making a simple PID GUI |
| bodePIDcompare |
Comparison of Bode Diagrams with different autotuning methods |
| butterdesign |
Butterworth analog lowpass filter design |
| envgui |
Matlab S-function for making a simple PID GUI |
| idareas |
Identification of a FOPDT model using the method of the areas |
| pid_autotuner |
Supervisor of a PID autotuner (implemented as a Matlab S-function) |
| pid_isatd |
Discrete time ISA-PID (implemented as a Matlab S-function) |
| pid_structure |
Structure selection for a ISA-PID regulator |
| pid_tuning |
Tune the parameters of a ISA-PID regulator with some well-defined autotuning methods |
| stepPIDcompare |
Comparison of step response on setpoint and load disturbance |


Suite of assertions to test routes generated by Rails and the handling of requests made to them.
Asserts that the provided options can be used to generate the provided path. This is the inverse of assert_recognizes. The extras parameter is used to tell the request the names and values of additional request parameters that would be in a query string. The message parameter allows you to specify a custom error message for assertion failures.
The defaults parameter is unused.
# Asserts that the default action is generated for a route with no action assert_generates "/items", :controller => "items", :action => "index" # Tests that the list action is properly routed assert_generates "/items/list", :controller => "items", :action => "list" # Tests the generation of a route with a parameter assert_generates "/items/list/1", { :controller => "items", :action => "list", :id => "1" } # Asserts that the generated route gives us our custom route assert_generates "changesets/12", { :controller => 'scm', :action => 'show_diff', :revision => "12" }
# File lib/action_dispatch/testing/assertions/routing.rb, line 71 def assert_generates(expected_path, options, defaults={}, extras = {}, message=nil) if expected_path =~ %{://} begin uri = URI.parse(expected_path) expected_path = uri.path.to_s.empty? ? "/" : uri.path rescue URI::InvalidURIError => e raise ActionController::RoutingError, e.message end else expected_path = "/#{expected_path}" unless expected_path.first == '/' end # Load routes.rb if it hasn't been loaded. generated_path, extra_keys = @routes.generate_extras(options, defaults) found_extras = options.reject {|k, v| ! extra_keys.include? k} msg = build_message(message, "found extras <?>, not <?>", found_extras, extras) assert_equal(extras, found_extras, msg) msg = build_message(message, "The generated path <?> did not match <?>", generated_path, expected_path) assert_equal(expected_path, generated_path, msg) end
Asserts that the routing of the given path was handled correctly and that the parsed options (given in the expected_options hash) match path. Basically, it asserts that Rails recognizes the route given by expected_options.
Pass a hash in the second argument (path) to specify the request method. This is useful for routes requiring a specific HTTP method. The hash should contain a :path with the incoming request path and a :method containing the required HTTP verb.
# assert that POSTing to /items will call the create action on ItemsController assert_recognizes({:controller => 'items', :action => 'create'}, {:path => 'items', :method => :post})
You can also pass in extras with a hash containing URL parameters that would normally be in the query string. This can be used to assert that values in the query string string will end up in the params hash correctly. To test query strings you must use the extras argument, appending the query string on the path directly will not work. For example:
# assert that a path of '/items/list/1?view=print' returns the correct options assert_recognizes({:controller => 'items', :action => 'list', :id => '1', :view => 'print'}, 'items/list/1', { :view => "print" })
The message parameter allows you to pass in an error message that is displayed upon failure.
# Check the default route (i.e., the index action) assert_recognizes({:controller => 'items', :action => 'index'}, 'items') # Test a specific action assert_recognizes({:controller => 'items', :action => 'list'}, 'items/list') # Test an action with a parameter assert_recognizes({:controller => 'items', :action => 'destroy', :id => '1'}, 'items/destroy/1') # Test a custom route assert_recognizes({:controller => 'items', :action => 'show', :id => '1'}, 'view/item1')
# File lib/action_dispatch/testing/assertions/routing.rb, line 41 def assert_recognizes(expected_options, path, extras={}, message=nil) request = recognized_request_for(path) expected_options = expected_options.clone extras.each_key { |key| expected_options.delete key } unless extras.nil? expected_options.stringify_keys! msg = build_message(message, "The recognized options <?> did not match <?>, difference: <?>", request.path_parameters, expected_options, expected_options.diff(request.path_parameters)) assert_equal(expected_options, request.path_parameters, msg) end
Asserts that path and options match both ways; in other words, it verifies that path generates options and then that options generates path. This essentially combines assert_recognizes and assert_generates into one step.
The extras hash allows you to specify options that would normally be provided as a query string to the action. The message parameter allows you to specify a custom error message to display upon failure.
# Assert a basic route: a controller with the default action (index) assert_routing '/home', :controller => 'home', :action => 'index' # Test a route generated with a specific controller, action, and parameter (id) assert_routing '/entries/show/23', :controller => 'entries', :action => 'show', :id => 23 # Assert a basic route (controller + default action), with an error message if it fails assert_routing '/store', { :controller => 'store', :action => 'index' }, {}, {}, 'Route for store index not generated properly' # Tests a route, providing a defaults hash assert_routing 'controller/action/9', {:id => "9", :item => "square"}, {:controller => "controller", :action => "action"}, {}, {:item => "square"} # Tests a route with a HTTP method assert_routing({ :method => 'put', :path => '/product/321' }, { :controller => "product", :action => "update", :id => "321" })
# File lib/action_dispatch/testing/assertions/routing.rb, line 117 def assert_routing(path, options, defaults={}, extras={}, message=nil) assert_recognizes(options, path, extras, message) controller, default_controller = options[:controller], defaults[:controller] if controller && controller.include?(//) && default_controller && default_controller.include?(//) options[:controller] = "/#{controller}" end generate_options = options.dup.delete_if{ |k,v| defaults.key?(k) } assert_generates(path.is_a?(Hash) ? path[:path] : path, generate_options, defaults, extras, message) end
ROUTES TODO: These assertions should really work in an integration context
# File lib/action_dispatch/testing/assertions/routing.rb, line 172 def method_missing(selector, *args, &block) if defined?(@controller) && @controller && @routes && @routes.named_routes.helpers.include?(selector) @controller.send(selector, *args, &block) else super end end
A helper to make it easier to test different route configurations. This method temporarily replaces @routes with a new RouteSet instance.
The new instance is yielded to the passed block. Typically the block will create some routes using map.draw { map.connect ... }:
with_routing do |set| set.draw do |map| map.connect ':controller/:action/:id' assert_equal( ['/content/10/show', {}], map.generate(:controller => 'content', :id => 10, :action => 'show') end end end
# File lib/action_dispatch/testing/assertions/routing.rb, line 146 def with_routing old_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new if defined?(@controller) && @controller old_controller, @controller = @controller, @controller.clone _routes = @routes # Unfortunately, there is currently an abstraction leak between AC::Base # and AV::Base which requires having the URL helpers in both AC and AV. # To do this safely at runtime for tests, we need to bump up the helper serial # to that the old AV subclass isn't cached. # # TODO: Make this unnecessary @controller.singleton_class.send(:include, _routes.url_helpers) @controller.view_context_class =<EMAIL_ADDRESS>do include _routes.url_helpers end end yield @routes ensure @routes = old_routes if defined?(@controller) && @controller @controller = old_controller end end
Generated with the Darkfish Rdoc Generator 2.


Methods for managing the parsing of an AsciiDoc table. Instances of thisclass are primarily responsible for tracking the buffer of a cell as the parsermoves through the lines of the table using tail recursion. When a cell boundaryis located, the previous cell is closed, an instance of Table::Cell isinstantiated, the row is closed if the cell satisifies the column count and,finally, a new buffer is allocated to track the next cell.
# File lib/asciidoctor/table.rb, line 275 def initialize(table, attributes = {}) @table = table if attributes.has_key? 'format' @format = attributes['format'] if !Table::DATA_FORMATS.include? @format raise "Illegal table format: #@format" end else @format = Table::DEFAULT_DATA_FORMAT end if @format == 'psv' && !attributes.has_key?('separator') && table.document.nested? @delimiter = '!' else @delimiter = attributes.fetch('separator', Table::DEFAULT_DELIMITERS[@format]) end @delimiter_re = /#{Regexp.escape @delimiter}/ @col_count = table.columns.empty? ? -1 : table.columns.size @buffer = '' @cell_specs = [] @cell_open = false @active_rowspans = [0] @col_visits = 0 @current_row = [] @linenum = -1 end
The String buffer of the currently open cell
Get the expected column count for a row
#col_count is the number of columns to pull into a rowA value of -1 means we use the number of columns foundin the first line as the #col_count
The cell delimiter for this table.
The cell delimiter compiled Regexp for this table.
The AsciiDoc table format (psv, dsv or csv)
The Table currently being parsed
Activate a rowspan. The rowspan Array is consulted whendetermining the effective number of cells in the current row.
returns nothing
# File lib/asciidoctor/table.rb, line 487 def activate_rowspan(rowspan, colspan) 1.upto(rowspan - 1).each {|i| @active_rowspans[i] ||= 0 @active_rowspans[i] += colspan } nil end
Determines whether the buffer has unclosed quotes. Used for CSV data.
returns true if the buffer has unclosed quotes, false if it doesn’t or it isn’t quoted data
# File lib/asciidoctor/table.rb, line 331 def buffer_has_unclosed_quotes?(append = nil) record =<EMAIL_ADDRESS>record.start_with?('"') && !record.start_with?('""') && !record.end_with?('"') end
Determines whether the buffer contains quoted data. Used for CSV data.
returns true if the buffer starts with a double quote (and not an escaped double quote),false otherwise
# File lib/asciidoctor/table.rb, line 340 def buffer_quoted? @buffer.lstrip! @buffer.start_with?('"') && !@buffer.start_with?('""') end
Checks whether the current cell has been marked as closed
returns true if the cell is marked as closed, false otherwise
# File lib/asciidoctor/table.rb, line 392 def cell_closed? !@cell_open end
Checks whether the current cell is still open
returns true if the cell is marked as open, false otherwise
# File lib/asciidoctor/table.rb, line 385 def cell_open? @cell_open end
Close the current cell, instantiate a new Table::Cell, add it tothe current row and, if the number of expected columns for the currentrow has been met, close the row and begin a new one.
returns nothing
# File lib/asciidoctor/table.rb, line 413 def close_cell(eol = false) cell_text = @buffer.strip @buffer = '' if format == 'psv' cell_spec = take_cell_spec if cell_spec.nil? puts 'asciidoctor: ERROR: table missing leading separator, recovering automatically' cell_spec = {} repeat = 1 else repeat = cell_spec.fetch('repeatcol', 1) cell_spec.delete('repeatcol') end else cell_spec = nil repeat = 1 if format == 'csv' if !cell_text.empty? && cell_text.include?('"') # this may not be perfect logic, but it hits the 99% if cell_text.start_with?('"') && cell_text.end_with?('"') # unquote cell_text = cell_text[1..-2].strip end # collapses escaped quotes cell_text = cell_text.tr_s('"', '"') end end end 1.upto(repeat) {|i| # make column resolving an operation if @col_count == -1 @table.columns << Table::Column.new(@table, @current_row.size + i - 1) column = @table.columns.last else # QUESTION is this right for cells that span columns? column =<EMAIL_ADDRESS>end cell = Table::Cell.new(column, cell_text, cell_spec) unless cell.rowspan.nil? || cell.rowspan == 1 activate_rowspan(cell.rowspan, (cell.colspan || 1)) end @col_visits += (cell.colspan || 1) @current_row << cell # don't close the row if we're on the first line and the column count has not been set explicitly # TODO perhaps the col_count/linenum logic should be in end_of_row? (or a should_end_row? method) close_row if end_of_row? && (@col_count != -1 || @linenum > 0 || (eol && i == repeat)) } @open_cell = false nil end
If the current cell is open, close it. In additional, push thecell spec captured from the end of this cell onto the stack for useby the next cell.
returns nothing
# File lib/asciidoctor/table.rb, line 401 def close_open_cell(next_cell_spec = {}) push_cell_spec next_cell_spec close_cell(true) if cell_open? advance nil end
Close the row by adding it to the Table and resetting the rowArray and counter variables.
returns nothing
# File lib/asciidoctor/table.rb, line 471 def close_row @table.rows.body << @current_row # don't have to account for active rowspans here # since we know this is first row @col_count = @col_visits if @col_count == -1 @col_visits = 0 @current_row = [] @active_rowspans.shift @active_rowspans[0] ||= 0 nil end
Calculate the effective column visits, which consists of the number ofcells plus any active rowspans.
# File lib/asciidoctor/table.rb, line 502 def effective_col_visits @col_visits + @active_rowspans.first end
Check whether we’ve met the number of effective columns for the current row.
# File lib/asciidoctor/table.rb, line 496 def end_of_row? @col_count == -1 || effective_col_visits == @col_count end
Marks that the cell should be kept open. Used when the end of the line isreached and the cell may contain additional text.
returns nothing
# File lib/asciidoctor/table.rb, line 368 def keep_cell_open @cell_open = true nil end
Marks the cell as closed so that the parser knows to instantiate a new cellinstance and add it to the current row.
returns nothing
# File lib/asciidoctor/table.rb, line 377 def mark_cell_closed @cell_open = false nil end
Checks whether the line provided contains the cell delimiterused by this table.
returns MatchData if the line contains the delimiter, false otherwise
# File lib/asciidoctor/table.rb, line 314 def match_delimiter(line) line.match @delimiter_re end
Puts a cell spec onto the stack. Cell specs precede the delimiter, so astack is used to carry over the spec to the next cell.
returns nothing
# File lib/asciidoctor/table.rb, line 358 def push_cell_spec(cell_spec = {}) # this shouldn't be nil, but we check anyway @cell_specs << (cell_spec || {}) nil end
Skip beyond the matched delimiter because it was a false positive(either because it was escaped or in a quoted context)
returns the String after the match
# File lib/asciidoctor/table.rb, line 322 def skip_matched_delimiter(match, escaped = false) @buffer = %Q(#@buffer#{escaped ? match.pre_match.chop : match.pre_match}#@delimiter) match.post_match end
Checks whether the line provided starts with the cell delimiterused by this table.
returns true if the line starts with the delimiter, false otherwise
# File lib/asciidoctor/table.rb, line 306 def starts_with_delimiter?(line) line.start_with? @delimiter end
Takes a cell spec from the stack. Cell specs precede the delimiter, so astack is used to carry over the spec from the previous cell to the current cellwhen the cell is being closed.
returns The cell spec Hash captured from parsing the previous cell
# File lib/asciidoctor/table.rb, line 350 def take_cell_spec() @cell_specs.shift end
Advance to the next line (which may come after the parser begins processingthe next line if the last cell had wrapped content).
# File lib/asciidoctor/table.rb, line 508 def advance @linenum += 1 end


{{ partial "head_casestudy.html" . }}
{{ partial "nav_cycles.html" . }}
On-Chain Cycle Data
Users delegate to Friedger Pool. The pool admin will lock and commit the stacks every cycle. The details for each cycle are listed below.
{{ range sort $.Site.Data.cycles "cycle" "desc"}} {{ partial "cycle.html" . }} {{ end }} {{ if .Site.Params.footer.enable }} {{ partial "footer.html" . }} {{ end }} {{ partial "scripts.html" . }} {{partial "react-members.html" . }}


Tournament creation
Creating the tournament
Now that the tournament settings are set, you have to create the tournament before being able to add mappools for the tournament.
Successfully created the tournament {{ tournament.tournamentName }}!
Click here to check out your newly created tournament.


HOME
ABOUT
WORK
INTERESTS
CONTACT
Christopher Sulayao
FRONT END DEVELOPER || UX / UI DEVELOPER || QUALITY ASSURANCE ENGINEER


Harbor
Presentation about Harbor project
https://ruzickap.github.io/k8s-harbor-presentation
Created by Petr Ruzicka
Agenda
-
Project introduction, history, development
-
Features - RBAC, replication, vulnerability scanning, security
-
Architecture
-
Helm charts operations
-
Container images (replication, vulnerability scan, security)
-
Project settings
What is Harbor?
Cloud native registry able to store container images and Helm Charts
Container registries
-
Docker Hub
-
Quay
-
GitHub Package Registry
-
GitLab
-
Azure Container Registry
-
Google Container Registry (GCR)
-
Amazon Elastic Container Registry (ECR)
-
TreeScale
-
Canister
Self-hosted container registries
-
Docker Registry
-
GitLab Container Registry
-
Harbor
-
Portus
-
JFrog Artifactory
Access Control
https://github.com/goharbor/community/tree/master/presentations/deep_dive
Horizontal Scaling
https://github.com/goharbor/community/tree/master/presentations/deep_dive
Thank you


Reports arguments that have the same value as the default ones.
The quick-fix will remove the redundant conversions.
Example:
def f(x: Int, y: Int = 0, z: Int) {}
f(1, y = 0, z = 1)
After the quick-fix is applied:
def f(x: Int, y: Int = 0, z: Int) {}
f(1, z = 1)


If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 99.
Find the largest palindrome made from the product of two 3-digit numbers.
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
The game of life simulates something like bacterial life. It is modeled as a two dimentional grid. Each cell within the grid may be alive or dead. Whether a cell is alive or dead will depend only on the state of itself and it's neighbours in the last iteration of the game.
To illustrate:
|-----| |-----|
| | | X |
| XXX | BECOMES | X |
| | | X |
|-----| |-----|
The center cell will experience rule 2. The cells to it's right and left will die from rule 1. But the cells above and below it will come to life with rule 4.
Implement a function that will take a sequence of coordinates of live cells and return a sequence of coordinates of cells that will be be alive next time. For instance our above example would be:
(game-of-life [[1 2] [2 2] [3 2]])
=> [[2 1] [2 2] [2 3]]
For animations and further information see the wikipedia page.


How I improved the YamlDotNet performance by 370%
The YamlDotNet is the most famous library to manage YAML format on .Net platform. This library is really stable and good solution. Many of my programs use this library, so I thought that this is prefect open source project that I can improve.
What can I do?
I’ve opened issues tab looking for issues with labels: “good first issue”, “help wanted” or “up-for-grabs”. However I couldn’t find them because this specific labels names are not used in this project.
I thought that I could read the source code and maybe I find something interesting to improve. I have to admit that the source code of the library is really clean. I took a look at the performance tests and immediately realized that I want to improve them.
The YamlDotNet used to use Stopwatch
to measure performance of benchmark tests. The main loop that run the tests looked like:
foreach(var test in tests)
{
Console.Write("{0}\t{1}\t", adapterName, test.GetType().Name);
var graph = test.Graph;
// Warmup
RunTest(serializer, graph);
if(!Stopwatch.IsHighResolution)
{
Console.Error.WriteLine("Stopwatch is not high resolution!");
}
var timer = Stopwatch.StartNew();
for (var i = 0; i < iterations; ++i)
{
RunTest(serializer, graph);
}
var duration = timer.Elapsed;
Console.WriteLine("{0}", duration.TotalMilliseconds / iterations);
}
You can find original code here.
As you can see tests here are using StopWatch
class to measure code performance. The better way to do it is to use BenchmarkDotNet which is a powerful .NET library for benchmarking.
So, let’s see how to start.
At first I wrote code of the test:
[MemoryDiagnoser]
public class ReceiptTest
{
private readonly Receipt _receipt = new Receipt();
private readonly StringWriter _buffer = new StringWriter();
private readonly ISerializer _serializer = new SerializerBuilder()
.WithNamingConvention(new CamelCaseNamingConvention())
.Build();
[Benchmark(Description = "Serialize vlatest")]
public void Serialize()
{
_serializer.Serialize(_buffer, _receipt.Graph);
}
}
The Serialize()
method marked with [Benchmark]
attribute is my benchmark test. I’ve used [MemoryDiagnoser]
because I wanted to know how much memory was used by the YamlDotNet.
Then I modified the Program
class:
public class Program
{
public static void Main(string[] args)
{
var summary = BenchmarkRunner.Run<ReceiptTest>();
}
}
I couldn’t wait to see my great change in action, so I run the program from console:
dotnet run -c Release
Unfortunately, I got error message:
// Validating benchmarks:
Assembly YamlDotNet.PerformanceTests.vlatest which defines benchmarks references non-optimized YamlDotNet
If you own this dependency, please, build it in RELEASE.
If you don't, you can create custom config with DontFailOnError to disable our custom policy and allow this benchmark to run.
As a message say If you own this dependency, please, build it in RELEASE
and I went to my Visual Studio and I see:
I had chosen Release-PerformanceTests
but BenchmarkDotNet printed me a message that I had to build the library in Release
. Something was wrong.
For unknown reasons, Release-PerformanceTests
doesn’t work in the same way like Release
configuration. After short research I find an article about this problem.
In turned out that the new .csproj format for .Net Core doesn’t have the same behavior as the old one. The Release-*
configurations doesn’t inherit from Release
configuration anymore. All I had to do was set several parameters in the project file:
<PropertyGroup Condition=" '$(Configuration)' == 'Release-Signed' Or '$(Configuration)' == 'Release-Unsigned' ">
<DefineConstants>$(DefineConstants);RELEASE;TRACE</DefineConstants>
<DebugSymbols>false</DebugSymbols>
<DebugType>portable</DebugType>
<Optimize>true</Optimize>
</PropertyGroup>
After that changes, BenchmarkDotNet was working. Out of curiosity, I compared the results before and after my changes and I was shocked.
-----------------------------------------------------------------------------------
| Serialize |
-----------------------------------------------------------------------------------
| | Mean | Error | StdDev | Gen0 | Gen1 | Allocated |
-----------------------------------------------------------------------------------
| v5.2.1 | 539.5 us | 5.710 us | 5.062 us | 8.7891 | 0.9766 | 30.82 KB |
| vlatest | 145.8 us | 1.671 us | 1.563 us | 8.3008 | 0.4883 | 30.7 KB |
-----------------------------------------------------------------------------------
Performance increased about 370% !
That was great news! I’ve made pull request which you can see here . My changes have been approved to YamlDotNet 5.3.0 version.
Summary
The biggest lesson from this post, is that we always have to measure the performance of our changes, even for small ones. A seemingly insignificant change can spoil our performance. And last but not least, we should always use existing solutions. Their authors spent a lot of time, so that we could save our time. Instead of creating a new solution, simply use existing one, do not reinvent the wheel.


WITNESS LIST State Affairs Committee April 24, 1997-1:00P HB 319 For: Rep. Hernandez (Self) On: Dan Wattles (Tx Dept. of Commerce) Robert McKinley (UTSA Small Business Ctr) Registering, but not testifying: For: Henry Flores (Tx Assn Mex-Am COC) Jesse Romero (MALDEF) Jim Wyatt (Tx Assn African-Am COC) Joe Morin (Tx Assn Mex-Am COC) Monica Trevino Binggeli (S.A. Hisp. Chamb. of Co) Rene Gonzalez (Self) On: Cathy Navarro (Comptroller's office) Leo Aguirre (Comptroller's office) HB 625 For: Rep. Hernandez (Self) Registering, but not testifying: For: Henry Flores (Tx Assn Mex-Am COC) Jesse Romero (MALDEF) Jim Wyatt (Tx Assn African-Am COC) Joe Morin (Tx Assn Mex-Am COC) Monica Trevino Binggeli (S.A. Hisp. COC) Rene Gonzalez (Self) On: Robert McKinley (UTSA-Small Business Ctr) HB 980 For: Rep. Junell (Self) HB 1338 For: Rep. Junell (Self) HB 1385 For: Rep. Junell (Self) HB 1643 For: Dan Dodson (Tx Environ. Equity Alia) Frank Reilly (Tx Beneficial Use Coal) Rep. Palmer (Self) Against: Scott McCown (Self) Tom "Smitty" Smith (Public Citizen) Registering, but not testifying: For: Reggie James (Consumers Union) Susan Potts (Self) Against: Leslie Fields (Sierra Club) On: John Powers (Self) Sue Catchings (Trav. Co. District Clrk) HB 1691 For: Rep. Eiland (Self) HB 2253 Against: Tom "Smitty" Smith (Public Citizen) Registering, but not testifying: Against: Leslie Fields (Sierra Club) HB 2379 For: Rep. Siebert (Self) HB 2380 For: Rep. Siebert (Self) HB 2385 For: Rep. Delisi (Self) On: Mike McKinney (HHSC) HB 2453 For: Rep. Delisi (Self) Rep. Hawley (Self) HB 2520 For: Rep. Gallego (Self) HB 2645 On: Darrell Pierce (GSC) Registering, but not testifying: For: John Fainter (AMBAC Connect, Inc.) On: David Gragan (GSC) HB 2752 On: Michael Jewell (Governor's office) HB 3284 For: Rep. Goodman (Self) Registering, but not testifying: On: Richard Cole (UT-Arlington) HB 3386 For: Rep. Gallego (Self) HB 3390 For: Pam Beachley (Business Ins. Cons. Asn) Rep. Smithee (Self) Registering, but not testifying: For: Dudley McCalla (Self) On: Claudia Nadig (Tx Workers' Comp Comm'n) Don Walker (Attorney General's offc) Susan Cory (Tx Workers' Comp Comm'n) HB 3414 For: Rep. Hochberg (Self) On: Dan Procter (Sec. of State) HB 3576 Registering, but not testifying: On: Michael Powers (GSC) HJR 63 For: Rep. Gallego (Self) Registering, but not testifying: For: Tom "Smitty" Smith (Public Citizen) SB 331 On: Shelia Taylor (SOAH) SB 495 On: Kenny McLesky (Comptroller's office) SB 584 For: Rep. Junell (Self) SB 820 Registering, but not testifying: For: John Fainter (AMBAC Connect, Inc.) SB 937 For: Rep. Goodman (Self) Registering, but not testifying: For: Shanna Igo (TML) SB 1177 For: Rep. Hochberg (Self) On: Dan Procter (Sec. of State)


Employee Details
Name: Raj
Age: 25
Designation: IT Engnr
Name: Suresh
Age: 40
Designation: Tech. Manager
Name: Teena
Age: 25
Designation: HR
Name: Krish
Age: 25
Designation: Softwr engnr.


The element in LightboxTrigger will get 'openLightbox' property and bind it to onClick event automatically.
You can also trigger the 'openLightbox' method in whatever way you like.


About Red Fennec Dev
Hi! I'm Nic. I go by they/them, or just my name. Note that it's spelled without a K. I'm a professional software developer with a passion for infosec, linguistics, embedded development, firearms...
Red Fennec Dev is mostly a personal blog, occasionally with some tutorials. I take feedback, by email or GitHub issues. Note that I'm one person, maintaining this site in my free time. If you report an issue, it might take me a while to fix it.
If you're curious what's available on this site, that's all explained on the homepage.
Contact info
No matter how you get in touch, be explicitly clear about why you're doing it. I'm oblivious. If you want help, be sure to be clear about your problem. If you want mentorship, be clear about what subject. If you want to talk about one of my projects, consider raising an issue in the relevant repo instead.
Also, be patient. I'm just one person, and I've got a full-time job and other committments. I probably won't reply with any urgency.
When you contact me, please include the exact string "hexagoanl", so I know you've read this page carefully. I recommend copy-pasting it.
If you've got a question or comment about the actual content, please raise an issue. If it's something about the hosting, please let GitHub know directly.
My email is<EMAIL_ADDRESS>It runs on ProtonMail, so it can generally be trusted as far as I can.
You can DM or @ me on Twitter as well.
I do also have moth a phone number and a Discord handle. However, I'm reluctant to hand out either to anyone. If you have an extremely good reason, email me about it, but expect me to be outright hostile to the idea.


when i got better battlelog activated and i switch over to battlepacks to open them my chrome stops responding and crashes. when i disable bb i can open my battlepacks with crashing. i am running the lastest version of chrome Version 39.0.2171.99 m.
i tryed to delete chrome fully with everything and reinstall bb but i wont help.
anyonelse have the same issue?
BrainFooLong
Administrator
I had currently a similar issue, but not on battlelog or bblog.
I visited youtube and on every click on a link chrome crashed.
I don't can reproduce your problem.
Seems like that chrome currently have some problems.


|
CoreSight Access Library
2.3
ARM CoreSight Access Library - on target CoreSight component control
|
CTI connections from ARM TRM. More...
CTI connections from ARM TRM.
Indicate that a CTI in/out port is connected to some other component (e.g. ETB, STM). These connections will have been decided as part of the SoC design.
The "trigger port id" on the other component is an index defined for convenience by this library - its value does not correspond to anything in the CoreSight architecture.
Connections from the CPU to its CTI are defined in each CPU's TRM.
| CTI input triggers: | CTI output triggers: |
|---|---|
| 0: Debug entry (pulsed) | 0: EDBGRQ |
| 1: !nPMUIRQ | 1: EXTIN[0] |
| 2: EXTOUT[0] | 2: EXTIN[1] |
| 3: EXTOUT[1] | 3: EXTIN[2] |
| 4: COMMRX | 4: EXTIN[3] |
| 5: COMMTX | 5: PMUEXTIN[0] |
| 6: TRIGGER | 6: PMUEXTIN[1] |
| 7: . | 7: DBGRESTART |
| 8: . | 8: !nCTIIRQ |
ARM A-series Procs & CSSoC 400 integration manual - 3.2 - CTI connections inside the PIL
| CTI input triggers: | CTI output triggers: |
|---|---|
| 0: Debug entry | 0: EDBGRQ |
| 1: !nPMUIRQ - overflow | 1: EXTIN[0] |
| 2: EXTOUT[0] | 2: EXTIN[1] |
| 3: EXTOUT[1] | 3: EXTIN[2] |
| 4: COMMRX | 4: EXTIN[3] |
| 5: COMMTX | 5: PMUEXTIN[0] |
| 6: Trace TRIGGER | 6: PMUEXTIN[1] |
| 7: . | 7: DBGRESTART |
| 8: . | 8: !nCTIIRQ |
| CTI input triggers: | CTI output triggers: |
|---|---|
| 0: DBGTRIGGER (pulsed) | 0: EDBGRQ |
| 1: !nPMUIRQ | 1: EXTIN[0] |
| 2: EXTOUT[0] | 2: EXTIN[1] |
| 3: EXTOUT[1] | 3: EXTIN[2] |
| 4: COMMTX | 4: EXTIN[3] |
| 5: COMMRX | 5: CTIEXTTRIG |
| 6: PTMTRIGGER | 6: nCTIIRQ |
| 7: . | 7: DBGRESTART |
same as A15, except names used are ETMTRIGGER and DBGRQ
| CTI input triggers: | CTI output triggers: |
|---|---|
| 0: DBGTRIGGER (pulsed) | 0: EDBGRQ |
| 1: !nPMUIRQ | 1: DBGRESTART |
| 2: . | 2: CTIIRQ |
| 3: . | 3: . |
| 4: EXTOUT[0] | 4: EXTIN[0] |
| 5: EXTOUT[1] | 5: EXTIN[1] |
| 6: EXTOUT[2] | 6: EXTIN[2] |
| 7: EXTOUT[3] | 7: EXTIN[3] |
| CTI input triggers: | CTI output triggers: |
|---|---|
| 0: | 0: ETB.FLUSHIN |
| 1: | 1: ETB.TRIGIN |
| 2: ETB.FULL | 2: TPIU.FLUSHIN |
| 3: ETB.ACQCOMP | 3: TPIU.TRIGIN |
| 4: ITM | 4: |
| 5: | 5: |
| 6: | 6: |
| 7: | 7: |


Hi to all
I'm a beginner with arduino environment (I program ATmega using codevision C compiler)
I have a problem with USB2UART bought with emonGLCD and emontx.
When I connect it to my computers (xp or win7) I can see only the blu led but no device is detected so I can't install any driver
I tried to install driver from the silab driver page but nothing happens (it means no virtual-com nor other driver appear on the device_manager )
do you think it is broken? how can I check it step by step?
can I use another way to upload code into my emonGLCD and emontx
I have: a working stk500 usb programmer for ATMEL/ arduino2009/
thanks in advance for any support
alessandro
Re: FTDI USB2UART problem
The programmer is broken. case closed
thanks
Re: FTDI USB2UART problem
Test with another cable as well, mine was glitchy.
Re: FTDI USB2UART problem
We have had an issue with a few USB programmers. We are now testing them ourselves prior to sending them out. We will be taking this up with the factory. please could you email me if you have bought a faulty adapter and would like a replacement.
Very sorry about this.
Re: FTDI USB2UART problem
Glyn: It seems as if the one I got is fine, just the USB cable was bad. I bent the legs of the USB female connector a bit, and now it's working a lot better.
Re: FTDI USB2UART problem
Thanks for the feedback, I'll pass this on to the manufacturer.


Equivalent to clicking the Links command on the Edit menu. Use OPEN.LINKS with the LINKS function to open workbooks linked to a particular sheet.
Syntax
OPEN.LINKS(document_text1, document_text2, ..., read_only, type_of_link)
OPEN.LINKS?(document_text1, document_text2, ..., read_only, type_of_link)
Document_text1, document_text2, are 1 to 12 arguments that are the names of supporting documents in the form of text, or arrays or references that contain text.
Read_only is a logical value corresponding to the read/write status of the linked worksheet. If read_only is TRUE, the sheet can be modified but changes cannot be saved; if FALSE or omitted, changes to the sheet can be saved. Read_only applies only to Microsoft Excel, WKS, and SYLK documents.
Type_of_link is a number from 1 to 6 that specifies what type of link you want to get information about.
| Type_of_link | Link document type |
| 1 | Microsoft Excel link |
| 2 | DDE link |
| 3 | Reserved |
| 4 | Not applicable |
| 5 | Subscriber |
| 6 | Publisher |
Remarks
You can generate an array of the names of linked workbooks with the LINKS function.
Related Functions
CHANGE.LINK Changes supporting workbook links
GET.LINK.INFO Returns information about a link
LINKS Returns the name of all linked workbooks
UPDATE.LINK Updates a link to another document
Return to index


--- layout: about title: Meet our team permalink: /about/ ---
The Hydrologic Research and Applications Toolbox is being developed by a diverse team of scientists and engineers in the Hydrometeorological Applications Program at the National Center for Atmospheric Research in close collaboration with multiple management agencies and Universities across the Nation and around the world. Our overarching goal is to advance our understanding of the land surface and atmospheric processes to serve a range of hydrometeorological applications for the benefit of society.


Currency Exchange
by Andres Florez
Welcome to CeX
Cex is a web page that allows the conversion of currencies, based on Java, Rest and AWS.
Conversion of Currencies
Value Currency
Choose Currency
Choose Currency to Convert
Calculate
Actualizar


___________________________ < I'm an expert in my field. > --------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||
Regular text. This is code.
Regular text.

Regular text. This is sample text. Regular text.
This is the first sentence. This whole sentence is in small letters.
The chemical formula of water: H2O
This text is superscripted
The concert took place on .
This paragraph includes a wrnogly spelled word.
| Items | Expenditure |
|---|---|
| Donuts | 3,000 |
| Stationery | 18,000 |
Heat the oven to
Requires a computer running an operating system. The computer must have some memory and ideally some kind of long-term storage. An input device as well as some form of output device is recommended.
<NEED NAME >
None


MNFJob
@interface MNFJob : NSObject
The MNFJob class acts as a wrapper for the Bolts framework developed by Facebook.
A job contains a Bolts task and a task completion source both of which can be used to initialize a job. Additionally a job contains a reference to the URL request used to carry out server requests from the MNF framework. Therefore a server request can be cancelled if it has not completed by cancelling the job.
A job should not be directly initialized but should rather use a Bolts task tompletion source to initialize with.
-
@abstract A delegate for the job to call MNFJobDelegate protocol methods on. All methods in the protocol are optional.
Declaration
Objective-C
@property (readwrite, strong, nonatomic) id<MNFJobDelegate> _Nonnull delegate;
Swift
var delegate: MNFJobDelegate { get set }
-
@abstract The result of the jobs request.
Declaration
Objective-C
@property (readonly, strong, nonatomic) id _Nonnull result;
Swift
var result: Any { get }
-
@abstract Any metadata returned by the jobs request.
Declaration
Objective-C
@property (readonly, strong, nonatomic) id _Nonnull metaData;
Swift
var metaData: Any { get }
-
@abstract The error returned by the jobs request.
Declaration
Objective-C
@property (readonly, strong, nonatomic) NSError *_Nonnull error;
Swift
var error: Error { get }
-
@abstract Whether the job has been cancelled.
Declaration
Objective-C
@property (readonly, getter=isCancelled, assign, nonatomic) BOOL cancelled;
Swift
var isCancelled: Bool { get }
-
@abstract Whether the job has been completed.
Declaration
Objective-C
@property (readonly, getter=isCompleted, assign, nonatomic) BOOL completed;
Swift
var isCompleted: Bool { get }
-
@abstract Whether the job has been paused.
Declaration
Objective-C
@property (readonly, getter=isPaused, assign, nonatomic) BOOL paused;
Swift
var isPaused: Bool { get }
-
@abstract Whether the job has been resumed.
Declaration
Objective-C
@property (readonly, getter=isResumed, assign, nonatomic) BOOL resumed;
Swift
var isResumed: Bool { get }
-
@abstract A method for handling a job completion. @discussion Requests are performed using NSURLSession which normally uses a background thread to perform it’s requests. Therefore this method is performed on the current thread the request is performed on. - parameter: completion A completion block returning a result, metadata and an error.
Declaration
Objective-C
- (void)handleCompletion:(nonnull MNFJobCompletionHandler)completion;
Swift
func handleCompletion(_ completion: @escaping MNFJobCompletionHandler)
Parameters
completion
A completion block returning a result, metadata and an error.
-
@abstract A method for handling a job completion on the main thread. @discussion Requests are performed using NSURLSession which normally uses a background thread to perform it’s requests. This method forces the execution of completion to be performed on the main thread and is useful when handling ui action upon completion. - parameter: completion A completion block returning a reuslt, metadata and an error.
Declaration
Objective-C
- (void)handleMainThreadCompletion:(nonnull MNFJobCompletionHandler)completion;
Swift
func handleMainThreadCompletion(_ completion: @escaping MNFJobCompletionHandler)
Parameters
completion
A completion block returning a reuslt, metadata and an error.
-
@abstract A method for handling a job cancellation. - parameter: completion A completion block which fires when the url session has finished cancelling the request.
Declaration
Objective-C
- (void)cancelWithCompletion:(nonnull void (^)(void))completion;
Swift
func cancel(completion: @escaping () -> Void)
Parameters
completion
A completion block which fires when the url session has finished cancelling the request.
-
@abstract A method for handling a job pausing. - parameter: completion A completion block which fires when the url session has finished pausing the request.
Declaration
Objective-C
- (void)pauseWithCompletion:(nonnull void (^)(void))completion;
Swift
func pause(completion: @escaping () -> Void)
Parameters
completion
A completion block which fires when the url session has finished pausing the request.
-
@abstract A method for handling a job resuming. - parameter: completion A completion block which fires when the url session has finished resuming the request.
Declaration
Objective-C
- (void)resumeWithCompletion:(nonnull void (^)(void))completion;
Swift
func resume(completion: @escaping () -> Void)
Parameters
completion
A completion block which fires when the url session has finished resuming the request.


Order matters. Take your time for the measurements and enter the access code. Be diligent! We don't want any accidents, do we?


Overview
Counts related records from multiple links at a time.
Summary
This endpoint will return count of records related by multiple links defined by :collection_name
.
The records may be filtered.
Request Arguments
| Name |
Type |
Description |
Required |
| filter |
String |
See Filter API. If collection definition uses aliases, then aliases should be used instead of real field names.
|
False |
Response Arguments
| Name |
Type |
Description |
record_count |
Map |
Count of related records.
|
Response
{
"record_count": {
"calls": 1,
"meetings": 2,
"tasks": 3
}
}
Change Log
| Version |
Change |
|
v10
|
Added /<module>/:record/collection/:collection_name/count GET endpoint.
|


Generative Learning has been committed to improving teaching and learning in schools
across the world for over 20 years.
Jim Roussin, Executive Director of Generative Learning, has worked as an assistant
superintendent, language arts teacher, ESL coordinator, ASCD Middle East consultant,
and adjunct professor.
Generative Learning’s unique approach focuses on building healthy organizations and
human development through the lens of natural systems theory and complexity science.
To provide leaders with powerful new lenses for seeing and influencing organizational culture toward greater wholeness, robustness, adaptivity and resiliency
Unleashing collective aspirations, energy and creativity for discovering new possibilities for action, growth and sustainability in an interconnected world
Margaret Mead reminds us that if we are to achieve a richer culture…
"Rich in contrasting values, we must recognize the whole
gamut of human potentialities and so weave a less arbitrary
social fabric, one in which each diverse human gift will find a
fitting place"
And according to Peter Senge (MIT professor)…
“Real learning gets to the heart of what it is to be human. We
become able to re-create ourselves. ... But for a learning
organization, “adaptive learning” must be joined by “generative
learning”, learning that enhances our capacity to create"


--- layout: example categories: example/v1.0.0 version: v1.0.0 title: Disable animation and inertia description: Simplify a map's behavior by disabling zoom or panning animations. tags: - zoompan ---


AnimaL Health Clinic
Link
Link
Link
Search
ABOUT US
GALLERY
CATS
DOGS
ADOPTION
PET ADVICE
CONTACT
FIND US
HISTORY
VISION
ANIMAL WELFARE
VETERINARY
PEOPLE
TRUSTEE
News and Events
latest pet news


Assessment for statistically-based PPQ sampling plan, including calculating the passing probability, optimizing the baseline and high performance cutoff points, visualizing the PPQ plan and power dynamically. The analytical idea is based on the simulation methods from the textbook "Burdick, R. K., LeBlond, D. J., Pfahler, L. B., Quiroz, J., Sidor, L., Vukovinsky, K., & Zhang, L. (2017). Statistical Methods for CMC Applications. In Statistical Applications for Chemistry, Manufacturing and Controls (CMC) in the Pharmaceutical Industry (pp. 227-250). Springer, Cham."
| Version: | 0.1.0 |
| Imports: | tolerance, ggplot2, plotly |
| Suggests: | knitr, rmarkdown |
| Published: | 2018-06-15 |
| Author: | Yalin Zhu |
| Maintainer: | Yalin Zhu <yalin.zhu at merck.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| Copyright: | Copyright 2018, Center for Mathematical Sciences, Merck & Co., Inc. |
| NeedsCompilation: | no |
| CRAN checks: | PPQplan results |
| Reference manual: | PPQplan.pdf |
| Vignettes: |
Vignette Title |
| Package source: | PPQplan_0.1.0.tar.gz |
| Windows binaries: | r-devel: PPQplan_0.1.0.zip, r-release: PPQplan_0.1.0.zip, r-oldrel: PPQplan_0.1.0.zip |
| OS X binaries: | r-release: PPQplan_0.1.0.tgz, r-oldrel: PPQplan_0.1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=PPQplan to link to this page.