Half-Past Seven Stories
by Robert Gordon Anderson
Story 4: "The Blue Croaker, the Bright Agate, and the Little Gray Mig"
Additional Information
- Year Published: 1922
- Language: English
- Country of Origin: United States of America
- Source: Anderson, R.G. (1922). Half-Past Seven Stories. New York, NY: G.P. Putnam’s Sons.
-
Readability:
- Flesch–Kincaid Level: 5.2
- Word Count: 2,915
- Genre: Adventure
- Keywords: sharing
- ✎ Cite This
Downloads
It is odd about Grownups—how mistaken they can be, how sadly mistaken. Now for instance, they will insist there are only four seasons when, as every one who has lived in Boyland knows, there are scores more than that.
There’s
Sled-time;
Ball-time;
Marble-time;
Top-time;
Kite-time;
Garden-time;
Hay-time;
Harvest-time;
Grape-time;
Nut-time;
Pumpkin-Pie-time;
and
a time
for
Hunting strawberries, elderberries, or red rasps; for orioles to move, for shad to run, and to go bobbin’ for eels; and a whole lot of other famous seasons as well, all happy ones, and too many to count, at least on one set of fingers and toes.
Any American boy will tell you this and—what is more to the point—prove it, too. And so can the Toyman, for, though he is six feet tall, and wears suspenders and long pants, and shaves and all that, he can get down on his knees in the good old brown earth and cry, “Knuckles down!,” with the youngest.
Well, then, it was—not Spring, as the grownups would say—but Marble-time—midway between Kite-time and the Time for Red Strawberries, which comes in June.
One day, at the very beginning of this sunny season, the Toyman came back from town. And as usual the children gathered around him. There was no delay, no dilly-dallying, as there was when kindlings were called for. It was funny to see how quickly they could gather when they heard the wheels come up the drive. Somehow their particular creak was different from that of any other wheels—and the children could tell it long before ever the wagon came in sight.
When they were younger, the children used to ask a question just as the reins fell over the dashboard and the Toyman jumped to the ground.
“What have you got for me, Toyman?” it always was.
But not now, for Mother had explained it was very bad manners. And Jehosophat and Marmaduke were trying hard to be “Little Gentlemen,” and to show Hepzebiah a “Good Example.”
Of course, just as Mother had expected, when she suggested all this, Marmaduke asked,—
“But how can a girl be a Little Gentleman?”
Mother made it clear.

It was hard sometimes, and once in a while the boys didn’t think the Little Gentleman game quite so attractive. However, they remembered it pretty well, considering. And today they didn’t ask any rude questions, but just waited, though they danced on their toes.
This time he led them all into the kitchen without saying a word.
And then!!!—one after another he took from his pockets little round things—marbles, of course, of all sorts and sizes and colors.
“My!” exclaimed Marmaduke, “there’s most a hundred.”
And there was, sixty, to be exact. Twenty-seven little ones, colored like clay; six big ones of brown, with spots on them like the dapplings on horses; and six of blue dappled the same way; nine big glass ones with pink and blue streaks like the colorings in Mother’s marble cake; nine made of china; and three—one for each—of the beautiful agates—one of dark red and cream, one dark blue and cream, and one that was mostly pink.
“Now,” said Mother, when he had tumbled all the beautiful marbles out on the table, “you’ve got me in trouble, Frank.”
But she didn’t mean that. No, indeed. It was all said in fun. They said so many things in fun in the White House with the Green Blinds by the Side of the Road. So she got out her needle and thread, some pieces of flannel, and began.
She made three little bags, each with draw strings. On one she sewed a red J; on the second a blue M; on the third a pink H. You can probably guess for whom each was meant.
By this time it was too dark to see. Mother lit the lamp and started supper. And of course they ate it—they seldom skipped that of their own free will—but after it was over, the Toyman kneeled down on the floor, and Father got down on the floor, too, and they played marbles on the rag rug.
That was pretty nice and interesting, but they looked forward to the real game in the morning, for the real game must be played, not on a rug, but on the good brown earth.
Again the Toyman took a little, oh, just a little time from his work—that is, he meant to, but it turned out a longer “spell” than he had intended.
First they sorted the marbles. And when the sorting was over, each had nine of the little gray ones, which the Toyman told them were called “Migs”; two of the dappled brown ones which he said were “Croakers”; and two of the blue; three “Chineys”; three “Glasseys” with the pink and blue streaks; and one each of the most beautiful of all,—the agates. The blue and cream-colored agate Marmaduke took to match the blue M on his bag; Jehosophat the reddest one to match his letter J; and Hepzebiah the agate that looked most like a strawberry—almost pink it was, like her letter H.
These last beautiful ones, their old friend informed them, were agates, but had other names.
“They called them ‘Pures’ when I was a boy,” he remarked, “but in some places they called ‘em ‘Reals,’ just as in some cities they say pink is for boys and blue for girls, and in some the other way round.”
And don’t let any one tell you this question of “Reals” and “Pures” isn’t important, for it is, surely as much so as “hazards” and “simple honors” which the grownups are forever discussing. In fact this matter of “Reals” and “Pures” was one that had to be settled at once. And Jehosophat settled it.
“I guess,” he said, after grave deliberation, “if you called them ‘Pures’ when you were a boy, we’ll call ‘em that too.”
Now this suggested a question to Marmaduke.

 His answer was strange yet very true.
“Tomorrow,” he replied.
It was true, you see, for, as they say in school, “Tomorrow never comes,” and that is just when the Toyman will stop being a boy.
Meanwhile he was making a ring in the ground, two feet across.
Each put some marbles in the centre, the same number from each bag, and they began. Of course, as you know, they had to stand on the outside of the ring and shoot at the marbles in the hole, that is, they did in that year, in that particular part of the country, though wise men who have travelled much say the rules differ in other states and are changing from day to day.
When anyone put his foot over the line the Toyman would stop him sternly.
“No matter what’s the game,” he told them, “always play fair.”
He showed them the best way to shoot, not by placing the marble in the hollow of the first finger and shooting it out with the thumb, but on the tip of the first finger and letting it fly with the thumb.
Now this is of the greatest importance, so always remember it.
However, Hepzebiah couldn’t follow that style, so they let her roll her marbles. But the boys were patient and tried again and again until they had learned the right way. They did finely, too—though naturally not as well as the Toyman. They had lent him some of their marbles, and my! Wasn’t he a fine shot! He would send those marbles flying from their hole like little smithereens in all directions. However, he said the boys were learning fast and would soon catch up with him.
And in a few minutes, strange to say, the Toyman wasn’t doing so well—though, maybe—between you and me—he was just giving the boys a chance.
Anyway, before long, the Toyman’s pile was growing less and less, while Marmaduke had nine gray marbles—we should say “migs”—one “chiney,” two brown “croakers,” one blue “croaker,” and one “glassey,” and his shooter, the “pure,” of course. And Jehosophat had ten “migs,” two “chimneys,” one “glassey,” two brown “croakers,” and one blue one, and his shooter.   But when, after a little, she stopped and looked down, why she had more marbles than any of the players.
I’ll tell you a secret, if you won’t tell it to a soul—for that wouldn’t be fair to Marmaduke and Jehosophat, who were trying their best not to let their right hands know what their left ones were doing.
Well then, if you won’t tell,—when Hepzebiah put her two fists to her eyes, quick as a wink the Toyman placed three of his marbles in her pile, and when Marmaduke saw him do that, why he put in four, and Jehosophat, not to be outdone, slipped in five.
“Better than slipping duck’s eggs under the old hen, isn’t it?” whispered Jehosophat to his brother, who agreed with a nod.
And that is the way the little girl came to win the game.
And so all through marble time they played many games, some of them very close, too, and a few even ties.
However, on one occasion the game didn’t turn out so well. That was the time when Fatty Hamm strolled into the yard.
“Hello!” he said, and something chinked in his pockets. It sounded like marbles.
“Hello!” called the boys, not very cordially, for they were always a little suspicious when Fatty happened around.
“Playin’ marbles?” he asked.
“Yes,” said the two brothers.
“I can beat you,” he declared.
“You can’t, either,” Marmaduke started to yell, but Jehosophat, who was having one of his good days, said,—
“Let’s treat him politely. He’s mean, but he’s company.”
“Play ‘for fair’?” Fatty next asked.
“Course,” replied Jehosophat, “what did you think?”
This friendly state of affairs didn’t last very long.
“You’re cheating,” called Jehosophat a little later.
“I’m not, neither,” Fatty shouted very angrily and ungrammatically.
“You are, too,” insisted Jehosophat. “The Toyman says you mustn’t get over the marbles that way or put your foot in the ring. You’ve got to ‘knuckles down.’ Beside you call’ slippseys’ every time you make a bad shot.”
When that strange game was over Fatty had forty-two marbles and they had only nine apiece. Altogether it was very unsatisfactory.
Then something very surprising happened.
Fatty counted the forty-two very carefully, then put them in his bag.
 Marmaduke could hear them dropping in. “Chink, chink,” they went, but their “chink, chink” didn’t sound so pretty or so much like music as when they were dropping in his own bag.
“That’s not the way the Toyman plays,” Jehosophat insisted, “when we’re through we divide ‘em up again so’s to be even.”
“Your ole Toyman doesn’t know everything,” Fatty said with a sneer.
And, angry at this, both the brothers shouted,—
“He does, too—he knows most everything there is to know.”
But Fatty decided things once and for all.
“Anyway,” he declared, “this game’s not ‘in fun.’ You said you’d play ‘for fair’ and that means ‘for keeps.’”
Jehosophat was silent. He hadn’t understood what ‘for fair’ had meant at all.
But now Fatty was taking something out of his pocket, something made of wood and shaped like a bridge or a saw with teeth in it. He placed it on the ground.
“Your turn, Joshy,” he said.
“What’ll I do?” asked Jehosophat.
“Just roll your marbles under this bridge, and if they go through the little holes, you can keep ‘em. If they don’t, they’re mine.”
The two boys didn’t see through the trick, and very foolishly they thought they might win some of their beautiful marbles back.
So they rolled marble after marble against that little wooden bridge. But it was much harder to aim straight than they had expected. More marbles would hit against the wood and bounce back than ever went through the little holes. And when this strange new game was ended Fatty had fifty-two marbles and they each had four!

“Nice game,” he said, “I’ll come tomorrow.”
 They spoke never a word—just looked and listened—looked at the few marbles left in their own hands, and listened to the “chink, chink, chink” of Fatty’s pockets as he walked down the drive.
