Propose HN: 'Countless' experiment – hiding all karmic integers - <AUTHOR> I'd like HN to experiment with a "countless" view of the site for a week. As in: all vote, karma, and comment counts are removed from all pages sitewide. An example of this idea is here: https://i.imgur.com/OzE8qgq.png
I suggest this as a mandatory-for-all sitewide test, as otherwise the compulsion to see integer counts (such as karma) will fork HN into two distinct communities operating within the same shared space. I believe that this experiment is valuable only if everyone participates, and since the data will remain present on the back end, no harm is done to anyone's preferred integers of choice while the experiment is underway.
I believe this would be a good experiment for HN as I worry that HN is unintentionally causing addictive feedback loops with its pervasive use of counts. Counts are already today hidden in scenarios where the admins seem to have determined that people behave more appropriately when they are unable to see a precise integer ranking of other's approval. I'd like to give the HN community a chance to experience the value of HN without the pressure of integer-ranking altogether.
The voting algorithms need not be modified for this experiment, as we already are able to flag comments and posts effectively without being able to see how many flags are present. The front-page links that say whether comments are present or not would simply be replaced with the word 'discuss' to remove the pressure to 'be seen' participating in posts, permitting one's interest in the post and/or topic to become the sole determining factor for participation.
I hope that HN is willing to entertain and implement this experiment and am curious to hear how the community feels about the idea. <comment><USER2> _permitting one 's interest in the post and/or topic to become the sole determining factor for participation._

An awful lot of people here are more interested in the comments than the articles per se. Plenty of people read the comments first and then decide if they want to read the article. Many people participate in discussion without ever reading the article. (There are both good ways and bad ways to do that.)

If you are relating to the site in a particular manner and not happy with it, I suggest you do a private experiment to try to find some new way to interact with the site.

If you want to "offer" people the chance to experience this, I suggest you code up something that lets people try this.

</comment><comment><USER3> When browsing the titles of Hacker News, I look at the vote and comment count to determine whether an article is high quality or not. I am not sure how I would filter the signal from the noise without this.

<comment><USER4> you could use [https://news.ycombinator.com/over?points=200](https://news.ycombinator.com/over?points=200) or maybe the experiment could allow opt-out

<comment><USER5> But you can use that one to then brute-force the points for every story.

<comment><USER4> not so easy for lower scores :)

</comment></comment></comment></comment><comment><USER6> > The front-page links that say whether comments are present or not would > simply be replaced with the word 'discuss'

Please do not do this. This makes HN far less convenient to browse.

I regularly use the "N comments" information to find discussions worth reading. This has nothing to do with "being seen", it has to do with quickly finding interesting comments. The front-page screenshot you show completely removes that signal.

For a similar example, consider how many email clients show you, without opening the mail, when it was sent and whether it has an attachment. This information helps with prioritization and processing, particularly when you have many emails. Comment counts, and to some degree story scores, serve a similar function, for people who are never going to read every story on even one viewing of the front page.

I go to HN, I open a few stories and comment sections in tabs based on a combination of title, comments, and score, then close the front page and start reading.

This isn't similar to the removal of scores from comments. For those, users were already on a page full of comments, comments themselves are relatively short and shown inline, and even without scores they're still reasonably sorted by some HN-internal metric of interestingness, making it possible to just read downwards and stop when your expected value of further comments doesn't seem worth the time of continuing.

Removing comment counts and scores from stories, on the other hand, makes the front page _far_ less usable.

To look at this from another perspective: consider the myriad stories and discussions here on HN, about Facebook and Twitter and similar trying desperately to get their users to read content they _don 't want to read_. "Let's stop sorting timelines reverse-chronological. Let's show random things from people you don't follow. Let's make it impossible to figure out where you left off. Let's make it so when you refresh (or click-then-go-back) you get completely different content and can't find the tweet you just saw a moment ago." No, stop, don't.

<comment><USER7> But that would be part of the point - a barrier to interrupt the 'addictive' aspect of a website.

<comment><USER6> If you make HN less usable, people will certainly spend less time on it.

That argues for an _option_ , similar to the noprocrast options, not a site- wide change.

</comment></comment></comment><comment><USER8> I took 5 minutes and wrote this as a userscript:

// ==UserScript==

// @name Remove HN Scores

// @version 1

// @grant none

// ==/UserScript==

nodes = document.querySelectorAll(".score"); for (x = 0; x < nodes.length; x++) { nodes[x].remove()}

<comment><USER4> css version tested with stylus:

        .score { display: none } /* stories and own comments */
        .pagetop { color: transparent !important; } /* hide karma top right (also hides username and logout) */
        #me, #logout { color: black } /* show username and logout */
        #hnmain > tbody > tr:nth-child(3) > td > form > table > tbody > tr:nth-child(3):not(.athing) { display: none } /* own profile */
        #hnmain > tbody > tr:nth-child(3) > td > table > tbody > tr:nth-child(3):not(.athing) { display: none } /* other user profile */

I don't think it could easily be truly hidden but a css experiment might be interesting.

<comment><USER8> Nice! I don't use stylus, but it's definitely good to have options for those who do

</comment></comment></comment><comment><USER9> If this really is what you want then I propose eliminating usernames entirely. Just enter a password to log in if you want some continuity.

People rarely refer to each other by name here. It's not important. Only content is important. Besides, a username in no way verifies your identity, you can say you are whoever you want to be.

<comment><USER10> There are some consistently good commenters whose usernames I recognize. I will give anything they say slightly more weight than a random stranger.

So usernames are useful to me.

<comment><USER11> And that's the real problem with HN discussions!

HN already boosts comments from high-karma users. Then people like yourself come in, see them and boost them further because of the poster rather than the content, so the top of every discussion is perpetually filled with the same names.

If anything, a good experiment would be to obscure the usernames and then see if "good commenters" still get the same share of votes - this time based on the actual contents rather than their glorious posting history. It this happens to be true, bring back the usernames. If not, then see how to remedy this.

<comment><USER12> > HN already boosts comments from high-karma users

That's not true. That is, if you're talking about the HN software, it does nothing like that. Ranking algorithms don't look at karma. Karma is used for things like spam filter exemptions and turning on flagging (at > 30) and downvoting (at > 500).

</comment></comment></comment></comment><comment><USER13> I definitely find myself having an addictive experience here; the dopamine rush from having an opinion validated is similar to what others may feel on Instagram or the like. Sometimes I refresh compulsively, hoping to see an integer go up.

I don't really see a point to include the number of comments in this omission though; I don't see how that would create a dopamine loop for anyone, and it seems to be the main thing that commenters in this thread are averse to losing.

</comment><comment><USER14> Writing a browser extension hiding 'karma' might be a way to explore your theory without a dependency on anyone else working. A blog post or maybe a 'Show HN' could be used to share your experiences with the larger community. The dynamics would be opt-in. Such an experiment would clarify the problem of page position as a proxy for karma, i.e. the role of karma moving items up and down the page.

