There are multiple ways of starting RxFiddle:
- In browser: using a editor you can write small samples, execute them in your browser, and share
them with your collegues.
- Attached: connect RxFiddle to your existing project using the provided instrumentation.
In Browser
Simply surf to
and you're good to go! For a quick demo or tutorial, view this video:
Attached
To run the attached version of RxFiddle first select your runtime:
- RxJS on Node: go to http://npmjs.org/package/rxfiddle
- RxJS in a Web application, using plain RxJS or using a framework like Angular: use the Chrome Extension, not implemented yet
- RxJava or RxScala on JVM: use the rxfiddle-jvm-collector not implemented yet, visit the project page: rxfiddle-jvm-collector
- RxJava on Android: use the rxfiddle-dalvik-collector not implemented yet, issue a Pull Request!
- RxSwift: use the rxfiddle-swift-collector not implemented yet, issue a Pull Request!
- Rx.NET: use the rxfiddle-dotnet-collector not implemented yet, issue a Pull Request!
- Other Rx language? Issue a Pull Request!


The contrib directory has contributed software that uses the TIFF library or which is associated with the library (typically glue and guidance for ports to non-UNIX platforms).
| contrib/vms | scripts and files from Karsten Spang for building the library and tools under VMS |
| contrib/dbs | a simple X-based TIFF viewer from Dan & Chris Sears |
| contrib/ras | two programs by Patrick Naughton for converting between Sun rasterfile format and TIFF (these require libpixrect.a, as opposed to the one in tools that doesn't) |
| contrib/mac-mpw | scripts and files from Niles Ritter for building the library and tools under Macintosh/MPW C. |
| contrib/acorn | scripts and files from Peter Greenham for building the library and tools on an Acorn RISC OS system. |
| contrib/win32 | scripts and files from Scott Wagner for building the library under Windows NT and Windows 95. |
| contrib/dosdjgpp | scripts and files from Alexander Lehmann for building the library under MSDOS with the DJGPP v2 compiler. |
| contrib/tags | scripts and files from Niles Ritter for adding private tag support at runtime, without changing libtiff. |
Don't send me mail asking about this stuff; I frequently know absolutely nothing about it. Send questions and/or bug reports directly to the authors.


Work
Status
Start
Provider
Customer
Duration
Action
No Appointments Available
Work
scheduled
21-01-2019 15:00
Provider
Customer
60 min
Details
New appointment


HOW TO PLAY: Use your arrow keys or swipe to move the tiles. When two tiles with the same Doctor touch, they merge into one and regenerate into the next Doctor!


Step 3. Locate the "Copyright Info" region and edit it. When you’re done, click "Save & Publish" button.


Steenrod Algebra Modules#
Author: Robert R. Bruner, Michael J. Catanzaro, Sverre Lunoee–Nielsen, and Koen van Woerden
Let \(p\) be a prime number. The mod \(p\) Steenrod algebra \(A\) is a connected algebra over \(\GF{p}\), the finite field of \(p\) elements. All modules presented here will be defined over \(A\) or one of its sub-Hopf algebras. E.g.:
sage: A = SteenrodAlgebra(p=2)
The constructor of the module class takes as arguments an ordered tuple of degrees and the algebra over which the module is defined, together with an optional set of relations:
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
sage: F = SteenrodFPModule(A, [0, 1, 7]); F
Free graded left module on 3 generators over mod 2 Steenrod algebra, milnor basis
Denote the module generators of an \(A\)-module \(M\) by \(g_{d_1}, \ldots, g_{d_N}\), where subscripts denote their degrees. A homogeneous relation of degree \(n\) has the form
where the homogeneous coefficients \(a_1, \ldots, a_N\) lie in \(A\), such that \(\deg(a_i) + \deg(g_{d_i}) = n\) for \(i = 1, \ldots, N\). To create a module with relations, the coefficients for each relation is given:
sage: r1 = [Sq(8), Sq(7), 0] # First relation
sage: r2 = [Sq(7), 0, 1] # Second relation
sage: M = SteenrodFPModule(A, [0, 1, 7], relations=[r1, r2]); M
Finitely presented left module on 3 generators and 2 relations over mod 2 Steenrod algebra, milnor basis
The resulting module will have three generators in the degrees we gave them:
sage: M.generator_degrees()
(0, 1, 7)
The connectivity of a module over a connected graded algebra is the minimum degree of all its module generators. Thus, if the module is non-trivial, the connectivity is an integer:
sage: M.connectivity()
0
Each module is defined over a Steenrod algebra or some sub-Hopf algebra of it, given by its base ring:
sage: M.base_ring()
mod 2 Steenrod algebra, milnor basis
sage: SteenrodFPModule(SteenrodAlgebra(p=2,profile=(3,2,1)), [0]).base_ring()
sub-Hopf algebra of mod 2 Steenrod algebra, milnor basis, profile function
[3, 2, 1]
Note
Calling algebra()
will not return the desired algebra. Users should
use the base_ring()
method.
Module elements#
Module elements are displayed in terms of generators, which by default
are called g[degree]
:
sage: M.an_element(n=5)
Sq(2,1)*g[0] + Sq(4)*g[1]
sage: e = M.an_element(n=15); e
Sq(0,0,0,1)*g[0] + Sq(1,2,1)*g[1] + Sq(8)*g[7]
sage: e.dense_coefficient_list()
[Sq(0,0,0,1), Sq(1,2,1), Sq(8)]
The generators are themselves elements of the module:
sage: gens = M.generators(); gens
(g[0], g[1], g[7])
sage: gens[0] in M
True
One can produce an element from a given set of algebra coefficients:
sage: coeffs = [Sq(15), Sq(10)*Sq(1,1), Sq(8)]
sage: x = M(coeffs); x
Sq(15)*g[0] + (Sq(4,1,1)+Sq(7,0,1)+Sq(11,1))*g[1] + Sq(8)*g[7]
The module action produces new elements:
sage: Sq(2) * x
Sq(14,1)*g[0] + (Sq(7,1)+Sq(10))*g[7]
Each non-zero homogeneous element has a well-defined degree:
sage: x.degree()
15
but the zero element does not:
sage: zero = M.zero(); zero
0
sage: zero.degree()
Traceback (most recent call last):
...
ValueError: the zero element does not have a well-defined degree
At this point it may be useful to point out that elements are not reduced to a minimal representation when they are created. A normalization can be enforced, however:
sage: g7 = M([0, 0, 1]); g7
g[7]
sage: g7.normalize()
Sq(7)*g[0]
sage: g7 == g7.normalize()
True
sage: m = M([Sq(7), 0, 0])
sage: s = m + g7; s # m and g7 are related by m = Sq(7)*g[0] = g[7],
Sq(7)*g[0] + g[7]
sage: s == 0 # so their sum should zero.
True
sage: s.normalize() # Its normalized form is more revealing.
0
For every integer \(n\), the set of module elements of degree \(n\) form a vector space over the ground field \(\GF{p}\). A basis for this vector space can be computed:
sage: M.basis_elements(7)
(Sq(0,0,1)*g[0],
Sq(1,2)*g[0],
Sq(4,1)*g[0],
Sq(7)*g[0],
Sq(0,2)*g[1],
Sq(3,1)*g[1],
Sq(6)*g[1])
Note that the third generator \(g_7\) of degree 7 is apparently missing from the basis above. This is because of the relation \(\operatorname{Sq}^7(g_0) = g_7\).
A vector space presentation can be produced:
sage: M.vector_presentation(5)
Vector space quotient V/W of dimension 4 over Finite Field of size 2 where
V: Vector space of dimension 4 over Finite Field of size 2
W: Vector space of degree 4 and dimension 0 over Finite Field of size 2
Basis matrix:
[]
Given any element, its coordinates with respect to this basis can be computed:
sage: x = M.an_element(7); x
Sq(0,0,1)*g[0] + Sq(3,1)*g[1] + g[7]
sage: v = x.vector_presentation(); v
(1, 0, 0, 1, 0, 1, 0)
Going the other way, any element can be constructed by specifying its coordinates:
sage: x_ = M.element_from_coordinates((1, 0, 0, 1, 0, 1, 0), 7)
sage: x_
(Sq(0,0,1)+Sq(7))*g[0] + Sq(3,1)*g[1]
sage: x_ == x
True
Module homomorphisms#
Homomorphisms of \(A\)-modules \(M\to N\) are linear maps of their underlying \(\GF{p}\)-vector spaces which commute with the \(A\)-module structure. Homomorphisms are required to be homogeneneous but need not be degree zero.
To create a homomorphism, first create the object modeling the set of all
such homomorphisms using the function Hom
:
sage: Hko = SteenrodFPModule(A, [0], [[Sq(2)], [Sq(1)]])
sage: homspace = Hom(Hko, Hko); homspace
Set of Morphisms from Finitely presented left module on 1 generator and 2 relations
over mod 2 Steenrod algebra, milnor basis
to Finitely presented left module on 1 generator and 2 relations
over mod 2 Steenrod algebra, milnor basis
in Category of finitely presented graded modules over mod 2 Steenrod algebra, milnor basis
Just as with module elements, homomorphisms are created using the homspace. The only argument is a list of elements in the codomain, giving the images of the module generators of the domain:
sage: gen = Hko.generator(0) # the generator of the codomain module
sage: values = [Sq(0, 0, 1) * gen]; values
[Sq(0,0,1)*g[0]]
sage: f = homspace(values)
The resulting homomorphism is the one sending the \(i\)-th generator of the domain to the \(i\)-th codomain value given:
sage: f
Module endomorphism of Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> Sq(0,0,1)*g[0]
Homomorphisms can be evaluated on elements of the domain module:
sage: v1 = f(Sq(4)*gen); v1
Sq(4,0,1)*g[0]
sage: v2 = f(Sq(2)*Sq(4)*gen); v2
(Sq(3,1,1)+Sq(6,0,1))*g[0]
and they respect the module action:
sage: f(Sq(4)*gen) == Sq(4)*f(gen)
True
sage: f(Sq(2)*Sq(4)*gen) == Sq(2)*Sq(4)*f(gen)
True
Convenience methods exist for creating the trivial morphism:
sage: x = Sq(4)*Sq(7)*gen
sage: x == 0
False
sage: zero_map = homspace.zero(); zero_map
Module endomorphism of Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> 0
sage: zero_map(x)
0
sage: zero_map(x).is_zero()
True
as well as the identity endomorphism:
sage: one = Hom(Hko, Hko).identity(); one
Module endomorphism of Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> g[0]
sage: one.is_endomorphism()
True
sage: one(x) == x
True
sage: one.is_identity()
True
Any non-trivial homomorphism has a well defined degree:
sage: f.degree()
7
but just as for module elements, the trivial homomorphism does not:
sage: zero_map = homspace.zero()
sage: zero_map.degree()
Traceback (most recent call last):
...
ValueError: the zero morphism does not have a well-defined degree
Any two homomorphisms can be added as long as they are of the same degree:
sage: f1 = homspace([Hko([Sq(0,0,3) + Sq(0,2,0,1)])])
sage: f2 = homspace([Hko([Sq(8,2,1)])])
sage: (f1 + f2).is_zero()
False
sage: f1 + f2
Module endomorphism of Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> (Sq(0,0,3)+Sq(0,2,0,1)+Sq(8,2,1))*g[0]
or when at least one of them is zero:
sage: f + zero_map == f
True
but not if they have different degrees:
sage: F = SteenrodFPModule(A, [0])
sage: b4 = Hom(F, F)([Sq(4) * F.generator(0)])
sage: b8 = Hom(F, F)([Sq(8) * F.generator(0)])
sage: b4 + b8
Traceback (most recent call last):
...
ValueError: morphisms do not have the same degree
Finally, additive inverses exist:
sage: (f - f) == 0
True
The restriction of a homomorphism to the vector space of \(n\)-dimensional module elements is a linear transformation:
sage: f_21 = f.vector_presentation(21); f_21
Vector space morphism represented by the matrix:
[1 0 0 0 0 0]
[0 0 0 0 0 0]
[1 0 0 0 0 0]
Domain: Vector space quotient V/W of dimension 3 over Finite Field of size 2 where
V: Vector space of dimension 20 over Finite Field of size 2
W: Vector space of degree 20 and dimension 17 over Finite Field of size 2
Basis matrix:
[1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0]
[0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1]
[0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1]
[0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1]
[0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1]
[0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1]
[0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1]
[0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1]
Codomain: Vector space quotient V/W of dimension 6 over Finite Field of size 2 where
V: Vector space of dimension 35 over Finite Field of size 2
W: Vector space of degree 35 and dimension 29 over Finite Field of size 2
Basis matrix:
29 x 35 dense matrix over Finite Field of size 2
This is compatible with the vector presentations of its domain and codomain modules:
sage: f.domain() is Hko
True
sage: f.codomain() is Hko
True
sage: f_21.domain() is Hko.vector_presentation(21)
True
sage: f_21.codomain() is Hko.vector_presentation(21 + f.degree())
True
Elements in the preimage of a homomorphism can be found:
sage: f.solve(Sq(2)*Sq(4)*Sq(7)*gen)
Sq(0,2)*g[0]
sage: f.solve(Sq(8)*gen) is None
True
Homomorphisms can be composed as expected:
sage: g = homspace([Sq(0, 0, 0, 1)*gen]); g
Module endomorphism of Finitely presented left module on 1 generator and 2 relations
over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> Sq(0,0,0,1)*g[0]
sage: g*f
Module endomorphism of Finitely presented left module on 1 generator and 2 relations
over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> Sq(0,0,1,1)*g[0]
sage: one = homspace.identity()
sage: f*one == f
True
Homological algebra#
The category of modules over \(A\) is Abelian, so kernels, images and
cokernels all exist and can be computed using the morphisms
.
Note
Methods for morphisms like
compute sub- and quotient modules related to homomorphisms, but they do not return instances of the module class. Rather, they return the natural homomorphisms which connect these modules to the modules that gave rise to them.
For example the function
kernel_inclusion()
returns an injective homomorphism which is onto the kernel
submodule we asked it to compute, while the function
cokernel_projection()
provides a surjective homomorphism onto the cokernel module.
In each case, getting a reference to the module instance requires calling
domain()
or
codomain()
on the returned homomorphism, depending on the case.
Refer to each function’s documentation for specific details.
Cokernels#
In the following example, we define a cyclic module \(H\ZZ\) with one relation in two ways: first explicitly, and then as the cokernel of a homomorphism of free modules. We then construct a candidate for an isomorphism and check that it is both injective and surjective:
sage: HZ = SteenrodFPModule(A, [0], [[Sq(1)]]); HZ
Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
sage: F = SteenrodFPModule(A, [0])
sage: j = Hom(F, F)([Sq(1)*F.generator(0)])
sage: coker = j.cokernel_projection() # the natural quotient homomorphism onto the cokernel.
sage: hz = coker.codomain(); hz
Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
sage: a = Hom(HZ, hz)([hz.generator(0)])
sage: a.is_injective()
True
sage: a.is_surjective()
True
Kernels#
When computing the kernel of a homomorphism \(f\), the result is an injective homomorphism into the domain of \(f\):
sage: k = f.kernel_inclusion(); k
Module morphism:
From: Finitely presented left module on 1 generator and 3 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[7] |--> Sq(0,0,1)*g[0]
sage: k.codomain() == f.domain()
True
sage: k.is_injective()
True
sage: ker = k.domain()
sage: ker
Finitely presented left module on 1 generator and 3 relations over mod 2 Steenrod algebra, milnor basis
We can check that the injective image of \(k\) is the kernel of \(f\) by showing that \(f\) factors as \(h\circ c\), where \(c\) is the quotient map to the cokernel of \(k\), and \(h\) is injective:
sage: K = k.codomain() # We want to check that this really is the kernel of f.
sage: coker = k.cokernel_projection() # coker is the natural map: Hko -> coker(f) with kernel K.
sage: h = Hom(coker.codomain(), Hko)(f.values())
sage: h*coker == f # Is K contained in ker(f) ?
True
sage: h.is_injective() # Is ker(f) contained in K ?
True
Images#
The method
image()
behaves similarly, returning an injective homomorphism with image
equal to the submodule \(\operatorname{im}(f)\):
sage: i = f.image(); i
Module morphism:
From: Finitely presented left module on 1 generator and 3 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[7] |--> Sq(0,0,1)*g[0]
sage: i.codomain() == f.codomain()
True
sage: i.is_injective()
True
We can check that the injective image of \(i\) is the image of \(f\) by lifting \(f\) over \(i\), and showing that the lift is surjective:
sage: f_ = f.lift(i); f_
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 3 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> g[7]
sage: i*f_ == f # Is im(i) contained in im(f) ?
True
sage: f_.is_surjective() # Is im(f) contained in im(i) ?
True
When a pair of composable homomorphisms \(g\circ f: M\to N\to L\) satisfy the condition \(g\circ f = 0\), the sub-quotient \(\ker(g) / \operatorname{im}(f)\) can be computed and is given by the natural quotient homomorphism with domain \(\ker(g)\):
sage: f * f == 0 # Does the kernel of f contain the image of f ?
True
sage: K = f.kernel_inclusion() # k: ker(f) -> Hko
sage: h = f.homology(f) # h: ker(f) -> ker(f) / im(f)
sage: h.codomain() # This is the homology module.
Finitely presented left module on 1 generator and 4 relations over mod 2 Steenrod algebra, milnor basis
Free resolutions#
Finally, free resolutions can be computed. These calculations usually take some time to complete, so it is usually a good idea to raise the verbose flag to output progress information.
The following examples are taken from Michael Catanzaro’s thesis where the first version of this software appeared:
sage: res = Hko.resolution(6, verbose=True)
Computing f_1 (1/6)
Computing f_2 (2/6)
Computing using the profile:
(2, 1)
Resolving the kernel in the range of dimensions [1, 8]: 1 2 3 4 5 6 7 8.
Computing f_3 (3/6)
Computing using the profile:
(2, 1)
Resolving the kernel in the range of dimensions [2, 10]: 2 3 4 5 6 7 8 9 10.
Computing f_4 (4/6)
Computing using the profile:
(2, 1)
Resolving the kernel in the range of dimensions [3, 13]: 3 4 5 6 7 8 9 10 11 12 13.
Computing f_5 (5/6)
Computing using the profile:
(2, 1)
Resolving the kernel in the range of dimensions [4, 18]: 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18.
Computing f_6 (6/6)
Computing using the profile:
(2, 1)
Resolving the kernel in the range of dimensions [5, 20]: 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20.
The result of the calculation is a list of all the maps in the resolution:
sage: [f.domain() for f in res]
[Free graded left module on 1 generator over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 2 generators over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 3 generators over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 4 generators over mod 2 Steenrod algebra, milnor basis,
Free graded left module on 4 generators over mod 2 Steenrod algebra, milnor basis]
sage: def is_complex(res):
....: for i in range(len(res)-1):
....: f = (res[i]*res[i+1])
....: if not f.is_zero():
....: return False
....: return True
....:
sage: is_complex(res)
True
sage: def is_exact(res):
....: for i in range(len(res)-1):
....: h = res[i].homology(res[i+1])
....: if not h.codomain().is_trivial():
....: return False
....: return True
sage: is_exact(res)
True
sage: [r.codomain().generator_degrees() for r in res]
[(0,), (0,), (2, 1), (2, 4), (3, 7), (4, 8, 12), (5, 9, 13, 14)]
sage: [r.values() for r in res]
[(g[0],),
(Sq(2)*g[0], Sq(1)*g[0]),
(Sq(1)*g[1], Sq(3)*g[1] + Sq(2)*g[2]),
(Sq(1)*g[2], Sq(2,1)*g[2] + Sq(3)*g[4]),
(Sq(1)*g[3], Sq(2,1)*g[3] + Sq(1)*g[7], Sq(2,1)*g[7]),
(Sq(1)*g[4],
Sq(2,1)*g[4] + Sq(1)*g[8],
Sq(2,1)*g[8] + Sq(1)*g[12],
Sq(2)*g[12]),
(Sq(1)*g[5],
Sq(2,1)*g[5] + Sq(1)*g[9],
Sq(2,1)*g[9] + Sq(1)*g[13],
Sq(0,1)*g[13] + Sq(2)*g[14])]
Example: Counting lifts#
In this more elaborate example we show how to find all possible lifts of a particular homomorphism. We will do this in two ways, and as a check of validity, we will compare the results in the end.
We will work with the following modules over the mod 2 Steenrod algebra \(A\):
There is a natural projection \(q: H\ZZ\to Hko\), and a non-trivial endomorphism of degree 28, represented as a degree zero map \(f: \Sigma^{28}Hko\to Hko\) that we define below.
The problem we will solve is to find all possible homomorphisms \(f': \Sigma^{28}Hko\to H\ZZ\), making the following diagram into a commuting triangle:
We begin by defining the modules and the homomorphisms \(f\) and \(q\). In the following, we let \(L = \Sigma^{28}Hko\):
sage: from sage.modules.fp_graded.steenrod.module import SteenrodFPModule
sage: A = SteenrodAlgebra(2)
sage: Hko = SteenrodFPModule(A, [0], [[Sq(2)],[Sq(1)]])
sage: HZ = SteenrodFPModule(A, [0], [[Sq(1)]])
sage: L = Hko.suspension(28)
The projection:
sage: q = Hom(HZ, Hko)([Hko.generator(0)])
sage: q
Module morphism:
From: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[0] |--> g[0]
The map to lift over \(q\):
sage: f = Hom(L, Hko)([Sq(0,2,1,1)*Hko.generator(0)])
sage: f
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> Sq(0,2,1,1)*g[0]
sage: f.is_zero() # f is non-trivial.
False
We will count the number of different lifts in two ways. First, we will simply compute the vector space of all possible maps \(L \to H\ZZ\), and then check which of those become \(f\) when composed with \(q\):
sage: basis = Hom(L, HZ).basis_elements(0) # The basis for the vector space of degree 0 maps L -> HZ
sage: from itertools import product
sage: def from_coords(c):
....: '''
....: Create a linear combination of the three basis homomorphisms.
....: '''
....: return c[0]*basis[0] + c[1]*basis[1] + c[2]*basis[2]
sage: for coords in product([0,1], repeat=3):
....: print('%s: %s' % (coords, q*from_coords(coords) == f))
(0, 0, 0): False
(0, 0, 1): False
(0, 1, 0): True
(0, 1, 1): True
(1, 0, 0): True
(1, 0, 1): True
(1, 1, 0): False
(1, 1, 1): False
From this we conclude that four out of eight different homomorphisms \(L \to H\ZZ\) are lifts of \(f\):
sage: lifts = [from_coords((0,1,0)),
....: from_coords((0,1,1)),
....: from_coords((1,0,0)),
....: from_coords((1,0,1))]
sage: lifts
[Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> Sq(6,5,1)*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(6,5,1)+Sq(18,1,1))*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> Sq(10,1,0,1)*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(10,1,0,1)+Sq(18,1,1))*g[0]]
Alternatively we can use left-exactness of the functor \(\operatorname{Hom}_A(L, -)\) to enumerate all possible lifts of \(f\). Start by finding a single lift of \(f\) over the projection \(q\):
sage: fl = f.lift(q); fl
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(4,3,0,1)+Sq(6,0,1,1)+Sq(7,2,0,1)+Sq(10,1,0,1))*g[0]
We verify that fl
is indeed a lift:
sage: q * fl == f
True
There is an exact sequence
which means that the indeterminacy of choosing a lift for \(f \in \operatorname{Hom}_A(L, Hko)\) is represented by an element in \(\operatorname{Hom}_A(L,\ker(q))\). Therefore, we can proceed to count the number of lifts by computing this vector space of homomorphisms:
sage: iK = q.kernel_inclusion()
sage: K = iK.domain()
sage: K.generator_degrees()
(2,)
sage: K.relations()
(Sq(2)*g[2],)
sage: ind = Hom(L, K).basis_elements(0); len(ind)
2
So now we know that the vector space of indeterminacies is 2-dimensional over the field of two elements. This means that there are four distinct lifts of \(f\) over \(q\), and we can construct these by taking the one lift we already found, and add to it all the different elements in the image of \(iK_*\):
sage: flift = [fl,
....: fl + iK * ind[0],
....: fl + iK * ind[1],
....: fl + iK * (ind[0] + ind[1])]
sage: flift
[Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(4,3,0,1)+Sq(6,0,1,1)+Sq(7,2,0,1)+Sq(10,1,0,1))*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(0,7,1)+Sq(3,6,1)+Sq(4,1,3)+Sq(6,0,1,1)+Sq(6,5,1)+Sq(7,0,3))*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(4,3,0,1)+Sq(6,0,1,1)+Sq(7,2,0,1)+Sq(10,1,0,1)+Sq(12,3,1)+Sq(15,2,1)+Sq(18,1,1))*g[0],
Module morphism:
From: Finitely presented left module on 1 generator and 2 relations over mod 2 Steenrod algebra, milnor basis
To: Finitely presented left module on 1 generator and 1 relation over mod 2 Steenrod algebra, milnor basis
Defn: g[28] |--> (Sq(0,7,1)+Sq(3,6,1)+Sq(4,1,3)+Sq(6,0,1,1)+Sq(6,5,1)+Sq(7,0,3)+Sq(12,3,1)+Sq(15,2,1)+Sq(18,1,1))*g[0]]
As a test of correctness, we now compare the two sets of lifts. As they stand,
it is not obvious that the lists flift
and lifts
are the same (up to a
re-ordering of list elements), so the following comparison is reassuring:
sage: flift[0] == lifts[2]
True
sage: flift[1] == lifts[0]
True
sage: flift[2] == lifts[3]
True
sage: flift[3] == lifts[1]
True


 It is helpful for example when you want to modify the
