Test infrastructure
This document describes the Batik test infrastructure whose goals are to:
- make it easy to detect regressions,
- make it easy to run test suites, and
- make it easy to write new tests and add them to an existing test suite.
The intent for the test infrastructure is that it grows along with Batik and keeps monitoring the health of the code base.
While the test suites in the infrastructure will be run every day by build/test machines, they are also intended to help the commiters and developers get confident that their code modifications did not introduce regressions.
The test infrastructure
High-level interfaces
The following are the high level interfaces in the infrastructure.
- Test
-
A Test is performing whatever check is needed in its run method, and each run produces a TestReport.
- TestReport
-
A TestReport describes whether a Test run passed or failed and provides a description of the failure in terms of an error code (unique in the context of a given Test) and a set of key/value pairs.
- TestSuite
-
A TestSuite is a test aggregation which can run a set of Test instances.
- TestReportProcessor
-
A TestReportProcessor is used to analyze a TestReport. A specific implementation can choose to create graphs, send an email or write an HTML file.
Default implementations
The test infrastructure comes with a number of default implementations for the interfaces described above. Specifically:
- AbstractTest
-
This implementation of the Test interface is intended to make it easier to write a “safe” Test implementation. See the Writing new tests section for a description of how to use that class.
- DefaultTestReport
-
This class provides a simple implementation of the TestReport interface that most Test implementations will be able to use. See the Writing new tests section for more details.
- DefaultTestSuite
-
This class provides an implementation of the TestSuite interface and makes it easy to aggregate Test instances.
- SimpleTestReportProcessor
-
This class is a sample TestReportProcessor implementation that simply traces the content of a TestReport to an output stream.
- TestReportMailer
-
This is another implementation of the TestReportProcessor interface that emails a test report to a list of destination e-mail addresses.
XML implementations
The test infrastructure is using XML-out (and XML-in too, see the Running a test suite section) as a favorite way to generate test reports. The XMLTestReportProcessor implementation of the TestReportProcessor interface. It outputs reports in XML in a configurable directory.
The XMLTestReportProcessor can notify an XMLReportConsumer when it has created a new report. There is one implementation of that interface that can run an XSL stylesheet on the XML report (e.g., to generate an HTML report), called XSLXMLReportConsumer. This is used by the regard rule in the Batik build to produce an HTML report for the default regression test suite.
Managing test suites
The infrastructure is designed to make it easy to create, update and modify test suites. This section describes how to describe a set of tests to be run and how to actually run that test suite.
Describing a test suite
Test suites can be described in XML (XML-in refered to earlier in this document). The general format for describing a test suite is:
<testSuite id="testSuiteA" name="MyFavoriteTestSuite"> <!-- Set of tests to be run --> <test id="t1" class="myFavoriteTestClassA"/> <test id="t2" class="myFavoriteTestClassB"/> <test id="t3" class="myFavoriteTestClassC"/> </testSuite>
Note that tests can be grouped in testGroup elements, which can have their own id and class attributes. This is useful because it allows developers to run specific tests or test groups by specifying their IDs. In addition, because the class attribute is inherited by a test element from its parent, testGroups allow the developers to group tests which use the same class and specify that class on the group.
Test instances listed in a test suite can have arguments passed to them, as defined by the test class. These arguments are passed in using arg child elements.
The following example shows a test suite with two tests:
<testSuite id="sampleTestSuite" name="SAMPLE TEST SUITE"> <!-- ========================================================================== --> <!-- Validates that the SVGRenderingAccuracyTest class is operating as expected --> <!-- ========================================================================== --> <test id="renderingAccuracyTest" class="org.apache.batik.test.svg.SVGRenderingAccuracyTestValidator"/> <!-- ========================================================================== --> <!-- Rendering regression tests --> <!-- ========================================================================== --> <test id="anne.svg" class="org.apache.batik.test.svg.SVGRenderingAccuracyTest"> <arg class="java.net.URL" value="file:samples/anne.svg"/> <arg class="java.net.URL" value="file:test-references/samples/solaris/anne.png"/> <property name="VariationURL" class="java.net.URL" value="file:test-references/samples/variation/anne.png"/> <property name="SaveVariation" class="java.io.File" value="test-references/samples/variation-candidate/anne.png"/> </test> </testSuite>
Running a test suite
Yet another XML file describes which test to run and how to process the generated test reports. The general syntax is something like:
<testRun id="regard" name="Test Run Name Here"> <!-- =================================== --> <!-- Descriptions of processors that --> <!-- will process the results of the --> <!-- test suite --> <!-- =================================== --> <testReportProcessor class="myFavoriteReportProcessorA"/> <testReportProcessor class="myFavoriteReportProcessorB"/> <!-- =================================== --> <!-- Set of test suite to run. They will --> <!-- produce TestReports. --> <!-- =================================== --> <testSuite href="http://url.to.my.first.test.suite"/> <testSuite href="http://url.to.my.second.test.suite"/> </testRun>
testRun elements can be nested. In a nutshell, you can specify a set of TestReportProcessors which should process the TestReport generated by the TestSuite built from the list of Test instances described in the files referenced by the testSuite elements.
For example:
<testRun name="Batik Standard Regression Test Run"> <testRun name="REGARD"> <testReportProcessor class="org.apache.batik.test.xml.XMLTestReportProcessor"> <arg class="org.apache.batik.test.xml.XSLXMLReportConsumer"> <!-- Stylesheet --> <arg class="java.lang.String" value="file:test-resources/org/apache/batik/test/svg/HTMLReport.xsl"/> <!-- Ouput Directory --> <arg class="java.lang.String" value="test-reports/html"/> <!-- Output file prefix --> <arg class="java.lang.String" value="RegardResult"/> <!-- Output file suffix --> <arg class="java.lang.String" value=".html"/> </arg> </testReportProcessor> <testSuite href="file:test-resources/org/apache/batik/test/samplesRendering.xml"/> <testSuite href="file:test-resources/org/apache/batik/svggen/regsvggen.xml"/> <testSuite href="file:test-resources/org/apache/batik/test/unitTesting.xml"/> </testRun> </testRun>
There is a rule in Batik's build.xml file to run a test suite defined in an XML file as the one above. At the command line, type the following, for Windows:
build runtestsuite path/to/my/newly/created/testSuite.xml
and for Unix:
build.sh runtestsuite path/to/my/newly/created/testSuite.xml
In addition, the regard rule runs a specific set of tests by default, so that you do not need to pass any testRun file argument.
regard is the project’s safeguard against regressions.
regard: the Batik regression test suite
The regard test suite contains all the regression tests for the Batik project. The regard tool is a specific test suite description, regard.xml (which you can find in the test-resources/org/apache/batik/test directory). That file contains a set of test suite files which sould be run.
The following describes how to use the regard tool and some of the most important tests in the regard test suite.
Running regard
The regard tool lets you run either all the tests or any specific test you want in the test suite. To run all the tests in the regard test suite, type the following at the command line, for Windows:
build regard
and for Unix:
build.sh regard
To run a specific test in the test suite, type the qualified test ID or any substring of that ID:
build.sh regard id-list
For example:
build.sh regard unitTesting.ts batikFX.svg
will run all the tests with an ID containing unitTesting.ts (i.e., all the test selection unit testing, see test-resources/org/apache/batik/gvt/unitTesting.xml) and the accuracy rendering test on batikFX.svg (because it is the only test with batikFX.svg in its ID).
Rendering accuracy tests
There is a Test implementation, SVGRenderingAccuracyTest, which checks that Batik’s rendering of an SVG document stays accurate. It compares reference images with the rendering Batik produces and reports any discrepency.
An SVGRenderingAccuracyTest’s constructor configuration is made of:
- the URL to the SVG it should render, and
- the URL to a reference PNG file.
The default behavior for the test is to render the SVG into a PNG file and compare with the reference image. If there is no difference, the test passes. Otherwise, it fails.
In addition to this default behavior, the SVGRenderingAccuracyTest can take an optional configuration parameter, an image URL defined as an “accepted” variation around the reference image. If such a variation image is specified, then the test will pass if:
- the rasterized SVG is equal to the reference image, or
- the difference between the rasterized SVG and the reference image is exactly the same as the accepted variation image.
Finally, to ease the process of creating “accepted” variation images, SVGRenderingAccuracyTest can take an optional file name (called saveVariation) describing where the variation between the rasterized SVG and the reference image will be stored in case the rasterized SVG is different from the reference image and the difference is not equal to the variation image, if any was defined. That way, it becomes possible to run a test, and if that test fails, the developer can review the saveVariation image and decide whether it is an acceptable variation or not and use it in subsequent test run as the “accepted” variation image, which will allow the test to pass if that exact same variation remains constant.
Day to day use of regard
Initial set up
To set up the test environment the first time, you need to:
- check out the latest version of the code, including the test-* directories (sources, resources and references) and the build.xml file, and
-
run the regard test suite once:
build regard
This will generate an HTML test report (report.html) in the test-reports/yyyy.mm.dd-HHhMMmSSs/html directory. Depending on how much different text rendering is between your work environment and the environment used to create the reference images, you will get more or less test that will fail, because of differences in the way text is rendered on various platforms and because of fonts not being available on some platforms. For example, a running the test on a Windows 2000 laptop against images generated on the Solaris platform caused 16 tests out of 71 to fail.
Review the HTML report to make sure that the differences are really due to text variations. This will usually be the case and you can make sure by clicking on the diff images contained in the report to see them at full scale. You can you can then turn the “candidate” variations generated by the test into “accepted” variations by moving files from one directory to another:
mv test-references/samples/candidate-variations/*.png test-references/samples/accepted-variations/*.png mv test-references/samples/tests/candidate-variations/*.png test-references/samples/tests/accepted-variations/*.png
You can now run the test again:
build regard
Check the newly generated HTML report in the test-reports/html directory: there should no longer be any test failure.
Daily usage
Once the intial set up has been done, you can use regard by simply updating your SVN copy, including the test-references. If no change occurs, your test will keep passing with your reference images. If a test fails (e.g., if someone checks in a new reference image from a platform different than the one you are using, you will have to check if it is because of system specific reasons or if there is a bigger problem.
SVG generator tests
Regard contains over 100 tests for checking regressions on the SVG generator. If you use svggen as an argument to regard, all the SVG generator tests will be run (because regard.xml points to test-resources/org/apache/batik/svggen/regsvggen.xml, which is a test suite description for the SVG generator and that file’s root testSuite element has the “svggen” ID).
Writing new tests
Writing a new test involves either configuring a new test or writing a new Test class. In both cases, you will need to add an entry to a test suite’s XML description. This section uses two test suites as an example: the “regard” test suite to show how to configure a new test and the “unitTests” test suite to show how to add a new Test implementation.
Adding a new test configuration
Imagine that you add a cool new test case to the samples directory, such as linking-viewBox.svg. In order to check for regressions on that file you can add the following entry:
<test id="anne.svg" class="org.apache.batik.test.svg.SVGRenderingAccuracyTest"> <arg class="java.net.URL" value="file:samples/tests/linkingViewBox.svg"/> <arg class="java.net.URL" value="file:test-references/samples/tests/solaris/linkingViewBox.png"/> <property name="VariationURL" class="java.net.URL" value="file:test-references/samples/tests/variation/linkingViewBox.png"/> <property name="SaveVariation" class="java.io.File" value="test-references/samples/tests/variation-candidate/linkingViewBox.png"/> </test>
to the test-resources/org/apache/batik/test/samplesRendering.xml test suite description, the description of the regard test suite. If you have access to the build machine where the reference images are typically generated, you can check 0n the reference image in test-references/samples/tests. Otherwise (and this is OK), you can let the test fail the first time it is run on the build/test machine and that will be a reminder for whoever is responsible for that machine that a valid reference image should be checked in.
Writing a new test
Imagine you want to validate some aspect of your code, and let's take the bridge error handling as an example. You could create a new class in the test-sources directory, in test-sources/org/apache/batik/bridge in our example, and let's call it ErrorHandlingTest. To simplify the implementation of the Test interface, you can choose to derive from the AbstractTest class and generate a DefaultTestReport.
While writing the Test you may want to use your own XML file with just your test, for example:
<testReportProcessor class="org.apache.batik.test.SimpleTestReportProcessor"/> <test class="org.apache.batik.bridge.ErrorHandlingTest"> <!-- Expected error code --> <arg class="java.lang.String" value="expected.error.code"/> <!-- Input SVG that this test manipulates to generate error conditions --> <arg class="java.net.URL" value="file:test-resources/org/apache/batik/bridge/ErrorHandlingBase.svg"/> <!-- Id of the element to test --> <arg class="java.lang.String value="rectangle6"/> <!-- Attribute to test --> <arg class="java.lang.String value="x"/> <!-- Value to test on the attribute --> <arg class="java.lang.String value="abcd"/> </test>
This is just an example and does not pretend to be the right way to go about implementing or specifying this specific type of test. Once done with tuning the test, one or multiple configurations for the test can be added to the relevant test suite’s XML description. In some cases, it will be interesting to create a separate test suite.


Based on the most excellent Logo Interpreter by Joshua Bell.
- Data Types
- Data Structure Primitives
- Communication
- Arithmetic
- Logical Operations
- Graphics
- Workspace Management
- Control Structures
Types
"word
- Text string (terminated by whitespace)
:variable
- Input definition/variable reference
[ item ... ]
- List
( expression )
- Parenthesis can be used to group expressions
procedure input ...
- Call procedure with default number of inputs
( procedure input ... )
- Call procedure with an arbitrary number of inputs
2. Data Structure Primitives
2.1 Constructors
word expr expr
(word expr ...)
- Concatenate two (or more) words into one word, separated with spaces
list thing1 thing2
(list thing1 thing2 ...)
- Create a new list from the inputs
sentence thing1 thing2
(sentence thing1 thing2 ...)
se thing1 thing2
(se thing1 thing2 ...)
- Create a new list from the inputs (if non-lists) or members of the inputs (if lists)
fput thing list
lput thing list
- Outputs list, but with thing added as a new first/last item
combine thing1 thing2
- If thing2 is a word, like
word
; otherwise, like fput
reverse list
- Outputs a list with the items in reverse order
gensym
- Outputs a unique string, e.g. G1, G2, etc.
2.2 Data Selectors
first list
last list
- Outputs the first or last item from the list, respectively
butfirst list
bf list
butlast list
bl list
- Outputs the list, except for the first/last item
firsts listoflists
- Outputs a list of the first item of each sublist
butfirsts listoflists
bfs listoflists
- Outputs a list of sublists without the first item
pick list
- Outputs one item from a list, at random
item index list
- Outputs the indexth item of the list
remove thing list
- Outputs the list with any occurences of thing removed
remdup list
- Outputs the list with duplicates removed
2.3 Data Mutators
push stackname thing
pop stackname
- Push to/pop from a stack i.e. list variable, e.g.
make "s []
then push "s 1
. Stacks grow from the front.
queue stackname thing
dequeue stackname
- Add/remove from a queue i.e. list variable, e.g.
make "q []
then queue "q 1
. Queues grow from the end
2.4 Predicates
Predicates return 1 (true) or 0 (false)
wordp thing
word? thing
listp thing
list? thing
numberp thing
number? thing
- Test if thing is a word, list, or number respectively.
equalp expr expr
equal? expr expr
expr = expr
notequalp expr expr
notequal? expr expr
expr <> expr
- Equality/inequality tests. Compares strings, numbers, or lists (equal if length and all members are equal).
emptyp expr
empty? expr
- Test if thing is an empty list or empty string.
beforep thing1 thing2
before? thing1 thing2
- Test string collation order.
memberp thing list
member? thing list
- Test if thing is equal to any member of list.
substringp thing1 thing2
substring? thing1 thing2
- Test if thing1 is a substring of thing2.
2.5 Queries
count thing
- Outputs length of a list or number of characters in a string
ascii expr
- Outputs ASCII (actually, Unicode) code point for first character of string
char expr
- Outputs Unicode character at specified code point
uppercase expr
lowercase expr
- Outputs string converted to upper/lowercase
3. Communication
3.1 Transmitters
print thing
pr thing
- (
print thing1 thing2 ...)
- (
pr thing1 thing2 ...)
- Print inputs to the text screen, separated by spaces, and followed by a newline.
Square brackets are only put around sublists.
type thing
- (
type thing1 thing2 ...)
- Like
print
but with no trailing newline.
show thing
- (
show thing1 thing2 ...)
- Like
print
but with square brackets around list inputs.
3.2 Receivers
readword
(readword promptstr)
- Prompt the user for a line of input. The result (including spaces) is the single word output.
3.4 Terminal Access
cleartext
ct
- Clear the text screen.
4. Arithmetic
4.1 Numeric Operations
Inputs are numbers or numeric expressions, output is a number.
sum expr expr
(sum expr ...)
expr + expr
difference expr expr
expr - expr
product expr expr
(product expr ...)
expr * expr
quotient expr expr
(quotient expr)
expr / expr
power expr expr
expr ^ expr
-
Add, subtract, multiply, divide, and raise-to-the-power-of respectively.
A single input to quotient returns the reciprocal.
remainder expr expr
expr % expr
modulo expr expr
-
Outputs the remainder (modulus). For
remainder
and %
the result has the same sign as the first input; for modulo
the
result has the same sign as a the second input.
minus expr
- expr
-
Unary minus sign must begin a top-level expression, follow an infix
operator, or have a leading space and no trailing space.
abs num
- Absolute value
int num
round num
- Truncate or round a number, respectively.
sqrt expr
exp expr
log10 expr
ln expr
- Square root, e to the power of, common logarithm, and natural logarithm, respectively.
arctan expr
(arctan x y)
sin expr
cos expr
tan expr
- The usual trig functions. Angles are in degrees.
radarctan expr
(radarctan x y)
radsin expr
radcos expr
radtan expr
- The usual trig functions. Angles are in radians.
iseq first last
- Outputs a list with integers from first to last, inclusive
rseq first last count
- Outputs a list of count numbers from first to last, inclusive
4.2 Numeric Predicates
greaterp expr expr
greater? expr expr
expr > expr
greaterequalp expr expr
greaterequal? expr expr
expr >= expr
lessp expr expr
less? expr expr
expr <= expr
lessequalp expr expr
lessequal? expr expr
expr <= expr
- Greater than, greater than or equal to, less than, less than or equal to,
respectively. Inputs are numbers or numeric expressions, output is 1 (true) or 0 (false).
4.3 Random Numbers
random expr
- Outputs a random number from 0 through one less than expr
4.5 Bitwise Operations
bitand expr expr
(bitand expr ...)
bitor expr expr
(bitor expr ...)
bitxor expr expr
(bitxor expr ...)
bitnot expr
- Bitwise and, or, exclusive-or, and not, respectively.
ashift expr bitcount
- Arithmetic bit shift. If bitcount is negative, shifts to the right, preserving sign.
lshift expr bitcount
- Logical bit shift. If bitcount is negative, shifts to the right, zero-filling.
5. Logical Operations
true
- Outputs 1
false
- Outputs 0
and expr expr
(and expr ...)
or expr expr
(or expr ...)
xor expr expr
(xor expr ...)
not expr
- Logical "and", "or", "exclusive-or", and "not", respectively.
Inputs are numbers or numeric expressions, output is 1 (true) or 0 (false).
6. Graphics
An introduction to Turtle Geometry.
6.1 Turtle Motion
forward expr
fd expr
- Move turtle forward expr pixels
back expr
bk expr
- Move turtle backward expr pixels
left expr
lt expr
- Rotate expr degrees counterclockwise
right expr
rt expr
- Rotate expr degrees clockwise
setpos [ expr expr ]
setxy expr expr
setx expr
sety expr
- Move turtle to the specified location without drawing
setheading expr
seth expr
- Rotate the turtle to the specified heading
home
- Moves the turtle to center, pointing upwards
6.2 Turtle Motion Queries
pos
xcor
ycor
- Outputs the current turtle position as [ x y ], x or y respectively
heading
- Outputs the current turtle heading
towards [ expr expr ]
- Outputs the heading towards the specified [ x y ] coordinates
6.3 Turtle and Window Control
showturtle
st
- Show the turtle
hideturtle
ht
- Hide the turtle
clean
- Clear the drawing area
clearscreen
cs
- Same as clean and home together
wrap
- If the turtle moves off the edge of the screen it will continue on the other side.
(default)
window
- The turtle can move past the edges of the screen, unbounded.
fence
- The turtle attempts to move past the edge of the screen it will stop.
label expr
- Draw a word (same logic as
print
) on the graphics display at the turtle location
setlabelheight expr
- Set the height for text drawn by
label
, in pixels
6.4 Turtle and Window Queries
shownp
shown?
- Outputs 1 if the turtle is shown, 0 if the turtle is hidden
turtlemode
- Outputs
WRAP
, WINDOW
or FENCE
labelsize
- Outputs the height of text drawn by
label
, in pixels
6.5 Pen and Background Control
pendown
pd
- Turtle resumes leaving a trail
penup
pu
- Turtle stops leaving a trail
penpaint
penerase
penreverse
- Change the turtle drawing mode - paint (the default) leaves a colored trail, erase
restores the background, reverse inverts the background.
setpencolor logocolor
setpencolor csscolor
(setpencolor expr expr expr)
-
Set pen/text color. Color can be a standard Logo color number (0-15), CSS color string (CSS color names or #rrggbb), or in the 3-input version, r/g/b values in 0...99.
The standard Logo colors are:
| 0: black | 1: blue | 2: green | 3: cyan |
| 4: red | 5: magenta | 6: yellow | 7: white |
| 8: brown | 9: tan | 10: green | 11: aqua |
| 12: salmon | 13: purple | 14: orange | 15: gray |
setpensize expr
- Set pen width in pixels. If expr is a list, the first member is used.
6.6 Pen Queries
pendownp
pendown?
- Outputs 1 if the pen is down, 0 otherwise
penmode
- Outputs
PAINT
, ERASE
or REVERSE
pencolor
- Outputs the current pen color. This will be a CSS color string, not necessarily the value passed in.
pensize
- Outputs a two element list with the pen width and height (usually the same).
7. Workspace Management
7.1 Procedure Definition
to procname inputs ... statements ... end
- Define a new named procedure with optional inputs
def procname
- Outputs the definition of a named procedure as a string
7.2 Variable Definition
make varname expr
- Update a variable or define a new global variable. The variable name must
be quoted, e.g.
make "foo 5
name expr varname
- Like
make
but with the inputs reversed
local varname
(local varname ...)
- A subsequent
make
will create the variable(s) in the local scope instead of the global scope
localmake varname expr
- Define a variable in the local scope (shortcut for
local
then make
thing varname
- Outputs the value of variable.
:foo
is a shortcut for thing "foo
global varname
- Reserve the variable at the global scope. This doesn't do anything useful.
7.4 Workspace Predicates
Predicates return 1 (true) or 0 (false)
procedurep name
procedure? name
- Test if there is a procedure with the given name.
primitivep name
primitive? name
- Test if there is a built-in procedure with the given name.
definedp name
defined? name
- Test if there is a user-defined procedure with the given name.
namep name
name? name
- Test if there is a variable with the given name.
7.5 Workspace Queries
contents
- Outputs a list with two members. The first is a list of user-defined procedure names.
The second is a list of defined variables.
procedures
- Outputs a list of user-defined procedure names.
primitives
- Outputs a list of primitive procedure names.
globals
- Outputs a list of defined global variables.
names
- Outputs a list with two members. The first is an empty list.
The second is a list of defined variables.
7.7 Workspace Control
erase contentslist
- Takes a two member list, where the first is a list of user-defined procedure names to erase,
and the second is a list of defined variables to erase.
erall
- Erase all user-defined procedures and variables.
8. Control Structures
8.1 Control
run [ statements ... ]
- Run the specified statements once
runresult [ statements ... ]
- Run the specified statements once. If the statements return a value, the result is a
list with the value as a single member. Otherwise, the result is an empty list.
repeat expr [ statements ... ]
- Repeat statements expr times
forever [ statements ... ]
- Repeat statements forever. Used inside a user-defined procedure
that terminates with
output
or stop
repcount
- Outputs the current iteration number of the current
repeat
or forever
if expr [ statements ... ]
- Execute statements if the expression is non-zero
ifelse expr [ statements ... ] [ statements ... ]
- Execute first set of statements if the expression is non-zero, otherwise execute the second set
test expr
- Test the specified expression, save the result in the local scope for subsequent use by
iftrue
or iffalse
iftrue [ statements ...]
ift [ statements ...]
iffalse [ statements ...]
iff [ statements ...]
- Run the statements if the result of the last local
test
was non-zero (true) or zero (false) respectively.
stop
- End the running procedure with no output value
output expr
op expr
- End the running procedure and output the specified value
bye
- Terminate the program
.maybeoutput expr
- Like
output
if expr returns a value, like stop
otherwise
ignore expr
- Evaluate and ignore results of the expression
for controllist [ statements ...]
- Typical
for
loop. The controllist specifies three or four members:
the local varname, start value, limit value,
and optional step size.
do.while [ statements ...] expr
- Runs the specified statements at least once, and repeats while the expression is non-zero (true).
while expr [ statements ...]
- Runs the specified statements only while the expression remains non-zero (true).
do.until[ statements ...] expr
- Runs the specified statements at least once, and repeats while the expression is zero (false).
until expr [ statements ...]
- Runs the specified statements only while the expression remains zero (false).
8.2 Template-based Iteration
These higher-level procedures support only the "named procedure" form of template.
The first input is the name of a procedure to call.
apply procname list
- Call procname with the members of list as inputs
invoke procname input1
(invoke procname input1 ...)
- Call procname with the specified inputs as inputs
foreach procname list
- call procname for each item in the list
map procname list
- Outputs a list composed of the results of calling procname for each item in the list
filter procname list
- Outputs a list composed of the input list where procname called on the item returns non-zero (true)
find procname list
- Outputs the first item in list for which calling procname on it returns non-zero (true).
If not found, the empty list is returned.
reduce procname list
(reduce procname list initial)
- Call procname repeatedly with two inputs - the current value and the next list item. If initial is not specified, the first list element is used instead.
The section numbers are per the Berkeley Logo Reference Manual in Brian Harvey's Computer Science Logo Style volume 2: Advanced Techniques for ease
of comparison.


37
Elihu Proclaims God's Majesty
1 “At this also my heart trembles
and leaps out of its place.
2 Keep listening to the thunder of his voice
and the rumbling that comes from his mouth.
3 Under the whole heaven he lets it go,
and his lightning to the corners of the earth.
4 After it his voice roars;
he thunders with his majestic voice,
and he does not restrain the lightnings when his voice is heard.
5 God thunders wondrously with his voice;
he does great things that we cannot comprehend.
6 For to the snow he says, ‘Fall on the earth,’
likewise to the downpour, his mighty downpour.
7 He seals up the hand of every man,
that all men whom he made may know it.
8 Then the beasts go into their lairs,
and remain in their dens.
9 From its chamber comes the whirlwind,
and cold from the scattering winds.
10 By the breath of God ice is given,
and the broad waters are frozen fast.
11 He loads the thick cloud with moisture;
the clouds scatter his lightning.
12 They turn around and around by his guidance,
to accomplish all that he commands them
on the face of the habitable world.
13 Whether for correction or for his land
or for love, he causes it to happen.
14 “Hear this, O Job;
stop and consider the wondrous works of God.
15 Do you know how God lays his command upon them
and causes the lightning of his cloud to shine?
16 Do you know the balancings of the clouds,
the wondrous works of him who is perfect in knowledge,
17 you whose garments are hot
when the earth is still because of the south wind?
18 Can you, like him, spread out the skies,
hard as a cast metal mirror?
19 Teach us what we shall say to him;
we cannot draw up our case because of darkness.
20 Shall it be told him that I would speak?
Did a man ever wish that he would be swallowed up?
21 “And now no one looks on the light
when it is bright in the skies,
when the wind has passed and cleared them.
22 Out of the north comes golden splendor;
God is clothed with awesome majesty.
23 The Almighty—we cannot find him;
he is great in power;
justice and abundant righteousness he will not violate.
24 Therefore men fear him;
he does not regard any who are wise in their own conceit.”


The world of online payments can be more than a little confusing, and if you’re new to the game, you might have some questions regarding how it all works.
Clearhaus is happy to help and guide, feel free to book a meeting with us!


1 reference to GetAcceptedPaths
Microsoft.PowerShell.Commands.Management (1)
commands\management\WriteContentCommandBase.cs (1)
119
string[] paths =
GetAcceptedPaths
(Path, currentContext);


The power suplied versus load resistance is:
$$ P_L = I^2R_L $$where I is the current supplied to a load. This current can be calculated by Ohm's Law:
$$ I = \frac{V}{R_S+R_L} $$where \( R_S \) is the internal resistance of the powersupply and \( R_L \) is the load resistance.
Assume that:
Compute and plot \( P_L \) versus \( R_L \) for \( R_S \) = 25, 50, 75, 100 \( \Omega \)


36+ 2012 Toyota Tacoma Rear Leaf Springs PNG. Signs you need toyota tacoma leaf spring upgrades. Leaf springs work in a truck's suspension by helping to maintain lift height, absorb the force of additional reasons to shop for 2012, 2013 and 2014 toyota tacoma leaf springs with us include:
Now the front end is out of line they say it's not their fault. I wanted to replace the broken leaf springs for my toyota tacoma 1996 truck. Replacement leaf springs for toyota tacoma 2wd 4wd.
Toyota tacoma lower control arms.
Your tacoma may be covered under nhtsa. They feature a special torque leaf to reduce axle wrap. Oem roof rack, bilstein 5100's @ 1.75, rear 1 block, trd 17' wheels. Dobinsons leaf springs are manufactured from only the highest quality raw materials.


Class: Aws::CognitoIdentity::Client
| Inherits: |
Seahorse::Client::Base
|
| Defined in: |
(unknown) |
Overview
An API client for Amazon Cognito Identity. To construct a client, you need to configure a :region
and :credentials
.
cognitoidentity = Aws::CognitoIdentity::Client.new(
region: region_name,
credentials: credentials,
# ...
)
See #initialize
for a full list of supported configuration options.
Region
You can configure a default region in the following locations:
ENV['AWS_REGION']
Aws.config[:region]
Go here for a list of supported regions.
Credentials
Default credentials are loaded automatically from the following locations:
ENV['AWS_ACCESS_KEY_ID']
andENV['AWS_SECRET_ACCESS_KEY']
Aws.config[:credentials]
- The shared credentials ini file at
~/.aws/credentials
(more information) - From an instance profile when running on EC2
You can also construct a credentials object from one of the following classes:
Alternatively, you configure credentials with :access_key_id
and
:secret_access_key
:
# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))
Aws::CognitoIdentity::Client.new(
access_key_id: creds['access_key_id'],
secret_access_key: creds['secret_access_key']
)
Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.
Instance Attribute Summary
Attributes inherited from Seahorse::Client::Base
Constructor collapse
-
.new(options = {}) ⇒ Aws::CognitoIdentity::Client
constructor
Constructs an API client.
API Operations collapse
-
#create_identity_pool(options = {}) ⇒ Types::IdentityPool
Creates a new identity pool.
-
#delete_identities(options = {}) ⇒ Types::DeleteIdentitiesResponse
Deletes identities from an identity pool.
-
#delete_identity_pool(options = {}) ⇒ Struct
Deletes a user pool.
-
#describe_identity(options = {}) ⇒ Types::IdentityDescription
Returns metadata related to the given identity, including when the identity was created and any associated linked logins.
-
#describe_identity_pool(options = {}) ⇒ Types::IdentityPool
Gets details about a particular identity pool, including the pool name, ID description, creation date, and current number of users.
-
#get_credentials_for_identity(options = {}) ⇒ Types::GetCredentialsForIdentityResponse
Returns credentials for the provided identity ID.
-
#get_id(options = {}) ⇒ Types::GetIdResponse
Generates (or retrieves) a Cognito ID.
-
#get_identity_pool_roles(options = {}) ⇒ Types::GetIdentityPoolRolesResponse
Gets the roles for an identity pool.
-
#get_open_id_token(options = {}) ⇒ Types::GetOpenIdTokenResponse
Gets an OpenID token, using a known Cognito ID.
-
#get_open_id_token_for_developer_identity(options = {}) ⇒ Types::GetOpenIdTokenForDeveloperIdentityResponse
Registers (or retrieves) a Cognito
IdentityId
and an OpenID Connect token for a user authenticated by your backend authentication process. -
#list_identities(options = {}) ⇒ Types::ListIdentitiesResponse
Lists the identities in a pool.
-
#list_identity_pools(options = {}) ⇒ Types::ListIdentityPoolsResponse
Lists all of the Cognito identity pools registered for your account.
-
#lookup_developer_identity(options = {}) ⇒ Types::LookupDeveloperIdentityResponse
Retrieves the
IdentityID
associated with aDeveloperUserIdentifier
or the list ofDeveloperUserIdentifier
s associated with anIdentityId
for an existing identity. -
#merge_developer_identities(options = {}) ⇒ Types::MergeDeveloperIdentitiesResponse
Merges two users having different
IdentityId
s, existing in the same identity pool, and identified by the same developer provider. -
#set_identity_pool_roles(options = {}) ⇒ Struct
Sets the roles for an identity pool.
-
#unlink_developer_identity(options = {}) ⇒ Struct
Unlinks a
DeveloperUserIdentifier
from an existing identity. -
#unlink_identity(options = {}) ⇒ Struct
Unlinks a federated identity from an existing account.
-
#update_identity_pool(options = {}) ⇒ Types::IdentityPool
Updates a user pool.
Instance Method Summary collapse
-
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
-
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters.
Methods inherited from Seahorse::Client::Base
#build_request, #operation, #operation_names
Methods included from Seahorse::Client::HandlerBuilder
#handle, #handle_request, #handle_response
Constructor Details
.new(options = {}) ⇒ Aws::CognitoIdentity::Client
Constructs an API client.
Instance Method Details
#create_identity_pool(options = {}) ⇒ Types::IdentityPool
Creates a new identity pool. The identity pool is a store of user identity information that is specific to your AWS account. The limit on identity pools is 60 per account. The keys for SupportedLoginProviders
are as follows:
- Facebook:
graph.facebook.com
- Google:
accounts.google.com
- Amazon:
www.amazon.com
- Twitter:
api.twitter.com
- Digits:
www.digits.com
#delete_identities(options = {}) ⇒ Types::DeleteIdentitiesResponse
Deletes identities from an identity pool. You can specify a list of 1-60 identities that you want to delete.
You must use AWS Developer credentials to call this API.
#delete_identity_pool(options = {}) ⇒ Struct
Deletes a user pool. Once a pool is deleted, users will not be able to authenticate with the pool.
You must use AWS Developer credentials to call this API.
#describe_identity(options = {}) ⇒ Types::IdentityDescription
Returns metadata related to the given identity, including when the identity was created and any associated linked logins.
You must use AWS Developer credentials to call this API.
#describe_identity_pool(options = {}) ⇒ Types::IdentityPool
Gets details about a particular identity pool, including the pool name, ID description, creation date, and current number of users.
You must use AWS Developer credentials to call this API.
#get_credentials_for_identity(options = {}) ⇒ Types::GetCredentialsForIdentityResponse
Returns credentials for the provided identity ID. Any provided logins will be validated against supported login providers. If the token is for cognito-identity.amazonaws.com, it will be passed through to AWS Security Token Service with the appropriate role for the token.
This is a public API. You do not need any credentials to call this API.
#get_id(options = {}) ⇒ Types::GetIdResponse
Generates (or retrieves) a Cognito ID. Supplying multiple logins will create an implicit linked account.
This is a public API. You do not need any credentials to call this API.
#get_identity_pool_roles(options = {}) ⇒ Types::GetIdentityPoolRolesResponse
Gets the roles for an identity pool.
You must use AWS Developer credentials to call this API.
#get_open_id_token(options = {}) ⇒ Types::GetOpenIdTokenResponse
Gets an OpenID token, using a known Cognito ID. This known Cognito ID is returned by GetId. You can optionally add additional logins for the identity. Supplying multiple logins creates an implicit link.
The OpenId token is valid for 15 minutes.
This is a public API. You do not need any credentials to call this API.
#get_open_id_token_for_developer_identity(options = {}) ⇒ Types::GetOpenIdTokenForDeveloperIdentityResponse
Registers (or retrieves) a Cognito IdentityId
and an OpenID Connect token for a user authenticated by your backend authentication process. Supplying multiple logins will create an implicit linked account. You can only specify one developer provider as part of the Logins
map, which is linked to the identity pool. The developer provider is the "domain" by which Cognito will refer to your users.
You can use GetOpenIdTokenForDeveloperIdentity
to create a new identity and to link new logins (that is, user credentials issued by a public provider or developer provider) to an existing identity. When you want to create a new identity, the IdentityId
should be null. When you want to associate a new login with an existing authenticated/unauthenticated identity, you can do so by providing the existing IdentityId
. This API will create the identity in the specified IdentityPoolId
.
You must use AWS Developer credentials to call this API.
#list_identities(options = {}) ⇒ Types::ListIdentitiesResponse
Lists the identities in a pool.
You must use AWS Developer credentials to call this API.
#list_identity_pools(options = {}) ⇒ Types::ListIdentityPoolsResponse
Lists all of the Cognito identity pools registered for your account.
You must use AWS Developer credentials to call this API.
#lookup_developer_identity(options = {}) ⇒ Types::LookupDeveloperIdentityResponse
Retrieves the IdentityID
associated with a DeveloperUserIdentifier
or the list of DeveloperUserIdentifier
s associated with an IdentityId
for an existing identity. Either IdentityID
or DeveloperUserIdentifier
must not be null. If you supply only one of these values, the other value will be searched in the database and returned as a part of the response. If you supply both, DeveloperUserIdentifier
will be matched against IdentityID
. If the values are verified against the database, the response returns both values and is the same as the request. Otherwise a ResourceConflictException
is thrown.
You must use AWS Developer credentials to call this API.
#merge_developer_identities(options = {}) ⇒ Types::MergeDeveloperIdentitiesResponse
Merges two users having different IdentityId
s, existing in the same identity pool, and identified by the same developer provider. You can use this action to request that discrete users be merged and identified as a single user in the Cognito environment. Cognito associates the given source user (SourceUserIdentifier
) with the IdentityId
of the DestinationUserIdentifier
. Only developer-authenticated users can be merged. If the users to be merged are associated with the same public provider, but as two different users, an exception will be thrown.
You must use AWS Developer credentials to call this API.
#set_identity_pool_roles(options = {}) ⇒ Struct
Sets the roles for an identity pool. These roles are used when making calls to GetCredentialsForIdentity
action.
You must use AWS Developer credentials to call this API.
#unlink_developer_identity(options = {}) ⇒ Struct
Unlinks a DeveloperUserIdentifier
from an existing identity. Unlinked developer users will be considered new identities next time they are seen. If, for a given Cognito identity, you remove all federated identities as well as the developer user identifier, the Cognito identity becomes inaccessible.
You must use AWS Developer credentials to call this API.
#unlink_identity(options = {}) ⇒ Struct
Unlinks a federated identity from an existing account. Unlinked logins will be considered new identities next time they are seen. Removing the last linked login will make this identity inaccessible.
This is a public API. You do not need any credentials to call this API.
#update_identity_pool(options = {}) ⇒ Types::IdentityPool
Updates a user pool.
You must use AWS Developer credentials to call this API.
#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean
Waiters polls an API operation until a resource enters a desired state.
Basic Usage
Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:
# poll for ~25 seconds
client.wait_until(...) do |w|
w.max_attempts = 5
w.delay = 5
end
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success
or :failure
from these callbacks,
it will terminate the waiter.
started_at = Time.now
client.wait_until(...) do |w|
# disable max attempts
w.max_attempts = nil
# poll for 1 hour, instead of a number of attempts
w.before_wait do |attempts, response|
throw :failure if Time.now - started_at > 3600
end
end
Handling Errors
When a waiter is successful, it returns true
. When a waiter
fails, it raises an error. All errors raised extend from
Waiters::Errors::WaiterFailed.
begin client.wait_until(...) rescue Aws::Waiters::Errors::WaiterFailed # resource did not enter the desired state in time end
#waiter_names ⇒ Array<Symbol>
Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:
| Waiter Name | Client Method | Default Delay: | Default Max Attempts: |
|---|


--- layout: homepage ---
When the Zclassic network reaches block 110,000 a snapshot will be taken. On May 23rd, the Zen network will launch from this snapshot. Zen is a platform for secure communications and, for deniable economic activity. It is an evolution of the Zclassic codebase built by Zclassic's original developers aimed at primarily enabling intriniscally secure communications and resilient networking.
Sign up below, then check your email to receive exclusive updates
Zen is designed for facilitating widespread use across all audiences including: military, government, non-state, corporate, and individual use.
Zen is conceptually based upon censorship-resistant networking technologies. Designed for silent and undetectable operation in any environment; whether behind a massive IDS array, firewall, or in the middle of a tactical environment.
仕方が無い
[It is beyond control]
Existing technologies in the blockchain space do not secure communications between nodes and are not well suited to withstand network-layer censorship. This potentially enables man-in-the-middle attacks against a network and increases the risk for transaction malleability attacks. Zen strives for hardened communications in the most adverse environments by encrypting all traffic traversing the wire.
Zen combines cutting-edge offensive security technologies in data exfiltration and sensor obfuscation to mask network activity. State of the art domain fronting enables direct access to the Zen network using encrypted HTTPS connections; all an observer sees is encrypted web traffic to high-reputation servers.
In non-domain-fronted environments, transport-layer obfuscation makes detection of traffic a very troublesome task. Traffic across the wire appears to be ambiguous in nature making Zen very difficult to censor.
Zen integrates zero-knowledge communications with external persistent datastores for infinite possibilities. To put it simply, Zen is an irrevocable publishing platform.
Nothing can be lost, erased, denied, or censored.
IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the World Wide Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository.
Zen is designed to be a near real-time global publishing platform for text, media, and binary data. Parties may exchange viewing keys for private access to organic zero-knowledge storage within the blockchain or instead use public areas. Zen is a global bulletin board that can never be censored.
The Zencashio Github page holds all development efforts for the wallet and other applications.
Go to GitHubThe Zclassic Github page contains the code for Zclassic and the first open-source Equihash mining pool Z-Nomp.
Go to GitHub


LevSaman assists refugees and other people of concern to integrate in the Norwegian society by providing them the needed trainings and coaching
Join us at the school each Friday from 20:00 to 21:00 for free IT/english trainning
You can also make a difference in your community by supporting LevSaman:
Bank information: 3800 15 89889


|
Tea is an aromatic beverage commonly prepared by pouring hot or
boiling water over cured leaves of the Camellia sinensis, an evergreen shrub native to Asia.
After water, it is the most widely consumed drink in the world. There are many different types
of tea; some teas, like Darjeeling and Chinese greens, have a cooling, slightly bitter, and
astringent flavour, while others have vastly different profiles that include sweet, nutty,
floral or grassy notes.
|
|
Most common tea types:
- Black tea
- Green tea
- Flowering tea
- Oolong tea
|
|
In 2003, world tea production was 3.21 million tonnes annually. In 2010, world tea production
reached over 4.52 million tonnes after having increased by 5.7% between 2009 and 2010.
Production rose by 3.1% between 2010. In 2013, world tea production reached over 5.34 million
tonnes after having increased by 6.17% between 2012 and 2013 . The largest producers of tea are
the People's Republic of China, India, Kenya, Sri Lanka, and Turkey.
|


Elevators:
Variables:
Special Functions:
Here are some INF keywords that were found in DARK.EXE but as yet are not understood.
We would appreciate it if people could help work out these as they may be usable!
stop_y:
trigger_action:
condition:
enclosed
mid
entity_enter
move:


Values - Affirmation and Stereotype Threat
Focusing on ones values can be an effective strategy in mediating stereotype threat
When I think of the times in my life where I've been the happiest, the proudest, or the most satisfied, the following values come to mind:
- Integrity
- Commitment
- Accomplishment
- Challenge
- Confidence
- Coolness Under Fire
- Courage
- Growth
- Having a Family
- Honesty
- Leadership
- Persistence
Commitment is a very important value to me because many of the above values derive from it. I have seen over and over with my own two eyes how commitment can carry a person to unimaginable heights. In my opinion, it is the most important value for anyone who wishes to be succesful at anything in life.
In general, I try to live up to these values:
Disagree 1 ----- 2 ----- 3 ----- 4 ----- 5 Agree
- - ----- - ----- - ----- - ----- 5 : Integrity
- - ----- - ----- - ----- - ----- 5 : Commitment
- - ----- - ----- - ----- 4 ----- - : Accomplishment
- - ----- - ----- - ----- 4 ----- - : Challenge
- - ----- - ----- - ----- - ----- 5 : Confidence
- - ----- - ----- - ----- - ----- 5 : Coolness Under Fire
- - ----- - ----- - ----- - ----- 5 : Courage
- - ----- - ----- - ----- 4 ----- - : Growth
- - ----- - ----- - ----- - ----- 5 : Having a Family
- - ----- - ----- - ----- - ----- 5 : Honesty
- - ----- - ----- - ----- - ----- 5 : Leadership
- - ----- - ----- - ----- - ----- 5 : Persistence
The last topic that someone asked my advice on was HTML and CSS.
I feel good when I think about my values and I do think this can help to mediate stereotype threat. As I stated in last weeks cultural post, having the ability to change ones state of mind is the best way to deal with stereotype threat. This is another reason that I think commitment is so important.  This is what builds confidence in oneself and it is important to remember all of the little steps you have taken when you start to feel stereotype threat or anything else that might make you feel down or marginalized in some way.
Let's do something EPIC!


For this artifact, I created a website titled:
The World Of Folk And
Fairy Tales. The website contains information about folk and fairy tales,
their definitions, and their history. It also has two pages that provide
stories found worldwide and annotated bibliographies on folk and fairy
tale books and collections. These two web pages allow users to read some
tales in their entirety and find their source on Project Gutenberg and
find out what people group and nation these tales originate in the
version provided. On the annotated bibliographies page, I created a list
of book resources people could learn about that are also organized by
location or by the author's last name. This page gives the user access
to information about the book before they pick up the book.
I evaluated the book, The Storyteller's Start-Up Book: Finding,
Learning, Performing and Using Folktales by Margaret Read MacDonald.
The evaluation of this resource allows beginning storytellers to decide
whether this is a tool that they would like to learn from and possibly
include in their collection. Through this evaluation, I focus on the
book's contents, its resources, tale choices, and included activities.
The paper focuses on the book's overall usefulness and the author's
authority on the subject of storytelling. This artifact accomplishes
outcome 3C by evaluating a resource that facilitates access to and
manages helpful information to a storyteller.
This artifact focuses on electronic textbooks increase in the academic
sphere and whether it is a technology that current MLIS students use for
their information management. Through the research, the group analyzed
electronic textbook trends for other academic studies and interviewed
current MLIS students on their textbook choices. This artifact meets
this outcome by looking at the surrounding factors of the current
technologies and emerging ones that provide electronic textbooks for
students. It focuses on how students create and manage their collection
of books that offer resources and information for their studies. The
research found that although e-textbooks were applicable in some ways,
there was still a need for both current and emerging technology to be
fully accessible for all users.


Currently set to search by U.S. cities only
Temperature: {{ weather.temperature }} ° (F) Wind: {{ weather.wind }} (mph) Description: {{ formatDesc(weather.desc) }}


Hey, this is my website!
I'm a Roboticist and Software Engineer currently working at iRobot. Here you can find information about some of my projects, hobbies and miscellaneous thoughts.
--- layout: page title: Alberto Soragna subtitle: This is my space cover-img: assets/img/background.png use-site-title: true head-extra: particles.html js: - "/assets/js/particles.min.js" - "/assets/js/particles-config.js" css: - "/assets/css/particle-js-style.css" ---
Hey, this is my website!
I'm a Roboticist and Software Engineer currently working at iRobot. Here you can find information about some of my projects, hobbies and miscellaneous thoughts.


Govt. has to hide its own reports: Rahul
‘NSSO finding that consumer spending has fallen not published’
by Special CorrespondentCongress leaders on Friday attacked Prime Minister Narendra Modi over a report that claimed that consumer expenditure by households has fallen for the first time in 40 years, prompting the government to withhold the report of its own agency.
“Modinomics stinks so bad, the Govt has to hide its own reports,” former Congress chief Rahul Gandhi tweeted, tagging the news report.
In a series of tweets, Congress general secretary Priyanka Gandhi Vadra accused the government of pushing people into poverty. “This govt is making history by driving people into poverty: while rural India faces the dire consequences of their policies, the BJP ensures that their corporate friends become richer by the day. Usually governments work towards eradicating poverty, not towards eliminating data,” tweeted Ms. Vadra.
“For the first time in 40 years, consumer spending in rural areas has decreased by 8.8%. Grain consumption down by 20.4%, pulse consumption down by 15.4%, edible oil consumption lower by 14.6% and the financial situation of the common man is bad. So, is this the dream of BJP’s New India?”asked Congress chief spokesperson Randeep Surjewala in a separate tweet.


Vue File Agent
Every file deserves to be treated equally
Github
{{ content }}
Made with love from
@safrazik
{% include_relative website/includes/components.html %}


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ContentHandler
interface, which includes Namespace support.
Receive notification of general document events.
This module, both source code and documentation, is in the Public Domain, and comes with NO WARRANTY.
This was the main event-handling interface for SAX1; in
SAX2, it has been replaced by ContentHandler
, which provides Namespace support and reporting
of skipped entities. This interface is included in SAX2 only
to support legacy SAX1 applications.
The order of events in this interface is very important, and mirrors the order of information in the document itself. For example, all of an element's content (character data, processing instructions, and/or subelements) will appear, in order, between the startElement event and the corresponding endElement event.
Application writers who do not want to implement the entire interface can derive a class from HandlerBase, which implements the default functionality; parser writers can instantiate HandlerBase to obtain a default handler. The application can find the location of any document event using the Locator interface supplied by the Parser through the setDocumentLocator method.
Parser.setDocumentHandler(org.xml.sax.DocumentHandler)
,
Locator
,
HandlerBase
| Method Summary | |
void |
characters(char[] ch,
int start,
int length)
Deprecated. Receive notification of character data. |
void |
endDocument()
Deprecated. Receive notification of the end of a document. |
void |
endElement(java.lang.String name)
Deprecated. Receive notification of the end of an element. |
void |
ignorableWhitespace(char[] ch,
int start,
int length)
Deprecated. Receive notification of ignorable whitespace in element content. |
void |
processingInstruction(java.lang.String target,
java.lang.String data)
Deprecated. Receive notification of a processing instruction. |
void |
setDocumentLocator(Locator locator)
Deprecated. Receive an object for locating the origin of SAX document events. |
void |
startDocument()
Deprecated. Receive notification of the beginning of a document. |
void |
startElement(java.lang.String name,
AttributeList atts)
Deprecated. Receive notification of the beginning of an element. |
| Method Detail |
public void setDocumentLocator(Locator locator)
SAX parsers are strongly encouraged (though not absolutely required) to supply a locator: if it does so, it must supply the locator to the application by invoking this method before invoking any of the other methods in the DocumentHandler interface.
The locator allows the application to determine the end position of any document-related event, even if the parser is not reporting an error. Typically, the application will use this information for reporting its own errors (such as character content that does not match an application's business rules). The information returned by the locator is probably not sufficient for use with a search engine.
Note that the locator will return correct information only during the invocation of the events in this interface. The application should not attempt to use it at any other time.
locator
- An object that can return the location of
any SAX document event.Locator
public void startDocument() throws SAXException
The SAX parser will invoke this method only once, before any other methods in this interface or in DTDHandler (except for setDocumentLocator).
SAXException
- Any SAX exception, possibly
wrapping another exception.public void endDocument() throws SAXException
The SAX parser will invoke this method only once, and it will be the last method invoked during the parse. The parser shall not invoke this method until it has either abandoned parsing (because of an unrecoverable error) or reached the end of input.
SAXException
- Any SAX exception, possibly
wrapping another exception.public void startElement(java.lang.String name, AttributeList atts) throws SAXException
The Parser will invoke this method at the beginning of every element in the XML document; there will be a corresponding endElement() event for every startElement() event (even when the element is empty). All of the element's content will be reported, in order, before the corresponding endElement() event.
If the element name has a namespace prefix, the prefix will still be attached. Note that the attribute list provided will contain only attributes with explicit values (specified or defaulted): #IMPLIED attributes will be omitted.
name
- The element type name.atts
- The attributes attached to the element, if any.SAXException
- Any SAX exception, possibly
wrapping another exception.endElement(java.lang.String)
,
AttributeList
public void endElement(java.lang.String name) throws SAXException
The SAX parser will invoke this method at the end of every element in the XML document; there will be a corresponding startElement() event for every endElement() event (even when the element is empty).
If the element name has a namespace prefix, the prefix will still be attached to the name.
name
- The element type nameSAXException
- Any SAX exception, possibly
wrapping another exception.public void characters(char[] ch, int start, int length) throws SAXException
The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.
The application must not attempt to read from the array outside of the specified range.
Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).
ch
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.SAXException
- Any SAX exception, possibly
wrapping another exception.ignorableWhitespace(char[], int, int)
,
Locator
public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException
Validating Parsers must use this method to report each chunk of ignorable whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.
SAX parsers may return all contiguous whitespace in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.
The application must not attempt to read from the array outside of the specified range.
ch
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.SAXException
- Any SAX exception, possibly
wrapping another exception.characters(char[], int, int)
public void processingInstruction(java.lang.String target, java.lang.String data) throws SAXException
The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.
A SAX parser should never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.
target
- The processing instruction target.data
- The processing instruction data, or null if
none was supplied.SAXException
- Any SAX exception, possibly
wrapping another exception.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Font icon options
The theme has two font icon sets integrated: Font Awesome and Glyphicons Halflings. The latter is part of Bootstrap, while the former is independent.
See Font Awesome icons available
Go to the Font Awesome library to see the available icons.
The Font Awesome icons allow you to adjust their size by simply adding fa-2x
, fa-3x
and so forth as a class to the icon to adjust their size to two times or three times the original size. As vector icons, they scale crisply at any size.
Here’s an example of how to scale up a camera icon:
 normal size (1x)
 fa-lg
 fa-2x
 fa-3x
 fa-4x
 fa-5x
Here’s what they render to:
1x fa-lg fa-2x fa-3x fa-4x fa-5x
With Font Awesome, you always use the i
tag with the appropriate class. You also implement fa
as a base class first. You can use font awesome icons inside other elements. Here I’m using a Font Awesome class inside a Bootstrap alert:

 Warning: This is a special warning message.
Here’s the result:
The notes, tips, warnings, etc., are pre-coded with Font Awesome and stored in the alerts.yml file. That file includes the following:
tip: '
 Tip: '
note: '
 Note: '
important: '
 Important: '
warning: '
 Warning: '
end: '
'
callout_danger: '
'
callout_default: '
'
callout_primary: '
'
callout_success: '
'
callout_info: '
'
callout_warning: '
'
hr_faded: '
'
hr_shaded: '
'
This means you can insert a tip, note, warning, or important alert simply by using these tags.
{% include note.html content="Add your note here." %}
{% include tip.html content="Add your tip here." %}
{% include important.html content="Add your important info here." %}
{% include warning.html content="Add your warning here." %}
Here’s the result:
The color scheme is the default colors from Bootstrap. You can modify the icons or colors as needed.
Creating your own combinations
You can innovate with your own combinations. Here’s a similar approach with a file download icon:

 This is a special tip about some file to download....

And the result:
Grab the right class name from the Font Awesome library and then implement it by following the pattern shown previously.
If you want to make your fonts even larger than the 5x style, add a custom style to your stylesheet like this:
.fa-10x{font-size:1700%;}
Then any element with the attribute fa-10x
will be enlarged 1700%.
Glyphicon icons available
Glyphicons work similarly to Font Awesome. Go to the Glyphicons library to see the icons available.
Although the Glyphicon Halflings library doesn’t provide the scalable classes like Font Awesome, there’s a StackOverflow trick to make the icons behave in a similar way. This theme’s stylesheet (customstyles.css) includes the following to the stylesheet:
.gi-2x{font-size: 2em;}
.gi-3x{font-size: 3em;}
.gi-4x{font-size: 4em;}
.gi-5x{font-size: 5em;}
Now you just add gi-5x
or whatever to change the size of the font icon:

And here’s the result:
Glypicons use the span
element instead of i
to attach their classes.
Here’s another example:

And magnified:

You can also put glyphicons inside other elements:

Error: Enter a valid email address

Callouts
The previously shown alerts might be fine for short messages, but with longer notes, the solid color takes up a bit of space. In this theme, you also have the option of using callouts, which are pretty common in Bootstrap’s documentation but surprisingly not offered as an explicit element. Their styles have been copied into this theme, in a way similar to the alerts:

This is a special info message. This is a special info message. This is a special info message. This is a special info message. This is a special info message. This is a special info message. This is a special info message. This is a special info message. This is a special info message.

And here’s the shortcode:
{{site.data.alerts.callout_info}This is a special callout information message.
Here’s the result:


"Eloisa is a wonderful person, an amazing designer and smart as a whip. I first knew of her as an artist on Spoonflower and always greatly admired her design chops and color skills. I loved working with her at Spoonflower because she was so fun and friendly, but also as a resource to collaborate on design. I can always trust her to give great artistic criticism and voice her opinion in a constructive way.
I'm constantly impressed by her initiative, especially this past year when she pursued an education in front end coding to add to her already impressive resume. If you're looking for someone hardworking with a fantastic attitude and super skills, Eloisa is your woman!"
- Caroline Okun, Art Director for StoneTimber
"I spent three months studying with Eloisa at The Iron Yard in Raleigh, NC. During this time I discovered Eloisa's extreme talent in rapid design, wireframing, and prototyping. She has the ability to go from nebulous idea to mid-fidelity in a matter of minutes.
Eloisa is a great team member, who gets along with everyone and has the ability to bring a group together to generate a product worth creating. I enjoyed working with her and learning from her vast wealth of design knowledge."
- Ashley Massengill, Front End Developer, Coalmarch Productions
"Eloisa is both a delight to work with and a highly talented UI and graphic designer. She will come up with an ambitious, beautiful, and sophisticated design no matter what the project might be.  I am confident that she would excel in any role and any team is lucky to have her!"
- Lina Breslav, Designer, Smashing Boxes
"I had the pleasure of working alongside Eloisa on the Customer Service team at Spoonflower, and can say confidently that she is a rare gift as a teammate. Eloisa constantly showed a very high level of compassion, empathy, productivity, efficiency and creativity in her job, and you could tell that she takes immense pride in her work. Eloisa is always looking for how to solve a problem, never settling for the status quo, she uses her creativity and initiative to improve any situation, even if it means putting in extra work which she often did if it meant getting the job done right. In addition to being one of the hardest workers I know, her upbeat spirit is so strong and contagious, that it lifts up everyone around her. It is impossible to be sad around Eloisa. Her combined talents for interacting with people, unparalleled work ethic, and her creativity and problem solving nature make her a god-send to any company lucky enough to have her on their team."
- Theresa Rizzuto, Email Marketing Manager, Craftsy
"Great girl, but terrible cook!"
- Eloisa Rivera, Mom
"Great girl, but terrible cook!"
- Paul, Natalie & Claire Docton, Husband & Kids


ClearMap()
语法
ClearMap(Map())概要
Clears all the elements in the specified map and releases their memory. After this call the map is still usable, but is empty (i.e. there are no more elements in it).
参数
Map() The map to clear.
返回值
无.
备注
PureBasic will only free the memory for the elements. If you have been using the map for something such as storing handles of objects that you create directly with the OS, there is no way PureBasic (or any other language) can know what they are. Therefore, in cases such as that, you should go through the elements in the map and free the objects yourself.
示例
NewMap Country.s() Country("FR") = "France" Country("US") = "United States" ; Proof that items have been added to the map MessageRequester("Information", "There are "+Str(MapSize(Country()))+" elements in the map") ; Clear the map and show that the map really is empty ClearMap(Country()) MessageRequester("Information", "There are "+Str(MapSize(Country()))+" element in the map")
参阅
AddMapElement(), DeleteMapElement()
已支持操作系统
所有


Research and analysis
Evaluates implementation of the pilot courses, effectiveness of the design and impact of the tuition provided by course attendees on pupils.
Ref: T35429 PDF , 908KB , 90 pages
In 2009, the government introduced a national programme of one-to-one tuition for pupils who were falling behind in English and mathematics, to raise progression and attainment. One-to-one tuition was trialled in the Making Good Progress (MGP) pilots and funding was available nationally for over 600,000 places in 2011.
However, a report on the pilot which trialled one-to-one tuition in 10 local authorities identified challenges in recruiting sufficient teachers with Qualified Teacher Status (QTS) to act as tutors. In response, the Training and Development Agency for Schools (TDA) commissioned five experienced course providers to design and run one-to-one tuition pilot courses in various locations across England. The courses were designed to equip adults who already had relevant subject knowledge, but not QTS, to work as tutors in schools.
The evaluation of the pilot courses had two components: implementation of the pilot courses and effectiveness of the course design, content, length and delivery in preparing participants to undertake tuition; impact of the subsequent tuition provided by course attendees on pupils.
Published: 8 October 2010
From: Department for Education
Part of: Private tuition


The Toronto Blue Jays began their season off to a slow start with many players playing together for the first time which caused distruptions during games. However, the season lit up after the All-Star game in July. Players were added and some were traded away and this made all the difference. After 22 years, the Blue Jays made it to the post season and almost became the "American Leauge Champion".
function allows us to added text to further explain or describe the website -->


CURLOPT_CONNECT_TO explained
NAME
CURLOPT_CONNECT_TO - Connect to a specific host and port instead of the URL's host and port
SYNOPSIS
#include <curl/curl.h> CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CONNECT_TO, struct curl_slist *connect_to);
DESCRIPTION
Pass a pointer to a linked list of strings with "connect to" information to use for establishing network connections with this handle. The linked list should be a fully valid list of struct curl_slist structs properly filled in. Use curl_slist_append to create the list and curl_slist_free_all to clean up an entire list.
Each single string should be written using the format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT where HOST is the host of the request, PORT is the port of the request, CONNECT-TO-HOST is the host name to connect to, and CONNECT-TO-PORT is the port to connect to.
The first string that matches the request's host and port is used.
Dotted numerical IP addresses are supported for HOST and CONNECT-TO-HOST. A numerical IPv6 address must be written within [brackets].
Any of the four values may be empty. When the HOST or PORT is empty, the host or port will always match (the request's host or port is ignored). When CONNECT-TO-HOST or CONNECT-TO-PORT is empty, the "connect to" feature will be disabled for the host or port, and the request's host or port will be used to establish the network connection.
This option is suitable to direct the request at a specific server, e.g. at a specific cluster node in a cluster of servers.
The "connect to" host and port are only used to establish the network connection. They do NOT affect the host and port that are used for TLS/SSL (e.g. SNI, certificate verification) or for the application protocols.
In contrast to CURLOPT_RESOLVE, the option CURLOPT_CONNECT_TO does not pre-populate the DNS cache and therefore it does not affect future transfers of other easy handles that have been added to the same multi handle.
The "connect to" host and port are ignored if they are equal to the host and the port in the request URL, because connecting to the host and the port in the request URL is the default behavior.
If an HTTP proxy is used for a request having a special "connect to" host or port, and the "connect to" host or port differs from the request's host and port, the HTTP proxy is automatically switched to tunnel mode for this specific request. This is necessary because it is not possible to connect to a specific host or port in normal (non-tunnel) mode.
When this option is passed to curl_easy_setopt, libcurl will not copy the entire list so you must keep it around until you no longer use this handle for a transfer before you call curl_slist_free_all on the list.
DEFAULT
PROTOCOLS
EXAMPLE
CURL *curl; struct curl_slist *connect_to = NULL; connect_to = curl_slist_append(NULL, "example.com::server1.example.com:"); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_CONNECT_TO, connect_to); curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); curl_easy_perform(curl); /* always cleanup */ curl_easy_cleanup(curl); } curl_slist_free_all(connect_to);
AVAILABILITY
RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
SEE ALSO
CURLOPT_URL, CURLOPT_RESOLVE, CURLOPT_FOLLOWLOCATION, CURLOPT_HTTPPROXYTUNNEL
This HTML page was made with roffit.


