Amazon EC2 currently down. Affecting Heroku, Reddit, Others - <AUTHOR> http://status.aws.amazon.com/?t <comment><USER2> Convenient that we're too backward to use AWS. That means everyone can at least talk about it here when AWS is down.

<comment><USER3> Funny thing is, the last couple interviews I've had in Chicago and Silicon Valley, I actually get points when explaining caution is necessary when using AWS for production.

A magic bullet it isn't.

<comment><USER4> Whats the alternative? Building your own is certainly not.

<comment><USER5> Old school colo/dedicated servers/etc. There's something delightfully simple about only having to deal with "standard" hardware failures.

<comment><USER6> Not to mention unless you have very unusual traffic patterns (spin up lots of servers for short periods of time), colo/dedicated servers will usually be vastly cheaper than EC2, especially because with a little bit of thought you can get servers that are substantially better fit for your use.

E.g. I'm currently about to install a new 2U chassis in one of our racks. It holds 4 independent servers each with with dual 6 core 2.6GHz Intel CPUs, 32GB RAM and a SSD RAID subsystem that easily gives a 500MB/sec throughput.

Total leasing cost + cost of a half rack in that data centre + 100Mbps of bandwidth is ~ $2500/month. Oh, and that leaves us with 20U of space for other servers, so every additional one adds $1500/month for the next 7-8 or so of them (when counting some space for switches and PDU's). Amortized cost of putting 2U with 100Mbps in that data centra is more like $1700/month.

Amazon doesn't have anything remotely comparable in terms of performance. To be charitable to EC2, at the low end we'd be looking at 4 x High Mem Quadruple Extra Large instances + 4 x EBS volumes + bandwidth and end up in the $6k region (adding the extra memory to our servers would cost us an extra $100-$200/month in leasing cost, but we don't need it), but the EBS IO capacity is simply nowhere near what we see from a local high end RAID setup with high end SSD's, and disk IO is usually our limiting factor. More likely we'd be looking at $8k-$10k to get anything comparable through a higher number of smaller instances).

I get that developers like the apparent simplicity of deploying to AWS. But I don't get companies that stick with it for their base load once they grow enough that the cost overhead could easily fund a substantial ops team... Handling spikes or bulk jobs that are needed now and again, sure. As it is, our operations cost in man hours spent, for 20+ chassis across two colo's is ~$120k/year. $10k/month or $500/per chassis. So consider our fully loaded cost per box at ~$2200k/month for quad-server chassis of the level mentioned above with reasonably full racks. Lets say $2500 again to be charitable to EC2...

This is with operational support far beyond what Amazon provides, as it includes time from me and other members of staff that knows the specifics of our applications, handles backups, handles configuration and deployment etc.

I've so far not worked on anything where I could justify the cost of EC2 for production use for base load, and I don't think that'll change anytime soon...

<comment><USER7> If disk performance is important you can also take a look at the High IO instances, which give you 2x 1TB SSDs, 60GB of RAM and 35 ECUs across 16 virtual cores. At 24x7 for 3 years you end up with ~$656/mo per instance, plus whatever you would need for bandwidth. By the time you fill up an entire rack it still ends up being slightly more expensive than your amortized 2U cost, but you also don't need to scale it up in 2U increments.

</comment></comment></comment></comment></comment></comment><comment><USER8> The N. Virginia datacenter has been historically unreliable. I moved my personal projects to the West Coast (Oregon and N. California) and I have seen no significant issues in the past year.

N. Virginia is both cheaper and closer to the center of mass of the developed world. I'm surprised Amazon hasn't managed to make it more reliable.

<comment><USER9> Realistically, it's at least in part because everyone defaults to the East region. So it's the most crowded and demanding on the system.

<comment><USER10> Yeah, it's got to be much larger than the other regions, so it makes sense that we see more errors. Since error_rate = machines * error_rate_per_machine.

<comment><USER11> The whole region is down, you just calculated the chance of at least one machine having an error.

<comment><USER10> No, I calculated the error rate for the region. If us-east-1 has 5 times the machines (or availability zones, or routers, or EBS backplanes, or other thing-that-can-fail) as us-west-1, we would expect to see us-east-1 have each type of error occur about 5 times as often as us-west-1.

</comment></comment></comment></comment></comment><comment><USER12> As <https://twitter.com/DEVOPS_BORAT> says, _At conference you can able tell cloud devops by they are always leave dinner for respond to pager._

Also, _What is happen in cloud is stay in cloud because nobody can able reproduce outside of cloud._

(And many other relevant quotes.)

<comment><USER13> To be fair, AWS downtime always make the news because they affect a lot of majors websites, but that doesn't mean an average sysadmin (or devops, whatever) would do better in term of uptime with his own bay and his toys.

<comment><USER3> When our gear is down, we can actually get into the datacenter to fix it.

What do you do when Amazon is down other than sweat?

<comment><USER14> There's not much sweating to do, as it always comes up relatively quickly.

<comment><USER3> How long was Amazon AWS "degraded" today?

<comment><USER15> 2 minutes if you checked the "multi-AZ" box on your RDS instances or ELBs.

</comment></comment></comment></comment></comment></comment><comment><USER16> For added fun, their EC2 console is down. I got this for a while:

      Http/1.1 Service Unavailable

... then an empty console saying "loading" for the last 20 minutes. Then recently it upgraded to saying "Request limit exceeded." in place of the loading message (because hey, I'd refreshed the page four times over the course of 20 minutes).

On the upside, their status page shows all green lights.

<comment><USER17> They've acknowledged that at <http://status.aws.amazon.com/> for awhile now with a tiny "i" status icon (I can't load my instances pane):

12:07 PM PDT We are experiencing elevated error rates with the EC2 Management Console.

<comment><USER18> Amazon misrepresents reality on this status page!

They have standardized icons to represent various levels of issues (orange = perf issue, red = disruption). But they don't even use them. Instead they add [i] to the green icons to indicate perf issues (Amazon Elastic Compute Cloud - N. Virginia) and disruptions of service (Amazon Relational Database Service - N. Virginia).

Maybe this status page is controlled by marketing bozos who want to pretend the situation is not so bad.

</comment></comment></comment><comment><USER19> All of our EC2 hosts appear to be functioning fine, but they can't connect to their RDS instance which renders our app useless. If you scroll down the page you'll also see that RDS instances are having connectivity issues. Not sure if it's related but for RDS users the impact is far worse.

EDIT: We are also using multi-AZ RDS, so either Amazon's claims for multi-AZ are bs, or their claims that this is only impacting a single zone is bs.

<comment><USER20> Our multi-zoned RDS instance was able to fail over to another zone with minimal downtime. It took about 2 minutes.

<comment><USER19> Lucky you? :)

</comment></comment></comment><comment><USER21> Per the linked dashboard, some instances in a single AZ in a single Region are having storage issues. Calling EC2 "down" is a bit dramatic, provided AMZN are being sincere with their status reports. Any system that can competently fail over to another AZ will be unaffected.

<comment><USER22> I would agree with you, but Amazon is just downright dishonest in their reports, which makes me sad, because I love Amazon. Go look at the past reports, they've never shown a red market, only "degraded performance" even when services for multiple availability zones went down at the same time due to their power outage (so had you architected to multiple AZs you were still fucked). When they have a single AZ go down, they won't even give it a yellow marker on the status page, they'll just put a footnote on a green marker. It makes their status dashboard pretty much useless for at a glance checking (why even have colors if they don't mean anything?)

Read their report from the major outage earlier this year, they start out by saying "elevated error rates", when many services were in fact down, and it wasn't until hours later they finally admitted to having an issue that affected more than just one availability zone.

From Forbes: "We are investigating elevated errors rates for APIs in the US- EAST-1 (Northern Virginia) region, as well as connectivity issues to instances in a single availability zone." By 11:49 EST, it reported that, "Power has been restored to the impacted Availability Zone and we are working to bring impacted instances and volumes back online." But by 12:20 EST the outage continued, "We are continuing to work to bring the instances and volumes back online. In addition, EC2 and EBS APIs are currently experiencing elevated error rates." At 12:54 AM EST, AWS reported that "EC2 and EBS APIs are once again operating normally. We are continuing to recover impacted instances and volumes."

<comment><USER23> It's like grade inflation. You can never give out an F (Mr. Admissions officer, are you so bad at your job that you would admit such an unqualified student?), so a Gentleman's C is handed around. In Amazon's case, it's a gentleman's B+ (green, with an info icon).

A: fine A-: problems B+: servers are on fire

I really like Amazon as a company, use a lot of their services, but this is dishonest.

</comment></comment></comment><comment><USER24> Heh, the cynical side of me would like to point out that this is a great way to get people to stop talking about wiping a user's kindle. :-)

<comment><USER25> This kind of thinking is poisonous. I know it's in good fun and it's fun to look for connections in things, but it is actually preposterous to think that Amazon would purposely disrupt wide swaths of highly paying customers for much of a day to bury one story about bad customer relations. My guess is there are a lot of people working very hard to try and solve this problem right now, let's not belittle their efforts because of a conspiracy, let's belittle their efforts because of bad systems design.