Platform/Config, change the solution file, open documents, etc to test your title expression.
After opening the title setup window you can close the Options dialog of Visual Studio.
There is a know minor issue regarding the modeless nature of the title setup window:
If you open the modeless title setup window and close the Options dialog then reopening the modal Options dialog
(or any other modal dialog of VS) steals the modeless nature of the title setup window.
Again, this is a minor issue that has an acceptable workaround so this won't be addressed in the future especially
because I don't know an easy fix for this.
Simply setting the titlebar to a constant string:
| Precedence |
Operator |
Description |
| 1 |
if (bool_val) {
val
} else {
val
}
if (bool_val) {
val
} else if (bool_val) {
val
} else if ...
} else {
val
} |
You can use zero or more else-if branches but the else branch is always required. In this expression
language the if-else statement is also an expression and isn't really a flow construct.
It is much like a higher precedence ternary (?:) operator.
You can for example add the value of two if-else statements however this may look odd and you may not
want to exploit this...
|
| 2 |
string_val =~ string_const |
Matches string_val against the specified regex. The result is a bool value that is true if the match is successful. |
string_val !~ string_const |
Matches string_val against the specified regex. The result is a bool value that is false if the match is successful. |
| 3 |
not bool_val
!bool_val |
Bool not operator. |
upcase string_val |
Converts a string to uppercase. |
locase string_val |
Converts a string to lowercase. |
lcap string_val |
Converts the first character of the string to capital and converts the rest of the string to lowercase. |
backslashize string_val |
Replaces all '/' characters to '\' characters in the specified string. Comes handy if you prefer
backslashes in pathnames as all of the provided variables contain pathnames with / characters to make it
easier to write regex to match them.
|
bool value |
Converts the specified value to bool. Does nothing if the specified value is already bool. In case of
strings it evaluates to false only if the length of the string is zero.
|
string value |
Converts the specified value to string. Does nothing if the specified value is already string.
In case of bool values it evaluates to "true" or "false".
|
exec [variable] exec_period command workdir |
Executes a command in a given workdir periodically and this exec function
call returns the (processed) output of the executed command. Optionally you can specify a
[variable] parameter and in this case exec
not only returns the output of the command but stores it into the specified variable as well.
This is useful only if you use exec as the conditional expression of an if
statement or a conditional (ternary ?:) operator, in this case you can
access the output of the command by using the specified variable in the if body or true-expression of the
ternary. The exec command is probably as powerful as the rest of the
features of this extension so I don't try to describe it here, I gave it a separate section for this:
Exec magic
|
relpath dir_string path_string |
Converts a file/directory pathname specified by the path_string parameter to a pathname that is relative
to the specified directory. Both dir_string and path_string must be either absolute or relative pathnames
otherwise the function returns the value of path_string.
If both dir_string and path_string are absolute but they refer to different drives then the return value
is path_string. The incoming parameters can use both '\' and '/' as path separators but the return value
of the function always contains '/' path separators and the return value never has a trailing slash.
|
workspace_name path_string |
Gets the name of the workspace that contains the specified path.
The info is obtained using locally cached data (according to the msdn docs).
The return value is an empty string if the info can not be retrieved.
|
workspace_owner path_string |
Gets the name of the owner of the workspace that contains the specified path.
The info is obtained using locally cached data (according to the msdn docs).
The return value is an empty string if the info can not be retrieved.
|
| 4 |
string_val + string_val |
String concatenation. |
| 5 |
string_val0 contains string_val1 |
Returns true if string_val0 contains string_val1 as a substring. (case insensitive) |
string_val0 startswith string_val1 |
Returns true if string_val1 is the prefix of string_val0. (case insensitive) |
string_val0 endswith string_val1 |
Returns true if string_val1 is the postfix of string_val0. (case insensitive) |
| 6 |
val0 == val1 |
If both val0 and val1 are strings then returns true if the strings are equal (case insensitive).
If either val0 or val1 is bool then this operator converts both operands to bool values and performs bool comparison.
|
val0 != val1 |
The opposite of the == operator. |
| 7 |
bool_val and bool_val
bool_val && bool_val
bool_val & bool_val |
Bool AND operator. |
| 8 |
bool_val xor bool_val
bool_val ^ bool_val |
Bool eXclusive OR (XOR) operator. |
| 9 |
bool_val or bool_val
bool_val || bool_val
bool_val | bool_val |
Bool OR operator. |
| 10 |
bool_val ? val0 : val1
bool_val ? val0 |
Ternary operator. Evaluates to val0 if bool_val is true otherwise it evaluates to val1.
If you omit the optional ":" and val1 then val1 defaults to an empty string.
|
| Name |
Type |
Description |
| active_wnd_class |
string |
The classname of the active VS window.
This is an empty string if the currently focused foreground window isn't a window of VS.
|
| active_wnd_title |
string |
The title of the active VS window.
This is an empty string if the currently focused foreground window isn't a window of VS.
|
| any_doc_dirty |
string |
"*" if any of the open documents/files is modified "" otherwise. You can use it as a bool value too. |
| any_proj_dirty |
string |
"*" if any of the project files is modified "" otherwise. You can use it as a bool value too. |
| anything_dirty |
string |
"*" if the solution file or any of the project files or any of the open documents is modified "" otherwise.
You can use it as a bool value too.
|
| app_active |
bool |
True if one of the windows of this VS instance is the foreground window.
This is very similar to the wnd_foreground variable that is active only when the foreground window is the
VS main window.
|
| cmdline |
string |
The commandline string that was used to start Visual Studio |
| configuration |
string |
Configuration name or an empty string (false) if there is no active configuration. e.g.: "Release" |
| debug_mode |
string |
"" or "Running" or "Debugging". This is basically an enum.
It can be used as a bool (just like the debugging variable) because it is empty string when not debugging.
|
| debugging |
bool |
True if debugging, false otherwise. |
| doc_dir |
string |
Active document directory, there is no trailing path separator char.
This is an empty string if we don't have an active document open.
|
| doc_dirty |
string |
"*" if the active document is modified "" otherwise. You can use it as a bool value too. |
| doc_ext |
string |
The extension of the active document.
E.g.: "cpp" or "cs". This is an empty string if we don't have an active document open.
|
| doc_file |
string |
Active document filename with extension.
E.g.: "test.cpp". This is an empty string if we don't have an active document open.
|
| doc_filename |
string |
Active document filename without extension.
E.g.: "test". This is an empty string if we don't have an active document open.
|
| doc_open |
bool |
True if we have an open document, an active document |
| doc_path |
string |
Full pathname of the active document. This is an empty string if we don't have an active document open. |
| dte_version |
string |
The actual numbered version of Visual Studio. e.g.: "10.0" for VS2010 |
| multi_instances |
bool |
True if at least one other instance of Visual Studio is running simultaneously.
The other instances are allowed to be different versions of Visual Studio.
|
| multi_instances_same_ver |
bool |
True if at least one other Visual Studio instance is running with the same version number as our instance. |
| orig_title |
string |
The title text that VS would set if this extension wouldn't be active. |
| platform |
string |
Platform name or an empty string (false) if there is no active platform. e.g.: "Win32" |
| sln_dir |
string |
Solution directory, there is no trailing path separator char. This is an empty string if we don't have a solution open. |
| sln_dirty |
string |
"*" if the solution file has been modified "" otherwise. You can use it as a bool value too. |
| sln_file |
string |
The name of the solution file with extension. This is an empty string if we don't have a solution open. |
| sln_filename |
string |
The name of the solution file without extension. This is an empty string if we don't have a solution open. |
| sln_open |
bool |
True if we have a solution open. |
| sln_path |
string |
The full pathname of the open solution. This is an empty string if we don't have a solution open. |
| startup_proj |
string |
The name of the project that is selected as the startup project or an empty string if there is no startup project selected.
Note that this is usually the same as startup_proj_filename but this can be different if you rename a project in the solution explorer.
The rename operation changes this but leaves the project filename unchanged. |
| startup_proj_dir |
string |
The directory of the startup project without a trailing path separator char. This is an empty string if we don't have a startup project selected. |
| startup_proj_dirty |
string |
"*" if the startup project is modified "" otherwise. You can use it as a bool value too. |
| startup_proj_ext |
string |
The extension of the startup project. e.g.: "vcxproj" This is an empty string if we don't have a startup project selected. |
| startup_proj_file |
string |
The name of the startup project with extension. This is an empty string if we don't have a startup project selected. |
| startup_proj_filename |
string |
The name of the startup project without extension. This is an empty string if we don't have a startup project selected. |
| startup_proj_path |
string |
The full pathname of the startup project. This is an empty string if we don't have a startup project selected. |
| vs_edition |
string |
The edition of VS. e.g.: "Ultimate", "Professional" |
| vs_version |
string |
Possible values: "2005", "2008", "2010", "2012" or "2013" |
| wnd_foreground |
bool |
True if the foreground (focused) window is the VS main window. |
| wnd_minimized |
bool |
True if the VS main window is minimized. |


