| Document number: | P0831R0 | |
|---|---|---|
| Date: | 2017-10-14 | |
| Project: | Programming Language C++, Library Evolution Working Group | |
| Reply-to: | Tomasz Kamiński <tomaszkam at gmail dot com> |
This document proposes to reduce the scope of the P0634: Down with typename
! paper,
to exclude alias declaration.
Following the current direction of the above paper, the following syntax:
using id = some-other-id;
will be restricted to type alias declarations, and by doing so, it will prevent its possible further extension: to alias other kind of entities (functions, variables).
Features presented in this paper, are used to illustrate the possible extension of the alias declaration
syntax, that would
be blocked by acceptance of P0634R0 paper in its current form.
They are not proposed as part of this paper.
Currently if we want to import an (set of) function foo
defined in namespace X
into
namespace Y
, we can use using-declaration syntax:
using Y::foo;
However, there is no corresponding syntax that would allow to import a function under a different name.
As an alternative, we may define a new function bar
in namespace X
that would perfect-forward
to our target function.
Let our start will the following definition:
namespace X { template<typename... Args> decltype(auto) bar(Args&&... args) { return Y::foo(std::forward<Args>(args)...); } }
For above declaration, there are two major differences between the behaviour of the X::bar
and Y::foo
invocations:
X::bar
is never noexcept
, even if corresponding invocation of Y::foo
would be,X::bar
will lead to hard error, in situation when the invocation of Y:foo
would lead only to a SFINAE'able error.To fix both above problem we need to introduce conditional noexcept
specification and change the return type specification:
namespace X { template<typename... Args> auto bar(Args&&... args) noexcept(noexcept(Y::foo(std::forward<Args>(args)...))) -> decltype(Y::foo(std::forward<Args>(args)...)) { return Y::foo(std::forward<Args>(args)...); } }
Still, with the introduction of Concepts Lite, the above declaration may not be equivalent, as function X::bar
is unconstrained, while the corresponding Y::foo
function may be, which would lead to selecting a different overload
during overload resolution. As consequence, to preserve such
behaviour, the user is required to repeat signatures of all of the Y::foo
overloads.
Finally, even if the user will carefully repeat the signature of the
original function, invocation may still may not be equivalent due use of
forwarding,
that may lead to materialization of temporary and invocation of move
constructor. To illustrate, if we have a non-moveable type NonMovable
and the following declarations:
namespace Y { void foo(NonMovable); } namespace X { void bar(NonMovable&& nm) { return Y::foo(std::move(nm)); } }
the invocation X::bar(NonMovable{})
will be ill-formed, while Y::foo(NonMovable[})
is fine. This scenario may be considered
an edge case, but additional move-construction (that may degenerate to copy) may have a measurable impact on performance.
The author believes that above problems with achieving the simple
goal of importing function with different name, shows that the function
aliasing feature would be compelling and needed addition to the
language — it is worth to remind at this point that none of above issues
would occur if we decide to reuse same name and use using Y::foo;
instead.
As the using-declaration can be used to import any kind of entity from the other namespace, we may expect that the similar type alias syntax could be extended to allow function aliases, leading to the following solution to the problem described in 2.1:
namespace X { using bar = Y::foo; }
The major concern with this solution, is that its introduces more ambiguity to the language - it is not clear from the syntax what kind of entity is being imported (function, type, template, variable?). To address this, we may follow the namespace alias design, and provide separate syntax for each kind of entity.
On the other hand, if the intent of the user is to make call to X::bar
equivalent to the Y::foo
,
we may argue, that the syntax should not differ and depend on the fact if the Y::foo
is implemented as:
Otherwise, the selection of appropriate alias syntax and updating it accordingly puts a lot of burden on the user.
The author believes that both above approaches have their own drawbacks and benefits, and blocking one of the solutions at this point would be an mistake, and might impede the future evolution of the language.
Andrzej Krzemieński offered many useful suggestions and corrections to the proposal.
Special thanks and recognition goes to Sabre (http://www.sabre.com) for supporting the production of this proposal.
typename
!"
(P0634R0,
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0634r0.pdf)


- I went to visit a friend who recently moved out of the city to a place called Orpington which means connected to Orped's settlement—I love English place names! We ate snacks and watched crime documentaries and it was the best! I rarely get this kind of easy hangout time as a single person who lives alone and doesn't have a ton of friends in the new country she moved herself to in a pandemic.
- Entering in my 12th (and therefore last?) post-covid week, feeling better and better but I still need a lot of sleep. I also still have a couple of non-covid things to deal with so don't worry, plenty for me to still stress about.
- I was sick all of December holidays so I'm really ready for (but haven't planned) some time off while being mostly well!
- Oh! I went to see Bernie Sanders give a talk about his new book, It's OK to be Angry about Capitalism, which was a double treat because Emma Dabiri was the interviewer. Possibly I was in the lift with Jeremy Corbyn as well but we'll never know.
- Long Tailed Tits visited my garden, incredible! I tried to get photos but just managed feeder-shots which is ok.
- Farming update: tomato seedlings are thriving. Only one was a dud and didn't germinate properly. Poppies didn't germinate great but yarrow did! A couple more flowers starting to come up. In March I can start off some more!
- The start of the week was pretty sad and lonely but it got better.
Published on — Mon Feb 27 2023


Clay pot cooking is a technique of cooking food in an unglazed clay pot which has been soaked in water so as to release steam during the cooking process. This technique has a long history, stretching back at least to ancient Roman times, and is commonly used in several cuisines in Africa, Europe and Southeast and East Asia.
Typically, an unglazed clay pot is submerged for 15 to 30 minutes to absorb water before cooking, then filled with the food and placed into an oven. The walls of the pot help to diffuse the heat, and as the pot warms it releases the water as steam.
The food inside the clay pot loses little of its moisture because it is surrounded by steam, creating a tender, flavorful dish. The evaporation of the water prevents burning so long as the pot is not allowed to heat until it is completely dry. Because no oil needs to be added with this cooking technique, food cooked in a clay pot may be lower in fat compared with food prepared by other methods such as sautéing or frying. And unlike boiling, nutrients are not leached out into the water.
Because of the heat lost to the evaporation of water, clay pot cooking requires lower oven temperature and longer cooking times than traditional roasting with dry heat. Clay pots may be cleaned by scrubbing them with salt; soaps or detergents should not be used, because the clay may absorb them.
In ancient Ethiopia, all cooking was done with hand made clay pots made for different types of food. Today in most rural areas and in some urban homes, cooking is done with traditional clay pots because of the high price of regular metal pots. Some urban homes however use traditional clay pots believing that the food tastes better if cooked with a clay pot than a metal pot.
In Chinese, the pot used for such cooking is generally known as 砂鍋 (pinyin: shāguo) or 煲仔 (pinyin: bàozai), a Cantonese word for little pot. Clay pot dishes are sometimes labeled as "hot pot" or "hotpot" dishes on the menus of Chinese restaurants in English-speaking areas of the world.[1], but it should not be confused with hot pot dishes that are served in a large metal bowl and cooked at the table. In Taiwan, the chicken dish sanbeiji is prepared in a clay pot.
In Japan, the clay pot used for cooking is called a donabe, although it is not submerged in water.
In Vietnam, the stew-like dish called kho is cooked in a clay pot. The pot is most often called nồi đất in Vietnamese, although, depending on its size and use, it may also be called nồi kho cá, nồi kho thịt, nồi kho tiêu, or nồi kho tộ.
In the Philippines, the traditional clay pot used for cooking is the palayok.
In the southern states of Tamilnadu and Kerala in India , the traditional clay pot used for cooking is called Chatti. This is usually used in the villages by the working classes especially for cooking heavily spiced ,hot fish curry. Interestingly, this word is also used in Punjab, in Northern India, where traditionally the black lentil (dal makhani) and mustard leaf (saag) is cooked on slow fire for hours.
There is another type of Chatti, called "Kal" Chatti, which means a pot made of stone. In this case it is a kind of chalkstone where the pot is carved out compared to the clay pot where clay is molded and baked. Typically Kal Chatti is used for making South Indian dishes like "Vetta Kozhambhu", "Kirai Masayil" etc.
People in Sri Lanka use clay pot to make a special food called 'Pahi', (Little Jackfruit) fish curry, called ‘abul thiyal’ and some meat and specially rice and some chutney called accharu. Usually clay pots are used for making fresh water fish called’ Lula, Hunga, Magura and Kawaiya’. For more than 2000 years Sri Lankan used clay pots and now both modern and village people use the clay pot because they think the foods are more tasty and healthy.
In Germany, the clay roaster used to cook with is called a Römertopf (literally "Roman pot"). Since its introduction in 1967, it has influenced cooking traditions in Germany and neighbouring European countries. The pot is mainly used to cook meat like pork roast, chicken or stew in an oven.
In Spanish cooking a ceramic roaster known as "olla de barro" is used.