Market Analysis
Ether Price Breaks Key Resistance — Can It Repeat Bitcoin’s 42% Gain?
by Horus HughesOver the past week Ether (ETH) has shown that it is not permanently hinged to Bitcoin’s (BTC) price action and notably, a number of altcoins are also beginning to forge their own paths higher.
Ethereum breaks through key resistance
Close analysis of the ETH/USD and ETH/BTC chart shows rumblings of a bullish breakout, but there are still significant challenges ahead before this can occur.
Crypto market data daily view. Source: Coin360
As shown on the daily chart, Ether continues to put space between itself and the multi-month descending triangle that the altcoin broke out of on Oct. 25. The digital asset has continued to notch daily higher lows and the most recent run to $194.60 almost set a higher high above the Oct. 25 local high at $199.77.
ETH USD daily chart. Source: TradingView
As mentioned in the previous analysis, Ether needed to clear the resistance zone at $184 to $186 in order to take a shot at $194, a point reached early in the day on Wednesday.
The next step remains the same as last week and if volume permits, bulls need to push the price up to the 200-day moving average (DMA), which also lines up with the 61.8% Fibonacci retracement level.
ETH USD 6-hour chart. Source: TradingView
Although the price has pulled back from $194, the 12-period exponential moving average (EMA) remains above the 26 EMA and the price appears set to revisit the moving average of the Bollinger Band indicator at $187.
The relative strength index (RSI) has turned down from 68, the Stochastic RSI (Stoch) has turned down, quickly approaching bearish territory. There is also an impending bear cross on the moving average confluence divergence (MACD).
Normally this would suggest that the price could fall further to the support at $183.74, a point which is also held up by a high volume node on the volume profile visible range. Fortunately, the hourly time frame tells a different tale.
ETH USD 1-hour chart. Source: TradingView
The RSI bounced slightly above 40, a reliable zone for observing such maneuvers on the hourly and 6-hour timeframe. The Stoch already reversed course off 0 and is now slowly working its way back up again after the lines converged.
The pace of the falling MACD line also has slowed as Ether’s price bounced off the lower arm of the Bollinger Band indicator and the price is currently pushing back toward the middle band at $190.65.
Traders might consider buying the breakout with a tight stop if Ether price sustains above $199.45 and the price could make its way to $225, then $240.
ETH/BTC heats up
The ETH/BTC pairing is steadily improving, maintaining a pattern of daily higher lows as the price is pinched between narrowing 12 and 26 EMA.
ETH BTC daily chart. Source: TradingView
The price is capped by 0.020592 satoshis (sats) and once above this point, Ether should work at taking out 0.020984 (sats). Traders will notice the divergence on the daily MACD, along with the bull cross between the MACD and the signal line. Another positive sign is that the MACD histogram has flipped green and is currently above 0.
ETH BTC daily chart. Source: TradingView
Currently, the price is being rejected at the 20-MA of the Bollinger Band indicator and a move above the first target at 0.020984 (sats) could see the price run to the upper Bollinger Band arm at 0.022033 (sats) for a 7.25% gain. This could prove to be a significant challenge as the VPVR shows significant selling pressure at 0.020984 (sats) and above.
ETH BTC 6-hour chart. Source: TradingView
The 6-hour chart reconfirms the fact that Ether is pinned underneath resistance at 0.020592 (sats) and the price is trading in a volume gap with support at 0.020375 (sats) and resistance at 0.020814 (sats)
ETH BTC weekly chart. Source: TradingView
The weekly chart on the ETH/BTC pairing shows Ether consistently held back by the 20-WMA and it's clear that the price needs to push above this point before anything significant can occur.
The weekly MACD appears in good order with the MACD lifting away from the signal line and the histogram showing an increase in interest from buyers. The weekly RSI is also working its way towards 40.
ETH BTC weekly chart. Source: TradingView
The above alternate view of the ETH/BTC pair on the weekly timeframe should provoke one’s curiosity and inspiration. ETH finds itself on the verge of breaking above a year-long descending triangle, a position familiar to many altcoins at the moment.
Traders will be watching to see if Ether can push above the 20-WMA and set a few higher highs above the current price.
The ETH/BTC pairing declined sharply against Bitcoin’s 42% gain on Oct.25 so traders will need to keep an eye on the USD and BTC pairing before opening any large positions.
Key price levels to watch for
Traders looking to set up a long position might watch the 6-hour chart to see if Ether price drops to the middle Bollinger Band at 0.020027(sats), a point which also aligns with the ascending trendline of the rising wedge pattern. A drop below this trendline will likely lead to Ether price retesting underlying supports 0.019666(sats), an area that the VPVR shows as strong support.
Below this 0.019637(sats) could also stand as support and this area lines up with the lower Bollinger Band arm. A bounce off the lower ascending trendline of the rising wedge seems probable and this brings Ether price close to the termination point of the pattern.
There is bound to be a dispute over the nature of patterns. Many traders believe ascending triangles are bullish and lead to upside continuation, whereas rising wedges are bearish and if the entry begins from a downside break this increases the likelihood that price action will remain bearish upon completion of the wedge.
We’ll let you sort that part out, just be sure to use a stop loss.
The views and opinions expressed here are solely those of the author (@HorusHughes) and do not necessarily reflect the views of Cointelegraph. Every investment and trading move involves risk. You should conduct your own research when making a decision.


