The core concept behind the different LRP rules is the conservation property of relevance scores. By relevance score, we are referring to a measurement of how influential a particular input or a part of that input is to the output, which, in our case, is the Higgs likelihood prediction. We will define this properly later in this page.
The conservation property for LRP is very much similar to the conservation law in physics. The wikipedia page of the latter states:
A particular measurable property of an isolated physical system does not change as the system evolves over time.
The conservation of relevance is very much the same: each layer of the model can be considered a closed system at different points in time. So, as relevance score propagates through a layer, the total amount of it stays the same.
In our Higgs boson interaction network (HIN), things can get a bit more complicated. Other models have a more straightforward layer by layer architecture like in the plot above, whereas the HIN re-propagates certain layers, particularly the input and the input source node transformation, reapplying those values in multiple instances across the block layers. In simple terms, HIN reuses the input multiple times, and we have to adjust our LRP accordingly.
Remember the water and river analogy we made earlier? Like the flow of water in a river: the total amount of relevance score is conserved as it flows through the forks. Just like all the forks of the river eventually reaches the sea, the relevance scores propagates through the diverging paths, all reaching the input at the end from multiple points. Since the total amount of relevance score always stays constant, we could add up the relevance score attributed to a given layer and expect the same approximate value.
Now that we have an idea of how LRP propagates relevance scores through each layer, we can take a closer look at what happens within each layer.
Within the layers, the same idea still applies, in a way similar to the relevance score propagating through the connections of consecutive layers. For neuron i in layer j, it inherits a fraction of the relevance score from all neurons that it connects to in the consecutive layer k. The amount of relevance score neuron i obtains is decided by how much it has contributed to to those neurons that it connects to in layer k.
So how do we quantify neuron i’s contribution? It’s time to formally define what is the relevance score that we’ve been talking about.
Recall that we said the relevance score is meant to measure how much a particular part of the input has contributed to the output. So a natural way of quantifying it would be measuring how much change a particular input or a part of that input has induced on the output.
Consider the linear function below (some might recognize that this is in fact the definition of a linear layer in PyTorch):
Here x, y, and b are vectors, and W is a matrix.
Calculus tells us that the gradient of a function represents the rate of change per unit input. Since instead of unit input, we are more interested in the amount of change brought by a certain input, we actually take the product of the gradient and that input:
Naturally, the fraction of contribution for the u'th entry of input x would be the amount of change by this entry over the total change:
Now that we have the fraction of contribution, we can substitute it back into the equation to get the basic distribution rule of LRP, known as the LRP-0 rule.
In our project, we used a slightly more complicated distribution rule, the LRP-ε rule, for a better performance. The details of that are articulated in the main page.
In the 3D network plots, we defined a new variable "edge significance" in order to measure how important each edge is to the prediction. This can be considered a variant of the relevance score.
The edges formed in the jet graphs are meant for the model to learn how each particle might have interacted with each other. They are not an actual part of the input but rather pathways that allow information to flow between the nodes. So if we consider each graph as a city and the edges are the roads that connect to each other, then intuitively the importance of each edge is decided by how busy it is, or the traffic passing through of it.
Following this idea, we defined the measurement edge significance to measure the importance of the edge by the amount of information, or contribution, flowing through it in the decision making process.
For an edge connecting from track ti to track tj, let's call it eij. Since each edge is defined by their source and destination nodes, the edge relevance of this edge is given by its source node and destination node, that is, it has 48 source node features and 48 destination node features.
The edge significance Sij is a positive scalar value, given by the frobenius norm of the edge relevance score normalized with respect to all the edges in the graph. This is why those edge significance values in the chart do not have a negative denotation or threshold.


DRAW_IMAGE_ELEMENT
DRAW_CANVAS_ELEMENT
DRAW_CANVAS_IMAGE_DATA
DRAW_COUNT 10
DRAW_COUNT 100
DRAW_COUNT 500
DRAW_COUNT 1000
DRAW_COUNT 5000
DRAW_COUNT 10000
FPS
Log


Welcome to your Belgium Vacation
Schedule your next visit with us.
Premium Package
Cost: $10,000
Time: 2 Weeks
Activities Included:
- First-Class flight
- 5 Star Hotel Accomodations at your choice of city
- 24/7 Chauffeur service to anywhere
- Unlimited Food and Drink and Free Restaurant Accomodations
Moderate Package
Cost: $7,500
Time: 1.5 Weeks
Activities Included:
- Business-class flight
- 5 Star Hotel Accomodations at your choice of city
- Select free food and drink + free reservations at select restaurants
Basic Package
Cost: $5,000
Time: 1 Weeks
Activities Included:
- Economy-class flight
- 4 Star Hotel Accomodations at your choice of city
"This place has fantastic architecture!"
-BobTheBuilder
"If you like beer, Belgium is for you!"
-drunkBob787


 Its arguments are the OSSL_CMP_SRV_CTX srv_ctx and the CMP request message req. It does the typical generic checks on req, calls the respective callback function (if present) for more specific processing, and then assembles a result message, which may be a CMP error message. If after return of the function the expression OSSL_CMP_CTX_get_status(OSSL_CMP_SRV_CTX_get0_cmp_ctx(srv_ctx)) yields -1 then the function has closed the current transaction, which may be due to normal successful end of the transaction or due to an error.
OSSL_CMP_CTX_server_perform() is an interface to OSSL_CMP_SRV_process_request() that can be used by a CMP client in the same way as OSSL_CMP_MSG_http_perform(3). The OSSL_CMP_SRV_CTX must be set as transfer_cb_arg of client_ctx.
OSSL_CMP_SRV_CTX_new() creates and initializes an OSSL_CMP_SRV_CTX structure associated with the library context libctx and property query string propq, both of which may be NULL to select the defaults.
OSSL_CMP_SRV_CTX_free() deletes the given srv_ctx.
OSSL_CMP_SRV_CTX_init() sets in the given srv_ctx a custom server context pointer as well as callback functions performing the specific processing of CMP certificate requests, revocation requests, certificate confirmation requests, general messages, error messages, and poll requests. All arguments except srv_ctx may be NULL. If a callback for some message type is not given this means that the respective type of CMP message is not supported by the server.
OSSL_CMP_SRV_CTX_get0_cmp_ctx() returns the OSSL_CMP_CTX from the srv_ctx.
OSSL_CMP_SRV_CTX_get0_custom_ctx() returns the custom server context from srv_ctx that has been set using OSSL_CMP_SRV_CTX_init().
OSSL_CMP_SRV_CTX_set_send_unprotected_errors() enables sending error messages and other forms of negative responses unprotected.
OSSL_CMP_SRV_CTX_set_accept_unprotected() enables acceptance of requests without protection of with invalid protection.
OSSL_CMP_SRV_CTX_set_accept_raverified() enables acceptance of ir/cr/kur messages with POPO 'RAVerified'.
OSSL_CMP_SRV_CTX_set_grant_implicit_confirm() enables granting implicit confirmation of newly enrolled certificates if requested.
CMP is defined in RFC 4210 (and CRMF in RFC 4211).
So far the CMP server implementation is limited to one request per CMP message (and consequently to at most one response component per CMP message).
OSSL_CMP_SRV_CTX_new() returns a OSSL_CMP_SRV_CTX structure on success, NULL on error.
OSSL_CMP_SRV_CTX_free() does not return a value.
OSSL_CMP_SRV_CTX_get0_cmp_ctx() returns a OSSL_CMP_CTX structure on success, NULL on error.
OSSL_CMP_SRV_CTX_get0_custom_ctx() returns the custom server context that has been set using OSSL_CMP_SRV_CTX_init().
All other functions return 1 on success, 0 on error.
The OpenSSL CMP support was added in OpenSSL 3.0.
Copyright 2007-2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at https://www.openssl.org/source/license.html.


--- layout: post title: 'Delightful interface: \"Buddy Bugs is' date: 2004-12-23 00:00:00 ---
Delightful interface: "Buddy Bugs is an ambient peripheral physical interface that represents Windows® Instant Messenger contact list, where people are represented by glass bugs on a leaf..."


Name: {{search.name}} Repositories: {{search.public_repos}} Followers: {{search.followers}} Following: {{search.following}} Link to the github page
Name: {{search.name}}
Repositories: {{search.public_repos}}
Followers: {{search.followers}}
Following: {{search.following}}


rotten
>
Library
> History
Metric System
Y2K
Torture
Mountain Meadows Massacre
Nature
Invasive Species
Nutria
Cane Toads
Kudzu
Natural Disasters
Singularity
Mass Extinction
Supervolcanoes
Tunguska
Krakatoa
U.S.S. Maine
Genocide
Armenian Genocide
School of the Americas
Political Scandal
Iran-Contra
Lewinsky Affair
Starr Report
8endpage.htm
7grounds.htm
6narrit.htm
5intro.htm
4names2.htm
3chron.htm
2toc.htm
Watergate
Espionage
ODESSA
Mossad
U.S.S. Liberty Incident
Glomar Explorer
U.S.S. Pueblo Incident
Black Hole of Calcutta
Terrorist Organizations
Egyptian Islamic Jihad
Lashkar-e-Jhangvi
Al Takfir Wal Hijra
Ansar al-Islam
University of Dawa al-Jihad
Hamas
Hezbollah
Jemaah Islamiah
Benevolence International Foundation
Bader-Meinhof
al Qaeda
Index by Country
Belgium
Singapore
Sweden
South Africa
Canada
Afghanistan
Jamaica
Australia
Hungary
Indonesia
Nicaragua
South Korea
Uganda
Nigeria
Brazil
Chile
Sealand
Saudi Arabia
Philippines
Pakistan
Kuwait
Turkey
Iran
Iraq
Thailand
Argentina
Cuba
North Korea
Israel
Britain
Mexico
Italy
Spain
India
United States
Germany
France
China
Japan
Russia
Soviet Union
Great Plague
War
Military Draft
False Pretexts of War
Philippine-American War
Spanish-American War
Spanish Civil War
Weapons of Mass Destruction
Chemical Weapons
Nerve Agents
Mustard Gas
Iraqi WMDs
Fuel Air Explosion
Biological Weapons
World War I
Vietnam War
Gulf War
World War II
Unamerican Activities
McCarthy Hearings Part 1
War Crimes
Geneva Conventions
Protection of Victims of War
Treatment of Civilians
Prisoners of War
Treatment of War Wounded
My Lai Massacre
Holocaust
Auschwitz
Wannsee Conference
Rape of Nanking
Nuclear Incidents
USS Scorpion
Karen Silkwood
Chernobyl
Atomic Bomb
Flu Pandemic of 1918
Paris Commune
Racism
Elohim City
Race Riots
Ku Klux Klan
Holocaust Denial
Japanese Internment
Anti-Semitism
Dreyfus Affair
Third Reich
Nazi Gold
Gestapo
Nuremberg Trials
Superweapons
Gay Third Reich
Executed Nazis
Fuhrerbunker
Hitler's Death
Lidice
Assassination
Witch Trials
Inquisition
Gunpowder Plot
Transcript of Guy Fawkes trial
World Trade Center
Port Chicago Disaster
Pornopolis
|
Rotten
|
Faces of Death
|
Famous Nudes