<comment><USER26> It was a joke. I made the same joke earlier today. No-one is seriously going to believe this.

<comment><USER27> He knows you were joking. It's a bad joke. "It's a joke" is not a magic bullet that means you can do no wrong.

Poisonous ideas spread as jokes. That is one of the ways they spread. A person thinking well about the issue wouldn't find the joke funny because it doesn't make sense. The joke relies on some poisonous, bad thinking to be understood. It has bad assumptions, and a bad way of looking at the world, built in.

<comment><USER26> Let me explain to you why it is a funny joke. It is funny because it involves Amazon undertaking massive technical measures, with huge reputational damage in order to try to kill a story which is primarily not spreading via Amazon- hosted sites anyway.

It's akin to a man with athlete's foot deciding to remedy it by discharging a shotgun into his leg.

<comment><USER27> It's easy to understand shooting a leg with a shotgun. That's a simple thing.

The Amazon thing in question is far more complicated, and far harder to understand.

Thinking they are "akin" is a mistake. It shows you're thinking about it wrong and failing to recognize how completely different they are.

One isn't going to confuse anyone or be misunderstood, the other will confuse most of the population and be misunderstood by most people.

One, if someone misunderstood, only involves one individual being an idiot. The other involves a large company being evil and thus can help feed conspiracy theories.

I'm not sure if you are aware of the difficulty of Amazon doing this. Suppose Jeff Bezos wants to do it. He can't simply order people to do it because they will refuse and leak it to the media and he'll look really bad and then he'll definitely have to make sure to try super hard for there to be no outages anytime soon.

Shooting yourself in the foot is stupid but easy. Doing this is stupid and essentially impossible. To think it's possible requires thinking that Amazon has a culture of unthinking obedience, or has an evil culture that all new hires are told about and don't leak to the media. Totally different.

Casually talking about impossible, evil conspiracies by big business, as if they are even _possible_ , is a serious slander against those businesses, capitalism, and logic. Slandering a bunch of really good things -- especially ones that approximately 50% of US voters want to harm -- and then saying "it's just a joke, it's funny" is bad.

<comment><USER28> Casually joking about impossible, evil conspiracies by big business on the other hand is something completely different and also funny.

No one will believe its related and its certainly not slander to joke about it. Also you might want to leave the political opinions out of hacker news... there is no 50% of US who dislikes those things, they only have different ideas about how to support it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> Unfortunate.

I have to deal with a number of folks who will be overjoyed to read this news when their tech cartel vendor of choice forwards it this evening.

There's a huge contingent of currently endangered infrastructure folks (and vendors who feed off them) out there who throw a party every time AWS has a visible outage.

<comment><USER30> AWS sucking at availability (and especially specific parts like EBS, and then services built on top of EBS and on top of AWS) doesn't mean the correct option is to mine your own sand and dig up your own coal to run servers in your own datacenters in the basement.

Even if you're totally sold on the cloud, you can still have a requirement that things be transparent all the way down. AWS is one of the least transparent hosting options around.

If you're a customer of a regular colo, or even a managed hosting provider themselves based at a colo, it's pretty easy to dig into how the infrastructure is set up, identify areas where you need your own redundancy, etc. Essentially impossible within AWS -- there is no reason intelligible to me that ELB in multiple AZs should depend on EBS in a single AZ, but that's how they have it set up.

</comment></comment><comment><USER31> This would be a great time to post a guide to architecting systems for failover using AWS. Anyone got a great guide?

<comment><USER32> We (Netflix) have done a bunch of presentations on it which are on our slideshare page and across the internet.

After this issue is over I can give a longer answer. In short, we've just evacuated the affected zone and are mostly recovered.

<comment><USER33> I'm guessing your Chaos Gorilla helped to harden your architecture against this threat.

Since you've mostly recovered, how did your system do? Are there side-cases that Chaos Gorilla didn't touch?

<comment><USER34> EDIT: I WAS WRONG. Chaos Monkey and Chaos Gorilla both exist and simulate different forms of chaos.

<comment><USER35> "Create More Failures

Currently, Netflix uses a service called "Chaos Monkey" to simulate service failure. Basically, Chaos Monkey is a service that kills other services. We run this service because we want engineering teams to be used to a constant level of failure in the cloud. Services should automatically recover without any manual intervention. We don't however, simulate what happens when an entire AZ goes down and therefore we haven't engineered our systems to automatically deal with those sorts of failures. Internally we are having discussions about doing that and people are already starting to call this service "Chaos Gorilla"."

<http://techblog.netflix.com/2011_04_01_archive.html>

<comment><USER34> My apologies! I was wrong.

</comment></comment></comment></comment></comment></comment><comment><USER36> Our app is down because it's hosted on Heroku and it's frustrating because it seems like N Virginia is the least reliable Amazon datacenter. Every year it seems to go down a couple times for at least a couple hours.

