An Open Letter to Millennials Like Talia… - <AUTHOR> https://medium.com/@StefWilliams25/an-open-letter-to-millenials-like-talia-52e9597943aa <comment><USER2> I'm Gen X. I did a ton of pretty crappy jobs in my early 20's while I worked out what I wanted. Building site labouring, warehouse picking, farm work, retail work, you name it I did it. During that time, on the wages I earned from those jobs, I could afford to rent a (small and pretty crappy) place to live, eat 3 meals a day, maintain a car (though I ended up ditching it in favour of public transport) and have some money left over for entertainment.

I never needed to work multiple jobs, and while I was never able to take holidays or be extravagant, it was an OK life.

I was in the UK rather than the US, but I'm not sure that makes any difference.

When did we accept that life in your early 20's needed to be so hard?

<comment><USER3> "When did we accept that life in your early 20's needed to be so hard?"

When was it ever otherwise? Sounds like you had it pretty good compared to the previous generation at the same age. Better still than the generation before that. How "easy" does it have to get before the perception will become that it's not hard?

I see the problem as one of perspective. Unless we've actually been through tough times, we feel we're having a tough time.

<comment><USER2> Actually my parents' generation had it even easier. For example, baby boomer university students in the UK paid no tuition fees and were paid a grant by the government to go to University. When I went to uni that grant was changed to a loan. Now there's tuition fees on top.

Same for unemployment benefits. Stories from the 60's and 70's show British counterculture surviving pretty well on benefits. When I did a 6-month stint of unemployment in 1990 it was still possible - the state paid my rent and enough money to feed myself and buy cigarettes and a few beers. Now it's a brutally harsh life on benefits.

I know that's only examples of state handouts, but it's an indication of attitudes. Again, when did we get so convinced that life had to be so tough?

<comment><USER4> When the middle class has it hard, they become less sympathetic. I think Thalia made a series of poor financial decisions, but there still needs to be some kind of safety net.

<comment><USER5> Middle class? That actually still exists in the US?

I'm pretty sure the divide is now razor thin: either you're pretty rich, or poor...

</comment></comment></comment></comment></comment><comment><USER6> I'm torn.

On one hand I do agree that she walked into the situation (living by herself, accepting that wage) with eyes wide open. But on the other there are a few valid points in both Talia's and Stefanie's letters that are, well, valid and useful observations and suggestions.

However, they're both lost in the entirely immature way both of these people went about expressing them. Both of these letters are full of erratic bursts of emotion, irrelevant sidelines and unbacked up statements.

They're both just rants, one a little more refined and sanctimonious than the other, but rants none the less.

</comment><comment><USER7> I think there is maybe a special place in hell reserved for people who pretend to give advice to others solely in order to show how superior they are.

</comment><comment><USER8> > But here I am, having survived my 20's with some grace and a lot of > humility.

Looks like she lost both of those somewhere along the way.

</comment><comment><USER9> Talia's article enrages me. I've been off worse than her (similar ages, lower pay, higher portion of income to living costs and MUCH longer hours), but the way she's gone about it screams of oh-poor-me.

The fact of the matter is, we both made the decision to do what we did. No one forced you to work for that company. No one forced you to move where you did.

SV is an extreme among extremes. If you didn't know what to expect, you didn't research or plan. If you did, but now regret your decision.. You're human.

I doubt she ran this idea or article by many people, and likely posted in in a very emotional state. She should have just given notice and left. Then wrote about her experience.

Because she'll likely find out that she won't regret it. I certainly didn't. I came out with thicker skin, many contacts and a newfound respect for people who did that day in, day out out of necessity. I quit when I needed to, not potentially tanking my future career (although nothing a name change couldn't fix).

Another comment I read on here about this likely being a career move (to writing) was likely right. In which case.. Well done.

</comment><comment><USER5> So now, living on your own is a luxury. Next will be access to water? I understand that the US is lacking proper cheap housing, but this advice is pretty ridiculous.

As a bonus, if you look poor, you will be denied high profile jobs. This is the likely reason for the bourbon image, not bad spending practises.

</comment><comment><USER10> For some reason reading Talin's article made me really enraged.

If you read it you will realize quickly that she is ready to blame everything else but herself.

Unfortunately she will be used by the media to portray the wrong picture of Millennials.

Whatever attributes she has - is hers and hers only. It could be due to parenting, it could be due to her environment, etc. But please do not use her as a picture of the average Millennial.

<comment><USER11> Maybe she is complaining too much but when I was in my twenties people actually were paid OK money even for "low-end" jobs (even startups offered better stock options compared to now). I think it's just disrespectful when a company pays its people starvation wages. I guess this is another side effect of inequality: Companies want their workers for free while spending insane amounts on offices, executives and buying other companies.

Together with student loans, sky-high house prices and employers wanting them to work for almost free, I understand that people in their twenties are down on the system.

<comment><USER12> "Maybe she is complaining too much but when I was in my twenties people actually were paid OK money even for "low-end" jobs "

I suspect I am a lot older than you, and I don't remember _any_ period in which an entry-level customer service job paid enough money to support a roommate or relative-free apartment, much less in one of the most expensive cities on the planet.

<comment><USER11> I am talking about the 80s

</comment></comment></comment></comment><comment><USER13> Nothing like kicking someone when they're down.

<comment><USER14> Life is hard - news at 11

No one with a US citizenship and a college education has a right to complain.

You can go live in any city you want and work at any job, start a business or get unemployment checks.

Where I come from people die crossing the mountains & deserts just for a chance to pick the vegetables that Talia couldn't buy.

Give me a break.

<comment><USER13> Life is hard partly because judgmental assholes like the person who wrote that response.

</comment></comment></comment><comment><USER15> The correct answer to her complaint is a matter of historical record.

When the peasants (employees) complain that they cannot afford bread (groceries), the proper royal (CEO) response should be: Let them eat rice.

</comment><comment><USER12> When I was Talia's age I was pulling fourteen hour shifts on the slime line in an Alaskan fish cannery. The current median wage for that job is $26,000/year.

So, yeah.

<comment><USER9> Fourteen hour shifts? Fourteen hour shifts!? In my day we'd work from 1AM until 3AM the following morning, go to sleep for -2 hours, wake up and do it all over again! We were paid in 19th century New Zealand shillings and had to pay all of it back for living on the boss's premises!