Is that the kind of woman you like?” Aviendha said contemptuously.
Rand looked down at her, striding along at Jeade’en’s stirrup in her heavy skirts, brown shawl doubled over her head. Big blue-green eyes flashed up at him from beneath her wide headscarf as if she wished she still had the spear the Wise Ones had scolded her for taking up during the Trolloc attack.
Sometimes it made him uncomfortable, her walking while he rode, but he had tried walking with her, and his feet were grateful for a horse. Occasionally—very occasionally—he had managed to get her to ride behind his saddle, by complaining that he was getting a crick in his neck talking to her.  One laugh from any of the Aiel, especially a Maiden, even one looking the other way, was enough to have her off Jeade’en in a flash.
“She is soft, Rand al’Thor. Weak.”
He glanced back over at the boxlike white wagon leading the peddlers’ train in a crooked, lurching snake across the dusty, broken landscape, escorted by Jindo Maidens again today. Isendre was up with Kadere and the driver, seated on the heavyset peddler’s lap, her chin on his shoulder while he held a small, blue silk parasol to shade her—and himself, too—from the harsh sun.  Rand was not close enough to be sure, but he thought her dark eyes were on him above the misty scarf wrapped about her face and head. She usually seemed to be watching him. Kadere did not appear to mind.
“I do not think Isendre is soft,” he said quietly, adjusting the shoufa around his head; it did keep the broiling sun off after a fashion. He had resisted donning any more Aiel garb, no matter how much more suited to the climate than his red wool coat. Whatever his blood, whatever the marks on his forearms, he was not Aiel, and he would not pretend. Whatever he had to do, he could hang on to that scrap of decency. “No, I would not say that.”
On the driver’s seat of the second wagon, fat Keille and the gleeman, Natael, were arguing again. Natael had the reins, though he did not drive as well as the man who usually did the job. Sometimes they looked at Rand, too, quick glances before diving back into their quarrel. But then, everyone did. The long column of Jindo on the other side of him, the Wise Ones beyond them, with Moiraine and Egwene and Lan. Among the more distant, thicker line of Shaido he thought heads turned toward him, too. It did not surprise him now any more than it ever had. He was He Who Comes With the Dawn. Everyone wanted to know what he would do. They would find out soon enough.
“Soft,” Aviendha grunted. “Elayne is not soft. You belong to Elayne; you should not be caressing eyes with this milk-skinned wench.”  She could not accept them. Why should I care if she can? I want no part of this! It cannot be! If I could, I would take you gai’shain and give you to Elayne!”
“Why should Isendre accept Aiel ways?”
The wide-eyed look she gave him was so startled he almost laughed. Immediately she scowled as if he had done something infuriating. Aiel women were surely no easier to understand than any others.
“You are certainly not soft, Aviendha.” She should take it for a compliment; the woman was as rough as a honing stone sometimes. “Explain to me about the roofmistress again. If Rhuarc is clan chief of the Taardad and chief of Cold Rocks Hold, how is it that the hold belongs to his wife and not him?”
She glowered at him a moment longer, lips working as she muttered under her breath, before answering. “Because she is roofmistress, you stone-headed wetlander. A man cannot own a roof any more than he can own land! Sometimes you wetlanders sound like savages.”
“But if Lian is roofmistress of Cold Rocks because she is Rhuarc’s wife—”
“That is different! Will you never understand? A child understands!” Taking a deep breath, she adjusted the shawl around her face. She was a pretty woman, except for looking at him most of the time as if he had committed some crime against her. What it might be, he did not know. White-haired Bair, leathery-faced and as reluctant to speak of Rhuidean as ever, had finally, unwillingly told him that Aviendha had not visited the glass columns: she would not do that until she was ready to become a Wise One. So why did she hate him? It was a mystery he would have liked an answer to.
“I will attack it from another direction,” she grumbled at him. “When a woman is to marry, if she does not already own a roof, her family builds one for her. On her wedding day her new husband carries her away from her family across his shoulder, with his brothers holding off her sisters, but at the door he puts her down and asks her permission to enter. The roof is hers. She can . . . ”
These lectures had been the most pleasant thing in the eleven days and nights since the Trolloc attack. Not that she had been willing to talk at first, beyond one more tirade on his supposed ill-treatment of Elayne and later another embarrassing lecture meant to convince him Elayne was the perfect woman. Not until he mentioned to Egwene in passing that if Aviendha would not even speak to him, he wished she would at least stop staring at him. Within the hour a white-robed gai’shain man came for Aviendha.
Whatever the Wise Ones had to say to her, she returned in a quivering fury to demand—demand!—that he let her teach him about Aiel ways and customs. No doubt in hope he would reveal something of his plans by the questions he asked. After the viperish subtleties of Tear, the openness of the Wise Ones’ spying was refreshing. Still, it was doubtless wise to learn what he could, and talking with Aviendha could actually be enjoyable, especially on those occasions when she seemed to forget she despised him for whatever reason. Of course, whenever she realized they had begun to talk like two people instead of captor and captive, she did have a tendency to throw one of her white-hot outbursts, as though he had lured her into a trap.
Yet even with that their conversations were pleasurable, certainly by comparison with the rest of the journey. He was even beginning to find her tantrums amusing, though he was wise enough not to let her know. If she saw a man she hated, at least she was too wrapped up in that to see He Who Comes With the Dawn, or the Dragon Reborn. Just Rand al’Thor. At any rate, she knew what she thought of him. Not like Elayne, with one letter that made his ears grow hot and another written the same day that made him wonder if he had grown fangs and horns like a Trolloc.
Min was just about the only woman he had ever met who had not tangled his wits into a ball. But she was off in the Tower—safe there, at least—and that was one place he meant to avoid. Sometimes he thought life would be simpler if he could just forget women altogether. Now Aviendha had started creeping into his dreams, as if Min and Elayne were not bad enough. Women tied his emotions in knots, and he had to be clearheaded now. Clearheaded and cold.
He realized he was looking at Isendre again. She wriggled slender fingers at him past Kadere’s ear; he was sure those full lips curved into a smile. Oh, yes. Dangerous. I have to be cold and hard as steel. Sharp steel.
Eleven days and nights into the twelfth, and nothing else had changed. Days and nights of odd rock formations and flat-topped stone spires and buttes thrusting up from a broken, blistered land crisscrossed by mountains seemingly stuck in at random. Days of baking sun and searing winds, nights of bone-shaking cold. Whatever grew seemed to have thorns or spines, or else a touch itched like fury. Some Aviendha said were poisonous; that list seemed longer than the one of those edible. The only water was in hidden springs and tanks, though she pointed out plants that meant a deep hole would fill with slow seepage, enough to keep one or two men alive, and others that could be chewed for a sour, watery pulp.
One night lions killed two of the Shaido packhorses, roaring in the darkness as they were driven from their prey to vanish into the gullies. A wagon driver disturbed a small brown snake as they were making camp the fourth evening. A two-step, Aviendha called it later, and it proved its name. The fellow screamed and tried to run for the wagons despite seeing Moiraine hurrying toward him; he fell on his face at his second stride, dead before the Aes Sedai could dismount from her white mare. Aviendha listed venomous snakes, spiders and lizards. Poisonous lizards! Once she found one for him, two feet long and thick, with yellow stripes running down its bronze scales. Casually pinning it under a soft-booted foot, she drove her knife into the thing’s wide head, then held it up where he could see the clear, oily fluid oozing over sharp bony ridges in its mouth. A gara, she explained, could bite through a boot; it could also kill a bull. Others were worse, of course.  When she flung the huge lizard off of her blade, the yellow and bronze faded right into the cracked clay. Oh, yes.
Moiraine divided her time between the Wise Ones and Rand, usually attempting, in that Aes Sedai way, to bully him into revealing his plans. “The Wheel weaves as the Wheel wills,” she had told him just that morning, voice coolly calm, ageless face serene, but dark eyes hot as she stared at him over Aviendha’s head, “but a fool can strangle himself in the Pattern. Have a care you do not weave a noose for your neck.” She had acquired a pale cloak, almost gai’shain white, that shimmered in the sun and beneath the wide hood she wore a damp, snowy scarf folded around her forehead.
“I make no nooses for my neck.” He laughed, and she wheeled Aldieb so quickly the mare nearly knocked Aviendha down, galloping back to the Wise Ones’ party, cloak streaming behind her.
  Stupid? There were some risks you had to take. “We will just have to see.”
