Bram Cohen: I have a question for the version control experts - <AUTHOR> https://www.facebook.com/bram.cohen/posts/10152387480820183 <comment><USER2> His question on StackOverflow:

[http://stackoverflow.com/questions/14077470/is-simplified- se...](http://stackoverflow.com/questions/14077470/is-simplified-semantics- for-the-blame-command-a-good-thing)

<comment><USER3> When I left for my friend's for a couple of beers I quickly glanced at his StackOverflow question. It was a copy paste of his facebook post. I thought "Mmm, this is probably getting closed". Turns out I was right :)

<comment><USER4> Through the magic of the voting system it has now been reopened.

<comment> mh- and through the magic of StackExchange, it is now reclosed.

</comment></comment></comment></comment><comment><USER5> I wonder if I will be able to read this post in 3 years. I'm sure Facebook will have deleted it by then and the link will get dead in 6 month already for sure (first break it, maybe fix it later)

Is archive.org even allowed (by Facebook's robots.txt) to archive this?

It's sad if technical people post important information on Facebook

Edit: facebook's robots.txt has this: User-agent: *, Disallow: /. :-(

<comment><USER6> Now that Facebook use clearly designed URLs (/bram.cohen/posts/10152387480820183 in this case) I have a lot more faith in them keeping this kind of thing working. It's extremely valuable content for them, especially with their recent emphasis on the timeline and capturing the story of people's entire lives.

<comment><USER7> One possibility is that Facebook stops existing. Now, I won't speculate what the probability is or isn't - but none the less, it's a possiblity.

On the other hand, there's also possiblities such as; Facebook losing or deleting the content, Bram Cohen deleting the content or his account.

</comment></comment></comment><comment><USER8> The version control in Squeak, based on Smalltalk-80, has been in use for over 16 years, probably even 32 years. The community of Squeak has been entirely happy with it, it could perhaps be made even more convenient with more diff analysis tools. For every snippet, even a single line in a method, all the versions are kept around and the blame for the revisions to a previous version, including deletions, is always clear. The last version is active (there is no compiling fase in smalltalk, only auto compile for adaptive compilation). So your question is never relevant unless one wants to merge back after a fork. In that case diff tools should give a human the entire history, diffs and all its dependancies that are affected to see what happend when and how. It is indeed useful to see changes going back 40 years. In the case auto-merge-back is possible, the S unit test runner must check if it worked, but such a situation occurs only once in 10 years if at all. So to me there is not much to be desired in a version control system than the current method version control of Squeak.

</comment><comment><USER9> Beyond the question and reading entirely too much into it, what's the inventor of BitTorrent, out of all things, doing writing version control? Between this and BitTorrent Live, are we going to see something that will blow every model of content distribution, including BitTorrent, out of the water?

If nothing else, torrents with version control would frankly be mind-blowing. Think of a single TV show torrent, which could be updated again and again. Then think of TV broadcasting and content distribution of the program being shown through such an above torrent and an overlay, and ads, being played in on the client-side?

Thinking away the rights issues and DRM, this might be the future of live TV and content distribution.

<comment><USER10> Bram Cohen did VCS before Linus and Matt Mackall did it:

<http://en.wikipedia.org/wiki/Codeville>

<http://freecode.com/projects/codeville>

</comment></comment><comment><USER11> Blame is pointless, and needed only for pathological organizations. The point of these tools is not to assign blame but to find the last working revision of the code. If a commit inherits from multiple commits then there could be multiple working last revisions.

Think of it like sailing when the mast breaks, you don't who last touched the mast, you care how to get the mast back up.

In truth the totality of world events leading up to the moment the mast broke is what lead it to break. This is not important, what is important is how to right it.

If the question is viewed in terms of righting the ship then the point is to identify the last revision that worked, conversely the 'broken' revision is the next one.

Realistically, to solve the problem you'd want a genetic algorithm that could turn on and off each change in each revision to find the combination that yields the most fit iteration of the code.

<comment><USER12> Wait, what? My most common use case for blame is finding out who to ask about some code that I don't fully understand. Often a quick "git blame" and a short conversation can save a lot of time.

<comment><USER13> Try that on a code base that's 10 years old and the one who wrote the code, including the rest of the core team, probably changed jobs several times already.

<comment><USER14> Yes, it doesn't always work and is not always feasible.

But there are plenty of occasions where it is, because the changes broke the system. A broken system is not going to sit around for 10 years.

</comment></comment></comment></comment><comment><USER15> I like it! Doing it this way will mess up the blame for non-unique lines like

        else if {

but I don't think that matters because you are unlikely to care where such lines come from. (You could fix this anyway by doing unique lines first, then using the blame of those to make better choices for the non-unique lines.)

See also the more complicated variant at the end of this post from the git mailing list:

[http://marc.info/?l=git&m=116070384211583&w=2](http://marc.info/?l=git&m=116070384211583&w=2)

<comment><USER16> Blame is always messed up anyway, because there is no right answer. You may as well choose what is quick to compute and looks okay.

Version control systems are not storing what actually changed between files, they are storing the smallest set of differences between them.

IE Given two versions of the same file, and the history graph A->B they store how to reproduce the bits of B from the bits of A.

This is completely unrelated to how B _actually_ got that way. So in turn, they use textual diff algorithms to approximate how B was formed from A.

Even moving back into the text world, there is still no right answer. It only tells you one of the possible ways that A was transformed into B. It would be perfectly valid for the text diff algorithm to say "every line in A was removed, every line in B was added". This in turn would give you a blame that pointed to that rev for everything.

Most textual diff algorithms "try" to do something sensible, but blame is essentially trying to turn applesauce back into apples.

Even git's more "advanced" blame can be completely messed up by the internal text diff doing dumb things.

All that said, one of the reasons you may like it is because it's basically what everyone actually does.

<comment><USER15> _All that said, one of the reasons you may like it is because it's basically what everyone actually does._

Please correct me if I'm misunderstanding, but Bram is proposing to do blame without using the diffs, a nice simplification and not something I'm aware of other version control systems doing.

<comment><USER12> The commits themselves will still, presumably, be generated by diffing. After that, sure, it should be fairly easy to compute exactly what commit contributed each character of a file, and when.

<comment><USER17> No. The simplest example I can think of is:

      Revision 1: x

      Revision 2: xx

Which x was added in revision 2?

In real life, you get things like replacements of a statement by an if-else block with statements similar to, but not identical to, the original statement in each branch. Are there still parts of the original statement there? If so, in which branch(es)?

Also, suppose I add code in version 6, you remove it in version 14 and someone else resurrects it in version 23. What commit contributed that code? How can you know whether that someone else resurrected the code, rather than write a new copy?

Finally, what is 'contribute'? Does a commit that 'only' moves lines around in online help contribute to a file? What does it contribute? How do you show that contribution in a diff? What if the move also necessitated some minor changes like adding punctuation?

</comment></comment></comment></comment></comment><comment><USER18> I like the Quora/cats comment.

<comment><USER19> I also liked the response: the claim that StackOverflow would be a better forum than Quora for this kind of question; StackOverflow closed the question as "non-constructive", as they specialize in "concrete questions with factual answers"... honestly, Quora seems like the perfect place for this kind of thing.

</comment></comment><comment><USER20> Off topic, but I'm glad seeing people use facebook as a sort of blogging platform. If written in notes, I'm quite sure even photos could be embedded.

Your RSS reader would simply merge with your news feed.

<comment><USER21> Why? How is that better than using WordPress and RSS?

<comment><USER22> If you use Facebook as your blogging platform, the dollars generated by showing ads to your audience go to Zuckerberg.

If you host your own Wordpress install, the ad dollars go to you.

 _If you're Mark Zuckerberg_ , bloggers blogging on Facebook is better than bloggers blogging elsewhere. That's the circumstance under which blogging on Facebook is better.

<comment><USER23> While I tend to agree with this exact comment (since it's Facebook specifically), I don't agree in spirit because administering your own Wordpress install takes time. That time might be valuable for some.

I'd certainly run my own Wordpress, but not everybody wants to.</comment></comment></comment></comment>


Flowchart: Can you eat a sales tax-free meal "to-go" in SF? - <AUTHOR> http://media.sfweekly.com/7759503.0.jpg

<comment><AUTHOR> From this excellent article: [http://www.sfweekly.com/2012-04-04/news/taxes- food-beverages...](http://www.sfweekly.com/2012-04-04/news/taxes-food- beverages-california-board-of-equalization-revenue-class/)

(I didn't link to the article directly in the submission because the flowchart was the most interesting part to me, but it's buried two clicks deep from the article itself)

</comment><comment><USER2> This hurts my brain.</comment>


From 0 To $1 Billion In Two Years: Instagram's Rose-Tinted Ride To Glory - <AUTHOR> http://techcrunch.com/2012/04/09/instagram-story-facebook-acquisition

<comment><AUTHOR> What a ride they had! This is fueling more and more the entrepreneurial spirit in the tech industry.</comment>


New Gitter Chat Channel about Artificial General Intelligence / Strong AI - <AUTHOR> https://gitter.im/artificial-general-intelligence/Lobby <comment><AUTHOR> The purpose of the channel is to exchange ideas so that together we can contribute to the creation of `Safe Artificial General Intelligence`.</comment>


Ask HN: Anyone ever moved from SF to midwest start a company? - <AUTHOR> I work at a big tech company in the bay area and hope to start my own small online business someday. I'd love to start testing ideas at nights and on weekends. But, in the bay rent is outrageously high and the commute is draining--I feel really tired by the time I get home and end up not working on my small business. I could push through this or look for alternative setups. I'm always amazed by how affordable rent is in the midwest. Has anyone ever saved up some money, taken the plunge, and moved to a more affordable place to start a company? Would love to hear your stories/take on the idea. <comment><USER2> The thing about smaller cities in flyover country is you need a support system. There are often decent small communities of people doing things, but it's all of the stuff you hate about bigger places -- insularity, politics, etc. -- without the ability to find 100 other groups like it within the same place.

Also everything EVERYTHING moves slower. Nothing is open really late and people taut the culture and so forth, but realistically, it's just a lot of folks who get married really early and talk about soccer games and stuff.

None of this is bad, it's just...a deliberately bleak picture. That said, more people ought to make this move. It's just not one person though, we need communities of people making exodus like this for it to really work.

<comment><USER3> LOLZ @ "Bunch of people who got married earlier." Replace soccer games with football games and you nailed it though. (minneapolis based)</comment></comment>


John McAfee Impersonators on Trump's Twitter Making $5–10k/Day - <AUTHOR> https://medium.com/@cryptoinvestigations/john-mcafee-impersonators-on-trumps-twitter-making-5-10k-day-15bc1a6640aa <comment><USER2> Or the scammers are sending themselves money to make it look legit</comment>


Puzzle box: The quest to crack the world's most mysterious malware warhead - <AUTHOR> http://arstechnica.com/security/2013/03/the-worlds-most-mysterious-potentially-destructive-malware-is-not-stuxnet/ <comment><USER2> Let us keep in mind that as we boot up our own cyber sabres to rattle at China, et al., the USA and Israel are extensively attacking and, essentially, invading sovereign nations and breaching the international peace. I don't like corrupt, oppressive regimes any more than the next guy or gal, but maybe we should try just not creating, causing, supporting, or sustaining them in the first place. I really don't think that the actions our government is taking in our name is in any manner better than the very "regimes" they feel righteous to openly attack.

As with the unfettered use and expansion of drone warfare in a stupid, narrow- minded, degenerate manner; this type of wanton wielding and violence through cyber weapons will backfire on us. Who will no longer feel justified to use the very same tools against our own national grid and economy if we show no ability for restraint at using the nuclear option.

Just a few thoughts to keep in mind. You can't whine and cry once the shit you pull being an asshole is turned on you.

<comment><USER3> _You can't whine and cry once the shit you pull being an asshole is turned on you._

Is it your opinion that ignoring seven UN resolutions demanding a halt uranium enrichment activities does not on some level constitute asshole behavior?

<comment> X-Istence Why does the US get to continue uranium enrichment/building of nuclear warheads, but places like Iran are not allowed to do so?

Why is the US considered a trustworthy enough country to have control over weapons that if used would change the world in mere seconds and kill millions?

<comment><USER3> _Why does the US get to continue uranium enrichment/building of nuclear warheads, but places like Iran are not allowed to do so?_

1\. The US doesn't build nuclear warheads, and presently doesn't have the capability of replacing the ones it has. This is a whole issue of its own.

2\. Because of the Treaty on the Non-Proliferation of Nuclear Weapons, which Iran ratified.

</comment></comment></comment></comment><comment><USER4> This is an awesome way to encrypt your malware code based on the OS environment of the target.

Looking forward to the researchers finding out more about who did that.

</comment><comment><USER5> Nice article. I wonder how reliable one can use the targeting mechanism. Essentially it depends on two installed programs, one in the programs folder and one in the $PATH. So by choosing proprietary programs, one can likely target one department of one organization. On the other hand there are programs which are highly suggestive of the user, for example one could target Autocad and therefore target engineers or Cubase and target musicians.

Guess we will find out, when the Iran runs some testing utility on their systems. ( And Ahmadinejad needs a nice topic for a press conference... )

<comment><USER6> What springs to my mind is targeting special-purpose programs used by states for encryption and secure communications. i.e. inject cryptographic backdoors or sufficiently weaken PRNGs so that intercepted communications can be "easily" deciphered elsewhere.

</comment></comment><comment><USER7> Amazing. I have always been fascinated by cryptology and espionage. What these virus(Gauss, Flame, Stuxnet) are doing/accomplishing is simply amazing. The cutting edge of cyber warfare.

I don't really have anything to add to the discussion, i know little to nothing of cryptology(sadly). But its stuff like this that inspires me as a programmer to be better, to do better. If these aren't examples of programming that is truly changing the world idky what is.

<comment><USER8> > The cutting edge of cyber warfare.

Actually all this stuff is 6+ years old. We haven't even stumbled on to the new stuff yet.

</comment></comment><comment><USER9> I bet that whoever chose the salt chose it so that the resulting RC4 key is not one of the weak ones.

<comment><USER8> You can generate and discard bytes after initialization to avoid the weak key issue as well.

<comment><USER10> As far as I'm aware, that's not done here. (Warning: I've read analysis on the process, but haven't looked at the code myself)

<comment><USER8> I was just pointing out that someone who was aware of the key weakness issue would probably just implement the known fix, rather than carefully select and test different salts.

</comment></comment></comment></comment><comment><USER11> I wish I had the skills to crack that, purely because to see how it was made and understand it, just out of curiosity and to see awesomeness.

</comment><comment><USER12> There is also the possibility that the target is North Korea, so the price of discovery is that much higher.

<comment><USER13> Dennis Rodman is a obviously a spy and has already connected the USB device :D</comment></comment>


Facebook's Name Policy Strikes Again, This Time at Native Americans - <AUTHOR> https://www.eff.org/deeplinks/2015/02/facebooks-name-policy-strikes-again-time-native-americans <comment><USER2> This is really racist though. Like... imagine the insult of being told, "Please use your real name..." when you already are. Motive on the policy aside, Facebook devs were REALLY racist when they coded this check and flagged people who have "descriptive names" \-- they clearly don't have any native friends and couldn't care less about how their 2 lines of code would make someone feel that day. Some form of formal apology is probably in order.

<comment><USER3> You're right, and in an interesting way. This is a great illustration of how irrelevant _intent_ is to systemic racism. The devs weren't intentionally racist in their name check code, but their ignorance - the stuff they didn't know they don't know - led to a very racist policy. Good intentions are not sufficient for eradication of systemic racism.

Edit - it appears the name check wasn't formalized into actual code, but rather policy.

<comment><USER4> Ignorance about names doesn't support an accusation of any kind of prejudice, much less racial (not cultural) prejudice. I am glad EFF knows better than to misuse a word that would have people stop taking them seriously due to gratuitous KKK/Nazi undertones.

<comment><USER3> To define identity in such a way that it rejects something as fundamental to a culture as names is certainly racist against that culture. I'm curious what you would call it instead. I'm sure you can understand on your own why saying something is racist is not literally the same as comparing it to the KKK/Nazis, so I won't delve further into that topic.

<comment><USER4> There is no word for prejudice against a culture because we don't have the same consensus that's axiomatically evil. And if we did the developers would not be guilty of it. The policy is insensitive, capricious, heavy-handed, and stupid, but it's not driven by developers' opinions about native american bloodlines or even names. Calling it "racism" is an accusation of a uniquely dangerous kind of malevolent prejudice.

<comment><USER3> The developers are not racist. My _entire original point_ is their attitudes and intents were irrelevant. The system they created is very much racist, completely independent about how they felt in creating it; I'm not sure how you can really dispute that. The venerable Jay Smooth describes a closely- related distinction here[0]. Also, when you describe a _system_ as racist that's somewhat different from describing a _person_ as racist, which might be a place we're talking past each other.

Re: the culture/race/ethnicity terminology quagmire, the sister comment by dragonwriter explains it well.

[0] [https://www.youtube.com/watch?v=b0Ti- gkJiXc](https://www.youtube.com/watch?v=b0Ti-gkJiXc)

</comment></comment></comment></comment></comment></comment><comment><USER5> I'm surprised "Lone Hill" would even register. "Hill" is a perfectly ordinary European name, and "Lone" can be short for "Magdelone", or "Lonetta" or a lot of other things. It's nothing like "Sitting Bull" or "Kicking Bird" or "Crazy Horse".

<comment><USER6> A few years ago I decided to phase out my pseudonymous Alec Schueler username and begin using my painfully common real name (John Hill) on certain websites. Quora in particular refused to accept it, and asked me to prove that this was in fact a real name. Instead, I decided to add them to my host file and haven't used their services in the 3 years since.

I had a pretty strong emotional reaction to this policy. I can imagine it would be pretty distressing to run into this problem as e.g. a Native American or transgender person.

</comment></comment><comment><USER7> My actual, factual Chinese name, which I use in Chinese-speaking countries, was automatically disallowed by a bot within a second after I tried to add it to my Facebook profile. Oddly, my son's Chinese name (the same surname, but a given name that arguably looks a little more authentically Chinese) has been posted on his Facebook profile for years. Why Facebook can't figure out that I am Chinese by marriage (and now by parentage) and have spoken the language for most of my life (which I have declared on my profile from the beginning) is beyond me. I have no idea how to get behind the bot response to reach an actual human being to add this information to my profile.

<comment><USER8> If you managed to get in before they upgrade the guards at the gate then you're in, otherwise you're stuck outside.

Change of policy over time turns what was possible in the past to "no longer acceptable" today.

Keep in mind that you have no right and no control over anything in the facebook world and you can explain every quirks.

</comment></comment><comment><USER9> People (and programmers) have many false beliefs. Combine this with a strong desire to automate things and _reduce_ recourse to properly trained humans and you end up with a particular form of tyranny - as we see here.

I'm surprised no one's linked to the below posts already.

[http://www.kalzumeus.com/2010/06/17/falsehoods- programmers-b...](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers- believe-about-names/)

[http://infiniteundo.com/post/25326999628/falsehoods- programm...](http://infiniteundo.com/post/25326999628/falsehoods-programmers- believe-about-time)

<comment><USER10> heh...

> (#11) People's names are all mapped in Unicode code points.

Well, not really sure how to fix that one!. Maybe one day postgres will be able to index a column of handwritten images, but until then I think I'll just stick with being 99% ok.

</comment></comment><comment><USER11> A little frustrated that both the current top-level comments here seem to reflect someone not reading the article before commenting.

</comment><comment><USER12> Frankly, a name I would have reported a while back would have been "Mark Zuckerberg."

"Hey Facebook, I am SURE this Mark guy made up that last name. I am POSITIVE!"

</comment><comment><USER13> What is the benefit of a real name policy in the first place? Isn't it still fairly easy to create fake accounts using generic names?

<comment><USER14> They are less concerned with fake accounts with fake names than they are with real accounts with fake names. Real accounts with fake names are potentially good data that they can sell, but with reduced quality because of the fake name.

The "real name" policy is entirely about raising the perceived value of their dataset.

<comment><USER15> But you can live on Facebook as (fake name) John Crito and connect to all for friends and FB will let you. But Laughing Critter will get shut down.

<comment><USER14> If facebook becomes aware that John Crito is not my real name, they would ban me or make me change it. They would only "tolerate" that fake name for as long as they did not know it was fake.

They ban names like Laughing Critter, despite being real names, because they incorrectly believe that they are fake names.

They're not working with perfect information here. Their strategies have false positive and false negative rates, which they seemingly consider acceptable _(hence the outrage. If you can make facebook reevaluate the cost of a false positive (by associating those false positives with outrage), then you may be able to influence facebooks behavior)_.

</comment></comment></comment></comment><comment><USER16> I know humour isn't always well received on HN, but this article about Facebook's "authentic name" policy reminded me about a recent-ish Onion sketch:

[http://www.theonion.com/video/cias-facebook-program- dramatic...](http://www.theonion.com/video/cias-facebook-program-dramatically- cut-agencys-cos,19753/)

</comment><comment><USER17> I imagine there must be a monetary reason around this dumb policy, considering they must have seen the backlash around G+ and still thought "we'll risk it". Do advertisers pay more to know someone's legal name or something?

</comment><comment><USER18> FWIW, just tried registering with "Mark Sugarmountain" and got "We require everyone to use their real name on Facebook. If you'd like to add an alternate name, you may do so after registration. Learn more."

</comment><comment><USER19> Facebook should have just stuck with the original policy or not have one at all.

</comment><comment><USER20> Real name policies are a bad idea, but fixing the problems with using real names is not, though it sometimes can be difficult.

</comment><comment><USER21> I have an account I do not use on Facebook with a completely made up name from a MMORPG I used to play and they have never said a thing to me about it. I can't believe they want to harass Native Americans about their names.

<comment> mkr-hn The issue is more that these "real name" policies tend to indirectly target groups rarely encountered by the sort of people who work at social network companies. If you don't have any trans, Native American, or [insert group that often changes names/has uncommon names] friends, you might not see a need to use caution in applying these policies.

<comment><USER22> One could even say that it reeks of hubris to believe a largely homogenous group of people is fit to police the values and customs of the entire world.

<comment><USER23> Something something twitter activists.</comment></comment></comment></comment>


Jeff Bezos donates $33M to scholarship fund for 'dreamers' - <AUTHOR> https://www.washingtonpost.com/news/powerpost/wp/2018/01/12/jeff-bezos-donates-33-million-to-scholarship-fund-for-dreamers/?utm_term=.a7fa4b65c549 <comment><USER2> Come on Jeff, there's no way in hell you'll be able to spend your wealth before you die. You need to start donating it to causes you find worthy at a faster rate.</comment>


Ring has enormous control over the ways police partners can portray its products - <AUTHOR> https://gizmodo.com/everything-cops-say-about-amazons-ring-is-scripted-or-a-1836812538 <comment><USER2> So is it legal to bribe public officials to promote your product, without disclosing they are doing paid promotion?

<comment><USER3> It's only a crime if the cop doesn't accept the bribe? /s

</comment></comment><comment> xkcd-sucks ACAB isn't exactly news at this point

</comment><comment><USER4> Sorry, I already have a middle-aged, nutjob, hoa-crazed neighbor, I don't need video footage of his perfectly primped yard and cars too.

</comment><comment><USER5> this is the blueprint for how to get people to not use your products</comment>


Futurama 3D (test shot) - <AUTHOR> https://vimeo.com/100785455

<comment><USER2> This is beautiful, I had to pause it a couple of times to check out the intense detail in the city render.

Out of curiosity, does anyone know how they generate the cityscape for these things? Do they use existing software like CityEngine ([http://www.esri.com/software/cityengine](http://www.esri.com/software/cityengine)) or just procedurally generate their own?

I'm guessing the latter in this case, because the buildings seem to idiosyncratic (main typology being pods on stalks) to be produced in dedicated urban modelling software.</comment>


A bot crawled thousands of studies looking for simple math errors - <AUTHOR> http://www.vox.com/science-and-health/2016/9/30/13077658/statcheck-psychology-replication <comment><USER2> In case it's of interest, the code for this is on GitHub.

There seem to be two repos for it:

      https://github.com/MicheleNuijten/statcheck
      https://github.com/seanrife/statcheck

They have slightly different commits in recent history. Guessing they'll just probably be sync'd back together at some point.

</comment><comment><USER3> I don't know why anyone would be opposed to this, given it doesn't have a significant amount of false positives.

<comment><USER2> Probably emotional/gut reaction thing by some people.

The concept itself sounds useful.</comment></comment>


Go tooling essentials - <AUTHOR> http://golang.rakyll.org/go-tool-flags/ <comment><USER2>
      For example, to disable compiler optimizations and inlining,
      you can use the following the gcflags.

      $ go build -gcflags="-N -I"

The flag to disable inlining appears to be incorrect.

It should be `-l` and not `-I`, such that it reads:

      $ go build -gcflags="-N -l"

<comment><AUTHOR> Whoops, fixed the typo. Thanks!

</comment></comment><comment><USER3> It's quite amazing just how easy it is to see options and flags when first reading documentation but not remember them because they are outside the normal usage.

seeing examples of why you might want to use or remember flag/options is great.

I should revisit the docs for things like the old core gnu stuff to see what gems I've overlooked.

</comment><comment><USER4> This post should be renamed from "Go tooling essentials" to "Useful flags for the Go tools" as per HN guidelines.

<comment><USER5> > please use the original title, unless it is misleading or linkbait.

I wouldn't class the article title misleading enough to warrant editorialisation. So this submission is following HN guidelines.

<comment><USER4> The author has changed the title of the blog post!

I will never complain about HN titles again because people just can't understand that both HN titles, and article titles can change quickly. It's the nth time I mention that the title is wrong _at that particular time_ , and instead of getting a "thanks" and all I get are downvotes by people that don't realise that _either the title of the submission or the title of the article_ has changed in the meantime.

<comment><USER6> This is a mature community so downvotes often mean:

1) Your comment is meta. Meta comments - however useful - should be below all comments discussing article content. In some cases we downvote if it happened to bubble up.

2) When a point is no longer relevant, it makes sense to push it to the bottom of the stack. That is not a judgment on its merits.

> I will never complain about HN titles again because people just can't > understand that both HN titles

Have a little more self-confidence about your contributions. If they're useful, just walk away knowing you did the right thing. You don't need to defend yourself as the veracity of it will make itself known given time.</comment></comment></comment></comment>


The Argument Against Cereal Grains - <AUTHOR> http://www.paleonu.com/panu-weblog/2009/6/23/the-argument-against-cereal-grains.html <comment><USER2> Humans haven't stopped evolving in the 8000 years since grains were cultivated. It would seem logical that changes allowing grains to form an effective part of the diet would have occurred. Take the example of milk - humans in heavy cattle dependent parts of the world (ie: most everywhere except north east asia) produce enzymes allowing its digestion into adulthood. So can we now digest grain effectively?

For comparison: a mutation in one gene giving a 1% increase in survival chance will reach 50% saturation in a population in an average of 100 generations. For humans that's 2500 years or so.

What I'm saying is that if you _don't_ have a genetic disposition to gluten intolerance you're likely to be perfectly ok with grain.

<comment><USER3> That's an excellent point. In fact, the rate of human evolution is hundreds, possibly even a thousand times faster than it was in paleolithic times. Less than 15,000 years ago, _nobody_ had lactose tolerance or blue eyes as an adult. Now, lactose tolerance is the norm and blue eyes are no longer uncommon.

[http://www.dailytech.com/Life+in+the+Fastlane+Human+Evolutio...](http://www.dailytech.com/Life+in+the+Fastlane+Human+Evolution+Accelerating/article10003.htm)

<comment><USER4> IIRC lactose tolerance is only believed to have become endemic since about 8000 years ago, incidentally right around when agriculture hit the big time.

I wonder if the control of pasture lands necessitated the higher calorific quantity an animal provides when it is milked. Less herd land means a farmer would need to extract more calories per animal to survive. Similarly less migration also means less danger and higher populations, which again require more calories per animal to sustain.

</comment></comment></comment><comment><USER5> "All plants tend to be in a contest with predators who might consume them."

I think the opposite is true in the age of agriculture. Your plant genes will propagate if McDonalds likes you in their buns.

<comment><USER6> Some of the most sophisticated bits of agriculture are devoted to resisting common predators (especially insects), making it easier to kill the predators/pests without killing the crop, etc.

Monsanto wouldn't be a bazillion dollar company if their GMO tomatoes were, like, really really redder than regular tomatoes.

<comment><USER7> I've been on a kick lately to plant a garden and studying permaculture. The argument permaculturists make is that in a diverse ecosystem, like a forest, everything is in balance, so pests are not as big a problem. For example, a permaculture garden would have chickens on it to eat the fly larva before they can infest the crops. With permaculture, there is no need for Monsanto.

In _monocultures_ , i.e. traditional farms, the tilling exposes the worms to the sun and birds and they are killed. Without worms, there is no life in the soil and the nutrients must be replaced by petrol based fertilizers. With permaculture, there is no need for fertilizer because the plants die and are composted and returned to the soil.

Anyway, point being, if we never used these companies' products to destroy the natural order of things, we'd have more productive land and no need to GMO tomatoes.

I don't mean to be preachy. I just discovered permaculture within the past week or so and it really _meshes_ with my hacker mind. The gardening world calls permaculturists "geeks" as well. If you're looking into gardening or sustainability, check out permaculture.

<comment><USER8> Rephrase that to "pests are not as big a problem for the _remaining_ plants" because the ones that had a problem with pests are dead!

I don't like monocultures either, but I can assure you that adding chickens directly to your garden won't help much: they'll eat your tender young plants in addition to the pests. But their manure is excellent fertilizer: my potatoes were huge last year.

However, I do take issue with the statement that "we'd have more productive land..." We wouldn't: compare "natural" farming anywhere in the world with the US approach of modern fertilizers and soil management techniques (annual tilling is frowned upon for a number of reasons) and, yes, GM plants and the yields are incomparable. There are a lot of things to be said against Monsanto, et al, but lower crop yield isn't one of them. Farmers aren't stupid: growing food is an expensive and unpredictable business and they'll take what advantages they can get.

<comment><USER7> The chicken example was concerning the cycle of flies in fruit trees. You're right, they will eat anything people will eat, including your lovely garden. But companion planting, like marigolds in tomatoes is also a permaculture design principle. Wormwood, the stuff in absinthe, is also good for chickens to keep away some parasites.

For anyone interested, it's definitely more complicated than I'm describing here (but not by much). Go to a video search site like bing or google and search for _permaculture_ and filter by videos longer than 20 minutes. There's a _wealth_ of information on it. Look for stuff about about Forest Gardens. There are several videos about Sepp Holzer in Austria who grows everything you can imagine. Really spectacular stuff!

As sethg said, by "more productive" I mean more food per acre. I've heard with permaculture, you can feed 10 people on an acre. The reason is because you have nut trees at the top, fruit trees below that, followed by bushes, herbaceous, root plants, then vines and climbers spread throughout.

In a monoculture, you have just _one_ layer of productivity: a field of potatoes with no trees. An apple orchard with no herbaceous plants or vines. It's like a web server at 15% capacity. Permaculture is to agriculture what virtualization is to I.T. Infrastructure.

<comment><USER8> * I've heard with permaculture, you can feed 10 people on an acre*

I'd be surprised it it wasn't even more than that if done carefully! You're right that by mixing plant types, you can achieve better density and get a synergistic effect (another example is planting garlic/onions next to potatoes to repel potato bugs). One problem with large commercial farms is that in order to reduce the labor needs you have to plant at a density that makes it easier for mechanized equipment to harvest and that means that you must generally separate crops.

I have seen research projects that used robots to plant seedlings: typically a very labor intensive task. I'm thinking that if you could build robots/smarter machines that could harvest a wide variety of crops instead of just e.g, what a combine can process, then greater density & improved crop mix could be achieved.

I've always enjoyed food gardening and more recently I've been thinking of ways to apply technology to large gardens/small farm plots to reduce the dependence on my very limited free time. The problem is that now my free time would be shifted from gardening to robotics research :-)

</comment></comment></comment></comment></comment></comment><comment><USER9> The author argues that "Fully 1% of the population has celiac disease, with 97% of these currently undiagnosed" as one of his arguments against eating gluten-containing cereal grains, but he is much less concerned about dairy products, even though lactose intolerance is _far_ more prevalent¹, especially among non-whites, than celiac.

¹see <http://www.aafp.org/afp/2002/0501/p1845.html>

</comment><comment><USER10> "...it has been qualified as a fad diet by the National Health Service of England and American Dietetic Association."

"A criticized 3 week trial with the Paleolithic diet, in 20 healthy volunteers of which 6 dropped out and only 6 of the remaining had complete dietary information available, showed variable results. During the trial calorie consumption decreased 36% leading to significant weight loss. However, adverse changes in serum calcium were observed.[147] The NHS Knowledge Service states that there are several limitations to this particular study and that "readers should not draw too many conclusions from it."[148] Also, the Halford Watch refers to this study as "bad science".[149]"

<http://en.wikipedia.org/wiki/Paleo_diet>

</comment><comment><USER11> The author makes some good points but... cereal grains are delicious...

<comment><USER4> You can't beat a Duracell AA made with real genuine corn products, it just wouldn't be the same if they replaced the cereal calories with beef drippings.

</comment></comment><comment><USER12> I stopped eating wheat entirely on Jan 1, as well as most other grains, lost 25 lbs effortlessly, energy shot up, and my LDL cholesterol dropped precipitously. Though I now am sold on the notion that grains are simply nature's way of making you fat, some of the paleo folks go to opposite extremes. For example, IIRC, Dr. Harris (of the paleonu blog above) recommends heavy cream in your coffee. Perhaps this is ok, heartwise, but I think the jury is still out on the long term effects of saturated fat (cancer, etc...)

<comment><USER3> That's an interesting anecdote. I know a number of Japanese who moved to the US for school, stayed the same weight for a while, but then gained 10+ kilos of fat when they _stopped_ eating rice or noodles every day for breakfast, lunch and dinner. Clearly, some of the worlds longest lived people (Japan #1, HK #2) do very well on diets with a far larger portion of their calories coming from grains than the typical American or English diet.

This isn't to say that there aren't any heavy meat-eaters, or especially fish- eaters in the world who remain healthy. But on the whole, meat consumption is strongly correlated with lifestyle diseases and shorter lifespans, when comparing populations of similar wealth.

<comment><USER12> It's unclear to me how you arrive at the conclusion that the Japanese eat a far larger portion of grains than the standard american diet. I'd like to see some clear statistics on that. One thing I've read is that americans simply eat more calories, period, which would help account for your anecdotal observations.

Furthermore, it may be that the Japanese diet has a number of healthy side effects that counteract their rice consumption: seaweed, high omega-3's in fish, natto (source of K2), etc... Country by country comparisons are famously problematic (see "Good Calories, Bad Calories") because there are so many variables to consider.

Finally, I'm not suggesting "eliminate grains and eat more meat," rather "eliminate grains and eat more vegetables."

<comment><USER3> I have read the statistics before-- in the 70's 70% of their calories came from rice alone, and even now, nearly half their calories come from rice and over 70% from carbohydrates in general.

I've also lived with several Japanese people. A bowl of rice is eaten at almost every single meal, including breakfast. It is true that the diet has become westernized and meat and fat consumption have gone up in the past 40 years... but so have their rates of heart disease and diabetes.

I don't have as much familiarity with HK diets, but they are also eat rice, noodles or dumplings at almost every meal, and eat less meat, and dairy than Americans. Having lived most my adult life in Taiwan, I can say with absolute certainty that from this side of the world, the US diet looks absurdly high in meat and junk food and severely lacking in whole grains, vegetables and fiber.

Edit: It's also uncommon for people here to _worry_ about adding more protein and more meat to their diets like people in English speaking countries do. It's not even on the radar.

</comment></comment></comment></comment><comment><USER13> It's hard to take seriously a diet that says:

"2. Start eating proper fats - Use healthy animal fats or coconut fat to substitute fat calories for carbohydrate calories that formerly came from sugar and flour. Drink whole cream or coconut milk."

Now I am not a big fan of cereals myself (I prefer greens) but to push animal fat...

I would really like some serious studies for the Paleo fad. I strongly believe it will have some disastrous effect on the long term. Kinda' like Atkins had.

<comment><USER13> For a good lauch, read the dude's meal plan:

[http://www.paleonu.com/panu-weblog/2009/11/13/what-i- eat.htm...](http://www.paleonu.com/panu-weblog/2009/11/13/what-i-eat.html)

I would LOVE to know about the state of his arteries in about 10 to 15 years.

<comment><USER3> His arteries will probably be like those of many other heavy meat-eaters, but it's not his arteries that concern me. Check out his response to the 3rd commenter on that page, who mentioned that her son doesn't follow the paleo fad diet:

 _"Your son, do you light his cigarettes for him, too? I am a nazi about not having bread in the house- maybe that's stupid but the only poison I'll supply to guests is whisky and wine."_

It's one thing to be a fringe nut-case who rejects the empirical findings of mainstream dietary research, but imposing the same on one's children is very disturbing.

</comment></comment></comment><comment><USER14> Billions of healthy, lean, long-lived Asians might be surprised to hear that rice is bad for them.

</comment><comment><USER15> My uninformed stance: Eating grains is good, in moderation. Having about half of your calories come from corn (as is the case for most people in the US) is not good. Using corn syrup instead of sugar as a sweetener is not good.

Diversity good. Monoculture bad. For soil and for the body.

For the individual, the early (grain-based) agricultural diet was starkly inferior to that of the hunter-gatherer. Once the population gets to a certain point, people have to adopt agriculture; the alternative is fishing/hunting the available stock into extinction, and then starving. However, agriculture can support a larger population, by about an order of magnitude. Having 10 times as many people, in mediocre health, won out.

<comment><USER16> he tries to arge that now we can have 10x in good health.

But i fail to see too much science there... I will continue eating all grains, except corn and soy.

<comment><USER15> Grains have their place, as a source of complex carbohydrate calories. They're low on nutrition, but high on calories, and as long as one understands this (useful) purpose I don't see a problem. Calories are necessary, to a point. Throughout much of history, high energetic content was an advantage. Medieval peasants ate 2-3 times as many calories as we eat today, because they worked them off in the fields.

Especially now, it wouldn't be healthy to eat 2000 calories/day in red meat or fish, much less 5-6000. It's not really possible to eat that many calories' worth of blueberries. This is where staple crops come in.

Of course, no one who is food-conscious should be eating _refined_ grains such as white bread, because those are essentially pure sugar.

</comment></comment></comment><comment><USER17> oh you mean Atkins Diet!

I do believe various humans account for various needed best diets. Simply because our lineage is all a little different. Some people come from the first farmers who were probably harvesting some type of cereal crop. Others come from nomads or hunters...

Just don't be fooled into thinking there is one "diet" to fit everyone.</comment>