<comment><USER15> Perhaps, but I think a lot of the power of an experiment like this would be to see what topics get voted up without the visual indication of karma (aside from the fact that it's on the front page, of course). You can only really get that with a critical mass of people using the plugin, or with buy-in from the site implementer.

</comment></comment><comment><USER16> I can do without the vote and karma numbers, but comment numbers are important (mainly in order to see whether or not there are any comments, and if there are a lot of comments; not to determine whether or not the article itself is worth anything, which is something that the reader must decide for himself).

If some users want those numbers visible and some not, one way to do is to add  around those numbers in order that users can hide them if they want to do.

</comment><comment><USER17> This experiment was run 10 years ago.

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

</comment><comment><USER18> I think this is a terrible idea.

It would drastically reduce the value of the site for me. Titles on HN are often not very clear, especially with the policy of removing editorialising by using the site's own title (which is often pretty meaningless out of context). The vote count is very important for guiding the limited time I can spend on the site.

</comment><comment><USER19> you'll have more luck with a chrome extension. this place will never do such a thing. "they know best", they will never change from an outside suggestion.

in case you haven't noticed the forum culture is not flexible. hn is a very specifically flawed lens to the world. they're not about to "fix" anything because "nothing is broken"

they will patiently explain to you why you're wrong, then get on with being the unchanging same thing they are.

a funny paradox. a non innovating lens onto a "highly innovative" part of the world.

<comment><USER12> We actually suggested to floatingatoll that he post this submission, as part of an email conversation we were having. I'm not closed to trying experiments like this.

Would you please stop creating all these accounts and, especially, stop breaking the site guidelines on a regular basis? That's something we actually do feel strongly about.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)</comment></comment>


Amazon MQ – Managed Message Broker Service for ActiveMQ - <AUTHOR> https://aws.amazon.com/blogs/aws/amazon-mq-managed-message-broker-service-for-activemq/ <comment><USER3> Are there any plans to integrate IAM roles with the ActiveMQ login portal?

It's weird to see a username & password step there, one big benefit of keeping everything within AWS is how easy it is to give anyone on the team access to whatever they need without creating new passwords for everyone (or worse, sharing a shared password if you can only have one login). Now if I use ActiveMQ it's another password that will need to be managed, rotated, revoked when people leave the company, etc.

This looks like a cool product, but I hope it doesn't turn out to be another AWS Elasticsearch Service (which is the worst of both worlds in having a frustratingly leaky abstraction layer between the underlying open-source tools and the AWS wrapper, but still having a sufficiently complex layer that it's too hard for AWS to keep up with the latest versions).

Hopefully ActiveMQ service can at least run in a VPC?

</comment><comment><USER4> We would probably use this tomorrow (replacing self managed Rabbit MQ instances) if celery/kombu supported ActiveMQ. Might be the service that generates the volunteers needed to add ActiveMQ support to Kombu. (Not ruling out attempting this myself either).

<comment><USER5> > With Amazon MQ support standard protocols for messaging, including JMS, NMS, > AMQP, STOMP, MQTT, and WebSocket. This allows you to move from any message > broker that uses these standards to Amazon MQ–along with the supported > applications–without rewriting code.

Celery/kombu speaks AMQP, which is natively supported by AmazonMQ, so you might be able to move to it with no changes to your app.

<comment><USER6> You sure that's AMQP 1.0 or 0.9? I say that b/c ActiveMQ is AMQP 1.0 ([http://activemq.apache.org/amqp.html](http://activemq.apache.org/amqp.html)) and RabbitMQ is probably running 0.9 unless you are using the experimental 1.0 plugin.

Nearly all the libraries working with AMQP 0.9 will not function when targeting an AMQP 1.0 service.

</comment></comment></comment><comment><AUTHOR> Interesting choice, wonder why they didnt go with Apache Apollo which is supposed to be the successor to ActiveMQ, or newer systems like RocketMQ or Apache Pulsar.

<comment><USER7> I believe Apollo was abandoned in favor of Artemis[1] which is based on RedHat's donation of HornetQ. But yea, the community doesn't seem to have rushed to adopt Artemis so it looks like AWS is starting where the numbers are.

The Amazon MQ UI specifically mentions which "Engine" is being used so hopefully there will be other options in the future. Similar to how RDS and Elasticache support multiple DB/Cache Engines.

