German government to bail Lufthansa out of bankruptcy with nearly $10B state aid - <AUTHOR> https://www.businessinsider.com/german-state-bailing-lufthansa-out-of-bankruptcy-with-10-billion-2020-4 <comment><USER3> The German media does not have this story (yet?).

The best I can find that the German govt made an offer for a EUR 9B bailout, which would be (in large part) a credit which would lead to a commitment of EUR 500M per year in repayments (which the Lufthansa doesn't want), and the govt wants two board sets (which the Lufthansa doesn't want).

It is also reported that the Lufthansa is looking into opening a "Schutzschirmverfahren" (special case of bankruptcy law, which you can file when you're not yet insolvent but soon might be, aimed at allowing a company to become viable again mostly by itself), has EUR 4.4B in the bank, and wants to have a final decision by end of May. (from a story published less than 1h ago in SZ).

Maybe BI knows something everybody else doesn't...

<comment><USER4> Frankfurter Allgemeine reports seem to agree with your statements and also see 1-2 week timeframe for further negotiations. Strange that BI somehow has the scoop.

[https://m.faz.net/aktuell/wirtschaft/lufthansa-erhaelt- erste...](https://m.faz.net/aktuell/wirtschaft/lufthansa-erhaelt-erste- staatshilfen-aus-der-schweiz-16747710.html)

<comment><USER4> Can't edit above post anymore, here's a small update.

The Suddeutsche Zeitung has a similar story to FAZ where there have been negotiations between gov and Lufthansa, but that the two parties are far apart and negotiations are not close to an end. Timeframe for finalizing negotiations is said to be before the end of May. SZ seems to have some insider sources too, so now I am really in doubt about the legitimacy of the Business Insider reporting.

[https://www.sueddeutsche.de/wirtschaft/schutzschirm- lufthans...](https://www.sueddeutsche.de/wirtschaft/schutzschirm-lufthansa- tickets-1.4891100)

</comment></comment></comment><comment><USER5> I have always difficulties understanding these kind of statements:

"appointment of civil servants or politicians to the supervisory board was unacceptable in the eyes of Lufthansa's executives."

Like, how is that any of executives' business who is on the supervisory board? If they do not like the money, find other investors, easy as that? It is almost like "ownership" is not a concept that should be associated with corporate shareholders at all, because it seems that the relationship between shareholders and corporation has very little resemblance of actual ownership.

Same thing applies to "hostile takeovers". What on earth is that? How come executives of the company I have shares at think they are anyhow entitled to have an opinion about me selling my shares to whom I want? None of their business whatsoever. If they want to have opinion, offer me better price.

<comment><USER6> 1\. In a dual board one could describe members of both boards as executives. I can quite understand supervisory board members to be unwilling to work with political agents on their board if they feel the firm's not lost yet.

2\. Hostile takeovers are hostile to current management. You are obviously free to do what you want with your share. It's the firm treating the takeover as hostile. Shareholders are free to vote in / remove executives in order to change the way a takeover is perceived.

</comment></comment><comment><USER7> Does it mean that every german will have to pay about $10B / 80m = 125 euros for that ? So it means that they'll have, for example, to wait a little longer to buy their next phone, or lunch ? (I ask the question here because that's the kind of reasoning I read in the press but I'd like to know if it's as simple as that)

<comment><USER8> Nope. Because they have already paid all of this in taxes. It means, that the 10 bn won't get 'invested' by the government in another project, e.g., welfare benefits, infrastructure, health, or education. Alternatively, it means: nothing of all of those, but inflation will rise an additional 0.0001% (if the funding source is printing money vs. using tax payer money)

<comment><USER9> Airline is the infrastructure tho, cheap air travel is available throughout EU. If you remove that, economy will take major hit. There is hardly any reading block with cooperation like EU. You fly from France to Italy and work with people there then you fly to Switzerland and demonstrate your product their and then you deal with marketing agency in UK to market your products at global level. It becomes inefficient without cheap air travel.

<comment><USER10> Lufthansa is never close to cheap flights...

<comment><USER11> Yes, quite the contrary. It's one of maybe 10 five stars airlines. It's an elite airline.

<comment><USER9> I was under impression that executive class adds most value in a company which might be the target market of this airline company.

It seems I've been proven wrong already.

</comment></comment></comment></comment></comment></comment><comment><USER12> One thing that I think the business world has finally learned during the COVID-19 social distancing is that business travel isn't nearly so important as we had imagined. And attending conferences was always fun but it's been amazing to watch how fast conferences have switched to an on-line format (well ... the technical ones that I would attend).

So it's my opinion that the airlines, hotels, conference centers and taxi/ride-share companies are in for a rude awakening. Tourism might increase when this isolation ends, but I think there's going to continue to be a serious contraction in the market segments that support business traveling. And when you combine it with the financial damage done to businesses during the pandemic, they've got two fiscal reasons for eliminating business travel.

<comment><USER13> At least in academia, people usually don't go to conferences to attend the talks - they are uploaded on youtube and you could watch them from home. People go because they are good networking events. That is something which you can't really do online.

Edit: of course, a minority of attendees are there to present their work, which can indeed be done online.

<comment><USER14> In my academic field (computer science), people go to conferences because you have to present in person the research that you publish there. The question of whether traveling to the conference is worthwhile at all is irrelevant. With conferences moving online, the question starts to have some importance and the answer isn't so clear.

</comment></comment></comment><comment><USER15> Yahoo finance says their market cap is 4 billion [0] and yet they are getting a bailout worth 2.5 times their market cap. That's crazy.

[0]: [https://finance.yahoo.com/quote/lha.de/](https://finance.yahoo.com/quote/lha.de/)

<comment><USER16> They are trading at a really small fraction of their book value, currently 0.37[1]. In addition, their book value is being weighed down by debt.

I don't know why people fixate on market cap in cases like this.

[1] [https://finance.yahoo.com/quote/LHA.DE/key- statistics?p=LHA....](https://finance.yahoo.com/quote/LHA.DE/key- statistics?p=LHA.DE)

<comment><USER17> Are we sure that the "market cap:book value ratio" is not an artifact of a) the stock price being marked down by the market, while b) their (e.g.) planes have not been explicitly revalued in light of the lower demand?

That's probably why the board doesn't shrug and vote to liquidate assets and pay shareholders more than their shares are worth.

</comment></comment></comment><comment><USER18> For the sake of argument....

What happens if no airline gets any bail-out money? Do we end up with worse air travel in a year or two?

<comment><USER19> Yeah, it's the same line of reasoning behind farm subsidies: running a farm is risky, and if it's so risky that nobody does it, none of us eats... so we all chip in (whether we want to or not) to farmers to offset their losses.

<comment><USER20> Okay, so the farmer's risk is low crop yield, farmer bankrupt, no food, people die.

What about airlines? No passengers, airlines bankrupt, only very limited air travel possible, covid-19 ends, someone buys the airplanes from the asset auction, gives them an inspection, life continues as usual?

Solidarity is a whole other matter: if you can't work (because you're disabled or because you can't find work) you get money from the government. Doesn't matter if you're a farmer or airline employee, nor whether the company you worked for goes bankrupt. That's no reason to keep the companies alive, the people won't personally go bankrupt. (That might be different in developing countries, but those won't have 10B bailouts for nonessential businesses anyway.)

</comment></comment></comment><comment><USER21> Meanwhile American Airlines needs like 12 trillion dollars to keep the lights on. Can't wait for the day where we let that pathetic airline fail.

<comment><USER22> No, we can't let them fail, that'd be capitalism!

<comment><USER23> Many major national carriers have national importance. So, no, they won't go bankrupt. Be it Lufthansa, Air France, Air China, or whatever.

Airlines like Ryanair and Wizz air might be different.

<comment><USER24> Curious what you mean by "national importance?" Do you mean ego/national pride, or that without a state provided carrier there would be no flights (unlikely for a Germany or Belgium, but possible for, say, the Marshall Islands or Togo)? Or that there is some sort of treaty-mandated interlink that requires a designated flag carrier (I know this last case was true decades ago, but I'm not sure the US even has one any more)?

<comment><USER23> Well, a country with a decent population size and a decent economy has to rely on air transport. Just now many countries flew out their citizens for example.

As far as I know, Lufthansa, like some other airlines, have a government owned golden share. [https://en.wikipedia.org/wiki/Golden_share](https://en.wikipedia.org/wiki/Golden_share)

In fact, if I remember right, an EU based airline is not even allowed to be owned by more than 50% of non EU share holders.

<comment><USER24> FWIW Australia is coordinating flights via foreign airlines in addition to QANTAS. In fact United is running more flights to AUS than QANTAS.

LH's golden share was sold off in the 1990s (that's in the article).

</comment></comment></comment></comment></comment></comment><comment><USER25> Other sources are reporting only $1B. What is this article based on?

<comment><USER26> A tweet.

</comment></comment><comment><USER27> What does this mean in the context of state aid rules?

I'm quite worried that the EU's attempts to pick up the pieces of the economic carnage will clash with Britain's attempts. Inability to agree what counts as fair, will be a major block in any negotiation, and catalyse the economic partition of Brexit.

<comment><USER28> It means that the wealthy states get wealthier and the poorer get poorer. State aid rules have been massively relaxed, but the structural problems with the eurozone that mean Germany can afford to bail out their businesses like this and other poorer, worse-hit countries cannot are still there. I'm not sure Brexit is the EU-related economic partition we should be most worried about right now.

<comment><USER29> To the point.

</comment></comment></comment><comment><USER30> Sadly, France and The Netherlands bailing out Air France and KLM last week, resp., forced the hand and diminished leverage for the German federal state I guess. I thought subsidies (to former state monopolies, of all things) was the one thing that need explicit consent under EU treaties. Now the people of DE, FR, and NL have to bail out a business that has no perspective to return a profit for the foreseeable future. Those who have protested against excessive air travel have to pay the bills long term (before coronavirus, flight shaming and "Fridays for Future" was a thing). I think this is a big missed opportunity to come up with a sustainable agenda to put a large electorate behind as a perspective out of the coronavirus economy crisis.

<comment><USER31> The problem is that these companies are so inefficient and the conserved the 30 years old business practices very well internally because the governments are keep bailing them out. Maybe it would be for the better to let them fall and start over. Build an airliner that operates effectively and widen the margin. There are other alternatives. For 10 - 15B EUR (estimated) we could connect the major European cities with a high speed train network powered by renewables / green energy. If we keep bailing them out this surely won't happen.

<comment><USER32> Your point brings up rail companies. I can't see that they would be doing great right now, but a brief search doesn't seem to show that they are circling the drain. I wonder why?

<comment><USER31> Not sure. The good thing about rails vs flight is that you can swap out the energy source. As your energy production gets greener your entire travel gets greener. With airlines, it is not even a remote possibility to change from kerosine based engines to electric or other green alternatives, Europe is very small and relatively dense. It would be a great way of commuting.

</comment></comment></comment></comment><comment><USER24> Shrewd negotiation by the CEO! Unlike, say, Volkswagen which has a significant stake owned by Niedersachsen and politically appointed board directors, Lufthansa will have two non-politician directors and no state veto.

<comment><USER29> A blocking minority sounds different than a "no state veto".

</comment></comment><comment><USER33> Question: Lufthansa's market cap is less than 5Bn, why is the German government not buying it for that amount, bailing it, then (hopefully) selling it in a decade when the situation improves?

France is bailing Air France, Germany is bailing Lufthansa, what does it mean for a company like EasyJet? Will it get bailed too or just crash due to governments helping some companies but not others?

<comment><USER34> After buying, they'd just have ownership but would still have to pump in just as much additional money. (Also you can't generally succeed in buying a company at its market cap value off the stock market becausenthe stock price goes up witj the demand)

</comment></comment><comment><USER35> Aren't state aids forbidden in the EU?

<comment><USER26> Not for bailouts of struggling business (of special importance) if I understand it correctly.

<comment><USER9> How is it not unfair advantage?

If you let a business keep trying again and again, yes it offers unfair advantage over companies in other countries which might not have funds to support their companies.

One who flies the highest, falls the highest - these companies remain unaffected by small cities but when large one strucks these are getting bailed out.

</comment></comment></comment><comment><USER36> [https://www.spiegel.de/fotostrecke/cartoon-des-tages- fotostr...](https://www.spiegel.de/fotostrecke/cartoon-des-tages- fotostrecke-142907.html#bild-8d1f948c-503c-4869-9e10-324291e08147)

</comment><comment><USER37> >The company will take the money but the state won't get a say: this is a concise summary of what Lufthansa's Executive Board, headed by CEO Carsten Spohr, has been telling German politicians in the past few weeks.

That's awesome.

Create a crappy business, hire 130k employees, and get the state to pay for your failures.

At this point, I would be happier that they would just give the money to Google and Facebook which proved that they know a thing or two on creating value and sustainable business.

Obviously, airlines that have been doing fine (Ryanair, Wizzair?), won't get a dime which seems completely absurd. I did some quick googling and apparently Ryanair has similar opinion: [https://www.bloomberg.com/news/articles/2020-04-24/ryanair-s...](https://www.bloomberg.com/news/articles/2020-04-24/ryanair- s-o-leary-warns-eu-he-may-sue-to-stop-airline-bailouts)

<comment><USER38> Ryanair isn't 'doing fine', it's trying to force customers to accept vouchers instead of the cash refunds it is legally obliged to provide.

And the idea that Google and Facebook could do a good job of maintaining the profitability of an airline whilst being obliged to pay the capital costs of aircraft it's banned from flying is the epitome of Silicon Valley arrogance. Let's be honest, Google and Facebook haven't even adapted their core competency of connecting people digitally well to this crisis - <USER2> there's no way people would be grudgingly using Zoom instead...

<comment><USER39> Can confirm, they have £1k of my money, which they've held on to for over a month already, and are refusing to refund. It looks like it will be several months _at best_ before they refund it. I plan to do a chargeback in the meantime.

I get that Ryanair are in financial difficulties, but they can't expect their customers to bail them out, and are behaving unlawfully - I'm damn sure I wouldn't get away with it, so neither should they.

<comment><USER40> It's not only Ryanair - Air France are doing the same.

<comment><USER41> Air France also want the profits from KLM which actually runs well compared to AF. I wouldn't mind if they split up again.

</comment></comment></comment></comment></comment><comment><USER42> Lufthansa: Where fuel surcharges don't match up with reality.

</comment><comment><USER43> Thanks for your taxes.

<comment><USER44> You're welcome.

</comment></comment><comment><USER45> Based on my experience with Lufthansa. That's an organization that should fail. If anything happens on your journey that is not average, the agents always blame you first.

<comment><USER46> >If anything happens on your journey that is not average, the agents always blame you first.

So basically every airline ever? Unless you are in the ultra premium VIP exclusive membership club.

<comment><USER23> Nah. Aeroflot, Turkish, Ethiopian and Delta have pretty good customer service.

<comment><USER23> Why the downvote? Have you used this airline? Aeroflot, Turkish and Ethiopian are in an excellent geostrategic position for the future.

I hold SU and TK gold elite, both just emailed me: Due to the crisis the both extend my gold elite status for 12 months/6 months without any need to accumulate miles to reach status.

</comment></comment></comment></comment><comment><USER47> Regarding US bailouts, can someone here more knowledgeable can help me understand how a company that has been fined tens of millions of dollars for ocean pollution, is not US-based incorporated, does not pay taxes on US soil, is in large part responsible for citizens obesity, and hire less than 0.17% American citizens, got bailed out by Feds to the tune of billions of dollars?

[https://www.wsj.com/articles/how-fed-intervention-saved- carn...](https://www.wsj.com/articles/how-fed-intervention-saved- carnival-11587920400)

<comment><USER48> Based on that article, they did not bail out Carnival. The Fed just bought a pile of other assets, which meant that investors had more cash to put into other investments like bonds for Carnival, driving their interest rates on the bond market down.

It was not directly bailed out. Action by the Fed just made all debt investment more attractive and that made more investors compete for such investment, lowering the interest rates Carnival (and every other corporation issuing bonds) faced.

</comment></comment><comment><USER49> The only reason an airline would need a bailout is if they have acquired significant debt that they are unable to service. If the airline is being 'bailed out' what's really happening is the airline's creditors are being bailed out.

The banks can afford to take a haircut on their debt and they can renegotiate terms. Of course, many of the creditors might be unsecured bond holders, which, I'm unsure of how the scam works in Germany, but in the US that effectively is some crappy fund you own in your 401k. So the banks smartly package and sell debt to idiots (common people with a pension/retirement account).

The government has to keep the worthless bond market afloat because everyone's invested in the scam. That helps keep interest rates low so the mega corporations can get free money from bonds that bear interest well below market rates.</comment>


Coder's High – The Intense Feeling of Absorption - <AUTHOR> http://www.slate.com/articles/technology/technology/2014/06/coder_s_high_the_intense_feeling_of_absorption_exclusive_to_programmers.html?

<comment><USER2> In my late teens and my twenties, I spent 10s of 1000s of hours in a state of intense absorption on programming tasks. (I am in my 50s now.)

Am I the only one who believes that it is bad for me to spend more than 20 hours -- and perhaps as little as 15 hours -- a week in the state?

Just because an activity feels really good does not mean it is good for you.

I guess I should explain a little how I came to believe that that too much intense absorption is bad for me. Let me start by quoting a passage (which I agree with) from another comment here:

>in order to achieve flow these three criteria must be met: 1. The goal must be clear 2. Feedback must be immediate 3. There must be a feeling that our capability is balanced to the challenge at hand.

The most important things for me to have made progress on in my life are things where it was not clear what my short-term goals should have been (although of course it was important for me to choose _some_ short-term goals to work towards), where feedback was slow and rare and where I felt that the challenges I needed to surmount exceeded my capability. (I would guess that there are problems or concerns like in most people's lives.) In my past, I spent a great deal of time using the pleasures of intense absorption to distract myself from more important things.

Even after I realized that I was using programming and related activities like math and "programming-languages geekery" to distract myself from more important (but less enjoyable and messier) things, I did not know how to stop the distracting activities. In other words, I was addicted to the pleasures of intense absorption, and it took me many, many years to figure out how to extricate myself from that addiction.

If there are a lot of things in your life that are pleasurable -- hanging out with friends, sex or romance, physical exercise -- then maybe you do not have to worry about falling into the same trap as I did. I think that probably what really tripped me up when I was a teenager and a young man was that intense absorption was my _only_ reliable or regular source of significant amounts of pleasure. Well, to be more accurate, satisfying my curiosity, a.k.a., learning, and intense focus on programming and related things were my only reliable sources of pleasure. (I have read that this pattern of only being able to take pleasure in one or 2 things and the consequent problem of addiction to those things is often a trap fallen into by people who were abused as children. I was abused as a child. Perhaps people who had happy childhoods are immune to the negative effects of spending one's days intensely focused.)

I still program for a few hours every week: I write Emacs Lisp code whose only user is me, which I do not get paid to write, and I am convinced it is not harmful to me. It makes me happy when I notice that one of my problems can be solved with code because coding is an efficient way to solve a problem. But if I ever take a job that involves programming full-time, I'll keep a sharp eye out for signs of a recurrence of my previous destructive / addictive relationship with the pleasure that comes from intensely focusing or concentrating. A big warning sign would be if I were to start again to neglect things that clearly should not be neglected like appointments at the dentist and such. Another (more ambiguous) warning sign would be a cessation of the process which has been going on for over 10 years now of my slowing increasing the range or variety of things I am able to enjoy or take pleasure in.

I decided to write this because in online conversations among programmers, we almost never hear (or read) about any negative effects of the "flow state". For me, there were significant negative effects: namely, I would have learned to deal with messy, low-feedback difficult situations at a younger age if I had not spent as much time in the "flow state". In other words, I got into the bad habit of using the flow state to avoid what I really needed to learn: how to make progress in messy "non-flow" situations.

<comment><USER3> I didnt realize how much I typed so I put it in pastebin. I've never commented here and your comment gave me hope that someone understands me (I'm sure there are a lot of people who do, its likely a miscommunication on my end) This is also an example of my writing when I'm not focused.. really tired right now but this is important so im half there so hopefully its half readable enough to give me maybe a half answer even though I want the full one I will accept any piece of information that makes me a little more closer to being successful in life)

tldr You made me realize stuff from your post and how do you live without flow and also this is more or less for me trying to figure what the hell my problem is and why I'm not good at a lot of aspects that make a successful person, also you don't have to read it because its probably an unrelated issue that sounds like mine but its worth mentioning just in case it is and I rarely find anyone that I can relate to with this sort of stuff so forgive me.. just trying to learn more about myself.

[http://pastebin.com/eBNFJaSH](http://pastebin.com/eBNFJaSH)

<comment><USER4> Reading your post you sound like me at "unmotivated" times in my life. (I would say I go through cycles, but nowhere near as extreme as your description).

When I start getting to the stage you are at, I make a point of doing some outdoor sports (a few people mentioned climbing. My personal preference is whitewater kayaking, or mountain biking - something that requires full focus and involves a bit of adrenaline).

I used to do a lot of outdoor, sports (worked as a river guide for a few years, and kayaked nearly every day). Now I have an office job, and see the difference. Something that gives you a bit of adrenaline helps you achieve the same feeling, as others have described with climbing, but not associated with coding.I think this helps you bring more balance to your life. If you don't do a lot of exercise, just getting fit will make a big difference as well.

At first it might be difficult to motivate yourself, but once you get into a habit you will find it easy, and you may even get annoyed the days you don't get to do your sport.

Anyway, that's what I find helps me. (Promising myself to start riding my bike on the trails on my way home from, now the weather is getting better).

</comment></comment></comment><comment><USER5> Mihaly Csikszentmihalyi's seminal book on this subject "Flow: The Psychology of Optimal Experience" is worth a read. The article didn't mention it and neither have any of the comments thus far so I thought it fair to name. If you would like to understand what "flow" is and how you can achieve it on a regular basis I encourage you to read it. This applies to individuals, groups, work and leisure.

The productivity gains seen from things such as Kanban, TDD, and CI/CD can be easily explained by the science of flow. I've given several conference talks on this and they've been well received (asked for encore presentations).

As a quick teaser, think about how CI or fast tests contribute to flow when in order to achieve flow these three criteria must be met:

1\. The goal must be clear 2\. Feedback must be immediate 3\. There must be a feeling that our capability is balanced to the challenge at hand

</comment><comment><USER6> I stopped coding for a few years, and recently started spending significant hours a week on coding again. The feeling is quite incredible. I had forgotten how good that high is.

I do think that the author doesn't understand Flow fully. The ideal state of Flow is when there is a concrete challenge with immediate feedback, which coding is great at providing. The other activities he compares coding to don't have such strong feedback or concrete challenge.

The only activity that compares with coding for me is rock climbing. While it is a physical activity, it has the same kind of concrete challenge and immediate feedback. It is totally immersive.

<comment><USER7> I think that off-piste skiing shares the same immersive flow-like experience whilst also being a physical activity.

It's the combination of feedback, decision making and then successful completion of the challenge that really combines to create the feeling.

Thinking of the problem, planning your response, and then executing in quick succession repeatedly.

<comment><USER8> This is surprisingly close. I'd never thought of it like this but it's immediately clear what you mean.

Especially if it's off-piste but an area that you're familiar with. You plan out your run multiple steps before you start, and once you're on the hill you have to be flexible enough to change course and replan on the fly for another multiple steps ahead, all while you're barreling down a hill.

And then there's the moments of sheer terror when you see snow sliding past you, or when you come up on a recent avalanche 1) have to avoid the packed ice and 2) look out for what caused the avalanche.

You're absolutely right - I get a kind of rush from coding that's similar to skiing off-piste. Not quite the same but not as different as one would think.

</comment></comment></comment><comment><USER9> When I'm able to achieve flow, I'm supremely happy. You all understand.

A few tasks, though, have been serious blockers. When I don't understand my tools, and they fail in undocumented ways, and the relationships between presentation and business logic aren't clear, it actually hurts my feelings. It's as if the machine itself is judging me and reminding me that I'm not good enough.

<comment><USER10> Does anyone have tips to overcome these "blockers"? Stalling after encountering blockers is more detrimental to me than plodding along without achieving flow.

<comment><USER4> For me the two are kind of related. I have been working on a side project for the last two or three months. Got going really well for a couple of weeks, and coded quite a lot. Then I got busy with other stuff in my life, so had to leave it for a while. It seems a lot more difficult to get into the state when I haven't been there for a while, while during the good two weeks, I came home from work and managed to get into the state very easily. Enthusiasm for an interesting problem also seems to help me.

</comment></comment></comment><comment> aaron-lebo I suspect that you get this kind of high doing a lot of things other than programming; programmers are not unique in this regard.

I'm insanely jealous of people who can do stuff like this. I hear stories of people like John Carmack locking themselves away in a room and finishing an entire project or implementing an entire feature in a night or over a weekend. In contrast it takes me days to finish anything, I just don't have the ability to concentrate or care about something that intensely.

Now I understand some stories are embellishments and someone like Carmack just thinks on a different level than most people, but is there a way to teach yourself to be able to engage in these marathon creative sessions or is it something you must be born with?

<comment><USER11> >> but is there a way to teach yourself to be able to engage in these marathon creative sessions or is it something you must be born with?

Anecdotally, I think the answer is yes. Concentration is a skill you can develop like anything else. The kind of high with programming for me is similar to that experienced when rehearsing/performing music.

I used to perform on a competitive drumline and we would have 8-10 hour rehearsals on the weekends (usually in 3 hour blocks). One of the main ideas expressed was that if you want to perform at a very high level, and do it consistently, you must _always rehearse at performance levels_ and be hyper attentive to details. These rehearsals were mentally exhausting. But over a few months, my ability to concentrate and to quickly jump into a flow state improved dramatically.

One thing that surprised me - after rehearsing with a metronome for that many hours a day and usually at the same speed, say 120 BPM (beats per minute). When we would change speeds, faster or slower, even a 2 BPM different (118 BPM or 122 BPM) felt noticeably different than 120 BPM.

After I stopped performing that group, my ability to distinguish these small difference in tempo regressed. I can't do it anymore. A wide gap like 110 and 120 is noticeable (probably even to non-musicians), but not only a 2 beats difference.

If you want to try this yourself, get someone around you to go to [http://www.webmetronome.com/](http://www.webmetronome.com/) and set it to 120 BPM and 122 BPM and see if you can correctly guess which one they set it to.

<comment><USER12> I can confirm this. I'm (self-)learning to play drums, and since I'm still a noob, my synchronization of foot and hand is a little off. When I'm just fooling around on the kit, I don't notice these imprecisions. But once I get "in the zone" with a metronome and all, I can tell exactly every time I hit the bass drum a fraction of a second earlier/later than the hi-hat, and the feeling that follows immediately is a slightly _unpleasant_ one, like when you commit a social faux pas. It's a curious shift of perspective, and such hypersensitivity happens to me when I get immersed in code too, so I guess it relates to concentration itself.

</comment></comment></comment><comment><USER13> I've noticed that this really doesn't happen to me unless I've got some outside motivation to make coding my number-one priority. Otherwise, my brain always kicks in with a nagging feeling that I need to better moderate how to spend my time. Or I just get bored. Basically, I need a reason to focus. It takes me a good few hours before the "flow" really kicks in, which is beyond the point when I normally take a break to clear my head.

(Also, am I the only one who gets slightly annoyed with the word "coding"? It seems to ignore the fact that most problems we sit around solving revolve around systems, integration, framework intricacies, logistical/timing issues, and stuff like that. The code is just the instruction set. Then again, maybe I just want my job to sound more fancy and shit.)

<comment><USER14> I'm with you on the coding comment especially when non-coding people use it to describe programming/coding as a menial, mindless task. I've also had the same thought that maybe I just want my job to sound cooler...

</comment></comment><comment><USER15> Whenever this happens (and it's happened a lot in my life, to such a point where I can now self-induce myself into it) I feel that I need the right music in the background, either in my headphones or on speakers.

I couldn't do an all-nighter of that awesome zen-matrix-coding-until-the- birds-start-tweeting without it, but for noisy work situations it also helps to get into that mode.

Lock in the headphones, put on some tunes and 'focus mode' and someone can stand next to you for 5 minutes until they realize you zoned out and they need to tap your shoulder to get your attention.

I haven't found the perfect key to good coding music, but these are my 2 favorites:

* [http://soundcloud.com/crussen/crussen-monday-funk-session](http://soundcloud.com/crussen/crussen-monday-funk-session) (a 4.5 hour mix)

* The Fugees - The Score (full album)

<comment><USER16> I too need melodic/funk/trance music to get started, but sometime after entering flow I realize that whatever playlist I started with ended a long time ago and I've been coding to silence ever since. If there are a lot of noises nearby it reminds me to put music back on.

I recommend Anjunabeats and Above & Beyond if you are looking for melodic/uplifting electronic music that avoids potentially distracting lyrics and jarring sounds.

</comment></comment><comment><USER17> I wish I was able to just 'lock myself away' and finish a task... I just can't seem to go 5 minutes without someone disturbing me with some weird issue, or something that they could simply have searched online and had an answer instantly

headphones just don't seem to be a strong enough do-not-disturb indicator

<comment><USER18> Agreed, as a go-to guy in the office, I often feel the same way.

One thing I've noticed is that even if people don't actually interrupt me, the expectation that they might at any minute prevents me from fully concentrating on the task. Having some sign to indicate that for the next, say, 30m I should not be interrupted, and having people respect that, would probably help significantly.

On the other hand, the fact that people are constantly needing me is partially my fault, since there's stuff I could empower them to do by themselves with a little automation.

<comment><USER19> I was having trouble with the headphones not being a clear enough signal so I took a 3'x4' black foam posterboard and made a cubicle door. It caused a stir but mostly just in the people who liked to come by and ask me if I'd opened the cat gif they'd just emailed. Having the door closed is a nice clear signal and so far it's worked fine, for exactly your reasons. I can now trust that I won't be interrupted and I can relax to focus.

<comment><USER20> It seems like the problems expressed by you and the parent comments really come down to the unsuitability of open plan offices for development work that seem to have become popular in many startup environments. Giving people access to offices with doors that close would elimanate an entire class of issues (and admittedly introduce some more, but I couldn't see anything being more destructive than continuous streams of interruptions)

<comment><USER18> I don't agree, actually. Office doors wouldn't help if people just opened them whenever they wanted. The reason doors can be more effective is because they're a more common sign of that request for uninterrupted thought, but that can be accomplished on open plan offices as well, if you have a policy defining those signals. Open plan offices may be worse on a general noise level, but that's a different issue.

</comment></comment></comment></comment></comment><comment><USER21> I can really relate to this. There are many aspects of programming that contribute, I think: you are creating something, ususally something useful to others, which you are (often) in complete control of, and (in the words of Fred Brooks):

"The delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of imagination."

I love that quote! More here: [http://henrikwarne.com/2012/06/02/why-i-love- coding/](http://henrikwarne.com/2012/06/02/why-i-love-coding/)

</comment><comment><USER22> The are other amazing levels of absorption available through concentration called "jhana". They can be immensely pleasurable and even sometimes produce life changing insights into consciousness and attention.

Check out this guided tour of the 13 jhanas - [https://www.youtube.com/watch?v=PRdiOoTZC3A](https://www.youtube.com/watch?v=PRdiOoTZC3A)

</comment><comment><USER23> A lot of what he describes sounds a bit like Hyperfocus, which is not always a good thing: [http://en.wikipedia.org/wiki/Hyperfocus](http://en.wikipedia.org/wiki/Hyperfocus)

</comment><comment><USER24> It's kind of the ultimate Randian ideal. The producer, exercising his/her power of thought, to the maximum, creating untold value. Ultimate mind over matter.

</comment><comment><USER25> I gave a talk recently which has a premise the importance of flow state. Linking into the middle of it: [http://www.slideshare.net/extempore/keynote- lambdaconf2014/1...](http://www.slideshare.net/extempore/keynote- lambdaconf2014/14)

I take the position that a slow compiler exacts a cost far beyond the obvious, because it inhibits flow state.

</comment><comment><USER26> The sound and tactile feedback from my model-m and my instant flow CD (the lne I always listen to) is combined into a unbelivable nice feeling when I lift my fingers from the keybord after 45 minutes of coding.

The ahhhhh is like no else.

<comment><USER27> Recently I discovered Progressive House Mixes on YouTube, and suddenly found my xen coding music. It's exactly the right level of intensity to keep me focused, and bland enough to not distract me with tracks I don't like.

</comment></comment><comment><USER28> Employers have absolutely no idea how productive one programmer solving one problem on his own without interruption or distraction can be. Because yes I know the feeling really well but no this barely ever happens in my day job.

<comment><USER29> I'm working today (Sunday) so I can accomplish something for work. Most of my work occurs on the weekend, before I go to work, or after I get home. Yet I am at the office >40hrs/week. It's a madness that I cannot sustain. But yay, we are moving to a new facility with cubicles (I have an office now). I just don't expect any productivity to be possible anymore.</comment></comment>


Real Stories of Simulation Development - <AUTHOR> http://www.simhq.com/_commentary/all_047a.html

<comment><USER2> Oh wow. I played a lot of Jane's F/A-18 in my youth, and recall some of the names and public issues mentioned in the article. There were many complaints about low framerates in the game, which had so-so graphics for the time. The developers stated this was due to the very complicated radar modeling loading the CPU, which apparently included raytracing and cloud penetration modeling. It's fascinating to see how far they took the radar simulation for a video game.

> We had CJ who had intimate knowledge of the radars, and we had Matt who had > been at the CIA and knew about the information systems. So when I was doing > the part of the A2A radar that identifies enemy planes by their radar > signature, I had put something in and said to CJ 'Is this how it works?' he > looked at it then went into Matt's office and closed the door (something we > never did unless we needed privacy). They were in there for 10 or 15 > minutes, and then CJ came out and said it would be fine. I learned later > that what I had put in was close to what the classified system actually > does, and they needed to discuss whether it was too close to ship with, but > they couldn't tell me that (because then I'd know what the real system was > like).

Also, funniest bit I found:

> We were now using EA's QA department to test the game and quite frankly they > didn't impress us. One of the bugs they sent us was if you Alt-Tab out of > Jane's F/A-18 and delete the game directory the game will eventually crash.

<comment><USER3> Do you still play flight sims? Apparently Matt Wagner is with Eagle Dynamics now, who are shipping a very good flight simulator series called DCS (a follow-on to LOMAC). Their next study plane is the F/A-18C, and I am extremely looking forward to it!

Falcon 4 came a long way since then too, thanks to the humungous effort of the community (and a source code leak). Look up Falcon 4 BMS if you're interested.</comment></comment>


How Teespring recovered from a 50% post-launch revenue crash - <AUTHOR> http://blog.perfectaudience.com/2012/11/28/how-teespring-recovered-from-a-50-post-launch-revenue-crash-by-selling-not-shipping/

<comment><AUTHOR> We've been running these "situationals" for a few weeks now. This is the best one yet in my opinion. The teespring guys had to step outside their comfort zone to think about building up a pipeline of inbound customers.

Thoughts or suggestions for the next one?

</comment><comment><USER2> Nice work. Article suggestion:

Could you delve into the applications of retargeting for email auto responder campaigns?

<comment><AUTHOR> Tell me more. What are some of the specific questions you have around that. E-mail + retargeting is pretty interesting.</comment></comment>


Introducing Streaming K-Means in Spark MLlib 1.2 - <AUTHOR> http://databricks.com/blog/2015/01/28/introducing-streaming-k-means-in-spark-1-2.html

<comment><AUTHOR> This is a cool feature, and is one of the prime example of what Spark's tight integration of various libraries can enable (in this case Spark Streaming and MLlib). It was originally designed by Jeremy Freeman to handle workloads in neuroscience, which IIRC was generating data at 1TB/30mins.

</comment><comment><USER2> Sounds similar to an exponential moving average[1], which itself is a one-pole IIR digital filter. [1] [http://en.wikipedia.org/wiki/Moving_average#Exponential_movi...](http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average)

</comment><comment><USER3> Is it true that this doesn't support dynamic values of k? That is, the algorithm isn't adaptive to a changing number of clusters? That said, I suppose for some small range of k values, you could do this trivially by tracking them all and picking the best.

<comment><USER4> a general drawback of k-means. You have to select the k. In practice you try a range and see how well they summarize your data (e.g. leave one out cross validation).

You could do that here too, just have a range of k. If only there were a streaming leave-one-out cross validation for k-means to complement this approach ...

(it is possible to do this in a streaming style, see LWPR)

<comment><USER3> I understand that's a drawback of k-means. I was just wondering if this was something that Spark solved natively. Looks like the answer is no for the time being. Thanks for the pointer to LWPR :)

</comment></comment></comment><comment><USER5> very interesting post. ironically, hackernews uses a similar type of time- decay algorithm!</comment>


A game to map the brain - <AUTHOR> http://blog.eyewire.org/about/ <comment><AUTHOR> the game is here [0] but a friendly warning, the link may not play with javascript disabled and it may immediately hijack your noise.

ignoring those two annoyances, it is quite interesting, I was drawn here after watching Sebastian Seung speak [1] which I found in the rabbit hole of reading about the new 100% fatal startup...

[0] [https://eyewire.org/](https://eyewire.org/) [1] [https://www.youtube.com/watch?v=qS6nTA3DUuY](https://www.youtube.com/watch?v=qS6nTA3DUuY)</comment>


Tiobe: Lua enters the top 10 for the first time in history  - <AUTHOR> http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

<comment><USER2> Although I believe this to be over-valued, we use lua in VLC for writing extensions, and so far, we are quite pleased.

It is fast, simple, close to the C or C++, quite portable and quite portable. I just wished they had a set of official extensions, like for xml or json parsing; because now they are a few competing around...

<comment><USER3> Use LuaRocks. <http://luarocks.org/repositories/rocks/>

Very easy to use, and has a _lot_ of modules.

lua-xmlreader is the one that I used for a project. It's a wrapper over libxml2.

<comment><USER2> Great to know, thx, but that shows exactly what one issue is: there are at least 5 json modules... How are people supposed to know which one to pick?

<comment><USER3> Eh, just pick one. I actually did use a lua JSON module, but I forgot which one. It had a simple interface, though. They probably all do.

<comment><USER2> JSON was just an example.

The point is that it would be welcome to have a sanctioned list of common extensions (xml, json, oauth...) from the core team.

</comment></comment></comment></comment></comment><comment><USER4> On StackOverflow, Lua has barely 1.1K questions, while JavaScript has over 100K questions. As a point of comparison, Clojure has 1.6K. The Tiobe method seems flawed.

<http://stackoverflow.com/tags>

<comment><USER5> Perhaps the people using JavaScript are the more likely the kinds of people to go asking more questions.

<comment><USER6> Or JavaScript is the kind of language that requires a lot of question-asking to accomplish anything significant (poor language design/documentation).

<comment><USER7> I'm not sure that I would frame it that way, but I think that is more or less correct. Lua is such a small language that you generally don't need to ask questions before you do stuff.

</comment></comment></comment></comment><comment><USER8> In a perfect world I'd have the power to downvote links to articles regarding "tiobe".

</comment><comment><USER9> More people use Lua than Javascript? lol

<comment><USER10> This seemed strange to me also. Lua shot way up and is currently right ahead of Javascript and right below Perl and Python. TIOBE attributes it to iPhone apps, which is probably helping but still wouldn't put it past Javascript. A lot of people write Lua scripts for World of Warcraft UI mods but WoW has been around forever and is actually waning in popularity, not rising. Maybe its the hype around LuaJIT being the dynamic scripting language the best performance?

<comment><USER11> I think there are more Website containing javascript than any WoW plugins.

<comment><USER10> Oh yeah, there definitely are by a far margin. I'm just grasping for straws trying to figure out why Lua would have jumped so much. I know TIOBE isn't the end all be all of programming language usage or popularity but something had to cause Lua to jump so high in their rankings in the last year.

</comment></comment></comment></comment><comment><USER12> And yet Haskell is still #44, below some rather obscure languages (I'm looking at you, Alice and Q). There are serious flaws in Tiobe's methodology.

</comment><comment><USER13> Not even close: <http://langpop.com/>

<comment><USER14> this seems like a better ranking

</comment></comment><comment><USER15> I wonder how much of the increase can be attributed to Redis' Lua scripting.

<comment><USER16> i would say, not a lot. The fact that you think this is a big use of lua just speaks about what kind of programming environnement you are in.

<comment><USER15> Where did _that_ come from? I never said I thought it was a big use. In fact I've never used Redis, but I'm an avid user of Lua and I was glad to see Redis adopt it.

Since Redis is so popular, is it wrong to suppose it was at least partially responsible?

</comment></comment></comment><comment><AUTHOR> I was mainly confused of [http://www.tiobe.com/content/paperinfo/tpci/images/tpci_tren...](http://www.tiobe.com/content/paperinfo/tpci/images/tpci_trends.png) when I posting this link. Looking at Lua in the graphic it looks like a typical exponential hype started in early 2011.

I'm using Lua myself, wondering - did I missed a hype?

<comment><USER7> I also haven't heard anything about this.

</comment></comment><comment><USER17> <https://github.com/languages/Lua> #16 <https://github.com/languages/Haskell> #15

</comment><comment><USER18> Javascript seems pretty low on that list..

</comment><comment><USER19> Tiobe index is the single biggest source of language holy wars.

Don't know why it is so highly regarded.</comment>


MinUnit - unit testing in 3 lines of C - <AUTHOR> http://www.jera.com/techinfo/jtns/jtn002.html

<comment><USER2> I have actually used a slightly modified version of this recently. I added a few things to track line numbers and some more standardized output formatting. you can see it here:

[https://github.com/lukesandberg/Regex/raw/master/tests/minun...](https://github.com/lukesandberg/Regex/raw/master/tests/minunit.h)

[https://github.com/lukesandberg/Regex/raw/master/tests/minun...](https://github.com/lukesandberg/Regex/raw/master/tests/minunit.c)

all in all, if you want to get something working quickly with a simple c project this is the way to go.</comment>


Andreesen Horowitz Podcasts - <AUTHOR> https://soundcloud.com/a16z

<comment><USER2> Is this their official channel?</comment>


From "Hello World" to VP of Engineering at Reddit (2017) - <AUTHOR> https://blog.devcolor.org/career-journey-part-1-3bdddf1f87a <comment><USER2> An inspirational read. Personally I am at a strange spot in life where I am trying to rediscover my own self worth as a programmer after working for several years as the CTO for a small startup company. I've been out of work for a few months now. It can be hard to wake up and know that the places I have interviewed are not interested (there have been several). It isn't that I am trying to get another executive position because a "programming" position would do me just fine. I am just trying to keep a positive outlook and move forward. So it is good to read about success, I guess, that is the result of hard work. Anyway I feel adrift. I am working on my own project/potential company so perhaps that will turn out to be a way to feed myself. Probably it wont. Am I out of the programming game for good? Sometimes I feel that way, but I can say that I was mesmerized by that first hello world.

<comment><USER3> Not interested as in you don't pass the interview? If you have several years of experience people should be knocking down your doors to recruit you.

<comment><USER2> I don't know what the issue is exactly. I worked for two years at an insurance company using c#. It was a good group of people. I decided to join a startup. I worked through the process of growing the technical side of that company from 0 to 150,000 paid accounts. At almost the 10 year mark, I was let go due to financial difficulties. The company that I worked for, which still exists, is now run by one person - the original founder - in conjunction with a partner company that now manages the stack and handles sales. It is a bit of an odd story to tell and evolved into what it is today because of the pressures of trying to keep a company alive, I guess. I went from being a programmer to being the CTO during this time. I wasn't managing a team other than an intern once in a while so I was responsible for administering the servers (AWS) just as I was responsible for furthering development. It all fell to me for the most part. We did have another programmer for the first couple years, but they left. It was pretty taxing to be honest.

When I am asked how many people I managed I can only honestly say two interns and am then told my skills are not enough.

When I am asked to take home a programming assignment or whiteboard something the end result is that my skills aren't good enough.

It is a mystery to me because I built a system that currently processes 80 to 150 million emails a month. It encrypts them, it stores them, it makes them searchable. There is even functionality to encrypt outgoing emails as well! To be fair the core component was already built prior to me joining the company: the PKI api. But as needs grew I built around that. I built the web interface (not the design: I'm not a god). I wrote code to process incoming/outgoing email. I created an ES cluster that scales itself (probably not very well and search is astonishingly slow, but the customers don't seem to mind given the low price tag). I programmed in php, perl, ruby, javascript, and then eventually heavily used golang for its concurrency. The system is not perfect nor am I.

I too thought that people would be super interested in working with me, but I haven't found that to be the case at all. I guess am not good at networking so here I am. If you want to see what I have built in my own time recently, the url is in my description. It is a tragic example of my design skills and the code is all my own. Interestingly - or not so - it is entirely written in golang (+ gopherjs).

<comment><USER3> Damn, it looks like they're slotting you into a tech lead / people management role because of your years of experience when your experience is better suited for a senior IC role.

Regarding the coding challenges, could it be that your code structure / cleanliness has atrophied from not working in large groups?

How good are your algorithms / data structures skills? If not already good, would you be able to develop them from practicing leetcode? Many people complain about fang style interviews but the nice thing is that if you are capable of doing those kinds of problems there isn't as much other weirdness in getting a job. With your yoe you would qualify for going straight to phone interview with pretty much any company on interviewing.io if you do well on a few practice phone interviews there first. (I'd also be happy to provide referrals to a couple companies if you can do leetcode style problems.)

<comment><USER2> Yeah I have become painfully aware of the downside to be found in being the only developer at a company: no finger on the pulse of where the industry is moving and no experience with working with a group of people, which probably yields better results. I was always interested in teaching myself things and continue to do so - my current personal project uses kubernetes, which I am finding is nice enough to work with - but my algorithm skills do need some work. I practiced at hackerrank for a certain period of time last year. I found that I could not think up solutions for the hard problems off the top of my head. Medium problems were hit and miss. That isn't to say I couldn't understand an answer if it were presented to me.

Thank you for the suggestion. I will keep your offer of a referral in mind thank you. Where would these companies be based out of curiosity?

</comment></comment></comment></comment></comment><comment><USER4> Nick's story is inspirational, but are there any stories like this that don't center on a pedigreed education?

Sometimes it concerns me that American class structure is so stratified that it's impossible to have social and class mobility like this without an elite education.

I'm sure he would have had similar outcomes had he gone to UMD, but would he have if he had gone to UMBC?

<comment><USER5> Just about anyone has the ability to go to a top tier school provided they have the ability to manage there. Most have transfer programs with local schools with a few stipulations. For instance, you can go to a community college and transfer into the UC system.

My wife and I both came from impoverished backgrounds and went to community college/low-quality state schools and graduated from a top 10 computer science school.

RE: downvotes -- please tell me how I'm wrong? I'll happily give you a 3 year plan to get into a top tier engineering school given that you have a willingness to move.

The problem with a lot of these places isn't getting in (if you have enough perseverance or desire). The problem is getting through the work after you've gotten there.

<comment><USER6> How do you explain the cost of education in the modern world where the logistics of information are as cheap as never before? Any kid on the world could access material from the best teachers on the planet. So why keep this legacy system for education that is more and more based solely on prestige?

Sure, there is a chance for everybody. But why make it a chance that will certainly remain unfulfilled for a significant majority?

<comment><USER5> That's fairly irrelevant to my comment. The cost of achieving a 4 year education doesn't have to be high, either.

Let's assume we're talking about Georgia, a place with a low cost of living and access to a high quality engineering school.

Year 1: Work in the state, securing in-state tuition costs Year 2+3: Go to Georgia Perimeter College (2 year tuition cost: $4600) Year 4+5: Attend Georgia Institute of Technology on the transfer program (2 year tuition + fee cost: $12,400)

Total cost of tuition is now $17,000 over 4 years.

To get at your point about information logistics: nothing has ever been more useful in my life than being surrounded by intelligent people going through the same grueling process that you are, supporting each other and working together for the single point of trying to learn material and complete assignments under unreasonable deadlines.

There's also difference between access to the best instruction on the planet and having direct communication to some of the best instructors doing some of the most interesting work on the planet.

<comment><USER6> > trying to learn material and complete assignments under unreasonable > deadlines.

Oh, come on, people tend to survive university.

I am thinking of models for educational institutions here, not golf clubs.

Of course the environment is important but that is not an argument for artificial exclusivity and if only in context of the material given.

Pay for the direct line if you wish to do so since information is more widely available today, the difference between formal and "guerilla" education will get smaller.

And there should be a vast economic interest to decrease this distance. With the exception of business interests of universities of course.

<comment><USER5> I work for a big 4 tech company and I've never had tasks as unreasonably paced as the ones I had in school. Admittedly I went to the school reported to have the worst work life balance in the country while I was there.

The environment isn't important, it's the deciding factor in the quality of your education. A good environment with the right curriculum is the single most effective way to learn a difficult subject, develop the habits that help you learn, and have the conversations that lead to retention.

There is a vast economic interest to decrease the distance here. You have a ton of eLearning resources at your disposal. They just don't work as well for most people.

</comment></comment></comment></comment></comment></comment><comment><USER7> > For a long while it was common for me to start the work day at 5 AM and end > around 11:30 PM. I don't eat breakfast or lunch — don't want to waste the > hours when I could be working.

Not healthy

<comment><USER8> Eating in within a nine hour window is very healthy so skiping breakfast and lunch is good.

Should get more sleep though.

<comment><USER7> If you're going to go for a single meal a day you should be doing breakfast

<comment><USER9> Most of the IF (intermittant fasting) community skips breakfast/lunch from what I've seen.

<comment><USER10> That's what I've gathered too; I've been doing IF for a couple of weeks now, and my diet consists of one meal a day that I try to keep between 1k and 1.5k calories. My only refined sugar intake is two biscuits a day (46kcal each) after dinner, and my vitamin C comes from either a kiwifruit or an orange.

</comment></comment></comment></comment></comment><comment><USER11> He works at Looker now: [https://looker.com/news/press/nick-caldwell-joins- looker-as-...](https://looker.com/news/press/nick-caldwell-joins-looker-as- chief-product-officer)

Seems like good fit given his PowerBI background and Looker is prettt fantastic.

<comment><USER12> >In two years as VP of Engineering at Reddit he grew the engineering team from 35 to 170 and led the major initiative to redesign and re-architect the 13-year-old site.

>led the major initiative to redesign and re-architect the 13-year-old site.

The redesign that everyone, including me, hates with a passion? I continuously have to revert to the old design, the new design is horrible.

<comment><USER13> I love it. Reddit was fugly before.

<comment><USER14> Reddit was minimal and I could safely browse it during down time at work without too much suspicion, that's also what I like about Hacker News, the new design is hard to conceal at work.

</comment></comment></comment></comment><comment><USER15> > Long story short is that in the Maryland-DC area they have what are called > magnet schools, and if you can pass a test sort of like the SAT, they will > let you leave your current school zone and bus to a better one. Whether or > not you think that's a good or bad idea, or fair or unfair, it is what I had > and it was a way out.

Standardized testing gets a lot of flak for being too rigid or biased, but I think its rigidity serves an important purpose. You may be living in an unjust society, but if you can score X on this test, you will get Y. There's plenty of information on the test as well as resources anyone can use to score well enough (online, public library or school library). It's an easier sell to many disadvantaged groups and present a clear way out, whether it be a magnet school or university.

<comment><USER16> > You may be living in an unjust society, but if you can score X on this test, > you will get Y.

In an unusual society, those who are disadvantaged will also be disadvantaged on this test if it becomes important enough to predict one's future prospects. Think private tutoring, specialized schools, summer camps, all focused on teaching you to get a good score on the test, and all expensive as ever (ie inaccessible). And now, your education system develops you for the test, not for life or jobs.

It's an easier sell, but it's a lemon and not a well designed and performant product.

<comment><USER15> There are plenty of people that score reasonably well without private tutoring, specialized schools or summer camps

</comment></comment></comment><comment><USER17> His comment on magnet schools is interesting... Different areas must implement it differently. In south Florida magnet schools isn't just for smart people. High schools specialize in medical, engineering, law etc. and you can apply for those. I went to one that had the International Baccalaureate program which is suppose to be for the "smart" kids and had academic requirements. Unlike Nick, who went from a poor mostly black high school to a mostly white... The IB program was in a mostly black, and poor high school.

The same template was used for a few other schools, till the rich white schools wanted a piece of the "smart" kids and got their own program. Now the IB schools at the black schools floundering and are suffering (I think mine closed down)

Although most of my classes were different from the rest of the school, I shared some classes and of course extracurricular activities. The IB program gave me a more diverse education due to being around a population of people I woukd never be around.

<comment><USER18> I have a similar experience to yours, as I went to an IB Magnet school in Central Florida. I believe in Florida at least, they purposefully put the magnet schools in the poorer districts, as a way of allowing the local disadvantaged youth to excel in school, and give them the best education possible in their district.

They also then bus in the kids from elsewhere in the greater district who purposefully chose the magnet school due to the IB program, as another way of helping these same disadvantaged kids. I'm not sure quite how effective it is, but I understand the logic.

</comment></comment><comment><USER19> I've worked with Nick at PowerBI. He was hard working, mega ambitious but still down to earth. He deserves his success as much as anyone.

But then again this is America and we love struggle pr0n. Tons of people work 16 hour days in and out that don't get the same success. The survivor bias is real.

</comment><comment><USER20> Great read and a bit sad too. The Ray Rogers part sounds almost like a movie scene. It's hard when you lose interest in your childhood friends because you don't have anything in common with them anymore.

</comment><comment><USER21> > Within about 4 months of reading that book I had stopped going outside to > play (kids still did that back then)

So good, this reminds me of this article I forgot the source that says kids don't get enough playtime anymore because of Youtube and co.

</comment><comment><USER22> What is partner level general manager? Lots of equity?

</comment><comment><USER23> Is there a part 2? Couldn't find it

<comment><USER24> This article seems like an edited version of this talk, or some variant of it. Worth a watch - [https://www.youtube.com/watch?v=Ol42iSDddOs](https://www.youtube.com/watch?v=Ol42iSDddOs)

</comment></comment><comment><USER25> Any Reddit employees in this thread? I need help with my account that I have had for 7 years and can't get back because of an internal issue. Please leave your contact info so I can get in touch.

<comment><USER25> Awesome, getting downvoted because I genuinely need help and Reddit's support system is pointless to use in my specific case.</comment></comment>


There Will Be Rich Always: Finding a New Way to Think About Income Inequality - <AUTHOR> http://www.freakonomics.com/2011/12/20/there-will-be-rich-always/

<comment><AUTHOR> I really like one of his suggestions: tying congressmembers' salaries to the median income of Americans. That's a nice way of aligning incentives.</comment>


When REST isn't Good Enough - <AUTHOR> https://www.braintreepayments.com/braintrust/when-rest-isnt-good-enough <comment><USER3> We (Zapier) are in a particularly good place to comment on this. We have implemented about 70 very diverse web APIs in-house. Early on, we used client libraries because they were easy and convenient. That decision bit us, hard. (Most) client libraries are un-maintained, opaque, and difficult to extend.

We spent many months ripping every client library out down to the raw requests. We are in a unique position because of how many APIs we have to support, but the overarching advise we give to people designing APIs:

If you are deviating from the norm, you're doing it wrong.

REST APIs are nice because you can infer how to communicate with the API out of the gate. APIs are a pain and you only introduce headaches by not doing things in a sane, conventional fashion.

<comment><USER4> Is there a good book/resource on learning REST API ideas? I'm looking for a beginner's resource for someone who doesn't really grok the ideas behind REST and the motivation for REST. But also something that gets technical very quickly - I've been programming for long enough that I pick ideas up very quickly.

<comment><USER5> I'm sort of with you, though I've read quite a bit at this point and interacted with a number of APIs of varying degrees of "RESTfulness".

The biggest question I wish the various tutorials would address is: why is REST a good idea? Why is this particular way of doing things better than others?

And here's one thing I believe is true, that I have literally never seen in a REST tutorial: sometimes REST is _not_ the best way to go. Sometimes an RPC architecture is better.

<comment><USER6> "sometimes REST is not the best way to go. Sometimes an RPC architecture is better."

I think that the full versions of there acronyms make a pretty good job of explaining what is best when.

"REpresentational State Transfer": obviously, it transfers _state_ , i.e. information about a certain resource at a given moment. "Remote Procedure Call": obviously, it calls a _procedure_ , which may involve several state changes and other activities. Of course, a procedure may be masked behind a REST endpoint (e.g. when you POST some data and do some procedure before you end up with a certain state) and vice versa (e.g. a simple getter), but you may pretty much view REST as the SQL of the Web, and RPC as stored procedures.

<comment><USER7> >but you may pretty much view REST as the SQL of the Web, and RPC as stored procedures.

Indeed, but that just raises the question: what would possess you to write an app out of SQL calls rather than general functions? So then why do the Web equivalent thereof?

<comment><USER6> You don't, of course. What you do is build an app which is using REST to store data somewhere online, and the app itself may be in the user's browser, on a mobile phone or anywhere else for that matter.

<comment><USER7> Definitely. Just pass that memo along to the "apps should work purely through REST API calls" crowd.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Note that this isn't a critique of the REST architectural style; rather, it documents their decision to prefer supplying clients with prebuilt libraries rather than a public API that their respective language communities can use to build their own. You could read the source to any one of their client libs and infer the rough structure of their services, so it's not all that private; they're simply choosing to leave what's there undocumented. It's an interesting approach, but not without its drawbacks.

<comment><USER9> I have no knowledge of what BrainTree does, but if I'm picking a service with an API, I'm picking the one that is easiest to learn (preferably there is little that needs to be learned), I'm not picking one that requires me to switch languages -- or just as bad, locks me into one of a few languages I'm currently using.

<comment><USER10> BrainTree does payments. They have concerns about security that most apps do not. Who really cares if bugged timeout/retry logic makes your app post twice to facebook? Probably no one. Who cares if bugged timeout/retry logic makes your app bill them twice? Probably everyone.

BrainTree and you may not make the same decision, and you both could be right.

</comment></comment></comment><comment><USER11> Braintree isn't the only HTTPS API a developer will consume. Rather than bury the knowledge of HTTPS best practice in the black box of a library, why not exemplify it in language-specific examples of plain-old REST API documentation?

If the boilerplate for manually getting an SSL connection right in a given language is _that_ obtuse, the "just use our library" pitch is even more compelling.

All this said, I have used Braintree's libraries and they are extremely well executed.

Not exposing REST API documentation externally (it surely exists _internally_ , right?) just feels like a cop out.

(An argument I'm surprised was left out: it's easier for support staff to work with customers integrating with a good library than some home rolled REST client. I can imagine this to be true, but maybe a case of premature optimization if the majority of big API players expose and document their REST APIs anyway?)

</comment><comment><USER12> I don't like REST. Making a call to a server should be like calling a function anywhere else - you have your parameters and return value. In REST the parameters are spread over 3 places, the action, the url and the post parameters themselves. It's a much better design to combine all your parameters in one place and keep things simple, for example -

REST version: UPDATE /course/324234 { description: "This is a level 1 course" }

Improved version: POST /course/UpdateDescription { courseId: 324234, description: "This is a level 2 course" }

In this case POST is always used for api calls. Course is the namespace, UpdateDesciption is the method name, and parameters are kept all together as JSON.

<comment><USER13> The REST version makes it clear that you are dealing with operations on a resource. The URL identifies a _thing_ in a consistent way, while the method and corresponding data allow you to manipulate it.

The biggest benefit comes when building a cache architecture. RESTful API's (when properly implemented) come with built-in assumptions about idempotency. You end up in a place where you can easily cache GET requests while reasoning in a very consistent way about where changes to a resource will be made.

It's a pattern that comes with a lot of really useful benefits.

Now all of those same qualities can be built into other architectural styles (such as the one you propose). However, I find that it becomes much harder to reason about the role of operations and what they're actually doing when you lose that clear distinction that REST enforces.

I do want to quibble with one thing as well:

 _In REST the parameters are spread over 3 places, the action, the url and the post parameters themselves_

That's true for any modular system isn't it? You have the _object_ you are operating on, you have the _operation_ , and you have the _data_. Object- oriented systems and even most structured languages (like Javascript for instance) make this distinction at some level. Why is that not appropriate for web architecture?

<comment><USER7> >It's a pattern that comes with a lot of really useful benefits.

Sure, but people can implement that pattern without buying into the whole clumsy REST edifice.

For example, a strict reading of REST (and RESTers support such readings!) would tell me that if I have an API that takes two cities and returns the distance between them, then I must expose a URI pointing to _every combination of cities_.

See here: [http://roy.gbiv.com/untangled/2008/rest-apis-must-be- hyperte...](http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext- driven)

>>A REST API should be entered with _no prior knowledge_ beyond the initial URI (bookmark) ... From that point on, all application state transitions must be driven by client selection of _server-provided choices that are present in the received representations_ or implied by the user's manipulation of those representations. ... [Failure here implies that out-of-band information is driving interaction instead of hypertext.] [emphasis mine]

So, 1000 cities, you must send a million links over the network rather than 1000 possible parameters plus the formatting.

Now, some RESTers assure me that, no, you can somehow communicate to the user that [prefix] / [first city] / [second city] will get you that answer; that a server can "instruct clients on how to construct appropriate URIs".

Fine, but then we're right back to custom, author-documented APIs and RPCs: "to do that, format the call this way". Right back where we were before trying to force-fit everything into a CRUD mold with increasingly bizarre tables just to make all the calls work.

Or maybe a REST purist would tell me that I'm supposed to link a URI for the starting city: [root]/distances/[start city]/, and then from there link them to possible choices of the second city: [root]/distances/[start city]/[end city]/ .

Fine, but why jump through two pointless hoops, when I know what I want, and I prefer to just send _one_ request rather than pointlessly spend bandwidth navigating a path I don't care for?

<comment><USER14> Nobody ever said that you should use REST if it doesn't suit the problem you're trying to solve.

<comment><USER7> But there are people that believe REST suits every API problem, even when accumulated wisdom says it doesn't suit the problem ( _cough_ Roy Fielding).

<comment><USER14> No, he makes it quite clear that it's a solution designed for a particular problem space. You're debating a straw man.

<comment><USER7> Indeed: the problem space being APIs. Feel free to point me to an example of fielding pointing to an API problem that shouldn't be RESTful.

<comment><USER14> No, the problem space being "scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components".

This merely happens to overlap significantly with the requirements of public APIs.

I have difficulty imagining your distance calculator needing any of those things, though.

<comment><USER7> >No, the problem space being "scalability of component interactions, ...

>I have difficulty imagining your distance calculator needing any of those things, though.

Right, because no one's stupid enough to use (or stick to the use of) REST for a distance calculator or any other algorithmically generated information. But make no mistake, scalability of component interaction _is_ an issue, just a solved one (for those that see REST for what it is).

The solution is: specify an input scheme (for a hand calculator: put the first number, then plus, then the second number, then equals) and let the user choose the inputs. This saves you from the (intercomponent-unscalable) combinatorial explosion in which you have to give the user a link to every possible computation as they navigate the interface, and which is the REST method.

So, any exposed function in which you can't feasibly blast every possible input set over the network is REST-incompatible, so I guess the _serious_ RESTers don't think you should do it. Which kinda makes it little more than a footnote.

<comment><USER15> I'm pretty sure Google's home page doesn't include every possible search term for you to select from, and that's a perfectly RESTful example of an exposed function (search). Forms are a very powerful hypermedia construct.

<comment><USER7> In the context of a website, maybe you can have a helper like that to avoid the REST bloat. But the architecture is for arbitrary APIs, existing outside of web pages, in which I don't have a neatly visible form. All I'm allowed to do is give the user URIs to choose from.

Some kinds of apps (esp those that can't tolerate the overhead of REST, like for mobile) need to know how to format a Google search request without navigating through a session on Google site, but just knowing what it should look like, and formatting it that way. REST would restrict you to pointing them to google.com and following links; it prohibits you from saying, "hey, you can have your app just point to google.com, then '?q=', then your search terms connected by +'s".

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Braintree have made an interesting choice in keeping their REST API private and requiring customers use their client libraries. I think they could both have client libraries that they promote as well as a public REST API. Breaking down their reasons:

Security - agree with them on this, the more they can help their users make their systems secure the better. Not sure if it should preclude a public REST API but certainly motivates for having a good client library.

Platform Support - another good reason to have the client library, essentially encoding best practice in the client. I've certainly seen customers abuse features of our APIs. Again, not sure if it should mean keeping the REST API private. Certainly it's a good idea to be defensive on both the client and server (e.g. for queries that request too much data, rate limiting etc.).

Backwards compatibility - Here I disagree with Braintree. I think it should be just as easy to manage backwards compatibility purely on the server side.

<comment><USER17> I'm a developer at Braintree. The challenge with maintaining backwards compatibility on the server side is handling the wide variety of possible inputs into the system. It's hard to write tests that account for all of them.

I've seen a couple of cases where backwards compatibility can be broken in unexpected ways. For one application that we built at Braintree, we had a client that was sending us an application/x-www-form-urlencoded POST body without the Content-Type request header. We upgraded the version of Rails that this app was using, and it broke that integration because Rails made a change where it wouldn't parse the POST body without the Content-Type header. Unfortunately, we didn't have any test cases in our test suite that made POSTs without a Content-Type. We were able to identify the issue and resolve it quickly, but it was a surprising bug. With client libraries, we can test every version against the upgraded app and know that all clients will continue to work.

Are there interesting request profiling techniques that can be executed on production traffic to analyze requests? I think the challenging part of backwards compatibility is making sure unintentional use cases, that were never intended to be supported, continue to work.

<comment><USER16> Thanks for responding! And I'll update my response to the backwards compatibility to say that I see the value in having a closed set of clients that you need to test for backwards compatibility.

That said, these are some of the things that I've done to help with backwards compatibility through only the serverside API:

* Track production requests and use them as test cases

* Build a large suite of test cases against the API

* Build the API in a statically typed language (yeah, I know, contentious, I love Rails but there's something about an externally facing API that makes me want to use a statically typed language).

* And then the ultimate -- build the API as an app that talks back to the business logic... essentially, it's your 'client library' but deployed on the server between the actual code and the client. Then, never change the part of it that faces the client, only the mappings on the the real business logic.

</comment></comment></comment><comment><USER18> This has been my approach to internal service design as well. It's far easier to make sure people integrate properly by providing a rich, well-documented API client library than it is to rely solely on the REST-based one. REST APIs are hard to document, and require a lot of orthogonal boilerplate to even make the requests properly.

Making a client library is also a great way to "dogfood" your REST API - <USER2> know a developer will write code, not HTTP calls, to interact with your service. The client API allows you to test out that code and make sure your API is well designed.

<comment><USER19> "require a lot of orthogonal boilerplate to even make the requests properly"

What kind of boilerplate would that be? For me one of the big advantages of a RESTful interface is that they are really easy to call from cURL _without_ much need for building up a complex context.

<comment><USER20> I found the translation between native code and a REST API to be what I'd call boilerplate. You need to build a URL, build the request (usually converting some model object into JSON), make the request in a non-blocking fashion, receive and parse the response into either a successful response, probably converting JSON back into a model object, or a failed response, which needs to be mapped to some native representation and passed back into the business logic.

Contrast that with a client library which can do all of that for you, for example: taking a native model object and calling one of two callback functions provided, letting you concentrate on the business logic of your app.

I'm not arguing that a client library is the right way to go, but I certainly understand where the grandparent is coming from RE: boilerplate code. Also, this is going to be heavily influenced by the language and libraries you're using.

<comment><USER9> Except company B uses a single callback, returning an object that contains an error code when not successful. Company C uses a blocking library, and requires you to pass in your model object as a dictionary. See where I'm going with this?

</comment></comment></comment></comment><comment><USER21> Why not provide a C api? This would make it easy for community language bindings to capture the benefits you describe in languages you aren't natively supporting (such as Go, Erlang or Haskell).

</comment><comment><USER22> It's a shame there isn't some simple standard (de-facto or otherwise) way of documenting REST APIs such that an idiomatic client library for each language could be generated automatically.

The OPTIONS method is a really underused part of HTTP and would be great for this purpose: <http://zacstewart.com/2012/04/14/http-options-method.html>

<comment><USER23> Yes, there should be a WSDL for REST APIs.

<comment><USER24> have you heard of the WADL? [http://en.wikipedia.org/wiki/Web_Application_Description_Lan...](http://en.wikipedia.org/wiki/Web_Application_Description_Language)

</comment></comment></comment><comment><USER25> There are several good points in the article. Particular the one about https.

That said as a clojure dev I'd much rather work with a nice clojure http library like clj-http than have to use their provided java library.

</comment><comment><USER26> The platform support argument is not very persuasive here. The beauty of open source and the community is that when you combine a popular service with common platforms that are likely to be used, it is likely someone in the community will release the needed api. Why not provide some community support for the platforms, but allow the users to release an api where they know their needs better than you do?

On the other hand, the security argument is quite strong. Improperly implemented SSL handshaking, especially when dealing with payment transactions like they do, has the potential to be devastating. But this is where interacting with the community that is making the api's would be key. There's a lot of value to be had when company and community development work together. They could contribute the ssl code themselves to the open source client projects.

</comment><comment><USER27> I don't really care for this. The promise of web technologies, which has finally become reality over he past few hears, is obviating the need for client libraries. This benefits. Oth providers and consumers alike. The benefits cited by the OP are not that compelling. Most (all?) other APIs allow/encourage direct access so for a large number of developers, that's a strong preference.

</comment><comment><USER28> The title should add "by itself" at the end, as they are still using REST - just adding client libraries.

</comment><comment><USER29> This headline is atrocious, this article has so incredibly little to do with REST mechanics.</comment>


Structured data-sets about geographical locations? - <AUTHOR>

I'm new to looking for this sort of resource and am not having much luck so far. Basically, I have an interest in having programmatic access to a semantic dataset (would think most likely from a government resource) where I can get data on geographical locations (such as a specific beach, for example or a city). Most basic example is that for a city would have population info, etc..<p>Any resources for this to get me pointed in the right direction would be appreciated. <comment><USER2> For data aggregated by country, <http://data.un.org> is a good source.

</comment><comment><USER3> data.gov for the US. Not sure about other countries.

<comment><AUTHOR> Thanks, yes US is the country I'm primarily interested in</comment></comment>


Jason Fried keynote at Web2Expo (video) - <AUTHOR> http://blip.tv/file/1274755

<comment><USER2> I wonder who would request that this video be removed from blip?</comment>


The unspoken rules of making introductions in Silicon Valley - <AUTHOR> https://www.techinasia.com/talk/unspoken-making-introductions-silicon-valley <comment><USER2> Blogspam of:

[https://gigster.com/blog/intros-in-silicon-valley-teach- and-...](https://gigster.com/blog/intros-in-silicon-valley-teach-and- startups/)</comment>