Egwene rarely left the Wise Ones, walking with them as often as she rode Mist, sometimes taking one of them up behind her on the gray mare for a time. He had finally figured out that she was passing for full Aes Sedai again. Amys and Bair, Seana and Melaine, seemed to accept it as readily as the Tairens had, though not at all in the same way. At times one or another of them argued with her so loudly he could almost make out what they were shouting more than a hundred paces away. It was almost the manner they used with Aviendha, though her they seemed to bully rather than argue with, but then, sometimes they held what appeared to be rather heated discussions with Moiraine, too. Especially sun-haired Melaine.
The tenth morning Egwene had finally stopped wearing her hair in those two braids, though it was the oddest thing. The Wise Ones talked to her for the longest time, off by themselves, while the gai’shain were folding their tents and Rand was saddling Jeade’en. Had he not known her better, he might have thought Egwene’s head-down stance was an attempt at meekness, but that word could only be applied to her in comparison with Nynaeve. And maybe Moiraine. Suddenly Egwene clapped, her hands, laughing and hugging each of the Wise Ones in turn before hurriedly unraveling the plaits.
When he asked Aviendha what was going on—she had been sitting outside his tent when he woke—she muttered sourly, “They have decided she has grown—” Cutting off abruptly, she gave him a level look, folding her arms, and went on in a cool voice, “It is Wise Ones’ business, Rand al’Thor. Ask them, if you wish, but be prepared to hear that it is no concern of yours.”
Egwene had grown what? Her hair? It made no sense. Aviendha would not say another word on the matter; instead she scraped a bit of grayish lichen from a rock and began describing how to poultice a wound with it. The woman was learning a Wise One’s ways too quickly to suit him. The Wise Ones themselves paid him little apparent attention; of course, they did not need to, with Aviendha perched on his shoulder in a manner of speaking.
The rest of the Aiel, the Jindo at any rate, became a bit less standoffish each day, perhaps a little less uneasy about what He Who Comes With the Dawn meant for them, but Aviendha was the only one who spoke to him at any length. Each evening Lan came to practice the sword, and Rhuarc to teach him the spears and the Aiel’s odd way of fighting with both hands and feet. The Warder knew something of that, and joined the practice sessions. Most others avoided Rand, especially the wagon drivers, who had learned he was the Dragon Reborn, a man who could channel; when he caught one of those rough-faced men looking at him, the fellow might as well have been staring at the Dark One. Not Kadere, though, or the gleeman.
Almost every morning as they started out, the peddler rode over on one of the mules from the wagons the Trollocs had burned, his face seeming even darker for the long white scarf tied about his head and hanging down his neck. With Rand he was all diffidence, but his cold, unchanging eyes made his hooked nose look an eagle’s beak in truth.
“My Lord Dragon,” he had begun the morning after the attack, then wiped sweat from his face with his ever-present handkerchief and shifted uncomfortably on the battered old saddle he had found somewhere for the mule. “If I may call you that?”
The charred wreckage of the three wagons was dwindling in the distance to the south, and with them the graves of two of Kadere’s men and a good many more Aiel. The Trollocs had been dragged from the camps and left for the scavengers, yipping, big-eared creatures—Rand did not know whether they were large foxes or small dogs; they looked like bits of each—and vultures with red-tipped wings, some still circling in the sky as if fearful of landing in the melee among their fellows.
“Call me as you will,” Rand told him.
“My Lord Dragon. I have been thinking of what you said yesterday.” Kadere looked around as if he feared being overheard, though Aviendha was with the Wise Ones, and his own train of wagons, fifty paces or more away, held the nearest ears. He dropped his voice near a whisper anyway, and wiped his face nervously. His eyes never altered, though. “What you said about knowledge being valuable, paving the way to greatness. It is true.”
Rand looked at him for a long moment, not blinking, keeping his face blank. “You said that, not I,” he said finally.
“Well, perhaps I did. But it is true, is it not, my Lord Dragon?” Rand nodded, and the peddler went on, still whispering, eyes still shifting for eavesdroppers. “Yet there can be danger in knowledge. In giving more than receiving. A man who sells knowledge must have not only his price, but safeguards. Assurances and sureties against . . . repercussions. Would you not agree?”
“Do you have knowledge you want to . . . sell, Kadere?”
The heavyset man frowned at his train. Keille had dropped down to walk awhile despite the growing heat, her bulk sheathed in white and a white lace shawl on the ivory combs in her coarse dark hair. Every so often she glanced at the two men riding together, her expression unreadable at this distance. It still seemed odd, someone so large moving so lightly. Isendre had climbed out onto the driver’s seat of the first wagon and was watching more openly, hanging on to lean around the corner of the white-painted wagon as it swayed and lurched.
“That woman may be the death of me yet,” Kadere muttered. “Perhaps we can talk again later, my Lord Dragon, if it please you.” Booting the mule hard, he trotted to the lead wagon and swung himself onto the driver’s seat with surprising nimbleness, tying the mule’s reins to an iron ring at the corner of the big wagonbox. He and Isendre disappeared inside and did not emerge again until they stopped for the night.
He returned the next day, and other days when he saw that Rand was alone, always hinting at knowledge he might sell for the proper price, if the proper safeguards were set. Once he went so far as to say that anything—murder, treason, anything at all—could be forgiven in return for knowledge, and seemed increasingly nervous when Rand would not agree with him. Whatever he wanted to sell, he apparently wanted Rand’s blanket protection for every misdeed he might ever have done.
“I don’t know that I want to buy knowledge,” Rand told him more than once. “There’s always the question of price, isn’t there? Some prices I might not want to pay.”
Natael drew Rand aside that first evening, after the fires were lit and cooking smells began to drift among the low tents. The gleeman seemed almost as nervous as Kadere. “I have thought a good deal about you,” he said, peering at Rand sideways, head tilted to one side. “You should have a grand epic to tell your tale. The Dragon Reborn. He Who Comes With the Dawn. Man of who knows how many prophecies, in this Age and others.” He drew his cloak around him, the colorful patches fluttering in the breeze. Twilight was short in the Waste; night and cold came on quickly and together. “How do you feel about your prophesied destiny? I must know, if I am to compose this epic.”
“Feel?” Rand looked around the camp, at the Jindo moving among the tents. How many of them would be dead before he was done? “Tired. I feel tired.”
“Hardly a heroic emotion,” Natael murmured. “But to be expected, given your destiny.  I am a simple gleeman.” The man lifted an edge of his patch-covered cloak as if for proof. “I would not take your place for all the world, not with the fate that accompanies it. Death or madness, or both. ‘His blood on the rocks of Shayol Ghul . . . ’ That is what The Karaethon Cycle, the Prophecies of the Dragon, says, is it not?  No, I would not accept that for all your power and more.”
“Rand,” Egwene said, stepping out of the deepening darkness with her pale cloak wrapped around her, the hood well up, “we have come to see how you have held up after your Healing, and a day in that heat.” Moiraine was with her, face shrouded in the deep cowl of her white cloak, and Bair and Amys, Melaine and Seana, heads swathed in dark shawls, all watching him, calm and cold as the night. Even Egwene. She did not have the Aes Sedai agelessness yet, but she had Aes Sedai eyes.
He did not notice Aviendha at first, trailing behind the others. For a moment he thought he saw compassion on her face, but if it was there, it vanished as soon as she saw him looking. Imagination. He was tired.
“Another time,” Natael said, speaking to Rand but looking at the women in that peculiar sidelong manner. “We will talk another time.” With the slightest of bows he strode away.
“Does the future chafe you, Rand?” Moiraine said quietly when the gleeman was gone. “Prophecies speak in flowery, hidden language. They do not always mean what they seem to say.”
“The Wheel weaves as the Wheel wills,” he told her. “I will do what I must. Remember that, Moiraine. I will do what I must.” She seemed satisfied; with Aes Sedai, it was hard to tell. She would not be satisfied when she learned everything.
Natael returned the next evening, and the next, and the next, always talking about the epic he would compose, but he displayed a morbid streak, digging for how Rand meant to face madness and death. His tale was meant to be a tragedy, it appeared. Rand certainly had no desire to root his fears out into the open; what was in his heart and head could remain buried there. Finally the gleeman seemed to tire of hearing him say “I will do what I must,” and stopped coming. It seemed that he did not want to compose his epic unless it could be full of pained emotion. The man looked frustrated when he stalked off for the last time, cloak fluttering furiously behind him.
The fellow was odd, but going by Thom Merrilin, so were all gleemen. Natael certainly demonstrated other gleeman’s traits. For instance, he certainly had a fine opinion of himself. Rand did not care whether the man called him by titles, but Natael addressed Rhuarc, and Moiraine, the few times he was around her, as if he was plainly their equal. That was Thom to perfection. And he gave up performing for the Jindo at all, beginning to spend most of every night at the Shaido camp. There were more of the Shaido, he explained to Rhuarc as if it were the most obvious thing in the world. A larger audience. None of the Jindo liked it, but there was nothing even Rhuarc could do. In the Three-fold Land, a gleeman was allowed anything short of murder without being called down for it.
Aviendha spent her nights among the Wise Ones, and sometimes walked with them for an hour or so during the day, all of them gathered around her, even Moiraine and Egwene. At first Rand thought they must be advising her on how to handle him, how to pull what they wanted to know out of his head. Then one day, with the sun molten overhead, a ball of fire as big as a horse suddenly burst into being ahead of the Wise Ones’ party and went spinning and tumbling away, blazing a furrow across the sere land, until it finally dwindled and winked out.
Some of the wagon drivers pulled their startled, snorting teams to a halt and stood to watch, calling to each other in a blend of fear, confusion and coarse curses. Murmurs rippled through the Jindo, and they stared, as did the Shaido, but the two columns of Aiel kept moving with barely a pause. It was among the Wise Ones that real excitement was evident. The four of them clustered around Aviendha, all apparently talking at once, with considerable arm-waving. Moiraine and Egwene, leading their horses, tried to get in a word; even without hearing, Rand knew that Amys told them in no uncertain terms, shaking a furiously admonishing finger, to stay out of it.
Staring at the blackened gouge stretching arrow-straight for half a mile, Rand sat back down in his saddle. Teaching Aviendha to channel. Of course. That was what they were doing. He scrubbed sweat from his forehead with the back of his hand; the sun had nothing to do with it. When that fireball leaped out into existence, he had instinctively reached for the True Source. It had been like trying to dip water with a torn sieve. All his clawing at saidin might as well have been clawing at air. One day that could happen when he needed the Power desperately. He had to learn, too, and he had no teacher. He had to learn not just because the Power would kill him before he had to worry about going mad if he did not; he had to learn because he had to use it. Learn to use it; use it to learn. He began laughing so hard that some of the Jindo looked at him uneasily.
He would have enjoyed Mat’s company any time during those eleven days and nights, but Mat never came near for more than a minute or two, the broad brim of his flat-crowned hat pulled down to shade his eyes, the black-hafted spear lying across the pommel of Pips’s saddle, with its odd raven-marked, Power-wrought point, like a short, curving sword blade.
“If your face darkens from the sun any more, you will turn into an Aielman,” he might say, laughing or, “Do you mean to spend the rest of your life here? There’s a whole world the other side of the Dragonwall. Wine? Women? You remember these things?”
But Mat looked plainly uneasy, and he was even more reluctant than the Wise Ones to speak of Rhuidean, or what had happened to them there. His hand tightened on that black haft at the very mention of the fog-domed city, and he claimed not to remember anything of his journey through the ter’angreal—then proceeded to contradict himself by saying, “You stay out of that thing, Rand. It isn’t like the one in the Stone at all. They cheat. Burn me, I wish I’d never seen it!”

That was where Mat spent most of his time, dicing with the drivers—until they realized he won a very great deal more often than he lost, no matter whose dice he used—engaging Kadere or Natael in long talks at every opportunity, pursuing Isendre. It was clear what was on his mind from the first time he grinned at her and straightened his hat, the morning after the Trolloc attack. He spoke to her nearly every evening for as long as he could, and pricked himself so badly plucking white blossoms from a spiky-thorned bush that he could barely handle his reins for two days, though he refused to allow Moiraine to Heal him. Isendre did not precisely encourage him, but her slow, sultry smile was hardly calculated to drive him away, either.  Others did comment.
Late one afternoon as the mules were being unhitched and the tents going up, and Rand was unsaddling Jeade’en, Mat was standing with Isendre in the meager shade of one of the canvas-topped wagons. Standing very close. Shaking his head, Rand watched as he wiped the dapple down. The sun burned low on the horizon, and tall spires stretched long shadows across the camp.
Isendre fiddled with her diaphanous scarf as if idly thinking of removing it, smiling, full lips half pouting, ready for a kiss. Encouraged, Mat grinned confidently and moved closer still.  Neither of them heard Keille approach, so light on her feet despite her size.
“Is that what you want, good sir? Her?” The pair jumped apart at the sound of her mellifluous voice, and she laughed just as musically, just as oddly out of that face. “A bargain for you, Matrim Cauthon. A Tar Valon mark, and she is yours. A chit like that cannot be worth more than two, so it is a clear bargain.”
Mat grimaced, looking as though he wished he were anywhere else but there.
Isendre, however, turned slowly to face Keille, a mountain cat facing a bear. “You go too far, old woman,” she said softly, eyes hard above the veiling scarf. “I will put up with your tongue no longer. Have a care. Or perhaps you would like to remain here in the Waste.”
 “Would you?”
