Formal proof and analysis of an incremental cycle detection algorithm - <AUTHOR> http://gallium.inria.fr/blog/incremental-cycle-detection/ <comment><USER2> I remember reading somewhere about programs being turned into generating functions and then asymptotic complexity follows from that. Not just asymptotic in the worst-case but also the best-case and average case.

It did not require a formal proof. It just turned code into generating functions.

It was probably work by Philippe Flajolet, also at Inria.

I think I also remember it being used for memory reads and writes in addition to comparison ops analysis.

Really great stuff.

<comment><USER3> (author here)

There are indeed several interesting lines of work on automated approaches to complexity analysis, using various techniques. To name a few, these include the very cool work of Jan Hoffmann and others on RAML ([http://raml.co](http://raml.co)), relying on a a type-based analysis, or the work of Dan Licata, Norman Danner and others on "recurrence extraction", which is closer to what you mention (a program is turned into a recurrence equation which can be in turn analyzed further to deduce its complexity).

The strengths of the approach (based on a program logic and formal proofs) that we demonstrate in the work linked here, is basically that it scales up to very complicated programs and/or very subtle complexity analysis.

Automated approaches are intrinsically limited in the class of programs they can handle (often, they either handle purely functional programs, or first- order integer-manipulating C-like programs), and in the class of complexity bounds that they can infer without human assistance (most of the time, only polynomial bounds, no log/polylog/...).

We do require a (very qualified!) human to carry out the formal proof, but in return we get a system that can handle higher-order code with mutable data structures, and subtle complexity analysis that _do depend on the functional correctness of the overall algorithm_. This is something that an automated tool cannot hope to achieve in a press-button fashion.

In case some people would like to know more about the various approaches to (formal) time-complexity analysis, I should mention that the related work section of my PhD thesis contains such an overview :-) ([http://gallium.inria.fr/~agueneau/phd/manuscript.pdf](http://gallium.inria.fr/~agueneau/phd/manuscript.pdf))

<comment><USER4> Nice work.

Formal methods, automated theorem provers and safer languages have come some ways since I started in the era of staring at glowing CRTs and fiddling with keys. To me, if we can't prove we're building things on a solid foundation, we're just doing one order-of-magnitude removed from writing code without tests.

0) Prove the compiler is correct.

1) Prove the OS is correct. (seL4, for example)

2) Prove programs are correct.

I think we're rapidly approaching barriers in effort, error-detection, and cognitive abilities that even the best handful of highly-skilled homo sapiens sapiens have difficulty proving/doing/scaling. At what point (or tapering era) do we more seriously consider systems for autonomously generating code# with automated correctness, worst-case and timing analysis? We have massive, massive code-bases of Linux, LLVM, OpenBSD, etc. without formal proofs but with unknown-unknown numbers of bugs... just the other day, someone working in Rust ran into an LLVM bug involving bounds checking. (Yikes!)

# Let's first make it easy by constraining the solution-space to simplistic, imperative, SSA w/ liveness (lifetimes) logic.

</comment></comment></comment><comment><USER5> Not sure how related this is, but one thing I found interesting is that the recent QuickJS by Bellard uses ref counting + cycle collection.

[https://bellard.org/quickjs/quickjs.html#Garbage- collection](https://bellard.org/quickjs/quickjs.html#Garbage-collection)

That is, it's the same strategy that CPython uses (although CPython's detector is generational). People seem to say that CPython's design is old or suboptimal, but a brand new interpreter made the same choices.

And as the manual says, a major reason is that the interpreter can hold pointers to values without any special consideration. In contrast, v8 has to carefully wrap everything in Handle<>, and there are a bunch of elaborations on that which seem tricky to me. Then again, doing ref counting with 100% accuracy by hand also seems tricky to me.

<comment><USER6> AIUI part of the trade-off between cycle counting and tracing is ease of implementation vs performance. I also remember reading somewhere (unfortunately the where is lost to the mists of my memory) that as the reference implementation simplicity was an explicit goal of CPython, to the extent that there's little optimization done to the bytecode.</comment></comment>


Cryptocurrencies Were Never Good for Anybody but the Rich - <AUTHOR> https://motherboard.vice.com/en_us/article/j5a98k/cryptocurrency-investing-bitcoin-never-good-for-anybody-but-the-rich <comment><USER2> Here's a simple proof.

Who could afford to lose $10,000 in 2005?

As with most risky investments, of course it's better for people who can afford to risk higher amounts of money as a lower percentage of their wealth. This is dead simple economics.

</comment><comment><USER3> The article basically states that rich people made a shit ton of money from cryptos because they had the money and knowledge to invest.

</comment><comment><USER4> Hard money is a benefit to everyone, especially those whose income is close to their living expenses. Remember wage rises only serve to keep up with inflation.

Now whether or not most cryptocurrencies deserve to be called sound money is another question entirely.

</comment><comment><USER5> actually its been very good to me and im dirt poor (yes if id saved even 10% of the coins i mined id be a millionaire by now, no i have no regrets)

im just an average working joe who earns just enough to get by at best but crypto enabled me to take holidays in places id only dreamed of, bitcoin has made the last 8 or so years of my life vastly better and i am by no means at all rich

</comment><comment><USER6> Nah. If you hopped in early you made, and still make, tonnes. It was amazing for the intelligent poor.

Not to mention there are cryptocurrencies made to do genuinely cool things, like to allow private transactions for people in authoritarian countries, make contracts that _actually_ are guaranteed to work, and more.</comment>


Ask HN: Can you really learn a language with Duolingo? - <AUTHOR> <comment><USER2> It offers a good grounding. You'll need to speak with native speakers regularly if you want to become fluent, but it's good for getting you over the, "I can't make myself understood at all," hump.

Of course you can be a bit stilted by learning from sources other than people. I once heard a story about someone who learnt German from videos. When he went to Germany he was told he sounded a bit like Hitler.

</comment><comment><USER3> I learnt Danish with it, so YES!</comment>


Show HN: Discover the tech stack for any website - <AUTHOR> https://sitestacks.com/?ref=nyc <comment><USER2> So today I learnt that Amazon.com is acutally hosted on Google Cloud Platform uses Google Domains as well as 1&1 Hosting, alongside Adobe TagManager and Google Analytics. Who could have known? \s