Vectors and bases
A vector is an arrow with a length and a direction. Just like positions, vectors exist before we measure or describe them. Unlike positions, vectors can mean many different things, such as position vectors, velocities, etc. Vectors are not anchored to particular positions in space, so we can slide a vector around and locate it at any position.
Change:
Two vectors, which may or may not be the same vector. Moving a vector around does not change it: it is still the same vector.
Some textbooks differentiate between free vectors, which are free to slide around, and bound vectors, which are anchored in space. We will only use free vectors.
We will use the over-arrow notation $\vec{a}$ for vector quantities. Other common notations include bold $\boldsymbol{a}$ and under-bars $\underline{a}$. For unit (length one) vectors we will use an over-hat $\hat{a}$.
Adding and scaling vectors
Vectors can be multiplied by a scalar number, which multiplies their length. Vectors can also be added together, using the parallelogram law of addition or the head-to-tail rule.
Adding and scaling vectors to give new vectors.
Vector bases
To describe vectors mathematically, we write them as a combination of basis vectors. An orthonormal basis is a set of two (in 2D) or three (in 3D) basis vectors which are orthogonal (have 90° angles between them) and normal (have length equal to one). We will not be using non-orthogonal or non-normal bases.
Any other vector can be written as a linear combination of the basis vectors:
Components of a vector.
\[\vec{a} = a_1 \,\hat{\imath} + a_2 \,\hat{\jmath} + a_3 \,\hat{k}\]
The numbers $a_1, a_2, a_3$ are called the components of $\vec{a}$ in the $\,\hat{\imath}, \hat{\jmath}, \hat{k}$ basis. If we are in 2D then we will only have two components for a vector.
Writing a vector as the sum of scaled basis vectors. The scale factors are the components of the vector. Here $\vec{a} = 3\hat\imath + 2\hat\jmath$, so the components of $\vec{a}$ are $a_1 = 3$ and $a_2 = 2$.
We draw the symbol $\odot$ (arrow tip) to indicate a vector coming out of the page, and $\otimes$ (arrow fletching) to indicate an arrow going into the page.
Two standard arrangements of the basis vectors when working in 2D. Either $\hat\jmath$ is the vertical and $\hat{k}$ is out of the page, or $\hat{k}$ is the vertical and $\hat\jmath$ is into the page. In both cases $\hat\imath$ is horizontal.
Just as for position coordinates, we can write the vector components $3\hat\imath + 2\hat\jmath$ as the ordered list $(3, 2)$ if we know which basis we are using. Because we often will be using several bases simultaneously, we will generally write the components explicitly in the $3\hat\imath + 2\hat\jmath$ form.
The use of the letter $i,j,k$ for basis vectors is due to William Hamilton, who was motivated by thinking of basis vectors as extensions of the complex number $i$. This notation was popularized by the book Vector Analysis: A Text Book for the Use of Students of Mathematics and Physics Founded upon the Lectures of J. Willard Gibbs (1901), by E. B. Wilson. This book also introduced the use of bold letters to represent vectors.
Length of vectors
The length of a vector $\vec{a}$ is written either $\|\vec{a}\|$ or just plain $a$. The length can be computed using Pythagorus’ theorem:
Pythagorus' length formula.
\[a = \|\vec{a}\| = \sqrt{a_1^2 + a_2^2 + a_3^2}\]
First we prove Pythagorus' theorem for right-angle triangles. For side lengths $a$ and $b$ and hypotenuse $c$, the fact that $a^2 + b^2 = c^2$ can be seen graphically below, where the gray area is the same before and after the triangles are rotated in the animation:
Pythagorus' theorem immediately gives us vector lengths in 2D. To find the length of a vector in 3D we can use Pythagorus' theorem twice, as shown below. This gives the two right-triangle calculations: \[\begin{aligned} \ell^2 &= a_1^2 + a_2^2 \\ a^2 &= \ell^2 + a_3^2 = a_1^2 + a_2^2 + a_3^2. \end{aligned}\]
Click and drag to rotate.
Warning: Length must be computed in a single basis.
The Pythagorean length formula can only be used if all the components are written in a single orthonormal basis.
Computing the length of a vector using Pythagorus' theorem.
Some common integer vector lengths are $\vec{a} = 4\hat\imath + 3\hat\jmath$ (length $a = 5$) and $\vec{b} = 12\hat\imath + 5\hat\jmath$ (length $b = 13$).
Warning: Adding vectors does not add lengths.
If $\vec{c} = \vec{a} + \vec{b}$, then $\|\vec{c}\| \ne \|\vec{a}\| + \|\vec{b}\|$ unless $\vec{a}$ and $\vec{b}$ are parallel and in the same direction.
It will always be true, however, that $\|\vec{c}\| \le \|\vec{a}\| + \|\vec{b}\|$. This fact is known as the triangle inequality, for reasons that should be obvious.
Sets of three integers $a,b,c$ where $a^2 + b^2 = c^2$ are called Pythagorean triples. A long list of such triples is given on the Plimpton 322 clay tablet written by the ancient Babylonians around 1800 BCE, although it is unclear how they generated these numbers. Pythagorean triples lead to complex mathematics, including the curious patterns shown below and Fermat's Last Theorem.
Unit vectors
A unit vector is any vector with a length of one. We use the special over-hat notation $\hat{a}$ to indicate when a vector is a unit vector. Any non-zero vector $\vec{a}$ gives a unit vector $\hat{a}$ that specifies the direction of $\vec{a}$.
Normalization to unit vector.
\[\begin{aligned} \hat{a} = \frac{\vec{a}}{a}\end{aligned}\]
If we compute the length of $\hat{a}$ then we find: \[ \| \hat{a} \| = \left\| \frac{\vec{a}}{a} \right\| = \frac{\|\vec{a}\|}{a} = \frac{a}{a} = 1, \] so $\hat{a}$ is really a unit vector, and it is in the same direction as $\vec{a}$ as they differ only by a scalar factor.
Any vector can be written as the product of its length and direction:
Vector decomposition into length and direction.
\[\begin{aligned} \vec{a} = a \hat{a}\end{aligned}\]
This follows from rearranging #rvv-eu.
Three vectors and their decompositions into lengths and directional unit vectors.
Vectors and units
When using vectors to describe physical quantities we need to have the correct units associated with them, just as for position coordinates. Basis vectors such as $\hat\imath,\hat\jmath,\hat{k}$ have no units (they are also dimensionless), so the components must have units. For example, a velocity vector $\vec{v} = (4\hat\imath + 3\hat\jmath){\rm\ m/s}$ has components $v_1 = 4{\rm\ m/s}$ and $v_2 = 3{\rm\ m/s}$, which then multiply the dimensionless (and unit-less) basis vectors $\hat\imath$ and $\hat\jmath$. For convenience, when all components of a vector have the same units, we will often write the units just once at the end, so that all of the following expressions are equivalent: \[\begin{aligned} \vec{v} &= (4{\rm\ m/s})\,\hat\imath + (3{\rm\ m/s})\,\hat\jmath \\ &= (4\hat\imath + 3\hat\jmath){\rm\ m/s} \\ &= 4\hat\imath + 3\hat\jmath {\rm\ m/s}. \end{aligned}\]
When a vector is expressed as $\vec{a} = a \hat{a}$, decomposed into a length and direction, the length $a$ has units but the direction unit vector $\hat{a}$ has no units. The terminology here is slightly confusing, as unit vectors have no units. For example, if we calculate the length of $\vec{v}$ above we obtain: \[ v = \sqrt{v_1^2 + v_2^2} = \sqrt{(4{\rm\ m/s})^2 + (3{\rm\ m/s})^2} = \sqrt{25{\rm\ m^2/s^2}} = 5{\rm\ m/s}. \] Then the unit vector is \[ \hat{v} = \frac{\vec{v}}{v} = \frac{(4{\rm\ m/s})\,\hat\imath + (3{\rm\ m/s})\,\hat\jmath}{5{\rm\ m/s}} = 0.8\,\hat\imath + 0.6\,\hat\jmath. \]
Dot Product
The dot product (also called the inner product or scalar product) is defined by
Dot product from components.
\[\vec{a} \cdot \vec{b} = a_1 b_1 + a_2 b_2 + a_3 b_3\]
An alternative expression for the dot product can be given in terms of the lengths of the vectors and the angle between them:
Dot product from length/angle.
\[\vec{a} \cdot \vec{b} = a b \cos\theta\]
We will present a simple 2D proof here. A more complete proof in 3D uses the law of cosines.
Start with two vectors $\vec{a}$ and $\vec{b}$ with an angle $\theta$ between them, as shown below.
Observe that the angle $\theta$ between vectors $\vec{a}$ and $\vec{b}$ is the difference between the $\theta_a$ and $\theta_b$ from horizontal.
If we use the angle sum formula for cosine, we have
\[\begin{aligned} a b \cos\theta &= a b \cos(\theta_b - \theta_a) \\ &= a b (\cos\theta_b \cos\theta_a + \sin\theta_b \sin\theta_a) \end{aligned}\]
We now want to express the sine and cosine of $\theta_a$ and $\theta_b$ in terms of the of $\vec{a}$ and $\vec{b}$.
We re-arrange the expression so that we can use the fact that $a_1 = a \cos\theta_a$ and $a_2 = a \sin\theta_a$, and similarly for $\vec{b}$. This gives:
\[\begin{aligned} a b \cos\theta &= (a \cos\theta_a) (b \cos\theta_b) + (a \sin\theta_a) (b \sin\theta_b) \\ &= a_1 b_1 + a_2 b_2 \\ &= \vec{a} \cdot \vec{b} \end{aligned}\]
The fact that we can write the dot product in terms of components as well as in terms of lengths and angle is very helpful for calculating the length and angles of vectors from the component representations.
Length and angle from dot product.
\[\begin{aligned} a &= \sqrt{\vec{a} \cdot \vec{a}} \\ \cos\theta &= \frac{\vec{b} \cdot \vec{a}}{b a}\end{aligned}\]
The angle between $\vec{a}$ and itself is $\theta = 0$, so $\vec{a} \cdot \vec{a} = a^2 \cos 0 = a^2$, which gives the first equation for the length in terms of the dot product.
The second equation is a rearrangement of #rvv-ed.
If two vectors have zero dot product $\vec{a} \cdot \vec{b} = 0$ then they have an angle of $\theta = 90^\circ = \frac{\pi}{2}\rm\ rad$ between them and we say that the vectors are perpendicular, orthogonal, or normal to each other.
In 2D we can easily find a perpendicular vector by rotating $\vec{a}$ counterclockwise with the following equation.
Counterclockwise perpendicular vector in 2D.
\[\vec{a}^\perp = -a_2\,\hat\imath + a_1\hat\jmath\]
It is easy to check that $\vec{a}^\perp$ is always perpendicular to $\vec{a}$: \[\vec{a} \cdot \vec{a}^\perp = (a_1\,\hat\imath + a_2\,\hat\jmath) \cdot (-a_2\,\hat\imath + a_1\hat\jmath) = -a_1 a_2 + a_2 a_1 = 0.\] The fact that $\vec{a}^\perp$ is a $+90^\circ$ rotation of $\vec{a}$ is apparent from Figure #rvv-fn.
In 2D there are two perpendicular directions to a given vector $\vec{a}$, given by $\vec{a}^\perp$ and $-\vec{a}^\perp$. In 3D there is are many perpendicular vectors, and there is no simple formula like #rvv-en for 3D.
The perpendicular vector $\vec{a}^\perp$ is always a $+90^\circ$ rotation of $\vec{a}$.
Cross Product
The cross product can be defined in terms of components by:
Cross product in components.
\[ \vec{a} \times \vec{b} = (a_2 b_3 - a_3 b_2) \,\hat{\imath} + (a_3 b_1 - a_1 b_3) \,\hat{\jmath} + (a_1 b_2 - a_2 b_1) \,\hat{k} \]
It is sometimes more convenient to work with cross products of individual basis vectors, which are related as follows.
Cross products of basis vectors.
\[\begin{aligned} \hat\imath \times \hat\jmath &= \hat{k} & \hat\jmath \times \hat{k} &= \hat\imath & \hat{k} \times \hat\imath &= \hat\jmath \\ \hat\jmath \times \hat\imath &= -\hat{k} & \hat{k} \times \hat\jmath &= -\hat\imath & \hat\imath \times \hat{k} &= -\hat\jmath \\ \end{aligned}\]
Writing the basis vectors in terms of themselves gives the components: \[\begin{aligned} i_1 &= 1 & i_2 &= 0 & i_3 &= 0 \\ j_1 &= 0 & j_2 &= 1 & j_3 &= 0 \\ k_1 &= 0 & k_2 &= 0 & k_3 &= 1. \end{aligned}\] These values can now be substituted into the definition #rvv-ex. For example, \[\begin{aligned} \hat\imath \times \hat\jmath &= (i_2 j_3 - i_3 j_2) \,\hat{\imath} + (i_3 j_1 - i_1 j_3) \,\hat{\jmath} + (i_1 j_2 - i_2 j_1) \,\hat{k} \\ &= (0 \times 0 - 0 \times 1) \,\hat{\imath} + (0 \times 0 - 1 \times 0) \,\hat{\jmath} + (1 \times 1 - 0 \times 0) \,\hat{k} \\ &= \hat{k} \end{aligned}\] The other combinations can be computed similarly.
Warning: The cross product is not associative.
The cross product is not associative, meaning that in general \[\vec{a} \times (\vec{b} \times \vec{c}) \ne (\vec{a} \times \vec{b}) \times \vec{c}.\] For example, \[\begin{aligned} \hat{\imath} \times (\hat{\imath} \times \hat{\jmath}) &= \hat{\imath} \times \hat{k} = - \hat{\jmath} \\ (\hat{\imath} \times \hat{\imath}) \times \hat{\jmath} &= \vec{0} \times \hat{\jmath} = \vec{0}. \end{aligned}\] This means that we should never write an expression like \[\vec{a} \times \vec{b} \times \vec{c}\] because it is not clear in which order we should perform the cross products. Instead, if we have more than one cross product, we should always use parentheses to indicate the order.
Rather than using components, the cross product can be defined by specifying the length and direction of the resulting vector. The direction of $\vec{a} \times \vec{b}$ is orthogonal to both $\vec{a}$ and $\vec{b}$, with the direction given by the right-hand rule. The magnitude of the cross product is given by:
Cross product length.
\[\| \vec{a} \times \vec{b} \| = a b \sin\theta\]
Using Lagrange's identity we can calculate: \[\begin{aligned} \| \vec{a} \times \vec{b} \|^2 &= \|\vec{a}\|^2 \|\vec{b}\|^2 - (\vec{a} \cdot \vec{b})^2 \\ &= a^2 b^2 - (a b \cos\theta)^2 \\ &= a^2 b^2 (1 - \cos^2\theta) \\ &= a^2 b^2 \sin^2\theta. \end{aligned}\] Taking the square root of this expression gives the desired cross-product length formula.
This second form of the cross product definition can also be related to the area of a parallelogram.
The area of a parallelogram is the length of the base multiplied by the perpendicular height, which is also the magnitude of the cross product of the side vectors.
A useful special case of the cross product occurs when vector $\vec{a}$ is in the 2D $\hat\imath,\hat\jmath$ plane and the other vector is in the orthogonal $\hat{k}$ direction. In this case the cross product rotates $\vec{a}$ by $90^\circ$ counterclockwise to give the perpendicular vector $\vec{a}^\perp$, as follows.
Cross product of out-of-plane vector $\hat{k}$ with 2D vector $\vec{a} = a_1\,\hat\imath + a_2\,\hat\jmath$.
\[\hat{k} \times \vec{a} = \vec{a}^\perp\]
Using #rvv-eo we can compute: \[\begin{aligned} \hat{k} \times \vec{a} &= \hat{k} \times (a_1\,\hat\imath + a_2\,\hat\jmath) \\ & a_1 (\hat{k} \times \hat\imath) + a_2 (\hat{k} \times \hat\jmath) \\ &= a_1\,\hat\jmath - a_2\,\hat\imath \\ &= \vec{a}^\perp. \end{aligned}\]
Projection and complementary projection
The projection and complementary projection are:
Projection of $\vec{a}$ onto $\vec{b}$.
\[\operatorname{Proj}(\vec{a},\vec{b}) = (\vec{a} \cdot \hat{b}) \hat{b} = (a \cos\theta) \, \hat{b} \]
Complementary projection of $\vec{a}$ with respect to $\vec{b}$.
\[\begin{aligned} \operatorname{Comp}(\vec{a}, \vec{b}) &= \vec{a} - \operatorname{Proj}(\vec{a}, \vec{b}) = \vec{a} - (\vec{a} \cdot \hat{b}) \hat{b} \\ \left\| \operatorname{Comp}(\vec{a}, \vec{b}) \right\| &= a \sin\theta \end{aligned}\]
Adding the projection and the complementary projection of a vector just give the same vector again, as we can see on the figure below.
Projection of $\vec{a}$ onto $\vec{b}$ and the complementary projection.
As we see in the diagram above, the complementary projection is orthogonal to the reference vector:
Complementary projection is orthogonal to the reference.
\[\operatorname{Comp}(\vec{a}, \vec{b}) \cdot \vec{b} = 0\]
Using the definitions of the complementary projection rvv-em and projection rvv-ep, we compute: \[\begin{aligned} \operatorname{Comp}(\vec{a}, \vec{b}) \cdot \vec{b} &= \Big(\vec{a} - (\vec{a} \cdot \hat{b}) \hat{b}\Big) \cdot \vec{b} \\ &= \vec{a} \cdot \vec{b} - (\vec{a} \cdot \hat{b}) (\hat{b} \cdot \vec{b}) \\ &= a b \cos\theta - (a\cos\theta) b \\ &= 0. \end{aligned}\]
Changing bases
To change the basis that a vector is written in, we need to know how the basis vectors are related. We do this by writing one set of basis vectors in terms of the other basis vectors. If we want to change from $\hat\imath,\hat\jmath$ to $\hat{u},\hat{v}$, then we need to write $\hat\imath,\hat\jmath$ in terms of $\hat{u},\hat{v}$ and then substitute the expressions.
Example: Basis change.
For example, if we have $\vec{a} = 3\,\hat{\imath} + 2\,\hat{\jmath}$ and we want to write this in the $\,\hat{u}, \,\hat{v}$ basis, then we need to know $\,\hat{\imath}, \,\hat{\jmath}$ in terms of $\,\hat{u}, \,\hat{v}$.
From above we see that: \[\begin{aligned} \hat{\imath} &= \cos\theta \, \hat{u} - \sin\theta \, \hat{v} = \frac{1}{\sqrt{2}} \,\hat{u} - \frac{1}{\sqrt{2}} \,\hat{v} \\ \hat{\jmath} &= \sin\theta \, \hat{u} + \cos\theta \, \hat{v} = \frac{1}{\sqrt{2}} \,\hat{u} + \frac{1}{\sqrt{2}} \,\hat{v}.\end{aligned}\]
Then we can substitute and re-arrange:
\[\begin{aligned} \vec{a} &= 3\,\hat{\imath} + 2\,\hat{\jmath} \\ &= 3\left(\frac{1}{\sqrt{2}} \,\hat{u} - \frac{1}{\sqrt{2}} \,\hat{v}\right) + 2\left(\frac{1}{\sqrt{2}} \,\hat{u} + \frac{1}{\sqrt{2}} \,\hat{v}\right) \\ &= \left(\frac{3}{\sqrt{2}} + \frac{2}{\sqrt{2}} \right) \,\hat{u} + \left(-\frac{3}{\sqrt{2}} + \frac{2}{\sqrt{2}} \right) \,\hat{v} \\ &= \frac{5}{\sqrt{2}} \,\hat{u} - \frac{1}{\sqrt{2}} \,\hat{v}.\end{aligned}\]
If we want to convert back the other way then we would need to know $\,\hat{u}, \,\hat{v}$ in terms of $\,\hat{\imath}, \,\hat{\jmath}$. We can find this by solving for $\,\hat{u}, \,\hat{v}$ above, giving: \[\begin{aligned} \hat{u} &= \cos\theta \, \hat\imath + \sin\theta \, \hat\jmath = \frac{1}{\sqrt{2}} \,\hat\imath + \frac{1}{\sqrt{2}} \,\hat\jmath \\ \hat{v} &= -\sin\theta \, \hat\imath + \cos\theta \, \hat\jmath = -\frac{1}{\sqrt{2}} \,\hat\imath + \frac{1}{\sqrt{2}} \,\hat\jmath.\end{aligned}\]
We can also write the general expressions for basis change, as below.
Change of basis formulas.
\[\begin{aligned} \vec{a} &= a_i \, \hat\imath + a_j \, \hat\jmath + a_k \, \hat{k} & \vec{a} &= a_u \, \hat{u} + a_v \, \hat{v} + a_w \, \hat{w} \\[1em] a_i &= a_u u_i + a_v v_i + a_w w_i & a_u &= a_i i_u + a_j j_u + a_k k_u \\ a_j &= a_u u_j + a_v v_j + a_w w_j & a_v &= a_i i_v + a_j j_v + a_k k_v \\ a_k &= a_u u_k + a_v v_k + a_w w_k & a_w &= a_i i_w + a_j j_w + a_k k_w \end{aligned}\]
We will derive the first set of equations (the second set are derived similarly). The vector $\vec{a}$ can be written in both the $\hat\imath,\hat\jmath,\hat{k}$ and $\hat{u},\hat{v},\hat{w}$ bases: \[\begin{aligned} \vec{a} &= a_i \hat\imath + a_j \hat\jmath + a_k \hat{k} & \vec{a} &= a_u \hat{u} + a_v \hat{v} + a_w \hat{w}. \end{aligned}\]
We can write each $\hat{u},\hat{v},\hat{w}$ basis vector in terms of the $\hat\imath,\hat\jmath,\hat{k}$ basis: \[\begin{aligned} \hat{u} &= u_i \hat\imath + u_j \hat\jmath + u_k \hat{k} \\ \hat{v} &= v_i \hat\imath + v_j \hat\jmath + v_k \hat{k} \\ \hat{w} &= w_i \hat\imath + w_j \hat\jmath + w_k \hat{k}. \end{aligned}\] Substituting these expressions into $\vec{a}$ gives: \[\begin{aligned} \vec{a} &= a_u \hat{u} + a_v \hat{v} + a_w \hat{w} \\ &= a_u (u_i \hat\imath + u_j \hat\jmath + u_k \hat{k}) + a_v (v_i \hat\imath + v_j \hat\jmath + v_k \hat{k}) + a_w (w_i \hat\imath + w_j \hat\jmath + w_k \hat{k}) \\ &= (a_u u_i + a_v v_i + a_w w_i) \hat\imath + (a_u u_j + a_v v_j + a_w w_j) \hat\jmath + (a_u u_k + a_v v_k + a_w w_k) \hat{k} \\ &= a_i \hat\imath + a_j \hat\jmath + a_k \hat{k}. \end{aligned}\] Comparing the last two lines gives the component formulas.
In 2D the change between two orthonormal bases is a rotation by an angle $\theta$, resulting in the change of basis expression below.
Change of basis formula in 2D.
\[\begin{aligned} \vec{a} &= a_i \, \hat\imath + a_j \, \hat\jmath & \vec{a} &= a_u \, \hat{u} + a_v \, \hat{v} \\[1em] a_i &= \cos\theta \, a_u - \sin\theta \, a_v & a_u &= \cos\theta \, a_i + \sin\theta \, a_j \\ a_j &= \sin\theta \, a_u + \cos\theta \, a_v & a_v &= -\sin\theta \, a_i + \cos\theta \, a_j \end{aligned}\]
Elementary geometry gives the relationships between the basis vectors: \[\begin{aligned} \hat\imath &= \cos\theta \, \hat{u} - \sin\theta \, \hat{v} & \hat{u} &= \cos\theta \, \hat\imath + \sin\theta \, \hat\jmath \\ \hat\jmath &= \sin\theta \, \hat{u} + \cos\theta \, \hat{v} & \hat{v} &= -\sin\theta \, \hat\imath + \cos\theta \, \hat\jmath. \end{aligned}\] Thus we have the components: \[\begin{aligned} i_u &= \cos\theta & i_v &= -\sin\theta & u_i &= \cos\theta & u_j &= \sin\theta \\ j_u &= \sin\theta & j_v &= \cos\theta & v_i &= -\sin\theta & v_j &= \cos\theta. \end{aligned}\] Substituting these into #rvv-eg and ignoring the third components gives the desired expressions.
Vector expressions are true no matter which basis we write the vectors in, even if they are written in different bases.
Example: Vector addition in different bases.
Adding $\vec{a}$ and $\vec{b}$ to get the result $\vec{c}$ is a well-defined operation even before any basis is used, so it cannot depend on the basis chosen. As we see below, we can do the calculation in either the $\hat\imath,\hat\jmath$ or $\hat{u},\hat{v}$ basis.
Show components: none $\hat\imath,\hat\jmath$ $\hat{u},\hat{v}$ mixed
\[\begin{aligned} \vec{c} &= \vec{a} + \vec{b} \\ &= (3\hat\imath + 2\hat\jmath) + (3\hat\imath - \hat\jmath) \\ &= 6\hat\imath + \hat\jmath \\ \vec{c} &= \vec{a} + \vec{b} \\ &= (3.5\hat{u} - 0.7\hat{v}) + (1.4\hat{u} - 2.8\hat{v}) \\ &= 4.9\hat{u} - 3.5\hat{v} \\ \vec{c} &= \vec{a} + \vec{b} \\ &= (3\hat\imath + 2\hat\jmath) + (1.4\hat{u} - 2.8\hat{v}) \\ &= 3\hat\imath - 2.8\hat{v} + 2\hat\jmath + 1.4\hat{u}. \end{aligned}\] The component order in the mixed expression is arbitrary.
Example Problem: Cross product in different bases.
\[\begin{aligned} \vec{a} &= 3\hat\imath + 2\hat\jmath = 3.5\hat{u} - 0.7\hat{v} & a &= \sqrt{3^2 + 2^2} = 3.6 \\ \vec{b} &= 3\hat\imath - \hat\jmath = 1.4\hat{u} - 2.8\hat{v} & b &= \sqrt{3^2 + 1^2} = 3.2 \end{aligned}\]
Show components: none $\hat\imath,\hat\jmath$ $\hat{u},\hat{v}$
Compute the cross product $\vec{a} \times \vec{b}$ using: (1) the angle formula #rvv-el; (2) the component formula #rvv-ex with $\vec{a},\vec{b}$ both in the $\hat\imath,\hat\jmath$ basis, both in the $\hat{u},\hat{v}$ basis, and with $\vec{a}$ in the $\hat\imath,\hat\jmath$ basis and $\vec{b}$ in the $\hat{u},\hat{v}$ basis.
(1) The dot product is $\vec{a} \cdot \vec{b} = 8$ and the vector lengths are $a = 3.6$ and $b = 3.2$, so $\cos\theta = 8 / (ab)$ and $\theta \approx 45^\circ$. Now using #rvv-el gives: \[\begin{aligned} \vec{a} \times \vec{b} &= a b \sin\theta ( -\hat{k}) \\ &= -9 \hat{k}. \end{aligned}\] (2) Using the component formula #rvv-ex gives: \[\begin{aligned} (3\hat\imath + 2\hat\jmath) \times (3\hat\imath - \hat\jmath) &= -3 \hat\imath \times \hat\jmath + 6 \hat\jmath \times \hat\imath \\ &= -3 \hat{k} - 6 \hat{k} \\ &= -9 \hat{k} \\ (3.5 \hat{u} - 0.7 \hat{v}) \times (1.4 \hat{u} - 2.8 \hat{v}) &= - (3.5 \times 2.8) \hat{u} \times \hat{v} - (0.7 \times 1.4) \hat{v} \times \hat{u} \\ &= -10 \hat{k} + \hat{k} \\ &= -9 \hat{k} \\ (3\hat\imath + 2\hat\jmath) \times (1.4\hat{u} - 2.8\hat{v}) &= (3 \times 1.4) \hat\imath \times \hat{u} - (3 \times 2.8) \hat\imath \times \hat{v} \\ &\quad + (2 \times 1.4) \hat\jmath \times \hat{u} - (2 \times 2.8) \hat\jmath \times \hat{v} \\ &= 4.2 \sin 45^\circ \, \hat{k} - 8.5 \sin 135^\circ \, \hat{k} \\ &\quad - 2.8 \sin 45^\circ \, \hat{k} - 5.7 \sin 45^\circ \, \hat{k} \\ &= - 9 \hat{k}. \end{aligned}\]
Example: Dot product is independent of basis.
Equation #rvv-ed makes it clear that the dot product does not depend on which basis we use to write $\vec{a}$ and $\vec{b}$, so long as we use the same orthonormal basis for both of them. This is because the dot product only depends on the lengths and angle between the vectors, which are real physical quantities that don’t change just because we use a different basis.
However, we can also verify directly that the component equation #rvv-es for the dot product does not depend on which basis we use. To keep the algebra short, we will only do this in 2D.
We compute the dot product using #rvv-es in the $\hat\imath,\hat\jmath$ basis and substitute in the change-of-basis expressions #rvv-eg, giving:
\[\begin{aligned} \vec{a} \cdot \vec{b} &= a_i b_i + a_j b_j \\ &= (u_i a_u + v_i a_v ) (u_i b_u + v_i b_v) + (u_j a_u + v_j a_v) (u_j b_u + v_j b_v) \\ &= (u_i^2 + u_j^2) a_u b_u + (v_i^2 + v_j^2) a_v b_v + (u_i v_i + u_j b_j) (a_u b_v + a_v b_u) \\ &= \| \hat{u} \|^2 a_u b_u + \| \hat{v} \|^2 a_v b_v + (\hat{u} \cdot \hat{v}) (a_u b_v + a_v b_u) \\ &= a_u b_u + a_v b_v. \end{aligned}\]
To get the last line we used the fact that $\hat{u}$ and $\hat{v}$ form an orthornormal basis, so that they each have length 1 (that is, $\|\hat{u}\| = \|\hat{v}\| = 1$) and they are orthogonal (that is, $\hat{u} \cdot \hat{v} = 0$).
This then shows that
\[\begin{aligned} a_i b_i + a_j b_j &= a_u b_u + a_v b_v \end{aligned}\]
and so it doesn’t matter which basis we use to compute $\vec{a} \cdot \vec{b}$, so long as we use an orthonormal basis.
Time-dependent vectors and bases
We can have dynamic vectors which change over time, so their components also change. Alternatively, we can have a fixed vector but dynamic basis. Because we are using orthonormal bases, the only type of basis change that can occur is rigid rotational motion of the basis.
Movement: vector basis
A time-varying vector or basis. Whether the vector or the basis changes with time, in either case the components are also changing with time.