They were very solemn around the table that night, and though Mother knew there must be something the matter, she didn’t ask any questions yet. However, Marmaduke kept reaching down into his pockets so often, to feel the lonely little marbles he had left,—the one agate, and the croaker, and the little gray mig, and the clink of them sounded so weak and thin and lonesome that Father said,—
“Well, how did the game go today?”
“F-f-f-fine,” said Marmaduke, but his lip quivered.
Then they knew there surely must be something the matter, and Marmaduke couldn’t help saying,—
“That ole Fatty Hamm said he was playing ‘for keeps,’ and he took away almost all our marbles.”
“Humph!” exclaimed Father, and Mother looked at him with an odd look.
“I’m sorry it happened,” she said, “but I’m glad, too.”
Jehosophat exclaimed:
“Glad we lost our marbles?”
“Not exactly, dear, but I knew it would happen. You see, as the Toyman said, it’s always kinder and more fun, too, to play games ‘in fun.’ If you play anything ‘for keeps,’ the one who loses is always hurt and feels badly. Supposing you had played with Johnny Cricket, now, and had won all his marbles—how would you feel?”
She didn’t need to say any more. They understood.
But after supper the Toyman called the boys into the woodshed. They sneaked out quietly and he whispered to them,—
“Just wait till tomorrow.”
“What’s going to happen tomorrow?”
And the Toyman gave that old answer of his which was so like him,—
“Wait an’ see.”
Well, the Toyman had to go to town “tomorrow,” which was much sooner than he had expected earlier in the week. And when he came back his pockets chinked right merrily. They were as full of marbles as on his first trip back from town.
They were very beautiful, too, but somehow Marmaduke loved the first blue croaker and the bright agate and the little gray mig best of all.


|
com.seaglasslookandfeel
|
|
com.seaglasslookandfeel.component
|
|
com.seaglasslookandfeel.effect
|
|
com.seaglasslookandfeel.icons
|
|
com.seaglasslookandfeel.painter
|
|
com.seaglasslookandfeel.painter.button
|
|
com.seaglasslookandfeel.painter.titlepaneforegound
|
|
com.seaglasslookandfeel.painter.util
|
|
com.seaglasslookandfeel.state
|
|
com.seaglasslookandfeel.ui
|
|
com.seaglasslookandfeel.util
|
|
com.sun.java.swing
|
|
javax.swing
|
|
javax.swing.plaf.synth
|
|
sun.swing.plaf.synth
|


