How technical does a start-up founder have to be? - <AUTHOR>

Does a start-up founder have to be a "hacker"? Can the business major who loves the web and has a good idea about a web based business succeed in the cut throat, competition heavy web space? Or, does one, in order to succeed in a start-up have to spend day in and day out coding in order to really understand how to differentiate and how to survive in the web start-up space? Lets here what you think... <comment><USER3> I had the same question about a year back, and I'm sure some of you will remember it. I saw myself as the 'business major [I don't have a major] who loved the web and had a good idea about a web based business.' And there's one thing I found out through posting on web bulletins, posting flyers around school, and trying to network - it's extremely difficult to find a hacker cofounder who is willing to jump on board. How could I, a non-hacker, possibly play an equal contributory role has my hacker cofounder? And furthermor, how could I accurately convey my ideas coming from a frame of mind completely different from that of a hacker? I realized that if any sort of relationship was forged for the sake of having a team, these issues would soon arise in the future and cause much bigger problems, and would ultimately hinder the success and growth of a startup. So I started to learn how to hack, and it literally changed the way I think about ideas. I try to conceptualize how I can tackle problems with code, and how feasible it'd be to do so. And it's this newly found understanding that will help me play a more integral role in my team, and allow me to communicate with hacker cofounders on a leveled playing field. Even two of the Auctomatic founders eventually learned how to hack.

At the beginning, I was irritated by the response I got here. People told me left and right that business people are useless and that if you don't know how to hack you can't go anywhere. But, after getting my feet wet and thinking about it, I understand where they were coming from.

So I guess a business guy can in fact lead a successful startup. But do I think that business savvy guy who knows a bit about hacking will have significantly higher chances of succeeding in the web world? Yes.

<comment><USER4> "How could I, a non-hacker, possibly play an equal contributory role has my hacker cofounder?"

As the hacker co-founder in a shop of two people, let me tell you, you can play an equal role. Okay, so my partner doesn't setup the servers or write the code or design the site; I do all of that. So what does he do? _Everything else_. Ask most any hacker and they'll give you a laundry list of things they hate doing when it comes to starting/running a business or working on a project of any kind. In fact, it's usually easier just to ask them what they _do_ want to do; the answer will almost always be "code." In my case I add design and a couple other items to the list, but I digress.

You're the one out there networking and making deals, finding advertisers, building a list of beta testers, writing up details on the competition, handling the finances and the ho-hum paperwork, handling the customers/visitors/whoever, and _much_ more. My co-founder has been invaluable to the business (I hope he stays invaluable, too, so he never gets paid ;). He describes his job as essentially making sure I am never bothered. I'll take that over another hacker any day of the week because with another hacker I'd end up getting stuck doing at least half of all that stuff that is no fun, very time consuming and highly distracting (in a job where small distractions can cost huge time).

And (briefly!) on the subject of conveying ideas: Hackers may have different mindsets, but unless your idea involves conveying something in code, you're not going to notice too many issues. My co-founder has come up with a lot of ideas and not once did I not understand him... unless he started talking about differences between LLCs and C corps and crazy talk like that.

So, in summary, if you are "just a business guy," don't give up. Sooner or later most of those one-man-band hacker founders are going to realize turning you down wasn't such a great idea; they needed you after all and now _they_ have to search for a CEO.

EDIT: And I'd like to point out that we got into YC this summer, too. I'll leave you to guess who wrote most of the application, did 99% of the talking in the interview and who had the market knowledge to pitch the idea in the first place. (hint: it wasn't this guy!)

<comment><USER5> Tom, thanks for the kind words. Our team has been fortunate in the fact that after Tom moved away in high school, he decided to become a programming genius. To add a little bit to what Tom said...

Because of the nature of our project, numerous parties and moving parts are involved. For better or for worse, there's lot of "business stuff" to do on a daily basis. Looking at some of the other YC projects, I could definitely understand the advantages of having two hackers or one hacker and one designer. However, for our project, our skills are extremely complimentary of each other and well aligned with the work that needs to be done.

One caveat, I have built a few simple websites from scratch before and taken a couple programming classes so it's not like I know nothing about programming although Tom would probably argue otherwise :).

<comment><USER6> _I have built a few simple websites from scratch before and taken a couple programming classes_

imo that's the perfect level of tech knowledge for a non-technical founder

</comment></comment></comment></comment><comment><USER7> For the last ten months, I have been working on my most recent startup, <http://www.LoveMyTool.com>, which in time will become an online marketplace- of-choice for network monitoring tools (sniffers, IDS, etc.). The business model is old fashioned (no Google ad here). My vision is that we will become a virtual tradeshow (a zero carbon footprint version of Interop or NXTcom, which are million dollar physical events).

In the future, our revenues will come strictly from participating vendors (same as if they were buying a booth, but now they rent the front page for an hour). We are a long way from that. For now, I am concentrating on building a community.

To guide me towards success, I am following the advises given at the Startup School by Paul Graham, Paul Buchheit and David Heinemeier Hansson, which can be summarized as follows …

"Make something people want … don't ignore [people's] advice … listen [mainly] to yourself … don't worry too much about money … the secret to making money … is to ask for it."

Notice that there is nothing here that says that you have to be a hacker. It just says that you have to find a problem that is worth solving, keep solving it while listening to your instinct and when you are ready, just ask the customers to pay.

In fact, I believe there are two worst things that you can do to ensure failure of a startup which are heavy reliance on VC money and heavy reliance on technology. The focus should be on customer needs. Hacking is just another means to the end.

In my case, I use no special software and therefore have no need for a "hacker" as a co-Founder. Every piece of software that I am using are off-the- shelf (Typepad, iLife suite, Slideshare, Youtube, Blip.tv, Omnisio, etc.) and I have managed to build a site with 350 visitors a day and rising (who are interested in buying products that I am showcasing and have spending authority from tens of thousands to millions). And I did the whole thing for $180 ($150 for TypePad and $30 for URL's).

Anything is possible here. So if you have a killer idea on how to make money on the web, then go for it. Hackers will follow; they always do.

<comment><USER8> Denny, I'm a bit confused. What you've built for $180 is a group blog, with a somewhat heavy emphasis on talking to vendors. I'm in your space --- quite directly --- and with an order of magnitude more visitors, I have _no idea_ how I'd go about monetizing my site.

I guess it's true that a smart businessperson can create value out of content --- look at John Batelle, Federated Media, and bOING bOING. But:

* They actually did have to build stuff

* It took them years and years and years to get there

* The content they've created is probably harder and riskier to build than software.

I'm not disputing the validity of your idea, just the assertion that you're likely to make money with a business plan and $180.

<comment><USER7> tptacek - thank you for the comments.

One other lesson that we learned from Startup School is that "advice=limited experience+generalization" so clearly I am not trying to give advice here. But I am trying to answer the original premise of the post which is that "can anyone start a startup without having a hacker as a co-founder?" And my answer is yes and what I tried to do is equate over-reliance on technology with over- reliance on money. In other words, if the original question were "can anyone start a startup without having $500K from a VC as seed money?", the answer would have been yes as well.

Keep in mind that I am talking about the initial stage of a startup. In other words, I am talking about going from nothing to something. Once you are done with the initial concept stage and you have a working model of your product and services and you have a workable business model, then everything changes and you are going from something to something more, which is very different again (in other words, I will need a lot more than $180).

What I have learned is that success of a startup requires both vision and peripheral vision. Having lots of money and lots of technical talents in the beginning help a great deal in terms of executing your vision, but unfortunately they tend to cloud your peripheral vision. In other words, if you have too much money in the beginning, you are going to spend it pushing the market as opposed to finding an opportunity to get the market to pull you. And by the same token, having a strong "hacker" as a co-Founder also can have the same unintended consequence which is that you are going to hit every nail with the same hammer (in the first year of my previous startup, I had to change out the technical team when it was clear that our initial business idea was incorrect).

Again, I am not trying to offer advice here (by generalizing my own limited experience). I am merely trying to answer the original question and my answer is a resounding yes. Anything is possible ... entrepreneurship is the great equalizer.

Thanks again.

</comment></comment></comment><comment><USER9> I majored in Business (with marketing) in 1994. The one thing I learned from business school was problem solving. When I accidentally became involved in software, and more later web apps, it was obvious to me that I needed to learn to code at least to the point where I could converse about it. This ended up being one of the best things I've done and I garnered more respect from the team by doing so. My not being able to code was an obstacle - a problem - <USER2> was overcome by rolling my sleeves up. And guess what, I enjoyed it and still do to this day.

</comment><comment><USER10> If you're no hacker, be good with photoshop so you can mockup what you have in mind. Then outsource the hell out of your product, and micromanage it to death. I've done this, and I have a nicely working website, and absolutely no idea how the code that runs it looks like.

<comment><USER11> This all sounds fabulous until you start putting out fires and possibly start to have troubles with scaling.

Not to downplay your development choice, but it's always nice to be intimate with what you rely on.

<comment><USER10> Depends on your market. If you ever get to the point where you need to scale your software significantly, you will have people throwing money at you, and you can hire good people. Till then, russian hackers do an excellent job at SQL optimisation.

</comment></comment></comment><comment><USER12> My perspective is that of a person that focuses on the business side and no longer programs but has in the past:

The thing you do in entrepreneurship is essentially 'solve problems' day in and day out. You are constantly resource constrained so you must figure out how to maximize efficiency , whatever that may be in each respective case.

You have an idea (let's assume it is a good one for simplicities sake) but lack the ability to implement. This naturally brings up the question of how to implement - you can learn to do it yourself or hire someone to do it for you. Hire may mean trading equity for the "co-founder's" time or compensating them monetarily. If you cannot afford to hire (try elance, guru, etc) you are left with trading equity. This means that you must now convince someone that you are competent to direct the implementation process ("you bring something to the table").

This is meant to be a pretty straightforward explanation because your question is vague in the sense that the situation you allude to has multitudes of variables.

</comment><comment><USER13> "Does a start up founder have to be a hacker"- the answer is, NO. The purpose of the founder is to execute. The secret to a start up isn't the "original idea"…it's whether or not your founder can execute - never mind the idea. If the founder can't code a page is he resourceful enough to "execute" and find someone who can…etc.

</comment><comment><USER14> It depends on what else you bring to the table

If you have biz dev connections that will get deals made, successful experience marketing or fundraising, a design or creative background, experience in the vertical your product serves, etc, these all can add, um, invaluable value to a company

<comment><USER15> Exactly. PayPal would have never succeeded without Peter Thiels' ability to close fundings left and right.

However, I do think one of the founders should be technically savvy, and it doesn't hurt to have the business guy to know some hacking either

<comment><USER16> yep but it would be bleeding without the security algorithm

</comment></comment></comment><comment><USER17> This probably sounds fatuous, but hacking experience will make you a better business person in the same way that a daily column will make you a better writer. The reason is that while we are farting about with bits & bytes and star trek jokes, what we're really doing is translating human imagination into a system that is not capable of self-delusion. It does not believe, it does not miss details, it blows up at the smallest inconsistency. Dealing with that is unspeakably frustrating, but it trains you to think more clearly about how systems, any system, actually function. If you are really paying attention you can start using that capacity in other parts of life. The closest business- school type classes to this training would be probably logistics and quantitative analysis

<comment><USER18> So then I would assume you would also argue that hackers need to know the business side of things for the same reason - yes? Either way, you're choosing a strategy of "Strengthen your weaknesses." There are other strategies like "Play to your strengths" that a lot of people will advocate very strongly. Personally I cannot think to advocate one and only one strategy; I think you have to fit with the dynamics at hand and go with the optimal strategy at the moment.

<comment><USER17> I'm a generalist, so I suppose that's right. But I am saying something a little more than that.

Computer Science is the first serious attempt to study process as a concept in and of itself. It's the study of how to do things, and how to learn how to do things. A lot of things in life, from business planning to washing a sinkfull of dishes, can be done better if you apply a little process analysis.

</comment></comment></comment><comment><USER19> In all my years working for small to mid sized startups, I have never seen a situation where two people founded a company based on one being the "tech guy" and the other one being "the business guy".

Rvery startup I've worked for was founded by one or two technical people and one person who raised the money. Generally the situation was that someone who had been working for years decided to start a company with a friend and used the reputation and contacts he'd built up over the years to raise money to finance it.

I've never worked at a company with more than 10 employees where there was a non-technical founder who didn't provide access to capital.

With that being said, I think as the "business guy" there will be a lot of pressure on you to work extra hard and really produce (especially if you aren't providing the financing). It's usually not enough to have "good ideas" or "the idea"...you should be bringing something so valuable to the table that the other founder(s) says "Thank god this guy is here!"

It almost seems that a business guy will have to put in more effort than a hacker as a founder. The hacker doesn't have to be an exceptional hacker...he merely has to produce a working website. However since the business guy doesn't have a lot of measurable output, he will have to work extra hard to show that he's carrying his weight.

</comment><comment><USER20> I come from the realm of web dev.

In this realm, not knowing how to code will make sure somebody else usually has you by the balls. While an extreme micromanaging alpha type can probably get others to do the job and do it acceptably, the level of work and commitment from employee-developers is hard to maintain.

While I agree there is room for non-technical founders who bring a lot to the table (like Thiel) the benefits such a person brings (like fund-raising and market strategy) are often only realizable when the product already exists (i.e. created by the technical people). Therefore it is questionable whether it makes sense to bring biz-only people on board at an early stage unless fund raising and specific biz dev is an essential part of the biz strategy.

Finally, as technical and associated biz changes occur more rapidly, an inability to understand the core technologies will leave more and more biz- only people crippled. Consequently, unless one is close to technical people who share a common vision, my recommendation to anybody interested in the web space is to gain real experience with the relevant technical tools.

</comment><comment><USER21> Technical enough to learn to program.

The majority of what is considered a web startup these days, appearing on TechCrunch and other such blogs, do not require the complete skills a CS major brings to the table.

If you are going to give it a go, and still in school, consider taking a couple of c++ courses or python if offered. Of course if you are a self starter you can jump right into python - diveintopython.org.

I learned on my own after getting my econ degree at UCLA, and I found that programming for the web is trivial compared to the c++ coursework I took.

I spent many days and nights over a few years learning how to program, setup servers, model my web apps with postgres, manage postfix mail servers etc. But these days, a good framework will get you off the ground and solve most of your database modeling. And a good hosting company will take care of your sysadmin stuff.

So a good co-founder would be someone who compliments your newfound skills and who is the opposite of you - a risk taker or conservative. This should help you better evaluate the difficult decisions that come up.

</comment><comment><USER22> Of course it is possible for a business major to succeed in the web. There are real-world examples of business majors who won't get into the way of hackers (or techies in general) and give them room to think and play and listen to their feedback and suggestions.

There are also enough who just outsource all technical stuff and only care about their very own 'core competencies'.

But in "feelings" of probability:

Mindset, theoretical background knowledge, and experience are essential to understand what is (not only technically) possible and to see what parts need more effort than others and why. To know hacker culture one should live it, otherwise one won't feel the way hackers do. That doesn't mean that you need to code every day. Thinking about problems and trying your solutions is more important. Couple this with (formal) business knowledge and I am pretty sure an entirely new world unfolds with options unknown before that will outcompete the pure business major in most cases.

</comment><comment><USER23> What happens when Business Majors enter Web is, they end up reinventing wheel most of the times and most of them are not visionaries. They don't know what is possible and what is not. They come from a place where they think Web as place to make money. But what they don't understand is "no amount of money can buy you audience or position". Some start up from someone's bedroom will change the the whole dynamics of business, look what happened to Music Business. The clash between Business Majors and Hackers is like a Clash between Old Age Media and New Age Open Media. Hackers were pissed with the way Business Majors handled the business with their bureaucracy and high- handedness and hence they started a parallel industry by inventing Internet and a Industry which could thrive upon ideas and openness. This is a Hackers world.

</comment><comment><USER24> To state the obvious: Not every founder needs to be a "hacker", but every tech start-up needs one "hacker" co-founder.

In other words: yes, the business major who loves the web and has a good idea can succeed-- if he has a "hacker" as a co-founder.

<comment><USER18> I don't know why this is obvious. I certainly don't agree. History has seen way more successful startups started by "business people" than those founded by hackers. Don't get so myopic that you when you think "startup" you only think about cool things on the internet...

<comment><USER24> Take a look again-- I said "tech startup". And I maintain that any startup that is focused on "tech" (internet or otherwise) needs somebody who is a true "hacker" on the appropriate "tech".

</comment></comment></comment><comment> daniel-cussen If you're doing a web startup, it helps to know how to hack, in the same sense that if you're a football coach, it helps to know how to play football.

I realize it's a somewhat flawed analogy, but I like to think of startups that way.

</comment><comment><USER25> If you're talking about a one-person startup, you need to have some level of technical understanding. In order to turn your idea into a business, you need someone to implement the idea, and that's where the hacker(s) come in. A trusted technical person is your first choice. You can also try to hire contractors to implement for you, but without technical know-how, how will you be able to judge if they're any good?

</comment><comment><USER18> To OP: If you and I were talking, I would turn the question back on you and ask you: What do you think? If you are the business major in your post, do you think you can? What would it take to make it work? What would make it fail?

I firmly believe the adage that "What you think about, you bring about." Another that comes to mind is "Whatever you believe, you can achieve." I think it's all in the prepwork...

</comment><comment><USER26> Here's a great post from Joel about exactly that. It doesn't start off like it's answering the question, but it does:

<http://www.joelonsoftware.com/items/2006/06/16.html>

"Watching non-programmers trying to run software companies is like watching..." and you'll have to read the article to find out :)

<comment><USER8> He's talking about software companies, not businesses on the web in general. Moreover, he's demonstrably wrong: many successful software companies _are_ run by people without developer backgrounds.

</comment></comment><comment><USER27> For a tech startup, that is, a startup that wins by technology, and not, say, location, connections, or a powerful sales force, one should be at least technical enough to inspire and befriend a highly technical person. In other words, one should be 'hacker compatible'.

</comment><comment><USER28> It depends on the team, and how tight they are.

A business type alone is full of fail, but a business type with a strong technical partner (emphasis on partner, not employee) could work (if the communication is good enough).

</comment><comment><USER29> At least one of the co-founders should be in a "computer wizard" level. But almost every startup also needs a business guy.

</comment><comment><USER30> Programming is one of the easier aspects of founding a successful web startup. Perhaps there is greener grass elsewhere?

</comment><comment><USER31> 1\. "loves the web"

2\. "has a good idea"

3\. "cut throat, competition heavy web space"

4\. "spend day in and day out coding"

5\. "how to survive in the web start-up space"

Nowhere do you mention "building something people want".

Nowhere do you mention the "utter joy of manifesting something out of nothing".

These 2 things are so overwhelmingly important that they really do overshadow everything else, like the 5 details you do mention.

If I wasn't nice, I'd say, "You just don't get it."

But since I am nice, I'll simply say, "You just answered your own question."

</comment><comment><USER32> as technical as possible. i think a business major has little chance.

</comment><comment><USER33> _Can the business major who loves the web and has a good idea about a web based business succeed_

Yes. Kevin Rose.

</comment><comment><USER34> It s very funny to see your reactions. "do we really need a business guy?"

Do you know what business guys say about techno/hacker/super ego hacker guys? They ll always find a dumb one that will do the job for them for few dollars.

It s interesting how you return the situation with so much pretention in a tentative to build yourself a legitimity.

You re just a tool.You re just missing the context. keep dreaming about the 20 successful heros of your tribe that could make it by themselves. Tell me about ego fishes that discuss about freedom inside their glass..

Good luck anyway .

<comment><USER35> When we talk about startups on this forum, we are only referring to the kind of startups done by hackers, it is fundamentally different from the arrogant MBA school.

Basically, hackers can learn business pretty easily. I'd like to see you hack.

Try <http://hacketyhack.net></comment></comment>


Gatsby and Headless CMS, Including Strapi, Drupal, and Oracle Content and Exp - <AUTHOR> <comment><AUTHOR> Live in 40 minutes: [https://youtu.be/H1WNHVXJiUg](https://youtu.be/H1WNHVXJiUg)</comment>


The useful character that is none - <AUTHOR> https://twivorite.com/ <comment><USER2> It worked in Firefox Developer Edition.

Then I was able to paste it into SublimeText. I pasted it several times. SublimeText says the line is 6 characters long, but the cursor is still at the left edge! Then I copied that line, and my clipboard viewer shows 14 bytes for the Unicode entry, 12 bytes for the 6 characters and a two null bytes. As expected, the characters survive being saved with Trim Trailing Whitespace enabled. Reopening the file with a single-byte encoding (I tried Windows 1252) showed the characters. My hex viewer shows 6 occurrences of E2 80 8B.

</comment><comment><USER3> Tiny nitpick: U+200B is a _Unicode_ character, not necessarily UTF-8.

<comment><USER4> \u{200B} also has nothing to do with UTF-8. But I guess the inherent complexity with Unicode and its encodings means that most people will not care to understand how everything relates to each other.

<comment><USER5> My understanding: Unicode is the dictionary maps codepoints (e.g. `0x200B`) with characters (e.g. ` `) and UTF-8 is a way to encode those codepoints with 1-4 bytes per character. Is that right?

<comment><USER3> Pretty much. The charset (e.g. Unicode) just maps numbers to characters, and the encoding (e.g. UTF-8) translates sequences of numbers to bytes (and vice versa).

Unfortunately, there's a lot of blurred lines and loose usage of terminology due to misunderstandings and historical baggage (e.g. ambiguous usage of "charset", Microsoft's usage of "Unicode", "ASCII" used to refer to both charset and encoding, etc.) which contributes to the confusion.

</comment></comment></comment></comment><comment><USER6> I would suggest using the word joiner character (U+2060) for this purpose. If you use a zero-width space in a hashtag and it ends up at the end of the line, the characters after the ZWS will get broken to the next line. When you use word joiner, this will not happen and the whole word will stay connected. Example: [https://imgur.com/0DposDa](https://imgur.com/0DposDa)

</comment><comment><USER7> I'm not sure why, but doing a Google search for that character gives interesting results

<comment><USER8> DDG gave me nothing but the Wikipedia snippet for "Zero-width space"

</comment></comment><comment><USER9> It's worth noting that last time I tried, you can't use this character to tweet a seemingly blank tweet. Twitter correctly disallows this as it would if you tried to tweet a normal space character and nothing else. However, there are plenty of other non-printing unicode characters that you can still use to tweet a seemingly empty tweet.

Hacker News also disallows this in its comments. YMMV with other non-printing characters.

<comment><USER10> I wonder what the underlying reasons for the differences is from text field to text field.

<comment><USER2> You can actually enter the character in this textbox, but they probably strip it out when posting.

<comment><USER9> It's definitely done on the backend with Twitter. Probably HN, too.

</comment></comment></comment></comment><comment><USER11> > The button is tested in chrome browsers, if you use another browser it may > not work for you.

It doesn't work in Safari on iOS, FWIW.

<comment><AUTHOR> thanks, I try to fix that soon

<comment><USER11> Thanks for looking into this!

</comment></comment></comment><comment><USER10> If only Rudy Giuliani had known about this he might not have had someone "invade" his text on Twitter.</comment>


Radar data suggests missing Malaysia plane flown deliberately toward Andamans - <AUTHOR> http://www.reuters.com/article/2014/03/14/us-malaysia-airlines-radar-exclusive-idUSBREA2D0DG20140314

<comment><USER2> "The only airport in the islands is Vir Savarkar Airport in Port Blair, which has scheduled services to Kolkata and Chennai and Delhi, Banglore and Bhubaneswar. The airport is under control of the Indian Navy. Only Daytime flying is allowed."

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

<comment><USER3> There's also places like Great Coco Island ([https://email@example.com...](https://email@example.com,93.3710885,3762m/data=!3m1!1e3!4m2!3m1!1s0x3091a304ab96e3d5:0xea3c550e992d3a6f)) which is within range but the runway is a bit short for a 777</comment></comment>


Ananas, a hackable data tool for beginners - <AUTHOR> https://github.com/ananas-analytics/ananas-desktop <comment><AUTHOR> Hi, Developer of Ananas here. I built Ananas to help the non-tech user build analytics from the raw data sources. It has been used in production to process and analyze terabytes of data on a daily basis. Let me know if I can answer any questions.</comment>


Perl secret operators and constants - <AUTHOR> http://search.cpan.org/dist/perlsecret/lib/perlsecret.pod <comment><USER2> Perl is actually relatively easy to learn and get productive with. You can write it in several transitional styles depending on where you are coming from, and the community doesn't care all that much. It's a little bit like using "Basic English" [1] to program with.

But it's a really deep language, and not necessarily in ways that academic language designers want it to be. Perl always feels more like having a conversation with your computer than programming it. These kinds of operators are like having a whole host of additional highbrow verbs you can use in conversation if you want.

1 - [https://simple.wikipedia.org/wiki/Main_Page](https://simple.wikipedia.org/wiki/Main_Page)

</comment><comment><USER3> if nothing else, most of these operators have immense nicknames. Now I just need an excuse to involve a flaming x-wing in my code...

        Operator     Nickname                     Function
        </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
        0+           Venus                        numification
        @{[ ]}       Babycart                     list interpolation
        !!           Bang bang                    boolean conversion
        }{           Eskimo greeting              END block for one-liners
        ~~           Inchworm                     scalar
        ~-           Inchworm on a stick          high-precedence decrement
        -~           Inchworm on a stick          high-precedence increment
        -+-          Space station                high-precedence numification
        =( )=        Goatse                       scalar / list context
        =< >=~       Flaming X-Wing               match input, assign captures
        ~~<>         Kite                         a single line of input
        <<m=~m>> m ; Ornate double-bladed sword   multiline comment
        -=!   -=!!   Flathead                     conditional decrement
        +=!   +=!!   Phillips                     conditional increment
        x=!   x=!!   Pozidriv                     conditional reset to ''
        *=!   *=!!   Torx                         conditional reset to 0
        ,=>          Winking fat comma            non-stringifying fat comma
        ()x!!        Enterprise                   boolean list squash
        0+!!         Key to the truth             numeric boolean conversion
        ~~!!         Serpent of truth             numeric boolean conversion
        ||()         Abbott and Costello          remove false scalar from list
        //()         Leaning Abbott and Costello  remove undef from list

<comment><USER4> When I first learnt perl, twenty years ago, I loved it because it was full of clever devices and syntactic virtuosism. Now, I don't like it anymore exactly for the same reason. It's cool, but the wrong kind of cool.

<comment><USER5> That's exactly the problem with Perl: cleverness -- especially _other people 's_ "cleverness" \-- gets to be tedious, if not an outright pain to put up with and maintain, after a while.

<comment><USER3> It's my own "cleverness" that winds me up the most. I've written a few bits of 5am code that amazingly and finally work though I no longer have any clue how or why o_0

</comment></comment></comment></comment><comment><USER6> I once managed to get some obfuscated Perl into an official Red Hat document (as a subtle joke): [https://access.redhat.com/documentation/en- US/Red_Hat_Enterp...](https://access.redhat.com/documentation/en- US/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect- virt-win-reg-use.html) (search for "simple perl").

<comment><USER7> I am not sure I would call this obfuscated. The only real confusing piece of that code is if the reader doesn't know that you can use most punctuation characters with s///g

</comment></comment><comment><USER8> I write perl everyday, I never use this stuff.

<comment><USER9> I use a few of them in javascript. In fact, Venus can be shortened to just "+", ie.

+"123234" +"1e29" +"abc" // -> NaN

<comment><USER10> In Perl, no, because + is an unary identity operator, used e.g. to properly leave function call parentheses:

      print +(1 + 2) * 3;
      print ((1 + 2) * 3);
      print (1 + 2) * 3;

</comment></comment></comment><comment><USER11> Reading this actually makes me feel like my company has done a good job of outlawing the "write-only" type of perl.

Would this be valid?

$x +=!! =<>=~ s/readable-code//g;

<comment><USER12> No, for the same reason that $x += = 3 is invalid.

</comment></comment><comment><USER13> Perl seems like a great language for a lot of text processing jobs, but while its learning curve isn't too steep, it goes on forever. I will continue to use it for quick little projects like cleaning up excel files, but I don't think I could ever get into things like Perl golf.

<comment><USER14> Perl golf is meant as a thought exercise. Code should be human readable. The compiler will cope with verbose code just as easily as terse code.

</comment></comment><comment><USER15> It's articles like this that give Perl a bad reputation.

<comment><USER14> Mostly it was all the terrible code that got written in Perl by the first wave of non-programmers to start building web apps.

<comment><USER16> So, same fate as PHP?

<comment><USER17> Well, that's half PHP's problem. The other half is that it had very little coherent design in the beginning, which resulted in idiosyncratic an confusing syntax. It focused on a few things Perl did, while ignoring the important context they were housed within (for one, the whole idea of _context_ as Perl implements it, for another being consistent within your own rules).

Perl, as confusing as it can seem, has fairly consistent rules that it follows. Learning those and keeping them in mind will generally let you intuit how something is expected to work.

</comment></comment></comment></comment><comment><USER18> The ones that I occasionally use:

 _0+ - venus - numification_ : When you really need a scalar value to be represented as a number and not as a string. Useful when you're generating JSON and you need the types to be correct.

 _@{[ ]} - baby cart - list string interpolation_ : This is very useful when you need to interpolate arbitrary expressions inside a list. Useful when you're generating an SQL query, for example:

      SELECT * FROM Office WHERE id IN (@{[ join(',', ('?') x @ids) ]})

_!! - bang bang - boolean conversion_ : When you want to return a boolean value from a function, but you don't want to leak implementation details.

 _,= > \- winking fat comma - non-stringifying fat comma_ When you want to create a hash whose keys are constants.

</comment><comment><USER19> I wonder how many other languages have well-known secret operators?

I know of C's secret "limit" operator:

int x = 10; while (x --> 0) { printf("%i", x); }

prints 9876543210

Of course, in some ML dialects you can define your own opreators - such as (f |> g) to mean (g o f) which is actually very useful.

<comment><USER20> That's not an operator, it's just precedence rules.

        while ((x--) > 0)

<comment><USER12> None of these secret operators are actual operators.

(Some of them aren't even collections of operators - }{ is a form of code injection, and the <<m=~m>> thing has only one operator, applied to a string and a regex.)

</comment></comment></comment><comment><USER21> Obviously you should never use any of these in a production code base. Perl lets you write very bad, anti-team unreadable code in countless ways. You have to actively avoid these traps designed as neat toys.

<comment><USER22> The second worst code I have had to fix was in Python (sadly the worst was in Perl). Both bioinformaticians.

</comment></comment><comment><USER23> These do not look like "operators". They look like combinations of Perl operators that produce a "useful" result. I mean they are built from the basic operators.

</comment><comment><USER24> Interesting, but the title is misleading. They aren't operators, but rather mostly combinations of operators with potentially useful side effects.

<comment><USER7> Clearly you didn't read the DESCRIPTION section.

<comment><USER24> A description section doesn't change the fact that the title is misleading. Clickbait is clickbait.

</comment></comment></comment><comment><USER25> I have been using Perl since 1996, but I only use a handful of the secret operators. For me, the power with Perl is CPAN and the stability of Perl 5.

<comment><USER26> If you are working on a code base with others, it would be cruel to use some of these. However there are operators that could be beneficial to the advanced Perl users.

<comment><USER22> When I use unusual or difficult language features, or basically anything I expect someone else reading the code won't understand, I leave a comment.

</comment></comment></comment><comment><USER27> Ah, yes - Perl, the language I have learned many times.

</comment><comment><USER28> My vote for most over-the-top: The Goatse.

</comment><comment><USER29> I used !! in many languages including Perl. Not exactly secret and very useful</comment>


Ask HN: Best foreign language to learn for going into technology? - <AUTHOR>

I'm a student who's eager to learn a new language, and I was thinking it would be awesome if I was fluent in a (real-world) language that gave me an advantage in web development, computer science, the field of technology, etc.<p>For example, what cool developer communities or forums am I missing out on with my sole primary language of English? <comment><USER2> Chinese has the most speakers period, and is becoming an important country in Technology.

German and Russian are other big ones.</comment>


Learning to App: My First App - <AUTHOR> http://learningtoapp.wordpress.com/2012/05/05/28/

<comment><USER2> It's a nice start, but it's nothing to call a complete app. Try and think of what you can do with the basic feature you have there. Maybe you could make a diary type app?</comment>


Android container in Chrome OS - <AUTHOR> https://chromium.googlesource.com/chromiumos/platform2/+/master/arc/container-bundle/ <comment><USER2> I can't wait for the day that phone operating systems development environments are a docker pull away. It's encouraging to see Google approaching my ideal workflow using containerisation. Apple systems are great until you run into the garden walls and are forced to use closed-source single platform software like Xcode. Chrome OS and Android are a lot more open in many respects.

Hopefully efforts like this continue with Fuchsia and other Google products.

<comment><USER3> To be fair you can't go very far without running into garden walls in Apple land. It doesn't just apply to development.

Want to change your launcher / dialer / etc? WALL!

Want to run a different web browser (an ACTUAL web browser complete with JS / CSS engine). WALL!

Want emulators or adult-themed apps? WALL!

Want to develop for iOS or macOS on Windows or Linux? WALL!

The list goes on and on...

<comment><USER4> ChromeOS is significantly more locked down than macOS, developer mode notwithstanding. Firefox for iOS may use WebKit, but Firefox for ChromeOS isn't even a thing.

<comment><USER5> Conversely, a ChromeOS _device_ is much less locked down than an iOS device, since you can run full Linux (with root) in a chroot on a ChromeOS device.

<comment><USER4> We may be doomed to an infinite regress here. After all, a Chromecast is more locked down than an iPad...

Someone considering running chrooted Linux on a Chromebook is going to be more interested in a Mac than an iPad, so IMO that's the more useful comparison.

I did run Crouton on a ChromeOS device and came to regret it. ChromeOS devices don't run a mainline kernel, they run something that Google provides which eventually stops receiving updates.

The audio app I wanted to run required a newer kernel, and there was no way to get it short of forward-porting a bunch of device support and building it myself.

IMO for Linux development, users are better served by a real Linux laptop than by a ChromeOS chimera.

<comment><USER6> I would prefer a powerful ChromeOS device with the ability to run Linux containers over an iPad or a Mac. I suspect that I'm not the only developer who thinks that way.

But I sort of agree with you too. I'm running Linux desktops rather than Chrome machines for that reason.

</comment></comment></comment></comment></comment></comment><comment><USER7> Better is ChromeOS 67 enables running your own containers without having to put CB in developer.

It uses the KVM to run a second Linux kernel. So you will be able to use GNU/Linux applications including Steam. More to be shared at Google IO this year.

<comment><USER8> Are you sharing a rumor/insider knowledge? Can I do this right now?

<comment><USER9> The current dev branch (67) supports this.

From crosh:

vmc start dev start_container.sh --container_name stretch --user <yourusername> \--shell

That should drop you into a shell in a debian stretch distro. You can install packages and launch them. I haven't figured out if there's a way to pin them to the shelf yet and launch that way.

</comment></comment></comment><comment><USER10> I just had a vision of all major OS projects providing developer containers for their projects. Like, you could just pull the latest Firefox dev container and run a single command to have a running debuggable app.

I know one of the major pains we have when on-boarding new people is the whole dance to get to that first working build / first meaningful change. I can imagine this being significantly more simple if a working dev environment was shipped as a container.

<comment><USER11> You know, there once was a time when we did everything in folders and didn't need the overhead of containerization just to keep well behaved things from stepping all over each other and breaking everything.

Like all progress in computing we've reinvented the wheel, but now with a few additional layers of abstraction and the consequential performance degradation.

<comment><USER12> > keep well behaved things from stepping all over each other and breaking > everything

Containers help with keeping bad behaviors from stepping all over each other.

<comment><USER11> Yes, that's their value. You shouldn't need to use them for your development environment or normal every day software.

Unless of course you're saying that most software in the GNU/Linux world is badly behaved, which I'd kind of agree with.

</comment></comment></comment></comment><comment><USER7> By looking at the comments this article is creating confusion. So I thought I might provide an overview of the two things happening with ChromeOS.

1) Android apps have been enabled on many Chromebooks using a locked container that shares a Linux kernel with ChromeOS. You do NOT have access to the container mechanism that is being used. It ONLY supports a container locked by Google. It is NOT using Docker also.

This is available on both ARM and X86 Chromebooks and most recent models are now supported. It took a while.

All Android apps run in a single container.

2) Starting with ChromeOS 67 and only on Pixel books so far there is full GNU/Linux capabilities on a Chromebook without having to put the Chromebook in developer mode.

Developer mode is how you turn off much of the security of a Chromebook and keeping in this state is a bit of a hassle as when you boot you MUST remember not to hit the wrong keys and wipe your CB.

What Google has done is enable the KVM on the Chromebook ChromeOS Linux kernel. So you can run a second Linux kernel where you have full control of the second Linux kernel.

Then on top of this VM Google is pushing the use of containers. So these containers are completely separate from the Android containers.

Then all the containers on the VM share a common Linux kernel that is separate from the Android and ChromeOS kernel.

What this does is keeps the highly secure aspect of ChromeOS while giving you full GNU/Linux on the machine.

Google has also enabled forward GUI of the GNU/Linux VM to the ChromeOS desktop.

So say you start XClock on the VM the window will open up on the ChromeOS desktop.

What is also confusing to people is GNU/Linux has been available on Chromebooks for a long time. There has been a number of ways to use.

1) Put CB into developer, install Crouton and you have GNU/Linux. But to use Docker you MUST use rkt to start the containers.

2) Install the Android GNURoot app. This gives you GNU/Linux but in a fake chroot that breaks many things. You can also use the Android XSDL app for the GUI. Since Google implemented ALL Android apps in a common container the IP is the same for both GNURoot and the XSDL app.

In ChromeOS 67 Google has fixed the IPs used by the Android container and now using the NAT reserved IPs instead of private IPs. This solves a weird bug you would run into where you had a IP conflict if you used the same private IPs elsewhere.

Google is also using the NAT reserved IPs with the new GNU/Linux support through a VM.

It looks like Google will be packaging GNU/Linux applications like Android Studio in containers that you can then run on a Chromebook with just a click. But will they be in the play store is unclear. But these containers will run on the VM.

Google will have ChromeOS 67 hitting stable at the same time as Google IO where they are rumored to explain things better. All of this new GNU/Linux support with a VM is in beta.

<comment><USER13> Hey! Thanks for the detailed reply. What I don't get is: ChromeOS is open source, so why do all these things only work on certain hardware? Isn't there a way to install ChromeOS on any laptop today and already use Anroid apps et al, without said machine being a Pixelbook?

I have a machine that is not an official ChromeBook and I'd love to install ChromeOS with Android support to try it out. But I've done quite some google- fu and could not figure out whether this is possible (and how I'd set that up).

<comment><USER14> To expand on andrewaylett's comment, that it is open source doesn't automatically mean "100% hardware compatibility."

Even for the linux kernel, someone somewhere has to figure out how to get it to boot on every piece of hardware.

It's not magic. The nice thing is that if the first person who gets it working can just 'git push' their code to kernel.org, then the next person doesn't have to redo all that work.

<comment><USER15> You're correct in sentiment. But one can't git push to Linux master without having the patch reviewed and merged by a maintainer.

</comment></comment></comment></comment><comment><USER16> I'd really like this to evolve into a standard thing in our linux distros. By which I mean apt-get'able, which it looks very close to.

I have no interest in the play store but I would like my lineageos/fdroid userspace available directly to my desktop.

</comment><comment><USER17> I wonder how hard it would be to get this working on, say, Fedora...

At the very least, one would need to replace what sounds like a surfaceflinger <-> wayland proxy.

<comment><USER7> Very easy with ChromeOS 67.

Just boot, launch a chrome window and type Ctrl alt t.

Then type vmc start dev.

Then you can use whatever distribution you want as you have full GNU/Linux.

Only works on Pixelbooks but Google will extend and will share more at Google IO.

You can even package up gnu/Linux applications. One click and they run in a container but on a second Linux kernel.

So Android shares the ChromeOS kernel where gnu/Linux will run in a container on top of a VM using the KVM.

It is interesting that Google did not feel just using containers for GNU/Linux was secure enough.

<comment><USER18> And that helps me get an Android container running on an actual desktop OS how? That was the question, after all.

</comment></comment></comment><comment><USER19> What about Binder? Do Chrome OS kernels come with Binder built in, or are they emulating it on top of another IPC mechanism?

Edit: yes, Chrome OS kernels come with the binder driver enabled.

</comment><comment><USER20> Does anyone have a link to what Chromebooks will support ChromeOS 67? Is there a matrix somewhere?

<comment><USER7> Just about all will support ChromeOS 67 including ARM. But that does not mean they all will get the new gnu/Linux without developer support.

Right now only the pixel book supports in ChromeOS 67.

Google will share more at Google IO as this is still beta stuff. The hope is it will be more than just the PB.

</comment></comment><comment><USER21> This is incredible. Using this, going from Linux to Zirkon is just a Kernel- switch away. Potentially they could replace small parts of the Linux-parts of Chrome OS slowly and iteratively with Fuchsia.

</comment><comment><USER22> I have an ARM64 React Native toolchain sitting on blocks for ChromeOS. Caret is the IDE for this but Android SDK is truly lacking for ARM the build tools are base level. There is a guide floating around out there to make your own too. Looking forward to more stuff like this because essentially you get realtime Native app development with this but hooking into the debugger via crosh terminal is hard. Smoothing out the rough edges on this and then wow! You will have a powerhouse. NativeScript? Even better in theory.

</comment><comment><USER23> Interesting to see Chrome OS adopt process compartmentalization techniques such as this, specifically adopting `cgroups'. Afaik, cgroups isn't enabled by default and requires customizing the kernel before you can enable it. At the very least, container tools such as Docker require symlinks too to invoke chroot-like filesystem isolation and this is also not available.

It'll interesting to see where they'll go with this, specifically since Google also work on Kubernetes and that new OS, Fuchsia.

<comment><USER24> Speaking of which, it is now possible to run full linux and android apps on chromebooks which support containers (and vms?) in a tab with the new official Google Crostini project. Makes the Pixelbook more attractive.

[https://twitter.com/rothgar/status/981579699833880576](https://twitter.com/rothgar/status/981579699833880576)

More info on Crostini [https://www.reddit.com/r/chromeos/comments/7ytpb1/project_cr...](https://www.reddit.com/r/chromeos/comments/7ytpb1/project_crostini_linux_vms_on_chrome_os/) …

<comment><USER13> Would this work on a ChromeOS that I install on, say, an aging PC Laptop?

<comment><USER7> Yes. The code is also being done in chromium OS.

</comment></comment></comment></comment><comment><USER25> Thanks for publishing. Very informative. Am just setting up NeverWare as a devenv for Android. With localhost ADB connections. Could prove a powerful platform for Android automation.

Also noticed there is a web "demo" of Fuschia experimental OS. That can be run in a single Chrome tab (click "guest"):

[https://mgoulao.github.io/fuchsia-web- demo/](https://mgoulao.github.io/fuchsia-web-demo/)

</comment><comment><USER26> The recently announced Droplet containers extend on this idea with a supposedly commercial-ready multiplatform solution

[https://dropletcomputing.com/](https://dropletcomputing.com/)

</comment><comment><USER7> You can use gnu/Linux on Android with a CB. But you have to use a fake Chroot. Just go to play store and install GNUroot.

Then install the Android XSDL app for the GUI.

<comment><USER27> can you use this to properly replicate the functionality of dropbox, though?[1]

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

<comment><USER7> Should not be a problem unless I am missing something? Can what you are talking about run on GNU/Linux?

</comment></comment></comment><comment><USER28> Theoretically, this container should be able to run in any host os supporting containers.

I'd like to be able to run native (via container) android apps on my desktop OS

</comment><comment><USER29> When the hell are we going to get electron and node.js apps on chromeos. Those are far more important than these crappy blown up phone apps

<comment><USER30> I disagree on the "more electron" front. Running old Chrome with known vulns packaged up into an app is not the direction I'm looking for ChromeOS to go. I'll take an app in a tab, please.

</comment></comment><comment><USER31> Android need a kernel feature called binder which afaik is not part of vanilla kernels / distro kernels.

</comment><comment><USER32> Does this open the path to running android apps on gnu/linux desktop?</comment>


The Startup Diet: How I Lost 35 Pounds While Working Overtime - <AUTHOR> http://paulstamatiou.com/programmers-startup-diet-how-i-lost-35-pounds

<comment><USER2> I'm not sure why people feel any type of carb is bad for regular weight loss. There is no significant evidence that refined or unrefined carbs are bad for your weight loss (assuming you are not diabetic). Carbs can be bad because carb-rich foods tend to be surprisingly high in calories, but that's about it from a weight loss perspective.

Also, 1,200kcal/day diets are brutal. Caloric restriction diets have overwhelming scientific evidence of being an ineffective strategy in the long term. Even if you have some elaborate food system with rest days, it doesn't matter. They fail for the overwhelming majority of people. They lose weight, fail to maintain the difficult diet, then pop back up.

Your body doesn't defy thermodynamics, but your metabolism is a clever thing. The best way to achieve permanent, long term body-fat loss is to reduce your diet to something reasonable and exercise (both aerobic and weight) regularly. I know hackers desperately want the clever solution, but as it stands there is no evidence-based way to get results that is as reliable as the "eat-less- workout-more" approach.

<comment><USER3> I don't believe the evidence is on your side. The reason carbs damage us more than merely their caloric content is, to quote Dr. William Davis of The Heart Scan Blog:

 _"Carbohydrates increase small LDL particles. Or, in the cholesterol-speak most people understand, "carbohydrates increase cholesterol." It's counterintuitive, but carbohydrates increase LDL substantially, far more than any fat.

Carbohydrates increase blood sugar. Eggs don't increase blood sugar, nor do chicken, raw almonds, onions or green peppers. But a bowl of oatmeal will send your blood sugar skywards.

Carbohydrates make you fat. Carbohydrates, whether in the form of wheat flour in your whole wheat bread, sucrose in your ice cream, fructose in your "organic Agave nectar," or high-fructose corn syrup in your dill pickles. They all provoke de novo lipogenesis, or fat formation. They also stimulate insulin, the hormone of fat storage.

Carbohydrates cause glycation. High blood sugar, like the kind that develops after a bowl of oatmeal, triggers glycation, or modification of proteins by glucose (blood sugar). This is how cataracts, kidney disease, and atherosclerotic plaque develop. Small LDL is 8-fold more glycation prone than large LDL, providing a carbohydrate double-whammy."_

I also recommend Good Calories, Bad Calories, by Gary Taubes, which is a well documented indictment of our common wisdom regarding nutrition (ie, things like the preposterous food pyramid). The general point is that not all calories are alike.

My own merely personal anecdote: after eliminating all wheat and almost all other carbs from my diet, I lost ~35 points effortlessly. All this while not doing much exercise at all (recent evidence suggests that your body simply adapts to exercise by getting hungrier). I was much hungrier and unhappier on a low fat diet.

<comment><USER2> > I don't believe the evidence is on your side.

Interesting. I can find a lot of studies on pubmed with dietary restriction comparisons. While I am not a doctor, I'm familiar enough with scientific and academic literature to read papers and work through them. I think you probably can to, so here are a lot of links:

1\. <http://www.ncbi.nlm.nih.gov/pubmed/20679559> (No difference with carb restrictions vs. fat restrictions)

2\. <http://www.ncbi.nlm.nih.gov/pubmed/20663066> (Inconsistent results on carb restriction.)

3\. <http://www.ncbi.nlm.nih.gov/pubmed/20670466> (Medium-term suggests low- fat diets are superior to low-carb diets in obese individuals due to complications).

4\. <http://www.ncbi.nlm.nih.gov/pubmed/20571327> (Obesity treatment is a maintenance treatment, not a triage)

And the final nail I will hammer in your statement today:

5\. <http://www.ncbi.nlm.nih.gov/pubmed/20670466>

The conclusion to this paper is quite germane:

            Ad lib, low fat, high carbohydrate diet was superior to fixed energy intake
            for maintaining weight after a major weight loss. The rate of the initial
            weight loss did not influence long term outcome.

It's important to understand that linking to a book or a single doctor's blog is not going to be good evidence. These studies are what good evidence is, because they are _evidence_ instead of hearsay and anecdotes. And please note the dates on these studies, they are not old.

<comment><USER4> _1.<http://www.ncbi.nlm.nih.gov/pubmed/20679559> (No difference with carb restrictions vs. fat restrictions)_

No difference?

"A low-carbohydrate diet, which consisted of limited carbohydrate intake (20 g/d for 3 months) in the form of low-glycemic index vegetables _with unrestricted consumption of fat and protein._ " (emphasis mine)

"During the first 6 months, the low-carbohydrate diet group had greater reductions in diastolic blood pressure, triglyceride levels, and very-low- density lipoprotein cholesterol levels, lesser reductions in low-density lipoprotein cholesterol levels, and more adverse symptoms than did the low-fat diet group. The low-carbohydrate diet group had greater increases in high- density lipoprotein cholesterol levels at all time points, approximating a 23% increase at 2 years."

That's a pretty big difference if you ask me. The low-carb group was not calorie-restricted. The low-carb group had more positive changes in the most important heart disease indicators (VLDL and HDL). Notably, the HDL increase is very important.

<comment><USER2> I meant within the context of weight loss and long term results. I did not mean to imply there are no differences, and I welcome a clarification there.

And even if I did read a few of them wrong, I'm fine with that. I want people to talk in terms of evidence and fact, not "this very smart doctor's blog" or "this book hawking yet another clever secret diet". That's of far more value to the news.ycomb community, and if it costs me a few bruises to my ego, so be it. These studies are accessible and readable, let's use them.

<comment><USER5> Good Calories, Bad Calories has a pretty robust bibliography, and the author, Gary Taubes, is a well respected science reporter. It would be a mistake to characterize his book in the way you have. Check it out from the library and read some of it yourself. :)

<comment><USER6> I tried to read most of Good Calories, Bad Calories, but in the end felt no smarter than before. Yes, he dug up a lot of documents, but I can not verify them myself. Most diet "philosophies" can cite any number of research articles (as Taube himself explains in every chapter - it's just that almost all studies seem to have flaws). It actually made me distrust the book a little bit that it was so badly organized. That is, rather than arguing a point well, it just dumps an insurmountable heap of information on the reader.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> _Some of the "low fat" foods are actually bad for you because they are high in HFCS or other sugary additives._

This is a biggie. Much bigger than people realize. Foods that are advertised as "low fat" must have those fat calories replaced with something. And that something is usually refined carbs of some sort, be it sugar, HFCS, or something else.

My wife has fructose intolerant, so we don't eat anything containing fructose or HFCS. You would be shocked to see how much food contains HFCS, and REALLY shocked to see how much "healthy" and "low fat" foods contain HFCS.

<comment><USER8> Obviously if you're fructose intolerant you need to avoid it, but HFSC isn't the evil it's been painted to be. I like reading this guys blog because it's no nonsense nutritional information with ALL his sources.

[http://www.alanaragonblog.com/2010/01/29/the-bitter-truth- ab...](http://www.alanaragonblog.com/2010/01/29/the-bitter-truth-about- fructose-alarmism/)

<comment><USER9> I appreciate your point, but typically you want to stay away from things that contain HFCS not simply because HFCS is "bad" for you, (jury is still out on that one), rather, because foods that contain it tend to be very calorie dense.

The problem with our diets as americans is that EVERYTHING contains sugar/HFCS.

For example, I get all my carbs from brown rice, and bran cereal. I have the occasional slice of 100% wheat bread. Why? Because almost all bread on the market contains HFCS and each slice is typically 110 calories. I'd rather get the same amount of calories from a much more satisfying bowl of brown rice and veggies then from a dense, unsatisfying piece of bread.

</comment></comment></comment><comment><USER10> Nice writeup Paul. One thing I'd point out is that your dietary needs will evolve as your body and metabolism does. Once your body adapts to its new state and you start gaining muscle mass, you'll actually start _needing_ more calories and you can relax on the little thing like egg yolks, etc.

Another thing that you might want to consider if you're not the hardcore gym type is adding some less traditional forms of exercise. A lot of people really get into martial arts despite not liking to "workout"; I know you like driving, so I'd recommend seeing if there are any good karting options in SF. Karting is crazy amounts of fun, and its a great all-around workout: [http://www.itv-f1.com/News_Article.aspx?id=46561&PO=4656...](http://www.itv-f1.com/News_Article.aspx?id=46561&PO=46561)

<comment><USER11> Why do people eat egg whites without the yolks? The yolk is the best part of the egg (flavourwise).

<comment><USER12> A lot of them eat egg whites only because egg yolks contain a little less than half of the protein but _all_ of the fat and cholesterol. Some say that the cholesterol in yolks actually has a small impact on, and even reduces your blood cholesterol, but I haven't seen a definitive study.

<comment><USER11> And what do they do with the yolks?

<comment><USER12> Throw them away.

(I'm one of these people. My doctor told me that my blood cholesterol was too high for my age and I had to cut back on eggs. I cut back on eggs as well as foods containing saturated fat, and it's since gone down.)

<comment><USER11> Thanks for the answer.

</comment></comment></comment></comment></comment></comment><comment><USER13> Nicely done PStamatiou. I went thru the same crunch a couple of years ago and dropped bread, dairy, coffee etc and it made a world of difference.

I actually had the folks at the gym and some friends casually tell me to eat more food as I had taken it a bit too far. What happened was mostly me trying to find that sweet spot where you can get benefits from the gym and not overdo it on either side (weight too low versus weight too high).

<comment><USER14> "I went thru the same crunch a couple of years ago and dropped bread, dairy, coffee etc and it made a world of difference."

What's the compelling reason to drop coffee? Coffee is nothing but brown caffeine water and caffeine is a safe, cheap appetite suppressant.

<comment><USER15> Coffee can actually be an appetite suppressant. I don't think there's any reason to drop coffee for weight loss, but you'll probably want to reduce the added sugar and cream.

<comment><USER8> And there's the problem. Most people don't drink just coffee, but instead some bastardized triple caramel pump, white chocolate mocha espresso.

For the record I like my coffee black (mmm espresso) and maybe a little milk :)

</comment></comment></comment></comment><comment><USER16> "I lost 20 pounds...How? I drank bear piss and took up fencing. How the fuck you think, son? I exercised." - @shitmydadsays

</comment><comment><USER17> I've lost 30 pounds over the course of 6 months by eating more reasonable portions (No more downing 2 cokes, 1 lb of chicken wings, and fries in 1 sitting) and exercising more. I did this gradually, never too concerned about it. Sure it wasn't as quick as Paul's story here, but it works fine and requires very little effort.

</comment><comment><USER18> The science behind losing weight really isn't complicated: just make sure your intake of calories is less than you need to sustain your current weight.

To lose 1 lb, you need to give up 3500 kcals. This can be accomplished by eating less, exercising more, or ideally, a combination of the two.

Say, you're a programmer, you're 6' and you weigh 220 lb. Assuming you don't exercise, you need to consume 2700 kcals to sustain your curent weight. If you want to lose 2 lb a week, a doable and healthy method would be to cut your calorie intake down to 2000 and burn 300 calories through exercise.

Ofcourse, the trick is to eat well, so that you don't feel hungry all the time. Foods that are rich in protein (like chicken, fish, beans and greek yogurt) will keep you from feeling hungry. Corn syrup, trans fat, and saturated fat are the stuff to stay away from (that's most processed foods), those will only make you more hungry.

Also, timing is important to keep from eating too much. Start with a breakfast rich in fiber, and don't skip meals during the day. Drinking enough water is important too, at least 8 glasses a day. And for each cup of coffee, compensate it with a glass of water.

Finally, knowing how many calories are in the foods you eat helps _a lot_. I use Livestrong.com's Daily Plate service to track my daily intake of calories, calorie goals, weight, and weight goals. Any math geek or stats addict looking to lose weight should use it. There's even a free DailyPlate iPhone app.

<comment><USER19> Of course, there's a big distinction between losing weight and losing fat. You can simply lower your calories and lose weight, but your body fat % might stay the same simply because you're also losing muscle mass too. That's why exercise is really the key, unless you want to get _very_ militant about your food intake. You _can_ lose fat without exercise, but it's not fun or easy.

<comment><USER11> And by the way, you should not aim to lose weight.

Give yourself a better target: Aim for a smaller waist line. Nobody sees weight, and but big belly makes doesn't look too nice.

And: Muscles are also heavy.

</comment></comment></comment><comment><USER20> laughed a bit at this part:

"My motivation for going to the gym was rather stupid but it worked — I wanted to become the mayor on Foursquare. I never did get the mayorship.. the gym rat badge will have to suffice."

</comment><comment><USER21> Side topic, but can anyone suggest a diet (vegetarian, ideally) for putting on muscle?

I've been hitting the gym regularly (2-4x/week) for the past year, lifting weights consistently each time, and haven't made any major gains.

<comment><USER22> Have you tried taking protein powder along with your diet? Depending on how much you want to gain and the type of shake you get, you'd probably want to drink one within 20 mins of a weightlifting session and one a day in the morning.

<comment><USER23> A cup or two of lowfat plain yogurt will provide as much protein as a typical shake, and is a much more healthful option.

<comment><USER24> 1 scoop of many whey proteins provide 20+ grams of protein. If you throw 2 scoops thats 40 grams. Most yogurts don't even approach this. Then add milk, peanut butter, etc.

Some people also mix their whey with other things, such as in their oatmeal.

You can just eat more yogurt, but a lot of people go the shake route because its a lot easier to drink large amounts of protein than eat it.

<comment><USER11> Quark is a pretty decent source of protein (casein). I often put quark, milk and fruits (and oat meal) in a blender to make my own shakes. At least when I am too lazy to prepare a proper meal.

</comment></comment></comment></comment></comment><comment><USER25> _Simple Carbs like refined white flour, pastas – instead I opted for only whole grains, nothing milled or crushed._

Is he chewing on whole grains? Boiling them as porridge? I figure you have to mill or crush at some point to make most things. Whole grain flours, unbleached and with the germ/bran unfiltered seems fine to me. When dealing with wheat, some people may want to watch the gluten content as well, depending on their sensitivity.

</comment><comment><USER26> "a post for programmers and startup folks that are looking for a way to learn some healthy eating habits while doing their necessary 12+ hours per day on the computer thing:"

That would be the FIRST thing that I would fix -- if you're doing 12+ hours per day on the computer, odds are you need to rethink your development process first, and then use the extra time to improve your health. Then reap the benefits that a healthier mind and body have one one's productivity.

This obsession with long hours is a bug, not a feature -- rather than trying to find ways to enable it, we should be looking at how to fix it.

</comment><comment><USER27> Why is there no love for the (appropriately named), Hacker's Diet? Incredible results here.

<http://www.fourmilab.ch/hackdiet/www/hackdiet.html>

</comment><comment><USER28> I love that you've proven the Butterfield Diet Plan works!

<http://www.youtube.com/watch?v=vjnuBTPOaKY>

Don't forget... Saturday is Treat Day.

<comment><USER28> I object to the down-mod. Stammy suggests eating anything you want, one day a week.

Sorry if you don't have a sense of humour, but my comment was topical.

</comment></comment><comment><USER29> I'm writing about my journey to getting in better shape as a programmer and I find stories like Paul's to be inspirational. Thanks for all the information Paul. My goal is two-fold: get in shape / live longer and to get as strong as possible. The "getting stronger" part keeps me motivated through those long and arduous cardiovascular workout sessions. Here's my journal:

<http://www.strongestprogrammer.net/>

</comment><comment><USER30> Nice write-up Paul. As a fellow GT grad I think I gained 15 pounds because of the Varsity.

One tip - lose the metal spatula on the non-stick pan.

<comment><AUTHOR> Yeah I got a softer one a few months later. I had a metal one in that pic because my dog chewed up my plastic one...

<comment><USER7> Actually a nice cast-iron pan would be better.

<comment><USER31> This is actually a great tip -- cast iron is not only great to cook in, it helps provide dietary iron, which is especially important if you're eating a diet light in red meat (which naturally contains iron) and prepared cereals (which tend to be fortified with it).

</comment></comment></comment></comment><comment><USER32> I can recommend a guy called John Berardi, specifically these 2 articles:

[http://www.johnberardi.com/articles/nutrition/masseating_rl_...](http://www.johnberardi.com/articles/nutrition/masseating_rl_1.htm)

<http://www.johnberardi.com/articles/nutrition/7habits.htm>

</comment><comment><USER33> Congrats on your success, even if you do get a few critical responses on your food choices. I had a lot of post-college weight to lose (45 pounds) and did it with cardio and not overeating. My diet stayed mostly the same, much to my wife's chagrin, but I got through all the weight in 9-10 months and it hasn't been back since (a few years now). Keep up the good work.

</comment><comment><USER34> All the low-carb advocates, one link!

<http://www.leangains.com/2009/02/low-carb-talibans.html>

And the OP did well to keep it simple and basic. It's all about energy balance.

</comment><comment> jc-denton Probably by not eating all the time :D</comment>


Proving false in Coq using an implementation bug - <AUTHOR> https://github.com/clarus/falso <comment><USER2> Well, I saw the title and was all prepared to link to Falso, but alas, I am beaten to the punch. However I am even more impressed by the fact that since the last time I looked at the Falso page, they now have a list of available implementations, which has already been updated now to include Coq!

Meanwhile, my three year old is now looking over my shoulder asking "What's so funny, dad? What's so funny?" and I have to admit... I have no idea how to answer that.

<comment><USER3> I'm 35. Does that help? Can you try to explain it to me then? :)

(I looked at the Readme, looked at the All.v file and .. I don't get it.)

<comment><USER2> Coq is a proof assistant, where "proof" is in the mathematical sense of the term. Thanks to Curry-Howard isomorphism [1], it happens that there's a mapping between proofs and programs, meaning that the "proof assistant" can do things like "prove a sorting algorithm correctly sorts all inputs" in a relatively straightforward manner. I mean, still fairly complicated and not something that you'll encounter in an undergrad computer science education in general, but feasible. For instance, a similar tool was recently used to prove that the sorting algorithm in Python and Java had a bug [2], which was a bit surprising given how well-exercised they were.

Something that a computer science program _should_ cover is that a logical implication is always true when the antecedent is false. X -> Y is always true when X is false. Thus, if you can convince your system to prove a false term, you can set that as the X and write anything you want for the Y, and prove anything. (That statement is actually glossing over a bit of discussion on how you can legally introduce statements into your system, and there's variance between the logics on that point anyhow, but that's what it comes out to in most if not all systems.) Therefore, if you can prove a false statement, you can literally prove anything.

This turns out to be an unhelpful characteristic for a proof system to exhibit. In the case of Coq, it means you can now convince it to take any program as satisfying any property. _Any_ program, satisfying _any_ property. You want to prove that "return []" is a proper sorter for any input? This can do that. Heck, you want to prove that "return []" is a valid fully HTTP5 rendering engine? We can do that too!

In this particular case, it exploits a bug in Coq to do that, but the fear mathematicians have developed over the course of the 20th century is that while the bug may be obvious, deeper, more subtle problems in Coq could conceivably be used to prove "False" oven the course of a proof, accidentally and buried in potentially hundreds or thousands of statements, subtly rendering all such proofs flawed. Such are the things that keep mathematicians up at night.

As long as I'm explaining things, let's also explain the joke in Falso. There are, as the page says, a number of different axiom systems. Some of them are simply wildly different; for instance, Euclid's axioms create Euclidean geometry, whereas axioms about vertices and edges create graph theory. Some are more related... the 20th century resulted in several "set theories", which are ultimately characterized by different axiom sets that lead to different places. Axioms are neither right nor wrong, they are the _definition_ of a branch of math, so you can choose them as you like, then see where they take you. Per the previous paragraphs, you prefer not to have an axiom system that allows you to prove false because it reveals your system doesn't actually say anything because it just says "Yes!" no matter what you ask. In some sense this isn't "invalid" or "wrong" either, it's just useless. (And in some sense, there's only one axiom set that just says "return true", there's just more and less complicated ways of spelling it, so there's not much value in trying to "study" one because it's identical to "return true" anyhow.)

The joke in Falso is that it simply takes as an axiom "For all P, the proof of P is the null statement", which, for the purposes of this post, is essentially "Assume false is true." From this, Falso can therefore prove... anything! In one statement! At this point the "comparison table" ought to start making sense. But the page is full of other little mathematician jokes... for instance:

        Let us prove that P = NP by contradiction. Assume that P ≠ NP.
        Then, by the axiom of the Falso system, we have a contradiction.
        Therefore, P = NP.

The joke here being that under the Falso system, "proof by contradiction" isn't actually necessary; you want "P = NP"? Just set it as the "P" in the axiom and read it off in one step, "The empty statement proves P = NP". Proof by contradiction is unnecessary frippery providing the thinnest, _thinnest_ of covers over the triviality of the proof, which is itself the joke. As opposed to a huge proof of dozens of steps, which could be funny in its own way, it is also mathematician-funny to provide the _smallest possible_ obfuscation. (The remainder of the joke is a slightly disguised allusion to the fact that "P ≠ NP" is equally trivially provable under Falso. Estatis Inc. need not wait anxiously by their mailbox for their million dollars from the Clay institute.)

Mathematicians have a strange sense of humor. Strange, but wonderful.

As I said, the last time I encountered this page [3], which HN says was 2 years ago, it didn't have any implementations, it was just an extended joke. The fact that it is now actually "available" is also sort of funny.

Oh, and finally, I can't read or use Coq either. Plus, even if you could, this is ultimately a bug exploit, not a "real proof", which would make it even harder to understand how what is being done relates to the final result; it's like seeing some random-looking assembler that turns out to produce arbitrary code execution due to some quirky combination of bugs, there isn't any apparently relationship between what the assembler looks like it's doing and the result it actually produces. Haskell's close enough for me for now. I'm also willing to wait and see if homotopy type theory follows through on its promises to make proofs simpler... at the moment, as I am ultimately a software engineer and not a mathematician, I can't help but see current proof technology as too much work for too little gain. I wish all those working to change that assessment all the best, though.

[1]: [http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspond...](http://en.wikipedia.org/wiki/Curry%E2%80%93Howard_correspondence)

[2]: [http://envisage-project.eu/proving-android-java-and- python-s...](http://envisage-project.eu/proving-android-java-and-python- sorting-algorithm-is-broken-and-how-to-fix-it/)

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

<comment><USER4> The way the exploit works isn't actually that bad. It just has to do with exploiting Coq's assumption that its bytecode VM evaluator is equivalent to normal CBV reduction. Turns out that's false---though that was certainly always a potential weakness in that assumption.

<comment><USER2> Yes, if I did not make it clear, what was actually demonstrated here was not the sort of scarybad mathematical weakness that can only be extracted from a long proof that I was talking about, it's basically just a bug in Coq, and in the long term has little consequence other than providing a bit of fun.

</comment></comment></comment></comment></comment><comment><USER5> This incorrectly passes the compiler, which is certainly a bug, but it does not pass the validator.

      $ ./configure.sh
      $ make
      coqdep -c -slash -R . Falso "All.v" > "All.v.d" || ( RV=$?; rm -f "All.v.d"; exit ${RV} )
      coqc  -q  -R . Falso   All
      $ make validate
      coqchk -silent -o -R . Falso All
      Type error
      Makefile:133: recipe for target 'validate' failed
      make: *** [validate] Error 1

<comment><USER6> What is the validator doing that the compiler isn't?

<comment><USER4> My understanding is that it's just smaller. By focusing entirely on validation it opens up less room for bugs.

</comment></comment></comment><comment><USER7> There's a problem with dependently typed languages, neither of them have a small enough kernel to be verified formally.

As far as I know, the only system which achieves this goal is HOL.

<comment><USER8> The Calculus of Constructions is dependently typed, and it has a reasonably sized kernel, compared to HOL and ZFC:

Freek Wiedijk, "Is ZF a hack?", [http://www.cs.ru.nl/~freek/zfc-etc/zfc- etc.pdf](http://www.cs.ru.nl/~freek/zfc-etc/zfc-etc.pdf)

OTOH, Coq is based on the Calculus of Inductive Constructions, which is both (a) more complex that the calculus of constructions, and (b) has an implementation in Coq that changes rapidly and is not formalized in any published paper, as I understand it.

Finally, do you know if this was a bug in the kernel, or if some other component (the compiler or caml virtual machine) can be blamed? It apparently was a problem with `vm_compute`, which I don't think I've ever used.

<comment><USER7> >The Calculus of Constructions is dependently typed, and it has a reasonably sized kernel, compared to HOL and ZFC:

However, Calculus of Constructions doesn't have inductive constructions, without which it's very hard to formalize interesting mathematics in it.

>Finally, do you know if this was a bug in the kernel, or if some other component (the compiler or caml virtual machine) can be blamed? It apparently was a problem with `vm_compute`, which I don't think I've ever used.

Actually, I am aware of another, much more serious problem with CoIC formalism which was found when Coq was tried to be used to formalize homotopy type theory. It was a bug in CoIC, not a software bug.

<comment><USER9> > Actually, I am aware of another, much more serious problem with CoIC > formalism which was found when Coq was tried to be used to formalize > homotopy type theory. It was a bug in CoIC, not a software bug.

Do you have any references? Intrigued :)

<comment><USER10> The notion of guardedness (for structural recursion) was a bit too permissive. This lead to inconsistency if you assume e.g. (False->False = True) (which is implied by propositional extensionality, and by the univalence axiom). The same issue affected Agda also. It was discussed a lot on the Coq and Agda mailing lists, e.g. [https://sympa.inria.fr/sympa/arc/coq- club/2013-12/msg00119.h...](https://sympa.inria.fr/sympa/arc/coq- club/2013-12/msg00119.html) [http://agda.chalmers.narkive.com/E2UeRTOx/re-coq- club-propos...](http://agda.chalmers.narkive.com/E2UeRTOx/re-coq-club- propositional-extensionality-the-return-of-the-revenge)

</comment></comment></comment></comment></comment><comment><USER11> I've always thought that Coq type checker was small enough to be formally verified.

<comment><AUTHOR> What must be trusted in Coq in the kernel, which contains 30,000 lines of code for the latest development version.

It cannot be completely verified by Coq itself due to the Gödel theorem (well, now with this bug this is possible). Still, some part of it can be verified, like the byte-code interpreter. There is actually an ongoing project to make a certified JIT compiler for Coq: [http://www.maximedenes.fr/download/coqonut.pdf](http://www.maximedenes.fr/download/coqonut.pdf)

<comment><USER11> > It cannot be completely verified by Coq itself due to the Gödel theorem

What can't be proved in Coq is that the proof system is consistent.

However, we can in theory verify that the implementation of the proof system satisfies its specification (edit: maybe that's what you were saying!).

<comment><USER12> Doesn't the Gödel theorem say that such proof cannot be found for _all_ conceivable systems; but that for any _particular_ system, a proof _could_ in principle be found?

<comment><USER13> I think it's something like this: you can't prove the consistency of a formal system using that same formal system, unless it is in fact inconsistent, but you can model a formal system from inside a larger formal system and then prove things like consistency about the smaller system from inside the larger one. But then the consistency of the larger system is unproven and you're stuck with an endless regress into ever larger FS's as you pursue the chimera.

<comment><USER14> Only for sufficiently powerful systems, I believe.

Things like first order logic are too simple to introduce the kinds of statements Godel used to prove the incompleteness theorem about arithmetic.

</comment></comment></comment></comment></comment></comment><comment><USER15> Anyone care to ELI5?

<comment><USER16> Logic systems can have bugs in them that make them inconsistent, which means that you can prove _false_ (or _bottom_ or whatever), which means that you can prove _anything_ in this logic. And that, in turn, makes the logic system useless since for any given formula, it is provable in that logic. And being able to prove _everything_ is not fun.

Then you have to patch your logic and make sure that none of your proofs relied on that inconsistency. Or something like that.

<comment><USER17> You can re-run your proofs once the bug is patched, so its not like this makes all those proofs useless. Actually, that is the nice thing about Coq.

<comment><USER18> How do you know there isn't another, yet undiscovered, bug?

<comment><USER17> You don't, but so what? Even proofs done well by hand can have obscure mistakes; most of the time they don't invalidate the proof. Take a proof as strong evidence of correctness and it all works out from a epistemological point of view.

</comment></comment></comment></comment></comment><comment><USER19> How much does that invalidates Coq results ? like the 4 colors theorem.

<comment><USER20> AFAIK the four color theorem was not first proved with Coq, and people consider it correct regardless of whether Coq has bugs.

<comment><USER21> Yes, the four color theorem was proven by Appel and Haken on an IBM 370-168 at the University of Illinois in June 1976. Coq was released in May 1989.

<comment><USER22> I'd be surprised Appel and Haken did a _formal_ proof on their machine -- I thought they made a conventional proof with a machine-assisted enumeration of special-cases.

<comment><USER21> My apologies for the lack of clarity: I was following the thought path that was concerned with the validity of the four color theorem proof because of the Coq bug.

</comment></comment></comment></comment></comment><comment><USER23> Too bad this comes too late to earn a bounty in bitcoin at Proof Market. [https://proofmarket.org/problem/view/12](https://proofmarket.org/problem/view/12)

</comment><comment><USER24> Obligatory refrence:

> Beware of bugs in the above code; I have only proved it correct, not tried > it.

[Donald Knuth]

<comment><USER7> Fortunately, this technology allows us to prove code correct and be sure about it.</comment></comment>


How Designers Destroyed the World - <AUTHOR> http://www.webstock.org.nz/talks/how-designers-destroyed-the-world/

<comment><USER2> really powerful story</comment>


Oppenheimer, Unredacted: Part II – Reading the Lost Transcripts - <AUTHOR> http://blog.nuclearsecrecy.com/2015/01/16/oppenheimer-unredacted-part-ii/

<comment><USER2> I'm looking forward to reading this, Oppenheimer was a very rare breed of intellectual.

He learned Sanskrit in order to read Eastern religious texts in their original forms. When he famously quoted the Bhagavad Gita[0] that's thought to be _his own translation of it_ which astounds me.

[0] - [http://blog.nuclearsecrecy.com/2014/05/23/oppenheimer- gita/](http://blog.nuclearsecrecy.com/2014/05/23/oppenheimer-gita/)</comment>


Ask HN: What are some charities that are effective and good? - <AUTHOR>

Two friends of mine are getting married and requested that guests made donations to charities instead of buying presents.<p>I would make a donation to a standard one like Oxfam, but I realized that this crew might know about some charities that are doing good work, making the world a better place with high efficiency. Do you? <comment><USER2> EFF: [https://supporters.eff.org/donate](https://supporters.eff.org/donate)</comment>