Is It a Duck or a Rabbit? For Google Cloud Vision, Depends on Image Rotation - <AUTHOR> https://www.reddit.com/r/dataisbeautiful/comments/aydqig/is_it_a_duck_or_a_rabbit_for_google_cloud_vision/ <comment><USER2> I quite surprised at the comments on HN so far as nobody seems to see the significance of this. Yes, the image is ambiguous. The point is that Google Cloud Vision gives an unambiguous answer of that image based on the rotation. Transformations of an image are regularly used to improve the results of image recognition. That process fails quit dramatically if in the course of a transformation the answer given is presented with higher confidence than should be.

<comment><USER3> I'm glad that at least someone here sees the problem, but I am not surprised by the typical reaction of AI apologists in this thread. You always get at least one of the two responses:

"OMG, this is amazing, it's just like humans. We're probably close to AGI."

"Ha-ha, humans are stupid, so the algorithm giving unexpected result is just a proof that it's better and less biased."

Here, we have both in response to the same demo.

Still, I honestly don't know why some people are so biased in favor of neural nets and have zero interest in edge cases and flaws (the most interesting parts if you want to gain deeper understanding of how the algorithm actually operates). Wishful thinking, I guess.

<comment><USER4> Can someone explain why this is a problem? I'm not an "AI apologist", but I would consider it a good thing that the model pegs it as a rabbit when it is in more of a "rabbit orientation" and a duck when it is in more of a "duck orientation".

<comment><USER3> In the real world, you don't want AI to instantly flip from 90% confidence in one direction to 90% confidence in the other direction, because it would cause erratic behavior. What would be preferable is a large zone where it gives both labels .45 score. Then you can apply higher-level reasoning based on the possibility that the object could be _either_ of those two labels (i.e. act on the possibility of the most dangerous or most beneficial scenario of the two).

<comment><USER5> This. Maybe the AI needs to know somehow that it's the same image it saw a few seconds ago, but now presented at a different angle or the AI itself should look at an image at different angles, just to be sure, that is how humans sometimes look at pictures if they are confused. Something to contextualize every image wrt to what it recently saw and make the current decision a little less overconfident.

<comment><USER6> CV usually does look at images with different rotations, scaling, stretch. The point is that GCV doesn't get stuck on duck when the duck is upside down, it behaves the same way as a human classifier.

I'm looking forward to ReCAPTCHA asking "Click the images of things that are upside down."