Dashboard Shift Log People Landing Tasks Meetings Notifications
Logged in as:
Martha Green, Offender Manager AB12345Log out
Dashboard
Thursday (21.03.2017)
Issued by Devon Jones at 08:37am
You have 3 new notifications
- 8:24am: Ian Rider has been added to your list of offenders
- 8:04am: Jason Richardson has confirmed your meeting request
- 7:39am: Vincent Carter has declined your meeting request
All notifications
Upcoming tasks
- 10:30am: Meeting with Ian Rider about progress planning
- 1:30pm: Meeting with Nathan Robinson about recent visits
- 2:45pm: Offender management leadership training exercise
Full schedule
Where are they now?
Map
Key
- Ian Rider: Wing B
- Nathan Robinson: Education Centre
- Vincent Carter: Wing A
- Jason Richardson: Visitors Centre
- Dom Wilkins: Visitors Centre
- Michael Johnson: Wing B
This information is refreshed every 30 seconds so may not be exactly accurate at the time of reading.


Set your login preference, help us personalize your experience and make big account change here.
Account Changes
Hide Your Posts and profile
Delete your account and data
Edit Profile
People on Giami will get to know you with the info below
Privacy & data
Deceide whether your profile will be hidden from search engine and what kind of data you want to use to imporve the recommendation and ads you see Learn more
Notification Setting
Select push and email notifications you'd like to receive.
i'd like to receive emails and updates from Giami about


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Dietary
James Martin adds an exotic twist to this classic dish of cloud-like meringues in a bowl of creamy custard.
For the meringue, preheat the oven to 200C/400F/Gas 6.
Whisk the egg whites in a bowl until soft peaks form when the whisk is removed. Whisk in 100g/3½oz of the caster sugar, a little at a time, until well combined.
Continue to whisk until the egg whites are stiff and glossy.
Heat the milk, cream and vanilla seeds in a lidded saucepan until simmering.
Lightly oil 2 tablespoons with the vegetable oil and use them to shape quenelles of the meringue mixture. Carefully place them into the simmering milk.
Cover with a lid and poach for 4-5 minutes, or until just cooked through.
Remove the meringues form the milk mixture with a slotted spoon and set aside on kitchen paper.
Heat the remaining 100g/3½oz sugar in a frying pan until the sugar become pale golden-brown.
Place the base of the frying pan into a larger pan of cold water to stop the caramel cooking, then set aside to cool slightly.
Using a potato peeler, peel shavings of coconut flesh and place them onto a baking tray. Toast them in the oven for 3-4 minutes, or until pale golden-brown.
For the custard, strain the milk mixture used to cook the meringues into a clean saucepan, return to the heat and add the coconut liqueur.
Whisk the egg yolks and sugar in a bowl until well combined. Whisk in the milk mixture until well combined.
Return the mixture to the saucepan, add the chopped mango and cook over a low heat, stirring continuously, until the custard has thickened enough to coat the back of a spoon.
To serve, spoon the mango custard into serving bowls and place the meringue on top. Scatter over the toasted coconut. Use the back of a spoon to pull strands of the caramel mixture and drizzle over the top of the meringue.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Makes 8 buns
Dietary
These easy rock cakes are great for baking with young children and perfect for an after-school treat.
Wash your hands and put an apron on. Weigh or measure all the ingredients.  Put some baking paper on a baking tray.
In a mixing bowl, stir together the currants, chopped peel and sugar.
In another bowl, combine the flour with the mixed spice and butter. Rub the butter into the flour and spice until the mixture looks like fine breadcrumbs.
Add the sugar, fruit and peel to the flour bowl and mix with a fork- just a few gentle stirs.
Break the egg into a cup and beat with a fork then add some (but not all) to your fruity mixture. The mixture should be firm enough to shape but not dry. Add a bit more egg if it is too dry to shape.
Using your hands, tear the mixture in half, then in half again then each piece in half until you have eight pieces. Leaving them in rough chunks, place them onto the baking tray. Ask a grown-up to put them in the oven to bake for 15-20 minutes. Serve the buns with some fresh fruit.


--- title: Pet supply store becomes junior anchor at Colleyville Downs class: latest-news parent: Latest News categories: ---
Whole Foods Market made headlines in early 2013 after the natural foods grocery store announced it was coming to Colleyville, and in early April of this year Petco joined the buzz.
Colleyville Economic Development Director Marty Wieder said the 13,500-square-foot pet supply store will flank Whole Foods at Colleyville Downs and serve as the junior anchor of the shopping center, with both stores expected to open this summer.
Centennial Real Estate Director of Development Scott Woodruff said the developer wanted to depict a theme of Colleyville in designing the new stores, and settled on mimicking the historic Ross Downs, a horse racing track once located in the city.
He said the premise is to architecturally reflect a horse farm concept preserving the city’s history of the former racetrack as well as the horse farms that remain in Colleyville. Design elements include grandstands, barn doors and pitched roofs with a white, green and gray color scheme, according to renderings by GSO Architects. A winner’s circle will be located near the main entry of Whole Foods.
The two anchors join several other retailers that will make up the shopping center known as Colleyville Downs. There is an assortment of other stores that are located in the center or will join the mix, including Westlake Ace Hardware, Matt’s Rancho Martinez and Vineyard’s Antique Mall.
Woodruff said CRE is in current lease negotiations with other retailers, and there are still two or three more spaces left to fill for Colleyville Downs.
“We’re trying to merchandise this as a typical grocery-anchored shopping center,” he said.
Petco Marketing Communications Coordinator Megan Gonzalez said the store focuses on markets with an opportunity to reach new customers.
“Petco is a neighborhood pet store, and we typically open new locations in growing neighborhoods where other retailers are located to make sure our customers have a convenient shopping experience.”
In choosing store locations for the center, Wieder said the city’s goal is “to create place-making excitement” where the stores can build on each other.
“Recent announcements of new restaurants and merchants like Petco at Colleyville Downs represent solid progress in meeting the desires of our citizens and achieving the economic development goals set by our City Council,” Wieder said. “Successes like these tend to build on themselves to bring even more success.”
Wieder said he expects the economic boost of the new retailers to spill across Colleyville Boulevard as well, where there is 13,000 square feet open for retail. Wieder said lease offers are starting to come in.
“People just want to be near Whole Foods,” Wieder said.
Petco is taking advantage of the proximity of the anchor, too.
Gonzalez said Petco has the largest selection of natural food brands of any national pet retailer and expects to integrate well with the natural foods grocery store.
“We are excited to be opening the Colleyville Downs store in such close proximity to an already well-established store whose shoppers have similar philosophies on their own personal health,” Gonzalez said.