Heroku should offer a choice between N Virginia and Oregon hosting (I think they're almost comparable in price nowadays). That way people who want more uptime/reliability can choose Oregon. Sure it will be further from Europe (but then it will be closer to Asia) and people can make that choice on their own.

But basing an entire hosting service on N Virginia doesn't make sense anymore, considering the history of major downtime in that region.

<comment><USER37> Or better yet, Heroku should offer an add-on "instant failover" service that, for a premium of course, offers a package for multi-site (or, knowing they're 100% AWS, multi-datacenter) deployment with all of the best practices, etc. Seems like a logical next step for them (or a competitor) given the recent spate of outages.

</comment></comment><comment><USER38> Can't update my list fast enough, but other major services experiencing problems are Netflix and Pinterest. Lots of other (smaller) sites are starting to fail too.

[http://www.forbes.com/sites/kellyclay/2012/10/22/amazon- aws-...](http://www.forbes.com/sites/kellyclay/2012/10/22/amazon-aws-goes- down-again-takes-reddit-with-it/)

</comment><comment><USER30> Why the fuck do the two most critical services (ELB and Console) have depends on their historically most unreliable pile of shit (EBS)?

<comment><USER39> Seriously THIS has to be addressed.

I can tolerate EC2/EBS going down but why on earth is ELB/Console always going down at the same time ?

</comment></comment><comment><AUTHOR> One of the most frustrating issues here is that we have to deal with Amazon's status page for information. It's a complex page, divided by continent instead of region, which means at least 5 or 6 clicks to figure out progress. They should learn from these issues about how people want to be informed - to date, they haven't. Also, they have a twitter account, which would be the perfect fit to keep everyone up-to-date with what's going on; to at least show a human side to these issues. Alas, they're not updating that either.

I've been working with AWS since early 2006 when they first launched - I was lucky to be granted a VIP invite to try out EC2 before everyone else, and ended up launching the first public app on EC2. This might be the first time when frustration has overcome my love for these guys.

</comment><comment><USER40> It's degraded performance for some EBS volumes in a single availability zone - isn't this title a bit sensationalistic?

<comment><USER41> No. Amazon just understates the issues. Reddit, Heroku etc. all have problems.

<comment><USER40> Even if they do understate the issue, It's limited to US-EAST 1, and is an EBS issue. Saying that EC2 is "down" because of this is totally off the mark - I've got dozens of EBS volmes in EAST 1 that are unaffected, plus all of the other zones that are operating normally...

<comment><USER41> EC2 instances are affected by the EBS issues. But you're right, it's not correct that EC2 is "down".

<comment><USER42> Not all instances are EBS backed.

</comment></comment></comment></comment></comment><comment><USER43> Does anyone know if this really is just one AZ? Seems like an awful lot of larger sites are down. I'd expect at least some of them to be multi-AZ by now.

<comment><USER44> I'm multi-az and am being impacted. I also use multi-az RDS adn its being impacted. So calling BS on the 1 az impact.

<comment><USER45> One of our Multi-AZ RDS instances failed over successfully. It was down for about 5-10 minutes.

</comment></comment></comment><comment><USER46> This is affecting more than a single Availability Zone, but probably for reasons that have been seen before. One reason might be that an EBS failure in one AZ triggers a spike in EBS activity in other AZs which overwhelms EBS. (I believe this is what happened in April 2011).

Does anybody have any experience with migrating to Oregon or N. California in terms of speed and latency?

</comment><comment><USER47> My dashboard says "Degraded EBS performance in a single Availability Zone". It then lists each of the five zones as "Availability zone is operating normally." <http://cl.ly/image/202F3B0I371g>

<comment><USER48> I was seeing that too, but it looks like Amazon has now updated the availability zone status. When I run ec2-describe-availability-zones from the command line, it's telling me that us-east-1b is impaired. (Availability zone mapping is different for each account, so my 1b may be some other availability zone for you.)

</comment></comment><comment><USER49> I'm sorry, am I in a time machine? Didn't this exact thing happen last year, and didn't these exact people explain exactly how they were going to make sure it never happens again?

What the hell is happening here?

</comment><comment><USER50> Ironically, on the first hacking health event, our server was running heroku.. and heroku went down. 3 months later, we have the second hacking health in Toronto and all AWS is going down.

</comment><comment><USER51> ELB is also fucked. Seen that nobody mentions it. Some of our load balancers are completely unreachable.

Just one multi-AZ RDS instance claimed the automatic failover. However, the 200+ alerts over the automatic failover due to internal DNS changes to point to the new master shows that things aren't as easily described by the RDS DB Events log.

Some instances reported high disk I/O (EBS backed) via the New Relic agent (the console still has some issues).

So far, this is what I see from my side.

</comment><comment><USER52> I reacted quickly enough to get a new instance spun up and added it to my site's load balancer, but the load balancer is failing to recognize the new instance and send traffic to it... yay. Console is totally unresponsive on the load balancer's "instances" tab. If I point my browser at the ec2 public DNS of the new instance it seems to be running just fine. So much for the load balancer being helpful.

</comment><comment><USER53> Now is a good time to stroke your dev pair :)

<http://news.ycombinator.com/item?id=4680178>

</comment><comment><USER54> Maybe I'm being daft. Why does this sh*t never seem to affect www.amazon.com

<comment><USER55> Amazon doesn't run their site off the same set of EC2 servers and systems that everyone else does. They just used their experience to build it.

<comment><USER56> Amazon runs all of the Amazon.com web servers on EC2 hosts (and has since 2010: [https://www.youtube.com/watch?feature=player_detailpage&...](https://www.youtube.com/watch?feature=player_detailpage&v=dxk8b9rSKOo#t=393s)). They've just made sure that they have enough hosts in each of the other AZs to withstand an outage.

</comment></comment></comment><comment><USER17> Update from <http://status.aws.amazon.com/>:

2:20 PM PDT We've now restored performance for about half of the volumes that experienced issues. Instances that were attached to these recovered volumes are recovering. We're continuing to work on restoring availability and performance for the volumes that are still degraded.

We also want to add some detail around what customers using ELB may have experienced. Customers with ELBs running in only the affected Availability Zone may be experiencing elevated error rates and customers may not be able to create new ELBs in the affected Availability Zone. For customers with multi-AZ ELBs, traffic was shifted away from the affected Availability Zone early in this event and they should not be seeing impact at this time.

<comment><USER57> This is infuriating. Our instances aren't ELB-backed, so we have an entire AZ sitting idle while the rest of our instances are overwhelmed with traffic. Why did they make this decision for us?

I'm normally an Amazon apologist when outages happen, but this is absolutely ridiculous.

</comment></comment><comment><USER58> This reminds me of an ad campaign we sometimes run on reddit:

[http://www.reddit.com/comments/hg9oa/your_platform_is_on_aws...](http://www.reddit.com/comments/hg9oa/your_platform_is_on_aws_and_your_offsite_backups/)

... which you'll be able to click as soon as reddit is back up :)

</comment><comment><USER59> Countly mobile analytics platform servers are also affected from this issue (<http://count.ly>). Waiting and waiting. :)

@caseysoftware thanks for the links, we now have something to read and implement this week.

</comment><comment><USER60> You have a virtualized platform, on top of which are many pieces like load- balancing, EBS, RDS, the control-plane itself, etc.

You have burstable network connections which by their nature, will have hard limits (you can't burst above 10Gbps on a 10Gbps pipe, for example; even assuming the host machine is connected to a 10Gbps port).

Burstable (meaning quite frankly, over-provisioned) disk and CPU resources.

And if any piece fails, you may well have downtime...

It is always surprising to me, that people feel that layering complexity upon complexity, will result in greater reliability.

</comment><comment><USER61> Hosted on heroku with a hosted heroku postgres dev instance, I observed a drop in the db response time :

\- from a consistent average of 10ms over the last week

\- to a new consistent average of ~2.5ms

beetwen 17:31 and 17:35 UTC. AWS started to report the current issue at 17:38 UTC. My app then experienced some intermittent issues (reported by newrelic pinging it every 30s). Don't know if it's related, could it be some sort of hw upgrade that went wrong ?

I did a push affecting my most used queries but that was one and a half hour sooner, at 15:56 UTC, so probably unrelated.

</comment><comment><USER62> I thought at least Reddit had learned the "don't use EBS" rule from past outages - I was bitten by the April/2011 outage and switched everything over to instance storage shortly thereafter.

For most applications I think architecting EBS out should be straightforward - instance storage doesn't put a huge single-point-of-failure in the middle of your app if you're doing replication, failover, and backups properly.

And EBS seems to be the biggest component of the recent AWS failures upon which they've built a lot of their other systems.

</comment><comment><USER63> The Console itself is down, Http/1.1 Service Unavailable

Its high time AWS does something now.

</comment><comment><USER64> Noticed that Rackspace was down for a bit - I presumed they're getting hammered on their WWW as people are considering an infrastructure switch?

</comment><comment><USER65> I jokingly said the internet was broken this morning as I've been having weird connectivity issues all morning. Funny that I was sort of right.

</comment><comment><USER66> Dropbox runs on S3, they are unaffected? And Heroku's website seems okay. Only reddit is down. That's because of this?

</comment><comment><USER67> I am frankly surprised so many still use EC2 considering how frequently it breaks. It's not cheap, so the only reasons to use it would be reliability or scale right? Why not just get lots of boxes at Hetzner and OVH (40 EUR a month for 32GB of RAM and 4x2x3.4GHz cores) and scale up / redundansize that way?

</comment><comment><USER68> I suppose this explains why Airbnb is down now, as well: <http://aws.amazon.com/solutions/case-studies/airbnb/>

I was just in the middle of booking a stay in a Palo Alto startup embassy for this week, too!

<comment><USER69> They've been down for several hours actually. I tried to get to their site this morning to check out the jedburg talk, and got the "We're on the case" message.

</comment></comment><comment><USER70> Building infrastructure on top of Amazon with global replication across multiple availability zones can sidestep such failures and guarantee uninterrupted operations to customers - www.pubnub.com is unaffected by AWS being down.

</comment><comment><USER71> Not wanting to shill for Google, but we've been very happy with Appengine's reliability - particularly since moving to the HR datastore. Have other Appengine users had any significant downtime apart from MS datastore issues?

<comment><USER72> What site are you running on App Engine?

</comment></comment><comment><USER73> I made this to express my outrage and hope to help others easily express theirs too! <http://robbiet480.github.com/StopLyingToUsAmazon/>

</comment><comment><USER74> isn't it about time they supported a multi-regional failover system?

</comment><comment><USER75> Coursera is also down.

</comment><comment><USER76> FWIW here's Google App Engine status page: <http://code.google.com/status/appengine>

</comment><comment><USER77> Two of our four EC2 servers are down. Both have RDS connections and EBS storage. Looks like the RDS connection has something to do with it...

<comment><USER78> RDS is built on EBS, so if EBS has problems you can bet that RDS will feel the effects.

</comment></comment><comment><USER79> Here comes another round of Hacker News posts about how you should never host your app in just one availability zone...

</comment><comment><USER80> How does Twilio manage to stay up when AWS goes down, and how much of that can the average developer reasonably do?

<comment><USER81> See Keith's (of Twilio) response here: <http://news.ycombinator.com/item?id=4684766>

<comment><USER80> Nice, thanks!

</comment></comment></comment><comment><USER82> My site is currently down because of this.

</comment><comment><USER83> This is why you should think about a multi region architecture to prevent these types of service interruptions.

</comment><comment><USER84> i read in my book that amazon is the best cloud service provider and seeing this thing can't really prove it. I am still confused which cloud service i use ? Amazon is only one which Indians are currently rely on ,since latency is bit smaller for amazon servers as compared to other providers.

</comment><comment><USER85> Adding insult to injury: when trying to view instances in the console I now only see "Rate limit exceeded".

</comment><comment><USER86> Disappointing, but I guess not totally unexpected. Our prod site was down for a bit with many others.

</comment><comment><USER87> These semi-regular outages are why I am going to use the Google Cloud Platform for my next project.

</comment><comment><USER88> a ton of other stuff is down too... www.reddit.com, netflix, www.freewebsite.com and a bunch more

</comment><comment><USER89> As of now , I don't have a problem with my site. Elastic beanstalk with ec2 small instances.

</comment><comment><USER90> Isn't it worrying that there are so many services/sites that are so dependent on Amazon EC?

</comment><comment><USER91> Thanks I have a friend whose site is down from this and this helps shed some light on it.

</comment><comment><USER44> EIP remapping is all messed up as well. api errors. console for it does not work either.

</comment><comment><USER92> I just recently signed up for a EC2 (3 weeks ago) and my small site is also down. :-(

</comment><comment><USER93> Perfectly timed with our product launch, now our site is down too - www.zenwheels.com

</comment><comment><USER94> My instances just came back up.

</comment><comment><USER95> The tech industry is manufacturing its version of "Too big to fail" entity.

</comment><comment><USER96> The emperor has no clothes!

</comment><comment><USER97> I wonder if this is going to be an attack or hardware/software failure..

</comment><comment><USER98> Does this just affect normal EBS or EBS with provisioned IOPS as well?

</comment><comment><USER99> At least HN isn't down! :D

</comment><comment><USER100> When is Google Compute Engine supposed to be open to everyone?

<comment><USER101> There's Azure.

</comment></comment><comment><USER102> Somewhere Steve Wozniak is saying "I told you so"

</comment><comment><USER103> Some of our sites are affected. Good times!

</comment><comment><USER104> Time to switch to Google's Compute Engine.

</comment><comment><USER105> I fixed EC2 using this one weird trick..

</comment><comment><USER93> Woot, Back Online www.zenwheels.com

</comment><comment><USER106> Sigh, my heroku site is down.

</comment><comment><USER107> Single point of failure?

</comment><comment><USER108> It's back up now.

</comment><comment><USER109> just checked my site and it is up now!

</comment><comment><USER110>

</comment><comment><USER111> back up :)

<comment><USER112> As far as I can see Reddit is still down.

</comment></comment><comment><USER113> This is the kind of stuff I think about when I hear people talk about the cloud and promise that downtime is a thing of the past.

Cloud hosting is not drastically different from any other type of service and is still vulnerable to the same problems.

<comment><USER114> If you go through the pains of architecting your system to span multiple AZs, or you avoid using EBS, then you probably dodge most of the EC2 outages. (Remains to be seen if that is the case here.)

That said, I don't think most people think using the cloud means that downtime is a thing of the past. I think the more attractive proposition is when hardware breaks, or meteors hit the datacenter, etc, it is _their_ problem, not yours. You still have to deal with software-level operations, but hardware-level operations is effectively outsourced. The question is if you think you can do a better job than Amazon -- some companies think they can, most startups know they can't.

<comment><USER115> Yeah. Even with this, they still do better than I would. My record: misconfigured air-conditioning unit alarm leading to servers being baked at high temperature over a weekend, leading to much wailing and gnashing of teeth. I now know to be really careful to set up air conditioning units properly, but what other lessons am I still waiting to learn? The main lesson that I took from this is that I should stick to what I am good at: cutting code & chewing data. :-)

<comment><USER114> Yeah this is another important point. Part of the cost of AWS is also a bit of an insurance policy against you physically breaking your servers :)

</comment></comment></comment></comment><comment><USER116> Workplace productivity is going to skyrocket today

</comment><comment><USER99> WAT!?

</comment><comment><USER117> Worst infrastructure ever.

</comment><comment><USER72> This is why I trust Google's data centers <http://www.google.com/about/datacenters/gallery/#/>

<comment><USER39> HN really needs to hold a "dumbest comments of the year" award.

This has to be a strong contender.

<comment><USER118> HN really needs to hold a "snarkiest response of the year" award.

<comment><USER119> Snap!

</comment></comment></comment></comment><comment><USER120> pg, or someone else from HN... Could you please edit this title for accuracy? Maybe, "Poorly designed sites taken out because of problems in one Amazon availability zone."

<comment><USER121> That's editorializing.

For many sites, a single server in a single zone (e.g., a non redundant server, an instance, a slice, a VM, whatever) _is the right decision_ for ROI.

For many sites, the money spent on redundancy could be better spent on, say, Google Adwords, until they're big enough that a couple hours downtime has _irreplaceable_ costs higher than the added costs of redundancy (dev, hosting, admin) for a year.

<comment><USER120> Yes, it is editorializing. My point is, but I guess too subtle, that the current link text is very much an editorial comment, especially since the content at that link location has nothing to do with the sites mentioned in the link text.</comment></comment></comment>


How Drones Changed the Way This Photo Pro Works - <AUTHOR> https://www.wsj.com/articles/how-drones-changed-the-way-this-photo-pro-works-11576503000 <comment><AUTHOR> [http://archive.is/gpdQs](http://archive.is/gpdQs)</comment>


Codility launches free coding skills certification - new challenge every month - <AUTHOR> http://codility.com/cert/start/

<comment><USER2> Cool stuff, got Golden in second attempt.</comment>


Show HN: TalentHunch – An Aus and NZ job matching webapp - <AUTHOR> https://talenthunch.com/?hn=2 <comment><AUTHOR> As this may be flagged as a duplicate... I've taken some of the feedback onboard since my last Show HN and improved the landing page to explain the product better. I've also added some privacy related FAQs.

</comment><comment><USER2> Maybe add a feature to import your linkedin profile & skills or maybe allow users to submit their pdf or word cv to pre-populate their profile.

<comment><AUTHOR> @fspear, thanks for the feedback :)

Yep, I've looked at importing from LinkedIn and it's something I'm still considering. The only problem with LinkedIn is that it only pulls in your current roles, not all your roles (unless you pay).

Agree re. importing CV too. It's on my long list.</comment></comment>


Show HN: Robotopia – Introducing kids to coding with tiny virtual robots - <AUTHOR> https://github.com/robotopia-x/robotopia/ <comment><USER2> This thing made me think of the japanese-language-only, Sega Dreamcast-only 1999 "Marionette Handler" mech programming game.

[https://www.youtube.com/watch?v=CQqcvhR568E](https://www.youtube.com/watch?v=CQqcvhR568E)

It was something else, at least back then. (I do remember thinking it would be really hard to play without having someone understanding at least basic japanese around.)

The programming screen is shown briefly here:

[https://www.youtube.com/watch?v=CQqcvhR568E&t=188](https://www.youtube.com/watch?v=CQqcvhR568E&t=188)

I found this video from this web page, where there's more text and images: (Chrome with Google Translate works okayish.)

[http://sesesega.blog90.fc2.com/blog- entry-940.html](http://sesesega.blog90.fc2.com/blog-entry-940.html)

</comment><comment><USER3> See also the very slick Minecraft-based Blockly game from Microsoft. It's similar and pretty good.

[https://code.org/minecraft](https://code.org/minecraft)

</comment><comment><USER4> Very cool. The code editor looks a lot like scratch[0] but I can't find any references to it. Does it use scratch or was scratch an inspiration?

[0] [https://scratch.mit.edu/](https://scratch.mit.edu/)

<comment><USER5> It's called Blockly. Google developed it, it's open source and free to use for everybody!

<comment><USER6> How are Blockly and Scratch related?

</comment></comment></comment><comment><USER7> hmmm, programmable virtual robot - I think I've seen that one before :)

[https://en.wikipedia.org/wiki/Karel_(programming_language)](https://en.wikipedia.org/wiki/Karel_\(programming_language\))

[http://karel.cloudmakers.eu/](http://karel.cloudmakers.eu/)

</comment><comment><USER8> I've been volunteering with the "botball" program at my daughter's school. As near as I can tell, Botball originated right here in Norman, Oklahoma, and it's offered in the "gifted and talented" program starting in the first grade (which my daughter's in). So I've been working with first and second-graders to prepare for a friendly "challenge" in OKC next weekend.

As I've told anyone who'll listen, I was shocked—shocked!—to find that, once they'd gotten past the preliminaries (first a virtual robot game like the OP, then standalone bots with onboard UI's resembling repurposed TI-80's), the "real" programming takes place on a PC using a barebones IDE and a hot new language called C. In case you haven't heard of it (it's so hard to keep up these days), C is a language invented by Dennis Ritchie to help six-year-olds learn computers through interactive play.

And how do the kids spend their forty-minutes-a-week? They type some lines of C, then compile it to target the bot, which appears (thanks to a virtual COM port driver) as COM3 or COM4 or COM something, as long as the bot is plugged in over USB. Then they go to the bot, unplug it, and, after a sequence of menu selections on its wonky touch UI, which usually requires the assistance of a pencil eraser, they may "run" the program, at which point, all going well, the motors actuate.

At this point my listener is gone, so I'm just walking down the street ranting, "There's so much wrong with this!" I go on to complain about how it's "insane" that children should be subjected to a development experience that we know is abysmally inadequate for the grown-ups who practice it for a living! (cf Bret Victor)

This is the GT program: they had to score 97th percentile on a standardized math or verbal test just to qualify, and only six of them were invited to the botball team. They can focus as well as anyone their age. But consider what we're asking of them! A typical interchange devolves as follows:

0\. Great, ready to see something happen? Yeah, me too!

1\. Wait, so one more thing: because of reasons, you need to type a semicolon at the end of every statement...

2\. Oh, a semicolon is a... it's like a colon except it has...

3\. A colon is like... anyway it doesn't matter, you need a semicolon...

4\. It's right there on the keyboard next to L... just type it

5\. No, don't hold shift, that was only for the parentheses...

6\. The parentheses were for the... arguments...

7\. Okay, you're not in the right place, you need to move the cursor...

8\. The cursor... do you see the blinking line on the screen?... look, right there, where I'm pointing...

9\. Yeah, you need to click _exactly_ right there... you know what just use the arrow keys...

10\. The arrow keys are over on the right at the bottom... use the up arrow, the _up_ arrow... that one...

11\. Keep pressing it, keep pressing it... you have to go through the whitespace...

12\. Whitespace is what we call the part of the program that's invisible, but it's there...

13\. Oh no, out of time! See you next week, try not to forget about semicolons in the meantime! There are _servos_ on this thing just awaiting your command!

Look, Dennis, I have nothing against your footgun—I learned it after BASIC when I was twelve like all the other kids and I turned out just fine. But, as Alan Kay said in a Q&A, "I hate to break it to you, but C is not a high-level language." [citation needed. I think it was at a Quaalcom event.]

And don't even get me started on the feedback loop, officer.

Anyway, thanks for posting this! One of the other parents asked me what her child could do at home to practice, and I'm looking for resources just like this!

<comment><USER9> I teach robotics courses and we also prefer blockly based languages for our projects aimed at kids. I don't understand people that think "real programming" needs one fighting with syntax when the semantics are hard enough for the untrained. And a visual programming language the syntax is usually either obvious or impossible to get wrong.

We're using the OpenRoberta Lab, which supports actual robots as well as simulation.

</comment></comment><comment><USER10> I honestly don't understand what is the motive behind teaching young kids to code? The passion for computer science develops on it's own. Some kids like computers while other can't be bother with it and are more interested in other fields.

<comment><USER11> How can interest in computers develop if you are never exposed to it? I don't think the "interest develops on it's own" theory is true, not for any subject.

<comment><USER12> In my observation, there is a ton of survivorship bias in attitudes about STEM education.

"I had some quirk in my history that motivated me to slog through years of seemingly meaningless crap to get to where I am today. It worked out great for me! Now I can't imagine any other path actually working for anybody else."

<comment><USER11> The kids don't have to become professional Software Developers just because they learn a bit of programming. I let my kids draw, too, and don't expect them to become professional artists.

I think I know what you are getting at, there certainly seems to be the bias of Software Development being the best profession in the world.

But with STEM in general, what I personally care about is teach my kids rational and logical thinking, and of course the ability to build things. Occasionally I ponder dong a sewing course together with my kids, and I might one day. It's nice to have skills that you can build things with. But it is hard to beat the possibilities you have with programming.

Besides, it is a skill that could come in handy in many other professions, as well as a fallback line. Also, it is unfortunately the only thing I am good at, so what else am I supposed to teach my kids?

</comment></comment></comment></comment><comment><USER13> How well did the competitions go? Did the kids like them? Were the programs complex enough to make things "interesting"?

How much time in the class did you spend working on the competitions vs just doing rote exercises?

<comment><AUTHOR> We did two classes with about 20 students each. In both our offered courses we had balanced proportions of gender. Age ranged between 16 and 20 years.

We did a questionnaire at the end and got pretty good feedback! About every student enjoyed having been there. A couple of students said that they would have liked to get to know more about the internals of the game and also about how to program in general. We also raised interest in our course of studies.

<comment><USER14> Do you think this could be used with kids at the age of 7-12 as well or will it be to complex?

<comment><AUTHOR> That was the age group we originally had in mind. We guessed that it would work out fine :)

</comment></comment></comment></comment><comment><USER15> Robocode back in the day was fun.

You have programmable tanks that had could move, scan with a radar and shoot. You had to create the behavior for them in Java.

</comment><comment><USER16> > Blockly - Drag and Drop

Should it be "move the robot to the chest" or something instead of "the metal block?"

<comment><USER16> Also, it's really difficult to pull just _one_ code block out if it has others below it. I can't figure out how to separate the ones below, which means if I mess up and need to get a code block at the top out, I've got a lot of rearranging to do.

Cool app though.

<comment><USER17> Usually in blockly you grab the one below the one you want, it's sticky with all the blocks below it. Then grab the block you want and drag off, then stick the whole thing back together.

</comment></comment></comment><comment><USER18> LOGO, the next generation?

<comment><USER19> IMHO - more like LOGO, re-done poorly.

Hey, nothing against the author's creation, but I do often wonder why we keep re-inventing something that Seymour Papert figured out a long, long time ago - and gave us the tools to do it with!

Furthermore - if you read his book (Mindstorms) - the goal isn't to "learn programming" \- it's to learn to think computationally, something which can be applied to all areas of learning and life. Furthermore, it's done by manipulating a virtual artifact (the turtle) to create further artifacts - artifacts which can be interactive.

Part of me tends to wonder if this "shoehorning" of education into nice little "holes" (much like rote memorization) isn't more an effort to stifle kids natural urge to creativity, questioning, and ultimately skepticism?

How dare we foster an education that could lead to progressive liberalism and an unfettered mind...unthinkable!

<comment> ux-app >more like LOGO, re-done poorly.

Each tool serves it's purpose. Currently i'm teaching programming to year 8,9,10 students. We use Logo, Scratch, JS (Khan Academy) and some game dev using unity3D

Each tool has it's place and sometimes it's not about the age, but the predisposition of the cohort. E.g. Logo isn;t usually a year 9 starter language (it's usually used for younger kids), but with one particular group of 9s it was the right starting point, so as an educator I say, the more tools we have the better :)</comment></comment></comment>


Compete Against Yourself (founders/startups) - <AUTHOR> http://www.phari.co/compete-against-yourself/?preview=true&preview_id=153&preview_nonce=9c337a5602

<comment><USER2> When I open the page, I get the following warning: _You do not have permission to preview drafts._

<comment><AUTHOR> try here [http://www.phari.co/compete-against- yourself/](http://www.phari.co/compete-against-yourself/)</comment></comment>


How to attend YC when you are on H1B - <AUTHOR>

I have searched YC and got following links
http://news.ycombinator.com/item?id=158969
http://news.ycombinator.com/item?id=4408
But none of them has comments from actual people who has done it.
If any of you guys who has already attended YC please respond back
1. What visa do i need to get if my intention is only to be here for 3 month duration to attend the YC program
2. If i want to stay back after 3 months, Which Visa should i get
I know YC do not help with Visa. Wished they had collected the details from other founders (and how they did it), and posted it for the rest of the world. <comment><AUTHOR> Ex YC, Please step up and help. I know so many people like me who need a light in this direction. the number of upvotes i got (never got for so many for any of my previous posts) proves this. Perhaps this could be the best help you could ever do to a would be YC :)

</comment><comment><USER2> (I don't really have any expertise in this, this is mostly what I've heard on the grapevine)

I don't believe you can attend YC while on an H1B.

Typically foreign YC participants use a B-1 or an equivalent visa waiver to take part in YC.

For staying afterwards the typical approach seems to be to get your startup to sponsor you for a H1B or an L-1 visa, but I believe this is only really a feasible approach if your startup has raised a VC round and has multiple founders.

</comment><comment><USER3> do from YC till fund raising under visa waiver program. Don't get a B-1 because you'll probably get rejected and this raises lots of suspicion whenever you enter USA in the future as you have to declare it.

If more than 2 co-founders and you all have degrees, get H1Bs.

If less than 3 co-founders or no degrees, crush it some more and get O-1.

If you have not raised significant (eg: $1M+) capital by demo day you will not be able to get a visa, go back home, iterate, come back under VWP when you can raise capital, then get visa. It is a tremendous stress.

<comment><USER2> If you're from a country which has a visa waiver program in place you don't need a B1. The visa waiver is usable for tourist or business purposes with business purposes being those defined under a B1 visa.

If you come from a country which doesn't have a visa waiver program in place then the B1 is your only option I believe.

<comment><USER3> the problem with vwp is you can only stay 90 days and you really need 180 days for yc + fund raising

<comment><USER2> Can you fly out the country and come back again for another 90 days ?

<comment><USER3> In theory if you can prove you do not live in USA. It's a stress.

</comment></comment></comment></comment></comment><comment><USER4> yes please I am interested.</comment>


An Introduction to Sine-Wave Speech (2007) - <AUTHOR> http://www.mrc-cbu.cam.ac.uk/people/matt.davis/sine-wave-speech/

<comment><USER2> Here's a similar method using a piano: [https://www.youtube.com/watch?v=muCPjK4nGY4](https://www.youtube.com/watch?v=muCPjK4nGY4)

</comment><comment><USER3> Crazy. As I listened to each example of the sin waves repeatedly, they went from gibberish to perfect sensical English. I think I sensed my neural nets learning the proper outcome from the same inputs. I think I am a machine.

<comment><USER4> And now you're self aware!

</comment></comment><comment><USER5> Sine wave speech is an example I use in my early Linguistics classes to reinforce the position that speech perception is basically magic. Absolutely incredible that it works.

<comment><USER6> It's a fantastic example, isn't it? I had to give a lightning presentation about a topic in linguistics for a class and the SWS synthesis demonstration grabbed the crowd's attention like nothing else.

<comment><USER5> Yeah, it's a real crowd pleaser, particularly if you play the individual components of the signal one-at-a-time first, so they hear nothing linguistic, and then combined, language!

It so nicely captures one of the key takeaways from my own line of research, which focuses on our robustness, as listeners, to problems and variability in the signal.

</comment></comment></comment><comment><USER7> Did anyone else understand the first sample without knowing you had to hear the clear version first?

<comment><USER8> Yes

<comment><USER9> Only the last one, but I guess that's not bad for a non-native English speaker.

</comment></comment></comment><comment><USER10> This seems like a principle that we've probably all experienced before with songs.

Just think of the last song you didn't know the words to and had to look up the lyrics. Next time you heard it, you heard the words clearer because you knew what you were looking for!

I experience this all the time and for years have just mumbled along to some parts to my favorite songs until I actually cared enough to see what they were saying.

</comment><comment><USER11> My wife picked them out almost instantly, it took me a couple rounds. I wonder if there is a gender difference or other things at play there.</comment>


Show HN: Open Source Show and Tell - <AUTHOR> http://opensourceshowandtell.github.io

<comment><AUTHOR> Would love comments about how to add to or improve the event.</comment>


Guide To Litecoin Mining With Nvidia Graphics Cards - <AUTHOR> http://cryptojunky.com/blog/2014/01/02/beginners-guide-to-litecoin-mining-with-nvidia-graphics-cards/

<comment><USER2> i thought that mining with nvidia is too expensive. Is it not ASIC new tech for mining?

<comment><USER3> GPUs are still the best for scrypt.</comment></comment>


SBCL – Past, Present, Future [pdf] - <AUTHOR> https://european-lisp-symposium.org/static/2019/rhodes.pdf <comment><USER2> Tangential question, but what Lisp is the most promising one to invest time on right now?

Common Lisp still has some activity, mainly coming from SBCL, but is a bit stagnant. It has a fantastic literature and many mature implementations.

Scheme is great, but a bit too fragmented. Racket seems to be gaining some momentum. The merge with Chez may be the tipping point to attract a critical mass of developers.

Clojure has many interesting modern ideas, but I feel being so tied to Java and the JVM has hurt a bit in the long run.

I miss a bit of innovation in the typed lisp area, like e.g. Qi or Shen which never took off. Carp [1] looks nice.

[1] [https://github.com/carp-lang/Carp](https://github.com/carp-lang/Carp)

<comment><USER3> I've never used Common Lisp, I know some Clojure, used emacs-lisp, tried Racket, Fennel. I love Lisps. But I always wondered: What happened to Common Lisp? Some of the opinions I heard:

\- CL is too big (compared to Racket and Clojure)

\- Lisp-1 vs Lisp-2

\- recursion discouraged (is that even true?)

\- There is a thing called "Lisp Curse"

And then seemingly language's popularity decreased. Let's ignore the fact that I really like Lisps, aside that, are there any compelling reasons for an average Joe programmer like me to start learning Common Lisp in 2019? Honest question.

<comment><USER4> > What happened to Common Lisp?

Common Lisp is probably in its best shape ever. There is finally a good package manager ([https://www.quicklisp.org/](https://www.quicklisp.org/)), plenty of documentation ([https://common- lisp.net/documentation](https://common-lisp.net/documentation)), and active communities on reddit, #lisp and elsewhere ([http://planet.lisp.org/](http://planet.lisp.org/)).

There is and has always been a lot of FUD around Lisp, and Common Lisp in particular. You even mentioned a few examples. My explanation on why this is the case is that learning Common Lisp really takes some time and dedication, but our lazy brains try hard to avoid that and find silly excuses instead (Too many parentheses!).

> are there any compelling reasons for an average Joe programmer like me to > start learning Common Lisp in 2019?

If you manage to use Common Lisp in a project, you get an enormous boost to productivity. It is the best language for 'getting stuff done' that I know of. Even if you cannot use Common Lisp directly, knowing it will stop you from reinventing a lot of wheels. Greenspun's tenth rule is real.

</comment></comment></comment><comment><USER5> I enjoyed the slides, and wish the talk video was available.

Now that I am retired, most of my side projects use SBCL, with a little Haskell and other languages. I have great respect for the commercial Franz and LispWorks products but for my projects SBCL works great.

I really enjoyed the history covered in his slides. I have lived through this history since 1982, but unfortunately almost 90% of my paid work has been in other languages. In our present time with great resources like Quicklisp, CL Cookbook, etc. I think that the CL ecosystem and number of deployed projects should be even greater.

</comment><comment><USER6> FYI, if you do a git shortlog -sn | head -n4 in the SBCL repo you get (as of now):

      4025 Douglas Katzman
      2887 Stas Boukarev
      1695 Nikodemus Siivola
      1596 Christophe Rhodes

<comment><USER7> Obviously (FTA) it wasn't always tracked by Git.

</comment></comment><comment><USER8> General side note: incremental slides should be "normalized" in a print version. Not sure if any software supports this. It would probably afford some manual tagging or grouping.

<comment><USER9> These look like LaTeX Beamer slides and there is a way of normalising the print version of incremental slides in Beamer.

</comment></comment><comment> dan-robertson The slides are a bit tricky to read without the rest of the accompanying talk. I couldn't find a video with the brief search I had.

One thing the talk touches on is that writing a Lisp (cross-)compiler in Lisp is hard. The slides suggest a few reasons and here are some more.

In CL much of the compilation process requires evaluating CL code. It seems that you are therefore fortunate in using CL: you can just take the code and eval it. But this doesn't work because (wanting to be portable and supportive of optimising compilers) many objects in CL can't be inspected. For example the following is valid code:

      (funcall #.(lambda (x) (1+ x)) 5)

In the code above one constructs a closure at read time, puts it into the ast and the compiler must take this call to an opaque host-platform closure (which evaluates to itself) and somehow marshal it into something for the target platform.

Similarly one can do the following:

      (defmacro counter (name reset)
        (let* ((i 0)
               (incr (lambda () (incf i)))
               (res (lambda () (prog1 i (setf i 0)))))
          `(progn
             (defun ,reset () (funcall ,res))
             (defun ,name () (funcall ,incr)))))

So to write a CL cross-compiler one must first implement a CL interpreter and this interpreter must have objects with enough useful state that one can correctly marshal closures from the interpreter into compiled objects in the target system, even when those closures close over shared values.

One way to reduce this pain is to restrict the compiler to only compiling a subset of the language, and then requiring that the compiler is written in that subset. One may only compile more complicated programs when the host and target are the same instance of Lisp.

However the "easily compiled portable subset" is probably too small and you will end up with either a long bootstrapping process of increasingly useful compilers or having to implement a lot of emulation of your target platform. An example in the slides is that the result of (byte ...) is implementation defined so you can't just use the value from the host implementation. Another example is floats. In CL there are 4 float types which are allowed to be equal to one another in certain ways (typical modern implementations have 2 32-bit and 2 64-bit; others might have some being decimal or packed into 63 bits), so one cannot rely on the host's floats behaving a certain way, so one instead has to emulate the target platform's float implementation to get reliably portable results. Then again, maybe it is possible (but perhaps a bit painful) to write the compiler without using any floats.

Another bootstrapping difficultly in CL is it's object system which just makes everything harder, especially if one wants to use objects for lots of the implementation-specific types.

SBCL goes for writing the compiler in a subset of CL and the result is indeed sanely bootstrapable. Other implementations typically require eval and some runtime written in eg C and a slow process of evaluating the improving compiler on itself to bootstrap the compiler. This is easier at first but can lead to difficulties (some of which are described in the talk).

<comment><USER10> > _the compiler must take this call to an opaque host-platform closure (which > evaluates to itself) and somehow marshal it into something for the target > platform._

If we're cross-compiling, we are almost certainly doing file compilation whereby we have to externalize the compilation product to be transported to the target where it is loaded.

If we use ANSI Lisp file compilation as our source of requirements, then we only have to handle, as source code literals, objects which are "externalizable". Closures are not.

See 3.2.4 Literal Objects in Compiled Files

Of course, you can adopt externalizable closures as a requirement in your own compiler project, if you like.

</comment></comment><comment><USER11> arm: threads -- yes, please!</comment>


Ask HN: Founders, do you ever feel like packing it in when things are going ok? - <AUTHOR> Do other founders sometimes feel like packing in their startup and getting a job, even when things are going ok, or is it just me? <comment><USER2> Yes a lot of time. I run a bootstrapped SAAS of about 15 of us and I think about quitting almost every 2-3 days lol. It is the nature of the beast. This shit is hard. It grinds you down. Oh is it 7 PM ? Guess what, your customer doesn't care. Bam, 6 new support tickets in queue while you wanted to get up and go play with your kids. Ok we can leave them for my support team but wait, 1 is critical and needs attention. oops, I gotta do something. All "employees" are gone for the day. While doing this, I get an angry email from another customer about some crap and why they only want to talk to me, the founder about it. All this when I have 15 people. I can only imagine the plight of solo team founders :).

But then I close my eyes and imagine myself NOT doing this. Oh well, a shitty corporate job where I feel soul less. And right then, I am back to the grind. This is my own shit. I get to decide. I can scale back if I want to. Some days, I can tell the clients to wait 3 hours. Some days, I am just not in the mood and that wouldn't make my boss upset (I have none. Customers can again wait). Just made a new sale. What a feeling. I am back on the high horse. Woohoooo. Rinse and repeat.

<comment><USER3> You need to put in place processes that scale. Your current support system doesn't seem like it's scaling well (based on what little context you provided us).

Do the ROI calculations and figure out if you need to hire more. If you can't hire more then you can experiment with a distributed rotational responsibility for that task (Increase pay of your team if needed).

You can put guard rails around the unpredictable.

<comment><USER2> Yea its definitely a process issue around support. Trying to solve that issue with a lot of trial and error.

</comment></comment></comment><comment><USER4> It's not just you. I founded a bootstrapped side project/startup that has gone viral during COVID. It's been a wild success, people love the product, but going from solo to now a team of 5 in a period of 2 months and handling a huge amount of users has been stressful. Business-wise, I shouldn't be anything but super happy, and advisors say we've won a lottery, but honestly I miss having less responsibility (e.g. keeping people employed, duty to thousands of customers 24/7) and pressure (don't screw this up!). Don't get me wrong, the ride can be exhilarating and I'm sure I will look back on it one day with pride, but at times I yearn for the days of "just" being a freelance dev who had relatively low stress and tons of time for my wife and kids.

<comment><USER5> so was staying solo not an option at all? just curious

<comment><USER4> No, I tried probably for too long and the stress and workload was too much, I still have a bit of PTSD from it to be honest. B2C space with 7 day per week customer support, over 100k DAU. Only way to stay solo would have been to turn away sign ups or something like that.

</comment></comment></comment><comment><USER6> Yeah, it's a lot of responsibility and commitment. Sometimes it would be nice to just be able to spend your month's income on anything, instead of saving every cent for a rainy day. Or just sit on the weekend playing games.

I feel like it's just the next step to growing up, sort of like getting married and having kids. There's plenty of perks to being in another phase, but it's important to remember that plenty of people have sacrificed to get you where you are. Your investors, your staff, your family, customers, government, mentors, and of course, yourself.

It's similar to college - it's tempting to just want to take a blue collar job when you're pulling all nighters and have to deal with student loans.

I guess a good reminder is to talk in an anonymous group with others who wouldn't believe you, lol. Maybe a Fortnite discord group or so, lol.

<comment><AUTHOR> I resonate with what you are saying. One of my biggest motivations at the moment is my family and my wife's support in me leaving a well paid job.

Thankfully HN let's me have a little whine about the toughness of a startup which is better than whining to my wife and causing her undue stress.

</comment></comment><comment><USER7> Yess, especially when again and again my friends are doing something cool like having a party or a weekend out of town and I have to stay working.

</comment><comment><USER8> It is certainly a grind. Delegate, automate, and take vacations. Also hire someone to replace you ASAP. But not before making sure the business can be run by a dummy.</comment>


Twilio's 50 Million Seed Round: An Empire in the Making - <AUTHOR> http://www.vonjour.com/2013/05/14/twilios-50-million-seed-round-and-implications-for-the-telephony-space-jeff-lawson-has-his-eyes-on-an-empire/

<comment><USER2> Yep, they're going IPO.</comment>


Put Yourself Out There: The Myth of the Genius Programmer - <AUTHOR> http://joshldavis.com/2014/06/13/put-yourself-out-there/ <comment><USER2> This meme of "do things and blog about it" presumes a certain amount of extroversion. I'm rather fed up with it altogether.

Would you rather be _thought of_ as the best developer, or actually be the best developer? The two aren't mutually exclusive, but I find it entirely suspicious that the rise in needing to "put yourself out there" has correlated so strongly with social media becoming pervasive. If I have a finite amount of time available for hacking, why do I want to spend a not-insignificant amount of it signaling?

Hacker culture has been corrupted by this 'need' for influence. Perhaps it isn't the same as the neckbeard culture I looked forward to joining in my youth.

<comment><USER3> The theme of all of this isn't just to signal. It's that putting yourself out there will cause you to bend and grow. Over and over I read testimonials of people with low confidence who decided to do something like this and found it incredibly fulfilling. Don't just do the things you've always done. Stretch yourself, and you might be amazed what you can accomplish. Blogging improves your writing ability at the very least, and can also cause you to think more critically about your ideas. If you happen to build some influence or good relationships, even better.

Obviously if you aren't interested in any of that, there is nothing wrong with spending the time the way you want to spend it. But it's not about signaling or influence, at least as I interpret it.

<comment><USER2> It's unfortunate that someone downvoted you, I've tried to negate that.

The only reason I made a comment to this effect is that I've noticed an uptick in articles about how Github is your resume/marketing yourself/marketing your OSS/how you should only work on 'important' OSS/some other silly notion. I want to believe this isn't a problem, but with open source powering so much, it appears that people want to be the next DHH.

I think there is _something_ to worrying about software shifting to a heavily reputation-based economy (as opposed to one oriented around making things). Namely, in that shift, it rewards people who generate noise, regardless of the amount of signal contained. Polluting the well, in this case, results in everyone having to output a certain amount of signaling just to keep up.

It's entirely possible I am projecting some here, as I've struggled with this myself. I just don't want to always concerned with this tripe, because it's not the same at all as actually making software.

<comment><USER4> samspot is dead on here, at least from my perspective. I am very private and have suffered from social anxiety for years. I don't use Facebook because I am overly sensitive to the reactions of others (no likes? everyone hates me and thinks I'm stupid). I spend far too much time thinking about what others think of me, so my natural inclination is to completely remove myself from public view at all opportunities. I don't use GitHub for this reason. I'd like to contribute and become part of a community, but I'm so terrified of being judged that I never step forward.

So I completely understand the author's attempts to go public. It isn't about being the next DHH, it's about overcoming the fear of rejection. I have been considering "going public" for years for this very reason.

<comment><USER3> Freaked me out a bit saying I was dead, I appear to be alive again, at least from checking with some random devices.

I'm not sure if this describes you, but I can be pretty thin skinned on the internet, which often discourages me from posting. I write things and delete them more often than I hit submit.

One nice thing about going public is it's unlikely anyone will notice you for a while. Even patio11 says only his brother looked at his blog for a few years (IIRC).

<comment><USER5> _Even patio11 says only his brother looked at his blog for a few years (IIRC)._

If only getting visitors were as easy as being related to them!

No, seriously speaking, my blog had perhaps 200~300 visitors for the average article from 2006 through, hmm, late 2009 or so? (What changed? A combination of discovering HN, going full time, changing my writing style to exclusively focus on the 4k to 8k word essay that I feel is generally my best work, and a minor refocusing on topics.)

</comment></comment></comment></comment></comment></comment><comment><USER6> But to get hired in the first place you have to show overconfidence in your knowledge and abilities.

Slightly annoying how that works.

<comment><USER7> > But to get hired in the first place you have to show overconfidence in your > knowledge and abilities.

I've had interviewers literally tell me that "Ya, that was a trick question to see if you thought you were god's gift to programming. The fact you didn't rate yourself a 9 or 10 proves that you are sensible."

So I'm not sure that is true.

I think it is a question of being confident enough that you don't second guess yourself yet humble enough that people don't think you have an ego that will cause workplace drama.

<comment><USER8> I've asked that. "On a scale of 1 to 10, how fluent do you feel in X?" And the questions asked get partially tailored to that.

Anyone answering 9 or 10 is in for it.

<comment><USER9> 0 - 10 is a pretty horrible scale. If I was rating myself on such a scale I would have got lower as I got older. At 21 you can be a "10" by being the best in your CS class. At 35 you have to compare yourself to people with serious achievements.

<comment><USER10> No, the same standards apply regardless of how old you are. If this question comes up in an interview, you are being asked to rate yourself on an objective scale, not on a curve based on where you're at in your career. A 21-year old (or 35-year old, for that matter) who rates himself a 10 is almost certainly way overconfident and will run into (or cause) all sorts of problems. What you're complaining about is actually one of the main things this question is trying to determine.

Put another way, someone who rates himself a 10 because he's the best in his CS class is someone who doesn't know what he doesn't know, and is also likely to be a primadonna. Someone who shows some thoughtfulness, skepticism, and humility when answering this question is more mature and self-aware, and is much more likely to be an effective part of the team. The rest of the interview is supposed to establish how much they actually know.

<comment><USER9> But not knowing what you don't know is really to be expected of people who are recent grads in particular. I think this reveals why the question is problematic unless it is worded very specifically. A 10 from a recent grad could legitimately mean "I've had no problems learning everything that has been thrown at me so far and have very high confidence that I will easily be able to learn more" as much as it could mean "I know everything".

<comment><USER8> Then we will have communication issues and it will be difficult to work with you. The question was worded "On a scale of 1 to 10 how fluent do you feel in X". This is explicitly -fluency- (or phrased another way, "how well do you know X"), not something completely undefined like "How good are you at X?". The question is asking you to project your own perceived scale over a reasonably definable axis, not an ambiguous one.

Project the question into another domain - "I passed my intro Spanish class", "Oh yeah, on a scale of 1 to 10 how fluent are you in Spanish?", "I'm a 10". Nope.

<comment><USER9> There's a difference between being fluent in something and mastering it. You might be capable of reading and writing Java code, but that says nothing of your knowledge of JVM internals or of any particular framework etc.

It's like the difference between being fluent in Spanish and being able to use the language to write moving poetry or having a very extensive vocabulary.

I think it is much better to be as specific as possible about what skills you expect the candidate to have going in and what you expect them to be able to learn on the job.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I started a blog some years ago and here's what happened: nothing.

<comment><USER12> I have started to enjoy nothing happening to my blog. Since I am sure that nobody actually reads my blog I write fearlessly. Some times the posts are so silly that I would have been embarrassed if some one actually read it.

Any way I go back to my old posts from time to time and have a good laugh about them. Nothing is the best thing that has happened to my blog.

</comment></comment><comment><USER13> My recent favorite reminder of why I need others in order to program well is the list of things I am unqualified to say about my own work, including, but not limited to

\- Is the user interface intuitive?

\- Will this library be efficient for its most common uses?

\- Have I given the simplest explanation for what this thing I wrote does?

It helps to be able to say, "I can't know that yet, not until I ask someone." That might happen in use cases, watching over someone's shoulder, showing a conference poster, or getting complaints on a message board two years later, but it's always collaborative, even when I have my act together.

<comment><USER14> I have a lot of ideas, many of them good, some great, but quite a few are horrible. Just one person to bounce them off of (and who isn't afraid to say "no") is incredibly valuable.

</comment></comment><comment><USER15> Why do people who mention Linus Torvalds, Theo de Raadt, Rich Hickey, Fabrice Bellard, Simon Peyton Jones, Satoshi Nakamoto (ok, that may be several people) etc. get downvoted to oblivion?

This seems especially weird seen most people here are using Git and many of the things we have wouldn't exist without these people.

If I'm not mistaken Rich Hickey took one or two years off, pulled the plug and went on to create Clojure.

Saying "But that's only one in ten million" ain't an argument: there _are_ genius programmers out there and we're all using daily piece of code from these genius programmers.

Watching videos from Linus Torvalds (the talk about Git he gave at Google is amazing), Theo de Raadt (anything about security), Rich Hickey, Simon Peyton Jones, etc. is one of the thing I prefer to do.

I've also personally met several genius programmers: including one who had been working on at Adobe and who (while not at Adobe anymore) then single- handedly wrote a Java bytecode to Objective-C source code converter. I know for a fact that this converter allowed to write an app which reached top 3 in the appstore.

I've also competed ten years ago or so versus plain geniuses in the TopCoder algorithmic competition. Some of the best ranked coder there had incredible achievements, like for one of them having won the mathematics olympiad several times.

That's the thing: even "one in ten million" means that there are quite a few genius programmers out there among us. And we owe a _lot_ to them: not only have we many great tools and projects which would never have existed without them, but they also let us get a glimpse inside their beautiful minds through the messages / blog they post and through the video they make.

Why downvote?

<comment><USER16> The down vote comes from the idea that this is not the only way to create good, useful, widely used and appreciated code. Of course there are geniuses that have enough raw talent, dedication and focus to do amazing things with ease. But there are plenty of others that while not considered a 'genius', will have to use pure grit to accomplish feats of greatness.

</comment></comment><comment><USER17> Fabrice Bellard seems to me an outlier to the author's premise. He's like the very definition of a hermit genius-programmer.

<comment><AUTHOR> Well of course there will always be outliers =]. I prefer the Satoshi Nakamoto outlier myself.

<comment><USER18> Donald Knuth.

<comment><AUTHOR> Fitz actually jokes about METAFONT in the video at 11:29: [http://youtu.be/0SARbwvhupQ?t=11m27s](http://youtu.be/0SARbwvhupQ?t=11m27s)

</comment></comment></comment></comment><comment><USER19> There's two ways of being known as a hot-shit programmer. The first has been described by Joel ("Smart. Gets things done.") and Rands ("Be productive, be fantastically clever when necessary, speak truth to power, hit your dates, and don't ship crap."). These are people who deliver the goods. Deliver them often enough and folks will know your name.

The second way is harder, particularly for the introverted. This involves self-marketing, being obviously and repeatedly correct. It also requires a bit of political adeptness and a bit of visionary helps as well. Both Joel and Rands have done very well here and there's a number of others who have made a name for themselves via the web. If you have a choice, choose this method as it yields better visibility. Although it also means that screw ups are magnified if and when they occur.

Am I the best programmer going? No. If you're reading this, I suspect you're not either... But I work hard at delivering the goods, and I'm good at what I do. People like this get remembered when new projects start. No matter how big or small your niche is or how many you fill, impress others. And don't needlessly piss them off - people remember assholes far longer than good 'uns.

</comment><comment><USER20> Over the past few years, I've put myself out there as well, not because I'm extroverted but because there is no better laboratory test of your ideas/convictions.

I'd only add one thing to this approach: make sure that you are at least solving one of your own problems and that the solution is _real_ \-- i.e. it really benefits you in some measurable way.

I did this a few years ago with a relatively obscure gem that solved a real problem I actually had with refactoring business logic. I put it out there to get feedback on it and was rather disappointed with the initial reactions ("You don't understand MVC!" "You've done it all wrong!"). But I put myself aside and tried to understand the feedback from their point of view.

One thing that became obvious is that most people didn't see the solution as valid because they had completely different context and approach. Fair enough. There were also several that simply 'cargo-culted' mvc responses without realizing that my gem was a thin wrapper around methods that DHH had already put in Rails (so if I didn't understand MVC, neither did he! ;) And no one commented on the biggest problems I legitimately saw with my approach: thread- safety and closures on controller instances in a prod env.

But none of that stopped this gem from being incredibly useful as I tried to break apart a giant monolithic legacy app that challenged traditional refactoring approaches. Maybe it's not perfect, but at least it's a way forward.

So the moral of the story is: put your idea out there, expect feedback and criticism (maybe only criticism since the people who like things tend to keep quiet (e.g. the rvm story last year)) -- but so long as this thing is useful to one person (only you?), use it to make your life easier!

If it's useful to others, that's a bonus learning opportunity, but that shouldn't be your sole motivation.

</comment><comment><USER21> off topic: I missed this kind of talk at the last two google io's

</comment><comment><USER22> Those who can't code, blog.</comment>


Ask HN: What news sources about Artificial Intelligence do you read? - <AUTHOR> <comment><USER2> I get news about AI related topics from a variety of sources, including, but not limited to:

HN

[https://reddit.com/r/machinelearning](https://reddit.com/r/machinelearning)

[https://reddit.com/r/artificial](https://reddit.com/r/artificial)

[https://kurzweilai.net](https://kurzweilai.net)

[https://ai.stackexchange.com](https://ai.stackexchange.com)

[http://arxiv.org/list/cs.AI/recent](http://arxiv.org/list/cs.AI/recent)

[http://arxiv.org/list/cs.LG/recent](http://arxiv.org/list/cs.LG/recent)

[http://arxiv.org/list/cs.NE/recent](http://arxiv.org/list/cs.NE/recent)

[http://news.google.com/search?q="artificial](http://news.google.com/search?q="artificial) intelligence"

[https://www.youtube.com/results?search_query=%22artificial+i...](https://www.youtube.com/results?search_query=%22artificial+intelligence%22&sp=CAI%253D)

<comment><AUTHOR> Thank you!</comment></comment>


Photos of people without their phones - <AUTHOR> http://www.removed.social <comment><USER2> Being a technologist, I (we?) are probably more sensitive to technology presence in day-to-day life, so this strikes a chord. The joke of the evolution of a software engineer ([https://medium.com/@webseanhickey/the- evolution-of-a-softwar...](https://medium.com/@webseanhickey/the-evolution-of- a-software-engineer-db854689243)) has become reality, but for society in general.

Sometimes simplicity and lack of connectivity is for the better.</comment>


Technology Myths and Urban Legends - <AUTHOR> https://www.nngroup.com/articles/technology-myths/ <comment><USER2> > One Chinese participant had heard from a friend that, for the same product, > Taobao charged iPhone users more than it charged Android users.

Interesting. I recall reading that some online flight booking site did this for Mac users a few years ago, along with raising prices if you search for flights and then come back a few days later. I always make a point to use a VPN and spoof my browser ID when I book travel just in case.

ETA: Ah, as I continue to read I see the article references this as well. No idea if it's true, but I'll continue my behavior. I suspect that people _do_ see prices change, but that those changes are based on other variables.</comment>