Nodding decisively, Isendre said, “A Tar Valon mark.” Her voice was iron. “I will see you have a Tar Valon mark when we leave you. I only wish I could see you trying to drink it.” Turning her back, she strode to the lead wagon, not swaying seductively at all, and vanished inside.
Keille watched, round face unreadable, until the white door closed, then suddenly rounded on Mat, who was on the point of slipping away. “Few men have ever refused an offer from me once, much less twice. You should have a care I do not take it in mind to do something about it.” Laughing, she reached up and pinched his cheek with thick fingers, hard enough to make him wince, then turned in Rand’s direction. “Tell him, my Lord Dragon. I have a feeling you know something of the dangers of scorning a woman. That Aiel girl who follows you about, glaring. I hear you belong to another. Perhaps she feels scorned.”
“I doubt it, Mistress,” he said dryly. “Aviendha would plant a knife in my ribs if she believed I had thought of her that way.”
The immense woman laughed uproariously. Mat flinched as she reached for him again, but all she did was pat the cheek she had pinched before. “You see, good sir? Scorn a woman’s offer, and perhaps she thinks nothing of it, but perhaps”—she made a skewering motion—“the knife. A lesson any man can learn. Eh, my Lord Dragon?” Wheezing with laughter, she hurried off to check on the men tending the mules.
Rubbing his cheek, Mat muttered, “They’re all crazy,” before he, too, left. He did not abandon his pursuit of Isendre, though.
So it went, for eleven days and into the twelfth, across a barren, hard-baked land. Twice they saw other stands, small, rough stone buildings much like Imre Stand, sited for easy defense against the sheer side of spire or butte. One had three hundred sheep or more, and men who were as startled to learn of Rand as they were of Trollocs in the Three-fold Land. The other was empty; not raided, only not in use. Several times Rand spotted goats, or sheep, or pale, long-horned cattle in the distance. Aviendha said the herds belonged to nearby sept holds, but he saw no people, surely no structure that deserved the name hold.
The twelfth day, with the thick columns of Jindo and Shaido flanking the Wise Ones’ party, and the peddlers’ wagons lurching along with Keille and Natael arguing, and Isendre eyeing Rand from Kadere’s lap.
“ . . . and that is how it is,” Aviendha said, nodding to herself. “Surely you must understand about a roofmistress, now.”
“Not really,” Rand admitted. He realized that for some time he had just been listening to the sound of her voice, not to the words. “I’m sure it works just fine, though.”
She growled at him. “When you marry,” she said in a tight voice, “with the Dragons on your arms proving your blood, will you follow that blood, or will you demand to own everything but the dress your wife stands in, like some wetland savage?”
“That’s not at all the way it is,” he protested, “and any woman where I come from would brain a man who thought it was.  If anything, she scowled harder than before.
To his relief, Rhuarc came trotting back from the head of the Jindo. “We are there,” the Aielman announced with a smile. “Cold Rocks Hold.”


Selectadon
Dinosaur Types
Tyrannosaurs
Sauropods
Ceratopsians
Raptors
Ankylosaurs
Dino-Birds
Hadrosaurs
Ornithomimids
Ornithopods
Pachycephalosaurs
Time Periods
Permian
Triassic
Jurassic
Cretaceous
All The Fish
Salmon
Bass
Flounder
Carp
Tuna
Catfish
All The Things
Thing 1
Thing 2
Thing 3
Thing 4
Thing 5
Thing 6
All The Numbers
One
Two
Three
Four
Five
Six
All The Things
Thing 1
Thing 2
Thing 3
Thing 4
Thing 5
Thing 6


Toggle navigation
Home
Home
English
|
中文
Error
An error has occurred, please try again.
Back to
Home


| Path: | README.rdoc |
| Last Update: | Wed Dec 02 14:00:33 +0000 2009 |
Sinatra is a DSL for quickly creating web-applications in Ruby with minimal effort:
# myapp.rb require 'rubygems' require 'sinatra' get '/' do 'Hello world!' end
Install the gem and run with:
sudo gem install sinatra ruby myapp.rb
View at: localhost:4567
In Sinatra, a route is an HTTP method paired with an URL matching pattern. Each route is associated with a block:
get '/' do .. show something .. end post '/' do .. create something .. end put '/' do .. update something .. end delete '/' do .. annihilate something .. end
Routes are matched in the order they are defined. The first route that matches the request is invoked.
Route patterns may include named parameters, accessible via the params hash:
get '/hello/:name' do # matches "GET /hello/foo" and "GET /hello/bar" # params[:name] is 'foo' or 'bar' "Hello #{params[:name]}!" end
You can also access named parameters via block parameters:
get '/hello/:name' do |n| "Hello #{n}!" end
Route patterns may also include splat (or wildcard) parameters, accessible via the params[:splat] array.
get '/say/*/to/*' do # matches /say/hello/to/world params[:splat] # => ["hello", "world"] end get '/download/*.*' do # matches /download/path/to/file.xml params[:splat] # => ["path/to/file", "xml"] end
Route matching with Regular Expressions:
get %r{/hello/([\w]+)} do "Hello, #{params[:captures].first}!" end
Or with a block parameter:
get %r{/hello/([\w]+)} do |c| "Hello, #{c}!" end
Routes may include a variety of matching conditions, such as the user agent:
get '/foo', :agent => /Songbird (\d\.\d)[\d\/]*?/ do "You're using Songbird version #{params[:agent][0]}" end get '/foo' do # Matches non-songbird browsers end
Static files are served from the ./public directory. You can specify a different location by setting the :public option:
set :public, File.dirname(__FILE__) + '/static'
Note that the public directory name is not included in the URL. A file ./public/css/style.css is made available as example.com/css/style.css.
Templates are assumed to be located directly under the ./views directory. To use a different views directory:
set :views, File.dirname(__FILE__) + '/templates'
One important thing to remember is that you always have to reference templates with symbols, even if they‘re in a subdirectory (in this case use :’subdir/template‘). Rendering methods will render any strings passed to them directly.
The haml gem/library is required to render HAML templates:
## You'll need to require haml in your app require 'haml' get '/' do haml :index end
Renders ./views/index.haml.
Haml's options can be set globally through Sinatra‘s configurations, see Options and Configurations, and overridden on an individual basis.
set :haml, {:format => :html5 } # default Haml format is :xhtml get '/' do haml :index, :haml_options => {:format => :html4 } # overridden end
## You'll need to require erb in your app require 'erb' get '/' do erb :index end
Renders ./views/index.erb
The builder gem/library is required to render builder templates:
## You'll need to require builder in your app require 'builder' get '/' do content_type 'application/xml', :charset => 'utf-8' builder :index end
Renders ./views/index.builder.
The sass gem/library is required to render Sass templates:
## You'll need to require haml or sass in your app require 'sass' get '/stylesheet.css' do content_type 'text/css', :charset => 'utf-8' sass :stylesheet end
Renders ./views/stylesheet.sass.
Sass' options can be set globally through Sinatra‘s configurations, see Options and Configurations, and overridden on an individual basis.
set :sass, {:style => :compact } # default Sass style is :nested get '/stylesheet.css' do content_type 'text/css', :charset => 'utf-8' sass :stylesheet, :sass_options => {:style => :expanded } # overridden end
get '/' do haml '%div.title Hello World' end
Renders the inlined template string.
Templates are evaluated within the same context as route handlers. Instance variables set in route handlers are direcly accessible by templates:
get '/:id' do @foo = Foo.find(params[:id]) haml '%h1= @foo.name' end
Or, specify an explicit Hash of local variables:
get '/:id' do foo = Foo.find(params[:id]) haml '%h1= foo.name', :locals => { :foo => foo } end
This is typically used when rendering templates as partials from within other templates.
Templates may be defined at the end of the source file:
require 'rubygems' require 'sinatra' get '/' do haml :index end __END__ @@ layout %html = yield @@ index %div.title Hello world!!!!!
NOTE: In-file templates defined in the source file that requires sinatra are automatically loaded. Call the use_in_file_templates! method explicitly if you have in-file templates in other source files.
Templates may also be defined using the top-level template method:
template :layout do "%html\n =yield\n" end template :index do '%div.title Hello World!' end get '/' do haml :index end
If a template named "layout" exists, it will be used each time a template is rendered. You can disable layouts by passing :layout => false.
get '/' do haml :index, :layout => !request.xhr? end
Use the top-level helpers method to define helper methods for use in route handlers and templates:
helpers do def bar(name) "#{name}bar" end end get '/:name' do bar(params[:name]) end
Before filters are evaluated before each request within the context of the request and can modify the request and response. Instance variables set in filters are accessible by routes and templates:
before do @note = 'Hi!' request.path_info = '/foo/bar/baz' end get '/foo/*' do @note #=> 'Hi!' params[:splat] #=> 'bar/baz' end
To immediately stop a request during a before filter or route use:
halt
You can also specify a body when halting …
halt 'this will be the body'
Or set the status and body …
halt 401, 'go away!'
A route can punt processing to the next matching route using pass:
get '/guess/:who' do pass unless params[:who] == 'Frank' "You got me!" end get '/guess/*' do "You missed!" end
The route block is immediately exited and control continues with the next matching route. If no matching route is found, a 404 is returned.
Run once, at startup, in any environment:
configure do ... end
Run only when the environment (RACK_ENV environment variable) is set to :production:
configure :production do ... end
Run when the environment is set to either :production or :test:
configure :production, :test do ... end
Error handlers run within the same context as routes and before filters, which means you get all the goodies it has to offer, like haml, erb, halt, etc.
When a Sinatra::NotFound exception is raised, or the response‘s status code is 404, the not_found handler is invoked:
not_found do 'This is nowhere to be found' end
The error handler is invoked any time an exception is raised from a route block or before filter. The exception object can be obtained from the sinatra.error Rack variable:
error do 'Sorry there was a nasty error - ' + env['sinatra.error'].name end
Custom errors:
error MyCustomError do 'So what happened was...' + request.env['sinatra.error'].message end
Then, if this happens:
get '/' do raise MyCustomError, 'something bad' end
You get this:
So what happened was... something bad
Sinatra installs special not_found and error handlers when running under the development environment.
When using send_file or static files you may have mime types Sinatra doesn‘t understand. Use mime to register them by file extension:
mime :foo, 'text/foo'
Sinatra rides on Rack, a minimal standard interface for Ruby web frameworks. One of Rack‘s most interesting capabilities for application developers is support for "middleware" — components that sit between the server and your application monitoring and/or manipulating the HTTP request/response to provide various types of common functionality.
Sinatra makes building Rack middleware pipelines a cinch via a top-level use method:
require 'sinatra' require 'my_custom_middleware' use Rack::Lint use MyCustomMiddleware get '/hello' do 'Hello World' end
The semantics of use are identical to those defined for the Rack::Builder DSL (most frequently used from rackup files). For example, the use method accepts multiple/variable args as well as blocks:
use Rack::Auth::Basic do |username, password| username == 'admin' && password == 'secret' end
Rack is distributed with a variety of standard middleware for logging, debugging, URL routing, authentication, and session handling. Sinatra uses many of of these components automatically based on configuration so you typically don‘t have to use them explicitly.
Sinatra tests can be written using any Rack-based testing library or framework. Rack::Test is recommended:
require 'my_sinatra_app' require 'rack/test' class MyAppTest < Test::Unit::TestCase include Rack::Test::Methods def app Sinatra::Application end def test_my_default get '/' assert_equal 'Hello World!', last_response.body end def test_with_params get '/meet', :name => 'Frank' assert_equal 'Hello Frank!', last_response.body end def test_with_rack_env get '/', {}, 'HTTP_USER_AGENT' => 'Songbird' assert_equal "You're using Songbird!", last_response.body end end
NOTE: The built-in Sinatra::Test module and Sinatra::TestHarness class are deprecated as of the 0.9.2 release.
Defining your app at the top-level works well for micro-apps but has considerable drawbacks when building reuseable components such as Rack middleware, Rails metal, simple libraries with a server component, or even Sinatra extensions. The top-level DSL pollutes the Object namespace and assumes a micro-app style configuration (e.g., a single application file, ./public and ./views directories, logging, exception detail page, etc.). That‘s where Sinatra::Base comes into play:
require 'sinatra/base' class MyApp < Sinatra::Base set :sessions, true set :foo, 'bar' get '/' do 'Hello world!' end end
The MyApp class is an independent Rack component that can act as Rack middleware, a Rack application, or Rails metal. You can use or run this class from a rackup +config.ru+ file; or, control a server component shipped as a library:
MyApp.run! :host => 'localhost', :port => 9090
The methods available to Sinatra::Base subclasses are exactly as those available via the top-level DSL. Most top-level apps can be converted to Sinatra::Base components with two modifications:
+Sinatra::Base+ is a blank slate. Most options are disabled by default, including the built-in server. See Options and Configuration for details on available options and their behavior.
SIDEBAR: Sinatra‘s top-level DSL is implemented using a simple delegation system. The +Sinatra::Application+ class — a special subclass of Sinatra::Base — receives all :get, :put, :post, :delete, :before, :error, :not_found, :configure, and :set messages sent to the top-level. Have a look at the code for yourself: here‘s the Sinatra::Delegator mixin being included into the main namespace.
Sinatra applications can be run directly:
ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-s HANDLER]
Options are:
-h # help -p # set the port (default is 4567) -e # set the environment (default is development) -s # specify rack server/handler (default is thin) -x # turn on the mutex lock (default is off)
If you would like to use Sinatra‘s latest bleeding code, create a local clone and run your app with the sinatra/lib directory on the LOAD_PATH:
cd myapp git clone git://github.com/sinatra/sinatra.git ruby -Isinatra/lib myapp.rb
Alternatively, you can add the sinatra/lib directory to the LOAD_PATH in your application:
$LOAD_PATH.unshift File.dirname(__FILE__) + '/sinatra/lib' require 'rubygems' require 'sinatra' get '/about' do "I'm running version " + Sinatra::VERSION end
To update the Sinatra sources in the future:
cd myproject/sinatra git pull