</comment></comment></comment></comment></comment></comment><comment><USER7> Creator of the animation here. Most of the relevant information/context behind the animation (including a link to the repo) is in this Reddit comment: [https://reddit.com/r/dataisbeautiful/comments/aydqig/_/ehzyo...](https://reddit.com/r/dataisbeautiful/comments/aydqig/_/ehzyozr/?context=1)

<comment><USER7> To answer the question _why_ I made the animation: there isn't an ulterior "I found an AI gotcha!" motive, I saw a tweet where the API returned different things depending on orientation and expanded on it. It was also an opportunity to test a few animation hypotheses via gganimate.

</comment></comment><comment><USER8> When the output switches to rabbit the picture actually resembles a rabbit. I am unsure if this experiment was supposed to be a "haha look how stupid AI is" type thing or not, but it seems like the cloud vision api is performing as intended.

<comment><USER9> The interesting part (IMO) isn't that the AI classifies it as both a rabbit and a duck, but that the classification is dependent on the rotation of the picture.

I can somewhat understand how that happens, but I find it's in an interesting observation (rather than a criticism on the system, though the title is somewhat unclear and had me expect something else).

<comment><USER10> But rotation does contain information. 6 and 9 can be considered as a case where rotation SHOULD change the classifier's output.

AI does makes dumb predictions from time to time, but I my opinion, this isn't that strong a case. When it rotate upside down, it does look like a rabbit even to me.

The more interesting 'failure' here to me, is that while the rotation is smooth, the prediction is not, instead it is flickering, which does raise some interesting questions about what the model's internal distribution surface looks like.

<comment><USER11> But only with context right? It is completely ambiguous if the character is 6 or 9 without some other clue, like which way up the paper is, or from the 4 next to it (if you assume that an arbitrary rotation may have occurred). It is just a sign to me that doing some rotations as data augmentation is not good enough. Rotation invariance needs to be built into the architecture of the network (like translation invariance sort of gets in via max pooling). I think it should be giving a 50/50 classification of duck and rabbit at all rotations if it was working as expected.

<comment><USER12> How often do you read upside down?

<comment><USER11> All the time, especially when I read to my kids.

<comment><USER13> Your kids might enjoy this cartoon.

[https://youtu.be/9-k5J4RxQdE](https://youtu.be/9-k5J4RxQdE)

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> It's a seagull not a duck. Don't confuse the dumb AI even more by not knowing what a duck doesn't look like in the first place. Jeez.

<comment><USER15> No such thing as a seagull, as my ornithologist friend likes to remind me.

</comment></comment><comment><USER16> That image is a visual illusion. I find it hard myself to detect that it's a rabbit when it's ears are horizontal like a mouth.

Not sure what is the purpose of it, is it to show that even computers vision algorithms can get confused by visual illusions?

<comment><USER17> I find your response more interesting that the experiment.

You don't just rotate the image in your mind or focus on specific features to bring out the duckiness or rabbit-ness? I can make it more duck or more rabbit as will.

</comment></comment><comment><USER18> Is it concerning that there are short, sudden drops in prediction in the middle of a block otherwise solidly classified as rabbit/duck? I don't know much ML, does anyone know why it'd be so discontinuous?

<comment><USER7> Specifically, those drops are where the top/bottoms of the image are _very slightly_ cropped out.

When making the animation I didn't _intend_ for the occlusion, but the fact that the occlusion causes the prediction to _drop to zero_ is itself an interesting data point. Many objects in real life are occluded.

</comment></comment><comment><USER19> While the title is clickbaity (as in adversarial examples for fooling neural networks e.g. by adding a baseball ball to a whale to make it shark), I think it shows a nice phenomenon. I.e. a given illusion works similarily for humans and AI alike.

Vide "dirty mind" pictures like posting [https://images.baklol.com/13_jpegbd9cb76b39e925881bdb2956fd3...](https://images.baklol.com/13_jpegbd9cb76b39e925881bdb2956fd32ac91.jpeg) to Clarifai [https://clarifai.com/models/nsfw-image-recognition- model-e95...](https://clarifai.com/models/nsfw-image-recognition- model-e9576d86d2004ed1a38ba0cf39ecb4b1) gives 88% for NSFW.

<comment><USER20> Clickbaity? The title is downright misleading.

<comment><USER21> I'm a little confused, it seems quite accurate to me. It's the famous duck/rabbit rotation illusion and the google cloud vision API returns different results depending on rotation.

What do you find misleading about it?

<comment><USER19> See e.g. [https://towardsdatascience.com/breaking-neural-networks- with...](https://towardsdatascience.com/breaking-neural-networks-with- adversarial-attacks-f4290a9a45aa)

<comment><USER22> I wasn't the one who downvoted you but I agree with IanCal and this blog title didn't trigger my "clickbait" sensor.

I disagree that this is an example of "adversarial attack". The famous duck/rabbit illusion has been around since ~1892[1] and therefore was not deliberately constructed to be an "adversary" to image classification neural networks.

To me, it's an interesting example of feeding a well-known optical illusion to an AI algorithm and observing its behavior.

[1] [https://en.wikipedia.org/wiki/Rabbit%E2%80%93duck_illusion](https://en.wikipedia.org/wiki/Rabbit%E2%80%93duck_illusion)

<comment><USER19> Yes, I agree with you. (No idea who downvoted my and why either.)

This (well known) illusion is NOT an adversarial example. Though, I explain why for people working with AI (e.g. me) the title seemed like mentioning an adversarial example. There are plenty of examples of "just rotate and a vulture becomes an orangutan" where it does not look like an orangutan for humans.

Vide: "A Rotation and a Translation Suffice: Fooling CNNs with Simple Transformations" [https://arxiv.org/pdf/1712.02779.pdf](https://arxiv.org/pdf/1712.02779.pdf)

</comment></comment></comment></comment></comment></comment><comment><USER23> It would be cool to visualize this as a kind of pie chart, based on where the ears/beak is pointing. Blue for directions where it sees duck, red for rabbit, and empty for neither.

</comment><comment><USER24> Looks like proof to me, that the classification works correctly.

</comment><comment><USER25> I wonder whether it would stay consistent if you gave it a solid background line

</comment><comment><USER26> This seems like a serious concern. What's a possible solution to this problem? Should all orientations be considered valid types? so in this case the image should be both a duck and a rabbit as the response?

</comment><comment><USER27> On still (not animated, not rotated) preview I saw rabbit first, then in a second I found it can be a duck also, and now it takes efforts to see rabbit again (but I can do it).

</comment><comment><USER28> I was ONLY seeing clockwise in all images until the counter-clockwise one went about 8 rotations and all of a sudden I saw it counter-clockwise. Now I can't unsee it.

</comment><comment><USER29> When I look at the anticlockwise one I can see it as going either direction. When I look at the clockwise one I can only see it going clockwise

</comment><comment><USER30> Does Google Cloud like Duck or Rabbit? That's where the answer lies.

In addition, if Cloud could taste one, it would really help itself with the answer.

</comment><comment><USER31> I wonder if this was hardcoded/specifically trained to do this for this image?

<comment><USER32> The image was created specifically to fool humans, it's one of the classics in the optical illusion genre. It would be a shame for ML if it required specific trickery on both ends to reach that outcome.

</comment></comment><comment><USER33> There is a children's book about this pairing: [https://www.amazon.com/Duck- Rabbit-Amy-Krouse-Rosenthal/dp/0...](https://www.amazon.com/Duck-Rabbit-Amy- Krouse-Rosenthal/dp/0811868656)

</comment><comment><USER34> But does it see a blue or a white dress?

</comment><comment><USER35> it cannot be a rabbit because there is no nose nor mouth

<comment><USER36> But how does it smell?

</comment></comment><comment><USER37> WAI

</comment><comment><USER15> It's a drawing of a creature that looks a bit like a rabbit or a duck from different angles but is very clearly neither, at best a bad drawing. That's the failure here - it's classifying into one of its categories when it shouldn't be classifying at all.

<comment><USER9> It's one of those optical illusions, where we (humans) do recognize animals. I don't think it's reasonable to limit classifications to the specific case where a drawing perfectly resembles a certain animal.

The interesting part (IMO) isn't that the AI classifies it as both a rabbit and a duck, but that the classification is dependent on the rotation of the picture.

<comment><USER38> I don't find it super interesting. The orientation distinction is clearly in the training data, and making the algorithm completely rotation invariant would likely a) be more difficult and b) result in worse classification compared to us humans who very much use orientation as a cue having been evolved in an environment with distinct "up" and "down" directions.

<comment><USER39> As the AI has likely not seen anything remotely similar during training, it is quite interesting that it is detecting the animals. As the picture was set up to confuse humans, does it somewhat show, that the representation that the AI learned is similar to the one humans have?

<comment><USER38> The AI has seen ducks and rabbits. It has build a good enough internal model of "duckness" and "rabbitness" that even more abstract renderings of ducks and rabbits activate the relevant parts of the net. I mean, that's exactly what we want them to do! Figure out the aspects of the input data salient to the classification task and ignore the irrelevant parts.

That said, I the response here is likely filtered and normalized to only include "duck" and "rabbit" classifications; after all the bird looks much more like a seagull than a duck.

</comment></comment></comment></comment></comment><comment><USER40> This is the infamous Duck-Rabit illusion, right? The classifier seems to be doing a good job.

[https://en.wikipedia.org/wiki/Rabbit%E2%80%93duck_illusion](https://en.wikipedia.org/wiki/Rabbit%E2%80%93duck_illusion)</comment>


Some U.S. law enforcement agencies are using GrayKey to bypass iPhone encryption - <AUTHOR> https://motherboard.vice.com/en_us/article/vbxxxd/unlock-iphone-ios11-graykey-grayshift-police <comment><USER2> > Grayshift has been shopping its iPhone cracking technology to police forces. > The firm, which includes an ex-Apple security engineer on its staff, > provided demonstrations to potential customers, according to one email.

Wow. That's very sleazy.

<comment><USER3> Hacker News: Hack everything!

Hacking Company: We've hacked the iPhone and are selling the tech to law enforcement.

Hacker News: Evil! Sleazy!

<comment><USER4> You keep using that word. I do not think it means what you think it means.

Hacker News: Hack everything!

 _Crack_ ing company: We've _cracked_ the iPhone and are selling the tech to law enforcement.

Ref: [http://www.catb.org/jargon/html/meaning-of- hack.html](http://www.catb.org/jargon/html/meaning-of-hack.html) [http://www.catb.org/jargon/html/C/cracker.html](http://www.catb.org/jargon/html/C/cracker.html)

<comment><USER5> I'm sorry, but it's no longer the 1980s. In plain English, hacking now means "gain unauthorized access to a computer." You may not like it, but English is defined by usage, not whatever culture the one-time jargon was inherited from.

<comment><USER4> Regardless, the point is that the parent's satirical accusation of hypocrisy is invalid because it's using the same word "hack" for two very different meanings.

<comment><USER5> I mean, yes, that was the joke.

<comment><USER3> This guy gets it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> That 15k(or 30k) box looks like it is slightly more polished than an arduino case straight from the likes of DigiKey.

It wouldn't look out of place in the 80's. The LEDs in particular would fit right in.

I would not be surprised to find an actual $1 micro controller driving this. Or to find that out the box wasn't really required at all – and that during development the software ran in a normal laptop, but they needed a physical product to charge the big bucks...

<comment><USER7> GPS, 2-factor auth and probably additional tamper-proofing is packaged in the enclosure. GrayKey's value drops to zero the moment the exploit is unearthed; I suspect the black box mostly provides safeguarding.

Though, one wonders whether a simple tap on the lightning cable couldn't spill the device's secrets.

<comment><USER8> It's somewhat amusing that their business model, i.e. "we break software protections", is 100% dependent on their own software protections working.

</comment></comment></comment><comment><USER9> > FBI Director Christopher Wray recently said that law enforcement agencies > are "increasingly unable to access" evidence stored on encrypted devices.

> Wray is not telling the whole truth.

I wish there was some punishment for Government officials for lying to the public. You can be prosecuted for lying to the FBI, so why shouldn't they be prosecuted for lying to you (the voter, who is supposed to have the power in a democracy)

<comment><USER10> I would guess it's to reduce the amount of frivolous accusations by people who only _think_ they were lied to or simply disagree. I would imagine that most government officials would spend their day fighting off these accusations, with no time for their official duties.

<comment><USER11> I'd rather their time be taken up by explaining shit in court as opposed to making backdoor deals.

</comment></comment></comment><comment><USER12> Some more fun information here: [https://blog.malwarebytes.com/security- world/2018/03/graykey...](https://blog.malwarebytes.com/security- world/2018/03/graykey-iphone-unlocker-poses-serious-security-concerns/)

It looks like it runs third party code on the device. Only needs to be connected to the black box for two minutes and then unplugged for the remainder of the process.

</comment><comment><USER13> I've always wondered about the legalities of such things. How is it okay for a company to legally sell a hack of another company's technology? Is it because they only sell to the police? If this is okay, then where is the actual limit? Can they sell hacked access to a company's servers for example?

<comment><USER14> This isn't really a hack, it's just a tool for brute forcing pin codes. It doesn't work if you have an alphanumeric code or a very long pin code.

<comment><USER15> But doesn't that still violate the DMCA that prohibits working around access control technology?

<comment><USER16> It does seem to violate the CFAA

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

</comment></comment></comment></comment><comment><USER17> From the article, it seems to be a passcode bruteforcing tool. They state in the article 3 days or longer for a 6 digit passcode. Which I assume means 3 days for a 4 digit code. That's about 26 seconds per guess.

So if you care about securing against this, use a longer passcode (and alphanumeric) is the message I guess.

<comment><USER18> Isn't there a setting for wiping the device if the wrong password is entered X times?

<comment><USER19> This device pranks the hardware to allow unlimited attempts at guessing the password.

I don't know the details: is it as simple as grounding the "password entered incorrectly" pin? Or is it about injecting so much noise on a signal line that the message to increment the PIN attempt count never gets through? I don't know.

So use a passphrase, not a PIN.

<comment><USER4> Last year someone demonstrated the possibility of dumping and restoring the state of the security hardware in between entry attempts, so that the phone always thought you were on your first try. I assume this is the technique being used by the GreyKey.

EDIT: Pretty sure this is the one I'm thinking of: [https://www.digitaltrends.com/mobile/cambridge-researcher- ha...](https://www.digitaltrends.com/mobile/cambridge-researcher-hacks-iphone- security-off-the-shelf-equipment/)

I guess it was two years ago.

</comment></comment></comment></comment><comment><USER20> I wonder if they have any process in place to prevent Apple buying one of these and figuring out how it works.

I would guess Apple already has one. But if they've tried to get one, and been foiled somehow, there must be a fascinating cloak-and-dagger story there that we'll probably never hear...

<comment><USER21> well I am curious what the break time on longer passwords is? They made claims against four and six character passcodes but my employer already requires longer if we are to receive corporate mail.

<comment><USER22> I have never worked for a company that requires less than 8 characters for a password. Most have required 10 characters (or more), with at least one numeral, one special character, one uppercase letter, and one lowercase letter.

</comment></comment></comment><comment><USER23> Absent this whole article is the fact that there are good reasons for criminals to want to crack your phone. These developments just make it more likely your personal information and, frankly, cash can be stolen by anyone who swipes your phone.

<comment><USER24> This is one of the best points I have read. Without the community knowing how he is doing it—it can be used maliciously.

There are extremely good reasons for police officers to want access to an iPhone (which could be time dependent). At the same time there's a lot of potential for misuse of the ability to gain access by agencies or malicious actors.

It's a trade-off. I err on the privacy side of the issue because things can be misconstrued in a legal setting. I can see why some people don't have the same viewpoint and lean the other way.

</comment></comment><comment><USER25> I for one am glad I started using 25 character passwords 3-4 years ago. I just wonder how long it will be before that is not good enough either. Surely in my life time. And what's next? 50 character passwords? One hundred characters? 10-factor authentication?

<comment><USER26> If we ever get to 50 or 100 character passwords i don't think passwords will be the norm anymore. Perhaps facial recognition, but i think a better option is on the horizon.

<comment><USER27> Your face is not a secret.

</comment></comment></comment><comment><USER28> I wonder if Grayshift have joined the MFi program to license the patents to the Lightning connector...

</comment><comment><USER29> It's probably in Apples best interested to let this firm operate. It might be even a long term strategy for them. It relieves pressure from them and keeps law enforcement happy.

</comment><comment><USER30> > Malwarebytes' post says GrayKey can unlock an iPhone in around two hours, or > three days or longer for 6 digit passcodes.

So couldn't you avoid this by, say, having a longer PIN? Maybe even a password?

<comment><USER31> And couldn't Apple defend against this by using an exponentially increasing wait period between guesses? Probably after some number of guesses with no delay, say 10 guesses.

<comment><USER32> They already do that--but this box somehow bypasses that security measure.

</comment></comment></comment><comment><USER33> I thought the iphone has a delay after a few attempts at the secure enclave level?

I wonder if this is doing some sort of timing or voltage related validation of the code without needing to actually submit it. Ie the equivalent of 1234,backspace,5,backspace,6 etc without sending whatever is the equivalent of 'submit'

</comment><comment> micro-ram What about the requirement to run signed code from power on?

</comment><comment><USER34> Most key bits are below; there's much more in the article and in the article's links.

> GrayKey can unlock an iPhone in around two hours, or three days or longer > for 6 digit passcodes

> 'GrayKey' ... can break into iPhones, including the iPhone X running the > latest operating system iOS 11.

> The device comes in two versions: a $15,000 one which requires online > connectivity and allows 300 unlocks (or $50 per phone), and and an offline, > $30,000 version which can crack as many iPhones as the customer wants.</comment>


Have you been hit by Google´s Webspam Team with a Manual Penalty? - <AUTHOR> http://googlewebmastercentral.blogspot.co.at/2013/08/manual-actions-viewer.html

<comment><AUTHOR> It is a quite interesting move from Google. Seems that the data shown is correct. Just the question, if they really show us everything. :)

One great function is that you can then eliminate the errors / spam pages on your website and re-submit for a review by Google´s Webspam Team.</comment>


Tech Layoffs Surge to 300,000 - <AUTHOR> http://www.techcrunch.com/2009/02/17/tech-layoffs-surge-to-300000/ <comment><USER2> Sounds like a, "No," answer to Scoble's look at Michael Malone on whether Silicone Valley is already leading a turnaround ([http://scobleizer.com/2009/02/13/is-silicon-valley-seeing- an...](http://scobleizer.com/2009/02/13/is-silicon-valley-seeing-an-economic- turnaround) )</comment>


Ask HN: Expats in Ukraine or Russia, how is life? - <AUTHOR> For people who moved to Ukraine or Russia to find love; how is your life today? Please share your life stories. <comment><USER2> I don't live there, but I visit very often (at least once a year lately) and have visited regularly since the mid-90s (my family immigrated from there in the early 90s). I think in many ways the quality of life in the big cities (St. Petersburg and Moscow) is higher for the upper middle class (typical tech worker) there than in the US. Cleaner, safer streets and public transport, better services, convenient hours, better/easier access to quality healthcare (I'd still do advance surgery outside the country). The problems are the corruption, potential political instability and red tape that chokes private business. I'd live there (just need to convince my Russian wife ;) ).

</comment><comment><USER3> Since when do people move to Russia to find love, more like find a gold diggie</comment>


The vanishing shopping mall - <AUTHOR> http://www.theweek.com/article/index/94691/The_vanishing_shopping_mall <comment><USER2> _Retirees Dick and Anne Saplata work out by walking around the largely empty halls of the Metcalf South Mall in Leawood, Kan. It's likely to close soon, and there's talk that a developer will raze the place. If the mall goes under, Dick Saplata asks, "where are we going to walk?"_

Er, outside? Down a street? God forbid, in the country?

<comment><USER3> I think (mostly) seniors like to walk in malls because they're air conditioned/heated, relatively safe, and have restrooms. Few other locations have these amenities for free.

<comment><USER2> It's not something I've ever come across in Britain. People will tend to go and have a stroll around a local country park, or just round the streets near home. Personally, I couldn't think of anywhere worse than a shopping centre to spend a few hours walking!

<comment><USER4> When it's below freezing out and you're 75 years old, a mall is preferable to most anyplace outside.

<comment><USER5> Or you live in Phoenix and a stroll on a summer day is potentially lethal.

Walking around a climate-controlled mall is great exercise.

<comment><USER4> As an Ohioian, I hadn't even thought about this.

</comment></comment></comment></comment></comment></comment><comment><USER6> Basic summary and sentiment of the article: "Boo hoo, wah!"

If super-sized shopping malls are disappearing, it's for a reason and probably because they're too big. The local mall here is currently doing a $60 million expansion, but then this is basically a middle-class only town and the malls target this. It's also getting a supermarket in the expansion, and the next mall over already has one.

Walmart recently opened a supercenter, not far from the older mall, but it definitely doesn't appear to have affected the amount of people going there. Walmart certainly gets a large amount of visitors, but it doesn't necessarily have all what people here want. They have a great selection of electronics, however their stocking practice sucks monkey butt. They've lost numerous sales from me because despite the website claiming they have something in stock I end up going to one of the malls to get it. I don't like walking into the store one week and seeing something I'd like to get, and the next week it's gone.

All in all, personally I'll shop at a mall over Walmart, just because I like being treated like a customer and not a broken ATM with legs.

<comment><USER7> I still don't get why malls don't have supermarkets. Almost every shopping center in Sweden have them, and guess what? People shopping at the mall pick up food. People grocery shopping browse the mall.

<comment><USER8> My guess is the grocery carts. Shopping for food can be a high volume experience. In a place where store owners can get reprimanded or penalized for closing before 9pm (it's usually in the mall lease), I think carts would detract from the shopping "experience".

<comment><USER7> Makes sense. People in Sweden used baskets, not carts, so it fit with the other shop experience.

But what grocery store closes before 9pm?

<comment><USER8> Not the grocery store, the mall.

Most malls in the U.S. close at 9pm or 10pm. If a mall store closes its storefront before then, it looks bad (similar to a block with abandoned buildings, a couple not open storefronts break the RetailLand experience).

</comment></comment></comment></comment></comment><comment><USER9> the shopping mall was a product of the 1960s, when land was cheap. I hate shopping malls. They take up a huge amount of real estate, encourage people to drive instead of walk and take transit, and house overpriced businesses selling things I don't want anyway. The only reason I go into Bellevue Square is to visit the Apple Store, which now is too small for the number of people shopping there and so crowded it is unpleasant in there so I don't stay.</comment>


Startup venture with a fulltime job - <AUTHOR>

How many of you are doing both, and think that its possible to do justice to both? Though I am referring to early stage ventures. At a later stage, you have to decide though one way or the other. <comment><USER2> Early stage, I think it's possible, though difficult. I did both for about 8 months before going full-time on the startup. A lot of early-stage tasks (market research, prototyping, learning the technologies you'll be using) can be done part-time before you quit your job.

Long term, I think you're really screwing your startup by trying to do it part time. It's not just a matter of speed. There's a qualitative difference between the work you can do when you devote all your attention to it, and the work you can fit around your day job. Most products need the former in order to solve a real need.

</comment><comment><USER3> I think it is possible to have a full-time job in the early stage of the venture, IF you have no partner or family. I have decided to go part time to devote to my venture, which allows me time for my family.

</comment><comment><USER4> I am doing both...but many times is hard...very little sleep in the night, almost always tired. You have to make a lot of sacrifices without the guarantee of making it (startup).

</comment><comment><USER5> i am doing both, and think its possible to do justice to both. the issue that quickly arises is that progress on your startup will be slower than if you were doing it full time. which is obvious, of course, but it needs to be said, especially if time is of the essence.</comment>


Thermoelectric bracelet that helps maintain a comfortable body temperature - <AUTHOR> http://web.mit.edu/newsoffice/2013/madmec-design-competition-1017.html

<comment><USER2> The argument for energy savings seems a little specious.

We don't need fancy new electronics for that, if people just wore coats indoors, we would save a ton of heating energy. It wouldn't be as significant, but adopting lighter fabrics or a more tropical style of business dress could go pretty far in summer.

Persuading people to go along with such changes, even with a little help from another powered device, might present another challenge.

I've known some building managers who've adopted an HVAC by attrition approach, forcing people to accommodate to odd extremes. They usually aren't very popular.

</comment><comment><USER3> > ... can help maintain your perceived thermal comfort.

so it's just a hack that doesn't actually help regulate your temperature. i wonder if this can actually have negative health impacts by tricking your body to not actually regulate its internal temperature properly because of the misdirection?</comment>


JQuery Is Better Than React (2017) - <AUTHOR> https://medium.com/@melissamcewen/jquery-is-better-than-react-cd02dfb026a6 <comment><USER2> Although I think JQuery can easily be swapped for Vanilla JS, I totally agree with the React angle here. I've seen so much time wasted setting up tonnes of React boilerplate for a tiny single function website.

It's absolute madness the amount of time wasted on such things all for a fractionally more interactive page.

</comment><comment><USER3> I mean, they don't solve the same problems, so I'm not sure how useful this comparison is.

I know some people do have an irrational hatred of JQuery, but in my experience most people's views are more along the lines of "sure, JQuery is great, but advances in vanilla JS and movement towards using React/Angular/whatever mean I just don't need it any more".

</comment><comment><USER4> The one thing I don't like which doesn't make sense on my part. If I need to make a change in React it is usually not easy because oft he different state(s) involved.

So if I have to add a new modal/modify the workflow, it's a process.

"I could just do it" it it was straight Dom manipulation and direct data handling but I get why that can be bad as well.

I am also not an expert but it could just be that I'm doing it poorly. For example cross communicating between components so I click on some button that had to rerender a parent group to show a modal inside or something, which again sounds like bad design. But that's what I've been "annoyed" with. Oh and the walls of warnings about useEffect or something not being mounted yet/apply change.

<comment><USER5> if you're seeing walls of warnings about useEffect, or having trouble adding a modal to your app, then you probably ARE doing it poorly, no offense intended.

It takes a while to really grok top-down data flow and how react components should be structured, but when you do it's magic.

As to useEffect, try not to use it. It's mainly for when you need to touch something completely outside the React tree.

<comment><USER4> That's interesting your point about useEffect. I mean I am using it because I'm using the functional way to build things vs. class. I'd prefer the class way honestly so I can just use the regular lifecycles eg. didMount/willMount/etc...

I did figure out how to fix the issues eg. prop depedency, but it is kind of annoying when anything inside the useEffect triggers the warnings.

Most recently I had a mobile app I had to make and it had a navbar/body/bottom navbar. I built the app split in three, so the navbar/bottom navbar took the routes to render what is shown, similar to the body... but this caused communication issues eg. you click on a thing in the bottom navbar, affects something in body and something renders/updates in the top navbar too.

yeah my architecting can use work I don't deny that. Generally though it's the whole "action causes re-render" that I'm not 100% with but again probably goes back to architecture.

</comment></comment></comment><comment><USER6> > anyone can learn jQuery. That's where some of the snobbery comes from, but > when you have a team that has all kinds of skill levels or you're making > something on a budget.

Anyone can learn React; I work in a group with a couple different teams, one of which is using Boostrap+jQuery and the other is using React+MaterialUI+Redux+... On both teams, most of the teams are new devs that came from desktop support or other non-dev IT roles. The ones doing React aren't lagging behind the jQuery team in ability to deliver, in fact they are leading.

</comment><comment><USER7> Based on a hidden assumption:

> You don't even need React: come on, I mean most of you are building simple > disposable sites that won't even be around in a year. Do you really need to > build that brochure site in React?

That's like saying most of us are traveling short distances, and thus bikes are objectively better than cars. Bikes are nice, but sometimes I have to move furniture, Karen.

</comment><comment><USER8> You might not need React for a simple app, but you will need data binding and doing it with jQuery is going to be hard.

If you want to avoid the complexity of React and making your own data bindings Svelte is the next big thing in the JS world. Maybe something will come along in 2025 and replace it though.

</comment><comment><USER9> Needs 2017 in the title...</comment>


Entire broadband industry sues Vermont to stop state net neutrality law - <AUTHOR> https://arstechnica.com/tech-policy/2018/10/entire-broadband-industry-sues-vermont-to-stop-state-net-neutrality-law/ <comment><USER2> Definitely hope Vermont has a chance. Anyone know what their odds are given the telecoms' point that these laws should be preempted by the federal laws?

<comment><USER3> Laws are written by money.

Vermont is poor.

Broadband is going to win.</comment></comment>


Men Who Believe They're 'Addicted' to Being Broke - <AUTHOR> https://melmagazine.com/en-us/story/underearners-anonymous <comment><USER2> >>"With the help of UA, he's found the courage to ask for time off and is going to Costa Rica for three days in March. " So the guy claiming to be a victim of the under earning disease is going to take time off to go to one of the most expensive vacation countries in Central America??!? And for only three days?!?

I think there are people that self sabotage but IMHO most are also suffering from another issue which is over spending and not living within their means. I see all sorts of people living "Ghetto Fabulous" lifestyles, wearing designer clothes, eating out five nights a week, buying lotto tickets, always having the best of everything but having to borrow money to pay the rent or keep the lights on.

I don't feel right about victim blaming but I'm so sick of everyone making excuses for squandering their lives and expecting the world to take care of them.

Waste not want not should be the mantra at these UA meetings.

<comment><USER3> Thomas J. Stanley, a wealth researcher, wrote some books on the subject:

 _Stop Acting Rich_

 _The Millionaire Next Door_

There is a class of people, typically 16-25 who live at home, with minimal expenses and much disposable income he called "Gold Collar Workers." They often buy luxury cars (usually used or salvage title) they cannot afford to repair and generally act fiscally like stockbrokers (high MPC).

OTOH, there's another thread to this story. People who feel guilty that their material and/or monetary accumulation deprives others. It maybe a sort of victimology where people need to feel like victims to be valued in the victim hierarchy or that they have delusions of grandeur to feel self-important, like homeless people who say the FBI has a file on them.

<comment><USER2> The mention of salvage title on a luxury car is erily accurate as I know of three people who went down this exact path, only one of them managed to make something of themselves after decades of foolishness. The other two are still living with their relatives, unemployed, single and in their mid 40s!!</comment></comment></comment>


In 2011, China built as many coal plants as there are in Texas and Ohio combined - <AUTHOR> http://www.treehugger.com/climate-change/simple-reason-why-we-need-put-price-carbon.html

<comment><USER2> They're comparing apples and rocks here. China has over 1.3 BILLION people. The entire population of the United States is just a shade over 300 million. How about a plan to retroactively tax countries for their past (estimated) use of all fossil fuels? Tax the REAL offenders who got us here, as well as the people trying to catch up now.</comment>


Ask HN: Taxes on a $10M asset sale of a Delaware C corp based in California? - <AUTHOR> Consider a $10M asset sale of a software startup that is a Delaware C Corp with an office and foreign qualification in California.
Here's my understanding of the taxes
21% Federal taxes: $2.1M 8.84% California taxes: $0.9M Delaware taxes: <$1K
Amount after taxes: $7M
Assume the founders have 70% of equity ~ $5M
Once distributed to founders
23.8% Federal tax : $1.2M 13.38% California tax: $0.7M
So, founders with 70% equity in a $10M sale, earn just $3M? Rest is mostly taxes? Am I getting this correct, because this sounds ridiculous? <comment><USER2> Asset Purchase agreements are by far the way most companies are acquired. Stock sales of private companies is not the normal, at least in the US.

As for the tax situation, more or less you are correct if you just do a basic distribution (assume 50-60% goes to taxes in that method), but you really need to talk to a tax accountant and your legal counsel as usually they try to avoid a basic distribution. There are a number of ways to reduce the tax burden (or have it classified differently), assuming the company isn't going to continue to transact business. If you wanted to leave the company open, rename etc there are some ways to reduce the tax burden further and pay it out over time (after buying out the investors).

I have sold a couple of businesses and the C corp by far was the worst tax situation. But our back of the hand calculation like yours wound up being quite high compared to what we wound up paying because of good tax and legal advice.

</comment><comment><USER3> Is there a reason you are doing an asset sale?

<comment><AUTHOR> The potential acquirer is not a US company and wouldn't agree to a stock sale</comment></comment>


An astrophysicist reviews the science of "Avatar". - <AUTHOR> http://www.aintitcool.com/node/43440 <comment> a-priori First off, I just saw Avatar yesterday and thought it was great. I highly recommend it. Even if you haven't seen it, I don't think this comment will spoil anything for you.

I have a few problems with this review, because the author assumes that the Na'vi must follow the same cultural development path as humans.

I argue that our path to our current culture didn't start with writing, but with agriculture. Agriculture, and later city-building, is all about destroying nature to build a new environment better suited to our needs. What if, because of the deeply interconnected nature of Pandora, the Na'vi evolved to include the surrounding nature in their in-group? That would imply that, for a Na'vi, morality would apply to a tree as much as another Na'vi. Clearing forests for crops would be tantamount to mass murder.

The Na'vi culture is definitely a "Noble savage" stereotype, but note that they have a warrior culture. This implies that they must regularly go to war with other tribes, even if they don't show it in the movie. I also object to citing Steven Pinker's _The Blank Slate_ here. His arguments only apply to human cultures.

<comment><USER2> "Agriculture, and later city-building, is all about destroying nature "

 _Destroying_ ? That's some bias there. How about "altering nature".

Humans are part of nature, and changing things around us is natural. Sometimes it is an act of destruction, but building homes and planting crops hardly fits that description.

<comment><USER3> > Destroying ? That's some bias there. How about "altering nature".

"Altering"? That's some political correctness there. Looking at what we do, destroying is a far more accurate description.

> Humans are part of nature, and changing things around us is natural.

Using that definition of natural, everything is natural and unnatural has no meaning at all. Makes communicating a point rather hard. Humans are natural and since they build cars, cars must be natural as well?

<comment><USER2> "Using that definition of natural, everything is natural and unnatural has no meaning at all."

No.

"Humans are natural and since they build cars, cars must be natural as well?"

As I said, it's natural for people to build things, so building cars is natural.

I simply don't adhere to the PC view that if people do it, it must be anti- nature, unnatural, or bad (though sometimes that happens to be the case).

<comment><USER3> I didn't say if people do it it _must_ be anti-nature, only that it usually is. We generally alter our environment to suite our needs, not to improve it. I can't think of many instances where our presence has benefited most of the plants and animals and left them better off then before we arrived; can you?

<comment><USER4> _We generally alter our environment to suite our needs, not to improve it._

I don't know about you but I think a house is an improvement over the trees that were here before. A forest can get pretty cold in winter.

<comment><USER3> It's a improvement for you, not for nature or the animals you displaced, which was exactly my point.

<comment><USER5> Who cares about them? That's not snark, I mean it seriously. Humans are intelligent creatures with desires. Trees are leafy lumps cellulose. They have no brain, they have no intellect - a tree cannot feel pain or pleasure, joy or sorrow. Sure, it can live or die, but that life has no moral content. The natural world is only valuable insofar as it's useful for creatures that actually are morally relevant - i.e., humans.

That's not saying we should pave the forests - forests are nice, I like having them around. But it's the human desire to have a forest that's meaningful, not the forest itself. If humans want houses more, then it's perfectly acceptable to knock down the trees, turn them into lumber, and build houses with them, and spit-roast the animals over a wood fire in the backyard for the housewarming party.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> LARGE SPOILERS AHEAD:

I liked Avatar, but to me the obvious science fail was the telepathic connection between the Na'vi and the animals. Evolution doesn't work like that! Rattlesnakes do not grow rattles for your benefit! I'm afraid that yon astrophysicist knows rather a bit more about physics than about evolutionary biology if the _inter-species universal complex adaptations_ didn't jump out at him.

As for the planetary tree-mind being able to _read out human brain networks using its own standardized equipment_ , who are they kidding?

Yes, the whole plot would have worked without it! The central tree could have been providing a vital nutrient without which the local ecosystem would fail, or something that their women needed to reproduce. There's no reason you need telepathy to ride a horse. The final stampede could have been started by one or more heroes, rather than being magic. And the final body-swap wasn't really necessary (just keep using the old equipment), but it could have been an effect of running the interface for a sufficiently long time (the alien brain gets reprogrammed).

And then it would have been _hard science fiction_ , which would have made a visually-awesome, okay-plot movie into one of the greatest SF movies of all time.

Also, I will accept pretty alien ladies for the sake of plot, but having them cry tears is going too far, and it's not necessary. That really jumped out at me.

Avatar was good, but it could have been so much more if they'd spent five minutes thinking about how to get the plot effect they wanted via science instead of magic.

<comment><USER7> > I liked Avatar, but to me the obvious science fail was the telepathic > connection between the Na'vi and the animals. Evolution doesn't work like > that! Rattlesnakes do not grow rattles for your benefit! I'm afraid that yon > astrophysicist knows rather a bit more about physics than about evolutionary > biology if the inter-species universal complex adaptations didn't jump out > at him.

You should check this out: <http://www.i-sis.org.uk/paris.php> The latest science suggests that evolution is less random than we thought, and that unrelated species often swap genetic information. Inter-species universal complex adaptations may be a bit more plausible than we think.

<comment><USER8> I am not an expert on evolution, but much of this article strikes me as incorrect. The fact that genes are capable of modifying other genes (turning them off/on, splicing in new genes, etc.) doesn't refute the concept of natural selection of random mutations unless you're ALSO positing a new mechanism by which this modification ability can be acquired. I skimmed through and didn't see one, even though he strangely implies that the fact that genes behave in a complex fashion means that organisms aren't coded by them. His (apparent) creationist sympathies and tacit endorsement of the gaia concept leads me to believe he thinks there is some sort of magic at work, which is not a very useful explanation.

I'm equally perplexed by his overall point of "genetics is complicated, therefore genetic engineering and capitalism is immoral."

</comment></comment></comment><comment><USER9> I like to think that their 'network' of knowledge helped them realize they don't need technology and the chaos that comes from it. Or perhaps they have already been where we are and have moved past it realizing there's a better way to live.

Edit - Hmm a downvote for an on topic opinion? Would it have been better had I said "Who cares about the details its a freaking movie and you nerds need to get over yourselves?" :)

<comment><USER10> _Or perhaps they have already been where we are and have moved past it realizing there's a better way to live._

My trek knowlege is pretty poor, but I want to say this is the history of the Vulcan. They're _extremely_ advanced technologically, but choose to live a simple life. Unlike the Na'vi, however, they don't shoot animals with neurotoxin-covered spears, growl at things that make them angry, or try to fight a war against people with guns using the aforementioned spears.

The Vulcan are one of the most technologically advanced civilizations in The Federation. If the Na'vi were an advanced race that _chose_ to live simply, dealing with the Humans wouldn't have been a problem for them.

<comment><USER3> > The Vulcan are one of the most technologically advanced civilizations in The > Federation.

The Vulcans _were_ one of the most technologically advanced civilizations in the Federation, but not any longer, you haven't been keeping up.

<comment><USER11> Correction, that's only in the parallel universe. :)

<comment><USER3> Only if you buy that hypothesis, but I saw it in this universe, so that's the one it applies to. :) Very creative way to reboot the series without being constrained by the original though.

</comment></comment></comment></comment></comment><comment><USER12> _So the gas giant in Avatar rotates about 50 times faster than Jupiter. Winds on Jupiter can exceed 100 meters per second, so the winds on Polyphemus would have to exceed 5000 m/s – this is supersonic and clearly implausible._

That's odd. I don't think there is substantial proof that winds on Jupiter are caused by planetary rotation. In fact, the atmosphere is part of the same inertial system as the rest of the planet. Here's an article suggesting that the winds are actually generated from within Jupiter's interior: [http://www.spacedaily.com/reports/Jupiters_Massive_Winds_Lik...](http://www.spacedaily.com/reports/Jupiters_Massive_Winds_Likely_Generated_From_Deep_Inside_Its_Interior.html)

Additionally, I see no inherent problem in supersonic winds. How does it preclude a foreign planet from being 'plausible'? If there is a problem, I'd like for somebody to help me identify it.

<comment><USER13> The author mentioned in an update that scene was actually supposed to be a time-lapse.

</comment></comment><comment><USER14> This is an excellent article and well worth reading. I would have a couple of nit picks with his nitpicks though, particularly: _Since the Na'vi have had the ability to download information and share it in a massive network for long periods of time (evolutionary timescales), they should be way ahead of us in terms of technological development._

If the movie ever mentions how long the Na'vi have been around as sentient creatures, I missed it entirely. Even if they would leave the "noble savage" stage much faster than humans did, they certainly would have passed through it and if that happens to be when this movie takes place it is hardly surprising.

Also, the type of information that they could pass around in this fashion is never clearly delineated. The Tree of Souls can clearly move everything there is from one mind to another, but it is never shown that this can be done routinely or without price, so it may be less valuable in terms of developing technology than it would seem at first glance.

<comment><USER13> _If the movie ever mentions how long the Na'vi have been around as sentient creatures, I missed it entirely._

It did mention that before Jake Sully, there were five Toruk Maktos since the beginning of known history, and the most recent one was Neytiri's grandfather's grandfather. Based on that, we might expect recorded history to only go about twenty (or twenty-four?) generations back.

<comment><USER14> Excellent point. It would tell us more if we knew how long the na'vi lived though.

</comment></comment></comment><comment><USER15> Another idea about Avatar... maybe this is very loopy, but is it possible that the Na'vi are a metaphor for the internet, and its more democratic culture? Maybe an unconscious one?

They live in this world which is literally founded on an information network. People from the default world enter this other world via technology, and by creating avatars which are remotely controlled. There is a power struggle between those who see the communities as something to exploit, and those who see them as something valuable for their own sake.

<comment><USER16> >is it possible that the Na'vi are a metaphor for the internet, and its more democratic culture?

The Na'vi culture didn't seem particularly democratic.

</comment></comment><comment><USER17> All other things being equal (natural resources and energy), technological progress is directly proportional to a population's size and density (for degree of progress) and its growth delta (for the rate of progress).

More specifically, it is the population's ability to transfer existing information and synthesize new information which lends itself to what we recognize technological progress (you have to have the desire to apply such knowledge too, of course).

I haven't seen the movie yet, but I'm guessing the Na'vi did not have very large or dense populations. As for their global Gaia network, does the movie explain if it actually transfer chunks of knowledge (memes) or experiential patterns, or is it 'lower level' and works more like sharing emotions?

<comment><USER14> _All other things being equal (natural resources and energy), technological progress is directly proportional to a population's size and density (for degree of progress) and its growth delta (for the rate of progress)._

Interesting point. I had never heard it before (I'd be interested if you have a reference that goes into more detail), but it certainly seem like there is a historical correalation and thinking about it you do seem to need at least a minimum population size (enough to allow people to specialize in careers instead of everyone being generalists with food production their prime concern) to develop advanced technology.

At least offhand, I am not certain how well that causitive factor holds after that threshold has been reached. And that _All other things being equal_ caveat is likely to be of significant importance here. I am speculating, but I would guess that after the minimum threshold is passed than the amount of value the culture places on education and technology itself will likely swamp out size or growth rates in terms of encouraging technological advance. In other words, after the minimum is reached, you would increase technological development faster by affecting the culture of the people than by increasing the population, and that affect is likely to be so great to mask differences in population size.

 _I haven't seen the movie yet, but I'm guessing the Na'vi did not have very large or dense populations._ The total planetary population is never stated but the population for the region the movie focuses on is said to be in the neighborhood of 200,000 very roughly.

 _As for their global Gaia network, does the movie explain if it actually transfer chunks of knowledge (memes) or experiential patterns, or is it 'lower level' and works more like sharing emotions?_

This is ambiguous. At one point it is shown that at least under certain conditions absolutely everything can be shared and transferred, but that was under exceptional circumstances. How it operates under normal conditions is left quite vague.

The movie is well worth seeing if you haven't.

<comment><USER18> For the population effects see Julian Simon's "The Great Breakthrough and Its Cause" for the historical analysis. His "Ultimate Resource" talks about the current and recent historical benefits of population.

</comment></comment></comment><comment><USER19> >But even then the odds against evolution producing such similar animals on different planets is astronomical.

Convergent evolution? Birds, bats, and flying squirrels; sharks, dolphins and penguins; snakes, worms and legless lizards; and so on.

<comment><USER20> Plus, you've got a lot of similar selective pressures -- O2 atmosphere, around Earth gravity, etc. The only thing that I found odd was that nearly every species except the Pandora primates had two sets of eyes, and everything except for the Na'vi had six legs. But it's passable as a plot device, because a mainstream audience probably wouldn't buy into the story if the Na'vi weren't "human enough"

<comment><USER21> It also seemed like most of the other animals had their nostrils on in the shoulder area. (I need to watch it again to confirm.) Why not the Na'vi? Probably because if they looked too alien (four eyes, four arms, no noses), the audience would have a hard time empathizing and seeing them as people.

<comment><USER22> Indeed. That is also why the "Fookin' Prawns" of _District 9_ had similar huge, yellowish, humanlike eyes: give them large compound insect eyes and they become a target of revulsion rather than empathy. Already pretty creepy looking if you ask me.

</comment></comment></comment></comment><comment><USER23> I'm surprised he didn't question how the link between the characters and the avatars worked. Everything else seemed plausible enough, but I struggled to find an explanation for this. Any thoughts?

<comment><USER21> Exposed (or nearly) nerves for communication. I imagine that they lead to a lobe in the brain that's able to both generate and process mind-to-mind communication. Maybe something like our temporal lobes and Broca's area which handle hearing and language processing.

If this type of appendage evolved early enough, then all of the descendants with a common ancestry could maintain a common communication link. This would have had to evolve very early to be shared between both plants and animals, but I suppose it's conceivable if you can imagine plants with a nervous system. Another possibility is that there is a strong mechanism for genetic transfer between different species and kingdoms (maybe very flexible retroviruses or unseen genetic engineering), but then you might expect to see more shared features between plants and animals.

The part that I didn't understand why why the Na'vi would always be the "masters" in the link with the other animals (it seemed more peer-to-peer in the link with the trees).

<comment><USER24> Maybe plants evolved very late on this world, maybe from simple animals that became ever more stationary. Not having to move is an advantage: you can invest more in static defenses (like bark) if you don't have to carry them around. Sea shells are a real life example of something similar.

As for the link not being peer-to-peer, it might be as simple as the bigger/more complex nervous system dominating the other one.

<comment><USER15> That's impossible, at least the way I understand biology. The definition of a plant is that they produce food. An animal produces no food of their own and only takes from others. So plants have to evolve first.

You could potentially have motile plants (maybe going directly from free- floating algae to something that swims). But generally, plants are stationary or move passively on Earth because they just don't have the energy. Animals hoover up many times their weight in plants over a year so they can do stuff like intentional motion.

<comment><USER24> > The definition of a plant is that they produce food.

This can't be true: Not all plants are autotrophic, and not all autotrophic organisms are plants.

<comment><USER15> Which plants aren't autotrophic?

As for the autotrophic non-plants -- I guess you are referring to algae and some bacteria?

<comment><USER25> Also fungi. I was curious myself and did some searching. Some non-autotrophic plants include the parasitic Cuscuta and Balanophora. There's also semi- parasites like Loranthus and Santalum (sandlewood). See Wikipedia under "Parasitic_plant". The most relevant term is "holoparasitism" and one page says: Holoparasitism has evolved at least six times independently.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> _Since the Na'vi have had the ability to download information and share it in a massive network for long periods of time (evolutionary timescales), they should be way ahead of us in terms of technological development._

The information they have access to appears to be someone's entire mind/memories/thoughts/whatever... This would be a HUGE amount of completely unsorted data. Sifting through all of this to find usable information would be very difficult.

The comparison to writing and the internet is false. In both cases, data is (to some degree) indexed. Want to build a robot? Search for "how to build a robot" and you have a good place to get started.

In fact, they only time they show anyone making direct use of the link (as opposed to a spiritual use) is when they ride animals, which is a link with a single animal.

</comment><comment><USER15> The Na'vi really are little more than noble savages. But they hold out a particular hope that's attractive for technological late-capitalist humans; they feel "connected". In the movie, that metaphor is taken all the way to be a literal connection -- to their communities, to their ancestors, to a spirituality, to their working animals, to the entire ecosystem.

I think that's the only way to understand their ponytail USB cables, and the root-mesh information network. It may be amusing to pretend that it's a hard- SF piece and work out the implications, but it's just not. It's a fantasy piece about the longing for connectedness.

There is (maybe) a secondary theme of viewing an ecosystem as a giant information exchange. But that wasn't explored well.

<comment><USER27> Just saw the movie, and it was great! I'm not sure the interconnectedness was intended as information transfer, though. They had to communicate with the other tribes by actually going there. It seemed like the network was more like the brain of a planetary organism (eywa). Each individual could access and add to the memories, but was not a communication network. An interesting approach --they truly are "one with the world" in a way other sci-fi (Babylon 5, for example) does inelegantly.

</comment></comment><comment><USER18> I have no intention of seeing the movie, although I may when it's on DVD if I get sufficiently bored. If you can find a copy see Benford's essay "Reactionary Utopias", originally written as a reaction to Ursula Leguin's anti-industrial screeds masquerading as science fiction.</comment>


TIC-80, a fantasy computer to learn programming - <AUTHOR> https://tic.computer/ <comment><USER2> Maybe this is a good time to plug PICO-8 which describes itself as a "fantasy console for making, sharing and playing tiny games and other computer programs."

[https://www.lexaloffle.com/pico-8.php](https://www.lexaloffle.com/pico-8.php)

I don't even know the difference between the two programs, but someone interested in TIC might also be interested in PICO.

<comment><USER3> They are conceptually very similar and both obviously inspired by the old CHIP-8.

TIC-80 is a bit more 'powerful' in that it's a bit higher resolution with double the sprite count.

The most substantial differences:

>PICO-8 has its own BASIC-like language

>TIC-80 is programmed in Lua or JS

>

>PICO-8 is commercial software, costs $15

>TIC-80 is open source

<comment><USER4> PICO-8 may be commercial software for creators, but players can play PICO-8 games published via the web app for free.

The author, "zep" (of lexaloffle games), is also a wonderful human being that goes out of their way to support people who buy it / play PICO-8 games and deserves every penny for it.

While I hope they some day consider open sourcing PICO-8 so it may live on, for now, it provides them with meaningful income and lets them actively develop it, which I wholeheartedly support.

<comment><USER5> The author is actually Zep. Lexaloffle is the company.

</comment></comment></comment></comment><comment><USER6> This really reminds me of a lot of Niklas Jansson's concepts over at [https://androidarts.com/](https://androidarts.com/)

I love the way he thinks and distills a design to give it so much character. He does lots of retro hardware re-designs too, which are singularly cool. I bet he'd have a blast playing with TIC-80.

</comment><comment><USER7> This makes me think of TIS-100, an amazing and challenging game to learn assembly basics.

[http://www.zachtronics.com/tis-100/](http://www.zachtronics.com/tis-100/)

<comment><USER8> Literally anything by zachronics deserves a recommendation.

</comment></comment><comment><USER9> The programming system looks really interesting, but that font is super annoying.

<comment><USER10> The font is awesome for the first minute or two, but yeah, hard to work with after that.

<comment><USER11> Indeed, for an 8x8 pixel font one can't really go wrong with something more similar to what was used in the early microcomputers:

[https://int10h.org/oldschool-pc- fonts/fontlist/](https://int10h.org/oldschool-pc-fonts/fontlist/)

Edit: it actually looks like a 5x7, in which case the best font would probably be something like the 5x7 a lot of character LCDs use: [https://www.pjrc.com/mp3/lcdfont2a.jpg](https://www.pjrc.com/mp3/lcdfont2a.jpg)

<comment><USER9> I don't remember them being that annoying in the 80s, or maybe we just read less text back then.

<comment><USER12> Having a bitmapped screen was already a huge improvement over character based graphics so I guess that everybody that could get it did so and took the lower resolution letters in stride.

I'm trying to remember how much we squeezed out of a Dragon32 'high resolution' mode, 256x192 pixels, I think it was 64 characters by 27 lines or so at 4x7 (that's really not the nicest font). Hard to read but the increased linecount made it worth it and eventually you got used to it.

Before that it felt like looking at your code through a keyhole.

My first 'decent' screen was an Atari ST at 640x400. That was such a huge step up. And after that ever improving Tseng cards in a 286 based PC, that's when 132 colums became workable.

Funniest thing though, for a long time I thought there never would be enough characters on a screen and now my eyes have gone so far backwards that I have to use a 32" screen with huge fonts to get anything done at all. I'll probably end at a 4x7 font again but with pixels the size of lego bricks.

</comment></comment></comment></comment></comment><comment><USER13> And if you're feeling brave, TIC-80 has a port that uses Brainfuck instead of Lua. [0]

[0] [https://github.com/lolbot-iichan/TIC-80/wiki](https://github.com/lolbot- iichan/TIC-80/wiki)

<comment><USER14> More like masochistic...

</comment></comment><comment><USER15> If you are interested in real retro-ish DIY hardware, check out Hackeboy

[https://program.sha2017.org/events/153.html](https://program.sha2017.org/events/153.html)

[http://hackefuffel.com/hackeboy0001.html](http://hackefuffel.com/hackeboy0001.html)

<comment><USER16> Please allow me to plug in my own project also, the bitbox console. It's a non portable, very simple to build (one chip, solderable by hand) arm32 console. It had a dozen games or so, all open-source. [http://bitboxconsole.blogspot.com](http://bitboxconsole.blogspot.com) Edit: typo and link.

</comment></comment><comment><USER17> I've played around with the TIC-80 and I gotta say that the development environment is something that is enjoyable for small projects but larger projects are a headache.

<comment><USER6> If you're doing a larger project on it then I think you need to re-calibrate your expectations. It's more for educational play.

<comment><USER18> I like the 'batteries included' aspect of it; I wish more 'for practical use' development systems had that. The fact that you can package the result for different platforms, makes it interesting for trying out game mechanics on the go and distributing them inside small games. The style it was made in works on low res, small screens, so programming on small devices (small (cheap) Android tablets, GPD Pocket(high res but small screen), Pandora, Pyra etc) is ok.

<comment><USER19> The last "practical" environment that was really batteries included, as far as I can tell, was Macromedia Flash. It lives on as Haxe, the FlashDevelop IDE feels like a blast from the past (it feels so lightweight!) and it supports quite a few platforms (web, mobile, etc). But it's awfully niche now.

<comment><USER20> It was not designed for games at all. Making games in in was too hacky.

</comment></comment></comment></comment></comment><comment><USER21> Here's a list of fantasy consoles. [https://github.com/paladin-t/fantasy/blob/master/README.md](https://github.com/paladin-t/fantasy/blob/master/README.md)

</comment><comment><USER22> For those who get into the "Hello World!" screen, or other screens, and can't figure out how you're supposed to escape (short of hitting refresh), hit the 'ESCAPE' key. :)

</comment><comment><USER23> There's also antirez' LOAD81:

[http://github.com/antirez/load81](http://github.com/antirez/load81)

And .. as its open source (unlike TIC-80 or PICO-8), its quite possible to add features and extend the console in interesting ways ..

<comment><USER20> TIC-80 is open source (however there is also "pro version" which isn't). "Regular", open source version supports editing only in built-in editor, no external text files.

Update: seems that "pro" version is built from the same MIT licensed source, only prebuilt binaries on releases page is "non-pro". So it's completely open source.

</comment></comment><comment><USER24> Anyone else having issues with playing in FireFox? Seems like a really cool project, looks like I might have to install it instead of using it in browser ... a bit disappointed :(

<comment><USER25> What version FF are you using? It could be that you are on a beta build and something is slowing it down, or you are running an older version.

<comment><USER24> 59.0.3 On Win10 (x64)

<comment><USER25> OK, I'm running the same version on x64 Win10 as well. No problems here. It could be you have some sort of ad-blocking extension installed that's degrading performance on that page.

</comment></comment></comment></comment><comment><USER26> Does it run on a Pocket C.H.I.P?

<comment><USER27> It would be pretty cool, but I just find something sad: [https://hackaday.com/2018/04/03/is-this-the-end-for-the- c-h-...](https://hackaday.com/2018/04/03/is-this-the-end-for-the-c-h-i-p/)

</comment></comment><comment><USER28> Another interesting fantasy console is LIKO-12, with a huge advantage of being free software:

[https://github.com/RamiLego4Game/LIKO-12](https://github.com/RamiLego4Game/LIKO-12)

<comment><USER29> TIC-80 has the exact same license (MIT):

[https://github.com/nesbox/TIC-80/blob/master/LICENSE](https://github.com/nesbox/TIC-80/blob/master/LICENSE)

<comment><USER28> Only the free version, there is another (Pro) version which has additional features and a closed source.

<comment><USER29> This isn't correct either

"For users who can't spend the money, we made it easy to build the pro version from the source code."

[https://github.com/nesbox/TIC-80#pro- version](https://github.com/nesbox/TIC-80#pro-version)

[https://github.com/nesbox/TIC-80/blob/master/Makefile](https://github.com/nesbox/TIC-80/blob/master/Makefile)</comment></comment></comment></comment>


New Steam beta replaces Trident/IE with WebKit - <AUTHOR> http://store.steampowered.com/news/3501/

<comment><AUTHOR> Here's some screenshots of the new client.

New games list: <http://dl.dropbox.com/u/506504/new_steam_ui_library.jpg>

New store site: <http://dl.dropbox.com/u/506504/new_steam_ui_store.jpg>

New in-game overlay and browser: <http://dl.dropbox.com/u/506504/new_steam_browser.jpg>

</comment><comment><USER2> I wonder if this a step towards multi-platform Steam...

<comment><USER3> It doesn't matter how Steam is cross-platform as soon as no one bothers to develop games for other platforms.

BTW about 10 years later none-console gaming will be such a niche we'll see less and less games, and only lemonade tycoon quality :)

<comment><USER4> I guess you've never heard of World of Warcraft.

Cue a post explaining in detail why that "doesn't count" in 3... 2... 1...

<comment><USER3> I guess you can't understand difference between hundred thousand games and a hundred games.

</comment></comment></comment></comment><comment><USER5> Specifically, they're using the Chromium Embedded Framework:

<http://code.google.com/p/chromiumembedded/>

[http://developer.valvesoftware.com/wiki/Chromium_Embedded_Fr...](http://developer.valvesoftware.com/wiki/Chromium_Embedded_Framework)

I'm looking forward to seeing them release the modified source. Always nice to see a game studio participate in the open source community.

<comment><USER6> One more bit of evidence that the GPL may not be the best thing for Open Source software. Think about it: if CEF used GPL, Valve might not have used it fearing that if they built Steam and decided they did not wish to release the source, they would have no choice but to not distribute Steam. With the BSD license, they could put in the work and decide once the project was complete whether or not to release the source code. But now we get a shiny new Steam and the source code. Epic win for everyone involved.

<comment><USER7> The GPL cannot force somebody to release their source code.

<comment><USER6> You are mistaken if you believe that you can distribute an application built using GPL code and not release the source code (and all derived code) as well. In the event that you were confused by my wording, check again. I have attempted to clarify.

<comment><USER7> That's not what your original post said, and even now that you've edited it, it's still wrong. There is no requirement that Valve release source code for an internal development build, and just because GPL'd code was at one point used in Steam wouldn't prevent them from distributing it without source in the future.

The GPL isn't some magical infective uber-license; it's just plain copyright.

<comment><USER6> Right, it can't force them to release an internal build. But that's not what this is, it's an external beta. At this point they could still back out from releasing the source code if they wished, but not if they had used the GPL. If they had used a GPL program, they would at this point have to sacrifice a great deal of work to avoid releasing the source. That is my point. The GPL can force you to plan for things that you have no way of knowing about (For example, are we going to have to modify this program to couple with our internal APIs at a level that we don't want documented? Is the source code going to be ugly to an extent that it would be embarrassing to us to release it? etc.).

</comment></comment></comment></comment></comment></comment><comment><USER8> About time! I always wondered how such a successful product could lag so behind in polish. That embedded IE control steam uses is an absolute pain in the ass.

<comment><USER9> Precisely because they had such a successful product. Initially that product wasn't Steam, but Half-Life 2. Once other studious picked up on it as a distribution model (because who doesn't want to take advantage of the entire HL2 install-base to market their game?), they were golden.

Also, despite its lack of overall polish, occasional crashiness, and the inconsistent and slow UI, for the most part Steam works exactly as advertised. It lets me install my games anywhere as many times as I like for free, I can play them offline if they're single player, and online I get a lovely Xbox- Live style server browser and social management right in the client.

The worst I can say about it is that I'd be a little happier with it if it were more polished, and I'd kill a man for a Mac port (including, obviously, the games I care about).

</comment></comment><comment><USER10> Why is the fact that they're switching to WebKit buried in the document so deeply? That's like the best thing they did.

<comment><USER5> Their customers care more about the surface symptoms than the technical details behind why it's an improvement. If you use the new UI, it's immediately obvious why it's a big deal: Because the UI is vastly improved. The fact that WebKit is involved isn't really important (though it is a cool detail).

</comment></comment><comment><USER11> Wow, that looks much better! Does anyone know how much better it performs compared to the IE-based client?

<comment><USER5> As far as subjective measurements go, it's night and day. Repainting is quicker, pages load faster, content (like images) streams in more quickly onto the screen, and the UI in general pauses less. It helps that they also overhauled the user interface so that it's easier to use, which makes it _feel_ faster even if it actually isn't.

I always speculated that a lot of the random pauses/hangs in the Steam UI were caused by IE, and now I'm fairly certain as most of them are gone in the new one.

<comment><USER11> I tried using it earlier and it is a lot quicker. The only downside I've noticed is that an individual game sometimes takes up to 5 seconds to load, but I suspect it's my connection rather than the client itself.

</comment></comment></comment><comment><USER12> Anyone tell me if this allows you to choose different install directories for different games?

</comment><comment><USER13> Huge win.

</comment><comment><USER14> Great! Maybe now they'll update counter-strike.

<comment><USER15> That will never be done, I played source for many years and for the year that they updated it and ruined many competitive features it wasn't that great and actually made me buy a new computer to even play the game with an HDR update. Now I can see them release a new Counterstrike in a few years that looks and plays tf2 but thats about it.

</comment></comment><comment><USER16> Semi-related yet off-topic, but in not divulging their sales figures, Valve is hurting the PC as a gaming platform in huge and undeniable ways. They are, in essence, destroying it by making it appear that no one buys games for Windows. All format charts are dominated by console titles and almost all games are initially developed for those and pooly ported to the PC in what seems to be an afterthought. Piracy is then blamed for those apparently falling sales figures and the PC is no longer an attractive platform for development.</comment>


The Yoneda Lemma (2017) - <AUTHOR> http://hkopp.github.io/2017/11/the-yoneda-lemma <comment><USER2> These kinds of articles would be infinitely more helpful if they spelled out _how_ the specific examples listed in the beginning can be derived as a consequence of the more general result. As it is, it's still mostly a bunch of general abstract nonsense, as one of my math professors liked to call it.

</comment><comment><USER3> The Yoneda Lemma basically says that if you take your favorite object, and just consider morphisms to (or from) that object, that tells you everything you need to know.

So for example, if I'm in the category of groups, and I look at Z/3, then what are morphisms from Z/3 to a given group G? Well those are just the 3-torsion elements of G (elements such that g^3 = identity). That is, the image of 1 (mod 3) must be such an element, and conversely such an element determines a morphism by sending 1 (mod 3) there.

Yoneda says this actually characterizes the group Z/3\. The language used is that Z/3 "represents" the functor taking a group to the set of its 3-torsion elements.

This can be useful when the object you're trying to characterize is more complicated than the functor it represents.

In algebraic number theory, the functor taking a field k to the set of pairs (E,p) where E is an elliptic curve and p is a point of order 593229 defined over k, _is representable_ by some equation, but the equation would be opaque and maybe not so useful.

</comment><comment><USER4> Here's another article, with more pictures and examples.

[https://www.math3ma.com/blog/the-yoneda- lemma](https://www.math3ma.com/blog/the-yoneda-lemma)</comment>


Air Force Shoots Down [Unresponsive] Drone Over Afghanistan - <AUTHOR> http://www.popsci.com/military-aviation-amp-space/article/2009-09/when-drones-go-wild-air-force-shoots-them-down?page= <comment><USER2> "If communications cannot be restored and the failsafe measures fail (as they appear to have here), current drones lack remote-kill or self-destruct mechanisms"

Yikes. Jamming seems to be a pretty big vulnerability for unmanned vehicles in general. I wonder how they account this.</comment>


Writing APIs to Wrap APIs - <AUTHOR> http://chadfowler.com/2007/9/5/writing-apis-to-wrap-apis <comment><USER2> The article is a very good a practical explanation of how to abstract third party, organically grown web services. Thanks for sharing.</comment>


Common Server Setups For Your Web App - <AUTHOR> https://www.digitalocean.com/community/articles/5-common-server-setups-for-your-web-application <comment><USER2> If you are just starting, you should have the simplest setup - everything on one server - and scale it only when it becomes necessary. Premature scalability adds complexity and slows down your iterations.

My setups usually consist of an nginx serving static content and proxying applications requests (doing gzip, etc). The data tier is initially collapsed into the application as described in [http://www.underengineering.com/2014/05/22/DIY- NoSql/](http://www.underengineering.com/2014/05/22/DIY-NoSql/) This architecture allows very fast iterations while providing enough performance headroom; it can serve 10k simple (CRUD) http requests per second on a single core.

<comment><USER3> I'm falling behind on security updates because I built an all-in-one box like this. While I mostly agree with you, now I wish I had separated out the db on day 1 into a private network so I could maintain a stateless app tier where I can update the public-facing OS image with no downtime or risk.

<comment><USER4> I think rolling release distros are your friend for these type of all-in-one setups. Small weekly updates. Easy to test too because you only need one test machine.

<comment><USER5> the one server vs many servers debate aside,

>I think rolling release distros are your friend for these type of all-in-one setups. Small weekly updates. Easy to test too because you only need one test machine.

I think the important thing here is a distro that tests it's changes well, and one that doesn't force you into a major upgrade (where you have to change your configs) very often.

Releases like Debian that want you to do a rolling major upgrade every two years, I think, are more difficult to deal with, because the major upgrades, if you have anything at all custom and the config file format changed, are going to require work and testing for you to move the configs over, even if the developers test perfectly (and nothing is perfect.)

I think RHEL/CentOS is best, assuming that the latest RHEL/CentOS supports all the packages in-distro. (If you need to step outside of the distro repos, that kind of defeats the point. maintaining a package yourself on an ancient distro gets old fast, and most of the smaller 3rd party repos don't put as much effort into keeping the old package versions patched up.)

That's the thing, sure, you have to format and re-install for a major upgrade, but you have ten years before you have to worry about that.

</comment></comment></comment></comment><comment><USER6> The one thing I really want from Digital Ocean is a guide that carefully explains how to set up the "private network" piece of the equation.

The "orange box" that represents the private network in each of the examples is taken for granted, but for someone coming from an application development perspective that piece isn't trivial to make. EC2 Security groups make that sort of box incredibly easy to make, but DO doesn't have anything like that.

<comment><AUTHOR> The article on setting up and effectively using the private network for what you're describing is actually now in our pipeline. It will probably be live this or early next week :)

You can find our most recently published tutorials in our community here: [https://www.digitalocean.com/community/?filter=tutorials](https://www.digitalocean.com/community/?filter=tutorials) or catch it in our twitter feed (@digitalocean)

<comment><USER7> Great! If that article would contain setting up custom hosts without using the HOSTS file (local DNS?), that'd be awesome. I don't like those ugly IP- addresses.

</comment></comment></comment><comment><USER8> That was super helpful. I think I finally understand how serving web applications works. Thanks to whoever wrote this.

<comment><USER9> > I think I finally understand how serving web applications works

It's nice to see you got a lot out of the article but this is hardly a complete course on how the web works from the server side. It is more of a quick guide on a number of common server set-ups for mid sized web sites. If you want to learn more about 'how web serving applications work' I suggest you follow one of the how to guides about setting up a web server of your own and serving up a couple of pages. You won't need any extra hardware for this, all the software is 'open source' and won't cost you a dime. Depending on what kind of operating system you normally use you could start with any of these:

Windows:

[http://httpd.apache.org/docs/2.2/platform/windows.html](http://httpd.apache.org/docs/2.2/platform/windows.html)

OS/X:

[https://discussions.apple.com/docs/DOC-3083](https://discussions.apple.com/docs/DOC-3083)

Linux/Ubuntu:

[https://help.ubuntu.com/10.04/serverguide/httpd.html](https://help.ubuntu.com/10.04/serverguide/httpd.html)

best of luck!

<comment><USER8> >It's nice to see you got a lot out of the article but this is hardly a complete course on how the web works from the server side. It is more of a quick guide on a number of common server set-ups for mid sized web sites. If you want to learn more about 'how web serving applications work' I suggest you follow one of the how to guides about setting up a web server of your own and serving up a couple of pages.

I actually meant just the hardware aspect of the setup, sorry for the confusion. That said, I'm still super interested in how the actual serving works. The resources you've provided seem to be exactly what I'm looking for. Thanks so much for providing those.

My experience is in HPC where 'serving content' actually means 'sending data to other nodes'. The upside of this is that in a compute cluster, all the nodes are, usually, in the same room and are actually located very close together. There's still a lot of networking involved in getting the nodes to communicate, but it's super interesting to me to see how to scale things on the web where nodes are not necessary even located in the same country! The example of having the DB and application servers on different machines is a good example.

Anyway, sorry for the digression, and thanks again for the links. It'll be bed-time reading for me :)

</comment></comment></comment><comment><USER10> I really enjoy the community-driven articles/tutorials that DigitalOcean provides. They have documentation for a lot of processes that are not readily documented or still emerging.

<comment><AUTHOR> Thanks so much! We really appreciate it and are always excited to cover new topics. If you have any suggestions of what you'd like to see in our community, I'd recommend posting them in the comments here: [https://www.digitalocean.com/community/articles/digitalocean...](https://www.digitalocean.com/community/articles/digitalocean- community-article-suggestions-and-ideas)

</comment></comment><comment><USER11> I am hosting all of my stuff on a single VPS instance in Docker/lcx containers. It is reasonably easy to migrate stuff out if I need a larger hardware, but it's also very cheap.

Regarding scaling: a couple of years ago I ran a database on a single CPU core (because of licensing issues). It stored 50M rows a day and also executed various queries quite quickly. So I seriously doubt that most of us is going to need large clusters.

<comment><USER12> 50M/day on a VPS / single core, I'm having hard time believing...

<comment><USER11> No, that wasn't VPS. It's kdb.

[http://pietrowski.info/2012/12/kdb-high-performance- column-o...](http://pietrowski.info/2012/12/kdb-high-performance-column- oriented-designed-for-massive-datasets-database/)

"1.126 million inserts per second (single insert)"

</comment></comment></comment><comment><USER13> my current setup on DO, I would like some inputs.

website hosted on 1 droplet. additional 1 droplet per every customer is deployed through Stripe and DO api.

DO let's you save a snapshot and load it to the droplet. I have a snapshot that is basically a copy of my 'software'. It's a LAMP stack with init script to load the webapp from git repo.

Customer logs in at username.mywebapp.com

The beauty of this is that I never have to worry about things breaking or becoming a bottle neck. if one customer outgrows themselves, they won't affect other resources. It has linear scalability, new customers, add a new droplet. I don't need to worry about writing crazy deployment scripts although I use paramiko to ssh in to each server when I need to get dirty.

The main website is mostly static content. I could host it even on Amazon S3 but currently using cloudflare.

Updating the product code requires me to restart the droplet instance. However, I test things out on another staging droplet. Once things work on there, I use the DO api to iterate through all the customer droplets and do a restart.

<comment><USER14> The obvious remark is why do a new webapp deployment per customer instead of a multi-tenant app ? Multi-tenancy requires more code in the web-app to isolate accounts, but it will mutualize and consolidate web servers.

<comment><USER13> I did it because a new webapp deployment costs nothing, no extra work involved at all with DO, just add a snapshot and ssh key to a new droplet. If something needs to be consolidated, I just use DO api and paramiko to ssh into each droplet and run new commands. If it's updating the webapp across all customers, it's a matter of issuing restart command to all the droplets via API.

<comment><USER15> Aren't you paying for hosting on each droplet though? Consolidating would save you that money, but I guess this wouldn't have a huge impact if the income per customer is a lot larger than the cost of an additional droplet.

</comment></comment></comment></comment><comment><USER16> This is awesome! Great content for DigitalOcean to be pushing out as I am probably the exact audience they are looking for when they published this. E.g. I've never gone beyond a shared hosting setup but have been curious to try my luck at learning more of the stack by using the DO platform.

<comment><USER17> Yeah, I've been googling for tutorials/configs/info on various deployment setups and digitalocean's come up more and more with solid guides. Thanks for sharing the secrets of the somewhat arcane!

</comment></comment><comment><USER18> The effort D.O. puts into their community education is one of my favorite things about them. The few times I've had problems with a droplet configuration, inevitably someone had already posted a solution in the help section.

</comment><comment><USER19> Wouldn't it be much better to tech the concept of horizontal scalability applied to the application stack? Your server is a stack of interfaces: a frontend cache, a static content server, a dynamic content server and a database. You can horizontally scale each stack layer. Much simpler, applicable to different scenarios.

However, this approach won't give you a viral article title like "eight server setups for your app" (replace eight by 2^n where n is the layer count).

</comment><comment><USER20> Excellent writeup! Next I'd like to see an article on deployment. What if I want my development team to be able to push code changes regularly to an app cluster via a git-based workflow and have these deploys all occur with zero downtime ? I think that an article which demonstrates how to use modern deployment tools such as ansible or docker to achieve those goals on a commonly used programming environment such as Ruby would serve to lure quite a few developers away from PaaS towards something like Digital Ocean.

For now though, those tasks are still "hard" which means that for many developers digital ocean is still hard to use relative to other emerging platforms such as Redhat's Openshift or Heroku. I know there are many shops who would love to jump ship from IaaS to a less expensive platform but they feel the cost of rolling their own zero-downtime clustered deployment infrastructure is not worth the $ savings.

I suspect that if IaaS providers were to dedicate resources towards producing more educational material for developers with the aim of demonstrating how to achieve these deployment objectives on all the popular platforms using modern open source tools then loads of PaaS developers would jump ship.

For example: How can I use ansible to instantiate 5 new droplets and automatically install a load balancing server on one of them while setting up the Ruby on Rails platform, and ganglia on the remaining ? How can I run a load balancing test suite against the newly created cluster, interpret the results, and then tear the whole thing back down again all with a few keystrokes ? How could this same script allow me to add additional nodes and how does the resulting system allow for the deployment of fresh application code ? How can it be improved to handle logging and backup ?

I know that it's possible to create a deployment system to answer the above questions in less than a few hundred lines of ansible + Ruby, so I imagine it could be explained in a short series of blog posts, but you would probably need to hire a well-paid dev-ops guru to produce such documentation. I bet if you ask around on HN...

p.s. keep an eye on these:

[http://deis.io/](http://deis.io/) [https://flynn.io/](https://flynn.io/)

^ If either of these become production quality software it could be a game changer for Digital Ocean.

</comment><comment><USER21> Thanks for the write up. It's the perfect time for me to be reminded about starting simple and changing the architecture as needed. I have prematurely optimized on one project in the past. It was painful. And after all that pain the mythical millions of unique visits never arrived.

</comment><comment><USER22> Virtually no mention of how the different server setups affect availability - this is very unfortunate. Availability (not to mention disaster recovery) are two things which I think are significantly more important than scaling, and your choice of server setup will affect both.

<comment><USER23> What do you mean with availability?

<comment><USER24> I think by availability he means uptime. Whether your site is always available, or there are times when your site is down, and how long are they.

<comment><USER22> Yup: Uptime. In the face of a box rebooting unexpectedly because it's a VPS. In the face of a data center experiencing connectivity issues. In the face of Hurricane Sandy's big brother.

</comment></comment></comment></comment><comment><USER25> As the "Startup Standards" begin to take shape, these guides prove to be extremely useful for the newcomers out there. Sure in 6-12 months it may become a bit dated (depending on the guide) but if kept up-to-date, they can be a powerful tool for a new company.

</comment><comment><USER26> It would be very helpful if DigitalOcean sells load balancer too as Linode, because the bandwith limits are for each Droplet which makes it very illogical to use DigitalOcean. Of course, we can use Cloudflare or similar, but still It is a need.

</comment><comment><USER27> does anyone know what a bare minimum monitoring setup for a single server having nginx, postgres and rails ? I'm far too intimidated by nagios to do anything significant.

<comment><USER28> If I'm reading correctly that you just want something simple and completely hands off I'd suggest New Relic - absolutely trivial to set up, free for basic server monitoring.

1: [http://newrelic.com/](http://newrelic.com/)

</comment></comment><comment><USER29> I propose an alteration to the typical LAMP stack: Replace Apache with Nginx and MySQL with MongoDB. Personally, the reduced resource use of Nginx is nice since I can run on a smaller "box". MongoDB is just a choice depending on the data set, but it does allow for sharding out horizontally without too much effort.

</comment><comment><USER30> But GAP only supports some languages... you can't compare

</comment><comment><USER31> nice guide, maybe a setup including redis/memcache would be useful too.</comment>