Unbearable news - <AUTHOR> https://zainamro.com/notes/unbearable-news <comment><USER4> I always plug my news website, [https://legiblenews.com/](https://legiblenews.com/), when I read about the state of news on the web because I too feel this frustration. It got so bad I decided to create a news website that:

1\. Loads in one request. Seriously, load it in your browser with the network inspector open. One request.

2\. Is private. I don't care who reads it. I provide this as a public service and have no interest in running targeted ads.

3\. Links to source content. This is the worst thing about news websites today: the articles summarize complex issues and rarely link to source documents because they want to keep you on their website and pump you full of more ads. I joke that "you might accidentally learn something if you click one of the links" because it loads Wikipedia articles.

I get why people read paper news. It's private, no pop-ups, and is fast. Legible News is as close as I could get to that. I hope you enjoy!

<comment><USER5> I too thought about these issues. There are two major problems I see with news websites these days:

\- facts mixed with opinions \- cherry picked and maliciously re-ordered facts

The first one you seem to have taken care of

The second one I'm thinking of some solutions:

\- random order (per visit) of news item on the page \- each news item focuses on one information at the same time \- each news item comes with "context". This is the hard part because context can be cherry picked and ordered.

<comment><USER6> Do people read news about facts or opinions? I think the latter was actually more valuable. People follow their favourite columnists and reporters on papers because of their in-depth analysis and opinions on issues, rather than plain cold facts.

<comment><USER5> But that is a major problem right? You are consuming digested news that is obviously biased. There is no way of getting out of your bubble if you consume news like this.

There is a spectrum between difficult to consume raw news and completed digested news.

</comment></comment></comment></comment><comment><USER7> I subscribe to the paper version of my local paper because it is so much easier to actually get information from. It's so well designed. I think the reason people have gravitated to online news is herd mentality. What I like about paper news: my focus is more under my control. I can evaluate and skim whole articles at once. I am not constrained by what if visible in the window. Also, no distractions. Every time I open my computer or phone I am waylaid by distractions. I am a software / AI engineer and I think we have created a dystopia.

One thing I am seriously afraid of is that our tech dystopia will drive local newspapers out of business. I hate to think of what that will do for corruption, inefficiency, everything. Just awful. I dread the day my local newspaper announces they are ceasing publication. The reduction is staffing over the last 15 or 20 years is incredible. I think the San Jose Mercury went from 1800 to 35. That is depressing.

<comment><USER8> Yea, pretty much 100% the web is destroying news. Everyone wants a free ad supported product now and the only way that model works is if you get enough page views. So news websites have to prioritize content that generates views, rather than good reporting. Which is slowly killing journalism.

<comment><USER9> This has always been the case in physical news as well. You live and die by your readership (views). Real money always came from ads.

<comment><USER10> Back in the day a very significant percentage of revenue came from the classifieds.

<comment><USER11> The San Jose Mercury-News used to be hugely profitable for exactly this reason. They had the biggest classified section of any paper in the country. The Monday edition was maybe 4X as thick as its modern equivalent.

</comment></comment></comment></comment></comment><comment><USER12> This is completely true and frustrating. It is possible to have fast loading web pages that incorporate decent levels of ads but making that change is hard.

I track 60 or so news sites (mostly US and EU based) and as of today:

      On a "Fast 3G" connection
      the average article takes 45 seconds to load
      and is 3.8mb in size.