Welcome to Tryvia, an online trivia game. Get random questions asked in Trivia games and try to answer them. What will be your max streak?
I've always liked question games, and what a best way to prove it than building an online clone of Trivia?
Once the game has started, we will answer you a question asked in a Trivia game, and you'll have 20 seconds to select the correct answer. Questions will become harder and harder, how many of them can you answer correctly in a row?


Type the name of a pseudo-selector in the
following textbox, such as :first-child
or :nth-child(3n+1)
, etc., and
then click the Apply button.
This is a sample list:
Item #01 (p)
Item #02Item #03 (p)
Item #04 Item #05Item #06 (p)
Item #07 (p)
Item #08 (p)
Item #09Item #10 (p)
Item #11 Item #12Item #13 (p)
Item #14 (p)
Item #15


Release Date: August 10, 2010
The HPIJS driver is the free, open-source driver issued by HP for their DeskJet and LaserJet printers. For most supported printers, this driver produces output quality equivalent to the proprietary HP drivers. In photo mode, with photo paper, the output quality is very high, especially for the HP DeskJet 990C and later models, which auto-detect the paper type in hardware. Photo printing is fully supported in the newer 6- and 7-ink models.
A major advantage of using this driver over those supplied by HP is the direct interface between HPIJS and the native CUPS spooler, which allows printing from any printer over any available connection such as USB, AppleTalk, TCP/IP (via LPD and IPP), HP JetDirect, and shared windows printers via SAMBA. Additionally, this driver utilizes the existing Mac OS X USB "backend" and thus does not install any software that might interfere with standard USB operation.
Please note:
To add a printer queue, Leopard (Mac OS X 10.5.x) users should use the Print & Fax from System Preferences. Click on the + (plus) icon at the lower left. A new window will open. In that window, click the Default Browser icon at the top left. Highlight your printer in the section below. Use the "Print Using" pop-up menu near the bottom of the window to select the correct PPD for your printer and click Add.
Tiger users should open the Printer Setup Utility and click on the Add icon at the top of the Printer List window. A new window will open. In that window, click the Default Browser icon at the top left. Highlight your printer in the section below. Use the "Print Using" pop-up menu near the bottom of the window to select the correct PPD for your printer and click Add.
Jaguar (OS X 10.2.x) and Panther (OS X 10.3.x) users should open Print Center (Jaguar) or Printer Setup Utility (Panther), hold down the Option key, and click the Add Printer button in the Print Center toolbar. Within the setup sheet, choose Advanced from the top popup menu; then in the "Device:" popup menu select your printer by name (it should be the last item in the menu list). Finally, select the correct PPD from the model browser and click Add.
Release Date: August 10, 2010
The HPIJS driver is the free, open-source driver issued by HP for their DeskJet and LaserJet printers. For most supported printers, this driver produces output quality equivalent to the proprietary HP drivers. In photo mode, with photo paper, the output quality is very high, especially for the HP DeskJet 990C and later models, which auto-detect the paper type in hardware. Photo printing is fully supported in the newer 6- and 7-ink models.
A major advantage of using this driver over those supplied by HP is the direct interface between HPIJS and the native CUPS spooler, which allows printing from any printer over any available connection such as USB, AppleTalk, TCP/IP (via LPD and IPP), HP JetDirect, and shared windows printers via SAMBA. Additionally, this driver utilizes the existing Mac OS X USB "backend" and thus does not install any software that might interfere with standard USB operation.
Please note:
To add a printer queue, Leopard (Mac OS X 10.5.x) users should use the Print & Fax from System Preferences. Click on the + (plus) icon at the lower left. A new window will open. In that window, click the Default Browser icon at the top left. Highlight your printer in the section below. Use the "Print Using" pop-up menu near the bottom of the window to select the correct PPD for your printer and click Add.
Tiger users should open the Printer Setup Utility and click on the Add icon at the top of the Printer List window. A new window will open. In that window, click the Default Browser icon at the top left. Highlight your printer in the section below. Use the "Print Using" pop-up menu near the bottom of the window to select the correct PPD for your printer and click Add.
Jaguar (OS X 10.2.x) and Panther (OS X 10.3.x) users should open Print Center (Jaguar) or Printer Setup Utility (Panther), hold down the Option key, and click the Add Printer button in the Print Center toolbar. Within the setup sheet, choose Advanced from the top popup menu; then in the "Device:" popup menu select your printer by name (it should be the last item in the menu list). Finally, select the correct PPD from the model browser and click Add.
Goggles
From Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Goggles
Page semi-protected
SealMask watersport goggles made by AquaSphere
Goggles or safety glasses are forms of protective eyewear that usually enclose or protect the area surrounding the eye in order to prevent particulates, water or chemicals from striking the eyes. They are used in chemistry laboratories and in woodworking. They are often used in snow sports as well, and in swimming. Goggles are often worn when using power tools such as drills or chainsaws to prevent flying particles from damaging the eyes. Many types of goggles are available as prescription goggles for those with vision problems.
Contents
[hide]
1 History
2 Types
3 Fashion
4 Non-human
5 See also
6 References
History
The Eskimos carved Inuit snow goggles from caribou antler, and wood and shell, to help prevent snow blindness. The goggles were curved to fit the user's face and had a large groove cut in the back to allow for the nose. A long thin slit was cut through the goggles to allow in a small amount of light, diminishing subsequent ultraviolet rays. The goggles were held to the head by a cord made of caribou sinew.
In the early 20th century, goggles were worn by drivers of uncovered cars to prevent irritation of the eyes by dust or wind. [1] Likewise in the first ten years after the invention of the airplane in 1903 goggles became a necessity as wind blow became more severe as aircraft speeds increased and as protection against bugstrikes at high altitudes. The first pilot to wear goggles was probably Charles Manly in his failed attempt to fly Samuel Langley's aerodrome in 1903.
Traditional Inuit goggles used to combat snow blindness
Metal nenets goggles
Blowtorching goggles and safety helmet
Swimming goggles
Types
The requirements for goggles varies depending on the use. Some examples:
Cold weather: Most modern cold-weather goggles have two layers of lens to prevent the interior from becoming "foggy". With only a single lens, the interior water vapor condenses onto the lens because the lens is colder than the vapor, although anti-fog agents can be used. The reasoning behind dual layer lens is that the inner lens will be warm while the outer lens will be cold. As long as the temperature of the inner lens is close to that of the interior water vapor, the vapor should not condense. However, if water vapor gets between the layers of the lens, condensation can occur between the lenses and is almost impossible to get rid of; thus, properly constructed and maintained dual-layer lenses should be air-tight to prevent water vapor from getting in between the lenses.
Swimming: Must be watertight to prevent water, such as salt water when swimming in the ocean, or chlorinated water when swimming in a pool, from irritating the eyes or blurring vision. Allows swimmers to see clearly underwater. They will not be usable more than a few feet underwater, because the water pressure will press them tightly against the face. Examples of these include the Swedish goggles.
Power tools: Must be made of an unbreakable material that prevents chunks of metal, wood, plastic, concrete, and so on from hitting or piercing the eye. Usually has some sort of ventilation to prevent sweat from building up inside the goggles and fogging the surface.
Blowtorch goggles: These protect the eyes from glare and flying sparks and hot metal splashes while using or near as blowtorch. They are not the correct filters for arc welding.
Welding goggles: Includes all goggles for eye protection during welding or cutting. They provide protection against debris, the heat from welding, and, with the proper filters, the optical radiation resulting from the welding, which can otherwise cause arc eye.
Motorcycle riding and other open-air activities: Prevents insects, dust, and so on from hitting the eyes.
Laboratory and research: Combines impact resistance with side shields to prevent chemical splashes reaching the eyes. May also include laser protection which would be covered by EN 207 (Europe) and ANSI Z 136 (United States). Examples of these include red adaptation goggles.
Racquetball: Protect the eyes from racquets swinging in an enclosed area and from impact from hard rubber ball.
Winter sports: Protect the eyes from glare and from icy particles flying up from the ground.
Astronomy and meteorology: dark adaptor goggles are used before going outside at night, in order to help the eyes adapt to the dark.
Basketball: Several NBA players have worn goggles during play, including Kareem Abdul-Jabbar, James Worthy, Horace Grant, Kurt Rambis and Amar'e Stoudemire; they prevent a fellow player from scratching or hitting the eyes when trying to grab the basketball.
Aviation: In open cockpit aircraft, such as old biplanes, aviators, such as Amelia Earhart and Charles Kingsford Smith, would wear goggles to help protect from the wind and are still in use today. Examples of these include the AN-6530 goggles.
Virtual reality: A virtual reality headset, sometimes called "goggles", is a wrap-around visual interface to display computer output. Commonly the computer display information is presented as a three-dimensional representation of real-world environments.
Fashion
Goggles are often worn as a fashion statement in certain subcultures, most often as part of the cybergoth subculture. They are usually worn over the eyes or up on the forehead to secure 'falls': a type of long, often brightly-coloured, synthetic hairpiece. Fans of the steampunk genre or subculture also frequently wear steampunk-styled goggles, particularly when performing in a live action role-playing game.
Goggles are also frequently used by anime and manga characters as a fashion statement. For example, it is an idiosyncrasy of team leader characters in the Digimon anime to wear goggles. Other notable characters who wear goggles are the young Naruto Uzumaki and Konohamaru from Naruto, Matt from Death Note and Usopp from One Piece.
Non-human
Bullfighting horse wearing eye protection
A US Military working dog attached to a helicopter hoist in Afghanistan.
Goggles are available for horses used in speed sports such as horse racing.[2] In some traditions of horse mounted bullfighting, the horse may wear a protective cloth over its eyes.
Goggles have been used on military working dogs, for protection in harsh conditions, such as sandstorms and rotorwash from helicopters. One of the brands of these types of goggles are Doggles.
See also
Wikimedia Commons has media related to: Goggles
Ballistic Eye Wear
Beer goggles
Google Goggles
Night vision device
Personal protective equipment
Safety engineering
Visor
References
^ Alfred C. Harmsworth (1904). Motors and Motor-driving.
^ Landers T. A. (2006) Professional Care of the Racehorse, Revised Edition: A Guide to Grooming, Feeding, and Handling the Equine Athlete. Blood Horse Publications. 308 pages. Page 138.