#include <AAX_IACFAutomationDelegate.h>
Versioned interface allowing an AAX plug-in to interact with the host's automation system.
- See also
- Parameter updates
-
AAX_IAutomationDelegate
Register a control with the automation system using a char* based control identifier
The automation delegate owns a list of the IDs of all of the parameters that have been registered with it. This list is used to set up listeners for all of the registered parameters such that the automation delegate may update the plug-in when the state of any of the registered parameters have been modified.
- See also
- AAX_IAutomationDelegate::UnregisterParameter()
- Parameters
-
| [in] | iParameterID | Parameter ID that is being registered |
Unregister a control with the automation system using a char* based control identifier
- Note
- All registered controls should be unregistered or the system might leak.
- See also
- AAX_IAutomationDelegate::RegisterParameter()
- Parameters
-
| [in] | iParameterID | Parameter ID that is being registered |
| virtual AAX_Result AAX_IACFAutomationDelegate::PostSetValueRequest |
( |
AAX_CParamID |
iParameterID, |
|
|
double |
normalizedValue |
|
) |
| const |
|
pure virtual |
Submits a request for the given parameter's value to be changed
- Parameters
-
| [in] | iParameterID | ID of the parameter for which a change is requested |
| [in] | normalizedValue | The requested new parameter value, formatted as a double and normalized to [0 1] |
| virtual AAX_Result AAX_IACFAutomationDelegate::PostCurrentValue |
( |
AAX_CParamID |
iParameterID, |
|
|
double |
normalizedValue |
|
) |
| const |
|
pure virtual |
Notifies listeners that a parameter's value has changed
- Parameters
-
| [in] | iParameterID | ID of the parameter that has been updated |
| [in] | normalizedValue | The current parameter value, formatted as a double and normalized to [0 1] |
Requests that the given parameter be "touched", i.e. locked for updates by the current client
- Parameters
-
| [in] | iParameterID | ID of the parameter that will be touched |
Requests that the given parameter be "released", i.e. available for updates from any client
- Parameters
-
| [in] | iParameterID | ID of the parameter that will be released |
Gets the current touched state of a parameter
- Parameters
-
| [in] | iParameterID | ID of the parameter that is being queried |
| [out] | oTouched | The current touch state of the parameter |
The documentation for this class was generated from the following file:


‘Aayaram, gayaram’ situation in the nation: Oppn leader
by DHNSCLP leader Siddaramaiah, on Thursday said that the whole country is facing ‘Aayaram, Gayaram’ (switching parties) situation, with the MLAs sold like cattle and fowls, hopping from one party to another.
Campaigning for Congress candidate K B Chandrashekar here, he alleged that “Yediyurappa is into horse-trading whenever he comes to power. The people must send home the leaders, who had hopped to other parties for selfish motives. Defection should be eradicated to save the democracy.”
“BJP leader B Sriramulu has said not to call the defected MLAs as disqualified. He has pointed out that Siddaramaiah too has defected. I did not quit JD(S). They expelled me. It was after that I started AHINDA. Later, I joined Congress, upon invited by the party. He should know the history before speaking. He has not read the Tenth Schedule of the Indian Constitution properly,” Siddaramaiah taunted.
CLP leader flays BJP, JD(S)
Siddaramaiah also pointed out the various schemes introduced during his tenure like Anna Bhagya, for a hunger-free state. “If that was introduced by Prime Minister Narendra Modi, why was it not implemented in Gujarat, Maharashtra and other states?” he questioned.
“BJP and JD(S) have not contributed anything for the state. Their achievements are zero. JD(S) leaders have been telling that they will not allow BJP government to fall. The party does not have any ideal, policies and norms,”
he said.
‘Desh Bhakt’
Siddaramaiah also ridiculed the ‘Desh Bhakt’ statement of Narendra Modi. Congress party was born pre-independence, while BJP was formed after independence. Modi, who has been claiming that he is ‘Desh Bhakt’ was born in 1950s. How can he call himself as desh bhakt,” he questioned.