_Article Performance Leaderboard_ (Site): [https://webperf.xyz/](https://webperf.xyz/)

 _Data and Speed Tests:_ [https://docs.google.com/spreadsheets/d/1c1zhkdvWE0WvG84TT3Cz...](https://docs.google.com/spreadsheets/d/1c1zhkdvWE0WvG84TT3Czekj0N-0sRUEBKO3c0Aeflxw/edit#gid=1790251413)

The Harry Potter ebook is 1.3MB in size yet we wrap 25kb text of a news article in all this unnecessary crap.

It is all avoidable, even without AMP.

<comment><USER13> "The New Yorker

The average load time is 102.127 seconds

431 requests"

Author is asking for "text-only"; this of course only requires one request.

       curl -4o https://www.newyorker.com/magazine/2015/05/25/high-gear-current-cinema-anthony-lane | tr -cd '\11\12\15\40-\176' | sed 's/</\
       &/g;s// /g;s/ *//;' #tab |sed -n '/./{/sectionBreak/,/<\/div>/p;/figcaption/,/<\/figcaption/p;}' > a.htm

       firefox a.htm

We do not need a complex, graphical browser that autoloads resources and runs Javascript in order to request or display a page of text-only content. "Reader Mode" is great but it is not available for every website.

The time spent by the browser on those 431 requests is significant. What if a simpler client was used, e.g.,

       time printf "GET /magazine/2015/05/25/high-gear-current-cinema-anthony-lane HTTP/1.1\r\nHost: www.newyorker.com\r\nConnection: close\r\n\r\n" |openssl s_client -connect www.newyorker.com:443 -ign_eof > /dev/null

       curl -4o /dev/null https://www.newyorker.com/magazine/2015/05/25/high-gear-current-cinema-anthony-lane

       time tnftp -4o /dev/null https://www.newyorker.com/magazine/2015/05/25/high-gear-current-cinema-anthony-lane

       time links -dump https://www.newyorker.com/magazine/2015/05/25/high-gear-current-cinema-anthony-lane > /dev/null

Guess how many seconds this one request takes when we do not use a popular graphical browser to make it

</comment></comment><comment><USER14> The Guardian website, whilst not perfect according to the standards of the article and some other posts, is very performant. They have ads and other dynamic content, but load is deferred on this stuff and wrapped properly to avoid reflow, so the entirety of the article text is immediately readable. Just for interest, see also their tech blog [0] and their entire frontend on GitHub [1].

I can ignore ads, but what I find incredible on major (insert news/tech/whatever here) sites is the reflow from not properly reserving space for both ads and lazyloaded images. The following seems particularly to be a problem on mobile and in apps like Apple News: load a page, scroll to the meat of the article, then experience 1, 2, 3 page jumps as stuff loads in above your scroll position.

[0] [https://www.theguardian.com/info/series/digital- blog](https://www.theguardian.com/info/series/digital-blog) [1] [https://github.com/guardian/frontend](https://github.com/guardian/frontend)

<comment><USER15> I often find switching off Javascript helps with the reflow issues.

<comment> awinter-py can't agree more with both of these comments -- JS has zero user value for news sites, only contributes to annoying. and reflow on most news sites is intolerable -- it's like FOUC in the old days (flash of unstyled content), but way worse because of all the different ways assets get loaded and laid out.

</comment></comment></comment><comment><USER16> > _I suggest they become more creative with their business model or at least > try to see the value in moderation._

The vast majority of news sites were free from the get-go, with the NYT being one of the first major websites to put up a website [0]. That's roughly 20 years of giving free content out on the web. The author is (partially _) right that "the article text is all anyone really cares about". The thing is, plaintext is absurdly easy to disseminate and copy.

_ for most of the history of newspapers, ads were themselves a reason to get the newspaper, especially for coupons and classified ads. Of course, print ads, like print pages, were much more deliberately and better designed than what we experience today online.

[0] [https://www.niemanlab.org/2016/01/20-years-ago-today- nytimes...](https://www.niemanlab.org/2016/01/20-years-ago-today-nytimes-com- debuted-on-line-on-the-web/)

<comment><USER11> The San Jose Mercury-News and WSJ both had full-content websites before NYT.

The Mercury-News even had a selective email feed of wire service content called _Newshound_. For $5 a month, you got up to 5 "hounds" (sets of search criteria), and every article matching your criteria was individually emailed to you, whether a wire story, a syndicate story, or one internally generated within Knight-Ridder. This was in 1993 if not earlier yet.

<comment><USER16> Yeah definitely the Merc News was a pioneer on the web and in many other ways: [https://archives.cjr.org/feature/the_newspaper_that_almost_s...](https://archives.cjr.org/feature/the_newspaper_that_almost_seized_the_future.php)

It's hard to imagine now, but papers like the Merc News – thanks to basically having a virtual monopoly – were basically printing presses for money. They most definitely had the capital to fund ventures that could save the company, such as their own Craigslist or Groupon. And I believe they and other news companies _did_ blow a good chunk of money on failed tech ventures. In hindsight, they should've continued throwing money at greenfield projects, since just about any longshot success would've been better than the current state of things. But it's too easy and reductive to say, "Well the news industry should've just invented Google/Facebook if it really wanted to survive".

</comment></comment></comment><comment><USER17> For those who care about text only news:

NPR has [http://text.npr.org](http://text.npr.org)

CNN has [http://lite.cnn.io](http://lite.cnn.io)

I've created [http://noslite.nl](http://noslite.nl) for Dutch news

<comment><USER18> [http://old.reddit.com](http://old.reddit.com)

[http://i.reddit.com](http://i.reddit.com)

[http://mbasic.facebook.com](http://mbasic.facebook.com)

[http://lite.cnn.com](http://lite.cnn.com)

[http://text.npr.org](http://text.npr.org)

[http://twitter.com](http://twitter.com) (with JS disabled)

[http://m.twitter.com](http://m.twitter.com)

</comment></comment><comment><USER19> What a zinger at the end. Point well-made. :)

</comment><comment><USER20> Not sure that speed is really the factor that matters. That content loads quickly and would exacerbate that there's frequently little worthwhile content. The internet has stretched communication to be a nation and worldwide thing. Eventually we'll figure out that local concerns matter more - <USER2> then we'll have to suffer through some really bad media that doesn't affect any of our lives while most of our communities crumble due to lack of attention.

<comment><USER21> Agree. Focusing on web application performance is entirely beside the point. Most modern news sites are typical modern web applications.

The issue is that the value of the words themselves has changed, both in the economic sense as well as culturally, not to mention the problem of the erosion of trust.

</comment></comment><comment><USER22> Nowadays I can't even go to news websites so I get my news primarily from HN, Twitter, or Reddit, where news is condensed and I rarely get to see the other point of view (in other words, good journalism).

Obviously I understand they need to make money, but at the same time most of the news articles even posted to HN have some limit to reading (even with JS blocked). Maybe a student pass would be good for students like me. I don't think I'll have a problem paying for them... but then I'll have to manage each of these subscription.

It would be nice to have a Netflix for news (to pay for all news subscriptions in one go).

<comment><USER23> A lot of articles with "mandatory" JS can be read just fine with Lynx/Links. Better with Links -g.

</comment></comment><comment><USER24> News is unbearable, but not because of the format. Recognize that reading the news becomes habit because the news of the day becomes useless fast.

I realize that this is a contradiction from me, a HackerNews reader, but I feel that part of the reason I come here is for inspiration - on new technologies, ideas, and new code (show HN). When I refer to news earlier, I'm talking about the stories and articles you might have found in a newspaper. They may contain inspiration but IMO are much more clickbaity and only written to fill space.

<comment><USER25> Agreed. I cannot stand news from major news sites. Good articles exist on smaller sites, where there is a legitimate attempt to cover something interesting in a thorough and well-researched manner (for example today I just read this: [https://www.quantamagazine.org/to-decode-the-brain- scientist...](https://www.quantamagazine.org/to-decode-the-brain-scientists- automate-the-study-of-behavior-20191210/)). But good articles on mainstream sites are rare. Most of them just make me angry.

It used to be that I was just contemptuous of mainstream news and annoyed by bias. Apart from basic critical reasoning skills, back in 1998 I took a course on mass communication and learned a whole host of dirty tricks they use, and it's just gotten worse sense then. Now it's gotten to the point where it's maddening to see brazen deceptions promoted by mainstream sites, and just absolutely sickening and not a little bit terrifying to see this huge push toward "authoritative" news sources by the likes of YouTube and Facebook.

So, given that there's so little I can do to stop the onslaught of deceptive, grossly misleading propaganda, I try to ignore it for the sake of my own emotional health. (That includes Hacker News, which I rarely visit anymore)

</comment></comment><comment><USER26> The problem with the newspaper/news industry is that the value their audience places in the product is less than the value that advertisers place on access to that audience. Additionally the cost to generate and deliver that product exceeds what the audience is willing to pay and in many cases the value of that audience is low enough that even advertisers don't offer enough to cover the costs.

Print newspaper subscription revenues were pretty much a break-even with the costs of delivery. That does not include the costs of paper, ink, printing press and associated personnel, or the cost of actually staffing and running a newsroom. A large part of both their revenue and audience attraction was the classifieds section, which was killed off by craigslist.

</comment><comment><USER27> I think is somewhat of a solved problem via PressReader.com or it's variant. Depending on where you are getting access is free if you have a library card.

Whether using it via browser or dedicated apps, it's as close to reading a real newspaper as can be. I particularly like the low-noise way of aggregating comments on articles. If there is comments with an article, a little indicator with the the number of comments is shown which can be clicked to read or ignore as desired.

</comment><comment><USER28> Economically, there's something very strange going on with the net today. Aside from streaming video and perhaps some specialized apps like games, for the vast majority of people, they're just fine as long as they can move around a few MBs every day, mostly in text. Even photo sharing doesn't use a huge amount of data, relatively speaking.

But to get to that paltry amount of data we actually need, we have to sift through 50, 100 times as much garbage, all of it related to engagement or advertising.

For people who have transfer caps or end up in "jail" when they use too much internet, it puts them in a really odd place. We're charging them to pay for us to do things we want to do, not things they want to do on their own. Then, when we charge them, if we're lucky we reach our goal: more usage of our site or the user buying something they normally wouldn't, both of which involve spending even more money. This seems a bit like the old "heads I win, tails you lose" joke. There is an illusion of choice, but not really.

<comment><USER29> The signal-to-noise-ratio looks much like that of email's. 99% of email traffic is spam. It gets filtered quite successfully in most cases. Still the penetrating few fractions of a percent make enough money for spammers to persevere.

I wonder if this could be the endgame state of all add-related tracking, heavy ads, etc on the web.

</comment></comment><comment><USER30> I looked for UNIX/BSD/Linux related news that would be really important, not just usual bullshit, pointless 'small' things or PR from companies.

... and I failed. I was not able to find one or several such news sources.

The nearest thing that I was able to find was _' In Other BSDs'_ series from [https://www.dragonflydigest.com/](https://www.dragonflydigest.com/) page, but it is very limited and small.

In all that I decided to create my own _' Valuable News'_ series, with latest (weekly) episode available here: [https://vermaden.wordpress.com/2019/12/16/valuable- news-2019...](https://vermaden.wordpress.com/2019/12/16/valuable- news-2019-12-16/)

It may sound as shameless self promotion, but I really was not able to find such news source ...

Regards.

<comment><USER31> There's LWN.net

</comment></comment><comment><USER32> Or go back to the original form, but delivered digitally: a mix of news, editorial content, and paid ads, all served from the same server, with no moving banners, pop ups, sticky headers, third party servers, scroll-alongs, click-to-read more, etc.

<comment><USER23> This. Small unobstrusive ads, with a custom CSS so they are either for mobile or PC. No flash, no popus, no moving banners. Just a small square with a picture/promotion.

</comment></comment><comment><USER33> CNN exists in the form suggested here.

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

<comment><USER34> > I'm more than ready and willing to pay for a text-only version of every news > website like the ones provided by NPR and CNN.

The article already mentions that.

<comment><USER23> Get an RSS reader.

</comment></comment></comment><comment><USER35> From a user perspective: Just stop visiting those websites. The internet echo chamber will repeat those exact same articles a million times (not kidding)

Until we stop visiting these places their business model works and they are doing what they should be doing. There might even be an advantage in filtering out low end machines.

A more constructive idea imho would be to fix it with more sensible implementation of the circus. Like the article in the link demonstrates you can append an entire book to an article. You can also progressively load images and videos for dozens of advertisements without turning the page into a tragedy of bloat. 20 assets??? More like 200-500!

It isn't that what they want is so ridiculous, it is the way it is implemented. You should have one analytic implementation producing data used by all 50 advertisers in stead of each having their own combined with additional 3rd party ones for each.

Advertisement providers should deliver a usable product for their client where usable doesn't refer to ease of implementation for the news agency. They should make an effort to promote in stead of bothering people.

<comment><USER25> > Advertisement providers should deliver a usable product for their client > where usable doesn't refer to ease of implementation for the news agency. > They should make an effort to promote in stead of bothering people.

For what it's worth, this was Adsense back in the 2000s. At a time where banner ads were characterized by obnoxious "smack the monkey" flash games, Google's ads were clean, fast-loading, and un-obtrusive. They looked different enough from normal text to be clearly recognizable as an ad, but otherwise plain and tasteful.

However the sad truth is that, to some extent, bothering people is the desired goal of advertisers. Their goal is to get the attention of a customer and if they annoy some others in the process, it doesn't matter because the one customer they did get is worth it.

</comment></comment><comment><USER36> Safari 13 for MacOS allows you to selectively, or universally, see most news sites in reader view without having to select each time. Most other browsers have add-ons that do a similar thing, and Instapaper and Pocket, among others create text-only versions of most articles.

Most of those also work outside of adblockers, so, even when an adblocker is detected, the news/text reader displays the article text when the adblocked page won't (examples include Wired and the Los Angeles Times).

There is probably still some significant overhead in loading and parsing the original page, but, as some have pointed out, the lag is usually "acceptable" even on the original page.

There appears to be some added value in using these various strategies in multiple browsers.

</comment><comment><USER13> "I'm more than ready and willing to pay for a text-only version of every news website like the ones provided by NPR and CNN."

How much is the author willing to pay? He is going to subscribe to "every news site"? That seems like it could get costly. Chances are, he can only afford to subscribe to a few newspapers. If he provides a list of those sites, maybe someone would help him get the "text-only" reading experience he wants.

"Text-only" is within the user's control, not the website's. It matters what software the user chooses to use to retrieve and view the text. If the software is financed indirectly or directly by ad revenue, then "text-only" is likely to be more difficult.

This is why the author is complaining. He is using a browser funded directly or indirectly by advertising. He is therefore at the mercy of the browser authors and the website operators.

</comment><comment><USER37> Of course news sites know how to create fast, easy-to-read websites. There is no point in complaining about poor usability and bloated websites, because it's just a symptom of a decease. The internet in its current state is ill- equipped for making good journalism a sustainable business. Google and other search engines are a direct threat to good quality news media. The search engines took the lion's share of advertisement revenue from news media and made them starve of cash. They encourage click-baity headlines and shallow articles, do not protect or poorly protect from stealing/copying content. This is the real problem.

Bloated websites are horrible, but they are a symptom, not a decease. There is not point in complaining about symptoms.

The comparison with newspapers is good. This is what news websites would have looked like if the decease had been cured.

</comment><comment><USER38> Maybe news papers should get back to their roots. Embed ads To users who don't pay (don't use google ads, embed them, like they used to working with companies).

Further offer good coupons based on the users location and offer more coupons if they register for $3 / month subscription

They should easily be able to make decent money this way.

</comment><comment><USER39> > Text only.

I have a good experience reading news and blogs via links.

Example:

links -dump "[https://www.nytimes.com/2019/12/13/science/hermit-crabs- weal...](https://www.nytimes.com/2019/12/13/science/hermit-crabs-wealth- inequality.html") | less

<comment><USER40> Just tried it now on a few different sites. The content is burried in a lot of cruft, such as navigation menus, footer links etc.

How do you get rid of that?

<comment><USER13> "Just tried it now on a few different sites."

Which sites?

</comment></comment></comment><comment><USER41> I had this same experience quite recently. First thing that popped in my brain was, "Wow. Paper newspapers have awesome UI," then I realized how ridiculous that was a few seconds later.

But it is true - they have had decades of experience crafting good headlines.

It's also really clear what the news of the day is. I can't think of a news site that has "front page news".

All of them today are lists of headline news, and prolonged exposure to clickbait makes headlines less appealing. It's the main reason I've never done a paid subscription to one; I just don't know what to read.

I also don't want videos or sound playing. I hate it when an article goes into a video without text; I'm here to skim something in 15 seconds, not 3 minutes. I'm glad Firefox blocks autoplay videos.

</comment><comment><USER42> > And if it isn't already clear that news websites are bloated, in order to > prove it to you, I've embedded A Tale of Two Cities by Charles Dickens on > this page in its entirety, and you probably didn't even notice.

Ya got me :-) Very clever way to make the point.

<comment><USER43> it's got me reading the book. ooh, those nasty royals!

</comment></comment><comment><USER44> The problem is that revenue from paying subscribers is not enough. For most newspapers, ads are needed to run a profitable digital business. Ads cannot be removed for paying subscribers, since paying subscribers are precisely who advertisers want to target. And if you want to display ads on the internet, you have to track people just like your competitors Google and Facebook do.

> If news companies believe their core purpose is the dissemination of > valuable information, it would make a lot of sense for them to provide a > text-only static version of their website.

I think most serious news companies think they have an important democratic mission. But at the end of the day, the economics have to make sense in order for quality journalism to exist in the first place.

<comment><USER45> you do not have to track people in order to display ads on the internet, you just incorporate the ad on the webpage, and whoever visits the page sees the ad

<comment><USER46> That sounds an awful lot like how ads in newspapers used to work... you put the ads in the paper, and whoever reads the paper sees the ads.

So why do we let people tell us it can't be done on the internet?

<comment><USER47> Computers cut the ads out of the page with no effort.

<comment><USER46> I don't understand the relevance of that argument in this context.

Computers can cut ads that do tracking out of the page with the same effort they can cut out anything else from the page.

The difference is that ads without tracking remove the incentive for the user to block them. This is why people don't cut ads out of the newspapers before reading. If the ads in newspapers were cameras, analogous to the tracking used in online advertising, you'd see people expend that effort. Just as you see people blocking ads online.

<comment><USER48> Plenty of people block ads because the ads themselves are annoying. People don't cut ads out of paper newspapers because it's more annoying to do that than it is to just ignore the ads.

</comment></comment></comment></comment></comment></comment><comment><USER49> This is the first time I've noticed that you can no longer grab the scrollbar in Chrome (on Mac, visible when you scroll).

If I can't drag the scroll bar to the bottom, what other ways are there to scroll all the way down fast?

(Other than using another browser of course.)

<comment><USER50> \- On a touch screen including a laptop you can scroll with your finger.

\- Space scrolls down several lines.

\- Scroll wheel

\- Up and down arrows scroll down a line at a time.

\- Page up and page down scroll down almost an entire page leaving what was the bottom-most section previously now the topmost section so that readers aren't disoriented or lost. Some apps let you configure this overlap size.

\- If you like vim you can add extensions to your browser and use j and k. \- Home and End keys go to the very top and very end respectively.

\- Windows you can hold down middle mouse and drag to scroll. This isn't common in linux where people rely on middle mouse paste but is possible to configure

[https://unix.stackexchange.com/questions/101867/make- mouse-m...](https://unix.stackexchange.com/questions/101867/make-mouse- movements-scroll-when-the-middle-button-is-held-down)

On Mac this is apparently called "smart scroll"

[https://apple.stackexchange.com/questions/64115/enable- mouse...](https://apple.stackexchange.com/questions/64115/enable-mouse-wheel- autoscroll-feature-in-chrome)

If you just want it on chrome there is an extension

[https://chrome.google.com/webstore/detail/autoscroll/occjjkg...](https://chrome.google.com/webstore/detail/autoscroll/occjjkgifpmdgodlplnacmkejpdionan)

In general however you do it grabbing the scrollbar in chrome is inefficient. You must grab a smallish UI element on the side of your screen. Your keyboard and mouse are always at hand.

<comment><USER23> > smallish UI

Scrollbars back in the day were large and thick.

<comment><USER50> Scrollbars are a better visual indication of the ability to scroll than a way to actuate said scrolling. This is why they are smaller. Even thicker scrollbars were still a small part of the screen.

</comment></comment></comment></comment><comment><USER51> If anyone in the comments can figure out a sustainable business model for news that doesn't involve bloat-inducing ads or unrealistic expectations of consumers paying subscription fees, I'll Venmo them (money to buy) a beer.

<comment><USER52> I don't understand why paying for single articles isn't more popular. It's the same for streaming services: I should be able to pay for that one TV-series I want to watch, or that one movie that's only available on that one streaming service I don't have.

<comment><USER53> I mean, you can do the latter already. You can buy a season or a single episode of a show on iTunes, Amazon, etc. You can also rent or buy single movies across many different platforms.

It's just absurdly expensive compared to a streaming service. This is partly due to legacy pricing (I don't think the price of a movie or TV show has gone down in many years, and all the providers charge the same) but also because I'm sure a lot of revenue for subscription services comes from people who buy the subscription but don't use the service.

</comment></comment></comment><comment><USER54> Firefox has solved this problem, at least for me:

      Ctrl+Alt+R

<comment><USER55> Cmd + Shift + R on Safari/MacOS I believe.

</comment></comment><comment><USER56> I forgot which newspaper website it was (some big name) offered me to either subscribe to see the full presentation or go to the text only version, which I did.

It was a delight.

ps: not only web based newspapers goal aren't aligned with users, I feel an unbearable hypocrisy of internet being passed as the disruptive revolution of the old world when in fact it's exactly the same (text, ads, survival, bias) but coated in even more fallacies. At least newspapers have a price tag somewhere.

<comment><USER57> NPR.

[https://www.npr.org/sections/money/2014/10/21/357629765/when...](https://www.npr.org/sections/money/2014/10/21/357629765/when- women-stopped-coding)

</comment></comment><comment><USER58> > The core of the problem is the fact that the incentives of these companies > and their users are not aligned at all. Maximizing revenue at all costs is > every news website's motto.

For further reading, see this one: (I presume this is a classic in HN circles, not sure) [https://stratechery.com/2015/popping-the-publishing- bubble/](https://stratechery.com/2015/popping-the-publishing-bubble/)

</comment><comment><USER59> I was actually looking at the source-code of the page first to see if it has any CSS (to my surprise it actually has a stylsheet with only two rules, for performance reasons it would have been a lot better just to have it directly in a style tag). Once there I was wondering what's up with all this text and thought the entire site was a single-page-application where you could read all his articles :)

<comment><USER60> Hmm .. also some google analytics at the bottom.0 under the book

I still use log parsers (awstats and matomo) .. really am just interested in number of unique/non-crawler visitors and don't care about the rest really.

</comment></comment><comment><USER61> OMG this made me laugh so hard.

</comment><comment><USER62> Pointing out that a news site can be faster with less stuff on it is besides the point. That's the easy part. Point out a way that news outlets can pay their bills efficiently with dozens of people on staff—the ones that actually gather the news to fill your feed. Because if news sites can't pay for a staff, they can't offer their service to the public.

That's the only way it's going to work.

</comment><comment><USER63> Software & data undergo diffusion, such that they will always expand to fill all available resources. Unless it's designed with very specific limits, it will always continue to expand. In 10 years we will be filling up terabyte hard drives on our mobile devices, but a quarter of that will be operating system/app data/cache.

</comment><comment><USER64> Ads are the monster, but developers are at least partly to blame. Most news and magazine sites could be served up as single pages, but instead are implemented as Javascript-heavy single page applications that load 50 different elements asynchronously, because it's just so much more fun to build that than it is to write HTML and some CSS.

</comment><comment><USER65> The advice to use the text only versions for NPR and CNN is solid advice.

I think news is negative and by and large news organizations serve elite interests. In the USA this is mostly to make democrats hate republicans and vice-versa (the slave class, formerly known as the 'middle class', is thus easier to manipulate and control). Since I like to keep my news ingestion to 5 or 6 minutes a day, I use The Guardian's ([https://www.theguardian.com/us- news](https://www.theguardian.com/us-news)) free morning email of top stories. Really a nice service.

Also compared to corporate/elite lacky news sites like MSNBC, Fox News, CNN, ABC, etc., I find Democracy Now ([https://www.democracynow.org/](https://www.democracynow.org/)) to be a breath of fresh air.

I contribute to The Guardian and Democracy Now.

<comment><USER66> Wingnut partisan sources will always be a breath of fresh air to you when they're on your side. Right wingers feel the same way about Fox.

<comment><USER65> I think that Amy Goodman on Democracy Now is about the furthest a person could be from a "wingnut."

I agree that too many people are overly devoted to either Fox News or MSNBC. Just my opinion but these two "news" services seem to care most about fracturing US civil society. We need more acceptance that in fundamental ways most Democrats and Republicans want the same things: opportunity for their children and themselves, security of our country, etc. It does not make money to run news stories that bring people together.

</comment></comment></comment><comment><USER67> Touché. I agree with you about user fatigue and have already changed news sites I check for this reason. Also it was very effective and rewarding demonstration for those of us who read to the end…of the article not the book.

</comment><comment><USER68> The final point would perhaps be made a bit better if the embed was the same width as the article. I was wondering why there was horizontal scrolling when the content fit on screen at first.

</comment><comment><USER69> I wonder if it's even possible in this day and age to run a subscription news service and still be viable. Are people even willing to pay for good journalism anymore?

<comment><USER70> > Are people even willing to pay for good journalism anymore?

They never were; subscription prices never paid the bills for most publications, they just provided "paid circulation" numbers to support advertising sales, since paying subscribers were an indicator actual readership as opposed to copies printed that no one actually read.

</comment></comment><comment><USER71> The majority of news sites don't even make a profit despite how desperately they try to monetize every inch of their website.

</comment><comment><USER72> I dont even bother reading on the actual site anymore. I just save them to Pocket and read a clean text-only version on it later.

</comment><comment><USER73> This was worth the read just to discover text.npr.org. Much better on mobile than their app for me.

</comment><comment><USER74> with all that shit on the news pages, I use RSS (kriss RSS on a RPi-zero server) and read the articles on spot, plus -on the RSS ,again- the articles are clean from ad crap.

</comment><comment><USER75> noscript makes many news sites more bearable—of course, there are some which whitewall you—which can sometimes be bypassed with reader view—but sometimes not :(

</comment><comment><USER76> > I'm more than ready and willing to pay for a text-only version of every news > website like the ones provided by NPR and CNN.

This may be true of _you_ individually, but not _you_ statistically. We used to have more minimalist news sites, but they were outcompeted by sites heavy with trackers, banners, ads, and all the other cruft we love to hate. This is largely because, given the option between paywalled quality and free crap, most consumers end up choosing the latter.

</comment><comment><USER77> > Maximizing revenue at all costs is every news website's motto

I find this statement truly idiotic. The last time I checked almost all legit newspapers, that support quality journalism, are financially struggling, experimenting with paywalls and desperately looking for a business model that could support real journalism in this "everything is free on the internet" era.

</comment><comment><USER78> From the users point of view uBlock origin does a pretty good job with the ads and [https://github.com/iamadamdev/bypass-paywalls- chrome](https://github.com/iamadamdev/bypass-paywalls-chrome) for quite a few paywalls. Of course that leaves the question of how the papers will make a living.

</comment><comment><USER79> +1 for pun :)

</comment><comment><USER80> I think as a society we are waking up to the fact that we don't like how the market shapes many, many industries.

We know that the market isn't perfect from Economics 101. Public goods, free rider problem, and other basic issues show us that market forces and rational players alone will NOT provide the best outcome for society.

[https://en.wikipedia.org/wiki/Public_goods_game](https://en.wikipedia.org/wiki/Public_goods_game) [https://en.wikipedia.org/wiki/Free- rider_problem](https://en.wikipedia.org/wiki/Free-rider_problem)

We currently have three systems of distribution in our society - <USER3> capitalism / globalism, regulated capitalism, and government run programs:

1\. pure capitalism is where there is very little regulation or market intervention

2\. regulated capitalism is where policies, penalties, or subsidies exist to shape behavior of companies in ways that market forces wouldn't

3\. government run programs (or other similar programs) receive funding and try to deliver a service for free or heavily subsidized at cost

There are some markets / areas of consumption that are running well in our country (that we as a society are happy with the cost and quality of service provided). These include:

\- Food, clothing, most consumables, physical goods, hobbies / activities, recreational media, etc.

Some markets that are not running well are:

\- Housing, education, transportation, news media / information dissemination, health care, etc.

Now, there's 3 ways of affecting change:

1\. Add in policies, penalties, or subsidies to an existing market to enforce specific behaviors

2\. Reduce or modify policies to revert specific behaviors or combat inefficiency

3\. Create a sustainable fund / program to allow the service be delivered without market forces attached

Unsurprisingly, these all require government intervention. It's why most people are so vested in the political situation of the present, because our government is the only power that can shape markets and solve these problems.

There is one other route - the public comes together does #3 - creates a fund / organization that is meant to provide the good and service without market forces attached. Now, unfortunately the public lacks a huge factor to sustainability - the ability to tax. So whereas funds from government can be sustaining because of taxes, funds from the public have to rely on a large endowment or other such thing in order to be self sustaining.

Local news, news reporting, and social media currently exist under system #1. But they need to move to #2 or even #3 if it turns out we really don't like giving the market what it values - our time on ads and our data for ads. Or even worse, giving the market the ability to shape our thoughts and public discourse.

<comment><USER81> > I think as a society we are waking up to the fact that we don't like how the > market shapes many, many industries.

That's known for at least a century. If you look carefully, it's know in some form for as long as people has talked about markets.

It wasn't for lack of knowledge that governments abandoned market intervention. People (as a collective) have some funny ways to form their opinions, they some times become radicals, moving from one kind of extremism to another, without stopping for a second to think they may be wrong before completely changing their opinions into the opposite of what they just were. If anybody has a good idea why this happen, it would be interesting to listen.

<comment><USER80> I think it's because capitalism has a "soft correction" mechanism, which is consumer activism. Because complaining and boycotting kind of works as a defense mechanism against market forces, it masks the underlying systemic problems.

Because of this, many people don't actually know how the market shapes industries. We have so many activist conversations and so few policy conversations in public discourse, it reflects what people, even smart people, think about their ability to affect change.</comment></comment></comment>


Facebook Data Team: Relationships and Happiness - <AUTHOR> http://www.facebook.com/note.php?note_id=304457453858 <comment><USER2> I'm surprised they didn't remind the reader of 'correlation is not causation.'

I would have liked to see time domain analysis -- so when a person goes from 'single' to 'in a relationship' does one see a pop in happiness? Is it sustained?

<comment><USER3> They should use the same data to make a followup post which states that happy people are more likely to find a partner or that sad people have little chance of ever getting married.

</comment></comment><comment><USER4> "We already have methodology for measuring the happiness of Facebook users: by considering how many positive words people use in their status updates (see the USA Gross National Happiness Index). _This method allows us to see whether a person's Facebook relationship status affects how positive and negative they are._ " (from post, emphasis mine)

No it doesn't. Correlation vs. Causation.

Counter-example: assume these two men (simplifying to single and non-single categories) are equally happy in real life:

Singles' non-relationship status updates: "Jeff is psyched for his Super Bowl party!" vs. Non-singles' non-relationship status updates: "Tony is psyched for his Super Bowl party!" Comparison by Fb methodology: equal happiness level

Single's relationship status updates: [non-existent] vs. Non-singles' relationship status updates: "Tony loves his super awesome girlfriend Melissa!!! Sweetheart, you're the bestest gf evarrrr!!!1!" Comparison by Fb methodology: Tony seems happier.

Conclusion: obvious nonsense. Somebody tell these guys to take a stat class.

<comment><USER5> She probably is, she's just an intern.

</comment></comment><comment><USER6> So, to optimize for positivity, be in a relationship but don't get married.

<comment><USER3> Doesn't the article contradict this strategy? FTA: _People who are in a relationship seem less happy compared to married folks_

</comment></comment><comment><USER7> With the massive amount of relational data being created in social networks, there is a huge opportunity in the field of analytics. This particular min- study shows trends in happiness vs relationship status, which could be used for a dating site/app spin-off. In a similar manner, analytics can be used to improve media consumption (video, sound, image, text)-- content aggregation is no longer feasible because too much information is being created everyday, so we must find a way to reduce SNR and provide the user with what he/she needs to see.

I am really excited to see many analytics-oriented startups in 2010.

-Ivan

<comment><USER8> Agreed. I would recommend friends pursuing an MBA go for a masters degree or PhD in behavioral economics instead. In addition, I'd like to see more analytics oriented around the individual's own delta - how many times did they switch from "complicated" to a relationship in a 5 year period? How many friends did they add? How many people did they block? A more realistic measure of personal happiness might be obtained by more robust analysis of how a person's self reporting changes over time, rather than a static snapshot of how they report at a simple point compared with how many other people report that same thing in stasis.

</comment></comment><comment><USER9> One thing I'd like to see more on these kinds of data-mining analyses are some sort of error bars, variances, etc. They tend to just report group averages, like A=5, B=2, but there's a big difference between (using, say, 1 stddev as the bracket), A=5 +/- 1, B = 2 +/- 1, in which case they really do seem to differ, and A=5 +/- 15, B = 2 +/- 25, in which case you've got mostly noise.

</comment><comment><USER10> I recall reading a study about happiness somewhere years ago [1] that showed people's happiness generally doesn't change that much. It reacts temporarily to positive/negative effects but then tends to go back where it was.

[1] I think it was probably a critique of this article: <http://www.nber.org/papers/w10499>

</comment><comment><USER11> It's worth pointing out that the 4 graphs on the page have different normalizations, which makes naive comparisons between them misleading.

</comment><comment><USER12> Did Facebook ask me if I would be happy if they did this kind of data-mining on my status updates?

<comment><USER13> They don't have to ask you since you already gave them permission.

<comment><USER12> References for that, please?

<comment><USER13> From the Privacy Policy § How We Share Information:

> To help improve or promote our service. Sometimes we share aggregated > information with third parties to help improve or promote our service. But > we only do so in such a way that no individual user can be identified or > linked to any specific action or information.

</comment></comment></comment></comment><comment><USER14> that's a rather odd way of reporting numbers. "negative 5% more positivity than average." wtf?

<comment><USER13> There's definitely a problem with the readability of the graphs in particular, and with some of the sentences in the summary.

</comment></comment><comment><USER15> People in an open relationship are less happy. Why?

<comment><USER4> Because most people who declare themselves to be in an open relationship on Fb aren't in an open relationship. It's most often done just for the sake of being silly or telling everyone who your "BFF" is. The latter is more likely the closer you are to being a 16-year-old girl.

<comment><USER5> But why would that correlate with "negativity" across a subsection of people?

</comment></comment></comment><comment><USER16> Facebook has no shame. This is a complete ripoff of okcupid analysis.

</comment><comment><USER17> Yeah, great example of how facebook does not understand privacy. Why should I care if its anonymous or not, I dont want them to be even able to find out that kind of stuff about me!? It's like they dont even understand how far reaching this is; their finding out about the happiness of millions of people and they disguise it at as some kind of "V-Day Trivia". This shit creeps me out.

<comment><USER13> It's fairly easy to deactivate or delete your account. Account > Account Settings > Deactivate Account. To preempt any objection that you want to be able to use Facebook, you just _also_ don't want them to analyze your status updates: that's nice, but they are not willing to offer you service on those terms. I guess it's fine to complain about it in hopes that something will change, but the winds are not blowing in that direction, Mr. Quixote.

<comment><USER18> _"... It's fairly easy to deactivate or delete your account. Account > Account Settings > Deactivate Account. ..."_

Is all the data deleted? cf: Eben Moglen 'Freedom in the Cloud'~ <http://www.isoc-ny.org/?p=1338>

<comment><USER13> I think they actually make an attempt to do so when you delete (not deactivate) your account. However, this goes beyond the promises they make to you in their Terms of Service and beyond, in my opinion, any moral duty they have to their users.

<comment><USER18> _"... I think they actually make an attempt to do so when you delete (not deactivate) your account. ..."_

Facebook has repeatedly removed services [0] that allowed you to remove all traces of your account via the API ~ <http://www.google.com/search?q=facebook+suicide>

[0] Cnet, Rafe Needleman, "Facebook cuts off Suicide Machine access" <http://news.cnet.com/8301-19882_3-10424683-250.html></comment></comment></comment></comment></comment>


Meet the car that runs on air - <AUTHOR> http://holykaw.alltop.com/meet-the-car-that-runs-on-air

<comment><USER2> Actual article that the blogspam links to:

[http://www.theatlanticcities.com/commute/2012/08/forget- elec...](http://www.theatlanticcities.com/commute/2012/08/forget-electric- cars-one-runs-compressed-air/2967/)

</comment><comment><USER2> Looks like an update on the continuing development of Tata Motors to try and build a car using an engine made by MDI; I saw articles on this several years ago.

For a solid overview: <http://en.wikipedia.org/wiki/Compressed_air_car></comment>


Interview Programming Problems Done Right - <AUTHOR> http://www.cforcoding.com/2012/01/interview-programming-problems-done.html

<comment><USER4> This is _still_ a terrible problem. It's simple exactly because it is familiar to the interviewer. It's easy for them to believe that anyone with half a brain should be able to answer it because they've practiced it a hundred times and have forgotten exactly what it is like to not know the answer.

I think coding problems are terrible for almost any interview because the candidate is going to be struggling to find the right answer that will please you. They're looking to avoid causing you to press the big red button that gives them the electric shock and sends them home feeling like they're the most stupid person on Earth for not solving the easiest algorithm problem known to human kind.

I get it though: as people who have to interview potential hires it gets tedious wading through the muck. Personally I don't understand how you can interview someone for a senior position without reviewing their prior work. I also find it rather insulting to assume that we should just separate them from the wheat just like all the other chaff. It's just disrespectful IMO.

I'd done a lot of interviews about a year ago. All but one of them used a programming test of some sort. From fizzbuzz to fibonacci to splitting words, finding palindromes and implementing FIFO queues. I did it all. Some of them I got right. Some I didn't. Even the ones I had practiced and came to know really well... sometimes even then I would blow it. It was a really disheartening experience and I almost gave up programming forever when I started to believe that rigmarole about how any programmer worth their salt should be able to solve these problems without thinking about it.

Which got me to thinking. I can solve these problems easily. I've got my algorithms books, I practice code kata, and I can generally golf some problems off the top of my head and they'll often compile. Why can't I do this in front of other people?

The psychology of the situation is what gets in the way. If you give a candidate a problem they're going to immediately begin to think about what you want them to say. You say it's not trivia, but that's the exact mental process that will happen in most people. Given such a problem I'm certain a good number of candidates I interview would be able to solve them on their own. They might even be able to white board them once we start working together and they get to know me. But while we're in the interview room I'm the gatekeeper with the big red button and they've doing everything they can to keep me from pressing it. That doesn't work for me because I know that's not what I want from them.

When I hire someone I look for initiative, experience, and intuition. I look for people who have taken what they've been given and made something more for themselves. If at their last job they weren't happy with something I'll ask what they did to change it. I also like to test their experience. I ask design-type questions, ask them what they like about their tools, what they don't like, patterns they've seen, how they practice... things like that. And finally with intuition I like to throw up some source code of some problem I'm working on or interesting ones I've come across (and solved) in the past and discuss it with them. I give them an over view of the code, my expectations of it, and then ask them to read it. We walk through it and I get to see how well they can spot bugs, code smell, what they focus on when they see code. IMO, these are the sort of things that I think demonstrate a person's knowledge of programming.

And from my experience I think it's a better way to find good candidates.

<comment><USER5> Your first sentence is way off the mark. Obviously an interviewer needs to have intimate familiarity with the problem that they give to potential employees, and have hands on experience implementing it in many variations. But that does not mean that it is unfair to ask this question because you do not know the answer.

This is a lot like fizzbuzz because the instructions for writing the code are simple, straightforward, and should be understandable by any programmer. This is not a question with an answer. This is a SPECIFICATION for a program. If you know how to code, it should be easy to write some code that meets this simple specification.

P.S. most interviewers will give you bonus points for explaining your work as you do it, particularly why you chose to use a certain approach, and what you assumed even though it was not explicitly specified. This is true even if you botch the end result and provide code with severe errors.

After all, that's what good coders do most of the time, write incorrect code with severe errors. The rest of the time they fix their mistakes.

<comment><USER4> It's not far off the mark. The problem with familiarity is that it's easy to conflate with _easy_. Once you see the solution to the problem it's hard to believe that it's hard to implement. The solution is so easy, how could anyone worth their salt not see it?

As an example of what I mean: studying math. The majority of the time after reading or listening to an explanation of the problem and walking through an example exercise or two, I the student am left to bash my head against a set of problems. Despite the wishes of the teacher and their best efforts to illuminate the way the solutions to the problems and why they work is not clear. You have to just throw your mind against the wall until you break on through. Then when you do you see that the answer really is simple. And you wonder why it was so hard to see it. Years later you might wonder why anyone cannot recognize how simple it is. You've forgotten what it's like to be a beginner on the other side of the wall.

The other half of the problem I see with using puzzles in interviews is the adversarial nature of the situation. By posing the problem you're triggering a response in the candidate to find an answer. They want the correct answer because they want the job. Explaining to the candidate that they can think aloud and walk through the problem might help to switch them off that track, but I find only a handful of people respond to that encouragement.

I did upvote your comment though because you're right -- most of the time we write incorrect code. Despite our best efforts to write our tests up front and walk through our best laid plans, we still make mistakes. Developing software is a process and becoming a good programmer, to me, means mastering that process and cultivating the wisdom and experience to see the bigger picture.

Trivial problems trigger the trivia response. We learn trivia by rote. Once I got over the initial depression when I had to go through this style of interview process I figured out a way around it. I wrote software to train myself in trivial programs and practiced walking through problems I was unfamiliar with. I started practicing code kata and as a result have been more comfortable with these sorts of problems... but is that really a good indicator of competence? Is it even a useful signal? Of what does it signal at all?

</comment></comment></comment><comment><USER6> This is not, nor are similar whiteboard questions, a good interviewing problem. Not because the problem is particularly difficult or uninteresting, but because no matter how much the interviewer wants these questions to just be 'signals' of your ability, the candidate's performance at the whiteboard will likely be the determining factor for landing a job. The whiteboard gets too much weight, because it's too hard for an engineer (or likely anybody) to ignore somebody having a bad moment and flailing on something that seems so trivial to the interviewer.

And this is why Google's interviewing process and reliance on these problems is terrible.

You are put in five 1 hour sessions where you are asked Pascal Triangle esque whiteboard problems. Get a bit intimated? Stressed because of the interview? Miss your morning coffee? Start to panic a little bit? And suddenly you stumble on 1 or 2 of the problems and make an embarrassing impression.

At this point, it does not matter how strong your portfolio is, how many recommendations from fellow Googlers you have received, past performances, or your samples of past code (all of which are much stronger signals than a whiteboard problem). You will not be getting the job.

<comment><USER7> I hear this complaint a lot, but I kind of don't get it. I just don't know any way to make job interviews fair for people who are having a bad day. Can we just stipulate that any interview technique will fail to recognise the potential of some candidates? False negatives of that sort are kind of inevitable. And from the point of view of a hiring company? a few false negatives aren't the end of the world. A false positive is way more costly.

<comment><USER6> Because a candidate with a mediocre background yet a strong showing on the whiteboard will get the job. The problem isn't not hiring somebody having a bad day. The problem is the over reliance on the whiteboard signal, despite a candidate's history of contradictory evidence (either positive or negative). If you are going to use typical whiteboard problems as a signal, it is really really hard to not heavily weigh the results, especially when sour.

<comment><USER8> "Because a candidate with a mediocre background yet a strong showing on the whiteboard will get the job."

Is there evidence that this happens a lot? Does this happen at Google, where whiteboard programming during interviews is common?

"The problem is the over reliance on the whiteboard signal, despite a history of contradictory evidence (either positive or negative). If you are going to use typical whiteboard problems as a signal, it is really really hard to not heavily weigh the results, especially when sour."

What history of contradictory evidence? Do you have any suggestions for other signals that have proven effective in your experience?

I have very, very little experience as an interviewer and no experience dealing with and evaluating the success of new hires in the long term, so I definitely don't claim to have the answers here.

<comment><USER6> Sorry, the 'history of contradictory evidence' should have read the 'candidate's history of contradictory evidence' (e.g. having a really strong portfolio and work history to contradict a poor showing on the whiteboard).

I try to interview a candidate like he is a friend I haven't caught up with in many years. I want to have as honest and interesting of a conversation as possible, hear all his opinions, and learn all about what he has done and can do. If I feel the conversation was honest, the personalities were compatible, and there is evidence of good work and reliability in the past, I will likely consider the candidate a hire.

The problem with this method can be

1) It relies on the candidate having some sort of tangible history (referrals, solid portfolio or resume, open source projects, etc...), so new grads are tougher for example.

2) Having an 'on the level' conversation with somebody who knows they are being interviewed is not always possible. Nor are all interviewers capable of extracting useful information this way.

</comment></comment></comment></comment></comment><comment><USER9> I'm with the camp that thinks that having to code on a whiteboard for an interview is just _INANE_. Worse than that, I find it to be borderline abusive. The whole concept just makes me quite mad. I graduated from MIT, and in my first programming class there (SICP), which I took first semester freshman year, I scored in the top 10 students out of 200 in the class. I've written software to control a space telescope and adapted brain imaging software to visualize astronomical data. I wrote a tutorial on how to do coordinate frame transformations, after first deriving the math myself (which isn't rocket science, but I hadn't done any linear algebra in 20 years at the time, so it took some thought).

Clearly I know how to code! But put me at a whiteboard and ask me to code Hello World, and I'm likely to start sweating profusely and then get very dizzy, and then just ask to leave. I managed to make it through a first round of interviews at Google, but I had to take tranquilizers before the interview to make sure that the aforementioned scenario would not happen, but I don't think that people should have to be subjected to this. And I certainly wouldn't subject myself to this for almost any other company. I'd just say, "Screw you--I can find a job elsewhere." (I didn't end up doing the second round of Google interviews because I was offered a job elsewhere, and Google said that it would take a least an additional month to make a hiring decision.)

Where I work now, the interviewing process is much more civilized. We send the specs for a small program along with some unit tests, and give the applicant however long they'd like to complete it. It should take a page or two of code and a couple of hours to complete at most. One might worry that people would cheat, but that hasn't been my experience. Most applicants never submit a solution at all. I suspect this is because they couldn't get their solution to pass the unit tests. (What we ask them to do, is not difficult. Anyone who passed a college course in software engineering with a grade better than a C should have absolutely no problem completing the assignment.)

So, then some fraction of applicants actually complete the assignment. These submissions show that the vast majority of so-called software engineers -- or at least those who are looking for jobs -- can't code their way out of a paper bag. I.e., most of the submissions are grossly inefficient and hugely over- engineered or under-engineered. Finally, a few of the submissions are passable (rarely do we get a truly excellent solution, which is kind of sad), so we have them come in, and as part of the interview, we'll have them go over their code a bit and explain why they made certain design decisions, etc.

If you ask me, this process gives us a much better idea of how someone would perform in the real world of being a software engineer and any amount of coding on a whiteboard ever could.

<comment><USER10> I really, really like this approach.

It beats the whiteboard quiz in every aspect.

It is not only a far more pleasant experience for the interviewee, but it also represents the candidates real world programming skills more accurately.

</comment></comment><comment><USER11> Hrm, I don't like this. I consider myself a pretty competent programmer, and I like doing programming puzzles for fun. I've spent a decent amount of time on 4clojure, project euler, and similar sites, and I can generally come up with solutions I'm happy with (elegant enough for my own liking).

That said, from the stress free environment of my couch, some of these puzzles take me quite a while. I'm fairly confident that if asked to hash out a solution to this on a whiteboard in an interview situation, the stress of being put on the spot would impede my ability to perform up to par, and I'd probably come across as inept.

Ironically, I'm one of the principal interviewers at the medium-sized company I work at. Many of the interviews I conduct delve into fairly technical discussions of previous projects the candidate has worked on, and I can generally walk away with a fairly firm gut feeling of how competent someone is.

Candidates that give a solid initial impression are always asked to submit additional code samples (sometimes several rounds thereof), and occasionally asked back for one additional followup interview if we need any additional details.

Through this gradual feeling out process, I feel like we've acquired some very excellent hires that we may have otherwise looked over if we based our process strictly on brain teaser type screenings.

<comment><USER12> _I'm fairly confident that if asked to hash out a solution to this on a whiteboard in an interview situation, the stress of being put on the spot would impede my ability to perform up to par, and I'd probably come across as inept._

There's a mistaken assumption here that because you're a competent programmer you're expected to solve these exercises with ease [1]. If you're interviewing with that expectation, you'll have a huge false negative rate and only hire people with nerves of stainless steel. Even experienced programmers can make very silly mistakes when coding under pressure in front of an audience.

What you're expecting to see is that the person can reason, knows the basic syntax of the language he claims to be familiar with, and doesn't make any mistakes that show a total misunderstanding or unfamiliarity of how it works. (Put differently, have they read a book/website of examples of the language, or have they actually _coded_ in it?)

If you point the experienced programmer that's very nervous a few of his mistakes, you're expecting him to show sheer terror and panic as he realizes what he's done [2]. If the candidate is showing you a blank stare instead, you might have a problem.

If you're only verbally interviewing and asking for code samples, you can get fooled easily. Some candidates think that if they can bullshit their way through the interview, they'll stay hired. And sometimes, they're even right, because most people don't like to fire.

At some point, we were having serious problems filling positions and started de-emphasizing doing bad/mediocre on the coding part of the interview, and focus more on the experience and verbal interview, on the assumption radiated in many posts here that serious coders might not necessarily be able to show their ability in a coding interview. _All_ of those hires turned out to bad.

You'll have a hard time convincing me now that coding interviews aren't effective.

[1] The example here is FizzBuzz. Why is it so _trivial_ that many people can't believe it works? Because even good coders will fuck up more complicated questions in interviews.

[2] Just as an observation and nothing more: experienced coders tend to also not being able to bear the sight of those mistakes and insist on being allowed to correct them even if told it _really_ doesn't matter.

<comment><USER13> I agree.

I do think is valid to show code produced just-in-time, but I don't it's okay to observe the candidate, for the reasons already pointed out.

If you must ask for code, give the candidate a computer and leave the room, or have the candidate leave the room with a computer and leave him to it.

You should be at least partially trying to emulate real working conditions. Otherwise it's just torture.

</comment></comment></comment><comment><USER14> This is an awful interview question. It falls into the same trap that a lot of questions fall into: this is not something that would likely turn up in every- day work. Why are you asking a candidate questions about work they will never do?

It's also too Computer Science. They're not interviewing for a CS course. They're interviewing to write, debug, maintain and ship code. What you should be exploring is code style, correctness, error catching, and the thought process that goes into it. Expand the question in that manner.

Code golf is a very poor signal for a good engineer.

Edit: For example, ask "Will this work for all input values of n?". Negative values might have issues, and as 'n' increases it either takes too long to complete or runs out of memory. It's surprising how many candidates don't understand that - and the way this question is asked would not discover it.

</comment><comment><USER15> My main issue with this type of question is that people will take this (or other popular questions) as the catch-all type of problem to ask in any interview for any candidate.

If you are hiring a generalist or you are in a company that writes code in everything under the sun (Experience in Java, Ruby, Python, iOS, and Javascript preferred!), these questions are probably appropriate.

But when you are hiring a web developer to work on your Rails app - <USER2> interview question should not revolve around optimizing space complexity or a recursive algorithm that exploits symmetry. The question should be more targeted to what the day in and out work will be - write some RSpec tests, fill in some controller methods, create a simple model. Use that as the filter.

I don't think anyone applying to a Rails gig is going to balk at doing that kind of interview and I think it will be a better predictor than if they can find the largest substring palidrome in O(n).

<comment><USER16> You'd rather test for trivial mechanical skills rather than fundamental understanding?

<comment><USER15> As a filter? Yes.

I'm not saying hire anyone that can do a fill-in-the-blank Rails controller action - but how they handle that mechanical task should help you figure out what direction to proceed in (a deeper dive into the fundamentals, a "Thanks, we'll be in touch").

I'd rather test trival mechanical skills rather than puzzles .

</comment></comment></comment><comment><USER17> Typically we'll start with an even simpler problem before dropping them into something like this. Over time, we've found that a good 1/3rd of candidates can be eliminated with just fizzbuzz (print the numbers 1-100, for numbers divisible by 3, print fizz. For numbers divisible by 5, print buzz. For both, print fizzbuzz). Even if they do stellar on a phone interview, a large number of candidates still cant get past this simple problem. It's also easy enough that you can give it to people at job fairs on the spot. Any programmer that you'd want to hire can finish this in less than 5 minutes, which is an easy time investment to make.

<comment><USER18> One of the advantages that proponents of reviewing the candidate's code before the interview have is that you don't have to spend any time doing FizzBuzz kind of problems, which are just time wasters.

If you're _interviewing_ people who can't print the numbers 1-100 then something in your process is just wrong. Why did they get that far?

<comment><USER19> Asking FizzBuzz is a lot easier than reviewing code, which may or may not be theirs.

<comment><USER20> If they have a github/bitbucket, this will show more than answering silly questions.

<comment><USER17> Until you have someone who just gives you the link to someone else's github account. You'd be amazed at what people do.

</comment></comment></comment></comment></comment><comment><USER21> If you ask me to do anything on a whiteboard I assure you it will take me a very long time and probably not work when transferred to an executable environment.

At least let me type it in VIM and have an interpreter handy so I can test as I go. If I'm not expected to code on a whiteboard, having me write code on a whiteboard during an interview is retarded.

I think that it would be appropriate to have me, say, model a database by drawing an ERD on a whiteboard as part of an interview question.

If I went for a job interview and was asked to hand write code or write on a whiteboard I'd probably leave.

<comment><USER22> I actually had an interview where I not only had to code the solution on the whiteboard but the developers then gave me parameters that they wanted passed in and I had to execute the function in my mind and give the correct output of the function.

<comment><USER16> That's what efficient developers do. Relying on the compiler/interpreter for seeing if an algorithm works is a crutch. Mentally stepping through an algorithm, including keeping track of the state of e.g. state variables or stacks, is a litmus test to see if you really understand the code you just wrote.

(preemptive nitpicker rebuke: getting the exact numeric output if that output depends on calculating e.g. the root of 34252 in your head is not what I mean by this)

</comment></comment></comment><comment><USER23> Problems on a whiteboard don't test programming skills simply because the whiteboard isn't executable. You don't get the feedback that REPL gives you, so you can't build up your solution - and understanding of the problem - iteratively.

Seems to me that holding a code retreat and pairing with interviewee's would be more realistic. It would eliminate at least some of the pointless stress of interviewing and would get closer to a real programming environment.

It's not like nobody has enough computers so you have to use whiteboards.

<comment><USER12> _Problems on a whiteboard don't test programming skills simply because the whiteboard isn't executable. You don't get the feedback that REPL gives you, so you can't build up your solution - and understanding of the problem - iteratively._

Strange argument. What are people who write in compiled languages supposed to do? Particularly if their code is part of a product with a long build cycle?

 _It's not like nobody has enough computers so you have to use whiteboards._

On this I agree. We switched from whiteboards to giving the candidate a laptop, their editor of choice, and access to a compiler and the manpages and this was a major improvement.

<comment><USER23> look up doc - edit - compile - test - repeat is pretty close to interpreted language repl cycles. But then I started on punch cards, so maybe my perspective is different. [one to three compile & test cycles/day makes anything interactive look good]

Appreciate the comment though. Gives me food for thought.

</comment></comment></comment><comment><USER24> I'm not sure how this is any better than any other annoying cs question asked by 90% of companies nowadays. My best interviewing experience was with a fairly large startup for an iOS programming position. Instead of a phone screening interview, they sent me a small iOS app description and asked me to code it and send it in. The in-person interviews was me and the interviewer, at a computer, coding sample iOS applications and looking through code.

This is directly related to the job and through asking questions about the code and how to accomplish different things, the employer knows all they need to about the candidate's abilities.

I've been asked to write the Fibonacci algorithm so many times that I can literally code every version of it with my eyes closed. Does that mean I'm a good programmer? I'm pretty sure anyone can memorize a dozen lines of text.

</comment><comment><USER25> I personally don't care how simple a question is or how well it's explained. If I walk into an interview with a portfolio full of samples and completed projects, and a resume full of references and qualifications, it's _insulting_ and leaves me with a bad impression of the employer.

<comment><USER12> At one point in one of my first hiring experiences I was asked at the last minute to come sit in on interview of a candidate, and handle the technical part of it. This was for low-level driver development work. I hadn't seen his resume before, so I got a pretty bad shock when this candidate said at one point "I'm the maintainer of subsystem X in the Linux kernel". With a a laptop on hand, "cd ~/git/linux-2.6; grep -R candidate_name" revealed easily enough to verify he wasn't joking.

I bailed out of that interview, as I considered it grossly inappropriate to interview someone who was obviously much my senior in the relevant subject matter.

The more senior interviewers informed me afterwards that was a mistake. If the candidate is who he claims he is, it will be immediately obvious during the questions, you apologize profusely and all are happy. If that doesn't happen, you might have saved the company from a major screw-up. And that does happen.

TL;DR easier to apologize to a candidate than to to fire someone

</comment></comment><comment><USER26> I'm being nitpicky, but the iterative and "dynamic programming" solution are both dynamic programming if you follow the strict definition.

Both are exploiting optimal substructure and the recursive nature of the problem. The best solution, labeled as "dynamic programming" in this article is actually just the most well optimized dp solution.

<comment><USER27> While we're at it, the last one could work purely in-place.

</comment></comment><comment><USER28> I think this problem is a great interview question. It's easy to describe, and it's easy to get started solving it by writing the first few lines on the whiteboard. From there, the pattern should be obvious, and once you've recognized the pattern, you only need to write a few lines of code. The disadvantage is that someone might remember Pascal's triangle from high school math, and will try to "remember" the answer instead of actually solving the problem incrementally. _This_ is worthless because the question is about problem solving ability rather than your memory of exam questions like "Expand (x+3)^27" or "Factor x^3 + 3x^2y + 3xy^2 + y^3". (I do remember writing Pascal's triangle on these sorts of exams, incidentally!)

Anyway, reading the other comments in the thread, it seems I am alone in liking this sort of question. I think these types of questions are good indicators of programmer quality. Anyone can read a Ruby on Rails tutorial and make an application that stores some records in a database. It doesn't take understanding to do that, it takes practice. That's all very good, as long as you're sure that your work will only be repeating what you've practiced rather than developing new skills. I think that programming work is very rarely like that. Yes, your job involves Ruby on Rails, but it's largely about solving some sort of complicated problem and then hooking the answer into your UI. Your experience with Rails will speed up the UI work, but if you aren't willing to understand and solve problems, you'll never have anything to put in the UI. (The people that can only do the UI part are "code monkeys" and don't get paid very well.)

If you think that you'll never need to understand problem X, it's simply because you are unwilling to understand problem X. Once you understand graphs and algorithms and data structures, you'll see how you can apply your understanding to write better software. You might not think they're very important, but that's because, right now, you have no idea of how those techniques might be important. Learn them and _then_ come back and say "everything in CS class is garbage". You won't, because it's not. Your job will be easier and you won't be navigating the waters blind.

So I guess my point is: algorithm questions are good. There are a lot of programmers who can't solve problems (but can monkey code), and if you want the best programmers, you want the ones who can both solve problems AND write code.

</comment><comment><USER29> "Any solution trumps no solution but the quality of the solution will give you a useful signal (IMHO)."

I hate how it sends a negative signal in a programming interview to do the obvious recursive solution first instead of leaping directly to the dynamic programming one. I'm already nervous enough for Christ's sake!

<comment><USER30> As an interviewer, I would not mind seeing a "naive" recursive solution first, though I would want the interview candidate to either mention this before implementing the recursive solution or later when they "discover" the inefficiencies. Showing your work (and describing your thought process) can provide more insight to an interviewer than just popping out an optimal solution without explanation!

</comment></comment><comment><USER31> Mathematician's solution: the entries in Pascal's triangle are combinations (n-over-k), which can be calculated directly: n-over-k = n!/((n - k)!k!). (If you want to be even faster, use Stirling's approximation to the factorial.)

<comment><USER32> Yes, neatly circumventing all of the clever algorithmic complexity optimisation that the interviewer is apparently looking for, and making this an even worse interview question.

</comment></comment><comment><USER33> Let me point out a slightly different whiteboarding approach I've used. I give you the problem. I give you the solution too! I will even explain the solution patiently, line by line, until you are absolutely convinced.

Then I simply grow the problem - just one tiny step. I ask for the solution for this new problem. And guess what ? Most people still flunk!

Here's the problem I use( we are a quant outfit ): \--- Say I have $100 in 1 dollar bills.

How to make the most money if I have to split it between google and apple ?

\---- solution --

val apple = (0.015,0.1) // 1.5% return/month, 10% risk

val google = (0.008,0.05) // 0.8% return/month, 5% risk

val rho = 0.4 // google apple correlation is 40%

// returns are weighted means

val myreturns = (0.0 to 1.0 by 0.01).map(x=>(x * a._1 + (1-x) * b._1 ))

// risks are standard deviations

val myrisks = (0.0 to 1.0 by 0.01).map(x=>sqrt( x * x * a._2 * a._2 + (1-x) * (1-x) * b._2 * b._2 + 2 * x * a._2 * (1-x) * b._2 * rho))

// sharpe = my return over my risk

val sharpes = (0 to 100).map(x=>myreturns(x)/myrisks(x))

// goal is to make most money ie. max sharpe

println( "Most money has sharpe:" + sharpes.max )

\</comment><comment>

Now let me grow this problem, by just 1 more stock.

I have $100 in 1 dollar bills.

I give you 3 stocks: google, apple and amazon.

How to make the most money ?

This stumps so many people I have lost count! The ones who do well have usually taken a semester of undergraduate combinatorics, so they see instantly what needs to be done.

<comment><USER34> That's a terrible programming question. You might as well just ask "Hey, did you take combinatorics in school? Ok, cool."

<comment><USER12> If that's important for his company, why not? It's like the people that apply for a programming job and complain they get O(n) questions. Also, it doesn't just test if they took it. It also tests whether they understood it and can apply it. (You would expect the schools to do that, but...)

Of course, if this question requires combinatorial knowledge, and its irrelevant or not critical for the job, then that's just bad.

</comment></comment></comment><comment><USER35> > _The second optimization one could make is that since f(r, i) == f(r, i-1) + > f(r, i) then to calculate f(r, i) you only need to calculate up to the i'th > element of each row._

You actually only need to calculate up to the i'th element of the row you want.

The Wikipedia page about Pascal's triangle [1] teaches us that it's possible to calculate a row directly (without any knowledge of other rows).

Therefore we can do this:

        #!/usr/bin/python
        for row in xrange(200):
          curr = [1]
          vc = 1
          for c in xrange(1, row/2+1):
            vc = int(vc * (row+1-c)/float(c))
            curr.append(vc)
          curr.extend(curr[::-1])
          print curr

(And of course since each line is symmetrical we only need to compute half of it).

This version is only a little faster than the last one provided by the author, but for some reason it's much more consistent, time-wise. For 200 rows it stays between 250-330ms between runs, whereas the author's last version is between 300-550ms.

And with a little modification, this version will let us compute any row much more efficiently than starting at the first row every time.

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

PS: There may be a more efficient way to calculate vc (Cell Value) than using int() and float(), but I don't really know Python so that's the best I can do ;-)

</comment><comment><USER36> Extra bonus points if they reduce quadratic to linear time with something like

        def pascal_row(n):
          row = [1]
          for i in range(1,n+1):
            row.append(row[-1]*(n+1-i)/i)
          print row

(and more if they can talk intelligently about additions versus multiplications and divisions, the cost of [].append(), when if ever linear- versus-quadratic actually matters, bignum arithmetic, etc., etc., etc.).

<comment><USER37> Yeah, I finished the article still wondering when he was going to get to one of the good solutions. A programmer with good math should be able to write a nice linear time solution right away.

And that's one more reason why it's a terrible question. If you're looking for good programmers and not math whizzes then the solutions in the article tell you more. But they're all badly suboptimal if you know what you're doing. If you don't know what you're doing, the best answer is that you'd Google for it on Wikipedia.

</comment></comment><comment> alok-g A good test to see if interview questions are you are posing to a potential candidate are good ones is to allow the candidate to pose a similar number of interview questions to you. If they can also pose problems that by your own standards you should be able to answer, but aren't, then you are not doing it right (unless you yourself are not a fit for the position under consideration which may very well be because you are in a different position).

For some reason, some interviewers start with a belief that they are smarter than the candidate. While any reasonable person would feel that they do not fall in this category, think about how would you actually know if you do (this is not to say that you do fall in this category). The job of a good interviewer is as much to not reject a good candidate as it is to not accept a bad candidate; in both cases thinking of the position under consideration. If you start with this mindset, and by default subject yourself to as much doubt as you are subject the candidate to when her answer does not match your thinking, you are doing great.

</comment><comment><USER38> Done right? Sorry, you bored me to death as soon as you started blabbering about Pascal's Triangle. I'm sure I learned about that at some point, but I've forgotten it. You asking me that questions would result in:

1) Me feeling stupid because I don't remember what Pascals Triangle is.

2) Me stumbling through some code while I try to understand the explanation you give me.

</comment><comment><USER39> The problem with tech interviews is that we tend to _debug_ candidates rather than _interview_ them, which leads to this confrontational, almost antagonistic pop-quiz process. An interview should be a conversation - <USER3> you're trying to ascertain whether the candidate is smart and, most importantly, whether you could stand working with them but it should still be a two-way, human interaction.

If you genuinely think that their tech skills aren't good enough then I've found the best test is to give some simple exercise for them to do in their own time, which you can then talk through in the interview. In this way you can set a realistic exercise (as opposed to 'generate me Pascal's triangle') and dedicate more time in the interview to the interesting stuff - 'why did you do this this way?', 'what the complexity of this approach?', 'can we improve that?' etc. How the candidate answers those question are a much better signal of intelligence then how adept he is with a whiteboard.

</comment><comment><USER40> I think a lot of people here are missing the point that this is only _one_ interview question, not the entire interview. You still need to ask icebreaker questions about the candidates experience to get them comfortable before breaking out a whiteboard question, and you should still follow up a "stock" question like this with a more specific question taken from your domain (if they make it that far).

I'd also add that you need to have several of these "stock" whiteboard questions on hand. If the interviewee seems to get the solution too easily, they may have heard the question before. Everyone knows FizzBuzz by now, and I gave three answers to "compute the nth Fibonacci number" at my last interview. These questions are no good anymore if you're trying to see how a candidate thinks on their feet.

</comment><comment><USER20> The biggest issue with these puzzle questions is they are easy to memorize and encourage solving in the shortest amount of lines of code.

I don't know why people rely on them at all because most candidates they hire probably have just went on pythonchallenge or interviewstreet and learned all the solutions to popular problems and then went to the interview or even learned the solutions by going to enough interviews.

I want someone who can think on their own (not memorization) and can write _good_ code (read: not shortest lines possible).

</comment><comment><USER41> No, this isn't "right". It _may_ be right for a specific job with specific skill requirements.

I've been programming for over 25 years, and I've never had to solve any problem even remotely like it. I've also worked with dozens of programmers who could easily solve a problem like that, yet couldn't deliver a working application if their live depended on it.

Different programming jobs require different skill sets. There is no universal test.

<comment><USER42> I agree. I think the attribute most important to my job is being able to turn a complex specification into an app with clean architecture, with no two way coupling between components, generally useful parts abstracted away into reusable code, usage of existing open source modules instead of rolling my own where appropriate and so on. I don't think this test would reveal much of that about me.

That said, for the first time in my career I was given a test to do and that seemed to be specifically designed to see how well I could architect code and yet I still screwed it up. That might show that I'm a bad programmer, or it might show that it's dangerous to use a short test to generalise about someone's ability.

I like to take jobs on a contract basis, that way there's less risk for the clients as they can cut me whenever if it doesn't work. As a result of that the interview process is usually pretty quick and informal and I can show on a day to day basis that I am good at what I do.

</comment></comment><comment><USER43> Why don't people pay candidates for a day's work and see how they do? It would be cheaper and a far better indicator of actual potential.

<comment><USER12> The administrative overhead of doing this would be immense, if it is even legal (at least in my country).

</comment></comment><comment><USER44> You're all wrong.

Firstly, for the crowd arguing about whether this is a good/bad/ugly question, your initial premise is wrong, because you pre-suppose that there are _any_ good programming questions to ask in an interview. Since waffling about this sort of crap is entirely orthogonal to actual coding skill, there are _no_ good questions, they are all bad. It's like trying to find the fastest marathon runner before the race by interviewing everyone and deciding who will win based on who gives the 'best' answer.

Secondly, for the crowd debating the algorithms and offering better programming methods, or smug in your assurance of quadratic/linear/O(n) time or whatever, you're all wrong because your initial premise is wrong. You assume this is a programming problem, but programming is the wrong tool for the job. A much better general purpose tool for 'solving' this problem (but not even necessarily the 'best' tool) would be a spreadsheet for instance. Using a spreadsheet you could have finished (including testing - e.g. eyeballing the result for correctness) before the 'optimisers' have even finished typing in their code. In terms of effectiveness, you silly coders might as well be using pea-shooters in an ICBM competition.

</comment><comment><USER45> You can learn a lot about a programmer, the way he thinks etc by asking very simple questions .. my favorites being "reversing a string" and frequency of characters in a given sentence etc.

<comment><USER20> But thats just another popular interview question that all developers have memorized. So in python every developer you ask will just say s[::-1], they aren't even going to think about it.

I prefer hiring based on Github or having them design a small project.

</comment></comment><comment><USER46> > Bonus points if the candidate correctly states this as "memorization" > (rather than the more generic "caching").

Probably an autocorrect mishap there.

<comment><USER47> An unfortunately placed one at that.</comment></comment>