Emotional Intelligence
What is it?
Emotional intelligence or emotional quotient (EQ) is a person's ability to perceive, reason with, understand, and manage emotions. This applies not only to their own emotions, but also to those of others around them.
Our emotional intelligence comes into play a lot during daily life. From empathising with how others are feeling, to understanding our own emotions. Even just taking a moment to cool down before reacting when we're angry or frustrated is a sign of good EQ.
A number of researchers suggest that emotional intelligence is something we can work on - much like going to the gym, except training our minds instead of our bodies. It's also suggested that EQ is more important to a person's success that IQ, which leads us on to the next question...
How is it different to IQ?
Intelligence quotient (IQ) is what usually comes to mind when we think of 'intelligence'. IQ measures a person's reasoning, logic, and ability to recall information. Testing a person's IQ often involves knowledge-based questioning, having them solve puzzles, predict what comes next in a pattern, and other such exercises.
So while EQ and IQ both measure some form of 'intelligence', EQ leans more toward qualities like self-awareness and empathy, whereas IQ focuses more on a person's knowledge and analytical thinking.
Why is it important?
 With a higher EQ we're able to form stronger bonds with those around us, from family, friends and romantic partnerships, through to colleagues and business associates. It helps us navigate complex social situations which is often one of the keys to a successful career.
EQ also plays a huge part in our physical and mental health - the ability to manage stress can reduce our likelihood of suffering from things such as depression, anxiety, high blood-pressure, and even premature ageing.


Prioritizer
Star Wars
or
Star Trek
Press 'a', 'b', or 'u' as a short cut.
Enter a list of stuff to prioritize below.
Ranked


PeptideShaker can be used to process the search results
from multiple search engines and combine the identifications into a single result. For details on PeptideShaker
please the the PeptideShaker home page.
In order to use PeptideShaker from SearchGUI
you first have to download and unzip PeptideShaker. When this is done all you have to do is to click the
Edit button next to the PeptideShaker location field in this dialog
and locate the PeptideShaker jar file.
Next you provide some information about the project: project name, sample name and replicate number. These are
used for referring to the project at later stages of the analysis.
Finally you select the output file where you want the PeptideShaker results to be saved. Note that the results
will be automatically opened in PeptideShaker when the processing has completed.
You also have the opportunity of linking the SearchGUI results with Mascot results. Note that the Mascot results
have to be compatible with the SearchGUI results, i.e., the Mascot searches have to be run the exact same spectrum
files and database, and with the same search settings. For details on how to carry out the Mascot searches see
Mascot Support and
Database Help.
It is also possible to tailor the processing parameters and the import filters at this stage.


Final Destination * * * (out of * * * * )
Directed by James Wong. Cast: Devon Sawa, Ali Larter, Kerr Smith, Seann William Scott, Kristen Cloke, Amanda Detmer, Chad E. Donella, Daniel Roebuck, Roger Guenveur Smith, Brendan Fehr. 2000 - 95 minutes Rated R (for violence, gore, and profanity). Reviewed by Dustin Putman, March 18, 2000.
Have you ever wondered if death is something that simply happens naturally, at any given moment, in life? Or if it is an occurrence that is predetermined by some much larger force within the world, or outside of it? These thought-provoking questions are the subject of "Final Destination," which is the most riveting horror-drama since 1999's "The Sixth Sense." Stylishly filmed and tautly directed by "X-Files" alum James Wong, the film deals with several fairly heavy topics that are discussed truthfully by teenage characters (in accurately written "teen-speak," rather than overwrought, highly intellectualized dialogue that even Harvard scholars wouldn't use), all the while developing into a darkly foreboding, severely eerie thriller that successfully leaves you uneasy from the horrifyingly real opening twenty minutes to the less-successful, but still suspenseful epilogue.
At the start of the film, 17-year-old high school senior Alex Browning (Devon Sawa) is about to leave with his 40-student French class for a field trip to Paris. Progressively getting a case of preflight jitters, he spots several mysterious "coincidences," including the departure time being 9:25, the same as his September 25 birthday, as well as hearing the John Denver song "Rocky Mountain High" over the sound system in the airport bathroom. "John Denver died in a plane crash," Alex grudgingly mutters to himself. Once seated, Alex suddenly gets a horrific premonition about the plane exploding upon takeoff, and after causing a ruckus onboard, he, as well as six other students and a teacher, are thrown off. Arguing in the airport lobby, Alex's suspicion comes true when the plane really does explode in flight, killing all 300+ passengers, including the rest of their classmates.
As two investigators interrogate Alex about how he knew the plane was going to explode, the fellow survivors, whom he has saved, treat him in varying manners. Carter (Kerr Smith), the hotshot jock, holds him in contempt because he believes that it is only he himself who can decide his fate. Alex's best friend, Tod (Chad E. Donella), wants to stand by him but can't because of his fearful parents. The teacher, Mrs. Lewton (Kristen Cloke), is frightened by him, believing that it was he who somehow caused the disaster, as well as in a state of guilt for giving up her seat on the plane to a fellow coworker. Only outsider Clear Rivers (Ali Larter), who unboarded the plane due to a sudden connection to Alex's premonition even though she had never even spoken to him before, is sympathetic and thankful to him for saving her life.
That is only the setup of "Final Destination," and the less said about what follows, the better. Suffice to say, the film does, indeed, turn into a slasher film, albeit one that is more thoughtful than most, and replaces a knife-wielding maniac for the never-seen granddaddy killer of them all, the Grim Reaper itself.
The setpieces in any horror movie are the death scenes, and "Final Destination" surely boosts some of the most inventive ones to grace the silver screen in years. Graphic and brilliantly orchestrated in a Rube Goldbergesque manner, they manage to occasionally be so intense you don't know whether to shrink down in your seat, tap your feet in nervousness, or turn away.
Devon Sawa, a rising star who put his physical comedy skills to good use in 1999's underseen slasher-comedy, "Idle Hands," is even more of a charismatic presence here. The conflicting emotions he feels for his survival, which he comes to believe he wasn't meant to do, as well as the loss of the other passengers, is superbly and subtly acted on his part. One scene, in which he is watching a news report on the crash and slowly begins to break down is especially realistic and powerful.
Ali Larter (1999's "Varsity Blues"), in the other central role, is also effective, as a girl whose life was going well until her father died in a convenience store shooting years before, leaving her stuck with an increasingly uncaring mother who married a loutish man--the exact opposite of her now-deceased father.
The other roles are not as fully written, and most remain rather one-dimensional. The movie is mainly Sawa's, however, and the rest of the actors equip themselves well in limited roles. Tony Todd (1992's "Candyman"), as an arcane morgue attendant, pops up for a five-minute cameo, but his appearance is rather supererogatory. And the aforementioned dialogue occasionally hits the bullseye, while at other times it hovers over being just a little too stilted and campy.
Ultimately, what is so good about "Final Destination" is that, within the confines of the slasher genre, writer-director Wong and screenwriters Glen Morgan and Jeffrey Reddick have created a premise that has never been seen before in this manner, and a film that has the ability to both surprise and frighten--two things that are rarely found in today's horror films. If anything, it's safe to say you will never ever look at flying in airplanes the same way again.
- Copyright 2000 by Dustin Putman Http://www.young-hollywood.com Http://www.atnzone.com
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


