Txtbirds - <AUTHOR> http://www.jsvine.com/txtbirds/ <comment><USER2> What about txtpeople tho? <http://asdf.us/vortex/>

<comment><USER3> The effect of infinite audio tone descent is a Shepard tone <http://en.wikipedia.org/wiki/Shepard_tone>

</comment></comment><comment><USER4> I thought it was an angry birds for the command-line. Even though it is beautiful, I feel a bit disappointed... :)

<comment><USER5> Aw, now that I've read this you got my hopes up.

</comment></comment><comment><USER6> Not a critique of this in particular, but does JS styling inconsistency not drive everyone else mental? I'm not a big fan of camelCase, but when I see veer_coefficient_horizontal next to setTimeout, I get itchy.

</comment><comment><USER7> I was really hoping that clicking the birds would shoot them down ala duckhunt.

Fun little demonstration :)

<comment><USER8> I tried the duckhunt click too, could be a nice mod into a HTML5 game!

</comment></comment><comment> chao- Getting all sorts of text artifacts remaining smeared across my browser. Not this site's fault, and is something I've experienced before. It does make me wonder where the blame lies, though: Linux, Firefox or my graphics card?

<comment><USER5> The most likely would be Firefox. As Linux has nothing to do with graphics, so I assume you mean your X Server - like Gnome or XFCE or KDE - none of which have much affect into major browsers, which are designed to render themselves entirely separate from the system's window manager to be multi-platform. It's also not likely to be your graphics card, otherwise it would happen outside of your browser too. It could be the browser attempting to "accelerate" web pages by using your GPU - in which case you can find out by disabling GPU Accelerated Rendering - both Firefox and Chrome have settings for this.

<comment> chao- Sorry, I should have specified better. By "Linux" I meant the overall mix of Xorg and whatever display or GUI toolkits are in use, and instead of "graphics card", I should have said "graphics card drivers". If the card itself were having issues, I'm sure more than Firefox would have problems. Alternatively, I always hear about how "Linux has bad font rendering!" but since I'm not much of a font guy, I'm not sure if they're referring to how the fonts look, or some deeper part of the process which displays the fonts.

