pgScript is composed of pgScript commands:
pgScript command
: Regular PostgreSQL SQL Command (SELECT INSERT CREATE ...)
| Variable declaration or assignment (DECLARE SET)
| Control-of-flow structure (IF WHILE)
| Procedure (ASSERT PRINT LOG RMLINE)
Command names (SELECT, IF, SET, ...) are case-insensitive and must be ended with a semi-column ;. Identifiers are case-sensitive.
DECLARE @I, @T; -- Variable names begin with a @
SET @I = 0; -- @I is an integer
WHILE @I < 20
BEGIN
SET @T = 'table' + CAST (@I AS STRING); -- Casts @I
CREATE TABLE @T (id integer primary key, data text);
SET @I = @I + 1;
END
DECLARE @I, @J, @T, @G;
SET @I = 0;
SET @G1 = INTEGER(10, 29, 1); /* Random integer generator
Unique numbers between 10 and 29 */
SET @G2 = STRING(10, 20, 3); /* Random string generator
3 words between 10 and 20 characters */
WHILE @I < 20
BEGIN
SET @T = 'table' + CAST (@I AS STRING);
SET @J = 0;
WHILE @J < 20
BEGIN
INSERT INTO @T VALUES (@G1, '@G2');
SET @J = @J + 1;
END
SET @I = @I + 1;
END
DECLARE @I, @T; -- Declaring is optional
SET @I = 0;
WHILE 1 -- Always true
BEGIN
IF @I >= 20
BREAK; -- Exit the loop if @I > 20
SET @T = 'table' + CAST (@I AS STRING);
DROP TABLE @T;
SET @I = @I + 1;
END
SET @PROGR@M#TITLE = 'pgScript';
PRINT '';
PRINT @PROGR@M#TITLE + ' features:';
PRINT '';
PRINT ' * Regular PostgreSQL commands';
PRINT ' * Control-of-flow language';
PRINT ' * Local variables';
PRINT ' * Random data generators';

You can run ANY PostgreSQL query from a pgScript EXCEPT those ones:
BEGIN;
END;
This is because BEGIN and END are used for delimiting blocks. Instead use:
BEGIN TRANSACTION;
END TRANSACTION;
For a list of PostgreSQL commands: http://www.postgresql.org/docs/8.3/interactive/sql-commands.html
There are two main types of variables : simple variables and records (result sets composed of lines and columns).
Variable names begin with a @ and can be composed of letters, digits, _, #, @.
Variable type is guessed automatically according to the kind of value it contains. This can be one of: number (real or integer), string, record.
Declaring simple variable is optional:
DECLARE @A, @B;
DECLARE @VAR1;
This is done with the SET command. The variable type depends on the value assigned to this variable:
SET @A = 1000, @B = 2000; -- @A and @B are integer numbers**
SET @C = 10e1, @D = 1.5; -- @C and @D are real numbers**
SET @E = 'ab', @F = 'a''b'; -- @E and @F are strings**
SET @G = "ab", @H = "a\"b"; -- @G and @H are strings**
An uninitialized variable defaults to an empty string. It is possible to override variables as many times as wanted:
PRINT @A; -- Prints an empty string
SET @A = 1000; -- @A is initialized an integer
PRINT @A; -- Prints 1000
SET @A = 'ab'; -- @A becomes a string
PRINT @A; -- Prints ab
Data generators allows users to generate random values. There are various types of generators, each one producing different type of data. A variable initialized with a data generator behaves like a regular simple variable except that it has a different value each time it is used:
SET @A = INTEGER(100, 200);
PRINT @A; -- Prints an integer between 100 and 200
PRINT @A; -- Prints another integer between 100 and 200
A variable can contain a generator but its type is one of: number (real or integer), string. For a list of available generators and their associated type, see generators.
Declaring a record is required. A name for each column must be specified even if they will not be used anymore afterwards:
DECLARE @R1 { @A, @B }, @R2 { @A, @C }; -- Two records with two columns
DECLARE @R3 { @A, @B, @C, @D }; -- One record with four columns
The number of lines is dynamic: see the next section.
To access a specific location in a record, one must use the line number (starts at 0) and can use either the column name (between quotes) or the column number (starts at 0). This specific location behaves like a simple variable. Note that a record cannot contain a record:
SET @R1[0]['@A'] = 1; -- First line & first column
SET @R1[0][0] = 1; -- Same location
SET @R1[4]['@B'] = 1; -- Fifth line & second column
SET @R1[0][1] = 1; -- Same location
In the above example, three empty lines are automatically inserted between the first and the fifth. Using an invalid column number or name results in an exception.
Specific location can be used as right values as well. A specific line can also be used as right value:
SET @R1[0][0] = @R3[0][1], @A = @R2[0][0]; -- Behaves like simple variables
SET @A = @R1[1]; -- @A becomes a record which is the first line of @R1
Remember that SET @R1[0][0] = @R2 is impossible because a record cannot contain a record.
It is possible to assign a record to a variable, in this case the variable does not need to be declared:
SET @A = @R3; -- @A becomes a record because it is assigned a record
Any SQL query executed returns a record. If the query is a SELECT query then it returns the results of the query. If it is something else then it returns a one-line record (true) if this is a success otherwise a zero-line record (false):
SET @A = SELECT * FROM table; -- @A is a record with the results of the query
SET @B = INSERT INTO table ...; -- @B is a one-line record if the query succeeds
See function2.
It is possible to convert a variable from one type to another with the cast function:
SET @A = CAST (@B AS STRING);
SET @A = CAST (@B AS REAL);
SET @A = CAST (@B AS INTEGER);
SET @A = CAST (@B AS RECORD);
When a record is converted to a string, it is converted to its flat representation. When converted to a number, the record is first converted to a string and then to a number (see string conversion for more details).
When a number is converted to a string, it is converted to its string representation. When converted to a record, it is converted to a one-line-one-column record whose value is the number.
When a string is converted to a number, if the string represents a number then this number is returned else an exception is thrown. When converted to a record, either the program can find a record pattern in the string or it converts it to a one-line-one-column record whose value is the string. A record pattern is:
SET @B = '(1, "abc", "ab\\"")(1, "abc", "ab\\"")'; -- @B is a string
SET @B = CAST (@B AS RECORD); @B becomes a two-line-three-column record
Remember a string is surrounded by simple quotes. Strings composing a record must be surrounded by double quotes which are escaped with \\ (we double the slash because it is already a special character for the enclosing simple quotes).
Operations can only be performed between operands of the same type. Cast values in order to conform to this criterion.
Comparisons result in a number which is 0 or 1.
Comparisons: = <> > < <= >= AND OR
Concatenation: +
SET @B = @A + 'abcdef'; -- @A must be a string and @B will be a string
Boolean value: non-empty string is true, empty string is false
Inverse boolean value: NOT
Case-insensitive comparison: ~=
Comparisons: = <> > < <= >= AND OR
Arithmetic: + - * / %
SET @A = CAST ('10' AS INTEGER) + 5; -- '10' string is converted to a number
Boolean value: 0 is false, anything else is true
Inverse boolean value: NOT (note that NOT NOT 10 = 1)
An arithmetic operation involving at least one real number gives a real number as a result:
SET @A = 10 / 4.; -- 4. is a real so real division: @A = 2.5
SET @A = 10 / 4; -- 4 is an integer so integer division: @A = 2
Comparisons: = <> > < <= >= AND OR
Boolean value: zero-line record is false, anything else is true
Inverse boolean value: NOT
Comparisons for records are about inclusion and exclusion. Order of lines does not matter. <= means that each row in the left operand has a match in the right operand. >= means the opposite. = means that <= and >= are both true at the same time...
Comparisons are performed on strings: even if a record contains numbers like 10 and 1e1 we will have '10' <> '1e1'.
IF condition
BEGIN
pgScript commands
END
ELSE
BEGIN
pgScript commands
END
pgScript commands are optional. BEGIN and END keywords are optional if there is only one pgScript command.
WHILE condition
BEGIN
pgScript commands
END
pgScript commands are optional. BEGIN and END keywords are optional if there is only one pgScript command.
BREAK ends the enclosing WHILE loop, while CONTINUE causes the next iteration of the loop to execute. RETURN behaves like BREAK:
WHILE condition1
BEGIN
IF condition2
BEGIN
BREAK;
END
END
Conditions are in fact results of operations. For example the string comparison 'ab' = 'ac' will result in a number which is false (the equality is not true):
IF 'ab' ~= 'AB' -- Case-insensitive comparison which result in 1 (true) which is true
BEGIN
-- This happens
END
IF 0 -- false
BEGIN
-- This does **not** happen
END
ELSE
BEGIN
-- This happens
END
WHILE 1
BEGIN
-- Infinite loop: use BREAK for exiting
END
It is possible to the result of a SQL SELECT query directly as a condition. The query needs to be surrounded by parenthesis:
IF (SELECT 1 FROM table)
BEGIN
-- This means that table exists otherwise the condition would be false
END
Procedures do not return a result. They must be used alone on a line and cannot be assigned to a variable.
Prints an expression on the screen:
PRINT 'The value of @A is' + CAST (@A AS STRING);
Throws an exception if the expression evaluated is false:
ASSERT 5 > 3 AND 'a' = 'a';
Removes the specified line of a record:
RMLINE(@R[1]); -- Removes @R second line
Functions do return a result. Their return value can be assigned to a variable, like the CAST operation.
Removes extra spaces surrounding a string:
SET @A = TRIM(' a '); -- @A = 'a'

