FIG. 1 schematically illustrates an SRAM cell 110. The SRAM cell 110 comprises first and second drivers N1 and N2. Illustratively, the drivers N1 and N2 are pulldown NMOS devices N1 and N2. The source of N1 112 and the source of N2 114 are connected to a reference voltage Vss which, for example, is ground. The drain 116 of N2 is connected to the gate 118 of N11. The drain 120 of N1 is connected to the gate 122 of N2. The SRAM cell 110 of FIG. 1 also comprises two load devices L1 and L2. The load devices L1 and L2 each have one terminal 124, 126 connected to a supply voltage Vcc and another terminal 128, 130 connected to the drains 120, 116 of N1 and N2, respectively. The supply voltage Vcc is positive with respect to Vss.
The SRAM cell 110 also comprises two additional NMOS devices N3 and N4. The devices N3 and N4 are pass transistors. The gates 132, 134 of N3 and N4 are connected to a wordline whose signal value is designated WORD. The drains 136, 138 of N3 and N4 are connected to bit lines whose signal values are designated BIT and BIT, respectively. The sources 140, 142 of N3 and N4 are connected the drains 120, 116 of N1 and N2, respectively.
To write the cell, DATA (logic "1" or logic "0") is placed on the BIT line and DATA is placed on the BIT line. Then WORD is asserted. A read operation commences by precharging the BIT and BIT lines. The WORD line is asserted and either the BIT or BIT line will be discharged by one of the pull down transistors N1 or N2.
The purpose of the load devices L1 and L2 is to counteract the effect of charge leakage at the drains 120, 116 of N1 and N2. The load devices L1 and L2 may be polycrystalline silicon resistors.
A row 45 of SRAM cells 50 is shown in FIG. 2, where one of the SRAM cells 50 is shown in greater detail. The load devices of the SRAM cell 50 are polysilicon load resistors L.sub.1 and L.sub.2. Parasitic resistance Rvcc form the interconnect resistance between Vcc and the load devices L.sub.1 and L.sub.2 of the cells 50. As shown in FIG. 2, each cell 50 in the row 45 has associated with it an additional unit of parasitic resistance Rvcc. The Vcc interconnect parasitic resistance of each cell 50 is made up of one or more units of Rvcc as shown in FIG. 2. The actual voltage level of the "high" supply voltage received at the cell 50 will be much lower than Vcc if Rvcc is high or if the aggregate interconnect resistance from the Vcc pin to the cell 50 is high (i.e., if the total resistance of multiple internal parasitic resistance Rvcc from the Vcc pin to a specific cell 50 is high). Such a reduction in voltage level in the high supply voltage received at the cell 50 reduces the performance of the cell 50. Therefore, it is desirable for the Vcc interconnect resistance for each cell 50 to be as small as possible.
Lowering the value of the Vcc interconnect parasitic resistance Rvcc reduces the voltage drop between Vcc and the loads L.sub.1 and L.sub.2. This enhances circuit operation and reduces wasted power.
FIG. 3 shows a structure used to implement one leg of a conventional SRAM structure such as shown in FIG. 1. The structure 1 of FIG. 3 comprises a substrate 10 which is, for example, a P-type substrate. A driver device 12 is formed in the substrate 10. The driver device 12 is an NMOSFET and comprise N+ type drain region 14 and N+ type source region 16 which are separated by a channel 18. A thin gate oxide layer 20 is formed over the channel 18. A polysilicon gate 22 is formed over the gate oxide 20.
An inter-poly-dielectric layer (IPD) 30 is formed over the driver device 12. The (IPD) layer has a thickness of 1500 .ANG.-2000 .ANG.. A thick polysilicon layer 80 is formed on the IPD layer 30. A region 82 of the polysilicon layer 80 is heavily doped (N+ type) to form a low resistance Vcc interconnect. A region 84 of the layer 80 is heavily doped (N+ type) to form a low resistance interconnect to the drain region 14 of the driver device. This driver interconnect (also known as poly-2/poly-1 via) extends through a via opening 32 in the IPD layer 30. A region 86 of the polysilicon layer 80 is lightly doped (N-type) to form a poly-load resistance region. (There is also an additional via opening in the IPD layer 30 (not shown) for connecting the interconnect 84 to the gate of another driver.)
A problem with this structure is lateral diffusion from the heavily doped regions 82 and 84 into the lightly doped region 86.
Accordingly, it is an object of the invention to provide an SRAM cell with a poly-load resistor structure which overcomes the problems of the prior art.
Specifically, it is an object of the invention to provide an SRAM cell with a poly-load resistor structure in which lateral diffusion from highly doped interconnect regions into a lightly doped poly-load region is reduced. It is also an object of the invention to provide a method for fabricating such a poly-load resistor structure without increasing the number of photolithographic steps over the number of photolithographic steps used in the prior art.


Pine Creek (Maple River tributary)

Pine Creek is a  tributary of the Maple River in Gratiot and Clinton counties in Michigan.  Via the Maple River, the creek's output flows into the Grand River and then into Lake Michigan.

See also
List of rivers of Michigan

References

Michigan Streamflow Data from the USGS

Category:Rivers of Michigan
Category:Rivers of Gratiot County, Michigan
Category:Rivers of Clinton County, Michigan
Category:Tributaries of Lake Michigan


Destination Unknown (1942 film)

Destination Unknown is a 1942 American thriller film directed by Ray Taylor and starring William Gargan, Irene Hervey and Sam Levene. It was made as a second feature film by Universal Pictures  set in China in World War II.

Cast
William Gargan as Briggs Harrison
Irene Hervey as Elena Varnoff
Sam Levene as Victor
Turhan Bey as Muto
Keye Luke as Secretary
Felix Basch as Karl Renner

Production
Filming started April 1942.

References

External links
Destination Unknown at TCMDB
Destination Unknown at BFI
Destination Unknown at IMDb

Category:1942 films
Category:American films
Category:Universal Pictures films
Category:Films set in China
Category:World War II films made in wartime
Category:Pacific War films
Category:1940s thriller films
Category:American thriller films
Category:American black-and-white films


Q:

Confusing Alphabet Staircase

Given no input, output this interesting alphabet pattern in either case (the case has to be consistent) via an accepted output method:

A
AB
ACBC
ADBDCD
AEBECEDE
AFBFCFDFEF
AGBGCGDGEGFG
AHBHCHDHEHFHGH
AIBICIDIEIFIGIHI
AJBJCJDJEJFJGJHJIJ
AKBKCKDKEKFKGKHKIKJK
ALBLCLDLELFLGLHLILJLKL
AMBMCMDMEMFMGMHMIMJMKMLM
ANBNCNDNENFNGNHNINJNKNLNMN
AOBOCODOEOFOGOHOIOJOKOLOMONO
APBPCPDPEPFPGPHPIPJPKPLPMPNPOP
AQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQ
ARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQR
ASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRS
ATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTST
AUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTU
AVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUV
AWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVW
AXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWX
AYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXY
AZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZ

Trailing spaces and newlines are acceptable, standard loopholes are disallowed, and this happens to be code-golf, so the shortest answer in bytes wins!

A:

Jelly, 9 bytes
ØAjṪ$Ƥż¹Y

Try it online!
How it works
ØAjṪ$Ƥż¹Y  Main link. No arguments.

ØA         Yield "ABCDEFGHIJKLMNOPQRSTUVWXYZ".
     Ƥ     Map the link to the left over all prefixes, i.e., ["A", "AB", ...].
    $        Combine the two links to the left into a chain.
   Ṫ           Tail; yield and remove the last letter of each prefix.
  j            Join the remainder, using that letter as separator.
      ż¹   Zip the resulting strings and the letters of the alphabet.
        Y  Separate the results by linefeeds.

A:

C, 82 bytes
f(i,j){for(i=!puts("A");++i<26;puts(""))for(j=0;j++<i*2;)putchar(65+(j&1?j/2:i));}

Try it online!

A:

R, 50 bytes
l=LETTERS
for(i in 0:25)cat(l[0:i],"
",sep=l[i+1])

Try it online!
Perhaps the cleverest part here is using letters[0] for the empty string to get cat(character(0),'\n',sep="A") to print the first line.


Doctors are recommending that just about everyone in the United States between the ages of 11 and 64 -- especially people who regularly interact with newborns -- get booster shots of the whooping cough vaccine to help battle recent increases of a disease that once was thought to have mostly disappeared.

The vaccine for whooping cough, also known as pertussis, is given to children five times between ages 2 months and 6 years. But the protection wears off just five to 10 years after the last dose, meaning adults who got their childhood vaccination are susceptible to the disease, and even children in middle school and high school are vulnerable, say the American Academy of Pediatrics and the Centers for Disease Control and Prevention.

Cases of whooping cough more than tripled in the United States between 2001 and 2004, according to the CDC. In San Francisco, the number of cases increased by about 60 percent in 2005 over the previous year.

Whooping cough, which got its name from the noise children make when they gasp for breath between violent coughs, is an exhausting and annoying respiratory infection but is not necessarily dangerous in adults and teenagers.

But it can be fatal to young children and babies, who develop terrible coughs that can lead to vomiting and severe dehydration, along with pneumonia, seizures and brain damage in very serious cases. In 2005, seven babies died in California from whooping cough; one baby has died this year.

"The people who suffer the most are the really small ones. They're the ones who die, and they get it even before they're able to get the doses of vaccine," said Celia Woodfill, chief of the immunization branch for the California Department of Health Services. "The people that we would really like to target with this vaccine are people who are going to be parents and extended family of new babies. They call it the cocoon strategy -- we want to protect those babies by vaccinating all the people around them."

Health care experts have long known that whooping cough immunization wouldn't last forever, but for decades physicians didn't bother with a booster shot after age 6. This was because of the side effects of the vaccine -- a lingering fever and intense soreness at the injection site -- and the fact that the disease isn't usually serious in adults.

In the 1980s, scientists developed a better whooping cough vaccine without the side effects, but it was approved only for children. It wasn't until last year that the newer vaccine was approved for adults up to age 64. The vaccine became widely available outside pediatricians' offices just this year.

Still, many physicians who treat only adults aren't giving the whooping cough booster to patients because the vaccine is so new. Health care experts advise adults to insist on the whooping cough vaccine when they go in for their tetanus booster, which is recommended every 10 years.

Adults who have regular contact with newborns -- especially parents, day-care workers and health-care workers -- should get the booster right away, health officials say. Many obstetricians are encouraging entire families -- including extended family members like grandparents who may spend a lot of time with a newborn -- to get booster shots immediately after a baby is born. In March, health officials recommended that all 11- and 12-year-old children receive a whooping cough booster.

"If you see whooping cough in a baby, it's almost always from a mother or a close household contact -- a nanny, a grandma," said Peggy Weintrub, chief of pediatric infectious diseases at UCSF. "There is a push to give this to more people because it's clearly recognized that they're the ones exposing the infants."

Whooping cough made a major resurgence in the United States about five years ago, although the number of cases has been growing every year for the past decade or so. There were 25,827 cases in the United States in 2004 -- way up from the all-time low of 1,010 cases in 1976.

California had 3,172 cases last year and 1,013 cases by the end of August this year -- slightly below last year's 1,276 by the end of August.

San Francisco had 45 cases last year, up from 28 cases in 2004. In 2005, 34 people between the ages of 15 and 54 got whooping cough, compared to 10 in 2004.

San Francisco had reported 25 cases of whooping cough by Aug. 11 this year.

"There's pertussis everywhere, and we're still only detecting the tip of the iceberg," Woodfill said. "We think that actually there's much more disease in adults and adolescents, and they're the ones giving it back to the babies."

The reason whooping cough has been so persistent despite massive immunization efforts in the 1960s and 1970s is that as immunity wore off, enough of the disease remained that it was able to easily spread again.

Also, before the vaccine existed, the vast majority of children and adults kept up a natural immunity over their lifetime because the disease was so prevalent and they were constantly being exposed to it. Mothers were even able to pass on some of that immunity to their newborns.

Physicians also assume that cases of whooping cough probably were underreported during the 1980s and 1990s, when doctors assumed the disease was all but gone and weren't looking for it. In many cases, whooping cough probably was misidentified as bronchitis or, simply, a bad cough. It's only with recent new focus on whooping cough that doctors are reporting more cases of it.

"There are some diseases, like smallpox and polio, that the vaccine could eliminate the disease. But whooping cough, we don't have an immunization that is effective enough that if you gave everyone the vaccine, it would just disappear," said San Francisco pediatrician Dan Kelly. "There will always be a reservoir of whooping cough among people.

"We've let the resistance level in adults get much too low. Childhood immunizations, it turns out they're not just for children."

About the disease

Whooping cough, also known as pertussis, is a highly contagious respiratory infection that causes violent coughing.

Cause: The Bordetella pertussis or B. parapertussis bacteria are spread via coughing and sneezing from an infected person. Symptoms show up a week after exposure and can be similar to the common cold.

Dangers: Whooping cough can be fatal in infants. It also can lead to severe dehydration, pneumonia and brain damage in infants who cannot catch their breath, or who cough so much they vomit. Severe coughing can cause broken ribs in patients of all ages.

Symptoms: Signs of the illness include a high-pitched whooping sound when the patient gasps between coughs, runny nose, slight fever, diarrhea and choking spells.

Treatment: Antibiotics. Cough expectorants and suppressants are not recommended.


Q:

What's the best way to obtain all the combinations (Cartesian product) of lists?

Suppose I have the following.
a = [[1,2,3],[4,5,6],[7,8,9]]
b = [['a','b'],['c','d'],['e','f']]

How do I obtain the following?
[1,2,3,'a','b']
[1,2,3,'c','d']
[1,2,3,'e','f']
[4,5,6,'a','b']
[4,5,6,'c','d']
[4,5,6,'e','f']
[7,8,9,'a','b']
[7,8,9,'c','d']
[7,8,9,'e','f']

A:

from itertools import product
a = [[1,2,3],[4,5,6],[7,8,9]]
b = [['a','b'],['c','d'],['e','f']]

print [x+y for (x,y) in product(a,b)]

A:

In [1]: from itertools import product

In [2]: a = [[1,2,3],[4,5,6],[7,8,9]]

In [3]: b = [['a','b'],['c','d'],['e','f']]

In [4]: map(lambda x: x[0]+x[1], product(a, b))
Out[4]:
[[1, 2, 3, 'a', 'b'],
 [1, 2, 3, 'c', 'd'],
 [1, 2, 3, 'e', 'f'],
 [4, 5, 6, 'a', 'b'],
 [4, 5, 6, 'c', 'd'],
 [4, 5, 6, 'e', 'f'],
 [7, 8, 9, 'a', 'b'],
 [7, 8, 9, 'c', 'd'],
 [7, 8, 9, 'e', 'f']]


Despitehis promise to Bub, Stanley had but a hazy idea how he was to overcome Abner’s opposition and participate in the trip north. When he went to sleep he had only planned to steal away and follow the party till they got far on their way and then boldly join them. When he awoke in the morning he remembered that much of the trip would be made by water and he realized there would be hardly a possibility of his crossing Umbagog lake, following Rapid river, conquering the long stretches of Molechunkamunk and Mooselucmaguntic lakes in the Rangeley chain and arriving at the mouth of the Kennebago river in time to keep abreast of the cruisers. Too proud to confess defeat to the still sleeping Bub, he quietly rose and stole down stairs.

He had begun with the loading gang with much elation; now he loathed it all. But how to win Abner’s consent? Long and hard he weighed this problem, his gaze vacantly fixed on the North. The woods and waters up there seemed to call him in every murmur of the scattered pines near the edge of the settlement. He had yet to learn that these solitary monarchs were left undisturbed because they were already doomed by “red rot,” or cancer, and were unfit for lumber. He only knew the gentle song sung by their boughs was pleading with him to penetrate the fastness of the big woods and seldom-visited streams and lakes.

“If I only knew a little of what Bub knows,” he regretted. This in itself was a goodly sign, for by temperament Stanley was inclined to be overbearing.

Then the bell summoned him to breakfast. He ate scarcely anything, but did not know that Abner had observed his lack of appetite and had applauded it. Nor did he attempt to engage the cruiser in conversation, being now convinced that all entreaty would be useless. As a result he entered upon his dreary task sore at heart and oblivious of all about him.

“Say, Rusty,” broke in White, the boss, “could you find it convenient to wake up and do as told?”

“All right; you’re honest, anyway,” chuckled White. “Run down to the mill and ask McPherson if I’m to keep on with the lumber. And, say, don’t run, walk. Take your time.” The last was occasioned by the tired look about the youth’s eyes. The boss interpreted his haggard expression as being the result of physical exhaustion.

Stanley bowed and hastened to the mill. As he entered he was sorry to see Abner and Bub talking with Hatton. The sight of his room-mate recalled to his mind what he must miss, and for the moment he was selfish enough to envy the happy faced fellow. Then, ashamed of this selfish emotion, he turned to leave and, was only restrained by a glimpse of McPherson coming towards him, walking through a storm of sawdust.

As he waited, his eyes always returning to the bowed form of Abner, the latter backed away from Hatton, and catching his heel on the end of a board started to fall backward. Before he realized his own action, Stanley had leaped forward and had hurled the cruiser violently forward, causing him to bump into Hatton.

“What in sin—” Abner began to protest, when he stopped, his wrinkled face turning white.

He pointed a trembling hand at a small saw, revolving silently, and Hatton nodded his head to show that he understood. If it had not been for Stanley he would have fallen upon this and death must have been the result. Bub, quick of eye, pointed to Stanley’s sleeve, where the sharp teeth had slit the cloth like a razor. Actuated by one impulse the group moved for the door, where Stanley delivered his message to McPherson.

As he was about to return to his work Abner stayed his steps, saying, “Why ain’t ye gittin’ ready to start with us? We won’t wait a second for ye; not by a long chalk.”

“Do you mean I can go?” asked Stanley, hardly believing his senses.

“No, he does not,” quickly broke in Hatton. “He feels obliged to you for pushing him off the saw. That’s natural. But anyone would have done the same. Hardly a day goes by but what some man lends a hand to prevent injury to another. That’s all in a day’s work. But you can’t make the wood trip. Go back to your work.”

“If ye could only see it plain to let him come,” pleaded Abner.

“No, sirreel There’s too much at stake to risk a misfire just to please a homeless boy. He obtained work in the kitchen and got into a fight. McPherson interceded and I allowed him to stay. Now he wants to jump that job, it seems. By the time you struck Kennebago stream he would be wanting to return.”

“I’d never want to turn back,” cried Stanley. “I’d die first.”

“Which would inconvenience Whitten. Return to the gang, or get your time,” coldly directed Hatton.

Stanley’s eyes filled and his heart seemed as if it would burst. Then he wheeled and walked back to the manager, his face strained and his eyes feverish. “If I can give you one practical idea which you will adopt, will you let me make the cruise?” he asked in a hoarse voice.

Hatton’s first impulse was to repulse him harshly; but he changed his mind and in a sneering tone replied, “If you can give any idea that I will adopt you may make the trip. If you don’t give me such an idea you take your time and hunt a new job. I can’t afford to have young men around of your importance. You must make good your bluff, or clear out. What is this wonderful idea of yours?”

“Ever since Bub pitched into me last night for not using my eyes and brains, even in loading pulp and lumber, I’ve been thinking and thinking; so if the idea is any good a part of the credit is due to him—”

“Leave out all this explanation. What is the idea?” barked Hatton.

“It’s this,” desperately replied Stanley; “pipe the pulp to the paper mill instead of pressing it out in squares and sending it by cars.”

“It struck me as practical,” cried Stanley, believing his last chance to be gone, including an opportunity of earning a bed and board. “They sluice logs from Peppercorn to Richardson lake. Even a six feet drop, the men tell me, is sufficient in a mile sluiceway. It’s a sharp grade to the paper mills below. You’d only have to be careful that there were no pockets for the pulp to settle in and harden. It seemed to me that it would be considerably cheaper than hiring men to press and load and transport and unload the pulp.”

“When did you think of that scheme?” asked Hatton in a low voice, never removing his searching gaze.

“This morning, while waiting for the seven o’clock whistle. I was hating the work, to be honest, and wondering how it could be done away with,” mumbled Stanley, shifting uneasily from foot to foot.

“And that is your idea?” continued Hatton in the same voice.

“Yes; I know it isn’t much. It seemed a good one when I first thought of it,” surrendered Stanley. “But I can see now that if it were any good a man of your experience would have thought of it. So, I’ll get my time and quit. Good-by, Bub.” And he turned aside as he extended his hand; for he had grown to love Bub without knowing it, and he feared that tears would fill his eyes and cause him to appear unmanly.

“McPherson,” called Hatton loudly. “Put another man on the loading gang in place of Reddy. He’s going north on the cruise. And, McPherson, send the surveyor up to the office and get me figures on a couple of miles of sewer pipe. Hope you have a good trip, Whitten. Don’t come back unless you win out.”

Neither of the astounded trio could believe his ears. Hatton had nearly gained his office before a word was said, and then Abner yelled, “Wal, I vum!”

“Of course he’s sure, ye young inventor,” heartily assured Abner. “Pipe line for pulp. Pulp pipe line. Who’d a thought it? And all out of his own head! And the boss never thought of it. Bet he gits a letter of thanks and a raise in pay for his ‘idea.’ Wal, wal, wal.”

“Stanley, I take it all back,” said Bub in an awed voice. “To think of your going to work and thinking that out all alone. What I told you someone had told me, but you make an entirely new thought.”

“I never would have thought of it if you hadn’t dinged into me so and if Abner hadn’t refused to take me along,” reminded the happy youth.

“Stop talking and git ready. The gas boat is waiting at the landing,” commanded Abner, once again assuming the role of timber cruiser.

The delighted youths sprinted to the boarding house where Bub’s slender outfit was ready to be strapped on his back.

“I’ve got some extra blankets,” bubbled Bub. “That’s all you need till we strike the Kennebago wangan. There you’ll be outfitted like the rest of us. This is going to be a very lively trip, my son.”

“It can’t be too lively for me,” joyously proclaimed Stanley.

“It can for me,” soberly declared Bub. “I’ve been in the woods lots of times, and when you git way in things seem different. I shouldn’t be surprised if you had some of the starch taken out of your courage before you see the mills again.”

“Pooh, pooh,” belittled Stanley. “We’re four and need not be afraid of anything. I say, Abner, why do we carry so many rifles? I thought game was protected at this time of year.”

“Some critters are never protected by game laws,” grimly replied Abner.

“Bears and panthers?” hazarded Stanley.

“The bears won’t hurt us, I guess. And what ye call panther is at the worst the Canadian lynx, that only fights men when cornered. But there is other critters I won’t mention and hope we won’t meet. Here comes Noisy Charlie, on time to a second as usual.”

This was the guide, an Indian. He had been nicknamed “Noisy” because it was seldom one heard him speak. The lumber men thought it a good jest to represent him to strangers as being loquacious.

“This young man goes With us, Charlie,” informed Abner as the Indian took the lead, walking with long strides.

A guttural sound was the only acknowledgment Charlie made. The others seemed infected by his silence and hardly a word was spoken till the wharf was reached. Then Abner gave sharp commands and the motor boat was headed for Rapid river.

But youth will have its way and before the little craft had chugged a mile on its course Stanley and Bub were evidencing their high spirits by a rapid fire of questions and jokes. Even Abner melted a bit beneath their sallies, while Charlie expanded his nostrils and stared dreamily at the hill covered shores.

“Why do you start so early on a cruise?” asked Stanley, now hungry for information.

“Leaves ain’t out and we can see better,” mumbled Abner.

“I’ve been out on the crust. That’s lots of fun,” cried Bub.

“Crust no good,” muttered Charlie. “Deer hear; no shoot.”

“Eating’s more necessary than good walking,” agreed Abner, smacking his thin lips at the mention of venison.

In a short time Rapid river was reached. Here the boat was abandoned. A three mile tramp brought the party to a second motor boat belonging to the company. This boat made the entire trip through the great lakes to the mouth of the Kennebago, where the four landed and struck into a tote road.

“I thought we were to make the trip by canoe,” remarked Stanley, beginning to feel a bit disappointed.

“We’ll walk about a mile and then we’ll strike the wangan and our eighteen foot canoe,” whispered Bub. “Want to go on ahead? I’ll show you a good trick. Can I show Stanley my crow trick?” The last to Abner.

“Wal, I don’t know as we’ll have time,” Abner was beginning to refuse when Charlie grunted, “Good trick. Make fool of crow.”

“Go ahead, but don’t git lost,” warned Abner.

Bub sprang ahead, closely followed by Stanley. Making a sharp detour to the left he forced his way some distance through the rank growth till he came to the edge of a bog, or swamp. Here he stationed Stanley in some bushes, and warning him to keep perfectly quiet, took up a position at the foot of a scraggly pine. First he drew his coat collar up over his head and thrust his hands into his pockets. Then he began making a choking sound, a most alarming noise to Stanley. Almost as soon as Bub began his vocal efforts a crow cawed excitedly from the other side of the swamp. The cry was taken up and repeated from all points of the compass, and to Stanley’s great amazement a score of black winged investigators swept into the small clearing. Stanley rubbed his eyes in wonderment to see the crows circle about the bowed figure and then fiercely assail it. More came, and more, until the air was black with them. Stanley estimated that fully two hundred were buffeting and pecking at Bub’s silent form. And the choking sound continued. The crows now seemed like demons, red of eye and bristling of feather. Their harsh, discordant voices seemed fairly to scream as they renewed their attacks.

Then Stanley received his second surprise. Bub beat a hand against his leg and hooted like an owl. Instantly every crow turned in flight and faded from view like so many black shadows.

“But what does it all mean?” begged Stanley, as Bub proudly arranged his collar and left the tree.

“The choking sound was a young crow being choked to death,” he explained. “The minute a crow heard it he gave the signal and the warning was cawed from crow to crow. ‘Come-and—bring-help,’ was what the first feller said. The next came on the jump, sending back word over his shoulder. If I’d kept on I’d had every crow in the plantation here.”

“But why did they leave?” puzzled Stanley.

“Why, when I slapped my leg they thought it was the flap of a wing. Then I hooted like an owl and they felt sure Mister Owl was in their midst. Funny thing, a crow is mighty curious and smart, but they are easily fooled. They know when a man has a gun and all that. But they ain’t learned that owls hunt at night. Queer, eh?”

For an answer Bub picked up a stick and threw it into the thicket. Then he dashed forward, only to soon return carrying in his arms a stupid looking fowl, dark of body and barred with darker colors.

“It’s a booby,” he explained, holding the bird out at arm’s length and surveying it critically. “It’s a wonder he ever grows up. He won’t run when you throw things at him. He’s simply stupid. That’s why they call him booby. He’s really a Canadian grouse. Up here they’re called spruce partridge. They’re good to eat, but taste a little strong. Go it!” And he tossed the bird from him. With a low squawk it ambled leisurely into the bushes.

“This life is great,” cried Stanley, enthusiastically, throwing back his shoulders and breathing deep and long.

“We haven’t started yet,” smiled Bub. “It’s been easy going so far; but wait. My, but it’s getting late. We must hurry.”

“There is nothing to hurt us, is there?” asked Stanley, quickening his pace.

“N-o,” replied Bub, “but there are easier things than tote roads to follow, once the sun gits down. And when it’s dark up here, it’s real dark; none of your village darkness, but so black you can’t cut it with a knife.”

“Here’s the road,” cried Stanley, his voice much relieved.

“But not our road,” corrected Bub. “That was made last year. It leads in where we came from. This is ours dead ahead. See how it’s filling up with alders and willers and shad—bushes.”

“You’ve been over it before,” observed Stanley.

“No,” said Bub, “My first trip.”

“How do you know it then?”

“I know we should go north and that this is the old tote road. One on the other side just like it. Leads up to the lake. The bushes don’t fool me ’cause I can see the old timbers left from the first swamping. Now we come to a bit of corduroy road—or poles laid across.”

“Kind of tough walking,” muttered Stanley, as a limb sprang back and left a livid welt across his forehead.

“O this ain’t bad,” encouraged Bub. “See, here’s where Abner and Charlie went through and Abner got into the muck. See, here’s where he slipped off the ends of the poles. Some bad places in here, too. A little later we might find some snakes.”

“The nights are pretty cold up here way into June or July,” comforted Bub. “Push on faster. When the sun goes behind that mountain it’s going to be some dark in this neighborhood.”

Even as he spoke the shadows began to filter through the swamp and in what seemed to Stanley to be an exceedingly short space of time Bub ahead was but a blur.

“Don’t hustle so,” cried Stanley. “I’m not used to this work. Guess I’ve lost both of my eyes.”

“Hold your head down,” warned Bub, pausing.

“What if we get lost?” asked Stanley in a hushed voice.

“Camp and build two fires near together. Two smokes means ‘lost’ to Abner and me. I’m glad you spoke of it,” said Bub.

The next few rods were covered in silence, and as the two came to a rest Stanley leaped frantically into the air, crying out in inarticulate horror, as a loud “Wish—h-h” hissed at his heels.

“What—what was it?” he half sobbed, crowding close to Bub.

That young gentleman laughed until too weak to laugh longer. Then he pounded Stanley on the back until the latter threatened to get angry.

“O Stanley, Stanley! You’ll finish me yet. I never knew you were a record breaker on jumping. What did you think that was?”

“It sounded like a cat spitting, only more dangerous,” sullenly replied Stanley.

“It was a little brown thrasher. She use to scare me before I knew. Really, old feller, if you could have seen—Ha! ha!”

“Quit it! Let’s be moving,” grumbled Stanley.

This admonition was timely, as the shadows now were very thick and the crude traces of the tote road were rapidly being blotted from the view of even the keen-eyed Bub.

“I think we are about there,” Bub was saying, when right beside them the night was made hideous with notes of wrath. The uproar consisted of snarling and growling, ranging from a bass to a shrill key, and each note a menace.

Even Bub lost his composure and with a frightened ejaculation jumped ahead. Stanley kept at his heels, his heart beating wildly.

“Sprint!” hoarsely directed Bub, as they reached a clear space and beheld the light of the wangan twinkling ahead.

“What was it?” cried Stanley, his breath coming in great lumps.

“Slow down; here’s the men,” panted Bub.

“What you two running for?” demanded Abner as he came up to the exhausted youths.

“Only a little race,” replied Bub, speaking with difficulty.

“White face,” said Noisy Charlie as they entered into the rays of the kerosene lamp.

“I vum! but ye look as if ye’d seen a ghost. What was it?” asked Abner.

Abner reached for his rifle, but Noisy Charlie stayed him by asking, “Make sound like this?” And the youths jumped convulsively from the open doorway and wheeled about with their eyes filled with horror. But Charlie was the author of the alarm.

“It was just like that,” said Bub.

“Two foxes fighting,” said Charlie, his lips twitching for a second. “Face red now.” Stanley and Bub retired to the shadows.


Staudle powers Cornwall to Section 9 Class A soccer title

MIDDLETOWN — When you have scored as many goals as Caroline Staudle has for Cornwall ...

Ken McMillan

MIDDLETOWN — When you have scored as many goals as Caroline Staudle has for Cornwall, one doesn't seem any more special than the other.

At least that's the way Staudle looks at her game-winner on Sunday in Cornwall's 2-0 victory over Red Hook in the Section 9 Class A girls' soccer championship match.

“I don't even know what to say,'' Staudle said of her 30th goal of the season. “I knew if we kept shooting, one would eventually go in.''

Staudle had a number of opportunities in the first half but Red Hook's defense and goalie Ashley Pica responded well. Less than five minutes before halftime, Lexie Modlinski found Staudle on the top right side of the penalty area and she got off a quick shot from 14 yards that went across the grain and into the lower left corner of the net.

“That was a darn good goal,” Cornwall coach Rick Miller said.

“She's a fighter, she's relentless,'' said co-captain Ally LaGrutta of Staudle. “She always comes up big in those situations.

Staudle set up a 13-yard rising rip by Modlinski with 14:09 left in the second half, securing the win and Cornwall's sixth consecutive sectional title.

“It's pretty bittersweet,'' LaGrutta said, “because I'm getting toward the end, but it's the best feeling ever. It's a great way to go out in my senior year.''

Cornwall continues to be successful with its alternating goalies – Cathy Eliasson made four saves in the first half and Laurel Schuster had a more challenging six stops. Pica made eight stops for Red Hook (14-2-3).

Cornwall (14-1) will play the Section 1 winner in the first round of the state tournament at 1 p.m. Saturday at Arlington High School in Freedom Plains. The Dragons have won 11 sectional titles but have reached the state semifinals just once, losing in 2005.

“This team is really ready to do something big that Cornwall hasn't done before,'' LaGrutta said.

“I have confidence every year,'' Miller said, citing recent hard-luck losses to Rye and Somers in the state tournament the past two seasons. “It's not like we're not in the games or not playing with confidence ... we just can't get over that jump. I do feel good about this year.''


<!doctype html>

  <title>paper-card demo</title>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">

  <link rel="import" href="../../iron-demo-helpers/demo-snippet.html">
  <link rel="import" href="../../iron-demo-helpers/demo-pages-shared-styles.html">

  <link rel="import" href="../../iron-collapse/iron-collapse.html">
  <link rel="import" href="../../iron-icons/iron-icons.html">
  <link rel="import" href="../../iron-icons/communication-icons.html">
  <link rel="import" href="../../iron-icons/hardware-icons.html">
  <link rel="import" href="../../iron-icons/social-icons.html">
  <link rel="import" href="../../iron-flex-layout/iron-flex-layout.html">
  <link rel="import" href="../../paper-button/paper-button.html">
  <link rel="import" href="../../paper-checkbox/paper-checkbox.html">
  <link rel="import" href="../../paper-icon-button/paper-icon-button.html">
  <link rel="import" href="../../paper-styles/color.html">
  <link rel="import" href="../../paper-styles/typography.html">
  <link rel="import" href="../paper-card.html">

A paper-card with a simple heading, header image, body content, and actions

      <demo-snippet>
        <template>
          <paper-card heading="Emmental" image="http://placehold.it/350x150/FFC107/000000">

              Emmentaler or Emmental is a yellow, medium-hard cheese that originated in the area around Emmental, Switzerland. It is one of the cheeses of Switzerland, and is sometimes known as Swiss cheese.

              <paper-button>Share</paper-button>
              <paper-button>Explore!</paper-button>

          </paper-card>
        </template>
      </demo-snippet>

Paper-cards can contain advanced content

      <demo-snippet>
        <template>

            <paper-card image="./donuts.png">

Cafe Basilico

                    <iron-icon icon="communication:location-on"></iron-icon>
                    250ft

                  <iron-icon class="star" icon="star"></iron-icon>
                  <iron-icon class="star" icon="star"></iron-icon>
                  <iron-icon class="star" icon="star"></iron-icon>
                  <iron-icon class="star" icon="star"></iron-icon>
                  <iron-icon class="star" icon="star"></iron-icon>

$・Italian, Cafe

Small plates, salads & sandwiches in an intimate setting with 12 indoor seats plus patio seating.

Tonight's availability

                  <paper-icon-button icon="icons:event"></paper-icon-button>
                  <paper-button>5:30PM</paper-button>
                  <paper-button>7:30PM</paper-button>
                  <paper-button>9:00PM</paper-button>

                <paper-button class="cafe-reserve">Reserve</paper-button>

            </paper-card>
        </template>
      </demo-snippet>

Paper-cards can have a horizontal image

      <demo-snippet>
        <template>

          <paper-card class="rate">

Rate this album

Mac Miller

Live from space

                <paper-icon-button class="rate-icon" icon="star"></paper-icon-button>
                <paper-icon-button class="rate-icon" icon="star"></paper-icon-button>
                <paper-icon-button class="rate-icon" icon="star"></paper-icon-button>
                <paper-icon-button class="rate-icon" icon="star"></paper-icon-button>
                <paper-icon-button class="rate-icon" icon="star"></paper-icon-button>

          </paper-card>
        </template>
      </demo-snippet>

Paper-cards can have expanded supporting text

      <demo-snippet>
        <template>
          <paper-card heading="Top western road trips" image="./trip.png" class="white">

1,000 miles of wonder

              <paper-button>Share</paper-button>
              <paper-button>Explore</paper-button>
              <paper-icon-button
                icon="hardware:keyboard-arrow-up"
                title="more info"
                onclick="_toggle()"
                style="float:right;">
              </paper-icon-button>
              <iron-collapse id="more-info" style="width:100%;">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent enim ante, tempus eget volutpat ac, cursus ac ante. Nulla facilisi. Praesent sed lacinia ligula. Donec malesuada nisl eget quam iaculis, vel placerat justo cursus.
              </iron-collapse>

          </paper-card>
        </template>
      </demo-snippet>

Paper-cards can be organized in different collections

Same layout, different content

      <demo-snippet>
        <template>

          <paper-card heading="Pre-fab homes" image="./house.png" class="white" style="margin-bottom:8px;">

              <paper-icon-button icon="favorite"></paper-icon-button>
              <paper-icon-button icon="bookmark"></paper-icon-button>
              <paper-icon-button icon="social:share"></paper-icon-button>

          </paper-card>

            <paper-card heading="Favorite trips" image="./trip.png" class="white" style="margin-right:4px;">

                <paper-icon-button icon="favorite"></paper-icon-button>
                <paper-icon-button icon="bookmark"></paper-icon-button>
                <paper-icon-button icon="social:share"></paper-icon-button>

            </paper-card>
            <paper-card heading="Best airlines" image="./travel.png" class="white" style="margin-left:4px;">

                <paper-icon-button icon="favorite"></paper-icon-button>
                <paper-icon-button icon="bookmark"></paper-icon-button>
                <paper-icon-button icon="social:share"></paper-icon-button>

            </paper-card>

        </template>
      </demo-snippet>

Different layout and content

      <demo-snippet>
        <template>

            <paper-card heading="Call Jennifer" class="cyan">

                <paper-icon-button icon="communication:call" style="color:white;"></paper-icon-button>
                March 19, 2017

            </paper-card>
            <paper-card class="dark">

Groceries:

                <paper-checkbox>almond milk</paper-checkbox>
                <paper-checkbox>coconut water</paper-checkbox>
                <paper-checkbox>cheese</paper-checkbox>
                <paper-checkbox>green apples</paper-checkbox>

                <paper-icon-button icon="communication:location-on" style="color:white"></paper-icon-button>
                Campbell

            </paper-card>
            <paper-card heading="clean desk" class="lime"></paper-card>
            <paper-card image="./donuts.png" class="amber">

New cafe opened on Valencia St.

            </paper-card>
            <paper-card heading="Yuna tickets on sale 6/24" class="cyan">
            </paper-card>

        </template>
      </demo-snippet>


Accessing stable zirconium carboxy-aminophosphonate nanosheets as support for highly active Pd nanoparticles.
Thin nanosheets from a layered zirconium phosphate-carboxyphosphonate is reported here. Small Pd nanoparticles have been supported on these nanosheets by an efficient method. The resulting Pd-catalyst was fully characterized and tested in the Suzuki-Miyaura coupling. The catalytic system proved its efficiency as it was reused for several cycles and showed low Pd leaching.


Q:

How do I add a transparent arrow that changes color between two points to a plot in R?

Can I use the arrow() function in R to plot a transparent arrow between two points that changes color? For example, an arrow that starts out as red at one point, and gradually changes to blue at the other point (both points are on the same row in a dataframe)? If so, how? And if not, is there another function that can do that in R?
Here is the piece of code I have until now, which draws points (blue and red) and connects the blue points with the red points with transparent blue arrows:
par(xpd=NA, mfrow=c(1,1), mar=c(4.25,3.2,6.20,3.55))
plot(data$x1,data$y1,col="red",pch=20,cex=0.6,xlim=c(xmin,xmax),ylim=c(ymin,ymax),axes=FALSE,ann=FALSE,xaxt='n',yaxt='n')
par(new=T)
plot(data$x2,data$y2,col="blue",pch=20,cex=0.6,xlim=c(xmin,xmax),ylim=c(ymin,ymax),axes=FALSE,ann=FALSE,xaxt='n',yaxt='n')
par(new=T)
plot(grid.picture(NLmap[-1]),xlim=c(xmin,xmax),ylim=c(ymin,ymax),axes=FALSE,ann=FALSE,xaxt='n',yaxt='n')
par(new=T)

points(data$x1,data$y1,col="red",pch=20,cex=0.25)
par(new=T)
points(data$x2,data$y2,col="blue",pch=20,cex=0.25)
par(new=T)

arrows(data$x1,data$y1, data$x2, data$y2, length = 0.05, angle = 30,
   code = 2, col = "#9AC0CD40", lty = par("lty"), lwd = par("lwd"))

Hope this helps!

A:

First of all, I should mention that my answer is directly derived from the information provided in the comments and the answer by DWin. I had never seen those functions before, so I thought I would give them a shot.
I ended up creating a little function that works like arrows except a colour scale is added. I think this is essentially what you want.
require(plotrix)

color.scale.arrow = function(x1,y1,x2,y2,first.col,second.col,
lwd= par('lwd'),lty=par('lty'),angle=30,length=0.25) {
        x=mapply(seq,x1,x2,length.out=256) # Each column is one arrow
        y=mapply(seq,y1,y2,length.out=256) # Each column is one arrow

        arrows(x[255,],y[255,],x[256,],y[256,],
               col=ifelse(y[256,]<y[255,],first.col,second.col),
               lwd=lwd,lty=lty,angle=angle,length=length)

        rgb1=col2rgb(first.col)[,1] / 255
        rgb2=col2rgb(second.col)[,1] / 255
        cols=rbind(rgb1,(rgb1 + rgb2) / 2,rgb2)

        invisible(
              sapply(seq(ncol(x)),function(line)
                  color.scale.lines(x[,line],y[,line],
                  cols[,'red'],cols[,'green'],cols[,'blue'],
                  lwd=lwd,lty=lty)
              )
       )
}

# Create sample data
set.seed(1)
x <- runif(12); y <- rnorm(12)
i <- order(x,y); x <- x[i]; y <- y[i]
x1=x[s]
x2=x[s+1]
y1=y[s]
y2=y[s+1]

# Plot sample data
plot(x,y, main='', type='n')
color.scale.arrow(x1,y1,x2,y2,'red','blue',lwd=2)

The arrow head will have a colour that matches the 'end' colour given in color.scale.arrow.


Q:

How to find data for last 20 tuesdays

I want to find data for the last 20 Tuesday.
        Date                    value
2020-03-03 01:12:15               5
2020-02-25 07:12:15               13
2020-02-24 08:12:15               1
2020-02-23 09:12:15               32
2020-02-22 10:12:15               7
2020-02-21 11:12:15               43
2020-02-20 12:12:15               7
2020-02-19 13:12:15               1
2020-02-18 14:12:15               31
2020-02-17 15:12:15               14

and so one
My desired output is
        Date                    value
2020-03-03 01:12:15               5
2020-02-25 07:12:15               13
2020-02-18 14:12:15               31

and so on

A:

Is this what you want?
select t.*
from t
where weekday(date) = 2
order by date desc
limit 3  -- or 20


# -*- coding: utf-8 -*-
import datetime
import json
from .. import base

from girder.api import access, describe, docs
from girder.api.rest import Resource, filtermodel
from girder.constants import AccessType, registerAccessFlag, VERSION
from girder.models.setting import Setting
from girder.models.user import User
from girder.settings import SettingKey

server = None
Routes = [
    ('GET', (), ''),
    ('GET', (':id',), '/{id}'),
    ('UNKNOWN', (':id',), '/{id}'),
    ('GET', (':id', 'action'), '/{id}/action'),
    ('GET', ('action',), '/action'),
    ('PUT', ('action',), '/action'),
    ('POST', ('action',), '/action'),
    ('PATCH', ('action',), '/action'),
    ('DELETE', ('action',), '/action'),
    ('NEWMETHOD', ('action',), '/action'),
    ('UNKNOWN', ('action',), '/action'),
    ('GET', ('action', ':id'), '/action/{id}'),
    ('GET', ('noaction',), '/noaction')
    ]

class DummyResource(Resource):
    def __init__(self):
        super().__init__()
        self.resourceName = 'foo'
        for method, pathElements, _testPath in Routes:
            self.route(method, pathElements, self.handler)

    @access.public
    @describe.describeRoute(
        describe.Description('Does nothing')
    )
    def handler(self, **kwargs):
        return kwargs

testModel = {
    'id': 'Body',
    'require': 'bob',
    'properties': {
        'bob': {
            'type': 'array',
            'items': {
                'type': 'integer'
            }
        }
    }
}
docs.addModel('Body', testModel, resources='model')

globalModel = {
    'id': 'Global',
    'properties': {}
}
docs.addModel('Global', globalModel)

class ModelResource(Resource):
    def __init__(self):
        super().__init__()
        self.resourceName = 'model'
        self.route('POST', (), self.hasModel)

    @access.public
    @describe.describeRoute(
        describe.Description('What a model')
        .param('body', 'Where its at!', dataType='Body', required=True,
               paramType='body')
    )
    def hasModel(self, params):
        pass

def setUpModule():
    global server
    server = base.startServer()
    server.root.api.v1.accesstest = DummyResource()
    server.root.api.v1.modeltest = ModelResource()

def tearDownModule():
    base.stopServer()

class ApiDescribeTestCase(base.TestCase):
    """
    Makes sure our swagger auto API docs are working.
    """

    def testApiBrandName(self):
        resp = self.request(path='', method='GET', isJson=False)
        self.assertStatusOk(resp)
        body = self.getBody(resp)

        defaultBrandName = Setting().getDefault(SettingKey.BRAND_NAME)
        self.assertTrue(('<title>%s - REST API Documentation</title>' % defaultBrandName) in body)

        Setting().set(SettingKey.BRAND_NAME, 'FooBar')
        # An other request to check if the brand name is set
        resp = self.request(path='', method='GET', isJson=False)
        self.assertStatusOk(resp)
        body = self.getBody(resp)
        self.assertTrue(('<title>%s - REST API Documentation</title>' % 'FooBar') in body)

        Setting().unset(SettingKey.BRAND_NAME)
        resp = self.request(path='', method='GET', isJson=False)
        self.assertStatusOk(resp)
        body = self.getBody(resp)
        self.assertTrue(('<title>%s - REST API Documentation</title>' % defaultBrandName) in body)

    def testInvalidResource(self):
        methods = ['DELETE', 'GET', 'PATCH', 'POST', 'PUT']

        for m in methods:
            resp = self.request(path='/not_valid', method=m, isJson=False)
            self.assertStatus(resp, 404)

        methods.remove('GET')
        for m in methods:
            resp = self.request(path='', method=m, isJson=False)
            self.assertStatus(resp, 405)

    def testApiDescribe(self):
        # Get coverage for serving the static swagger page
        resp = self.request(path='', method='GET', isJson=False)
        self.assertStatusOk(resp)

        # Test top level describe endpoint
        resp = self.request(path='/describe', method='GET')
        self.assertStatusOk(resp)
        self.assertHasKeys(resp.json, ('basePath', 'host', 'definitions',
                                       'info', 'paths', 'swagger', 'tags'))
        self.assertHasKeys(resp.json['info'], ('title', 'version'))
        self.assertEqual(resp.json['swagger'], describe.SWAGGER_VERSION)
        self.assertEqual(resp.json['info']['version'], VERSION['release'])
        self.assertIn('/group', resp.json['paths'])
        self.assertIn({'name': 'group'}, resp.json['tags'])
        self.assertHasKeys(
            resp.json['paths']['/group'], ('get', 'post'))
        self.assertHasKeys(
            resp.json['paths']['/group']['get'],
            ('operationId', 'parameters', 'responses'))
        self.assertHasKeys(
            resp.json['paths']['/group']['post'],
            ('operationId', 'parameters', 'responses'))
        self.assertGreater(len(
            resp.json['paths']['/group']['get']['operationId']), 0)
        self.assertGreater(len(
            resp.json['paths']['/group']['get']['parameters']), 0)
        self.assertGreater(len(
            resp.json['paths']['/group']['get']['responses']), 0)
        param = resp.json['paths']['/group']['get']['parameters'][0]
        self.assertHasKeys(
            param,
            ('description', 'in', 'name', 'required', 'type'))
        self.assertGreater(len(param['description']), 0)
        self.assertGreater(len(param['in']), 0)
        self.assertGreater(len(param['name']), 0)
        self.assertGreater(len(param['type']), 0)
        self.assertTrue(isinstance(param['required'], bool))
        self.assertIn(
            '200',
            resp.json['paths']['/group']['get']['responses'])
        self.assertIn(
            'description',
            resp.json['paths']['/group']['get']['responses']['200'])

    def testApiDescribeReferred(self):
        resp = self.request(path='/describe', method='GET')
        self.assertStatusOk(resp)
        self.assertEqual(resp.json['basePath'], '/api/v1')
        self.assertEqual(resp.json['host'], '127.0.0.1')
        resp = self.request(
            path='/describe', method='GET',
            additionalHeaders=[('Referer', 'http://somewhere.com/alternate/api/v1')])
        self.assertStatusOk(resp)
        self.assertEqual(resp.json['basePath'], '/alternate/api/v1')
        self.assertEqual(resp.json['host'], 'somewhere.com')

    def testRoutesExist(self):
        # Check that the resources and operations exist
        resp = self.request(path='/describe', method='GET')
        self.assertStatusOk(resp)
        self.assertHasKeys(
            resp.json['paths'],
            ('/foo', '/foo/{id}', '/foo/{id}/action', '/foo/action',
             '/foo/action/{id}', '/foo/noaction'))
        self.assertHasKeys(
            resp.json['paths']['/foo'],
            ('get',))
        self.assertEqual(len(resp.json['paths']['/foo']), 1)
        self.assertHasKeys(
            resp.json['paths']['/foo/{id}'],
            ('get', 'unknown'))
        self.assertEqual(len(resp.json['paths']['/foo/{id}']), 2)
        self.assertHasKeys(
            resp.json['paths']['/foo/{id}/action'],
            ('get',))
        self.assertEqual(len(resp.json['paths']['/foo/{id}/action']), 1)
        self.assertHasKeys(
            resp.json['paths']['/foo/action'],
            ('get', 'put', 'post', 'patch', 'delete', 'newmethod', 'unknown'))
        self.assertEqual(len(resp.json['paths']['/foo/action']), 7)
        self.assertHasKeys(
            resp.json['paths']['/foo/action/{id}'],
            ('get',))
        self.assertEqual(len(resp.json['paths']['/foo/action/{id}']), 1)
        self.assertHasKeys(
            resp.json['paths']['/foo/noaction'],
            ('get',))
        self.assertEqual(len(resp.json['paths']['/foo/noaction']), 1)

    def testAddModel(self):
        resp = self.request(path='/describe')
        self.assertStatusOk(resp)
        self.assertTrue('definitions' in resp.json)
        self.assertHasKeys(('Body', 'Global'), resp.json['definitions'])
        self.assertEqual(resp.json['definitions']['Body'], testModel)
        self.assertEqual(resp.json['definitions']['Global'], globalModel)

    def testAutoDescribeRoute(self):
        testRuns = []

        registerAccessFlag('my_flag', name='My flag')

        class AutoDescribe(Resource):
            def __init__(self):
                super().__init__()
                self.resourceName = 'auto_describe'
                self.route('GET', ('test',), self.test)
                self.route('POST', ('body',), self.body)
                self.route('POST', ('json_body',), self.jsonBody)
                self.route('POST', ('json_body_required',), self.jsonBodyRequired)
                self.route('GET', ('model_param_flags',), self.hasModelParamFlags)
                self.route('GET', ('model_param_query',), self.hasModelQueryParam)
                self.route('GET', ('json_schema',), self.hasJsonSchema)
                self.route('GET', ('missing_arg',), self.hasMissingArg)

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('test')
                .param('b1', '', dataType='boolean', required=False, default=True)
                .param('b2', '', dataType='boolean', required=False)
                .param('float', '', dataType='number', required=False, default=1.0)
                .param('integer', '', dataType='integer', required=False)
                .param('timestamp', '', dataType='dateTime', required=False)
                .param('datestamp', '', dataType='date', required=False)
                .param('string', '', enum=['hello', 'world'], strip=True, lower=True)
                .param('upper', '', required=False, upper=True)
                .jsonParam('json1', '', required=False, requireArray=True)
                .jsonParam('json2', '', required=False, requireObject=True, default={})
            )
            def test(self, b1, b2, string, upper, integer, float, timestamp, datestamp, json1,
                     json2, params):
                testRuns.append({
                    'b1': b1,
                    'b2': b2,
                    'string': string,
                    'upper': upper,
                    'integer': integer,
                    'float': float,
                    'timestamp': timestamp,
                    'datestamp': datestamp,
                    'json1': json1,
                    'json2': json2
                })

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('body')
                .param('body', '', required=False, paramType='body')
            )
            def body(self, body):
                testRuns.append({
                    'body': body
                })

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('json_body')
                .jsonParam('json_body', '', required=False, paramType='body')
            )
            def jsonBody(self, json_body):
                testRuns.append({
                    'json_body': json_body
                })

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('json_body_required')
                .jsonParam('json_body', '', required=True, requireObject=True, paramType='body')
            )
            def jsonBodyRequired(self, json_body):
                testRuns.append({
                    'json_body': json_body
                })

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('has_model_param_query')
                .modelParam('userId', model='user', level=AccessType.READ, paramType='query')
            )
            @filtermodel(model='user')
            def hasModelQueryParam(self, user):
                return user

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('has_model_param_flags')
                .modelParam('userId', model='user', level=AccessType.READ, paramType='query',
                            requiredFlags='my_flag')
            )
            def hasModelParamFlags(self, user):
                return user

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('has_json_schema')
                .jsonParam('obj', '', schema={
                    'type': 'object',
                    'required': ['foo', 'bar']
                })
            )
            def hasJsonSchema(self, obj):
                return obj

            @access.public
            @describe.autoDescribeRoute(
                describe.Description('has_missing_arg')
                .param('foo', '')
            )
            def hasMissingArg(self, params):
                return params

        server.root.api.v1.auto_describe = AutoDescribe()

        def testBad(inputs, expected):
            resp = self.request('/auto_describe/test', params=inputs)
            self.assertStatus(resp, 400)
            self.assertEqual(testRuns, [])
            self.assertEqual(resp.json['message'], expected)

        def testOk(inputs, expected):
            resp = self.request('/auto_describe/test', params=inputs)
            self.assertStatusOk(resp)
            self.assertEqual(len(testRuns), 1)
            self.assertEqual(testRuns[0], expected)
            del testRuns[-1]

        testBad({}, 'Parameter "string" is required.')
        testBad({
            'string': 'invalid value'
        }, 'Invalid value for string: "invalid value". Allowed values: hello, world.')
        testBad({
            'string': 'hello',
            'float': 'not a float'
        }, 'Invalid value for numeric parameter float: not a float.')

        testBad({
            'string': 'hello',
            'integer': '7.5'
        }, 'Invalid value for integer parameter integer: 7.5.')

        testBad({
            'string': 'hello',
            'timestamp': 'hello world'
        }, 'Invalid date format for parameter timestamp: hello world.')

        testBad({
            'string': 'hello',
            'datestamp': 'not a date'
        }, 'Invalid date format for parameter datestamp: not a date.')

        testBad({
            'string': 'hello',
            'json1': json.dumps({'hello': 'world'})
        }, 'Parameter json1 must be a JSON array.')

        testBad({
            'string': 'hello',
            'json2': json.dumps(['hello', 'world'])
        }, 'Parameter json2 must be a JSON object.')

        testOk({
            'string': '  WoRlD '
        }, {
            'string': 'world',
            'upper': None,
            'b1': True,
            'b2': None,
            'integer': None,
            'float': 1.,
            'json1': None,
            'json2': {},
            'timestamp': None,
            'datestamp': None
        })

        testOk({
            'string': ' hello',
            'upper': ' hello',
            'b1': 'false',
            'b2': 'true',
            'integer': '3',
            'float': '0.25',
            'json1': json.dumps([1, 2, 'abc']),
            'json2': json.dumps({'hello': 'world'}),
            'timestamp': '2017-01-01T11:35:22',
            'datestamp': '2017-02-02T11:33:22'
        }, {
            'string': 'hello',
            'upper': ' HELLO',
            'b1': False,
            'b2': True,
            'integer': 3,
            'float': 0.25,
            'json1': [1, 2, 'abc'],
            'json2': {'hello': 'world'},
            'timestamp': datetime.datetime(2017, 1, 1, 11, 35, 22),
            'datestamp': datetime.date(2017, 2, 2)
        })

        # Test request body
        body = 'torso'
        resp = self.request('/auto_describe/body', method='POST',
                            body=json.dumps(body), type='application/json')
        self.assertStatusOk(resp)
        self.assertEqual(len(testRuns), 1)
        self.assertTrue('body' in testRuns[0])
        self.assertTrue(hasattr(testRuns[0]['body'], 'read'))
        del testRuns[-1]

        # Test request JSON body (optional)
        body = {
            'emmet': 'otter'
        }
        resp = self.request('/auto_describe/json_body', method='POST',
                            body=json.dumps(body), type='application/json')
        self.assertStatusOk(resp)
        self.assertEqual(len(testRuns), 1)
        expected = {
            'json_body': body
        }
        self.assertEqual(testRuns[0], expected)
        del testRuns[-1]

        # Test request JSON body (optional), omitting body
        resp = self.request('/auto_describe/json_body', method='POST')
        self.assertStatusOk(resp)
        self.assertEqual(len(testRuns), 1)
        expected = {
            'json_body': None
        }
        self.assertEqual(testRuns[0], expected)
        del testRuns[-1]

        # Test request JSON body (required)
        body = {
            'emmet': 'otter'
        }
        resp = self.request('/auto_describe/json_body_required', method='POST',
                            body=json.dumps(body), type='application/json')
        self.assertStatusOk(resp)
        self.assertEqual(len(testRuns), 1)
        expected = {
            'json_body': body
        }
        self.assertEqual(testRuns[0], expected)
        del testRuns[-1]

        # Test request JSON body (required), omitting body
        resp = self.request('/auto_describe/json_body_required', method='POST')
        self.assertStatus(resp, 400)

        # Test request JSON body (required), pass list
        body = [{
            'emmet': 'otter'
        }]
        resp = self.request('/auto_describe/json_body_required', method='POST',
                            body=json.dumps(body), type='application/json')
        self.assertStatus(resp, 400)

        # Test omission of required modelParam
        resp = self.request('/auto_describe/model_param_query')
        self.assertStatus(resp, 400)
        self.assertEqual(resp.json['message'], 'Parameter "userId" is required.')

        resp = self.request('/auto_describe/model_param_query', params={'userId': None})
        self.assertStatus(resp, 400)
        self.assertEqual(resp.json['message'], 'Invalid ObjectId: None')

        user = User().createUser(
            firstName='admin', lastName='admin', email='a@admin.com', login='admin',
            password='password')
        resp = self.request(
            '/auto_describe/model_param_query', user=user, params={'userId': user['_id']})
        self.assertStatusOk(resp)

        # Test requiredFlags in modelParam
        resp = self.request('/auto_describe/model_param_flags', params={
            'userId': user['_id']
        })
        self.assertStatus(resp, 401)
        self.assertRegex(resp.json['message'], '^Access denied for user')

        resp = self.request('/auto_describe/json_schema', params={
            'obj': json.dumps([])
        })
        self.assertStatus(resp, 400)
        self.assertRegex(
            resp.json['message'],
            r"^Invalid JSON object for parameter obj: \[\] is not of type 'object'")

        resp = self.request('/auto_describe/json_schema', params={
            'obj': json.dumps({})
        })
        self.assertStatus(resp, 400)
        self.assertRegex(
            resp.json['message'],
            r"^Invalid JSON object for parameter obj: 'foo' is a required property")

        obj = {
            'foo': 1,
            'bar': 2
        }
        resp = self.request('/auto_describe/json_schema', params={
            'obj': json.dumps(obj)
        })
        self.assertStatusOk(resp)
        self.assertEqual(resp.json, obj)

        # Test missing arg in wrapped function, should fall through to params dict
        resp = self.request('/auto_describe/missing_arg', params={
            'foo': 'bar'
        })
        self.assertStatusOk(resp)
        self.assertEqual(resp.json, {'foo': 'bar'})

    def testDeprecatedRoute(self):
        """
        Test that a route marked as deprecated is described as deprecated.
        """
        class OldResource(Resource):
            def __init__(self):
                super().__init__()
                self.resourceName = 'old_resource'
                self.route('GET', (), self.handler)
                self.route('GET', ('deprecated',), self.deprecatedHandler)

            @access.public
            @describe.describeRoute(
                describe.Description('Handler')
            )
            def handler(self, params):
                return None

            @access.public
            @describe.describeRoute(
                describe.Description('Deprecated handler')
                .deprecated()
            )
            def deprecatedHandler(self, params):
                return None

        server.root.api.v1.old_resource = OldResource()

        resp = self.request(path='/describe', method='GET')
        self.assertStatusOk(resp)
        self.assertIn('paths', resp.json)
        self.assertIn('/old_resource', resp.json['paths'])
        self.assertIn('/old_resource/deprecated', resp.json['paths'])
        self.assertIn('get', resp.json['paths']['/old_resource'])
        self.assertNotIn('deprecated', resp.json['paths']['/old_resource']['get'])
        self.assertIn('get', resp.json['paths']['/old_resource/deprecated'])
        self.assertIn('deprecated', resp.json['paths']['/old_resource/deprecated']['get'])
        self.assertTrue(resp.json['paths']['/old_resource/deprecated']['get']['deprecated'])

    def testProduces(self):
        """
        Test that a route marked as producing a list of mime types reports
        that information properly.
        """
        class ProducesResource(Resource):
            def __init__(self):
                super().__init__()
                self.resourceName = 'produces_resource'
                self.route('GET', (), self.handler)
                self.route('GET', ('produces1',), self.producesHandler)
                self.route('GET', ('produces2',), self.produces2Handler)

            @access.public
            @describe.describeRoute(
                describe.Description('Handler')
            )
            def handler(self, params):
                return None

            @access.public
            @describe.describeRoute(
                describe.Description('Produces handler')
                .produces('image/jpeg')
            )
            def producesHandler(self, params):
                return None

            @access.public
            @describe.describeRoute(
                describe.Description('Produces 2 handler')
                .produces('image/tiff')
                .produces(['image/jpeg', 'image/png'])
            )
            def produces2Handler(self, params):
                return None

        server.root.api.v1.produces_resource = ProducesResource()

        resp = self.request(path='/describe', method='GET')
        self.assertStatusOk(resp)
        self.assertIn('paths', resp.json)
        self.assertIn('/produces_resource', resp.json['paths'])
        self.assertIn('/produces_resource/produces1', resp.json['paths'])
        self.assertIn('/produces_resource/produces2', resp.json['paths'])
        self.assertNotIn('produces', resp.json['paths']['/produces_resource']['get'])
        self.assertIn('produces', resp.json['paths']['/produces_resource/produces1']['get'])
        self.assertEqual(resp.json['paths']['/produces_resource/produces1']['get']['produces'],
                         ['image/jpeg'])
        self.assertEqual(resp.json['paths']['/produces_resource/produces2']['get']['produces'],
                         ['image/tiff', 'image/jpeg', 'image/png'])


package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"os"

	pb "github.com/Masterminds/go-in-practice/chapter10/userpb"
	"github.com/golang/protobuf/proto"
)

func main() {
	res, err := http.Get("http://localhost:8080")
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
	defer res.Body.Close()

	b, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println("Error reading response body: %v", err)
		os.Exit(1)
	}

	var u pb.User
	err = proto.Unmarshal(b, &u)
	if err != nil {
		fmt.Println("Error decoding response body: %v", err)
		os.Exit(1)
	}

	fmt.Println(u.GetName())
	fmt.Println(u.GetId())
	fmt.Println(u.GetEmail())
}


More

Joel Kinnaman Talks 'RoboCop' New Costume, Movement & Tone [Updated]

[Update: Check Out what Kinnaman has to say about how the new Robocop will walk and move.]

With an official Summer 2013 release date set, a distributor in Sony onboard, and a rising star in the shape of Joel Kinnaman attached to portray its namesake, the impending RoboCop has joined the long list of reboots/remakes that have either become realities, are months away from reaching theaters - or are confirmed to actually begin production in the near future, rather than continuing to struggle on the climb out of development limbo (a la The Crow, Akira, etc.).

Kinnaman has been busy lately, making the rounds promoting the upcoming second season of AMC's The Killing. Naturally, journalists have been keen to ask him questions about the RoboCop franchise revamping - and the Swedish actor has been fairly willing to oblige with answers.

Here's Kinnaman talking about the modern science informing the RoboCop reboot (via MTV):

“There’s a lot of neuroscience now raising the question, ‘Is all the intelligence in the human body in the brain?’ and they’re finding out that, no, it’s not like that. The body has intelligence itself, and we’re much more of an organic creature in that way. It’s not a control tower that does everything.”

With regards to the general tone and thematic emphasis of the new RoboCop, Kinnaman said:

“[The 'RoboCop' reboot] is going to be a lot more human. The [original] movie is one of my favorite movies. I love it. Of course, [director Paul Verhoeven] has that very special tone, and [the reboot] is not going to have that tone. It’s a re-imagination of it. There’s a lot of stuff from the original. There are some details and throwbacks, but this version is a much better acting piece, for Alex Murphy and especially when he is RoboCop. It’s much more challenging.”

Kinnaman also dropped the following tidbit about the eponymous cyborg police officer's "new look":

“It’s not going to be jaw action. They’re still working on the suit and how it’s going to look, but the visor is going to be see-through. You’re going to see his eyes.”

UPDATE: Courtesy of Hit Fix we have this further quote from Kinnaman, regarding the robotic movements that original Robocop Peter Weller's meticulously studied in order to actually move like a cyborg:

There's not going to be any twitchy robot [he mimics very mechanical robotic moves]. Our vision of how a robot is going to be in 2046, it's going toThe be a very human skin, it's gonna look very human. I'm going to be able to put my signature on the body language, too....from an acting standpoint, walking around just moving your jaw, it's not so interesting. So this is going to be an opportunity to really bring a full performance to it."

These comments by Kinnaman gel with what the RoboCop reboot helmer José Padilha has said in the past, concerning how the film will focus more on the title character's existential issues - while also updating the ethical and political subtext from director Paul Verhoeven's original 1987 movie. That approach naturally lends itself to a redesigning of the RoboCop visor, so we can better see the character struggle with his humanity.

It's largely for those reasons that this reboot actually sounds like it could bring something new and interesting to the table.

During a separate interview, Kinnaman also expanded upon how the RoboCop reboot will (and won't) differ thematically from Verhoeven's film (via Collider):

"I’m such a huge fan of the original. I think I’ve seen the first 'RoboCop', 15 or 20 times. I’m like a kid, that way. And, I love all of [Paul] Verhoeven’s movies. He has a very special tone. I love 'Starship Troopers', too. That’s really smart. I think he really could portray fascism in a comedic way. It’s funny because both José [Padilha] and Verhoeven were accused of being fascists for their movies because they had fascist leads. So, [the 'RoboCop' reboot is] not going to have [Verhoeven's] tone, but there’s going to be political satire in it."

Lastly, here's what Kinnaman had to say about the content and potential rating of the new RoboCop:

"I sincerely hope they’re going for R ‘cause I can’t imagine how 'RoboCop' could be PG-13. That would be a huge mistake. If I have any say in it, I will fight very hard for it. It has to be violent."

If Padilha's work on the Elite Squad series is any indication, the RoboCop reboot could be a genuinely gritty and (at times) brutal sci-fi tale, in terms of the portrayal of violence and its futuristic world design. That would indeed be a fitting way to modernize Alex Murphy's story, while still paying respect to Verhoeven's classic work - and that quality would indeed qualify this entire venture as a worthy one, under Screen Rant's Top 5 Rules for Movie Remakes.

RoboCop is slated to begin principal photography later this summer, in order to make an August 9th, 2013 U.S. theatrical release date.


Former Deputy Assistant to President Trump, Dr. Sebastian Gorka appeared on Fox & Friends to discuss the ISIS-inspired teenager who attempted to detonate a bomb at a Utah high school earlier this week.

Dr. Gorka brought up an important issue regarding tech tyranny.

The same tech giants who throttle conservatives are allowing terrorists to run wild on their platforms.

Dr. Gorka called out Facebook and YouTube for throttling and demonetizing conservatives.

TRENDING: BREAKING: Omaha Bar Owner Charged For Killing Rioter Who Attacked Him and His Business Has Committed Suicide

“You hear the story about the throttling of conservatives, demonetization on YouTube, the issues on Google and Facebook. How about spending some time censoring jihadis online if you’re a big social media company as opposed to targeting conservatives,” Gorka said.

VIDEO:

.@SebGorka on ISIS inspired teen: Big social media companies should spend more time censoring jihadis online rather than conservatives. pic.twitter.com/atHPmu9C52 — Ryan Saavedra 🇺🇸 (@RealSaavedra) March 8, 2018

Tech Giants Google and Facebook are currently purging conservative content from Facebook and YouTube — They are hiding conservative stories on Google — They are shadow-banning conservative news on all social media.

In February Facebook launched a new algorithm to ensure that conservative news would not spread on the social media platform.

The Gateway Pundit does not rely on Facebook for our traffic numbers.

Still, we saw a significant drop in Facebook traffic in the last month.

And this past weekend Facebook shut down our traffic stream from the social media platform.

This is corrupt, if not criminal, behavior.

Meanwhile, liberal sites are doing fine.

A new report by the far left Outline organization confirmed the conservative publishers were hit the hardest by the recent Facebook news feed changes.

The study also found the The Gateway Pundit was hit the hardest by these changes.


This book provides foundational coverage of key areas, concepts, constructs, and approaches of medical informatics as it applies to clinical research activities, in both current settings and in light of emerging policies. The field of clinical research is fully characterized (in terms of study design and overarching business processes), and there is... more...


Gam Rothwall

Gam Rothwall was an Imperial Advisor working under EmperorPalpatine during the Galactic Civil War. As a child, he was separated from his family—including his twin brother—during a battle between Imperial forces and defenders from his homeworld. Unaware of his true family, he joined the Empire's bureaucracy and rose through the ranks to become one of Palpatine's personal advisors.

During the Galactic Civil War, he visited the planet Garnib on a surprise inspection tour. While on the planet, he was the target of an assassination attempt led by an Anti-Imperial movement on the planet due to his role in capturing and executing high-ranking officials from the Garnib Crystal Corporation. He was also confronted by his twin brother, who had been informed of his brother's existence by a dying relative.


For our Fourth of July celebration, we thought what better way to celebrate than by exploring a little bit more of the country on foot. Thus, early on Independence Day morning we awoke from our cool mountain slumber at Estes’s Park Discovery Lodge and headed back to Wild Basin in Rocky Mountain National Park. We reached the park entrance at about 8:20 am, and purchased our season entrance pass (40 dollars) and then followed the dirt road for about 1.2 miles to the Wild Basin Trailhead and parking lot. Luckily there were still a few parking spots at the trailhead allowing us to finally set out on foot in the beautiful southeastern part of this park. Seen below is a picture of part of us at the trail head. Our friend Julia from Houston was able to join us on this scenic hike.

The sounds of rushing water can be heard frequently along the early portion of the trail as it follows the St. Vrain Creek closely. The rewards are frequent and early on this hike, and after a mere 0.3 miles, the trail led us to a splendid visual spectacle as it approached Copeland Falls. We paused a brief moment along a rock shelf and absorbed the cool breezes from the swiftly flowing creek. Photos of Lower Copeland Falls can be seen below.

The next 1.5 miles of the trail, led us through a cool shady forest of Lodgepole Pine interspersed with Aspens and firs. There were also many beautiful wildflowers adding color to sides of the brown dirt path we followed. The path made moderate climbs leading over numerous log bridges that crossed the creek and various falls. At approximately 1.8 miles we reached Calypso Cascades which is fueled by Cony Creek and appears to converge with the North St. Vrain Creek further below. This amazing set of falls flows under a log bridge on the trail. The bridge offered us impressive views of the pristine water flowing down the steep granite wall over 200 feet below and refreshing cool sprinkles of water. Gentle thunderstorms over the past several days and fresh snow melt allowed for tumultuous river flow and an impressive spectacle. Top: Bridge over unnamed fall; Bottom: Calypso Cascades

After the cascades, the traffic flow on the trail thinned out a little bit more as we proceeded to Ouzel Falls. The trail gradually gained elevation for the next mile to the landmark Falls and followed a north facing valley wall. The climb was moderately difficult for this brief period but offered us lovely views of Mt. Meeker and Long’s Peak at various points. It really put in perspective for us just how much higher we would have to climb to summit Long’s Peak. After the brief climb, we reached the famous Ouzel Falls. The creek, falls and lake are named after the Ouzel or “dipper” bird native to the area. A very lengthy bridge crosses over the creek here and offers nice views of the powerful falls. We wanted a better look at the water fall, so we climbed up granite boulders alongside the falls that are located on both sides of the bridge to get higher and closer. The climb up wasn’t too easy and rocks were a bit slippery, so exercise extreme caution when doing this. The fall off the edge did not look very survivable. Seen below are photos of the Falls from the bridge as well as our climbs. Notice the sheer size of Ouzel Falls by the photo of us sitting on the boulders.

After about 20-30 minutes hanging out at Ouzel Falls, we knew we needed to keep moving to reach Ouzel Lake and have time to enjoy lunch so we proceeded on. After Ouzel Falls, we saw very few hikers. The hike to the lake began with steady gains in elevation which turned into steep gains in elevation. Our blood was pumping and legs burning, but we all tried to keep a steady pass that we could sustain. Eventually the trail opened up to the once charred hillsides that are remnants of the infamous 1978 fire caused by lightening near Ouzel lake. The fire was thought to be a “cleansing” fire and was left alone but due to high winds it grew dramatically and destroyed over 1,000 acres of land before containment. The fire stricken hillsides without the cover of the trees emanated an eerie vibe. However, the grasses and wildflowers littering the treeless hillsides were a reminder that life does prevail. Photos from the last 2 miles to the lake can be seen below.

We finally approached a trail sign directing us on a spur that led 0.5 miles to Ouzel Lake. Alternatively, the trail continues on to Bluebird Lake 2.0 miles further. The spur was muddy and wet as we gently descended to the lake. It was truly exciting when we reached our tranquil lake destination. Ouzel lake is a very shallow lake and we could clearly see the rock bottom as we searched along it marshy banks for a place to stop and relax. The lake is home to the native Greenback cutthroat and is a work in progress. The park is working on reestablishing a population in many streams and rivers in the park. Since the restock is small, these fish are catch and release only. Pictured below is Ouzel Lake.

We quietly relaxed on rocks overlooking the lake and ate much deserved peanut butter and jelly sandwiches and drank down gatoraide. While relaxing, sneaky little creatures visited our picknick and tried to take our snacks. We encountered multiple chipmunks and a large marmot while resting on the rocks.

The spur that leads to Ouzel lake off of Bluebird Trail only allows for easy access to one small north side section of the lake. Since we had carried along our fly fishing gear, we wanted a chance to snag a decent fishing spot. Thus we proceeded to skirt the edges of the lake towards the west side with no trail for guidance. The land that surrounds the lake is a marshland. As we looked for dry spots to plant our feet, we felt the ground give way like a sponge. There was water everywhere and very thick brush and trees to navigate in between. But, we were quite determined, and at the very least wanted to make it to a small clearing that opened up just past a narrow stream. Branches scraped and stung our skin, and dampness beyond sweat began to creep between our toes. We reached the clearing just as the rain began to come down. What first appeared as just a few light drops on our skin quickly turned into steady downpour of heavy, cold drops. At this point we opted against fishing and decided to try for Bluebird Trail, which according to our map should be just north of us. Unfortunately, the path to the trail, for all descriptive purposes, was a pond hidden to us by grasses and marsh. We briefly attempted a navigation across various logs strewn across the low lying bed, but gave up as the rain did not relent. Slightly disappointed but still proud of our off trail journey, we proceeded back to the Spur trail and headed back toward the Bluebird/Ouzel Spur fork. Along the way, we were greeted with another marmot friend that stared down Julia for a while. Apparently our little friend was not used to people hanging out in this part of the land. Seen below are more photos from the lake, marsh and creek beds that connect to the lake.

We headed back to the trailhead after our exploration of the lake and enjoyed the scenery from a different perspective. It was relatively quiet until we were back to Ouzel falls and then it became pretty crowded. By the time we were past Calypso Falls we were almost never alone on the trail. For the last mile we were part of a long line of hikers with about 10 to 15 hikers in front of us and another 10 behind us. We were glad to be back in the parking lot and felt very accomplished for the day. After our long trek we decided to head into Estes Park and get some well deserved pizza and ice cream. To date Ouzel Lake has been our favorite hike. Our Garmin E-trex 20 recorded our journey at approximately 11.13 miles. If you stick to the trail to the lake and back, the journey will be around 10.5 miles.


Leopold the large male Leopard Veiltail Angelfish is on the left in the picture just above. Marilyn, his mate, is on the right, and you can see her breeding tube on the lower part of her abdomen. She has just laid some eggs on the filter tube, and Leopold is now fertilizing the eggs. But some of the eggs did not adhere and are loose in the water above Marilyn. Tom and Nevin will talk about this during this week's show.

This Week's Picture of Tré, shown above.

Tré is very energetic and brightly colored. Constantly protecting his pile of about six Cichlid Stones. He still seems to be growing and is now about the biggest Labeotropheus trewavasae ever.

Two new pictures of a Fish Named Bob.

Yes, his name is now officially Bob. His coloration is not as shinny and metallic as it was, before he was in a big fight and lost, but he has completely recovered and looks good. He seems more deeply colored with the rich blue and dark orange. He is very curious and closely looks at everything in or near his aquarium. In this aquarium, if you look very closely, you can see some of the young OB Zebras that share this aquarium with Bob.

One of the Young OB Mbunas living with Bob.

Shown just above is one of the young OB Mbunas that lives in the same 29-gallon aquarium with Bob. This young OB Mbuna was released from its mother's mouth about 3-months old and has grown very fast. It's now about 2" long and shows lots of interesting coloration for such a young fish.

The Serpae Tetras looking better and better.

This Serpae came right up to the front of the aquarium and sort of danced back and forth. You can see the red coloration is richer this week, and the the black and white markings are more intense. All the Serpaes are doing really well, eating a lot, and growing.

The Sterbai Cory Catfish are very nice.

The Sterbai Corys are very comical and very interesting, and their pattern seems even more interesting than most other Cory Catfish species. They are now tank raised in large numbers, available at AquariumFish.net, and really a very nice fish for most aquariums. The are doing very well in a 55-gallon aquarium with Serpae Tetras, large Angel Fish, and Bushymouth Plecostomus. The fish together are a wonderful combination. Highly recommended.

Email Comment

Hi Tom and Nevin,

I was intrigued by the mysterious fish births described in the last segment of your show this week. I can imagine two scenarios which would account for this mystery:

1. A very small, cryptic male who has remained unobserved. This
scenario depends on the tank being so piled with rocks and
decorations that it's impossible to tell what's in it.

2. A more unusual possibility is a hermaphroditic fish. This seems
unlikely, but a quick search turned up this article, which
describes Geophagus with male and female organs. These
particular fish were not fertile, but who knows what possible
in the great biological laboratory of nature.

As always, enjoyed the show greatly. And I personally love hearing about Tom's adventures with his tanks!

Regards,
Drew

Reply.Hello Drew and thank you for your email comments. This is still a complete mystery to us. We appreciate your suggestions, which are possibilities.

Callers during this Show

Bonnie
from Iowa
calls and
says she dug
a new pond
in her
backyard
with about
150-gallons
of water.
Tom and
Nevin talk
about this
pond and
about advice for
listeners
who may be
thinking
about
putting a
fish pond in
their
backyards.
Bonnie says,
"Do it."

Bennett
from
Michigan
calls and
says his
Firemouth
Cichlids
spawned and
the eggs
hatched. Tom
and Nevin
ask Bennett
for all the
details,
including
the aquarium
size, water
temperature,
types of
food he fed
to the
breeders,
and just
about every
question
that
they can
think of.
Bennett
gives lots of
valuable
details
about
spawning
Firemouths.

The Bailey Brothers
encourage YOU to call Pet Fish Talk
during the show and talk about your pet fish.

Download of this Entire Show

Here's how:Right-Click
here, then click on "Save Target (or Link) As ...".
Navigate to the folder you prefer, and click on the button labeled "Save".
Later you can copy the MP3-file to your iPod or other MP3-player.

Click
hereto buy an MP3-enabled CD-Player, or click
hereto buy an MP3-Player, or click
here
to buy an Apple iPod, which can all play Pet
Fish Talk Shows.

There are lots of Pet Fish Talk Shows.

Click
here
now to go to the Archive, where you'll find links to more than
360 Pet Fish Talk
Shows. Click here to go to our Search Page, where you can search for any topic that we
have discussed in any show.

Click
here for technical support, if Pet Fish Talk will not play on your computer.

How
to Customize
this Page.

If this web page looks too small or too narrow, hold down the
keyboard key marked "Ctrl" then press down on the key marked
+, and this web page should get bigger. If you overdue it
and this page gets too big, hold down the same "Ctrl" key
and press down on the key marked - to make this page
smaller.

Repeat, until this
page looks just right to you. In this way you can customize
the appearance of our website in your computer. This tip
will work simultaneously on all the pages in this website,
and your computer should remember what you've done the next
time you come back to this site, unless you're using an
ancient version of a browser. ;^
o


PROTON GRADIENT REGULATION 5 supports linear electron flow to oxidize photosystem I.
In higher plants, light drives the linear photosynthetic electron transport reaction from H2 O to electron sinks, which is called the linear electron flow (LEF). LEF activity should be regulated depending on electron sinks; otherwise excess electrons accumulate in the thylakoid membranes and stimulate reactive oxygen species (ROS) production in photosystem I (PSI), which causes oxidative damage to PSI. To prevent ROS production in PSI, PSI should be oxidized during photosynthesis, and PROTON GRADIENT REGULATION 5 (PGR5) and PGR like 1 (PGRL1) are important for this oxidation. PGR5 and PGRL1 are recognized as a component of ferredoxin-dependent cyclic electron flow around PSI (Fd-CEF-PSI), however there is no direct evidence for the significant operation of Fd-CEF-PSI during photosynthesis in wild-type (WT) plants. Thus, electron distribution by PGR5 and PGRL1 between Fd-CEF-PSI and LEF is still elusive. Here, we show direct evidence that Fd-CEF-PSI activity is minor during steady-state photosynthesis by measuring the Fd redox state in vivo in Arabidopsis thaliana. We found that Fd oxidation rate is determined by LEF activity during steady-state photosynthesis in WT. On the other hand, pgr5 and pgrl1 showed lower electron transport efficiency from PSI to electron sinks through Fd during steady-state photosynthesis. These results demonstrate that electrons are exclusively consumed in electron sinks through Fd, and the phenotypes of pgr5 and pgrl1 are likely caused by the disturbance of the LEF between PSI and electron sinks. We suggest that PGR5 and PGRL1 modulate the LEF according to electron sink activities around PSI.


WASHINGTON (Reuters) - Two U.S. service members were killed and five injured during combat operations in northern Iraq on Sunday, the military said, adding that initial reports indicated the incident was not due to enemy contact.

In a statement the military said the incident was under investigation. The service members were part of a U.S.-led coalition fighting the Islamic State in Iraq.

“The entire counter-ISIS Coalition sends our deepest condolences to these heroes’ families, friends and teammates,” said Lieutenant General Stephen Townsend, commander of the Combined Joint Task Force - Operation Inherent Resolve.

“I hope there is some small solace in knowing their loss has meaning for our country and all the nations of the Coalition as the fallen service members were fighting to defeat a truly evil enemy and to protect our homelands.”


A man has been ordered to leave the witness box in a Limerick court for wearing a 'Ryanair'-style shirt.

The Irish Examiner reports the judge openly disapproved of the man's open-necked shirt.

"We want the right kind of dress and proper decorum here. This is not a Ryanair kind of show we are running here", he said.

The man, who is an architect, was wearing a navy blazer and a sky blue shirt - but no tie.

The judge asked if he had a neck tie - and when he did not, he ordered the man away to find a tie.

He then allowed him to proceed with his evidence.


Relation of Lateral Antebrachial Cutaneous Nerve to the Volar Approach to Distal Radius.
The anatomy of the lateral antebrachial cutaneous nerve (LABCN) in relation to volar approaches to the distal radius is not well visited. With the increasing popularity of distal radius fracture fixation with volar locking plates, it is prudent to study the innervation pattern of the LABCN to minimize the risk of nerve injury. Ten cadaveric distal radial forearms were dissected to study the relationship between the LABCN, flexor carpi radialis (FCR), superficial branch of radial nerve (SBRN), and scaphoid tubercle (ST). The LABCN coursed closer to the FCR than the SBRN, with branches traversing the tendon in two specimens. The LABCN was also noted to be intimately related to the radial artery, with an average distance of the LABCN from the lateral border of FCR was 6.4mm distally and 9.6mm proximally. There is a sparsely innervated corridor between the radial border of the FCR and terminal branches of the LABCN that provides safe access for volar approach to the distal radius.


Police checkpoint in Cairo attacked by unidentified assailants

Two police officers were injured

CAIRO, November 25. /ITAR-TASS /. Two Egyptian police officers have been injured on Monday as a result of an attack on a police checkpoint in Cairo. According to local media reports, the incident occurred at dawn near the presidential palace Al Qubbah in the Al Matar metropolitan area.

Unidentified motorcyclists threw a homemade bomb at the law enforcement officers that were carrying out routine checks on the roads, and disappeared. A crater half a meter wide and 90 cm deep was left at the site, the blast shattered windows in nearby mosques and the building of Egypt’s Ministry of Transport. The police officers were injured by shrapnel. They were taken to a hospital, where they received medical treatment.

After the army overthrew on July 3 President Mohammed Morsi, the security situation in Egypt has deteriorated. During this time, only in the north of Sinai, where extremists sharply intensified their activity after the president’s overthrow, over a hundred of law enforcement officers and military personnel were killed.

Thus, November 20 as a result of a terrorist attack on a road from Sheikh Zuvaid and Al Arish (capital of the North Sinai Governorate) 11 Egyptian servicemen were killed and another 37 were injured. A car bomb with about 150 kg of explosives was blown up when the suicide attacker that was driving it rammed into the bus column with conscripts of Egyptian armed forces that was heading for a leave to other provinces off the country.

At the same day, unidentified attackers passing by in a car threw a grenade at a police patrol car in the eastern Abud district of Cairo. As a result of this attack, a commander and three servicemen were injured.

Today, some local experts leave open the possibility that Islamists operating in Sinai are currently trying to move their attacks from the peninsula to other Egyptian provinces, and the country may come back to the terror times of the turbulent 90s.