ROS architecture for a robot moving into a simulated house. The robot has 5 behaviors:
- Play
- Sleep
- Normal
- Find
- Track
The user can interact with the robot by sending a play command follow by a goTo+room
Software architecture and states diagrams
Software architecture
The architercture is composed by 5 components:
- Ball Info: detect a colored ball and provide a service to retrieve the information of the detected ball
- Command: simulate a user
- Oracle: knows all the things about the context of the application
- Command manager: implement robot behaviors through a FSM
- Simulation,Move Base and Explore lite: simulate the robot and the enviroment. They allow the robot to navigate into the house
State diagram
The finite state machine is composed by 5 state (robot behaviors):
- PLAY: the robot goes to the person position. When it is there, it waits the goTo+room command. If the rooms is already known, it goes there; otherwise it will goes to FIND state
- NORMAL (initial state): robot moves in a random ways
- SLEEP: robot goes to home position, it stays there for a certain time and then goes to NORMAL state
- FIND: robot tries to find the requested colored ball by moving into the house
- TRACK: robot tracks the ball in order to store its position (x and y) for future purpose
ROS messages and parameters
The messages are:
PoseStamped
: robot target position
String
: radius,center and color of the ball/User command/Request and response of the oracle
CompressedImage
: images received from the camera
Twist
: robot velocities
Odometry
: robot odometry
GoalStatusArray
: status of the move base action server
PolygonStamped
: robot footprint
Movement commands;Sensor topics and map;Grid messages
The parameters are:
path_exp
: path of the explore lite launch file (string, MUST BE DEFINE BEFORE THE EXECUTION)
home_pos_x,home_pos_y
: define the home position in the map (integer)
map_x,map_y
: define the dimensions of the map (integer)
min_transition_play_normal,max_transition_play_normal
: define the min and max delay to trasit between PLAY and NORMAL (integer)
min_transition_normal_sleep,max_transition_normal_sleep
: define the min and max delay to trasit between NORMAL and SLEEP (integer)
min_sleep_delay,max_sleep_delay
: define the min and max delay for the SLEEP state (double)
min_transition_find_play,max_transition_find_play
: define the min and max delay to trasit between FIND and PLAY (integer,it is expressed as seconds)
min_sleep_delay,max_sleep_delay
: define the min and max delay for sleeping (double)
freq_command
: frequency of the command loop (play follow by goTo+location) (integer)
min_delay_command,max_delay_command
: define the min and max delay for the Min and max delay for sending the play command (double)
Packages and files
There are 5 packages:
Sensoring
: contains the command.py and ball_detector.py files used to send user command and detect a colored ball
Knowledge
: contains the oracle.py file used to store all the knowledge of the application
Manager
: contains the command_manager.py file that implements the FSM of robot behaviors.
Simulation
: contains all the files necessary for running the simulation
Explore
: contains all the files of the explore lite package of ROS
Installation and running
In order to run this software, the following prerequisities are needed:
Before running the software, you must have all files as executable otherwise you can make them executable with the following command
cd <your_workspace>/src/Behavioral-Architecture-with-Real-Simulation-AutonomousNav
chmod +x sensoring/scripts/*
chmod +x knowledge/scripts/*
chmod +x manager/scripts/*
After that, you have to setup the parameter of the path of explore lite. To run the software you have to use two terminals due to a problem of ROS Noetic (it will print a lot of warning and you cannot see nothing about the application). In the first terminal
cd <your_workspace>
catkin_make
source devel/setup.bash
cd src/Behavioral-Architecture-with-Real-Simulation-AutonomousNav
roslaunch simulation simulation.launch
When the simulation is ready, in the other terminal
cd <your_workspace>
catkin_make
source devel/setup.bash
cd src/Behavioral-Architecture-with-Real-Simulation-AutonomousNav
roslaunch launch_file.launch
Working hypothesis and environment
The robot is a pet that interact with a human via the play command followed by goTo+location. The simulated enviroment is a house with 6 rooms: Entrance, Closet, Living room, Kitchen, Bathroom, Bedroom. The robot has 5 behaviours: PLAY,NORMAL,SLEEP,TRACK,FIND. The word "someTimes" is inteded as number of cycles for which it is executed a piece of code. The only transition that is implemented as elapsed time is the FIND to PLAY one. The joint associated with the laser has been positioned so as not to be resting on the chassis but "floating" as there are problems in the correct use of the laser if the latter is positioned on the chassis. Since the context of the application is to move in a house, it is acceptable to have a tolerance of 1 meter, regarding the position along x and y, when the robot reaches a goal. This allows you to speed up the reception of the goal achievement message. The orientation of the robot when it has to reach a position is fixed at -1.57
System's features
- Specify different dimensions of the map
- It is possibile to define different delays for the simulation
- It is possibile to define different position of the "home" inside the arena before start the simulation
- It is possible to visualize the states transition in the shell
- The robot will notify if it will reach the target position and it is possibile to visualize it in the shell (the position that the robot has reached)
- It is possibile to see the camera of the robot in a separated window with the possibility to see a circle around the detected ball
- All the delays are random values between the defined ranges
- The robot is able to move autonomously, given a goal position, in the environment without colliding with obstacles
- The robot is able to recognize different colored balls
- When the robot sees a ball not previously seen, it will always and only apply the mask corresponding to the color of the recognized ball, avoiding wasting time applying all of them
- The robot can autonomously direct to a user-defined location if the latter has already been visited. If the location has not been visited, it is able to discover the environment on its own to try to find it
- The knowledge used in the application is managed by a single node in order to avoid inconsistencies
System's limitations
- If the goal is behind the robot, the robot continues straight until it encounters an obstacle and then rotates towards the goal
- The robot does not move immediately when there is the first transition to the FIND state
- The robot sometimes rears during the TRACK state
- The robot, after having explored the entire environment without finding the corresponding ball, gets stuck if the transition between FIND and PLAY is of long duration
- The positions generated randomly during the NORMAL state can be outside the environment
- The robot crashes into the wall during the TRACK state if the latter is approached in a certain way causing the chassis to lock into the wall
Possible technical improvements
- Implement a ball track using the laser values "intelligently"
- Use another environment exploration technique
- Use the information of the generated map to be able to generate positions inside it, preventing the robot from not reaching them
- Finding the right parameters to move base in order to have a good compromise between all robot behaviors
- Use an incremental gain to guide the robot towards the ball to avoid, in particular, that the transition to the TRACK state generates a strong push in the robot causing it, at times, to wheelie
- Create an ontology instead of a simple class that represents the entire knowledge of the application
Author and contact
Simone Voto - simon.nosp@m.e.vo.nosp@m.to98@.nosp@m.gmai.nosp@m.l.com


com.google.enterprise.connector.salesforce
Class BaseDocumentList
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList
com.google.enterprise.connector.salesforce.BaseDocumentList
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, java.lang.Iterable, java.util.Collection, java.util.List, java.util.RandomAccess
public class BaseDocumentList
extends java.util.ArrayList
Class implementing the actual a DocumentList object to return back to the connector
A document list object is what is returned back to the connector after it invokes traverse() on
The documentlist object contains a checkpoint string variable the connector uses to store the
last 'state' of the document list that was sent.
the add() method is inherited on the ArrayList is used to populate the internal arraylist
For the salesforce documentlist implementation, the documentlist contains all the documents
retrieved from a query set at the time quartz is invoked. That means, all the checkpoints are the same
(except for the .00xx extension which just signifies the number of round trips done by the queryresponse
given the query cursor).
The document checkpoint for the salesforce implementation is just a string in 'numeric' format
like<PHONE_NUMBER>41010.0015 the .0015 extension is the batch ran on that sync date. The checkpoint
number is stored in the /WEB-INF/connectors/salesforce-connector//_state.txt
- See Also:
- Serialized Form
| Fields inherited from class java.util.AbstractList |
modCount |
Constructor Summary
BaseDocumentList(int size,
java.lang.String checkpoint)
Default constructor for a document List |
| Methods inherited from class java.util.ArrayList |
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeRange, retainAll, set, size, subList, toArray, toArray, trimToSize |
| Methods inherited from class java.util.AbstractList |
equals, hashCode |
| Methods inherited from class java.util.AbstractCollection |
containsAll, toString |
| Methods inherited from class java.lang.Object |
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface java.util.List |
containsAll, equals, hashCode |
BaseDocumentList
public BaseDocumentList(int size,
java.lang.String checkpoint)
- Default constructor for a document List
- Parameters:
size
- size of the documentlist to initialize.checkpoint
- the common/shared checkpoint for this entire arraylist
checkpoint
public java.lang.String checkpoint()
throws RepositoryException
- Throws:
RepositoryException
nextDocument
public Document nextDocument()
throws RepositoryException
- Throws:
RepositoryException


{%load static%}
A-Z news Pvt Ltd. is an Indian news company based in Bengaluru, India. Founded by Sachin Bansal and Binny Bansal in 2007, the company initially focused on book sales, before expanding into other product categories such as consumer electronics, fashion, and lifestyle products. The service competes primarily with Amazon' s Indian subsidiary, and the domestic rival Snapdeal.[5][6] as of March 2017, Flipkart held a 39.5% market share of India's e-commerce industry.[7] Flipkart is significantly dominant in the sale of apparel (a position that was bolstered by its acquisitions of Myntra and Jabong.com), and was described as being "neck and neck" with Amazon in the sale of electronics and mobile phones.[8] Flipkart also owns PhonePe, a mobile payments service based on the Unified Payments Interface (UPI). In August 2018, U.S.-based retail chain Walmart acquired a 77% controlling stake in Flipkart for US$16 billion, valuing it at $22 billion.
Learn more » Home


autom
ai
te
Styleguide
Typography
Variables
Home
Features
Pricing
About
An example Jekyll Post
Aug 11, 2016 •
Jekyll


A youth asked an old man: “When I am invited to dine, what should I do? Should I eat only a little food, or a great deal of it?”
And the old man said to him: "A great deal. Because if it was your friend who invited you, he'll be very glad; but it was an enemy, he'll be sorry."
When the boy heard this he laughed. The old man said to him: "Why do you laugh?"
Boy: “I was reminded of what I heard about black Maimundus. For a certain old man asked him how much he could eat. And he said to him: 'From whose meal, mine or someone else's?'
And he said: 'From yours.'
Maimundus: 'As little as I can.'
The old man: 'How much from someone else's?'
Maimundus: 'As much as I can.'
Youth: “It pleases me a great deal to hear about him, because everything about him is laughable. And if you can call to mind anything about his sayings or deeds, please tell me, and I will take it as a gift.”
Old man: “One night his master ordered him to bar the door. In fact he, overwhelmed with laziness, could not bring himself to rise and therefore said that the door had been barred. Now when morning came, the master told his servant: 'Maimundus, open the door.' And the servant told him: 'Master, I knew that you would want it to be opened today and therefore I didn't want to bar it at a late hour.' That was when the master first realized that he had given up on account of his laziness. He said: 'Get up and do your work, because it is day and the sun is already up.' The servant said: 'Master, if the sun is up then give me food.'  Servant: 'If it's night then let me sleep.'
On another night the master said to his servant: 'Maimundus, get up and see whether or not it is raining.' But in fact, he called the dog, that was lying outside the door, and after it came in he felt the dog's feet. And, after finding that they were dry, said to his master: 'Master, it isn't raining'.
On another night the master asked his servant whether there was a fire in the house. In fact he called the cat and felt whether or not it was warm. And when he found it cold, said: 'No, master.'”
The youth: “I heard about his laziness; but I wish to hear about his talkativeness.”
The old man: “It was said that his master was coming from the market, rejoicing about his wealth, because he had made a large profit. And the servant Maimundus came out to meet his master. When his master saw him, he feared that he'd recount some gossip, as was his custom, and said to him: Take care not to tell me evil gossip.'
Servant: 'I won't tell evil gossip, but the dog, our little Bispella, has died.'
His master said to him: 'How did she die?'
The servant: 'Our mule was frightened and broke his halter and as he ran away he trampled the dog under his feet.'
The master: 'What happened to the mule?'
Servant: 'He fell into a well, and died.'
Master: 'How was the mule frightened?'

Master: 'How is his mother doing?'
Servant: 'Because of too much grief for her child, she has died.'
Master: 'Who is guarding the house?'
Servant: 'No one, because it has turned to ashes, along with everything that was in it.'
Master: 'How was it burnt down?'
Servant: 'On that very same night that the mistress died, the waiting woman, who was keeping watch over her, forgot a candle in the bed chamber, and so the whole house burned down.'
Master: 'Where is the waiting woman?'

Master: 'How did you escape since you are so slow?'
Servant: 'When I saw the dead waiting woman I fled.'


| Package | Description |
|---|---|
| negotiator | |
| negotiator.bidding | |
| negotiator.boaframework | |
| negotiator.qualitymeasures |
| Modifier and Type | Method and Description |
|---|---|
BidDetails |
BidHistory.getBestBidDetails()
Returns the bid with the highest utility stored in the history.
|
BidDetails |
BidHistory.getBestDiscountedBidDetails(AbstractUtilitySpace util)
Returns the bid with the highest discounted utility stored in the
history.
|
BidDetails |
BidHistory.getFirstBidDetails()
Returns the first bid stored in the history
|
BidDetails |
BidHistory.getLastBidDetails()
Returns the last bid details added to the history.
|
BidDetails |
BidHistory.getMedianUtilityBid() |
BidDetails |
BidHistory.getRandom() |
BidDetails |
BidHistory.getRandom(java.util.Random rand) |
BidDetails |
BidHistory.getWorstBidDetails()
Returns the bid with the lowest utility stored in the history.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<BidDetails> |
BidHistory.getHistory()
Returns the full history.
|
java.util.List<BidDetails> |
BidHistory.getNBestBids(int count)
Returns a list of the top N bids which the opponent has offered.
|
| Modifier and Type | Method and Description |
|---|---|
void |
BidHistory.add(BidDetails bid)
Add an offered bid o the history.
|
| Constructor and Description |
|---|
BidHistory(java.util.List<BidDetails> bids)
Creates a bid history given an array of bids offered by the negotiation
agent.
|
| Modifier and Type | Method and Description |
|---|---|
int |
BidDetailsStrictSorterUtility.compare(BidDetails b1,
BidDetails b2)
Comperator.
|
int |
BidDetailsSorterUtility.compare(BidDetails b1,
BidDetails b2)
Comperator.
|
int |
BidDetailsSorterTime.compare(BidDetails b1,
BidDetails b2)
Comperator.
|
int |
BidDetails.compareTo(BidDetails other)
A comparator for BidDetails which order the bids in
reverse natural order of utility.
|
| Modifier and Type | Field and Description |
|---|---|
protected BidDetails |
OfferingStrategy.nextBid
The next bid the agent plans to present
|
| Modifier and Type | Field and Description |
|---|---|
protected java.util.List<BidDetails> |
OutcomeSpace.allBids
List of all possible bids in the domain
|
| Modifier and Type | Method and Description |
|---|---|
abstract BidDetails |
OfferingStrategy.determineNextBid()
Determines the next bid the agent will offer to the opponent
|
abstract BidDetails |
OfferingStrategy.determineOpeningBid()
Determines the first bid to be offered by the agent
|
abstract BidDetails |
OMStrategy.getBid(java.util.List<BidDetails> bidsInRange)
Returns a bid selected using the opponent model from the given set of
similarly preferred bids.
|
BidDetails |
OMStrategy.getBid(OutcomeSpace space,
Range range)
Returns a bid selected using the opponent model with a utility in the
given range.
|
BidDetails |
OMStrategy.getBid(SortedOutcomeSpace space,
double targetUtility)
Use this method in case no range is specified, but only a target utility.
|
BidDetails |
SortedOutcomeSpace.getBidNearUtility(double utility)
Gets a BidDetails which is close to the utility
|
BidDetails |
OutcomeSpace.getBidNearUtility(double utility)
gets a BidDetails which is closest to the given utility
|
BidDetails |
NegotiationSession.getMaxBidinDomain()
Returns the best bid in the domain.
|
BidDetails |
SortedOutcomeSpace.getMaxBidPossible() |
BidDetails |
OutcomeSpace.getMaxBidPossible() |
BidDetails |
NegotiationSession.getMinBidinDomain()
Returns the worst bid in the domain.
|
BidDetails |
SortedOutcomeSpace.getMinBidPossible() |
BidDetails |
OutcomeSpace.getMinBidPossible() |
BidDetails |
OfferingStrategy.getNextBid() |
| Modifier and Type | Method and Description |
|---|---|
java.util.List<BidDetails> |
OutcomeSpace.getAllOutcomes() |
java.util.List<BidDetails> |
SortedOutcomeSpace.getBidsinRange(Range r)
gets a list of BidDetails that have a utility within the range
|
java.util.List<BidDetails> |
OutcomeSpace.getBidsinRange(Range range)
Returns a list of bids (from possibleBids) that have a utility within the
given range.
|
| Modifier and Type | Method and Description |
|---|---|
void |
OfferingStrategy.setNextBid(BidDetails nextBid)
Set the next bid of the agent.
|
| Modifier and Type | Method and Description |
|---|---|
abstract BidDetails |
OMStrategy.getBid(java.util.List<BidDetails> bidsInRange)
Returns a bid selected using the opponent model from the given set of
similarly preferred bids.
|
| Modifier and Type | Method and Description |
|---|---|
BidDetails |
NegotiationSessionWrapper.getMaxBidinDomain() |
BidDetails |
NegotiationSessionWrapper.getMinBidinDomain() |
| Modifier and Type | Method and Description |
|---|---|
java.util.ArrayList<Pair<java.lang.Integer,BidDetails>> |
Trace.getOfferedBids() |
| Modifier and Type | Method and Description |
|---|---|
void |
Trace.setOfferedBids(java.util.ArrayList<Pair<java.lang.Integer,BidDetails>> offeredBids) |


public class BaseGrammar extends java.lang.Object implements Grammar, java.io.Serializable, SpeechEventDispatcher
| Modifier and Type | Field and Description |
|---|---|
BaseRecognizer |
recognizer |
GLOBAL, RECOGNIZER_FOCUS, RECOGNIZER_MODAL
| Constructor and Description |
|---|
BaseGrammar(BaseRecognizer rec,
java.lang.String name)
Create a new BaseGrammar
|
| Modifier and Type | Method and Description |
|---|---|
void |
addGrammarListener(GrammarListener listener)
Add a new GrammarListener to the listener list if it is not already in the list.
|
void |
addResultListener(ResultListener listener)
Add a new ResultListener to the listener list if it is not already in the list.
|
void |
dispatchSpeechEvent(SpeechEvent event)
Dispatch a SpeechEvent.
|
void |
fireAudioReleased(ResultEvent event)
Utility function to send a AUDIO_RELEASED event to all result listeners.
|
void |
fireGrammarFinalized(ResultEvent event)
Utility function to send a GRAMMAR_FINALIZED event to all result listeners.
|
void |
fireResultAccepted(ResultEvent event)
Utility function to send a RESULT_ACCEPTED event to all result listeners.
|
void |
fireResultCreated(ResultEvent event)
Utility function to send a RESULT_CREATED event to all result listeners.
|
void |
fireResultRejected(ResultEvent event)
Utility function to send a RESULT_REJECTED event to all result listeners.
|
void |
fireResultUpdated(ResultEvent event)
Utility function to send a RESULT_UPDATED event to all result listeners.
|
void |
fireTrainingInfoReleased(ResultEvent event)
Utility function to send a TRAINING_INFO_RELEASED event to all result listeners.
|
int |
getActivationMode()
Get the activation mode of this Grammar.
|
java.lang.String |
getName()
Get the name of the Grammar.
|
Recognizer |
getRecognizer()
Return a reference to the recognizer that owns this Grammar.
|
boolean |
isActive()
Determine if the Grammar is active or not.
|
boolean |
isEnabled()
Determine if this Grammar is enabled or not.
|
void |
postAudioReleased(Result result)
Utility function to generate AUDIO_RELEASED event and post it to the event queue.
|
void |
postGrammarActivated()
Utility function to generate GRAMMAR_ACTIVATED event and post it to the event queue.
|
void |
postGrammarChangesCommitted()
Utility function to generate GRAMMAR_CHANGES_COMMITTED event and post it to the event queue.
|
void |
postGrammarDeactivated()
Utility function to generate GRAMMAR_DEACTIVATED event and post it to the event queue.
|
void |
postGrammarFinalized(Result result)
Utility function to generate GRAMMAR_FINALIZED event and post it to the event queue.
|
void |
postResultAccepted(Result result)
Utility function to generate RESULT_ACCEPTED event and post it to the event queue.
|
void |
postResultCreated(Result result)
Utility function to generate RESULT_CREATED event and post it to the event queue.
|
void |
postResultRejected(Result result)
Utility function to generate RESULT_REJECTED event and post it to the event queue.
|
void |
postResultUpdated(Result result)
Utility function to generate RESULT_UPDATED event and post it to the event queue.
|
void |
postTrainingInfoReleased(Result result)
Utility function to generate TRAINING_INFO_RELEASED event and post it to the event queue.
|
void |
removeGrammarListener(GrammarListener listener)
Remove a GrammarListener from the listener list.
|
void |
removeResultListener(ResultListener listener)
Remove a ResultListener from the listener list.
|
void |
setActivationMode(int mode)
Set the activation mode of this Grammar.
|
void |
setEnabled(boolean enabled)
Set the enabled property of the Grammar.
|
void |
setName(java.lang.String name)
Set the name of this Grammar.
|
public transient BaseRecognizer recognizer
public BaseGrammar(BaseRecognizer rec, java.lang.String name)
rec
- the BaseRecognizer for this Grammar.name
- the name of this Grammar.public Recognizer getRecognizer()
getRecognizer
in interface Grammar
public java.lang.String getName()
public void setEnabled(boolean enabled)
setEnabled
in interface Grammar
enabled
- the new desired state of the enabled property.public boolean isEnabled()
public void setActivationMode(int mode) throws java.lang.IllegalArgumentException
setActivationMode
in interface Grammar
mode
- the new activation mode.java.lang.IllegalArgumentException
public int getActivationMode()
getActivationMode
in interface Grammar
public boolean isActive()
public void addGrammarListener(GrammarListener listener)
addGrammarListener
in interface Grammar
listener
- the listener to add.public void removeGrammarListener(GrammarListener listener)
removeGrammarListener
in interface Grammar
listener
- the listener to remove.public void addResultListener(ResultListener listener)
addResultListener
in interface Grammar
listener
- the listener to add.public void removeResultListener(ResultListener listener)
removeResultListener
in interface Grammar
listener
- the listener to remove.public void postGrammarActivated()
public void postGrammarChangesCommitted()
public void postGrammarDeactivated()
public void postAudioReleased(Result result)
public void fireAudioReleased(ResultEvent event)
public void postGrammarFinalized(Result result)
public void fireGrammarFinalized(ResultEvent event)
public void postResultAccepted(Result result)
public void fireResultAccepted(ResultEvent event)
public void postResultCreated(Result result)
public void fireResultCreated(ResultEvent event)
public void postResultRejected(Result result)
public void fireResultRejected(ResultEvent event)
public void postResultUpdated(Result result)
public void fireResultUpdated(ResultEvent event)
public void postTrainingInfoReleased(Result result)
public void fireTrainingInfoReleased(ResultEvent event)
public void setName(java.lang.String name)
public void dispatchSpeechEvent(SpeechEvent event)
dispatchSpeechEvent
in interface SpeechEventDispatcher
event
- the event to dispatch