Copyright © 2008-2010 SUGAWARA Genki <yahoo at sgwr_dts.co.jp>
Ruby bindings for libzip.
libzip is a C library for reading, creating, and modifying zip archives.
bitbucket.org/winebarrel/zipruby
gem install zipruby
rubyforge.org/frs/?group_id=6124
require 'zipruby' Zip::Archive.open('filename.zip') do |ar| n = ar.num_files # number of entries n.times do |i| entry_name = ar.get_name(i) # get entry name from archive # open entry ar.fopen(entry_name) do |f| # or ar.fopen(i) do |f| name = f.name # name of the file size = f.size # size of file (uncompressed) comp_size = f.comp_size # size of file (compressed) content = f.read # read entry content end end # Zip::Archive includes Enumerable entry_names = ar.map do |f| f.name end end # read huge entry BUFSIZE = 8192 Zip::Archive.open('filename.zip') do |ar| ar.each do |f| buf = '' while chunk = f.read(BUFSIZE) buf << chunk end # or # f.read do |chunk| # buf << chunk # end end end
require 'zipruby' bar_txt = open('bar.txt') Zip::Archive.open('filename.zip', Zip::CREATE) do |ar| # if overwrite: ..., Zip::CREATE | Zip::TRUNC) do |ar| # specifies compression level: ..., Zip::CREATE, Zip::BEST_SPEED) do |ar| ar.add_file('foo.txt') # add file to zip archive # add file to zip archive from File object ar << bar_txt # or ar.add_io(bar_txt) # add file to zip archive from buffer ar.add_buffer('zoo.txt', 'Hello, world!') end bar_txt.rewind # include directory in zip archive Zip::Archive.open('filename.zip') do |ar| ar.add_dir('dirname') ar.add_file('dirname/foo.txt', 'foo.txt') # args: <entry name> , <source> ar.add_io('dirname/bar.txt', bar_txt) # args: <entry name> , <source> ar.add_buffer('dirname/zoo.txt', 'Hello, world!') # args: <entry name> , <source> end bar_txt.close # close file after archive closed # add huge file source = %w(London Bridge is falling down) Zip::Archive.open('filename.zip') do |ar| # lb.txt => 'LondonBridgeisfallingdown' ar.add('lb.txt') do # add(<filename>, <mtime>) source.shift # end of stream is nil end end
require 'zipruby' bar_txt = open('bar.txt') Zip::Archive.open('filename.zip') do |ar| # replace file in zip archive ar.replace_file(0, 'foo.txt') # replace file in zip archive with File object ar.replace_io(1, bar_txt) # if commit changes # ar.commit # replace file in zip archive with buffer ar.replace_buffer(2, 'Hello, world!') # or # ar.replace_buffer('entry name', 'Hello, world!') # if ignore case distinctions # ar.replace_buffer('entry name', 'Hello, world!', Zip::FL_NOCASE) # add or replace file in zip archive ar.add_or_replace_file('zoo.txt', 'foo.txt') end # append comment Zip::Archive.open('filename.zip') do |ar| ar.comment = " jugem jugem gokou no surikere kaijari suigyo no suigyoumatsu unraimatsu furaimatsu " end bar_txt.close # close file after archive closed # ar1 import ar2 entries Zip::Archive.open('ar1.zip') do |ar1| Zip::Archive.open('ar2.zip') do |ar2| ar1.update(ar2) end end
require 'zipruby' # encrypt Zip::Archive.encrypt('filename.zip', 'password') # return true if encrypted # or # Zip::Archive.open('filename.zip') do |ar| # ar.encrypt('password') # end # decrypt Zip::Archive.decrypt('filename.zip', 'password') # return true if decrypted # or # Zip::Archive.open('filename.zip') do |ar| # ar.decrypt('password') # end
require 'zipruby' $stdout.binmode buf = '' Zip::Archive.open_buffer(buf, Zip::CREATE) do |ar| ar.add_buffer('bar.txt', 'zoo'); end buf2 = Zip::Archive.open_buffer(Zip::CREATE) do |ar| ar.add_buffer('bar.txt', 'zoo'); end Zip::Archive.open_buffer(buf) do |ar| ar.each do |f| puts f.name end end # read from stream zip_data = open('foo.zip') do |f| f.binmode f.read end stream = lambda { return zip_data.slice!(0, 256) } Zip::Archive.open_buffer(stream) do |ar| puts ar.num_files end # output huge zip data to stdout Zip::Archive.open_buffer(zip_data) do |ar| ar.read do |chunk| print chunk end end
require 'zipruby' Zip::Archive.open('filename.zip', Zip::CREATE) do |ar| ar.add_dir('dir') Dir.glob('dir /*').each do |path| if File.directory?(path) ar.add_dir(path) else ar.add_file(path, path) # add_file(<entry name>, <source path>) end end end
require 'zipruby' require 'fileutils' Zip::Archive.open('filename.zip') do |ar| ar.each do |zf| if zf.directory? FileUtils.mkdir_p(zf.name) else dirname = File.dirname(zf.name) FileUtils.mkdir_p(dirname) unless File.exist?(dirname) open(zf.name, 'wb') do |f| f << zf.read end end end end
Copyright (c) 2008-2010 SUGAWARA Genki<EMAIL_ADDRESS>All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. The names of its contributors may not be used to endorse or promote products derived from this software without specific prior written permission.
Zip/Ruby contains libzip.
libzip is a C library for reading, creating, and modifying zip archives.
distribution site: http://www.nih.at/libzip/ ftp.nih.at /pub/nih/libzip authors: Dieter Baron<EMAIL_ADDRESS>Thomas Klausner <tk@giga.or.at>