Something is really off there, what do you do to get these results? [https://sitestacks.com/amazon.com](https://sitestacks.com/amazon.com)

<comment><USER3> wow !! unsure if that's actually true.

<comment><USER4> It's at least partially true:

This is valid: [https://mail.google.com/a/amazon.com](https://mail.google.com/a/amazon.com)

This is not valid: [https://mail.google.com/a/thisisafakedomain.cx](https://mail.google.com/a/thisisafakedomain.cx)

All that means is that they at least used Google Apps at one time. I have a number of abandoned accounts that show as valid even though the domains are dead and the accounts are no longer used.

The same type of domain enumeration doesn't work for Drive.

</comment></comment></comment><comment><USER5> Interesting, but the results seem kind of misleading. For example, [https://sitestacks.com/linestarve.com](https://sitestacks.com/linestarve.com) says I'm using "NameCheap Web Hosting" \-- they're my registrar, but I run my own HTTP server for that domain. Meanwhile [https://sitestacks.com/analytics.bitmash.io](https://sitestacks.com/analytics.bitmash.io) reports that it's built with Piwik (true, but I would expect that to appear on a page _using_ Piwik, which it doesn't), but for some reason leaves out all mention of webserver, DNS hosting, and so on.

<comment><USER6> Thanks for the feedback. Sounds like NameCheap should be picked up as a registrar; we'll take a look!

On the second point, we should clarify that the data is meant to be domain- wide (except for the real-time mapper for domains not already in our universe - there we only look at the first page so we can return data quickly).

<comment><USER5> What do you mean by 'domain-wide'? Is it supposed to pick up everything on the domain and its subdomains?

</comment></comment></comment><comment><USER7> Had a quick go and was pretty disappointed. Most of this is just having a look at the third party js loaded. Other things are wild guesses based on DNS, which has nothing to do with the website but are either out of date or reside in unassociated parts of the business. The tech stack detection was was almost entirely wrong :(

</comment><comment><USER8> In order for me to actually use your service it would need to be rolled into a browser extension. This needs to be at your fingertips when you need it, now I need to copy-paste the url into a new tab. I use Wappalyzer [1] a couple of times a day and love the browser integration.

[1] [https://wappalyzer.com/](https://wappalyzer.com/)

<comment><USER6> Got you covered [https://www.producthunt.com/posts/sitestacks-for- chrome](https://www.producthunt.com/posts/sitestacks-for-chrome)

</comment></comment><comment><USER9> These tools never work well, usually a weak combination of scraping the html, JS tags and checking DNS entries. Siftery tried something similar with a bunch of VC raised and is equally bad.

The only decent one is [http://builtwith.com](http://builtwith.com) which also happens to be a great 1-man business.

<comment><USER10> From the website:

> This is a limited profile. > To see additional products added by employees > and vendors, check out Siftery's profile.

Both sites use the same domain provider and the same SSL cert provider. I'd say with medium confidence they are probably 2 products of the same company.

<comment><USER9> Looks like that's corroborated by the other comments on this page, which makes it even worse.

</comment></comment></comment><comment><USER3> doesn't [http://www.builtwith.com/](http://www.builtwith.com/) do this already and have so much data too ?

<comment><USER6> Yeah, and they're not the only provider you can point to. Some competition pushes everyone to do better?

Here's my pitch for why you might want to use SiteStacks with a browser extension:

Lightweight: The extension is only 25 KB (mostly images). The one-click technology lookup runs entirely on our servers. No content insertions or background processes to slow down your browsing. It's like your favorite search engine.

Secure: SiteStacks doesn't download any of your browsing data - only the active tab URL is passed along.

Great product coverage: SiteStacks is supported by Siftery and its library of over 40,000 products. SiteStaks includes data for some products that isn't publicly available anywhere else.

Best-in-class accuracy: The data on SiteStacks benefits from validation form the awesome Siftery community. This built-in constant feedback loop helps us identify data collection methods that are yielding bad data and ultimately promotes best-in-class data accuracy.

</comment></comment><comment><USER11> Dupe from 20 days ago

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

</comment><comment><AUTHOR> SiteStacks can find the technology used at any domain, including a set of roughly 700,000 that we're regularly checking.

What makes the dataset unique is the combination of programmatic data (code breadcrumbs, network requests, DNS, some NLP, etc.), but augmented by data validated by users directly.

The user validated data is only available on Siftery (e.g. for sitestacks.com/uber.com you have to follow the link through to siftery.com/company/uber to see the full set), but all the programmatic methods are improved by user-validated data (e.g. if a method yields too many false positive, we bump it out).

We think this approach helps create the most accurate dataset of its kind. We've done some internal benchmarking and feel really good about it.

We're looking for feedback on how this can be better, and open to partnering with others who want to make use of this data for good.

<comment><USER12> just tried this for our app, and it wrongly reported mandrill and flash (we're not using any of them). we used mandrill a few years ago, so this might be some stale historical data, but the app never used flash.

<comment><USER6> What's the URL? We can report back exactly why it was picked up.

Even if we're wrong, it's exactly this kind of feedback loop that's built into the product and ultimately helps make the data better for everyone else.

</comment></comment></comment><comment><AUTHOR> I should also mention we have new browser extensions for chrome - [1] and firefox - [2]

[1] [https://chrome.google.com/webstore/detail/sitestacks- instant...](https://chrome.google.com/webstore/detail/sitestacks-instant- tech-l/nnknmohbeolbkgeggkiaifelfkdlnfak)

[2] [https://addons.mozilla.org/en- US/firefox/addon/sitestacks/re...](https://addons.mozilla.org/en- US/firefox/addon/sitestacks/reviews/)

</comment><comment><USER13> Also see Whatruns which was on hn last month : [https://news.ycombinator.com/item?id=15098028](https://news.ycombinator.com/item?id=15098028)

</comment><comment><USER14> > We're looking for feedback on how this can be better, and open to partnering > with others who want to make use of this data for good.

Responding to the feedback and data discrepancies mentioned here would be a good start. The HN community here is testing this for you for free and providing you with valuable feedback, and asking you questions that you need to answer, if you want to make your product useful.

I don't see you (OP) responding to anyone. The 2 posts from you are both promoting the site.

<comment><USER15> We are looking into the data discrepancies, it might take a bit of time to get through the individual errors. DNS + Registrar data seem to have brought on false positives. We need to beef up on Front-end tech too. The real time mapper needs work.

Humbling comments really, we have our work cut out.

</comment></comment><comment><USER16> [https://sitestacks.com/products/g-suite-formerly-google- apps...](https://sitestacks.com/products/g-suite-formerly-google-apps-for- work)

Doesn't seem like it is accurate though. Seems like this is more of crowdsourced data than automatically figuring out things.

</comment><comment><USER17> Ran it on [https://canpicker.com/](https://canpicker.com/). It's kind of cool and accurate but I was expecting it to pick up stuff like react and maybe finer grain details like individual libraries.

</comment><comment><USER18> Passenger doesn't necessarily imply Rails. builtwith.com gets this wrong too.

<comment><USER6> Thanks for that piece of feedback. Team's looking into it.

</comment></comment><comment><USER19> I wish I could be more specific but I looked at this for the site I work on and quite a bit of it is incorrect.

</comment><comment><USER20> I tried it with my website. It spotted google analytics (correct) and HTML5 (correct again)

I was curious to see if it was going to work out that I am running it against Google App Engine but it did not figure that

</comment><comment><USER21> Congrats on the launch. It looks like I can click on a tag (on hover, color and cursor change), but when I do that nothing happens.

<comment><USER6> You're right. We'll fix that. Thanks!

</comment></comment><comment><USER22> It does not pick react, and mis-reported a site as using angular while it was based on React.

</comment><comment><USER23> Id like to see some ability to detect different CMSs

<comment><USER6> Our focus has been more on business tech, but we're expanding coverage into cms, libraries etc.

Here's some data we have on CMSs currently

[https://siftery.com/categories/content-management-system- cms...](https://siftery.com/categories/content-management-system-cms/web- content-management) [https://sitestacks.com/products/wordpress](https://sitestacks.com/products/wordpress) [https://siftery.com/wordpress](https://siftery.com/wordpress)</comment></comment>


Why Facebook, Google move to statically typed language? - <AUTHOR>

Why Facebook (hack), Google (go) moving towards statically typed languages? Is it true that it is difficult to maintain a large code base of a dynamically typed language?
Facebook: https://code.facebook.com/posts/264544830379293/hack-a-new-programming-language-for-hhvm/
I could not find an article from official Google source, but I heard from one of its employee that they are switching for most projects from python to go lang. <comment><USER2> From my experience I feel its a right move. Large code bases are indeed difficult to maintain in a dynamically typed language. [http://arstechnica.com/information-technology/2014/06/why- do...](http://arstechnica.com/information-technology/2014/06/why-do-dynamic- languages-make-it-difficult-to-maintain-large-codebases/)

</comment><comment><USER3> This answer is comprehensive. [http://programmers.stackexchange.com/questions/221615/why- do...](http://programmers.stackexchange.com/questions/221615/why-do-dynamic- languages-make-it-more-difficult-to-maintain-large-codebases/221658#221658)

</comment><comment><USER4> Google is, and always has been, a mostly Java/C++ company</comment>


Ford Cancels $1.6B Plant in Mexico to Make Investment in U.S. Jobs Instead - <AUTHOR> http://jalopnik.com/ford-cancels-1-6-billion-plant-in-mexico-to-make-inves-1790710697 <comment><USER2> 700 new jobs is fantastic news.</comment>


Coming soon: express even more in 140 characters - <AUTHOR> https://blog.twitter.com/express-even-more-in-140-characters?hn20160524 <comment><USER2> > New Tweets that begin with a username will reach all your followers. (That > means you'll no longer have to use the ".@" convention, which people > currently use to broadcast Tweets broadly.) If you want a reply to be seen > by all your followers, you will be able to Retweet it to signal that you > intend for it to be viewed more broadly.

This is terrible. They are introducing a way to broadcast mentions without using .@, which is great. So why also making non-reply mentions forcefully broadcasted, with no way to hide them!?

I don't want my @ThreeUKSupport tweets to go to all my followers.

<comment><USER3> I don't understand why Twitter never implemented some sort of categorization feature. There are many individuals that I'd follow if I could just get a subset of their tweets in my feed.

For example, I might want to follow scientists' tweets on science, but not their political or favourite sport team tweets. Right now it's either all or nothing, but why can't people categorize their tweets so only people interested in them see them? This would be better for both parties.

<comment><USER4> Same goes for Facebook. They surely have the ability to discern political posts from non-political ones, but the only control over what appears on our news feeds is follow/unfollow.

<comment><USER5> Facebook feed does that for you.

<comment><USER6> Yes. You must have faith in the algorithm. Do not question its results.

</comment></comment></comment></comment></comment><comment><USER7> As someone who has been using Twitter since 2006, all of these changes make sense to me, and I'm happy about them. But I can't imagine them being anything but more confusing to any casual user. I don't know what the right answer is, but making people remember more "rules" for what will make a Tweet show in peoples' timelines seems like a mistake.

<comment><USER8> My understanding is the rules are now simpler: A reply will not show up to your followers unless they follow the person being replied to, just as before. All other tweets will be shown.

I seem to remember some celebrity being mocked because their first tweet was unintentionally not broadcast as it started with '@'. I wouldn't be surprised if many users are initially confused by this feature, so hopefully this change will make things easier.

</comment></comment><comment><USER9> Am I misunderstanding this statement?

> New Tweets that begin with a username will reach all your followers. (That > means you'll no longer have to use the ".@" convention, which people > currently use to broadcast Tweets broadly.) If you want a reply to be seen > by all your followers, you will be able to Retweet it to signal that you > intend for it to be viewed more broadly.

What if I don't want a reply to be broadcast in everyone's feed? (Not that it's private, but it's just not relevant and usually lacks context). Or are they saying that if you want it shown to everyone, retweet it and it'll show up to everyone?

<comment><USER10> If you are replying to a tweet, they won't show up for everyone. This only applies when composing a new tweet from scratch that starts with an @name (and behind the scenes does not contain an "in_reply_to", which if you want to broadcast to everyone, can now be retweeted).

<comment><USER11> How can it tell? This must use some out-of-band data to figure out whether it's a "new" tweet or a "reply"?

Is that compatible with API consumers or the SMS interface? (Or are these both dead?)

<comment><USER12> Twitter have been largely ignoring SMS for years...

If you reply via an app or their website, they attach the id of the tweet you are replying to in their database. This is how they can show you a conversation timeline.

Note btw that their new "retweet with a comment" system breaks said timeline tracking...

</comment></comment></comment></comment><comment><USER13> > When replying to a Tweet, @names will no longer count toward the > 140-character count. This will make having conversations on Twitter easier > and more straightforward, no more penny-pinching your words to ensure they > reach the whole group.

Hopefully this is just for replying to people mentioned in the original tweet, otherwise spam bots could have a field day with this. I'm guessing the people at Twitter already recognised this though.

</comment><comment><USER14> While quietly pulling off the ability to have PNG and GIF profile images against what stated in the documentation [1], leaving only poorly encoded JPEG [2]. And JPEG images are double compressed.

[1] [https://support.twitter.com/articles/127871](https://support.twitter.com/articles/127871) [2] [https://twitter.com/vmdanilov/status/735142731945803780](https://twitter.com/vmdanilov/status/735142731945803780)

</comment><comment><USER15> For the life of me, I could never understand how to use Twitter. It seems it's getting even more difficult.

<comment><USER16> I suspect that Twitter became popular because it came before Instagram and Snapchat. If it had come after, it would be ignored.

I taught an MBA class with 11 students. They were required to use Twitter for a group assignment.

My shock when a large majority of them had never used it, and a large minority of the new users just couldn't figure out how to use it, and why it was useful.

<comment><USER17> I have a four-letter Twitter handle (so I have had it since the dawn of time) but the "why it was useful" part still eludes me.

</comment></comment></comment><comment><USER18> These are great changes for the platform as I always felt the 140 characters was a difficult limitation for replies.

Perhaps, it would have been easier to just increase the general limit to 160 characters; avoiding so many work-arounds and different rules. I wonder what impact of 20 more characters would be in terms of hardware and bandwidth at Twitter's scale.

<comment><USER19> >I wonder what impact of 20 more characters would be in terms of hardware and bandwidth at Twitter's scale.

I'm sure they're concerned less with the technical impact than the risk of changing the product somewhat drastically. The char limit is a fundamental aspect of twitter. It forces people to create curt, easily digestible content. Expanding that limit might have pretty bad side effects, such as people communicating the same message they would have in 140 chars, but more verbosely (which weakens the product).

</comment></comment><comment><USER20> The new "broadcast @tweets to all of your followers" to me reads as "now your twitter feed will become even noisier".

On the other hand, their incredibly annoying "here's what you missed" and "non-linear timeline" feature will help limit that, combining the chocolate that I hate with the peanut butter that I can't stand into something approximately edible.

I can't say that this is an objectively bad move, but it definitely sounds like it'll erode Twitter's usefulness _to me_.

</comment><comment><USER21> That should stave off bankruptcy

<comment><USER22> Twitter has enough cash to run as-is for 400+ years.

[http://www.usatoday.com/story/money/markets/2016/01/25/twitt...](http://www.usatoday.com/story/money/markets/2016/01/25/twitter- has-412-years-fix-itself/79301680/)

</comment></comment><comment><USER23> I'm happy about this. It keeps the spirit of the short messages while doing away with unnecessary technical limitations.

</comment><comment><USER24> So what are the new limits if links, usernames etc. do not count against the 140 character limit? It will hopefully not be possible to create "monster" tweets with thousands of @ notifications and/or hundreds of images...

<comment><USER25> Links will still count towards the character limit for now as Twitter is concerned with abuse/spam. What we may see at some point is Twitter not counting the first link in a tweet against the 140, but counting subsequent links.

As for images, here's a limit of four per post, and Twittwr groups multi into a display with one URL. Videos, Vines and polls are capped at one.

It's possible to have many, many usernames in a reply, but I don't know if there is an upper bounds.

</comment></comment><comment><USER26> @people @with @generic @usernames @will @soon @be @getting @a @lot @more @tweets!

</comment><comment><USER27> For those concerned about the possible bandwidth issues or scalability issues Twitter might have implementing their 'even more' characters, don't forget we can post upwards of a 2-3MB JPEG and Twitter handles it just fine.

I always liked the idea of stuffing data in metadata. For me, most tweets are insubstantial and thinly veiled metadata. There are always those claiming a tweet 'means' something but the context is usually entirely missing, hence the phenomenon of 'subtweets' and worse: the dreaded tweetstorm.

I could even encode arbitrary data in a JPEG if I wanted and get back data byte for byte. I just wonder what my followers would make of such tweets and if they are clever enough to fuzz the JPEG for meaning and context.

</comment><comment><USER28> 140 characters limit is confusing. Twitter is making the rule even more confusing by counting some characters but not others.

</comment><comment><USER29> Did I understand correctly that when I start a tweet with a username it will show up in the feeds of all my followers? That is pretty annoying, sometimes the conversation can be public but you don't want to bother anyone with it. Also, most people do not yet allow people who they don't follow to DM them.

<comment><USER30> Sounds exactly like that. Yet again Twitter goes: "you know all those things people keep asking for? let's do 4 different things and get rid of something with no workaround available".

This is so bad it's getting hilarious. I mean, either the leadership is completely unaware of issues people raise for years, or they are and intentionally neither comment on nor fix them. Either way - WTF? I honestly think they're just delusional about being too big to fail at this point. Another social network will make them the latest MySpace though, just a question of time.

<comment><USER31> Going to 141 chars would solve all their problems imho

</comment></comment></comment><comment><USER32> Oh good, a way to encourage harassment.

Before: some @jerk keeps sending annoying tweets to @victim, but since they aren't .@ tweets only the victim sees them in their timeline, or people who follow both @jerk and @victim.

Now: @jerk continues to send annoying tweets to @victim, but now everyone who follows @jerk sees the attacks, so if they're like minded they can now pile on @victim too.

With everything that keeps going on, including celebrities leaving Twitter due to harassment issues and having to seriously bulk up their harassment rules and enforcement departments... you'd think they'd think about some of this stuff first.

But wait, it gets worse:

[https://twitter.com/chrisremo/status/735115850445783043](https://twitter.com/chrisremo/status/735115850445783043)

You can now @mention up to 50 people, but ONLY THE FIRST WILL SHOW. So now you can easily harass huge groups of people and they won't even know why they're getting the tweet in the first place!

 _facepalm_

<comment><USER33> I don't see that this change will encourage harassment. @jerk could always have dot prefixed his tweets (as today) and have his followers see the mention. That's not new, it's just one character less they have to type.

I'm not saying there's no issue with online harassment (there is), but this doesn't make it any worse.

<comment><USER34> It's going to make it far easier. While they could dot prefix, they usually didn't. Now they don't have to, and they get bonus visibility.

<comment><USER32> Precisely. Before you had to be purposeful about it by adding the . before the @.

Now it's automatic, and possibly unintended. Send a slightly rude tweet to someone you're mad at? Maybe sarcasm that some of your followers don't see as sarcasm? Now your friend may get harassed by your followers.

<comment><USER35> @jerk is usually very purposeful.

</comment></comment></comment></comment></comment><comment><USER36> Could somebody please write up a 140 character summary of this long one-page blog posting?

</comment><comment><USER10> Details on the changes in the API: [https://dev.twitter.com/overview/api/upcoming-changes-to- twe...](https://dev.twitter.com/overview/api/upcoming-changes-to-tweets)

<comment><USER37> I thought Twitter banned third party clients a few years ago? They still have an API? For advertisers?

<comment><USER38> No they did not. They rate limited it so much they made third party clients not very useful. Also, most clients are limited to 100000 users, which is a limit some of them hit.

</comment></comment></comment><comment><USER39> Such groundbreaking features, I can see their +1k engineers all working hard for months to accomplish the goal and to hit the deadlines.

</comment><comment><USER40> I want versioned tweets so I can edit my tweets.

</comment><comment><USER38> > New Tweets that begin with a username will reach all your followers. (That > means you'll no longer have to use the ".@" convention, which people > currently use to broadcast Tweets broadly.)

Conspiracy theory: they are doing this to fill our timelines with noise so we welcome all the algorithmic changes to the holy and sacred chronological order of our timelines.

</comment><comment><USER34> Nobody has been asking for this. People have, however, been asking for ways to curb the tidal wave of harassment that happens.

<comment><USER41> If by "people" you mean "vocal minority", and by "harassment" you mean "public replies to public postings".

There needs to be a warning of some kind. People seem very unclear on this and don't get that putting something into the tweet box is like shouting it on the street corner. People can and should be expected to shout back.

<comment><USER42> The only people who ask for anything are vocal minorities.

And when the public replies are from a swarm of shortlived anonymous accounts, but direct a storm of abuse at an individual's persistent online identity, as well as often any accounts with whom they have interacted... that's not just people shouting back, that's something wholly different and unique to the twitter environment.

<comment><USER41> While I have no doubt this happens (if anything happens on the internet, it's breeding a better asshole), I question whether it happens as much as some of the posts in this thread make it sound like.

As in, whether it happens enough to restrict the way most people interact with the site.

As a counterpoint, most of the onsite crowing I see about "abuse" and "harassment" on Twitter is of the "I said something publicly, responding to me publicly is harassment" variety. And then when I go look at the timelines, I don't see anything particularly awful.

Anyone with that mindset should start a blog.

<comment><USER34> Your posts are coming from someone who has likely never had to experience that. While that's good, and I hope you never do, stop trying to downplay the experiences of others.

<comment><USER41> I will absolutely not. When those experiences (were this any other field, we'd call them anecdotes) are being used as an argument to change the way something works for literal millions of unrelated and unknowing people, it is open to the same criticism, scrutiny, and verification that any other piece of data is.</comment></comment></comment></comment></comment></comment>


News.YC statistics - community cohesion - <AUTHOR> http://clipboarded.blogspot.com/2008/02/newsyc-statistics.html <comment><USER2> It's not entirely clear to me that news.yc would be a better place without all the submissions and comments that get only one or two upvotes. For example, I'm still convinced that idiagram's wicked problem solving visualization was one of the intellectually interesting (and beautiful) news.yc submissions ever, even though I'm apparently the only one who voted for it:

<http://www.idiagram.com/CP/cpprocess.html>

Looking through my own submissions I see that the more intellectual stuff I've posted, while it's done well, has never gotten as many votes as the pithy one- liners.

<comment><USER3> Just looked (again) at that link. I recall this page and recalling myself not getting far through it. On my revisit I still couldn't read it through entirely. It looks like one of those handouts that presents an unspecific problem, to which it throws a bunch of unspecific waypoints that lead to an unspecific solution.

I suspect you see something that I didn't; how do you approach reading this?

Also, between reading and coming back, you have been downvoted once. I have no idea what is downvote-worthy in your post... sometimes I just don't know what I am missing -- or if there is anything to miss in the first place.

<comment><USER4> I've wondered about that too - what motivates people to vote something up or down? Is voting up more a measure of interest, agreement, surprise, appreciation...? Would you vote down because you don't agree with a comment or because you think it's irrelevant, self-serving, unoriginal, or poorly-stated? (I didn't see anything I thought worthy of downvote on the parent comment either; I vote it up as thought-provoking even though I didn't quite get the point of the thing he linked to.)

<comment><USER5> Correct. :)

No, seriously, all the reasons you present a perfectly legitimate reasons for up/downvoting and are reasons that I have considered at various times.

<comment><USER6> Is it even possible to vote something down? I don't see any down arrows. Maybe I don't have enough karma?

<comment><USER5> You can't downvote until you have enough karma, and a comment cannot be downvoted after it's been around for more than 24 hours. This is to prevent someone from vindictively going through a person's "threads" and downvoting all of their comments in an effort to kill their karma.

You can never downvote article submissions; they can only be upvoted. Downvoting sumbmissions has merit in some cases (removing spam), but in practice it has been used on other sites to kill everyone's submissions except your own, rapidly leading to a downmodding war where the winner is whoever is more committed to their karma score, instead of the one who is submitting the best articles.

<comment><USER6> Interesting, thanks!

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Interesting. I post lots of things that I find obscure and don't expect others to upmod.

I think part of the reason that news.yc is interesting is that there are a number of non-overlapping interest areas within a tight niche. Think about that. Diversity within a narrow field. I like that.

</comment><comment><USER8> Thanks for posting this interesting data set, but after thinking about it for some time, I don't think this data offers any insights into yc.news. The leader to user ratio is too high, which skews all the numbers so that nothing really meaningful can be extracted. It's also hard to spot any trends from the point system alone - user identity, time of post relative to other news, and the controversy of the post content can play important factors in the post's point value, and all of these don't necessarily have any correlation with the user who posted it. I think in order to figure out something about the community, someone will have to get their hands dirty and actually look at post content.

<comment><USER9> Those are nice stats, and I do think we can get some interesting characteristics about our community. I thought it is quite powerful to point to paul, palish, sharpshoot, or pg, and say that they _are_ the community, since they have the best points per post measure. They are nothing less than the best representatives of our community (with regards to posts, not comments).

I'd like to think that the factors you mentioned (traffic, time of the day, controversy of the post) iron out statistically (since all posts are affected by those, there is an argument to ignore their respective influence).

This initiative makes me wish it is only the beginning: I want some more stats! For example:

\- It would be interesting to see what's the points per post (PPP) of the leaders, compared to the PPP for most of the others (I agree with you that in the dataset, the leader to user ratio is too high). Maybe one could have a plotted distribution of PPP's across all users.

\- I know HN has 8000 uniques/day, what is the proportion of those that are posting? e.g. how many of those users with less than 5 posts?

\- also interesting is the proportion of points between posts and comments, per user. Different profiles: some people discuss a lot, some people post a lot, as it was often repeated in discussions. But what's the proportion of those 2 groups?

</comment></comment><comment><USER10> Also, pg could probably run this on the complete data set, which might better illustrate what's happening with the more prolific members of the community.

<comment><USER4> Nice analysis. Does the complete data include timestamps on up/down votes? The ratio of up to down votes might show how controversial is a posting while the rate of rise/fall might show... whether the posting was submitted at an opportune time?

Or what about looking at voting habits? What's the average/min/max/etc up/down voting ratio?

If you showed to what degree showing more statistics, particularly about new postings or first-page postings would change behavior?

</comment></comment><comment><USER11> Fantastic! A digitally generated picture is worth 2^10 words!

You've certainly embodied the philosophy of Edward Tufte:

[http://www.amazon.com/s/ref=nb_ss_gw/102-8193666-1218533?url...](http://www.amazon.com/s/ref=nb_ss_gw/102-8193666-1218533?url=search- alias%3Daps&field-keywords=%22edward+tufte%22&x=0&y=0)

There must be many cofactors that are hard to capture in an analysis like this. There's the "binaryness" of making it to the front page. There's also "time of day". A very interesting submission posted at a time when those who would be interested are not online may never gain enough traction to make it to the first page. A time-of-day analysis would certainly be interesting.

<comment><AUTHOR> I'm not sure if you're mocking me or giving me too much credit here.. Really I was hoping to be more rigorous and go more in depth but at some point it just felt silly to hammer a website, scrape the page and never have access to the whole data. Doing this got me thinking about issues like "time of day" though as there must be a way to take into account the rate of new posts and make old posts more 'sticky' when the rate accelerates, in the morning for instance.

I feel like starting my own social news website just to have a play with different algorithms!

<comment><USER11> "I'm not sure if you're mocking me or giving me too much credit here."

Neither, I'm sure.

(Funny. lately when I get sarcastic here, people think I'm serious, and when I'm serious, people think I'm joking. I guess I need a little more practice writing to strangers.)

Scatter diagrams are one of the greatest underrated ways of conveying information in a heartbeat. You've done a great job of it.

You've also opened up a can of worms. There are so many ways to look at this data, you can keep yourself busy for quite a while. I suspect that won't be a problem, considering how much you already care about this. Keep up the good work and keep us posted.

<comment><AUTHOR> Sarcasm is hard to convey in writing. We used to have smileys to help us but they are going out of fashion. We're gonna have to stop being sarcastic :)

</comment></comment></comment></comment><comment><USER12> This kind of topic worries me because from my experience when a community starts worrying about "cohesion", "trolls" and like, this is usually the first sign of it's fall down.

The real problem is what most of us would call a fall down today, that will be called tommorow (and interpreted as) a rise up from other people (thus the extreme difficulty to create efficient moderating systems based on quantitative data). You know your community is irreversibly "corrupted" when this kind of people becomes the majority, and this usually happen surprisingly quickly with the faster growth of visitors.

For some reason I have some hope for HN because of PG being behind it, he kinda knows what he wants and certainly knows what he doesn't want. Still, this might be one of the thoughest challenge he'll be faced with if HN keeps growing. I've known no community that escaped this syndrom yet.

</comment><comment><USER13> As a relatively newer member here, it would be interesting to know how these numbers came about over time; i.e, did the more prolific members start out with a bang, or did they gradually build up steam to reach where they are now?

</comment><comment><USER10> Cool.

I'd be interested in seeing similar analysis on a per-comment basis.

</comment><comment><USER14> Very cool. Was fun trying to find my username on your charts (although I wish it could have been a bit higher up the points per post axis!).

</comment><comment><USER15> nice little bit of hacking, one thing I would of done is left pg out, I think he is messing your data up. Fans being fans his karma is off the chart.

<comment><AUTHOR> Yeah his approval rating is ridiculous, above 13 points per post on his last 180 posts. But that's just one of many things messing up the statistics. It's only good if you want to have a general idea.

</comment></comment><comment><USER16> These plots are begging to be placed on a log-log axis!</comment>


Concerning zdnet's use of the term 'code monkeys' - <AUTHOR> http://erikpoupaert.wordpress.com/2014/09/04/concerning-zdnets-use-of-the-term-code-monkeys/

<comment><USER2> I've always felt that term is neutral. It's used twice in the original article. I didn't get the sense that they really understood what they were talking about. Seems like a bit of a fluff piece that touched on a serious trend.

Are you the Erik who wrote the response to the ZDNet article? This does not represent my view of the software industry at all, and I'm surprised at what seems like frustration.

<comment><AUTHOR> No. I will never respond at ZDNet itself. Ever.</comment></comment>


60 Minutes shocked to find 8-inch floppies drive nuclear deterrent - <AUTHOR> http://arstechnica.com/information-technology/2014/04/60-minutes-shocked-to-find-8-inch-floppies-drive-nuclear-deterrent/

<comment><AUTHOR> The only time I've ever seen an 8" floppy in the wild was in the early 80s when a friend of mine ran a pair of 8" drives off his Apple II for his BBS. Even then, 8" was considered fairly obscure compared to the 5.25" discs.

</comment><comment><USER2> They probably didn't mention that WarGames was the reason why they "upgraded."</comment>


Show HN:  Zombie Survival Team App - <AUTHOR> http://apps.facebook.com/zombieteam/ http://apps.facebook.com/zombieteam/
Just knocked this together to get used to the facebook API for class project.
Essentially you choose 5 friends who you'd want watching your back in a zombie apocalypse :-) You also get to see who trusts you in the same way.
Pretty much an embarrassing MVP at the moment as I knocked it together as quickly as I could since yesterday and it's my first experience with ASP.NET MVC and the facebook API.
Hopefully it doesn't blow up with major bugs too soon.
Any feedback appreciated, I know it's basically a CRUD app at the moment but I'm looking to experiment with proper social gameplay mechanics in the future. Thanks. <comment><USER2> Good start, had an issue after I completed my team though.

I would totally share this on my wall - no Share button!!!

Edit: Oh I see what you did there. It automatically put stuff on my friends' walls without confirmation from me.... no likey.

I would have preferred to do one post on MY wall that tagged all of my friends.

One thing that I thought might make your app more engaging: perhaps you could provide different categories for team members (I am way overthinking this, sorry I was in the Army)

\- Medic \- Engineer \- Sniper \- Melee Beast \- Driver

Just some thoughts - it might lure in additional visibility when ppl would say "Hey, I am totally NOT the driver - make me the sniper!"

<comment><AUTHOR> Hey, thanks for the feedback.

I'm with you on the share functionality, going to either see if there's a separate way to do it in the API, failing that I'll put a confirmation dialog. Noted.

In regards to the categories.. read my mind :) originally wanted this but cut it out of the first version to save time

What I'm now thinking is allowing the team to be of unlimited size, but when you select someone for your team they don't join until they themselves agree to this from within the app. Hopefully that will increase engagement.</comment></comment>


Steal This Book (1971) - <AUTHOR> http://www.mindmined.com/public_library/nonfiction/abbie_hoffman_steal_this_book.html

<comment> trimble-alum A classic. There's also a pdf of a scanned copy supposedly stolen from the Library of Congress. [0]

0: [http://www.semantikon.com/StealThisBookbyAbbieHoffman.pdf](http://www.semantikon.com/StealThisBookbyAbbieHoffman.pdf)

<comment><USER2> It's been a long time since I've seen my printed copy, but I think that remark was actually printed on the copyright page of the real book.

</comment></comment><comment><USER3> Anyone know of a modern day equivalent to this? This book is about living off the grid and a sort of anarchistic lifestyle, but it is super dated. Would be interested in a modern day take on this.

<comment><USER4> Honestly, except for some details, not much has changed.

<comment><USER5> There's no more Uruguay 10 Centesimos anymore, what will you do without the soda!

</comment></comment></comment><comment><USER6> The movie version seems to have languished into even greater obscurity.

I'm rather fond of it, it's appropriately titled "Steal This Movie" and I believe Abbie would be glad for any of you to do just so.

There's also a lesser book called 'DO IT!' by Jerry Rubin, if you really want to immerse yourself in that culture. Abbie and Jerry had a falling out and their later lives looked very different. Jerry even ended up being an early Apple investor apparently.

<comment><USER4> The movie isn't really a 'version', it's just a movie about Abbie Hoffman.

</comment></comment><comment><USER7> I'd recommend stealing a copy of Ringolevio by Emmet Grogan,

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

or if your local bookshops' security is too good you can read some of it at [http://www.diggers.org/ringolevio.htm](http://www.diggers.org/ringolevio.htm)

</comment><comment><USER8> People may also be interested in "BAMN - Outlaw Manifestos and Ephemera 1965-1970"

[http://www.amazon.co.uk/BAMN-Any-Means-Necessary- Manifestos/...](http://www.amazon.co.uk/BAMN-Any-Means-Necessary- Manifestos/dp/0140032673)

</comment><comment><USER9> I read this book over and over again when I was a kid; my paperback copy is quite worn.

</comment><comment><USER10> I wonder if you can still get a free elk or buffalo from the Department of the Interior.</comment>


College dropouts whose startups failed, what's your story? - <AUTHOR> <comment><USER2> Very interesting question. this should also go to Reddit to get more feedback.

<comment><AUTHOR> not sure if it's timezone related thing but I was also expecting more attention :) will ask later again.</comment></comment>


Broken screen? How to backup your data from a broken Android - antonio-R http://www.hostilejourney.com/how-to-backup-your-photos-from-a-broken-android/ <comment><AUTHOR> or you could install Vysor. This lets you control your phone from a computer. Interestingly using google play's install to device feature you can add it after you break your screen, although I am not sure if it is possible to set it up and activate it from your computer, it seems like an easier and faster solution to this problem.</comment>


Just Launched, now what? - <AUTHOR>

We're an entirely self funded (just about out of money, about to start looking for contract work) startup from Australia, we're two people who have built PangurPad.com in 4 months (use #beta1 as a promo code if you'd like to look about inside). It's a distraction-free writing program for authors/writers.
We really cant stand ads so our model is subscription and giving away free trials, we think that Authors will respect a paid (therefore troll free?) community of peers.
So, my question is, we've launched, we have some friends using it.. now what? how do we dig up subscribers? We believe our product has an edge over others in this category, it has some great features but people cannot see those until they get in the door and try it out. I've added a tour out front, and am thinking about some sort of interactive tutorial that can be launched from the same place?
Where does a small self funded startup go to find users, without taking on a 'business' partner who wants to take a big % of the company just to offer advice and make connections?
I'm our SA/designer/dba/developer/UI/accountant/kitchen sink, surely I can add marketing to my skillset, I just need some pointers.
Kind Regards,
Pomke <comment><USER2> Infiltrate those communities where people write their own fan fiction thingies about Harry Potter and everything else.

</comment><comment><USER3> [http://sethgodin.typepad.com/seths_blog/2009/04/first- ten-.h...](http://sethgodin.typepad.com/seths_blog/2009/04/first-ten-.html)

<comment><AUTHOR> Thank you that is fantastic advice, especially given we don't have any budget for a big marketing push. Do you think that basic advertising (google adwords etc) is worth doing at all? Or should startups stick with only this kind of personal, one-on-one sales pitch to customers they know will go and evangelise their products?

<comment><USER3> I'd hustle and follow Seth Godin's formula first. It will tighten your pitch and increase your understanding on how people use your product. With this information, your Adwords campaigns will be so much more effective.</comment></comment></comment>


Taken Offline: Years in Prison for a Love of Technology - <AUTHOR> https://www.eff.org/deeplinks/2015/09/taken-offline-years-prison-love-technology <comment><USER2> Can someone who knows about these things explain what concrete steps we in the US could take when trying to lobby for the release of individuals like Bassel Khartabil?

EFF mentions contacting "the embassy in our country", I would assume they mean the Embassy of Syria, in this case. Unfortunately, I don't think that Syria has an embassy here in the US, as its operations were suspected last year.

Can we in the US do anything for Khartabil?

Edit: Actually, I see that the US officially recognized the opposition a few months back and that they will (or have) opened an embassy here: [http://www.bbc.com/news/world-us- canada-27287650](http://www.bbc.com/news/world-us-canada-27287650)

However, the article said that Khartabil's prison is on the front lines, and evenly split between the forces. Which side of the prison is he on, I wonder? I'll need to do additional research. In any case, my original question stands, which is what exactly can we do, what tone should the letter take, etc?

<comment><USER3> [http://english.alarabiya.net/en/News/middle- east/2015/09/11/...](http://english.alarabiya.net/en/News/middle- east/2015/09/11/Rebels-storm-Syria-s-largest-prison-near-Damascus.html)

That prison will eventually be overrun and everybody freed, I guess the best thing to do is 'raise awareness' with whoever your local political representatives are like the EFF is doing so he doesn't just quietly dissappear should the regime forces left over decide to massacre the remaining prisoners before fleeing. There's a Syrian regime embassy in Russia you can contact, whether or not they will do anything who knows.

<comment><USER4> > That prison will eventually be overrun and everybody freed

Or murdered. Given that the name 'Bassel' is likely Christian (Basil), it wouldn't surprise me to read that he's been slain.</comment></comment></comment>


Context Is Everything: Finding Meaning Statistically in Semantic Spaces - <AUTHOR> https://arxiv.org/abs/1803.08493 <comment><USER2> The article seems a little rough (draft?), but the money shot is the algo in Section 5. Looks pretty neat and straightforward!

TL;DR:

1\. Build a special distance(word1, word2) metric using a set of word vectors trained elsewhere (such as GloVe). This distance works better than cosine distance.

2\. Given a document (a sentence, a paragraph… basically, a sequence of words), calculate the "importance" of each word as a sigmoid over distances(word, avg(all_words)).

3\. To embed a document, simply do a weighted average of its word vectors, where the weight of each word equals the importance above.

<comment><USER3> Hi, author here! I can confirm everything you said. A conference version is in the works, though this one is essentially complete

<comment><USER4> Do you plan to release an implementation? I would definitely like to play around with it.

<comment><USER3> Absolutely. The current priority is conference submission, but releasing a simple interface is definitely the plan, as appropriate

<comment><USER3> [https://github.com/ezelikman/Context-Is- Everything](https://github.com/ezelikman/Context-Is-Everything) The code will be posted here when available!

</comment></comment></comment></comment></comment><comment><USER5> Very cool. Any interesting uses for this? I want to develop a 'cognitive debiasing' ML system. It will take real time spoken languages and parse it syntactically to output a dibiased version of the input. Let me know if it have any resources or insight on this. Thanks!

<comment><USER6> By "debiasing" do you mean word sense disambiguation?

<comment><USER5> Not sure what the technical term is but by debias I meant the ability to detect cognitive biases [1] from real time spoken input and remove them from the output. The goal would be to help humans understand their biased thinking and over time make us less biased in our decision making process.

[1] [https://en.m.wikipedia.org/wiki/List_of_cognitive_biases](https://en.m.wikipedia.org/wiki/List_of_cognitive_biases)

<comment><USER7> Good luck!

<comment><USER5> Thanks! Even if I get could a few smart individuals to put together a 'bias detector' mvp that would be an awesome portfolio project!</comment></comment></comment></comment></comment>


Programmer Competency Matrix - <AUTHOR> http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm <comment><USER2> This sort of summaries always leave me with an impression of being written by someone about himself and a few guys in his epsilon neighborhood.

Realistically speaking, you've gotta be not just an über-programmer, but having extensive exposure to the HR and developer management to have any credibility on the matter. Otherwise the statistical sample is just not there, so the list has very little value outside of being entertaining.

A concrete gripe with this particular matrix - maintaining a blog has _nothing_ to do with programmer's _competency_. In fact the exact opposite is true based on my observations. The reference to the value of TopCoder rankings is also laughable at best; again based on my own experience.

<comment><USER3> In the long run, I think that maintaining a blog does have to do with a programmers competence.

Programming is a social activity. Communication and discussion are important. Even if no one reads your blog, the act of regularly putting insights into text form forces you to organize your thoughts. If affects your way of thinking and your approach to problems. It exposes your thoughts to criticism, or at least the possibility of it.

Part of the reason I was recruited and hired by Yahoo, despite not having a lot of professional front-end experience at the time, was the fact that I maintained a blog about web development. I was told this by both HR and the hiring manager.

</comment></comment><comment><USER4> Uh... what conceivable purpose can this have? Bragging rights? Or is the intent that someone checks this stuff off and decides to only hire "log(n) level 3 competent programmers"?

Guess I'd better get to work finding professional experience in prolog, and write some custom macros for the IDEs I don't use. Yikes, I'm falling behind...

<comment><USER5> I think it's a decent taxonomy for the skills you can use in practice. It's for learning about your weaknesses, and either learning something to fix them, or finding yourself on a team where someone's an expert in the area.

I'd also nominate machine learning/simple ai/recommendation systems/probabilistic filters as another skill -- once you have some familiarity you can use it everywhere.

<comment><USER3> Completely agree.

After a few years doing this job and taking it seriously, diligent practice and all that, anyone who's reasonably bright should be at the top level in at least a few of these categories. But it's always good to spot areas that need work, and lists like this can be very helpful.

We programmers are mental athletes. Like athletes, we shouldn't ever stop training.

</comment></comment></comment><comment><USER6> Hilarious! I think I saw someone I knew in every box.

I would change the IDE & log(n) (Level 3) intersection from "Has Written Macros" to "Doesn't Use Them". Real programmers don't use training wheels.

<comment><USER7> Real programmers stopped using the IDE in favor of a good editor.

<comment><USER8> No, real programmers use cat.

<comment><USER7> Cat by itself is insufficient. You'd at least need to pair it with sed or head and tail. Or maybe you enjoy retyping entire files just to correct that misspelling on line 1.

<comment><USER9> Obviously, Real Programmers get it right the first time. ;)

</comment></comment></comment></comment></comment><comment><USER10> Is Prolog still relevant? I am still curious about it, but never got round to checking it out.

</comment><comment><USER11> The " _languages with professional experience_ " and " _languages exposed to_ " rows are duplicates, is it a bug or a feature?

I'm apparently level 1, in 13 years (I'll be 35) I should be a decent programmer.

<comment><USER9> _All I have produced before the age of seventy is not worth taking into account. At seventy-three I have learned a little about the real structure of nature, of animals, plants, trees, birds, fishes and insects. In consequence when I am eighty, I shall have made still more progress. At ninety I shall penetrate the mystery of things; at one hundred I shall certainly have reached a marvelous stage; and when I am a hundred and ten, everything I do, be it a dot or a line, will be alive._ \--Hokusai

</comment></comment><comment><USER12> Entire sections are missing, f.ex. process. Others are naive, f.ex. build automation (no continuous integration?).

Obviously skewed toward geekery (he is the Indian geek after all).

</comment><comment><USER13> Um... Why did someone downmod every single comment on this page?

<comment><USER14> inevitable noise that comes with growth, no doubt

</comment></comment><comment><USER13> I find myself to be mostly in the 3rd column, and sometimes in the fourth. This just gave me some specifics of what to focus on. What columns are you people at?

<comment><USER15> Mostly in the fourth, some in the third.

Guess I need to brush up on my data structures and learn some Erlang.

<comment><USER16> I found my self mostly in the second, surprised me as I'm a very noobish self taught programmer.

I do like the reading list included had some books I'll defiantly check out.

</comment></comment></comment><comment><USER17> 3rd column all the way. Not bad, but there is still room for improvment.

</comment><comment><USER14> could someone comment on why files should have license headers (code organization within a file)? i'm not clear on the idea there, so i'd like to know more.

<comment><USER18> Usually you put a copyright statement and license terms at the beginning of a file. In the case of proprietary software it's usually simply that all rights are reserved.</comment></comment>


The disc versus the download: is the CD really set to disappear? - <AUTHOR> http://www.irishtimes.com/newspaper/weekend/2011/1217/1224309200893.html <comment><USER2> I've always wondered why anything is not sold on microSD cards/usb sticks.

I paid $60 for skyrim, the first game I have bought in years, and would have preferred it on a USB stick than DVD

<comment><AUTHOR> Manufacturing costs?</comment></comment>


A Million Text Files and a Single Laptop - <AUTHOR> http://randyzwitch.com/gnu-parallel-medium-data/ <comment><USER2> One thing worth noting is that the author of this post is using OS X. The default ancient BSD versions of the tools they are using (cut, tr, sort) are HORRIBLY SLOW:

      $ wc -l big.log
       1058408 big.log
      $ cat big.log |time gtr -d \" > /dev/null
              0.38 real         0.21 user         0.14 sys
      $ cat big.log |time tr -d \" > /dev/null
             20.97 real        20.77 user         0.10 sys

      $ cat big.log | time gcut -f 4  > /dev/null
              0.61 real         0.59 user         0.01 sys
      $ cat big.log | time cut -f 4  > /dev/null
              2.99 real         2.95 user         0.02 sys

      $ cat big.log | time gsort  > /dev/null
             28.52 real        27.03 user         0.80 sys
      $ cat big.log | time sort  > /dev/null
             54.80 real        53.20 user         0.85 sys

If you are using OS X you owe it to yourself to install a non-broken userland. It's clear that apple doesn't give a shit about unix at this point.

<comment><USER3> What installation do you recommend? Anything I can brew right away?

EDIT: I found this article [https://www.topbug.net/blog/2013/04/14/install- and-use-gnu-c...](https://www.topbug.net/blog/2013/04/14/install-and-use-gnu- command-line-tools-in-mac-os-x/)

</comment></comment><comment><USER4> Don't do this:

        ls | parallel -m -j $f "cat {} >> ../transactions_cat/transactions.csv"

It only works if all files enumerated by `ls` are smaller than `PIPE_BUF`, which is 4096 bytes on Linux (but was historically only 512 bytes). Writes larger than `PIPE_BUF` are not guaranteed to be atomic. Meaning, if you have input files larger than 512 or 4096 bytes, your output file will have chunks of file A interleaved with chunks of file B.

If I knew for sure all input files were smaller than PIPE_BUF, I'd do this instead:

        find . -type f -print0 | xargs -0 -P8 cat > ../transactions.csv

That saves you the overhead of firing up a new shell just to reopen a file for append and exec `cat`.

<comment><USER5> I don't think that's the case, the default behavior of gnu parallel is to buffer the entire output before outputting. The output will only be interleaved if the `--ungroup` option is used. Parallel also has --line- buffer, which will interleave lines, rather than arbitrary bytes.

<comment><USER4> Are you suggesting that the _command_ argument to `parallel` is shell that's parsed and reinterpreted by `parallel`?

Buffering the output would make more sense, but the OP's _command_ isn't outputting to stdout, but rather appending directly to a file.

<comment><USER6> Good point. The command should simply move the >>file outside of the quote, and then it will work.

</comment></comment></comment></comment><comment><USER7> The "parallel concatenation" sounds like a really bad idea, partly because you have no guarantee that the files won't get interleaved, partly because it's solving the wrong problem.

There is virtually no benefit to the actual process of concatenation from the parallelisation, as the process is completely I/O bound (and again, concatenating things in parallel will only work by accident). The problem the parallelisation is solving is the overhead of starting cat for each individual file.

This overhead can be eliminated quite easily by the standard Unix find/xargs combination, which by default will do 5000 files at a time. At that point, you will almost certainly be maxing out your I/O devices, no parallel processing needed, and your files will all be in a predictable order with no interleaving.

</comment><comment><USER8> I was curious about the performance difference between these shell scripts and sqlite3, single threaded but fast and hardened database.

I don't have forever, so I modified the linked-to scripts to make only 12,345 customer records (two orders of magnitude slower).

I wrote a python importer to sqlite, which is largely CPU bound on the python side -- go would be much faster, but I wanted to stick with his other tools. 20 lines of code.

Times for 'setting up the data': in his case, catting everything into one file. In mine, splitting the data up into rows and inserting into sqlite:

        #His Data Prep
        time ls | parallel -m -j 32 "cat {} >> ../transactions_cat"
        real 0m1.218s

        #My Data Prep
        time pypy import.py
        real 1m54s

        #His Count unique products (Note that as written it overcounts)
        time cut -d ' ' -f 5- ../transactions_cat | tr -d \" | tr ',' '\n' | parallel --pipe --block 1M sort -u | sort -u | wc -l
        real 1m52s

        #My Count Unique products
        time sqlite3 transaction.db "select count(distinct item) from txs"
        real 0m3.033s

        #Transactions per day
        #(his script -- note that as written it adds up the wrong columns)
        real	0m8.976s

        #My transactions per day.
        time sqlite3 transaction.db ' select substr(date, 1, 10) as day, count(*) from txs group by day'
        real	0m8.625s

        #Transactions per store month
        # I used the single threaded oneliner from the article, he noted it was fastest.
        time cut -d ' ' -f 2,3,5 transactions.csv | tr -d '[A-Za-z\"/\- ]' | awk '{print (substr($1,1,5)"-"substr($1,6,6)), length(substr($1,14))+1}' | awk '{a[$1]+=$2;}END{for(i in a)print i" "a[i];}' | sort
        real 0m50.886s

        #Mine
        time sqlite3 transaction.db ' select substr(date, 1, 7) as month, store, count(*) from txs group by month, store'
        real 0m16.908s

In each case except for import sqlite is faster. To me the biggest win is not just the speed or the added expressivity (it's a real difference though for many of these queries), but the simplicity with which correctness can be assessed. Two of his three scripts did not do what they said on the tin, and the third one (which seems to), had a large disclaimer on it that he wasn't sure he'd properly optimized it.

<comment><USER2> Did you run those commands on OS X as well? See my other comment above on how the old bsd versions of the text processing tools shipped with OS X are slow.

<comment><USER8> I did run them on OS X, with the default tools.

</comment></comment></comment><comment><USER9> Yes, it's entirely possible! I once crunched some 350GB of arxiv.org papers on an old ThinkPad:

[https://github.com/HeinrichHartmann/related- work.net/tree/ma...](https://github.com/HeinrichHartmann/related- work.net/tree/master/DataImport)

Demo here: [http://dev.related-work.net/](http://dev.related-work.net/)

</comment><comment><USER10> I have been doing plenty of analysis of ~400GB of json on a machine with 32GB of ram using jq, tr, sort and grep.

So far I haven't found another solution that allows for creating 'queries' so easily. Anyone that knows a way to arbitrarily cut up more json that can easily fit in RAM let me know

<comment><USER11> I have long been an advocate of bashreduce.

I even worked for a company that ran a cluster of storage machines that each had tiny amounts of ram and contained enormous (many 100GB+) csv text files - this was right around the time hadoop was starting to be a thing, but the cluster was air-gapped for security and updates to external software were incredibly tedious. We'd write small 'cut | grep | sort | awk' sh commands and run them using a tiny perl script called 'prsh' \- parallel rsh - to aggregate the results.

</comment></comment><comment><USER8> I have a gut feeling that this would be far, far faster with a sqlite import, including the time spent creating the sql table structures.

select count(*) group by queries in sqlite are significantly faster than the times he's showing here, at the very least.

EDIT: I went ahead and ran some tests and added the results to another comment. In short, sqlite is significantly faster and easier to debug.

<comment><USER12> I'm on a phone and no longer have the essay up but I too am puzzled by why sql isn't a good fit for this work.

<comment><USER13> Maybe some misguided "SQL is black magic, avoid at any cost" bias?

I'd even pull out PostgreSQL with its mighty scripting and analyzing capabilities. Ok, speed may come at cost of HD space and memory consumption and would require a not so fast import...

<comment><USER14> You disable stuff that slows down processing and then import the data using the SQL engine's own LOAD DATA commands. Not that slow either.

Really though, you first have to ensure your documents all match a standard, since a lot of people just expect csv, tsv and other documents to all be the same, and they are not. So you have to do extra work anyway. Might as well use SQL too.</comment></comment></comment></comment>


DNC leaks reveal former FCC chairman (2009-2013) paid DNC $3.5 mil for position - <AUTHOR> https://i.sli.mg/wZrcZq.jpg <comment><USER2> Context for this data?

<comment><USER3> Perhaps [http://www.opensecrets.org/obama/ambassadors.php](http://www.opensecrets.org/obama/ambassadors.php) ?

> U.S. presidents have long rewarded big campaign donors, fundraisers and > other loyalists with ambassadorships, and Democratic President Barack Obama > seems to be no exception.

Because of modern communications, it's much easier for the State Department to manage overseas relations from Washington. There's the belief that it's okay to put political appointees in that position than career diplomats.

See also [http://www.npr.org/2014/02/12/275897092/more-ambassador- post...](http://www.npr.org/2014/02/12/275897092/more-ambassador-posts-are- going-to-political-appointees) , which highlights some of the errors of that view point, like when George Tsunis, nominee to become ambassador to Norway, said the leading Norwegian political party was a "fringe element."

<comment><USER4> > See also [http://www.npr.org/2014/02/12/275897092/more-ambassador- > post...](http://www.npr.org/2014/02/12/275897092/more-ambassador-post..). , > which highlights some of the errors of that view point, like when George > Tsunis, nominee to become ambassador to Norway, said the leading Norwegian > political party was a "fringe element."

It was much worse than that. If he'd just said they were a fringe element, it'd still have been embarrassingly undiplomatic, but most of the population of Norway would agree.

The party in question ("Progress Party" / Fremskrittspartiet) has never been the leading party, but they are now the junior coalition partner in government. At the same time they are also the most right-wing party in parliament, and widely detested by voters for most other parties. As an example of how they are often politically isolated, when the senior coalition party recently negotiated a settlement over asylum policy, they ended up negotiating a deal that _every other party in parliament_ , from the Socialist Left Party, through the Labour Party, and several small centrist parties agreed to, but not Progress Party. Wide consensus agreements on basic principles in an area (e.g. there was one agreed related to pensions a few years ago) is common in Norway, and Progress Party often end up not even being invited, or being invited and quickly sidelined because they others find common ground without them. So they're pretty much objectively a fringe party. Doesn't mean he should've actually said it out loud if he wants to be a diplomat, of course.

But what he actually said [1] went further. In his answer to a question about why they were popular, he said pretty much that when you have free speech, you get some fringe elements, but that the Norwegian government had been quick to _condemn them_.

At which point he was interrupted by McCain, who pointed out that they were in fact part of the governing coalition. McCain later ended the questioning by sarcastically thanking "the extremely highly qualified candidates" (paraphrased; I translated back from a Norwegian report).

[1] based on this Norwegian report: [http://www.vg.no/nyheter/utenriks/usa/flaut-da-usas-nye- amba...](http://www.vg.no/nyheter/utenriks/usa/flaut-da-usas-nye-ambassadoer- ble-grillet-om-norge/a/10120843/)</comment></comment></comment>


The Believer (2009) - <AUTHOR> http://www.gq.com/news-politics/newsmakers/200901/elon-musk-paypal-solar-power-electric-cars-space-travel?currentPage=1 <comment><USER2> The irony is that Musk's behavior would lead to an Asperger's diagnosis, as it did for Bill Gates and Nicola Tesla, except that psychologists recently realized how much self-inflicted harm they were doing with that diagnosis, so they voted it out of their new diagnosis manual.

Imagine voting out a disease in medicine -- imagine voting cancer out of existence. In medicine, a science, such a thing cannot happen. In psychology, it happens regularly.

EDIT: once again downvoted for being right and backing up every word with evidence.

<comment><USER3> So you are just going to ignore the vast majority of the history of medicine? Or do you regularly check up on your humor levels?

Medicine, and science in general, is constantly re-evaluating and often finding they were wrong.

<comment><USER2> > So you are just going to ignore the vast majority of the history of > medicine?

No, quite the contrary -- in fact I just defined the difference between medicine and psychology. Medicine identifies new diseases using evidence. Psychology identifies new diseases using votes. All the new "diseases" in DSM-5 were added by a panel voting in secret.

> Medicine, and science in general, is constantly re-evaluating and often > finding they were wrong.

Yes, using science and falsifiability (a hallmark of all scientific ideas) to identify the wrong ideas. Psychology, by contrast, identifies wrong ideas by measuring public reactions to their imaginary diseases. Asperger's wasn't voted out because it's fiction -- most psychological diseases are fiction. It was voted out because it produced an epidemic of phony diagnoses and a public relations disaster.

> Or do you regularly check up on your humor levels?

It's not easy to find humor in stories where psychology gets it wrong and kills children.

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

Quote: "Rebecca Riley ..., the daughter of Michael and Carolyn Riley and resident of Hull, Massachusetts, was found dead in her home after prolonged exposure to various medications, her lungs filled with fluid. The medical examiner's office determined the girl died from "intoxication due to the combined effects" of prescription drugs. ... The Riley parents were unemployed and the family relied on Social Security Benefits. From the age of two, Rebecca was diagnosed with ADHD and bipolar disorder, mainly on the basis of information given by her mother to child psychiatrist Kayoko Kifuji from the Tufts-New England Medical Center. "

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

Quote: "Since the 1990s there have been a number of prosecutions for deaths or serious maltreatment of children at the hands of "attachment therapists" or parents following their instructions."

</comment></comment></comment><comment><USER4> I have a ton of respect for Musk, but at this stage the recent coverage seems to treat him as the next messiah (and not just here, but also in the financial space)

<comment><USER5> If you bought TSLA stock last year or before, he may very well be your financial messiah.

<comment><USER6> ;)

</comment></comment></comment><comment><USER6> I think many of us would do the same things and have the same vision as Elon Musk given the chance.

The problem is one of funding, and the fact that acquiring money is not normally correlated with broad vision, and that having money is not normally correlated with executing that vision.

In short, Elon Musk's advantage is that he is an outlier in terms of how he was able to acquire money, and how he is able to control his use of it. Commendable, and the true lesson.

<comment><USER7> An inspiring notion, but there are lots of people who have as much wealth as Elon Musk. They're not doing anything like what Musk is doing. Apparently most people either 1. retire and buy fancy yachts or 2. continue working on whatever business made them rich in the first place.

<comment><USER6> That is precisely my point, in noting his control over how he executes on his wealth. Thank you for re-iterating.

</comment></comment></comment><comment><USER8> It's a bit silly that the article presented him as basically godly. But perhaps if we too, like the author, had a chance to sit down and talk to him and really learn about his adventures, we would be in awe as well. All in all, it was still a good read.

</comment><comment><USER9> Previous discussion:

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

</comment><comment><USER10> PR firm written

</comment><comment><USER11> (2009)</comment>


C to Go translation tool supporting Go toolchain migration - <AUTHOR> https://github.com/rsc/c2go <comment><USER2> For the casual reader, in case other comments don't make this clear - this is not a general-purpose translation library, and probably will not work for whatever C codebase you have. It is a one-off tool built to migrate the specific subset of C used in the original go compilers, as part of the process of making the go toolchain self-hosting (go compilers written in go).

This translator produces a VERY literal translation, as the intention is for future human passes to clean it up and convert it to more idiomatic go.

See here for the full plan: [https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdw...](https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/edit)

</comment><comment><USER3> I love the simplicity of the main function:

      rewriteTypes(cfg, prog)
      rewriteSyntax(cfg, prog)
      rewriteLen(cfg, prog)
      fixGoTypes(cfg, prog)
      renameDecls(cfg, prog)
      exportDecls(cfg, prog)
      writeGoFiles(cfg, prog)

[https://github.com/rsc/c2go/blob/f6c077dd7192b90f4a7ad0a4b8f...](https://github.com/rsc/c2go/blob/f6c077dd7192b90f4a7ad0a4b8f4fa5b2649899b/main.go#L62-L76)

<comment><USER4> Plan9 style.

</comment></comment><comment><USER5> GopherCon 2014 had a talk on "Go, from C to Go" by Russ Cox. Here's the slide deck and video for those interested [1, 2].

[1] [http://talks.golang.org/2014/c2go.slide#1](http://talks.golang.org/2014/c2go.slide#1)

[2] [https://www.youtube.com/watch?v=QIE5nV5fDwA](https://www.youtube.com/watch?v=QIE5nV5fDwA)

<comment><USER6> For me, this was a key part of the sides:

"Goal: Automated conversion of our C code to Go. Target: our C code, not all C code."

</comment></comment><comment><USER7> I wish for something similar for C++ -> Rust and C -> Rust.

<comment><USER8> The semantics of those languages are so brutally complex and different that I find it difficult that we could see such a tool.

<comment><USER7> I dare think I understand that. The down votes seem to imply that a guy can't even wish!

</comment></comment></comment><comment><USER9> Would be nice if this could be made into a more general tool, would be a cool way to modernize older libraries and reinvigorate new development into them

<comment><USER10> Friend of mine does fully automatic translation from C to Java, including automatic OO reengineering.

Some demos are available on his page: [https://www.mtsystems.ch](https://www.mtsystems.ch)

This work is based on the stuff he did for his PhD. I think his largest test case so far is a full translation of VIM.

<comment><USER11> Main author of the tool here. If you have questions feel free to contact me: firstname.lastname@example.com

</comment></comment></comment><comment><USER12> I already reused part of this a few months ago to automatically refactor a large body of C code (around 10k LOC)[1]. Some time ago, Go converted (by hand) the various Plan 9 linkers used into a library, and I had to do the same for the arm64 linker.

I'm not sure if I saved time or not (I think I did) for the effective work, but I definitely saved time (and stress) overall, as the conversion was without bugs. I know for sure that I would have introduced a lot of bugs if I did this manually.

Tools that understand source code are great, and I'm really excited about the new Go compilers.

[1] [https://code.google.com/p/rbits/source/browse/7lfix/main.go](https://code.google.com/p/rbits/source/browse/7lfix/main.go)

</comment><comment><USER13> This should be written in C and have sufficient C language coverage to understand and translate itself. Functional tests for free :)</comment>


Kaspersky Labs: How scary can an old school programmer be? - <AUTHOR> http://blog.kaspersky.com/the-history-of-programming/

<comment><USER2> Pretty, but no demo will ever touch the Dec 9, 1968 demo by Engelbart.

See [http://www.wired.com/science/discoveries/news/2008/12/dayint...](http://www.wired.com/science/discoveries/news/2008/12/dayintech_1209) for a description. In one demo they introduced the computer mouse, video conferencing, teleconferencing, hypertext, word processing, hypermedia, object addressing and dynamic file linking, bootstrapping, AND a collaborative real- time editor. This was running on a SDS 940 which apparently supported up to 12 simultaneous users in their lab.

On what kind of hardware? According to <http://en.wikipedia.org/wiki/SDS_940>, it could have stored no more than 200k of memory on drum memory. (It may have had additional storage attached - hard drives were available for 2 MB.)

It took decades for these technologies to become commonplace. But once they did, the nickname "mother of all demos" was completely appropriate.

</comment><comment><USER3> Now, this is not to disparage the scene in any way... I mean, what they did and do is awesome, and Scream Tracker 3 (and later Impulse Tracker) was a large part of my teenage years.

But ultimately, graphics routines are a completely different beast than finding weaknesses in a security system that you don't own. Many programmers on here, given a bit of guidance and some gfx/sound guys, could put together a respectable demo. I don't think the same about something like Stuxnet.

<comment><USER4> I often upvote stories using the metric "Would I add this to my 'saved stories' if it was a stand alone feature?". Very often the answer is yes even though I disagree with large portions of an article/don't think it's a good fit for HN.

What is a good heuristic for upvoting articles?

</comment></comment><comment><USER5> A conclusion that if they create good graphics with 64kb then they could be able to steal your money from the bank is pretty huge slippery slope logical fallacy.

</comment><comment><USER6> Wow. Kaspersky's alarmist PR has reached a new low.</comment>


New Plugin – Wordpress to Gatsby Exporter - <AUTHOR> https://tinacms.org/blog/exporting-wordpress-content-to-gatsby/ <comment><USER2> Looking forward to testing this out.</comment>


Interviewing at Facebook? Advice from Facebook's Engineering Hiring Manager - <AUTHOR> http://www.insidefacebook.com/2008/12/16/interviewing-at-facebook-advice-engineering-hiring-manager-dave-fetterman/ <comment><USER2> I think Facebook should put up a puzzle on their website called "Make Facebook Profitable" and hire based on the solutions to that.

Somewhat a joke, but also somewhat serious... I wonder if that would net them a few good ideas. Maybe even give this puzzle a prize akin to the Netflix challenge. It would give them a ton of idea output for what amounts to a small award compared to the work performed.

<comment><USER3> I don't think it should be a joke at all. It seems to me that a company that doesn't know what its business plan is should probably be hiring people who have a talent for making business plans.

<comment><USER4> Just because they don't talk about it, doesn't mean they don't have ideas and plans on how to proceed.

<comment><USER3> It would seem like good policy for a company built on the premise that everyone should share their information to actually share their information. I'm not saying that they don't have ideas and plans on how to proceed, I'm just saying that if they were really confident about the viability of those plans, they'd be more vocal about them.

As it is, my own guess is that facebook's business plan involves selling the personal information of its members. This would be the most obvious commodity and also the most obvious reason why facebook wouldn't want to talk about their business plans.

<comment><USER5> Much more than personal information, what facebook can monetize is identity & relationships.

For example, with Facebook Connect, it's much harder to be an anonymous troll commenter on a blog. And maybe using Facebook Connect as a login for eCommerce sites would reduce the amount of fraud those sites have to deal with. _That_ is definitely monetizeable.

</comment></comment></comment></comment></comment><comment><USER6> The letters on that blog are spaced so far apart as to make it totally unreadable. It reads like a dang word-find puzzle.

<comment><USER7> View -> Page Style -> No Style is your friend.

</comment></comment><comment><USER8> interviewing at facebook? my guess is that there will be plenty of openings soon enough, even in this downmarket. the fb crowd have been busting their asses old-skule/90s style...and for what? zuck put the ix-nay on their get- rich quick scheme of selling their options, and now a new valuation discussed for the company is just over $1 billion dollars (down from $15 billion). yawn! any notion that the FACE stock bubble would resemble YHOO 1999 or GOOG 2007 are just hopeless dreams at this point. by time markets recover in 2012, fb itself may be passe. i wouldn't be shocked to see more early burnouts throwing in the towel there.

yeah yeah, there's more to work than money. but that logic will only work for a few months. after a couple of years of 2am nights, you're going to want to get paid.</comment>


The 9 Signs of a One-hit Wonder - <AUTHOR> http://gigaom.com/2008/07/12/fr-the-9-signs-of-a-one-hit-wonder/

<comment><USER2> I didn't get the references for most of the examples, but is the point of the article "if you spend any money, your company is going to fail"? That's what I got out of it.

<comment><AUTHOR> No, I think the big lesson is:

Keep It Real, dawg.</comment></comment>


A Valuable Reputation – Syngenta's Atrazine and Tyrone Hayes - <AUTHOR> http://www.newyorker.com/magazine/2014/02/10/a-valuable-reputation

<comment><AUTHOR> A chilling story about Syngenta, the makers of atrazine (second most-used herbicide in the United States), and Tyrone Hayes, a Berkeley professor of biology whose research had shown atrazine to disrupt the sexual development of frogs. Hayes considered himself an outsider in the scientific community, and some of his beliefs that Syngenta was pursuing him began to seem outlandish, only to be shown true. I will let some quotes speak for the article:

"Hayes has devoted the past fifteen years to studying atrazine, and during that time scientists around the world have expanded on his findings, suggesting that the herbicide is associated with birth defects in humans as well as in animals. The company documents show that, while Hayes was studying atrazine, Syngenta was studying him, as he had long suspected. Syngenta's public-relations team had drafted a list of four goals. The first was "discredit Hayes." In a spiral-bound notebook, Syngenta's communications manager, Sherry Ford, who referred to Hayes by his initials, wrote that the company could "prevent citing of TH data by revealing him as noncredible." He was a frequent topic of conversation at company meetings. Syngenta looked for ways to "exploit Hayes' faults/problems." "If TH involved in scandal, enviros will drop him," Ford wrote. She observed that Hayes "grew up in world (S.C.) that wouldn't accept him," "needs adulation," "doesn't sleep," was "scarred for life." She wrote, "What's motivating Hayes?—basic question.""

and

"Another set of ideas, discussed at several meetings, was to conduct "systematic rebuttals of all TH appearances." One of the company's communications consultants said in an e-mail that she wanted to obtain Hayes's calendar of speaking engagements, so that Syngenta could "start reaching out to the potential audiences with the Error vs. Truth Sheet," which would provide "irrefutable evidence of his polluted messages.""

also

"In another paper, in Policy Perspective, Jason Rohr, an ecologist at the University of South Florida, who served on an E.P.A. panel, criticized the "lucrative 'science for hire' industry, where scientists are employed to dispute data." He wrote that a Syngenta-funded review of the atrazine literature had arguably misrepresented more than fifty studies and made a hundred and forty-four inaccurate or misleading statements, of which "96.5% appeared to be beneficial for Syngenta." Rohr, who has conducted several experiments involving atrazine, said that, at conferences, "I regularly get peppered with questions from Syngenta cronies trying to discount my research. They try to poke holes in the research rather than appreciate the adverse effects of the chemicals." He said, "I have colleagues whom I've tried to recruit, and they've told me that they're not willing to delve into this sort of research, because they don't want the headache of having to defend their credibility.""</comment>


Intelligence and communication in plants - <AUTHOR> http://www.ted.com/talks/stefano_mancuso_the_roots_of_plant_intelligence.html

<comment><AUTHOR> Made me think about how our approach to building animal like AI is premature. Developing plant-like AI seems like a better first step.

About the Speaker: Stefano Mancuso is a founder of the study of plant neurobiology, which explores signaling and communication at all levels of biological organization, from genetics to molecules, cells.</comment>