1\. [https://activemq.apache.org/artemis/](https://activemq.apache.org/artemis/)

</comment></comment><comment><USER8> This is interesting but I don't want serverful queueing

I'd like it if SQS had priority queues.

<comment><USER9> My biggest miss on SQS is > 15 minute delays

<comment><USER10> I have never had a delay more than 45 seconds... that is of course anecdotal.

<comment><USER9> I mean intentional delays. SQS caps at 15 minutes for that. I often want to just do something trivial like "send this email in 2 hours" and need a non-SQS queueing system, or a hack on SQS with requeueing, to support that

<comment><USER10> Ah, sorry, I misunderstood. I rarely use the delayed execution feature, I was unaware it was that low.

</comment></comment></comment></comment></comment><comment><USER11> ActiveMQ has been around for a long time (along with JMS), with pub/sub, broadcast, queues, transactions, etc. So can anyone tell me why things like Kafka have seen such interest in the last few years?

Is it just another example of an improvement to a long existing solution - <USER2> advantage being that Kafka easily scales horizontally? Obviously, great for the minority of projects that actually need it, but just another example of a fad for the 90% who would be just fine using the tried and true, but unhip solution.

<comment><USER12> You can also easily rewind the Kafka stream back to the beginning of time, with compaction (if you keep that much data around).

</comment></comment><comment><USER13> Does this hook into services like SQS does? For example, we use SQS to listen for S3 events and would love to switch to AMQ...but not if we need to wire it up to S3 manually.

<comment><USER14> You could wire this up with a Lambda middleware function: S3 -> Lambda -> AMQ

</comment></comment><comment><USER15> [https://aws.amazon.com/amazon-mq/pricing/](https://aws.amazon.com/amazon- mq/pricing/) is a 404 right now and it still isnt listed on the main products page. Although from the screenshot it looks like its micro for $0.03 and large for $0.30 plus storage. Not an amazing price imo given how easy it is to run activemq, but not terrible either.

<comment><AUTHOR> It's available in the console - pricing & costs(US):

mq.t2.micro $0.03 per hour

mq.m4.large $0.3 per hour

Storage $0.3 per GB-month

Looks like its limited to a single node or HA pair.

</comment></comment><comment><USER16> Sounds interesting, but I'm pretty sure we need to keep out ActiveMQ instance in local machines because of medical data. We're also pretty tied to GCS...

<comment><USER17> Where in the CFR does it say you have to use physical servers or even dedicated cloud instances? AWS will sign a BAA for dedicated instances only (biz policy, not for any valid security reason), but dedicated servers are not required by HIPAA.

<comment><USER18> The requirement for dedicated instances was lifted earlier this year. See [https://aws.amazon.com/blogs/apn/aws-hipaa-program-update- re...](https://aws.amazon.com/blogs/apn/aws-hipaa-program-update-removal-of- dedicated-instance-requirement/) for more info.

<comment><USER17> Thank you! Slipped by my addictive refresh of What's New!

</comment></comment></comment></comment><comment><USER19> About time. Before this the only managed choice within AWS was IoT, which definitely felt not quite right for just some MQTT/websocket work.

</comment><comment><USER20> I will have to give this a look. We manage our own MQ currently but autoscaled managed MQ would be the dream. SQS simply did not meet our needs.</comment>


PG's Hidden Message To Startups In Hacker News Algorithm - <AUTHOR> http://statspotting.com/pgs-hidden-message-in-hackernews-algorithm/

<comment><USER3> Yes, let's see things where they aren't !

PG hidden message to startup: to exists, your number of users must keep growing at a crazy pace, there is no business in being a long standing company with a slowly growing paying user base.

Or maybe, just maybe, this is a "I've seen my dog in the sky" post and you shouldn't consider your company like you consider your news feed.

</comment><comment><USER4> If you liked this, you will _love_ the Bible Code - <http://en.wikipedia.org/wiki/Bible_code>

</comment><comment><USER5> You need to take into account the flag mechanism if you want to use the algorithm as a metaphor.

</comment><comment><USER6> Your erection is showing...

</comment><comment><USER7> Growth is definitely something PG advocates, but probably has little to do with HN algorithm. Spare yourself reading this speculative post and hear it from PG himself: <http://paulgraham.com/growth.html>

</comment><comment><USER8> I would be interested to know if HN still uses the same ranking algorithm - <USER2> can think of a lot of interesting analyses that could be done!

</comment><comment><USER9> Tried to give you 3 points in the first 5 minutes.

<comment><USER10> And he's on the homepage...

<comment><AUTHOR> Thanks folks. Q.E.D.

<comment><USER11> Shut up and take my money!

</comment></comment></comment></comment><comment><USER12> >> build something a small number of people want a large amount ...

... and they control a lot of other people's money

(My addendum for B2B sales)</comment>


US to drop Color Coded Terror Alerts - <AUTHOR> http://www.nytimes.com/2010/11/25/us/25colors.html?hp

<comment><USER2> Finally. It's been orange for the past 8 years.</comment>


Ruby Concurrency Final Report - <AUTHOR> https://www.codeotaku.com/journal/2020-04/ruby-concurrency-final-report/index <comment><USER2> ioquatix (Samuel Williams, the author) is doing tons of great work for Ruby at the moment. You'll want to check out, for instance:

\- [https://github.com/socketry/async](https://github.com/socketry/async) "An awesome asynchronous event-driven reactor for Ruby"

\- [https://github.com/socketry/falcon](https://github.com/socketry/falcon) "A high-performance web server for Ruby, supporting HTTP/1, HTTP/2 and TLS"

I can recommend following him on twitter too: [http://twitter.com/ioquatix](http://twitter.com/ioquatix)

<comment><USER3> In the linked article, the author also included some videos of himself implementing some of the presented parts e.g. exclusive Fibers [0], including writing the necessary C code using the Ruby C API.

Recording yourself writing code and then publishing it takes quite a lot of courage, even moreso if it's a complex topic such as the one presented. Additionally, it's such a valuable resource: You can follow the whole implementation step by step.

That's just awesome.

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

<comment><USER4> This is really cool. Do you have any recs for similar vid of someone hacking on c python API? I want to gain a better understanding of how these langs interface w their implementation, but Ruby isn't really in my wheelhouse.

<comment><USER5> The internals aren't THAT different, so while I can't really answer your question (I'm not working on CPython), you might still find it interesting from the POV as to how interpreters work.

</comment></comment></comment></comment><comment><USER6> This is a great read and also provides useful links to get up to date to the state of MT and concurrency in Ruby-world.

</comment><comment><USER7> I've run into an issue where a Ruby library is technically thread-safe but there is some C library code that blocks (i.e. connect with TinyTds). This makes it practically unusable with threading under special scenarios where your SQL servers are not guaranteed to be available.

<comment><USER8> Thread-safe just means it won't result in data corruption, race conditions or other similar issues when used from multiple threads. That's still quite different from being able to execute concurrently.

<comment><USER9> haha, in fact "not being able to execute concurrently" is the easiest way "to ensure thread-safety" :D

<comment><USER5> Actually, completely sequential programs can have parallelism bugs due to the underlying hardware being out of order and other such features. I know, maybe a bit of a stretch by your definitions, but I'm also not sure that "not being able to execute concurrently" implies "thread safety" in practice (even though theoretically pretty sound).

<comment><USER10> That would not be a bug in the software, that would be a bug in the CPU. Still, I haven't ever heard of this actually happening, do you have a link?

<comment><USER5> Yes, agreed, all I'm trying to say is, as software engineers we have some assumptions about processors (and compilers/interpreters) that they do things in the order we specify... but that's not always the case, and sometimes that introduces non-determinism.

Processors (and compilers) are not supposed to leak the implications of their non-determinism into user code... but unfortunately it does happen. Rewriting the order of instructions sometimes happens incorrectly (which is why we need memory barriers).

It's not my area, but two things that come to mind, are out-of-order execution where the CPU will re-order micro-ops, and speculative execution, where the CPU will execute one or more branches before the result of a conditional is known.

Both of these issues have lead to bugs in the past and will continue to be a source of bugs in the future.

[https://en.wikipedia.org/wiki/Spectre_(security_vulnerabilit...](https://en.wikipedia.org/wiki/Spectre_\(security_vulnerability\))

<comment><USER10> None of that has anything to do with software bugs, it doesn't change the behavior of a program. People can understand that or not, it doesn't affect the correctness of the software.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I get connection timeout when I try to load the page :(

<comment><USER5> As you can imagine, deploying a new technology to production can have issues :p

I've been dogfooding falcon ([https://github.com/socketry/falcon](https://github.com/socketry/falcon)) for the past week, which is built on top of async/Ruby. The HN hug of death + Reddit hug of death is a really great traffic test.

I think actually it's been pretty solid, but something caused the instance to run out of swap space, even though it had plenty of free memory. It's something I'll have to try and reproduce so I can understand how it's happening.

</comment></comment><comment><USER12> I haven't touched Ruby in a while, but are there any common multithreaded use cases? It seemed like the direction was to go multi-process for web workloads (E.g. with Unicorn).

<comment><USER5> Those are both solid choices for servers. However neither of them have a scalability model suitable for HTTP/2 or WebSockets. That's something I wanted to try and address.

<comment><USER13> And thank you for addressing it, Samuel!

I converted the streaming and Autopark clients in the Tesla API gem from EM to Async and has been great: [https://github.com/timdorr/tesla- api/blob/master/lib/tesla_a...](https://github.com/timdorr/tesla- api/blob/master/lib/tesla_api/stream.rb)

No more globals, which makes it much safer to use inside of threaded job runners like Sidekiq.

<comment><USER5> It would be awesome to talk about your work in a blog post, do you think you can reach out to me to explain your work in more detail?

</comment></comment></comment></comment><comment><USER14> This thin font is very difficult to read

<comment><USER5> Welcome suggestions for alternatives.

<comment><USER15> Bootstrap adopted a native font stack that looks great and doesn't require any web fonts.

[https://getbootstrap.com/docs/4.0/content/reboot/#native- fon...](https://getbootstrap.com/docs/4.0/content/reboot/#native-font-stack)

<comment><USER16> Is "adopting a native font stack" different in some way from simply not using web fonts and doing it the old-fashioned way instead?

Edit: Other than using the magic font names "-apple-system" and "BlinkMacSystemFont" it looks like it's just specifying the Windows, Android and Mac fonts in order. This is not going to use the native system font on other platforms or if the user happens to have Segoe UI installed on Android.

</comment></comment></comment></comment><comment><USER17> Working complex systems develop from working simple systems. This is trying to get a working complex system by creating another initial working complex system. If only ruby didn't have that darned assignment operator...

<comment><USER5> I definitely agree with your first statement. However, I think the Fiber + Reactor approach is about as simple as it gets, taking into consideration actual practical, scalable, concurrency. Every approach has trade offs, but I think this design is pretty good. My goal was to build enough of the stack to prove that.</comment></comment>


Microsoft cuts dozens of staff as it shifts to AI for MSN news stories - <AUTHOR> https://www.engadget.com/microsoft-msn-news-jobs-cuts-due-to-ai-230620807.html <comment><USER2> MSN news has always been low quality gossip tar pit. It always felt like it was written by drones, noe it literally is.

</comment><comment><USER3> My favorite is opening a browser inside Windows Server at my data center and seeing news about stupid stuff. Open another tab, close previous tab, begin use.</comment>


Django Redis Pipeline trick - <AUTHOR> http://www.pnegahdar.com/django-redis-pipeline-trick/

<comment><USER2> "if request.pipeline.command_stack != []"

No

That's the worse way to checking it's empty, even if pipeline was a python list

And this pipeline is interesting, but in this case, it's useful for setting values, not reading them.

<comment><AUTHOR> Hey! I (author) agree this isn't a great way to check equality in python, however after testing this is the way I'm sure it will work 100% of the time, so I went with it. If not [] would be more pythonic though.

<comment><USER2> Checking the code: [https://github.com/andymccurdy/redis- py/blob/master/redis/cl...](https://github.com/andymccurdy/redis- py/blob/master/redis/client.py#L1638)

It implements __len__ so there's your answer

<comment><AUTHOR> Thanks, ill update the code in a bit.

<comment><USER2> Great, sorry if I was too harsh in the original post</comment></comment></comment></comment></comment>


The Future of Programming (2013) [video] - <AUTHOR> https://www.youtube.com/watch?v=8pTEmbeENF4 <comment><USER2> Bret Victor is _so incredibly inspiring_.

So much amazing work:

Learnable Programming: [http://worrydream.com/#!/LearnableProgramming](http://worrydream.com/#!/LearnableProgramming)

Inventing On Principle: [http://worrydream.com/#!/InventingOnPrinciple](http://worrydream.com/#!/InventingOnPrinciple)

Stop Drawing Dead Fish: [http://worrydream.com/#!/StopDrawingDeadFish](http://worrydream.com/#!/StopDrawingDeadFish)

The Future Of Programming: [http://worrydream.com/#!/TheFutureOfProgramming](http://worrydream.com/#!/TheFutureOfProgramming)

The Ladder Of Abstraction: [http://worrydream.com/#!/LadderOfAbstraction](http://worrydream.com/#!/LadderOfAbstraction)

Edit: formatting</comment>


Startup Review: Flipkart- The book store at your door - <AUTHOR> http://www.icanhasstartup.com/startups/startup-review-flipkart-the-book-store-at-your-door/

<comment><USER2> "The difference being, Flipkart focuses mainly on best sellers." I got turned off here.. nice to know that India is doing its own online bookstore thing (though thats definitely not the first), the beauty of online bookstores is that even the most obscure books which match your interest but are not hot cakes are in fact available for you. (virtual inventories, etc, etc)

If you talk only about bestsellers, the customer might as well subscribe to a book club (Books Today is pretty famous in India) and get them really cheap.

</comment><comment><USER3> That statement is probably less that a half truth. "Flipkart focuses mainly on best sellers" is a valid comment, assuming you follow the 80/20 Pareto Principle. If you're one of the 80% who buy Bestsellers (20% of all books...hypothetically), guess it makes sense. But an online bookstore by its very nature cannot be restrictive. I doubt Flipkart is.</comment>


The menace of memes: how pictures can paint a thousand lies - <AUTHOR> http://blogs.spectator.co.uk/coffeehouse/2014/11/the-menace-of-memes-how-pictures-can-paint-a-thousand-lies/

<comment><USER2> A+++. Would read comments again. And again.

"This is a blatantly biased article."

</comment><comment><USER3> Vivid beats valid.</comment>


Robots To Remove WWII Era Mines To Clear Way For A Gas Pipeline - <AUTHOR> http://www.infrastructurist.com/2010/02/16/who-will-clear-the-seabeds-of-wwii-mines-for-gas-pipelines-robots/

<comment><USER2> The plan is to remove 70 mines. The remaining mines (of which there are around 150,000) will remain untouched for now. Removing each of the 70 mines takes two days.

<comment><AUTHOR> Wow. I somehow skipped over that sentence on my first read. I've updated the post's title.

</comment></comment><comment><USER3> Interesting note from article is that this new pipeline will allow Russia to cut off supply of gas to neighbouring countries while at the same time continuing to supply europe with gas.

<comment><USER4> After the fall of USSR Rusia is in inconvenient position - it has to deal with Ukraine/Belarussia/Lativa to assure supplying Poland with Gas, and it has to deal with Poland to supply Gas to Western Europe.

It was factor that played big role in relations between these states and Russia. For example - last year Russia stopped supplying gas, because Ukraine didn't wanted to pay for gas that is uesd only for making the pipe work.

So because of Ukraine-Russia econo-war Poland didn't get the gas it paid for. Russia had to deal with Ukraine because of that. Russia often uses the pipes as economic weapon, and with the pipe beneath the Baltic sea it will be much worse - Russia will be in position to stop sending the gas to Ukraine, and nobody in Europe will give a damn. And Ukraine has many non resolved problems with Russia - like Russian ships in Crimea, big Russian "minority" in eastern regions, Ukraine wanted to NATO (or western part of it), and to UE. Now (after the blue one won) it all seems far, far away. Russia wanted Ukraine to be its "near abroad" - sth like colony. Gas pipe ommiting Ukraine will make it easier.

Of course - Russia can do with Germany what they want, but there are many political, ecological and economical concerns. And that pipe will go not only throught Russia and Germany national waters. I only wanted to give the POV of the other side.

</comment></comment><comment><USER5> The military also uses dolphins in this sort of activity, finding mines, and potentially destroying them as well.</comment>


Ask HN: Privacy Badger locking down gmail accounts? - <AUTHOR>

A bit of a long shot perhaps, but my pretty stable gmail account is showing me "Unusual Usage - Account Temporarily Locked Down".
Now, the only 'new' thing in my browser pattern usage is the new EFF "Privacy Badger" extension... No new mailing list, no new device added or anything like that.
So, I'm being a bit suspicious, but I'd curious to know if the typical user that is the HN crowd have noticed anything like that in the last couple of days... I'm, not 'blaming' anyone here or anything, just fishing for a clue...
Bottom line is still highlighting the fact that google 0wns you entirely, and with zero support line, if you rely on /any/ of their services you're entirely and totally screwed if/when they decide to pull the plug on you... Luckily my 'real' serious email is still on a VPS with dovecot! <comment><USER2> Google doesn't like anything that interferes with the Ad ID on your phone or their ad revenue. They also disapprove of VPN usage.

Shifting away from google is a good move.</comment>


Show HN: Weekend project - VS2010 CoffeeScript syntax highlighting - <AUTHOR> https://github.com/chrisdunelm/CoffeeLite

<comment><USER2> I added it here: [https://github.com/jashkenas/coffee-script/wiki/Text- editor-...](https://github.com/jashkenas/coffee-script/wiki/Text-editor- plugins)

Nice to see CoffeeScript support in so many different environments!

<comment><AUTHOR> Thanks :)

</comment></comment><comment><USER3> How is Window's support for CoffeeScript? Does the compiler run on Windows?

What I would really like is to be able to run the compiler from code, allowing me to keep .coffee files on the server and compile/cache them into javascript when browsers request them.

<comment><AUTHOR> Not quite what you are asking for, but I've recently started using the Chirpy VS add-in (chirpy.codeplex.com). It comiles CoffeeScript on save in VS, producing one readable and one minified js version.

It also handles .less, but I haven't used this yet.

</comment></comment><comment><USER4> Holy crap, is it just me or is there is an absurd amount of code in that project for what it does?

<comment><USER5> What do you expect? To implement syntax highlighting, you basically need a full parsing and lexing engine, and you need to communicate with the actual editor so that it knows how to color and lay out the source code.</comment></comment>


Instagram prototypes handing your location history to Facebook - <AUTHOR> https://techcrunch.com/2018/10/04/instagram-location-history/ <comment><USER2> It would be naive to think they're not doing this already - now they're just trying to be upfront about it.</comment>


Ask HN: How to analyse the traffic from a single Android app? - <AUTHOR> Android 8 made it a little more difficult to analyse the traffic for a particular app. I am working on someone else application and have noticed crazy amounts of network traffic while debugging the application (fyi its React-Native) and would like to figure out what exactly it causing the big jumps in net activity. <comment><USER2> I use a local VPN (apps below) to get some information about the traffic (first option does not support IPV6 based on my tests).

Haven't tested this on Android 8 yet.

I would be interested to see what other options there are.

[1]: [https://play.google.com/store/apps/details?id=app.greyshirts...](https://play.google.com/store/apps/details?id=app.greyshirts.firewall)

[2]: [https://noroot-data- firewall.en.uptodown.com/android/downloa...](https://noroot-data- firewall.en.uptodown.com/android/download)

[2*]: Was not able to find it on Google Play for some reason!</comment>


Fast Lossless Color Image Compression - <AUTHOR> https://kdepepo.wordpress.com/2012/01/30/fast-lossless-color-image-compression/

<comment><USER2> Beating PNG is not actually hard; zlib is _not_ fast at compression, nor is it very good at compressing anything besides graphics. It doesn't even do RGB decorrelation, which can be a really big win (e.g. YCgCo).

Ironically, on non-graphics material, most lossless video encoders beat PNG, too. FFV1 is particularly good at grainy images, and is probably quite difficult to beat without either a much fancier predictor (e.g. LPC instead of median) or much more costly entropy coding (context mixing).

<comment><USER3> I wonder how much you could improve PNG just by giving it some more appropriate filters for truecolor images?

</comment></comment><comment><USER4> Impressive. But, I guess someone has to ask the inevitable, sad question: "which patents does this code unwittingly infringe?"

<comment><USER5> The fact that the question is inevitable is disgusting.

<comment><USER4> Agreed, especially if this was developed in a closed room.

<comment><USER6> Do you mean clean room? That protects you from copyright, but not from patents.

</comment></comment></comment></comment><comment><USER7> It would be great if the author could actually write a description of how IZ's algorithm works. The C++ source is fairly complex and has no comments whatsoever.

<comment><USER8> A quick perusal of the source indicates that the algorithm hinges on the predictive encoding strategies in this file:

[http://gitorious.org/imagezero/imagezero/blobs/master/pixel....](http://gitorious.org/imagezero/imagezero/blobs/master/pixel.h)

Without comments the specifics are still somewhat mysterious, though.

</comment></comment><comment><USER9> For fast lossless image compression algorithms that are used by the world's leading visual effects studios, check out OpenEXR: <http://www.openexr.com>

From the Features page: _"The current release of OpenEXR supports several lossless compression methods, some of which can achieve compression ratios of about 2:1 for images with film grain. OpenEXR is extensible, so developers can easily add new compression methods (lossless or lossy)."_

<comment><USER10> Not everyone wants 16-bit floating point samples.

<comment><USER9> An OpenEXR file can contain 8-bit channels.

</comment></comment></comment><comment><USER11> > _The best known algorithms, however, are very slow, and sometimes > impractical for real-world applications._

Is this in reference to paq [1]? Are there any other really good compressors that are too slow?

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

<comment><USER12> For any algorithm that's heuristically searching a very large space (in this case, the space of model parameters to compress a given string), you can expect it to do better given more time. So it would actually be surprising if the best compressors, in terms of compression ratio, were fast.

In practice, the competitions that people like to use to measure which compressor is "best" have resource limits, and compressors from the PAQ family are at or near the top of most rankings.

<http://mattmahoney.net/dc/text.html> has some nice charts of the Pareto frontier for at least one competition. This lets you see the most efficient compressor for a given compression ratio and vice versa. The log scale gives a sense of the diminishing returns: it's really easy to compress most structured data to 0.5 its original size, but getting from say 0.214 to 0.213 can be a hell of a lot of work.

</comment></comment><comment><USER13> Right now the CPU usage of a project I'm working on is dominated by PNG compression. An alternative with significantly faster compression times would be very useful. I'll be watching this closely, and hope that it becomes possible to decode IZ images in the browser (or implement it myself).

<comment><USER12> PNG compressors generally try a couple different strategies, which can get very expensive. You might be able to ask the compression library to be a little more hands-off, if you don't need great compression.

<comment><USER13> Thanks for the suggestion. Unfortunately I'm already specifying the pixel delta strategy that works best with my images, and using the fastest zlib compression setting. Going with no zlib compression would turn my CPU problem into a bandwidth problem :).

<comment><USER12> Ouch. Well, it looks like you get to be an early adopter of IZ!

</comment></comment></comment></comment><comment><USER14> There is a windows binary in this thread (obviously try with caution)

[http://encode.ru/threads/1471-iz-New-fast-lossless-RGB- photo...](http://encode.ru/threads/1471-iz-New-fast-lossless-RGB-photo- compression)

</comment><comment><USER15> Sample size of one, and they didn't even publish the image itself.

<comment><USER14> <http://skulpture.maxiom.de/playground/list-iz.txt>

They tried it on the same benchmark as this list

<http://www.imagecompression.info/gralic/LPCB.html>

Of course it's meaningless without the time to decompress on there but it has to be done on the same machine as the master benchmark list.</comment></comment>


Ask HN: What % of your job interviewees pass FizzBuzz type questions? - <AUTHOR> I'm sent 100 resumes a month, then interview about ~10 people. Of those, about 50% can do FizzBuzz style questions. On paper, all of these ~10 people would be qualified to do the work, however (I think) some have become rusty, or focused more on management or other areas.<p>What percentage of your job interview candidates pass FizzBuzz style questions? Any tips to improve the signal to noise ratio? <comment><USER3> For folks who doubt the numbers people are quoting here: remember, if half the pool can't program to save their lives, guess which half of the pool will still be sending out job applications next week.

At a previous company where, for cultural reasons, lack of programming skill was not a barrier to being hired as a software engineer, approximately half of our software engineers could FizzBuzz. Of our outsourced coders, I'd put the number at one of the twenty I knew, and he would need extensive coaching to make it happen.

Some of these folks were at least moderately productive at tasks which you and I do every day which theoretically happen in an IDE but do not require much abstract thinking, such as changing labels on UI elements, adding new columns to tables (by copy/pasting a line which worked and tweaking it until output matched expectations), and the like.

</comment><comment><USER4> Just curious if you expect perfect code on a sheet of paper or give them an IDE and say go for it.

As I remember fizzbuzz (print numbers 1 thru x, then fizz if divisible by 3, buzz if divisible by 5, fizzbuzz if divisible by both)

I did it in a text editor in under a minute. Got two errors because I did it without thinking, fixed it, and had a working solution in 90 seconds. It's taking me longer to write this response.

I can't imagine anyone who writes code daily who couldn't get this right in under 5 minutes given a text editor and a way to run the code, but I could imagine plenty of people who trying to do it on a sheet of paper who would make goofs. And most of those would make good employees.

<comment><USER5> Back in the days when I did this (1990s) we did the C/C++ reverse a linked list and compute the factorial of a number. And, yeah, people made mistakes on a dry erase board under interview pressure, but it was very clear who has a clue vs. who couldn't program their way out of a wet paper bag.

These sorts of tests are low pass filters, they're not designed to find good or great programmers, just confirm that the person can program _at all_ (as we define it). Since most people who call themselves programmers really aren't, they're highly useful. Anyone who's looking for perfection of this nature in an interview and who fails a candidate for lacking that is doing the latter a favor by not hiring them.

<comment><USER6> Give em a laptop. Those are a dime a dozen (we got a ton sitting around the office). Have em code in front of you. Hell I'd install any interpreter within reason to let em solve it.

<comment><USER7> It's not about how expensive a laptop is or isn't. If somebody can't master the basic syntax of the language so that they can write a very basic algorithm without syntax errors and in such a way that it would run on the first try, they can't be very productive. And fizzbuzz is really the rock-bottom of the simple algorithms. Even a linked-list library would be a very reasonable thing to ask (if we're talking about C for instance). If somebody has to go through a few edit/(compile)/debug/change cycles for each simple thing, it doesn't sound very productive. Now, obviously if we're talking about an application that involves some baroque frameworks and class hierarchies, things are different, but simple things should be doable on paper.

<comment><USER8> Writing on a whiteboard while explaining yourself is different from typing alone into an IDE. Conventions you might use to avoid syntax errors (like typing a pair of braces and then filling the middle) may not work on a whiteboard. Pacing is different, and muscle memory doesn't help. You're looking at a blank whiteboard rather than your terminal with other parts of the codebase. The first few minutes of coding are often "getting up to speed"; many programmers are orders of magnitude more productive once they're "in the zone".

In short, I wouldn't consider "your whiteboard code is missing a semicolon" to indicate a lack of productivity overall, only a lack of practice coding on a whiteboard. (It surprised me how much better my whiteboard code got over the course of a quarter of teaching.)

<comment><USER9> FizzBuzz is not aimed to find the best, the kind of people who fail fizzbuzz don't fail it for syntax errors or semicolons. People fail fizzbuzz by staring blankly at the screen/whiteboard acnd not nothing where to start, you fail fizzbuzz by not knowing how to do a loop. You fail fizzbuzz by nkt knowing how to do an if statement, you fail fizzbuzz by not knowing about modulo arithmetic. Fizzbuzz is designed to get rid of those people.

</comment></comment></comment></comment></comment></comment><comment><USER10> In the actual interview, I find that most give up after spitting out some pseudocode. About 40% have reasonable psuedo code that makes me think they'd get there (but these half-answers don't give me enough confidence to give them a thumbs up).

Actual code that works (and running it from a terminal), we are seeing only about 15% tops maybe lower.

We have started sending a fizzbuzz-ish question, a relatively easy css question, and a word-problem about performance as pre-interview questions through recruiters. This has dropped our resume inflow dramatically and saved a lot of time, but that's depressing in a way.

We are looking for a Rails or PHP dev in waltham (near boston) currently without a lot of luck. The job has a lot of pros, but probably doesn't do itself justice on-paper.

<comment><USER11> _The job has a lot of pros, but probably doesn't do itself justice on-paper_

Keep in mind that you may be getting a lot of good people with a lot of pros, but that don't do themselves justice on paper.

<comment><USER10> Possible, but the painful disappointments have all been the reverse. Good on paper, but the paper is, to be generous, "embellished."

<comment><USER11> Sure, but it's really hard to try it the other way: "Well, he looks like a dipshit on paper, but I've just got a feeling."

I haven't hired for my own company yet, but when I did if for previous employers I found it quite hard.

</comment></comment></comment></comment><comment><USER12> I failed FizzBuzz, I admit it. I was asked that as an interview question. I studied hard for my interview but I forgot about the mod operator and totally fumbled my way through the interview. I am now the Senior Web Developer and turned out to be a great asset to the company. But you wouldn't have known that from my FizzBuzz results. I also didn't have 'Computer Science' as a Major. Couple strikes. However they took a chance on me.

Since then I've been able to interview others and I look for different things than FizzBuzz compliance. I want to see how they solve problems in general. I want to see if they have any passion for what they do. I want to see things they've developed.

</comment><comment><USER13> I have used various interview questions, including FizzBuzz, factorials and other questions, and I would say the success rate I saw was about 20%. My personal favorite question is to have someone write a shuffle function without using any built in randomization functions - however most people give up, and others can't follow simple directions and wrap their head around the problem. This particular question had more of a 5 to 10% success rate.

<comment><USER14> Do you meant that they can't use Array.shuffle() or Array.sort(<some built-in random function>)? Or that they don't get _any_ external source of randomness, even a 0.0 - 1.0 float?

<comment><USER13> No built in functions such as the ones mentioned, and preferably no quick entropy generating methods that are obvious but that's not as important as not using the built in functions. Another requirement is that each run of the function has to truly be a reshuffle of the array so that it can't be predictable.

It's harder than it sounds, but I also don't expect a perfect answer - generally I just want to see how people think out of thee box to try and solve an odd problem.

</comment></comment></comment><comment><USER15> Can anyone explain how it is possible for people applying for these jobs to fail?

I dabble in code, but am no where near the level I would have to be to do _any_ job in this area, I mean seriously. Took my two minutes to do it with a pen and paper in PHP, same with in JS, same in bash scripting.

How can anyone who isn't able to do this pretend to even have an interest, yet alone the ability to do the job?

<comment><USER5> Good questions. I'm not sure myself, but I suspect the lure of $$$. Someone who's good at playing a sort of game I loathe can prey on companies that don't do good screening and keep a job for as long as a few months and sometimes indefinitely.

Heck, look at how much cargo cult programming goes on at companies from top to bottom. PG pointed out that one of the main reasons for dot.bomb failure was not being able to technically execute (sure, the company may still have been hopeless, but they didn't even get to test their sales proposition).

And a lot if not most companies simply don't focus on technical excellence or even simple competance. E.g. look at how the powers that be at Friendser let it wither on the vine because they assumes the tech was in the bag while their persued big deals, all the while ignoring for years (I think) that the system had gotten so overloaded it was essentially useless.

And, heck, if I had the time to mentor you and you were interested, I might take you on even at your current level. You "know your own limitations" today, but you're still, say, better than 70% plus or minus of the people who call themselves programmers. If you can execute the little stuff, I can teach you the big picture (with the aid of a book or two and some hard work).

</comment></comment><comment><USER16> I think that the lower the percentage, the more you need to improve your screening prior to getting the candidate in. It's just wasting your time and theirs.

I would love to say that you can tell from a CV whether or not they could pass FizzBuzz, but it's not true. I've interviewed MScs and PhDs that could not do FizzBuzz. Seriously.

The phone screener is your friend.

</comment><comment><USER17> I have question to recruiters:

if job requires "Hibernate" and I've used hibernate in my previous job, but have never configured it from scratch, only tweaked some models, wrote some EJBQL queries - does this count as "knowing Hibernate"? I've also never used Hibernate annotations, becasue we use hbm files, and we have templates to make the, so I'd have problems writing such file from scratch.

Do you check knowledge of required libraries on the blackboard? Do you assume people should know all the corners of such libraries, or do knowing some things and wanting to learn more if it will be needed suffices?

I use at work jboss, hibernate, jbpm, and many other technologies that are often mentioned in job offers, but I don't feel I can say I know them - <USER2> the parts that I needed to do the job. Is this considered not enough?

<comment><USER18> Generally speaking you don't need to match a job description 100%, if you match 60-70% that's fine. Depending on the job description you can tell which things are key to the job (programming language, and specialist skills like machine learnings which are core to the job) but everything else is mostly optional.

The more of the description you can match the better it is, but 60-70% will get you an interview in most places.

</comment></comment><comment><USER19> I'm curious what candidates are getting stuck on. Is it the testing for divisibility that's tripping them up?

<comment><USER20> Mostly they just don't know how to start. They can't break down the problem into subproblems. Once a candidate managed to break down the problem to subproblems, they can always do the rest easily (solving the subproblems, composing the solutions to solve the main problem).

<comment><USER19> Ok in that case then they're a no hire as that's just a fundamental part of developing software. Although I must admit that this problem surprises me more than people's inability to code. I mean if you can't break down problems you're just ill suited to the field.

</comment></comment></comment><comment><USER20> In my experience, about one in five (20%) people I get to interview can solve basic programming problems on a whiteboard (in their language of choice). It's really depressing.

</comment><comment><USER21> We now insist on resumes being accompanied by the answers to set "homework." No answers, no interview.

We get about half our interviewees unable to solve problems that are similar or easier during interview. Whether that's nerves/stress or simply an indication that they got someone else to do the homework for them we don't know.

One candidate even phoned a friend during the coding part of the interview to get some answers. For some jobs he'd be hired, but not for most.

</comment><comment><USER22> I've never asked FizzBuzz but I do regularly ask coding/algorithm questions. They are usually more difficult than FizzBuzz. I'd say around 80-90% can at least come up with _a_ solution in 45 minutes with some help. Probably less than 10% can come up with a good solution entirely on their own.

I attribute this to two things, first I think our phone screenings work well enough to keep out people who really can't do FizzBuzz, and second that I'm fairly generous during interviews. I often don't expect real code, sometimes I'm satisfied with just a discussion of the algorithm (no white board coding at all). I don't expect code to compile and I even let candidates use undefined "helper" functions (although I usually only allow that if I get the feeling that they could implement them if asked).

* For those that are curious I have two favorite questions - print out all the permutations of a given (ASCII) string and describe a search algorithm for a sorted array that has been split in two and the two pieces have been swapped (i.e. - 4,5,6,7,8,1,2,3).

<comment><USER23> @aplusbi

Let's say I interviewed you. I had asked to implement the fastest algorithm to give back the largest palindrome of words in English dictionary and compare it the largest palindrome of the french language. What the best solution you can come up with in 45 minutes.

After, that I asked you, write a simple ftp server, in the language of your choice. With your first solution, I asked you implement a SSL library and add it to the ftp server to make it sftp.

Based on that I can judge how good of a programmer you really are.

Sorry for being sarcastic, but I think most interviewers are on a power trip. They ask questions that if they heard for the first time, they couldn't come up with answers either.

I think your better off really talking about and going in depth with the programmers experience. If your experienced yourself, you should have no problem.

<comment><USER24> His first question is very straightforward if you've ever encountered permutations in a math class (and you should have, if you're a programmer). Even if you haven't, it shouldn't be that difficult.

His second is trickier, but solvable. And, no, I've never seen that (particular) question before.

<comment><USER23> My point was, his questions, doesn't really indicate if the candidate is a good programmer or not.

It could be the person studied up on all sorts of puzzles and famous algorithms online but hasn't really written or programmed anything.

Not all jobs require that much expertise. You could be doing some really simple programming work.

I think most interviewers ask these type of questions 1.) make themselves feel smart 2.) they get a kick out it

<comment><USER23> @eropple

So do you have data to back up your claims that; answering those questions determine if your a good programmer.

Yes, there are tons of programming jobs out there, that don't require much of those skills. Not all jobs are that innovative.

Most of the development jobs I have seen require you to come up to speed with the code base fast. So it's that code reading comprehension that I think is most prevalent.

<comment><USER24> I did not in any way, shape, or form claim that such questions determine whether or not a candidate is a good programmer. If you are going to respond to my posts, please respond to my posts and not what you think or wish I said in those posts.

No interview or interview question can determine conclusively that you are a good programmer. But they reduce the likelihood that you're not, and comments like your strident and hysterical analogy drawn between these really very simple problems and "write a SSL library!" are doing little to change my mind.

<comment><USER23> Ok, I didn't mean to offend you, I am sorry if I have.

That being said these are my thoughts on the subject of interviewing programmers.

When I just graduated college, I was all about puzzles and programming puzzles. My thoughts were that only people who could do these puzzles deserved programming jobs.

I was so wrong. Puzzles are something that you get or don't get. If your in an interview, and you haven't faced those combinatorial problems for a while, you could bomb, if someone asked you those questions.

Understood "fizzbuzz" problems are suppose to be the the lowest level of programming problems that any competent programmer can solve. If you want to fast screen candidates, go ahead and ask them.

When you get into problems, that require "tricks", either you get it or don't. It could be easy for some people and hard for others. There is no correlation of them getting it, to being good on the job, unless the problems are such that, the programmer will face them every day on the job.

Another good permutation problem, is subset sum problem. Come up with a program that determines if a array or list, can be partitioned into 2 non overlapping subsets, such that the the sum of both subsets equals each other. Print out both subsets if they are equal or state that it cannot be done. Is it possible to get better than O(n^2) for the optimal solution. That is fun one, but I don't think asking that would give you much insight into determining whether the programmer is fit or not.

I think interviewing is a really important task. It a really hard job to get right. If your a bad interviewer, the company you work for will eventually get a bad reputation.

Many software companies do not train people how to interview. That in our industry, is a huge problem.

There are many other things besides raw technical skills that will determine, how well the candidate will do at their job and at at the company.

Going over the candidate's experience in detail. Getting a feel for what they really want and expect from the job. Do you like the candidate's personality? What does your gut instinct say. What technical things do you need to ask that are relevant for that job, that you couldn't determine from the their experience? How would you design questions, relevant to the job at hand.

Just my random thoughts.

<comment><USER25> "Another good permutation problem, is subset sum problem. [...] Is it possible to get better than O(n^2) for the optimal solution."

AFAIK subset sum is NP complete, so I guess you meant O(2^n). Even so, I would not expect a programmer to tell me much about it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> 4 candidates, 2 passed FizzBuzz. Oddly, the two that failed had a Masters in CS (albeit no BS in CS).

Of those that passed: one had Masters in Library Science looking to change careers. The other was a fresh out of college CS major from Illinois State.

Next batch, I think we'll add another trivial question: count the number of vowels (a, e, i, o, u) in a string.

<comment><USER4>
      <?php

      $string = "aeiouxabcd";
      $checkfor = array('a','e','i','o','u');
      $count = 0;

      for($x = 0; $x < strlen($string); $x++) {
        if(in_array($string[$x], $checkfor)) {
      	 $count++;
        }
      }

      echo $count . "\n";

Am I hired? Or do I lose cool points for PHP?

<comment><USER3> Every time FizzBuzz problems come up among engineers, people race to solve them and post their answers, then compete to see who can write increasingly more nifty answers for a question which does not seek niftiness at all.

I'm all for intellectual gamesmanship, but these are our professional equivalent of a doctor being asked to identify the difference between blood and water. You can do it. _We know_. Demonstrating that you can do it is not the point of the exercise. We do it to have a cheap-to-administer test to exclude people-who-cannot-actually-program-despite-previous-job-titles from the expensive portions of the hiring process.

</comment></comment></comment><comment><USER27> The percentage of people who can complete a basic coding challenge during interview is more a testament to your phone screening than to the population of candidates.

If you're not weeding out these people with a 10-15 minute phone call you'll waste a lot of your and their time.

</comment><comment><USER28> This post by Jeff Atwood might be of interest to you if you haven't read it:

[http://www.codinghorror.com/blog/2007/02/why-cant- programmer...](http://www.codinghorror.com/blog/2007/02/why-cant-programmers- program.html)

<comment><USER29> The fascinating thing about that post is the number of sneering comments, with their own (broken) implementations of FizzBuzz. At a glance only maybe 20-30% of solutions in the comments there actually work, and many are horribly suboptimal.

</comment></comment><comment><USER30> I've actually asked this question as a gentle warm up for people, and we achieve around a 90% success rate.

On average it takes people around 5 minutes to do.

We have people do it on a whiteboard to get them standing up and moving.

</comment><comment><USER31> _Of those, about 50% can do FizzBuzz style questions. On paper, all of these ~10 people would be qualified to do the work_

If it's for a programming position, the "paper" is lying in this case. If someone is claiming to have experience or qualification in certain areas that they _can't even perform basic operations in_ , they're fraudsters.

It'd like trying to hire a surgeon and have someone turn up who doesn't even know what lymph nodes are. Dangerous and unhireable, but sadly a lot of employers put up with this sort of nonsense.

</comment><comment><USER32> That sort of thing specifically, never actually tested it.

The last test I did help administer was for a VB+SQL job, and the first question was to write an example of a valid INNER JOIN. I'd say at maximum 25% of the candidates could do this.

Improving SNR? I did once have a potential employer get me to do a time- limited online test. If you wanted you could always stick your questions into one of them, so you can at least do the fizzbuzz-level screening without calling them in and sitting them down.

<comment><USER33> I think the reason you got so bad responses on the first question wasn't that they couldn't write the join statement but that they had heard the distinction between the different joins once in college and then never considered them again.

I bet that if you had asked for an example of a sql code which would list all the employees born before 1980 along with the department they worked for and the name of the head of that department, you would have gotten a much more useful result out of that.

That query is, incidentally, much more difficult to write.

<comment><USER32> But with a normalised database you couldn't the above without two inner joins (and it's still a trivial query that any competent dev for that sort of position should be able to dictate while driving, it's that easy).

Really, if you can't remember the difference between inner, outer, full and cross joins then you shouldn't be working with databases. Which was rather what the test showed us, frankly.

</comment></comment></comment><comment><USER34> How are you asking the questions? Good interviewers try to adapt to the person they are interviewing. Depending on how you're asking the programming question, you might want to think about changing it. If, for example, you sit back in your chair and ask someone to go to a whiteboard to write code you should consider that some people simply are not going to respond to that sort of method of answering, even if they are a brilliant programmer.

</comment><comment><USER35> Wow.. This is pretty astonishing. I know this is a majorly skewed, opinionated audience, but do people really not have that much of an interest in what they do?

</comment><comment><USER36> I did a ton of interviewing a few years ago ~ 100 interviews.

I found about 10% nailed it right away with code that would compile and run. These were generally people who had been coding a lot recently.

Half of the rest (say 45% of total) got close: Minor syntax errors, logic errors, stuff that an IDE/non interview situation would have fixed.

45% just spaced. Couldn't right the for loops, conditionals. Couldn't write basic code.

</comment><comment><USER37> Of people who get to the interview stage, I'd say around %75 at least successfully do the FizzBuzz question on our test.

But we've cherry picked the CVs a little. And probably only interviewed 50 people over the past couple of years. (And hired 5)

</comment><comment><USER38> I program a fair bit, have a few Android Apps in the market the problem I see with these type of tests is that I have a very hard time remembering syntax and would therefore have a hard time without an IDE.

</comment><comment><USER39> I mostly interview students for hands-on internships. I'd say around 10-20%.

</comment><comment><USER40> While we don't ask FizzBuzz in particular we have a question my manager asks: If you could fold a piece of paper 50 times, how tall would it be (very rough ballpark figure)?

Our success rate is surprisingly low.

<comment><USER19> This is a pretty abrupt way to start off an interview. And I don't understand the point of this question w.r.t assessing someone's coding ability. Though I'd be curious to see if the success rate on that question and on a fizz buzz correlate.

<comment><USER40> It's generally asked at the end of the interview.

</comment></comment></comment><comment><USER41> About 80%. Perhaps we're more vigorous with resume screening. Over the last 4 years of interviewing, I've become very good at resume screening.

</comment><comment><USER42> I wish we would run at least some kind of sample problem before hiring people. _sigh_

<comment><USER5> Indeed; if you interview at a company that _doesn't_ to this sort of thing if you have any choice you're well advised to avoid them. There's simply going to be little joy working with people who can't program and can either stick around or who have to get fired. And things can get ugly for those who do have a clue, from envy to having to do others work to avoid project or company failure and losing your job.

<comment><USER42> > There's simply going to be little joy working with people who can't program

Well, it does make for exciting bitch sessions in IRC.

</comment></comment></comment><comment><USER43> 10-20% (pathetic really)

</comment><comment><USER5> The last time I was a part of this activity in a company (1997-8), using similarly rigorous pre-screening, we had about the same results, only 50% of the people we interviewed could program their way out of an (EDIT) wet paper bag.

<comment><USER44> How would I go about programming my way out of a paper bag? It creates the weirdest ideas and images in my mind.

<comment><USER5> Oops, although this won't help your mind ^_^, the correct expression is "... out of a wet paper bag". From more apropos usage about fighting or escaping from such a flimsy thing.

And now that you mention it, I have no idea either ^_^ ... except that it ought to be easy. In that last company where I was part of the hiring process I myself got the job only because I was the _only_ one they interviewed who could pass their dry erase board tests (at the time they didn't have good pre- screening or access to a good candidate pool; I myself answered a want-ad). Tests that were to me so simple I barely remembered them (two decades of experience by then).

<comment><USER44> Maybe if there was a robot to program, I guess that would count.. now that would be a great opening move on part of the company! :D Let's see.. you'd have to get the robot into the right position (maybe find it with sensors - what kind of wet paper bag are we talking about, the dark kind?) and control another part that's capable of ripping the bag. Depending on the size of the robot you'll have to move it around a lot to make a hole big enough for yourself. Of course, you can also have the applicant design a robot for that task.. uhm, I'll stop now.

<comment><USER5> Well, you know, MIT's introductory EECS course is now Python programming of robots, so as soon as those students start graduating ^_^....

Thanks for calling me on this rather mixed metaphor I've been using for a long time in a most amusing way. You're brightened my end of the week.</comment></comment></comment></comment></comment>


ShowHN: A better way to view HN,Slashdot and your Newsgroups - <AUTHOR> http://www.sagebump.com/?view=technocrat&info&it_works SageBump is basically what I see sitting on top of other news sites. Simply put, it is an aggregator of aggregators, customised to your preferences at 2 levels, on both a domain specific account level and a wider general site level.
Any questions such as why there is no other product out there like this, just let me know!
Thanks =) <comment><AUTHOR> Sagebump is a highly customisable aggregator or aggretators.

Have any questions or feedback? Then let me know!

Thanks = )</comment>