Toyota's Gill Pratt on Self-Driving Cars and the Reality of Full Autonomy - <AUTHOR> http://spectrum.ieee.org/cars-that-think/transportation/self-driving/toyota-gill-pratt-on-the-reality-of-full-autonomy <comment><USER3> It's refreshing to see an article like this among the many other articles predicting self-driving cars will be here in ~2 years. Volvo has committed to selling level 4 vehicles by the end of this year (in limited locations) - I'd love for them to follow through and see how good their technology really is. I suspect the transition will be far more gradual than most people are willing to admit, and take decades instead of years. Keep in mind, serious research into self-driving cars started in the 80's, and then there was a huge increase in interest in the 2000's because of the DARPA challenges. After that Google took interest, and recently the major automakers have become serious about it as well. But it's worth noting that originally Chris Urmson had predicted Google would be selling fully autonomous cars today, and instead Google lost a lot of their talent in the last year including Urmson and there is no public deadline for selling a product.

I think progress is great and self-driving cars are awesome, but I don't believe they're just around the corner.

<comment><USER4> I took the liberty to draw a few situations which AI would have likely no clue what to do, even if it detected the danger. I'll be adding some more as every day on the freeway brings me new ideas (in fact I'm editing one right now). Something like a "Winograd Schema for self driving cars": [http://blog.piekniewski.info/2017/01/19/what-would-an- autono...](http://blog.piekniewski.info/2017/01/19/what-would-an-autonomous- car-do/)

<comment><USER5> Your artwork is great! I'm not sure #1 would really be a problem as that situation never should occur and is totally preventable (there always should be traffic cones/barricades surrounding the cover, something the car easily could detect). In the rare case it does happen, the utility company would/should be at fault for leaving a manhole open like that.

I can also think of a few ways to prevent number 2 (basically, a combination of GPS + knowing where all intersections occur + road data from thousands of other connected cars = knowledge of where every stop sign is. Certainly not foolproof, but I think ultimately it is a problem that has possible solutions)

The rest of your examples are fantastic though, #3 being quite terrifying actually. They are all very intriguing thought-experiments and I look forward to seeing your future additions!

<comment><USER4> Hey, I just finished another one. A school bus with a swinging open stop sign in the middle of the freeway.

Anyway, just a food for though, autonomy really requires a lot of "intelligence" and our technology is not quite there to deal with all these bizarre corner cases. I'm glad you like it.

<comment><USER6> I think such things can be discounted by knowing that motorways never have stop signs (same with the prank stop signs). Of course, there are a lot of things that only cause a change in driving behaviour in very specific contexts. The bus' stop sign probably only applies when the bus is stopped. Similarly, in Germany at least a bus may turn on hazard lights on a bus stop, requiring everyone to drive past only at walking speed. A bus stopped on the shoulder of a motorway with hazard lights on is a different context again and thus should not trigger the same behaviour.

There are a lot of rules and laws and they change from country to country, or in the US' case, even from state to state. Self-driving cars must know these things and react accordingly. So I think the scenarios presented here are just a few (admittedly, more far-fetched than others) more contexts amidst the probably hundreds of others that already have to work correctly for switching safely between city and motorway driving, driving in a living street, observing right of way correctly in all circumstances (roundabouts, weird stuff like four-way stops, signs changing ROW for one intersection, or a stretch of road, lowered kerbs, people exiting a living street even though it's to the right, cars on an on-ramp and perhaps letting them in based on how far the on-ramp still continues, ...).

Stop signs are interesting in any case, since they have a characteristic shape. If we go full autonomous, then snow-covered signs must be correctly observed as well, at which point any octagon shape may be a stop sign (perhaps, again, depending on context). Same with signs that don't reflect well anymore at night.

<comment><USER7> The real sign SDVs are here will be when infrastructure starts accommodating their needs. Humans aren't really good at driving either, so we've invented _a lot_ of ways to help them and direct their attention. Open manholes are supposed to be marked clearly, because people do miss that stuff. When there's snow on the road hiding lane markings, someone will come and clean it out. Signs are made to be retroreflective. Etc.

So at some point, I suppose the infrastructure (broadly understood - <USER2> laws) may be modified to reduce the dependence on cultural context and other things machines are weak at. So for instance, it won't be _every_ sorta- octagonal shape that works as stop sign, it will be required by law to be clearly visible and also have some machine-friendly accommodations, and SDVs will be free to ignore signs without those accommodations.

