Ask HN: What is the point of algorithm-heavy interviews? - <AUTHOR> Who really cares about algorithm on daily bases. How often you solve algorithm-heavy tasks at work? <comment><USER2> > Who really cares about algorithm on daily bases.

I find that statement really depressing to be honest. Why would you be so happy to deprive yourself of a huge source of potentially useful information that is the foundation of our field that shouldn't take long to learn?

Algorithm and data structure knowledge helps you write processor + memory efficient code that scales well, and stops you reinventing the wheel when you know how to classify what category of algorithms your problem fits into (e.g. it's a graph problem, or a search tree problem, so now you know where to look for solutions).

You might not need this knowledge every day but someone who understands fundamental algorithms and data structures surely has an edge over someone who does not. If you've been programming for a while, going through a book to learn the fundamentals should only take you a few days as well - why do people make such a big deal about this?

I've interviewed programmers before who couldn't explain what a linked list or a hash table was, and when you'd you use one of those over an array. To me, that's a super bad sign they don't know how to assess algorithmic complexity when coding. It might not matter for some kinds of coding with modest datasets but it'll bite you eventually.

<comment><USER3> This is like saying that a car mechanic needs to have a PhD in thermodynamics to work on internal combustion engines.

99.9% of coders just need to know what things in their chosen language(s) are performance sensitive and what aren't - very few actually need to know the exact reason why. And even fewer need to be able to improve on said algorithms.

If something needs sorting, you call the sort function in the object. There's absolutely no need to know what algorithm it uses, the only thing that matters is that the end result is sorted correctly.

<comment><USER4> It is far from saying that. At best it's more like saying a car mechanic should understand how a car works (e.g., how does an internal combustion engine work) even though most car mechanics spend 80% of their time changing oil, oil filters, and rotating tires. I think it is completely reasonable that a car mechanic should understand how a car works because without that knowledge how do they diagnose what is wrong?

My main issue with this topic is everyone seems to complain at the difficulty and ridiculousness of the process yet proposes no viable alternatives. No one likes the idea of take home projects/coding assignments. People write blog posts complaining that they shouldn't have to do side projects to give themselves a portfolio. So what is left? Just the resume? That doesn't seem fair to people coming out of school or career changers that have no experience - how do we evaluate them? We can't ask them anything related to CS.

<comment><USER5> Work sample. Do you spend any parts of your days writing syntax clean implementations of complex algorithms on a whiteboard with no access to references? Because no one I know has a job anything like that.

Knowing enough about various algorithms to suggest different ones and their trade-offs in a brainstorming session when presented with a (vague) problem is something that actually happens in some jobs. That part is fine to simulate in an interview if it's an important part of a particular job.

What most software engineering interviews should have but don't are sections on fixing bugs and adding features in existing codebases. These are the bread and butter of a lot of jobs. But that doesn't allow for interviewer dick waiving, so it's pretty rare.

</comment></comment></comment></comment><comment><USER6> I realized that everyone needs a base level of algorithms knowledge to write and design good software. Ideally it is pretty basic (leetcode easy), but the initial employees at FAANG companies decided to have a hazing ritual by creating increasingly complicated questions (e.g. leetcode hard) and it is exacerbated by a large number of kids from universities who mindlessly play this game. It spread to all other tech companies too and the process is just destructive.

I don't see an end to this. Its as if all companies expect people to be competitive programmers, and they optimize only on one parameter :/

<comment><USER7> The rules of the game seem to be well-known at this point.

If one desires a job at a FAANG, it is fairly clear what 'skills' are expected to be demo'ed during the interview process.

It is as flawed as the SAT for college admission, but again, the individual knows what to focus on to maximize a successful outcome.

<comment><USER6> Since the rules are known, the threshold has increased so much that people don't see any issue when leetcode hard questions are common place.

I have seen multiple instances where the interview questions are ridiculous by any sane terms. It incentivizes gaming the system by just getting good at algorithms and not building up other skills.

Just as an example, look at Google as a new user (without any brand context). The design is terrible, the product management is terrible, the hideous search bar everytime you open the android home screen, etc. all in my opinion caused by optimizing for one attribute in 99% of the hires. It causes them to think "oh well the data says people don't mind the change", but you can't track the growing discontent of the customer base. And you are a monopoly so don't have to give a shit about UX anyways.

</comment></comment></comment><comment><USER8> I've interviewed a lot of candidates (~200), and my interview generally looks like:

* I describe the problem

* They ask questions to figure out parts I didn't specify (which lets me evaluate how they handle resolving ambiguity)

* They propose a brute force solution, and I ask them how quickly it runs and how much space it needs (talking in big-O is a fast way for me to tell if they understand their solution)

* They propose a much more efficient solution (often with hints) and we again talk about time and space complexity (which again lets me see whether they understand how to compare solutions like this. I'm also happy to hear other tradeoffs like "this is optimal but too complicated to be worth maintaining")

* They code their solution (which lets me see if they can actually code, and check how well their description of their algorithm matches their actual algorithm)

This isn't a daily job sort of task, but it's not far off, much faster, and very information dense. I'm not testing "do you know the right algorithm" (and will hint that part).

<comment><USER9> Am I allowed to check stackoverflow during your interview process?

<comment><USER8> I agree that ability to look things up is a major skill, but testing it reliably is difficult since it's so high variance.

So, no, I don't let people use reference materials including stack overflow. But I'll answer questions, and not judge them harshly for things that would easily be looked up.

</comment></comment></comment><comment><USER10> To waste your time.

> Who really cares about algorithm on daily bases. How often you solve > algorithm-heavy tasks at work?

Practically no one and practically never for the majority of developers.

It's a trend started by Google, and since lots of startups don't bother thinking for themselves (and the interviewer wants to sound knowledgeable) some of them also ask these questions.

Perhaps this type of interview is more popular in some places rather than others - I've never had one like this, although occasionally people ask questions like "how many piano tuners are there in your city?" (answer: "let me check on Google..." or "why, are you thinking of starting a piano tuning company?").

<comment><USER11> > let me check on Google...

First of all, Newsflash! that's illegal in a programming interview, please solve this question using a whiteboard instead, show a mathematical proof if needed.

/s

</comment></comment><comment><USER12> To create a barrier to entry that weeds out over 90% of applicants.

IMO, this is the sole purpose of algortihm-heavy interviews. Companies like Google can put out a job ad and receive thousands and thousands of applicants, and the sad truth is that many of them could probably do the job that is required of them.

By putting in a loose requirement around what is essentially problem solving via known algorithmic techniques that you'll rarely ever use in day-to-day life, you can both weed out most applicants and ensure that the developers that perform the best aren't looking for an insane pay packet. After all, if you can stack rank yourself purely in programming ability, you've probably got an impressive CV and a body of previous work that means you probably don't need to work at FAANG or Microsoft to create something incredible.

I'd probably also say that there is an element of ageism, purely because older people have more responsibilities, and ultimately are more willing to spend time in the office over strictly working 9-6.

<comment><USER13> I'd just like to add that is easier to compare candidates using algorithm challenges (you can check if the candidate reached the optimal solution, how long it took and so on).

I dislike this kind of interviewing because you miss the chance of hiring people that are different from your regular hires, but hey the FAANGs are doing great so who am I to criticize.

<comment><USER14> > I'd just like to add that is easier to compare candidates

But you might just be comparing one's ability to feign smarts versus another's ability to work out a problem from first principles. Comparing apples to oranges might be easy but the results may or may not be that useful.

This remains one of my favorite ancedotes: [https://news.ycombinator.com/item?id=17106291](https://news.ycombinator.com/item?id=17106291)

</comment></comment></comment><comment><USER15> I once read it is a form of ageism because older people, in general, don't have as much time as young people due to family to study for those interviews.

Absolutely no idea if that is true but I think it is an interesting thought.

<comment><USER16> but someone who is old would have studied this repeatedly if they applied to multiple interviews of the same kind, so they would have internalised knowledge. Also it's sort of timeless knowledge that you can acquire on the job.

If anything interviews about the latest hip technology seem more prone to age selection to me.

<comment><USER5> A new job every six months was not the pattern ten years ago. Also, back then you would have been asked why manhole covers are round instead of write a bug free implementation of A* on a whiteboard. Neither of those are timeless bits of knowledge that one acquires on any job, other than maybe job interview coach.

<comment><USER17> Is it to keep the cover from falling in the hole?

</comment></comment></comment></comment><comment><USER18> It evaluates someone's capacity to approach a complex task

It's like in school, you learn many things, not necessarily useful in your daily life, but you learn to learn, and that's what they can see when they confront you with a challenge

Of course, some people who heavily train for this have maybe an advantage, like in school exams.. Personally I never specifically trained for an interview, I just like algorithms, doing some leetcode.com challenges when I've time is a pleasure

<comment><AUTHOR> The problem is that knowledge needed for exams is needed for exams only, and does not correlate with your overall expertise.

<comment><USER19> I can assure you algos and data structures are a big part of systems software. Without these it's impossible to write efficient and correct code. It is these fundamentals that have made me easily switch profiles from VR to Self Driving to Cloud.

<comment><USER20> I think it is often much better not to write them yourself, but rely on a battle tested implementation.

Of course we're not talking about left-pad here, but implementing your own Diffie Hellman key exchange from scratch is usually a very bad idea.

<comment><USER19> No one is asking you to write them yourself. But it is important to know when Quicksort becomes quadratic. Or when separate chaining in a hash table can lead to linear look ups. I find it abhorrent that this thread thinks these things are unimportant. Just use a "Library". How about you know your stuff .

<comment><AUTHOR> > I find it abhorrent that this thread thinks these things are unimportant. > Just use a "Library". How about you know your stuff .

How about the fact that "your stuff" is not algorithm. In 99% "your stuff" is to pick the right library

</comment></comment></comment></comment></comment></comment><comment><USER21> If you understand data structures and algorithms then, in my view, it demonstrates that 1\. You recognize the importance of understanding the principles and foundations of your field. 2\. You understand that knowing the fundamentals isn't about "writing algorithms everyday", it's about growing your ability to think deeply and creatively about a problem without constantly flailing around in ignorance.

I often hear that learning algorithms / data structures is pointless these days because it encourages reinventing the wheel or it wastes time. I believe the opposite is true. People who are ignorant will keep reinventing the wheel, they just won't realize they are doing it and how poorly they are doing it.

Learning algorithms and data structures will enhance your ability to write software because you will have a deeper understanding of how things work. When you understand how things work you can build interesting things.

Of course, if you just want to be a non-contributing faceless code monkey at a corporation where you don't matter and get a decent paycheck well, you probably can skate by in mediocrity. If you want to be able to build things that don't rely entirely on the work of others that actually understood what they were doing then you need to put in the time. The return on that investment lasts a lifetime.

</comment><comment><USER22> People complain about algorithm heavy interviews a lot but I honestly think they're pretty useful for several reasons (some are beneficial to the person interviewing as well).

Even though we many software engineers aren't doing challenging enough work to require algorithms work daily (though, wouldn't you _want_ to be doing this kind of work?) algorithms problems have a lot you have to do. Even if you don't use a linked list every day, designing a linked list and searching it isn't really different than designing a User class. The difference is it will take a few features of iterating on a User class before you bump into design issues where these will pop up right away.

And even though people complain about not being able to code without an IDE, frankly this is a red flag. I've seen candidates white board weird code (lots of semicolons, or no returns in python) that makes it pretty clear they don't write a lot of code.

Finally, white boarding algorithms questions are nice for interviewees because you can study one topic that will apply equally for multiple companies. Take home projects are great, but you have to do a unique one for each company. You can practice leetcode every night and you're preparing for a wide range of places all at once.

<comment><USER10> > not being able to code without an IDE, frankly this is a red flag... that > makes it pretty clear they don't write a lot of code

Muscle memory is real. Plus as a polyglot I find the context helpful for jogging my memory for how to do something in a particular language.

I had to google how to declare a variable in Go the other day, but I've written 10ks of lines. I'd had a break and was confused with Python. Oh well. I'd have failed on several of your whiteboard red flags.

Bar none, what I most want to see as an interviewer is someone's own code on GitHub. But I can count on one hand the number of times I've ever seen that after 10 years of hiring :-(

<comment><USER14> > Bar none, what I most want to see as an interviewer is someone's own code on > GitHub. But I can count on one hand the number of times I've ever seen that > after 10 years of hiring :-(

I would also love to see my own code on GitHub (well, perhaps another platform but anyway). Unfortunately having a full time job as a software developer leaves too little time & energy for my own projects, and work stuff at my current place will probably never land on GitHub. :-(

</comment></comment></comment><comment><USER23> For me there are two reasons:

(1) We want to hire people who are able to solve programming-related problems. Now how do you find out if a candidate can do this? Looking at their CV doesn't tell you much. You can build up a long impressive CV without being able to program. So it would be nice to see them solve a problem right here and now.

Ideally, that would be a problem of the type you would often encounter in your actual work. But there are few programming-only problems in my work. And the hard ones are about designing a larger part of a system, or fitting something new into the context of something old, or trying to understand some old code to be able to adapt it.

My point is: All of these take a massive amount of context into account. Giving a candidate all that context would take weeks.

An algorithm challenge works because it has a good ratio of "time it takes to explain the problem" to "the problem is actually non-trivial to solve".

(2) We do these algorithm questions on a whiteboard, with one interviewer also standing and talking through the development of the solution with the candidate. I believe this gives me a sense of whether I can and want to work together with the candidate either on an actual whiteboard when sketching solutions to problems or when pairing.

<comment><USER24> I think you are mistaking a programming-related problem for a CS-related problem.

<comment><USER23> Hm I would say writing an algorithm is both programming-related and CS- related.

</comment></comment></comment><comment><USER5> They make the interviewer feel really smart, since the interviewer already has the answer to his own question. Each interviewer should be required to go through the process himself (single blind) every six months. Bet you'd see a lot of no-offers.

</comment><comment><USER25> Someone here once posted that they realize that it has little to do with work, but they don't have time to test work related things. Plus candidates hate coding challenges. So the algorithm is the closest to it.

It has a lot of false negatives, but companies like Google have so many candidates it doesn't matter.

I liken it to military push ups. Someone who can do a lot of them also has good enough physical strength to do all kinds of physical work.

<comment><USER26> Except most people are trying to hire distance runners who will be lifting at most 5 pounds (~2.5kg).

<comment><USER27> You could argue lifting 5 pounds running long distance demands a lot more energy than lifting 5 pounds and dropping it. And I'm sure they carry a lot more than 5 pounds of gear.

<comment><USER28> I believe what caseymarquis meant is not the amount of energy throughput but the kind of activity.

Marathon runners and sprint runners are both runners but they literally have completely different muscle structure.

So developers are judged by how well they do "sprint run" when they actually are supposed to be "marathon runners" on a daily basis.

<comment><USER27> Oh thanks for putting me back on track (get it get it?)

Nice analogy!

</comment></comment></comment></comment></comment><comment><USER29> To cut older people from fresh graduates and then offer fresh graduates lower wages.

</comment><comment><USER30> It correlates with programming ability, especially for more junior candidates. More senior candidates can show their skills via system design.

Alternatively, you test if people can glue APIs together or really know web or mobile dev, but backend work really does need a level of algorithmic competency.

</comment><comment><USER31> Algorithms in interviews happen when people who enjoy writing algorithms get promoted to positions responsible for hiring.

</comment><comment><USER32> I think the HN crowd goes 50/50 on this. One half hates it and the other believes it's a necessary evil. And then there's the small minority that enjoys it.

I was apart of the former half who hated algorithms until I was tasked with help hiring people. The only thing I believe that is worse than an algorithm is me spending 8+ hours of my free time on a "take home" problem. So, I used pretty easy to solve algorithms alongside real problems I had solved recently for interviews.

Being on the other side as the interviewer really made me see the value of algorithms. It becomes a medium where candidates can convey competency. I think it has gotten murky due to the lines between a web developer and software engineer blurring. That statement alone can be a can of worms.

Anyway, I would say algorithms / data structures for backend development _do_ come up when laying the groundwork for a new project or something that might see a lot of traffic. Lots of things in development model certain data structures (queues, stacks, graphs, etc.) so knowing them allows you to converse with your co-workers and conceptualize them to others. Probably comes up somewhere between 2-5% of the time. Design patterns probably get brought more as their a bit more applicable for everyday tasks. It really depends on who you're around, how challenging the work is, and what the engineering culture is like.

<comment><USER10> > It becomes a medium where candidates can convey competency

I really struggle to see how regurgitating something someone's read/heard about something they didn't invent/modify conveys anything beyond memory.

</comment></comment><comment><USER33> Often the problem isn't phrased as "please implement algorithm X", but "solve this business related problem that requires use of algorithm X". The expected answer is the same, though...you're supposed to implement algorithm X.

I've failed these sort of interviews by suggesting I'd rather find a well tested library and use it than implement the algorithm on my own. What's the point really.

</comment><comment><USER34> For FAANG and other companies with large data: Yes. For solving actual scaling issues, it makes sense for any candidate to understand this stuff.

Bottlenecks matter. And the better you are at algorithms means the less rework that needs to happen.

If on the other hand you're doing day to day business logic, no, it does not make sense. 80% of all jobs are like this.

</comment><comment><USER35> Most people care for algorithms in some capacity in their day jobs.

Some might be able to exclusively tackle tasks that don't require algorithmic knowledge, but this severely limits their options on what tasks they can pick up in a team.

I haven't worked with an incompetent developer that was an algorithm wiz. And I haven't encountered a developer who's skills I would envy that wouldn't have known a lot about algorithms.

Is using a whiteboard the best way to hire or even the best way to test these? I don't believe so.

But to go the extra step and claim just because perhaps in your line of work you don't use something daily it's useless? That's asinine. To make an obvious exaggeration: a pilot doesn't handle emergency landings on a daily basis, perhaps ever in their career, but if I was hiring a pilot to fly my plane you damn well know I'd try to find out whether that's a skill they possess.

</comment><comment> GuB-42 I don't write algorithms on a daily basis, but is does account for a significant fraction of my work time.

Some algorithms I have written:

\- List A and list B have common elements, go from A to B with a single insertion, deletion and reordering operation.

\- You have two dates/times, get the number of working hours between the two, with business hours and holidays taken into account.

\- Various forms of dependency management: we need to run an operation, that operation needs other operations to run first, themselves having their own requirements, etc...

\- Decode a character string where each character is 6-bit wide.

\- Have a set of data with different periods. Generate a schedule with a major/minor cycles. The algorithm has to understand things like 333ms = 1/3s.

\- And many smaller things I don't remeber.

Most of the time, it fits in a single page, it is no big thing, I am not trying to prove P=NP here. Just that there isn't an already written library for every problem on earth. And even if there is, it may require a truckload of dependencies you'd rather avoid or it may not fit your particular problem without a lot of messing around. Or it might just be poorly written and unsupported, libraries are written by people with a wide range of resources and skill levels.

Algorithms are part of the job, if you don't know the basics, it will affect your productivity. I've seen people struggle for days on basic problems, hopelessly struggling with libraries. Or after great effort, come up with a broken solution that will need to be redone eventually.

Of course, algorithms are not the whole picture. But if a coder can't do it, there is at least one aspect of the job he lacks. And it turns out that it is easy to test for in an interview. Proper design is more important, but it is usually apparent only after thousands of lines have been written and requirements have changed several times, not something that is easy to test for.

</comment><comment><USER36> There are pros and cons. Interviews are inherently imperfect. I've interviewed people who can do a bubble sort algorithm off the top of the heads, but cannot figure out how to use GitHub to save their lives. I've interviewed people who write great code, but can't articulate their ideas well enough to sell them to management.

Both soft + hard skills are mandatory. Hard skills are probably 33%-50% of the job, while working with people and being able to solve complex human problems in engineering is 50%-67% of the job.

Interview with algorithms or not — I don't care. But don't think for one second that an ability to write code is the only important part of being an engineer.

</comment><comment><USER37> Algorithmic interviews test for intelligence. Everyone prefers more intelligent and capable developers. At the end of the day an interview is a competition; the job goes not to any qualified candidate, but the best qualified.

</comment><comment> d--b The question is: what mistake should the developer not do?

A bad developer will not implement properly the separation between infrastructure code and business code.

A bad developer does not care about readability, so the code will be laden with functions that have side effects, and things of that nature.

A bad developer does not comment their code in a meaningful way.

None of these are easy to find out in an interview. It turns out that questions about algorithms are good proxies to find people who are interested and proficient in computer science.

Sure you will miss some good developers that aren't good at algorithms, but there is a better chance that you do not hire bad candidates.

<comment><AUTHOR> You mentioned all three things that algo-strong dev will also do. Because there is no correlation

</comment></comment><comment><USER38> 1\. Ageism (prefer early 20s)

2\. Making switching jobs harder

<comment><USER39> Why exactly should a company make switching jobs to them harder, for the benefit of their competitors?

<comment><AUTHOR> When big companies agree, and all play the same game.- They can save money and time.

</comment></comment></comment><comment><USER40> They're really useful if you are looking for someone to do algorithm-heavy work. Also to check if someone actually has the CS background they claim.

</comment><comment> t-h-e-chief Most people who are hired will have recently graduated, due to the exponential growth of software developers. These interviews are really just an examination question, like you would do in school. Companies use them because they can easily show whether a person can retain and then apply knowledge of computer science. And must companies do not know how to test candidates otherwise.

</comment><comment><USER41> Not all interviews are algo-heavy. I recently interviewed for a position in AWS and the challenge was a simple floodfill argo (leetcode easy).

<comment><USER7> Did you get an offer?

<comment><USER41> Yes. :)

</comment></comment></comment><comment><USER42> You realise that not everyone is a web developer?

</comment><comment><USER43> Think twice before getting hired. Some companies are like nice looking Instagram profile, but behind the scene it just sucks.

</comment><comment><USER44> Do you know Goodhart's law ? [https://coffeeandjunk.com/goodharts-campbells- law/](https://coffeeandjunk.com/goodharts-campbells-law/) Software engineering is craft and there are many metrices. But sadly people focus heavily on algorithm/ds only.

</comment><comment><USER45> There isn't anybody who can make good software architecture who isn't also good at data structures / algorithms.

</comment><comment><USER39> It might work as an intelligence test.

<comment><USER9> You mean they're trying to hire people stupid enough to work for them by putting them through things like take home projects, group, and multi-round interviews?

</comment></comment><comment><USER37> Algorithmic interviews test for intelligence. Everyone prefers more intelligent and capable developers.</comment>


Sunset on Mars  - <AUTHOR> http://sci-universe.tumblr.com/post/66712887712/a-reminder-that-there-is-an-image-of-the-sunset

<comment><USER2> Link to the original image: [http://marsrovers.jpl.nasa.gov/gallery/press/spirit/20050610...](http://marsrovers.jpl.nasa.gov/gallery/press/spirit/20050610a.html)

<comment><USER3> How nice of her to give credit to the original. If it wasn't for your link I wouldn't have found that. This smells very IFLS-y.

<comment><USER4> Regarding IFLS: [http://thebestpageintheuniverse.net/c.cgi?u=youre_not_a_nerd](http://thebestpageintheuniverse.net/c.cgi?u=youre_not_a_nerd)

</comment></comment></comment><comment><USER5> Wow, frisson-producing photograph [1]. I remember waiting for the mars rover to land on NASA TV, and watching the celebration [2]. Can't imagine what it might have felt like watching the moon landing live.

[1] [http://www.reddit.com/r/frisson/](http://www.reddit.com/r/frisson/)

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

</comment><comment><USER6> Wondering: Sunset on earth has blue sky and red horizon.

Why has sunset on Mars red sky and blue horizon?

<comment><USER7> Check out the nasa link. The colors are not entirely accurate.

<comment><USER8> The colors are not entirely accurate, but the fact that it's bluer near the sun and redder farther away is accurate- the image just exaggerates it.

The reason is that red dust particles in Mars's atmosphere scatter red light just like gas molecules in Earth's atmosphere scatter blue light; there isn't enough atmosphere on Mars for the blue-scattering effect to be significant, so red scattering off of dust particles dominates. That means that when you look near the sun, you see the blue part of the spectrum shining through while the red parts have been scattered off-axis, while in the parts of the sky away from the sun you see the off-axis scattered red.

</comment></comment></comment><comment><USER9> Couldn't help but immediately think about Star Wars' "Binary Sunset" [1]. If you discard the red star, it's strikingly similar.

[1] [http://www.youtube.com/watch?v=1gpXMGit4P8](http://www.youtube.com/watch?v=1gpXMGit4P8)

</comment><comment><USER10> Sunset from the Viking Lander (1976): [https://www.avaneya.com/images/gallery/vlr/Sample_03.jpg](https://www.avaneya.com/images/gallery/vlr/Sample_03.jpg)

Part of the Avaneya project: [https://www.avaneya.com/#!/store](https://www.avaneya.com/#!/store)

</comment><comment><USER11> this is beautiful.</comment>


Computing Trailing Zeros (2009) - <AUTHOR> http://7ooo.mooo.com/text/ComputingTrailingZerosHOWTO.html <comment><USER2> I was once asked this exact question in a technical interview. I used __builtin_ctzll and that dumbfounded the interviewer. (Disclaimer: this may or may not be a good thing to do in an interview depending on the role/interviewer.)

In the real world, you probably want to use this builtin or something provided by the compiler/standard library as opposed to rolling your own.

</comment><comment><USER3> More Bit Twiddling Hacks: [https://graphics.stanford.edu/~seander/bithacks.html](https://graphics.stanford.edu/~seander/bithacks.html)

</comment><comment><USER4> Pretty neat. You can see this exact approach in the Go standard library: [https://golang.org/src/math/bits/bits.go#L35](https://golang.org/src/math/bits/bits.go#L35)

Nowadays, of course, ctz gets compiled down to a single instruction (e.g. bsf on x86) :)

</comment><comment><USER5> While the papers mentions odd numbers as a possible special case in a sidenote, the real special case is x=0. The given expression

        size_t i = ((x & -x) * debruijn) >> 27;

treats x=0 the same as odd x, since 0 _debruijn >>27 == 1_debruijn>>27 == 0.

</comment><comment><USER6> Mirror: [http://web.archive.org/web/20190410000033/http://7ooo.mooo.c...](http://web.archive.org/web/20190410000033/http://7ooo.mooo.com/text/ComputingTrailingZerosHOWTO.html)

</comment><comment><USER7> Anyone got a cache? I can't access it.

The title reminded me of this Project Euler problem named "Factorial trailing digits":

[https://projecteuler.net/problem=160](https://projecteuler.net/problem=160)

<comment><USER8> That's a standard log(n) algorithm. It's harder to calculate the first nonzero digit.

<comment><USER7> By that you mean the first digit?</comment></comment></comment>


Building Better Interfaces with SVG (2015) - <AUTHOR> http://slides.com/sarasoueidan/building-better-interfaces-with-svg#/ <comment><USER2> Having spent the last 3 years building complex visualisations with SVG, the biggest drawbacks I found are:

\- Poor optimisation. Browsers have done a lot to speed up HTML + CSS rendering via the GPU, and you can you use WebGL to make canvas fast. SVG seems to have been neglected in comparison.

\- No layout management. HTML + CSS isn't perfect in this regard, but you still get blocks + inline text, floats, absolute positioning, tables and flexbox (and soon, grids). In SVG, you get absolute positioning, and that's it. If you want to do any kind of complex layout, you have to calculate everything yourself in script.

I'm not sure the major browser vendors really care too much about SVG. Compare the huge advances made in other areas of the web platform with the years-long, incredibly unambitious SVG 2 specification process.

It's a real shame as as this presentation shows, you can do some incredible stuff with SVG. But it could be so much more if there was just a bit more effort invested.

<comment><USER3> Also what about editors? In my experience writing graphics this way (via XML files) scares off 95% of the artists. Programmers can do it, but they make crap art. A designer who is good/interested enough in doing these is very rare.

So unless there is excellent support (can make animations, generates nice code,..) by Adobe products it wont catch on.

<comment><USER4> Adobe Illustrator exports to SVG.

[https://helpx.adobe.com/illustrator/how-to/export- svg.html](https://helpx.adobe.com/illustrator/how-to/export-svg.html)

<comment><USER3> And how good is it? Does anyone knows examples/has done some serious work in it?

<comment><USER5> For what it's worth the SVGs exported by Sketch are workable. I usually go in by hand and clean up the exports, but it's nowhere near as bad as old dreamweaver html exports.

<comment><USER6> I've had the opposite experience. Exports from sketch have the potential to be way off the canvas. This page has helped quite a bit: [https://medium.com/sketch-app-sources/exploring-ways-to- expo...](https://medium.com/sketch-app-sources/exploring-ways-to-export-clean- svg-icons-with-sketch-the-correct-way-752e73ec4694#.yt67hz8oy)

</comment></comment></comment></comment></comment></comment><comment><USER7> I have no horse in the SVG vs. CSS race, but: Web designers, please, do not think that all the super-annoying gimmicky animations (rippling text inputs, wiggly text, excessively stretch-and-squashing motion) are a positive for user experience.

It might be fine for showing technical flexibility, but they do not add to interaction; they are distracting, slow down responsiveness, and worse, are non-standard and unexpected. I hope this kind of stuff doesn't catch on.

<comment><USER8> _all the super-annoying gimmicky animations (rippling text inputs, wiggly text, excessively stretch-and-squashing motion)_

I like to call this trend "Flanders Computing" \-- where developers and designers increasingly create obnoxiously friendly websites and apps that treat you as if they're your diddly-doodly buddy-ol-pal.

A recent Windows 10 install told me "We're happy you're here!" Who exactly is "we" and why are they trying to be all buddy-buddy so soon? I assume the market research told them that this was the best start screen, but good grief is all the wiggly-wobbly buddy-ol-pal stuff so friggin annoying. It's like forced intimacy that can't be reciprocated, which feels weird.

<comment><USER9> Re: Windows 10, it scared me so much the first time after a bigger update with the "Hi / We've updated your computer" type splash screen. "FUCK did it just reformat everything??"

<comment><USER10> Not to mention "Don't worry, everything is where you left it" which I've had a few times when booting up. And the slow fade in makes it even creepier.

<comment><USER11> Yeah, that message made me nervous. "We didn't touch your stuff...this time."

</comment></comment></comment></comment></comment><comment><USER12> Here is the actual talk: [https://www.youtube.com/watch?v=lMFfTRiipOQ](https://www.youtube.com/watch?v=lMFfTRiipOQ)

</comment><comment><USER13> We started replacing all of our SaaS application icons (Font-Awesome & entypo) to customized versions of the nucleoapp icon set. SVG is incredibly powerful and flexible. We're able to do a lot of cool and unique stuff without much CSS code or gifs. The ability to control multiple layers of a specific svg icon or element is really cool, and makes it quite easy to build unique interfaces. We even started using svg on our website for the features section. A tiny ~ 2KB img/icon can be scaled to work on any device or any resolution and look very crisp.

It can be time consuming at the beginning, but once you get the hang of it, you won't use anything else.

</comment><comment><USER14> For anyone who is a web hacker rather than a designer, I highly suggest trying out SVG here and there in your web projects. SVG is a fantastic bridge for anyone who wants to put some graphics (dynamic or otherwise) in place, is used to just having copy as content, and/or is a bit afraid of opening PS/Gimp.

<comment><USER15> I'll second that. I converted a script that rendered images with Tk's canvas over to Cairo. Cairo's SVG output converts text to curves which makes embedded hyperlinks impractical. I added direct conversion to SVG and got nice results in short order.

The big problem when doing layouts for SVG outside of a browser is determining the bounding box for text. The best I can do is get a box from Pango and hope browsers render text close to the same way.

<comment><USER16> Ah ha haaaa...I've spent a lot of time on this this week. I currently render the text inside phantom (headless chrome) so I can correct the positions. Do you have an example of using pango?

(Ps, I now know the murky details of exactly how Firefox, chrome and Inkscape calculate their bounding box and clientBoundingRect, which is sort of sad but just the life of a coder I guess)

</comment></comment></comment><comment><USER17> I think my biggest issue was(/is? ..and please reply if anyone knows a decent way around this) using an SVG icon is great - scalable, small, etc., but if you want full control over it in the CSS (for fills, outlines, hovers) you have to inline the SVG. If you're using it as part of the navigation or whatever, you have to load it over and over on every page.

It would be amazing to be able to load an SVG icon as an image with a class, and then be able to use CSS to manipulate the image (change the colour etc) but know the image is cached by the browser.

<comment><USER5> One way to do it is to have an external file with all your svg data that you append to the dom afterwards. Wherever you want to use a svg, just reference the appended svgs:

        <svg><use xlink:href='#svg-id'></use></svg>

Here's a quick example I threw together: [http://syd.jjcm.org/svgCacheTest](http://syd.jjcm.org/svgCacheTest)

If you click on the folder icon you can see it being changed by the css.

<comment><USER17> Interesting, thanks. Alas I think this solution still has its drawbacks in that you can't target classes within the SVG. Example: [https://css- tricks.com/svg-use-with-external-reference-take-...](https://css- tricks.com/svg-use-with-external-reference-take-2/)

</comment></comment></comment><comment><USER18> Shameless plug:

ImageTracer is a simple raster image tracer and vectorizer, 100% free, Public Domain.

Available in JavaScript (works both in the browser and with Node.js), "desktop" Java and "Android" Java:

[https://github.com/jankovicsandras/imagetracerjs](https://github.com/jankovicsandras/imagetracerjs)

[https://github.com/jankovicsandras/imagetracerjava](https://github.com/jankovicsandras/imagetracerjava)

[https://github.com/jankovicsandras/imagetracerandroid](https://github.com/jankovicsandras/imagetracerandroid)

<comment><USER19> So "Write Once, Run Anywhere" has become "Write Once, Commit to Two Repos"?

</comment></comment><comment><USER20> there is also [https://github.com/parametric- svg](https://github.com/parametric-svg) that could be helpful for more delcarative layout that doesnt need a bunch of hand-coded JS

</comment><comment><USER21> This slide deck blew me away -- thanks for posting. I didn't even know these kinds of things were possible with SVG.

Was particularly enamored with slide 41: [http://slides.com/sarasoueidan/building-better-interfaces- wi...](http://slides.com/sarasoueidan/building-better-interfaces-with-svg#/41)

I think most of the animations on that slide are not-distracting, and intuitive UI elements (except the chat box on the right).

<comment><USER19> The chatbox on the right is outrageous. "The other person is typing" should never be allowed to have this huge and distracting of an animation.

I picture myself typing this on my phone, letting it rest on the desk unlocked while continuing to read HN, but finding myself constantly disturbed by these bouncing waterdrops in my peripheral vision.

<comment><USER21> Yeah... that was the only interaction I thought was insane.

But I'm also against read receipts and showing when the other person is typing at all, so I figured maybe this is what people are into these days

<comment><USER19> I won't argue against read receipts and typing notifications in general as far as UX goes (I understand the privacy problems, but that's another thing). It's a very basic equivalent of body language for text chat.

</comment></comment></comment></comment><comment><USER22> Just a big caveat for slide #36:

> SVG text is fully accessible, searchable, selectable and 100% semantic.

Only if you don't convert the text to paths, which is really really common in the wild because someone wants a specific font or text positioning. Supposedly you can create invisible text for that purpose but I've only seen it once in a real SVG.

</comment><comment><USER23> I've been trying to switch from icon fonts to SVG for icons, but I'm struggling with productivity/maintainability:

\- SVG icons are more complicated to drop in, or complicate the code. For icon fonts it's usually just a CSS class, which is lean and expressive. For SVG, either I drop in the explicit code, which can be huge and hard to read, or I include it as external file (like an image) and lose CSS styling abilities.

\- Versioning is harder. SVG icons are usually present as files, either from a thrid-party set or created and maintained using editors like inkscape. Now I either copy the code for above styling advantages, which is obviously bad for consistency, or I reference them as external images and lose stlying power again.

Are there any good workaround for those issues?

</comment><comment><USER24> i'm writing a web-based crossword app using svg for the grid, and it's a great experience. i got the basic idea by examining the source of the guardian interactive crossword [[https://www.theguardian.com/crosswords/cryptic/27089](https://www.theguardian.com/crosswords/cryptic/27089) e.g.] which is very clean and readable.

</comment><comment><USER25> So, ctrl-f for d3 yielded no results in an article about SVG...

If you want to make impressive visualizations in very little code, I suggest you look at d3js. Here's the start of a series of fantastic tutorials done by Mike Bostock, founder of d3: [https://bl.ocks.org/mbostock/3808218](https://bl.ocks.org/mbostock/3808218)

I'd suggest you try that example out in [http://blockbuilder.org/](http://blockbuilder.org/). I have no affiliation but it makes playing with d3 easy. After that, peruse the articles on the third example, find cool examples on bl.ocks.org, and replicate them.

A few things to note starting out(I've been learning d3 lately):

\- v4 was a breaking change from v3, some v3 examples may not work out of the box but mostly will. If the >1MB bundle size of v3 scared you away, v4 is all es6 modules so you pay for what you use.

\- the data model is enter-update-exit, its elegant but can take some time to understand.

\- d3 looks procedural at first but is actually declarative if you follow the idioms.

\- if your code keeps adding elements when it shouldn't, you probably messed up either a select/selectAll somewhere or forgot to add a class/id to the element when creating it.

\- using typescript with d3 feels great but there are some gotchas; if you're interested, let me know and I'll write a blog post.

I do realize the slides are about interfaces with svg, so d3 may not be exactly what you want but damn if it isn't worth mentioning here.

<comment><USER26> > using typescript with d3 feels great but there are some gotchas; if you're > interested, let me know and I'll write a blog post.

This would be extremely interesting and useful. Please do write your thoughts about it. Thanks.

</comment></comment><comment><USER27> Does SVG still murder battery life on mobile phones?

</comment><comment><USER28> I don't get the SVG vs. CSS slant of this. I always use CSS with SVG. So it not "SVN or CSS" it "SVG and CSS".

</comment><comment><USER29> In the slides where this talks about the SVG way and the CSS way - I don't know enough about either to verify if its true, but are these approaches inherent in these choices? That seems awfully suspicious/disingenuous to me but perhaps it really is a fair portrayal?

</comment><comment><USER30> How do people make SVGs these days? Inkscape? By hand? A combination?

<comment><USER31> All of the major professional vector applications export SVG, including Adobe Illustrator, Affinity Designer, and Sketch. As for animation and some of the more exotic filters, though, those usually have to be added by hand.

</comment></comment><comment><USER32> Gawd, most of the rationale provided are superficial effects that have entirely arbitrary value for most Web projects.

The claim of svg being semantic is laughable when i see one of the examples leverages the "d" attribute of an svg element.

Anyone doing work with d3 is eminently appreciative of the abstraction it provides for working with svg. There isn't an analog for working with css

</comment><comment><USER33> The CSS heart on slide 9 looks perfect for me, while the SVG heart is blocky and not fully contained in the white box.

Google Chrome 54.0.2840.100 (64-bit Ubuntu)

[http://slides.com/sarasoueidan/building-better-interfaces- wi...](http://slides.com/sarasoueidan/building-better-interfaces-with-svg#/9)

</comment><comment><USER34> Sometimes it seems to me, that Sara and Mike (D3) are the only people who talk about SVG.

And Mike seems to have a rather practical approach, while Sara is the only SVG evangelist out there.

I like her stuff, it's sad that SVG doesn't get more love.

</comment><comment><USER35> Adobe could have made Flash just export to SVG and saved it. But heck, everyone knew it was dead the second Macromedia was bought.

</comment><comment><USER36> SVG certainly has its uses, but I can't trust all the clever filtering stuff after seeing even modern, high-spec PCs literally crashed with relatively simple effects just by trying to draw the SVG in a browser. Something about certain browser rendering, or maybe the underlying Windows graphics APIs or someone's card drivers, just isn't stable or robust in this area, in my experience.

</comment><comment><USER37> How does this work with respect to fallbacks and accessibility, especially for form elements?

</comment><comment><USER38> What is the story on accessibility for SVG? Can blind people use it? That's a pretty small market, but one that you are required by law to support. A MUCH MUCH larger market is people with parkinsons like diseases who have trouble clicking on things and need to be able to tab through the elements with a keyboard... How does that work here. What is the tab order? Even if it is supported, is the tab order sane or insane?

<comment><USER39> [https://www.w3.org/TR/SVG-access/#Links](https://www.w3.org/TR/SVG- access/#Links)

Done properly, should work great.

<comment><USER38> Cool!

</comment></comment></comment><comment><USER40> From 2015. Still awesome.

</comment><comment><USER41> just cant wait until we can compile real programming languages down into web assembly, and the whole "front end" debacle can DIAF :)</comment>


SSH server 0-day exploit - <AUTHOR> http://isc.sans.org/diary.html?storyid=6742 <comment><USER2> What are the chances that the exploit is actually in 5.x, and the "anti-sec movement" is doing some social engineering to get people to upgrade to the affected versions?

<comment><USER3> My thoughts exactly... If I had an exploit that only worked on the latest versions and I wanted to make use of it I would likely try a scheme like this.

Of course if this is the case then the exploit is likely to be used aggressively sometime in the near future...

</comment></comment><comment><USER4> I just had a browse through my auth.log, and there does seem to be a new sort of automated attack script in the wild - it opens a connection to SSH port 22, (through some spoofed IP address), but then disconnects before attempting to login. That way, it won't show up as an unsuccessful login attempt for any log-monitoring tools which add its IP address to hosts.deny.

However, after it's done that repeatedly (presumably doing some sort of sniffing to work out exactly which version of sshd is running), it then attempts to login. Here's the interesting bit: when it tries to login with a user than doesn't exist, instead of just generating the

      "Invalid user test from xx.xx.xx.xx" log entry,

sshd also outputs another log entry, directly afterwards:

      "input_userauth_request: invalid user test"

which I haven't seen before. I'm not particularly au fait with the internals of sshd, but I would suspect that this new (well, if it is new) script has found an exploit in the part of SSHD which (logically) checks if a user exists first, but the login is being rejected deeper in sshd, when it tries to do the actual authentication.

(All the above is speculation, however: I'm no expert on SSH)

<comment><USER5> If the IP is spoofed, how are your reply packets getting back to it?

<comment><USER4> Spoofed is probably the wrong word - through an irrelevant IP address is a better way to put it(perhaps someone's compromised computer on a botnet acting as a proxy).

</comment></comment></comment><comment><USER6> For the time being, would be also a good idea to move the ssh port to something other than 22 to avoid getting carpet-bombed by automated exploiting scripts.

<comment><USER7> That is always a good idea, anyway. Been a long while since I've used the standard ssh port on servers under my control.

<comment><USER8> I don't understand why people don't do this it is so much harder if not impossible for people to break into your server by normal means especially when you add MaxAuthTries 3

<comment><USER9> I am pretty sure that 0-day remote exploits don't respect MaxAuthTries.

<comment><USER7> So long as the exploit doesn't require multiple login attempts at all (which I assume it wouldn't) yeah. MaxAuthTries protects against other things.

</comment></comment></comment></comment></comment><comment><USER10> Question along these lines. What version should an updated RHEL4 server have?

I'm only at OpenSSH_3.9p1 yet up2date says everything is up to date.

<comment><USER11> So, just in case anyone is confused about RHEL packaging policy: The version stays the same for the life of the release; patches are applied to that version to fix security and stability issues.

Our forums see tons of questions about this, with folks assuming that because they have an "old" version of PHP or Apache or whatever, that it has known security vulnerabilities. When, in reality, an RHEL released package is probably at least as well-vetted for security as the latest release from upstream.

But, in this case, since there is no known exploit (and it is possibly fictional), there's nothing vendors can possibly do about the problem. I suppose vendors could have been quietly notified of the problem, and we'd start seeing new releases rolling out; but you'd see errata on the relevant vendors website. Asking random folks on HN wouldn't be the best course of action for reliable answers.

Anyway, OpenSSH.org has nothing on the subject.

</comment></comment><comment><USER12> First, it is only a _rumour_ for now.

Second, it would apparently only concerns old versions of OpenSSH. Quoting the link: " _It is against an older version of OpenSSH_ " (OpenSSH_4.3).

<comment><USER13> What they mean by "older version" isn't specified anywhere. It could mean not current for all we know, e.g. < 5.2 (unlikely though). Almost none of the popular distros use the latest version, will be interesting to see which ones are affected.

<comment><USER12> For the version information, I quote <http://secer.org/hacktools/0day-openssh- remote-exploit.html>.

The submitted link seems to copy/paste most of its content from this article, but it didn't include the version information.

</comment></comment></comment><comment><USER14> Could the exploit actually be on newer versions of ssh? If so, this could be an attempt to get people to upgrade so that more machines can be compromised.

</comment><comment><USER15> >members of the anti-sec movement.

Can someone tell me what the anti-sec movement is?

<comment><USER16> Sounds like a bunch of script kiddies with a little more brains than usual and just as much malice.

<comment><USER17> Antisec are hackers who don't wanna profit from fear.

<comment><USER16> "Hackers" as in asshole douchebags who wish medical ailments on people? "We at anti-sec, hope you never heal"

<comment><USER17> At least they have credibility. These guys are sticking to their guns and keeping the hacking underground just that, underground. Anti-sec is a response to the fear-mongering era of 1998 - 2004 when every hanger-on wannabe computer guy became a security researcher and started publishing "advisories". Between dotcom bubble era to 9/11, everybody was a security guy, and not only that, but the "security guy" was pointing the finger at the hacker community everytime a script kiddie defaced a geocities web page. Those most sec guys are snake-oil salesmen and absolutely deserve no sympathy from me. If they're gonna bad-mouth hackers and promise protection to everyone with a PC (Sec industry essentially being a racket) I say let them protect themselves from the real Hackers; by and large, they're out-gunned and out-skilled.

Anti-sec doesn't go after civilians, by the way.

<comment><USER18> _Anti-sec doesn't go after civilians, by the way._

Let me guess, if I have a job and a computer I'm not a civilian, right?

<comment><USER17> Not if you're using that computer to publish security articles that tell people their lives are at risk if they don't buy your product to protect themselves from the "evil hackers".

It's a very specific feud between two specific groups of people.

If you're not in the know, why not lurk in the scene a bit and see what's going on? I did just that; I was curious about security and I saw both sides of the issue. One group publishes exploits and carries out mayhem for fun, while the other group repeats what the former said in legit, paid publications and calls the former names.

Even the train-robbers vs bounty-hunters analogy fails in this case; there are way too many Joe Sixpacks fancying themselves a town sherrif and speaking ill of Jesse James. Very soon, some faces are bound to get smashed at the local Saloon :-P

<comment><USER18> _using that computer to publish security articles that tell people their lives are at risk if they don't buy your product to protect themselves from the "evil hackers"_

That's the most bizarre definition of "not a civilian" I've ever heard.

Furthermore, I don't trust anyone's definition of "fun" if it means "mayhem" on my boxes, and I don't trust any hackers to tell the difference between funmeisters and for-profit thugs when, for example, having a jolly fun chat about vulnerabilities. The idea that _I_ could lurk in the scene doesn't exactly make me feel better about it.

 _One group publishes exploits and carries out mayhem for fun_

I thought dtf and utnick said they want to keep exploits secret? So do they share the exploits in "the underground" and try to keep them secret from stodgy, above-ground types? Again, I don't trust them to distinguish between "cool" people and (e.g.) botnet operators who send v1@gr@!!! email for spammers.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><AUTHOR> Some info here:

<http://secer.org/hacktools/0day-openssh-remote-exploit.html>

<comment><USER19> from here <http://baoz.net/0day-openssh-remote-exploit/>

</comment></comment><comment><USER20> Your sshd is probably configured with tcp wrappers (My RHEL4/5 were). If you only log in from a known set of static IPs, you could add in /etc/hosts.deny:

         sshd: IP1 IP2 .domain.com

The .domain.com allows any IP which reverses to .domain.com.

I ran:

          grep Accepted /var/log/secure*|grep ssh2|perl -lne '/for (\S+) from (\S+)/ && print "$1 $2"'|sort -u

To find all IPs/users that logged in.

This may give you trouble if you SSH from e.g. some mobile connection or from random wifis around the world.

</comment><comment><USER5> Original source: [http://marc.info/?l=full- disclosure&m=124669956508903...](http://marc.info/?l=full- disclosure&m=124669956508903&w=2)

</comment><comment><USER21> Depends how much older. Does it affect debian/ubuntu/redhat current systems, with fixes backported? It's a pretty big deal if it does.

<comment><USER22> SSH: SSH-2.0-OpenSSH_4.3

The newest releases use 5.1

<comment><USER12> Yes, the latest Debian stable release (5.0 "Lenny") uses SSH 5.1.

      $ cat /etc/debian_version
      5.0.2
      $ ssh -v
      OpenSSH_5.1p1 Debian-5, OpenSSL 0.9.8g 19 Oct 2007

</comment></comment></comment><comment><USER23> If it's fixed in the latest OpenSSH, it's not a 0-day exploit, is it?

<comment><AUTHOR> Technically it is a 0-day exploit (not published and unknown) but that only works on older versions of SSH.

However, the default version on RHEL, Fedora are vulnerable. So, it is a big issue if there is no patch from your distribution (unless you use ssh from source which is not common).

</comment></comment><comment><USER24> The monoculture has an invader, adapt or die.

</comment><comment><USER25> The latest release is 5.2.

</comment><comment><USER26> If it's true, then it's time to migrate the applications to windows servers. First the private/public key fiasko with debian, and then this...</comment>


What happened to common decency in the hiring process? - <AUTHOR>

I have applied to a few places in the Valley, as have many of my friends.  And I hear nothing but horror stories in terms of how rude recruiters and hiring managers are.
I'm not talking about simply not hiring me or my friends.  I'm happy with not getting a job I interviewed for, no one owes anyone a job.  And I'm not talking about getting template rejection letters, or "Thanks for contacting us, we'll keep your resume on file."  Those are great.
I'm talking about emailing candidates about scheduling phone interviews and then not responding back to emails.  Not calling them when they have a scheduled phone interview.  Bringing people to onsite interviews, and then not contacting people back to give them the results, or responding to emails asking about the results of the onsite interview.
I assume that no contact means a rejection, but what happened to common decency and not leaving people hanging?
I've found that the hiring process has gotten ruder and ruder over the course of time, where hiring managers feel no need to tell interviewees that they were rejected.  It's appalling.
I expect it from headhunters, but internal recruiters for the company are doing themselves no service.  And this pertains not just to startups, but big companies as well.  Startlingly, Google has improved drastically in this department, but all the other companies are simply terrible.
Have other people experienced this as well? <comment><USER2> It has gotten a lot worse over the years. I think part of the problem has to do with HR taking over the hiring process whereas traditionally the actual managers that the candidate would work for would have a much more active role in the process. The problem with HR departments is that they are, in my experience, completely unqualified to do hiring and often act more effectively to keep good candidates away rather than get them face time with prospective employers. The whole hiring process has devolved in so many ways, but then management in general is becoming a lost art. As a society, we are collectively losing our ability to organize and manage ourselves.

</comment><comment><USER3> That isn't just in the Valley. It's all over. I don't know if it is simply more prevalent there versus other places, but when I was actively interviewing just before I graduated from college, I could count on one hand the companies that I had more than 1-2 technical interviews with and didn't take longer than 45 days from start to finish to give me a decision. It was very routine for companies to wait a full month before supplying me with a final answer.

There were plenty of companies (I'm guessing around 50%) that simply never responded back to me, even if I sent them an inquiry about where I stood in the interview process.

I think the worst one was a company that: \- did an initial HR interview with me, then asked to me come back 3 weeks later. \- sat me down for a 3 hour long "Skills Examination and Aptitude Test" (think SATs mixed with the ASVAB, "If you turn gear A, which direction will gear D turn" kind of stuff) \- never called me in for an actual Technical Skills test \- gave me an offer for a position that I didn't apply for, was not relevant to my skill set, was 15k lower than I expected for the position offered, and that I wasn't interested in.

Some of the companies I've talked to were dreadfully slow and got to the point that I simply didn't even remember talking to them when they finally responded. When they finally responded, I'd look up the last time they contacted me in a spreadsheet I kept and ask them why it took them X months to respond. The usual answers were, "we had so many applicants"/"The previous HR employee left"/"That position is no longer open but we wanted to consider you for another"/etc.

</comment><comment><USER4> This is unfortunately very common! I experienced it quite recently, when I had to make a decision between 2 jobs. A guy from a recruitment agency who I had interviewed with, made me postpone deciding for the two jobs, as he was "dead- sure" he could get me two interviews for consultancy assignments (which I was more interested in), within "early next week".

The entire week came and went, and I didn't hear from him until a few weeks later. It was a "Are you interested in position X? Oh sorry about not getting back to you last week by the way".

To me this was the most rude treatment I have ever gotten in relation to a hiring process. They persuaded me to akwardly stall the two other companies, which I did (but really shouldn't have), and then never even bothered with a phone call. I respect that people are busy, and normally I wouldn't really mind - But actively making you postpone other plans, and then not get back to you is quite over the top.

Such behaviour reflects extremely bad on the company / recruitment agency, and they are doing themselves a major disservice. I'd never even consider getting my next contract through those guys, I'm not going to recommend their positions to my dev friends nor to any potential clients that could use their services.

Another agency always got back to me, phoned or mailed with good news or bad, always accessible and courteous. They've since gotten tons of referrals from me, because they are worth it.

It's so easy to shine as a company in this particular area, since a lot of HR and recruitment people have a tendency of treating people like a disposable commodity.

</comment><comment><USER5> Unfortunately, yes. I'm not sure if it's directly related to the fact that HR is a high volume function and there aren't any objective metrics that track how gracefully non-selected candidates are degraded or if legally, it's better to say nothing at all. I also have some suspicions that many posted jobs are posted on spec, which is to say that they are 'in the pipeline', but not authorized to actually hire.

In the current job market, it's easy to get sloppy with practices like these. It is rude, but such is life.

Personally, I've had endless reschedules, interviewer no shows, long dark periods (even when the outcome has been positive) and no response (after being flown for on-site interviews). It's not specific to company size, stage, industry, location, etc. As I mentioned above, it probably has to do with a lack of managing the feedback loop of non-selected candidate satisfaction.

</comment><comment><USER6> Interesting. I'm curious what types of technology the jobs you are applying for are using. Being a ruby developer in London is much the opposite experience. People bending over backwards to contact you and more job offers than candidates. I've never had anything other than very quick feedback, and feedback 100% of the time. The worst was around a 1 month delay.

It seems as though people's courtesy levels are proportional to the demand for skills. I guess more people want to work in the Valley than in London. You also hear horror stories about the video games industry.

</comment><comment><USER7> One time this girl I was dating interviewed at the company I worked for. Even though I kept asking the hiring manager to let us know how she did, he would always say "oh yeah, let me get the feedback" and he never did. After a couple of weeks I gave up, because either he was too lazy to bother responding, or he was too afraid to break bad news, both which aren't admirable qualities.

</comment><comment><USER8> Lots of companies think that a human/humane reply to the outcome of the hiring process is another additional cost which simply needs to be automated as much as possible. The thinking borders on "if this person is not going to be hired anyway, why spend time and cost informing him/her. Probably best to just let him/her take the cue that no reply means rejection."

<comment><USER9> The other piece of the puzzle is that companies often interview based on projected or possible needs, e.g. next quarter's potential staff increase or in preparation for the acceptance of a proposal. Therefore, an actual decision about "the position" may be months off when the project is a go or may never occur should the project be cancelled.

I will add that companies also will interview people simply out of a general interest in the candidate, a relationship with the recruiter, or because they are someone's girlfriend even when there is no intent of hiring the person anytime soon.

</comment></comment><comment><USER10> Interviewing is a skill. Like any other skill, it takes time to develop and practice. You can just look at some of the ridiculous job postings on HN to realize that a lot of companies, in particular startups, are letting anyone participate in the interview process.

What you are experiencing is a mix of amateur hour and hubris.

</comment><comment><USER11> Honestly, it's just another symptom of the depersonalization in the employment market. As long as there is a surplus of qualified* workers, then there is little reason to treat people humanely.

*for values of qualified from "keyword-rich resume" and up.

</comment><comment><USER12> wait... you mean they aren't actually going to get back to me?

</comment><comment><USER13> Yes! the last interview I had with a very well known company lasted 3 months from the first mail from recruiter to his last email. It went weeks in between phone interviews to schedule the next one and often involving me to send few mails to ask for feedback. And for onsite he forgot about sending a confirmation mail and it took several mails to arrange a onsite interview which took 3-4 weeks of delay . And its not that I did poorly in interviews and they have to think twice for next interview and often my interviewers gave me their email to contact incase of any delay. And this is not one off experience there are few more companies and recruiters who doesn't respond for days until I send a mail. I do interview candidates for my team we often try to get feedback on the same day or next day so we can decide upon to hire or at least update candidate on the status.

</comment><comment><USER14> Same as it ever was.

</comment><comment><USER15> This is true with Rite Aids in Pittsburgh as well!</comment>


Hola VPN Hack Compromises MyEtherWallet Users - <AUTHOR> https://vpnpro.com/blog/hola-vpn-hack-compromises-myetherwallet-users/ <comment><USER2> What could you expect from a free service? They do whatever they can do have a lot of customers but also get a lot of money. Who doesn't want a free product, but doesn't know that their data is collected and sold. Selling data is not that bad in this situation, but losing it to hackers, that's some pretty bad stuff. Thanks for sharing it, maybe people will understand to stay away from free stuff.

</comment><comment><USER3> I'm disgusted! stay away from free apps, software, etc.! It collects loads of private information, sells for advertisers and MORE it is a target for hackers.</comment>


Package Management All the Way Down - <AUTHOR> http://dustinrcollins.com/post/59885968975/package-management-all-the-way-down

<comment><USER2> Thanks for posting this article! I totally agree that every software developer should use a package manager to manage his dependencies. Downloading binaries with a browser is totally 1995.

There are a couple more package managers I missed in the article. For example the new package manager for PHP, called composer. It is very similar to NPM from NodeJS. And there are already more than 17K projects on the central repository. You can check out the numbers here: [http://www.versioneye.com/php](http://www.versioneye.com/php)

Another really big one is Maven for Java. There are more than 80K Project available through Maven Repositories. Maven is the most complex package manager I know. But I guess that is natural for Enterprise :-) I prefer more simple package managers.

On this page you can see how many projects are available through each package manager: [http://www.versioneye.com/statistics](http://www.versioneye.com/statistics). Bower and other package managers will be integrated in the next weeks.</comment>


A Sad Day (Layoffs in Engine Yard's Rubinius team) - <AUTHOR> http://blog.fallingsnow.net/2008/11/18/a-sad-day/

<comment><USER2> I find the automatically generated "Possibly related post" amusing: "Engine Yard Closes $15 Million in Series B Financing" dated July 14, 2008.

</comment><comment><USER3> Sad, but I'm sure the laid off programmers will have very marketable skills from their experience with Rubinius.

<comment><USER4> The market for programming language implementors is not a big one, I think. Not to say they won't find jobs, being smart guys, but they may not find jobs doing something so "abstract".

</comment></comment><comment><USER5> I have a long term Ruby on Rails position where you will develop and maintain a social network application. This is with a very well known company here in the Bay Area.I know there have been layoffs so if any of you are interested please let me know!

Thanks! Nick Vella email@example.com

</comment><comment><USER6> Engine Yard is a good company full of bright people. I worry a little for them that their business model is based on how complex it is to deploy Rails applications, and with the emergency of Passenger this problem is starting to go away.

<comment><USER7> EY isn't about solving these issues for people who would have trouble otherwise. If you look at all the high profile teams hosting with them, it is clear that most of them could do it themselves or hire competent people to do it. The difference is that EY does it better and is constantly pushing the limits of scaling in the cloud - specifically relating it to Ruby.

Passenger is great, but it's not an alternative to hosting with EY.

</comment></comment><comment><USER8> Interesting. As an EY customer, this isn't something I like to hear.

Was Rubinius a sort of R&D department at EY?

<comment><AUTHOR> Rubinius is an open source project started by Evan Phoenix to build a new VM for Ruby. Engine Yard hired him (and a team) and was paying them for working on this project only. I guess they wanted the Ruby ecosystem to grow faster and build a goodwill for themselves in the community. (Or maybe the main decision maker (Ezra?) is a true blue hacker only who loves good software!)

These layoffs are not as bad a news for a customer. It's just that as a hacker or an open source adopter, it is a bit of a blow. It is like someone taking back half the lottery money you initially won. (Hell, it was still a lottery only.)

There are very few companies (especially startups) who go so far as Engine Yard does/did in actually hiring people and supporting an Open Source Project to this extent. And they still haven't completely pulled the plug off it yet. I sincerely hope Rubinius does become a stable implementation of Ruby, and all the hard work pays off well for the contributors.

Disclaimer: I don't work at Engine Yard, and am thousands of miles away from the place of action.

<comment><USER9> Thanks for understanding, luckystrike.

I was the one that asked Ezra to keep an eye on Evan and Rubinius after RubyConf 2006. We really felt that the community would benefit from an industrial strength Ruby runtime, and still feel that way today.

We hired Evan more than 6 months before we received venture funding.

When we received our series A funding, we hired the best team we could get our hands on and hoped to push Rubinius through to 1.0, which we define as no apologies MRI parity, as quickly as possible.

Things are good here at Engine Yard. We have a growing customer base, and very interesting new products in the pipeline. As with all other business in these times, sharpening the budget just makes very good sense.

We did what we felt we must do to make certain we could continue funding Rubinius through to completion.

</comment></comment></comment><comment><USER10> Is it just me, or do a lot of these layoffs have an "oh, yeah, us too, we should do layoffs, yeah!" feeling to them? Why suddenly now?

<comment><USER11> Wrong question. The right question is why everyone decided to hire so many people in the first place. Clearly, they were not essential.

<comment><USER12> Hiring only "essential" employees is often not a very intelligent strategy, if you have the funding to hire more aggressively and the opportunities to use the employees productivity.

<comment><USER13> I kind of disagree with this. I've seen many startups make poor hiring mistakes that eroded culture, slowed development, and added layers of management that were unnecessary. All of the hires, of course, were made based on the theory that the employees could be productive to the organization.

I've never once seen a company with a good hiring strategy for acquiring employees before actually needing them that worked. The fact that Digg has 60 employees is absurd. What in the hell does eBay do with 13,500 employees? A 4-person startup could rebuild all essential parts of eBay in six months.

Startups have shown over and over again that you can make great use of technology with very few people. As people are added to the team, especially in engineering departments, productivity starts to slow. There is a ton of overhead in integration, teaching and building company processes, and management.

Employees are toxic.

<comment><USER14> I'm not so sure that you could replicate eBay (or Digg) with four people. I do agree that it's harder to maintain culture as you get bigger - but that's the whole point of management.

We're trying to build a tiny little mini-eBay in a tiny little niche market, and it's taking us fucking forever to do stuff. The issue is that it's really hard to determine what's essential - and to get a new seller (and we don't ask people to leave eBay; we just want them to add Dawdle as a venue), we have to be better than eBay on all those things that particular user feels is essential.

That's why Mixx, despite being a nicer community, with all sorts of bells and whistles, and links on lots of major sites, isn't taking off ([http://siteanalytics.compete.com/mixx.com+digg.com/?metric=u...](http://siteanalytics.compete.com/mixx.com+digg.com/?metric=uv)). There's a certain je ne sais quoi about a site that determines what makes it "essential" - and it usually isn't feature equivalence.

<comment><USER13> It's hard to filter things to their essential features, but that ability is kind of what defines a good entrepreneur.

Building those essential things-- those things people absolutely need to use your service (and maybe to differentiate it)-- and then iterating upwards is the key. In six months, I think you could replicate the majority of eBay's functionality with four people.

The things you're discussing are mostly user acquisition problems. That problem is not solved by hiring more engineers.</comment></comment></comment></comment></comment></comment>


Effect of Intel's CPU power management while benchmarking a Haskell server - <AUTHOR> https://hasura.io/blog/decreasing-latency-noise-and-maximizing-performance-during-end-to-end-benchmarking/ <comment><USER2> Two things: use dedicated server hardware instead of VPS or even hosted solutions. And be aware of the error bars and tweaking of consumer hardware.

You can buy editions of consumer hardware with better performance for overclocking, these generally come at a slightly higher clock and were selected to be able to handle this clock. You can use the overclocking settings in the boot menu to restrict the performance and the slimmer error bars on the selected edition of cpus to ensure a slimmer error bar on your own research. (Might differ per model and build if there are actual hardware differences [https://www.windowscentral.com/amd-ryzen-which-processor- bes...](https://www.windowscentral.com/amd-ryzen-which-processor-best-you) ).

On servers you have a wider range of options including options for fixed power consumption and performance to ensure longer lifetimes. Seeing that most of your software will be running on servers its the metric which you should care about rather than a metric gained from benchmarking on consumer hardware. You also have much stricter error bars on server hardware.

TL;DR: Be sure to look into the error bars on performance metrics for your cpu.</comment>


Patient Zero of the selfie age: Why JenniCam abandoned her digital life - <AUTHOR> http://www.news.com.au/technology/online/patient-zero-of-the-selfie-age-why-jennicam-abandoned-her-digital-life/story-fnjwnhzf-1227304870372

<comment><USER2> One interesting aspect of whatever this is a part of (sharing, privacy, digital culture, take you pick) is how strong and emotionally charged people opinions and theories are.

I think it's like asking an 18th century village dweller about urban life and its implications. Maybe that's not the right analogy. Maybe it's like asking a clan member about national identity or maybe it's like asking a scribe about university life in 2015, with parties and labs and counter culture thrown into the mix. Can you imagine walking by someone and not acknowledging that you just walked by each other? Barely noticing to the point that if you walk by each other tomorrow you won't remember them? What kind of people are these? Walking by someone without acknowledging them certainly _is_ counter to human nature. It's against how people behaved since before people where people. It's counter to behavioral patterns we share with other primates.

What I mean is that all the "laws of nature" that make up the environment for our lives are thrown up in the air and rearranged as the world we live in becomes digital. How public something is, how permanent. Context. Feedback. Norms. Rules. Consequences. Anonymity. Empathy. It all changes.

How do you feel about this? What is your perspective on privacy in the digital world? What do you think of your boss seeing you twitter jokes? really?

How can we expect ourselves to really have a mature, realistic perspective on this? Imagine that no one has died in 500 years. We have trillions of digital and physical copies of ourselves that merge and reduplicate every 7 days. We an colonize worlds by creating copies of them here and copies of us there. We occasionally spend millennia examining fleeting moments of our lives and can experience and re experience every sequence of moments infinitely and uniquely each time. How do you feel about the social implications of this world. Does John Locke still apply? Demosthenes?

Im being purposely cartoonish and over the top (can you tell?). The point I think I'm trying to make is that looking at everything that's changing and where we think we're headed within our lifetimes is tricky to process. It's impossible. We can't have a clear perspective on these issues.

<comment><USER3> _Walking by someone without acknowledging them certainly is counter to human nature._

I think that is very much a function of your local culture, not some core "human nature". Here (Sweden) I regularly walk by people without acknowledging them, and that's in the office. Out in public, I would probably be considered mildly strange if I started acknowledging strangers.

<comment><USER2> If you had just come back from an overnight fishing trip and passed someone who lived 2 miles from you in 752 AD and didn't acknowledge them, they would probably conclude you were being possessed by some belligerent spirit. How are gonna not acknowledge someone after spending a winter huddled together in a barn eating salted fish and trying not to freeze to death.

If you happened across a stranger without at least thumbing your axe and giving him a good look it would also be very strange. Stranger = Danger. Strangers = Invasion.

The whole concept of people/strangers as a benign part of the background probably originates with cities, or whatever the earliest dense populations were.

What I am trying to say is that we're used to it now and its normal, but before a certain point it would have been extremely alien. The fact that you and some of your fiends can visit Lindisfarne without the locals heading for the hills is the remarkable thing, from a long enough perspective.

<comment><USER4> But none of that makes it "human nature." It's still cultural.

<comment><USER2> Are we talking semantically (what is the definition of human nature?) or something else?

IE If we find that living within a family group is how humans lived from pre- sapiens times until recent times, does that "prove" that something is human nature (it's how we evolved to behave), isn't human nature (we don't behave that way now) or is that tangental (it proves nothing)?

For the purposes of the thread, I don't think it matters much if we disagree about a technicality. I just wanted to make an analogy about the future being very alien to inhabitants of the present to the point that the ways it will be different and how we'll feel about that will be hard to conceive. Walking through a group of strangers without looking up from your phone (or iStone, if you're a caveman) would have been as weird as walking through a pack of hyenas. Insane.

If a caveman had tried to imagine how he'd feel about that world, he'd probably imagine feeling terrified all the time. Do you play with everyone's kids or ignore them too. Do you have sex with everyone? What happens if you're eating a sandwich? They wouldn't even know which questions are relevant to imagining how they'd feel.

I'm making the case that self culture (JennicCam, Facebook, JustinTV) is the very start of something which is so alien to us that it's hard to address in a non ridiculous way.

</comment></comment></comment></comment></comment><comment><USER5> Reply All, an excellent internet podcast did an episode about jennicam. Pretty interesting stuff.

[http://gimletmedia.com/episode/5-the- jennicam/](http://gimletmedia.com/episode/5-the-jennicam/)

<comment><USER6> The episode is explicitly mentioned in the article.

Also, just curious, is there any other kind of podcast besides an internet one?

<comment><USER7> I know you're being facetious and poking fun at the redundancy of the phrase "Internet podcast" but now you have me thinking about how cool an offline podcast might be.

Maybe it would be distributed via physical dead drops on USB sticks, or pirate wi-fi networks beamed from disposable drones flown by courageous freedom fighters, or maybe it would be distributed via IP over avian carrier: [http://tools.ietf.org/html/rfc1149](http://tools.ietf.org/html/rfc1149)

(In all seriousness, my very loose understanding is that in a lot of countries without robust Internet infrastructure, music is often traded directly from phone to phone. It's possible that podcasts or spoken-word messages are traded this way as well...)

<comment><USER8> _> my very loose understanding is that in a lot of countries without robust Internet infrastructure, music is often traded directly from phone to phone._

You are indeed correct.

[https://sahelsounds.bandcamp.com/album/music-from-saharan- ce...](https://sahelsounds.bandcamp.com/album/music-from-saharan-cellphones)

Africa has had a spoken-word radio radio culture for a long time AFAIK.

</comment></comment></comment></comment><comment><USER9> I've long suspected that the oversharing life is at most a phase and/or a personality trait. Not one widely shared.

Jenny is only one of many early online personas (of varying levels of sharing) who's largely gone silent.

<comment><USER8> Here's the classic "I'm leaving the internet, its bad for me" essay, from 1994: [http://folksonomy.co/?permalink=2299](http://folksonomy.co/?permalink=2299)

As you can see, absolutely nothing has changed.

<comment><USER9> Starting with shunning conventional capitalization....

</comment></comment></comment><comment><USER10> Also yesterday [https://news.ycombinator.com/item?id=9374397](https://news.ycombinator.com/item?id=9374397)

<comment><USER8> Indeed, this article is blogspam for the digg article/podcast, believe it or not.

<comment><USER11> Interesting. How did you draw this conclusion? I thought the article was one of the better ones from digg.

<comment><USER8> Sorry, what I mean here is that this news article took the story from digg. Which is something of a role reversal considering digg's past as an aggregator.

</comment></comment></comment></comment><comment><USER12> I see no mention of Kibo, who was an early (Usenet) presence projection who also (2005ish) eventually pretty much disappeared. I wonder if it's the fame or the sustained effort after fame has peaked. It seems exhausting.

</comment><comment><USER13> If this interests you see the documentary We Live In Public. It's also about early life streaming: [http://www.imdb.com/title/tt0498329/](http://www.imdb.com/title/tt0498329/)

</comment><comment><USER14> One of the first selfie guys Jeff Harris posted a daily selfie for nearly 14 years, then dropped off the face of earth. Toward the end he showed a gruesome cancer operation, so I presume he may have passed. The web doesnt reveal his fate.

</comment><comment><USER15> i remember when #hack on efnet hacked her cam feed, i dont recall laughing so hard at antics.</comment>


Dell's list of why to buy one with Ubuntu - <AUTHOR> http://www.dell.com/content/topics/segtopic.aspx/ubuntu?c=us&cs=19&l=en&s=dhs&~ck=anavml

<comment><USER2> Surprised Dell is so enthusiastic as some of the claims aren't quite the whole truth... Like stating that openoffice is not available in windows, or that MS Office formats are fully supported.

Regardless, I get more and more respect for Dell as they continue to embrace MS alternatives.

<comment><USER3> Yeah, I noticed that too... apparently, Dell's not counting on their Windows customers being able to find OpenOffice or GIMP on their own.

If I were them, I would have also mentioned "easy, automatic updates of your installed programs".

<comment><USER4> The layout is a bit ambiguous, but this chart may fall under reason #1, whose description contains the text "comes pre-loaded with". Perhaps Dell is claiming that this functionality is available out of the box.

In the chart, Dell includes "Microsoft Office" under the Windows column, but you can indeed order a Dell with MS Office preloaded, so that would be fair.

</comment></comment></comment><comment><USER5> Their list isn't compelling. Especially for a mainstream consumer. The list basically argues that Ubuntu doesn't suck. Most of the topics try to position Ubuntu as comparable to Windows. Being comparable isn't going to motivate a consumer to switch. Especially when they have been using Windows for xx years.

Too much selling features, not enough selling benefits.

<comment><USER6> It's free. When that's your starting point, "it doesn't suck" is pretty compelling.

<comment><USER7> But I don't see them calling that out very well.

</comment></comment></comment><comment><USER8> The validity (or compellingness) of that list aside, the copywriting is atrocious. It makes me feel like Dell (or at least their marketing department) is only paying lip service to Linux - I could never imagine that quality of writing showing up anywhere else in their advertising.

</comment><comment><USER9> Is Microsoft still subsidizing windows to meet linux system price points?

I bought an Ubuntu loaded HPMini9 and saved about one hundred dollars over the windows version. That's the real value in my opinion. Not just at the sale but the investment in linux familiarity means a free(as in beer) alternative becomes usable going into the future.

My main PC has seen 2 windows versions so far, both paid for.

<comment><USER10> The problem is a lot of companies pay the manufacturers like Dell, HP to load on software. Google have done this, Real, and lots of less scrupulous players. So it may actually make the computer cheaper with Windows than Linux.

Of course, another reason to get Linux, unless you intend to re-install windows. This does suck if you want to not give any money to Microsoft.

I am pretty sure Microsoft don't charge $100 for the netbook version of XP.

<comment><USER11> I believe Microsoft charges OEMs $15 for XP and $50 for whichever edition of 7 which goes on netbooks. Though it wouldn't supprise me if larger vendors had a little negotiation room. Also, security companies like Mcaffee and Symatec also pay OEMs a lot to bundle their trials.

</comment></comment></comment><comment><USER12> The Games checkbox was a little misleading. The vast majority of the types of games a typical Windows PC "Joe Blow" kind of user expects to play are Windows-only and/or don't run (or run well anyway) on Linux. Some games, yes. And Flash or browser-based games, sure.

<comment><USER13> PC games will run with wine, but that isn't exactly out of the box like the check list presents.

<comment><USER7> On ubuntu this is getting really much easier than it used to.

</comment></comment></comment><comment><USER14> > The vast majority of viruses and spyware written by hackers are not designed > to target and attack Linux.

No wonder people think "hacker" is a bad thing.

</comment><comment><USER15> _Ubuntu connects you to the Internet in seconds_

Seconds from when? From a few seconds before you connect to the Internet? I'm impressed.

<comment><USER16> I got a new laptop with built-in 3G modem and Ubuntu was able to connect me to the Internet without me needing to load any extra drivers, which wouldn't be the case with Windows or OSX.

<comment><USER17> It evolved a lot recently.

I just installed Ubuntu Lucid, and it detected both my built-in Wifi card and my 3G modem.

Granted ... I had to go System -> Administration -> Hardware Drivers to have the drivers installed for both (as both are considered proprietary because of firmware or some shit). But it was a painless process.

</comment></comment></comment><comment><USER18> I think they meant "included free" instead of "included fee" for the photo editing line on the last graphic, no?

</comment><comment><USER19> "Depending upon the Dell computer your purchase, boot times can be around 30 seconds!"

I'm always slightly embarrassed to read exclamations like this knowing it'll wind up as the laughing stock of Reddit/HN in ten years' time.

</comment><comment><USER20> Hmm, arguing GNU/Linux is better than Windows on security is passé. Torvalds too often dismisses security bugs.

<comment><USER2> Any os that has a software repository(with sources) is going to be inherently more secure. If novice users only get their software from APT then they will be eliminating a whole slew of exploits that could infect their computer.

In this regard, Ubuntu is lightyears more secure than Windows.

<comment><USER21> well, you should say, any os with a _responsibly_ _managed_ software repository ...

</comment></comment></comment><comment><USER22> I'm as big a fan of Ubuntu as anyone, and I'm glad to see Dell supporting a MS alternative. However, the absence of a fully supported Linux version of iTunes prevents me from adopting Ubuntu as my primary operating system.

<comment><USER23> Run a VM with Windows just for iTunes.

<comment><USER24> I used to do that, but I think now the better recommendation is just to ditch Apple. My HTC Incredible is a great phone, and I love Amarok.

<comment><USER25> Having just switched from Amarok 1.x to 2.x, I'm underwhelmed. But as a linux user I have never used, nor needed itunes.</comment></comment></comment></comment>


Ask HN: UK SIM card - <AUTHOR>

I'm headed to the London in July for my honeymoon. My fiancé has a U.S. Verizon iPhone 6 and I have a Verizon iPhone 6 plus. We're looking at all the different plans to get a local SIM card for emergencies and if we get seperated. I'm hoping to get some expert advice on the plans/providers. And I've read both phones support the UK gsm network but I'm hoping that someone can confirm. Thanks! <comment><USER2> Check out [http://www.datago.co/](http://www.datago.co/) \- they provide local SIMs for travellers wanting to avoid roaming charges etc. I know the founder, & he's proved very helpful to me in the past when I had questions about such matters. I suspect that if you get in touch they can assist with compatibility and plan issues.</comment>