It has been developed using different tools such as python, flask framework, bootstrap and css3.
Web design Python Flask
Login test
Author
Developed by dbgroldan


The whole idea of this system is to aggregate all those bookmarks you have spread over different applications.
To connect with pocket you will have to authorise dotMarks to access your bookmarks.


FITSIO Home
Next: 9.6.4 Read Column Data
Up: 9.6 Specialized FITS ASCII
Previous: 9.6.2 Low-Level Table Access
Contents
- 1
- Write elements into an ASCII or binary table column (in the CDU).
The data type of the array is implied by the suffix of the
routine name.
int fits_write_col_str / ffpcls
(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem,
LONGLONG nelements, char **array, > int *status)
int fits_write_col_[log,byt,sht,usht,int,uint,lng,ulng,lnglng,flt,dbl,cmp,dblcmp] /
ffpcl[l,b,i,ui,k,uk,j,uj,jj,e,d,c,m]
(fitsfile *fptr, int colnum, LONGLONG firstrow,
LONGLONG firstelem, LONGLONG nelements, DTYPE *array, > int *status)
- 2
- Write elements into an ASCII or binary table column
substituting the appropriate FITS null value for any elements that
are equal to the nulval parameter.
int fits_write_colnull_[log, byt, sht, usht, int, uint, lng, ulng, lnglng, flt, dbl] /
ffpcn[l,b,i,ui,k,uk,j,uj,jj,e,d]
(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem,
LONGLONG nelements, DTYPE *array, DTYPE nulval, > int *status)
- 3
- Write string elements into a binary table column (in the CDU)
substituting the FITS null value for any elements that
are equal to the nulstr string.
int fits_write_colnull_str / ffpcns
(fitsfile *fptr, int colnum, LONGLONG firstrow, LONGLONG firstelem,
LONGLONG nelements, char **array, char *nulstr, > int *status)
- 4
- Write bit values into a binary byte ('B') or bit ('X') table column (in
the CDU). Larray is an array of characters corresponding to the
sequence of bits to be written. If an element of larray is true
(not equal to zero) then the corresponding bit in the FITS table is
set to 1, otherwise the bit is set to 0. The 'X' column in a FITS
table is always padded out to a multiple of 8 bits where the bit
array starts with the most significant bit of the byte and works
down towards the 1's bit. For example, a '4X' array, with the
first bit = 1 and the remaining 3 bits = 0 is equivalent to the 8-bit
unsigned byte decimal value of 128 ('1000 0000B'). In the case of
'X' columns, CFITSIO can write to all 8 bits of each byte whether
they are formally valid or not. Thus if the column is defined as
'4X', and one calls ffpclx with firstbit=1 and nbits=8, then all
8 bits will be written into the first byte (as opposed to writing
the first 4 bits into the first row and then the next 4 bits into
the next row), even though the last 4 bits of each byte are formally
not defined and should all be set = 0. It should also be noted that
it is more efficient to write 'X' columns an entire byte at a time,
instead of bit by bit. Any of the CFITSIO routines that write to
columns (e.g. fits_write_col_byt) may be used for this purpose.
These routines will interpret 'X' columns as though they were 'B'
columns (e.g., '1X' through '8X' is equivalent
to '1B', and '9X' through '16X' is equivalent to '2B').
int fits_write_col_bit / ffpclx
(fitsfile *fptr, int colnum, LONGLONG firstrow, long firstbit,
long nbits, char *larray, > int *status)
- 5
- Write the descriptor for a variable length column in a binary table.
This routine can be used in conjunction with ffgdes to enable
2 or more arrays to point to the same storage location to save
storage space if the arrays are identical.
int fits_write_descript / ffpdes
(fitsfile *fptr, int colnum, LONGLONG rownum, LONGLONG repeat,
LONGLONG offset, > int *status)
FITSIO Home
Next: 9.6.4 Read Column Data
Up: 9.6 Specialized FITS ASCII
Previous: 9.6.2 Low-Level Table Access
Contents


Let's face it, spinning up a new development environment is not a pleasant experience. The lengthy journey of installing your preferred stack, software and tooling, can often last days to get to a point of productivity and weeks to fine tune.
What if this task could be reduced to a single command?
At my current job, this problem is compounded as new developers come onto a project I am leading. Responsibilities of knowledge transfer, which includes how to set up an appropriate development environment for the project in question, tends to fall in my lap. Ultimately this leads to predictable amounts of lost time that are echoed every time a new dev is inserted into the workflow.
What if this task could be reduced to a single command, of which is reproducible x-amount of times?
The performance of development environments degrades over time. It is an unfortunate fact of life. As new assets become available, old assets that are no longer needed find a way to take their toll. The task of spinning up a new environment requires you to take stock of these assets, in hopes to reproduce them verbatim on your newly provisioned machine.
What if this task could be reduced to a single command, of which is reproducible x-amount of times and can be configured for consistency?
In steps Vagrant.
Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team. https://www.vagrantup.com/docs/why-vagrant/
But wait, we are in Windows. Certainly, this can't be easy for us? As a matter of fact, it is and I will demonstrate such using the following tools.
Instead of maintaining this blog post with updates, I figured it best to create a repository and update it. That being said, head over to the Pioneer Code GitHub page and check out the Pioneer Windows Development Environment repository for further details.


There are currently no collaborators, but you can add people to share with here.
People
Can edit
Access level for invited people.
Done
Cancel
Advanced
Share link via:
Reset link
Who has access
Change...
Sending...
You can ask the owner to change the sharing settings.
We've sent a message to the owner.
Edit the list of people who would like access and click Send.
Edit the list of people who would like access and click OK.
There are currently no collaborators, but you can add people to share with here.
Sorry, you do not have permission to share.
Invite people:
Invite people:
Access level for invited people.
Can edit
- Add message
Add message
Send
Cancel
Editors will be allowed to add people and change the permissions.Only the owner can change the permissions.Editors can add people and change the permissions on some of your items.[Change]


I was reading this post where Sidnei talks a bit about productivity tools under Linux. I also am a huge fan of Ion. It's far simpler and more focused than the traditional window model, it lets me program without undue distraction or the clerical work of window manipulation.
The irony is that Ion is like a step back in time and could be seen as a dramatic reduction in WM features. Or maybe it's a step sideways, kind of like Emacs is. Emacs, compared by traditional measures, is clearly inferior to other editors, it's crufty and awkward. But when judged on its actual worth, not its similarity to traditional UIs, it of course performs wonderfully.
In my heart of hearts, I still believe this kind of simplicity has potential for a larger audience. I feel confident that a large number of computer users would find this greater simplicity a great aid to productivity, and in fact deeply comforting. One of the most challenging parts of computer use -- for all levels -- is keeping track of everything that is going on. There's so many tasks -- the manipulation of windows so you can see everything, getting the keyboard focus right, the constant sidetrack as you move between one side-task and another, all while you still have to concentrate on whatever your real task is. Sure, you can get better at it, but multitasking has its costs, and I think those costs are higher than most of us realize. And they aren't just productivity or accuracy -- there's an emotional reaction, a level of stress that a poor UI can produce.
Of course, these particular implementations we choose as programmers -- be it Ion or Emacs -- probably won't ever catch on. But there's still a powerful idea there. The UIs we've been using were designed for children 25 years ago, when everyone was a child with respect to computers. The UIs so vaunted for their accessibility to novices (WIMP, the traditional Mac interface, etc) are not appropriate for the users of today, not to mention tomorrow. The users of today are heavy computer users, if not always power users, using their computer for hours each day both at work and home. The investment of learning more powerful interfaces is worth it to them in a way it wasn't to computer users of the 80's.
But I should be clear what I mean about more powerful interfaces -- I don't mean things like Photoshop (or GIMP), but rather the simple yet orthogonal interfaces, which in their careful selection of features provide power without distraction. Features like tabs and type-ahead searching in Mozilla (bookmarklets too?), or in a word processor the view-tags feature of Wordperfect which exposes structure that lays deeply hidden in MS Word. These are empowering features, sharply in contrast to the disempowerment of a feature like Word's autoformatting.
So there exists the potential for Linux to reach a larger audience, and to really do something novel and important and maybe even revolutionary, if we recognize what we've already accomplished instead of judging ourselves by the kind of progress others have made. So long as we believe our critics, we'll be stuck focusing on our flaws instead of our unique abilities. That was my point in my recent post, and I've unintentionally come back to it.  Gnome is pinned down, but software like Ion and Emacs aren't because the opposition doesn't even realize they exist. Still, they're honking great ideas -- let's do more of those!
(PS: try Ion for a couple days, you'll learn to love it, I swear)
FRom my experience most windows users solve the windows placement problem by maximising every window they they see and using the start bar to navigate.
Hmm if I had a portrait monitor I'd prolly do that as well, well, maybe if I had two portrait monitors.. :)# Factory
Enjoyable read.
I'd like to think that Wiki's fall into the "inferior..crufty, awkward...yet perform wonderfuly" category also.
Also, Windows 1.0 was "limited" to tile positioned windows.
The devil is in the details, of course, but from a quick look, Ion isn't all that different from NVidia's nView (configurable desktops, gridded management, dialogue control, hotkeys, gestures, etc).
(ATI and Matrox have similar tools for their hardware).
i've been a (part-time) ion user for a couple years now and i can verify that it really is a more productive environment. i also agree that the potential is there to reach a more general audience. my girlfriend, who is definitely not a computer geek type, after using my computer for a few days and after i took a few minutes to explain the basic ideas behind ion and show her the keyboard shortcuts, asked me to set it up on her computer for her in place of KDE.
You are exactly right. Both emacs and ion have one more feature in common.....complete customizability and transparency. emacs lets you do what you want and lets you do just exactly what you want. The best thing about a window manager like ion is that it is almost as powerful as the X protocol itself.
To say it all in one line.......emacs and ion follow the unix principle. Sorry i would like to add 2 more words...THEY ROCK.
# Rajsekar Manokaran


Lorem ipsum dolor sit amet consectetur adipisicing elit.
Would you recommend Laranja to a friend?
What programming language have you learned?


| Static | Dynamic | |
|---|---|---|
| “only …”: separate privileges |
Check security via tight toolchain integration.
Use language features like private , friend ,
sound types.
|
Access decisions at runtime based on module identity. Treat import as an access to check. |
| “carefully reviewed”: efficiently use human judgement |
Humans grant privileges by adding to whitelists under source control. Check grants at build time. | Same but check access at runtime using module whitelists. |
| “finish … before …”: lifecycle |
Enables meta-programming and code-generation in the build system. | Depend more on privilege separation but the main module could advance to lower privilege stages. |
// index.js let staticLoad = require('./lib/static'); function dynamicLoad(f, x) { return f('./lib/' + x); } dynamicLoad(require, Math.random() < 2 ? 'dynamic' : 'bogus'); exports.lazyLoad = () => require('./lib/lazy'); // Fallback to alternatives ['./lib/opt1', './lib/opt2'].forEach(…);


JNDI Port number issue while strating JBoss server 4.2.2.GA
Post by: Micheal John, Ranch Hand
on Jan 01, 2009 23:41:00
I am facing the problem while statring the JBoss server 4.2.2.GA in Windows 2000. The problem is, in the port number 1099, some other application is running, which I am suspecting the JBoss is also using for JNDI. So I am getting the following error: I couldn't stop the application that is already running in the port number 1099.
So I have edited the jboss-service.xml file in the following location: C:\java\common\bin\jboss-4.2.2.GA\server\default\conf\jboss-service.xml
I have changed the JNDI port number from 1099 to 11099 as follows:
But I am getting some other error:
Please help on this. My JDK is at:C:\java\common\bin\jdk1.5
[ January 02, 2009: Message edited by: Micheal John ]
Post by: Jaikiran Pai, Marshal
on Jan 03, 2009 06:52:00
The recommended way of changing ports is using the ServiceBindingManager. See this for details.
Post by: Micheal John, Ranch Hand
on Jan 05, 2009 04:58:00
Hi Jaikiran,
Thanks for your reply. I have followed the below steps and try to run the server in port 01, but unfortunately I am getting the same error.
Post by: Peter Johnson, Bartender
on Jan 05, 2009 12:30:58
The problem is with port 3700 (not the JNDI port). There are two possible reasons why port 3700 is not available. First, another app could be using it. Using TCPView from sysinternals is a better bet for determining who is using that port than using netstat. The other possibility is that your firewall is blocking the port. This can happen very easily - some time in the past the firewall popped up a dialog asking if some Java app could connect to the netwrok and you said "no" and told the firewall to remember that setting. Now you are using the same JVM to run JBoss AS and the firewall is acting on the previous settings.
The weird thing is that I cannot find any place in JBos AS 4.2.2 where port 3700 is identified, but the port does appear to be used by Arjuna (JBoss Transactions). As a wild guess, try adding this line to the server/default/conf/jbossjta-properties.xml file:
where xxxx is some available port number. The above property entry goes within this "properties" entry:
Post by: Micheal John, Ranch Hand
on Jan 05, 2009 21:05:07
I am getting the same exception, even though I have followed your suggestion of adding the recoverymanager in jboss-4.2.2.GA\server\default\conf\jbossjta-properties.xml
Post by: Jaikiran Pai, Marshal
on Jan 06, 2009 07:24:39
Micheal John wrote:I am getting the same exception, even though I have followed your suggestion of adding the recoverymanager in jboss-4.2.2.GA\server\default\conf\jbossjta-properties.xml
You mean exactly the same error message which says port 3700 in use (even after changing to 3800)?
Can you please repost the exception after you did the changes?
Post by: Micheal John, Ranch Hand
on Jan 06, 2009 19:29:41
Exception...
jbossjta-properties.xml in C:\java\common\bin\jboss-4.2.2.GA\server\default\conf:
jboss-service.xml
Post by: Peter Johnson, Bartender
on Jan 07, 2009 10:42:13
As I said, setting the recoveryPort was a wild guess - that value appears in that config file in 5.0 but not in 4.2.x. And it would appear that the value is ignored in 4.2.x.
Is there any possibility that you could try running on another system, perhaps an XP or Server 2003 system? I want to see if the issue is Windows 2000 related, or perhaps related to that specific host.
Post by: Micheal John, Ranch Hand
on Jan 07, 2009 19:51:13
Actually, I am using the same JBoss4.2.2.GA in Windows Vista in my home note book. And it's staring properly.
Now I am trying same in Windows 2000, but in corporate network. Do you mean to say that JBoss 5.x will work?
Post by: Peter Johnson, Bartender
on Jan 08, 2009 10:31:20
No, I am not saying that 5.0 will work, just that the port options appears in 5.0.
I noticed that you are using JSDK 1.5.0_04. Could you try upgrading to a more recent 1.5?
If that doesn't fix it, then the problem is probably related to some issue with how Windows 2000 handles sockets, and the JDK's interaction with sockets - you might want to consider upgrading to Server 2003 or 2008 (or to Linux since it's cheaper...)
Post by: Mike Thomson, Ranch Hand
on Jan 08, 2009 20:26:02
I have tried with JBoss 5.0. But getting some other exception. Actually I am using JBoss Eclipse IDE 1.5 and configured the JBoss server in it. I have configured under JBoss 4.x, as it don't have JBoss 5.x. Whether the below exception may due to that?
All times above are in ranch (not your local) time.
The current ranch time is Dec 13, 2013 17:03:01.


Unity Game Engine
Meta Oculus Quest 2
For this project, we created an intuitive and usable HUD interface for scuba divers. While this assignment specified a
couple required components such as a radio, teammate tracker, and depth meter, we were encouraged to add features
we deemed necessary, and had free-reign in how we designed our interface. For example, my team anchored high priority
buttons to the user's left wrist for fast access and designed a horizontal number pad interface for ease of use in 3D
space and to safeguard against accidental misinputs. To test our interface without a real scuba suit, we simulated
the diver's underwater experience in virtual reality using an Oculus headset and Unity.
[pre-built functionality] - left pinch to move, breaststroke motion to swim.
Click me for a short video walk-through!
date created - 2022


This is a web application that takes a user's birthday and calculates the day of the week they were born and then depending on their gender outputs their Akan name. Akan names are derived from Ghanian culture. Frequently in Ghana, children are given their first name as a 'day name' which corresponds to the day in the week they were born.
| Days | Female | Male |
|---|---|---|
| Sunday | Akosua | Kwasi |
| Monday | Adwoa | Kwadwo |
| Tuesday | Abenaa | Kwabena |
| Wednesday | Akua | Kwaku |
| Thursday | Yaa | Yaw |
| Friday | Afua | Kofi |
| Saturday | Ama | Kwame |


Toggle navigation
crop_3_2
Jackson T.
account_circle
User Profile
Settings
Logout
{% if name %}
×
Success!
The survey message ( Reference : {{sid}}) was sent to {{name}}.
{% endif %}
Enter Customer Phone Number:
Product Type:
Lime
Cherry
Vanilla
Customer Name:
Send SMS
First Automated Message
Edit
if Positive Response
Edit
if Negative Response ☹
Edit


Welcome
Make choices based on what you know...
[[link text="Begin" goto="s1start" class="option"]]
Scene 1
You see a person standing ahead of you.
[[link text="Shoot Them" goto="s1ending" script="setVar('scene1end',1)" class="option"]] [[link text="Do Nothing" goto="s1part2" class="option"]]
Scene 1
The person starts running towards you.
[[link text="Shoot Them" goto="s1ending" script="setVar('scene1end',2)" class="option"]] [[link text="Do Nothing" goto="s1part3" class="option"]]
Scene 1
The person stretches out their arms towards you as they run faster.
[[link text="Shoot Them" goto="s1ending" script="setVar('scene1end',2)" class="option"]] [[link text="Do Nothing" goto="s1ending" class="option"]]
Scene 1: The Full Story
You have been really looking forward to today, finally your best friend is coming to stay after 10 years away. You have agreed to pick them up from the train station.
[[function if(getVar('scene1end')=='1'){$('#scene1ending1option1').show()};]] [[function if(getVar('scene1end')=='2'){$('#scene1ending1option2').show()};]] [[function if(getVar('scene1end')=='3'){$('#scene1ending1option3').show()};]] [[function if(getVar('scene1end')=='0'){$('#scene1ending1option4').show()};]][[link text="Start Scene 2" goto="s2start" class="option"]] [[redirect scene="s2start" wait="15"]]
Scene 3
You are standing alone in strange looking world. You see a turtle ahead.
[[link text="Jump on it" goto="s3ending" script="setVar('scene3end',1)" class="option"]] [[link text="Do nothing" goto="s3ending" script="setVar('scene3end',2)" class="option"]]


To add a repository to a team or update the team's permission on a
repository, the authenticated user must have admin access to the repository,
and must be able to see the team. The repository must be owned by the
organization, or a direct fork of a repository owned by the organization. You
will get a 422 Unprocessable Entity
status if you attempt to add
a repository to a team that is not owned by the organization. Note that, if
you choose not to pass any parameters, you'll need to set
Content-Length
to zero when calling out to this endpoint. For
more information, see "HTTP verbs."
Note: You can also specify a team by
org_id
and team_id
using the route
PUT /organizations/:org_id/team/:team_id/repos/:owner/:repo
.
PUT /orgs/:org/teams/:team_slug/repos/:owner/:repo
| Name | Type | Description |
|---|---|---|
permission |
string |
The permission to grant the team on this repository. Can be one of: * pull - team members can pull, but not push to or
administer this repository.* push - team members can pull and push, but not administer
this repository.* admin - team members can pull, push and administer this
repository.* maintain - team members can manage the repository without
access to sensitive or destructive actions. Recommended for project
managers. Only applies to repositories owned by organizations. * triage - team members can proactively manage issues and
pull requests without write access. Recommended for contributors who
triage a repository. Only applies to repositories owned by
organizations.If no permission is specified, the team's permission attribute will be used to determine what
permission to grant the team on this repository.
|
For more information about the permission levels, see "Repository permission levels for an organization" in the GitHub Help documentation.
Status: 204 No Content


So long WordPress
2014 January 3rd by todd anderson
Originally a resolution for 2012, then 2013, I am making good early this year on getting rid of my reliance on WordPress as my blog engine - in fact, getting rid of any engine to manage and serve blog posts; I converted all my old posts to static files and will be writing posts in markdown from now on.
Out with the old
Within the past couple years it just felt laborious to maintain my blog - not so much in actually writing content, but rather in dealing with spam, upgrading WordPress to ward off attacks until the next upgrade, finding syntax highlight replacements and other plugins as interests changed/grew. As a consequence, I think it did affect me actually wanting to log into the admin console to write posts.
Along with maintenance of the my self-host WordPress being a bothersome heft, the WYSIWYG editor and all the extra bells and whistles in the admin console it provided just seemed to be a lot of useless noise. I have grown quite comfortable writing documentation in markdown (due, in most part, to the rise of GitHub) and felt the experience of writing in such a context much more liberating and free-flowing.
As such, I started looking at what else was out there that would allow me to:
- get rid of the dynamicism of serving blog posts
- throw out requirement of a database to store and maintain information
- write posts in markdown
- easily generate and maintain static files
The solution
As I mentioned previously, I started investigating solutions for the line items above a few years ago. Sitting on my desire to get rid of WordPress for so long has afforded me two things:
- growing frustration that I still have to deal with WordPress
- keeping track of the climate of tools that allow for generating static content from markdown
Naturally, the first one I gave a shot at back in 2012 was Jekyll, and then the Octopress framework. Truly great software which you should check out if you haven't had a chance. It was most likely the involvement of Octopress and maintenance that started to weigh down on me continuing to pursue it as an option and look for something more lightweight.
Within the time frame, as well, saw the rise of Grunt, a task-based utility built on nodejs, and a tool I essentially use everyday in my work and personal projects. It was only natural that over the past couple years (or rather half-year) that I kept an eye out for any Grunt tasks that would generate markup from markdown; that's when grunt-markdown-blog which utilizes the marked node module, along with underscore templating, entered my life.
The implementation
Though I had settled on a solution to turn markdown into markup, I had sort of started working backwards - there were more pertinent issues I had to address in order to preserve the past history of my bloggin - since 2005! (spoiler: not all good content).
Conversion of WP posts to markdown
The first thing I had to accomplish was turning all my old posts stored in a database into static content. To do just that, I found the wonderful wpstatic script. Dropping that script on my server in the same location as the wp-config.php file of my WordPress install - along with turning on 1000 posts per page in my WP admin console - allowed me to spit out the whole full history of posts since I started blogging by simply issuing the following:
./wpstatic
With a full history of posts held in a single HTML file, I then used PhantomJS to consume that file and spit out each post into a directory structure that was relative to the naming convention used for posting in WordPress.
I then used html2text - a python module - to convert each post markup into markdown.
Conversion of markdown back to markup
I know, I know. It seems really odd that in my first two steps I had generated valid markup and then went ahead and converted that to markdown only wanting to convert it back to markup... there is a good reason :) I wanted the markup to be consistent across previous posts and any new posts I would be writing in markdown. Using html2text allowed me to conform previous HTML documents to the structure of markdown I would be using going forward.
With the static markdown content produced, all it takes now is running the grunt-markdown-blog task on those files to generate static HTML documents.
And with that, all my previous work is preserved and available as it once was.
The downside
The biggest benefit a database provides is being able to reference information categorically. Data stored with reference to other data stored allows for ease in generating new views and relationships. Admittedly, this is the big downside of moving my blog to static content - I do love analyzing and presenting data in new ways (its part of my job!). But, as mentioned previously, the weight of maintenance involved in the engine and tooling farly outweighed the need to move to static content than the need to access blog post data.
Another downside is the loss of comment association to post - and specifically the "google-ability" of providing a post of mine as a result of a comment being relevant to a search query. Even further, all previous comments are lost :( For that, I feel truly sorry to those of you out there who have added to the discussion on previous posts; I apologize for throwing them out with the bath water. If the previous comments corrected some information with the post or provided valuable insight, I did make it a habit of ammending the post and those should still be part of the static replacement. If you see something that is out of place or would like to be added, please get in touch.
The brightside
I am free of WordPress :)
I do want to state that WordPress is not bad or evil - far from it. It had just become a burden for me; I much prefer just writing thoughts out in markdown and then issuing a command to generate and deploy new, static content.
If you are interested in all the details, you can checkout the Github repo I have set up to store my tools and blog content:
https://github.com/bustardcelly/blog-to-markdown


| Demo | Description |
|---|---|
| The action concept is similar to JavaScript events. | |
| Event types can be distinguished as the key. |
| Demo | Description |
|---|---|
| This is a basic binding example. | |
| Binding using the value of all the elements to make the same changes. | |
| Binding using the progress bar example. | |
| Another binding using the progress bar example. | |
| Click the arrow keys to move the red box. |
| Demo | Description |
|---|---|
| Every element can have a unique ID called 'tag' value. |
| Demo | Description |
|---|---|
| 'get/val methods' can search for every element. (act, bind, tag) |
| Demo | Description |
|---|---|
| vojs library supports template engine. | |
| One as a template, you can enter the contents of multiple elements. |
| Demo | Description |
|---|---|
| Templates can be created as a separate file to be loaded. | |
| Load the template file can be entered in the element with unique ID value. |
| Demo | Description |
|---|---|
| Progress bar as one of the templates can be added dynamically. |
| Demo | Description |
|---|---|
| Default image slider example. | |
| Animated image slider example. | |
| Canvas example implementation in Binding array. |
| Demo | Description |
|---|---|
| Real-Time Ranking Game, Tong 1 | |
| Real-Time Ranking Game, Tong 2 | |
| Real-Time Ranking Game, Tong 2 (Mobile) |


vignettes/examples.Rmd
examples.Rmd
Some features:
library(netplot)
library(igraph)
library(ggraph)
library(sna)
# We will use the UKfaculty data from the igraphdata package
data("UKfaculty", package = "igraphdata")
# With a fixed layout
set.seed(225)
l_ukf <- layout_with_fr(UKfaculty)
Since igraph and statnet do the plotting using base system graphics, we can’t put everything in the same device right away. Fortunately, the gridGraphics
R package allows us to reproduce base graphics using the grid
system, which, in combination with the function gridExtra::grid.arrange
will let us put both base and grid graphics in the same page. First me write a func
# Function to map base to grid
map_base_to_grid <- function(fun) {
gridGraphics::grid.echo(fun)
grid::grid.grab()
}
# Mapping base to grid
ig <- map_base_to_grid(function() plot(UKfaculty))
nw <- map_base_to_grid(function() gplot(as.matrix(as_adj(UKfaculty)), coord = l_ukf))
np <- nplot(UKfaculty, layout = l_ukf)
Here is an example with ggraph
# This step is done to set a manual layout
# V(UKfaculty)$x <- l_ukf[,1]
# V(UKfaculty)$y <- l_ukf[,2]
# graph_attr(UKfaculty, "node.positions") <- l_ukf
ggraph::ggraph(UKfaculty) +
ggraph::geom_edge_arc(aes(alpha = ..index..), curvature=.15) +
ggraph::geom_node_point(aes(colour = Group, size=igraph::degree(UKfaculty))) +
ggplot2::theme(legend.position="none")
#> Using `nicely` as default layout
gg <- grid::grid.grab()
# Putting all together
gridExtra::grid.arrange(ig, nw, gg, np, nrow=2, ncol=2)
To arrange multiple plots in the same page we can use the grid.arrange
function from the gridExtra
package
x_igraph <- sample_smallworld(1, 20, 4, .05)
x_network <- intergraph::asNetwork(x_igraph)
l <- layout_nicely(x_igraph)
# Putting two plots in the same page (one using igraph and the other network)
gridExtra::grid.arrange(
nplot(x_igraph, layout = l),
nplot(x_network, layout = l), ncol=2, nrow=1
)
gridExtra::grid.arrange(
nplot(UKfaculty, layout = l_ukf, vertex.size.range = c(.025, .025)),
nplot(UKfaculty, layout = l_ukf, vertex.size.range = c(.01, .025)),
nplot(UKfaculty, layout = l_ukf, vertex.size.range = c(.01, .025, 4)),
nplot(UKfaculty, layout = l_ukf, vertex.size.range = c(.02, .05, 4)),
ncol=2, nrow=2
)
set.seed(12233)
x <- sample_smallworld(1, size = 10, nei = 2, .1)
l <- layout_with_fr(x)
gridExtra::grid.arrange(
nplot(x, layout = l, edge.color = ~ego(mix=0) + alter(mix=1), vertex.size.range = c(.05,.1)),
nplot(x, layout = l, edge.color = ~ego(mix=.5) + alter(mix=.5), vertex.size.range = c(.05,.1)),
nplot(x, layout = l, edge.color = ~ego(mix=1) + alter(mix=0), vertex.size.range = c(.05,.1)),
ncol=3, nrow=1
)
gridExtra::grid.arrange(
nplot(x, layout = l, edge.curvature = 0, vertex.size.range = c(.05,.1)),
nplot(x, layout = l, edge.curvature = pi/2, vertex.size.range = c(.05,.1)),
nplot(x, layout = l, edge.curvature = pi, vertex.size.range = c(.05,.1)),
ncol = 3, nrow=1
)
gridExtra::grid.arrange(
nplot(x, layout = l, edge.line.breaks=3),
nplot(x, layout = l, edge.line.lty = 2, edge.line.breaks=10),
nplot(x, layout = l, edge.line.lty = 3, edge.line.breaks=10),
nplot(x, layout = l, edge.line.lty = 4, edge.line.breaks=10),
nrow=2, ncol=2
)