(Doesn't solve the prank problem, but humans are equally vulnerable to a targeted prank anyway.)

<comment><USER4> > (Doesn't solve the prank problem, but humans are equally vulnerable to a > targeted prank anyway.)

I would hesitate using the word "equally". People are actually quite robust. Particularly the second human in row will certainly not be tricked by the same prank that tricked the first one.

<comment><USER7> I want to emphasize the word "targeted" I used. Pranks involve an intelligent agent with malicious intent and an attacker's advantage - i.e. prankster is free to exploit any vulnerability of its victim. People have different vulnerabities than machines, but they still have them.

<comment><USER4> Sure they do, agree with that. But word "equally" suggest the susceptibility is the same. I would actually emphasise the difference. It is much easier to fool a machine than a human, particularly if we have a copy of the machine at hand and tinker with it (see adversarial examples for deep nets). Humans are all different, so we can never expect our "adversarial example" to be 100% certain to work.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> This is Toyota, which is coming from behind here. They started work on self- driving last summer, which was late to be getting into it. They hired Gill Pratt, who took over the MIT Leg Lab after Raibert left, but never did much with it. His job was to start to build up an organization to work on self- driving. So he has to make excuses for Toyota being behind.

Toyota recent technology direction isn't looking good. Instead of selling battery electric cars, they're selling hydrogen fuel cell cars in California.[1] Nobody is buying. Their electric cars are mini-cars. Something went wrong over there.

Pratt has some legitimate criticisms. But many of the really hard but rare problems can be solved by stopping, or going really slow. When you're going really slow, your sensor data from LIDAR is very good and you should have a full ground profile. If you have to inch your way through a field of rocks, that can be done. Remember, the DARPA Grand Challenge cars of 10 years ago could drive off road.

As for "why did it do that" issues, that's mostly a problem for those self- driving systems where machine learning is connected directly between camera and steering wheel. Those are easy to build and give the illusion of working, but are not going to work in hard cases. You want a world model and object recognition, like Google. You can tell how well your object recognition is working by checking its results at long range against its results at short range.

[1] [https://ssl.toyota.com/mirai/fcv.html](https://ssl.toyota.com/mirai/fcv.html)

<comment><USER9> If you go really slow on a freeway with low visibility you get rear ended at highway speed. Which doesn't work out well for you. Or the other person.

Heck if you go real slow on a highway and traffic isn't... you get rear ended at highway speed.

<comment><USER10> If you go slow in low visibility on the freeway, you are doing the correct thing. Driving too fast for the visibility is reckless and will get you a ticket for driving incorrectly for the conditions (assuming you don't get yourself or someone else killed).

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

<comment><USER11> When it's raining on the freeway, people in the faster lanes _will_ slow down... to around 50-60 mph (instead of 70-80 mph). I don't think 50-60 mph is what Animats had in mind, though.

</comment></comment></comment></comment><comment><USER12> > if autonomous cars are even just 1 percent safer than humans, we should > still be using them

We could improve safety by at least 1% in lots of other ways: lowering speed limits, requiring rear view cameras, raising the licensing age and requiring more frequent tests, cracking down on drunk driving, etc. Building a fully autonomous vehicle seems unnecessarily elaborate to get a 1% safety.

<comment><USER13> We have many of those things in Australia (low speed limits and huge fines for doing 3kmh over the limit, automatically sent through mail), but we're seeing this:

[http://www.abc.net.au/news/2016-10-26/speed-enforcement- detr...](http://www.abc.net.au/news/2016-10-26/speed-enforcement-detrimental- to-road-safety-study-finds/7965082)

Most of our safety improvements have come from better car designs like crumple zones, ABS, air bags.

The more you go against natural human behaviours and start treating humans like machines with very low tolerances, the more it makes sense to just have machines do the job

<comment><USER14> Australia doesn't have low speed or huge fines. Many places like the city of Sydney doesn't even have red light or speed cameras in the city, it is a joke.

Australia does not take traffic crashes seriously at all.

<comment><USER15> Sydney absolutely has red light cameras in the city.

But to be fair given the level of congestion and quality of the roads I doubt the point of speed cameras at all within the CBD. It's purely revenue raising.

And strongly disagree that Australia doesn't take crashes seriously. We are one of the most regulated societies in the world.

</comment></comment></comment></comment><comment><USER16> Ha-le-freaking-lujah! I've been saying the same for years, ever since I completed the Udacity self-driving car AI course (taught by Sebastian Thrun, then head guru of autonomous vehicle research at Google). 70% of the problem was solved in mid-90's, by Ernst Dickmanns et al, Daimler Benz had autonomous cars on the autobahn. After billions of dollars and two decades, we solved another 20% of the problem. The remaining 10% is not going to be conclusively solved in the next 20 years at least, not under the current constraints.

Now if roads are outfitted with instrumentation for autonomous vehicles, _and_ human drivers are prohibited on such roads, _then_ we _might_ see full autonomy. But not before.

If it were up to me, I'd focus on this instrumentation instead: RF guide wires/tags for car localization on the pavement, machine readable signage (even in fog, snow, and heavy rain -- conditions with which cameras and LIDARs cannot deal in principle), inter-car coordination mesh networks and security thereof, autonomous vehicle readable road work signage, police gear to direct traffic of autonomous vehicles, and so on and so forth. There. Hundred billion dollars worth of startups in one paragraph.

As things stand, you can only be fully autonomous at 25mph in California where it never rains, as long as there's no fog, no road work, and no one has messed up the markings on the pavement.

<comment><USER17> Yes! A bit of common sense would be useful here.

The current generation of self-driving cars is fairly impressive already, but what I'd like to see is a city full of them. I have a feeling that self- driving only works as long as the majority of drivers are human drivers. It's trivially easy to come up with traffic situations that could lead to a deadlock by blidndly following the rules.

Humans will use hand signals, eye contact or someone will violate the rules a little or make way when they don't strictly have to in order to ensure that traffic flows.

I think that car-to-car and/or car-to-road communications will be required before large scale deployment is possible. And I have not heard from a cross- manufacturer effort of creating a protocol for such communication.

Although I do understand why the automotive industry is hell bent on getting their level 2 autonomy out there. Money from the customers is needed to keep the R&D effort going.

I personally did not understand why anyone would want a Level 2 car where you have to be constantly on the lookout until I visited Silicon Valley and drove a stint on US Hwy 101 in rush hour. And I guess this is the initial target market for the self-driving car industry: wealthy individuals who have a stressful morning commute in stop'n'go traffic. Money from these early adopters will go to funding the R&D for the next generation in the hopes that Level 4/5 will some day become reality.

But in my conservative estimate, that's still years away from being adopted en masse. There may be a significant minority of them on the road in 3-5 years but I can't imagine it working very well if they were in the majority.

<comment><USER16> At the moment I'd pay a lot of money for a car that I drive mostly myself, but that also had an advanced safety system which makes it much harder to get into an accident. I.e. fix my driving mistakes and lapses in judgment for me while I'm in control. I'd be willing to pay a hefty premium for this.

</comment></comment></comment><comment><USER18> I hate this rhetoric about "saving even one life." It's closer to "saving five lives but killing four people who otherwise would have lived." Some people say that's the same thing. I disagree.

<comment><USER19> Yep. If autonomous vehicles become widespread before they are really ready and the news starts filling up with accidents a human would have avoided, it will cause a massive political backlash. The actual statistics will be irrelevant to most people.

<comment><USER20> Very frustrating how people fail to see the full context. However, it is also useful in this case. The engineering, marketing and CEOs of companies doing autonomous vehicles are aware of the huge negative media potential a single accident has. Thus Management and marketing have an incentive to give engineering the time and resources to do things properly.

</comment></comment></comment><comment><USER21> We need a level between Level 4 (the vehicle can operate autonomously in almost all conditions) and Level 5 (no manual control): Level 4.5, wherein the vehicle and operate autonomously in almost all conditions _and can identify and safely stop in other conditions_.

If there's a severe blizzard and my car can't see the road in front of it and we're in a 4G dead zone and it can't get an accurate enough GPS fix to figure out where it's going, I'd be perfectly happy if it safely pulled over to the side of the road and stopped. Heck, I'd _prefer_ to have it safely pull over rather than trying to continue based on some premise of "this vehicle be able to navigate under all possible conditions".

<comment><USER22> I think you've misunderstood level 4; it seems to be defined as you suggest 4.5 ought to be: [[http://www.sae.org/misc/pdfs/automated_driving.pdf](http://www.sae.org/misc/pdfs/automated_driving.pdf) ]; the car has to operate safely after autonomous mode is enabled, even if the human has no further interactions (even if the car requests human intervention).

<comment><USER21> It seems like the definition of level 4 is a bit ambiguous; your link defines it as operating without human intervention, but only in "some driving modes". I've seen this interpreted as meaning that the vehicle can operate without human intervention _as long as the driving mode does not change_ , but may still require human intervention if the conditions change (e.g., it starts snowing, or you exit the highway).

<comment><USER17> The key distinction here is that a Level 4 is safe even when the driver _does not intervene_. If it starts snowing, the car will park by the side of the road if the driver isn't there to pick up the wheel.

Level 3 is when you have ample time before the switchover, and Level 2 is when the driver must be there in a matter of seconds.

</comment></comment></comment></comment><comment><USER23> It's easy to accept this when you realize that nobody has even managed to make a generally useful voice assistant yet, how ludicrous the "close to self driving" claim is.

<comment><USER15> I have to agree. Especially a car that can work worldwide.

For example here in Australia we have an animal called a Kangaroo which when a car approaches will move completely randomly. This includes at the last second jumping straight in front of a car. Most drivers from these areas know to slow down and attempt to drive in the middle of the road if at all possible.

Surely weird situations like this which require local knowledge exist all across the world. But I've yet to see any acknowledgement that this is useful.

<comment><USER24> >But I've yet to see any acknowledgement that this is useful.

I think that the reason why this isn't acknowledged (by people who should know) is likely to be a political one. Examining the solution that I typically seen given for this problem should explain why.

First, the assumption is that driving algorithms are updated to account for any edge case (for instance, an unpredictable animal jumped out this time) after it occurs, so that case is then guaranteed to not re-occur.

This presents a problem: anyone who's ever worked with software before knows that that's an impossibility until a sufficient number of incidents happen in nearly identical ways, or until a fix is manually applied (which itself could take a very long time).

But we fall back on the second part of our argument, statistics. The fact that _you 're_ going to crash into something you wouldn't before is outweighed by _more than one other person_ not crashing in a place where the computer can predict and avoid a crash more effectively than a human.

This too, presents a problem, if you also consider the implication that the availability of manual-driving cars will likely be degraded in some way after the introduction of self-driving ones (from having increased cost/regulation/insurance premiums or simply being banned entirely).

If we discount these "weird" situations and fail to make allowances for them, people will get hurt where they wouldn't otherwise (even if the local or global sum of deaths is reduced). The benefits skew in favor of cities where traffic behavior is/will be much more consistent.

So it's best if local knowledge can't be useful- why complicate the matter or feed skeptics talking points if you don't need to?

</comment></comment></comment><comment><USER25> I love the idea of self driving cars but it scares me that no one seems to remember the history of the 5th Generation project (I was a kid in the 80s) and other AI hype-dreams over the years. It has always been the case that approximate solutions can be found for 85% of cases, which has given the illusion of a nearly solved problem.

There is a lot of hype regarding deep learning, but I have struggled to find a concise definition apart from the fact that it is now relatively easy to work with monstrously big networks. Backprop and related algorithms have been around for decades. From what I remember of neural nets, one huge drawback was that they would be close to un-debuggable. The learning contained in the net would be inscrutable to a human, to all intents and purposes. Failure data could be recorded and replayed, but any actual _reason_ for failure would frequently not be found. So, tweak the network, resize some layers and try again... I can think of several reasons why that's fundamentally unsuitable to the problem of driving.

I was in Egypt recently, and the sheer amount of lane crossing, merging, pedestrians ducking through multiple lanes of traffic, roadside obstacles, donkey-drawn vehicles etc would be 100% impervious to even a level 3 solution today. I believe the same would be true in India and many other parts of Africa.

So, I really hope that we are not falling blindly into another 5th Generation sinkhole here. History should have taught us better.

</comment><comment><USER26> Everyone is discussing about how autonomous cars will react to various situations. However, the real question is - once we have walled gardens, who'll control it - the manufacturers or the government?

By that I mean, all automated cars (especially level 5) would need some kind of network connection (both cellular and mesh) - which means "your" car (if you own one - which from the looks of how things are shaping is going to be highly unlikely), could easily be stopped for variety of reasons with or without your permissions.

It could be hacked by 3 letter agencies, or by hackers who can than case mass disruption.

While I'm not against self driving cars, I'm very cautious against the "self- driving are the best - they'll reduce death on the road and if you don't support it you are a death loving luddite who can't get on with the times" school of thought.

We saw what happened with we gave up control on our phones, and that's slowly happening to our computers (sure, most of readers here can run/use linux, but linux on desktops still has a much lower market share compared to Windows 10).

I just feel like it's not the right future that I imagined as a kid watching star trek and it's disappointing.

EDIT: another unrelated point I'd like to add is the fact that if we want to have autonomous cars on the road - we'd need co-operation between various companies (which would be easy - we have browser vendors do that, why not car companies?), but more importantly, we need a huge overhaul of our infrastructure for autonomous cars and we need to outlaw humans driving cars on such roads).

</comment><comment><USER27> Approximately 35,000 people died in car accidents in 2015. That's almost 100 people each day. Imagine you had self-driving car that was exactly as good as humans. This car will kill 100 people each day despite of being human-level competent. It has slim chance of surviving public outrage and lawsuits. This points to the fact that self-driving cars needs to be few thousand times better than humans. As in all machine learning problems, as you get along the curve, progress becomes much more expensive for next 1% improvement than last 2% improvement.

One way to circumvent this is establish special lanes for self-driving cars where things are much more controlled, well defined and cars in that lane can communicate with each other to avoid crashes. Long segments of highways might be great candidates. This can heat up the virtuous cycle where people buy self-driving cars to be in that lane which pressures authorities to make more lanes available for them and eventually most lanes are for self-driving cars.

<comment><USER28> 35k die per year in the US alone. Worldwide it's more like 1.25 million. [http://www.who.int/gho/road_safety/mortality/traffic_deaths_...](http://www.who.int/gho/road_safety/mortality/traffic_deaths_number/en/)

You don't need autocars to be 1000 times better than humans. You just need them to be equally good as the average driver ALL THE TIME, such that they're never distracted, sleepy, driving unlawfully, etc. The occasional lapse in driver competence is the cause for the vast majority of crashes. I suspect the limitations of driver (or autocar) perception plays a small role in most accidents when compared to lapses.

As residents of a developed country, with a very low death rate per mile driven, we also see traffic risks very differently than the world's norm. The annual death rate per 100k motor vehicles in the US is 13; in India it's 130 in Africa it's 574. In the more unsafe countries, I suspect driver error is the cause of 99% of accidents. Replacing human driver decisions with autocars would reduce worldwide driver fatality risk enormously, reducing perhaps 90% of global traffic fatalities -- about one million people a year.

</comment></comment><comment><USER29> I personally tried to give the Google car "hard miles" by cutting it off in traffic last year. I believe I was being helpful, but I feel bad about scaring the "driver."

<comment><USER30> Why wouldn't you cut it off if you saw it coming? You know it's gonna drive to the letter of the law. Do you really want to get stuck behind that?

<comment><USER31> The article links to Rodney Brooks, who mentioned this in a recent blog post [http://rodneybrooks.com/unexpected-consequences-of-self- driv...](http://rodneybrooks.com/unexpected-consequences-of-self-driving- cars/):

> At least one manufacturer is afraid that human drivers will bully self > driving cars operating with level two autonomy, so they are taking care that > in their level 3 real world trials the cars look identical to conventional > models, so that other drivers will not cut them off and take advantage of > the heightened safety levels that lead to autonomous vehicle driving more > cautiously.

</comment></comment></comment><comment><USER32> There is a great proverb that reads "man who says it cannot be done, should not interrupt man doing it."

If you removed Tesla from the equation, Level 4 autonomy would be half a decade away... it's pretty sad how far behind the industry is from this perennially cash strapped upstart.

<comment><USER33> > If you removed Tesla from the equation, Level 4 autonomy would be half a > decade away... it's pretty sad how far behind the industry is from this > perennially cash strapped upstart.

This is simply untrue. Volvo will have a release this year.

The notion that Tesla are the only ones innovating because they're the only ones using the public as guinea pigs is hogwash. Mobileye, Tesla's original self driving technology, isn't even part of Tesla. They have other clients.

<comment><USER34> Some Volvo press on that:

[http://blog.caranddriver.com/meet-the-first-real-family- slat...](http://blog.caranddriver.com/meet-the-first-real-family-slated-to- get-keys-to-volvos-self-driving-xc90/)

</comment></comment></comment><comment><USER35> a genie offers you a deal. "I will prevent all car accidents that cause death for an entire year. In exchange, at the end of that year, I will randomly kill people, one by one, until as many as XX% of the prevented deaths are 'repaid'.

The 1% safety people would take the deal at 99% repaid deaths. But I think most people would only be comfortable with a number much lower.

<comment><USER36> Well, it's not that equivalent a situation. I'd feel personally responsible for the particular set of individuals killed by the genie rather than some other set of individuals. That's too much responsibility for me, I didn't ask for this crap, I should know better than to trust random genie bargains.

<comment><USER37> In the least convenient universe (and therefore the most useful for examining this moral quandary), you don't have the luxury of dodging the question. If you choose to tell the genie to do nothing, then you're choosing for X people to die to save Y.

(The scenario needs work, though - it should be Y people chosen from the road users in question, not just Y random humans.)

</comment></comment></comment><comment><USER38> I found this quote from Dr. Pratt particularly salient, "But fundamentally a thing your readers should know is that this really comes down to testing. Deep learning is wonderful, but deep learning doesn't guarantee that over the entire space of possible inputs, the behavior will be correct. Ensuring that that's true is very, very hard to do."

</comment><comment><USER39> I made a bet with someone recently that within 10 years you will not be able to buy a self driving car off the lot that can drive someone around that doesn't have a licence.

It's a testament to Tesla's propaganda that he took the bet. I look forward to claiming my $500 in 10 years time.

<comment><USER40> So does he.

<comment><USER41> Wanna make a bet?

<comment><USER40> It's a bad bet because Tesla doesn't sell out of lots, and Google won't either.

If you reformulate the bet as "it will be possible to legally ride in a driverless cab without a license somewhere in the world by the end of 2027" I'll take the bet for $20.

I think you might win your original bet on the technicality of car sales lots being averse to selling these kinds of things and ride sharing services being early movers, and more amenable to insurance. Being able to keep cars in a specific service area will help.

</comment></comment></comment></comment><comment><USER42> It's been a while since I've looked at the actual numbers, but from what I recall (the point could be made over a reasonable approximation of X), >80% of the spoken words in an average english speaking adult's spoken language corpus exist in the vocabulary of the average english speaking kindergartner.

In other words, it takes us two-ish years to learn how to use our vocal cords, and another two to three years to get to 80% of an adult's vocabulary. And yet it takes another 12 years just to increase our vocabularies a handful of percent and to become fairly proficient at piecing together those words into coherent and mature enough communication for full time employment.

And that is just one example. Learn 90% of Haskell in one afternoon...learn the rest over the next two decades of your life. Learn 90% of derivatives trading from one book, but spend the rest of your life learning the rest. They aren't examples so much as they are a fact of life: There is an extremely long tail to learning, and extrapolation of where you will be given how fast you've learned up to some arbitrary point will be impossible.

Self driving cars aren't just learning the rules of the road. They are learning human spatial sensory perception and fast heuristics for ad hoc path planning that have been evolved over several millenia. And yes, they are becoming extremely capable extremely quickly...but you won't be able to extrapolate linearly to get to a point where they can take over.

<comment><USER43> I'm not sure that's right. Googling around suggests that the average 5 year old knows somewhere between 3000 and 10000 words, and the average adult knows somewhere between 15000-20000 words. So I think saying a five year old has even 50% of an adult's total vocabulary is probably generous. Of course, if you meant that a five year old would understand about 80% of the words spoken by an adult over the course of a day, 80% sounds like a very conservative guess.

Not that it affects your point at all, I'm just thinking about words now. And while I'm on the subject, XKCD's "Thing Explainer," a book on how things work using only the 1000 most common words, is great fun.

<comment><USER42> Definitely the latter. Played a little too fast and loose :)

</comment></comment></comment><comment><USER44> It's great to see this posted on HN, which in the past has suffered from an excess of gung-ho robocar advocacy IMO.

</comment><comment><USER45> Is this the same Gil (with one l) Pratt of the MIT Leg Lab? (Not to be confused with the MIT Lego Lab! ;)

Are they different people, or did he change the spelling of his name when he moved from legs to wheels? Or is he developing walking cars for Toyota?

Actually his first name is spelled two different ways on this one page, and he looks like the same person, so maybe he changes the spelling of his name frequently: [http://images.sciencesource.com/preview/BA4147.html](http://images.sciencesource.com/preview/BA4147.html)

</comment><comment><USER46> It's refreshing to get a perspective that scopes the true scale of the problem and addresses technical, societal and moral issues.

This seems to be a more responsible and comprehensive engineering perspective than the frenzy and hand waving that accompanies most self driving topics here.

Overestimating AI with little to no data and vastly underestimating not only human driving but the varied traffic conditions they operate in doesn't seem like a realistic or responsible way to solve the problem.

</comment><comment><USER47> It's funny, Uber is betting the farm on autonomous cars becoming reality and reading this reminds us of just how far away that is.

<comment><USER48> What? This article is talking about level 5 autonomy. AKA, "works literally everywhere and all the time".

Uber only needs to get to level 4 to change the world.

<comment><USER49> If Uber gets to only level 4, it still needs drivers to handle those cases that the car can't handle. Doesn't really change the world.

</comment></comment></comment><comment><USER50> So much wrong with this logic: "If autonomous cars are even just 1 percent safer than humans, we should still be using them." Does that "humans" include drunks, idiots, and teenagers? If so, I'm sorry, I would never use that car. I'd like to think I drive 2x safer than the average idiot out there.

<comment><USER51> I took that statement to refer to the cumulative effect of autonomous cars -- Those people you describe are already on the road with you, whatever car you're in.

</comment></comment><comment><USER52> Way back I remember when William Shatner's TekWar was brought to TV. One scene that stood out was when the lead was driving into town, it appeared that limited access roads; US interstate type; were done by car driving itself.

a similar idea would do quite a bit to move the technology forward and increase acceptance. we already have projects that create toll and hov lanes. why can't these also be equipped to assist self driving cars with their tasks?

While I think the Tesla videos were cool, even GM did something similar recently in San Francisco, they are still pretty much scripted events. Tesla is guilty of exploiting the over trusting side of the issue simply by product naming but some of their demos could lead people into assuming far too much ability; will that become a legal liability?

</comment><comment><USER53> Gotta appreciate that shout-out to formal methods!

</comment><comment><USER54> This is really excellent.

</comment><comment><USER55> just found this www.mobiltyx.co

</comment><comment><USER55> www.mobilityx.co</comment>


Meeting, Phone call or Email? - <AUTHOR>

How do you guys decide whether to have a meeting, make a phone call or send an email?  I think the choice of communication method can make a big difference in how well and quickly problems are solved.  I realized today that I have no real method of deciding which one to use other than instinct.
<comment><AUTHOR> Here are some thoughts:

-How well do you know the person.

-How important is this task, decision or event?

-How complex is the task, decision or event?

Meeting<\</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---->Email

Don't know person well</comment><comment></comment><comment></comment><comment>--Know person well

Important</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>---Unimportant

Complex</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>-----Simple

If I don't know someone well they are more likely to misinterpret raw text (flame wars are a good example.) If something is unimportant then it doesn't matter if they misinterpret raw text. If something is simple then there is less to misinterpret.

</comment><comment><USER2> Email has worked best for me. Allows me to have documentation of the info we all decide on. Too many times someone has mistaken or misheard the information and then we end up starting all over.

</comment><comment><USER3> I think it depends on the severity of the problem. If the problem is minor, an email should suffice. If the problem is of medium severity, a phone call or a conference call should be yield results. If the problem is very severe, it would seem best to gather everyone for a meeting in order to brainstorm.

</comment><comment><USER4> Good neetings are things you go into not knowing what the answer is -- they're for synergy. Body language, group particpation, and consensus building are important.

E-mail is for presenting an case, making a conclusion, and asking for agreement. It's a longer format where you get a chance to speak in a one-way fashion.

The phone is great for immediate decision-making: the server is down and I need to know whether to ring the alarm bell or not. With the phone you can get a lot out of voice inflection that you can't get with IM or email. In general, written format is very tough to do humor, nuance, sarcasm, and negotiation.

BTW, the term "meeting" is way overrated. If you're doing work in a group, do the work, whether it's at the water cooler, Starbucks, whatever. There's a whole science involved in making a good meeting, but I'd just focus on the work and make the communication format fit the goal. Use common sense. You obviously can't make a marketing strategy using IM, email, or twitter, so some kind of meeting/workgroup is in order. Likeise, if you've stopped five people working to tell them the code just built, you need to do a little thinking about choosing better formats.</comment>


Netflix Comes to Cuba - <AUTHOR> http://techcrunch.com/2015/02/09/netflix-comes-to-cuba/ <comment><USER2> This has to be a symbolic gesture, and hopefully one that rewards Cuban Internet interests. Currently, this isn't a viable offering for the average resident. I've travelled around plenty of Cuba, and Internet there will not support streaming media. Think poor dialup speeds from the early 1990s, flakey timeouts, dropped connections constantly, and you're imagining Cuban net access.

I've not sampled the connections available to government officials, but until Cuba gets a huge overhaul (read, installation) of a proper internet infrastructure, and peering to multiple countries, they won't be able to make use of this.

<comment><AUTHOR> Wikipedia has some figures from 2011-2013, which says the " _total bandwidth between Cuba and the global Internet is just 209 Mbit /s upstream and 379 downstream_" for " _2.8 million users_ " [1]. A bit of a personal reflection, but my life would be much different, in terms of work, education, and entertainment, if I did not have access to reliable high speed internet.

[1] [http://en.wikipedia.org/wiki/Internet_in_Cuba](http://en.wikipedia.org/wiki/Internet_in_Cuba)

<comment><USER3> Not sure where that 2.8million users number comes from as there is no way ~20% of Cubans have internet service. (11.2mil population) Unless they count being able to get online with censored connections from some schools as having internet?

<comment><USER4> I would think one shared connection can have many users. It would be analogous to a family sharing a computer going to Facebook which counts them as four users not one, because four sets of services are being delivered. If they meant connections I think they would have said that.

</comment></comment></comment></comment><comment><USER5> A few interesting stats from The Guardian's article [1]:

\- Average monthly wage in Cuba is $17

\- 2.8m people with access to internet (26%)

\- 3.3m people with computer access (31%) "at home, work or school"

\- "A modest computer with a monitor costs $722 in Cuban stores, and at least $550 on the black market", so I suspect more at work/school than at home

\- "The country has 53 broadband internet accounts today"

[1] [http://www.theguardian.com/world/2015/feb/09/netflix- launche...](http://www.theguardian.com/world/2015/feb/09/netflix-launches- streaming-service-cuba)

<comment><USER6> I don't get it. Why? This can only be symbolic. Why not take it to Russia, China even.

If this is symbolic it means netflix is willing to do things which don't go toward profit but are willing to do 'symbolic' things. Meaning they are okay with not making money, if that thing fits their ideology --which is fine, great, but it just means there are other things which affect them beside a motive for profits or altruism or free expression, etc.

It's like Caterpillar saying, we're going to build an asteroid-digger.

Or the WWF deciding to build a do-do bird conservation area.

<comment><USER5> Opening up to Cuba probably costs Netflix extremely little. In terms of rights negotiating their content suppliers are currently getting nothing from Cuba so will go for it without any discussions, so all Netflix needs to do is flick a switch in their control panel to allow IPs from Cuba and issue a press release.

Sure, even if 100% of Cuba's broadbrand subscribers signed up it's an insignificant amount to Netflix, but for the low cost they may well think of it as PR and/or marketing (and/or looking ahead to a day when maybe Cuba could give them enough revenue to care about - though seems unlikely to me), not just for ideological reasons.

</comment></comment></comment><comment><USER7> I'd love to see the inverse too -- Cuba coming to Netflix. Would be fascinating.

</comment><comment><USER8> Some additional details on access to the Internet in Cuba:

1) There is only one ISP in Cuba: Etecsa. Cubans can not buy an Internet account from them to use at home, accounts must be used a special cyber cafes around the island at exorbitant rates by the hour/megabyte: [http://www.etecsa.cu/?page=internet_conectividad&sub=interne...](http://www.etecsa.cu/?page=internet_conectividad&sub=internet)

2) Foreign entities, either persons or enterprises can have an interned account, dialup or broadband, See the rates section for "Acceso dedicado" on the same page. from 22 USD a month for 20h at dial up speeds all the way to 30010.00 CUC for 3.4 Mbs. Thats over $30000 USD.

3) Some cubans have dialup accounts either internet or limited access to several national networks on which a proxy can be found (usually not legally) this covers doctors, artists, athletes and others.

4) There is a booming black market for dialup accounts with rates going from 50 to 120 CUC (60 to 140 USD), usually foreigners time sharing their accounts but other type of accounts can be found if you know the right people (illegal and prosecuted).

5) Most universities have internet access with very limited bandwidth (~2mbs) shared among students and professors.

</comment><comment><USER9> A few years ago, I read that cuba had like 250 MBPS for the entire island. A cuban guy told me that dial up was as expensive as a cheap appartment. (I dont know if their band has broadened, because Venezuela said publicly that they would connect a cable to them, but never heard of it actually happening).

Considering the extremely little bandwidth they have, a homebrew wireless 'cable' from Florida or Mexico would be a game changer for Cuba.

<comment><USER10> Venezuela's Alba-1 has been operational since 2013.

[http://www.engadget.com/2013/01/25/cuba-confirms- alba-1-fibe...](http://www.engadget.com/2013/01/25/cuba-confirms- alba-1-fiber/)

<comment><USER9> Thanks for the clarification jpatokal. Also, the guardians article from corin_ [http://www.theguardian.com/world/2015/feb/09/netflix- launche...](http://www.theguardian.com/world/2015/feb/09/netflix-launches- streaming-service-cuba) solved my doubts.

</comment></comment></comment><comment><USER11> I guess this is more of a symbolic gesture than anything else but I will take it as reminder that we take for granted so easily the fruits of a free market economy like united states while actively encouraging government involvement for the so called "fairness". Cuba is probably most fair among all countries. Almost everyone is pretty much destitute.

</comment><comment><USER12> This article and the press release by Netflix fails to mention anything about their DVD rental service. Since Cuba's current internet infrastructure has not been developed, streaming videos seems a bit premature. Some may dismiss this as a token gesture, but I believe it would be smart for Netflix to expand in Cuba as they did originally in the US.

</comment><comment><USER13> Funny, I think it was 60 minutes which had a story about Cuba that mentioned there was no internet in the country. Reporters seem to get a lot of facts wrong.

<comment><USER14> Probably `virtually no' internet.

</comment></comment><comment><USER15> Hey Netflix, what about Italy?

<comment><USER16> The problem is almost always complicated licensing agreements. Netflix will launch when and where they're able to offer a good catalog of videos.

<comment><USER17> Then they probably should have waited a bit longer with the Germany launch.

Seriously, I check allflicks to see what's new and out of 10 new movies/tvshows almost always 7-8 of them are for kids. They might as well rename their service "Netflix Kids: Germany" or something.

It's one thing only offering a tiny subset of the US catalog but quite another to only add kids stuff. That area has got to be twice or three times the size of the non-kids sections.

</comment></comment></comment><comment><USER18> "Internet access (which still isn't ubiquitous in the U.S.)"

Wait, what?

<comment><USER19> I found this document:

[http://www.census.gov/content/dam/Census/library/publication...](http://www.census.gov/content/dam/Census/library/publications/2014/acs/acs-28.pdf)

Refer to page 3, where it is reported that 74.5% of households 25 years and up had some internet subscription (and 73.5% had high-speed access). That's no small number, but you could easily call "3 in 4" short of ubiquitous. Note that many of the remaining households have some form of access to the internet, just not a subscription at home.

<comment><USER20> It's a true statement, but it makes little sense in context. Parentheticals are supposed to relate to the surrounding text somehow, and I just don't see it here.

</comment></comment></comment><comment><USER21> "It'll still require an international payment method for now, as well as Internet access (which still isn't ubiquitous in the U.S.)"

U.S. ???</comment>


Professor Edgerton's Atomic Camera - <AUTHOR> http://www.damninteresting.com/rapatronic-nuclear-photographs/

<comment><USER2> These photos must have been the inspiration for Isaac Asimov's short story, Hell-Fire:

[https://en.wikipedia.org/wiki/Hell-Fire](https://en.wikipedia.org/wiki/Hell- Fire)</comment>


HP to enter 3D printing market in mid-2014 - <AUTHOR> http://www.3ders.org//articles/20131023-meg-whitman-announced-hp-to-enter-3d-printing-market-in-mid-2014.html

<comment><USER2> But will we be able to afford the "ink"?

Maybe the business model will be different.</comment>


Great Startup Engineers - <AUTHOR> http://blog.derrickko.com/great-startup-engineers

<comment><USER2> So great startup engineers should have focus, compassion, balance, responsibility, and openness. When would you ever _not_ desire these traits in someone? The opposite is scatter-brained, indifferent, unbalanced, irresponsible, and uncommunicative; all rather undesirable traits.

I'd much prefer to learn about some trade-offs. Is lacking any one of these traits a deal-breaker? What if someone's very focused and compassionate, but a little irresponsible?

And most importantly, how does one evaluate these traits?

<comment><USER3> Hey, you brought up another one: not a black-and-white thinker!

Things are not only their extremes and the opposite. Hence why "balance" is actually an extremely undervalued quality in a person, and it was very apt of the author to call it out.

<comment><USER4> I think your observation about thinking in black and white is a good observation. However, you still haven't answered the OP's original question. And adding your observation to the list, these sorts of things are still required at large organizations.

</comment></comment></comment><comment><USER5> None of the qualities mentioned here are really specific to startups. Even if you work in a big company with lots of product managers and marketing people, being able to focus, take responsibility and empathize with your users is key to being a good developer. And definitely good qualities to have if you ever want to be promoted beyond an entry-level job.

</comment><comment><USER3> I went in expecting something about dedication and ability to go the extra mile and be a "rockstar"—but instead it was a refreshingly short and focused list of often undervalued traits. Nice article.

</comment><comment><USER6> I have a problem refocusing again and again. How does one go about that? Are there any resources that can help one with that. I am very comfortable with focusing on one thing and getting it done, but as soon as I switch contexts, I take a while to get up to speed.

</comment><comment><USER7> Compassion is a great one, a trait I feel like we don't spend enough time talking about as an element of success. I've worked with many extremely talented, genuinely bright people whose business skills suffered because of a lack of compassion and empathy: for their users, coworkers, or people they generally (and probably correctly) considered less intelligent than themselves. Making a conscious and genuine effort to understand someone else's position and needs will get you MUCH further than dogmatic self-righteousness - even if you really are right. ;)

</comment><comment><USER8> He is missing one thing a great start-up engineer should have: a great big chunk of equity, preferably all of it.

</comment><comment><USER9> Stop blogging and add a fucking progress bar and transfer speed indicator to your file transfer app, ffs.</comment>


Crowdfunding for Typed Clojure and ClojureScript - <AUTHOR> http://www.indiegogo.com/projects/typed-clojure <comment><USER3> Ambrose is doing some super awesome work with Typed Clojure.

I'm a big believer in pluggable, optional type systems. Hell, even recovering typeaholics are starting to believe that Gilad Is Right [1]. Ambrose has managed to get me excited about what types can do for me in dynamic languages without bogging me down.

There's lots of cool things we can do with types without having them split our language in to two sublanguages (type and term languages), pervading our compilers and runtime environments, and preventing us from doing useful things. If you view types as yet one more tool in your verification toolbox, you gain a lot of freedom. Consider "Type Coverage" as an analogy to "Test Coverage". I shared that idea with Ambrose, and he jumped right on it! [2]

With good, community standardized tooling, we can forgo forcing the type system in to our compilers and down the throats of ever programmer, but still reserve the option when we need more confidence in our code. So get behind types as a library and throw a couple bucks at Ambrose so he can continue his work!

[1]: [http://lambda-the-ultimate.org/node/1311](http://lambda-the- ultimate.org/node/1311)

[2]: [https://groups.google.com/d/topic/clojure/qiE7PP9uGKg/discus...](https://groups.google.com/d/topic/clojure/qiE7PP9uGKg/discussion)

<comment><USER4> Making the type system pluggable and a separate pass also means you can do cool things like interfacing your type system with your database [1]. And the Heterogeneous and Value types mean you can be very flexible and precise with your requirements while also coding in a mostly idiomatic Clojure way. (Though things are obviously still raw or unimplemented, the base is looking good and shaping up quickly.)

[1]: [https://gist.github.com/c-spencer/6569571](https://gist.github.com/c-spencer/6569571) (just a PoC)

<comment><USER5> Yes, although that's not the only wayh to do these things: F# has type providers, for instance. Although I've been burnt by C# web services and Hibernate often enough to be sceptical of the idea.

<comment><USER3> Worth pointing out:

Type providers, while awesome, are simply code generators that run interleaved with the type checking pass.

What's happening in that linked Gist is a bit different: It's generating types _signatures_ that are devoid of their own behavior. In order to recreate type providers (or Hibernate-like things), you'd also need to give a type as a parameter to a macro for code generation. Since you can invoke the type checker at anytime, you can interleave code generation and type checking in much the same way as F#.

I don't think it's a good idea to generate code and strongly coupled types at the same time. An alternative approach would be to take some common source data structure, generate code and then generate types to validate that code. Those are two separate transformations, not one like with type providers. Type providers mean that type checking, compilation, and execution are coupled. In this Gist, you could run the code with or without type checking and you could ignore the code generation completely and run type checking for internal consistency. Much more flexible.

</comment></comment></comment></comment><comment><USER6> I'm not a Clojure guy, but I'd love to see this type of funding for language/tool developers take off.

We as an industry/community get so much for free (and expect it these days), that it's ridiculous the only way for devs to get paid to do this is sell support contracts to enterprises (Redhat, Spring, TypeSafe). Or work for companies so embarrassingly profitable (Google) that they can subsidize it.

Neither of which is funds being provided to the developers themselves.

Not that I want to jump over to an MS-style "pay for everything" approach-- open source is great, but seems like there could be a balance/middle ground that we're missing.

<comment><USER7> Completely agree - very excited to have just sponsored Ambrose's project as Snowplow Analytics. As an industry we need to get much better at acknowledging and supporting the role the technology components "under us" in the stack play in our own products' success; Zed Shaw made this exact point talking about Mongrel in his Why I (A/L)GPL post.[1]

So direct sponsorship to developers doing innovative things is great - <USER2> Typed Clojure is really innovative, one of the things I'm most excited about at the moment (along with Mesos, Rust and Summingbird). We don't use a lot of Clojure at Snowplow yet - but we use some[2], and we will likely use a lot more with Typed Clojure, because optional typing is such a great fit for ETL work.

Keep up the great work Ambrose!

[1] [http://zedshaw.com/essays/why_i_gpl.html](http://zedshaw.com/essays/why_i_gpl.html) [2] [https://github.com/snowplow/snowplow/tree/master/2-collector...](https://github.com/snowplow/snowplow/tree/master/2-collectors/clojure- collector)

</comment></comment><comment><USER8> Backed.

Optional typing seems really promising, I'd like to hear more about what kinds of things it can't do though. If you hypothetically do annotate all your code, what are you missing out on by not having pervasive static typing built in like in Haskell? Is it mostly the fact that you're much less likely to go back and annotate all your code or are there deeper trade offs I'm not seeing since I'm not that experienced with strongly statically typed languages?

Does anyone know any good resources about the tradeoffs?

<comment><USER9> Yes, there are differences. Fundamentally, the Haskell type system is not just about correctness: it actually makes the language more expressive! You simply wouldn't be able to do some very awesome typeclass things with a system like this, for example. I've found things like QuickCheck--or even just using different monads--to be much more awkward without typeclasses.

The way this works is by allowing you to overload a function on its _return_ type. It's very easy to imagine a function overloaded on its argument; for example, a hypothetical:

        to_string :: a -> String

This function can take an argument of some sort and returns its string representation. Many languages support this sort of overloading--it's very straightforward. But what about the symmetric from_string function?

        from_string :: String -> a

Now this is trickier! Most languages would force you to be more explicit about which function you're using, so you would have to write something like Double.from_string or Integer.from_string and so on. This loses the symmetry inherent in the types and forces you to add a whole bunch of redundant noise to your code. Very reminiscent of Java's Foo i = new Foo()!

With typeclasses, you can actually write a from_string function like this. Moreover, it works using exactly the same type inference system you already know and love! In practice, this means that the overloading is very straighforward: it just chooses whatever type you need. And since the type system is pervasive, you know that it will always choose the right instance if possible: if you use from_string expecting an int, it can't accidentally use Float.from_string because that wouldn't even typecheck.

This turns out to be useful in a whole bunch of different places. One of my favorites is with numeric literals: in Haskell, numeric literals are polymorphic. This means that if you write f 10, 10 will be the right type-- integer, double, arbitrary precision integer, whatever--for the function. No more arbitrary sigils after your numbers (like 10L). More importantly, this makes new numeric types feel just like native ones[1]. So you can use normal literals with rational numbers or constructive real numbers or 8-bit words or symbolic bitvectors (most of which I've used in real code). These types no longer feel like second-class citizens!

Haskell type inference is even more useful than that though. Not only does it reduce the burden of using the type system, it also actually enables new workflows. Instead of giving the compiler your types and waiting for it to show you where they're wrong, you can actually just ask the compiler what type it _expects_. You can use this to interactively grow your program, informed by your types. The newest version of GHC will make this more convenient by adding a feature called "type holes", which lets you leave holes in your code and will tell you the types of those holes. Once this gets good editor support, it'll be incredible.

The Haskell type system--partly because it's pervasive and partly because it controls effects--also makes some high-level optimizations like steam fusion possible. The basic idea is that it can rewrite multiple logical traversals over an array into a single tight loop. The crazy thing is that this optimization is actually specified by a library, and not built into the compiler! So there are actually a whole bunch of rewrite optimizations like this, most of which are only guaranteed to be correct thanks to the type system. Since they're somewhat tricky to debug even with all the existing guarantees, I don't even want to imagine what it would be like with a weaker type system.

Honestly, I think you would be missing out on most of the real advantages Haskell gives you. And for what? At least in my experience, you do not get much of a boost in productivity or expressiveness. Even without invoking the optional type system.

So yeah: lots of deeper tradeoffs.

[1]: Take a look at "Growing a Language", a brilliant talk by Guy Steele that goes into why it's important to allow new additions to feel just like native parts of a language.

[http://www.youtube.com/watch?v=_ahvzDzKdB0](http://www.youtube.com/watch?v=_ahvzDzKdB0)

<comment><USER10> All true, but at least Clojure (I don't know about other dynamic languages) provides some this power with protocols (which are very efficient) and multi- methods. core.logic provides the missing pieces.

> Honestly, I think you would be missing out on most of the real advantages > Haskell gives you. And for what?

Forget about a static type system in particular: every bit of power you get from a language has a price. Sometimes the cost is performance and sometimes – and this is often a much higher cost – language complexity.

When choosing a programming language, you should not aim for the most powerful language, but for the one that gives you the power you need for a price you're willing to pay. Clojure strikes a pretty remarkable balance: a lot of power at a very low price (it's very simple, very easy to learn, integrates extremely well with legacy code, and can give you great performance when you need it). It is arguable whether Haskell gives you more power, but even assuming it does, this power comes at a much higher cost. Haskell is not easy to learn, and it's not simple to integrate with legacy code. The right question, I think, is how much are you willing to pay for extra power? Is extra power worth it?

<comment><USER9> Haskell, fundamentally, is actually quite simple: it's just the lambda calculus. You could fit the typing rules on a single piece of paper, and the evaluation rules are even more trivial. It is very difficult to come up with a simpler model than the lambda calculus.

Sure, it might be _difficult_ to learn, but that's very different from being _complex_. Haskell is, if anything, _different_ \--but this is also why it's so much more expressive! I think this is a great example of Rich Hickey's distinction between simple and easy. Also, learning a language to some level of proficiency is an O(1) cost but the benefit is O(n) to how much you use it, so I really don't think you should consider that much.

Avoiding a language because it seems difficult to learn is just shortsighted.

Now, Haskell does have some complexity that other languages don't. But this is mostly in the compiler and runtime system: things like the incredible parallelism and concurrency features. There are languages that have _much_ simpler runtimes, but Clojure ain't it: the JVM is probably the most complex existing runtime, full stop.

Legacy code, also, is more a matter of being on the JVM than language design. If you have a bunch of legacy code in C, it'll fit better with Haskell than Clojure. Calling out to native programs from the JVM is a real pain. The Haskell FFI, on the other hand, is relatively nice.

More generally, I think the idea that every bit of power has a price is not accurate. I agree that language design is going to be a complex optimization problem against several axes. However, this does _not_ mean every improvement along one carries a cost along another--not every language is along the Pareto frontier! Since all languages are imperfect, you _can_ get strict wins.

Also, as I understand it, protocols do the _easy_ part I talked about. Certainly useful, but not very interesting. I do not see how you would accomplish return type polymorphism in Clojure--something like the from_string function or polymorphic numeric literals--because the information needed is simply not there. I'm not saying it's impossible, but I've certainly never seen it done.

</comment></comment></comment></comment><comment><AUTHOR> Here's IMO a pretty freaking cool snippet of the possibilities, generating a static type from your database - [http://gist.github.com/c-spencer/6569571](http://gist.github.com/c-spencer/6569571)

<comment><USER11> F# type providers already do that, also static types from CSV files, REST services and many others.

<comment><AUTHOR> I didn't realize this until someone else mentioned it today. Thanks for bringing it up, very cool.

</comment></comment></comment><comment><USER12> This is actually a really cool and decent crowd-funding campaign. It looks like it's going to get funded as well, I might even donate a few dollars myself.

Aside: Looks like Ambrose is an Australian guy as well. Spotted the accent immediately, as a fellow Australian myself it makes me proud to see another Australian who not only is super smart but has created something that I think is extremely useful. My experience with Typed Closure has been limited, but I think this deserves to be funded.

<comment><USER13> Thanks!

</comment></comment><comment><USER14> Is weird. If you have static types then want dynamic (I want it with Delphi). If have dynamic then want static (I want it with python).

I have thinking in how a language with both could be. For example, say Customer.Name(Str) is static but Customer..Name(?Str) is dynamic. In my experience, is better to have static typing almost all the time and "escape" to dynamic for auto-generate things (like data from a DB) and/or quick experiments...

<comment><USER15> isn't that what C# does with it's static dynamic type?

<comment><USER14> Is different because you need to type your untyped type!

I think in just a change in the "." or ".." character. So is not necessary to type the untyped, just change the dot for another thing to bypass the type checking in compile time

</comment></comment></comment><comment><USER16> I hope it turns out better than optional typing for Erlang. I have frustrating memories of using it, which left me sceptic for optional typing features.

</comment><comment><USER17> This is probably a stupid question, but I know that Ambrose has written and presented on a type checker written in core.logic. Is this related to that in any way?

<comment><AUTHOR> Unrelated, Typed Clojure is based on research that went into Typed Racket

<comment><USER13> Just as cool though! :)

</comment></comment></comment><comment><USER18> Is there a list of interesting practical use-cases for this that someone used to regular dynamic Clojure could look at to better understand the benefits?

<comment><USER13> It's invaluable with abstract code that throws around functions. It's also fantastic for documenting your code.

Watch "Typed Clojure" 2012 Conj talk, might reveal more about where it's best suited.

</comment></comment><comment><USER19> my first thought was getting 6 months of his time for 20K seems like an incredible bargain.

</comment><comment><USER20> So why didn't Clojure have this from the beginning? Wasn't that on purpose?

<comment><USER21> Clojure is a small core of a language that can be flexibly extended with libraries in ways that other languages would require built-in support for. See core.async for another example of this.

<comment><USER20> Oh I see, I didn't know that. Thanks.

</comment></comment></comment><comment><USER22> As a major fan of Clojure and also of the possibilities of static typing, I have to give this campaign major props. I hope it funds.

Also, the perks are really cheap compared to the value, including exposure (because even though Clojure is a small community, it's a _really strong_ community).</comment>


Dumb and gets things done - <AUTHOR> http://www.johndcook.com/blog/2010/12/27/dumb-and-gets-things-done/ <comment><USER2> This is off topic, but I've read that Napoleon actually did value his stupid but energetic officers. They could be counted on to charge whenever ordered, even against impossible odds. (That particular officer would likely die, but that was acceptable part of the overall plan.) Baron Marbot was wounded a dozen or so times this way.

</comment><comment><USER3> Reminds me of a Critical Thinking course my company held; the instructor asked everyone how many lazy people they'd want working for them. Everyone who answered said "none", but the instructor countered that they would want at least a few lazy people, so that those people could find the shortcuts and work-saving techniques that could save the whole group time, instead of going full out on a bunch of stuff that's unnecessary or needlessly tedious. I assume the assumption was that these lazy people were also competent, ie. "smart", or they wouldn't necessarily find/make the short-cuts...

<comment><USER4> Or worse, the shortcuts they took ended up hurting in the long-run.

Making room for the new interns' desks by putting them in the unused corner, instead of renting more office space, is a great shortcut, unless it blocks the fire escape and your building catches fire.

<comment><USER5> Wouldn't you trust the rest of the team to cross-check that? I mean, if no ones sees that the fire escape is blocked, not only the lazy folks are your problem...

</comment></comment></comment><comment><USER6> My experience is that "dumb and gets things done" is almost always the most heavily rewarded. Mostly because they are _always_ busy. Most managers tend to stop once they determine if someone gets things done. And the dumb ones certainly get more done than anyone else.

</comment><comment><USER7> Reminds me of the note at the end of the perl man page:

"The three principal virtues of a programmer are Laziness, Impatience, and Hubris."

I'm not a Perl guy, but I love that quote.

</comment><comment><USER8> I'm usually dumb until I've gotten something done. Then I realize I could have done it much smarter.

<comment><USER9> Refactoring is not just for code. :)

</comment></comment><comment><USER10> "Joel Spolsky says that the ideal programmer is someone who is smart and gets things done. But what about people who are dumb and get things done?"

They are not ideal.

<comment><USER11> According to this article they should be shot.

</comment></comment><comment><USER12> Deep to this is the ability to measure. We like to measure things, and we like to reward proportionate to what we measure.

It doesn't work for creativity based fields, but it works great for non- creative tasks. I would look up Dan Pink's book called Drive.

You can factor the work equation and combine both methodologies to enable smart programmers to work with dumb programmers. The key is to understand where the line between smart and tedious is.

</comment><comment><USER13> There's a similarity with politics. Ideally you want to vote for someone ethical and effective. But the worst candidate is someone who is unethical and effective.

</comment><comment><USER14> _Computer programs consists of lines of code, and lines of code consist of characters. So it's good for a programmer to be proficient in producing lines of code and characters._

The more proficient I get the more I think that there's an inverse relationship between proficiency and lines of code needed to produce a result.

</comment><comment><USER15> IMHO the writer is setting up simplistic strawmen to knock down, without going into nuances. For e.g., why conflate 'getting things done' with 'producing bad code'?

Also, in the paragraph about a 'good teacher', he protests that that this wouldn't matter if they were ignorant. Maybe he could do a better job of conveying the exact context, but I would contend that 'good' implies 'knowledgeable' for a teacher. I've had plenty of teachers who were knowledgeable, but couldn't teach/communicate for nuts.

 _p.s_ : I might be a bit defensive here, as I honestly consider myself of the 'dumb but gets things done' ilk.

</comment><comment><USER16> A teacher who instills enthusiasm in a subject area is more valuable than a teacher with no knowledge gaps in said subject area, all other things being equal.

</comment><comment><USER17> I'd first get rid of "smart and doesn't get things done"

</comment><comment><USER18> As a high schooler, I'm fascinated with a similar paradox that I've observed. In my opinion there are four defining types of students, smart with a strong work ethic, average intelligence with a strong work ethic, smart but prone to procrastination, and average and prone to procrastination. In the schooling system, the order I listed is also the order of highest grades to lowest grades, meaning that these groups are ordered in highest to lowest scholastic value. I don't think this order is relevant outside of school though as people take more targeted jobs that appeal to their interests. This presents a problem as college admittance is based on the hierarchy I listed, meaning that some of the smarter kids will be put on a path that doesn't set them up for an optimal career.

</comment><comment><USER19> Many times "dumb and energetic" succeed because they don't overthink what can't be done and somehow make their problem everyone else's.

This is like the person that keeps calling you to fix their computer (and then you keep doing it).</comment>


Stripe Shop - <AUTHOR> https://shop.stripe.com <comment><AUTHOR> We realized we weren't using Stripe in-house at Stripe, so we decided to fix that.

<comment><USER2> For a second I thought you guys were going to compete with Shopify and Fab, etc!!! :D

<comment><USER3> Which would be awesome.

</comment></comment></comment><comment><USER4> Can I just come down there and buy the shirt? I feel like shipping a $10 shirt from the Mission to SOMA is not the best use of resources.

<comment><USER5> Shipping it may be lighter on resources than your going to pick it up. Plus, resources aren't everything—your time is valuable, too.

</comment></comment><comment><USER6> Oh how I wish this cart was open-sourced.

Any plans to do that soon?

<comment><USER7> Looks like the are using V3 of Stripe Checkout. Hopefully if will be in the next release.

</comment></comment><comment><USER8> Lovely demo of checkout! Would be great to see a "How we built stripe shop in 1 day using Stripe Checkout" blog post to go with it :)

</comment><comment><USER9> this is boutique ecommerce done right.

</comment><comment><USER10> Love the layout and animations.

</comment><comment><USER11> The UI is lovely, although if you also sold some mugs I'd probably get one!

<comment><USER3> Seconded.

</comment></comment><comment><USER12> Times must be hard if you're selling free t-shirts for money :-p

</comment><comment><USER13> Is this 100% cotton?

<comment><AUTHOR> Yes.

</comment></comment><comment><USER14> simple and nice</comment>


Why Atom Can't Replace Vim - <AUTHOR> https://medium.com/@mkozlows/why-atom-cant-replace-vim-433852f4b4d1

<comment><USER2> [https://hn.algolia.com/?q=atom+vim#!/story/forever/0/atom%20...](https://hn.algolia.com/?q=atom+vim#!/story/forever/0/atom%20vim)

</comment><comment><USER3> Why are there 50 zillion reposts!?!?!?

</comment><comment><USER4> atom cant even replace sublime</comment>


Ask HN: Any health tips? - <AUTHOR> What works for you and what don't. Lets hear it.<p>I don't know about you guys but vitamin b complex really helps in my ability to focus and mental acuity. <comment><USER2> In my view, we are physical/emotional/intellectual creatures and harmonious functioning of all three centers leads to exponentially increasing productivity.

Physically, I treat the body as a machine that runs on macronutrients (fiber, protein,carbs) and micronutrients. I looked up daily requirements of each macro and I make sure I get them. Micronutrients come from a vitamin. A cornerstone of my diet is the protein smoothie - orange juice, brown rice protein, probiotic yogurt. Muscles are made of protein and they grow by stressing them until they breakdown then letting them regrow bigger. So, I do cardio every day and weights alternating upper/lower 5/7 days.

Emotionally, the key for me is minimizing lying and living according to my principles. I also make sure to take time to take pleasure and relaxation. This does wonders for my motivation. I also try not to express or fixate on negative emotions, rather to take them as a signal that change is required and then let them go by as unnecessary wastes of energy.

Intellectually, I am merciless with myself. I use lists and lots, really a lot, totally excessive numbers of tests to make sure that I'm not seeing what I want to see.

That's about my philosophy of living a healthy life.

<comment><USER3> I'm curios about the tests. Can you expand?

<comment><USER2> nothing particularly interesting really. most of them are in junit. otherwise, it's simple stuff like marking off when I stick to schedule or violate it, estimating times and then checking those estimates.

</comment></comment></comment><comment><USER4> Drink enough water. Even _slight_ dehydration causes fatigue, emotional discomfort, and loss of focus. (There's an easy way to tell if you're hydrated: your urine will be nearly clear.)

Get enough sleep.

Eat a balanced diet: lots of veggies and fruit, some lean meat and dairy, and the right amount of carbs to keep your blood sugar consistent without adding too many empty calories.

Keep your body moving. Sitting in your chair staring at a screen for 8 straight hours is stressful. Get up and take a short walk while you're thinking through a problem. Pick up a hobby like biking, swimming, or martial arts.

<comment><AUTHOR> But taking vitamin B complex make my urine bright pretty yellow :-)

</comment></comment><comment><USER5> Stay away from ALL fast food. Even their "healthy" choices are designed to maximize profit margins, and there's just something unsavory about decades of processed food.

I stopped eating fast food about 3 years ago, and I have felt healthier ever since - I didn't change any other significant part of my diet/living situation - and I've only gotten sick once or twice, my migraines have decreased despite the added stress of college, plus I've become a better cook.

</comment><comment><USER6> -Fruit is healthy\quick\convenient\delicious and is always a great standby. Try to eat a little fat with them though (walnuts, almonds, hazelnuts are great) to stabilize the blood sugar impact and absorb any Vitamin A.

-Cook with coconut oil or olive oil

-If you don't like eating your veggies, try them with more garlic. Or add spinach in with whatever you're cooking, it gets a good flavor once heated and even works with pasta.

-Vitamin D supplement is extremely important if you are moderately nocturnal, you also can't absorb any calcium without it (look into this late-night coders)

</comment><comment><USER7> I went low-carb three weeks ago and have lost c. 6lbs (edited!) since. I gave up alcohol a week later (still have the occasional one though). Feeling much better, sleeping better, more energy, etc. I have always been skeptical of "fad" diets but this one is working fine for me. "Good Calories, Bad Calories" by Gary Taubes was the starting point for all this.

<comment><USER8> That much weight loss (6 Kg) sounds great! Good job. Be careful with loosing too much too fast, that could leave you with skin folds (excess skin hanging loose). I seem to remember 1 kg per week is the safe amount. Ask a physician.

<comment><USER7> Ack! I meant 6lbs, 3Kg!!

My understanding is it tails off after a few weeks, but thank you for the advice. I think it has something to do with fluid loss in the early stages or something like that.

<comment><USER9> Yes. Glycogen is branched, polymerized glucose, and has a strong affinity for water. When you go low-carb, you reduce your glycogen stores, and thus your water stores. This type of weight loss is rapid but temporary (insofar as it's not a reduction in what most people want to lose: fat).

</comment></comment></comment></comment><comment><USER10> Avoid fads. Overdoses of this or that trendy food or supplement are surely a bad idea. Support healthy eating by daily outdoor exercise. Get more sleep than you have been getting recently.

<comment><AUTHOR> I think almost everyone I know in the IT industry underestimate how important it is to get enough sleep.

<comment><USER11> Until you get older. I recently came to the realisation that I need three days to overcome the fatigue of a 3 hours night sleep. That means I can't afford a short night every week, else my productivity will drop dramatically.

</comment></comment></comment><comment><USER12> I believe strongly in the power of supplements to structure the rest of diet. Here is my current supplement structure:

Multivitamin + 6000 IU Vitamin D + Calcium

Omega-3

Whey protein(at approximately the bodybuilder-style "one gram per pound bodyweight" level)

For meals I mostly eat in a low-carb/paleo fashion - because I find the fatty foods easier to digest, overall. Protein, fat, fiber, are what I look for(and quality fats too, a lot of the cheap vegetable oils seem shady and give me bad reactions). Adding the whey protein really helped because it nullified a lot of the cravings that would make me break the meal plan. Discovery: if you eat like a bodybuilder, even without training you're going to start looking sort of like one.

The other supplements are general health measures to help my mood, alertness and immune system. My GF, who has not yet bought into clean eating, recently got the same bug as I did at about the same time. I barely realized it was there and was over it in three days. She was taken down for about a week with some vicious "can't-do-a-thing" days in the middle. I've only been with her a short while, so I hope I can encourage her.

</comment><comment><USER13> Why rely on HN's anecdotal advice when you can use scientific evidence?

[http://www.informationisbeautiful.net/play/snake-oil- supplem...](http://www.informationisbeautiful.net/play/snake-oil-supplements/)

</comment><comment><USER14> A cup of tea and 5-15 minutes of meditation always helps to start my day.

</comment><comment><USER15> Daily exercise (biking, running, or swimming) has greatly increased my overall coding productivity. I'm able to work longer hours with a higher level of focus.

</comment><comment><USER16> Just one, exercise.

I try to exercise at least 3 times a week, I do some cardio and then exercise with weights. After a month or so, your food intake will likely change and you'll start to realize what you need in terms of nutrition. Your body will also become stronger and you will sleep much better and the exercise itself is great for stress relief.

As far as supplements, I don't like them. Even the case of taking multi- vitamins is getting mixed reviews from physicians.(I take a vitamin D supplement on Dr's orders)

</comment><comment><USER17> I had a bad cholesterol profile: low HDL and high LDL and triglycerides. I really didn't want to take any statins because of the dangerous side-effects, so my doctor prescribed niacin instead: Niaspan. I had taken over-the-counter niacin before with no results, but the Niaspan gave me the niacin flush that first night, and after a few months my LDL, triglycerides, and total cholesterol were all in well inside the healthy range, and my HDL was just below the healthy range. I just had my six-month followup blood tests, but I haven't gotten the results yet. I'm expecting to be in pretty good shape.

I've taken between 1000mg and 3000mg per night, adjusting based on my body's response. At first the flush happened within an hour of taking the pills, then it either stopped or it was happening while I slept. I ramped up the dosage as the flush effect weakened and I stayed at 3000mg for a while, but now that's too much. It seems like my body only needs 2000mg now for the full effect, but I don't flush until about six hours after I take the pills. Based on my blood test results, I may ramp up again to get the flush faster or back off to reduce it.

The flush itself lasts about an hour. It's not comfortable, but it's not bad either. You get hot, red, and kind of itchy. I understand that it's part of the healthy effect of the niacin: expanding your blood vessels and washing out toxins through your skin (which causes the itching).

If you want to try this, you need to get the prescription stuff. The OTC niacin is definitely not the same, at least not here in the US where vitamins are unregulated food products that generally don't contain what they claim to contain.

<comment><USER9> Niacin has toxicities, just like statins. Except for niacin's flush (which is not indicative of any harm, but can be quite uncomfortable), I think the absolute risk of dangerous toxicity for both statins and niacin is very low. Taking both, in supervised fashion, is reasonable.

As an aside, I agree with you re: getting prescription niacin. If you do go with the over-the-counter stuff, make sure it is _not_ "no-flush". The evidence is not consistent with the notion that no-flush niacin has any lipid- modifying effect.

<comment><USER17> Any drug can cause problems, and you should always inform yourself before you take them. The niaspan information is here: <http://www.rxabbott.com/pdf/niaspan.pdf>

From what I've read, it's tough to overdose on niacin, especially the sustained-release forms. There are also apparently no deaths or long-term harmful results from overdoses either. However, they warn against using niaspan if you've already got liver or kidney problems or if you're taking statins too. I also read a warning that ER doctors can misinterpret the symptoms of a niacin overdose as an allergic reaction and give a treatment which does a lot more harm than the niacin would on its own.

I don't have any handy references about statins, but I've read that the side- effects are both more common and more dangerous; so much so that it's questionable whether or not they should be allowed on the market at all. They're also less effective than niaspan, I believe. The anecdotal evidence I have is that my mom was taking a statin for a while. It improved her cholesterol, but she also developed the bad heel pains that supposedly indicate a dangerous side-effect from the statin is occuring. When she stopped the statin, her heel pain went away. Since then her cholesterol hasn't been bad (though it did get somewhat worse after stopping the statin) but if it gets bad again I'm going to insist she try the niaspan instead.

For what it's worth, I don't work for the company that makes Niaspan. I'm just a very satisfied customer.

<comment><USER9> Sustained-release niacin is well known to cause hepatic toxicity. This is reported both in the label that you reference, and in the primary literature. These problems do not occur with immediate-release preparations - only with sustained release (such as Niaspan). So that is worth being aware of.

Statins are among the safest drugs ever used - so much so that most medical people talk about trying to give them to more, not fewer, people. Like niacin, statins can lead to insulin resistance. Statins don't appear to increase cancer risk, which was in question for awhile. There is some literature supporting the notion that reduced LDL may lead to increased cancer, but this is not dependent on the mechanism of cancer, and this conclusion is not yet supported by enough data to make it a concern for anyone. Heart disease is what will kill most Americans, so this is still the primary concern.

</comment></comment></comment></comment><comment><USER18> Quit drinking soda.

</comment><comment><USER19> Go to bed and get up at the same time every day.

Don't do anything in your bedroom except sleep and sex.

</comment><comment><USER20> Take a fish oil supplement and a multivitamin.

Eat as little as you can get away with allowing you to control your weight (up or down!), and do everything you can to reduce your stress levels.

</comment><comment><USER21> Over the last 6 months I've lost a little over 20 lbs by eating healthier and exercising.

I tracked what I ate with an iPhone app and joined the gym. Tracking food intake was tedious but helped me unlearn bad eating habits. I've gone from panting after 5 minutes on the treadmill to running 4 miles in about 35 minutes. I feel like I've found a sustainable, enjoyable pastime that will keep me in good health for years to come. Support from my wife was crucial too.

</comment><comment><USER22> I have read no books on Vitamin D and only a couple asthma-related articles on its benefits. My lungs were in severe pain and I had been looking for anything that could help, so I tried it. WOW. HUGE difference. Turns out D is extremely important and being deficient can impair and damage many things. It has helped with focus, agility, and I feel MUCH better. It has really help with my depression and lack of focus, which were very serious issues (I was unable to work.. seriously).

Try it for yourself and judge. Not the puny 400IU a day. Take 10,000IU a day for a week (it's not toxic) and see if you feel better.

I have hypothyroid and this perpetuates D deficiency.. I desperately needed it. But most people need more Vitamin D, and its effects are widespread and largely unknown. You can do your own research, but please don't tell me its toxic because of the FDA. Try for yourself and pay attention to your body. Just know 400IU is worthless.

</comment><comment><USER23> (organic) vitamin D helped me this winter because there is less sun during these months (in Canada).

I also sit a lot less in front of my computer since i've read [http://www.businessweek.com/print/magazine/content/10_19/b41...](http://www.businessweek.com/print/magazine/content/10_19/b4177071221162.htm) (thanks HN for this) .

</comment><comment><USER24> Adopt a program of RSI prevention, whether you have it or not.

</comment><comment><USER25> Don't forget your teeth. Dental health is correlated with general health, and some dental problems are not reversible (I have severe erosion because I used to drink soft drinks all day).

Apart from diligent tooth brushing (give the inside of your teeth as much time as the outside, and brush at least 2 minutes) eating habits are very important for dental health as well.

\- Limit the amount of times you eat (it is better to eat 6 candies in one sitting than it is to eat 4 pieces of candy during the day) \- Don't drink soda, but realise that for your teeth apple and other fruit juices are just as bad, so severely limit them as well. \- Don't brush your teeth immidiately after eating. \- Eat xylitol mints or chew xylitol gum after meals

</comment><comment><USER26> Avoid all wheat, oats and soy products for a week. See how you feel.

Turned out I had a gluten sensitivity for the longest time, and I felt loads better going off all gluten.

Soy also acts as a phytoestrogen in the male body - could potentially be counteracting testosterone production.

</comment><comment><USER27> Someone taught me a philosophy "Eat Well, Move Well, Think Well", which i am trying to implement in my life right now.

Eat Well - Other than the obvious, this also related to your environment, in terms of the quality of the water you drink, the detergents you use and their harmful effects etc

Move Well - Its not just about plenty of exercise, but more about the right kind of exercise. Anything that stimulates the correct response from your spine which feeds back to the brain

Think Well - Having a positive, can do attitude as well as performing visualization exercises of yourself in a healthy state, since the mind cannot differentiate between reality and imagery in the brain.

</comment><comment><USER28> Plenty of exercise. Try hundredpushups.com for a nice, easy-to-start program.

<comment><USER11> Be careful that pushups can get hard. I had shoulder pains after doing more than 50 pushups a day for a few weeks (down to 30 now).

Vary exercise, and particularly do aerobic exercise, walking, biking, running, swimming, skipping rope... The best is to do some exercise every day.

<comment><USER29> Your shoulder pain is not the result of the pushup program, but more the result of bad form, disbalances in your body (one muscle group is stronger and has to support the other one -> more tension on the weak) or other health issues.

<comment><USER11> Oh yes it is. I had ankle and knee pain running more than 40 km a week, too. I'm simply getting too old for more than 2 hours of intense sport a day, I had to get back to 60 to 90 minutes.

</comment></comment></comment></comment><comment><USER30> Pay attention to macronutrients (carbohydrates/protein/fat) and eat them in proportion to each other. You'll need to do some reading and a bit of experimentation to find what fits your needs best. Getting the right balance of macronutrients will postively affect your mental acuity. That and exercise. If you're getting enough exercise, it's much easier to get good sleep. Once these big picture things are in place, _then_ worry about micronutrients (vitamins).

</comment><comment><USER31> My uncle lived to 106 and until he was about 102 he had more energy than me. Apart from his good genes (alas, he was an uncle in law), I think his two main secrets were:

1\. He loved life. Really loved it. He kept active, doing the things he loved until he died. 2\. He seemed to live pretty much stress free.

</comment><comment><USER32> * Stay far away from microwaves

* Don't drink soda

* No fast food

* Have fruits and veggies daily

* Lots of water

* Exercise daily

* Stretch daily

* Meditate/Yoga

<comment><USER33> Is the microwave myth still going strong here?

</comment></comment><comment><USER34> If you have problems with insomnia or even a tiny bit of seasonal depression: [http://www.amazon.com/Philips-goLITE-BLU-Therapy- Device/dp/B...](http://www.amazon.com/Philips-goLITE-BLU-Therapy- Device/dp/B001I45XL8/)

</comment><comment><USER35> Wasn't there a blog post by someone within the last few weeks re: some sort of "hacker workout schedule" involving x pushups, y crunches and z something else?

That looked intriguing to me, but I forget where it was.

</comment><comment><USER36> Following health tips you found on internet discussion sites (even ones as interesting as HN) is a bit like chewing gum you found on the sidewalk.

Seriously: "What works for you and what doesn't"? Science.

</comment><comment><USER37> A foam roller. Awesome for relaxation.

[http://www.livestrong.com/article/24888-using-foam-roller- ba...](http://www.livestrong.com/article/24888-using-foam-roller-back-pain/)

</comment><comment><USER38> Despite the ad-peppering, <http://www.simplefit.org/> has some good info and a very manageable workout/nutrition schedule.

</comment><comment><USER39> I was told to take vitamin b complex by a doctor because my finger tips were going numb (I thought it was something worse). I don't think it helped my focus.

</comment><comment><USER40> As a medicine doctor and a former president of USA I advice you not to seek health advice from anonymous guys on the internet. Btw, yerba mate kicks ass.

</comment><comment><USER41> Get enough sleep; eat fresh / organic meats, veggies, fruits; exercise (training for amateur competition is good); try to stay as positive as possible.

</comment><comment><USER42> Don't eat such large portions, and cut back on the caffeine. Both of these things help me stay mentally sharp.

</comment><comment><USER43> Give up smoking. Really.

</comment><comment><USER44> don't drink soda. eat more vegetables, eat less meat.

</comment><comment><USER45> Get to bed by midnight & get up when you wake (no alarm clock).

Only eat wholemeal wheat.

Eat plenty of greens - broccoli, kale, savoy cabbage (high iron stuff)

Eat an apple on your way to the office.

Coffee only before mid-day

</comment><comment><USER46> Welcome to BODYBREAK, with Hal Johnson and Joanne McCloud.

Greens+ extra energy eliminates the need for mid afternoon naps, and as a side benefit you may not need to drink coffee anymore! Piracetam/Aniracetam has personally proven effective for focus, memory and mental acuity. ZMA can increase the quality of sleep as well as assist muscle growth and testosterone production. Exercise improves mood and many other health factors. We recommend trying this workout: <http://www.bodybuilding.com/fun/timothyf.htm> Tim Ferris also has a diet designed for losing weight: [http://www.fourhourworkweek.com/blog/2007/04/06/how-to- lose-...](http://www.fourhourworkweek.com/blog/2007/04/06/how-to-lose-20-lbs- of-fat-in-30-days-without-doing-any-exercise/)

SEX. Lots of it. reduce your stress and practice good fitness emotionally and physically. I read something interesting this morning that stress can cause increases in abdominal fat, which is the worst type of fat in terms of it's long term health detriment. <http://stress.about.com/od/stresshealth/a/cortisol.htm>

Have a healthy attitude, stay positive, and remember KEEP FIT AND HAVE FUN!!!

<comment><USER46> I guess this message would of been better conveyed in video format.

<comment><USER35> It would have been better if it didn't read like an infomercial.

<comment><USER46> Sometimes I forget everyone is not Canadian. Bodybreak was a series of educational ads on Canadian TV in the 80's. For ex: Here's an exercise you can do sitting down. [http://www.youtube.com/watch?v=t1p6K0xGKd0&feature=relat...](http://www.youtube.com/watch?v=t1p6K0xGKd0&feature=related)</comment></comment></comment></comment>


Let's Support the Country: Who's Hiring in the Coronavirus Economy - <AUTHOR> Zoom, 2,400-person video conferencing company has 235 open roles in sales, support, marketing, HR, Finance, engineering
https://www.forbes.com/sites/alexandrasternlicht/2020/03/20/whos-hiring-in-the-coronavirus-economy-2736-increase-for-warehouse-handler-7-eleven-adds-20000-postings-more/
Amazon is hiring 100,000 workers, Walmart is hiring 150,000 — here are the sectors adding jobs amid coronavirus
https://www.marketwatch.com/story/amazon-is-hiring-100000-workers-7-eleven-will-hire-up-to-20000-here-are-the-sectors-adding-jobs-amid-coronavirus-2020-03-20
Domino's hiring 10,000 employees amid coronavirus demand surge
https://www.foxbusiness.com/markets/dominos-hiring-coronavirus-demand
CVS to hire 50,000 workers, gives bonuses to employees amid coronavirus pandemic
https://www.usatoday.com/story/money/2020/03/23/cvs-health-hiring-bonuses-coronavirus-covid-19-cvs-pharmacy/2897168001/
Dollar General Add 50,000 Jobs
https://www.forbes.com/sites/alexandrasternlicht/2020/03/20/whos-hiring-in-the-coronavirus-economy-2736-increase-for-warehouse-handler-7-eleven-adds-20000-postings-more/#348791326883
7-Eleven, an international convenience chain with more than 70,000 stores, announced Friday it will be hiring as many as 20,000 store employees.
Kroger is hiring 10,000 new associates nationwide across retail stores, manufacturing plants and distribution centers
Safeway, a national grocery chain, is looking to fill 2,000 new jobs located mainly in California.
Please add more-- <comment><USER2> Posts without URLs get penalized. You've done this a few times, and it's not the convention to submit an article this way.

Instead, post your link, then, if you want to say why you've posted it, add that as a comment to the thread. That way your view is on a level playing field with everyone else's.

<comment><AUTHOR> thanks will do.</comment></comment>