| Homepage | Future Goals | Projects | Resume | Gen Ed Reflection | Iowa State Reflection | Ethics paper |
Hello, and welcome to my website. My name is Rob Barton. The Navigation bar can take you to several different documents and write ups of what I've done at Iowa State University


Point marker: Pick between various shapes to use as markers for each point.
Point marker size, Point marker is scaled: Customize the size of the point marker, and choose whether the marker changes size when you zoom in or out on the image.
Point number size, Point number is scaled: Customize the size of the numbers next to the point markers.
Point colors: Customize point colors. Click the text field to make a color picker appear, then pick a color. You may also type in a color code directly.
Show machine annotations: Turn label suggestions on or off. Suggestions will appear in the text fields of each point you haven't labeled yet. If you change this setting, the change will take effect the next time you enter the annotation tool. (Note: If your image hasn't been machine-annotated yet, then you won't see label suggestions either way.)
If you change any settings, you must click the "Save settings" button to save those settings for next time. If no settings have been changed, it'll say "Settings saved".


You won’t just find your ideal hotel on www.trivago.in, but you can also discover suggestions for your next holiday. How? trivago lists the Top Deals as well as the most popular destinations. If you’re looking for your next dream holiday or you’re interested in the top destinations for Indians, you’ll find it on trivago. Additionally, our search engine technology uncovers unique deals on booking sites around the world that travellers would never find without trivago.
A look at our Top Destinations lists can provide ideas for your next vacation.
trivago regularly publishes ranking lists of the most popular travel destinations. Here, all of the search inquiries from travellers for overnight hotel stays on our homepage are evaluated. For our Top City Destinations, we collect the searches for an (extended) weekend. The duration here is not more than four days. Our Top Holiday Destinations are evaluated using requests that are at least one week long.
In the city destination rankings, multiple British cities appear like Jaipur, Chennai, Mysore, and Pune. Other popular cities in India for domestic travel include Shimla or Dharamsala.
For destinations abroad, Indians enjoy cities like Berlin, Paris, Kuala Lumpur, London, and Edinburgh.