(Sorry, had to throw a Monty Python reference there: [https://www.youtube.com/watch?v=Xe1a1wHxTyo](https://www.youtube.com/watch?v=Xe1a1wHxTyo))

I don't believe just because something was done one way before, means it should affect how things are now. If we believe the way "something is" is fundamentally wrong - just because it has been that way (or worse) should not provide be a valid argument against said "something".

Kind of fits in to: [https://en.wikipedia.org/wiki/Appeal_to_tradition](https://en.wikipedia.org/wiki/Appeal_to_tradition)

<comment><USER12> Yes, fourteen hour shifts. For real. The fish guts and freezing cold water were also for real. As was the rusty trailer I shared with four other guys.

The point here being that Talia, with her (now former) job answering the phone in a nice warm room, and commuting to her nice warm apartment in the nice trendy Bay Area, has it better than probably 90% of the human race has it today, much less in the past.

Her apparently genuine surprise at being fired after publicly slagging off her employer is just the icing on her entitlement cake.

<comment><USER9> We should really compare "like with like". Yes, you're adding perspective to the argument. Perspective though fair, does not add value to the argument. It simply dismisses it altogether.

Example:

John works a median job, earning a median salary and pays a median amount for rent and living costs. However John's boss has recently made him work 2 additional hours of overtime each day for the past 3 months.

But on the other hand.. Mary is a 4 year old African toddler who works 20 hours a day sifting through muddy water for specs of diamond. If she falls asleep or passes out she will surely drown. If she collects too small amount of diamond for her boss, she will have a finger amputated.

John should not complain and be happy to not live in such terrible conditions.

\--

I believe Talia was right to complain. However bringing her employer into the complaint, in a very targeting and "shaming" manner, was not a smart move (current career-wise). She works in conditions thousands of people are familiar with across the world. Her message resonates. But the only reason it is heard, is because she went about it the way she did.

If she had posted an anonymous, employer-anonymous article with the same content.. This would not be news. There may be a discussion between 5-10 people on the internet, but no major news site would publish on it.

Was she right in doing what she did? It depends on your perspective. I believe it is completely fair, she didn't fabricate her statements - simply saying (though somewhat emotive) facts. The company she works for on the other hand wouldn't see it that way.

<comment><USER12> You're setting up straw men. I was comparing two unskilled, entry-level jobs in the United States, so African toddlers don't really enter into it.

If Talia had more sense and less entitlement, she would have found some roommates or (failing that) not taken a job that didn't pay enough to support her. She wasn't forced to move to the Bay Area at gunpoint, dude.

I _do_ have sympathy for those people who've been living in the Bay Area for a long time, and have had a heavy squeeze put on them by the rising prices. That doesn't apply to Talia, though.

<comment><USER9> > If Talia had more sense and less entitlement, she would have found some > roommates or (failing that) not taken a job that didn't pay enough to > support her. She wasn't forced to move to the Bay Area at gunpoint, dude.

I agree with you here, but I still don't think comparing a 14-hour-day fish- cannery job in Alaska (which if it's anything like it is here, is also seasonal and catered for "travellers") to a cushy CS job in the Bay Area is remotely "similar".

</comment></comment></comment></comment></comment></comment><comment><USER16> No. Wait. Listen. My life is the hardest.</comment>


How to Build a Low-Tech Internet - <AUTHOR> https://www.lowtechmagazine.com/2015/10/how-to-build-a-low-tech-internet.html <comment><AUTHOR> 4 years ago [https://news.ycombinator.com/item?id=10456864](https://news.ycombinator.com/item?id=10456864)

2 days ago [https://lobste.rs/s/02ziqt/how_build_low_tech_internet](https://lobste.rs/s/02ziqt/how_build_low_tech_internet)</comment>


The Government Spied on Me. You Could Be Next - <AUTHOR> https://www.realclearpolitics.com/2019/05/10/the_government_spied_on_me_you_could_be_next_474386.html <comment><USER2> It's too bad the article doesn't have a timeline of when such surveillance became possible, and when it became widespread. Without that context, it's hard to evaluate this - it could just be rabidly-partisan rubbish, or even part of an influence op, designed to confuse everyone, and muddle the issue.

<comment><USER3> It seems like Sharyl Attkisson, is not just writing about her case, but also reflects on the overall timelines of US law enforcements becoming warrantless spy agency

"...

Long before the 2016 presidential campaign, confidential sources had alerted me to longstanding misuses of the Foreign Intelligence Surveillance Court system and the erosion of protections when it came obtaining permission for wiretaps and other surveillance methods.

So, the election debacle came of no surprise. I saw it as an extension of years of improper manipulation.

It now appears to me as though the effort to target those surrounding Donald Trump had more to do with intel officials' concern that a President Trump might dig into these longstanding surveillance abuses with the help of none other than Lt. Gen. Michael Flynn.

It was no secret in the intel community that Flynn, former director of the Defense Intelligence Agency under President Obama, was not only aware of long- standing intel agency surveillance excesses, but was also planning to clean house.

In the end, Flynn was unable to do the job because he got wrapped up in the Trump-Russia allegations. Funny, that.

…"

By the way, I have heard before on one of Mark Levin shows, that Flynn was the guy that knew about the power abuses, and was going to do something about them -- in his new capacity. And that's why he was sabotaged so early (or perhaps his was an easy target too).

Also, I suspect, that a lot of this illegal abuse of power by FBI and DOJ, was political.

From what I understand (but cannot find reference now), that it was also used to silence opponents of Obama's Iran deal -- therefore, I suspect that discussion, subsequent finger pointing and revelations about this -- will, necessarily, going to be centering around political affiliations of the abusers.</comment></comment>


Doctors find 526 teeth in boy's mouth in India - <AUTHOR> https://lite.cnn.io/en/article/h_0ed0d0e2fabb3553b4622aaad7647503 <comment><USER2> " Ramani said the boy was suffering from a very rare condition called compound composite odontoma. She said what caused the condition is unclear, but it could be genetic or it could be due to environmental factors like radiation."

Radiation?</comment>


What I Wish I Knew When Learning Haskell - <AUTHOR> http://dev.stephendiehl.com/hask/#%281%29 <comment><USER3> I think these 3 slides really stand out, they show with how little code one can write serious software in Haskell...

1\. ACID (acid-compliant persistance on Haskell data types, with indexes)

<http://dev.stephendiehl.com/hask/#(27)>

2\. Pipes (program on streams of data)

<http://dev.stephendiehl.com/hask/#(30)>

3\. Scotty (micro web-framework, a la Sinatra or Flask, on top of the super fast Warp server) <http://dev.stephendiehl.com/hask/#(32)>

<comment><USER4> About your point 3), it's worth noting the "toHtml" call buried in that example.

Haskell is both strongly and statically typed. That type boundary between strings and HTML output is enforced by the compiler, and it automatically (and provably!) prevents a metric crapload of injection attacks.

<comment><USER5> To bring this into sharper detail, notice that there's the "OverloadedStrings" compiler directive at the top of the file. That means that "hello " and "!" are of type Html, different from String. Strings can only be concatenated with Html after they've been escaped.

For more elaboration, see [http://blog.moertel.com/posts/2006-10-18-a-type- based-soluti...](http://blog.moertel.com/posts/2006-10-18-a-type-based- solution-to-the-strings-problem.html)

</comment></comment></comment><comment><USER6> I disagree completely with his analysis on monads.

If you just present the abstract structure, you cannot understand _why_ you even want (for example) the do notation as a language-level concept. I think this is more of a case of bad examples than anything.

Trying to represnent monads via analogy works badly too though, because monads as used in haskell are more about programming pragmatics than modelling real world objects.

The way to explain it should be :

\- Show real code

\- Explain why we use this structure to write our code .I think a good explanation is to ...

in Jquery you do things like chaining to build things.

$('selector').css('color','red').filter(someFilter).css('color','blue')

Chaining APIs are useful because you're combining computation('chaining'), and you don't want to have to carry around a value everywhere. You want to do the same thing in Haskell obviously.

Haskell doesn't have dot notation, so you can't do this style exactly. First idea would be to do something like

let x=jQuery document selector in let y=css x 'color' 'red' in let z=filter y someFilter in ...

This is a pain, especially considering that the 'chaining' here is mechanically obvious

let [n+1] = f [n] [whatever] in let [n+2] = g [n+1] ....

So monads, in the most pragmatic sense, allow you to represnt this form of computation. You end up with

jQuery 'selector' >>= css 'color' 'red' >>= filter someSelector >>= css 'color' blue'

You implicitly carry around your computation.

)

In any case the Maybe monad is the worst example ever, just like how a singleton group is a bad example. Sure it's the 'simplest' , but it's far from the most typical

<comment><USER7> The problem with bringing jQuery into the discussion is that it's _not a monad_. Don Stewart explains this more elegantly than I can [1] but the crux of the argument is that chaining together computations is not enough to be a monad, one needs to prove that the monad laws hold.

[1] [http://stackoverflow.com/questions/10496932/is-jquery-a- mona...](http://stackoverflow.com/questions/10496932/is-jquery-a- monad/10499668#10499668)

<comment><USER8> The majority of the 'proofs' I've seen that jQuery isn't a monad seem to either be probabalistic, or use the "Burden of Proof" argument to show that since nobody has proved that jQuery is a monad, we should assume that it isn't. I agree that jQuery probably isn't a monad, but it rubs me the wrong way that people aren't willing to say "It has yet to be determined if jQuery is a monad".

Obviously it is trivial to show that it isn't a monad by the fact that javascript permits any action in pure code, but by the same token, unsafePerformIO proves that Haskell has no monads. I think it's fair to operate under a reasonable subset of jQuery functionality when asking the question.

<comment><USER9> The point is that the concept of monad is a very concrete thing. Monad is not "chaining operations". Monad is not "returning actions instead of values". Monad is not some vague concept.

If JQuery is a monad, what are the monadic operations that make it a monad? What are its equivalents of return and bind (or any other equivalent definitions of a monad)? It's not a tricky question.

Saying that JQuery is a monad without saying what its return and bind are is equivalent to saying that whistling is Turing complete without saying how you can compute stuff with whistling. The problem here is not whether whistling is Turing complete or not, the problem is _what it would even mean for whistling to be Turing complete_.

This means that as of now, as long as you don't tell us what are the monadic operations of JQuery, _it cannot be determined_ whether JQuery is a monad, because this question does not make sense yet.

<comment><USER10> JQuery is an implementation of the List monad.

<comment><USER11> JQuery is an enormous API, so it is implausible that it is an implementation of the list monad. Some aspect of it might be the list monad. If so, which?

<comment><USER10> Most jQuery methods are functions that are mapped over a collection of elements. Many verbs return collections themselves, which are concatted together into the resulting collection. That's analogous to how List works.

So $(element) implements return as a -> [a]

And bind is mapcat, which is called by most of the jQuery methods.

Yes, that's a subset of the API, but it's the subset that distinguishes jQuery from any other collection of helper functions.

<comment><USER12> $(element) does not implement return. $($(element)) gives $(element), which means that it does not work on an arbitrary datatype, which means that it does not implement return.

jQuery may be analogous to a monad. That doesn't make it a monad.

<comment><USER10> There's a lot of stuff in jQuery that's not monadic, but that doesn't disqualify it. There's no law that return(return(x)) has to be defined - <USER2> Haskell List of Integers is still monadic, even though return(return(1)) would be a type violation. And undefined code can do whatever you want and not be a problem for the definition.

<comment><USER12> No, I'm sorry, you're wrong. return(return(1))::[[Int]] gives you [[1]]. For something to be a monad, it must be a polymorphic type of kind * -> * . That means it must be a type constructor which takes any type as a parameter. Any type, including a concrete type constructed from the type constructor you are declaring an instance of Monad.

<comment><USER10> No, a monad is not something that implements the Haskell typeclass Monad. A monad is anything that satisfies the monadic laws - and they don't say anything about polymorphism, only associativity and left/right identity. I assert that you can implement a structure that satisfies those laws without having return(return(x)).

Can you disprove that?

(P.S. you are wronger)

<comment><USER13> Yes, I can disprove. This has nothing to do with Haskell, I'm only going to use the monad laws. The first monad law says:

        bind f (return a) = f a

For all a and f. Therefore, by substituting f = id, and a = return x:

        bind id (return (return x)) = return x

If, as in jQuery, `return (return x) = return x`, then we can simplify to:

        bind id (return x) = return x

Now, applying the first monad law again, we get:

        x = return x

So return must be the identity function. But jQuery's $ is not the identity function. Contradiction. QED.

<comment><USER10> I like your answer, but I'm going to refuse to concede that it's correct, out of stubbornness.

No wait, I can do better. For _some_ values, $($(x)) is the equivalent to $(x). So, for some values $(y) = y. So for the domain of y where $(y) = y, $() is the identity function, and now it's a monad.

<comment><USER12> Now it's a monad how? What category is it a monad on, and in what way does it satisfy the monad laws? Are you really saying that sometimes $() is return and other times it's id, and presto magico it's a monad?

<comment><USER10> Look, if you want to have a discussion with a reasonable person who's going to try to follow your arguments and retort them under the exact same level of rigid discourse that you are using, maybe you should try someone other than me.

But yes, presto magico. I am outwitting your narrow-minded mathematics.

<comment><USER12> Well, as long as it's all in good fun :-)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> He's got some good stuff on his website (didn't get much from the slides as I've only dabbled in Haskell a couple times).

<http://www.stephendiehl.com/posts/essential_haskell.html>

<http://www.stephendiehl.com/posts/types.html>

<comment><USER15> I would suggest these for the starters: <http://shuklan.com/haskell/>

<comment><USER14> Wow those are some awesome lectures. Thanks!!

</comment></comment></comment><comment><USER16> I'm a PHP developer and I didn't understand one single thing in this presentation. Any reason I should learn Haskell?

<comment><USER17> If you're really happy and think things are dandy and don't really have an alternative, then no, stay away from Haskell and FP. As others have commented, you will not be able to code the same way after you have learned functional programming.

While FP doesn't solve everything, it does massively reduce the amount of code you write. Where I work, I started writing everything I owned in F#. After a while, I noticed all other new projects were being written in F#, even by people that had previously told me "we are sticking with C#". Why? Because they feel bad having to write loads more code to get the same work done.

Every time I have to work in C#, I'm constantly annoyed about how verbose even the tiniest things are, how much work there is.

Beware, PHP's syntax for lambdas is incredibly verbose (and IIRC there are some odd limits on how you can use them), so if you become "enlightened" then continue to try to apply it in PHP, you are in for a rough ride. Even C# which slightly embraces functional concepts, gets pretty nasty if you write in any sort of real FP style.

<comment><USER18> Where do you work that you can just take a decision like "I'm going to use language X" if you don't mind me asking?

How did you deal with concerns (which I assume your manager must have had) about skilling up the rest of your team, and your increasing component of the bus factor? [1]

I tried to make a case for F# for some parts of our codebase and got shot down!

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

</comment></comment></comment><comment><USER19> There is a great point buried in slide 8. The best way to learn to use monads is... _Use monads in real code._

</comment><comment><USER20> Does anyone know the best book for learning Haskell? I have heard it is good for just thinking about programming in new ways and keeping your mind agile. I can really only learn a language with a good structured book with exercises at the end of each chapter. Haven't found something definitive yet, but would be open to suggestions.

<comment><USER21> The 'best' introductory book for learning Haskell is Graham Hutton's 'Programming in Haskell'. It focuses on the essentials of the language, and its clear, spare presentation is in the spirit of Haskell itself. And it is accessible to everyone.

<comment><USER20> I was actually thinking of going with this since it seemed to focus on the foundations of lambda calculus and is also fairly condensed. I was thinking I might try "The Haskell School of Expression: Learning Functional Programming through Multimedia" as a follow up just cause it sounded satisfying.

<comment><USER21> Hudak's 'Haskell School of Expression' is also full of much Haskell wisdom and spirit.

</comment></comment></comment></comment><comment><USER22> Slides don't work in Sarari on iOS. Is there a static version?

<comment><USER7> <http://dev.stephendiehl.com/hask/flat.html>

<comment><USER22> Finally a proper answer. Thanks!

</comment></comment></comment><comment><USER23> Is there a recording of a talk to match these slides?

</comment><comment><USER24> This post somehow triggered me to grab "Learn You a Haskell for Great Good" this morning and I have been gorging on it since then. I've had quite a few "holy shit" moments.

</comment><comment><USER25> Pretty comprehensive (including plenty of things I haven't had time to look at into more details yet). Bonus points for using applicative style, which makes it a lot easier (and clearer) to apply function to value inside monads.

</comment><comment><USER26> "Haskell Propaganda: OOP programming couples code and data together in unnatural ways. Typeclasses are a better way of structuring logic."

should be

"Inheritance couples code and data together in unnatural ways. Typeclasses are a better way of structuring logic."

<comment><USER27> How so? An OOP language without inheritance would still be coupling code and data together "in unnatural ways". It is the object that is doing the coupling, not inheritance.

</comment></comment><comment><USER28> Some of the slides need explanation.

What is the value of -ddump-simpl as shown here? <http://dev.stephendiehl.com/hask/#%2816%29>

<comment><USER29> As freyrs points out, GHC "desugars" all Haskell code into a very small intermediate language that is similar to the System F lambda calculus. In the slide you linked you can kind of see that: you start with two doubles for 2 and 3 (created wit the `D#` function) and then you add them with the addition operator. Notice that this exposrs the implementation of typeclasses: the overloaded + operator is actually a function of three arguments and the first argument is the "vtable" that has the actual number operations.

I don't know why he is doing all of this though. The slides themselves don't give much context...

</comment></comment><comment><USER30> Nothing like getting a pile of slides without any presenter notes or anything else helping to interpret the slides.

</comment><comment><USER8> This is very good. I'm getting a bunch of new tricks out of this even though I regularly use these libraries.

</comment><comment><USER31> Recording would be great! I feel like I only got half of the (good) information without it.

</comment><comment><USER32> I first learnt Haskell ten years ago for a class. Mostly toy problems. Looking to get back into it. What books are good to learn to build actual apps - especially user input, UI, etc.?

<comment><USER3> realworldhaskell is good for general purpose.

i think the yesod o'reilly book (free on yesodweb.com) is a very good one if you dont mind to make web apps.

</comment></comment><comment><USER33> I saw a blank page and immediately thought "how poetic".</comment>


Spying on the Soviets with Graph Paper and a Calculator - <AUTHOR> http://www.airspacemag.com/history-of-flight/though-a-glass-darkly-bill-sweetman-technically-speaking-column-180957300/?no-ist <comment><USER2> Great article. I really miss the days when I used to run to my university library ever week to read the latest issue of Aviation Week. A few of us regulars used to wait for the magazine and formed an informal discussion circle and do calculations similar to what they describe in the article.

<comment><USER3> I wish there was more in this article. Bit of a long shot but have you got any suggestions handy for any similarly interesting articles in Aviation Week? I went to their site but from what I could see most of the articles were about newly announced aircraft which is sorta interesting, but not what I was hoping for.

</comment></comment><comment><USER4> We should try to reconstruct their methods and build a how-to for doing this. Since the data on quite a few planes is out there, it would be really interesting.

<comment><USER5> Aerospace engineer here: I'm on mobile so I won't get into too much detail but if you know or have a good idea of the dimensions of the aircraft, you can get a pretty good approximation of performance characteristics with nothing fancier than an undergraduate flight dynamics textbook.

The shape and locations of the various control surfaces, wings, stabilizers, etc. will let you deduce a great deal of the aircraft's handling and stability qualities. You can make educated guesses as to the lift and drag coefficient curves and if you have any performance data (e.g. my friend Ilya saw it going this fast at this altitude) you can go even further by making inferences about the propulsion system.

For me the only x-factor would be constructing a 3-view plot of the aircraft when given only a single photo. I guess it would depend on the perspective from which the aircraft was photographed.

</comment></comment><comment><USER6> What is it with "rocket jockeys" and itching for (nuclear) fights? Screwing with the F-15 program if they didn't produce numbers that showed a intercontinental bomber threat?!

<comment><USER7> During the cold war there were perpetual battles between the ICBM guys (who saw the main threat as ICBMs and thought most budget should be concentrated on missile programmes) and the bomber guys (who saw the main threat as bombers carrying nuclear payloads and thought most budget should be concentrated on similar bomber programmes and fighter programmes for defence).

As an air force guy, fighting his corner is what you'd expect him to do.

<comment><USER6> There is fighting for his corner, and there is fucking with a company's fighter program if they don't outright lie about the performance of enemy equipment.

That has a high potential of a own goal, to say the least.

<comment><USER8> There is fighting for his corner, and there is fucking with _your nation 's defense_ to advance your agenda. The article effectively says that Keegan was a serial offender in this regard.</comment></comment></comment></comment>


Mona Lisa heist of 1911 concealed a perfect—and far more lucrative—crime - <AUTHOR> http://www.vanityfair.com/style/features/2009/05/mona-lisa-excerpt200905?printable=true&currentPage=all

<comment><USER2> Wow, what a great story!

I'm surprised the thief only served seven months in jail. I can't imagine it being that lenient today.

<comment><USER3> I was half expecting some crazy penalty like life imprisonment or death. Made me realise how out of touch I am with early 19th century Europe!

<comment><USER4> 20th century

<comment><USER3> OK that's embarrassing!

</comment></comment></comment></comment><comment><USER5> Just spent 10 mins reading, good story but abridged version:

\- An Italian Louvre worker, Vincenzo Perugia, stole the Mona Lisa, claiming his motivation was that the French had stolen works from Italy.

\- Years later he attempted to give it back but claim a reward. He changed his story a few times about how he stole it.

\- The revelation of the larger crime was that a slick con-man claimed he helped Vincenzo steal the work for the purpose of selling credible fakes to a handful of American millionaires since it was widely reported that the original was stolen.

<comment><USER6> <http://en.wikipedia.org/wiki/Vincenzo_Peruggia>

</comment></comment><comment><USER7> This is like some kind of real-life Ocean's Eleven.

<comment><USER8> There was a British TV series that I watched some of a while back about a group of con artists (sorry, I can not remember the name right now). Several of the episodes had this same plot: the group of con artists would steal some valuable antique, and then sell forgaries of it, before returning it as part of a plea bargan.

<comment><USER9> _Hustle_ <http://en.wikipedia.org/wiki/Hustle_(TV_series)>

</comment></comment></comment><comment><USER10> What's interesting is that there are people willing to pay millions to have a piece of art that they can't show to anybody or brag about it. I guess these people are true art lovers.

</comment><comment><USER11> The story is entertaining, but the con-man angle tacked at the end is highly dubious. Even if there was reason to believe that Valfierno even existed, its hard to swallow a century-old third-hand tale from an admitted con-man without a shred of evidence. Moreover, there's nothing about his story that explains the theft and plenty that contradicts known details. Sometimes lone nuts really do commit crimes beyond their stature.

</comment><comment><USER12> Its funny how different this story could have been told, if the plumber hadn't come by.

</comment><comment><USER13> Interesting story. Valfierno had a very effective PR and insight into the market. He would have made an effective head of PR or Sale.

<comment><USER14> Probably selling CDOs.</comment></comment>


Really Friendly Command Line Intro - <AUTHOR> https://hellowebbooks.com/learn-command-line/ <comment><USER2> I thought the hand drawn windows were well done for what they were, but for a beginner audience I wonder if real screenshots do more or less to help with the "aha" moments of connecting the tutorial instructions with output the user anticipates.

At the same time, the hand drawn windows probably make the tutorial less intimidating to the target audience-of which I'm not a member. But got me pondering how I can improve my own documentation in a few areas.

Curious what others might think.

<comment><USER3> This is a situation where I would argue that giving "exact" images of the output is not helpful, and I'm somebody who normally hates fruity presentations of info. Having the reader make their own associations allows it to be applicable across environments and develops what I'll go ahead and call "Rambo problem-solving", where you must get from point A to point B, even if that means you have to improvise or roll in the mud a little. You can't go off the beaten path with most GUIs, so being able to with a CLI is one of its most compelling uses. The reader needs to associate the command with the info, and not the presentation of it.

<comment><USER4> I never thought of that, but on reflection I think you're exactly right that hand-drawing is a good way to focus the reader's attention on the content of the text and not on the surrounding visual context. With a screenshot, the user might be consciously or unconsciously wondering why the terminal window looks different if it's a different OS/terminal emulator/font.

<comment><USER5> That issue would be better solved by just typing the text in a code block, no?

<comment><USER6> I feel that goes too far in the other extreme. They might not be able associate the examples with their own environment if the prompt is different (besides username and host; a different $PS1). Having the window representation makes for having more to associate, like "yes! I too have a window with a bit of text at the top and empty space below and to the right!" Having drawings also allowed for those arrows and text to explain the content, so that's great.

</comment></comment></comment></comment></comment><comment><USER7> Hey, author/illustrator here. Of course this pops up on HN while I'm on a transatlantic flight.

Thanks for all the nice comments!

I made this specifically for folks who've only used GUIs and are used to having a designed shell around everything they do. That's why I illustrated the windows — at the small expense of readability, the goofiness/friendliness makes the topic more fun and less intimidating.

As shazow mentioned, I'm working on specific Linux (very few changes) and Windows versions (including instructions on using the Linux subsystem), and hopefully doing others on topics like git and whatnot — same model as this one, no signup forms or payments. That said, I am looking for sponsors to help fund my time in making these. If you (or your company) is interested, send me an email at firstname.lastname@example.com :)

<comment><USER6> A nitpick, just in case you haven't noticed and would want to make the correction, in the text you say:

> In the example above, you see my username "limedaring", and my computer > name, "Orion,"

but the examples say "username@computer".

Another nitpick, I wonder if readers might see the commands in uppercase and think that those should work too. I can imagine them seeing "command not found" when trying them out and not realize that it's because LS != ls to the shell.

Yet another, maybe it'd be a good idea to include `cp -r` and `cp -rv`. I don't know, it might add to the intimidation, but I imagine that's also a basic operation they'll want and miss when doing `cp dir/`.

Great work, by the way. CLIs are great and in many if not most cases far more powerful than GUIs, but they're often taken as old and useless by the general public because they were more prevalent back before GUIs were common. It's great to see something aimed to be more easily digestible for the general public. Maybe CLIs can get more appreciation this way.

<comment><USER7> Thanks for the nitpicks! Going to update the Mac version too when I release the Linux/Windows versions, this is super helpful.

</comment></comment></comment><comment><USER8> Love the idea! One little nitpick - in the `ls` section, you have a paragraph that reads:

> Go back too much? Use ls to see what's in the directory you're in, and then > use cd to head back to where you want to go:

In my experience, if I get lost with `cd`, the best way for me to figure out where I am is not to execute an `ls` (because I might be in a folder with no contents, or somewhere with ambiguous content), I would recommend `pwd` ("print working directory").

<comment><USER9> In the example, the shell is already outputting the result of `pwd` as part of the prompt, which should be enough to help get your bearings.

</comment></comment><comment><USER10> Heya HN, I worked on this with Tracy (who is on a plane right now). That is, she did everything and I made some doodles for the cover, but happy to answer any questions!

If you have a friend or coworker who is looking to get more comfortable with their terminal, I highly recommend printing one of these out. It looks great in-person.

<comment><USER11> Nice work, but this looks kinda use-less (or not as useful as it could be) to me. Not in terms of 'you will never need it' but in terms of 'hey I just learnt something and now I can do X what I could not do before' :-/

It just tells someone who wants to learn the CLI how to do the things they already know to do with some file browser. What I am missing are the things you can do with the CLI only and which make the CLI so special e.g. pipes.

In general, it is kinda hard to chain GUI programs together and that is exactly where CLI tools are great. While I would certainly agree that it is too hard to start explaining what curl does, maybe coming with some process management example would be simple enough (many people know how to close some program via a task manager). Another good example might be to execute some command every few seconds (e.g. watch du -sh).

I don't want to be negative here, especially because I appreciate simple and straight forward tutorials, but I think that tutorial could be even more valuable with some better examples. Maybe in some part 2?

<comment><USER6> The purpose of this is not to show how CLI is cool, but rather to get them to take their first steps and show them that it's not scary. In other words, the goal is to get them to feel familiar in this environment. For this goal, showing them how to do things they already know but in this new environment is specially important to warm them up to it. If you show them stuff like pipes, you might impress them, but you're not lowering the hurdle.

EDIT: Put in another way, the intended audience is not people you need to convince to use the CLI, it's people that already want to try it, but find it scary.

<comment><USER11> Well, if you know that audience its cool. I was never afraid of the CLI, it was more that I could not find good use-cases and therefore stuck with the GUI tools, even when I knew how to use cd, touch, mkdir, mv, cp, ls, etc.

I think the biggest break-through was when I was starting to write scripts as it taught me the rather complex syntax of conditions and loops (complex because whitespace is so important), but I would agree that scripts are a bigger beast.

I think people who try the CLI but are not shown the true power of the CLI will eventually return to their GUI tools as they don't have to remember strange commands and read long man pages.

</comment></comment></comment></comment><comment><USER12> This looks like a great way to get over the initial hurdle of unfamiliarity.

The only thing that looked potentially confusing was calling "cd .." a way "to step back". It could sound like a way to go to the last directory you visited instead of a way to go up a directory.

<comment><USER4> Especially when the latter also exists (although it's implemented by the shell rather than the OS): "cd -".

<comment><USER13> cd itself is implemented by the shell (granted, it is mostly just a syscall). You can't fork and exec a cd program because it would need to change the parent's working directory.

Also, bash offers a directory stack you can use:

pushd pushes the current directory to the stack and cd`s to the specified directory.

popd pops the top directory from the stack and cd`s into it.

Not quite the same thing as cd -, but still useful to know.

<comment><USER4> > cd itself is implemented by the shell (granted, it is mostly just a > syscall).

Right, the distinction I was drawing is just that the shell potentially does chdir("..") when you run "cd ..", but it can't do chdir("-") when you run "cd -". It's true that in both cases the shell has to make the chdir syscall rather than running an external program.

I just did "strace -e chdir bash" and noticed that in fact, my shell doesn't do chdir("..") at all in practice, presumably because it wants to maintain a clean notion of PWD that doesn't contain a complex series of relative paths.

<comment><USER6> > presumably because it wants to maintain a clean notion of PWD that doesn't > contain a complex series of relative paths.

More probably, it's so that things don't get confusing for the user with symbolic links to directories. If you cd to a symbolic link that leads to a directory, `chdir("..")` goes to the parent of the target, while `cd ..` goes to the parent of the source. In other words, `cd dir/subdir/; cd ..` will always get you back to dir/, but if it used chdir("..") it wouldn't always.

</comment></comment></comment></comment></comment><comment><USER14> I'm digging the rise of well designed, friendly online books about programming. Between Crafting Interpreters, Beautiful Racket and this, there's enough material for a programmer to go very far. Plus it's a lot less intimidating than your usual tome.

</comment><comment><USER15> I'm going to forward this to my colleagues who are less friendly with the CLI.

<comment><USER10> Awesome! Thanks for sharing. :)

</comment></comment><comment><USER16> Is this as heavy on Mac specific terms as the video suggests? The person I would like to recommend it to would get confused.

<comment><USER10> Tracy has been working on Linux and Windows specific versions, but turns out the differences are super minimal.

With Windows, the recommendation is to install the Linux subsystem, then things end up being the same (give or take some UI).

If your friend gets confused, would be curious to hear what the problem was. There is also a related forum/community here: [https://discuss.hellowebapp.com/](https://discuss.hellowebapp.com/)

</comment></comment><comment><USER17> fyi : The vast majority of these commands are aliased within Powershell with the exception of touch

<comment><USER18> I'm not a fan of the aliasing because the actual CLI for these aliased commands can be very different from the originals.

<comment><AUTHOR> I was pleasantly surprised when teaching the CLI to discover that PowerShell (and cmd it seems) has similar conventions to bash when it comes to `|` and `>`. But it annoyed the hell out of me that PowerShell aliases `curl` to something that is most definitely not a drop-in replacement for *nix curl. I ended up having to teach people on Windows how to download the proper curl, and then to refer to it as `curl.exe`.

<comment><USER19> Why didn't you teach them how to use Invoke-WebRequest instead?

<comment><AUTHOR> Because the class also involved students who had Macs.

</comment></comment></comment></comment></comment><comment><USER20> Thanks this is awesome!</comment>


Choosing white over red meat does not necessarily reduce CVD risk - <AUTHOR> https://academic.oup.com/ajcn/advance-article-abstract/doi/10.1093/ajcn/nqz035/5494812 <comment><USER2> _Conclusions The findings are in keeping with recommendations promoting diets with a high proportion of plant-based food but, based on lipid and lipoprotein effects, do not provide evidence for choosing white over red meat for reducing CVD risk. This trial was registered at Clinicaltrials.gov as NCT01427855._</comment>


OAuth2 Ruby Client, For Box.com's V2 API - <AUTHOR> https://github.com/attachmentsme/ruby-box We've decided to open-source the client we built internally at Attachments.me, for Box's 2.0 API. I hope that others can find it useful :) <comment><AUTHOR> We've decided to open-source the client we built internally at Attachments.me for Box's version 2 API. I hope that others find it useful :)</comment>


You'd Be Happier If You Ate Less - <AUTHOR> http://www.vice.com/read/if-you-want-to-be-happier-just-eat-less <comment><USER2> Right from the abstract of the first study linked, the authors say that they haven't at all indicated that eating more fruits and veg makes you happier.

"Effects may be bidirectional given that optimists are likely to engage in health behaviors associated with more serum antioxidants, and more serum antioxidants are likely associated with better physical health that enhances optimism."

But I guess "happy people are more likely to eat well" isn't a very interesting headline....

<comment><USER3> Yeah, well... you know, it's a _vice.com_ article we're talking about here.

</comment></comment><comment><USER4> No, this is false. Spreading this idea is very harmful, please stop.

Eating low-quality foods is bad for people's health, and makes them unhappy. When people do that, they instinctively compensate for the low nutrient density in those foods by eating more, which has negative effects. But if you simply reduce quantity without replacing the junk food with healthier stuff, that isn't an improvement; that's malnutrition.

<comment><USER5> I hate to ask the silly question of "Did you read the article?", but it specifically said to eat more fruits and veggies, and all caloric restriction was done "with regular nutrition consultations to keep them on track".

Nothing in the article recommended eating low quality foods.

<comment><USER4> Yes, I did read it and saw that the part of the intervention that actually worked was changing diet content rather than quantity. But the headline is "you'd be happier if you ate less", and that is a false and pernicious statement.

</comment></comment></comment><comment><USER6> I hope this is true, because I'm about 3 months and ~30 pounds into my own diet and I'm not any happier. I'm not miserable like I thought I would be, but I certainly find myself less patient and less pleasant than before.

I'm doing fine with the actual dieting, though. No harsh cravings, rarely feel that hungry, etc.

<comment><USER7> I can tell you for me it really did make a change, but it took me about 6 months to really feel it.

In October 2015 I was at +110 pounds from today and had to take indigestion medicine to sleep at night, as I gradually changed my diet they became less and less needed. Eventually I discovered I don't need them at all anymore.

Now I find myself craving 'healthier' meals. Most nights for dinner I have greek yogurt, apples, pears, berries, and a little cheese. I honestly couldn't feel better.

A few nights ago I decided to eat one of my old favorite snacks, Cheetos and was left feeling hungover in the morning. I know it's anecdotal evidence, but my experience is the lifting of depression was very gradual and in the last three months or so I've been in the best over all mood of my life.

Keep the diet up and try your hardest to find an exercise that doesn't feel like work. Mine was biking, and I firmly believe that to be my source of happiness in life along with a clean diet and good health.

</comment></comment><comment><USER8> The article abstract has more detail. [http://archinte.jamanetwork.com/mobile/article.aspx?articlei...](http://archinte.jamanetwork.com/mobile/article.aspx?articleid=2517920)

The people involved were in the upper range for healthy BMI or into the overweight range. It's not surprising healthier weight makes people happier. This doesn't mean that people of low/medium healthy BMI would be happier on a calorie restrictive diet. It would be interesting to know what the BMI range was at the end of the study. Did they just get people into the low/medium healthy range or did they dip lower than that?

More importantly, though, how did they get people to stick with a 25% calorie reduction for 2 years? That's like the holy grail for weight loss research. Almost no one stays with a diet long term.

</comment><comment><USER9> Whether the findings have merit or not (I'm willing to believe its true), the sticking point is getting people to change even if that change will directly benefit them. As many things culture-bound, you have to start with the young, those already eating are mostly set on the ways and there isn't much of a chance to change them.

It's like changing attitudes toward education, spending habits, rules of society, racism, etc. We all will recognize what's better, but will have difficulty executing, either individually or as a society.

So, good news, but... how does it help people in practice?

<comment> saiya-jin I fail to accept the notion that people are stupid sheepish weaklings that have no willpower over their own body and mind. Some might believe this and then act in this fashion, but most have the potential to do almost any change with their life, be it eating habits or something else.

I stopped smoking after university, not easy but perfectly doable. That was 12 years ago. No cravings anymore or any thoughts. Detest the smell like all others (that's actually easy part). Same for very good friend, he never touched cigarette and he was quite a smoker back then, till one day when he stopped just out of blue. And we're nothing special, just common folks. If we could do it, most can do it too. But not with the attitude you describe, that's for sure.

Let's not try to save humanity in the first step, and just focus on yourself. Self-discipline is not a curse word, it means a lot of mental strength and power in long run

</comment></comment><comment><USER10> A) marginally less. I can assure you as a borderline anorexic it is not fun to be calorie deprived daily.

B) I found the proportion of fruits and vegetables to be much more enlightening in terms of mood improvement, even if the results disappear when looking at the actual study. The clickbait title is annoyingly typical for vice's text "journalism".

</comment><comment><USER11> Did they account for the likely correlation between wealth and fruit consumption?

</comment><comment><USER12> > You'd Be Happier If You Ate Less

Yes, and the poor would be wealthier if they had more money.

What is garbage like this article doing on HN?</comment>


SJR : Scientific Journal Rankings - <AUTHOR> http://www.scimagojr.com/journalrank.php <comment><USER2> This ranking scheme appears to rely on citations to a given article in other articles, which works all right within one field but isn't very effective when multiple fields are compared. For example, a sociology article with ten citations isn't remotely comparable to a math or physics article with ten citations.

Further, the questionable nature of the rankings is apparent from the default list, in which journals of obvious merit are way down the rankings, below journals of much less self-evident standing. The journal Cell ranks 7th, and Nature ranks 14th -- something is clearly wrong.</comment>


The Barbarians are at the Gates - <AUTHOR> http://blog.8thlight.com/uncle-bob/2011/12/11/The-Barbarians-are-at-the-Gates.html

<comment><USER2> I am a fan of Clojure, but what would make sense is a really really great example of multicore computing in Clojure vs Java accompanying this article.

</comment><comment><USER3> I get the feeling that, after reading this article, we should all panic and start learning Clojure as fast as possible because the end is near.

TL;DR - Author throws many claims around (he has a point about many cores) with numbers and stuff and points to Clojure as the only salvation.

<comment><USER4> He says, is "Clojure the language that will take us into the massively- multicore regime? I don't know. In fact, I rather doubt it". He does point to it as a step in the right direction.</comment></comment>


Chinese Wi-Fi monitoring requirement goes into effect at Internet cafes, etc. - <AUTHOR> http://www.nytimes.com/2011/07/26/world/asia/26china.html

<comment><USER2> Do you remember the flopped 'Green Dam' software[1] that was to be mandatory pre-installed on every PC sold in China? They're trying it again with this monitoring software.

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

</comment><comment><USER3> The 'Propaganda Department'? At least they are honest about their aims, I suppose.

<comment><USER4> I remember reading a forum post (maybe on HN), where someone from China made the comment that in the US the propaganda is so much more subtle than it is in China.

<comment><USER5> Not really subtle, just in the US they are called lobbyists.

tom-a-hto - to-mah-to

<comment><USER4> IIRC, the person was referring to the media, not to Capital Hill.

<comment><USER5> Oh because lobbyists have NOTHING to do with the media... sheesh, how could I think such a thing.

I stand corrected.

</comment></comment></comment></comment></comment><comment><USER6> Travelling through a lot of airports in China I often see the "free wifi" stickers inviting you to connect. Upon connecting to the wifi, a gateway page asks you to go the customer service counter where they take a copy of your passport before issuing you a user/pass for internet access. All I want to do is browse HN or blogs to pass the time but knowing they have tied my browsing to my passport makes me feel incredibly paranoid about it. If i go to the wrong blog, will they stop me at immigration on my next trip?

<comment><USER7> Last Saturday I spent hours online from Shenzhen airport, there's no such requirement there. But of course some articles mentioned in HN are inaccessible since they're hosted on G+ :(

</comment></comment><comment><USER8> Welcome to China+ ! In Japan they're also debating mandatory ID for Internet cafes. They have soft guidelines that no one follows because it's bad for business. Cafes here don't let you just plugin like in Europe. Also comes with tons of manga and passes to online games and seedy paid sites.

The rationale is that IDing prevents crime. However, it's also how a controversial coast guard video was leaked when government was being incompetent as usual.

<comment><USER9> Whenever I've gone to a net cafe in Japan, I've always been asked for id.

</comment></comment><comment><USER10> Somehow I missed China in the title and was reading the article, believing for a minute it was very plausible this was happening in the USA from "homeland security".

</comment><comment><USER11> I've been to China many times, and I've never seen a Mexican restaurant there.

<comment><USER12> Shanghai has everything</comment></comment>


My Darwinian Daughters - <AUTHOR> http://blogs.discovermagazine.com/loom/2010/07/13/from-the-vault-my-darwinian-daughters/

<comment><USER2> Mostly good. But there is one thing I doubted.

 _Mothers, for example, seem to slow down the growth of their babies in the womb. As a result, the average baby is not born at the optimal weight for avoiding an early death. It's a little on the light side. Only an evolutionary tug of war can explain that gap._

I would say that the more obvious evolutionary tug of war is between viability after birth and odds of surviving childbirth. Remember, over recent evolutionary time, childbirth was a rather dangerous affair. Furthermore related species with smaller heads have larger babies.

</comment><comment><USER3> I love how these "just-so stories" involving evolution treat it as a magical, omnipotent, "blind watchmaker". It's clearly a religious attitude, not a scientific one.</comment>


The great fire of London – 350 year anniversary site - <AUTHOR> http://www.fireoflondon.org.uk/story/the-fire/ <comment><USER2> Terrible user experience. There's no reason to use this kind of interaction when it's not adding to the experience.

</comment><comment><USER3> Really difficult to get at the super interesting content</comment>


Ask HN: When selling a software business, does code quality affect sale price? - <AUTHOR> <comment><USER2> 99% of the time. Nope, having tons of paying customers and profit is what will matter. If the "shitty code" was good enough to build that business, it will be a good enough to keep it running. I have seen companies acquired for tens of millions and 2 hundred million offers and the code was pure shit. It was the customers/business that was important. Guess what, those acquisitions were successful and the buyer is happy! The acquiring development team wasn't happy of course and won't have signed off on buying because of the code base, but that's why they are engineering and not M&A!

Thought experiment, imagine you build a social network that grows to be as large as twitter or Instagram, or you come up with an amazing deep learning tech that is far ahead of anything in the industry. Do you think all the companies that will come knocking at your door will care about the code quality? In the former case, if you have 100 million DAU, folks want the users not the code. In the later, if you have amazing tech, no one cares about the code quality, they want the tech, they can hire pros to fix and improve the quality.

<comment><USER3> This answer is spot on. User base is always more important than code base. ROI is what business people care about and code quality doesn't matter as much as does it work as advertised. Also there are always those coders who'd work on building a 2.0 for said project at a decent rate because they need the paycheck.

</comment></comment><comment><USER4> Good Q.

It has to do with the buyer's ability to determine what the code quality is. I think people are limited in their ability to quickly assess code quality. Myself, I spent two days reviewing a system to give it a clean bill of health, but six months later my boss said that it shouldn't have been written at all and I agreed.

<comment><USER5> I'm just thinking now, turning on a tool like code climate [0] could be useful as it scans the whole codebase and gives each part of the code a grade (eg. A,B,C).

Not a perfect approach but a useful guide to find obvious code smells/issues.

[0] [https://codeclimate.com/](https://codeclimate.com/)

</comment></comment><comment><USER6> Yes. It does affect. If I, the buyer, determine that your code needs to signifcantly rewritten to fit my needs/systems, I will be willing to pay less money. Instead, I may want to build it myself.

</comment><comment><USER7> There is a good chapter in Chaos Monkeys regarding this and facebooks review of the code.</comment>


Being a generalist requires more sleep than specialists - <AUTHOR> http://andymckenzie.blogspot.com/2010/09/trade-off-10-plasticity-vs.html <comment><USER2> Interesting, but the article actually says hardly anything about sleep, and "generalists" here means "organisms with the ability to change in response to their environment". There's not the slightest suggestion that human beings who are more "generalist" need more sleep than ones who are "specialist" in any normal sense.

Incidentally, sloths and armadillos sleep for about 20 hours a day. Are they generalists?

<comment><USER3> If A -> B, it's not necessarily true that B -> A. (A = generalist, B = sleeps a lot.)

<comment><USER2> On the other hand, if B is "sleeps more" (which was, after all, the claim in the subject line here) then A -> B and B -> A are pretty much the same thing, except that the meaning of B -> A is a little unclear.

<comment><USER3> Not at all. There may be many things that can cause B ("sleeps more"), such as "hunts big game." So A -> B does _not_ imply B -> A.

<comment><USER2> Sorry, I wasn't clear. The point is that here B is "is a generalist rather than a specialist" and A is "sleeps more than a specialist".

If the claim is "generalists sleep more than specialists" then any instance where a specialist sleeps more is a _refutation_ of the claim if it's made in a very strong form (all generalists sleep more than all specialists) and _evidence against_ the claim if it's made in a weaker form (generalists tend to sleep more than specialists).

(It might in some cases be only very weak evidence. Indeed, I think it is only weak evidence here; armadillos and sloths are just two particular cases. So far as I know, though, there's no particular tendency for more-generalist animals to sleep longer.)

<comment><USER4> I think the article was talking specifically about humans, and not other species. In that case, there's a baseline of sleep required for a human. Need more than that? You're a generalist. Need less? You're a specialist.

When you go bringing in other species you have to change the baseline. Sloths and armadillos sleep as much as they do for other reasons than being worn out from brain plasticity.

<comment><USER2> > I think the article was talking specifically about humans, and not other > species.

Um. Looks to me as if it's almost all about _neural plasticity_, which is not at all the same thing as being a generalist human rather than a specialist one. And the only thing I can find in it that says anything about one set of humans versus another is a comment about autism. (Whether there's evidence that autistic people have less neural plasticity, I don't know.)

And while I've only skimmed the paper they point to when saying that "one hypothesis holds that sleep is the price we have to pay for plasticity the previous day", I don't see anything in it that says anything about specialist versus generalist humans, or indeed about any group of humans versus any other.

</comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> The whole "tradeoff" series of this blog in general is really good for decision making.

It includes:

 _Some now vs More later

_ Random vs Determined

 _Proximity vs Scale

_ Training vs Battling

 _Loyalty vs Universality

_ Sure Bet vs Shot in the Dark

 _Switching Costs vs Change Gains

_ Offense vs Defense

*Efficiency vs Predicatability

<comment><USER5> His blog is definitely a treasure trove of insights but I fear the principles that he confer in his blog will be lost to the sea of information that I digest daily.

This is something that I am aware for some time now. I have no coherent modeling system and my knowledge are organized very ad hoc. Some economic insight here and there, stories, evidences, etc. It's not very systematic at all.

<comment><USER6> > I fear the principles that he confer in his blog will be lost to the sea of > information that I digest daily. ... I have no coherent modeling system and > my knowledge are organized very ad hoc.

You might consider creating a file or note for every major project, campaign, or life goal you have. Then when you see something relevant to that, you copy/paste it in or make a note.

There's ideas I've done that would have been totally gone if I didn't have loose thoughts sketched into a file on them. It takes a bit of work to set up, but it's actually surprisingly easy and natural to update throughout the day.

Edit: I took a screenshot and uploaded it to Flickr - <http://www.flickr.com/photos/sebastmarsh/5028168457/lightbox> \- that file was built out and iterated over five months, so definitely start smaller and let things expand. Feel free to email me if do something like this and have any questions on getting set up.

<comment><USER7> I use Gmail to organize information that I encounter on the web. I email myself the link and the content/text. The great advantage of Gmail is that I can assign multiple Labels to each piece of email or content.

Folder systems don't work as well for me because I would have to make multiple copies for something that was relevant to more than one major project.

<comment><USER8> Links + descriptions + tags = <http://del.icio.us/> no?

</comment></comment></comment></comment></comment><comment><USER4> I definitely fall into the generalist category. Just in working on my startup I have to write code in two different languages, write markup, do design (completely different from the code), do marketing/networking type stuff (further different from either the design or the coding) and enter recipes (which means reading and parsing them - further different).

When not working on the startup I get bored if I don't get enough variety from my activities. If I'm doing too much liberal arts type work - such as when I teach, then I crave code. When I was coding all day at my day job, I got home and just wanted to read, cook or garden.

I typically need 9 to 10 hours of sleep a night. I'll take more if I can get it. I can operate on 7 with lots of caffeine. Much less than that and I'm non- functional.

My girlfriend, who only needs 6 hours of sleep a night (sometimes less), often gives me crap for being such a log. Especially when she wakes up a solid 2 hours before I do and spends the morning bored. But now I can give her a reason: I'm a generalist!

</comment><comment><USER9> Title doesn't really reflect the contents of the article that well...

<comment><USER10> You need to re-read the article, slowly. The title actually helped me understand the article.

</comment></comment><comment><USER11> While specialists count sheep to get sleep generalist try to build a framework for selling those sheep, so they have a lot more work to do while sleeping.</comment>


Ask HN: Reasonable dev laptop? - <AUTHOR> So my 2015 Retina MacBook Pro just broke. My fault, my shoddily mounted monitor fell over and hit the laptop, breaking the screen. As I probably won't qualify for the 'Staingate' replacements, footing $600+ for a display replacement is just a bit too much. I'm also looking to move away from Apple products.
I'm looking for a reasonable laptop to buy, not looking for the latest specs, just one that can run Ubuntu, have a long battery life (>6 hours preferably), and can handle Modern web browsing (webapps and stuff). Preferably not too heavy to lug around. I'm doing light dev work on Django and trying to learn React/Angular.
I'm kinda interested in getting older thinkpads (t430/x230s) but concerned on the battery life part. If any of you have any suggestions, it would be great. <comment><USER2> If you were happy with the MacBook Pro $600 seems like a reasonable price to pay in comparison with the roughly $2000 you'd have to be for an equally powerful new machine. It's not like those $600 would be a sunk cost. If the machine is still good apart from the broken screen why waste money and resources?

Apple laptops range among the most expensive one but if you want similar quality from other vendors you typically have to pay a similar price, too.

If you just want to move away from Apple in terms of software (though I personally think that doesn't really make sense from a development perspective) you could install Linux on the MacBook Pro as well.

</comment><comment><USER3> According to my anecdata, most devs are using either Dell XPS (or other notebook with Ubuntu preinstalled or listed as supported such as Inspiron or G5 gaming laptop) or Lenovo Thinkpads (T480 or X1 depending on your budget).

If possible, I'd check them out yourself. Personally, I found Dell trackpads better and larger than Thinkpad's, but neither is a match to Apple's (I have no use for the trackpoint on Thinkpads). Thinkpads are also praised for their keyboards, but I've found Dell keyboards work better for me. This is highly subjective; some devs have reported pain after using Dell keyboards. Last time I checked, Thinkpad T460/470 notebooks are equipped with (sub-par IMHO) 14" displays which would be a deal breaker for me, though I guess you can order better ones at least on their X1 (for a price, though).

</comment><comment><USER4> I use an i7 IPS x230 (ie top of the line at the time) with Linux for dev work. It's great. I have the 9 cell battery (but it's getting old, I only get 60% of the full capacity when full nowadays), and I can still achieve 6-7h on WiFi. It hovers around 8-11W with i3wm. Powertops is great at optimizing power usage.

I replaced the ssd because the 180gb intel that came with it has issues with heavy writes and it freezes. In a very Applesque way, Lenovo and intel always ignored the problem, even more so that most of these machines' leases are over and not under warranty anymore. Ssds are cheap these days so not too bad.

Anything else for that laptop is very affordable. Spare parts are plentiful, I got two docking stations with 2x HDMI and 2x dvi for 30$. A genuine charger is 20$. A new keyboard is around 40$ (you can install a backlit one if you want.) It does usb3. The WiFi is slow in my opinion (802.11n) and you can't upgrade to ac without either installing coreboot or buying a modded bios from the bios mods forum (for the price of a 10 USD donation, I'm told.) the intel me can be fully disabled on that machine with me_cleaner (ie reduced to a few dozen kb instead of the original 7mb.)

It's lightweight, very sturdy (magnesium cage), fully repairable (service manual freely available), you don't need anything else than a Philips screw driver to completely disassemble the machine and replace any given part. The only downside is that the to left corner is weak and is broken on most of these, but it's not really an issue if you use the notch or right corner to open and close the machine instead.

It can be had in good condition for 300-400$ and takes up to 16gb of ram (haven't tried 32gb, don't know if it would work) and should last you quite a while.

<comment><USER5> I'm very happy with my x230. I bought a refurb one for $250 and slapped a new $70 battery in there, runs like a champ. The only thing I wish I'd done differently was going out of my way to get the IPS panel: the TN is really bad.

</comment></comment><comment><USER6> Check out the Thinkpad A series, a replica of the X & T but with Ryzen CPUs -> More Cores

Also Dell has decent Latitude and Precision lines

System76 is pulling up some great work, I would not recommend the GalagoPro just yet as the battery life won't be great, but the Oryx Pro and Gazelle looks great

</comment><comment><USER7> I'd say get a $250 aftermarket replacement top lid from China, a screwdriver, and 2 hours free time to DIY the replacement. Bonus credits for eco- friendliness. Your laptop is okay, and IMHO there is no need to throw it away.

Considering the battery life, my observation is that the older the laptop line, the worse the battery life. They used to do good keyboards before, maybe good chassis, but the batteries were small and heavy. Refurbished Thinkpad P52(s), new P1, X1 are all good choices if you're nostalgic for that "red dot".

However I recently had a chance to use a Huawei Matebook X Pro, and it's a beautiful machine, build quality on par with Surface with much more reasonable pricing. Ubuntu or Manjaro run well on it.

</comment><comment><USER8> I recently asked work to replace my brand new Apple (with the infamous touch bar, 16GB, 256 SSD, etc etc) with a Lenovo Thinkpad X1 Carbon 6th Gen.

Couldn't be happier.

Got a 16 GB, i7, 512 GB NVMe SSD (no NVidia).

Brilliant laptop, fantastic screen, keyboard and the trackpad is very good - although I gotta hand it over to Apple, they do a great trackpad.

What surprised me most of all is battery life. I usually get in to work at 8 AM and by 12 PM it still running (about 10% or so left). I do have a few things running:

\- postgres, redis, elastic search and kibana on Docker containers \- Terminator, VSCode, Firefox and Slack open all the time \- From time to time rails and rspec (guard)

Couldn't recommend it more. I'm running Arch + i3.

Good luck

<comment><USER9> How hard was it to get the various peripherals working? Things like the trackpad, bluetooth etc.I've had a lot of difficulty getting Linux working in the past, and it's stopped my from making the jump from my Macbook :(

<comment><USER8> A breeze, actually. Got all working with arch without an issue. If you're going with Ubuntu I wouldn't even worry as they got most it covered pretty well.

The greatest thing about the latest Lenovo's and the Dell's is how good Linux support is these days.

If you really, really want to use Linux and is worried about peripherals, I might suggest you look into system76 - dedicated Linux laptops with a great distro (Ubuntu-based, named Pop OS) to match.

</comment></comment></comment><comment><USER10> G*d, I've been thinking about getting a new laptop too. It seems it's still normal to get 8Gb RAM laptops, just like my 2013 laptop, which I find quite limited for developing when you use VMs.

I wonder if it's the right time to buy a new laptop that'll last. The general trend seems to be getting more and more cores in the desktop computers, whereas in laptops the most you can get is a 6-core. Which again, for VMs is a bit limited for my use case.

<comment><USER11> Curious question: Are you afraid of writing "God" ?

</comment></comment><comment><USER12> I would probably go for the new replacement screen.

Anecdote: I was able to find one of the last trustworthy MBP Retina (Mid 2015) for $1996. I had the late 2013 (no intention to change it) but the extra RAM is a nice upgrade and at the same time the old model could go to my mom. She loves it, and I'm super happy with mine.

</comment><comment><USER13> I love my Chromebook. It runs Linux, not exactly Ubuntu but you can use apt- get. Ergonomically it's amazing and I love the flip keyboard. And now the sound works great.

Read more in this thread here: [https://news.ycombinator.com/item?id=18205885](https://news.ycombinator.com/item?id=18205885)

</comment><comment><USER14> I bought an old thinkpad (T460) earlier this year after years of being very hesitant to upgrade from an older (X220) Thinkpad. It's incredible. Great screen, keyboard, battery (it's got two!), trackpoint... The whole package is good as hell. I bought a fairly tricked-out one off Ebay for less than $550. Running Debian Linux and this thing just flies.

<comment><AUTHOR> Great suggestion, I'm finding quite the same prices locally (i7-6500U, 8GB RAM, 1TB HDD), but I'm looking over the specs and wondering whether the Nvidia/Optimus / trackpoint / trackpad / wifi are working fine on linux? This is a pretty beefy laptop to run Windows anyway..

EDIT: scratch that, was probably a scam. Got one with i5, 500GB HDD, 8GB RAM with integrated 520HD graphics for around US$500. But the point on the drivers still stands. How is it working and how's the battery life?

<comment><USER14> I don't have issues with drivers, but I don't use a lot of different devices with the computer. Wifi and wireless mice work out of the box. Haven't tried bluetooth, I'm not sure if it has bluetooth TBH.

Battery life is good, but nothing awesome due to the 1080p screen. I think I get 5-7 hours depending on task. If you want to go all in on battery life, get the X220/X230 with the extended battery and 768p screen. I got ~9.5 hrs with this setup.

Mine didn't come with Optimus (You DON'T want a linux laptop with Optimus).

</comment></comment></comment><comment><USER15> The Thinkpad X1 looks good for what you want:

[https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-x/Thi...](https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-x/ThinkPad-X1-Carbon-6th- Gen/p/22TP2TXX16G)

</comment><comment><USER16> I would recommend a newer model of the Thinkpad T line up since they have hot- swapable rear batteries or the lastest Thinkpad A line up since they also look like they have hot-swappable rear batteries while having at lots of cores and threads

</comment><comment><USER17> The MacBook Air is still pretty reasonable. I thought moving from my 15" MBP would make it seem way too small but so far it's been stellar and far more portable. Got a 2TB external SSD and run a lot from that (VMs).

</comment><comment><USER18> I bought a refurbished x230 off newegg a couple of years back and haven't had any issues. I in fact upgraded the RAM as well and the battery life has been pretty solid as well.

</comment><comment><USER19> Love my x220 thinkpad.. battery isn't so good and screen is old.

I prefer my x270 in everything except keyboard..

Ubuntu works perfectly on both

</comment><comment><USER20> x230 has a 1366x768 display.

<comment><USER4> It'd not as bad as it sounds in practice. The screen is also 12.5 inches so pixel density is ok, and if you break lines at the 80 columns mark in your code (as you should ;)), you can sit two vim windows side by side in a terminal.

Just have to zoom out these trendy websites who think it's "in" to design a layout with 40px font size for copy and everything fits well in Firefox.

Oh and if you're really adventurous, the x220 and x230 make for pretty good hackintoshes, I hear. Plus they have _matte_ displays.

<comment><USER4> It's true that most Lenovo laptops come with horrendous, low resolution, TN panels. Some models come with IPS variants (like the i7 x230)

I guess it's fine for me because I spent most of my time in the terminal so no GUI with tons of icons but I can see how it could be a problem for other workflows.</comment></comment></comment>


A "Complex" Theory of Consciousness - <AUTHOR> http://www.scientificamerican.com/article/a-theory-of-consciousness/?page=1

<comment><USER2> (Please add (2009) to the title)

See [1] for a much more recent discussion. Basically, Scott Aaronson showed that some rather mundane-seeming systems (like, say, an ASIC implementing some LDPC code, or even just a square grid of XOR gates) exhibit very high "information integration" \Phi under this definition, and so would have to be highly conscious according to the theory. Tononi agrees, and argues we have to change our preconceived notions because that Reed-Solomon hardware in your DVD player _is indeed highly conscious_. Apparently.

You be the judge. And keep that in mind before throwing away your old DVD player.

[1] [http://sciencehouse.wordpress.com/2014/06/02/integrated- info...](http://sciencehouse.wordpress.com/2014/06/02/integrated-information- theory/)

<comment><USER3> It feels like the old theory that all the elements are composed by water, fire, air, and earth.

</comment></comment><comment><USER4> This sounds like Functionalism to me. Until we can actually map out the complexity being described in the article, consciousness is still a philosophical problem. I appreciate the scientific approach, but I think Tononi's definition of consciousness is flawed (or just nonexistent). I've seen other attempts to apply science to the mind-body problem, and it yielded flat-out pseudoscience. This was not convincing either.

</comment><comment><USER5> Just computational functionalism disguised under more complex analysis/definition. Information does not have meaning in and of itself; it requires an external, subjective observer to make it meaningful. Without meaning (or intentionality), then something sure as hell can't be conscious. If any of y'all are interested in a fresh take on the mind-body problem and the study of consciousness as a whole, check out Varela, Thompson and Rosch's The Embodied Mind ([http://www.amazon.ca/The-Embodied-Mind-Cognitive- Experience/...](http://www.amazon.ca/The-Embodied-Mind-Cognitive- Experience/dp/0262720213)). It presents an interesting alternative to the computational paradigm that has provided little insight into understanding consciousness, and as many would argue, has been debunked entirely by Searle's Chinese room thought-experiment. it is also a FANTASTIC introduction to the limitations and problems with our current scientific model.

</comment><comment><USER6> It has been suggested that consciousness is an emergent property of complex systems. Maybe that should be written as: consciousness is an emergent property of integrated complex systems.

Anyone around these parts familiar with the work of Ken Wilber?[1] He wrote a lot about 'Integral Psychology' and the like. At a glance IIT appears to fit nicely in the framework Wilber et al. expound.

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

</comment><comment><USER7> It seems to me that at least a weak form of panpsychism seems hard to avoid without giving yourself much bigger metaphysical problems elsewhere.</comment>


Is gitlab down for anyone else? - <AUTHOR> https://gitlab.com/users/sign_in <comment><USER2> GitLab is the new GitHub</comment>


Alibaba Buys 18 Percent Stake in Weibo for $586 Million - <AUTHOR> http://www.cnbc.com/id/100684123

<comment><USER2> Alibaba/Taobao are already huge. If they manage to make the account integration with Weibo work OK and can drive users across Weibo and Taobao...

Just imagine combining Amazon and Twitter.

Another story on the amount of cash Alibaba is moving: <https://news.ycombinator.com/item?id=5624887>

<comment><USER3> That's the money quote, right there: "Just imagine combining Amazon and Twitter."

</comment></comment><comment><USER4> It is interesting to think how social e-commerce will be like in the future. Sina Weibo and Alibaba(Taobao and Alipay) have so many individual informations.

</comment><comment><USER5> My first reaction was that Weibo were going cheap - Twitter was valued at 11bn, while multiplying up Weibo sits at 2.5bn.

However, it makes sense in that Twitter sees 4 times more posts a day, and has less rivals. But then Weibo fills the place of both Twitter _and_ Facebook, so maybe still cheap...

</comment><comment><USER6> This is a big deal. Two of China's (and the world's) largest Internet companies linking up.

(investment/ownership = 15% now, up to 30% later).</comment>


Introducing the Citymapper Smartbus - <AUTHOR> https://medium.com/@Citymapper/smartbus-7b6848241526 <comment><USER2> I imagine it isn't just a publicity stunt. From what I can guess, this is a multi-facet approach at divesting their core (route-planning) business. I think there are two distinct outcomes from this announcement.

1\. New tools built from ground up to plan, schedule, and operate buses. I imagine there are a lot of efficiencies to be gained here, and they can probably resell these tools if it is successful. Automated, dynamic schedule, dispatch, even ticketing. There's a lot of old tech to be replaced/improved.

2\. Integrating the data they gain from their app to find and operate profitable routes. One of the key issues of the London bus system is that people do not "tap off". This means there is limited information about how to best optimise TfL routes. While TfL can sample existing routes and have a good understanding of existing infrastructure, a problem lies in identifying new routes. Citymapper, through its apps, likely has a more intimate understanding of routes that are desirable. They have point to point data - even the data where people walk, as opposed to which stop they get on/off. They also don't have an obligation to serve unpopular routes whereas local governments (might) run buses at a loss in order to be accessible. This enables Citymapper to design and tailor routes specifically to be profitable routes that their customers desire.

3\. The third outcome is just the outcome of doing both 1 and 2. By building their own bus operating system, they can prove the system themselves and make it even more enticing to potential buyers.

I'm very interested to see how this turns out and whether Citymapper will actually end up running real bus routes across London, and potentially other cities.

Just think about it - do you ever transfer during your commute? Would you prefer a route with less transfers and walking? This is the type of problem Citymapper can address. They have a wealth of data at their hands and are much less constrained by regulations. That said, there are several good reasons why public transit is almost always subsidised and I hope Citymapper is conscious of that.</comment>


How Not to Explain Success - <AUTHOR> https://www.nytimes.com/2016/04/10/opinion/sunday/how-not-to-explain-success.html <comment><AUTHOR> Link to study: [http://bit.ly/2EGgyVY](http://bit.ly/2EGgyVY)</comment>


Ask Py Programmers: Is there value in writing an alternative to Twisted? - <AUTHOR>

I have been using Twisted to write servers, while its very reliable and rich, I can't get over its Java-ish style. Do you think there is value in writing something which is more pythonic and also less object oriented? <comment><USER2> Have you looked into Eventlet or GEvent?

<comment><AUTHOR> I have. While they fulfill the same purpose using co-routines I much prefer simple callback based systems.</comment></comment>


The First 15 Years of PyPy – A Personal Retrospective - <AUTHOR> https://morepypy.blogspot.com/2018/09/the-first-15-years-of-pypy.html <comment><USER2> It's interesting to read the OP's response to _partial evaluation_ (employed by Truffle) and why he switched to _meta-tracing_ in RPython. Basically, the inlining/specialization decisions in PE-based JITs were harder to control than just letting the VM observe loop iterations.

Here's a paper regarding a pair of language implementors' experience using both techniques:

[http://stefan-marr.de/papers/oopsla-marr-ducasse-meta- tracin...](http://stefan-marr.de/papers/oopsla-marr-ducasse-meta-tracing-vs- partial-evaluation/)

By changing the abstract syntax tree during execution, type-generic nodes in the AST can be replaced with type-specialized nodes. This carries more overhead than tracing through the interpreter. It also requires more explicit work from the user to achieve optimized results.

The authors of the above study conclude that the resulting performance was similar, but that meta-tracing was an easier technique to use than PE. This agrees with the OP's assessment.

</comment><comment><USER3> Not entirely related, but it's wild to see projects that I remember the announcement of (I was working in a Python shop at the time) turning 15+ years old. I'm not sure I'm even past thinking of PyPy as kinda newfangled (that's just the bucket it got dumped into in my head: cool new Python compiler/VM thing). Probably time to re-categorize it in my brain as something more like "time-tested" or something.

</comment><comment><USER4> I migrated some internal tools from Lua to Python because of the incredible ecosystem. However, I miss everyday the speed of Lua thanks to LuaJIT. But I already ported almost all critical code to Cython. It is on my todo list to undo this port and test with Pypy.

I feel that PyPy need to receive much more love and attention than it actually gets. I already donated, and put all my hopes on PyPy. The Windows is also very renegaded, where the multiprocessing module is unusable. I hope to get some time soon to help this incredible project and finish lib_pypy/_winapi.py.

<comment><USER5> _It is on my todo list to undo this port_

That has always been my reason for not giving a Cython a real chance. I'm afraid I would go through the trouble porting everything, then have a use case where I need to just run pure python.

I've considered having a compat layer where you import dummy versions of all the classes and decorators if cython isn't present. Has anyone ever tried that?

<comment><USER6> I don't know about your question, but Cython recently added [1] the option to use native Python type annotations (Python 3.6, PEP 484) instead of its previous C-like dialect. That could lead to a situation where a sensibly type- annotated Cython file can still be a valid Python file – that would help with portability.

[1] [https://github.com/cython/cython/issues/1672#issuecomment-33...](https://github.com/cython/cython/issues/1672#issuecomment-330821277)

<comment><USER7> Cython also supports writing type annotations in a separate .pxd file. It's a bit awkward because you're effectively duplicating all function + variable declarations, but it _is_ a valid way to keep the original Python source intact.

(On a side note, using this feature led to a particularly memorable debugging session that set a personal record in terms of time spent vs amount of code changed to fix the issue: [https://news.ycombinator.com/item?id=11115110](https://news.ycombinator.com/item?id=11115110) ).

</comment></comment></comment></comment><comment><USER8> It's so fascinating to read these sorts of retrospectives to give myself a grounding to realize it takes time and lots of missteps to make great software. Thanks to the author, if he passes through here.

</comment><comment><USER9> Slightly off topic.

What is the accepted/common runtime for production python code ?

Is it cpython, ironpython ? Is the plain python interpreter fast enough ?

(I am referring to cases where python is not just a thin wrapper around C libs)

</comment><comment><USER10> For some reason, Firefox reader view removes all section headings and some random paragraphs. Made for a confusing read until I went back and reread it.

</comment><comment><USER11> How do people use pypy? Do you target it from the start of a project, or port existing projects to it?

</comment><comment><USER12> Bunch of dead links to bitbucket...

But now I have another rabbit hole to deep dive down in the form of meta- tracing JITs.

</comment><comment><USER13> Has Carl always had the "-Tereick" in his name or did he get married recently?

<comment><USER14> [http://cfbolz.de/contact.html](http://cfbolz.de/contact.html) just mentions that he changed it last year but doesn't give a reason.

</comment></comment><comment><USER15> Yes, meta-tracing really works!

On the other hand, I think it is somewhat deterimental to the success of the idea of meta-tracing that really the only working production grade implementation of the idea is RPython. RPython is very idiosyncratic, to say the least. I think a good implementation of meta-tracing on boring technology (say, C++) would greatly help popularize the idea.

</comment><comment><USER16> I'm just sad compatibility with data science tools (and scientific computing) isn't there afaik, numpy, pandas, scipy, tensorflow, scikit-learn, pytorch to name a few

<comment><USER17> Reread it then, PyPy has implemented emulation layer for the CPython which allows numpy, etc to be used.</comment></comment>


Bitbucket Snippets for teams are here - <AUTHOR> https://blog.bitbucket.org/2015/03/18/snippets-for-teams-are-here-with-a-rich-set-of-apis/

<comment><USER2> This is a nice feature, in light of the secret gist fiasco with Uber. I'm curious how they're handling versioning of images/binary data via git (e.g. using git annex).

<comment><USER3> Thanks; I missed that story: [https://news.ycombinator.com/item?id=9131921](https://news.ycombinator.com/item?id=9131921)

</comment></comment><comment><USER4> Now I can just hope for some hugely overdue improvements to the "Issues Tracker" in Bitbucket. Does anyone know of any 3rd party enhancements available for improving the "Issues tracker"?

<comment><USER2> We personally use JIRA with Bitbucket to handle our issues.

<comment> nevi-me I'm a one-man show at the moment working on 3+ repositories on Bitbucket. I tried using JIRA for a few months late last year, and it wasn't a great experience or me, so I ended reverting back to using the Bitbucket issue tracker. If I get the time to write an issue exporter (or find one that works), I'll be migrating to Github or something with an issue tracker that gets attention.

The problem with the issue tracker on Bitbucket is that it's not getting better because it would 'cannibalise JIRA' sales, but it's ridiculous that in 2015 I still can't create links between issues, or create subtasks. If I had to pay for a better issue tracker that's built-in to Bitbucket (no JIRA), I'd pay it.

<comment><USER5> JIRA does allow you to link issues and create subtasks; you mentioned that you're experience wasn't that great with JIRA. Can you elaborate what problems you were facing?

</comment></comment></comment></comment><comment><USER6> Awesome. I was actually just searching yesterday for a self-hosted snippet solution similar to Github Gists. Great job, Bitbucket!

</comment><comment><USER7> I wonder if stash is going to get this feature in the nearest future.

<comment><USER8> There's a (paid, third-party) add-on for Stash that implements Snippets: [https://marketplace.atlassian.com/plugins/com.simplenia.stas...](https://marketplace.atlassian.com/plugins/com.simplenia.stash.plugins.snippets)

I haven't tried it myself though.

</comment></comment><comment><USER9> Will there be an embed functionality?

<comment><USER5> Bitbucket PM here - we're considering this for the future if there are are a lot of requests for making snippets embeddable, please raise an issue at [https://bitbucket.org/site/master/issues/](https://bitbucket.org/site/master/issues/)

</comment></comment><comment><USER4> Awesome, good job Bitbucket!

</comment><comment><USER10> curl option is cool..Do we have same option in gists?</comment>


Show HN: Carbn – Privacy Superpowers for Devs to Solve GDPR and Build in Trust - <AUTHOR> https://www.carbn.io/ <comment><AUTHOR> At Carbn, we're working to give developers a way to solve GDPR with code vs. a legal paper exercise. Basically, privacy-by-design for your existing infrastructure and automated privacy office. Would love to hear feedback!</comment>


What I have learnt this year - <AUTHOR> http://culttt.com/2011/12/26/what-i-have-learnt-this-year/

<comment><USER2> My own problem is, as soon as I think of any business I think "How can I make this business become a global powerhouse" and while I should be focused on details of the business, instead im off dreaming about the yachts and private jets Im going to buy.

This year I'm going to think local, then national, then global, and see how that works out. Wish me luck!</comment>


Starbucks is Too Cheap According to our Brainwaves - <AUTHOR> http://www.spiegel.de/international/zeitgeist/scientist-uses-brainwaves-to-test-ideal-prices-for-products-a-926807.html

<comment><USER2> I wonder if he addressed the issue of groups. People don't always go to coffeeshops alone. If someone in a group thinks the price is too high and refuses to shop there, the entire group will drink elsewhere. Starbucks need to price their coffee to maximise their revenue - which is almost certainly lower than the average "happiest" price if you account for sets.

Fascinating area of research.</comment>