Capital of the Netherlands. High resolution image taken by astronaut Kuipers with tripod Nightpod
Night image of Madrid in 2012 before the new LED lighting. Characteristic orange colored because of the lamps high pressure sodium.
Capital of the region of Valencia (Spain), next to the Mediterranean sea. City brightest per square meter in Europe..
Image of the entire Earth at night in May 2014 taken by Suomi-NPP satellite.
Canary Island archipelago which is located the Gran Telescopio Canarias. White lights are forbidden to protect the observatory.


ALIEN RESURRECTION Movie review by Chuck Dowling Copyright 1998 - Chuck's Movie Reviews http://users.southeast.net/~chuckd21/
Alien Resurrection (1997) *** out of ***** - Cast: Sigourney Weaver, Winona Ryder, Ron Perlman, Dan Hedaya, Michael Wincott. Written by: Joss Whedon. Directed by: Jean-Pierre Jeunet. Running Time: 118 minutes.
*** This review contains spoilers. ***
"Alien Resurrection", the fourth film in the popular sci-fi/horror series, is a slight improvement over the third installment, but overall is a disappointment.
Sigourney Weaver is surprisingly back as Ellen Ripley. I say surprisingly since the character killed herself at the end of the third film.  These scientists hope to "train" the aliens.  Well sure enough, the aliens reproduce and break free to terrorize everyone.
None of the characters being chased by the aliens are the slightest bit compelling. You don't care if any of them escape or not.
Some other minor problems I had: At one moment, the cloned Ripley doesn't know what a fork is, yet soon after she's got a witty one-liner for any occasion. Another thing, too many "witty" one-liners from the cast. Good to know that the aliens aren't too much of a concern anymore. Along those same lines, Dan Hedaya's character is just too cartoonish for the film. Let's make a serious film here people. I'm also curious why after all these hundreds of years of human and scientific evolution that spacecraft are still dirty, grimy, bulky and blocky. It didn't take long after the invention of the automobile to make it a nice looking, streamlined machine, so why after so many hundreds of years are spaceships still clunky and crappy looking?
About the film's finale and lead up to that finale, haven't we seen this before? Blow up the ship and blow the alien out into space? All I kept thinking was how much better the ending of part three was since it was something completely different. The ship then at the end crashes into earth, seemingly destroying a couple of continents (!), and this is treated as a good thing? What gives here?
Weaver keeps voicing in interviews about how she likes the erotic aspects of the series. Personally, I just don't get what's erotic about monsters, blood, and goo. But, there's plenty of "erotica" here for you if you happen to agree with Weaver.
"Alien Resurrection" starts out very intriguing. Information is only given to the audience gradually, and therefore the first third of the film is quite compelling.  If this wasn't an "Alien" film then I'd have to just catagorize it as a shameless "Alien" rip-off.
Since there will probably never be an "Aliens vs. Predator" film, then there's really only two things I'd like to see if the series continues. Either aliens make it to Earth somehow (even though this film manages to completely trounce that premise by constantly telling us what a hellhole Earth has become), or we find the alien's homeworld WITH only the intent of destroying these things for good. Anything aside from that will most likely be just as disappointing as this effort was. [R]
-- Chuck Dowling --
Over 1,600 movies rated and/or reviewed at Chuck's Movie Reviews. Web address: http://users.southeast.net/~chuckd21/
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