Hi, my name is Vivek Pandey. I look approximately like this:
I am a Computer Engineer, with amateur interests in Mathematics and Chess.
Here are some links.


Man reveals how his sister has been emotionally abusive to him
by Damilola IsmailA man has shared some text messages he received from his sister who was being verbally and emotionally abusive to him.
He took to his social media page to share some of the abusive texts his sister sent him, he is asking if this was right or not as he wanted to put an end to it.
Read some of the messages his older sister sent to him below.
 Useless irresponsible ingrate. Always eating like a starved dog. Try me next time.
 Result no show. Funny how you fool won’t have respect of greeting as mates we are or do anything useful which I don’t care about but food items disappear without remnants.  Useless irresponsible ingrate. Always eating like a starved dog. Try me next time.
Follow us on Facebook – @Lailasnews; Twitter – @LailaIjeoma for updates


The {@link oajrc.RestClient.Builder} class does not itself provide FORM-based
authentication since there is no standard way of providing such support.
Typically, to perform FORM-based or other types of authentication, you'll want to create your own
subclass of {@link oajrc.RestClient.Builder} and override the
{@link oajrc.RestClient.Builder#createHttpClient()} method to provide an
authenticated client.
The following example shows an implementation of a client that performs FORM-based authentication against
the IBM Jazz platform.
| /**
| * Constructor.
| */
| public JazzRestClient.Builder(URI jazzUri, String user, String pw) throws IOException {
| ...
| }
|
| /**
| * Override the createHttpClient() method to return an authenticated client.
| */
| @Override /* RestClient.Builder */
| protected CloseableHttpClient createHttpClient() throws Exception {
| CloseableHttpClient client = super.createHttpClient();
| formBasedAuthenticate(client);
| visitAuthenticatedURL(client);
| return client;
| }
|
| /*
| * Performs form-based authentication against the Jazz server.
| */
| private void formBasedAuthenticate(HttpClient client) throws IOException {
|
| URI uri2 = jazzUri.resolve("j_security_check");
| HttpPost request = new HttpPost(uri2);
| request.setConfig(RequestConfig.custom().setRedirectsEnabled(false).build());
|
| // Charset must explicitly be set to UTF-8 to handle user/pw with non-ascii characters.
| request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
|
| List<NameValuePair> params = AList.of(
| BasicNameValuePair.of("j_username"", user),
| BasicNameValuePair.of("j_password", pw)
| );
| request.setEntity(new UrlEncodedFormEntity(params));
|
| HttpResponse response = client.execute(request);
| try {
| int rc = response.getStatusLine().getStatusCode();
|
| Header authMsg = response.getFirstHeader("X-com-ibm-team-repository-web-auth-msg");
| if (authMsg != null)
| throw new IOException(authMsg.getValue());
|
| // The form auth request should always respond with a 200 ok or 302 redirect code
| if (rc == SC_MOVED_TEMPORARILY) {
| if (response.getFirstHeader("Location").getValue().isPattern("^.*/auth/authfailed.*$"))
| throw new IOException("Invalid credentials.");
| } else if (rc != SC_OK) {
| throw new IOException("Unexpected HTTP status: " + rc);
| }
| } finally {
| EntityUtils.consume(response.getEntity());
| }
| }
|
| /*
| * This is needed for Tomcat because it responds with SC_BAD_REQUEST when the j_security_check URL is visited before an
| * authenticated URL has been visited. This same URL must also be visited after authenticating with j_security_check
| * otherwise tomcat will not consider the session authenticated
| */
| private int visitAuthenticatedURL(HttpClient httpClient) throws IOException {
| HttpGet authenticatedURL = new HttpGet(jazzUri.resolve("authenticated/identity"));
| HttpResponse response = httpClient.execute(authenticatedURL);
| try {
| return response.getStatusLine().getStatusCode();
| } finally {
| EntityUtils.consume(response.getEntity());
| }
| }


Instructions
Use this tool to translate English phrases into gibberish that takes the guise of a different language, selected by you. Parameters function as follows:
- Influences: Select one or more real languages to influence your translation. You must select at least one language.
- More of: Enter up to 6 characters to increase their frequency in the translation.
- Less of: Enter up to 6 characters to decrease their frequency in the translation.
- None of: Enter up to 6 characters that will not be included in the translation. Depending on the characters and selected language(s), this may render translation impossible.
- Enter text: Type the phrase you want translated here. If you preface a word with the "@" symbol (e.g. "@Douglas"), the word will not be translated.
The designer's intended application of this tool is for use in generating fantasy languages. An example is listed below.
Dwarvish:
- Influences: Danish, German, Swedish
- More of: B, R
- Less of: Z
"I am a Dwarf and I'm digging a hole." becomes "Ola ka li Ben nu Ard'en arla in ile."


Enterprise mobile application development and management across channels and platforms
PhoneGap Build takes the pain out of compiling PhoneGap apps. Get app-store ready apps without the headache of maintaining native SDKs. Our PhoneGap Build service does the work for you by compiling in the cloud.
From first-timers to long-time veterans, we’ve got your dev needs covered. The developer portal is the place to find guides, documentation and tutorials.


Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
W
WAIT_KEY_PRESS
- Static variable in interface eu.irreality.age.
ARSPConstants
waitForMundoToLoad()
- Method in class eu.irreality.age.
SwingAetheriaGameLoader
waitKeyPress()
- Method in class eu.irreality.age.
AGEClientProxy
waitKeyPress()
- Method in class eu.irreality.age.
ColoredSwingClient
waitKeyPress()
- Method in interface eu.irreality.age.
InputOutputClient
waitKeyPress()
- Method in class eu.irreality.age.
NullInputOutputClient
waitKeyPress()
- Method in class eu.irreality.age.
Player
waitKeyPress()
- Method in class eu.irreality.age.
SimpleTelnetClientProxy
waitUntilConnected()
- Method in class eu.irreality.age.
IrcDccChatSocket
WaveScaler
- Class in
micromod
The WaveScaler class reduces the amplitude of audio.
WaveScaler()
- Constructor for class micromod.
WaveScaler
WaveShaper
- Class in
micromod
The WaveShaper simply provides a method for distorting (usually compressing/limiting) audio.
WaveShaper()
- Constructor for class micromod.
WaveShaper
Weapon
- Class in
eu.irreality.age
Weapon(World, String)
- Constructor for class eu.irreality.age.
Weapon
Weapon(World, Node)
- Constructor for class eu.irreality.age.
Weapon
Weapon()
- Constructor for class eu.irreality.age.
Weapon
Wearable
- Class in
eu.irreality.age
Wearable(World, String)
- Constructor for class eu.irreality.age.
Wearable
Wearable(World, Node)
- Constructor for class eu.irreality.age.
Wearable
Wearable()
- Constructor for class eu.irreality.age.
Wearable
WF_RANDOM
- Static variable in class micromod.
ProTrackerLFO
WF_SAWDN
- Static variable in class micromod.
ProTrackerLFO
WF_SINUS
- Static variable in class micromod.
ProTrackerLFO
WF_SQUARE
- Static variable in class micromod.
ProTrackerLFO
WILL
- Static variable in interface eu.irreality.age.
TelnetConstants
windowClosing(WindowEvent)
- Method in class eu.irreality.age.
SwingCerrarInterna
WONT
- Static variable in interface eu.irreality.age.
TelnetConstants
World
- Class in
eu.irreality.age
World(String, InputOutputClient, boolean)
- Constructor for class eu.irreality.age.
World
Toma la información sobre el mundo del fichero de módulo.
WORLD_DIR
- Static variable in interface eu.irreality.age.
ARSPConstants
WORLD_PATH
- Static variable in interface eu.irreality.age.filemanagement.
PathConstants
WRITE
- Static variable in interface eu.irreality.age.
ARSPConstants
write(byte[], int)
- Method in class micromod.output.
JavaSoundOutputDevice
write(byte[], int)
- Method in class micromod.output.
OSSOutputDevice
write(short[], short[], int)
- Method in class micromod.output.
PCM16StreamOutputDevice
Write length frames of 16 bit stereo audio.
write(byte[], int)
- Method in interface micromod.output.
StreamOutputDevice
Write length bytes of audio to the output device This method should return only when all of the audio has been written to the device, except if the device is stopped or paused, in which case the method should return immediately.
WRITE_TITLE
- Static variable in interface eu.irreality.age.
ARSPConstants
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X


Ocean [ax67], ocean, in Crystal Sea
Last updated Turn #131
Ocean [ax67], ocean, in Crystal Sea
------------------------------------------------------------------------
24: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails, arrived
24: from Ocean [ax68], owner:
24: Dorothy [v1b], Pen, with one peasant, 94 sailors
24: Apollo [b5e], Imperial Empire, with 63 lt. xbowmen,
24: accompanied by:
24: Lutra [a4w], Imperial Empire, with 13 paladins, 40 pikemen
24: Hera [g3f], Imperial Empire, with 20 soldiers, 40 pikemen
24: Thor [r4g], Imperial Empire, with ten soldiers, 39 pikemen
24: Eos [a2t], Imperial Empire, with ten workers, 48 lt. xbowmen
24: Khaki Blazer [w4j], Imperial Empire, with 17 soldiers,
24: seven pikemen, 35 lt. foot
24: Banian [e7n], Imperial Empire, count, the High Priest of the
24: Church of Eres [151], with five soldiers, ten angels
25: Pleasure Sloop [v5n], ship, 30 hulls, 1 rowing port, 90 sails,
25: departed for Ocean [ax66].
Routes leaving Ocean:
North, desert, to Painted Desert [aw67], Imperia, 2 days
East, to Ocean [ax68], 6 days
South, to Ocean [ay67], 6 days
West, to Ocean [ax66], 6 days


Simple jQuery plug-in that interacts with a time-based input, converting it into dropdowns - useful for mobile versions.
A few examples / tests
Default 12-hour behaviour
15 minute intervals
15 minute intervals, no seconds
Default 24-hour behaviour


2 writes to _next
System.Management.Automation (2)
engine\ComInterop\InteropServices\ComEventsSink.cs (2)
43
sink.
_next
= sinks;
79
current.
_next
= sink._next;
6 references to _next
System.Management.Automation (6)
engine\ComInterop\InteropServices\ComEventsSink.cs (6)
35
sink = sink.
_next
;
52
sinks = sinks.
_next
;
67
toReturn = sinks.
_next
;
72
while (current != null && current.
_next
!= sink)
74
current = current.
_next
;
79
current._next = sink.
_next
;


SQL procedure result set
To describe result set of SQL procedure used ResultSetAttribute with parameters: Alias - procedure alias, Name - result set name used inside application code, when result set is not mapped to procedure parameter set it to "" (empty string), Order - optional, order number of result set (required to procedures returns multiple result sets), ResultType - optional, mapped type of result set, default is attributed class itself, IsDefault - optional, result set is default - mapped to attributed class (used when procedure returns multiple result sets), default is false.


${siteTitle}
Microorganism Search Engine
A quick and robust tool for microorganism identification
Sign Up
Sign In


{% extends "coderedcms/pages/base.html" %}
{% load static %}
{% block frontend_assets %}
{# Leave this section blank since we are pulling in Bootstrap/theme assets through Sass in custom.css #}
{% endblock %}
{% block coderedcms_assets %}
{# Leave this section blank since we are pulling in coderedcms assets through Sass in custom.css #}
{% endblock %}
{% block custom_assets %}
{# Add your custom CSS here #}
{% endblock %}
{% block frontend_scripts %}
{# Load Bootstrap scripts distributed by coderedcms #}
{% endblock %}
{% block custom_scripts %}
{# Add your custom JavaScript here, or delete the line below if you don't need any #}
{% endblock %}


Today, about 87% of smartphones have internet browsing capabilities in the palm of many peoples hands. Access to the internet and it's resources has never been so convinient. Now that society has reached this point of easy access, it is critical that businesses are Inbound Marketing themselves correctly as the competition rises.
Inbound Marketing is the practice of investing in your own businesses website to be easily identified, approachable, and connected with a specific audience to potentially convert them into leads.
Surprisingly enough, succesfull Inbound Marketing is quite feasible in today's technologically advanced culture. We have found the best marketing results when we establish a connection with our clients. It is our purpose to identify your goals, and reach out to whichever audience you appeal to, and bring them in and show you how awesome your business really is.
Appealing to an audience is the first way we get their attention. Internet Marketing is mostly driven by appeal. We offer clients a full Website Overhaul if they do not have the online appeal necesarry to drive success to their business.
A vast majority of our Inbound Marketing campaign is taken up by interacting with your audience. This includes building a positive reputation through Social Media. This is when leads begin to be funnel and business begins to grow.
By the end of an Inbound Marketing campaign, our clients will have the confidence and business to no longer have to rely on our help. Although it's almost like saying goodbye, we advise all marketing strategies always are here to help.
Let's get started on your Inbound Marketing campaign today!
The information provided will give us an idea of what website design will be best for our business.


2 overrides of ConnectAsync
System.Management.Automation (2)
engine\hostifaces\ConnectionBase.cs (1)
467
public override void
ConnectAsync
()
engine\remoting\client\remoterunspace.cs (1)
887
public override void
ConnectAsync
()
2 references to ConnectAsync
System.Management.Automation (2)
engine\remoting\commands\ConnectPSSession.cs (2)
531
_session.Runspace.
ConnectAsync
();
540
_session.Runspace.
ConnectAsync
();


| cloudhomework/__init__.py |
0 |
0 |
0 |
100% |
| cloudhomework/api_models/__init__.py |
4 |
0 |
0 |
100% |
| cloudhomework/api_models/base.py |
6 |
0 |
0 |
100% |
| cloudhomework/api_models/course.py |
14 |
0 |
0 |
100% |
| cloudhomework/api_models/homework.py |
24 |
0 |
0 |
100% |
| cloudhomework/api_models/media.py |
9 |
0 |
0 |
100% |
| cloudhomework/api_models/user.py |
15 |
0 |
0 |
100% |
| cloudhomework/api_tests/__init__.py |
4 |
0 |
0 |
100% |
| cloudhomework/api_tests/auth_tests.py |
110 |
0 |
0 |
100% |
| cloudhomework/api_tests/base.py |
45 |
0 |
0 |
100% |
| cloudhomework/api_tests/media_tests.py |
38 |
0 |
0 |
100% |
| cloudhomework/api_tests/student_tests/__init__.py |
3 |
0 |
0 |
100% |
| cloudhomework/api_tests/student_tests/course_tests.py |
91 |
0 |
0 |
100% |
| cloudhomework/api_tests/student_tests/homework_tests.py |
98 |
0 |
0 |
100% |
| cloudhomework/api_tests/student_tests/submit_tests.py |
65 |
0 |
0 |
100% |
| cloudhomework/api_tests/teacher_tests/__init__.py |
3 |
0 |
0 |
100% |
| cloudhomework/api_tests/teacher_tests/course_tests.py |
90 |
0 |
0 |
100% |
| cloudhomework/api_tests/teacher_tests/homework_tests.py |
127 |
0 |
0 |
100% |
| cloudhomework/api_tests/teacher_tests/submit_tests.py |
87 |
0 |
0 |
100% |
| cloudhomework/api_views/__init__.py |
3 |
0 |
0 |
100% |
| cloudhomework/api_views/auth_views.py |
69 |
4 |
0 |
94% |
| cloudhomework/api_views/media_views.py |
23 |
0 |
0 |
100% |
| cloudhomework/api_views/student_views/__init__.py |
3 |
0 |
0 |
100% |
| cloudhomework/api_views/student_views/course_views.py |
62 |
0 |
0 |
100% |
| cloudhomework/api_views/student_views/filters.py |
16 |
0 |
0 |
100% |
| cloudhomework/api_views/student_views/homework_views.py |
36 |
0 |
0 |
100% |
| cloudhomework/api_views/student_views/submit_views.py |
33 |
0 |
0 |
100% |
| cloudhomework/api_views/teacher_views/__init__.py |
3 |
0 |
0 |
100% |
| cloudhomework/api_views/teacher_views/course_views.py |
35 |
1 |
0 |
97% |
| cloudhomework/api_views/teacher_views/filters.py |
23 |
0 |
0 |
100% |
| cloudhomework/api_views/teacher_views/homework_views.py |
28 |
0 |
0 |
100% |
| cloudhomework/api_views/teacher_views/submit_views.py |
35 |
1 |
0 |
97% |
| cloudhomework/exception.py |
5 |
0 |
0 |
100% |
| cloudhomework/migrations/0001_initial.py |
12 |
0 |
0 |
100% |
| cloudhomework/migrations/0002_auto_20210105_0013.py |
4 |
0 |
0 |
100% |
| cloudhomework/migrations/0003_auto_20210107_1648.py |
5 |
0 |
0 |
100% |
| cloudhomework/migrations/0004_homework_answer.py |
5 |
0 |
0 |
100% |
| cloudhomework/migrations/0005_auto_20210108_1124.py |
5 |
0 |
0 |
100% |
| cloudhomework/migrations/__init__.py |
0 |
0 |
0 |
100% |
| cloudhomework/models.py |
2 |
0 |
0 |
100% |
| cloudhomework/permissions.py |
7 |
0 |
0 |
100% |
| cloudhomework/serializers/__init__.py |
2 |
0 |
0 |
100% |
| cloudhomework/serializers/auth_serializers.py |
22 |
0 |
0 |
100% |
| cloudhomework/serializers/base.py |
18 |
1 |
0 |
94% |
| cloudhomework/serializers/course_serializers.py |
35 |
0 |
0 |
100% |
| cloudhomework/serializers/homework_serializers.py |
72 |
2 |
0 |
97% |
| cloudhomework/serializers/media_serializers.py |
35 |
0 |
0 |
100% |
| cloudhomework/serializers/user_serializers.py |
37 |
0 |
0 |
100% |
| cloudhomework/tests.py |
11 |
0 |
0 |
100% |
| cloudhomework/views.py |
2 |
2 |
0 |
0% |
| cloudhomework_backend/__init__.py |
0 |
0 |
0 |
100% |
| cloudhomework_backend/authentications.py |
22 |
1 |
0 |
95% |
| cloudhomework_backend/db_router.py |
11 |
11 |
0 |
0% |
| cloudhomework_backend/environ_settings/__init__.py |
0 |
0 |
0 |
100% |
| cloudhomework_backend/environ_settings/ci_settings.py |
11 |
0 |
0 |
100% |
| cloudhomework_backend/environ_settings/cluster_settings.py |
15 |
0 |
0 |
100% |
| cloudhomework_backend/environ_settings/general_settings.py |
12 |
0 |
0 |
100% |
| cloudhomework_backend/permissions.py |
9 |
9 |
0 |
0% |
| cloudhomework_backend/router.py |
6 |
0 |
0 |
100% |
| cloudhomework_backend/serializers.py |
44 |
6 |
0 |
86% |
| cloudhomework_backend/settings.py |
37 |
0 |
0 |
100% |
| cloudhomework_backend/tests.py |
29 |
0 |
0 |
100% |
| cloudhomework_backend/token.py |
22 |
0 |
0 |
100% |
| cloudhomework_backend/urls.py |
22 |
0 |
0 |
100% |
| cloudhomework_backend/utils.py |
12 |
2 |
0 |
83% |
| cloudhomework_backend/views.py |
38 |
3 |
0 |
92% |


I built this site using a "Serverless" CI/CD pipeline in AWS. The domain is managed by AWS's Route 53 while CloudFront hosts the site. The portfolio files are stored in a S3 bucket which were mainly written in ReactJS and BABEL. AWS's CodeBuild grabs the code from my GitHub and automatically pushes it into production using AWS's CodePipeline combined with a Lambda function. Once the code reaches the S3 bucket a SNS(Simple Notification Service) sends an email stating whether the code was deployed successfully or not.


Home
Services
About Us
Subsidiaries
Clients
Contact Us
Available Services :
Shipping
Export
Import
Image 4
Image 5


Computer Science and Mathematics major, Cybersecurity and programming enthusiast, Pianist and composer


My name is Sam Zuckerman. I may be reached at Github, Twitter , or LinkedIn
I work as a full stack developer analyst using various database and web technologies to make data analysis more efficient. I work with the entire pipeline, from data engineering and database design to front end UX.
Comments
comments powered by Disqus


07 February 1997
Disease Outbreak Reported
In the outbreak of meningitis which started in November 1997, 1,235 cases with 151 deaths (CFR 60.4%) had occurred up to 3 February.
On 7 February, an interagency appeal was issued to raise over US$ 6 million needed to respond to the threat of epidemic meningitis in countries at risk in the African continent. The agencies behind the appeal are WHO, UNICEF, Médecins Sans Frontières, and the Federation of the Red Cross and Red Crescent Societies. The appeal is to establish a fund that will ensure the purchase and distribution of vaccine, antibiotics and autodestructible injection material for treatment during the 1997 meningitis season in Africa (see also Press Release WHO/11 of 5 February). WHO has advanced US$ 1 million to ensure the availability of vaccine pending the outcome of the Appeal.


Despite Kashmir anger, China's Xi invites India's Modi to visit again next year
BEIJING (Reuters) - Chinese President Xi Jinping has invited Indian Prime Minister Narendra Modi to visit China again next year after two informal summits between the men in each other’s countries, despite deep disagreement over the disputed Kashmir region.
Xi and Modi met in southern India last month, following their first informal summit in China last year as the two sought to put their often deeply strained relationship back on track.
But a little more than two weeks later, the two countries fell into a diplomatic dispute over Kashmir after India formally revoked the state’s constitutional autonomy and split it into two federal territories in a bid to integrate it fully into India.
Meeting in Brazil on the sidelines of a meeting the BRICS nations - Brazil, Russia, India, China and South Africa - Xi told Modi he was willing to maintain close communication “to guide a better and more stable development of China-India relations.”
The two should “increase political mutual trust, properly manage differences and expand practical cooperation so as to guide a better and more stable development of bilateral ties,” Xi said, according to a Chinese Foreign Ministry statement released on Thursday.
“2020 will be here soon, and I hope China-India relations will achieve new and greater development in the new year,” the statement quoted Xi as saying. “I welcome you to come to China for another meeting next year.”
China’s statement made no mention of Kashmir.


"MIXED MULTITUDE "(Exodus 12:38), a class who accompanied the Israelites as they journeyed from Rameses to Succoth, the first stage of the Exodus. These were probably miscellaneous hangers-on to the Hebrews, whether Egyptians of the lower orders, or the remains of the Hyksos (see EGYPT; MOSES), as some think. The same thing happened on the return of the Jews from Babylon (Nehemiah 13:3), a “mixed multitude” accompanied them so far.
"MIXED MULTITUDE "(Exodus 12:38), a class who accompanied the Israelites as they journeyed from Rameses to Succoth, the first stage of the Exodus. These were probably miscellaneous hangers-on to the Hebrews, whether Egyptians of the lower orders, or the remains of the Hyksos (see EGYPT; MOSES), as some think. The same thing happened on the return of the Jews from Babylon (Nehemiah 13:3), a “mixed multitude” accompanied them so far.


Click on a term and its definition will appear!
is a high-level, dynamic, untyped, and interpreted programming language. Alongside HTML and CSS, it is one of the three essential technologies of World Wide Web content production; the majority of websites employ it and it is supported by all modern Web browsers without plug-ins.


| |
"Captain Fantastic"
od 11.08.2016 | Comedy, Drama, Romance | 118 min
In the forests of the Pacific Northwest, a father devoted to raising his six kids with a rigorous physical and intellectual education is forced to leave his paradise and enter the world, challenging his idea of what it means to be a parent.
|
| |
"Inferno"
13.10.2016 | Action, Adventure, Crime | 121 min
When Robert Langdon wakes up in an Italian hospital with amnesia, he teams up with Dr. Sienna Brooks, and together they must race across Europe against the clock to foil a deadly global plot.
|
|
"Nerve"
od 26.07.2016 | Adventure, Crime, Thriller | 96 min
Adventure, Crime, Thriller
A high school senior finds herself immersed in an online game of truth or dare, where her every move starts to become manipulated by an anonymous community of "watchers."
|
|
"The secret life of pets"
od 11.08.2016 | Animation, Adventure, Comedy | 87 min
The Secret Life of Pets premiered at the Annecy International Animated Film Festival on June 16, 2016 and was released to theatres in the United States on July 8, 2016 by Universal Pictures.
The quiet life of a terrier named Max is upended when his owner takes in Duke, a stray whom Max instantly dislikes.
|
|
|
"X-Men: Apocalypse"
od 19.05.2016 | Action, Adventure, Sci-Fi | 144 min
After the re-emergence of the world's first mutant, world-destroyer Apocalypse, the X-Men must unite to defeat his extinction level plan.
|
|
"Suicide Squad"
od 04.08.2016 | Action, Adventure, Fantasy | 123 min
A secret government agency recruits some of the most dangerous incarcerated super-villains to form a defensive task force. Their first mission: save the world from the apocalypse.
|
|
"The legend of Tarzan"
01.07.2016 | Action, Adventure, Drama | 110 min
Tarzan, having acclimated to life in London, is called back to his former home in the jungle to investigate the activities at a mining encampment.
|


|
AbstractChainedListenableFutureTest
|
|
AbstractExecutionThreadServiceTest
|
|
AbstractFutureTest
|
|
AbstractIdleServiceTest
|
|
AbstractListeningExecutorServiceTest
|
|
AbstractScheduledServiceTest
|
|
AbstractServiceTest
|
|
AdjustablePolicy
|
|
AsyncSettableFutureTest
|
|
AtomicDoubleArrayTest
|
|
AtomicDoubleTest
|
|
AtomicLongMapTest
|
|
AtomicLongMapTest_gwt
|
|
AtomicsTest
|
|
BadFuture
|
|
Bar
|
|
BarChild
|
|
CallableOne
|
|
CallablesTest
|
|
ChainingFunction
|
|
CheckedBarrier
|
|
CheckedCallable
|
|
CheckedInterruptedCallable
|
|
CheckedInterruptedRunnable
|
|
CheckedRunnable
|
|
ComposeFunction
|
|
Counter
|
|
CountingRunnable
|
|
CycleDetectingLockFactoryTest
|
|
DefaultService
|
|
ExceptionWithBadConstructor
|
|
ExceptionWithGoodAndBadConstructor
|
|
ExceptionWithManyConstructors
|
|
ExceptionWithPrivateConstructor
|
|
ExceptionWithSomePrivateConstructors
|
|
ExceptionWithWrongTypesConstructor
|
|
ExceptionWithoutThrowableConstructor
|
|
ExecutionListTest
|
|
ExecutorSpy
|
|
FailRunService
|
|
FailStartService
|
|
FailStopService
|
|
FailToForward
|
|
FakeExecutor
|
|
FakeOp
|
|
FakeService
|
|
FakeTicker
|
|
Foo
|
|
FooChild
|
|
ForwardToDelegate
|
|
ForwardingBlockingQueueTest
|
|
ForwardingCheckedFutureTest
|
|
ForwardingExecutorServiceTest
|
|
ForwardingFutureTest
|
|
ForwardingListenableFutureTest
|
|
ForwardingListeningExecutorServiceTest
|
|
ForwardingObjectTester
|
|
ForwardingObjectTesterTest
|
|
FunctionSpy
|
|
FunctionalTest
|
|
FuturesTest
|
|
FuturesTransformAsyncFunctionTest
|
|
FuturesTransformTest
|
|
Holder
|
|
Interruptenator
|
|
InterruptibleFuture
|
|
InterruptionUtil
|
|
JSR166TestCase
|
|
JdkFutureAdaptersTest
|
|
ListenableFutureTaskTest
|
|
ListenableFutureTester
|
|
ListenerCallQueueTest
|
|
LockingThread
|
|
LongPossiblyInterruptedRunnable
|
|
ManualSwitchedService
|
|
MapperFunction
|
|
MediumInterruptedRunnable
|
|
MediumPossiblyInterruptedRunnable
|
|
MediumRunnable
|
|
Merger
|
|
MockExecutor
|
|
MockRunnable
|
|
MoreExecutorsTest
|
|
MyError
|
|
MyException
|
|
MyFuture
|
|
MyOrder
|
|
MyRuntimeException
|
|
NPETask
|
|
NoOpCallable
|
|
NoOpDelayedSerivce
|
|
NoOpREHandler
|
|
NoOpRunnable
|
|
NoOpService
|
|
NoOpThreadedService
|
|
NonListenableSettableFuture
|
|
NullService
|
|
OtherOrder
|
|
OtherThrowable
|
|
PackageSanityTests
|
|
RateLimiterTest
|
|
RecordingListener
|
|
RecordingRunnable
|
|
RunFailingService
|
|
RunThrowingService
|
|
RunnableShouldThrow
|
|
RunnablesTest
|
|
RunnablesTest_gwt
|
|
RuntimeExceptionThrowingFuture
|
|
Sample
|
|
SampleException
|
|
SampleImpl
|
|
SchedulerTest
|
|
SerializingExecutorTest
|
|
ServiceManagerTest
|
|
ServiceTest
|
|
SettableFutureTest
|
|
ShortInterruptedRunnable
|
|
ShortRunnable
|
|
SimpleThreadFactory
|
|
SimpleTimeLimiterTest
|
|
SingleCallListener
|
|
SmallCallable
|
|
SmallPossiblyInterruptedRunnable
|
|
SmallRunnable
|
|
SnappyShutdownService
|
|
StartFailingService
|
|
StartThrowingService
|
|
StopFailingService
|
|
StopThrowingService
|
|
StringTask
|
|
StripedTest
|
|
TestAbstractScheduledCustomService
|
|
TestApplication
|
|
TestCallable
|
|
TestCustomScheduler
|
|
TestException
|
|
TestExecutor
|
|
TestFailingCustomScheduledService
|
|
TestFuture
|
|
TestFutureBatch
|
|
TestListeningExecutorService
|
|
TestModuleEntryPoint
|
|
TestRunnable
|
|
TestService
|
|
ThreadFactoryBuilderTest
|
|
ThreadShouldThrow
|
|
ThreadedService
|
|
ThrowOnRunService
|
|
ThrowOnShutDown
|
|
ThrowOnStartUpService
|
|
ThrowingRunnable
|
|
TimeoutOnStartUp
|
|
TrackedCallable
|
|
TrackedLongRunnable
|
|
TrackedMediumRunnable
|
|
TrackedNoOpRunnable
|
|
TrackedRunnable
|
|
TrackedShortRunnable
|
|
TrackedSmallRunnable
|
|
TwoArgConstructorException
|
|
TwoArgConstructorRuntimeException
|
|
UncaughtExceptionHandlersTest
|
|
WaitOnRunService
|
|
WrappedCallable
|
|
WrappedRunnable
|
|
WrappingExecutorServiceTest
|
|
WrappingScheduledExecutorServiceTest
|


Resolution:
Slope:
Cone:
Mountains:
Cities:
Territories:
Erosion:
Sea Level:
Names:
New Names
New Map
Download PNG
Download SVG
Generating...
View on github


TransError ImpexExportToMetafile( Handle xlatLib, VMFileHandle xferFile, FileHandle metafile, dword xferFormat, word arg1, word arg2, MemHandle * errString);
This routine is used by translation libraries. The routine calls an intermediate translation library to finish translating a given file into the GEOS Metafile format.
Include: impex.goh
Warnings: If the routine does not fail with condition TE_CUSTOM,
*errString
may contain a random value. Do not use
*errString
if the routine did not return TE_CUSTOM.
void ImpexImportExportCompleted( ImpexTranslationParams * itParams);
The application should send this message when it is finished importing or exporting data. The routine will send an appropriate acknowledgment message to the ImportControl or ExportControl object, depending on the settings of
ITP_impexOD
and ITP
_returnMsg
.
If the application has just finished an import, it should not have changed the
ImpexTranslationParams
structure. If it had just finished preparing data for export, it should have set the ITP
_transferVMChain
field to contain the handle of the head of the VM chain.
Warnings: This routine, in essence, informs the ImportControl or ExportControl object that the application is finished with the transfer file. The ImportControl will respond by destroying the transfer file; the ExportControl will call the appropriate translation library to produce an output file. Therefore, an application should not call this routine until it is absolutely finished with the transfer file.
TransError ImpexExportToMetafile( Handle xlatLib, VMFileHandle xferFile, FileHandle metafile, dword * xferFormat, word arg1, word arg2, MemHandle * errString);
This routine is used by translation libraries. The routine calls an intermediate translation library to translate a given file from the GEOS Metafile format to an intermediate format.
Include: impex.goh
Warnings: If the routine does not fail with condition TE_CUSTOM,
*errString
may contain a random value. Do not use
*errString
if the routine did not return TE_CUSTOM.
void InitFileCommit(void);
This routine commits any changes to the GEOS.INI file, removing and replacing its stored backup. It ensures that no other threads are working on the file during the commit operation.
Include: initfile.h
void InitFileDeleteCategory( const char *category);
This routine deletes the specified category, along with all its entries, from the GEOS.INI file. Pass it the following:
category
Include: initfile.h
void InitFileDeleteEntry( const char *category, const char *key);
This routine deletes an entry in the GEOS.INI file. Pass it the following:
category
key
Include: initfile.h
void InitFileDeleteStringSection( const char * category, const char * key, word stringNum);
This routine deletes the specified string section from the given blob in the GEOS.INI file. Pass it the following:
category
key
stringNum
Include: initfile.h


A ZLSound module object which represents a single sound sample. Sound samples are preloaded into memory in order to allow instant playback. They can also be looped by setting the loopIn and loopOut properties.
Plays the sound sample instantly. You must set the 'media' property prior to calling this method.
Plays the sound sample, looping it timesToRepeat times after the inital playback. Note that timesToRepeat can be set to large values (1000 or more) without any worries, as the function uses an efficient method to achieve seemless looping. You can stop the looping sound at any time by calling the stop() method.
Note: You must set the 'media' property prior to calling this method.
Stops the currently playing sound.
Sets the name of the WAVE file to play. Setting this property actually loads the file into memory and prepares the sound buffer for playback. It does not play the file. Note that changing this property may clear the looping points.
Cues the loop-in point of the sample. The value is expressed in number of audio frames, so if your sample is using 44100hz sampling rate, for example, setting this property 22050 will cue the loop-out point to second 0.5. Changing the value of this property has no effect on the currently playing sound, it will only affect subsequent calls to the loop() method.
Cues the loop-out point of the sample. The value is expressed in number of audio frames, so if your sample is using 44100hz sampling rate, for example, setting this property 88200 will cue the loop-out point to second 2.0. Changing the value of this property has no effect on the currently playing sound, it will only affect subsequent calls to the loop() method.
Controls the panning of the sample. A value of 0.0 will center the sample, -1.0 is far left and 1.0 is far right. Note that stereo samples do not support panning.
Controls the pitch of the sample. A value of 1.0 will leave the pitch unchanged. The sample will play faster and with an increased pitch for greater values, and slower with a lower pitch for smaller values.
Examples: a value of 2.0 will play the sample twice the original speed with a pitch two times higher, which a value of 0.5 will play the sample half the original speed with a lower pitch.
True if the sound sample is currently playing.
Controls the volume of the sample. The valid values are in the range [0, 1.0], where higher values represent a higher volume.
Returns the duration of the media in seconds.
Uri Shaked<EMAIL_ADDRESS>Copyright(c) 2011 by Uri Shaked. All Rights Reserved. Please see the LICENSE file included in the distribution for further details.


THE PALLBEARER A film review by Michael John Legeros Copyright 1996 Michael John Legeros
(Mirimax) Directed by Matt Reeves Written by Jason Katims and Matt Reeves Cast David Schwimmer, Gwyneth Paltrow, Michael Rapaport, Barbara Hershey MPAA Rating "PG-13" Running Time 94 minutes Reviewed at Carmike Cinemas, Raleigh, NC (4MAY96)
==
David Schwimmer (from the television series "Friends") stars as a sensitive (and slightly neurotic) single guy who gets more than he expected from the grieving mother (Barbara Hershey) of a classmate he can't remember. Hello Mrs. Robinson! Though quite cute as a romantic comedy, THE PALLBEARER is paced like a funeral march. The characters act, react, and interact at half-speed, making for one *excruciatingly* long sit. (And what's with the dreary lighting?) Co-writer/director Matt Reeves brings some snap to the story's midsection; the film briefly comes to life when our hero attempts to resolve his feelings for *another* classmate (a very appealing Gwyneth Paltrow). By this time, though, most viewers will have either fled or fallen asleep.
Grade: C-
--
Mike Legeros - Raleigh, NC
<EMAIL_ADDRESS>(h) -<EMAIL_ADDRESS>(w)
Visit me in MOVIE HELL
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% extends "base.html" %} {% block content %}
We've sent a sign in link to {{ email }}. To finalize the email address change, please log in using that link.


Mick Clifford Podcast: Is Ireland still a warm house for immigrants?
Immigration has entered the political arena again this week with comments from Wexford by-election candidate Verona Murphy about asylum seekers. She suggested that some might need to be “reprogrammed” and that children as young as three could be manipulated by ISIS. Ms Murphy subsequently apologised for the comments.
But are attitudes to immigrants, which for so long were perceived as being broadly welcoming, actually changing? And is the system of Direct Provision the best or most humane way to process asylum seekers, particularly in light of protests in various towns about proposed centres in recent months?
This week Mick Clifford spoke to the chief executive of the Immigrant Council of Ireland, Brian Killoran, who offered some unique insights into immigration, the plight of asylum seekers and the efforts of a small group within society to portray immigrants in the most negative light possible.


--- title: "Employment" layout: "default" published: true ---
Red Butte Garden seeks to connect people with plants and the beauty of living landscapes. Our staff is a community that understands, values, protects, and is enriched by the world of plants.
Whether you are working outside with our awesome Horticulture staff, or helping the garden grow behind the scenes, you will get to work in a beautiful environment with the best people around.
If you love nature as much as we do and want to be part of an awesome team, apply today!
$12.02 to $17.00 an hour
40 hours per week, M-F 8:30 am to 5 pm; some evenings and weekends required.
Red Butte Garden is seeking a Youth Education Coordinator. Under the direction of the Youth and Family Programs Manager, the Youth Education Coordinator is responsible for administering, developing, promoting, and evaluating youth education programs for Red Butte Garden.
Associate’s degree in a related field, or equivalency, plus two years of related experience required; ability to use logic and reasoning to prioritize tasks; computer skills including word processing, spreadsheet software, and/or database software preferred; demonstrated human relation and effective communication skills also required.
Bachelor’s degree in a related field may be preferred.
Applicants must demonstrate the potential ability to perform the essential functions of the job as outlined in the position description.
$9.62 to $12.00 an hour
29 hours per week, schedule varies; M-F, occasional weekend or evening
Red Butte Garden is looking for an energetic individual to help in our Development department. Assists Garden concert donors in person or over the telephone. Utilizes RBG’s database to process gifts and reports. Provides support during outdoor concerts for the Concert Donor Club members, processes tickets and season packages, and provides general office support.
High school diploma or equivalency required. One year full-time customer service experience or equivalency, demonstrated human relation and effective communication skills also required.
Applicants must demonstrate the potential ability to perform the essential functions of the job as outlined in the position description.
$10.50 an hour
Variable 29 hours per week, some weekend and evenings
Red Butte Garden is currently accepting applications for our Visitor Services Staff. We are seeking friendly, out going, energetic individuals who are willing to provide top-notch service to our guests and customers at the Red Butte Garden Visitor Center. If you are a “people-person” that would enjoy working with the public on a day to day basis, we would like to meet you. As a representative of the Garden you have the opportunity to make a great first impression with first time visitors while expanding our relationships with our Garden visitors and growing member base.
Six months cashiering experience, basic mathematical skills, and demonstrated human relations and effective communication skills required. Word processing and spreadsheet skills may be preferred for certain positions.
Applicants must demonstrate the potential ability to perform the essential functions of the job as outlined in the position description.
The ideal candidate will have customer service and cash handling experience, hospitality experience, and possess basic computer skills. Duties include greeting and assisting customers in the Gift Shop, selling concert tickets, assisting with events and maintaining cleanliness of the facilities. This is a part time seasonal position the hours and shifts will vary. Some evening and weekend work is required.
$11.00 to $11.50 an hour
20 - 29 hours per week, weekend and evening work is required – hours and shifts will vary
Red Butte Garden is currently accepting applications for our Private Event Staff. We are seeking professional, energetic individuals to assist in the set-up and take-down of weddings, corporate parties and other private events. This position involves coordination with vendors, event planners and other Red Butte Garden departments while providing top-quality guest services to event attendees and clients.
Receives, greets and directs visitors attending private events. Ideal applicants should have at least six months experience in customer service or event implementation, strong human relation and communication skills, a commitment to provide excellent customer service and possess basic computer skills.
High school diploma or equivalency required. One year full-time customer service experience or equivalency, demonstrated human relation and effective communication skills also required.
Applicants must demonstrate the potential ability to perform the essential functions of the job as outlined in the position description.
$10.50 - $11.00 an hour
19 hrs per week - work schedule varies, weekend shift required
The Horticulture Department at Red Butte Garden is looking for a part-time gardener for our greenhouse team. We are seeking someone who wants to work with and learn more about plants and gardening, and enjoys working both indoors in a greenhouse and working outdoors. Would you enjoy learning more about gardening, and working with people who are passionate about plants and nature? We strongly prefer people who are committed to the role of a Botanical Garden and want to be a part of a great team!
Nine months professional work experience with the responsibility for five or more acres of grounds, or equivalency; a valid Utah vehicle operator’s license required; and demonstrated human relations and effective communication skills required.
$10.00 - $12.00 an hour
Monday thru Thursday, occasional Friday, and weekend
Red Butte Garden is seeking a part-time Education Assistant. Join a great team and gain valuable experience planning and teaching school programs at the Garden. This is a part-time, non-benefitted, seasonal position. Work schedule is 20-29 hours per week, (Monday through Thursday) depending on the season, with occasional Friday, weekend, and evening work required. Position runs through October 2017.
This is an entry-level position. Training will be provided. Must demonstrate an interest in learning about child development and guidance; a willingness to take direction from the assigned teacher; willing to obtain a Bureau of Criminal Investigation (BCI) background check, first aid training are required. Demonstrated human relation and effective human relations skills are also required.
$10.50 - $11.25 an hour
Must be able to commit to working 16-29 hrs/per week beginning March 1st. Exact schedule will be coordinated with supervisor upon hire. May require a weekend shift and/or occasional evening shift. Season typically runs through mid/late November.
The Horticulture Department at Red Butte Garden is seeking seasonal gardeners who want to work with and learn more about plants and gardening. Do you like nature or being outdoors? Would you enjoy learning more about gardening, and working with people who are passionate about plants and nature? We strongly prefer people who are committed to the role of a Botanical Garden and want to be a part of a great team!
A valid Utah vehicle operator’s license required; and demonstrated human relations and effective communication skills required.


Home
Cam
(current)
Connect
Disconnect
acrn/ACRN1/report_VM1
acrn/ACRN1/set_VM1
Subscribe
acrn/ACRN1/report_VM1
acrn/ACRN1/set_VM1
Publish
Connection Status:
Topic Status: Subscribed at


@* * Copyright 2019 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import config.AppConfig @import views.helpers.Utils.bold @()(implicit request: Request[_], messages: Messages, appConfig: AppConfig) @main_template(title = messages("startPage.title"), bodyClasses = None) {
@messages("startPage.p.youWillNeed")
@messages("startPage.paragraph2")
@Html(messages("startPage.paragraph3", bold(messages("startPage.paragraph3.bold"))))
@Html(messages("startPage.paragraph4", bold(messages("startPage.paragraph4.bold"))))


We built an IRC client from the ground up using AngularJS and jQuery.
You can get the same experience as the Web Client without ever needing to visit the website.
All of our projects are open source, which means you can always help contribute to the project easily.


THE PIT AND THE PENDULUM A film review by Ken Johnson Copyright 1991 Ken Johnson
97 min, Not Rated, Horror, 1991 Director: Stuart Gordon Cast: Lance Henriksen, Rona De Ricci, Jonathan Fuller, Frances Bay, Mark Margolis, Jeffrey Combs, Stephen Lee, Tom Towles, William J. Norris, Carolyn Purdy-Gordon, Oliver Reed
The film is set in the 1400s during the Spanish Inquisition. Baker Fuller and his wife De Ricci make bread to sell at the frying of a witch, Purdy-Gordon. They are against the burning of people as witches so they plan to stay just long enough to sell their bread. They get stuck in a crowd and are forced to watch the burning. After the witch is fried the guards bring out her son and whip him. De Ricci runs up to the guards and tell them to stop beating the boy, and the guards put her in prison as a witch. Fuller went to the leader of the Spanish Inquisition, Henricksen, and asks if he would free De Ricci because she is not a witch. Henricksen says that she will stand trial and that will determine whether she is a witch or not.
Instead of being a slasher film about some maniac on the loose killing nubile co-eds, like most modern horror films, THE PIT AND THE PENDULUM is more of a horror of the tortures humans do to themselves. However the film has nothing to do with Edgar Allan Poe's story, which it is supposedly based on. The video cassette box states on it "Edgar Allan Poe's THE PIT AND THE PENDULUM"; it should just state "THE PIT AND THE PENDULUM." There is however a scene with Oliver Reed that is quite close to "The Cask of the Amontillado." The pit and the pendulum, which played such an important role in Edgar's story, take a back seat spot in the film. The film could have been much better if given, maybe, a better cast and if it followed Edgar Allan Poe's short story more. The whole part of the short story where the man is hooked onto the ground and the pendulum comes swinging closer and closer is put into a small couple of minutes scene. The rest of the film is based on Rona De Ricci's time spent in the dungeons and her husband Fuller trying to save her. All of this wasn't even hinted at in Edgar Allan Poe's short story.
This film is part of a series of produced by Harry Alan Towers that are coming over from Italy. The only other films that I know of that are also coming over to the U.S. from Italy are BURIED ALIVE (which is already in video stores) and THE HOUSE OF USHER. There are probably others. This film (and the other two listed above) are direct-to-video releases.
For an enjoyability rating the highest I can give it is a three (out of a 0 - 5 scale). I was very disappointed in the film considering the amount of time it took to be able to check it out of the video store, it was out every time I went in. THE PIT AND THE PENDULUM is not rated but contains graphic violence and female nudity. If you have an empty night and you're in the mood for a "different" horror film you might give this one a glance.
.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Chefs in the Kitchen
August 2, 2015
Shereef's fireside chat exposed me to a lot more about the unique culture which initially drew me towards DBC.
 It's nothing like traditional schooling, and there's strong focus on self development and empathy. At DBC nothing is promised, you get out what you put in, and we're all seen as chefs in a kitchen. Working together, sharing recipes, taste testing, and creating a great dish together is what DBC is all about. The emphasis on well roundedness ensures that no one will be leaving here a mere code monkey, but a true developer with the passion to always be learning. I'm extremely excited to flourish in this unique environment while learning more about myself and development that ever before.


@@include("components/head.html",{ "title": "前端静态资源 CDN" })
@@include('components/header.html')
@@loop("components/list-with-icon.html", "/data/cdn/list-with-icon.json")


Hi, I'm Ignacio
Frontend Developer
My job is to create the identity of your brand on the web
Contact MeAbout Me
My introductionLorem ipsum dolor sit amet consectetur adipisicing elit. Excepturi nostrum cum ullam voluptas hic esse, deserunt eius perferendis modi inventore ipsa
08+
Years
experience
experience
08+
Years
experience
experience
08+
Years
experience
experience
Background
My journey so far
Lorem impsum
2020 - 2021


Looking for life advice? Look to the Ancient Chinese
I completed my undergraduate degree this past June. Like many new grads preparing to work in industry, I feel nervous about making a smooth transition from being a student to being a working-class young adult. Where do I go from here? How do I live a good life?
Last night, I found some reassurance in a quote by a Chinese official in the 清 (Qīng) Dynasty.
The story starts with a typical post-dinner discussion with my dad. We enjoy sipping some tea and talking, usually about parallels between Chinese history with the modern society. On the topic of life advice, he told me an incredible quote by 左宗棠 (pinyin: Zuǒ Zōngtáng):
发上等愿，结中等缘，享下等福
择高处立，寻平处住，向宽处行。
左宗棠 was a Chinese statesman and military leader in the Qing Dynasty, known also as the advisor of 曾国藩 (pinyin: Zēng Guófān). While some commonly associate 左宗棠 with General Tso’s Chicken, he is also very famous for this quote, which accurately captures his philosophy on life. In fact, many successful Chinese people adore this quote. Alibaba Chairman 马云 (pinyin: Mǎ Yún) used it multiple times in his speeches, and Chinese business magnet 李嘉诚 (pinyin: Lǐ Jiāchéng) even has a calligraphy version in his office.
Loosely translated, 左宗棠’s quote is the following:
Make grand wishes, find balance with friends, enjoy pleasure modestly
Stand on high grounds, live on peaceful grounds, walk towards wider grounds.
I will go over each phrase in detail, then conclude with some observations on the parallelism of 左宗棠’s quote.
Note: these are merely me interpretations. The beauty of 左宗棠’s quote is that it offers different interpretations based on our life experiences. I hope to look back at this a couple years from now, and see if my understanding has changed.
发上等愿 - While “Make grand wishes” is the literal translation, there is a lot more going on in this four-character phrase. 愿 means wishes, but it also means goals and missions. Similar to how Obama’s 2008 campaign slogan is a grand goal of “Change”, we too must strive to set out great expectations for ourselves.
结中等缘 - This phrase is all about friendship. We are often surrounded by people who we think are our friends, but in reality, they are trying to use us to advance themselves. We should be friends with people whom we respect, look up to, and ultimately learn from. 中等 means in the middle; friendship is about finding a middle/achieving a balance, and not taking advantages of each other.
享下等福 - 享 means to enjoy, and in this case, the phrase calls for everyone to be humble when enjoying the 福 (luxury, blessings) they are given.
择高处立 - 高 means high; 立 means stand; This phrase calls for all of us to stand on higher grounds. When we reach the peak of a mountain, we can see not only farther, but also where we came from, and where we need to go. Furthermore, we are also elevated mentally. Seeing the world from the top of a mountain is vastly different from viewing the world from the bottom. We have a clearer vision of our abilities and our potential for accomplishments when we stand taller.
寻平处住 - 平 means flat in a literal sense, but it also means peace. In this case, 左宗棠 argues that while we are encouraged to go out there and explore this unpredictable and chaotic world, we should always return to a peaceful environment we call our home. Home is where we can rest, reflect, and recover, so it should be peaceful.
向宽处行 - 宽 means wide, but on a higher level, it means to have an open mind. A mind that is constantly expanding is like a road that grows wider and wider. Even in English, we have idioms such as “Don’t go down a narrow road”, implying that we should not limit ourselves to a corner. The quote ends with this phrase, indicating that we should knowingly expand our path of opportunities while moving forward in life.
In addition to the fantastic ideas presented, 左宗棠’s quote contains details that my English translations simply do not do justice. Observe the parallelism in the original quote:
[line 1] 发上等愿，结中等缘，享下等福
[line 2] 择高处立，寻平处住，向宽处行
In the first line, “上, 中, 下” are all the second characters; however, they are also all prepositions, meaning top, middle, and bottom. In the second line, “高, 平, 宽” are all adjectives, meaning high, flat, wide.
In addition, the first character of each phrase, “发, 结, 享, 择, 寻, 向”, are ALL Chinese verb characters, continuing the parallelism. More examples include “上等, 中等, 下等” in line 1, which are all phrases that describe rank, and “高处, 平处, 宽处” in line 2, which are all phrases that describe location. The last character of each phrase in line 1,“愿，缘，福”, are all nouns, while the last character of each phrase in line 2, “立，住，行”, are all verbs.
All of these observations just goes to show the beautiful patterns and intricacies present in these two lines.
In 24 characters, 左宗棠 summarized his philosophy on how to live life; he did it with such expressiveness, elegance, and eloquence. This quote really exemplifies the beauty of the Chinese language, but I am sure there is much more to discover.
Thank you, 左宗棠, for your life advice.


I've tried red rocks over the years 3 times now.
The first time was at a weekend-long festival at a university to celebrate spring. The setting was very comfortable and interesting, and red rocks were sprinkled over diggidy dankiddy, crystal-laden, light green budz. The redrocks came from a long chain of friend-of-a-friends. They were kind of crystally red... light in color, and cracked easily with a fingernail.
Smoked, the red rocks were very sweet and tasty, and I noted how soft the smoke felt. Even with a bubbler, it can be tough on my throat, but this was sweet and soft. The rocks started melting right away when the flame hit them, and kind of sunk into the bud, making a glazed layer that stayed lit a little after a hit. They were sweet with a distinct wildflowery flavor.
As for the effects... The setting, as I said, was festive, and I was in for a good high no-matter what. I had a normal marijuana high right away, then I felt intense relaxation, and sunk back comfortably into the couch. Everyone seemed to enjoy how comfortable they felt. I definitely felt a bit of a body buzz that wasn't normal from weed, and was more happy than usual. Overall, I had a warm and cozy time.
The next time I had red rocks, was a couple years later. My friend told me he had them, and was psyched after smoking some the night before. I was really pumped myself. This time I had bong hits of mj and rr. The red rocks were a little darker, but pretty much the same. I recognized the flavor right away, and they burned the same way I remembered. It was really weird, though. I got stoned, but nothing else. I felt that nothing was happening any different than usual, and I was really bummed. He felt the same way, and I guess realized that the night before was pretty much the same for him... just a pot high.
So, let down, we thought maybe quantity would make a difference. We put huge chunks of the stuff on bonghits and in my bowl, and easily finished 6 g of it. Still, no effects. The whole thing was a bust. For weeks after that, I started to hate the damn taste that just wouldn't go away from my bowl.
Now, still a couple years later, I happened upon some red rocks. This time I figured why not try again. The first experience was so much better than the second one, that I felt it was worth a shot. This time, the flavor is a little different. Less sweet, and perhaps a tinge of mustiness to it. The psychoactive effects are subtler than the first time, but present as opposed to the second time. I would say that the pleasant state of mind is present again, and that I feel a little more focused than I normally would be just stoned. Normally I seem to get wrapped up in complex thoughts in my head when I'm stoned, but with these red rocks added, I feel somehow more material... more in the room. It is also a little more calming... normally I burn through tons of cigarettes, but am now not as antsy for them. Another effect that has presented itself each night that I've tested the rocks is that I am colder than usual. I tend to get a bit chilled from them, but that wears off.
I've read all the experience posts at erowid to date on red rocks, and I see common threads with my own in many. I think that the source of red rocks is probably in no way opium, but that its name can merely be accepted to mean that it smokes like opium. I could believe it if I found out that red rocks was actually incense. It does have an incense-like fragrance, and it does stay lit, as you would desire from incense. In my mind, it at least has a few pleasant qualities (2/3 of the time) and makes for an interesting variation once in a while from a plain old bowl of weed. On the other hand, I don't know what it is, and won't pursue it much further. That may seem sensical to some and stupid to others that I'd try it in the first place without knowing what it is, but I ask those... how much do you really know for sure anyway? ;)
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.


Since past 7+ years, I have been working on various layers of software products served in SaaS form, with some amazingly passionate product teams across the globe including VMware and Mojo Networks (now Arista Networks).
Member of development team working on products:
Member of multiple product teams working on cloud-based web applications. Responsibilities included scalability, performance improvement and security measures in web apps, in addition to developing new features in the product.
Single-handedly developed a Java web application for internal use of the organization.
Apart from being a programmer at heart, I enjoy being outdoors, especially when I am driving.
When indoors, I like spending quality time with family & friends. I also like watching movies and TV shows.