Gives the number of lines in a record:
IF LINES(@R) > 0
BEGIN
-- Process
END
Gives the number of columns in a record:
IF COLUMNS(@R) > 0
BEGIN
-- Process
END
One can assign a variable (SET) with a random data generators. This means each time the variable will be used it will have a different value.
However the variable is still used as usual:
SET @G = STRING(10, 20, 2);
SET @A = @G; -- @A will hold a random string
SET @B = @G; -- @B will hold another random string
PRINT @G, -- This will print another third random string
Common parameters for data generators are sequence and seed.
sequence means that a sequence of values is generated in a random order, in other words each value appears only once before the sequence starts again: this is useful for columns with a UNIQUE constraint. For example, this generator:
SET @G = INTEGER(10, 15, 1); -- 1 means generate a sequence
It can generate such values:
14 12 10 13 11 15 14 12 10 13 11
Where each number appears once before the sequence starts repeating.
sequence parameter must be an integer: if it is 0 then no sequence is generated (default) and if something other than 0 then generate a sequence.
seed is an integer value for initializing a generator: two generators with the same parameters and the same seed will generate exactly the same values.
seed must be an integer: it is used directly to initialize the random data generator.
Optional parameters are put into brackets:
Generator
: INTEGER ( min, max, [sequence], [seed] );
| REAL ( min, max, precision, [sequence], [seed] );
| DATE ( min, max, [sequence], [seed] );
| TIME ( min, max, [sequence], [seed] );
| DATETIME ( min, max, [sequence], [seed] );
| STRING ( min, max, [nb], [seed] );
| REGEX ( regex, [seed] );
| FILE ( path, [sequence], [seed], [encoding] );
| REFERENCE ( table, column, [sequence], [seed] );
INTEGER ( min, max, [sequence], [seed] );
INTEGER ( -10, 10, 1, 123456 );
min is an integer, max is an integer, sequence is an integer and seed is an integer.
REAL ( min, max, precision, [sequence], [seed] );
REAL ( 1.5, 1.8, 2, 1 );
min is a number, max is a number, precision is an integer that indicates the number of decimals (should be less than 30), sequence is an integer and seed is an integer.
DATE ( min, max, [sequence], [seed] );
DATE ( '2008-05-01', '2008-05-05', 0 );
min is a string representing a date, max is a string representing a date, sequence is an integer and seed is an integer.
TIME ( min, max, [sequence], [seed] );
TIME ( '00:30:00', '00:30:15', 0 );
min is a string representing a time, max is a string representing a time, sequence is an integer and seed is an integer.
DATETIME ( min, max, [sequence], [seed] );
DATETIME ( '2008-05-01 14:00:00', '2008-05-05 15:00:00', 1 );
min is a string representing a timestamp, max is a string representing a timestamp, sequence is an integer and seed is an integer.
STRING ( min, max, [nb], [seed] );
STRING ( 10, 20, 5 );
min is an integer representing the minimum length of a word, max is an integer representing the maximum length of a word, nb is an integer representing the number of words (default: 1) and seed is an integer.
In the above example we generate 5 words (separated with a space) whose size is between 10 and 20 characters.
REGEX ( regex, [seed] );
REGEX ( '[a-z]{1,3}@[0-9]{3}' );
regex is a string representing a simplified regular expressions and seed is an integer.
Simplified regular expressions are composed of:
It is possible to specify the minimum and maximum length of the preceding set or single character:
Note: be careful with spaces because 'a {3}' means one a followed by three spaces because the 3 is about the last character or set of characters which is a space in this example.
If you need to use [ ] \ { or }, they must be escaped because they are special characters. Remember to use double backslash: '\\[{3}' for three [.
FILE ( path, [sequence], [seed], [encoding] );
FILE ( 'file.txt', 0, 54321, 'utf-8' );
path is a string representing the path to a text file, sequence is an integer, seed is an integer and encoding is a string representing the file character set (default is system encoding).
This generates a random integer between 1 and the number of lines in the file and then returns that line. If the file does not exist then an exception is thrown.
encoding supports the most known encoding like utf-8, utf-16le, utf-16be, iso-8859-1, ...
REFERENCE ( table, column, [sequence], [seed] );
REFERENCE ( 'tab', 'col', 1 );
table is a string representing a table, column is a string representing a column of the table, sequence is an integer and seed is an integer.
This is useful for generating data to put into foreign-key-constrained columns.


{% extends "pages/base.html" %} {% block title %} About {% endblock %} {% block headline %} About {% endblock %} {% block breadcrumb %}
reSRC stands for resource. It came to birth because I could not find a website displaying both quality curated lists and tag-sorted links.
Whenever I found an interesting article or a tutorial on a subject I wanted to investigate, I ended up bookmarking it, together with curated lists laying here and there.
Programmers sometimes need lists of links on a specific programming topic, be it a technology, a framework, a language, ...
On reSRC, you are free to create your own lists or to pull the list you already have on GitHub or anywhere else. But most of you will probably be more interested by discovering great resources from great lists. Or by reSRC's tagged links database. Try Python+TDD
or Ruby+Book
. And of course, the meta-tag : Haskell+resource
reSRC is being developed by victor felder with early contributions from martin maillard. Backend is Django, frontend is Zurb Foundation.
contact:
Add a reSRC in one click using our bookmarklet !
For Chrome, Chromium, Firefox, Opera, drag and drop this button to your bookmarks. For Internet Explorer, right-click the button and add to your bookmarks.


Exercise
Given the following bus stops
"Nordostbahnhof",
"Theresienkrankenhaus",
"Teutoburger Str.",
"Leipziger Str.",
"Dresdener Str.",
"Spitalhof",
"Hubertusstr.",
"Tattersall",
"Martha-Maria-Krkhs."
Results
Get the position of the bus stop 'Hubertusstr.' and remove all bus stops after that bus stop from the array.
Write a function that returns all bus stops between a given start bus stop and a given end bus stop. E.g.
From: 'Nordostbahnhof'
To: 'Dresdener Str.'


Model and Members
Model
Your business models are classes derived from Model or Model<T>. Your model class defines data schema and other data logic which can be shared across different data sources. A model will be created and associated with one of the following DataSource automatically:
- DataSet<T>: In-memory collection of data;
- DbTable<T>: Database table, either permanent or temporary;
- DbQuery<T>: Database query which can be executed on database server.
Your model class must have a parameterless constructor.
Model Members
Your model can consist the following members, as read only properties:
| Model Member | Description |
|---|---|
| Column | Property of concrete type derived from Column<T> to represents a column of data. See Model Column for more information. |
| ColumnList<T> | Columns accessed via index, can be used for pivot table of data. |
| Projection | Property of type derived from Projection to represent lookup data from other model. See Model Projection for more information. |
| Child Model | Represents hierarchical of data. |
Member Registration
Model members should be registered so that the property can be properly mounted, otherwise the property will always return null value. The following registration methods should be invoked, either in static class constructor or as static field initializer:
Model member without registration will generate a compile time warning. With RDO.Tools installed, you can fix this warning by moving the caret to the property name, and pressing CTRL-. in Visual Studio:
Model Visualizer
Model Visualizer is your best friend to manipulate model members. You can show Model Visualizer tool window by clicking menu "View" -> "Other Windows" -> "Model Visualizer" in Visual Studio:
To add model member, in Model Visualizer tool window, click the left top button, the following code snippet will be inserted:
Tabbing through the code snippet to change the property name and property type. When done, press ESC to quit code snippet editing. You now have a compile-time warning Missing registration for property '<Name>'
. You can fix this warning by moving the caret to the property name, and pressing CTRL-. in Visual Studio as described previously.
More features of Model Visualizer tool window will be discussed in later topics. Keep in mind Model Visualizer is a great place to start your model design, you can add EVERYTHING via Model Visualizer tool window, without remembering lots of APIs.


Getting Content from an External Source
This demonstrates how to load Tab content from an external data source.
Browser News


Total Interest Calculator
Type of Interest
No. of Compound Periods per Year
Amount
Rate
%
No. of Years
No. of Compound Periods per Year
Rate
%
No. of Years


|
SideCar
|
Helper class used to invoke the Thread::runWrapper() method. More...
Public Types | |
| using | RunWrapper) = void(Thread::*)( |
Public Member Functions | |
| Starter (Thread *obj, RunWrapper runWrapper) | |
| void | start () |
Data Fields | |
| Thread * | obj_ |
| RunWrapper | runWrapper_ |
Helper class used to invoke the Thread::runWrapper() method.
We do things this way so we don't have to open holes in the Thread class permissions.
Definition at line 308 of file Threading.cc.


A very simple pie chart with label interpolation to show percentage instead of the actual data series value.
Pie Chart With Custom Labels
This pie chart is configured with custom labels specified in the data object. On desktop we use the labelOffset property to offset the labels from the center. Also labelDirection can be used to control the direction in which the labels are expanding.
Gauge Chart
This pie chart uses donut, startAngle and total to draw a gauge chart.
Donut Chart
Although it'd be also possible to achieve this animation with CSS, with some minor suboptimal things, here's an example of how to animate donut charts using Chartist.Svg.animate and SMIL.


| Metric | Tag | Overall | Per Function |
| Lines of Code | LOC | 0 | ****** |
| McCabe's Cyclomatic Number | MVG | 0 | ****** |
| Lines of Comment | COM | 0 | ******** |
| LOC/COM | L_C | ------ | |
| MVG/COM | M_C | ------ | |
| Weighted Methods per Class ( weighting = unity ) | WMC1 | 0 | |
| Weighted Methods per Class ( weighting = visible ) | WMCv | 0 | |
| Depth of Inheritance Tree | DIT | 0 | |
| Number of Children | NOC | 0 | |
| Coupling between objects | CBO | 25 | |
| Information Flow measure ( inclusive ) | IF4 | 0 | ******** |
| Information Flow measure ( visible ) | IF4v | 0 | ******** |
| Information Flow measure ( concrete ) | IF4c | 0 | ******** |


[gecode-users] Gecode/FlatZinc 1.1 released
Raffaele Cipriano
cipriano at dimi.uniud.it
Wed Feb 13 15:21:00 CET 2008
Dear Guido,
I'have installed the "Flatzinc for Gecode 1.1" release, and it works.
But perhaps I misunderstood something... I thought that the parser would have returned a
gecode space in a c++ file, for example I thought that executing
$ fz myInstanceOfGolombRulers.fzn
should have create a myInstanceOfGolombRulers.cc file
to be compiled and executed...but it doesn't seem to work in this way...
Is the gecode space only an internal translation?
Is it directly executed by the fz command?
Thank you
Raffaele
More information about the gecode-users
mailing list


Holding the glass-mantled lamp high, Mat peered down the narrow corridor, deep in the belly of the Stone. Not unless my life depended on it. That’s what I promised. Well, burn me if it doesn’t!
Before doubt could seize him again, he hurried on, past doors dry-rotted and hanging aslant, past others only shreds of wood clinging to rusted hinges. The floor had been swept recently, but the air still smelled of old dust and mold. Something skittered in the darkness, and he had a knife out before he realized it was just a rat, running from him, no doubt running toward some escape hole it knew.
“Show me the way out,” he whispered after it, “and I’ll come with you.” Why am I whispering? There’s nobody down here to hear me. It seemed a place for quiet, though. He could feel the whole weight of the Stone over his head, pressing down.
The last door, she had said. That one hung askew, too. He kicked it open, and it fell apart. The room was littered with dim shapes, with crates and barrels and things stacked high against the walls and out into the floor. Dust, too. The Great Hold! It looks like the basement of an abandoned farmhouse, only worse. He was surprised that Egwene and Nynaeve had not dusted and tidied while they were down here. Women were always dusting and straightening, even things that did not need it. Footprints crisscrossed the floor, some of them from boots, but no doubt they had had men to shift the heavier items about for them. Nynaeve liked finding ways to make a man work; likely she had deliberately hunted out some fellows enjoying themselves. .
What he sought stood out among the jumble. A tall redstone doorframe, looming oddly in the shadows cast by his lamp. When he came closer, it still looked odd. Twisted, somehow. His eye did not want to follow it around; the corners did not join right. The tall hollow rectangle seemed likely to fall over at a breath, but when he gave it an experimental push, it stood steady. He pushed a bit harder, not sure he did not want to heave the thing over, and that side of it scraped through the dust. Goose bumps ran down his arms. There might as well have been a wire fastened to the top, suspending it from the ceiling. He held the lamp up to see. There was no wire. At least it won’t topple while I’m inside. Light, I am going inside, aren’t I?
A clutter of figurines and small things wrapped in rotting cloth occupied the top of a tall, upended barrel near him. He pushed the jumble to one side so he could set the lamp there, and studied the doorway. The ter’angreal. If Egwene knew what she was talking about. She probably did; no doubt she had learned all sorts of strange things in the Tower, however much she denied. She would deny things, wouldn’t she now. Learning to be Aes Sedai. She didn’t deny this though, now did she? If he squinted, it just looked like a stone doorframe, dully polished and the duller for dust. Just a plain doorframe. Well, not entirely plain. Three sinuous lines carved deep in the stone ran down each upright from top to bottom. He had seen fancier on farmhouses. He would probably step through and find himself still in this dusty room.
Won’t know till I try, will I? Luck! Taking a deep breath—and coughing from the dust—he put his foot through.
He seemed to be stepping through a sheet of brilliant white light, infinitely bright, infinitely thick. For a moment that lasted forever, he was blind; a roaring filled his ears, all the sounds of the world gathered together at once. For just the length of one measureless step.
Stumbling another pace, he stared around in amazement. The ter’angreal was still there, but this was certainly not where he had started. The twisted stone doorframe stood in the center of a round hall with a ceiling so high it was lost in shadows, surrounded by strange spiraled yellow columns snaking up into the gloom, like huge vines twining ’round poles that had been taken away. A soft light came from glowing spheres atop coiled stands of some white metal. Not silver; the shine was too dull for that. And no hint of what made the glow; it did not look like flame; the spheres simply shone. The floor tiles spiraled out in white and yellow stripes from the ter’angreal. There was a heavy scent in the air, sharp and dry and not particularly pleasant. He almost turned around and went back on the spot.
“A long time.”
He jumped, a knife coming into his hand, and peered among the columns for the source of the breathy voice that pronounced those words so harshly.
“A long time, yet the seekers come again for answers. The questioners come once more.” A shape moved, back among the columns; a man, Mat thought. “Good. You have brought no lamps, no torches, as the agreement was, and is, and ever will be. You have no iron? No instruments of music?”
The figure stepped out, tall, barefoot, arms and legs and body wound about in layers of yellow cloth, and Mat was suddenly not so sure if it was a man. Or human. It looked human, at first glance, though perhaps too graceful, but it seemed far too thin for its height, with a narrow, elongated face. Its skin, and even its straight black hair, caught the pale light in a way that reminded him of a snake’s scales. And those eyes, the pupils just black, vertical slits. No, not human.
“Iron. Instruments of music. You have none?”
Mat wondered what it thought the knife was; it certainly did not seem concerned over it. Well, the blade was good steel, not iron. “No. No iron, and no instruments of—Why—?” He cut off sharply. Three questions, Egwene had said. He was not about to waste one on “iron” or “instruments of music.” Why should he care if I have a dozen musicians in my pocket and a smithy on my back? “I have come here for true answers. If you are not the one to give them, take me to who can.”
The man—it was male at least, Mat decided—smiled slightly. He did not show any teeth. “According to the agreement. Come.” He beckoned with one long-fingered hand. “Follow.”
Mat made the knife disappear up his sleeve. “Lead, and I will follow.” Just you keep ahead of me and in plain sight. This place makes my skin crawl.
There was not a straight line to be seen anywhere except for the floor itself, as he trailed the strange man. Even the ceiling was always arched, and the walls bowed out. The halls were continuously curved, the doorways rounded, the windows perfect circles. Tilework made spirals and sinuous lines, and what seemed to be bronze metalwork set in the ceiling at intervals was all complicated scrolls. There were no pictures of anything, no wall hangings or paintings. Only patterns, and always curves.
He saw no one except his silent guide; he could have believed the place empty except for the two of them. From somewhere he had a dim memory of walking halls that had not known a human foot in hundreds of years, and this felt the same. Yet sometimes he caught a flicker of motion out of the corner of his eye. Only, however quickly he turned, there was never anyone there. He pretended to rub his forearms, checking the knives up his coatsleeves for reassurance.
What he saw through those round windows was even worse. Tall wispy trees with only a drooping umbrella of branches at the top, and others like huge fans of lacy leaves, a tangle of growth equal to the heart of any briar-choked thicket, all under a dim, overcast light, though there did not seem to be a cloud in the sky. There were always windows, always along just one side of the curving corridor, but sometimes the side changed, and what surely should have been looking into courtyard or rooms instead gave out into that forest. He never caught as much as a glimpse of any other part of this palace, or whatever it was, through those windows, or any other building, except . . .
Through one circular window he saw three tall silvery spires, curving in toward each other so their points all aimed at the same spot. They were not visible from the next window, three paces away, but a few minutes later, after he and his guide had rounded enough curves that he had to be looking in another direction, he saw them again. He tried telling himself these were three different spires, but between them and him was one of those fan-shaped trees with a dangling broken branch, a tree that had been in the same spot the first time. After his third sight of the spires and the strange tree with the broken branch, this time ten paces farther on but on the other side of the hallway, he tried to stop looking at what lay outside at all.
The walk seemed interminable.
“When—? Are—?” Mat ground his teeth. Three questions. It was hard to learn anything without asking questions. “I hope you are taking me to those who can answer my questions. Burn my bones, I do. For my sake and yours, the Light know it true.”
“Here,” the peculiar, yellow-wrapped fellow said, gesturing with one of those thin hands to a rounded doorway twice as large as any Mat had seen before. His strange eyes studied Mat intently.  Mat frowned at him, and the stranger gave a writhing hitch of his shoulders. “Here your answers may be found. Enter. Enter and ask.”
Mat drew a deep breath of his own, then grimaced and scrubbed at his nose. That sharp, heavy smell was a rank nuisance. He took a hesitant step toward the tall doorway, and looked around for his guide again. The fellow was gone. Light! I don’t know why anything in this place surprises me now. Well, I will be burned if I’ll turn back now. Trying not to think of whether he could find the ter’angreal again on his own, he went in.
It was another round room, with spiraling floor tiles in red and white under a domed ceiling. It had no columns, or furnishings of any kind, except for three thick, coiled pedestals around the heart of the floor’s spirals. Mat could see no way to reach the top of them except by climbing the twists, yet a man like his guide sat cross-legged atop each, only wrapped in layers of red. Not all men, he decided at a second look; two of those long faces with the odd eyes had a definite feminine cast. They stared at him, intense penetrating stares, and breathed deeply, almost panting. He wondered if he made them nervous in some way. Not much bloody chance of that. But they’re certainly getting under my coat.
“It has been long,” the woman on the right said.
“Very long,” the woman on the left added.
The man nodded. “Yet they come again.”
All three had the breathy voice of the guide—almost indistinguishable from it, in fact—and the harsh way of pronouncing words. They spoke in unison, and the words might as well have come from one mouth. “Enter and ask, according to the agreement of old.”
If Mat had thought his skin crawled before, now he was sure it was writhing. He made himself go closer. Carefully—careful to say nothing that even sounded like a question—he laid the situation before them. The Whitecloaks, certainly in his home village, surely hunting friends of his, maybe hunting him. One of his friends going to face the Whitecloaks, another not.  A ta’veren pulling at him so he could hardly move. He saw no reason to give names, or mention that Rand was the Dragon Reborn. His first question—and the other two, for that matter—he had worked out before going down to the Great Hold. “Should I go home to help my people?” he asked finally.
Three sets of slitted eyes lifted from him—reluctantly, it seemed—and studied the air above his head. Finally the woman on the left said, “You must go to Rhuidean.”
As soon as she spoke their eyes all dropped to him again, and they leaned forward, breathing deeply again, but at that moment a bell tolled, a sonorous brazen sound that rolled through the room. They swayed upright, staring at one another, then at the air over Mat’s head again.
“He is another,” the woman on the left whispered. “The strain. The strain.”
“The savor,” the man said. “It has been long.”
“There is yet time,” the other woman told them. She sounded calm—they all did—but there was a sharpness to her voice when she turned back to Mat. “Ask. Ask.”
Mat glared up at them furiously. Rhuidean? Light! That was somewhere out in the Waste, the Light and the Aiel knew where. That was about as much as he knew. In the Waste! Anger drove questions about how to get away from Aes Sedai and how to recover the lost parts of his memory right out his head. “Rhuidean!” he barked. “The Light burn my bones to ash if I want to go Rhuidean! And my blood on the ground if I will! Why should I? You are not answering my questions. You are supposed to answer, not hand me riddles!”
“If you do not go to Rhuidean,” the woman on the right said, “you will die.”
The bell tolled again, louder this time; Mat felt its tremor through his boots. The looks the three shared were plainly anxious. He opened his mouth, but they were only concerned with each other.
“The strain,” one of the women said hurriedly. “It is too great.”
“The savor of him,” the other woman said on her heels. “It has been so very long.”
Before she was done the man spoke. “The strain is too great. Too great. Ask. Ask!”
“Burn your soul for a craven heart,” Mat growled, “I will that! Why will I die if I do not go to Rhuidean? I very likely will die if I try. It makes no—”
The man cut him off and spoke hurriedly. “You will have sidestepped the thread of fate, left your fate to drift on the winds of time, and you will be killed by those who do not want that fate fulfilled. Now, go. You must go! Quickly!”
The yellow-clad guide was suddenly there at Mat’s side, tugging at his sleeve with those too-long hands.
 “No! I will not go! You have led me from the questions I wanted to ask and given me senseless answers. You will not leave it there. What fate are you talking about? I will have one clear answer out of you, at least!”
A third time the bell sounded mournfully, and the entire room trembled.
“Go!” the man shouted. “You have had your answers.
Abruptly a dozen of the yellow-clad men were around Mat, seeming to appear out of the air, trying to pull him toward the door. He fought with fists, elbows, knees. “What fate? Burn your hearts, what fate?” It was the room itself that pealed, the walls and floor quivering, nearly taking Mat and his attackers off their feet. “What fate?”
The three were on their feet atop the pedestals, and he could not tell which shrieked which answer.
“To marry the Daughter of the Nine Moons!”
“To die and live again, and live once more a part of what was!”
“To give up half the light of the world to save the world!”
Together they howled like steam escaping under pressure. “Go to Rhuidean, son of battles! Go to Rhuidean, trickster! Go, gambler! Go!”
Mat’s assailants snatched him into the air by his arms and legs and ran, holding him over their heads.  “Burn your eyes! The Shadow take your souls, loose me! I will have your guts for a saddle girth!” But writhe and curse as he would, those long fingers gripped like iron.
Twice more the bell tolled, or the palace did. Everything shook as in an earthquake; the walls rang with deafening reverberations, each louder than the last. Mat’s captors stumbled on, nearly falling but never stopping their pell-mell race. He did not even see where they were taking him until they suddenly stopped short, heaving him into the air. Then he saw the twisted doorway, the ter’angreal, as he flew toward it.
White light blinded him; the roar filled his head till it drove thought away.
He fell heavily onto a dusty floor in dim light and rolled up against the barrel holding his lamp in the Great Hold. The barrel rocked, packets and figurines toppling to the floor in a crash of breaking stone and ivory and porcelain. Bounding to his feet, he threw himself back at the stone doorframe.
He hurtled through—and stumbled against the crates and barrels on the other side. Without a pause, he turned and leaped at it again. With the same result. This time he caught himself on the barrel holding his lamp, which nearly fell onto the already shattered things littering the floor under his boots. He grabbed it in time, burning his hand, and fumbled it back to a steadier perch.
 Light, the way my luck is running, it probably would have started a fire and I’d have burned to death!
He glared at the ter’angreal. Why was it not working? Maybe the folk on the other side had shut it off somehow. He understood practically nothing of what had happened. That bell, and their panic. You would have thought they were afraid the roof would come down on their heads. Come to think of it, it very nearly had. And Rhuidean, and all the rest of it. The Waste was bad enough, but they said he was fated to marry somebody called the Daughter of the Nine Moons. Marry! And to a noblewoman, by the sound of it.  And that business about dying and living again. Nice of them to add the last bit! If some black-veiled Aielman killed him on the way to Rhuidean, he would find out how true it was. It was all nonsense, and he did not believe a word of it. Only . . . The bloody doorway had taken him somewhere, and they had only wanted to answer three questions, just the way Egwene had said.
 “I’ll marry when I’m too old to have any fun, that’s what! Rhuidean my bloody—!”
A boot appeared, backing out of the twisted stone doorway, followed by the rest of Rand, with that fiery sword in his hands. The blade vanished as he stepped clear, and he heaved a sigh of relief. Even in the dim light, Mat could see he was troubled, though. He gave a start when he saw Mat. “Just poking around, Mat? Or did you go through, too?”
Mat eyed him warily for a moment. At least that sword was gone. He did not seem to be channeling—though how was anybody to tell?—and he did not look particularly like a madman. In fact, he looked very much as Mat remembered. He had to remind himself they were not back home any longer, and Rand was not what he remembered. “Oh, I went through, all right.  What are they? Made me think of snakes.”
“Not liars, I think.” Rand sounded as if he wished they were. “No, not that. They were afraid of me, right from the first. And when that tolling started . . . The sword kept them back; they wouldn’t even look at it. Shied away. Hid their eyes. Did you get your answers?”
“Nothing that makes sense,” Mat muttered. “What about you?”
Suddenly Moiraine appeared from the ter’angreal, seeming to step gracefully out of thin air, flowing out. She would be a fine one to dance with if she were not Aes Sedai. Her mouth tightened at the sight of them.
“You! You were both in there. That is why . . . !” She made a vexed hiss. “One of you would have been bad enough, but two ta’veren at once—you might have torn the connection entirely and been trapped there.  Perrin! Is Perrin in there, too? Did he share your . . . exploit?”
“The last I saw of Perrin,” Mat said, “he was getting ready to go bed.” Maybe Perrin would give him the lie by being the next to step out of the thing, but he might as well deflect the Aes Sedai’s anger if he could. No need for Perrin to face it, too. Maybe he’ll make it clear of her, at least, if he gets away before she knows what he’s doing. Bloody woman! I’ll wager she was noble born.
That Moraine was angry there was no doubt. The blood had drained out of her cheeks, and her eyes were dark augers boring into Rand. “At least you escaped with your lives. Who told you of this? Which one of them? I will make her wish I had peeled off her hide like a glove.”
“A book told me,” Rand said calmly. He sat down back on the edge of a crate that creaked alarmingly under his weight and crossed his arms. All very cool; Mat wished he could emulate it. “A pair of books, in fact. Treasures of the Stone and Dealings with the Territory of Mayene. Surprising what you can dig out of books if you read long enough, isn’t it?”
“And you?” She shifted that drilling gaze to Mat. “Did you read it in a book, too? You?”
“I do read sometimes,” he said dryly. He would not have been averse to a little hide-peeling for Egwene and Nynaeve after what they had done to make him tell where he had hidden the Amyrlin’s letter—tying him up with the Power was bad enough, but the rest!—yet it was more fun to tweak Moiraine’s nose. “Treasures. Dealings. Lots of things in books.” Luckily, she did not insist that he repeat the titles; he had not paid attention once Rand brought up books.
Instead she swung back to Rand. “And your answers?”
“Are mine,” Rand replied, then frowned. “It wasn’t easy, though. They brought a . . . woman . . . to interpret, but she talked like an old book. I could hardly understand some of the words. I never considered they might speak another language.”
“The Old Tongue,” Moiraine told him. “They use the Old Tongue—a rather harsh dialect of it—for their dealings with men. And you, Mat? Was your interpreter easily understood?”
He had to work moisture back into his mouth. “The Old Tongue? Is that what it was? They didn’t give me one. In fact, I never got to ask any questions. That bell started shaking the walls down, and they hustled me out like I was tracking cow manure on the rugs.”  She knew about the Old Tongue slipping out of him, sometimes. “I . . . almost understood a word here and there, but not to know it. You and Rand got answers. What do they get out of it? The snakes with legs. We aren’t going upstairs to find ten years gone, are we, like Bili in the story?”
“Sensations,” Moiraine replied with a grimace. “Sensations, emotions, experiences. They rummage through them; you can feel them doing it, making your skin crawl. Perhaps they feed on them in some manner. The Aes Sedai who studied this ter’angreal when it was in Mayene wrote of a strong desire to bathe afterward. I certainly intend to.”
“But their answers are true?” Rand said as she started to turn away. “You are sure of it? The books implied as much, but can they really give true answers about the future?”
“The answers are true,” Moiraine said slowly, “so long as they are in regard to your own future. That much is certain.” She watched Rand, and himself, weighing the effect of her words. “As to how, though, there is only speculation. That world is . . . folded . . . in strange ways. I cannot be clearer. It may be that that allows them to read the thread of a human life, read the various ways it may yet be woven into the Pattern. Or perhaps it is a talent of the people. The answers are often obscure, however. If you need help working out what yours mean, I offer my services.” Her eyes flickered from one of them to the other, and Mat nearly swore. She did not believe him about no answers. Unless it was simply general Aes Sedai suspicion.
Rand gave her a slow smile. “And will you tell me what you asked, and what they answered?”
For answer, she returned a level, searching look, then started for the door. A small ball of light, as bright as a lantern, was suddenly floating ahead of her, illuminating her way.
Mat knew he should leave it alone, now. Just let her go and hope she forgot he had ever been down here. But a knot of anger still burned inside him. All those ridiculous things they had said. Well, maybe they were true, if Moiraine said so, but he wanted to grab those fellows by the collar, or whatever passed for a collar in those wrappings, and make them explain a few things.
“Why can’t you go there twice, Moiraine?” he called after her. “Why not?” He very nearly asked why they worried about iron and musical instruments, too, and bit his tongue. He could not know about those if he had not understood what they were saying.
She paused at the door to the hall, and it was impossible to see if she was looking at the ter’angreal or at Rand. “If I knew everything, Matrim, I would not need to ask questions.” She peered into the room a moment longer—she was staring at Rand—then glided away without another word.
For a time Mat and Rand looked at each other in silence.
“Did you find out what you wanted?” Rand asked finally.
“Did you?”
A bright flame leaped into existence, balanced above Rand’s palm. Not the smooth glowing sphere of the Aes Sedai, but a rough blaze like a torch. As Rand moved to leave, Mat added another question. “Are you really going to just let the Whitecloaks do whatever they want back home? You know they’re heading for Emond’s Field. If they are not there already.  It’s too much, otherwise.”
“Perrin will do . . . what he has to do to save Emond’s Field,” Rand replied in a pained voice. “And I must do what I have to, or more than Emond’s Field will fall, and to worse than Whitecloaks.”
Mat stood watching the light of that flame fade away down the hall, until he remembered where he was. Then he snatched up his lamp and hurried out. Rhuidean! Light, what am I going to do?


Pieces/Points
Control
Mixed
For mixed type in coefficients for each feature wanted (0 if not counting that feature.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.bookkeeper.common.collections; | |
| 20 | ||
| 21 | import java.util.Collection; | |
| 22 | import java.util.concurrent.BlockingQueue; | |
| 23 | import java.util.concurrent.TimeUnit; | |
| 24 | ||
| 25 | import org.jctools.queues.MpscArrayQueue; | |
| 26 | ||
| 27 | /** | |
| 28 | * Blocking queue optimized for multiple producers and single consumer. | |
| 29 | */ | |
| 30 | public class BlockingMpscQueue<T> extends MpscArrayQueue<T> implements BlockingQueue<T> { | |
| 31 | ||
| 32 | public BlockingMpscQueue(int size) { | |
| 33 | super(size); | |
| 34 | } | |
| 35 | ||
| 36 | @Override | |
| 37 | public void put(T e) throws InterruptedException { | |
| 38 |
1
1. put : negated conditional → KILLED |
while (!this.relaxedOffer(e)) { |
| 39 | // Do busy-spin loop | |
| 40 |
1
1. put : negated conditional → SURVIVED |
if (Thread.interrupted()) { |
| 41 | throw new InterruptedException(); | |
| 42 | } | |
| 43 | } | |
| 44 | } | |
| 45 | ||
| 46 | @Override | |
| 47 | public boolean offer(T e, long timeout, TimeUnit unit) throws InterruptedException { | |
| 48 |
1
1. offer : Replaced long addition with subtraction → TIMED_OUT |
long absoluteEndTime = System.nanoTime() + unit.toNanos(timeout); |
| 49 | ||
| 50 |
1
1. offer : negated conditional → KILLED |
while (!this.relaxedOffer(e)) { |
| 51 | // Do busy-spin loop | |
| 52 | ||
| 53 |
2
1. offer : changed conditional boundary → SURVIVED 2. offer : negated conditional → TIMED_OUT |
if (System.nanoTime() > absoluteEndTime) { |
| 54 |
1
1. offer : replaced boolean return with true for org/apache/bookkeeper/common/collections/BlockingMpscQueue::offer → KILLED |
return false; |
| 55 | } | |
| 56 | ||
| 57 |
1
1. offer : negated conditional → KILLED |
if (Thread.interrupted()) { |
| 58 | throw new InterruptedException(); | |
| 59 | } | |
| 60 | } | |
| 61 | ||
| 62 |
1
1. offer : replaced boolean return with false for org/apache/bookkeeper/common/collections/BlockingMpscQueue::offer → KILLED |
return true; |
| 63 | } | |
| 64 | ||
| 65 | @Override | |
| 66 | public T take() throws InterruptedException { | |
| 67 | int idleCounter = 0; | |
| 68 | while (true) { | |
| 69 | T item = relaxedPoll(); | |
| 70 |
1
1. take : negated conditional → KILLED |
if (item == null) { |
| 71 |
1
1. take : negated conditional → SURVIVED |
if (Thread.interrupted()) { |
| 72 | throw new InterruptedException(); | |
| 73 | } | |
| 74 | ||
| 75 | idleCounter = WAIT_STRATEGY.idle(idleCounter); | |
| 76 | continue; | |
| 77 | } | |
| 78 | ||
| 79 | ||
| 80 |
1
1. take : replaced return value with null for org/apache/bookkeeper/common/collections/BlockingMpscQueue::take → KILLED |
return item; |
| 81 | } | |
| 82 | } | |
| 83 | ||
| 84 | @Override | |
| 85 | public T poll(long timeout, TimeUnit unit) throws InterruptedException { | |
| 86 |
1
1. poll : Replaced long addition with subtraction → TIMED_OUT |
long absoluteEndTime = System.nanoTime() + unit.toNanos(timeout); |
| 87 | ||
| 88 | int idleCounter = 0; | |
| 89 | while (true) { | |
| 90 | T item = relaxedPoll(); | |
| 91 |
1
1. poll : negated conditional → KILLED |
if (item == null) { |
| 92 |
1
1. poll : negated conditional → KILLED |
if (Thread.interrupted()) { |
| 93 | throw new InterruptedException(); | |
| 94 | } | |
| 95 | ||
| 96 |
2
1. poll : changed conditional boundary → SURVIVED 2. poll : negated conditional → TIMED_OUT |
if (System.nanoTime() > absoluteEndTime) { |
| 97 | return null; | |
| 98 | } else { | |
| 99 | idleCounter = WAIT_STRATEGY.idle(idleCounter); | |
| 100 | continue; | |
| 101 | } | |
| 102 | } | |
| 103 | ||
| 104 |
1
1. poll : replaced return value with null for org/apache/bookkeeper/common/collections/BlockingMpscQueue::poll → KILLED |
return item; |
| 105 | } | |
| 106 | } | |
| 107 | ||
| 108 | @Override | |
| 109 | public int remainingCapacity() { | |
| 110 |
2
1. remainingCapacity : Replaced integer subtraction with addition → KILLED 2. remainingCapacity : replaced int return with 0 for org/apache/bookkeeper/common/collections/BlockingMpscQueue::remainingCapacity → KILLED |
return capacity() - size(); |
| 111 | } | |
| 112 | ||
| 113 | @Override | |
| 114 | public int drainTo(Collection<? super T> c) { | |
| 115 | int initialSize = c.size(); | |
| 116 | ||
| 117 | final DrainStrategy ds = new DrainStrategy(); | |
| 118 |
1
1. drainTo : removed call to org/apache/bookkeeper/common/collections/BlockingMpscQueue::drain → KILLED |
drain(c::add, ds, ds); |
| 119 |
2
1. drainTo : Replaced integer subtraction with addition → KILLED 2. drainTo : replaced int return with 0 for org/apache/bookkeeper/common/collections/BlockingMpscQueue::drainTo → KILLED |
return c.size() - initialSize; |
| 120 | } | |
| 121 | ||
| 122 | @Override | |
| 123 | public int drainTo(Collection<? super T> c, int maxElements) { | |
| 124 |
1
1. drainTo : replaced int return with 0 for org/apache/bookkeeper/common/collections/BlockingMpscQueue::drainTo → KILLED |
return drain(c::add, maxElements); |
| 125 | } | |
| 126 | ||
| 127 | /** | |
| 128 | * Wait strategy combined with exit condition, for draining the queue. | |
| 129 | */ | |
| 130 | private static final class DrainStrategy implements WaitStrategy, ExitCondition { | |
| 131 | ||
| 132 | boolean reachedEnd = false; | |
| 133 | ||
| 134 | @Override | |
| 135 | public boolean keepRunning() { | |
| 136 |
2
1. keepRunning : replaced boolean return with true for org/apache/bookkeeper/common/collections/BlockingMpscQueue$DrainStrategy::keepRunning → TIMED_OUT 2. keepRunning : negated conditional → KILLED |
return !reachedEnd; |
| 137 | } | |
| 138 | ||
| 139 | @Override | |
| 140 | public int idle(int idleCounter) { | |
| 141 | reachedEnd = true; | |
| 142 |
1
1. idle : replaced int return with 0 for org/apache/bookkeeper/common/collections/BlockingMpscQueue$DrainStrategy::idle → SURVIVED |
return idleCounter; |
| 143 | } | |
| 144 | ||
| 145 | } | |
| 146 | ||
| 147 | /** | |
| 148 | * Waiting strategy that starts with busy loop and gradually falls back to sleeping if no items are available. | |
| 149 | */ | |
| 150 | private static final WaitStrategy SPIN_STRATEGY = new WaitStrategy() { | |
| 151 | ||
| 152 | @Override | |
| 153 | public int idle(int idleCounter) { | |
| 154 |
1
1. idle : removed call to org/apache/bookkeeper/common/collections/BusyWait::onSpinWait → SURVIVED |
BusyWait.onSpinWait(); |
| 155 |
2
1. idle : Replaced integer addition with subtraction → SURVIVED 2. idle : replaced int return with 0 for org/apache/bookkeeper/common/collections/BlockingMpscQueue$1::idle → SURVIVED |
return idleCounter + 1; |
| 156 | } | |
| 157 | }; | |
| 158 | ||
| 159 | private static final WaitStrategy WAIT_STRATEGY = SPIN_STRATEGY; | |
| 160 | } | |
Mutations | ||
| 38 |
1.1 |
|
| 40 |
1.1 |
|
| 48 |
1.1 |
|
| 50 |
1.1 |
|
| 53 |
1.1 2.2 |
|
| 54 |
1.1 |
|
| 57 |
1.1 |
|
| 62 |
1.1 |
|
| 70 |
1.1 |
|
| 71 |
1.1 |
|
| 80 |
1.1 |
|
| 86 |
1.1 |
|
| 91 |
1.1 |
|
| 92 |
1.1 |
|
| 96 |
1.1 2.2 |
|
| 104 |
1.1 |
|
| 110 |
1.1 2.2 |
|
| 118 |
1.1 |
|
| 119 |
1.1 2.2 |
|
| 124 |
1.1 |
|
| 136 |
1.1 2.2 |
|
| 142 |
1.1 |
|
| 154 |
1.1 |
|
| 155 |
1.1 2.2 |


| Broadcast Status | {[broadcast_status]} |
| Broadcast URL | |
| Number of viewers | {[broadcast_usersno]} |
| Client ID | {[local_id]} |
{%extends "home.html"%} {% load staticfiles %} {%block "mainbody"%}
| Broadcast Status | {[broadcast_status]} |
| Broadcast URL | |
| Number of viewers | {[broadcast_usersno]} |
| Client ID | {[local_id]} |


Insurance Premium Prediction
Age
Sex
Male
Female
BMI
Number of Children
Smoker
Yes
No
Region
Southeast California
Southwest California
Northeast California
Northwest California


Portland Doctor Finder
How would you like to search?
By doctor name
By illness
Find Doctors!
Search Results:


Current scope: all classes
Overall Coverage Summary
| Package | Class, % | Method, % | Line, % |
|---|---|---|---|
| all classes | 46.5% (20/43) | 14.6% (27/185) | 16.6% (51/308) |
Coverage Breakdown
| Package | Class, % | Method, % | Line, % |
|---|---|---|---|
| com.table.tennis.api | 100% (2/2) | 83.3% (5/6) | 94.4% (17/18) |
| com.table.tennis.service.impl | 100% (2/2) | 83.3% (5/6) | 64% (16/25) |
| com.table.tennis.model.response | 100% (2/2) | 33.3% (3/9) | 40% (4/10) |
| com.table.tennis | 100% (1/1) | 50% (1/2) | 33.3% (1/3) |
| com.table.tennis.model.entity | 56.2% (9/16) | 12.5% (9/72) | 12.5% (9/72) |
| com.table.tennis.model.dto | 13.3% (2/15) | 2.8% (2/71) | 2.8% (2/71) |
| com.table.tennis.mapper | 50% (2/4) | 11.1% (2/18) | 1.9% (2/108) |
| com.table.tennis.contants | 0% (0/1) | 0% (0/1) | 0% (0/1) |


Folds - types and examples
Folds types
Zig-zag Fold
Pipe Fold
Spiral Fold
Inert Fold
Diaper Fold
Half-Lock Fold
Drop Fold


Home
Sales
locations
Salmon Cookies
new store
Shop Location:
Minimum Customers per Hour:
Maximum Customers per Hour:
Cookies per Sale
Add a Store


new Window()
This Window object is created using by JSDOM, and attached the properties and the methods related to opening, closing, resizing and moving.
To open a new window, use Browser#newWindow or Browser#openWindow.
Properties:
| Name | Type | Description |
|---|---|---|
screen |
Screen | A Screen object. |
innerWidth |
number | The inner width of this window about the window edge. |
innerHeight |
number | The inner height of this window about the window edge. |
scrollX |
number | The horizontal scroll position of the page in this window. |
scrollY |
number | The vertical scroll position of the page in this window. |
pageXOffset |
number | The horizontal scroll position of the page in this window. |
pageYOffset |
number | The vertical scroll position of the page in this window. |
screenX |
number | The horizontal window position. |
screenY |
number | The vertical window position. |
outerWidth |
number | The full width of this window. |
outerHeight |
number | The full height of this window. |
devicePixelRatio |
number | The zooming ratio of the page in this window. |
closed |
boolean | The flag which is true if this window is closed. |
name |
string | The window name. |
Methods
-
close()
-
Closes this window.
Returns:
- Type
- Void
-
moveBy(dx, dy)
-
Moves this window by relative position from the current position of this window. This method is effective when this window is a popup.
Parameters:
Name Type Description dx
number The horizontal moving size of this window.
dy
number The vertical moving size of this window.
Returns:
- Type
- Void
-
moveTo(x, y)
-
Moves this window position. This method is effective when this window is a popup.
Parameters:
Name Type Description x
number The horizontal position of this window after moving.
y
number The vertical position of this window after moving.
Returns:
- Type
- Void
-
open(url, target, features)
-
Opens a window which is indicated by
target
or a new window.In addition, loads the page content indicated by
url
ifurl
is not empty.Parameters:
Name Type Description url
string An URL string of a page content.
target
string A window name or a keyword which is either
_blank
,_self
,_parent
or_top
.features
string A set of comma separated strings which specify position, size and styles of a new window.
Returns:
A window which is created or selected.
- Type
- Window
-
resizeBy(dw, dh)
-
Resizes this window size by relative size from the current size of this window. This method is effective when this window is a popup.
Parameters:
Name Type Description dw
number The resizing width of this window.
dh
number The resizing height of this window.
Returns:
- Type
- Void
-
resizeTo(w, h)
-
Resizes this window size. This method is effective when this window is a popup.
Parameters:
Name Type Description w
number The width of this window after resizing.
h
number The height of this window after resizing.
Returns:
- Type
- Void
-
scroll(x, y)
-
Scrolls the page in this window.
Parameters:
Name Type Description x
number The horizontal scroll position after scrolling.
y
number The vertical scroll position after scrolling.
Returns:
- Type
- Void
-
scrollBy(dx, dy)
-
Scrolls the page in this window. The scroll size is relative position from the current scroll position.
Parameters:
Name Type Description dx
number The horizontal scrolling size.
dy
number The vertical scrolling size.
Returns:
- Type
- Void
-
scrollTo(x, y)
-
Scrolls the page in this window.
Parameters:
Name Type Description x
number The horizontal scroll position after scrolling.
y
number The vertical scroll position after scrolling.
Returns:
- Type
- Void


University of California, Riverside
Within the BML, we seek to develop fundamentally enabling MEMS-based process technologies, devices, and instruments that address critical needs in public health and facilitate the advancement of understanding in areas of medical relevance. We invite you to peruse our site and welcome further inquiries
Our new paper, Massively-Parallelized, Deterministic Mechanoporation for Intracellular Delivery, has been published in Nano Letters and our submitted art made the cover of the February issue. Cover art provided by Taylor Ballas. Find the issue here.
This technology, which spun out of our lab and now licenced to Basilard BioTech, "enables both high gene delivery efficiency and cellular viability, a feat that most other approaches cannot match. " Read the news here.
Congratulations to Ben (2nd to right) who was invited to present his research on flow diverters at the California Council on Science and Technology (CCST).
Aecenas consectetur vestibulum orci ut vulputate. Aenean cursus finibus pulvinar here.
Read the paper here
Aenean posuere, nulla ut placerat fringilla, dolor dolor pellentesque metus. Read the paper here.


Port of Simon Tatham's Portable Puzzle Collection to C++ Windows Store and Windows Phone apps. The interface is built in XAML, and the graphics are drawn with Direct2D.
Available for Windows 10/11 desktops and tablets. Older versions are available for Windows 8.1.
Black Box, Bridges, Cube, Dominosa, Fifteen, Filling, Flip, Flood, Galaxies, Guess, Inertia, Keen, Light Up, Loopy, Magnets, Map, Mines (Minesweeper), Mosaic, Net, Netslide, Palisade, Pattern, Pearl, Pegs (Solitaire), Range, Rectangles, Same Game, Signpost, Singles, Sixteen, Slant, Solo (Sudoku), Tents, Towers, Train Tracks, Twiddle, Undead, Unequal, Unruly, Untangle
Windows 8.1 and Windows Phone will no longer receive official builds, but it's still possible to compile them yourself with Visual Studio 2015. See the repository for more information.
For bug reports and other feedback, add an issue on the Issues page, or send an e-mail to<EMAIL_ADDRESS>Make sure to read this first: How to Report Bugs Effectively
(C) 2023 Lennard Sprong
Contains icons from ModernUIIcons.com
Based on Simon Tatham's Portable Puzzle Collection. MIT License


“The only things I like better than talking about food is eating ” —John Walters
“The only things I like better than talking about food is eating ”
—John Walters
“I get way too much happiness from good Food.” — Elizabeth Olsen
“I get way too much happiness from good Food.”
— Elizabeth Olsen
“Most difficult situation in life: What should I eat ?! ” — James Beard
“Most difficult situation in life: What should I eat ?! ”
— James Beard
Group 3 Project
F Group 3 Project
More Food Menu
Group 3 Project.
These Set contain 4 pieces of Chicken Fires
These set contain 6 pieces of Chicken Fires and 4 packs of French Fires
These set contain Beef Buger and Coca Cola and French Fires
Read More
G roup 3 Project Group 3 Project Group 3 Project Group 3 Project
Get in touch


Product List
Name
SKU
Price
{{product.Name}}
{{product.SKU}}
{{product.Price | currency}}
edit
delete
Title:
Name is required
SKU:
SKU is required
SKU needs to be unique
Price:
Price is required
Price must be positive number
Add
Update
Export


Fits sphere-sphere regression models by estimating locally weighted rotations. Simulation of sphere-sphere data according to non-rigid rotation models. Provides methods for bias reduction applying iterative procedures within a Newton-Raphson learning scheme. Cross-validation is exploited to select smoothing parameters. See Marco Di Marzio, Agnese Panzera & Charles C. Taylor (2018) <doi:10.1080/01621459.2017.1421542>.
| Version: | 1.0.0 |
| Depends: | R (≥ 3.3.0) |
| Imports: | methods, expm, stats |
| Suggests: | testthat |
| Published: | 2018-10-14 |
| Author: | Charles C. Taylor [aut], Giovanni Lafratta [aut, cre], Stefania Fensore [aut] |
| Maintainer: | Giovanni Lafratta <giovanni.lafratta at unich.it> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Materials: | README NEWS |
| CRAN checks: | nprotreg results |
| Reference manual: | nprotreg.pdf |
| Package source: | nprotreg_1.0.0.tar.gz |
| Windows binaries: | r-devel: nprotreg_1.0.0.zip, r-release: nprotreg_1.0.0.zip, r-oldrel: nprotreg_1.0.0.zip |
| OS X binaries: | r-release: nprotreg_1.0.0.tgz, r-oldrel: nprotreg_1.0.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=nprotreg to link to this page.


Chart Format
Here we describe the format for a chart.
Overview
-
A class. The classes indicate the mathematical \(E_2\)-page of the spectral sequence (or the \(E_n\) page for some different starting value \(n\)). How exactly the classes indicate the mathematical \(E_2\) page is up to the discretion of the person or program that makes the chart. In principle, classes correspond to indecomposable summands of the \(E_2\)-page. If the \(E_2\) page is a vector space, then perhaps every class corresponds to a basis element. On the other hand, a single class might indicate the entire (nonzero) vector space, and you might use different glyphs to distinguish the dimension.
A class has a multigrading, a sequence of "page transitions" on which the display of the class changes. For each page range, the class has an associated appearance. The class may also have names, labels, tooltips, notes, positioning settings, cross references against a linear algebra ``back end'' data set, etc.
-
A chart differential. A chart differential is a line that is drawn between a pair of classes on some particular page. Chart differentials indicate roughly what the mathematical differentials in the spectral sequence do. They only roughly indicate the mathematical differentials are matrices and it is not in general possible to represent a matrix with a set of lines. Frequently, the chart differentials only indicate the rank of the mathematical differential.
-
A structline is a line that is drawn between a pair of classes on some particular range of pages. Structlines generally indicates some sort of extra mathematical structure on the \(E_2\) page of a spectral sequence, usually multiplicative structure but not necessarily. As with differentials, the structlines only very coarsely approximate the mathematical structure they indicate. It is also possible that the structlines just serve as visual guides to make it easier to group classes together and see patterns and do not have any mathematical meaning. A structline has a source class, a target class, an optional page range.
-
A chart extension is a line that is drawn between a pair of classes on page \(\infty\). Chart extensions generally indicate mathematical extensions. As with all of the other things, the connection between chart extensions and mathematical extensions is up to the discretion of the person or program producing the charts.
Data Type Definitions
-
This isn't a type or anything, but
infinity
is defined to be the integer65535
. -
Color
. This is astring
. Question: how does one specify a color in a way that behaves consistently between HTML/svg and tikz? Special valuenull
. -
ArrowSpecifier
This is astring
. TODO: What sort of string? We should probably just use the tikz setup. Indicates the styling desired of the tip and tail of an arrow. -
A
ChartShape
. This should be a function that takes a stroke color and a fill color, a scale factor, a center, and possible additional parameters specific to the glyph and draws an appropriate picture on the page. Question: How do we define a glyph so that it is (a) Textually represented (b) Flexible (c) Works in the various possible output formats. Probably we just have to specify representations in each of the targets we want to support. We should define a shape class for HTML5 canvas/javascript output format so that we can instantiate the javascript shape class from the JSON shape object. In tikz a shape should turn into a tikz node. Shapes come with a name and are referred to by name. Until we figure out the details of the shape format, we can offer a collection of built in shapes. -
A
PageProperty
is anobject
with -
A
ChartClass
is anobject
with the following fields:The
ChartClass
local coordinate system (TODO: where does this go?) EachChartClass
has a local coordinate system where $(0,0)$ is the center of theChartClass
. This is achieved from theglobal_coordinate_transform
by (1) translating so that the center of theChartClass
is at $(0,0)$ then (2) scaling so that TODO how much do we scale by?.- degree
x
: Anint
. The x coordinate in the chart.y
: Anint
. The y coordinate in the chart.xoffset
(optional): afloat
. Default: 0. An offset from where the class would normally be centered.yoffset
(optional): afloat
. Default: 0. An offset from where the class would normally be centered. (We need to ensure that these offsets are interpreted as consistently as possible between output formats so that if the HTML5 version of the chart looks good, the tikz version of the chart will look good).transition_pages
: alist
ofint
[int]
of pages where the class transitions. Invariant: strictly increasing.
\item
tooltip
(optional): astring
. Should support latex. TODO: define new line symbols. (Default: null). \itemlabels
(optional): TODO: Define how these are specified. Main use case is tikz target, but we want the HTML5 target. (Default: null)shape
: astring
the name of aChartShape
.fill
(optional): AColor
the fill color. Default:null
.stroke
(optional): the stroke color. Default:"black"
.scale
(optional): the scale. Will be applied on top of scaling from other sources. Default: 1.Opacity
(optional). Afloat
Invariant: between 0 and 1. The opacity. Default: 1.
-
An
ChartEdge
is anobject
. All edges will be of one of the three subtypesChartDifferential
,ChartStructline
, orChartExtension
.The
ChartEdge
local coordinate system (TODO: where does this go?) EachChartEdge
has a local coordinate system where $(0,0)$ is the center of thesource
of theChartEdge
and $(1,0)$ is the center of thetarget
of the edge. This is achieved from theglobal_coordinate_transform
by (1) translating so that the center of thesource
of theChartEdge
is at $(0,0)$ then (2) scaling so that the edge has unit length and (3) rotating around the origin so that the target of the edge is at $(1,0)$.source_class
: Anint
, an index of a into the list ofChartClass
es. Invariant: Negative or out of range nodes are INVALID.target_class
: Anint
, an index of a into the list ofChartClass
es. Invariant: Negative or out of range nodes are INVALID.color
(optional): AColor
. Default: depends on global fields of the parentSpectralSequenceChart
, fallback"black"
.opacity
(optional): Afloat
between 0 and 1. The opacity of the edge.bend
(optional) : Afloat
. Makes a bezier curve from the source to target, the bigger the number the more the arrow should curve rightward (facing from source to target). Negative is a leftward bend. TODO: Define this in terms of Bezier control points. Need to look up what Tikz does. (No default.)control_points
(optional): Anobject
. Two possibilities depending on whether you want a cubic or quadratic Bezier curve:{x : <float>, y:<float>} | {x1 : <float>, y1 : <float>, x2 : <float>, y2 : <float>}
These points are interpreted in the local coordinate system of the edge. (No default.)arrow_type
: AnArrowSpecifier
. Controls the arrow tip and the arrow tail. (Default specified by Global options.)
-
A
ChartDifferential
is anChartEdge
with the following additional fields:page
: Anint
. The page on which the differential occurs. Invariant: $0<page
<infinity
$ where $infinity
$ is the special integer defined above.
-
A
ChartStructline
is anChartEdge
with the following additional fields:max_page
(Optional): Anint
. The maximum page on which theChartStructline
may be drawn. Invariant: \(0<page
\leqinfinity
\) where \(infinity
\) is the special integer defined above. (Default:infinity
).min_page
(Optional): Anint
. The minimum page on which theChartStructline
may be drawn.
-
A
ChartExtension
is anChartEdge
with no additional fields. -
A
SpectralSequenceChart
is anobject
with the following fields:-
"version" : The version.
-
"viewer" : The web viewing application. (Name??)
-
Range fields:
x/y min/max
: Maximum rangeinital_x/y min/max
: Starting range, only for interactive viewers.tikz_x/y min/max
Tikz range, fallback tox/y min/max
if it is missing.?
`
class_list
: Thelist
ofChartClass
es.edge_list
: Thelist
ofChartEdges
es.- Handler fields for HTML5 Canvas? TODO: Does this belong here? If so, how should they be set up? (Javascript string function declaration? Viewer dependent?)
grid_type
: Astring
. TODO: what are the possible options? Does Canvas support it or only tikz? Maybe they should have separate fields?- Various other tikz global options. (Maybe we can use a
\printpage
style command and insert these global tikz controls there?)
-


Accessible Audio Player
Plug in headphones to listen.
There might be a slight delay in what you hear.
Connecting...


class SelectorKnob
extends java.lang.Object
As specified in the diagram, the knob has a set of values that define its structure in form of a path. This path is drawn on the selector switch's canvas when the selector switch is rendered. The selector knob also stores a rotation transformation matrix which is used to rotate it every time the selector switch's mode is changed, as the knob has to point to the correct mode upon the change.
SelectorSwitch
| Modifier and Type | Field and Description |
|---|---|
private int |
centerX
Stores the X and Y coordinates of the point about which the knob is rotated.
|
private int |
centerY
Stores the X and Y coordinates of the point about which the knob is rotated.
|
private float |
currentAngle |
private static int |
knobCentralStartingAngle
Knob has a central starting angle of 230 degrees.
|
private static int |
knobCentralSweepingAngle
Knob has a central sweeping angle of 260 degrees.
|
private static int |
knobLengthDIP
Knob has a handle length of 3 DP units.
|
private android.graphics.Path |
knobPath
Stores the complete structure of the knob and is drawn onto the canvas
when the switch is rendered.
|
private static int |
knobRadius1DIP
Knob has a central radius of 4 DP units.
|
private static int |
knobRadius2DIP
Knob has an outer radius of 1 DP units.
|
private static int |
notchStartingAngle
Knob has a notch starting angle of 90 degrees.
|
private static int |
notchSweepingAngle
Knob has a notch sweeping angle of 180 degrees.
|
private android.graphics.Matrix |
rotationMatrix |
private float |
screenDensity
Stores the density of the screen for converting DPs into pixels.
|
| Constructor and Description |
|---|
SelectorKnob(android.content.Context context,
int centerX,
int centerY)
Initialises the knob's properties based on default values.
|
| Modifier and Type | Method and Description |
|---|---|
android.graphics.Path |
getKnobPath()
Returns the path of the knob.
|
float |
getRotation()
Returns the current angle the knob is at.
|
private void |
initiateKnob()
Sets the default dimensions and constructs the path which can be used later while
drawing the switch.
|
void |
rotateBy(float delta)
|
private static final int knobRadius1DIP
private static final int knobRadius2DIP
private static final int knobLengthDIP
private static final int knobCentralStartingAngle
private static final int knobCentralSweepingAngle
private static final int notchStartingAngle
private static final int notchSweepingAngle
private float screenDensity
private android.graphics.Path knobPath
SelectorSwitch.onDraw(Canvas)
private int centerX
Note: This point is not the center of the knob!
private int centerY
Note: This point is not the center of the knob!
private float currentAngle
private android.graphics.Matrix rotationMatrix
SelectorKnob(android.content.Context context, int centerX, int centerY)
context
- Context A context to get the density of the screen.centerX
- int : The X coordinate of the point about which the knob
would rotate.centerY
- int : The Y coordinate of the point about which the knob
would rotate.private void initiateKnob()
SelectorSwitch.onDraw(Canvas)
public android.graphics.Path getKnobPath()
knobPath
public void rotateBy(float delta)
delta
- float : The angle to rotate the knob by.public float getRotation()
currentAngle


Detailed course offerings (Time Schedule) are available for
ASTBIO 115 Astrobiology: Life in the Universe (5) NW R. BUICK, D. CATLING, V. MEADOWS, W. SULLIVAN
Introduction to the new science of astrobiology, study of the origin and evolution of life on Earth, and the search for microbial and intelligent life elsewhere in the Universe. Designed for non-science, liberal arts majors. Offered: jointly with ASTR 115/BIOL 114/ESS 115/OCEAN 115.
View course details in MyPlan: ASTBIO 115
ASTBIO 501 Astrobiology Disciplines (4) R. BUICK, D. CATLING, V. MEADOWS
Review of research and subject matter relevant to astrobiology from within the disciplines of biology, astronomy, oceanography, atmospheric science, chemistry, planetary science, and geology. Offered: A, even years.
View course details in MyPlan: ASTBIO 501
ASTBIO 502 Astrobiology Topics (4) R. BUICK, D. CATLING, V. MEADOWS
Investigation in detail of research topics of current interest. Offered: A, odd years.
View course details in MyPlan: ASTBIO 502
ASTBIO 550 Professional Development for Astrobiology (2)
Seminar in preparation for the academic job market; writing and reviewing grant proposals; building and managing interdisciplinary research teams; understanding the multiple career paths available in astrobiology; interdisciplinary teaching; and professional ethics. Credit/no-credit only. Offered: W, odd years.
View course details in MyPlan: ASTBIO 550
ASTBIO 575 Seminar in Astrobiology (1, max. 10)
Discussion of recent research in astrobiology. Credit/no-credit only. Offered: W, even years.
View course details in MyPlan: ASTBIO 575
ASTBIO 576 Astrobiology Colloquium (1, max. 15)
Current research topics in astrobiology. Credit/no-credit only. Offered: ASp.
View course details in MyPlan: ASTBIO 576
ASTBIO 600 Independent Study or Research (*)
Study or research under the supervision of individual faculty members.
View course details in MyPlan: ASTBIO 600


When the bark has fallen away, there may be evidence of the larva in the tree. They create tracks through the tree as they eat and grow.
Bark splitting can occur in response to various environmental factors at different times of the year. Bark splits are not likely to be fatal to trees, although they will, in some cases, allow entry of diseases organisms, like the EAB, which can cause decay.
Thank you for your interest in protecting our trees. You are now ready to .


UX Design
I craft digital products that are usable, accessible, and intelligent. I am passionate about empowering users to achieve things they never thought possible wherever they are. My process is human centered and data driven, which allows me to create brilliant solutions built based on observation and data.
Graphic Design
I love beautiful things, and I enjoy making them. I work using the Adobe Suite and Autodesk Maya to create designs that grab attention, evoke emotion, and compell to act. I work with local printers to design and deliver any type of printed material, from a simple leaflet to conference collateral.
Digital Art
This broad category covers a wide variety of digital artifacts that I love producing. I paint atmospheric, functional concept designs, render reallistic architectural visualisations, and work in CAD software to design products. I've worked on projects as concept artist, 3D artist, and product visualiser.
Information Architecture
For me, good UX is based on excellent information architecture. How we search for information is largely based on our biases and understanding these biases is what I do. Randing from a few page website to a complicated financial website navigation, I make order with research and human centered design.
Product development
Before I got into user experience design I studied a more generic topic—product design. My masters thesis was about the impact virtual reality will make on engineering design, manufacture and production. I studied human centered design methods aimed at use in robotics, virtual reality, and engineering.
Front end development
This isn't something I do professionally, but since this section is called "what I do" I'll include it. Recently I became very interested in front end development.


Scenes from Last Night's Full-Stack Engineering Meetup (Video)
Last night the Full-Stack Engineering meetup came back to Gilt–and what a meetup it was! More than 130 people came out to hear Gilt front-end engineer Nathan Stilwell, Greenhouse.io Director of Engineering/Full-Stack organizer Mike Boufford, and Vimeo Video Systems Engineer Dieter Plaetinck talk about WebSockets, JavaScript, and GraphExplorer. Some scenes of the action:
The evening’s three speakers: from left: Mike, Nathan and Dieter.
Free swag, courtesy of us and Typesafe.
Gilt mobile engineer Greg Mazurek (who speaks at our office next week) chats up a guest.
The food went fast…
Gilt engineer Ryan Martin kicks off the evening with a brief intro.
Full-Stack organizer Mike Boufford of Greenhouse.io starts of the night’s presentations with a talk on “mastering JavaScript.” Video:
Dieter Plaetinck gave us an overview of GraphExplorer, Vimeo’s open source dashboard:
Nathan’s star-spangled office slippers = lucky footwear?
Nathan explains how Gilt’s engineering team has used WebSockets to create real-time applications that require full duplex communication. He also gave an overview of SocketWrench, his open-source wrapper around native WebSockets that offers more flexibility than the official WebSocket API. View Nathan’s full presentation here.
The night’s speakers answer questions from the audience.
Thanks to all of our speakers and guests for making it such a fun and energetic meetup!
Photos by Craig Williston/QoolFoto.


\uFFFF
, where FFFF
is the
hexidecimal value of the code point you want to match. For example,
\u6771
matches the Han character for east.
Alternatively, you can specify a code point using Perl-style hex notation,
\x{...}
. For example:
String hexPattern = "\x{" + Integer.toHexString(codePoint) + "}";
\p{prop}
.
You can match a single character not belonging to a particular
category with the expression \P{prop}
.
The three supported property types are scripts, blocks, and a "general" category.
script
keyword, or the
sc
short form, for example, \p{script=Hiragana}
.
Alternatively, you can prefix the script name with the string
Is
, such as \p{IsHiragana}
.
Valid script names supported by Pattern
are those accepted by
UnicodeScript.forName
.
block
keyword, or
the blk
short form, for example, \p{block=Mongolian}
.
Alternatively, you can prefix the block name with the string
In
, such as \p{InMongolian}
.
Valid block names supported by Pattern
are those
accepted by
UnicodeBlock.forName
.
Is
.
For example, IsL
matches the category of Unicode letters.
Categories can also be specified by using the
general_category
keyword, or the short form gc
.
For example, an uppercase letter can be matched using
general_category=Lu
or gc=Lu
.
Supported categories are those of
The Unicode Standard in the version specified by the
Character
class.


Morrisons is doing Xmas party nights with three-course meals for £7.50 per head
The supermarket is opening its cafes to Christmas party groups
by Kirsten McStayFancy having your office Christmas party on a budget? Well now you can at Morrisons.
The supermarket cafe is opening to Christmas party groups – offering £7.50 a head for a three-course meal.
Their Christmas Meal Deal has been created in response to new research which shows that 70 per cent of UK workers expect cutbacks to their work parties this Christmas because of tough trading conditions, economic uncertainty and fragile confidence, with one in 20 expecting it to be cancelled all together.
Tables for up to 20 can be booked for Monday, November 25, to Monday, December 23.
The Morrisons Christmas Meal Deal starts from £6.50 a head for a two-course meal or £7.50 a head for the full three courses.
In a touch of festive generosity, Morrisons is serving all Christmas dinners with roast and mashed potato. Vegetarian and vegan options are also available.
Helen Tordoff, head of cafes at Morrisons, commented: “Some small businesses have had a tough year so we have created the best Christmas meal for those on a budget. And as our cafés regularly host group meet ups, we thought we’d extend the invite to local companies so they can save some Christmas costs. It will mean that more people can get into the party spirit without breaking the bank.”
The two-course for £6.50 or three-course for £7.50, menu includes:
Starters:
■ Fresh soup: Fresh soup served with a freshly baked bap.
■ Pate & Melba Toast: Brussels pâté served with balsamic onion chutney, salad and Melba toast.
■ Prawn Cocktail: Prawn cocktail served with salad and brown bread.
Mains:
■ Christmas Turkey Lunch: Turkey, roast potatoes, mash, carrots, Brussels sprouts, stuffing, Yorkshire pudding, pig in blanket, gravy and cranberry sauce.
■ Mushroom Wellington: Mushroom Wellington served with golden roast potatoes, Brussels sprouts, carrots and drizzled with gravy.
■ Salmon with hollandaise: Salmon fillet topped with hollandaise sauce. Served with baby potatoes and peas.
Desserts:
■ Christmas Pudding: Christmas pudding served with brandy sauce or custard.
■ Kelly’s Ice Cream: Chocolate or Strawberry.
To book a table visit the Morrisons Hamilton store and ask for the café manager or community champion. For more information, visit: www.morrisons.co.uk


Sign up
Login
Login to your account or
Sign up here
if you don't have an account
Email address
Password
Login


Her body was found after Surrey firefighters put out the fire, in the 9000-block of 135A Street, shortly after 10:30 a.m.
The victim, whose name has not been released, was found on the second floor of the roughly 3,000 square foot house.
It was not known at press time what caused the fire.
“We’ve got investigators there now working on that,” Assistant Surrey Fire Chief David Burns said Monday afternoon. “We don’t really know yet what the cause might have been. They have to figure that out still.”
READ ALSO UPDATE: Body recovered from Surrey building three days after fire
“There were some family members there,” Burns said. “But I don’t know where they may have been. They alerted crews to say that there was somebody in the house. When they arrived it was very heavy fire in the upper portions of the building. They knocked it down (the fire) and made entry to search and found the woman on the second floor.
“The coroner was there as well,” Burns told the Now-Leader, “so our investigation is ongoing with the coroner and the RCMP. Between the Surrey agencies, they’ll try to determine first of all the cause of fire and also what the cause of death was.”


MAIN PAGE
Hii ,I am snehal londhe
WEB DEVELOPER INTERN AT SPARK FOUNDATION batch AUGUST21
This is task 1: basic banking system


| DOSE: |
750 mg |
oral |
DMAE |
(daily) |
I'm a soon to be college student with one huge problem looming over my head - the SATs. Being a homeschooled student, I wasn't exposed to as much of the prep materials for this test, so I'm a bit nervous. In any event...
I bought a bottle of DMAE, thinking it would kick in for about 1 to 2 weeks, as I had read elsewhere. Perhaps it was a placebo effect, but after a few days, I felt far more clear headed. Abstract solutions came to me more easily, and I found my Japanese tutor commenting on my enhanced level of speach. (I tend to freeze and panic when I don't understand something, or stammer. But, it stopped, thank whatever-is-up-there.)
I've tryed methamphetamines for the same effect, and found they came with QUITE a price, the reason I quit. The physical stress that drug put on my body was horrible, and the withdraws sucked hardcore. I've found the exact effect I've been looking for with DMAE without the side effects of Meth/Amphetamines. So far, I've been taking a total of 750 mg a day (250 mg * 3 a day) without side effect. Some people have reported migranes, which worried me at first, as I am prone to them. Nevertheless, I've experienced no migranes whatsoever.
I'm sure their HAS to be a side-effect to this drug. But, for the meantime, life couldn't be better.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Endpoint
and ServerEndpoint
that use TLS/SSL and HTTPS (HTTP over
TLS/SSL) to support invocation constraints.See: Description
| Class | Description |
|---|---|
| ConfidentialityStrength |
Represents a constraint that, if confidentiality of message contents is
ensured, the specified strength of confidentiality be used.
|
| HttpsEndpoint |
An implementation of
Endpoint that uses HTTPS (HTTP over TLS/SSL) to
support invocation constraints for communication through firewalls. |
| HttpsServerEndpoint |
An implementation of
ServerEndpoint that uses HTTPS (HTTP over
TLS/SSL) to support invocation constraints for communication through
firewalls. |
| SslEndpoint |
An implementation of
Endpoint that uses TLS/SSL to support
invocation constraints for direct communication over TCP sockets. |
| SslServerEndpoint |
An implementation of
ServerEndpoint that uses TLS/SSL to support
invocation constraints for direct communication over TCP sockets. |
| SslTrustVerifier |
Endpoint
and ServerEndpoint
that use TLS/SSL and HTTPS (HTTP over
TLS/SSL) to support invocation constraints.
The package includes two ServerEndpoint
classes to support
the server side of remote connections, SslServerEndpoint
for direct communication over TCP
sockets using TLS/SSL (Secure Socket Layer), and HttpsServerEndpoint
for communication through
firewalls using HTTPS (Hypertext Transfer Protocol
encapsulated in the TLS/SSL protocol), with the associated
Endpoint
classes, SslEndpoint
and
HttpsEndpoint
.
The package includes the ConfidentialityStrength
constraint, supported by the
endpoints in the package, for specifying requirements or preferences for
weak or strong confidentiality on remote connections.
The package also includes the SslTrustVerifier
trust verifier for establishing
trust in remote proxies that use instances of the endpoint and
constraint classes supplied in this package, as well as principals of
type X500Principal
.
Supported Constraints
The endpoint classes in this package support at least the following
constraints, possibly limited by the available cipher suites:
ClientAuthentication
ClientMaxPrincipal
, when it
contains an X500Principal
ClientMaxPrincipalType
, when it
contains X500Principal
ClientMinPrincipal
, when it
contains a single X500Principal
only
ClientMinPrincipalType
, when it
contains X500Principal
only
Confidentiality
ConfidentialityStrength
, a
provider-specific constraint for specifying weak or strong
confidentiality
ConnectionAbsoluteTime
ConnectionRelativeTime
, trivially
on the server side, since this only takes effect on the client side
ConstraintAlternatives
, if the
elements all have the same actual class and at least one element
is supported
Delegation.NO
Delegation.YES
, trivially, for
anonymous clients
DelegationAbsoluteTime
, trivially,
when delegation is not supported
DelegationRelativeTime
, trivially
on the server side, when delegation is not supported
Integrity.YES
ServerAuthentication
ServerMinPrincipal
, when it
contains a single X500Principal
only
Note that ConnectionRelativeTime
and
DelegationRelativeTime
constraints may
be used on the client side at higher levels, but should be converted to
the associated absolute time constraints for use by the
Endpoint
classes.
Subject Authentication
The endpoint classes authenticate as a single Principal
if the following items are present in the
Subject
:
X500Principal
CertPath
, whose getType
method
returns "X.509", and for which calling getSubjectDN
on
the certificate chain's first element returns that principal's name
X500PrivateCredential
, stored as a
private credential, whose getCertificate
method
returns a value equal to the first element of the certificate
chain, and whose getPrivateKey
method returns the
associated private key
In addition, the newRequest
methods for the client endpoint classes will only authenticate as a
given principal if the caller has been granted AuthenticationPermission
with that principal as the
local principal, the principal representing the authenticated identity
of the server as the peer principal, and the connect
action.
Similarly, the server endpoint classes will only dispatch remote calls
that authenticate as a given principal if the caller of listen
on their
ListenEndpoint
has
been granted AuthenticationPermission
with that principal
as the local principal, the principal representing the authenticated
identity of the client for the call (if any) as the peer principal, and
the accept
action.
These endpoint classes support remote connections between authenticated
servers and authenticated or anonymous clients, and between anonymous
servers and anonymous clients. Connections between anonymous servers and
authenticated clients are not supported. Because of the suites available
in the TLS/SSL protocol, support for Confidentiality.NO
requires the server to
authenticate with an RSA public key.
If the server subject contains principals and credentials that would
permit authentication of more than one X500Principal
, the
endpoint will make an arbitrary choice of the principal to use for
authentication, and will continue to make the same choice so long as
subject contents, validity of credentials, and security permissions do
not change.
If there is a security manager, the OutboundRequestIterator.next
methods defined on the iterators returned by calling the newRequest
methods on the client
endpoints call the security manager's checkConnect
method with the
endpoint's server host and port.
Similarly, if there is a security manager, the checkPermissions
and listen
methods
defined on ListenEndpoint
instances returned by the server
endpoints call the security manager's checkListen
method, as well as
requiring the caller to have AuthenticationPermission
with
all the server principals specified in the server endpoint and the
listen
action.
The host name specified when creating SslServerEndpoint
or
HttpsServerEndpoint
instances controls the host name that
will be contained in associated Endpoint
instances produced
when ServerEndpoint.enumerateListenEndpoints
is invoked to listen on the
server endpoint; the host name does not affect the behavior of the
listen operation itself, which listens on all of the local system's
network addresses. If the host name in the server endpoint is
null
, then the host name in the endpoint instances that it
produces will be the default server host name, which is the IP address
string of the InetAddress
returned by InetAddress.getLocalHost
when
enumerateListenEndpoints
is invoked.
The client and server endpoint classes permit specifying a SocketFactory
for creating the Socket
instances that client endpoints use to make remote connections back to
the server. The server endpoints permit specifying a ServerSocketFactory
for creating the ServerSocket
instances that the server endpoint uses to accept
remote connections. These socket factories and sockets should not
implement the TLS/SSL protocol; it is the responsibility of the
implementation to establish TLS/SSL connections over the sockets it
obtains from the socket factories. In particular, instances of SSLSocketFactory
and SSLServerSocketFactory
should not be used, and the
factories used should not return instances of SSLSocket
or SSLServerSocket
.
A SocketFactory
used with instances of the endpoint classes
should be serializable, and must implement Object.equals
to obey the guidelines that are
specified for equals
methods of Endpoint
instances. A ServerSocketFactory
used with instances of the server endpoint classes must implement
Object.equals
to obey the guidelines that are specified for
equals
methods of ListenEndpoint
instances.
The HttpsEndpoint
class recognizes the following system
properties:
*
' wildcard characters in any
position to match zero or more of any characters within the
name. Multiple host names may be specified by separating the names
with '|
' characters. The default is for all
connections to use the proxy server if one is specified.
SslEndpoint
and SslServerEndpoint
classes
use the Jini extensible
remote invocation (Jini ERI) multiplexing protocol to map outgoing
requests to socket connections.


{% extends 'main/base.html'%} {% load static %} {% block content%} {%include 'main/navbar.html'%}
Have a business here?