I recently had to switch to the radeon (open source) drivers instead of fglrx (AMD's proprietary) drivers due to some incompatibility with a kernel upgrade. It makes sense that the problem would exist somewhere between Firefox and its use of those drivers.

<comment><USER5> That does sound like it could easily cause problems. Graphics drivers are bad in all Linux systems. NVIDIA's I've seen tend to work better - just hope Steam does well with Linux and pushes ATI to finally make some good drivers.

</comment></comment></comment></comment><comment><USER9> I liked this little trick for going over and over an array:

this.flaps = [ '</comment><comment>', '/‾\\\/‾\\\', '‾‾\\\/‾‾' ]; ... this.el.innerHTML = this.flaps[this.flap_i++ % this.flaps.length];

</comment><comment><USER10> I like this.

What next, 3d ascii boids, with text size to show near or farness?

</comment><comment><USER11> Is there a blog post about this? I get most of it but a couple things, namely how the css transitions interact with the property updates in in the veer & fly functions and how opacity is governed. Good show, nice example of a tidy little JS object!

<comment><AUTHOR> Hey, thanks! I haven't written anything about txtbirds yet, but might soon. In the meantime, a brief explanation about those transitions and property updates:

\- With the exception of the `margin` transition, all the transitions are set to 10 seconds — roughly each bird's lifespan.

\- The `left` and `top` transitions move the bird toward the center from a randomly-assigned position on the screen.

\- The `font-size` and `color` transitions create the impression that the bird is receding into the distance, getting smaller and more lightly-colored.

\- The `margin` transition governs the veering. Every half-second, the bird is given new, randomish left- and top-margins. The transition (set to slightly less than a second in duration, after some trial-and-error) smooths that shift.

<comment><USER11> haha the text is faded to BG color, not alpha 0%... not sure why this possibility didn't occur to me. Thanks!

</comment></comment></comment><comment><USER12> Any reason you close your <html> tag with a </div> ?

<comment><AUTHOR> Nope, just an oversight. Thanks for flagging. Fixed: [https://github.com/jsvine/txtbirds/commit/b1fbf84560c1b2ad30...](https://github.com/jsvine/txtbirds/commit/b1fbf84560c1b2ad300e6ec6a8162268f442b43b)

</comment></comment><comment><USER13> Works only on chrome, Firefox(15 on XP) just shows a blank screen.

Edit: Apparently it doesn't work on FF 15. It worked on FF16 XP. and it also works on Safari

<comment><USER14> Works fine for me on Firefox 16.0.2 (Win).

<comment><USER15> Didn't work in 15.0.1(Win7), updated, works in 16.0.2

</comment></comment></comment><comment><USER16> I was expecting the page title to animate as well :)

</comment><comment><USER17> Any way to get this as a screensaver?

<comment><USER18> If you're on a Mac check out <https://github.com/liquidx/webviewscreensaver> \- Works well but you might not always have an internet connection so I just saved the HTML/CSS/JS into a folder and linked directly to that (and it works!)

</comment></comment><comment><USER19> I instantly tried to play duck hunt with this. It's broken.

</comment><comment><USER20> A flock of CSSGulls?

</comment><comment><USER21> pass gyre into your constructor, and reference the local variable. kudos, i love scripts for the sake of scripts.

<comment><AUTHOR> Good idea. Done: [https://github.com/jsvine/txtbirds/commit/207480cae2823dd57a...](https://github.com/jsvine/txtbirds/commit/207480cae2823dd57a73062c933295cfdd0a8631)

</comment></comment><comment><USER22> small little piece of art, great.

</comment><comment><USER23> not impressed. doesn't even work in opera :(

<comment><USER24> Yeah, I'm not very impressed with Opera either. ;)</comment></comment>


Show HN: Transmissions over time-based side channels across a network - <AUTHOR> https://www.anfractuosity.com/projects/timeshifter/

<comment><USER2> Neat little experiment! Delays between packets are not normally logged, so detecting this would be a challenge - any ideas of the best way to detect this sort of channel?

Interesting side note: If I recall correctly, a variant of this can be used to de-anonymise Tor connections if you have visibility over the entry and exit connections. Measure time and size relationships between packets and look for corresponding matching ones at the other end. Not 100% accurate, but with lots of connections it builds in confidence.

<comment><USER3> In theory the person running this protocol can just calibrate their settings until they are comfortably flying under the radar. You could make the "messages" less frequent which means someone trying to log the traffic will consume more bandwidth (increase the cost to log it) & tweak the algorithm to make it consume more CPU to decode/encode (making it difficult to "try" all the combinations of traffic to see if they happen to decode into something that matches a heuristic for a hidden message). Given a sufficiently large enough amount of "cover" bandwidth to hide in, and assuming your message is sufficient small, you'd be impossible to detect. Pretty brilliant.

Maybe the vibrations of our universe in "string theory" are some sort of message, too ;)</comment></comment>


'I wash all my food like crazy': scientists voice concern about nanoparticles - <AUTHOR> https://www.theguardian.com/us-news/2019/may/29/i-wash-all-my-food-like-crazy-researchers-voice-concern-about-nanoparticles <comment><USER2> Sigh... it's one of those articles. Headline claims "scientists" do this, but the quote in the article is:

> _" As a consumer, I wash all my foods like crazy," says Christine Ogilvie > Hendren, executive director of the Center for the Environmental Implications > of NanoTechnology at Duke University_

So... she's an advocate against this stuff pushing an agenda that it shouldn't be there, not a scientist talking about a finding.

That said: there's no particular reason for TiO2 powder to be in food. It's an inert white pigment, and does nothing but make the processed food (which we _already_ know is bad for you absent any colorings added) more attractive.

But come on folks: this story is sensationalist nonsense. Actual science on this stuff seems broadly unconclusive, and this particular pigment is in _very_ wide deployment across basically the whole world. Any measurable effects are going to be very low significance.

<comment><USER3> She's a scientist with an extensive body of publications in this domain; same with Christine Payne and Sowmya Purushothaman, the other two "scientists voicing concern." I agree that the article would have benefited from more diversity of perspective but it's unfair to characterize these contributors as "advocates pushing their agenda," and it's both inaccurate and disrespectful to use scare quotes when calling them scientists and to imply (if that was your intention) that they do not participate in "real" science.

As well, it isn't clear to me why one would read the title "Scientists voice concern about nanoparticles" and expect to read about about a particular research result rather than a survey of the current state of understanding.

<comment><USER2> > She's a scientist with an extensive body of publications in this domain

In the context of that quote, as made explicit by attribution, she's an _activist_ pushing a policy choice. That's not an indictment of her expertise, but it needs to be called out. She doesn't get to both advocate for a position in the text _and_ stand in for "scientists"[1] in an appeal to authority argument in the headline.

[1] These are, obviously, not "scare quotes"[2]. The word literally appears in the headline and I'm discussing the fact that it does!

[2] Those aren't either. You wrote the words and I'm repeating them with the quotes to indicate that I'm discussing the phrases used in your "argument"[3]

[3] Those are.

<comment><USER3> It would seem, by your logic, that it is actually impossible for scientists to voice concern about anything, because once they do so, they can no longer be called scientists, only advocates. If that's the case, then I simply disagree with your logic. If it isn't, and you see some egregious bias-having somewhere in the scientists' statements or qualifications, feel free to point it out. If you can do so without the overt hostility, even better.

<comment><USER2> You're still misunderstanding. It's not a criticism of the people quoted, it's a criticism of the journalism that presented the ideas as consensus worries when they're actually pretty niche concerns without a lot of good basis.

You can advocate for anything you want, and we can post a link to a screed by the hilariously named "Center for the Environmental Implications of NanoTechnology"[1] and we can discuss that here if you like.

But for the Guardian to do that is just editorializing.

[1] Still not scare quotes

<comment><USER3> Perhaps I need to be more clear myself. I do not think that you're criticizing the contributors, but I also do not think that you're criticizing the article. I think you're (inadvertently) criticizing an entire vein of science writing where the director of a Duke research lab can say there is room for concern and not get written off as an agenda-pusher in the comments.

</comment></comment></comment></comment></comment></comment><comment><USER4> One of the best things I've done is to challenge myself to buy no packaged food for a week. I made it 2.5 weeks and have reduced my food packaging by about 95% since, about 4 years ago.

I thought it would be hard at first and it was. Then everything changed.

I had no idea eating almost exclusively from CSAs, farmers markets, and bulk would

\- save money

\- save time

\- increase diversity

\- create community

and most of all

\- taste more delicious.

I'm never going back to mostly packaged food. I wish I could convey what Trader Joes, etc look like now compared to fresh from the farm. Something like a Surgeon General promoting cigarette brands, which used to seem normal.

<comment><USER5> _\- save time_

Does it though? A stack of packaged meals in the freezer that take 2 minutes to heat up and leave only a single utensil behind to wash seems like it would be much faster than preparing any kind of meal from fresh ingredients. And the shopping is faster too, no need to inspect each piece for quality, once you know your favorites, you just load them up in your cart and go.

<comment><USER6> But then you're eating... packaged frozen meals. Most of those are full of salt and preservatives, taste terrible, and are just generally bad. Maybe you have found a magical source of fresh, healthy, good tasting frozen meals, but that absolutely does not exist in most of the US.

I think it can be assumed that discussions about wholesome food excludes fast food by default.

<comment><USER7> No, the discussion is about food, not wholesome food. And the argument is around saving time not nutritional value.

<comment><USER6> No. The OP posted a list of items, all of which need to be taken as a whole for a complete argument. The CP cherry picked one item to skew the discussion to their argument.

If we're talking only about speed, then why not always eat McDonalds? Or Soylent? Clearly it's because there are other facets of the point being made other than speed alone.

<comment><USER8> Of course, but then touting speed as one of the advantages is a lie. Even if fresh food is overall better, in the particular aspect of speed, it's worse.

That is not cherry picking, it's attacking one of the arguments that rings false.

</comment></comment></comment></comment></comment></comment><comment><USER9> Nice, I can wash the titanium oxide down with my SSRI-microplastic tap water while swimming in the local antibiotic river.

<comment><USER10> And use some microplastic body wash to clean off in the river

</comment></comment><comment><USER11> I think there can be good and bad Nanoparticles. TiO2 is for looks. But I don't see an issue with finely ground green tea or table salt.

We should strive to not pollute the term Nano particle because there are good and bad uses and if only bad gets associated with it, it can end up like GMOs where people fear them for no reason —while we can sanction GMOs like roundup crops due to their negative externalities, not all GMOs exhibit bad aspects.

<comment><USER12> I don't think your risk assessment is sound. The whole reasoning nanoX is used, is because it has different properties than X. Green tea might be fine, but nano green tea might pass some barrier it wouldn't otherwise. Maybe resulting in an immune reaction against a compound that wouldn't end up in it's reach after usual consumption.

</comment></comment><comment><USER13> When it comes to titanium it is not that bad. Human body is (most likley) able to deal with titanium (contrary to mercury). However, nanoparticles in itself are problematic because of how they interact with body cells. Good is, possible, better drug delivery (think about possibility of crossing blood- brain barrier), bad is, potential unaccounted effects where body does not recognize nanoparticle as something 'alien', which can create a problems beyond even todays studies.

Case being, why add complexity? There is probably some use for advance technology in certain areas of live, i would gladly take ANY kind of treatment if i would be diagnosed with terminal disease. But why widen your exposure (civilization-wise) for unknowns only at the benefit of pure market profits?

"In more than 50 years of use as a colourant, no verifiable link has ever been shown between general intake of titanium dioxide and ill health in humans,"

That statement in itself is so vague. It's like saying that coal burning has very limited effect on human health because we do it for 150yrs and people are still live. Titanium is not necessary body mineral, therefore counting on 'lucky strike' that it will be assimilated positively is miss-or-hit attitude.

Simplicity over complexity, always.

</comment><comment><USER14> Titanium dioxide is a common tattoo ink and a fair amount of research has gone into studying where that ends up if it does not stay in the skin.

The tattoo removal process allegedly does not work with white ink (titanium dioxide) as it does not get zapped by a laser to break down in the way other compounds do.

Generally the body moves these foreign things only if they get to the nanoparticle size out to the liver, so a lot of this article sounds rather similar to what goes on with the tattoo process.

A hastily Googled article:

[https://www.nhs.uk/news/lifestyle-and-exercise/tattoo-ink- pa...](https://www.nhs.uk/news/lifestyle-and-exercise/tattoo-ink-particles- can-spread-lymph-nodes/)

Titanium dioxide is rather harmless compared to other tattoo ink colours, it has nothing compared to the cobalts, cadmiums and other 'salts' that make up other colours, and, despite advances in organic chemistry, you still need these heavy metals to make bright colours. We have moved on from lead but not much.

Getting back to the main article, there is good and bad in nano-particles. For instance, regular salt is now at the nano-particle size in 'beige' foods. This is how 'low salt' was achieved, the receptors on the tongue just need to get satisfied. So, imagine your 'freedom fries' with exceedingly fine salt on them, your tongue does not realise these are small particles rather than table-salt style crystals. If you are going to have salt for taste then you might as well have a small amount of the small particles - that are water soluble - rather than the bigger crystals - that are also water soluble. Your sodium intake is lower but there is no taste hardship involved.

For this reason I would take a lot of the article with a pinch of salt and move away from living beside a main road, nowadays cars emit far more nano- particles than they used to and your lungs can't stop them getting into the bloodstream. Visible smoke can at least be coughed up rather than just absorbed by your lymph nodes.

</comment><comment><USER15> Wow, this is certainly enlightening. I wonder how I can get food that isn't filled with Nanoparticles.

<comment><USER16> Stick to the standard diet advice[1], ignore articles like these, and get on with your life.

[1] "Eat Food. Mostly plants. Not too much." Google it if you need more context.

</comment></comment><comment><USER17> You should wash your produce like crazy because it's the biggest source of foodbourne illness. And depending on where your food is from and the type of food, we know that various parts of it often have dangerously high levels of toxins and carcinogens, yet is still sold in your grocery store with no warnings. So if you're going to be concerned about food safety, I'd focus on the known dangers first, then worry about the unknowns.

</comment><comment><USER18> [https://pastrychefonline.com/take-a-cue-from-little- debbie/](https://pastrychefonline.com/take-a-cue-from-little-debbie/)

I'm not sure what washing a Little Debbie snack cake will accomplish, outside of preventing its ingestion, which, now that I think about it, is an excellent outcome!

</comment><comment><USER19> Regardless of nanoparticles (and I'm not one to consider TiO2 to be harmful), there are better reasons to wash your food: microbial, pesticide, and herbicide contamination. I'd say that concerns about titanium dioxide are very, very far down the list of things I'd worry about.

</comment><comment><USER20> There are soo many concerns out there...it is really hard to deal with it as a consumer.

All these nano technologies for food-related products might slightly help the bottom line...(slight flavor increase, slight improvement in shelf life..etc...) of some companies, but I am not sure those small gains are worth the risk to public health...and to mental health. The gains just don't seem important enough. We already are good enough at food preservation and production.

<comment><USER21> It depends on the food - some with already long shelf lives would be fine, but other foods simply aren't meant to be around for long.

But the public health isn't the concern of the food companies. It's putting out products that are shelf stable long enough to be sold. Period.

Unless you see "Free of X", assume the company is using it (where applicable).

<comment><USER22> There are a near infinite number of molecules. Free of X says nothing about a nearly identical X'.

</comment></comment></comment><comment><USER23> Concern about nanoparticles sounds about as vague as you could possibly get. Me, I'm concerned about macroparticles. Especially the ones that race around at 60MPH. So dangerous.</comment>


Anyone have knowledge or experience with Lyme Disease - <AUTHOR>

I have always heard about it and never thought it would happen to me.  However, I recently spent a few days in the hospital before they were able to realize the link between a tick bite and my illness.  Any thoughts on how to aggressively tackle this nasty bacteria? <comment><USER2> Lyme Disease and a bad spider bite took my grandfather's life before I was born. From what I understand, nowadays they treat the disease by basically nuking it with antibiotics. Its probably best to talk with a doctor and see if you can get some more advice from them, or perhaps seek out a dedicated support group online. They'll probably have more tips and tricks.

That, and do some research on how to prevent the tick bite in the first place. When I was young my mom always made sure to point out that we needed to be careful during the times when lyme disease was most prevalent. If you're in an area with a lot of brush and you see deer around, you'll want to be careful. Deer ticks are the primary carriers of the disease. We'd always make sure to keep an eye out for the telltale bullseye shaped rash - luckily we never saw it outside of pictures online.

</comment><comment><USER3> Maybe read through Patients like me?

[http://www.patientslikeme.com/conditions/31-lyme- disease](http://www.patientslikeme.com/conditions/31-lyme-disease)</comment>


Benchmarking Go vs. Node vs. Elixir - <AUTHOR> https://stressgrid.com/blog/benchmarking_go_vs_node_vs_elixir/ <comment><USER2> Not sure but it kind of seems like they are running only one (single-threaded) Node process on multicore CPUs.

<comment><USER3> This immediately comes into my mind when I see the charts.

It is also interesting to see that only one Node process can barely serve 10k connections.

\---- After I check the source at [0]. They use a simple http module to serve the requests while they use `http.ListenAndServe` which spawns go routines, hence more CPU utilization.

[0] [https://gitlab.com/stressgrid/dummies](https://gitlab.com/stressgrid/dummies)

<comment><USER4> Author here. Planning to run the same test using cluster module with one worker per CPU.

What would be the most performant way to serve HTTP in Go?

<comment><USER5> Well I believe few people use the built in http module in go. Not sure if you're testing would allow for 3rd party frameworks but the Iris framework loves to claim fastest go web server. Gorilla or gin are also popular.

As for the structure of it you would like have everything split out into goroutines with a worker pool of goroutines ready to ferry the data from request to backend and back to client.

<comment><USER6> There are so many options to choose from. But don't use Iris.

See [https://www.reddit.com/r/golang/comments/57w79c/why_you_real...](https://www.reddit.com/r/golang/comments/57w79c/why_you_really_should_stop_using_iris/)

</comment></comment></comment></comment></comment><comment><USER7> Id like to see metrics on memory consumption - is this something you could add?

<comment><USER4> Good point, will add.

<comment><USER7> many thanks!

</comment></comment></comment><comment><USER8> Would be interesting to compare with Java.

<comment><USER9> Easy,

[https://www.techempower.com/benchmarks/](https://www.techempower.com/benchmarks/)

</comment></comment><comment><USER10> Slightly off-topic, but: I love those graphs. Any ideas how they created them, or what they are using?

<comment><USER11> Possibly using ggplot2: [http://www.cookbook-r.com/Graphs/Plotting_means_and_error_ba...](http://www.cookbook-r.com/Graphs/Plotting_means_and_error_bars_\(ggplot2\)/)

</comment></comment><comment><USER12> Wonder how much the anonymous function in the node handler affected it.

Not sure what `body` not having `var` in front (so it gets put on global) would do either.

</comment><comment><USER13> Surprising that BEAM is such a CPU hog!

<comment><USER14> BEAM has some heuristics where it can switch to a busy wait in some cases in an attempt to reduce latency. This is tunable with the +sbwt argument to erl; but the default means it's hard to use the system CPU % as a load indicator.

</comment></comment><comment><USER15> Tldr?

<comment><USER16> Node bad, Elixir good but spikey on the CPU, Go best.

<comment><USER17> It seems the Elixir CPU usage is due to the way the Erlang VM manages schedulers. A scheduler will literally busy-wait if it thinks there might be more work to do soon, in an effort to improve the responsiveness of the system</comment></comment></comment>


Aspect Ratios - <AUTHOR> http://www.tbray.org/ongoing/When/201x/2011/09/01/Screen-Sizes <comment><USER2> Another thing which the author seems to leave out is the usability paradigms for different sized screens.

As far as Apple goes, with their 2 formats for their mobile devices(x), iPhone and iPad. Things that work on one device wouldn't necessarily work on the other. I can't remember what Gruber said on this subject or if it was Steve Jobs himself, but I think they both said some variation.

On the iPhone, it makes sense for many UI elements to take up the entire screen, for example a list of contacts. But on a device with the form factor of the iPad, that looks stupid. Likewise for the opposite - with a device the size of the iPad, it makes sense to have multiple panes and popovers such as in the Mail application. If that were on a device the size of the iPhone, it would be simply unusable. So things formatted for one device wouldn't work on the other and vice versa.

So, on a device in between those 2 primary form factors Apple has chosen, which approach makes the most sense? I would posit that neither really works. The iPhone's "take up the whole screen with a single thing" seems too large and the iPad's "multiple pane" approach would likely not be usable on a smaller device. Maybe that size screen is fine for such things if the pixel density is raised such that the resolutions match, but I would guess it would feel very crowded if you just took the iPad UI and crunched it down significantly.(y)

So it's hard to develop good UI for these 'tweener screens because in some contexts the UI paradigms from the iPhone fit better and in others an iPad approach would be better. Sure, developers could have logic saying that, in some contexts on a 7" iOS device, use the iPhone UI layout and in others use the iPad UI layout, but that further complicates things.

I won't say that no one could design a UI for such a device, in fact I think the Blackberry Playbook has the best UI of the devices I've seen at this size, but I think it's difficult for Apple because it doesn't naturally fit either the iPhone or iPad UI scheme. And it seems like most Android devices pick which paradigm to use by the OS - those devices which have a Tablet factor use Honeycomb (Android 3.x) and those which just scale up the phone version use Gingerbread or earlier. (Android 2.x) It will be interesting to see how they deal with this issue when they merge the two.

 _(x) Essentially anyway. Technically they have three when including the iPhone non-Retina and iPhone Retina but since one is just double the other, there is not a different form factor

(y) Remember, it seems like the difference between 7" and 9.7" is trivial, "only 2.7 inches!" one may say, but note first that 2.7 is almost 1/3 smaller than 9.7. Second, note that screen size is calculated on the diagonal. So by the rules of Pythagoras, it is actually significantly smaller._

<comment><USER3> Regarding point x, it's not that screen size is calculated on the diagonal; doubling the diagonal (and keeping the same aspect ratio) doubles the width and height as well.

The key is that area is the square of any linear dimension (again, for fixed aspect ratio). If you double the diagonal, you quadruple the area. If you increase the diagonal from 7" to 9.7", you almost double the area (1.92x to be precise).

<comment><USER2> "Regarding point x, it's not that screen size is calculated on the diagonal; doubling the diagonal (and keeping the same aspect ratio) doubles the width and height as well."

I assume you meant point y. Anyway, right you are! This is what I tried to express by saying "By the rules of Pythagoras" because I was lazy and didn't want to take the time to calculate it precisely. I also assumed most people here would understand the implications, but on reading your comment I realized they may not and what I visualize in my head is likely far different from what everyone else does. Thank you for making it much more clear and explicit for me!

</comment></comment></comment><comment><USER4> There's not enough emphasis put the fact that designing for one aspect ratio/resolution is much easier on the designer. Not having to debug scaling issues or 1-2px vertical borders saves metric boatloads of development time.

There are two main reasons fixed-width layouts are still so popular on the web, even though responsive layouts are well-supported. One, fixed width maps 1:1 to Photoshop. Two, it's simple.

And three, it feels icky to have to add "margin-left: 3.448374%" to responsive stylesheets because CSS really wasn't built to support complex, percentage- based layouts.

<comment><USER5> It's also much easier on the user (and in turn, easier on the designer to make it easier on the user). Knowing the exact surface area each control will take up, the exact distance between elements as they will appear in the real world, gives the designer that much greater degree of precision in crafting a human- centered UI.

<comment><USER6> Please elaborate on how it's easier on the user. I agree it's easier on the designer (though I disagree that that's a good enough reason NOT to use a fluid layout in this day and age), but I fail to see how a design that refuses to conform to my monitor size is any easier for me.

<comment><USER7> He's assuming that the designer has a fixed amount of time to work on the project, so less time spent faffing with pixel alignment means more time getting the design right in the first place. I suppose there is also the hidden assumption that if the designer spends more time on usability, then the design will be easier for the user to use. Though from the hostility in your message, I'd suspect that you might not believe that.

Finally, he was talking about designing for a small, fixed set of screen sizes vs designing for a range of screen sizes, so your final point about your monitor size does not apply.

<comment><USER8> I think you mean "an insufficient amount of time." Some finite amount of time should be enough to come up with something quite good for any finite interface with reasonable requirements.

(And an infinite amount of time still probably wouldn't be enough to come up with a good interface based on bad requirements.)

</comment></comment></comment></comment></comment><comment><USER9> He's wrong about performance being a possible reason for iOS's fixed screen sizes.

Even if they added adaptive layout a la Lion (truly general constraint-based), imagine how much wildly more computation is going into the existing UIKit/CG/CI/OpenGL graphics pipeline, with stellar results?

<comment><USER10> Exactly, drawing/layout is cheap, cheap, cheap on iOS devices.

</comment></comment><comment><USER11> This is a huge tangent, but I cannot resist asking: which of the mobile OSes is best at allowing the user to customize text size? Suppose for example, the user is old enough to need glasses to read small type, but would prefer not to have to put on his glasses to use his smartphone. Let's leave the mobile browser out of this (because it is more complicated) and focus on apps for calendaring, plain-text email, plain-text notekeeping and texting.

A lot of it seems to depend on decisions by app developers. Unless I am very much mistaken, most iOS apps written by Apple do not allow the user to change the size of the text, but at least one iPad app (PlainText, which is similar to Notes) give the user a choice between at least 2 text sizes.

<comment><USER12> Curiously Android doesn't offer a way to fiddle with it directly but most Android devices have a simple text file that declares the pixel density and simply by modifying it you get larger (or smaller, if you want) fonts and other UI elements. It's a pretty neat feature and baffles me why it isn't given pride of place in the settings somewhere, since developers have to basically account for all different densities anyway.

<comment><USER11> Thanks! I am willing to modify a text file :)

</comment></comment></comment><comment><USER13> "But I'm sure as anything that somebody is gonna sell a buttload of tablets at that size. [7-inch]"

He's right! That'll be Amazon with their forthcoming 7-inch color Kindle: <http://techcrunch.com/2011/09/02/amazon-kindle-tablet/>

</comment><comment><USER14> I think Apple will be forced by market pressure to make the next iPhone with a larger screen (somewhere between 3.7 and 4.0 inches, unlikely to be as much as 4.3 inches), but the same number of pixels, 960x640. Android has a key differentiator with their larger displays, and Apple needs to nullify that advantage. They dont't advertise the specific 326 PPI in their marketing for the iPhone 4's Retina display; even with a slightly larger display, the eye would be unable to distinguish individual pixels, keeping the "Retina" moniker. I really doubt that the pragmatic designers at Apple really hold 3.5 inches to some Platonic ideal.

I also think Amazon is going to do a very successful 7-inch tablet.

<comment><USER15> I wouldn't want mine to be bigger and I never heard anyone say they did. Is this a common complaint?

<comment><USER14> In the words of Steve Jobs, _"It isn't the consumers' job to know what they want."_ But after testing some iPhone screenshots on a 4.0 inch, 800x480 Android display, I liked the look and feel of it.

</comment></comment></comment><comment><USER16> So I just read this piece.. and I dont know what the point of it was.. Other than to point out that the author made a wrong prediction, and to note that iOS and Android software handle different screen sizes differently.

Seriously, did I miss some insight that wasn't self-evident?

</comment><comment><USER17> Speaking as an iOS developer—yep, right on.

</comment><comment><USER18> Good article. I was just thinking about this myself. I do find it disappointing that neither Android nor WP7 has taken a resolution agnostic, but aspect ratio deliberate approach. They both employ flexible layout systems, and can require using vector graphics, rather than bitmapped for all images (except those that are intended to actually be images, like for photo apps).

</comment><comment><USER19> None of this matters, of course, on the mobile web... one of many reasons the web won on the desktop.

<comment><USER20> Element layout doesn't matter on the web?

I refer you to any of the 80% of all websites I've ever visited, they look like complete ass on my portrait-oriented monitor, if they even fit.</comment></comment>


Recruitment Process for a Google Site Reliability Engineer - <AUTHOR> http://blog.lambda-startup.com/2014/03/recruitment-process-for-google-job-sre.html?m=1 <comment><USER2> I'm a Google SRE that had a very similar experience. My best advice would be not to sweat the rejection.

I was also contacted by a recruiter based on an open source project I had contributed to. I went through the same series of phone interviews, culminating in an on-site in NYC. I left there feeling largely positive about my chances, but a few days later, I was politely rejected. I was not that broken up about it, as I already had a job that I liked, so I just counted it as good interview practice and moved on.

A year later, almost to the day, the same recruiter called me up out of the blue and asked if I'd be willing to try again. I agreed, and after an abbreviated version of the phone interview process, went to Mountain View for another on-site. Soon after, I was hired!

It's actually very common for Google to reject candidates the first time around, as the interview process is deliberately tuned to produce a lot more false negatives than false positives. We have that luxury thanks to the volume of applicants we receive (there are still a surprising number of Nooglers starting each week despite the selectivity). The hiring committees recognize this tendency to reject qualified candidates and won't count you out after one try. If you got to the on-site stage, then rest assured that your interviewers took you seriously as a candidate. If you've decided that you would really like to work at Google, you will still have a good shot if you try again in a year or so. And if not, then hopefully it was at least a fun challenge and a free trip to London.

<comment><USER3> But why go through that? Google is just another place to work. If I got rejected from a job at HoneyWell or G&E I wouldn't be thinking to myself well in one more year I can try again. I'd be thinking about the next place to apply and never go back.

The guy was obviously qualified for the job and they still rejected him because he got nervous. He had done well except for one and they said no. I guess if you have so many people interviewing where you have some that did better it makes sense, but it's silly and personally I don't plan at working at companies that interview this way.

Google isn't special. They're just a well known consumer brand, and all that marketing is what's got into people's brains. Coke is just sugar water, it doesn't make you cool. It just puts fructose corn syrup into your stomach. You wanna be the person that has to obey Larry Page's whims and integrate Google+ into more places users don't want it?

<comment><USER4> Right, being a company filled with some of the best and brightest engineers in the industry working on technical challenges of massive scale makes Google just like any other company.

<comment><USER5> Well, let's not blow this out of proportion. Google is basically a big advertising agency. The principle problem they're working on is click through rates.

If that's what floats the boats of the best and brightest, I feel kind of sorry for the direction of the species.

Sure they have lots of cool feeder technologies to support this singular goal, but getting people to click paid links is not exactly the same as colonizing Mars.

<comment><USER6> Ah, the old "Google is just an advertising company" cliche. This is just a small step from the Reddit hipster memes that say things like "oh, self driving cars are not that interesting, they're just a way to get your attention off the road and onto their ads".

The vast majority of engineers at Google have never worked on click through rates in their lives. Downplay it as a "feeder technology" all you want, but I'm pretty sure Google search, for instance, has had a huge impact on humanity. One that some people might consider just as important as sending a robot to Mars.

<comment><USER5> People have a habit of assigning altruism to things to they like that they don't pay for -- and without connecting those things to the costs.

SV and the greater Startup ecosystem has taken this to heart and turned it around, trying to "change the world" with photo sharing apps or weather reporting toasters or whatever. The fact of the matter is, this messaging is a hack to get people to feel good about using the service or buying the device. It's psychological slight of hand because people don't like it when a nameless gray haired white man in a suit says he's looking to maximize revenue growth the next 3 quarters.

Why is Google in search? To deliver ads. They can deliver better ads by having better search, no? They can deliver better ads by providing locational service. They can deliver better ads by getting your face stick to a mobile screen playing matching games that serve up ads. They can deliver better ads by...<insert method>.

Let's say google develops and licenses technology for self driving cars to all the automakers in the world. What do you think people are going to be doing in those vehicles? Surfing the internet and probably looking at ads.

Do you think Sergey Brin, when he's travelling to his private vacation island, bought with ad revenue, in his private jet, paid for with ad revenue, going over the quarterly report, about ad revenue, is thinking to himself, "I'm really satisfied with how many people found trivial information about pop stars with our technology" or is he thinking, "how can I get even more people to click the top-most served ads?"

It's great that I can get global turn by turn directions on my phone, it's improved my life, but google hasn't provided that to me because they think I'm a nice person and want to make my life better. I could have just kept buying Garmins after all. They want me to search for "restaurant" and have a top paid advertisement for "Bob's Pancake House" show up in the list and have me click that so Bob transfers a little money to Google's bank account.

Helping humanity is simply a fortunate side effect of Google's work. But it's not the focus.

<comment><USER7> > Do you think Sergey Brin ... is thinking to himself, "I'm really satisfied > with how many people found trivial information about pop stars with our > technology" or is he thinking, "how can I get even more people to click the > top-most served ads?"

He's probably scared shitless that he has exactly one revenue stream worth talking about, and has no idea how to supplement it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> This is ridiculous. I understand Google is a big company and thus needs to implement a concise recruitment process because understandable they get a lot of applicants, but the amount of tests and ways of which you were asked to solve problems is ridiculous.

When is the last time you heard of a system administrator writing down problems on a whiteboard as opposed to asking a colleague or Googling the answer? I think the real test after the initial phone call interviews and Google docs one is to sit you down in-front of a computer and make you solve real problems, not theoretical & made-up problems in which they ask you to solve them in impracticable and unrealistic ways.

This is a flaw in the corporate hiring process almost everywhere in the software world. It's not the 70's any more, people rarely solve problems on whiteboards and paper. They solve them on the computer, sometimes through knowledge and their skill-set and other times through luck and Googling.

Don't feel too bad for being rejected, it just means something else could come along that's better.

<comment><USER9> Having heard numerous accounts of the Google hiring process, both successful and unsuccessful, I'm convinced that it serves a dual role. In addition to brining in qualified employees, I believe it's intent is to reject qualified candidates. Those qualified candidates will end up being engineering leaders in companies that Google interacts with and the more that they can maintain the impression that Google engineers are the best of the best, the easier those interactions will be and the better received Google products will be. It also means that when Google calls and invites someone to interview, they almost never get turned down.

<comment><USER10> >they can maintain the impression that Google engineers are the best of the best

This is not true for everyone. I see it as more of a failure on Google's behalf to create a good selection process. The flawed assumption you're making is that, since they have a noticeable false positive rate (i.e. good people getting rejected), they don't have false negatives (i.e. unqualified candidates getting offers). There is no guaranteed correlation between false negatives and false positives.

To carry this a little further, I would argue that it's very likely that some bad engineers get into Google because, by definition, their selection process is not correctly picking good engineers - just a rough approximation of what they think makes a good engineer.

<comment><USER9> I don't doubt that some bad engineers get into Google...I've met quite a few. I met one engineer who believed that you should avoid interfaces in Java because it makes it difficult to click through source code in an IDE. I've interviewed ex-Googlers who were completely lost answering the interview question, "how do you write maintainable code?" From what I've seen, Google isn't testing for being able to write maintainable code and is, instead, testing almost exclusively for problem solving and being able to apply algorithms/data structures. That, alone, is going to lead to hiring some bad engineers.

But you have to look pretty hard to find those engineers...much harder than you do to find quality engineers that have been turned down by Google. And I believe it's intentional...that those false positives are about seeding the rest of the industry with people rejected by Google. I believe they interview more candidates than they need to bring in to fill their open positions in order to feed the perception (not the reality) that Google's engineers are the best of the best. That's the perception they care about, not the perception that their interview process is good at choosing employees.

</comment></comment></comment></comment><comment> B-Con Neat, I _just_ interviewed for Google for the SRE position as well. This described my experience very closely.

> I found it amazing that for each of the interviews I was given enough > information in advance to actually be able to prepare myself.

I had the same thought. To me, Google seemed 100% concerned with evaluating engineering skills and they wanted to do the _opposite_ of hitting my weak points or quizzing me on trivia. I got a pretty good amount of detail on what to expect, loads of links, book recommendations, practice exercises, and even a video SRE interview coaching session by a couple SREs (all of which I combed through, yes, I even bought two of the books). Personally, it was a great interview experience.

I also interviewed with another large software-oriented tech company, but Google put more effort into providing preparatory material.

> So the fourth interview (1:30 PM) on that day was the large systems design > interview. Unfortunately, I was a blockhead on this one, then got nervous > more and more and thus failed it.

It's also the area I felt the weakest in. It was the hardest to prepare for and they gave the least amount of prep material.

(Disclaimer: I start with them in 3 weeks.)

<comment><USER11> I don't understand the prep part. If you have to do a lot of prep for the interview doesn't that mean your current skills aren't a good fit? And if they don't want to test your skills but your ability to solve problems wouldn't they want to test something you're already skilled at?

<comment><USER12> If you were casting actors for a play, would you rather hit each candidate with a surprise audition five minutes after they got out of bed, or give them time to review the lines and stretch their vocal cords?

<comment><USER11> That's not a fair comparison at all. Interviewees know well in advance of when the interview will happen. A more apt comparison would be telling an actor what script to use for the audition vs giving them a script they've never seen before at the time of auditioning. This still isn't a fair comparison though because they're testing acting talent, not the specific script. A good actor can learn the script.

</comment></comment></comment></comment><comment><USER13> I've been contacted several times by Google recruiters and the interactions have always left a bad taste in my mouth (and I've never even agreed to go forward with the interview process). They won't tell me what projects / products I'd be working on at Google if hired, which right off the bat is a non-starter for me. They want me to spend weeks studying puzzle coding problems for the interviews, which is also a non-starter. It seems like the entire process is centered around me proving to them that I am willing to go along with whatever they say. It's not a two way street at all.

As an experienced engineer who is happy in his current job, what is my motivation to jump ship? Google recruiters act like the chance of working at Google is by itself sufficient incentive. Google's entire process seems to geared towards selecting people who really want to work for Google and who will jump through whatever hoops Google sets up. Long-term, it is probably dangerous for Google to be so chock full of corporate confirmation bias.

<comment><USER14> I've had this exact same experience 3 times in the past year. I echo your thoughts entirely. I've told them multiple times what kind of position at google would ACTUALLY interest me and yet I still get matched to nothing even close. Each time I've turned them down I get the same feeling of "Ok! So -- wait you said no? What? Are you sure? ... but we're google!?"

I'm also an experienced engineer, happy in my current job.

Glad to see someone else with the same thoughts!

</comment></comment><comment><USER15> I used to recruit for Google SRE, I can confirm that this is pretty much exactly the process and that bombing a single interview will often be a death sentence.

<comment><USER12> By "death sentence", are you suggesting that the candidate will never again be considered for a role at Google, or are you just saying that they're not going to space _today?_

<comment><USER16> Being rejected at an interview at Google means you have a one year cool down period. You can try again then (or they might call you back themselves).

<comment><USER17> They called me back 6 month after first rejection. Going for on-site to London in a week.

</comment></comment></comment></comment><comment><USER18> I've been on a few interviews with the "not-a-test" lunch, and it always made me grateful to be in this industry. I talk to people applying for law jobs, where it seems that lunches and dinners during the process are very much a test. Associates fill out scorecards for candidates later, on how good a conversationalist the candidate was! On a one to five scoring system, across multiple categories!

From a certain point of view it makes sense - how are they going to schmooze with clients if they can't schmooze with you, but... _shudder_

<comment><USER19> Those lunches are a test. They're for 'culture fit' questions.

<comment><USER2> The Google lunches are emphatically not a test. It's very rare for the lunch "interviewer" to provide any feedback at all. That usually only happens if the candidate starts spouting racist comments or punches someone in the lunch line, etc. The real purpose is to answer any questions the candidate has about culture, perks, etc. and to give them a chance to relax, catch their breath, and feel at ease in the middle of a stressful day of interviews. If the candidate was referred by a Googler, then often that person will be the one to take them to lunch, which would obviously create a conflict of interest if real feedback was expected.

<comment><USER20> I've found that some of the folks I took to lunch interviews were reluctant to ask certain questions because despite assurances that the lunch has no feedback, they didn't _quite_ believe me (natural cynicism, I suppose). It was a shame.

<comment><USER21> Yeah, especially when your company has been doing some dirty works behind users' back and you think that users are bunch of idiots that never learn from their lessons and keep believing in whatever you say. What's a lame expectation.

</comment></comment></comment></comment></comment><comment><USER22> The artcle mentions one interview out of 3+ phone interviews 5+ personal ones, that didn't go so well.

It leaves me with the following impression:

What a ridiculous waste of this guy's time. Why on Earth do recruitment processes need to be so capricious? Of course the guy's going to get nervous when he fouls up, given the HUGE amount of his time that has already been wasted, and how much you are putting on the line for every single moment to be perfect. maybe if the stakes weren't ridiculous and so capricious, it wouldn't take you two recruiters, three phone interviews, and a day of wasting everyone's time, only to reject a perfect employee.

Makes me glad not to work for a huge organization. What a travesty. I have no idea why people feel it's okay to waste other people's time like that.

<comment><USER23> Multi-stage interview processes like this are calibrated that you simply must pass every step of them to do the job. There's no fluff, there's no duplication; each module tests a specific component that the company feels is necessary. If you can't deliver on one component, then you aren't qualified. Harsh, but if you wanted to include an allowance for failing one module, you'd have to add even more modules and duplicate content in them so that you could still feel confident they could do the job. A false positive in the interview process is immensely painful for everyone involved and every effort should be made to prevent that.

</comment></comment><comment><USER24> I had 3 interviews with google about 9 years ago. totally failed the on-site in mountainview. sorting a balanced tree on a whiteboard is tricky (quiet you!).

In hindsight, I'm not sure why I was excited to work at a post-ipo cube farm, even if it says "google" on the side.

edit: I believe it was also for SRE, which (at the time) means you do two interviews: the sysadmin interview, and the developer interview.

<comment><USER25> Can anybody confirm that it is still the case? That this kind of questions are still given to non-fresh-graduate (i.e. experienced) candidates? (sorting a balanced tree... ridiculous).

</comment></comment><comment><USER26> How come only programmers and data scientists are treated to such a ridiculous process? Why aren't managers and marketers given pop quizzes and domain- relevant puzzles to solve?

<comment><USER27> Lower-level management is drawn from the same pool as the engineers.

For upper-level, Google does not have the luxury of getting one thousand credible and serious applicants every week, so the process necessarily differs.

<comment><USER28> That's begging the question. The eng interview process is an artifact of how they choose candidates. So is the VP interview process.

<comment><USER27> Could you explain more what you mean? I'm tempted to dismiss it, but I don't actually understand your point so I'll give you the benefit of the doubt until I do.

</comment></comment></comment></comment><comment><USER29> Google's interview process in short is laser-focused. Whether this is good or bad is up to them and their goals (and clearly something is working), but personally I find it incredibly narrow-minded and inhuman. Wouldn't want to work there.

</comment><comment><USER30> That meshes with the interview process my SO went through, at Google, for an SRE role. Similarly, they said he could code in any language (his preference is C) but the interviewer preferred python. 45 min to whiteboard in C, you better have a backup set of markers.

His feedback after all was said and done was "brush up on your scripting languages."

<comment><USER28> Google recruiters give famously nonsensical feedback, sadly.

By comparison, Facebook recruiters give very specific feedback tired to reach specific interview hour.

</comment></comment><comment><USER31> Hate to say it but this is why I said "thanks but no thanks" to google, and amazon. You can learn a lot more about a person and their skills from a few conversations than from a grilling against a white board.

</comment><comment><USER32> I have an interview with Google this week. I've expressed my interest in security to the recruiter 3-4 times and I have been told I will be interviewing as a software engineer (aka....a data structures and algorithms interviewing...)....

Doesn't make sense to me, the things they do. I've had bad experiences with several of the big tech guys now...

Too bad you were denied but I'm sure it will all work out for you. In my opinion computer science is really cool because if you want to be really good you don't have to work at a big tech company. You can learn in your cube, learn at home, learn wherever. It is so easy to network and be with other smart people that you don't need them and they need you.

</comment><comment><USER33> Google's hiring process seems very intense and extensive. Are there other tech companies that go to these lengths to find the right people? I completely understand their reasoning, but I have never applied at a company that had four interviews.

<comment><USER34> I had 6 on site interviews when I joined Yahoo Europe back in 2003 for an engineering manager position. Developers back then would usually go through fewer, but still 3-4 wouldn't have been unusual depending on team - when I hired for my team at Yahoo, typical process would've been phone screen, then 3-4 on site interviews with a selection of people including my manager, someone from the product team, one of my developers, and me.

It's a function of size, frankly - companies above a certain size tends to tack on more interviews largely because they can, and it doesn't hurt to get feedback from one more person. They also have the luxury (and problem) of a much larger pool of interested candidates to hire from.

</comment></comment><comment><USER35> Excellent write-up. I love your attitude about the whole thing.

One part I found interesting and note I have not interviewed for anything in probable 10 years is the fact that they would not attempt to place you into another position being that you passed the majority of the questions with flying colors. Actually my only criticism is you used a ton of ;)'s :-0

So you are an excellent coder, scripter, and network admin. You also know all the OSI layer stuff but aren't good at "large scale" sysadmin functions? If this were my company I would try to have you placed in some other department and postiion.

Either way, thank you so much for sharing your experience!

<comment><USER36> Sometimes that does happen - interviewers can always provide feedback that they think someone should be jumped over to a different track and re- interviewed.

</comment></comment><comment><USER37> I recently interviewed for a position at twitter as a front end engineer (API stuff, HTML, CSS, etc). I failed out as well, but it was on, I think, much more nuanced terms.

The interviewer had me write a client jsonp API interface, that is a controller that would handle calls to and from a jsonp API. Embarrassingly, I knew little about jsonp except for that it has a callback parameter that correlates with a global function you have defined in the javascript of your page.

So as I was literally learning how JSONP worked during this interview, I also had to write an interface that would gracefully fail and queue multiple calls. I did pretty well, at that, having completed the essence of the exercise. Toward the end, I got mentally hung up on a scope issue and my brain was pretty much fried at that point so I ended up crashing out (it was the end of the interview time, anyway, so it's not like there was then 10 minutes of awkward silence).

Anyway, this sma hiccup, which in no way indicated I didn't know my craft, and opposing my seemed to indicate I was an extremely quick study, still managed to keep me from moving on in the process.

I'm not miffed or anything. In fact, out of that experience, I wrote a really cool lazy loading geolocation API that uses promises in conjunction with JSONP to deliver a really smooth API consumer experience, something I wouldn't have thought to do at my previous level of understanding.

</comment><comment><USER38> I keep coming back to this, wondering whether it's effective or not. It feels like an SAT, or really any other form of academic standardized testing, except not so objective.

"Here's a list of things to know, go study it, then come in and solve problems with it in an artificial environment so that we may grade you". So you cram in preparation, and then if you don't pass the test, you plan to retake it in a year.

I'd think the best and brightest would be the ones whose working knowledge, without cramming, allows for innovative, interesting, clever solutions. Even better if you can get away from the artificial feeling of interviews, into a "here's an actual, and unsolved, problem, let's figure out how to solve it together so I can see how you tick", rather than "here's a fake question, one with a well known, posted on the internet, solution, that if you ever faced in real life you'd solve in 5 minutes of Googling and move on, and which I expect you to recognize as a (X) problem, and regurgitate the solution from the selected readings". (That said, one or two stages of the interview seemed like they ~might~ be that).

Maybe the intent isn't really to hire the best and brightest (that's hard to test for), but really the people who want to work at Google the most; are you willing to devote hours to the mere possibility?

</comment><comment><USER39> Hi, I am the author of that blog post at [http://blog.lambda- startup.com](http://blog.lambda-startup.com) .

I just want to say that I appreciate the overwhelming feedback and all the positive and encouraging statements to not take that rejection too seriously.

Furthermore, I'm glad that my little article causes these mostly constructive discussions on here, and that sharing my experiences seems to be appreciated. Thanks.

<comment><USER40> out of curiosity; do you get paid for one day you miss work or it is implied you should take a day off ?

</comment></comment><comment><USER41> Wow! thank you for sharing your experience, I've just started the interview process for Google SRE and I found this very valuable. It looks like a tough road but I'll do my best. Thank you!

</comment><comment><USER42> Former Google SRE here.

From the outside it looks like Google's strategy is to hire people that have the skills that people can only get from already working at Google. i.e. They have forgotten that they themselves did not have those skills when they were hired.

Sadly blog posts like this make me think they are suffering an unintended side effect from doing this: [http://googleresearch.blogspot.com/2006/03/hiring- lake-wobeg...](http://googleresearch.blogspot.com/2006/03/hiring-lake-wobegon- strategy.html)

</comment><comment><USER43> This has long been my dream job and I have alerts setup for when they're interviewing - but I don't feel I'll ever be smart enough or well rounded for this specific job. I left university a couple years ago and have been working in my first job (an ISP NOC) for about a year, but I just can't see myself ever getting to the skill level required for an SRE. That and I have crippling anxiety when it comes to interviews.

Ah well...

<comment><USER36> Something that not many people realize: interviewing is a skill that can be practiced and directly improved. The more interviews you do, the easier they get. You can also do dry runs - even just grabbing yourself a small 20" whiteboard and writing code and diagrams on it helps.

<comment><USER43> That's good advice, I always tend to focus on the skills and see an interview as something that is done ad-lib. I forget how much of it is prep and the actual practicing of interviews.

</comment></comment></comment><comment><USER44> So, yes, Google hasn't changed a bit. Curious about where the interview took place (I don't think there's a hotel across the street from Google in Dublin)

I'll just point them to this article whenever this kind of questioning happens again: ([https://news.ycombinator.com/item?id=7373310](https://news.ycombinator.com/item?id=7373310) \- questioning is the first comment)

<comment><USER45> > Around a week later the recruiter called and once again reported "very good" > feedback, so I could go on and have an on-site interview in London.

> The hotel was right across the street of the Google building, which I really > liked a lot, since it meant I didn't have to find my way through London in > the morning before the interview.

Seems like it was in London.

<comment><USER44> Oh Well, I missed it. I blame it on it being in the very end of paragraphs.

</comment></comment></comment><comment><USER46> Are you interviewing for the system engineer or software engineer on the SRE team? The 2nd phone interview covering three types of tasks seems unexpected to me. I am also preparing for SRE interview and I now feel chicken out... I'm interviewing for SE on SRE. I have been expecting just algorithm/codeval type of questions until onsite.

<comment> B-Con IIRC, SW and SE interviews in SRE are about 80% the same, the primary difference is that one of the 5 on-site interviews is on a different topic and the phone screens may emphasize slightly different topics. But the tracks for the two positions are very similar.

</comment></comment><comment><USER47> it was some years ago [actually, a lot of years ago now..], but when i got interviewed for an SRE google interview i certainly wasn't given any indicator of what to prepare for ;-)

I also think many of the recruitment questions were above the skills of the employees asking the questions. they just had a checklist and basic understanding.

Now i would probably do smth similar if i was google and a got a lot of applicants, but it felt weird.

I think what was the weirdest tho, was how they made me feel like the SRE job was very stressing and more of a throw away tool used so that, luckily, i could switch to another position after 13month (1 cycle).

That sealed the deal the wrong way for me. I just told the guy we should stop the process now so that nobody wastes their time and went home.

</comment><comment><USER48> This Jobvine infographic describes the hiring process pretty well imo: [http://www.jobvine.co.za/what-does-it-take-to-get-a-job- at-g...](http://www.jobvine.co.za/what-does-it-take-to-get-a-job-at-google/)

<comment><USER36> The "crazy questions" there are completely wrong - Google interviews do not contain questions like these (and any interviewer that tried to use them would be run out on a rail).

<comment><USER49> Google used have those, but recently stopped asking them. The infographic is old.

</comment></comment></comment><comment><USER50> FWIW, the linkedin interview process is eerily identical, same multi phone calls filtering, travel arrangements, meeting with 5 or 6 SREs for interviews, range of topics, trainee interviewers, friendly lunch, even the rejection process.

</comment><comment><USER51> I don't think one should be surprised when they focus on the things you claim to be good at. They probably have a large pool of interviewers, so they can choose one with a deep knowledge in your specialist areas to chat with you.

</comment><comment><USER52> Does anyone know if this process holds true for the Sysadmin SRE side?

<comment><USER53> There is no such thing as a "Sysadmin SRE" , it is just SRE. Went through it and was the same, granted i didn't make it to the on-site interviews as i screwed up on the last call after a really bad day at work.

<comment><USER23> This is not true - there definitely are 2 SRE tracks[1] and one is more code focused and one is more operational focused. They do not tell you this while you are being screened but it is absolutely the case.

1: [http://rachelbythebay.com/w/2011/11/22/caste/](http://rachelbythebay.com/w/2011/11/22/caste/)

<comment><USER53> Looking through the materials for the interview you can see that they focus on two different positions which looked a bit odd to me but i split those two into SRE and SWE looking at each of the requirements. Thanks for the link btw.

</comment></comment></comment></comment><comment><USER54> The job apparently was not 'reliability engineering'.

In an auto analogy, Google was trying to hire narrowly experienced, self- taught auto mechanics and not mechanical engineers.

</comment><comment><USER55> Well if there are any Google people reading this: ask HR to give the guy a job! He went through all that and he came out positive about it all.

<comment><USER27> So, it seems likely that culture fit was not a problem.

In general if you get one interview that results in a weak no-hire, you need a couple strong-hires to balance it out. If you get one with a confident no- hire, that's it.

</comment></comment><comment><USER56> How does google feel about non [Java, Python, C] languages? Could I use Scala to solve interview questions?</comment>


YouTube now supports 360° video View on android or chrome to see effects - X-combinator http://www.reddit.com/r/videos/comments/2yxvs3/youtube_now_supports_360_video_view_on_android_or/

<comment> X-combinator Flat videos are so 2014... [http://www.theverge.com/2015/3/13/8203173/youtube- now-suppor...](http://www.theverge.com/2015/3/13/8203173/youtube-now- supports-360-degree-videos)</comment>


The 6th Underhanded C Contest is now Open - <AUTHOR> http://underhanded.xcott.com/?p=21 <comment><USER2> Site hasn't worked for me since it first appeared here. I've tried from several different ISPs. What's up with that?

<comment><USER3> It was down due to the host thinking all that traffic was a DDoS. It is now up.

</comment></comment><comment><USER4> Awesome! I thought this guy had died.</comment>


Disturbing new study suggests Sean Hannity's show helped spread the coronavirus - wayne-speth https://www.vox.com/policy-and-politics/2020/4/22/21229360/coronavirus-covid-19-fox-news-sean-hannity-misinformation-death <comment><AUTHOR> This is a farce, even beyond its lack of peer review.

It _completely ignored_ whether, and for how long, each population listen to Hannity _on the radio_.

Hannity's radio program has _triple_ the on-air time and _four times the audience_ as his Fox program. His radio program is syndicated over most of the USA free to listeners as opposed to Fox News on pay TV.

Vox, of course, won't point this out because it doesn't fit their narrative.</comment>


Twitter sued over patens - <AUTHOR> http://computerworld.co.nz/news.nsf/news/852AA741058E995ECC2576090074EBC0

<comment><USER2> This is why I hate software patents. Anyone can come up with some idea. Not anyone can implement that idea and make it worth something to other people.

The hard part of software is implementation, not ideas. So we don't need legal protection for vague ideas.

</comment><comment><USER3> I don't think has any merit, the first patent abstract says there should be response from receiving device back to the database. TCP ACK can't be considered this kind of response.

</comment><comment><USER4> One is free one charges

One took off one didn't

???

Lawsuit

Profit

<comment><USER2> (.....) <\- you can have some of my extra periods.

<comment><USER5> A little tact, dude. May be effektz is pregnant.

</comment></comment></comment><comment><USER6> It seems that every time a great business comes along, the wolves attack. It's depressing that this business feels it necessary to sue twitter, a business in no direct competition with this emergency alert provider. People need to understand that technology!=success, implementation=success.

<comment><AUTHOR> I read it and wondered if it was primarily for PR. It's a great way to get their emergency service in the press</comment></comment>


Jakarta's Aeromovel – mass transit powered by pressurized air [video] - <AUTHOR> https://www.youtube.com/watch?v=GM2Zxn7ybNQ <comment><USER2> The system shown here is _not_ mass transit, but a Disneyland Monorail style theme park ride that serves the Taman Mini amusement park on the outskirts of Jakarta:

[https://en.wikipedia.org/wiki/Taman_Mini_Indonesia_Indah](https://en.wikipedia.org/wiki/Taman_Mini_Indonesia_Indah)

[https://id.wikipedia.org/wiki/SHS_23_Aero_Movel_Indonesia](https://id.wikipedia.org/wiki/SHS_23_Aero_Movel_Indonesia)

[http://www.tamanmini.com/sarana-keliling/shs-23-aeromovel- in...](http://www.tamanmini.com/sarana-keliling/shs-23-aeromovel-indonesia)

It runs in a six-station, 3.2km unidirectional loop.

</comment><comment><USER3> This is the aeromovel that integrates our metropolitan train to the airport here in the brazilian south: [https://www.youtube.com/watch?v=RZKIp28thFE](https://www.youtube.com/watch?v=RZKIp28thFE)

Although it has been a project for more than 30 years, it is something locals are really proud. The same local company implemented both projects (the brazilian one and this in Jarkata).

</comment><comment><USER4> Looks like this is still in use:

One of the "trains" stopped at a station:

[https://goo.gl/maps/5Ju92GQQmPP2](https://goo.gl/maps/5Ju92GQQmPP2)

Further evidence, if you start on Google streetmap here you can see one of the trains rounding a curve into one of the high level stations and then departing:

[https://goo.gl/maps/oXD8gkXaHcM2](https://goo.gl/maps/oXD8gkXaHcM2)

[https://goo.gl/maps/VDcCFP9rvAK2](https://goo.gl/maps/VDcCFP9rvAK2)

[https://goo.gl/maps/Sa17Q5P7FNS2](https://goo.gl/maps/Sa17Q5P7FNS2)

[https://goo.gl/maps/xZsViC3ctER2](https://goo.gl/maps/xZsViC3ctER2)

One of the air release gates mentioned in the film:

[https://goo.gl/maps/Shv8vApiYix](https://goo.gl/maps/Shv8vApiYix)

</comment><comment><USER5> Saw the video was from 2007.. looked for an update. It was designed in the 1970s. This was the first system, and was installed in 1989. It's a 2mi loop. In 2013, they installed a 0.6mi line at a Brazilian airport.

[https://en.wikipedia.org/wiki/Atmospheric_railway#Aeromovel](https://en.wikipedia.org/wiki/Atmospheric_railway#Aeromovel)

They're working on a new 3.75mi line in downtown Canoas BR. [http://www.aeromovel.com.br/en/projeto/canoas/](http://www.aeromovel.com.br/en/projeto/canoas/)

In this 1993 article, they say this cost $9m US to construct (using local labor and materials) and $500k/yr to operate. [http://articles.latimes.com/1993-01-17/business/fi-2255_1_tr...](http://articles.latimes.com/1993-01-17/business/fi-2255_1_transit- system)

That's a lot cheaper than light rail.. but it's hard to do a fair comparison, because of the labor difference and light rail projects (at least in the US) include stuff like tunnels, re-routing highways, etc.

<comment><USER6> I lived in Jakarta in 2010... there is no such system operating (and IMO there never will be - it is inferior to conventional electric light rail despite the claims to the contrary made in the video).

But there are a bunch of unused concrete pylons that look just like the ones in the video on certain roads. I was told that was for a light rail system that got cancelled due to rising cost issues. Not sure it was this though, a Japanese contractor that was shafted by the government was mentioned.

<comment><USER7> I've lived there 20% time since 2009 have never heard of this system. People said the same thing to me about those pylons. They've since launched a "busway" system and are currently building a proper light rail MRT system. It should theoretically begin operation of one of the lines next year. Lots of good work being done now.

<comment><USER8> Looks like it is in this theme park? [https://en.wikipedia.org/wiki/Taman_Mini_Indonesia_Indah](https://en.wikipedia.org/wiki/Taman_Mini_Indonesia_Indah)

</comment></comment></comment></comment><comment><USER9> The video mentions the South Devon Railway, "which failed". That railway was planned by Isambard Kingdom Brunel, and opened in 1847. There are a few pumping stations along the route, which used steam engines to create a vacuum in a pipe laid along the middle of the tracks. The railway was converted to steam engines and then to diesel when the atmospheric system failed to live up to expectations. The main problem was that the leather seal along the slot on the top of the pipe failed - officially due to wear, freezing solid, or drying out and going stiff. The leather was lubricated with whale oil, and some say that rats took a fancy to this ready source of food.

There is still a pub called the atmospheric railway inn in Starcross, which the train would have passed.

[https://en.wikipedia.org/wiki/Atmospheric_railway](https://en.wikipedia.org/wiki/Atmospheric_railway)

</comment><comment><AUTHOR> I stumbled across the Aeromovel on Wikipedia ("Hyperloop" > "Atmospheric railway" to "Atmospheric railway - Aeromovel" [1]). I was looking for a diagram to explain exactly how it worked, but couldn't really find one. However this video actually does a really good job of explaining it, all the way down to the guy crawling around in the air duct.

The Aeromovel is about as low-tech as the Hyperloop is high tech. Of course it addresses a different part of the transit problem space, but it looks like it actually works, and it's easy to see why it's really cheap.

[1] [https://en.wikipedia.org/wiki/Atmospheric_railway#Aeromovel](https://en.wikipedia.org/wiki/Atmospheric_railway#Aeromovel)

<comment><USER10> That's a neat little system. The atmospheric railways of the 19th century failed because they lacked a good sealing material for the slot. They tried to use leather, which didn't last very long. With synthetic rubber, it can work, although I wonder how often they have to replace the gaskets.

The size of the air duct is much larger than the 19th century systems, and the pressure is quite low, only 0.16 atmosphere. There is a switch for this system, and it's not too big.[1] (Monorail switches tend to be bulky.)

Another system (4.7km) is under construction, or at least contracted for, in Canoas, Brazil. This is planned to be expanded into a sizable metro system.

Aeromovel probably would have been an improvement over that cable-hauled kludge at the Oakland airport. That cost $484 million for a 3.2 mile system with two cars. Only two cars; there cannot be more, because of the way the cable system works.

[1] [http://www.eureka.tu.chiba-u.ac.jp/download/jseht/Aeromovel%...](http://www.eureka.tu.chiba-u.ac.jp/download/jseht/Aeromovel%20JAPAN.pdf)

</comment></comment><comment><USER11> Does it still work? I don't thing so, so why it failed?

<comment><USER12> It's still running. It's more of a theme park ride nowadays though than an actual transit system. Noisy, very energy inefficient and costly to maintain.

Source: my dad worked on constructing the thing

</comment></comment><comment><USER13> > generated by electric blowers

Is the electricity generation clean? Unlikely in SEA.

<comment><AUTHOR> > Is the electricity generation clean? Unlikely in SEA.

No doubt true, but possibly the wrong question to be asking. Is a coal fired plant outside of Jakarta going to produce less pollution than all those buses and cheap motorcyles generating their pollution right where all the people are?</comment></comment>


This Is What Water Will Look Like in Games of the Future - <AUTHOR> http://mashable.com/2013/04/25/video-water-games/

<comment><USER2> <https://news.ycombinator.com/item?id=5601626>

<comment><AUTHOR> Thanks! I didn't catch that earlier submission.</comment></comment>


Leaving Apple&Google: first 100% ungoogled Android phones go live on refurb HW - <AUTHOR> https://e.foundation/e-pre-installed-smartphones/ <comment><USER2> This is a _fantastic_ idea for so many reasons. Selling a recycled phone is great for the planet. And installing a non-Google OS is a huge help to people who don't want to fiddle with all that.

Kudos to you!

</comment><comment><USER3> Hesitant to criticize because the world badly needs companies like e and refurbishing is noble, but this feels like bad optics for a company trying to lure people away from the giants. Refurb screams unprofessional ebay tier seller to me.

Why not something like Xiaomi brand new, the process to degoogle them is incredibly painless while anything new in the Samsung line is horrendous to flash if not impossible.

</comment><comment><USER4> Does anybody know how security updates work with these devices? I assume Samsung will continue supporting S7 and S9, but for how long, and do these patches make it to /e/? I'm always skeptical of privacy grandstanding when little information is available about the security properties and processes of a system. One can have security without privacy, but certainly not the other way around.

</comment><comment><USER5> did i understand right that instead of a google account you need a /e/ account to access stuff? so that instead of trusting google, i need to trust /e/?

</comment><comment><USER6> I was hoping to spiff up my old Galaxy with a faster OS, but the bootloaders are locked on the Snapdragon S6 and up in the USA and China.

<comment><USER3> Yeah associating their brand with Samsung phones will lead to great confusion down the line, newer models are completely locked down. Even if third party hacks are discovered your warranty is voided out of the box.

</comment></comment><comment><USER7> Not yet for sale. No announced availability date.

<comment><USER2> Yeah, it's a _survey_ to gauge demand. And props to them for doing this.

<comment><USER7> Title of this submission suggests otherwise.</comment></comment></comment>


The Poor Man's 3D Camera - <AUTHOR> http://etodd.io/2017/11/28/poor-mans-3d-camera/ <comment><USER2> If there's a universal thing to derive from this great article, it's:

"The point is, most of these ideas are simple and obvious in hindsight, but I had to make a lot of mistakes to find them. It's nearly impossible to coalesce good design decisions straight from the ether. The only reliable method is iteration and trial and error."

<comment><USER3> Still, my productivity increased when I consciously forced myself, when faced with some difficulties where I have failed once or twice, to resist writing more code, switch down the PC, go for a walk and think (or a good bath). Thinking hard for a few hours about a problem is underrated IMO.

</comment></comment><comment><USER4> I love these lengthy write-ups packed full of fantastic commentary and examples but this is an especially good one and must have taken you an age to put together.

Thanks for sharing.

<comment><USER5> Slightly off topic, I once asked Scott Hanselman how long it takes for him to make articles like that, full of description and images in a way that pulls you into the text.

He told me that around 2 hours.

I guess that this is only true once you have a lot of practice and clearly knows what you are doing. When I write (not often) it can take a whole lot more to finish something like that.

I'm curious now as to how long it took by the author to complete the article especially to recover images and GIFs from old/previous stuff.

<comment><AUTHOR> This one took roughly a full work day. I'm a slow writer, and had to record a few new gifs and Inkscape up the camera diagrams.

</comment></comment></comment><comment><USER6> This is probably my favorite article I've read on here all year. User experience is so important and so hard and so iterative (and requires so many new sets of eyeballs) that far too many people and organizations call it quits at the 10% mark without ever realizing it -- this is as true in web design as it is in game design. It's great how spending time learning lessons in one can translate into improved performance at the other.

Mark Rosewater, lead designer for Magic: The Gathering, likes to talk about how he looks for designers with experience doing things other than designing games because they can bring new perspectives and approaches that can help redefine their game design problems in new ways. I completely agree, and again feel like that same lesson can be applied in reverse—hire great game designers to work on your UX, assuming you can pull them away from their game designing long enough! It'll be good for them and good for you.

</comment><comment><USER7> Was hoping this was a write up on how to build a physical camera that shoots spherical video -- This is great too though!

<comment><USER8> Same here, the title is just a little misleading.

<comment><USER9> It would be better if it said "third person camera." I was let down because I thought the author had jury rigged two physical cameras to capture 3d images.

<comment><USER10> Conversely, I avoided it all day because I didn't feel like reading about 3D cameras. Glad I clicked through to see what it was!

</comment></comment></comment></comment><comment><USER11> While reading about the evolution of the camera and pushing away from the wall (or not) it strongly reminded me of the game Tremulous. The initial alien class is a very short spider that moves very quickly and can walk on walls. When running into a corner the camera does a (user-adjustable speed) rotation. The same happens if you jump into a wall. But in this game the solution seems to be more direct- you are _always_ headed straight for a wall, and there seems to be much less wall-walking as "wall-flinging."

<comment><USER12> I really enjoyed Tremulous. If it weren't plagued with aimbots, it would have developed much more, I think.

Update: I just came across [http://grangerhub.com/](http://grangerhub.com/) . It looks like they're making progress!

</comment></comment><comment><USER13> Great post. When I hear people on social media complain about any given game, I think of how the development process of pretty much every single game involves complex situations similar to what's described in the article. Game development is tough!

</comment><comment><USER14> Wow, I think this is an amazing example of how articles on the web aught to be written. Clean presentation, great typography, entertaining yet not too superfluous prose, and plenty of tasteful illustrations and visualizations. Hopefully this is the start of a new trend.

</comment><comment><USER15> Your/the writing tone seems like it'll make for a fun game :)

</comment><comment><USER16> This was great, although from the title I was expecting a Kinect sort of thing. Enjoyed the read though!

<comment><USER17> I was expecting something like this: [http://www.dx.com/p/lomo-action- sampler-4-lens-35mm-film-cam...](http://www.dx.com/p/lomo-action- sampler-4-lens-35mm-film-camera-black-orange-167761#.Wh3Pq0qnGHs)

<comment><USER18> That's a quick 4 image camera, not a 3D camera.

<comment><USER17> Well you get 4 images spaced out, therefor you could get semi 3D effect.

<comment><USER18> You'd need a lot more space between them for that to be effective and it would not work for anything that moves because the images are also spread out in time.

That's why old school stereo cameras had their lenses much further apart and that's why they fired synchronously.

<comment><USER17> OK. I was being 100% "This is exactly what I was thinking". I could have posted this instead: [https://en.wikipedia.org/wiki/Nimslo](https://en.wikipedia.org/wiki/Nimslo)

Of course, in my mind, I was thinking of cheap webcams strapped to wood.

<comment><USER18> Makes me wonder if it would be possible to make a 3D video camera by quickly sliding a regular camera back-and-forth in sync with the framerate.

<comment><USER17> Would have to be a high FPS camera. Some cheap linear rails and a NEMA 17 motor. Of course you would have to get the "sync pulse" out of the camera, then you would probably have to do a delay move to move into position before the next snap.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Good camera control in games is quite hard. If the camera is third-person, finding a valid place for it is tough in tightly bounded spaces. Letting the camera move through a wall is considered unacceptable today. (Second Life still does this, frequently. They're stuck in the 1990s there.) If the camera is too close to the character in third person, the player can't see what they're doing.

<comment><USER20> As far as I'm concerned a great camera implementation is art and not science.

</comment></comment><comment><USER21> Great article - I enjoyed it and it makes me want to play more with 3D rendering!

The camera placement and black shading work seems excessive - I think it could be simplified by having the camera behave as a physical object that must obey collision rules in the game world.

So desired camera lcoation is displacement XYZ relative to the player, but the displacement is reduced by collisions as needed until at the player's location, yielding a first-person view if the player is right next to a wall.

Then the only blocking surfaces would be the player avatar itself, which could be rendered transparent as needed.

</comment><comment><USER22> Am I the only one or did this site totally trash your browser? The GPU percentage was really high.

</comment><comment><USER23> I'm not super interested in the topic, but the way you wrote the article (visual examples, using understandable language, not overwhelming with technical details) is awesome! Tech bloggers everywhere should take note. Overall, very interesting journey.</comment>


A Nobel for Valor - <AUTHOR> http://blog.jgc.org/2011/03/nobel-for-valor.html

<comment><USER2> A Nobel is "in recognition of cultural and scientific advances". While the work they are doing is brave, selfless and courageous I'm not sure a nobel is the right award for this.

Most countries have an award for valour both inside[1] and outside[2] of the military. A UN style award would be more appropriate I think.

In someways a Nobel doesn't match the ultimate sacrifice for little or no personal gain that these people may well be giving.

[1]-<http://en.wikipedia.org/wiki/Victoria_Cross>

[2]-<http://en.wikipedia.org/wiki/George_Cross>

<comment><AUTHOR> You may be correct, but there is also the Nobel Peace Prize which is not for the purposes you state. However, I'm not wed to it being the Nobel organization, just needs to be international and visible.</comment></comment>


Oldest Bible (4th Century New Testament) Pieced Together, to be Made Available Online - <AUTHOR> http://dsc.discovery.com/news/2008/07/22/oldest-bible-online.html

<comment><USER2> Somebody should run diff on that...

<comment><USER3> Actually your every day pew bibles usually already have small footnotes explaining where some translations or manuscripts differ, like "the earliest manuscripts do not have the following verses" or "some translations also add blah"

if actually interested, the article does mention where one such difference is found.

<comment><USER4> <http://en.wikipedia.org/wiki/Mark_16> has more detail. Suffice to say that this isn't remotely a new development.</comment></comment></comment>


The changing height of Homo erectus - <AUTHOR> http://johnhawks.net/weblog/reviews/erectus/changing-height-homo-erectus-2010.html <comment><USER2> I remember a fun(!) find of three human skeletons in a saber-toothed tiger den. They were fairly co-existant (within 300 years?). So that was a rare chance to compare and estimate variability within a single population.</comment>


Why I Am Excited about Adobe Brackets for Web Development - <AUTHOR> http://elliotforbes.co.uk/articles/brackets-exciting-web-development-tool/

<comment><USER2> Extracts is amazing! The amount of time I'm going to save worrying about pixel perfection and getting everything in my style sheets correct. I'll have plenty of time to focus on getting the functionality spot on!</comment>


Contract based programming (Python) - <AUTHOR> https://github.com/thoughtnirvana/augment

<comment><USER2> The huge number of lambdas had a tendency to muddle the first example; somebody should tell this gentleman about the `operator` module. Other than that, looks interesting! The decorator syntax may be a more apparent way to handle assertions about arguments in situations where numerous (or repetitive ones) are required. Hooks can be similarly handy.

<comment><AUTHOR> > The huge number of lambdas had a tendency to muddle the first example; > somebody should tell this gentleman about the `operator` module.

The lambdas are how you specify the constraints. How does operator module help here?

        @ensure_args(a=lambda x: x > 10 and x < 100)
        def foo(a):
            pass

Here, the constraint is `a` should be greater than 10 and less than 100. Where does operator module comes in here?

And the first example is using multiple lambdas to show the multiple use cases:

1\. `a=lambda x: x > 10` is for the positional argument `a`.

2\. `b=r'^?-\d+(\\.\d+)$'` is to show if you need the arg to match a regex, you can directly pass it.

3\. c=lambda x: x < 5) # `c` will be picked from `kwargs`.

And here, the comment clarifies that c isn't there in the positional args. But since arguments are looked for in both kwargs and positional args, this constraint will work.

<comment><USER3> And presumably these can be flicked off in production, for speed?

<comment><AUTHOR> Won't that defeat the whole point? Contract based programming means your function assumes certain properties and acts accordingly. If you turn off the contract enforcers, your function will still be acting under the assumptions that the input meets the contract and will err.

<comment><USER3> I think the key word here is "assumption." zope.interface doesn't enforce its contracts by default; one must explicitly invoke verifyObject() to verify the invariants and interfaces of a given object. But, for speed, verifyObject() is usually omitted in interface-heavy applications. (I admit that my personal projects always verifyObject(), but only for rigorous plugin validation.)

<comment><AUTHOR> The waters are murkier here. Apart from checks, you also have

        @transform_args(a=lambda x: x*x)
        def foo(a):
            pass

This isn't validation and can't be turned off. The idea behind the project was the function should concentrate on logic and validations should happen declaratively. If the `verifyObject` sort of call comes inside the function, it impacts the declarative goal.

The current validators throw Exception by default. They can be optionally take an `error_handler` to which they pass the errors. Bringing in inside the function will mean manually accumulating the errors from various validators.

Also, these validators are mostly for conditions which must be met. Say you are writing a sqrt function, then the pre-condition is the number shouldn't be negative and that isn't something that can be turned off.

I don't know how zope.interface works but this isn't supposed to be optional validation. It is basically about taking the manual checks from inside the function to above the function with convenient declarative syntax.

<comment><USER3> Ah, I see. You should definitely check out zope.interface; it's a different approach to a similar problem. This is quite cool, though. Good work!

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> I liked contracts in Racket, so ported some of it to Python. These checks can very well be done inside the called function but decorators enable a more declarative style.

<comment><USER4> Very nice. I did something very similar for an RPC server I wrote, but it's less general and relies on the ORM (SQLAlchemy). Essentially, it turns database id's into the mapped objects, checks the objects against the constraints declared as arguments to the decorator (much like this module), and then passes the mapped objects in to the original function in place of the id. It's proven to be a very useful pattern, but I'll probably use this library instead for future projects.

</comment></comment><comment><USER5> In Python 3 a similar thing looks better with the use of "function annotations": <http://code.activestate.com/recipes/572161/>

There also are a few modules out there that implement design-by-contract's pre-/post-conditions for class instances, for example <http://code.activestate.com/recipes/436834/>

</comment><comment> St-Clock One thing I may have missed from the documentation: is it possible to check post-conditions (side effects of the function and return value)?

<comment><AUTHOR> Side effects can be checked in `@leave(check_side_effects)`. I plan to add something to check results.</comment></comment>


Facebook down: Site and app not working - <AUTHOR> http://www.independent.co.uk/life-style/gadgets-and-tech/news/facebook-down-not-working-down-up-site-app-internet-loading-broken-outage-a7995166.html <comment><USER2> [https://mobile.facebook.com](https://mobile.facebook.com) shows an error page. Normal website shows a blank white page for me.

I have co-workers for whom the site is working slower than usual but it's responding at least.

</comment><comment><USER3> Neither is Instagram. Maybe it's related.</comment>