100 putn
'a putc
"hello, world" puts
1 2 3 "%d - %d = %d\n" puts "Charles" "Hello %s\n" puts
getc
"this is a string" " this string has leading and trailing whitespace "
getToken
'c accept tib
getNumber
2 3 =
3 4 <>
3 4 >
3 4 <
3 4 >=
3 4 <=
"hello" "world" compare
"hello" "world" compare not
1 2 = [ "true" ] [ "false" ] if 1 2 = [ "true" ] ifTrue 1 2 = [ "false" ] ifFalse
[ @base [ 8 = ] [ "octal" ] whend [ 10 = ] [ "decimal" ] whend [ 16 = ] [ "hexadecimal" ] whend drop ( default case ) ] do [ @base [ 8 = ] [ "base is octal: %d" puts ] when [ 10 = ] [ "base is decimal: %d" puts ] when drop ( default case ) ] do
[ ( code ) ]
Quotes can be nested.
: name ( stack comment ) ( code ) ;
Quotes can be nested inside a named function.
repeat ( code ) again
Conditional loops are generally preferable.
( simple, no index on stack ) 10 [ 'a putc ] times ( index on stack, counts up ) 10 [ putn ] iter ( index on stack, counts down ) 10 [ putn ] iterd
10 [ 1- dup putn dup 0 <> ] while
100 200 +
400 32 -
98 12 *
200 4 /
203 4 mod
Raise 3 to the second power.
3 2 pow
-76 abs
34 8 min 34 8 max
chain: name' ... contents ... ;chain
Vocabulary names should end in a single apostrophe.
with name' with| name' and' more' names' |
( remove the most recently added vocabulary ) without ( remove all vocabularies ) global
^vocabulary'function


An Electric Type Pokémon who is loved by everyone and is Ash's Best Friend!
Contributed by - AM1CODESIt is a grass/poison type Pokémon. It's one of the Starter Pokemons!
Contributed by - AM1CODESIts's a Fire/Flying type Pokémon. It's the final evolution of Charmander.
Contributed by - AM1CODESIt's a Water type Pokémon. It's the final evolution of Squirtle.
Contributed by - AM1CODESMew is a Psychic-type Mythical Pokémon. It is not known to evolve into or from any other Pokémon.
Contributed by - AM1CODESIt Is common with an anime anti-hero than a pocket monster with moves consisting of punches and taunts.
Contributed By => Parthasarathi-EXT1NTIts ability Strong Jaw powers up any move that uses the mouth which fits right in with this T-Rex royalty.
Contributed By => Parthasarathi-EXT1NTOne of the island guardians in Alola has become a powerful part of the meta-game almost overnight.
Contributed By => Parthasarathi-EXT1NTSeel is a Water-type Pokémon introduced in Generation I. It evolves into Dewgong.
Contributed By => lakshyasoniJigglypuff has top-notch lung capacity, even by comparison to other Pokémon. It won’t stop singing its lullabies until its foes fall asleep.
Contributed By => lakshyasoniGengar has the ability to hide perfectly in the shadow of any object, granting it exceptional stealth.
Contributed by - chaitanyagandhiA strong and awesome pokemon which can attack with its incredible jaw power.

Contributed by - Tejan SinghHoundoom so scary.Its Pokédex entries state that “if the flames it shoots from its mouth cause a burn, the pain will hurt forever.”
Contributed By => Rahul Raj Pandey


The Internet has changed society and a new breed of entrepreneurs is shaping the digital future. The communication was uprising all around us. New generation companies like YouTube, MySpace and Facebook, turned the web into a two way participatory and democratic medium controlled by no-one and shaped by everyone. It was termed as Web 2.0 time when the World Wide Web sites emphasized on user generated content and social networking. Towards the end of the episode, the Founder of Craigslist says: “The web is not just about making money, it’s about setting communication free.”
Music industry was not happy with the file sharing as they were not profiting from the business. Companies like Napster created a platform to share files and music without buying cd. Music industry filed a case against Napster and in 2001 Napster was banned. Music Company won the case. Although they encouraged apple to create iTunes music where songs were sold 99 cents apiece with copyright protection which made companies music labels happy.
Internet has revolutionized the 21st century. It is dominating and influencing man’s everyday life. With time, new inventions have been made, all trying to make life as convenient as possible. In other words, people are living smart now (with the introduction of smart wearables and gadgets, all connected by the web).
The spread of knowledge and information regarding various things is also credited to the web. Now any kind of information that a man needs is just a click away. Net has changed tremendously over the time and has also majorly influenced people. It still holds massive potential and one can never predict what new invention the future might unveil.


CodeMirror is a versatile text editor implemented in JavaScript for the browser. It is specialized for editing code, and comes with a number of language modes and addons that implement more advanced editing functionality.
CodeMirror is a versatile text editor implemented in JavaScript for the browser. It is specialized for editing code, and comes with a number of language modes and addons that implement more advanced editing functionality.


| DOSE: |
6 lines |
insufflated |
Cocaine |
(powder / crystals) |
I have always been interested in mind-altering substances of any kind, but mainly ones that produce hallucinogenic effects. I have smoked pot many times and I can safely say that I do not like it. Call me crazy, but I sort of tweak out on it, I can't function, I don't have any idea what's going on, and I just want to go to sleep, and usually only after like 3 hits. But thatís me.
Anyways, a few days ago, I was over at my boyfriend's apartment and him and three other guys were splitting a 'ball' of coke. My best friend has done coke several times and really likes it, so I decided to give it a try. My boyfriend threw $35 for both of us and one guy started to split it up. I told everyone I had never done this before and they said I should start with a small line. I always get really scared before I do a new drug for the first time and I shake really bad and my heart races. Everyone else snorted one decent sized line before passing the plate to me, and I snorted my line. Snorting it wasn't anymore unpleasant than snorting anything else (pills). All the guys said they felt something right away...but I didn't feel anything.
We passed the plate around again and I did another line. Still nothing. My heart was beating fast but it was just because I was so nervous. I decided to wait awhile before doing anymore to see if it would kick in. I kept snorting and eventually I felt this like clot (sorry thatís gross haha) hit the back of my throat and start dripping down. Once again, this wasn't anymore unpleasant than the drip you get when snorting pills.
However, about 10 seconds later my throat became completely numb and I was having trouble swallowing, which alarmed me. The plate got passed back to me and I passed it cuz I was scared. I drank some water and the numbness wasn't as bad. After that I did about 4 more lines and I didn't feel anything. I didn't feel happy, euphoric, elated, any more talkative, nothing. My nose just went numb and my throat was numb.
Someone told me to rub it on my lips and gums, and I did, and soon my tongue, lips and teeth were numb and tingly too. This was all in about a half hour. I didn't feel bad, I was happy, but not anymore happy than usual. Everyone else, especially my boyfriend who is usually quiet, was talking and happy and the other guys said their faces were numb. Also, they told me I wouldn't be sleeping that night, and I had absolutely no problem falling asleep when I laid down about 2 hours later.
Overall, I didn't really care for the cocaine experience. It's expensive and it didn't do anything for me. It seemed more like a local anesthetic, sort of like Novocain.
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.


Indian Railways is the world’s 8th largest employer. And we as a combined Group have held hands together and have put are best efforts to help make your Incredible.
See the Schedule of every train and Figure the way to make it the best way.
See all the Routes and Stations Trains is going to Cross Before hand.
That is just a Needle in a Haystack of the amount of Information that this platform can give you about different details. For more such informations create an account or login to your existing account to explore. And if you have any feedback feel free to mention it down below.
Check out the Routes and Figure out the way to Travel and get the Best out of your Trip.
See the Schedule of Different Trains and figure out which Train you want to start your Journey.
Workafella High Street, Teynampet 12th floor, No. 431, Anna Salai, Chennai, Tamil Nadu 600018
<EMAIL_ADDRESS>(703)570-8181


The growing need for maintaining and evolving software systems is a major challenge in modern software engineering. Several studies have shown that maintenance tasks are responsible for a substantial cost in the software development process, sometimes reaching 90% of the total cost. The pressure for faster development and releases of new software versions has also increased the interest in software evolution and maintenance throughout the years. Besides, there is an increasing investment in these activities since the advent of execution environments (e.g., Web computing, ubiquitous computing, and cloud computing), development paradigms (e.g., Feature-Oriented Programming, Service-Oriented Architecture, DevOps) and new types of media (e.g., mobile devices, gesture-based interfaces etc.).
In order to perform maintenance and evolution tasks in complex software systems, developers must resort to advanced means for understanding the software artifacts to be modified. Software comprehension, however, is a non-trivial task. In this scenario, software visualization becomes an interesting resource, relying on the use of visual abstractions to facilitate comprehension of software systems under several viewpoints, representing structural, behavioral, and time-based aspects of software. The clear intersection between Software Visualization, Software Evolution, and Software Maintenance led to the creation of an event where researchers can discuss challenges in these fields and work together to overcome them.
The Fifth Workshop on Software Visualization, Maintenance, and Evolution (VEM 2020) aims at bringing together the research communities interested in topics related to Software Visualization, Software Evolution, and Software Maintenance to share and discuss ideas, reflecting on alternatives to perform visualization, evolution, and maintenance of software systems. VEM is also a great opportunity for strengthening research group collaborations, as well as identifying new research opportunities. VEM is co-located with the 9th Brazilian Conference on Software: Theory and Practice (CBSoft 2020).
All dates refer to midnight 23:59:59 AoE.
| Paper Submission: | |
| Author Notification: | September 12, 2020 |
| Camera-Ready Copies: | September 16, 2020 |
| Workshop Date: | October 19, 2020 |
Topics of interest are related to several research challenges in Software Visualization, Software Evolution, and Software Maintenance. They include, but are not limited to:
The VEM workshop accepts technical papers (up to 8 pages) written in English or in Portuguese. All papers must be submitted in PDF format and formatted according to the SBC template (available at http://vem2020.github.io/vem2020/paper_template/template_sbc.rar).
Submitted papers must be unpublished and should not be under review elsewhere. Experimental evaluation of the results is desirable, but it is not a precondition to submit a paper to the workshop. Papers with innovative and promising proposals are welcome. The acceptance of a paper implies that at least one of its authors will register for the workshop and present the paper. The workshop proceedings will be published online available from CBSoft 2020 page.
Papers should be submitted electronically through JEMS at
https://jems.sbc.org.br/cbsoft2020_vem
VEM 2020 will follow a double-blind review process.
First, both author names and affiliations must be omitted from the manuscript. Besides, there are other rules that have to be considered to ensure the manuscript is correctly prepared for double-blind review:
In case you have any doubt about the preparation of your manuscript following the double-blind rules, do not hesitate to send an email to cbsoft.vem2020@gmail.com.


|
Do you accept or reject their response?
|
{%if data.radio_select_group=="Yes" %}
I accept their response
{%elif data.radio_select_group=="No" %}
I reject their response
{% else %}
I reject their response
{% endif %}
|
Change Why you believe you're owed the money
|
{%if data.radio_select_group=="Yes" %}
{%elif data.radio_select_group=="No" %}
|
Why did you reject their response?
|
{% if data['reject_response']!="" %}
{{data['reject_response']}}
{% else %}
Because it's not true.
{% endif %}
|
Change Why you believe you're owed the money
|
|
Will you try free mediation?
|
{%if data.radio_indent_group2=="accept-mediation" %}
Yes
{%elif data.radio_indent_group2=="decline-mediation" %}
No
{% else %}
No
{% endif %}
|
Change Why you believe you're owed the money
|
{% else %}
{% endif %}


InPlaceEditor
InPlaceEditor represents a container that switches between inert and editor elements based on editing mode, as demonstrated in FileExplorer
sample:
Features
- Switches between inert and editor elements based on editing mode.
Usage
Add InPlaceEditor as scalar or row binding via MergeIntoInPlaceEditor, as demonstrated in FileExplorer
sample (composite row binding):
public static RowCompositeBinding<LargeIconListItemView> BindToLargeIconListItemView(this LargeIconListItem _)
{
var textBoxBinding = _.DisplayName.BindToTextBox();
var textBlockBinding = _.DisplayName.BindToTextBlock();
return new RowCompositeBinding<LargeIconListItemView>((v, p) => Refresh(v, _, p))
.AddChild(textBoxBinding.MergeIntoInPlaceEditor(textBlockBinding), v => v.InPlaceEditor);
}
Customizable Services
- InPlaceEditor.IEditingPolicyService: The default implementation use IsScalarEditing/IsRowEditing to determine the editing mode, and preserves the keyboard focus after switching the mode. Your data presenter can implement this service to provide custom editing policy. Please note this service will be ignored if you set
InPlaceEditor.EditingPolicy
attached property (SetEditingPolicy) directly. - InPlaceEditor.IChildInitializer: The default implementation selects the text when editor element is a TextBox. Your data presenter can implement this interface to provide custom initializer.


{{ header_title }}
Posts
{{ note }}
{%- if disqus == 1 -%}
Please enable JavaScript to view the
comments powered by Disqus.
{% else -%}
Please enable JavaScript to view the
comments powered by Disqus.
{% endif %}


Authorization grant rules, which the authorization server executes in the process of issuing access tokens.


Welcome to this website, its not good but its something.
Take a look around. There's steamed hams
Input number you want to square
Input 3 numbers, and ill add them up
Person has no info yet (Name, Job, age)
String2 test
Array1 test
The current person is between 20 and 40 years old?
Current iteration goes here


Manages the storage of a pointer, providing a limited garbage-collection facility, possibly sharing that management with other objects.
Objects of shared_ptr types have the ability of taking ownership of a pointer and share that ownership: once they take ownership, the group of owners of a pointer become responsible for its deletion when the last one of them releases that ownership.
shared_ptr objects release ownership on the object they co-own as soon as they themselves are destroyed, or as soon as their value changes either by an assignment operation or by an explicit call to shared_ptr::reset. Once all shared_ptr objects that share ownership over a pointer have released this ownership, the managed object is deleted (normally by calling ::delete, but a different deleter may be specified on construction).
shared_ptr objects can only share ownership by copying their value: If two shared_ptr are constructed (or made) from the same (non-shared_ptr) pointer, they will both be owning the pointer without sharing it, causing potential access problems when one of them releases it (deleting its managed object) and leaving the other pointing to an invalid location.
Additionally, shared_ptr objects can share ownership over a pointer while at the same time pointing to another object. This ability is known as aliasing (see constructors), and is commonly used to point to member objects while owning the object they belong to. Because of this, a shared_ptr may relate to two pointers:
An owned pointer (possibly shared), which is the pointer the ownership group is in charge of deleting at some point, and for which it counts as a use.
Generally, the stored pointer and the owned pointer refer to the same object, but alias shared_ptr objects (those constructed with the alias constructor and their copies) may refer to different objects.
A shared_ptr that does not own any pointer is called an emptyshared_ptr. A shared_ptr that points to no object is called a nullshared_ptr and shall not be dereferenced. Notice though that an emptyshared_ptr is not necessarily a nullshared_ptr, and a nullshared_ptr is not necessarily an emptyshared_ptr.
shared_ptr objects replicate a limited pointer functionality by providing access to the object they point to through operators * and ->. For safety reasons, they do not support pointer arithmetics.
A related class, weak_ptr, is able to share pointers with shared_ptr objects without owning them.
Template parameters
T
The type of the managed object, aliased as member type element_type.
Member types
The following alias is a member type of shared_ptr.


'Being John Malkovich' (1999)
A movie review by Walter Frith
<EMAIL_ADDRESS>Member of the 'Online Film Critics Society' http://www.ofcs.org
If you think you've seen it all in Hollywood, you haven't. If you think you've seen it all in every actor who ever played himself, you haven't. If you think you'll be in for quite a surprise with 'Being John Malkovich', you will. This is one of the most bizarre and weirdly obtuse films that disappointed me at times while it delighted and intrigued me at other points during its running time. It almost looks like the paradox found in a Terry Gilliam film with a profound sense of visual attraction while putting forward the dark side of human personality.
Set in New York City in the present day, the story concerns itself with a puppeteer named Craig Schwartz (John Cusack). He is the type who works odd jobs displaying his art and doesn't have a steady job. He sleeps late and lives with his wife Lotte (Cameron Diaz) who works at a pet store. Their apartment is flooded with animals. The dogs, cats and chimps roam around freely and they have many other animals around for companionship. Craig takes a job working in a most unique place. An office building has a floor that doesn't show up on the elevator's button because following the number is 1/2. How can you have 1/2 a floor? The floor is only about 4 to 5 feet high. Everyone walks hunched over. The doors are all miniature size and the office furniture fits just fine as do the employees, as long as they're sitting down. Craig's job will be that of a file clerk. Since he is a puppeteer, he has fast fingers and it shows when he's given a test to perform. He's hired. He meets the office tramp, Maxine (Catherine Keener), who is a foul woman with a witch like personality. There is a strange sexual attraction between the two of them which dominates parts of the film.
THE PLOT THICKENS. Craig is working one day when he drops a file folder behind the filing cabinet.  He must move the entire cabinet out to get the folder. After sliding the cabinet away from the wall, he notices a board covering something up. Curiosity killed the cat as they say. After removing the board, there is an old door that seems to have been abandoned. Upon opening it and crawling inside, Craig is sucked into its chamber and looks through the eyes of actor John Malkovich.  Bizarre! The only catch is that just when this experience is getting really exciting (it only lasts 15 minutes), your body is dispensed from its place and you fall out on to the New Jersey turnpike. BIZARRE! Yes, this is all true.
If it sounds silly and unbelievable, that's the point. The film drives a wedge between the boundaries of convincing fantasy and magnifying stupidity. This is all done with the feeling of inhaling laughing gas. Needless to say that actor John Malkovich finds out what is happening and tries to stop it. You see, Craig and Maxine have started a business where people can enter the portal for 15 minutes and pay $200 for the experience of being someone else.
John Cusack is quite an actor. He said for years he wanted to avoid the trappings of a career enjoyed by people like Tom Cruise, Tom Hanks or Harrison Ford. It other words, super stardom. He, like Nicolas Cage in the early days of his career, has instead opted for the quirky roles in Hollywood. The off beat stuff and doing a convincing job in any role he chooses to play. He is one of the best actors in the business without many people knowing it and I'm sure that drawing attention away from himself is exactly the way Cusack likes it.
The two key female performances in the film are 180 degrees apart. Cameron Diaz is sweet and innocent. Sort of the naive victim of the whole thing before her fate is revealed at the end. Catherine Keener is just the opposite. As mentioned above, her portrayal of Maxine is that of a foul woman with a witch like personality. You know her character is just the sort of enigma that will come away without so much as a scratch. Oscar nominations will be fourth coming but the film will suffer in the truly high profile categories such as best picture. While on many "ten best" lists for 1999, the film has a tailor made look of trying too hard to look original like 1998's 'The Truman Show' did. Both films share the concept of character confinement before the truth is revealed but both show how the human experience can be dream like in nature and while 'Being John Malkovich' is a good film with things not seen before, it still seems a bit aloof in the way its resolution comes down but it will be regarded as GREAT film making only by the most hard core of fans who like fantasy films.
OUT OF 5 > * * * 1/2
Visit FILM FOLLOW-UP by Walter Frith http://www.cgocable.net/~wfrith/movies.htm
* * * * * - a must see * * * * 1/2 - don't miss it * * * * - an excellent film * * * 1/2 - a marginal recommendation * * * - can't quite recommend it * * 1/2 - don't recommend it * * - avoid it * 1/2 - avoid it seriously * - avoid it AT ALL COSTS 1/2 - see it at your own risk zero - may be hazardous to your health
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


For functions that take and return vectors (or scalars), this package provides 8 algorithms for finding fixed point vectors (vectors for which the inputs and outputs to the function are the same vector). These algorithms include Anderson (1965) acceleration <doi:10.1145/321296.321305>, epsilon extrapolation methods (Wynn 1962 <doi:10.2307/2004051>) and minimal polynomial methods (Cabay and Jackson 1976 <doi:10.1137/0713060>).
| Version: | 0.5 |
| Depends: | MASS |
| Suggests: | testthat, schumaker, cubature, knitr, foreach, doParallel, SQUAREM |
| Published: | 2018-06-05 |
| Author: | Stuart Baumann & Margaryta Klymak |
| Maintainer: | Stuart Baumann <Stuart at StuartBaumann.com> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| In views: | NumericalMathematics |
| CRAN checks: | FixedPoint results |
| Reference manual: | FixedPoint.pdf |
| Vignettes: |
FixedPoint |
| Package source: | FixedPoint_0.5.tar.gz |
| Windows binaries: | r-devel: FixedPoint_0.5.zip, r-release: FixedPoint_0.5.zip, r-oldrel: FixedPoint_0.5.zip |
| OS X binaries: | r-release: FixedPoint_0.5.tgz, r-oldrel: FixedPoint_0.5.tgz |
| Old sources: | FixedPoint archive |
Please use the canonical form https://CRAN.R-project.org/package=FixedPoint to link to this page.


-
Clone Graphs
github.com
Our traffic graphs tab shows you a lot of information about who's visiting your repository on the web. We've added a new graph to this tab, showing ...
-
Improved Audit Log
github.com
We've just released some major improvements to our organization audit logs. As an organization admin, you can now see a running list of events as ...
-
The New GitHub Issues
github.com
We've rebuilt GitHub Issues to be smarter: search smarter, filter smarter, and manage your issues and pull requests smarter. If you want to see it in ...
-
London Meetup
github.com
I'll be at London's Future of Web Apps 2014 next week, and we're throwing a meetup for Londoners on Sunday. Join us! You don't need to be going to ...
-
Introducing TODO for companies that are committed to open source
github.com
GitHub has always been about making open source software better, and today we're launching TODO with a number of partners to help large organizations ...
-
Better Word Highlighting in Diffs
github.com
Commits, compare views, and pull requests now highlight individual changed words instead of the entire changed section, making it easier for you to ...
-
Folder Jumping
github.com
You'll now start seeing expanded file listings on GitHub that look like this: The grey text in the paths — in this case, java/com/netflix/ — means ...
-
Security vulnerability in bash addressed
github.com
Update: 2014-09-25 15:45 UTC GitHub is closely monitoring new developments that indicate the existing bash patch for CVE-2014-6271 is incomplete. The ...
-
Third Annual Data Challenge Winners
github.com
The entries are in, the votes are tallied, and we've chosen the winners for our third annual Data Challenge! First Place Our first place winner is ...
-
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is - Who.is
who.is
Jamiehankins.co.uk DNS Lookup | Nameserver Lookup - Who.is information. Search for name server and DNS record information for domain names using our ...
-
GitHub Meetup: Memphis
github.com
GitHub is proudly sponsoring HACKMemphis this weekend. @jameswhite and I will be down visiting and would like to buy you a or and talk about whatever ...
-
Patchwork Night, NYC Edition
github.com
We're happy to announce a Patchwork hack night on Thursday, September 18, 2014, co-hosted with our friends at Dev Bootcamp NYC's campus. No coding ...
-
GitHub Flow
github.myshopify.com
Pull Requests are near and dear to us all. With the new GitHub Flow shirt, the Pull Request lifestyle literally could not possibly be any nearer or ...
-
Making MySQL Better at GitHub
github.com
At GitHub we say, "it's not fully shipped until it's fast." We've talked before about some of the ways we keep our frontend experience speedy, but ...
-
Elijah Buck is a GitHubber!
github.com
The Enterprise Support team just grew larger with the addition of Elijah Buck! Elijah comes to us from Richland, Washington, or as he lovingly refers ...
-
GitHub for Windows now supports @mentions
github.com
Sometimes, you just want to grab someone's attention when you're finished with some cool code. That's why we've added support for GitHub's @mention ...
-
GitHub <3 FIRST Robotics
github.com
So many of us here at GitHub have benefited from early exposure to science, technology, engineering, and mathematics that we're always looking for ...
-
Patchwork Night Boulder Edition
github.com
We're happy to announce a Patchwork hack night at GitHub's new Boulder office. No coding experience required! Patchwork is a hands-on workshop for ...
-
Octocat Sticker Packs
github.myshopify.com
What's better than one Octocat sticker? Why, a whole sheet of them, of course! Now you'll have enough for your laptop, your bike, your binder, and ...
-
Patchwork Boulder
ti.to
August 14 6pm-9pm GitHub Boulder: 1300 Walnut St., Boulder, CO 80302 Patchwork is a hands on workshop for learning Git and GitHub. There will be ...
-
Inviting people to your organization
github.com
We've changed the process for adding new GitHub users to your organization. Starting today, users you add will be sent an email invitation. Once they ...
-
GitHub Pages now runs Jekyll 2.2.0
github.com
We've upgraded GitHub Pages to support the latest version of Jekyll, the open source static site generator.
-
Pub Quiz Night in Portland
github.com
We'll be at OSCON next week and you're invited to join us on Wednesday, July 23 at 6:30pm for Pub Quiz Night at Spirit of 77 in Portland, OR, ...
-
Third Annual GitHub Data Challenge
github.com
GitHub's annual data challenge is back, and we can't wait to see what you'll build this year, be it beautiful generative art or full blown, ...
-
Open Source Trivia Showdown
www.eventbrite.com
Think you know all there is about open source? Show off your chops at a free pub trivia night, organized by GitHub and Fastly. Come and enjoy food ...
-
Open Source Trivia Showdown
www.eventbrite.com
Think you know all there is about open source? Show off your chops at a free pub trivia night, organized by GitHub and Fastly. Come and enjoy food ...
-
Introducing a simpler, faster GitHub for Mac
github.com
Following the recent release of GitHub for Windows 2.0, we’ve been working hard to bring our two desktop apps closer together. We’ve just shipped a ...
-
GitHub Enterprise - The best way to build and ship software
enterprise.github.com
The power of GitHub's social coding for your own workgroup. Pricing, tour and more.
-
Patchwork July
github.com
It's time for another Patchwork night at GitHub HQ, next Thursday, July 10th! Patchwork nights are hands-on help sessions for people new to Git and ...


flixel.addons.plugin.effects.FlxSpecialFX
- type
- class
- extends
- flixel.plugin.FlxPlugin
FlxSpecialFX is a single point of access to all of the FX Plugins available in the Flixel Power Tools
Static Methods
- parameters
Effect
A reference to the FX Plugin you wish to run. If null it will start all currently added FX Plugins
- returns
- Boolean true if the FX Plugin is active, false if not
- parameters
Effect
The FX Plugin to remove
- returns
- Boolean true if the plugin was removed, otherwise false.
- parameters
Effect
A reference to the FX Plugin you wish to run. If null it will start all currently added FX Plugins
- parameters
Effect
A reference to the FX Plugin you wish to stop. If null it will stop all currently added FX Plugins
- parameters
Camera
Which camera to draw the debug visuals to.
- parameters
Width
The new window width
Height
The new window Height


Design Your Flag! Generates Scalable Vector Graphics (SVG).
This App requires a browser which supports Inline SVG in HTML5.
Check this compatibility table for support in current browsers.
(Tries to generate pretty flags)
Copyright (c) 2011 by Lars Ruoff<EMAIL_ADDRESS>The copyright for all generated flags (.svg files) is hereby released to the Public Domain, under the creative commons CC0 public domain dedication.
[Vexillology - the study of flags] [Good flag, bad flag - The 5 Basic Principles of Flag Design]
[SVG to raster image (JPG/PNG/TIFF) conversion]


{{#html5.show_fullscreen_button}}
Fullscreen
{{/html5.show_fullscreen_button}} {{#html5.show_made_with_defold}}
Made with
Defold
{{/html5.show_made_with_defold}}


{% extends "base.html" %} {% block title %}
Medieval catalogues > HENRY DE KIRKESTEDE > Catalogus, c. 1360
{% endif %}44 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


Home
Register
Services
Gallery
Contact Us
Name
Last Name
Email
--Select--
How can we help
Any suggestions


Welcome to the V School admissions project! Your task, simply put, is to "hack" this website.
The purpose of this admissions project is to test both your resilience and resourcefulness. A lot of what you'll be required to do may be completely foreign to you and could even prove frustrating to figure out. You are not required to finish this within a certain amount of time, but you should make sure you set aside a good amount of time to complete this in one sitting.
We've included clues throughout the texts to help guide you in the process, but you will be required to figure certain things out for yourself. You may use any resource available to you EXCEPT asking for help from another person. As a starting point, you should definitely do some research on the "Chrome Developer Tools," as they will be invaluable to you in this process. In fact, if you work your way through this Code School course from beginning to end and can mostly understand what it teaches, this project should be fairly simple for you.
In real-life situations, you're highly encouraged to get help from other people after spending a good amount of time trying to figure things out on your own, but for the purposes of this project you'll need to do everything by yourself.
For this project, we highly recommend the following setup:
If you close this page, your progress will be reset.
Although you will be asked to look at and debug parts of this site, no previous programming experience is necessary to complete this challenge.


TODO: Replace this with document content
This is class alert default and this is alert info and this alert success and this alert danger style.


Planning Before Creating: the Golden Rule
How can you create something without first knowing the steps you need to take? Before you write any code, Step #1 should always be to create a plan!
How can you create something without first knowing the steps you need to take? Before you write any code, Step #1 should always be to create a plan!


 Pianos Become The Teeth Frameworks Prawn ALL GROUPS Music Videos Live Videos In The Rat Cave With... BLED Fest 2014 BLED Fest 2013 Promo Videos IN THE RAT CAVE WITH...  LIVE @ BLED FEST 2013 PIANOS BECOME THE TEETH LIVE @ BLED FEST 2013 SLINGSHOT DAKOTA LIVE @ BLED FEST 2013 OLD GRAY LIVE IN CAMBRIDGE, MA CAMERON BOUCHER "OPEN SAILS IN THE WINDS OF CHANGE" OLD GRAY "DYING LEAVES"
HOME | ABOUT | SERVICES | OUR WORK | OUR TEAM | CONTACT Copyright © 2013-2014 Rat Cave Productions LLC


Reverse engineering is an essential part of the modernization process that enables the evolution of existing software assets. The extraction of state machines out of existing code is an important aspect of the reverse engineering process. However, none of the reverse engineering tools fully support an automatic extraction of state machines. In our work we investigated the process of manual extraction of hierarchical state machines from the source code of an embedded C application and identified the steps of the process that can be automated. We learned that manual creation of state machines out of code is a very complicated task mostly because of the large amount of potential states that can be created by a relatively small amount of global variables. To reduce the complexity of this task we developed a methodology to decompose the code into smaller parts of functionally related elements. We showed how this technique and other system analysis mechanisms provided by the System Grokking technology can automate steps of the state machine extraction process.


Here are some of the film a festivals we will be attending this year.
Please contact us if you would like more information
Sundance Film Festival
Park City, Utah, USA
20 - 30 Juanuary 2011
tropfest
Sydney, Australia
20 February 2011
South by Southwest
Austin, Texas, USA
11 - 20 March 2011
London UK
London, UK
15 - 24 April 2011
Cames International Film Festival
Cames, France
11 - 22 May 2011


AUGUST 15 The Assumption of
the Blessed Virgin Mary
This
feast was celebrated in the liturgy of the Eastern World from the sixth century
and, in
Vigil Mass (Mass during the Day)
ENTRANCE ANTIPHON
Glorious things are spoken of you, O Mary, who today were exalted above the choir of Angels into eternal triumph with Christ.
The
GLORIA is said. (English, Latin)
COLLECT
O God, who, looking on the lowliness of the Blessed Virgin Mary, raised her to this grace, that your Only Begotten Son was born of her according to the flesh and that she was crowned this day with surpassing glory, grant through her prayers, that, saved by the mystery of your redemption, we may merit to be exalted by you on high. Through our Lord Jesus Christ, your Son, who lives and reigns with you in the unity of the Holy Spirit, one God, for ever and ever.
The
PROFESSION OF FAITH (Creed) is
said. (English, Latin)
PRAYER OVER THE OFFERINGS
Receive, we pray, O Lord, the sacrifice of conciliation and praise, which we celebrate on the Assumption of the holy Mother of God, that it may lead us to your pardon and confirm us in perpetual thanksgiving. Through Christ our Lord.
COMMUNION ANTIPHON
Blessed is the womb of the Virgin Mary, which bore the Son of the eternal Father.
PRAYER AFTER COMMUNION
Having partaken of this heavenly table, we beseech your mercy, Lord our God, that we, who honour the Assumption of the Mother of God, may be freed from every threat of harm. Through Christ our Lord.
ENTRANCE ANTIPHON
A great sign
appeared in heaven: a woman clothed with the sun, and the
moon beneath her feet, and on her head a crown of twelve stars.
Or:
Let us all
rejoice in the Lord, as we celebrate the feast day in honour of the Virgin
Mary, at whose Assumption the Angels rejoice and praise the Son of God.
The
GLORIA is said. (English, Latin)
COLLECT
Almighty ever-living God, who assumed the Immaculate Virgin Mary, the Mother of your Son, body and soul into heavenly glory, grant, we pray, that, always attentive to the things that are above, we may merit to be sharers of her glory. Through our Lord Jesus Christ, your Son, who lives and reigns with you in the unity of the Holy Spirit, one God, for ever and ever.
The
PROFESSION OF FAITH (Creed) is
said. (English, Latin)
PRAYER OVER THE OFFERINGS
May this oblation, our tribute of homage, rise up to you, O Lord, and, through the intercession of the most Blessed Virgin Mary, whom you assumed into heaven, may our hearts, aflame with the fire of love, constantly long for you. Through Christ our Lord.
COMMUNION ANTIPHON
All generations will call me blessed, for he who is mighty has done great things for me.
PRAYER AFTER COMMUNION
Having
received the Sacrament of salvation, we ask you to grant, O Lord, that, through
the intercession of the Blessed Virgin Mary, whom you assumed into heaven, we
may be brought to the glory of the resurrection. Through
Christ our Lord.


Toggle navigation
406 Project
Civil Servant Login:
Sign in
Enter problem details below
Email address
Problem Type
Road quality
Safety
Accesibility
Problem description
Submit


{% extends "base.html" %} {% load repeatedblocks %} {% load template_tags %} {% block title %}Setting New password{% endblock %} {% block extra_content %} Reset Password {% if validlink %} Please enter your new password twice. So we can verify you typed it in correctly. New password: {{ form.new_password1 }} {{ form.new_password1.errors }} Confirm password: {{ form.new_password2 }} {{ form.new_password1.errors }} {% else %} Password reset unsuccessful The password reset link was invalid, possibly because it has already been used. Please request a new password reset. {% endif %} {% endblock %} {% block extra_css %} {% endblock %}
Please enter your new password twice. So we can verify you typed it in correctly.
The password reset link was invalid, possibly because it has already been used. Please request a new password reset.


Add New Coach
@helper.CSRF.formField
Coach Name:
Coach Salary:
Coach Specialty:
Offense
Defense
Special Teams
Coach Tier:
1
2
3
4
5
Picture:


Manali
Nestled in between the snow-capped slopes of the Pir Panjal and the Dhauladhar ranges, Manali is one of the most popular hill stations in the country. With jaw-dropping views, lush green forests, sprawling meadows carpeted with flowers, gushing blue streams, a perpetual fairy-tale like mist lingering in the air, and a persistent fragrance of pines - Manali has been blessed with extraordinary scenic beauty. From museums to temples, from quaint little hippie villages to bustling upscale streets, river adventures to trekking trails, Manali has every reason to be the tourist magnet it is, all year round. Clean roads, swaying eucalyptus trees, endearing little eateries, small kitschy local market places, and cafes which serve delicious local food at unbelievable prices, Old Manali is a serene, tranquil place, whose lingering silence is broken only by the twittering of the birds and the sound of the roaring waters of the Kullu river. Solang Valley is the of the most visited places in Manali, with the drive up to Solang being as picturesque as the valley itself. Not only does Solang Valley offer some breathtaking views of the surrounding landscape, but its slopes are also a very popular skiing destination, especially during the winters. In summers, the place turns into a paragliding haven. If you're an adventure enthusiast, Solang Valley has adrenaline-pumping activities such as zorbing and horse-riding available.


This chapter is a tutorial introduction to page objects design pattern. A page object represents an area in the web application user interface that your test is interacting.
Benefits of using page object pattern:
Here is a test case which searches for a word in python.org website and ensure some results are found.
import unittest
from selenium import webdriver
import page
class PythonOrgSearch(unittest.TestCase):
"""A sample test class to show how page object works"""
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.get("http://www.python.org")
def test_search_in_python_org(self):
"""
Tests python.org search feature. Searches for the word "pycon" then verified that some results show up.
Note that it does not look for any particular text in search results page. This test verifies that
the results were not empty.
"""
#Load the main page. In this case the home page of Python.og.
main_page = page.MainPage(self.driver)
#Checks if the word "Python" is in title
assert main_page.is_title_matches(), "python.org title doesn't match."
#Sets the text of search textbox to "pycon"
main_page.search_text_element = "pycon"
main_page.click_go_button()
search_results_page = page.SearchResultsPage(self.driver)
#Verifies that the results page is not empty
assert search_results_page.is_results_found(), "No results found."
def tearDown(self):
self.driver.close()
if __name__ == "__main__":
unittest.main()
The page object pattern intends creating an object for each web page. By following this technique a layer of separation between the test code and technical implementsation is created.
The page.py will look like this:
from element import BasePageElement
from locators import MainPageLocators
class SearchTextElement(BasePageElement):
"""This class gets the search text from the specified locator"""
#The locator for search box where search string is entered
locator = 'q'
class BasePage(object):
"""Base class to initialize the base page that will be called from all pages"""
def __init__(self, driver):
self.driver = driver
class MainPage(BasePage):
"""Home page action methods come here. I.e. Python.org"""
#Declares a variable that will contain the retrieved text
search_text_element = SearchTextElement()
def is_title_matches(self):
"""Verifies that the hardcoded text "Python" appears in page title"""
return "Python" in self.driver.title
def click_go_button(self):
"""Triggers the search"""
element = self.driver.find_element(*MainPageLocators.GO_BUTTON)
element.click()
class SearchResultsPage(BasePage):
"""Search results page action methods come here"""
def is_results_found(self):
# Probably should search for this text in the specific page
# element, but as for now it works fine
return "No results found." not in self.driver.page_source
The element.py will look like this:
from selenium.webdriver.support.ui import WebDriverWait
class BasePageElement(object):
"""Base page class that is initialized on every page object class."""
def __set__(self, obj, value):
"""Sets the text to the value supplied"""
driver = obj.driver
WebDriverWait(driver, 100).until(
lambda driver: driver.find_element_by_name(self.locator))
driver.find_element_by_name(self.locator).send_keys(value)
def __get__(self, obj, owner):
"""Gets the text of the specified object"""
driver = obj.driver
WebDriverWait(driver, 100).until(
lambda driver: driver.find_element_by_name(self.locator))
element = driver.find_element_by_name(self.locator)
return element.get_attribute("value")
One of the practices is to separate the locator strings from the place where they are being used. In this example, locators of the same page belong to same class.
The locators.py will look like this:
from selenium.webdriver.common.by import By
class MainPageLocators(object):
"""A class for main page locators. All main page locators should come here"""
GO_BUTTON = (By.ID, 'submit')
class SearchResultsPageLocators(object):
"""A class for search results locators. All search results locators should come here"""
pass


The GpioConfig class provides a container to correlate various GPIO related information such as HeaderPinNumber, PinMuxRegisterOffset,
the GPIO and also the configuration state of the GPIO. This class is used for both the SYSFS and MemoryMapped versions of
the BBBCSIO
classes and some class members are only relevant during a specific access mode.
This class is primarily intended for internal use within the various port objects and there is little need for direct interaction by
external objects. These objects are usually auto-generated in the constructor of the port classes from the input GpioID using the tools and configuration
information hardcoded in the static GpioUtils class.
public int EventBank { get; }
Gets the Event bank. This is related to the GPIO. you will some
times see a gpio listed in the documentation like gpio1_23 or gpio1[23]
the gpio number will be (1*32) + 23 hence GPIO_55. This function
just recovers the bank (the 1 in the above example) from the calculated
GPIO number. It is needed when configuring certain things (like events)
in the device tree.
- value
- The event bank. This is the just GPIO/32.
public int EventBit { get; }
Gets the event bit number. This is related to the GPIO. you will some
times see a gpio listed in the documentation like gpio1_23 or gpio1[23]
the gpio number will be (1*32) + 23 hence GPIO_55. This function
just recovers the number of the bit (the 23 in the above example) from
the calculated GPIO number.
- value
- The event bit. This is the remainder of GPIO/32.
public GpioEnum Gpio { get; }
Gets the Gpio enum. There is no set accessor - this value set in the Constructor.
- value
- The Gpio as an enum.
public int GpioBank { get; }
Gets the Gpio bank. There is no set accessor - this value is calculated
from the GpioID in the Constructor.
- value
- The Gpio bank which will be a value of 0, 1, 2 or 3.
public int GpioBit { get; }
Gets the Gpio bit. There is no set accessor - this value is calculated
from the GpioID in the Constructor.
- value
- The bit offset in the PinMux Gpio bank. This is the remainder of GpioNum/32.
public int GpioMask { get; }
Gets the Gpio mask. There is no set accessor - this value is calculated
from the GpioID in the Constructor.
- value
- The bit offset in the PinMux Gpio bank. This is a 0x01 shifted left by the GpioBit value.
public int GpioSetting { get; }
Gets the GpioSettings. These are the raw hex bits that determine the various
mode settings. SYSFS mode only. Requires a call to UpdateConfigurationWithPinsFileInfo()
in order for it to be set.
- value
- The bits of the Gpio Setting.
public int HeaderNum { get; }
Gets the Header Number. There is no set accessor - this value set in the Constructor.
- value
- The header number. This will always be an 8 or 9 representing the P8 and P9 Headers respectively.
public int HeaderPin { get; }
Gets the Header Pin. There is no set accessor - this value set in the Constructor.
- value
- The header pin. This is the pin which exposes the GPIO on the P8 or P9 Header.
public bool GpioModeEnabled { get; }
Detects if the PinMux for the GPIO is in GPIO mode. A convenience property
which essentially just detects if MuxMode == 7
- value
- true the GPIO is in GPIO mode, false, it is not.
public int GpioNum { get; }
Gets the Gpio as a number. There is no set accessor - this value set in the Constructor.
- value
- The Gpio as a number.
public string GpioOwner { get; }
Gets the Gpio Owner. There is no set accessor - this value is set via a call to
UpdateConfigurationWithPinmuxPinsFileInfo()
- value
- The mux pin. Only set on SYSFS mode ports
public int MuxMode { get; }
Gets the Mux Mode. Gets the MuxMode. These are the lsb three bits of the GpioSetting.
Mode 7 111b enables GPIO's. Only set on SYSFS mode ports
- value
- The mux Mode. Essentially just gpioSetting & 0x07;
public string MuxOwner { get; }
Gets the Mux Owner. There is no set accessor - this value is set via a call to
UpdateConfigurationWithPinmuxPinsFileInfo()
- value
- The mux owner. Only set on SYSFS mode ports
public int MuxPin { get; }
Gets the Mux Pin. There is no set accessor - this value is set via a call to
UpdateConfigurationWithPinsFileInfo()
- value
- The mux pin. Only set on SYSFS mode ports
public int PinmuxRegisterAddress { get; }
Gets the PinMux register address. There is no set accessor - this value calculated from the PinmuxRegisterOffset.
- value
- The pinmuxRegisterAddress. This is BBBDefinitions.PINMUX_BASE_ADDRESS+PinmuxRegisterOffset.
public string PinmuxRegisterAddressAsHexString { get; }
Gets the PinMux register address as a hex string. There is no set accessor - this value calculated from the PinmuxRegisterAddress.
- value
- The pinmuxRegisterAddress as a hex string. This is a convenience for display purposes.
public int PinmuxRegisterDTIndex { get; }
Gets the PinMux register device tree index. There is no set accessor - this value calculated from the PinmuxRegisterOffset.
- value
- The pinmuxRegisterDTIndex. This is the pinmuxRegisterOffset-0x0800 the Device Tree Compiler uses this format for its addressing.
public int PinmuxRegisterDTIndexAsHexString { get; }
Gets the PinMux register device tree index as a hex string. There is no set accessor - this value calculated from the PinmuxRegisterDTIndex.
- value
- The pinmuxRegisterDTIndex as a hex string. This is a convenience for display purposes.
public int PinmuxRegisterOffset { get; }
Gets the PinMux register offset. There is no set accessor - this value set in the Constructor.
- value
- The PinMux register offset.
public string PinmuxRegisterOffsetAsHexString { get; }
Gets the PinMux register offset. There is no set accessor - this value calculated from the PinmuxRegisterOffset.
- value
- The PinMux register offset as a hex string. This is a convenience for display purposes.
public bool PulldownIsActive { get; }
Detects if a pull down resistor is enabled and active on the Gpio. There is no set accessor - this value calculated from the GpioSetting.
- value
- The PulldownIsActive state. This is a quick way to run through sequence of tests to see if we actually
have an active pull down resistor on the port.
public bool PullupIsActive { get; }
Detects if a pullup resistor is enabled and active on the Gpio. There is no set accessor - this value calculated from the GpioSetting.
- value
- The PullupIsActive state. This is a quick way to run through sequence of tests to see if we actually
have an active pullup resistor on the port.
public bool PullupsPulldownsEnabled { get; }
Detects if pullups/pulldowns are enabled. There is no set accessor - this value calculated from the GpioSetting.
- value
- The PullupsPulldownsEnabled state. Note this does not indicate if the port has a pullup or pulldown configured -
just that one or the other is enabled on that port.
public int PullupPulldownMode { get; }
Detects if the gpio is in pull up or pull down mode. There is no set accessor - this value calculated from the GpioSetting.
- value
- The PullupsPulldownsEnabled state. The actual
pull up or pull down resistor is only truely operational if PullupsPulldownsEnabled
is true.
public int ReceiverMode { get; }
Detects if the gpio configured in the PinMux as an input or output. There is no set accessor - this value calculated from the GpioSetting.
- value
- The receiver mode state. 1 receiver mode active, 0 receiver mode inactive
is true.
public int SlewControl { get; }
Detects the slew control state. There is no set accessor - this value calculated from the GpioSetting.
- value
- The slew control state. 1 slew control fast, 0 slew control slow
is true.


On 6 December 2018, 5 new articles were published in 5 journals.
Film Review: Martin McDonagh (dir.), Three Billboards Outside Ebbing, Missouri
Pathways to Violent Extremism: A Qualitative Comparative Analysis of the Us Far-Right
Threshold Point Utilisation in Juror Decision-Making
Are Rights Out of Time? International Human Rights Law, Temporality, and Radical Social Change


This inspection checks validity of lambda parameter names in a rule section (e.g. only 'wildcards' for 'input' section; see Snakemake documentation on rules).


Homepage
Login with Google
Logout
Last Step!
Email:
What topics would you like to cover?
What questions do you have?
Submit


“A baby learns to crawl, walk and then run. We are in the crawling stage when it comes to applying machine learning.”
“Algorithms are not arbiters of objective truth and fairness simply because they're math.”
“If you think that the internet has changed your life, think again. The Internet of Things is about to change it all over again!”
“Loyalty to country ALWAYS. Loyalty to government, when it deserves it.”
Separated they live in. A small river named Duden flows by their place and supplies it with the necessary regelialia. It is a paradisematic country
“There are three responses to a piece of design – yes, no, and WOW!Wow is the one to aim for"
“If you think hiring professionals is expensive, try hiring amateurs.”


Welcome to Claims Explorer !
With this tool, you can explore the knowledge graph ClaimsKG, containing data about fact-checked claims
Collected claims
{{claimsCount}}


The Checks API is currently available for developers to preview. During the preview period, the API may change without advance notice. Please see the blog post for full details. To access the API during the preview period, you must provide a custom media type in the Accept
header:
application/vnd.github.antiope-preview+json
Warning: The API may change without advance notice during the preview period. Preview features are not supported for production use. If you experience any issues, contact GitHub Enterprise Support.
Triggers GitHub to create a new check suite, without pushing new code to a repository. To request a check suite, your GitHub App must have the checks:read
permission on a private repository or pull access to a public repository.
POST /repos/:owner/:repo/check-suite-requests
| Name | Type | Description |
|---|---|---|
head_sha |
string |
Required. The sha of the head commit. |
{
"head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3"
}
Status: 201 Created


BEES
BIRDS
BEANS
What can I have?
allowed
allowed with permit
allowed, see details
no information
not allowed


Lorem Ipsum and all that jazz and description below
| Profile | Students' ID | Status | |
|---|---|---|---|
| 1 | Mark | Otto | @mdo |
| 2 | Jacob | Thornton | @fat |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird | |
| 3 | Larry | the Bird |
Lorem Ipsum and all that jazz and description below


?jŽ
ÀZj£Á’talk.
New
York
Botanical
Garden
r7
u~
lb2M0SM
3
t*-.
THE
NEW
YORK
BOTANICAL
GARDEN
PLANTS
COLLECTED
IN
TURKS
ISLANDS,
1905
Grand
Turk,
August
27-September
1.
George
V.
Nash
i
Norman
Taylor
collectors.
alt.
Hab.
1624054
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Dj Roychoudhury
droycho
Intro to Programming Week 3: Arrays and Looping
Ping Pong will count up to your number from 1 with the following exceptions:


 Engage your clients through compelling visuals that do most of the marketing for you.
Learn MoreStand out to the right audience
Using a collaborative formula of designers, researchers, photographers, videographers, and copywriters, we'll build and extend your brand in digital places.
Learn MoreGraphic Design
Great design makes you memorable. We deliver artwork that underscores your brand message and captures potential clients' attention.
Photography
Increase your credibility by getting the most stunning, high quality photos that improve your business image.
Client Testimonials
We put our trust in Sunnyside and they delivered, making sure our needs were met and deadlines were always hit.
Sunnyside's enthusiasm coupled with their keen interest in our brand's success made it a satisfying and enjoyable experience.
Incredible end result! Our sales increased over 400% when we worked with Sunnyside. Highly recommended!


Source Code: https://github.com/tjwei/Fractran
From wikipedia Fractran:
FRACTRAN is a Turing-complete esoteric programming language invented by the mathematician John Conway. A FRACTRAN program is an ordered list of positive fractions together with an initial positive integer input n. The program is run by updating the integer n as follows:
for the first fraction f in the list for which nf is an integer, replace n by nf
repeat this rule until no fraction in the list produces an integer when multiplied by n, then halt.


Defining the appearance of Connectors and Endpoints is achieved through a paintStyle
(or a quite similar name) object passed as a parameter to one of jsPlumb.connect
, jsPlumb.addEndpoint
, jsPlumb.makeSource
or jsPlumb.makeTarget
.
Depending on the method you are calling, the parameter names vary.
These are specified in a paintStyle
parameter on a call to jsPlumb.connect
:
jsPlumb.connect({
source:"el1",
target:"el2",
paintStyle:{ stroke:"blue", strokeWidth:10 }
});
or in the connectorPaintStyle
parameter on a call to jsPlumb.addEndpoint
or jsPlumb.makeSource
:
jsPlumb.addEndpoint("el1", {
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
connectorPaintStyle:{ stroke:"blue", strokeWidth:10 }
});
jsPlumb.makeSource("el1", {
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
connectorPaintStyle:{ stroke:"blue", strokeWidth:10 }
});
Notice the paintStyle
parameter in those examples: it is the paint style for the Endpoint, which we'll discuss below.
These are specified in a paintStyle
parameter on a call to addEndpoint
. This is the example from just above:
jsPlumb.addEndpoint("el1", {
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
connectorPaintStyle:{ stroke:"blue", strokeWidth:10 }
});
...or as the endpointStyle
parameter to a connect
call:
jsPlumb.connect({
source:"el1",
target:"el2",
endpointStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
paintStyle:{ stroke:"blue", strokeWidth:10 }
});
... or as an entry in the endpointStyles
array passed to a jsPlumb.connect
call:
jsPlumb.connect({
source:"el1",
target:"el2",
endpointStyles:[
{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
{ fill:"green" }
],
paintStyle:{ stroke:"blue", strokeWidth:10 }
});
or as the paintStyle
parameter passed to a makeTarget
or makeSource
call:
jsPlumb.makeTarget("el1", {
...
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
...
});
jsPlumb.makeSource("el1", {
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 }
parent:"someOtherDivIJustPutThisHereToRemindYouYouCanDoThis"
});
In the first example we made el1
into a drop target, and defined a paint style for the Endpoint jsPlumb will create when a Connection is established. In the second we made el1 a connection source and assigned the same values for the Endpoint jsPlumb will create when a Connection is dragged from that element.
The preferred way to set paint styles for Overlays is to use the cssClass
parameter in the constructor arguments of an Overlay definition.
This is the full list of parameters you can set in a paintStyle object, but note that fill
is ignored by Connectors, and stroke
is ignored by Endpoints. Also, if you create a Connection using jsPlumb.connect and do not specify any Endpoint styles, the Endpoints will derive their fill from the Connector's stroke.
fill
, stroke
and outlineStroke
can be specified using any valid CSS3 syntax.
stroke-dasharray
, discussed below), so even though VML is no longer a supported renderer
we've decided to keep this attribute. The dashstyle
attribute is specified as an array of strokes and spaces, where
each value is some multiple of the width of the Connector, and that's where it's better than SVG, which just uses
absolute pixel values.The VML spec is a good place to find valid values for dashstyle. Note that jsPlumb does not support the string values for this attribute ("solid", "dashdot", etc).
jsPlumb uses the strokeWidth
parameter in conjunction with the values in a dashstyle
attribute to create an appropriate
value for stroke-dasharray
.
dashstyle
. The SVG spec
discusses valid values for this parameter. Connectors and Endpoints both support the concept of a "hover" paint style - a paint style to use when the mouse is hovering over the component. These are specified in the exact same format as paint styles discussed above, but hover paint styles also inherit any values from the main paint style. This is because you will typically want to just change the color, or perhaps outline color, of a Connector or Endpoint when the mouse is hovering, but leave everything else the same. So having hover paint styles inherit their values precludes you from having to define things in more than one place.
The naming convention adopted for hover paint styles is pretty much to insert the word 'hover' into the corresponding main paint style parameters. Here are a couple of examples:
jsPlumb.connect({
source:"el1",
target:"el2",
paintStyle:{ stroke:"blue", strokeWidth:10 },
hoverPaintStyle:{ stroke:"red" },
endpointStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
endpointHoverStyle:{ fill:"red" }
});
In this example we specified a hover style for both the Connector, and each of its Endpoints. Here's the same thing, but using the plural version, to specify a different hover style for each Endpoint:
jsPlumb.connect({
source:"el1",
target:"el2",
paintStyle:{ stroke:"blue", strokeWidth:10 },
hoverPaintStyle:{ stroke:"red" },
endpointStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
endpointHoverStyles:[
{ fill:"red" },
{ fill:"yellow" }
]
});
Calls to addEndpoint
, makeSource
and makeTarget
can also specify various hover paint styles:
jsPlumb.addEndpoint("el1", {
paintStyle:{ fill:"blue", outlineStroke:"black", outlineWidth:1 },
hoverPaintStyle:{ fill:"red" },
connectorPaintStyle:{ stroke:"blue", strokeWidth:10 },
connectorHoverPaintStyle:{ stroke:"red", outlineStroke:"yellow", outlineWidth:1 }
});
jsPlumb.makeSource("el2", {
paintStyle:{
fill:"transparent",
outlineStroke:"yellow",
outlineWidth:1
},
hoverPaintStyle:{ fill:"red" },
connectorPaintStyle:{
stroke:"green",
strokeWidth:3
},
connectorHoverPaintStyle:{
stroke:"#678",
outlineStroke:"yellow",
outlineWidth:1
}
});
jsPlumb.makeTarget("el3", {
paintStyle:{
fill:"transparent",
outlineStroke:"yellow",
outlineWidth:1
},
hoverPaintStyle:{ fill:"red" }
});
In these examples we specified a hover paint style for both the Endpoint we are adding, and any Connections to/from the Endpoint.
Note that makeTarget
does not support Connector parameters. It is for creating targets only; Connector parameters will be set by the source Endpoint in any Connections that are made to the element that you turned into a target by using this method.
jsPlumb uses its own syntax to define gradients; this was initially to abstract out the differences between the syntax required by canvas and that required by SVG, but in fact since jsPlumb does not support the canvas or VML renderers any more, it is possible that a future release will switch to using the SVG syntax for gradients.
There are two types of gradients available - a linear
gradient, which consists of colored lines all going in one
direction, and a radial
gradient, which consists of colored circles emanating from one circle to another. Because of
their basic shape, jsPlumb supports only linear gradients for Connectors. But for Endpoints, jsPlumb supports both
linear and radial gradients.
To specify a linear gradient to use in a Connector, you must add a gradient
object to your Connector's paintStyle
,
for instance:
jsPlumb.connect({
source : "window2",
target : "window3",
paintStyle:{
gradient:{
stops:[[0,"green"], [1,"red"]]
},
strokeWidth:15
}
});
Here we have connected window2 to window3 with a 15 pixel wide connector that has a gradient from green to red.
Notice the gradient
object and the stops
list inside it - the gradient consists of an arbitrary number of these "color stops". Each color stop is comprised of two values - [position, color]. Position must be a decimal value between 0 and 1 (inclusive), and indicates where the color stop is situated as a fraction of the length of the entire gradient. Valid values for the colors in the stops list are the same as those that are valid for stroke when describing a color.
As mentioned, the stops list can hold an arbitrary number of entries. Here's an example of a gradient that goes from red to blue to green, and back again through blue to red:
jsPlumb.connect({
source : 'window2',
target : 'window3',
paintStyle : {
gradient:{
stops:[[0,'red'], [0.33,'blue'], [0.66,'green'], [0.33,'blue'], [1,'red']]
},
strokeWidth : 15
}
});
Endpoint gradients are specified using the same syntax as Connector gradients. You put the gradient specifier either
in the endpoint
member, or if you are specifying different Endpoints for each end of the Connector, in one or both of
the values in the endpoints
array. Also, this information applies to the case that you are creating standalone
Endpoints that you will be configuring for drag and drop creation of new Connections.
This is an example of an Endpoint gradient that is different for each Endpoint in the Connector. This comes from the main demo; it is the Connector joining Window 2 to Window 3:
var w23Stroke = 'rgb(189,11,11)';
jsPlumb.connect({
source : 'window2',
target : 'window3',
paintStyle:{
strokeWidth:8,
stroke:w23Stroke
},
anchors:[ [0.3,1,0,1], "TopCenter" ],
endpoint:"Rectangle",
endpointStyles:[{
gradient : {
stops:[[0, w23Stroke], [1, '#558822']]
}
},{
gradient : {
stops:[[0, w23Stroke], [1, '#882255']]
}
}]
});
The first entry in the gradient will be the one that is on the Connector end of the Endpoint. You can of course have as many color stops as you want in this gradient, just like with Connector gradients.
Only the Dot and Rectangle endpoints honour the presence of a gradient. The Image endpoint of course ignores a gradient as it does no painting of its own.
The type of gradient you will see depends on the Endpoint type:
Radial gradients actually require more data than linear gradients - in a linear gradient we just move from one point to another, whereas in a radial gradient we move from one circle to another. By default, jsPlumb will render a radial gradient using a source circle of the same radius as the Endpoint itself, and a target circle of 1/3 of the radius of the Endpoint (both circles share the same center as the Endpoint itself). This circle will be offset by radius/2 in each direction.
You can supply your own values for these inside the gradient descriptor:
var w34Stroke = 'rgba(50, 50, 200, 1)';
var w34HlStroke = 'rgba(180, 180, 200, 1)';
jsPlumb.connect({
source : 'window3',
target : 'window4',
paintStyle:{
strokeWidth:10,
stroke:w34Stroke
},
anchors:[ "RightMiddle", "LeftMiddle" ],
endpointStyle:{
gradient : {
stops:[ [0, w34Stroke], [1, w34HlStroke] ],
offset:37.5,
innerRadius:40
},
radius:55
}
});
Here we have instructed jsPlumb to make the gradient's inner radius 10px instead of the default 25/3 = 8 ish pixels, and the offset in each direction will be 5px, instead of the default radius / 2 = 12.5 pixels.
It is also possible to specify the offset and inner radius as percentages - enter the values as strings with a '%' symbol on the end:
var w34Stroke = 'rgba(50, 50, 200, 1)';
var w34HlStroke = 'rgba(180, 180, 200, 1)';
jsPlumb.connect({
source : 'window3',
target : 'window4',
paintStyle:{
strokeWidth:10,
stroke:w34Stroke
},
anchors:[ "RightMiddle", "LeftMiddle" ],
endpointStyle:{
gradient : {
stops:[ [0, w34Stroke], [1, w34HlStroke] ],
offset:'68%',
innerRadius:'73%'
},
radius:25
}
});
This will give roughly the same output as the example above (the percentages are not entirely exact).


.----.
____ __\\\\\\__
\___'--" .-.
/___>------rtika '0'
/____,--. \----B
"".____ ___-"
// / /
]/
Apache Tika is similar to the Babel fish in Douglas Adam’s book, “The Hitchhikers’ Guide to the Galaxy” (C. Mattmann and Zitting 2011, 3). The Babel fish translates any natural language to any other. While Apache Tika does not yet translate natural languages, it starts to tame the tower of babel of digital document formats. As the Babel fish allowed a person to understand Vogon poetry, Tika allows a computer to extract text and objects from Microsoft Word.
The world of digital file formats is like a place where each community has their own language. Academic, business, government, and online communities use anywhere from a few file types to thousands. Unfortunately, attempts to unify groups around a single format are often fruitless (C. A. Mattmann 2013).
This plethora of document formats has become a common concern. Tika is a common library to address this issue. Starting in Apache Nutch in 2005, Tika became its own project in 2007 and then a component of other Apache projects including Lucene, Jackrabbit, Mahout, and Solr (C. Mattmann and Zitting 2011, 17).
With the increased volume of data in digital archives, and terabyte
sized data becoming common, Tika’s design goals include keeping
complexity at bay, low memory consumption, and fast processing (C. Mattmann and Zitting 2011, 18). The
rtika
package is an interface to Apache Tika that leverages
Tika’s batch processor module to parse many documents fairly
efficiently. Therefore, I recommend using batches whenever possible.
Video, sound and images are important, and yet much meaningful data remains numeric or textual. Tika can parse many formats and extract alpha-numeric characters, along with a few characters to control the arrangement of text, like line breaks.
I recommend an analyst start with a directory on the computer and get
a vector of paths to each file using base::list.files()
.
The commented code below has a recipe. Here, I use test files that are
included with the package.
library('rtika')
library('magrittr')
# Code to get ALL the files in my_path:
# my_path <- "~"
# batch <- file.path(my_path,
# list.files(path = my_path,
# recursive = TRUE))
# pipe the batch into tika_text()
# to get plain text
# test files
<- c(
batch system.file("extdata", "jsonlite.pdf", package = "rtika"),
system.file("extdata", "curl.pdf", package = "rtika"),
system.file("extdata", "table.docx", package = "rtika"),
system.file("extdata", "xml2.pdf", package = "rtika"),
system.file("extdata", "R-FAQ.html", package = "rtika"),
system.file("extdata", "calculator.jpg", package = "rtika"),
system.file("extdata", "tika.apache.org.zip", package = "rtika")
)
<-
text %>%
batch tika_text()
# normal syntax also works:
# text <- tika_text(batch)
The output is a R character vector of the same length and order as the input files.
In the example above, there are several seconds of overhead to start up the Tika batch processor and then process the output. The most costly file was the first one. Large batches are parsed more quickly. For example, when parsing thousands of 1-5 page Word documents, I’ve measured 1/100th of a second per document on average.
Occasionally, files are not parsable and the returned value for the
file will be NA
. The reasons include corrupt files, disk
input/output issues, empty files, password protection, a unhandled
format, the document structure is broken, or the document has an
unexpected variation.
These issues should be rare. Tika works well on most documents, but if an archive is very large there may be a small percentage of unparsable files, and you might want to handle those.
# Find which files had an issue
# Handle them if needed
which(is.na(text))]
batch[#> character(0)
Plain text is easy to search using base::grep()
.
length(text)
#> [1] 7
<-
search grep(pattern = ' is ', x = text)]
text[
length(search)
#> [1] 6
With plain text, a variety of interesting analyses are possible,
ranging from word counting to constructing matrices for deep learning.
Much of this text processing is handled easily with the well documented
tidytext
package (Silge and Robinson
2017). Among other things, it handles tokenization and creating
term-document matrices.
A general suggestion is to use tika_fetch()
when
downloading files from the Internet, to preserve the server Content-Type
information in a file extension.
Tika’s Content-Type detection is improved with file extensions (Tika
also relies on other features such as Magic bytes, which are unique
control bytes in the file header). The tika_fetch()
function tries to preserves Content-Type information from the download
server by finding the matching extension in Tika’s database.
<- tempfile('rtika_')
download_directory
dir.create(download_directory)
<- c('https://tika.apache.org/',
urls 'https://cran.rstudio.com/web/packages/keras/keras.pdf')
<-
downloaded %>%
urls tika_fetch(download_directory)
# it will add the appropriate file extension to the downloads
downloaded#> [1] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_2622743d3a8/rtika_file262275fcbe51.html"
#> [2] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_2622743d3a8/rtika_file26222432f45b.pdf"
This tika_fetch()
function is used internally by the
tika()
functions when processing URLs. By using
tika_fetch()
explicitly with a specified directory, you can
also save the files and return to them later.
Large jobs are possible with rtika
. However, with
hundreds of thousands of documents, the R object returned by the
tika()
functions can be too big for RAM. In such cases, it
is good to use the computer’s disk more, since running out of RAM slows
the computer.
I suggest changing two parameters in any of the tika()
parsers. First, set return = FALSE
to prevent returning a
big R character vector of text. Second, specify an existing directory on
the file system using output_dir
, pointing to where the
processed files will be saved. The files can be dealt with in smaller
batches later on.
Another option is to increase the number of threads, setting
threads
to something like the number of processors minus
one.
# create a directory not already in use.
<-
my_directory tempfile('rtika_')
dir.create(my_directory)
# pipe the batch to tika_text()
%>%
batch tika_text(threads = 4,
return = FALSE,
output_dir = my_directory)
# list all the file locations
<- file.path(
processed_files normalizePath(my_directory),
list.files(path = my_directory,
recursive = TRUE)
)
The location of each file in output_dir
follows a
convention from the Apache Tika batch processor: the full path to each
file mirrors the original file’s path, only within the
output_dir
.
processed_files#> [1] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/R-FAQ.html.txt"
#> [2] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/calculator.jpg.txt"
#> [3] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/curl.pdf.txt"
#> [4] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/jsonlite.pdf.txt"
#> [5] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/table.docx.txt"
#> [6] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/tika.apache.org.zip.txt"
#> [7] "/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/Rtmpt8ekM8/rtika_262218299c12/private/var/folders/r9/svkzrjgd2b550nl7cs6rdxph0000gn/T/RtmpSYQOHQ/Rinst25f47fc37a2c/rtika/extdata/xml2.pdf.txt"
Note that tika_text()
produces .txt
files,
tika_xml()
produces .xml
files,
tika_html()
produces .html
files, and both
tika_json()
and tika_json_text()
produce
.json
files.
Plain text falls short for some purposes. For example, pagination
might be important for selecting a particular page in a PDF. The Tika
authors chose HTML as a universal format because it offers semantic
elements that are common or familiar. For example, the hyperlink is
represented in HTML as the anchor element
with
the attribute href
. The HTML in Tika preserves this
metadata:
library('xml2')
# get XHTML text
<-
html %>%
batch tika_html() %>%
lapply(xml2::read_html)
# parse links from documents
<-
links %>%
html lapply(xml2::xml_find_all, '//a') %>%
lapply(xml2::xml_attr, 'href')
sample(links[[1]],10)
#> [1] "https://arxiv.org/abs/1403.2805"
#> [2] "https://arxiv.org/abs/1403.2805"
#> [3] "http://jsonlines.org/"
#> [4] "http://github.com/jeroen/jsonlite/issues"
#> [5] "http://ndjson.org"
#> [6] "https://arxiv.org/abs/1403.2805"
#> [7] "http://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--query"
#> [8] "http://en.wikipedia.org/wiki/Singleton_(mathematics)"
#> [9] "https://www.opencpu.org/posts/jsonlite-a-smarter-json-encoder"
#> [10] "http://ndjson.org"
Each type of file has different information preserved by Tika’s internal parsers. The particular aspects vary. Some notes:

.
with the attribute href
.

element. The rvest
package has a
function to get tables of data with
rvest::html_table()
.Note that tika_html()
and tika_xml()
both
produce the same strict form of HTML called XHTML, and either works
essentially the same for all the documents I’ve tried.
The tika_html()
and tika_xml()
functions
are focused on extracting strict, structured HTML as XHTML. In addition,
metadata can be accessed in the meta
tags of the XHTML.
Common metadata fields include Content-Type
,
Content-Length
, Creation-Date
, and
Content-Encoding
.
# Content-Type
%>%
html lapply(xml2::xml_find_first, '//meta[@name="Content-Type"]') %>%
lapply(xml2::xml_attr, 'content') %>%
unlist()
#> [1] "application/pdf"
#> [2] "application/pdf"
#> [3] "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
#> [4] "application/pdf"
#> [5] "text/html; charset=UTF-8"
#> [6] "image/jpeg"
#> [7] "application/zip"
# Creation-Date
%>%
html lapply(xml2::xml_find_first, '//meta[@name="Creation-Date"]') %>%
lapply(xml2::xml_attr, 'content') %>%
unlist()
#> [1] NA NA NA NA NA NA NA
Metadata can also accessed with tika_json()
and
tika_json_text()
.  For example, photos sometimes store latitude and longitude:
6]]$'geo:lat'
metadata[[#> [1] "34.072006"
6]]$'geo:long'
metadata[[#> [1] "-118.449578"
Some types of documents can have multiple objects within them. For
example, a .gzip
file may contain many other files. The
tika_json()
and tika_json_text()
functions
have a special ability that others do not. They will recurse into a
container and examine each file within. The Tika authors call the format
jsonRecursive
for this reason.
In the following example, I created a compressed archive of the
Apache Tika homepage, using the command line programs wget
and zip
. The small archive includes the HTML page, its
images, and required files.
# wget gets a webpage and other files.
# sys::exec_wait('wget', c('--page-requisites', 'https://tika.apache.org/'))
# Put it all into a .zip file
# sys::exec_wait('zip', c('-r', 'tika.apache.org.zip' ,'tika.apache.org'))
<- system.file("extdata", "tika.apache.org.zip", package = "rtika")
batch
# a list of data.frames
<-
metadata %>%
batch tika_json() %>%
lapply(jsonlite::fromJSON)
# The structure is very long. See it on your own with: str(metadata)
Here are some of the main metadata fields of the recursive
json
output:
# the 'X-TIKA:embedded_resource_path' field
<-
embedded_resource_path %>%
metadata lapply(function(x){ x$'X-TIKA:embedded_resource_path' })
embedded_resource_path#> [[1]]
#> [1] NA "/index.html" "/site.css"
#> [4] "/external.png" "/icon_info_sml.gif" "/icon_warning_sml.gif"
#> [7] "/icon_error_sml.gif" "/icon_success_sml.gif" "/tika.png"
#> [10] "/mattmann_cover150.jpg" "/asf-logo.gif"
The X-TIKA:embedded_resource_path
field tells you where
in the document hierarchy each object resides. The first item in the
character vector is the root, which is the container itself. The other
items are embedded one layer down, as indicated by the forward slash
/
. In the context of the
X-TIKA:embedded_resource_path
field, paths are not
literally directory paths like in a file system. In reality, the image
icon_info_sml.gif
is within a folder called
images
. Rather, the number of forward slashes indicates the
level of recursion within the document. One slash /
reveals
a first set of embedded documents. Additional slashes /
indicate that the parser has recursed into an embedded document within
an embedded document.
<-
content_type %>%
metadata lapply(function(x){ x$'Content-Type' })
content_type#> [[1]]
#> [1] "application/zip"
#> [2] "application/xhtml+xml; charset=UTF-8"
#> [3] "text/css; charset=ISO-8859-1"
#> [4] "image/png"
#> [5] "image/gif"
#> [6] "image/gif"
#> [7] "image/gif"
#> [8] "image/gif"
#> [9] "image/png"
#> [10] "image/jpeg"
#> [11] "image/gif"
The Content-Type
metadata reveals the first item is the
container and has the type application/zip
. The items after
that are deeper and include web formats such as
application/xhtml+xml
, image/png
, and
text/css
.
<-
content %>%
metadata lapply(function(x){ x$'X-TIKA:content' })
str(content)
#> List of 1
#> $ : chr [1:11] "\n\n<meta name=\"X-TIKA:Parsed-By\" content=\"org.apache.tik"| __truncated__ "\n\n<link rel=\"icon\" type=\"image/png\" href=\"./tikaNoTex"| __truncated__ "\n\n<meta name=\"embeddedRelationshipId\" content=\"tika.apa"| __truncated__ "\n\n<meta name=\"Transparency Alpha\" content=\"nonpremultip"| __truncated__ ...
The X-TIKA:content
field includes the XHTML rendition of
an object. It is possible to extract plain text in the
X-TIKA:content
field by calling
tika_json_text()
instead. That is the only difference
between tika_json()
and tika_json_text()
.
It may be surprising to learn that Word documents are containers (at
least the modern .docx
variety are). By parsing them with
tika_json()
or tika_json_text()
, the various
images and embedded objects can be analyzed. However, there is an added
complexity, because each document may produce a long vector of
Content-Types
for each embedded file, instead of a single
Content-Type
for the container like tika_xml()
and tika_html()
.
Out of the box, rtika
uses all the available Tika
Detectors and Parsers and runs with sensible defaults. For most, this
will work well.
In future versions, Tika uses a configuration file to customize
parsing. This config file option is on hold in rtika
,
because Tika’s batch module is still new and the config file format will
likely change and be backward incompatible. Please stay tuned.
There is also room for improvement with the document formats common
in the R community, especially Latex and Markdown. Tika currently reads
and writes these formats just fine, captures metadata and recognizes the
MIME type when downloading with tika_fetch()
. However, Tika
does not have parsers to fully understand the Latex or Markdown document
structure, render it to XHTML, and extract the plain text while ignoring
markup. For these cases, Pandoc will be more useful (See: https://pandoc.org/demos.html ).
You may find these resources useful: