Time to go back to the garden. This has been a strange year in Central Illinois for gardening. It has been cooler than usual and very wet. We usually average approximately three inches of rain in June and this year we have had about eleven inches. That means I have not had to water this month at all except once in a while for plants that are in pots on porches. Usually by this time of the gardening season I am hauling hoses around and getting a notice from the water company wondering if I might have a leak somewhere because of excessive water use. Needless to say, the garden looks beautiful except for one thing—the bunnies. And I do mean bunnies. There is one tiny bunny that hides under some foliage right outside my front door and then darts out when we go outside. They are eating things they have never eaten before. The owner of the garden shop at the end of my street is having the same trouble. He cannot figure out why they are so daring this year. Surely there is enough foliage on the natural things that they usually eat that they do not need to snack on gardens. My grandchildren and I are calling them the "booger bunnies." I will admit that once in a while, when the children are not around, I have used somewhat stronger language.
One thing that has not changed and, with all of the water, may in fact be a bigger job than usual at this time of year is the dead-heading. This has nothing to do with a rock music group from long ago (I mean, really, have you met me? Do you think that kind of Dead Head would have any appeal ☺) No, this dead-heading is removing the flower heads once they have bloomed. As far as I am concerned there are a few reasons to do this. First, usually flowers are not very pretty after they have bloomed, so it makes the plant look better to remove them. Second, they add extra weight. When I was dead-heading the day lilies this week (a daily job if one chooses, as the name implies), each dead head was laden with water. When I removed them, the stems perked back up.
Third, and most importantly, I am not in the seed business. My purpose for planting flowers is to create almost a painting in my yard. So even though every flower produces seeds or some other way of propagating the species as one of its main purposes (what is the chief end of a flower? ... to propagate the species and enjoy it forever.), that is not my purpose for gardening. This is always a great children's message and one of those every day miracles that surround us. Take any seed pod with you (like a marigold if you can stand the smell). Remind them that one little plant produced this and then show them how many seeds, that is, potential plants, came from one bloom on that one plant. I get rid of the seeds, though, because I am not hoping for seeds. I do not want the plant putting its energy into seed production. I want it to produce more blooms.
So the inevitable question: what is it about your mid council that is draining its energy but serves no current purpose? What may have once been in full bloom but now seems a little shopworn and bedraggled? What is adding weight that you can no longer afford to carry, pulling your mid council down with it? And, if there are things that need to be removed, is there a way for them to become the seeds for something new?


You may have heard of the popular treatment often described as a vampire facial. What is it? What does it do? Why is it soooo popular?
Let's get right to the facts.
The vampire facial is simply a microneedling treatment with an added injection to boost the results.
You may have seen Kim Kardashian get a vampire facial on her show. Yes it seems dramatic but really it's a simple, quick and easy way to improve your skin's tone, tightness and texture. Think of your skin's tone in terms of evenness, brightness and discoloration.
Do you have dark spots (hyperpigmentation), light spots (hypopigmentation), redness or dullness?
Regarding skin texture…do you have large pores, blackheads or generally rough skin?
If you experience any of these issues you may be a good candidate for the treatment.
That particular facial includes the process of extracting your own blood, processing that into platelet rich plasma (PRP) and then injecting that back into the skin with tiny microneedles. Derma Health has found that rather than going through that extraction and blood processing you can get even more reliable results with a growth serum. The serum is injected into the skin with the fine microneedling pen (and does not require a blood draw). In both cases the treatment will stimulate collagen and elastin fibers, making your skin smoother and more clear.
As well, Derma Health can also specifically treat skin tone or discoloration by injecting a professional grade lightening product (Hydroquinone or HQ) during the procedure.
Your provider will apply a numbing cream to the the area prior to the treatment. The actual treatment will take about 30 minutes. And that's it! Those little micro-injuries will heal naturally creating the collagen and elastin you need to maintain a smooth, youthful glow. Note: You may need 3-5 treatments to get the results you want especially if you are treating stretch marks or acne scarring.
Call 480.470.5747 today (or fill the form) to schedule a free skin analysis and learn more about how you can get back that healthy glow.


Many decades ago, there was a Flat Earth Society in the UK.
I visualized it as a group of affluent Engishmen with a sense of humour who met at a Pub.
They sent a prize of circa $100.00 for trick photography to an American astronaut who photograhed the Earth from orbit.
I think this hits closer to the mark.
IMO, Flat Earthers aren't so much about literally the Earth is flat, than they are about 'don't blindly accept popular truths'.
The Flat Earth reference is simply a lightning rod for their message. It is more tongue-in-cheek - but delivered deadpan.
messenger with a friend of mine who is trying his best to sway me towards the earth being actually flat with huge ice mountains surrounding it keeping the water from spilling over the edge, and he's dead serious.
Ok, I'm picturing earth now as a coin. If I buy this flat earth idea, what's the best estimate of the earth's thickness downwards? Is there a molten flat layer midway down?
Ps.'' Coin'', ''If I buy this'' Is there a pun there ?
Ps.'' Coin'', ''If I buy this'' Is that a pun?
They won't actually answer, but I did get my friend to say that he thinks that it is just eternal ground.
''eternal ground'' But I only weigh 9.5 stone (that's 133lbs)? But wouldn't I also be flat if that's true?
''eternal ground'' But I only weigh 9.5 stone (that's 133lbs)? But wouldn't Aalso be flat if that's true?
There is so much that is wrong with their theories that it actually bends the brain and causes symptoms akin to hemorrhaging lol.
There are some strange remarks here. Photons do not rely on "power" "behind" them to make them travel. They travel at c, indefinitely, until they encounter matter with which they can interact. As for the time of travel of photons in the cosmos, we certainly do have some indications of how long they have been travelling, since the red shift gives us a pointer to this.
light only travels so far, that's why we have to put light bulbs in various places.
Well, no; we put light bulbs in different places because walls block light. At the scales you are talking about (inside structures) you will always be able to see a light if you are looking at it. The light doesn't "stop" after X meters or anything.
And, are they also suppose to be self sustaining electromagnetic waves? So, in theory they can be eternally travelling.
That is exactly what I am saying, yes. An individual photon does not dissipate. Though interestingly according to the hypothesis of cosmic inflation, the red shift is due to the expansion of space itself stretching out the wavelength and thereby reducing the frequency. So maybe I am wrong to say - at any rate on cosmic timescales - that an interaction with matter is required.
Well, no; we put light bulbs in different places because walls block light.
you can have a large room with no walls and it requires multiple light bulbs to sufficiently light the room, even though there are no walls in it.
But move that 20 watt light ten miles away and you might need a small telescope to see it.
only lighting up to a certain distance away from the source in direct proportion to the wattage pushing it.
"All isotropic localized sources of light create effectively spherical wavefronts for the light that spread out in all directions. Since the area of the spherical wavefront is increasing with distance as r2 and since the total energy in the light wave must be conserved, the energy density of the light dissipates according to 1/r2 . It's not that the light is destroyed or absorbed when traveling through free space, but that the light is stretched over a larger and larger area, and therefore must be locally weaker.
Even a laser beam, which seems to be perfectly collimated and go on for ever, experiences divergence because of diffraction. If you look over a large enough distance of propagation, you can see the laser beam light spreads out as it travels and gets dimmer at each point."
but, as well, we don't even know if photons actually exist even. It's just an arbitrary object that we use to explain something that we are observing. So who knows what kind of actual energy a "photon" actually contains?
And we sort of "know" they exist, in a same way we "know" molecules exist, i.e. just as much as most things that are part of well-established theories in science. Do we "know" that electric currents exist in a circuit?
Do we "know" that electric currents exist in a circuit?
Well, we know what we call "current" exists in a circuit but what it actually is is still just a theory. Photons are just a theory as well and we don't know if there are actual photons "traveling" through the air or is the air full of photons already and they are just being excited in some way causing a chain reaction? Who knows? So I guess until we know for absolutely sure about the perpetual qualities of a photon, or any actual qualities of one, it's safer just to realize that we don't know.
Right. But you can always see the light - unless a wall blocks it.
You can view a table from 10 miles away with a telescope as well, so your statement doesn't prove that photons continue traveling.
You are seeing reflected photons from the table. Same same.
The photons are only lighting up to a certain distance away from the source in direct proportion to the wattage pushing it.
Nope, they go forever unless the are absorbed by something. You just lose the ability to detect them below a certain distance due to reduction of photons per square meter. They do not "expire."
Correct. But again, what happens is the total flux per square meter declines, and eventually your eye is no longer sensitive enough to see it.


A new book about early modern England reveals an eternal truth: We are all addicted to something, and maybe that's not a bad thing, so long as we choose well.
Eve Tushnet blogs at Patheos and has written for Commonweal, USA Today, and the Weekly Standard, among other publications. She is the author of Gay and Catholic: Accepting My Sexuality, Finding Community, Living My Faith and Amends: A Novel, and the editor of the anthology Christ's Body, Christ's Wounds: Staying Catholic When You've Been Hurt in the Church.


text:
Ernst I. von Sachsen-Altenburg (* 16. September 1826 in Hildburghausen; † 7. Februar 1908 in Altenburg) war von 1853 bis 1908 Herzog von Sachsen-Altenburg.

Erbprinz
Ernst war ein Sohn des Herzogs Georg von Sachsen-Altenburg und dessen Gemahlin Herzogin Marie zu Mecklenburg. Damit gehörte er dem Haus Sachsen-Hildburghausen an, das wenige Monate nach seiner Geburt in Haus Sachsen-Altenburg umbenannt wurde. Er studierte mit seinem Bruder Moritz von Sachsen-Altenburg ab 1840 an der Universität Jena. Er war Corpsschleifenträger der Franconia Jena und der Saxo-Borussia Heidelberg (1892). Drei Jahre später setzte er seine Ausbildung in Lausanne fort. An seinem 18. Geburtstag erhielt er das Großkreuz des Herzoglich Sachsen-Ernestinischen-Hausordens.

Mitte August 1845 begann Ernst seine militärische Ausbildung bei der 2. Kompanie des herzoglich sachsen-altenburgischen Linienbataillons. Am 29. September 1847 wurde er als Sekondeleutnant in der 6. Jäger-Abteilung der Preußischen Armee in Breslau angestellt. Bei einem Besuch seiner Cousine Alexandra von Sachsen-Altenburg lernte er Kaiser Alexander II. kennen, mit dem er sich anfreundete. Nachdem er seine Ausbildung an der Universität Leipzig abgeschlossen hatte, wurde der Erbprinz Premierleutnant in der Leib-Kompanie im 1. Garde-Regiment zu Fuß in Potsdam. Kurz nach seiner Beförderung zum Major heiratete er am 28. April 1853 in Dessau Prinzessin Agnes von Anhalt-Dessau (1824–1897), Tochter von Herzog Leopold IV. von Anhalt-Dessau und dessen Ehefrau Prinzessin Friederike von Preußen. Unter den Hochzeitsgästen befand sich auch Preußens König Friedrich Wilhelm IV.

Herzog von Sachsen-Altenburg

Ernsts schwerkranker Vater hatte ihm am 28. Mai 1853 die Regierungsgeschäfte übertragen und starb am 3. August. Daraufhin trat Ernst I. die Herrschaft im Herzogtum Sachsen-Altenburg an. Kurz danach wurde ihm vom bayerischen König der Hubertusorden verliehen und bei einer Reise nach Berlin erhielt er vom preußischen König den Schwarzen Adlerorden.

Ernst trat politisch kaum in Erscheinung, liebte die Jagd, war aber sozialen Problemen des Landes gegenüber sehr aufgeschlossen. Er vereinfachte die Staatsverwaltung und Altenburg entwickelte sich unter seiner Regierung zu einer bedeutenden Industriestadt. Im Jahr 1868 regelte er in einem Vertrag den Grenzverlauf mit dem Fürstentum Reuß jüngere Linie. 1864 ließ er das Rathaus in Altenburg restaurieren, 1871 wurde das Hoftheater und fünf Jahre später das Landesmuseum eröffnet. Am 29. April 1873 wurden in einem Domänen-Fideikommiss die Eigentumsverhältnisse des Herzogshauses und des Staates neu geregelt. Von Zar Alexander II. erhielt er auf einer Reise nach St. Petersburg 1873 die Inhaberschaft über das 50. Infanterieregiment "Bialystok". Der Herzog besuchte im Anschluss auch die Türkei und Österreich-Ungarn.

Ernst erließ am 9. Februar 1855 ein Militärgesetz, das den engen Anschluss an Preußen fundamentierte. Eine Woche später wurde er zum preußischen Generalmajor à la suite und vier Jahre darauf zum Generalleutnant ernannt. Am 30. März 1862 schloss er mit Berlin eine Militärkonvention und nahm ein Jahr später am Frankfurter Fürstentag nicht mehr teil. Bei Ausbruch des Deutschen Kriegs zwischen Preußen und Österreich schloss er, trotz der Sympathien vieler Wettiner für Österreich am 21. Juni 1866 ein Militärbündnis mit Preußen. Er erkannte darin unter anderem, den von Preußen aufgestellten Entwurf für die neue Bundesordnung an und erhielt dafür im Gegenzug die Garantie für die Unabhängigkeit und Integrität seines Territoriums. Das geforderte Altenburger Kontingent wurde allerdings nicht in Kriegshandlungen verwickelt. 1866 trat Sachsen-Altenburg dem Norddeutschen Bund bei und das Militärwesen wurde nach preußischem Vorbild reformiert.

Nach der vom Bundesrat beschlossenen Mobilmachung des Heeres für den Krieg gegen Frankreich am 15. Juli 1870, reiste Herzog Ernst zwei Tage später nach Berlin um Wilhelm I. seine Bündnistreue zu erklären. Er erhielt die Erlaubnis, sich dem Stab des Großherzogs Friedrich Franz II. von Mecklenburg-Schwerin anzuschließen. Am 4. Oktober 1870 wechselte Ernst in den Stab des IV. Armee-Korps, dem er bis Kriegsende angehörte und nahm u. a. an der Belagerung von Paris sowie den Kämpfen an der Loire teil. Er war auch Teilnehmer der Kaiserproklamation in Versailles am 18. Januar 1871. Am 28. September 1907 ernannte ihn Wilhelm II. zum Generaloberst mit dem Rang als Generalfeldmarschall. Er war auch sächsischer Generaloberst sowie Chef der Jäger-Bataillone Nr. 6 und 12.

Der Herzog verheiratete 1873 seine einzige Tochter mit dem preußischen Prinzen Albrecht. Dem von Ernst so verehrten Kaiser Wilhelm I. ließ er 1891 in Altenburg ein Denkmal errichten.

Wie schon sein Vorgänger Friedrich hielt er sich gerne auf dem Jagdschloss Hummelshain auf, welches er, nach einem Brand 1872, durch den Architekten Ernst von Ihne 1880 bis 1885 im Stil der Neorenaissance umbauen ließ.

Nach einer ungewöhnlich langen Regierungszeit von 55 Jahren übernahm nach seinem Tod 1908 sein Neffe Ernst II. von Sachsen-Altenburg die Regentschaft. Herzog Ernst I. galt als enger Freund aller drei Deutschen Kaiser. Wilhelm II. bemerkte bei seinem Ableben:

Nachkommen

Aus seiner Ehe hatte Ernst, neben einem im Säuglingsalter gestorbenen Sohn, eine Tochter:
 Marie (1854–1898) ⚭ 1873 Prinz Albrecht von Preußen (1837–1906)
 Georg (*/† 1856)

Literatur
 Kurt von Priesdorff: Soldatisches Führertum. Band 6, Hanseatische Verlagsanstalt Hamburg, o. O. [Hamburg], o. J. [1938], , S. 416–417, Nr. 2039.
 Heinrich Ferdinand Schoeppl: Die Herzoge von Sachsen-Altenburg. Bozen 1917, Neudruck Altenburg 1992.
 Ernst I. Herzog von Sachsen-Altenburg. Ein deutsches Fürstenleben in Bildern. Mit einem Lebenslauf versehen von Friedrich-Carl Esbach, Leipzig: Fischer & Kürsten 1908.

Weblinks

Einzelnachweise

Herzog (Sachsen-Altenburg)
Prinz (Sachsen-Hildburghausen)
Wettiner (Linie Sachsen-Hildburghausen, Sachsen-Hildburghausen)
Wettiner (Linie Sachsen-Hildburghausen, Sachsen-Altenburg)
Generaloberst (Königreich Preußen)
Generaloberst (Sachsen)
Person im Deutsch-Französischen Krieg
Ritter des Schwarzen Adlerordens
Träger des Hubertusordens
Ehrenritter (Johanniterorden)
Träger des Herzoglich Sachsen-Ernestinischen Hausordens (Großkreuz)
Corpsstudent (19. Jahrhundert)
Geboren 1826
Gestorben 1908
Mann

redpajama_set_name: RedPajamaWikipedia


We've had a busy week this week. The uncertainty surrounding my job may be sorted out soon (I'll either find out if my hours are increasing again or I'll be binned off, either way it'd be nice to know FINALLY!), the man had a few days off and we had the inlaws over then went to see them in Cadiz for the afternoon, which was lovely.
I'm STILL reading the Game of Thrones books, although I'm making progress as I'm over half way through the 5 books I have now. There's lots of differences to the tv show and also lots of similarities and I'm really enjoying reading them now.
I've shared this post from Taming Twins already on social media but it's one I really love. It's about Sarah being involved in a fantastic initiative to help lonely elderly people get out of their houses and enjoying the company of others, all with the help of afternoon tea! It really touched me because my nan recently passed away and I hate to think of my grandad being lonely and it's something my other nan would have benefited from before she died too as she'd been on her own for almost 20 years after my grandad passed away. It's not all sentiment, if you like pics of cake then you'll love this post!
You won't be surprised that I'm watching Game of Thrones every Monday night. I'm also re watching The Tudors which I've watched about 6 times! Might be something to do with Jonathan Reece Myers and Henry Cavill!
It was lovely to see the little one with his nan and grandad this weekend, we don't get to see them very often as we live in different countries so spending time with family is always lovely. We also went to Cadiz, we've never been before and it's such a beautiful city, full of historical sites like the cathedral, the numerous forts, churches and beautiful cobbled streets surrounded by houses that are often hundreds of years old. It's also a busy port for cruise ships and has several gorgeous beaches so it's a wonderful place to visit and we'd definitely go back again.
I didn't get many pics as my camera decided to die half way through our trip and there was such a glare from the sun, but this was my view of the cathedral while eating paella in a gorgeous little restaurant on the plaza.
Not a very exciting week in terms of what we've been wearing but we've finally cracked out the summer clothing and I was shocked I still fit in my cropped jeans so I'm happy!
I did get to dress up a little though for our 'date night', although it wasn't so much a night but a lunch with the man at one of our favourite restaurants while the kids were at school. It's a gorgeous restaurant up in the mountains hidden by trees and overlooking a valley with a gorgeous terrace for al fresco dining in the summer and a cosy log fire in winter. The perfect place for a little romance and the food is amazing!
I've heard this song pretty much daily over the last week. It was one of those songs that was played all the time last summer and it never fails to get me singing along.
As we had the inlaws over I was cooking up a storm in the kitchen this week with lots of delicious nibbles on the menu like chorizo in red wine and puff pastry tart with garlic, cherry tomatoes, cheese and serano ham. Both so easy and absolutely delicious if I do say so myself!
We also made some gorgeous cupcakes thanks to Nielsen Massey and Baking Mad sending us a hamper filled with goodies to make these amazing vanilla cupcakes.
As you can see it was packed with lots of vanilla Nielsen Massey goodies, along with everything we needed to create the cupcakes. We chose to make the cupcakes as they're easy enough for the kids to make and as we were reviewing the vanilla Nielsen Massey products I thought that it'd be the best way to see what they tasted like without any other flavours mixed in. It was definitely the right choice, these cupcakes are without a doubt the best we've ever made, vanilla or otherwise and probably better than any we have bought too. This is the finished article, made by the 13 year old, with a little help from the 3 year old of course.
Pretty amazing for a teen and so delicious I'm literally having to stop myself eating all of them! If you haven't tried this recipe you really should give it a go!
It's a bank holiday weekend, that is a #littlelove all on its own! We're hoping to hit the beach and spend some time just chilling out at the end of a busy week as next week will be just as busy with yet more visitors coming to stay.
I wish I was good at baking, that cupcake looks delicious! I tried to read the first GoT book and couldn't get into it (I did it for my husband who absolutely loves the TV series). I've just decided that it's not for me, unfortunately. Maybe one day I will try again.
Sounds like you had a wonderful week. Enjoy your bank holiday weekend.
Stacie recently posted…10 things that were cool when I was ten!
I'm a massive Game of Thrones fan, though just the TV programme I don't have the stamina for the books! I love cosying up on a Monday night for the next installment.
Those cupcakes look fab, I'd have no willpower if they were in my house!
Morgana @ butwhymummywhy recently posted…Advice I wish I'd listened to at 18..


text:
Q: The `is` operator behaves unexpectedly with non-cached integers When playing around with the Python interpreter, I stumbled upon this conflicting case regarding the is operator:
If the evaluation takes place in the function it returns True, if it is done outside it returns False.
>>> def func():
...     a = 1000
...     b = 1000
...     return a is b
...
>>> a = 1000
>>> b = 1000
>>> a is b, func()
(False, True)

Since the is operator evaluates the id()'s for the objects involved, this means that a and b point to the same int instance when declared inside of function func but, on the contrary, they point to a different object when outside of it.
Why is this so?

Note: I am aware of the difference between identity (is) and equality (==) operations as described in Understanding Python's "is" operator. In addition, I'm also aware about the caching that is being performed by python for the integers in range [-5, 256] as described in "is" operator behaves unexpectedly with integers.

This isn't the case here since the numbers are outside that range and I do want to evaluate identity and not equality.

A: tl;dr:
As the reference manual states:

A block is a piece of Python program text that is executed as a unit.
The following are blocks: a module, a function body, and a class definition.
Each command typed interactively is a block.

This is why, in the case of a function, you have a single code block which contains a single object for the numeric literal
1000, so id(a) == id(b) will yield True.
In the second case, you have two distinct code objects each with their own different object for the literal 1000 so id(a) != id(b).
Take note that this behavior doesn't manifest with int literals only, you'll get similar results with, for example, float literals (see here).
Of course, comparing objects (except for explicit is None tests ) should always be done with the equality operator == and not is.
Everything stated here applies to the most popular implementation of Python, CPython. Other implementations might differ so no assumptions should be made when using them.

Longer Answer:
To get a little clearer view and additionally verify this seemingly odd behaviour we can look directly in the code objects for each of these cases using the dis module.
For the function func:
Along with all other attributes, function objects also have a __code__ attribute that allows you to peek into the compiled bytecode for that function. Using dis.code_info we can get a nice pretty view of all stored attributes in a code object for a given function:
>>> print(dis.code_info(func))
Name:              func
Filename:          <stdin>
Argument count:    0
Kw-only arguments: 0
Number of locals:  2
Stack size:        2
Flags:             OPTIMIZED, NEWLOCALS, NOFREE
Constants:
   0: None
   1: 1000
Variable names:
   0: a
   1: b

We're only interested in the Constants entry for function func. In it, we can see that we have two values, None (always present) and 1000. We only have a single int instance that represents the constant 1000. This is the value that a and b are going to be assigned to when the function is invoked.
Accessing this value is easy via func.__code__.co_consts[1] and so, another way to view our a is b evaluation in the function would be like so:
>>> id(func.__code__.co_consts[1]) == id(func.__code__.co_consts[1])

Which, of course, will evaluate to True because we're referring to the same object.
For each interactive command:
As noted previously, each interactive command is interpreted as a single code block: parsed, compiled and evaluated independently.
We can get the code objects for each command via the compile built-in:
>>> com1 = compile("a=1000", filename="", mode="single")
>>> com2 = compile("b=1000", filename="", mode="single")

For each assignment statement, we will get a similar looking code object which looks like the following:
>>> print(dis.code_info(com1))
Name:              <module>
Filename:
Argument count:    0
Kw-only arguments: 0
Number of locals:  0
Stack size:        1
Flags:             NOFREE
Constants:
   0: 1000
   1: None
Names:
   0: a

The same command for com2 looks the same but has a fundamental difference: each of the code objects com1 and com2 have different int instances representing the literal 1000. This is why, in this case, when we do a is b via the co_consts argument, we actually get:
>>> id(com1.co_consts[0]) == id(com2.co_consts[0])
False

Which agrees with what we actually got.
Different code objects, different contents.

Note: I was somewhat curious as to how exactly this happens in the source code and after digging through it I believe I finally found it.
During compilations phase the co_consts attribute is represented by a dictionary object. In compile.c we can actually see the initialization:
/* snippet for brevity */

u->u_lineno = 0;
u->u_col_offset = 0;
u->u_lineno_set = 0;
u->u_consts = PyDict_New();

/* snippet for brevity */

During compilation this is checked for already existing constants. See @Raymond Hettinger's answer below for a bit more on this.

Caveats:

*

*Chained statements will evaluate to an identity check of True
It should be more clear now why exactly the following evaluates to True:
 >>> a = 1000; b = 1000;
 >>> a is b

In this case, by chaining the two assignment commands together we tell the interpreter to compile these together. As in the case for the function object, only one object for the literal 1000 will be created resulting in a True value when evaluated.

*Execution on a module level yields True again:
As previously mentioned, the reference manual states that:

... The following are blocks: a module ...

So the same premise applies: we will have a single code object (for the module) and so, as a result, single values stored for each different literal.

*The same doesn't apply for mutable objects:
Meaning that unless we explicitly initialize to the same mutable object (for example with a = b = []), the identity of the objects will never be equal, for example:
    a = []; b = []
    a is b  # always evaluates to False

Again, in the documentation, this is specified:

after a = 1; b = 1, a and b may or may not refer to the same object with the value one, depending on the implementation, but after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists.

A: At the interactive prompt, entry are compiled in a single mode which processes one complete statement at a time.  The compiler itself (in Python/compile.c) tracks the constants in a dictionary called u_consts that maps the constant object to its index.
In the compiler_add_o() function, you see that before adding a new constant (and incrementing the index), the dict is checked to see whether the constant object and index already exist.  If so, they are reused.
In short, that means that repeated constants in one statement (such as in your function definition) are folded into one singleton.  In contrast, your a = 1000 and b = 1000 are two separate statements, so no folding takes place.
FWIW, this is all just a CPython implementation detail (i.e. not guaranteed by the language).  This is why the references given here are to the C source code rather than the language specification which makes no guarantees on the subject.
Hope you enjoyed this insight into how CPython works under the hood :-)

redpajama_set_name: RedPajamaStackExchange


text:
Q: nodejs and expressjs app.get('/', function(req, res) {
    res.set('Content-Type', 'text/html');
    res.send('Yo');
    setTimeout(function(){
        res.send("Yo");
    },1000);
});

It looks like "send" ends the request. How can I get this to write Yo on the screen and then 1 second later (sort of like long polling I guess) write the other Yo to get YoYo? Is there some other method other than send?

A: Use res.write to generate output in pieces and then complete the response with res.end.

A: I don't think what you are trying to do is possible.
Once you send a response, the client-server connection will be closed.
Look into sockets (particularly socket.io) in order to keep a connection open and send multiple messages on it.

A: the thing with node.js is that it relies on an asynchronous "style". so if you introduce something like a "wait" function, you'll lose all the benefits of the asynchronous way of execution.
I believe you can achieve something similar to what you want by:

*

*(asynchronous way) including a function that prints the second "Yo" as a callback to
the first function (or)

*(classic wait(synchronous) ) introduce a 'big' loop before presenting the second 'Yo'.

for example:
for(i=0; i < 100000000; i++) {
    //do something
}

A: Try with JQuery+JSON. send the response and then update what ever you need with JQuery and JSON.
This is a good tutorial of expressjs, including DB stuff (mongodb).

A: If you want to send the result as a single block try
app.get('/', function(req, res) {
    res.set('Content-Type', 'text/html');
    res.write('Yo');
    setTimeout(function(){
        res.end("Yo");
    },1000);
});

or something like
app.get('/', function(req, res) {
    res.set('Content-Type', 'text/html');
    var str = 'yo';
    setTimeout(function(){
        res.end(str + 'yo');
    },1000);
});


The day-to-day focus of most of a government's time in office is on matters seemingly unrelated to terrorism and counterterrorism.
Three-quarters of post-9/11 attacks and disrupted plots in Australia have occurred since September 2014, when Australia's terror alert level was first raised to PROBABLE (a terror attack is likely). Australia has experienced four attacks and 17 disrupted plots to date (Apr '17).
100 Australians are known to be fighting in terrorist groups in Iraq and Syria, while another 70 have been killed and 40 have returned to Australia. Around 200 have been prevented from leaving Australia through passport cancellation or suspension.
Agencies are currently investigating around 400 terrorism cases.
Policy, Guns and Money. The Christchurch terror attack & The North and Australia's Security.


text:
Coscinocephalus cribrifrons är en skalbaggsart som beskrevs av Schaeffer 1906. Coscinocephalus cribrifrons ingår i släktet Coscinocephalus och familjen Dynastidae. Inga underarter finns listade i Catalogue of Life.

Källor

Skalbaggar
cribrifrons


text:
"""Utilities for requesting information for a gerrit server via https.

https://gerrit-review.googlesource.com/Documentation/rest-api.html
"""

from __future__ import print_function

import datetime
import json
import os
import re
import socket
import sys
import warnings

import httplib2
try:
  from oauth2client import gce
except ImportError:  # Newer oauth2client versions put it in .contrib
  # pylint: disable=import-error,no-name-in-module
  from oauth2client.contrib import gce
import six
from six.moves import html_parser as HTMLParser
from six.moves import http_client as httplib
from six.moves import http_cookiejar as cookielib
from six.moves import urllib

from chromite.lib import auth
from chromite.lib import constants
from chromite.lib import cros_logging as logging
from chromite.lib import git
from chromite.lib import retry_util
from chromite.lib import timeout_util
from chromite.lib import cros_build_lib
from chromite.utils import memoize

_GAE_VERSION = 'GAE_VERSION'

class ErrorParser(HTMLParser.HTMLParser):
  """Class to parse GOB error message reported as HTML.

  Only data inside
 section is retrieved from the
  GOB error message. Retrieved data is processed as follows:

  - newlines are removed
  - each
 tag is replaced with '\n'
  - each
 tag is replaced with '\n\n'
  """

  def __init__(self):
    HTMLParser.HTMLParser.__init__(self)
    self.in_div = False
    self.err_data = ''

  def handle_starttag(self, tag, attrs):
    tag_id = [x[1] for x in attrs if x[0] == 'id']
    if tag == 'div' and tag_id and tag_id[0] == 'af-error-container':
      self.in_div = True
      return

    if self.in_div:
      if tag == 'p':
        self.err_data += '\n\n'
        return

      if tag == 'br':
        self.err_data += '\n'
        return

  def handle_endtag(self, tag):
    if tag == 'div':
      self.in_div = False

  def handle_data(self, data):
    if self.in_div:
      self.err_data += data.replace('\n', '')

  def ParsedDiv(self):
    return self.err_data.strip()

@memoize.Memoize
def _GetAppCredentials():
  """Returns the singleton Appengine credentials for gerrit code review."""
  return gce.AppAssertionCredentials(
      scope='https://www.googleapis.com/auth/gerritcodereview')

TRY_LIMIT = 11
SLEEP = 0.5
REQUEST_TIMEOUT_SECONDS = 120  # 2 minutes.

# Controls the transport protocol used to communicate with Gerrit servers using
# git. This is parameterized primarily to enable cros_test_lib.GerritTestCase.
GIT_PROTOCOL = 'https'

# The GOB conflict errors which could be ignorable.
GOB_CONFLICT_ERRORS = (
    br'change is closed',
    br'Cannot reduce vote on labels for closed change',
)

GOB_CONFLICT_ERRORS_RE = re.compile(br'|'.join(GOB_CONFLICT_ERRORS),
                                    re.IGNORECASE)

GOB_ERROR_REASON_CLOSED_CHANGE = 'CLOSED CHANGE'

class GOBError(Exception):
  """Exception class for errors commuicating with the gerrit-on-borg service."""
  def __init__(self, http_status=None, reason=None):
    self.http_status = http_status
    self.reason = reason

    message = ''
    if http_status is not None:
      message += '(http_status): %d' % (http_status,)
    if reason is not None:
      message += '(reason): %s' % (reason,)
    if not message:
      message = 'Unknown error'

    super(GOBError, self).__init__(message)

class InternalGOBError(GOBError):
  """Exception class for GOB errors with status >= 500"""

def _QueryString(param_dict, first_param=None):
  """Encodes query parameters in the key:val[+key:val...] format specified here:

  https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-changes
  """
  q = [urllib.parse.quote(first_param)] if first_param else []
  q.extend(['%s:%s' % (key, val) for key, val in param_dict.items()])
  return '+'.join(q)

def GetCookies(host, path, cookie_paths=None):
  """Returns cookies that should be set on a request.

  Used by CreateHttpConn for any requests that do not already specify a Cookie
  header. All requests made by this library are HTTPS.

  Args:
    host: The hostname of the Gerrit service.
    path: The path on the Gerrit service, already including /a/ if applicable.
    cookie_paths: Files to look in for cookies. Defaults to looking in the
      standard places where GoB places cookies.

  Returns:
    A dict of cookie name to value, with no URL encoding applied.
  """
  cookies = {}
  if cookie_paths is None:
    cookie_paths = (constants.GOB_COOKIE_PATH, constants.GITCOOKIES_PATH)
  for cookie_path in cookie_paths:
    if os.path.isfile(cookie_path):
      with open(cookie_path) as f:
        for line in f:
          fields = line.strip().split('\t')
          if line.strip().startswith('#') or len(fields) != 7:
            continue
          domain, xpath, key, value = fields[0], fields[2], fields[5], fields[6]
          if cookielib.domain_match(host, domain) and path.startswith(xpath):
            cookies[key] = value
  return cookies

def CreateHttpConn(host, path, reqtype='GET', headers=None, body=None):
  """Opens an https connection to a gerrit service, and sends a request."""
  path = '/a/' + path.lstrip('/')
  headers = headers or {}
  if _InAppengine():
    # TODO(phobbs) how can we choose to only run this on GCE / AppEngine?
    credentials = _GetAppCredentials()
    try:
      headers.setdefault(
          'Authorization',
          'Bearer %s' % credentials.get_access_token().access_token)
    except gce.HttpAccessTokenRefreshError as e:
      logging.debug('Failed to retreive gce access token: %s', e)
    # Not in an Appengine or GCE environment.
    except httplib2.ServerNotFoundError as e:
      pass

  cookies = GetCookies(host, path)
  if 'Cookie' not in headers and cookies:
    headers['Cookie'] = '; '.join('%s=%s' % (n, v) for n, v in cookies.items())
  elif 'Authorization' not in headers:
    try:
      git_creds = auth.GitCreds()
    except auth.AccessTokenError:
      git_creds = None
    if git_creds:
      headers.setdefault('Authorization', 'Bearer %s' % git_creds)
    else:
      logging.debug(
          'No gitcookies file, Appengine credentials, or LUCI git creds found.')

  if 'User-Agent' not in headers:
    # We may not be in a git repository.
    try:
      version = git.GetGitRepoRevision(
          os.path.dirname(os.path.realpath(__file__)))
    except cros_build_lib.RunCommandError:
      version = 'unknown'
    headers['User-Agent'] = ' '.join((
        'chromite.lib.gob_util',
        os.path.basename(sys.argv[0]),
        version,
    ))

  if body:
    body = json.JSONEncoder().encode(body)
    headers.setdefault('Content-Type', 'application/json')
  if logging.getLogger().isEnabledFor(logging.DEBUG):
    logging.debug('%s https://%s%s', reqtype, host, path)
    for key, val in headers.items():
      if key.lower() in ('authorization', 'cookie'):
        val = 'HIDDEN'
      logging.debug('%s: %s', key, val)
    if body:
      logging.debug(body)
  conn = httplib.HTTPSConnection(host)
  conn.req_host = host
  conn.req_params = {
      'url': path,
      'method': reqtype,
      'headers': headers,
      'body': body,
  }
  conn.request(**conn.req_params)
  return conn

def _InAppengine():
  """Returns whether we're in the Appengine environment."""
  return _GAE_VERSION in os.environ

def FetchUrl(host, path, reqtype='GET', headers=None, body=None,
             ignore_204=False, ignore_404=True):
  """Fetches the http response from the specified URL.

  Args:
    host: The hostname of the Gerrit service.
    path: The path on the Gerrit service. This will be prefixed with '/a'
          automatically.
    reqtype: The request type. Can be GET or POST.
    headers: A mapping of extra HTTP headers to pass in with the request.
    body: A string of data to send after the headers are finished.
    ignore_204: for some requests gerrit-on-borg will return 204 to confirm
                proper processing of the request. When processing responses to
                these requests we should expect this status.
    ignore_404: For many requests, gerrit-on-borg will return 404 if the request
                doesn't match the database contents.  In most such cases, we
                want the API to return None rather than raise an Exception.

  Returns:
    The connection's reply, as bytes.
  """
  @timeout_util.TimeoutDecorator(REQUEST_TIMEOUT_SECONDS)
  def _FetchUrlHelper():
    err_prefix = 'A transient error occured while querying %s:\n' % (host,)
    try:
      conn = CreateHttpConn(host, path, reqtype=reqtype, headers=headers,
                            body=body)
      response = conn.getresponse()
    except socket.error as ex:
      logging.warning('%s%s', err_prefix, str(ex))
      raise

    # Normal/good responses.
    response_body = response.read()
    if response.status == 204 and ignore_204:
      # This exception is used to confirm expected response status.
      raise GOBError(http_status=response.status, reason=response.reason)
    if response.status == 404 and ignore_404:
      return b''
    elif response.status == 200:
      return response_body

    # Bad responses.
    logging.debug('response msg:\n%s', response.msg)
    http_version = 'HTTP/%s' % ('1.1' if response.version == 11 else '1.0')
    msg = ('%s %s %s\n%s %d %s\nResponse body: %r' %
           (reqtype, conn.req_params['url'], http_version,
            http_version, response.status, response.reason,
            response_body))

    # Ones we can retry.
    if response.status >= 500:
      # A status >=500 is assumed to be a possible transient error; retry.
      logging.warning('%s%s', err_prefix, msg)
      raise InternalGOBError(
          http_status=response.status,
          reason=response.reason)

    # Ones we cannot retry.
    home = os.environ.get('HOME', '~')
    url = 'https://%s/new-password' % host
    if response.status in (302, 303, 307):
      err_prefix = ('Redirect found; missing/bad %s/.gitcookies credentials or '
                    'permissions (0600)?\n See %s' % (home, url))
    elif response.status in (400,):
      err_prefix = 'Permission error; talk to the admins of the GoB instance'
    elif response.status in (401,):
      err_prefix = ('Authorization error; missing/bad %s/.gitcookies '
                    'credentials or permissions (0600)?\n See %s' % (home, url))
    elif response.status in (422,):
      err_prefix = ('Bad request body?')

    logging.warning(err_prefix)

    # If GOB output contained expected error message, reduce log visibility of
    # raw GOB output reported below.
    ep = ErrorParser()
    ep.feed(response_body.decode('utf-8'))
    ep.close()
    parsed_div = ep.ParsedDiv()
    if parsed_div:
      logging.warning('GOB Error:\n%s', parsed_div)
      logging_function = logging.debug
    else:
      logging_function = logging.warning

    logging_function(msg)
    if response.status >= 400:
      # The 'X-ErrorId' header is set only on >= 400 response code.
      logging_function('X-ErrorId: %s', response.getheader('X-ErrorId'))

    try:
      logging.warning('conn.sock.getpeername(): %s', conn.sock.getpeername())
    except AttributeError:
      logging.warning('peer name unavailable')

    if response.status == httplib.CONFLICT:
      # 409 conflict
      if GOB_CONFLICT_ERRORS_RE.search(response_body):
        raise GOBError(
            http_status=response.status,
            reason=GOB_ERROR_REASON_CLOSED_CHANGE)
      else:
        raise GOBError(http_status=response.status, reason=response.reason)
    else:
      raise GOBError(http_status=response.status, reason=response.reason)

  return retry_util.RetryException(
      (socket.error, InternalGOBError, timeout_util.TimeoutError),
      TRY_LIMIT,
      _FetchUrlHelper, sleep=SLEEP, backoff_factor=2)

def FetchUrlJson(*args, **kwargs):
  """Fetch the specified URL and parse it as JSON.

  See FetchUrl for arguments.
  """
  fh = FetchUrl(*args, **kwargs)

  # In case ignore_404 is True, we want to return None instead of
  # raising an exception.
  if not fh:
    return None

  # The first line of the response should always be: )]}'
  if not fh.startswith(b")]}'"):
    raise GOBError(http_status=200, reason='Unexpected json output: %r' % fh)

  _, _, json_data = fh.partition(b'\n')
  return json.loads(json_data)

def QueryChanges(host, param_dict, first_param=None, limit=None, o_params=None,
                 start=None):
  """Queries a gerrit-on-borg server for changes matching query terms.

  Args:
    host: The Gerrit server hostname.
    param_dict: A dictionary of search parameters, as documented here:
        https://gerrit-review.googlesource.com/Documentation/user-search.html
    first_param: A change identifier
    limit: Maximum number of results to return.
    o_params: A list of additional output specifiers, as documented here:
        https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#list-changes
    start: Offset in the result set to start at.

  Returns:
    A list of json-decoded query results.
  """
  # Note that no attempt is made to escape special characters; YMMV.
  if not param_dict and not first_param:
    raise RuntimeError('QueryChanges requires search parameters')
  path = 'changes/?q=%s' % _QueryString(param_dict, first_param)
  if start:
    path = '%s&S=%d' % (path, start)
  if limit:
    path = '%s&n=%d' % (path, limit)
  if o_params:
    path = '%s&%s' % (path, '&'.join(['o=%s' % p for p in o_params]))
  # Don't ignore 404; a query should always return a list, even if it's empty.
  return FetchUrlJson(host, path, ignore_404=False)

def MultiQueryChanges(host, param_dict, change_list, limit=None, o_params=None,
                      start=None):
  """Initiate a query composed of multiple sets of query parameters."""
  if not change_list:
    raise RuntimeError(
        "MultiQueryChanges requires a list of change numbers/id's")
  q = ['q=%s' % '+OR+'.join(urllib.parse.quote(str(x)) for x in change_list)]
  if param_dict:
    q.append(_QueryString(param_dict))
  if limit:
    q.append('n=%d' % limit)
  if start:
    q.append('S=%s' % start)
  if o_params:
    q.extend(['o=%s' % p for p in o_params])
  path = 'changes/?%s' % '&'.join(q)
  try:
    result = FetchUrlJson(host, path, ignore_404=False)
  except GOBError as e:
    msg = '%s:\n%s' % (e, path)
    raise GOBError(http_status=e.http_status, reason=msg)
  return result

def GetGerritFetchUrl(host):
  """Given a gerrit host name returns URL of a gerrit instance to fetch from."""
  return 'https://%s/' % host

def GetChangePageUrl(host, change_number):
  """Given a gerrit host name and change number, return change page url."""
  return 'https://%s/#/c/%d/' % (host, change_number)

def _GetChangePath(change):
  """Given a change id, return a path prefix for the change."""
  return 'changes/%s' % str(change).replace('/', '%2F')

def GetChangeUrl(host, change):
  """Given a gerrit host name and change id, return an url for the change."""
  return 'https://%s/a/%s' % (host, _GetChangePath(change))

def GetChange(host, change):
  """Query a gerrit server for information about a single change."""
  return FetchUrlJson(host, _GetChangePath(change))

def GetChangeReview(host, change, revision=None):
  """Get the current review information for a change."""
  if revision is None:
    revision = 'current'
  path = '%s/revisions/%s/review' % (_GetChangePath(change), revision)
  return FetchUrlJson(host, path)

def GetChangeCommit(host, change, revision=None):
  """Get the current review information for a change."""
  if revision is None:
    revision = 'current'
  path = '%s/revisions/%s/commit' % (_GetChangePath(change), revision)
  return FetchUrlJson(host, path)

def GetChangeCurrentRevision(host, change):
  """Get information about the latest revision for a given change."""
  jmsg = GetChangeReview(host, change)
  if jmsg:
    return jmsg.get('current_revision')

def GetChangeDetail(host, change, o_params=None):
  """Query a gerrit server for extended information about a single change."""
  path = '%s/detail' % _GetChangePath(change)
  if o_params:
    path = '%s?%s' % (path, '&'.join(['o=%s' % p for p in o_params]))
  return FetchUrlJson(host, path)

def GetChangeReviewers(host, change):
  """Get information about all reviewers attached to a change.

  Args:
    host: The Gerrit host to interact with.
    change: The Gerrit change ID.
  """
  warnings.warn('GetChangeReviewers is deprecated; use GetReviewers instead.')
  GetReviewers(host, change)

def ReviewedChange(host, change):
  """Mark a gerrit change as reviewed."""
  path = '%s/reviewed' % _GetChangePath(change)
  return FetchUrlJson(host, path, reqtype='PUT', ignore_404=False)

def UnreviewedChange(host, change):
  """Mark a gerrit change as unreviewed."""
  path = '%s/unreviewed' % _GetChangePath(change)
  return FetchUrlJson(host, path, reqtype='PUT', ignore_404=False)

def IgnoreChange(host, change):
  """Ignore a gerrit change."""
  path = '%s/ignore' % _GetChangePath(change)
  return FetchUrlJson(host, path, reqtype='PUT', ignore_404=False)

def UnignoreChange(host, change):
  """Unignore a gerrit change."""
  path = '%s/unignore' % _GetChangePath(change)
  return FetchUrlJson(host, path, reqtype='PUT', ignore_404=False)

def AbandonChange(host, change, msg=''):
  """Abandon a gerrit change."""
  path = '%s/abandon' % _GetChangePath(change)
  body = {'message': msg}
  return FetchUrlJson(host, path, reqtype='POST', body=body, ignore_404=False)

def RestoreChange(host, change, msg=''):
  """Restore a previously abandoned change."""
  path = '%s/restore' % _GetChangePath(change)
  body = {'message': msg}
  return FetchUrlJson(host, path, reqtype='POST', body=body, ignore_404=False)

def DeleteDraft(host, change):
  """Delete a gerrit draft change."""
  path = _GetChangePath(change)
  try:
    FetchUrl(host, path, reqtype='DELETE', ignore_204=True, ignore_404=False)
  except GOBError as e:
    # On success, gerrit returns status 204; anything else is an error.
    if e.http_status != 204:
      raise
  else:
    raise GOBError(
        http_status=200,
        reason='Unexpectedly received a 200 http status while deleting draft '
               ' %r' % change)

def SubmitChange(host, change, revision=None, wait_for_merge=True):
  """Submits a gerrit change via Gerrit."""
  if revision is None:
    revision = 'current'
  path = '%s/revisions/%s/submit' % (_GetChangePath(change), revision)
  body = {'wait_for_merge': wait_for_merge}
  return FetchUrlJson(host, path, reqtype='POST', body=body, ignore_404=False)

def CheckChange(host, change, sha1=None):
  """Performs consistency checks on the change, and fixes inconsistencies.

  This is useful for forcing Gerrit to check whether a change has already been
  merged into the git repo. Namely, if |sha1| is provided and the change is in
  'NEW' status, Gerrit will check if a change with that |sha1| is in the repo
  and mark the change as 'MERGED' if it exists.

  Args:
    host: The Gerrit host to interact with.
    change: The Gerrit change ID.
    sha1: An optional hint of the commit's SHA1 in Git.
  """
  path = '%s/check' % (_GetChangePath(change),)
  if sha1:
    body, headers = {'expect_merged_as': sha1}, {}
  else:
    body, headers = {}, {'Content-Length': '0'}

  return FetchUrlJson(host, path, reqtype='POST',
                      body=body, ignore_404=False,
                      headers=headers)

def GetAssignee(host, change):
  """Get assignee for a change."""
  path = '%s/assignee' % _GetChangePath(change)
  return FetchUrlJson(host, path)

def AddAssignee(host, change, assignee):
  """Add reviewers to a change.

  Args:
    host: The Gerrit host to interact with.
    change: The Gerrit change ID.
    assignee: Gerrit account email as a string
  """
  path = '%s/assignee' % _GetChangePath(change)
  body = {'assignee': assignee}
  return  FetchUrlJson(host, path, reqtype='PUT', body=body, ignore_404=False)

def MarkPrivate(host, change):
  """Marks the given CL as private.

  Args:
    host: The gob host to interact with.
    change: CL number on the given host.
  """
  path = '%s/private' % _GetChangePath(change)
  try:
    FetchUrlJson(host, path, reqtype='POST', ignore_404=False)
  except GOBError as e:
    # 201: created -- change was successfully marked private.
    if e.http_status != 201:
      raise
  else:
    raise GOBError(
        http_status=200,
        reason='Change was already marked private',
    )

def MarkNotPrivate(host, change):
  """Sets the private bit on given CL to False.

  Args:
    host: The gob host to interact with.
    change: CL number on the given host.
  """
  path = '%s/private.delete' % _GetChangePath(change)
  try:
    FetchUrlJson(host, path, reqtype='POST', ignore_404=False, ignore_204=True)
  except GOBError as e:
    if e.http_status == 204:
      # 204: no content -- change was successfully marked not private.
      pass
    elif e.http_status == 409:
      raise GOBError(
          http_status=e.http_status,
          reason='Change was already marked not private',
      )
    else:
      raise
  else:
    raise GOBError(
        http_status=200,
        reason='Got unexpected 200 when marking change not private.',
    )

def GetReviewers(host, change):
  """Get information about all reviewers attached to a change.

  Args:
    host: The Gerrit host to interact with.
    change: The Gerrit change ID.
  """
  path = '%s/reviewers' % _GetChangePath(change)
  return FetchUrlJson(host, path)

def AddReviewers(host, change, add=None, notify=None):
  """Add reviewers to a change."""
  if not add:
    return
  if isinstance(add, six.string_types):
    add = (add,)
  body = {}
  if notify:
    body['notify'] = notify
  path = '%s/reviewers' % _GetChangePath(change)
  for r in add:
    body['reviewer'] = r
    jmsg = FetchUrlJson(host, path, reqtype='POST', body=body, ignore_404=False)
  return jmsg

def RemoveReviewers(host, change, remove=None, notify=None):
  """Remove reveiewers from a change."""
  if not remove:
    return
  if isinstance(remove, six.string_types):
    remove = (remove,)
  body = {}
  if notify:
    body['notify'] = notify
  for r in remove:
    path = '%s/reviewers/%s/delete' % (_GetChangePath(change), r)
    try:
      FetchUrl(host, path, reqtype='POST', body=body, ignore_204=True)
    except GOBError as e:
      # On success, gerrit returns status 204; anything else is an error.
      if e.http_status != 204:
        raise

def SetReview(host, change, revision=None, msg=None, labels=None, notify=None):
  """Set labels and/or add a message to a code review."""
  if revision is None:
    revision = 'current'
  if not msg and not labels:
    return
  path = '%s/revisions/%s/review' % (_GetChangePath(change), revision)
  body = {}
  if msg:
    body['message'] = msg
  if labels:
    body['labels'] = labels
  if notify:
    body['notify'] = notify
  response = FetchUrlJson(host, path, reqtype='POST', body=body)
  if response is None:
    raise GOBError(
        http_status=404,
        reason='CL %s not found in %s' % (change, host))
  if labels:
    for key, val in labels.items():
      if ('labels' not in response or key not in response['labels'] or
          int(response['labels'][key] != int(val))):
        raise GOBError(
            http_status=200,
            reason='Unable to set "%s" label on change %s.' % (key, change))

def SetTopic(host, change, topic):
  """Set |topic| for a change. If |topic| is empty, it will be deleted"""
  path = '%s/topic' % _GetChangePath(change)
  body = {'topic': topic}
  return FetchUrlJson(host, path, reqtype='PUT', body=body, ignore_404=False)

def SetHashtags(host, change, add, remove):
  """Adds and / or removes hashtags from a change.

  Args:
    host: Hostname (without protocol prefix) of the gerrit server.
    change: A gerrit change number.
    add: a list of hashtags to be added.
    remove: a list of hashtags to be removed.
  """
  path = '%s/hashtags' % _GetChangePath(change)
  return FetchUrlJson(host, path, reqtype='POST',
                      body={'add': add, 'remove': remove},
                      ignore_404=False)

def ResetReviewLabels(host, change, label, value='0', revision=None,
                      message=None, notify=None):
  """Reset the value of a given label for all reviewers on a change."""
  if revision is None:
    revision = 'current'
  # This is tricky when working on the "current" revision, because there's
  # always the risk that the "current" revision will change in between API
  # calls.  So, the code dereferences the "current" revision down to a literal
  # sha1 at the beginning and uses it for all subsequent calls.  As a sanity
  # check, the "current" revision is dereferenced again at the end, and if it
  # differs from the previous "current" revision, an exception is raised.
  current = (revision == 'current')
  jmsg = GetChangeDetail(
      host, change, o_params=['CURRENT_REVISION', 'CURRENT_COMMIT'])
  if current:
    revision = jmsg['current_revision']
  value = str(value)
  path = '%s/revisions/%s/review' % (_GetChangePath(change), revision)
  message = message or (
      '%s label set to %s programmatically by chromite.' % (label, value))
  for review in jmsg.get('labels', {}).get(label, {}).get('all', []):
    if str(review.get('value', value)) != value:
      body = {
          'message': message,
          'labels': {label: value},
          'on_behalf_of': review['_account_id'],
      }
      if notify:
        body['notify'] = notify
      response = FetchUrlJson(host, path, reqtype='POST', body=body)
      if str(response['labels'][label]) != value:
        username = review.get('email', jmsg.get('name', ''))
        raise GOBError(
            http_status=200,
            reason='Unable to set %s label for user "%s" on change %s.' % (
                label, username, change))
  if current:
    new_revision = GetChangeCurrentRevision(host, change)
    if not new_revision:
      raise GOBError(
          http_status=200,
          reason='Could not get review information for change "%s"' % change)
    elif new_revision != revision:
      raise GOBError(
          http_status=200,
          reason='While resetting labels on change "%s", a new patchset was '
                 'uploaded.' % change)

def GetTipOfTrunkRevision(git_url):
  """Returns the current git revision on the master branch."""
  parsed_url = urllib.parse.urlparse(git_url)
  path = parsed_url[2].rstrip('/') + '/+log/master?n=1&format=JSON'
  j = FetchUrlJson(parsed_url[1], path, ignore_404=False)
  if not j:
    raise GOBError(
        reason='Could not find revision information from %s' % git_url)
  try:
    return j['log'][0]['commit']
  except (IndexError, KeyError, TypeError):
    msg = ('The json returned by https://%s%s has an unfamiliar structure:\n'
           '%s\n' % (parsed_url[1], path, j))
    raise GOBError(reason=msg)

def GetCommitDate(git_url, commit):
  """Returns the date of a particular git commit.

  The returned object is naive in the sense that it doesn't carry any timezone
  information - you should assume UTC.

  Args:
    git_url: URL for the repository to get the commit date from.
    commit: A git commit identifier (e.g. a sha1).

  Returns:
    A datetime object.
  """
  parsed_url = urllib.parse.urlparse(git_url)
  path = '%s/+log/%s?n=1&format=JSON' % (parsed_url.path.rstrip('/'), commit)
  j = FetchUrlJson(parsed_url.netloc, path, ignore_404=False)
  if not j:
    raise GOBError(
        reason='Could not find revision information from %s' % git_url)
  try:
    commit_timestr = j['log'][0]['committer']['time']
  except (IndexError, KeyError, TypeError):
    msg = ('The json returned by https://%s%s has an unfamiliar structure:\n'
           '%s\n' % (parsed_url.netloc, path, j))
    raise GOBError(reason=msg)
  try:
    # We're parsing a string of the form 'Tue Dec 02 17:48:06 2014'.
    return datetime.datetime.strptime(commit_timestr,
                                      constants.GOB_COMMIT_TIME_FORMAT)
  except ValueError:
    raise GOBError(reason='Failed parsing commit time "%s"' % commit_timestr)

def GetAccount(host):
  """Get information about the user account."""
  return FetchUrlJson(host, 'accounts/self')

redpajama_set_name: RedPajamaGithub


So I've been running around like a mad dog getting ready to head up to the desert... I have been getting my affair in order and desperately trying to finish my projects for the playa. The Snail is still not finished, but it's coming along. I need to find a way to get it up there... anyone going with a big truck or a trailer who wants to share travel expenses and such?
I was in Santa Cruz at my friend Steve's for several days using his shop to build this thing and to help him in return with his projects. My Snail scooter is kinda cool, but his stuff is genius... the maddest of mad science. Large sculptures that are also both musical instruments and fireworks... incredible stuff. "Not your mother's parlor organ," as he likes to say. Kind of like Dr. Seuss meets Robert Goddard. He's been working on some improvements to his creations... I can't wait to see them run.
Still have so much work to do, so many things to get organized... absurd how much effort we put into getting ready to go relax and have fun for a week... maybe that's why I love it so much.


So you got stuck on the statement 94% A reason a student would be moved to the front of the class and cannot go any further? Don't worry, we have all the answers.
These were the answers to "94% A reason a student would be moved to the front of the class". If you are searching for the answers of another statement or image, just visit the homepage 94% answers.
This game is so easy. The first thing you have to know is that 94% is a guess game. In every level you will be given 2 statements and 1 image. All you have to do is find words or phrases associated to that statement or image. Usually the first things that come in mind are the right answers. So when I say "94 A reason a student would be moved to the front of the class", what things to you mind instinctively?
Which state is known as the Great Lakes State?
What do you have to write between numbers in an IP address?
Which is not an language spoken in India?
In what state is Mount Rushmore located?


text:
package uk.gov.hmrc.assetsassistant

import java.io.{File, FileOutputStream}
import java.net.URL
import java.util.zip.ZipFile

import org.apache.commons.io.IOUtils
import play.api.Play
import play.api.mvc.{Action, Controller}

import scala.sys.process._

object ApplicationController extends Controller {

  lazy val TargetDir = new File(Play.current.configuration.getString("targetdirectory").getOrElse("/tmp"))
  TargetDir.mkdir()

  lazy val RepoUrl = Play.current.configuration.getString("repoUrl").getOrElse(throw new RuntimeException("No config defined for repoUrl"))

  def unzip(file: File, version: String) = {
    val zipFile = new ZipFile(file)
    val entries = zipFile.entries

    while (entries.hasMoreElements) {
      val entry = entries.nextElement()
      val entryDestination = new File(new File(TargetDir, version), entry.getName)
      entryDestination.getParentFile.mkdirs()

      if (entry.isDirectory) entryDestination.mkdirs()
      else {
        val in = zipFile.getInputStream(entry)
        val out = new FileOutputStream(entryDestination)
        IOUtils.copy(in, out)
        IOUtils.closeQuietly(in)
        IOUtils.closeQuietly(out)
      }
    }
  }

  def assestVersionToDownload(version: String, filename: String) = Action {
    def directoryExistsForThisVersion = new File(TargetDir, version).exists

    def downloadZipForThisVersion(fileToDownload: String) = {
      val src = s"$RepoUrl/uk/gov/hmrc/assets-frontend/$version/assets-frontend-$version.zip"
      new URL(src) #> new File(TargetDir, s"$version.zip") !!
    }

    if (!directoryExistsForThisVersion) {
      downloadZipForThisVersion(filename)
      unzip(new File(TargetDir, s"$version.zip"), version)
    }

    Ok.sendFile(new File(TargetDir, s"$version/$filename"), inline = true)
  }
}


text:
Speak up to prevent sexual violence
Art deWerk
Posted: April 13, 2011, 5:47 a.m.
April is Sexual Assault Awareness Month (SAAM), in recognition of a serious and continuing problem within our society. According to the U,S, Department of Justice, sexual assault in its many forms includes "any unwanted sexual contact, including rape, attempted rape, and child sexual abuse. It can affect people of any gender, age, ethnicity, sexual orientation, or ability."
To be clear, anytime someone touches another person without their consent in an inappropriate manner, whether it is over or under their clothing, it is considered sexual battery. This includes grabbing someone's buttocks, crotch, or breasts, intentionally rubbing against someone in a sexual manner, and the more obvious forms of unwanted sexual contact. If the victim is under the age of 14, it is child molestation and similar deviant behaviors include people who expose themselves with the intent of sexual arousal.
Rapists who await women in dark parking lots, enter homes to perpetrate their crimes or look for women to attack in random places are, indeed, a threat, but are far less common than assaults that take place in the social milieu. These acts of violence occur far less often than the sexual assaults where the victim knows the attacker. With proper awareness, some advance planning and training, the threat from these kinds of attacks can be greatly minimized.
Sexual violence statistics are staggering: one in six women and one in 33 men in the US has experienced a rape or attempted rape. Not all sexual assaults occur in a violent context. In fact, a large percentage of the assaults occur during dates, in the employment environment and in other settings where there is an atmosphere of trust between the involved parties. According to one study, for example, "84 percent of women who were raped knew their assailants." Fifty-seven percent of rapes occurred during dates. The majority of rapes occur in living quarters-60 percent in the victim's residence, 10 percent in a fraternity, 31 percent in other living quarters. Victimizations also take place in bars, night clubs and work settings.
Also, according to the same study, college women in a four-year program stand an approximate 20-25 percent chance of being assaulted during that time frame. These statistics reflect an attitude of disrespect, in some cases the perpetrators have mental problems and in general, our society has not evolved to a level of sophistication that would pre-empt such behavior. Again, in the study referred to, a whopping 50 percent of high school boys said that "there were times when it was acceptable for a male to hold a female down and physically force her to have sexual intercourse." Clearly, there must be an ongoing failure within our society that allows such a large percentage of school-aged males to believe that there are instances when rape is acceptable. To be clear, rape is never acceptable, it is a barbaric and dangerous act that leaves victims both mentally and physically injured. These behaviors are learned and we as a society must take steps to end this preventable violence.
Date rape is frequently carried out with alcohol or drugs as a facilitating agent. Many of the victims are incapable of making sound decisions, as are the rapists, when alcohol or drugs are involved. Many different drugs are used on potential rape victims. Rohypnol is used by unscrupulous persons who will drop the drug into a victim's drink. The drug affects a person's normal inhibitions, may cause them to black out and affects the victim's memory after a rape event. Alcohol is the most common intoxicant used, whether the intent to rape exists or not. A person who is intoxicated to the point of losing their ability to reason, and especially when they enter altered levels of consciousness (or if they become unconscious), a person wishing to have sex with them should assume that consent cannot be given, and the act therefore becomes rape - a felony that will surely fetch a harsh penalty when prosecuted.
Sexual assaults arising out of social interactions require much attention, especially in bar room settings and at parties where there is a measure of anonymity. Women, in particular, have the burden of needing to be cautious and alert to possible physical harm, owing to the predatory nature of some males who actually believe that rape is acceptable.
This year's SAAM campaign is, "It's time ... to get involved," which encourages people to speak up to prevent sexual violence, especially if you are a bystander who is unsure of what do to or afraid to speak up.

redpajama_set_name: RedPajamaCommonCrawl


She was always so neat. So manicured and well-groomed.
She cared. She shopped in fine department stores and lunched in the mall with her friends.
Then one day she got out of bed and didn't get dressed, didn't put her makeup on, didn't even look in a puddle at her appearance.
Everyone said she'd let herself go. Everyone said she was depressed. Maybe she was drinking.
…..she had become a farmer.
Amen sister!!You go ducky girl!
You go girl…..really like the "natural" look….
She still has that inner beauty!
I love it! You always manage to make me smile first thing in the morning! I know exactly how that farm girl feels, now I know I'm not alone when the mail woman or the UPS man or the Orkin man surprises me while my hair is (at least half way) twisted up in a scrunchy, I have goat poop on the knees of my ripped pants and chicken poop on my boots!
Wow, I was JUST talking about this the other day! It's amazing how quickly your threshold for filth gets lowered.
The duck is beautiful just the way she is, er was, er what a looker. I agree with catray 44, because I love your first thing in the am, I now will have to shop for a spew screen for my monitor. Honestly, I don't know how I could make it without you to make me smile every morning. You're the best. You da Woman.
Sometimes appearance is the last thing a body has time to worry about!
It looks like she's molting. But isn't it a little late for molting? I'm not a farmer so I'm not sure.
Beauty is truly in the eyes of the beholder–she is beautiful.
Suzanne–I want to ask, I looked at the top 20 sight, and it mentions voting for our favorite of the top 20 starting Nov. 17–do we need to rally the troops again? If so, let us know.
Bless her little heart…hard work will do that to ya…looks like she has her "down in a wad"….maybe a little candle lite bubble bath pond soak, toe nail pick and eye pluck will make her feel and look better….
You have an unbelievable imagination and sense of humor! Love it, love it, love it.
I don't have all the info yet, but I'll let you know when I do! Thank you!
Thumbs up to her and all other who have had the courage and strength and determination to take that large leap ……….
Very cute post and pictures! Most of what you share is a lesson to me, Suzanne! I just got my d-i-l reading your posts and sharing your animal stories with my grandson. Thanks for the generous spirit that shares the farmer's life with us all!
Oh, no DOUBT! My glory days are long over!
oh how i sympathise with that little duck, my husband's 6 year old grandaughter asked me the other day why i always wear dirty clothes!she always caches me just after mucking something out, and is a very neat and tidy little girl.
Love that duck! You can always tell who the gentlemen farmers are.
By the way, I've started reading you from across the room, my monitor needs saving!
ha-ha I wondered where the story was going. So true, I like el natural.
Another of my favorite blogs, Birdchick, has a humorous blog about ducks written by her husband, Non-Birding Bill.
And I bet she forgot to put on her pants!!!
After reading some of the other comments, I'm very glad I don't drink coffee. I have enough trouble with drool on my keyboard when you post beautiful food, and I'd hate to have my monitor covered in something as well!!
I believe I have reached "farmer" status!
Ha ha boy is that one true. I bet a plugged nickel that you never find her out of her jeans and t shirts either do you. I used to navigate around the Boston area and @1 Beacon Street in my fine duds and since I moved back to Boston…I don't have anything in my closet except my farm clothes…and heels….Oh my do I even own any?
Sorry every one–but I have to say it–this story really quacked me up!!!
That's right girl! God gave us "natural" beauty, so we are WAY more blessed!
Look at her disheveled feathers….I LOVE HER!!!!
I know exactly how that duck feels, and I am not a farmer, but I am retired.
I just love that Duck tale, thanks so much.


Taking your CPU to its limits can backfire. Here you can find out how to reduce the risks when overclocking your CPU.
CPU overclocking is the process of boosting your processor's performance beyond the default values assigned by the manufacturer. Why do it? To make your computer run faster. More specifically, you do it to increase the speed with which CPU-intensive applications run, for instance, encryption programs, 3D rendering tools, or games. If all you need is boost your in-game performance, overclocking your graphics card will yield better results. Although you can use specialized tools like Easy Tune or AMD OverDrive, it is recommended that you do it manually at first so that you will have a clear idea about what you are doing and what to expect.
This is not an official manual, rather a selection of tips that I've picked up over the years. If performed incorrectly, this process can cause damage to your hardware, so if you are unsure about what to do or you are not ready to replace the parts of your computer (which may get damaged), you shouldn't continue. What can go wrong? Your Windows may crash, your power supply may fry, your CPU may get burned, your motherboard may be charred, etc. However, if you really want to test the limits of your PC, this article can offer you a few pointers about how to do it properly.
Before we begin you need to be clear on a few things. The Base Clock is the base speed of your CPU. This term is used by the more recent processors as a replacement for the Front Side Bus or FSB. The CPU Multiplier is basically a number, which along with the base clock decides the final speed of your core processing unit. The CPU Core Voltage (Vcore) represents the power (voltage) allotted to your processor (in order to work faster it will require more power). Furthermore, the most important thing to remember is that Google is your friend. Two identical processors may not overclock in the same way, so searching for your CPU model on Google to see what other people have to say could prove very useful. Furthermore, you should search the Internet for your motherboard and see how prone it is to overclocking. Making sure that your power supply has surge protection functions is also recommended. Lastly, make sure you have a good enough cooling power: an overclocked CPU will generate more heat than under the default configuration, and often times a standard CPU cooler and common fan cannot keep up.
I'll divide the applications into categories and let you choose the ones that you want to use. The first thing you need are programs that will help you stress test your computer. For this task you can try any of the following: Aida64, Core Damage, OCCT, Prime95, CPU-Z, Lynx or Stress My PC. Another important step is making sure that your CPU doesn't overheat. To check the temperature you can use Real Temp or Core Temp. Furthermore, you might also want to install Power4 Gear - a tool that will automatically adjust your fan speed. Excepting Aida (which is a tool I really like), all the other mentioned applications are free, so if you don't like them, the only thing you will lose is some time.
The first thing you want to do is test your computer's stability using one of the tools that i mentioned in the first category. This will give you a starting point and help you compare the original results with the ones that you will get at the end of the process. (To get reliable results you need a couple of hours of testing, so bring snacks).
Now, you will need to enter your BIOS, which can be done by holding the Del, F2, F10 or F12 key (depending on your system), open the "Overclocking" section (on your BIOS it may be called "Frequency/Voltage Control" or something along these lines) and lower the memory bus speed (called "Memory Multiplier" / "Memory Ratio" / "DDR Memory Frequency") to its lowest setting.
Throughout the process, keep an eye on your CPU temperature and make sure you keep it below critical values (generally 85 degrees Celsius). Moreover, don't forget to enable the BIOS setting which automatically shuts down your PC if a certain temperature is reached.
The next step is to increase the base clock by a 10% increment and run a stress test to see how your computer reacts. If the test yields good results, keep increasing (again: in 10% increments) and stress testing until your system becomes unstable, then jot down the current values so that you can quickly come back to them. For "fine tuning" you can use 5 or 10 MHz per try instead of the previously mentioned increment.
To raise the CPU multiplier you should first go back and lower the base clock a bit. Then, once again, increase the value (this time by 0.5 increments), stress test and repeat until your computer crashes.
Repeat the last 3 steps until you can no longer increase the voltage or the CPU temperature gets too high. As a general rule, the maximum voltage increase limit is 0.4 over the original value (in case your cooling system allows it).
Finally, go back to the last values that your system could take (when it was still stable) and increase the memory bus speed. Do this in small increments, stress test as you go and remember that you might not be able to raise it all the way back to its original value. After you found the optimal values, run an extended stress test (several hours) and if everything is OK it means that you can keep the current settings. Don't forget that temperatures which are close to the superior limit are still OK, because most of the times, stress tests will push your computer limits more than your regular applications.
You can take overclocking even further than this, but this is as far as my "expertise" on the matter goes. For more advanced techniques you should visit specialized websites like Overclockers or Hexus, which will give you a lot of detailed information on this subject.


The primary on our listing of deep sea creatures is the fangtooth fish. This fish is probably the most evil trying ocean predators. It lives in the deep ocean and catches its prey by luring them in with glowing light organs called photophores. If you loved this article and you would certainly like to receive more info pertaining to Alpaca Farming_ kindly go to our own web-page. In such a darkish abyss, fish are interested in the light put off by the organ and as soon as they are shut enough the fangtooth fish catches them in his numerous giant teeth. He looks like an underwater vampire. One other carnivorous sea animal is the deep-sea lizardfish. These interesting fish look nearly like a short snake in water. Their mouths are covered with harpoon-tipped teeth that grasp their prey and don't let go, similar to a fish hook. These teeth are hinged in order that they can flattened down when prey is going in and stand up when resisting. They don't even need to actively swallow; the struggling prey just ratchets itself inside.