SF Engineer Dan Ha Has Been Missing Since 10/31 - <AUTHOR> http://techcrunch.com/2014/11/06/sf-engineer-dan-ha-has-been-missing-since-halloween-night/ <comment><USER2> This sucks, my heart goes out to his family :(

For a brief moment I wondered if this is what I want to see on HN/Techcrunch. But we're a community, and lots of us live in SF - if it were a friend of mine, I'd be super happy to see this trending. Seems like the least we can do is have each others backs.

</comment><comment><USER3> This reminded me of another missing person posted here. Does anyone know what happened to Luke Arduini? I have no connection, but for some reason this stuck with me.

Here's some background:

[https://news.ycombinator.com/item?id=7048249](https://news.ycombinator.com/item?id=7048249)

[http://blog.izs.me/post/72990767417/a-member-of-our- communit...](http://blog.izs.me/post/72990767417/a-member-of-our-community-is- missing-help-find-him)

<comment><USER4> Very sad indeed - his friend's blog post on the subject:

[https://the-pastry-box-project.net/charlie-robbins/2014-sept...](https://the- pastry-box-project.net/charlie-robbins/2014-september-5)

<comment><USER5> The blog says that a 9-year-old girl saw a man matching Luk's description wearing a purple hoodie jump off the Golden Gate bridge on the very afternoon he disappeared. The police report about this incident was tracked down _months later_ by a private detective hired by Yahoo.

Unless I'm misreading the article, it took months to unearth this police report. (The blog explicitly says that without Yahoo's help he would likely still be "missing" _as he was for several months_.)

This is terrible!

How is it possible that we have an NSA that is so wickedly super-competent that they can listen live to any phone conversation in the U.S.A. by clicking a few keys on the keyboard (per Snowden's claims), and yet the police department is so utterly incompetent (or uncaring) that they can't do the equivalent of a grep on the incident reports for Jan. 1 2014.

search 'purple|violet|red' \+ 'hoodie|sweatshirt|hooded' \+ male + radius(Oakland,25miles) in incident_reports_2014-01-01

</comment></comment></comment><comment><USER6> You should post this at

[http://www.reddit.com/r/sanfrancisco](http://www.reddit.com/r/sanfrancisco)

as well.

<comment><USER7> /r/sanfrancisco mod here. It's a tough call, and one that Reddit Admins (not mods) have mostly decided for us. The worry is this: an abusive ex could post a "missing persons" alert for someone trying to hide, and get their location.

So, we have a rule that a news organization (which has more of an ability to vet a story, as well as a "the cat's already out of the bag" effect) has to cover it before it can be posted – and you'll notice the story is now on r/sanfrancisco since one did.

<comment><USER8> That's a very reasonable approach actually.

<comment><USER9> Agreed. Also, in this case, I think the Techcrunch article meets the requirement for vetting by a news agency. Hopefully the SF-related subreddits will give this greater visibility.

</comment></comment></comment></comment><comment><USER10> Just curious for case like this:

Can someone take a missing person report from Police department and take it to Cell phone company and get any cell location traces for those period of time? Assuming the cell is on.

Can anyone do it or just someone from police department?

<comment><USER11> If only it were that easy... my brother went missing in February 2009 and as of today it's still an "ongoing" investigation. I was basically blocked at every turn...

In order for to get a cellphone log or trace, the detectives on the case needs to file for a subpoena. A judge will then need to sign off on it which takes 24-48 hours. Following that, they need to submit it to the cellphone company which claims it might take a billing cycle before the data is provided since it's on the "cell towers" and it's not transmitted yet. Even then, the information is useless. It's nothing more than what you receive on your monthly billing statement.

Police has no authority to just do it since it's up to the cellphone provider.

<comment><USER12> That is (unfortunately) not entirely true. If they have reason to suspect there is an immediate risk of injury or death, they can locate the phone (assuming it's on) with a high degree of accuracy (at the very least, cell tower triangulation, if not GPS activation).

We had a situation a few years ago where a couple kids had skipped school and gone joyriding in a quarry. Their parents contacted the police, who contacted the cell phone company, and the cell company gave them a reasonably accurate fix (I assume this was voluntary on the part of the phone company, given how quickly it happened).

<comment><USER13> in that instance it was likely that the parents were the rightful owner of that information because the account was in their name so therefore there was no need to involve a judge

<comment><USER12> Ah, that's an excellent differentiating factor I hadn't thought of, thanks.

</comment></comment></comment></comment></comment><comment><USER14> Amazing how at this point we can pretty much find anything through digital means as nearly everything is shared and appears online eventually.

Yet we still fail to find something (or someone) that really matters.

<comment><USER15> On the flip side, if you're an adult and trying to "disappear" for.. whatever reason you've chosen (it's your prerogative), social media has made that difficult.

<comment><USER16> An adult trying to disappear would not have a very hard time saying, "Hey, everybody! I'm going to take some time away from social media and go on a trip. I'll be back on-line in a couple months. I look forward to reading all your posts when I'm back." In some ways, I think social media makes it easier to disappear, as you can give everybody a plausible explanation at once, rather than trying to talk individually to the many people who might be plausibly concerned by a sudden disappearance.

<comment><USER15> I didn't mean go on a long vacation. I meant disappear and start a new life. You wouldn't post about that on social media, you'd just pack your bags and go. But social media will have your friends being detectives about where you've gone, someone from reddit might see you at the airport or grabbing coffee, etc.

<comment><USER11> Unfortunately, it's actually not that hard. My brother vanished when he was 23 and to this day, he's still a missing person's case. You'd hope that your friends would search for you, but most people are just too busy with their own lives to exert too much effort when it's not their problem.

He was someone with over a thousand Facebook friends, but no one seemed to notice that he stopped posting. The first few months he was missing, his friends continued to send him invites to parties, events, etc. As time when on and he didn't respond, they naturally stopped sending invites. A few friends sent emails saying, "Hey, I haven't seen you in a while. I'm worried. Call me." Eventually they too stopped. All it took was a matter of months before people stopped to reach out.

When news broke that he was first missing, his friends seemed more annoyed than anything. I suppose most of them thought this was a hoax (not that he's ever done anything like this before). They were reluctant to be bothered, to break up their day to simply answer a few questions the detectives had to paint a better picture of my brother. I don't blame them too much, no one wants additional drama in their lives.

Of course, the scenario will be unique for everyone. Everyone has a different group of friends, different resources. Unfortunately for me, I was blocked. I practically had access to all his accounts with the help of his girl friend, but at the end of the day, I couldn't get a subpoena to see if there were any deleted gmail or facebook messages. I wasn't able to get a subpoena to track the cellphone fast enough. He was just casted off as a statistic, just another quarter-life crisis suicide case. I sincerely hope the family gets some good news about Dan Ha, because there's nothing worse than having to wake up every morning wondering if you could have done more.

<comment><USER17> Hi throwaway022009, your story reminds me of Steven Wilson's concept and inspiration for his new album: [http://youtu.be/49HxZ8yVpqk?t=51s](http://youtu.be/49HxZ8yVpqk?t=51s)

Hope he is happy where ever he is.

</comment></comment></comment></comment></comment></comment><comment><USER18> If the little bit of time this stays up on front page, would help find him, then by all means let it be. You have my support for this. I hope, wherever he is, he is in good health.

</comment><comment><USER19> I really hope this guy is OK, but the number of young men "disappearing" in San Francisco is strange and maybe cause for some questions: [http://sfappeal.com/2013/12/families-of-men-who- disappeared-...](http://sfappeal.com/2013/12/families-of-men-who-disappeared- in-sf-hold-candlelight-vigil/)

<comment><USER20> It doesn't shock me at all -- It's one of the reason's I got the hell out of SF, and I'm not going back. It's an effect of the monster we've created, the collateral damage of our industry that the lottery winners, the VCs, the media, and the politicians all sweep under the rug. It's an effect of the "don't show weakness" cultural norm that we've created for men, and it's about time we get over ourselves and tear it down.

<comment><USER21> You've lost me. You're saying that the city has real problems which are being ignored due to the successes?

<comment><USER20> Not the city - certainly nothing that's can be solved by city hall. But tech as a whole, and even moreso in SF specifically, is a pretty hostile-to-mental- health place to work. Everyone being shitty to themselves (and those around them) because of the 1-in-a-some-large-number-here chance of becoming an instant millionaire.

</comment></comment></comment></comment><comment><USER22> Sounds crazy, but this is an irrational fear that I have for myself or loves ones; I'll go out one day but won't make it at my destination without anyone knowing where I am.

I know share my current GPS location with my family, so that they always know where we all are, and the last place we were at before going missing.

</comment><comment><USER23> They should link to his facebook group page... I can't find it.

<comment><USER24> Public Facebook Page - [https://www.facebook.com/finddanha](https://www.facebook.com/finddanha)

Facebook Event (where friends and family are organizing efforts) - [https://www.facebook.com/events/1498483497100432/?ref_notif_...](https://www.facebook.com/events/1498483497100432/?ref_notif_type=like&source=1)

</comment></comment><comment><USER25> This is getting ridiculous:

[https://www.facebook.com/MissingCalifornia5](https://www.facebook.com/MissingCalifornia5)

Anyone have any contacts at the FBI?

</comment><comment><USER26> I wonder if Google/Apple can get anything tracking-related from his Smartphone.

<comment><USER24> Unfortunately, no luck. His phone has been off since the night he disappeared.

</comment></comment><comment><USER17> Really sad for his family and friends. But, what could be the reason for his depression?

<comment><USER27> Depression needs no reason.

<comment><USER17> I doubt that. If there is no reason, it can't be cured. But there are cases of depression being cured, so there has to be a reason for depression.

<comment><USER28> I try to be polite and respectful when I disagree on HN, but you are honestly an ass. I'll give you the benefit of the doubt that you're just ignorant and not an idiot.

When you asked for a "reason" for depression, you clearly implied a human cause. You may even have implied that he just "felt bad" about something that happened to him. That is wrong to the point of being offensive. You wouldn't say, "Why did he get brain cancer?" or "Why does she have Parkinson's?" Depression is an illness.

It's not considered curable, though it is highly treatable for some people. And the curability of something doesn't dictate a "reason" or lack of one. Illness is often senseless and random, especially something with a genetic factor such as depression.

<comment><USER17> Generally what i have seen is that people get depressed because of some painful event which happened in their lives.

Like, you get depressed when your partner leaves you, or you're fired from a job or death of a loved one. So, i haven't seen anyone getting depressed without any painful emotion. Maybe I am highly wrong in that.

Lets say, I clear my ignorance by believing/understanding that depression is an illness without any reason. But, making a statement like "depression needs no reason" ain't correct either. Both possibilities exist.

If I may rephrase, I was just curious about the reason, if it existed, why Dan Ha was depressed.

<comment><USER29> First, it doesn't matter why this person is/was depressed - it's not our business. Depression, like many other illnesses, is a private matter and only the person suffering has the right to decide who to tell and how much information to share. The fact that Dan Ha is missing does not change this.

Second, while the onset of depression can sometimes be triggered by one or more specific events, the truth is that many cases of depression have no discernible cause. When someone says that "depression needs no reason", they simply mean that there doesn't need to be any specific trigger. Of course there is something underlying the condition - whether it's caused initially by an event, some chemical imbalance in the brain, some combination of the two, or something else that we don't understand yet, the point is that it doesn't have to be caused by "some painful event".

Third, don't assume that depression is a sudden condition. It can creep up on you over time without you realizing it. Or maybe you do realize it, but you do your best to handle it, to get over it on your own, to hide it from others. You can have highs and lows (not to be confused with bipolar or manic episodes), rather times when you feel you are doing better or worse. Maybe you go a week or a month thinking it's gone, only to wake up one morning with depression making itself known again. It can be months or years before anyone else notices, if they ever do. And the ones who do? It's not necessarily your closest friends - it could be a casual acquaintance or a coworker who notices the change.

Depression can consume you. You might think it just means feeling bad, but it can be much worse than that. It can mean feeling dead inside, or not feeling anything at all.

Even when you make a choice to accept help (whether you seek it out or it's forced on you - hopefully before you do something extremely stupid), it can take a long time to recover. Medication often helps, even though we don't no exactly why - yes, we know approximately how the medication changes things in your brain - affecting dopamine uptake, for example, but we don't know why it does it. And it's not a matter of simply going on medication. You have to work with your doctor to figure out the right level for you - and that level might change over time. What worked for a time may be too much later, causing side effects that leave you feeling bad. Adjusting the dose can mean feeling worse for a couple of weeks while you wait for your body and mind to adjust! You sit at work feeling like you're about to fall asleep, and when you try to go to bed you stare at the ceiling for hours. You might be sitting or walking and feel a wave of dizziness. You gain or lose weight, seemingly without changes to your diet or routine. Even though you're not as depressed, it can be hard to go out and do things with people, leaving you feeling isolated.

Therapy can help at times, but it also takes time. You don't just sit down with a doctor and establish trust right away. It takes multiple sessions for a psychiatrist/psychologist to make a diagnosis. And they might not be the ones who can recommend medication either, so you still have to work with another doctor at the same time. Short term therapy ends up lasting for months, or years.

Finally, do you know what can be the worst thing about depression? People who tell you that there's no reason for you to be depressed. People who think it's easy to "stop thinking that way!" People who think that you ought to know why it's happening. People who say "get over it, you've got it good."

Don't believe you know what causes depression because even the people who spend their lives studying it admit that they can't really explain it yet - they can't put together the puzzle because they still haven't even found all the pieces!</comment></comment></comment></comment></comment></comment>


Mihai Pătraşcu 1982–2012 - <AUTHOR> http://rjlipton.wordpress.com/2012/06/08/mihai-patrascu-1982-2012/ <comment><USER2> When I was at high school, he was my hero and role model. He won IOI gold medal twice and was studying at MIT back then. What he had achieved was my dream and I wanted to follow his steps. So one day, I decided to write him an email, asking for his mentorship. To my surprise, he wrote a lengthy response.

For next couple of years, we exchanged few emails. His advices and tips ranging from college applications to solutions to technical problems were invaluable. He is the man who inspired me to achieve my goals. It's unfortunate that I didn't have a chance to meet him in person.

My condolences to his family and friends.

<comment><USER3> If possible, could you post some of these tips? They would be really interesting to read and definitely helpful.

<comment><USER2> Here is his first email: <https://gist.github.com/25be1b58f169bf2a7d90>

<comment><USER4> Any others?

<comment><USER2> Here is one more about data structures: <https://gist.github.com/73b62f3f34cb59a2913b>

Rest, I think they are bit personal.

</comment></comment></comment></comment></comment><comment><USER5> When one of my instructors at Berkeley had to take leave due to personal issues, Mihai stepped in as the instructor. The course became one of the most challenging, instructive, and yet enjoyable one during my time at Berkeley. What I will remember about him is the aura of genius that was unmistakable, and the surprising level of warmth and camaraderie he displayed every time he interacted with us. Being as brilliant as he was, I always marveled at his patience when explaining things to his students. This makes me truly sad to a level I have not experience many times in my life.

<comment><USER6> Mihai's enthusiasm for the material was infectious, and I quite enjoyed starting the day off with that class. I'm glad Mihai shared a few of his tricks.

I'm really sad to hear that the world lost him. He will be missed :(

</comment></comment><comment><USER7> I never met Mihai in my life and will never achieve anything close to what he has but I do remember trying to read his PhD thesis to while away my time and I chanced upon the section where he said that he solved a problem he was working on after pulling an all-nighter while he was sick and lying on a couch to recover. The guy was brilliant and truly enjoyed his work. Few people are so capable of consistent excellence as Mihai was.

<comment><USER8> _"In the spring of 2008, I was trying to submit 4 papers to FOCS, during my job interview season. Needless to say, this was a challenging experience. I had an interview at Google scheduled two days before the deadline, and I made an entirely unrealistic plan to go to New York with the 5am train, after working through the night. By 5am, I had a serious headache and the beginning of a cold, and I had to postpone the interview at the last minute. However, this proved to be a very auspicious incident. As I was lying on an MIT couch the next day trying to recover, I had an entirely unexpected revelation: the 4-dimensional lower bound could be proved by a series of reductions from lopsided set disjointness! This got developed into the set of reductions in [82], and submitted to the conference. I owe my sincere apologies to the Google researchers for messing their schedules with my unrealistic planning. But in the end, I'm glad things hapenned this way, and the incident was clearly good for science."_

Lower Bound Techniques for Data Structures - <http://people.csail.mit.edu/mip/docs/thesis-phd/phd.pdf>

</comment></comment><comment><USER9> I had never met Mihai but I knew of his work and had read his blog many times. This is a sad loss. The same day, June 5, I also lost a dear and incredibly brilliant friend long before his time. Much too much talent to be lost in one day. My condolences to those who knew him directly.

</comment><comment><USER10> Pleging HN upvote no-matter any of today's news as sign of respect for him and for his work.

</comment><comment><USER11> He sounds like a terrific teacher. Are there any video records of him presenting technical information?

</comment><comment><USER12> I'm 29. Almost 30. I never heard of this guy (but now I'll be reading what I can about him), but that "1982-2012" is kind of creepy. Rest in peace, Mihai. I look forward to you inspiring me like you have many other commenters here.

</comment><comment><USER13> I used to bump into Mihai on a semi-regular basis while at MIT. I have great respect for his work and him as a person. My deepest condolences to his family and friends, this is a huge loss.

</comment><comment><USER14> Beyond saddened. In addition to his technical brilliance he had keen insights into CS as a field of study, and his blog posts about that had a great effect on career decisions I made.

</comment><comment><USER15> This has to be asked: can someone reply with a breakdown of all of Miahi Pătraşcu's work, at least the important bits, with a single sentence description of why it's important? Let's remember Mihai for the good he did for us, I think that's the best way to commemorate him.

</comment><comment><USER16> So sad :(. Rest in peace man.

</comment><comment><USER17> treatment = profit while cure stops all income

</comment><comment><USER18> It's kind of sick that he passed away with 29 years. I also wonder why he haven't told it anybody. My deepest condolences.

<comment><USER19> Because he didn't want to be stuck in the social prison of pity that people create around you. And the attitude of guessing your competence while your sick. I don't know what would of happened to his insurance if he somehow lost his position? That is my guess at least.

<comment><USER20> shellox and mahyarm, please take note:

why he haven't told it anybody => why he hasn't told it to anybody

what would of happened => what would have happened

your sick => you're sick

I'd hate to be a "spelling nazi", but I believe getting this right is the very least we should expect from the HN crowd.

<comment><USER21> keep in mind that not all HN posters are native English speakers.

<comment><USER22>
      > keep in mind that not all HN posters are native
      > English speakers.

In that case, feedback is even more valuable.

<comment><USER23> The feedback is but his superior tone is unwarranted.

<comment><USER20> I don't feel it had a superior tone, but I think the original thread warranted a rather cold yet concise feedback.

<comment><USER24> I believe you've confused spelling and grammar. In the future, when you're being condescending towards non-native English speakers - be sure to note the differences between spelling and grammar.

<comment><USER20> Did I step on a nerve? Again, please don't mistake my cold feedback for condescending comments.

I am fully aware of the differences between spelling and grammar. You may not be aware of this, but "spelling nazi" is simply a popular expression, hence the double quotes that I explicitly added.

Don't worry - next time I'll say "grammar nazi".</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Ask HN: Why hasn't the USA moved all voting online? - <AUTHOR> After standing in a line for an hour to vote I am trying to wrap my head around why online voting isn't an option in the United States.
Is it security? Most people consider their money more valuable than their vote and we all support online shopping.
Is it identification related? In my state they scan your driver's license when you show to vote, which I can do on my phone.
The older I get the more I realize that the whole voting process is an enormous amount of time waste that doesn't need to occur. <comment><USER2> > Is it security?

Yes.

Online voting is not secure (at least not secure enough for "voting", which is a _very_ different security environment than even "banking").

If your online bank account is heisted, your bank can:

1) trace the transfer, and reverse it 2) give you your money back while they do #1

I.e., the "security environment" is one of "we can easily clean up the mess after the fact".

Voting is very different. It has to be "annonymous" (in order to function properly and avoid coercion and/or vote purchasing) and that whole "annonymous" aspect precludes all of the "clean up the mess after the fact" abilities we have for non-annonymous situations.

So it (voting) has to be secure up front, and it can't rely on "clean up the mess later" recovery processes.

Which leads to why online voting is problematic. For voting, the verification needs to be that you, the human standing in front of the polling place operator, is indeed who you claim to be. All forms of "online" identification identify that "the unknown human typing on the keyboard has typed information we believe to only be known to human X, so the unknown human is likely human X".

I.e., you could give your online voting password to someone else, and they could type it in, and the system would not know it was someone else typing it in. You likely can't give your photo ID to someone else (unless they are your twin) and have them pass as you while standing in front of the polling place worker.

Same as for scanning the drivers license bar-code (which, by the way, is not done to "ID" you, but just to make it easy for the operator to pull up your record from the DB to mark it "has voted" [i.e., the scanning is simply a 'data-entry' task]). Someone else could obtain your license (theft or you handing it to them) and they could scan it on their phone and the system would have no way to know it was not you standing there doing the scanning.

This issue will always be the problem with some form of 'online' voting. Verifying that the human at the controls (keyboard) is in reality the actual human to which the credentials do in fact belong.

</comment><comment><USER3> With online voting significant percentage of population loses their freedom to cast vote independently (often women). Family member, vote buyer or other influencer looking over the shoulder or voting for others is real threat.

The most common reaction to what I just said is to laugh it off as not important or stupid fear mongering. Nothing could be more far from the truth. Peer pressure has always been significant factor. Vote buying emerges as soon as the opportunity to verify votes emerges.

There is no reason why the there should be long lines for voting. In many developed countries they don't have that problem. It seems intentional.

<comment><USER2> A lot of details, including real world historical examples, is listed here:

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

</comment></comment><comment><USER4> If you hate standing in line and talking to your neighbours so much, just vote by mail.

<comment><USER5> Not all states permit absentee/mail voting outside very specific reasons; and you generally have to sign a form attesting to those reasons under penalty of voter fraud charges, which are a felony.

<comment><USER4> If you hate your neighbours so much that you can't stand in line with them for an hour, then you have no ties important enough to keep you from moving to a state where you can vote by mail.

</comment></comment></comment><comment><USER6> Security is certainly a concern. Voting machines have proven extremely easy to hack by security pros in recent years.

[https://www.cnet.com/news/defcon-hackers-find-its-very- easy-...](https://www.cnet.com/news/defcon-hackers-find-its-very-easy-to- break-voting-machines/)</comment>


Deutsche Telekom's real-time map of cyber attacks - <AUTHOR> http://www.sicherheitstacho.eu

<comment><AUTHOR> Spotted this on Digg. Looks interesting, no idea how accurate/informative it _really_ is.</comment>


The dark side of HackerNews: negativity at best, suppression at worst - <AUTHOR> https://keen.io/blog/42042716172/the-dark-side-of-hackernews-negativity-at-best

<comment><USER2> So, I'm not one of the people who downvoted that story, but I understand why they did it.

Although I am sympathetic to the subject of sexism in our industry, this doesn't mean every article about it deserves to be on top of Hacker News. Michelle's piece was perfectly fine as blog posts go, and I'm glad she shared her thoughts, but it didn't really offer any new insights in the way that a Hacker News submission should.

The purpose of Hacker News is not, as this follow-up post seems to believe, to "draw attention to justice-oriented problems." I personally feel Hacker News has too much content based on politics and outrage these days, and it crowds out interesting technical content. I am sympathetic to many of the causes espoused, but just because I agree with you doesn't mean I'll upvote something that doesn't substantially contribute. Stories like that that don't introduce something new tend to just reignite old arguments, which isn't interesting or productive.

If Michelle had actually been calling attention to a novel problem in need of a solution, that would be a different story. But as far as I can tell, she was just kind of summarizing something that happened that made her upset. Again, I'm sympathetic and find the same things upsetting, but that still doesn't make it relevant.

None of this is a judgment of Michelle's post, and it doesn't mean what she was writing about is unimportant. It just means that, like 90% of things that interest me, it's not a good fit for this particular forum.

</comment><comment><USER3> Actually what happened was that the post triggered the flamewar detector. And judging from the comments, correctly so.

<comment><USER4> Good to know, thanks for responding.

I fear that Hacker News flaggers are now over-generalizing "complaining about sexism" and lumping anything near that into the category of "nothing left to say".

My post was about what companies can do when they are faced with a gender PR problem. I'm glad it got some reads from the community, but I'm sad it got dismissed so quickly due to flaming in the comments. This leads me to question the algorithm for flamewar detection, since it seemed like a valuable conversation.

I also fear Hacker News readers are mistaking "complaining about sexism" as an attack or complaint about males in general. I think that's why we get so many defensive, flaming comments in threads discussing gender bias. This behavior only proves how much being male is engrained into the identity and culture of the tech community. When a woman says something about the tech community, males feel their gender is being attacked and very emotional posts result.

I consider myself a member of the tech community working on building it, not a person attacking it, so this response was unexpected. This is a good lesson to consider when writing about gender in the future.

There is a lot of good work we can do together to get more women into tech, and to give women here more confidence (did you know there has been a flight of women from the industry?). As tech becomes such a vital part of every company, I feel women are missing a huge opportunity if we don't become more involved here. Women need more encouragement than men do to make a go in this industry. I think that's worth writing about.

So many bay area companies are doing great things to help with this cause. That's part of why I was so shocked that the online community was so dismissive of this post.

I have another post planned to try to inspire the tech community to get more engaged. The reason these posts keep coming up is that there is still a lot we can do to make working in this industry better (if we can agree that having more technically skilled women is something worth working toward).

I believe discussions about how to attract, maintain, and train developers are important to this community. I also believe there is a lot of opportunity in encouraging women to build skills and join us.

I ask the Hacker News admins and flaggers of my post today to please consider the value of this discussion.

PS: I think I will make it a point not to use "Sexism" in the title for future posts. Hopefully that will help.

</comment></comment><comment><USER5> Speaking as a HN regular, I think we've drawn attention to this topic over and over, which would explain the flagging. And every new article resets the discussion to zero, giving room for uninformed comments and the resulting drama to be posted for the Nth time.

<comment><USER4> I don't understand. I took the time to write this post because it's something that is important to me as a person in the tech community.

It's obviously something that impacts many people in this line of work, otherwise this community would not have such strong opinions about it.

Does Hacker News suppress other topics or just gender bias?

This is so hurtful.

<comment><USER6> I truly don't mean to be snarky but I don't think taking the time to write up a post, even about something you care deeply about, is sufficient justification on its own for HN to care about a topic.

That is, if the topic is important and valuable to HN it will be valuable even if you didn't necessarily care so much about the topic.

<comment><USER4> Agreed with you that not all stories need be shared. However, this one made it to the front page because it generated a lot of conversation. In fact, people cared so much that it set off the flame detector and it sank the post.

That's sad, because there was good discussion going about objectification in marketing, and if the tech industry should be held to a higher standard as compared to other industries.

</comment></comment></comment></comment><comment><USER7> From the submitted blog post:

"Either:

"The post is being flagged en masse by our fellow HackerNews community members."

That is the most likely reason the submission dropped rapidly from the main page to a lower page. People who participate here regularly use flagging power to keep the submissions with thoughtful, interesting comment threads that are essentially on-topic higher than submissions with arguing, repetitive comment threads that aren't as close to the core topics of Hacker News. That, and luck of the draw as to which time of the day the blog post was submitted (meaning which HN participants happened to see it) is explanation enough for why the submission sank.

The moral of the story? Submit something next time that is closer to the core topics of HN, and write it very carefully to maximize the probability of thoughtful, interesting comments. Especially make sure that you have a new take on one of the recurrent issues, or are bringing up an issue that is fresh and rarely discussed here. Good luck.

</comment><comment><USER8> Just a quick point: 51687a on white is unreadable. It's especially hard to read the MLK quote in Helvetica Neue.

</comment><comment><USER9> Maybe HN is becoming more negative. Or maybe, just maybe, HN users weren't in the mood for holier-than-thou moralistic berating about how evil the tech industry is for focusing on the bottom line of innovation and profits rather than trying to bend reality to fit some postmodern wet dream of inherent equality in STEM-skills based aptitudes between genders.

In other words, Larry Summers was probably right. Then again, he was fired shortly afterwards for daring to express disagreement with one of the popular ideologies of our era.

</comment><comment><AUTHOR> Okay it's actually pretty amazing that this post made it to the frontpage immediately, then was flagged down and buried.

I like justice and all, but ironic humor trumps even that ;)

<comment><USER2> Heh. I've found HN meta-discussion actually is really controversial, so it usually goes that way. Some people will upvote it because they think it makes a good point, and then others will downvote it because they feel like, "I don't come to Hacker News to talk about Hacker News."

</comment></comment><comment><USER10> The goal of Y Combinator is not to encourage discussion of controversial issues. If something is divisive and not related to a debate strictly to do with technical topics they probably consider it in their best interests to bury it. Sadly. Hence why special people seem to have super down vote powers, etc.

Remember, the goal is to create the illusion of community in order to market.

<comment><USER4> Hacker News just did a great job showing me that I'm not welcome in this community.

<comment><USER11> You are as welcome as anyone else.

I don't think anyone hit the "instaban" button nor did I see anyone advocate you go away. You put yourself out there and this is how the community reacted -- don't take it personally.

Take your passion and keep fighting for what you believe in. So long as your actions align with your values, it doesn't really matter what anyone else thinks, says, or does.

:)

<comment><USER4> Thank you. I am shocked by the comments and finding it hard not to take it personally. But I know you are right.

<comment><USER12> This is not really a community anymore, it's more like an open park. There are some old regulars, and they are recognized by the handles, but that's about it.</comment></comment></comment></comment></comment>


A look at EarthBound's text system and scripting language (2011) - <AUTHOR> http://earthboundcentral.com/2011/04/a-look-at-the-mother-2-side/

<comment><USER2> Some context: The CEO and President of Nintendo, Satoru Iwata, passed away recently. He is credited with saving EarthBound from cancellation by joining the programming team.

<comment><USER3> You might be conflating this with the Super Smash Brothers Melee story, where Iwata left his Nintendo HQ corporate strategy role to join HAL Laboratories for QA & Bug Fixing so that the game wouldn't miss its ship date (this was 3 months before the launch date).

<comment><USER4> Whether Earthbound was to be cancelled or not I don't know, but it's a similar story in that he was the president (in the Earthbound case, of HAL laboratories) but he joined the programming team. Unlike Smash, though, he rewrote Earthbound entirely in a few months: [http://kamedani.tumblr.com/post/45700864819/mother-2-re- rele...](http://kamedani.tumblr.com/post/45700864819/mother-2-re-release- discussion-part-1)

</comment></comment></comment><comment><USER5> It would be a neat little project to write a tool that renders all those control codes as something more easily read. I wouldn't be surprised if this were in fact the output generated by such a program.

On the one hand I think Iwata could easily have whipped up a little tool, on the other hand I like to think he didn't need it :)

<comment><USER6> Back in the early/mid 2000s I was involved with the PK Hack community, which was/is a group of people who focus on reverse engineering the EarthBound ROM (documenting and building editors for it, etc). I remember a guy named Flynman was actually putting together a sort of EarthBound scripting language that compiled down into the text engine's control codes. I'm not sure if that ever led anywhere, but it sounded pretty cool at the time. I might dig around to see if I can find it somewhere on the Starmen.net forums

edit: the original was called CCBasic, but I guess someone took the concept and reworked it here: [https://forum.starmen.net/forum/Community/PKHack/CCScript-A-...](https://forum.starmen.net/forum/Community/PKHack/CCScript- A-new-revolution-in-text-editing-D/page/1/)

and the language docs: [http://starmen.net/pkhack/ccscript/Tutorial.html](http://starmen.net/pkhack/ccscript/Tutorial.html)

</comment></comment><comment><USER7>
      [1F F0] (Activate Bicycle)

Well you don't get much more CISC than that.

</comment><comment><USER8> Interesting stuff.

In a modern system an MVC (or similar) type architecture would work well for dialog. Of course writing that kind of thing on the NES where every byte counts would be a lot more challenging.

</comment><comment><USER9> what made this game so fun and great for those that love it? I've played it on an emulator 15 years ago and I thought it was okay but nothing really stood out in my memory. Perhaps it would've been better if it had been played on an actual SNES console in the 90s.</comment>


Metabolism appears in lab without cells - <AUTHOR> http://www.newscientist.com/article/dn25471-spark-of-life-metabolism-appears-in-lab-without-cells.html <comment><USER2> The full paper[1] is interesting, as is the news and views commentary on this article[2] from the same _Molecular Systems Biology_ journal. The origin of life is, of course, still an unsolved problem, and one of the problems has been inferring from geological and other findings what the early environment of Earth was in which life arose. I commend the Hacker News participant here who submitted this article for submitting an article from a journalistic source experienced in science journalism, with a reporter making the effort to seek other commenters besides the primary research journal authors to gain pro-and-con commentary about how important this preliminary finding is. I found the submission interesting, as it suggests some lines of inquiry I hadn't read about before in other writings on the origin of life.

[1] [http://msb.embopress.org/content/10/4/725](http://msb.embopress.org/content/10/4/725)

[2] [http://msb.embopress.org/content/10/4/729](http://msb.embopress.org/content/10/4/729)

</comment><comment><USER3> I'm with Szotack (quote at end of article). Basically, they're just showing relatively obvious stuff, which is to say, the second law of thermodynamics coupled with a heat bath can lead to interesting deviations from entropy.

<comment><USER4> The difference is that absent a cell doing what Szotack claims (i.e. evolving in front of him) his theory is basically unprovable and unfalsifiable. The other group stand a chance of eventually reconstructing what they're looking for, but the alternative being presented is just pontification.

</comment></comment><comment><USER5>
      from complex sugars to simpler molecules

Are they saying they've found non-cell metabolic pathways... but that require cell-created complex sugars as starting points? OK, so not enough to start life; but filling in each link in the chain (tree?) is important.

BTW: some researchers extrapolated life-complexity-over-time backwards, and concluded life is older than Earth. Speculation on speculation! But a fascinating paper: [https://news.ycombinator.com/item?id=5552381](https://news.ycombinator.com/item?id=5552381)

</comment><comment><USER6> The DOI is wrong. Here's the paper: [http://msb.embopress.org/content/10/4/725](http://msb.embopress.org/content/10/4/725).

</comment><comment><USER7> A non-biologist summary: some complex compositions like sugars have been found to decompose (metabolize) outside of a cell. The research still does not explain how such compositions can form in the first place.

</comment><comment><USER8> Journalists look for sensational titles and words so the scientific paper is probably less "spark"ling.

Regardless, it is encouraging that with every step scientists are getting closer to explaining one of the greatest scientific mysteries and one of the biggest dark holes where religious supernatural beings and deities happen to skulk.

</comment><comment><USER9> I wonder what the creationists will say about this :P

<comment><USER10> See, this is what bothers me. Too many people seem to think that there is a conflict between evolution and creationism. The thing is, both can in fact be true. Who's to say that there isn't a creator orchestrating processes? Such a being wouldn't work by magic, but by a profound understanding of natural processes. How would this be any different from us discovering how life was created and then using that understanding to create it ourselves? The whole back and forth over evolution between religious and non-religious folk is ridiculous. Neither side will ever get anywhere because the whole premise of the debate is a non sequitur.

<comment><USER11> You might be less bothered if you took creationist in this context to imply "young earth creationist," which is almost certainly what's intended.

<comment><USER9> Yeah, that's what I meant, sorry. YEC are really the ones making most of the noise and raising most of the money for stuff like school board electiosn, so...

</comment></comment></comment></comment><comment><USER12> Don't hold your breath; it's gonna take 4 billion years.

</comment><comment><USER13> Scientists need to be extraordinarily careful about this kind of vague, "might be", "coulda been" kind of speculation. Finding the "spark of life" would be amazing, but speculating about how it might have formed without actual evidence shows a lack of skepticism that runs counter to the whole ethos of science and ultimately undermines it. When the public sees scientists hoping and wishing that they can find the "spark of life," and raising up hands of praise when some vague suggestion of how it might have happened is proffered, they're bound to gain suspicions that this part of science, anyway, is nearer to a religion that a cold, surgical pursuit of verifiable truth.

If you don't see the handwaving speculative wishfulness of the article, note this sentence: "A related issue is that the reactions observed so far only go in one direction; from complex sugars to simpler molecules like pyruvate." Ah, so when you heat up sugars they decompose into simpler molecules? Amazing! Must have created life! God is dead; long live Nature! Praise be!

<comment><USER14> It sounds like your concern is more with the language of Linda Geddes, who wrote the New Scientist article, than with the scientists. Are you sure your caution shouldn't instead be more applied to science journalists?

For example, the "spark of life" is from the New Scientist, not from the researchers, and the word "spark" doesn't exist in the underlying paper except in the references, in the title of another paper.

Nor does the paper say something as simple as "when you heat up sugars ...". Instead:

> Due to the complexity of the metabolic pathways, it has been argued that > metabolism‐like chemical reaction sequences are unlikely to be catalysed by > simple environmental catalysts (Lazcano & Miller, 1999; Anet, 2004). > However, to our knowledge, this possibility has not been tested > systematically, and at present stage, thermodynamic approaches are not > predictive about which molecules form in the presence of simple catalysts > from a precursor (Amend et al, 2013). Here, we studied the reactivity of > intermediates of glycolysis and the pentose phosphate pathway upon > replicating a plausible chemical composition of the prebiotic Archean ocean. > We report that under these conditions, the intermediates of the two pathways > undergo non‐enzymatic interconversion reactions and form neighbouring > intermediates that constitute these pathways in modern cells.

That is, the goal was to look for 'metabolism‐like chemical reaction sequences', and not the creation of more complex sugars.

<comment><USER15> I agree regarding science journalists and feel the need to put this here: [http://www.phdcomics.com/comics.php?n=1174](http://www.phdcomics.com/comics.php?n=1174)</comment></comment></comment>


BankSimple is getting real - <AUTHOR> http://img.ly/26XS <comment><USER2> ...but has anyone tried it? I'm quite happy with my new Schwab account after closing my previous (and first) internet banking account after 10 years. Maybe we aren't the right demographic for BankSimple. But maybe they are marketing to the wrong folks with their analytics, etc. How many of you have problems with triggering excess fees? It's never been a problem for me.</comment>


Announcing Pipenv - <AUTHOR> https://www.kennethreitz.org/essays/announcing-pipenv <comment><USER2> This is great, but sometimes I think that python needs a new package manager from scratch instead of more tools trying to mix and mash a bunch of flawed tools together in a way that's palatable by most of us. Python packaging sucks, the whole lot of it. Maybe I'm just spoiled by rust and elixir, but setuptools, distutils, pip, ez_install, all of it is really subpar. But of course everything uses pypi and pip now, so it's not like any of it can actually be replaced. The state of package management in python makes me sad. I wish there was a good solution, but I just don't see it.

Edit: I don't mean to disparage projects like this and pipfile. Both are great efforts to bring the packaging interface in line with what's available in other languages, and might be the only way up and out of the current state of affairs.

<comment><USER3> I think python packaging has gotten LOTS better in the last few years. I find it quite pleasurable to use these days.

From binary wheels (including on different linux architectures), to things like local caching of packages (taking LOTS of load off the main servers). To the organisation github of pypa [0], to `python -m venv` working.

Also lots of work around standardising things in peps, and writing documentation for people.

I would like to applaud all the hard work people have done over the years on python packaging. It really is quite nice these days, and I look forward to all the improvements coming up (like pipenv!).

I'd suggest people checkout fades [1] (for running scripts and automatically downloading dependencies in a venv), as well as conda [2] the alternative package manager.

[0] [https://github.com/pypa/](https://github.com/pypa/)

[1] [https://fades.readthedocs.io/en/release-5/readme.html#what-d...](https://fades.readthedocs.io/en/release-5/readme.html#what- does-it-do)

[2] [http://conda.pydata.org/docs/intro.html](http://conda.pydata.org/docs/intro.html)

<comment><USER4> +1. Relatively to what we have before, it's so much better. But compared to the JS/Rust ecosystem, we are behind.

Now it's hard to compete with JS on some stuff : it's the only language in the most popular dev plateform (the web) and it has one implicit standardized async model by default.

It's hard to compete with rust on some stuff : it's compiled and is fast, can provide stand alone binaries easily and has a checker that can avoid many bugs.

But this. The package manager. We can compete. And yet we are late.

It's partially my fault since it's a project I had in mind for years and never took the time to work on. It's partially everybody's fault I guess :)

<comment><USER5> Wow, Javascript, really? I am guessing you don't actually work with NPM a lot.

<comment><USER6> One suspects it's you who hasn't distributed or installed many modules on either python or node. _So many_ of the problems that python has, simply don't exist for node, because it finds modules in a bottom-up hierarchical fashion. That allows a single app or module to use modules that in turn use different versions of other modules, and not to worry about what other modules are doing, or how other modules are installed, or how node is installed, or what version of node is installed. This prevents the traditional "dependency hell" that has plagued devs for decades. Thanks to tools like browserify and webpack, the browser may also benefit from this organization.

On top of all that, npm itself just does so many things right. It's quite happy to install from npm repos, from dvcs repos, from regular directories, or from anything that looks like a directory. It just needs to find a single file called "package.json". It requires no build step to prepare a module for upload to an npm repo, but it easily allows for one if that's necessary. package.json itself is basically declarative, but provides scripting hooks for imperative actions if necessary. At every opportunity, npm allows devs to do what they need to do, the easy way.

In a sense, node and npm are victims of their own quality. The types of "issues" (e.g. too many deps, too many layers of deps, too many versions of a particular dep, deps that are too trivial, etc.) about which anal code puritans complain with respect to node simply couldn't arise on other platforms, because dependency hell would cause the tower of module dependencies to collapse first. node happily chugs along, blithely ignoring the "problems".

Personally, I used to be able to build python packages for distribution, but since I've been spoiled by node and npm for several years I've found I simply can't do that for python anymore. It is so much harder.

<comment><USER7> npm has its own special problems. disclaimer: what I'm talking about in this post is at least six months old, which in node/npm/js world is ancient history.

> it finds modules in a bottom-up hierarchical fashion. That allows a single > app or module to use modules that in turn use different versions of other > modules, and not to worry about what other modules are doing

To my understanding, if your app transitively depends on package foo-1.2 in thirty different places [0], there will be thirty copies of foo-1.2 on disk under node_modules/ . Each package reads its very own copy of foo-1.2 when it require()s foo.

On a large app, that adds up to a lot of inodes ("why does it say my filesystem is full? there's only 10G of stuff on my 80G partition!" because it's used up all its inodes, not its bytes.) and a _lot_ of unnecessary I/O. The second through thirtieth copies of foo-1.2 don't come from the kernel's block cache "for free", they come from spinning rust (or if you're lucky, the dwindling number of IOps your SSD can choke out. Do you pay money for provisioned IOps?).

[0] and thirty is a lowball number for some projects, especially given the community's preference to require "leftpad" or whatever instead of writing a couple lines in their own projects

<comment><USER6> _...what I 'm talking about in this post is at least six months old..._

Haha npm@3 was out June 2015. b^)

I agree that it would have been better, on balance, for previous versions to have created hard links to already-installed modules. Actually that wouldn't be a bad option to have even now, since debugging is often easier when one has a deep directory structure to explore rather than hundreds of random names in the top-level node_modules directory. That is, if I know the problem is in module foo, I can pushd to node_modules/foo, find the problematic submodule again, and repeat until I get all the way to the bottom. [EDIT: it occurs to me that having all these hard links would make e.g. dependency version updates easier, since un-updated dependencies wouldn't have to be recopied, unix-stow- style.]

To me, the more amusing file descriptor problem is caused by the module "chokidar", which when used in naive fashion tries to set up watches on all 360 files and directories created by itself and its own 55 dependencies. At that point it's real easy to run out of file watches altogether. Some of the utilities that call chokidar do so while ignoring node_modules, but many do not.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> > I wrote a new tool this weekend, called pipenv.

> It harnesses Pipfile, pip, and virtualenv into one single toolchain. It > features very pretty terminal colors.

For a weekend project, this has some very nice things.

Which removes the need for me to run my own project that basically does these things... In more or less, a worse way.

Everything I've come to expect from Reitz, and hopefully it'll gain some decent ground like other projects of the same author.

</comment><comment><USER9> For people who want to do it right without using an additional tool read this: setup.py vs. requirements.txt by Donald Stufft [https://caremad.io/posts/2013/07/setup-vs- requirement/](https://caremad.io/posts/2013/07/setup-vs-requirement/)

<comment><USER10> I gave up populating requirements in setup.py. I just use multiple requirements.txt. This article has been debated for years already and there is absolutely no right / wrong.

</comment></comment><comment><USER11> Hey everyone. I'm Kale, currently the lead developer on the conda project. It's been mentioned a few times in this thread, and I just want to make sure that any questions about it are answered accurately. Feel free to ask me anything about product conda. Thanks!

</comment><comment><USER3> Neat. Now for questions and comments.

Often people have a requirements.live.txt, or other packages depending on the environment. Is that handled somehow? Can we use different files or sections? [ED: yes, different sections]

Still wondering to myself if this is worth the fragmentation for most people using requirements.txt ? Perhaps the different sections could have a "-r requirements.txt" in there, like how requirements.dev.txt can have "-r requirements.txt". [ED: the pipfile idea seems to have quite some people behind it, and pip will support it eventually. Seems it will be worth it to standardise these things. requirements.txt is a less jargony name compared to Pipfile though, and has a windows/gui friendly extension.]

Other tools can set up an environment, download stuff, and run the script. Will pipenv --shell somescript.py do what I want? (run the script with the requirements it needs). ((I guess I could just try it.)) [ED: doesn't seem so]

Why Pipfile with Caps? Seems sort of odd for a modern python Thing. It looks like a .ini file? [ED: standard still in development it seems. TOML syntax.]

With a setup.py set up, all you need to do is `pip install -e .` to download all the required packages. Or `pip install somepackage`. Lots of people make the setup.py file read the requirements.txt. Do you have some command for handling this integration? Or is this needed to be done manually? [ED: seems no considering about this/out of scope.]

Is there a pep? [ED: too early it seems.]

<comment><USER12> Check out [https://github.com/pypa/pipfile](https://github.com/pypa/pipfile) for more info. The format is TOML. It is mainly intended for deployments (e.g. web applications)

<comment><USER3> Thanks.

<comment><USER12> Also `pipenv install -r requirements.txt` is supported, for importing.

<comment><USER3> That's nice.

Have you seen fades [0]?

It lets you do things like::

        fades --requirement requirements.txt myscript.py

You can also mark the dependencies in your myscript.py as comments. The use case is for quick one off scripts which may require a bunch of different requirements. The integration with ipython is nice for experimenting too. I think pyenv could be useful for that use case of little one off experiments too.

One enhancement I'd like for it to also run modules or entry points like:

        fades --dependency pygame -m pygame.examples.aliens

Setuptools entry points like used in console_scripts to work would be nice too:

        fades --dependency pyenv -m pyenv.cli:cli

Or the best::

        fades -m pygame.examples.aliens

So it can create a virtualenv, see that it needs the package (pygame here), and then install that package with pip, and then run the module or entry point.

Anyway... just some dreaming. Can I haz pony? All this is exciting.

[0] [https://github.com/PyAr/fades](https://github.com/PyAr/fades)

</comment></comment></comment></comment></comment><comment><USER13> I'm surprised that no one has mentioned pip-tools: [https://github.com/nvie/pip-tools](https://github.com/nvie/pip-tools)

It's a very similar set of tools. I use pip-compile which allows me to put all of my dependencies into a `requirements.in` file, and then "compile" them to a `requirements.txt` file as a lockfile (so that it is compatible with pip as currently exists).

This looks great, though, I'm excited to check it out!

<comment><USER14> We use pip-tools on all our Python projects and it works great. I believe the requirements.in compiled to requirements.txt approach is much more sane and less error-prone.

</comment></comment><comment><USER15> I think an app should not expose end users to its dependencies. That leaves the end user with a lot of pain figuring out versions of dependencies and god forbid you need to compile some dep then you need a build environment and its dependencies any of which can fail in this chain leaving a very unpleasant and even hostile end user experience.

Ruby and Node apps are particularly guilty of this pulling in sometimes hundreds of packages some of which need compilation. Compare that to a Go binary which is download and use. These things can get very complicated very fast even for developers or system folks let alone end users who may not be intimately familiar with that specific ecosystem.

</comment><comment><USER16> Is this like Ruby's Bundler for Python? I've just been getting into Python and am really glad to see this, thanks for creating it!

<comment><USER17> Very similar. I think Pipenv improves on Bundler by leveraging Virtualenv and Ruby doesn't have a per project equivalent to Virtualenv that I'm aware of. You can set the path config variable of Bundler to not place the project Gems in a central location which I think is cleaner and try to remember to always do now.

It would be _super_ interesting if the Python and Ruby communities got together to harmonize every last detail of their packaging toolchain. Who is in?

<comment><USER18> > Ruby doesn't have a per project equivalent to Virtualenv that I'm aware of.

The nearest equivalent is to place a file called '.ruby-version' in the top level directory, containing the version number of the Ruby you want to use. Version numbers come from [https://github.com/rbenv/ruby- build/tree/master/share/ruby-b...](https://github.com/rbenv/ruby- build/tree/master/share/ruby-build). rbenv, chruby and rvm all support .ruby- version.

One difference from virtualenv is that the Ruby version managers share single installations of each version of Ruby. My understanding from occasional use of Virtualenv is that it copies the python installation into a new per-project subdirectory, which seems a bit wasteful to me.

> You can set the path config variable of Bundler to not place the project > Gems in a central location which I think is cleaner and try to remember to > always do now.

Yes, this is what I do. It gives me a shared 'clean' Ruby installation of the right version, plus a project-specific copy of all the gems the project depends on. To me this provides the best trade off between project isolation and not duplicating the whole world. You can set bundler up so this is done automatically by creating '~/.bundle/config' containing

        ---
        BUNDLE_PATH: "vendor/bundle"
        BUNDLE_BIN: ".bundle/bin"

(The BUNDLE_PATH one is the important one; see 'bundle config --help' for other options.)

<comment><USER19> > It gives me a shared 'clean' Ruby installation of the right version, plus a > project-specific copy of all the gems the project depends on

You can also accomplish the same using gemsets which are provided by rvm.

<comment><USER17> Using RVM is not always an option and some might consider it an anti-pattern.

</comment></comment></comment></comment></comment><comment><USER20> Hey other Reitz fans. Make sure to check out his newish podcast series: [https://www.kennethreitz.org/import- this/](https://www.kennethreitz.org/import-this/)

</comment><comment><USER21> Seems to be a python specific nix-shell like tool?

With nix[OS] you just run `nix-shell -p python[2,3] python[2,3]Pacakges.numpy ...` to get an environment with the required packages.

Of course this requires that the python library is packaged in nix, but in my experience the coverage is quite good, and it's not very hard to write packages once you get the hang of it.

It also possible (but currently a bit clumsy in some ways) to set up named and persistent environments.

</comment><comment><USER22> See also: [https://github.com/pypa/pipfile](https://github.com/pypa/pipfile)

I'm glad to see Python getting the same attention as other modern package managers. This is all great work!

</comment><comment><USER23> I will definitely be trying this out. Python version and package management is a dumpster fire that wastes gobs of my time on the regular. I'll try anything that promises to end the pain.

</comment><comment><USER24> Finally someones does it! I was using: pip -t .pip in my code, avoiding virtual-env completely, but that was not enough and incomplete.

As this is not cross platform and it would be nice to switch between Linux/Windows while coding to maintain platform compatibility, can the virtualenv envs be created with a os platform & subsystem prefix ? for example, having multiple envs at once:

      - env/posix/bin/activate
      - env/nt/Scripts/activate.bat

</comment><comment><USER25> I always wonder if this could be done once and for all languages, instead of Ruby making bundler, Haskell Cabal sandboxes or stack, Perl Brew, etc. Is this where Nix is going?

<comment><USER26> You make it one tool, and sysadmins will instantaneously lock it down. These package managers, in most cases, are developer tools built to get around system-wide locks on libraries; the more you centralize them, the more likely it is they will get locked down, and then someone will build tools to get around that, and so on and so forth.

<comment><USER21> As one of the few package mangers, nix can be used without root access.

</comment></comment></comment><comment><USER27> See also, pex: [https://www.youtube.com/watch?v=NmpnGhRwsu0](https://www.youtube.com/watch?v=NmpnGhRwsu0)

</comment><comment><USER28> normally I use virtualenvwrapper and that makes a virtualenv directory for all virtualenvs you create with it. before that, I always create my projects' venvs inside my project hierarchy.

I had a dilemma about it. But after all, you can not move your venv directory unless you use `--relocatable` option. So, anyone have a strong argument about creating venvs inside your project directory?

<comment><USER29> I've always found the whole virtualenv stuff so superfluous. Do we really need all the machinery with shell scripts and static paths?

We just use a directory where we keep our dependencies. It's a matter of:

        mkdir libs
        pip install -t libs <package>
        # then to run
        PYTHONPATH=libs python app.py

From what I can tell, this accomplishes everything a venv does (except bringing the Python interpreter itself along) without requiring any extra tools or conventions to learn.

<comment><USER24> As you pasted-it, it does not accomplish venv:

      - you still need to change PYTHON_PATH to recognize libs from `libs`
      - packages have bin scripts sometimes that most likely, will be needed by the project

A more proper command: \- pip install -t ./libs --install-option="\--install- scripts=./bin"

But still, does not solve the PYTHON PATH issue, it won't be solvable because all python cli tools and all scripts in ./bin must be aware of PYTHON_PATH including ./libs

This is what venv does and pip alone cannot easily solve, replicating an entire python environment that is aware of project local pip packages

<comment><USER29> My commands do set PYTHON PATH when running the app.

As for the cli tools, fair enough, but the packages I use with such tools/scripts are full applications, not dependencies to be included in another project. Which kinds of packages do you see as both dependencies and containing CLI tools?

</comment></comment></comment></comment><comment><USER4> I was really not a fan of the last "made in Reitz" project Maya. But this, I really can get along.

The whole things make it way easier to get started for a beginner. Now more activate. No more wondering about virtualenv. Automatic lock files are great since no project I know of use them since they are not well understood.

It's like node_packages (easy and obvious), but cleaner (no implicit magic).

Like.

</comment><comment><USER30> LinkedIn has a similar open source project that is much more mature. It builds on Gradle features to manage complex dependencies and build Python artifacts. If you include this LinkedIn Gradle Plugin [1] you can automatically run tests in a virtual env and source a file to enter the project's virtual env.

PyGradle [2]: "The PyGradle build system is a set of Gradle plugins that can be used to build Python artifacts"

[1] [https://github.com/linkedin/pygradle/blob/01d079e2b53bf9933a...](https://github.com/linkedin/pygradle/blob/01d079e2b53bf9933aa786af1ec7dabcf964c669/docs/python.md)

[2] [https://github.com/linkedin/pygradle](https://github.com/linkedin/pygradle)

</comment><comment><USER31> _> \--three / \--two Use Python 3/2 when creating virtualenv._

I use Python 2.7, 3.4, and 3.5 on various projects. Is there a way to choose between 3.4 and 3.5 using Pipenv? I'm using something like this with virtualenv:

      $ virtualenv -p `which python3.5` .venv

<comment><USER32> Just a comment. Your command is equivalent to

      $ virtualenv -p python3.5 .venv

<comment><USER33> Is that true? His command would evaluate the path at the time which is run, but yours seems to evaluate the path at the time python3.5 is run. Subtle, but very different results.

<comment><USER34> virtualenv resolves the interpreter when you run virtualenv, and if you specify a different interpreter with `-p` it will resolve the path to the interpreter and then run virtualenv again using it.

</comment></comment></comment></comment><comment><USER35> Why people are trying to complicate things? requirements.txt are much simpler and better.

<comment><USER4> First, you need to take care of the virtualenv manually. This tool avoid that. You can completly ignore the virtualenv. You don't even have to populate requirements or learn about pip freeze.

Secondly, this tool allow you to freeze your requirement list at specific versions. So in your req file, you have the name of the packages you depend on. Bon on the req lock, you get all the pulled dependencies recursively with the version you are using right now. The first one let you dev more easily. The second one deploy more easily.

All that, for less complexity. Win win.

</comment></comment><comment><USER36> I haven't really used requirements.txt because I found that I could install 'extra' and 'test' specific content based on args to setup() in my setup.py. It seems more like the Right Thing than requirements.txt, from what I can tell.

At first glance, this doesn't seem to offer anything beyond what I already see from setup(). What am I missing?

It's unfortunate that CPython gave us distutils and took a very long time to converge on a built-in successor (setuptools?) that gives the right composability.

</comment><comment><USER37> This is very interesting! I had exact same question how to do it in python just a while ago! [http://stackoverflow.com/questions/41427500/creating-a- virtu...](http://stackoverflow.com/questions/41427500/creating-a-virtualenv- with-preinstalled-packages-as-in-requirements-txt)

Glad that someone thought about similar thing and made a tool to solve it!

</comment><comment><USER38> > Otherwise, whatever $ which python will be the default.

This is a bit strange because the python binary is always supposed to be Python 2. The Python 3 binary is supposed to be named python3. Some distributons don't follow this, but they're the weird non-conformant ones; it's not a behaviour that should really be relied on.

<comment><USER39> _> always supposed to be Python 2_

This is not correct. It's a symlink to python2 on systems that rely on calls to python to be python2. On modern systems, python is usually a symlink to python3. This is the case on Arch Linux and I believe other recent distro releases.

<comment><USER38> Arch is the oddball. I'm not aware of anybody else who's made the switch.

Given that they're not mutually compatible except in rare cases, it's a very silly thing to do. You can upgrade GCC with the same name because you know it will handle most of the same input. If you do that with Python you're breaking tons of existing scripts for very close to zero benefit. Why would you do that?

<comment><USER39> It's not silly. One of Arch's primary draws is being the first to get updates and integrate new technologies. Other distros will follow soon enough if there really aren't any others.

It's not as if python2 suddenly doesn't exist, it's not terribly life-changing to add a 2 in the places where the scripts are still on the last version.

I'm glad to be on a system where the default Python version isn't one that will be officially unsupported in three years.

Edit: It's worth pointing out that this switch was made _6 years ago_ and the world is still spinning.

[https://www.archlinux.org/news/python-is-now- python-3/](https://www.archlinux.org/news/python-is-now-python-3/)

<comment><USER38> They can adopt Python 3 and drop Python 2 without adding this link which encourages a convention of /usr/bin/env python for Python 3 on their platform, creating unnecessary incompatibility with other platforms.

As you said, it's old news now, and not the end of the world. But I'm hoping others don't follow.

</comment></comment></comment></comment></comment><comment><USER40> Uninstall by default removing everything seems a little scary. Otherwise looks really neat, looking forward to trying it

<comment><USER41> I wanted to comment on the same thing, IMHO something like `pip uninstall --all` would be a better choice. Great work otherwise!

</comment></comment><comment><USER9> Currently using fish and virtualfish. This seems incompatible to non bash shells. Did somebody tested?

<comment><USER12> Fish support was just added!

</comment></comment><comment><USER42> Interesting. I have been leveraging tox to provide a lot of what this seems to give you, but it certainly has been more of a hack than a solution.

</comment><comment><USER43> This is cool - it's like yarn for python! :)

</comment><comment><USER44> What took Python so long to get a tool like this?

<comment><USER4> Did you work on it ?

No.

That's why.

We can't always wait for one famous guy to do it.

</comment></comment><comment><USER45> Did anyone had a problem installing in on El Captain? I manage to do it with --user flag but the pipenv command doesn't exist.

</comment><comment><USER46> A bit off-topic, but what font is used in the video/animated GIF?

<comment><USER12> Operator Mono! [https://www.kennethreitz.org/essays/test- driving-a-200-progr...](https://www.kennethreitz.org/essays/test- driving-a-200-programming-font-operator-mono)

</comment></comment><comment><USER47> I can only express my gratitude, thank you Kenneth!

</comment><comment><USER48> Windows support?

<comment><USER12> coming soon, hopefully via pull request!</comment></comment>


Ask HN: Thinking of starting a software training business – can you give advice? - <AUTHOR> Hi there. I'm thinking of trying to earn money by doing in-person training on software development to software developers.
I'm wondering is there anyone on HN who knows the software training business, who would be willing to share the mechanics of what works and what does not?
How to find customers? What to price the training? Tips on making the training a success?
If you're willing to say how much revenue your business has earned approximately that would be amazing.
It would be greatly appreciated. Finding the answers to these questions is time consuming and risky and hard and I'd love it if someone with experience would be willing to share their hard earned knowledge.
thanks! <comment><USER2> As with any business the first aspect to think about is your market and the niche in that market you want to address.

Software training comes in many flavours some of which are:

\- teaching CS and programming basics to children

\- the same for adults

\- developer bootcamps

\- hackathons

\- workshops: Teaching and coaching software professionals in terms of specific technologies

I have some experience with the last one. With workshops typically your customers aren't the individuals coming to the event but companies paying for their employees being taught a new skill or technology. So, in this case you're basically doing enterprise sales (with somewhat shorter sales cycles though).

Don't charge for your time but rather per participant. In this case you provide a service to professionals and / or the companies that employ them. Therefore you can generally charge higher prices. The exact price of course depends on the course topic. Keep in mind though that in this setting you have to pay for expenses for the venue and catering as well. So, basically: Charge more.

As for tips on making the training a success there's a lot to talk about but here are some basic tips:

\- Obviously, be well-prepared.

\- Be at the location at least half an hour early. Make sure all the required equipment is available and working with your laptop. The same applies to WiFi / Internet connectivity.

\- Having assignments for each lesson allowing you to apply what you've just learned is vital to understanding and internalising new knowledge.

\- Try to devote sufficient time to each participant individually and to those who're slower than average in particular.

\- 10 people in my experience is the reasonable upper boundary for participants a single trainer can handle without neglecting some of the participants.

\- A classroom tool for managing students, tasks and course material is really helpful.

</comment><comment><USER3> _How to find customers?_

This is really the first item in the critical path. Nothing else matters until this is solved. Time spent on anything else before this is answered is mostly wasted and there will be a strong incentive to spend time on everything but this because finding customers is harder than coming up with pricing, imagining ways to make trainings successful, following tips, printing business cards, renting office space, etc.

There's no checklist for finding customers, just a lot of potential rejection (and perhaps no acceptance if there is no reasonably accessible market). This is not particular to software training, freelance programming, private piano lessons, etc. Finding customers is the fundamental first step of a business...and it mostly comes down to being able to sell yourself and close sales. There are no shortcuts.

Good luck.

</comment><comment><USER4> Look at how trainers find customers. Usually, they go to dev conferences and give free talks; at the end of the talk, on the last slide, they mention about "call me for training". For example, Raymond Hettinger python core dev does it in his talks.

Writing books and articles helps.

Check David Beazley training on python: [http://www.dabeaz.com/chicago/index.html](http://www.dabeaz.com/chicago/index.html)

He charges $2750 per student. His max students are 6. Now, you can check how many classes he conducts in Chicago.

There are too many online classes, youtube tutorials, coursera, udacity, etc. These classes help those who are really dedicated to learn. There are many others, who have full time or 40 hrs a week jobs. However, their companies don't spend on training and they want to learn hands on. This is where your business fits in, until you find a steady stream of corporate clients.

</comment><comment><USER5> I'm on a similar path.

Talks are a good route. You need to prove (to technical people) that you are capable of delivering worthwhile training and at the same time get on the radar on HR (non-technical) who make the hiring decisions.

[https://lerner.co.il/trainer-weekly/](https://lerner.co.il/trainer-weekly/) is a useful resource.

Get in touch if you want to chat, always happy to speak to fellow trainers. I believe training can be very worthwhile (personally and income wise), but it takes time to get there (and moving out of comfort zone, at least for me).

</comment><comment><USER6> I'm thinking of doing the same too.</comment>


Simpler syndication - <AUTHOR> http://leancrew.com/all-this/2015/11/simpler-syndication/ <comment><USER2> Amusingly, I have an RSS reader program which polls sites and returns new items.[1] It's set up to drive antique Teletype machines.[2] Whenever a new feed item comes in, the machine powers up and prints the new item.

Detecting which feed items are new is surprisingly difficult. GUID, pubDate, and etag can all change even when the content hasn't changed, depending on the RSS server. Hashing the content text and comparing it to a stored hash is necessary.

The first time I brought this to a steampunk convention, it started out printing "LEAK DISCOVERED IN SECOND REACTOR". Someone reading it thought it was fictional, but as more details of the Fukishima meltdown were typed out, realized it wasn't.

[1] [http://sourceforge.net/projects/baudotrss/](http://sourceforge.net/projects/baudotrss/) [2] [https://archive.org/details/Aethericmachine14](https://archive.org/details/Aethericmachine14)

</comment><comment><USER3> Really cool work. Personally, I can really recommend Newsify as a top quality RSS reader on the iPhone. Great offline support, and it downloads the full articles with images as well.

Not affiliated, just a very happy customer.

</comment><comment><USER4> I'm reminded of [https://www.jwz.org/cheesegrater/](https://www.jwz.org/cheesegrater/). What's old is new again.

</comment><comment><USER5> Sounds just like [http://www.planetplanet.org/](http://www.planetplanet.org/)</comment>


Quid – The quiet startup inking million-dollar deals - <AUTHOR> http://www.cnbc.com/id/102500826

<comment><USER2> I've been working at Quid for the last two and half years. The momentum here is getting really exciting. Let me know if you have any questions! We're (of course) hiring and also just completed a solid round ([http://techcrunch.com/2015/03/19/quid- series-d/](http://techcrunch.com/2015/03/19/quid-series-d/))!

</comment><comment><AUTHOR> Related, AI Quid Raises $39M [https://news.ycombinator.com/item?id=9233388](https://news.ycombinator.com/item?id=9233388)</comment>