Ask HN: I've constantly changed companies. Would I be considered unreliable? - <AUTHOR> From the beginning of my career in 2007, I have left jobs once I got comfortable to take challenging ones. 2.5 years is the longest I've worked, in my first job. After that all jobs I took I left within 1.5 years. Once I get into the company and get hold of everything, I find it a little boring and have changed company to get more challenging ones. Does this mean I am unreliable and my career is going in wrong direction?
UPDATE(explanation on why I left):
I left first company because there were no signs or plans of upgrading to new technologies. After 2.5 yrs all we were doing was changes and bug fixes. I had to upgrade myself So went to gain experience in large company with some process in place and lot of good programmers.
I left that company after working for 1.5 yrs to open a company with a friend as we found an investor. However the investor said he was short on budget and never gave us full amount. So I did freelancing for 2 years
Then I moved out of country and took a new job. It was all good. I wanted to try if Research career is good for me So left the company in after working 10 months to pursue research career.
However I found research isn't for me as it presented lot of challenge financially.
Then I joined a big name company before 2 months. I had long term plans but found out the IT department is just kind of support and even to make simple changes decisions take weeks. On top of that I got an offer to be first in house employee of a company where I am expected to do everything now and manage as company grows.
Suddenly I realized I have changed 4 companies in 6 yrs. That made me a bit worried. <comment><USER4> I know someone who has followed a career path of frequent job changes (always in the same metropolitan area, mine, the Twin Cities of Minnesota) in computer-related work and who has always managed to make each job change a net raise. He is making substantially more money now than many of his contemporaries who stayed at the same company for years, and has leaped over some of those persons for more responsible roles with more challenge (what you desire) and a better pay-and-lifestyle balance than other people with similar technical skills in the same company have. In other words, it depends. If you make sure to trade up every time you trade, you have set up a ratchet that should make your career better over time.

<comment><USER5> The Twin Cities is an interesting environment for that. It's so enterprise- heavy here (imho we're as much a tech city as Silicon Valley, just in a different expression), there are lots of people who stick to the same company for 10, 20 years or more.

As someone who has job-hopped a lot in this environment, the worst thing about it is tech environments where the leadership doesn't keep up with trends even on an awareness level. They just stick with the legacy stack they've been supporting for years, which can be incredibly wasteful and limiting. Their software is bad, but it's all they've known for so long that they have no clue how much better things can be. And then the contractors and other floaters they bring through are appalled, frustrated, and often flip quickly to the next job in hopes of less "maturity". Sigh.

<comment><USER6> Mind if I ask which expression? I liked the twin cities the one time I visited, but I've never heard of it described as a tech city.

<comment><USER5> Enterprise. There are more Fortune 500 headquarters in the Twin Cities per capita than anywhere else in the world - more than New York, more than the Bay area, more than London or Tokyo. Working in IT in the Twin Cities generally means working for the likes of Target, United Healthcare, Best Buy, 3M, Carlson Wagonlit, Monsanto, and other tremendously huge companies.

Last fall, I was in Silicon Valley at an enterprise meetup, and was talking to people there about a sense of scale. I observed that if you saw a startup generating $50M in revenue, you'd think they were very successful. I've worked on three different projects larger than that (some private, some government), and they were just side businesses to bigger enterprises.

</comment></comment></comment></comment><comment><USER7> As a hiring manager, I look for employees who have stayed at previous jobs at least two years. If you switched a few, that is fine, but if your average is around 1.5 years, then that seems like a problem.

For most companies with complex environments, it might take 6 to 8 months to fully get you up to speed. Why should I put that into you only to have to do it again? Perhaps you're looking for jobs in the wrong part of tech, or corporate tech isn't for you? Have you considered trying to found a startup, one that you yourself are directly vested in? Perhaps that is your best bet for the future.

<comment><USER8> I find this logic itself unreliable, because it presumes that all opportunities are created equal. In a number of cases I've stayed less than a year at a place where I really could see what was wrong a couple weeks in, because you get several offers, and once you choose one, everyone else evaporates.

I've certainly had to put my shoulder into getting past this, but it's shocking how common it is for basically any hiring manager to assume that the behavior of past hiring managers was correct.

In this way, hiring managers can be replaced by LinkedIn.

Also, keep in mind that your recruiters are contacting us when we're happily employed, and that at a recent meetup in San Francisco, I'm told someone raised their hand to say, "We're hiring", to a room of booming laughter. ;)

UPDATE:

I was thinking about this, something I think about a lot, and certainly one could say, "But how do you end up with several bad managers in a row?"

I think that once you have a resume that is off the beaten path at all - <USER2> mine was almost 10y off the beaten path before my recent spate of job hopping - it's tough to get hired by anyone except the desperate, who can't fill their position. You can learn and grow in these positions for a few months, but you look around and see stagnation in people who stay longer. I also worked for a number of managers who had never been a manager before, for a CTO who hired someone 3 months a year to do a job that he otherwise insisted on doing (badly), and for someone with an MIS degree that often talked about having been taught to intentionally foster dishonest and manipulative relationships with his staff.

I'm hoping the new gig sticks for a while, but you have to give respect to someone who keeps trying. Otherwise, I will say, in the past six years I've interviewed at over 200 places and worked at aybe six, and over 100 of those companies were the same bush league situation, and usually they had terrible diversity, and even though I'm a straight cis white male, the "bro" factor was way, WAY too high for me.

<comment><USER9> > I find this logic itself unreliable, because it presumes that all > opportunities are created equal.

Good for you, but I'm with SEJeff on this one. Like him, we invest 6 to 8 months of training to get an employee productive, and job hoppers cost a lot of money, and contribute little. The ROI is typically not very good.

We make no assumptions on the part of other hiring managers, and are interested to hear why you job-hopped, but it would be an issue to consider carefully for us.

</comment></comment></comment><comment><USER10> Don't worry. This stuff is ultimately judged by the biases of whoever is reading your CV, and people vary a lot.

If an employer is particularly worried about employee staying for extended periods, your record will work against you and you won't get that job, all else equal. But, that's not as bad as it sounds. Some employers value people with Math Degrees. Some prefer PHDs. Some don't. Some employers don't like autodidacts. etc. A 1.5 year average employment period is in that category of preferences. Different employers will treat it differently. Same applies to your time as a freelancer.

Long term, 1-2 year stints early in your career is not usually seen as indicative of anything later on. It's common. So unless it is not causing you problems now, it probably won't later on.

I don't know how it looks when you get to 10X1.5 year jobs though. It would certainly make you an unusual candidate. I've never hired someone with that much experience so never seen these CVs.

The real "problem" cases are people with multiple < 1 year jobs. If your last 3 jobs were under one year, most employers will see that as _" The last 3 people that hired him regretted it."_ That doesn't sound like your record though so like I said, don't worry.

Also, just building your CV your whole life sounds like a drag. Staying at a job you dislike for years just to change your CV image is like taking a job you don't want or doing a degree you hate for your CV, it's unattractive as a lifestyle. If you like changing jobs, do it.

</comment><comment><USER11> As someone who as doubled our eng team in the past four months and plans on doubling it again in the next 6, here's my view:

I use the term jumpy. It is a negative signal, but not a killer signal. You'll have to make up for that with numerous other positive signals, such a extreme technical competence, culture fit, evidence of shipping, etc.

I probably wouldn't point it out on a resume or whatnot, but when asked about it, be honest. Also consider being more picky about the jobs you take. Try to stick and your next place 2-3 years or switch to contracting.

<comment><USER12> _> consider being more picky about the jobs you take._

This. It looks like he didn't understand what he was getting himself into, in a number of occasions (including academia and "financial difficulties" \-- ever seen anyone getting rich while working as university researcher? Me neither). Maybe he should just take some time to find a job he's really into, rather than jumping on the first successful offer and regret it 6 months later.

</comment></comment><comment><USER13> As someone that has run a company (several hundred employees) and hired a lot of people, I would say "yes". If you were someone I was interested in, I would certainly ask you about your job switching. If you told me you got bored and moved on, I'd be very reluctant to invest time in you, only to have you leave. If you're constantly bored, maybe you're looking for the wrong jobs.

</comment><comment><USER14> If you are not changing jobs at least every three years, you are not being paid enough.

Changing jobs every 1-2 years just means you are ambitious. Keep it up! You might find your previous employers will hire you back at a contractor rate remotely in the future.

<comment><USER15> It's great if you're ambitious for raises, not so much if you're a ladder- climber and want career growth.

While you might be able to get a PAY increase by switching jobs, it's very unusual to get a job/responsibility promotion by switching jobs. If you're a Senior Software Engineer at Company X, you're going to be a Senior Software Engineer at Company Y. Nobody is going to hire you as Director of Software Engineering since you've never managed people before. However if you stay at Company X, maybe in five or ten years you'll gain their trust and get to start managing and working your way up the ladder...

Also, you can't just job hop infinitely and count on the same % raises each time you do it. Your salary will hit a ceiling. My first job hop was probably a 33% increase. Fifteen years later, my most recent one was about ~0.5%.

If I had a chance to do it all over again, I would have picked a solid company as my first employer and stayed with them as long as possible. I have a friend who's worked at Intel their ENTIRE career (will probably die there LOL) and is doing really well.

<comment><USER16> Well management is different. Its very easy for a developer to hop from a junior position to a mid level to senior to lead if they have the chops both technically and personality-wise.

<comment><USER17> Seconding this. I went from "HTML Programmer" to "Lead Software Engineer" (however briefly) in less than three years by changing jobs three times. It wasn't always a voluntary change, but the title improved with each new job.

<comment><USER18> Hi, can you elaborate more about your carreer path. I'm currently in a simmiliar position.

</comment></comment></comment></comment></comment><comment><USER19> It's absolutely normal to feel bored with a project around a second year of it. Consider finding an environment where you can switch projects while staying within the company. Most large corporations would allow you to do that, at a cost of being probably less flexible with toolchain and decision making process.

</comment><comment><USER20> You've spent the first several years of your career figuring out what you want. That's ok. But I would be worried about your time at BigCo, because it seems like you didn't ask the right questions and understand the environment before you signed on. That would make me wonder whether you understand how my team works well enough to know that it's what you want. Based on your history, you've now been in just about every situation out there, and are old enough that you should know what you want and how to ask the right questions during interviews. So at this point I'm expecting that you're going to commit to something long enough to see it through to completion, and I'm going to be asking you tough questions along those lines, mainly to be sure that you know what we're doing, that you're excited about it, and that you intend to finish. If I did decide to hire you, I would probably be looking to structure your compensation around retention through the completion of whatever project I'm hiring for. That said, there are positions where the ramp time is very low and I would basically assume you're like a short-term contractor, and for those positions I wouldn't care. If you find one like that, it's a low-risk opportunity for both sides. The drawback for you is that those positions don't always pay well and are often the first to be eliminated when business slows.

I guess that highlights for me the biggest problem: you've talked a little about what you've done, but nothing about what you want to do. That kinda matters. If you want to be an engineer, you need to prove that you can stick with something from concept to at least the first upgrade cycle (you'll learn more from an upgrade cycle than you will from shipping ten products and then walking away from them each time). That might be a year or it might be ten. If you want to do operations, you need to complete projects and then stick around long enough to learn from what you did. An in any case, hiring managers will want to see that you've shipped something, because that's the only way to be sure that your work was good enough to use. Repeated departure well before shipping (or completing an internal project, etc.) is a big red flag, much moreso than the length of your tenure. And not staying in one place long enough to learn from past mistakes greatly reduces your value. Again, it's not the calendar time, it's what you did and learned.

<comment><AUTHOR> Thank you so much for taking time to write detailed reply.

I feel I have learned a lot changing companies - both technical as well as social skills. I would definitely want to be developing solutions. I have no problem doing day to day jobs as long as I'm am important part of the business. However, if I feel neglected then I ask questions on what would be the future like and what works are coming. In many occasions owners have no answers.

On top of that I have tried a lot of things now and am pretty sure I want to be a programmer/developer/engineer/whatever whose contribution is valued.

</comment></comment><comment><USER21> I lasted about 1.5 years each at my first 3 jobs, then I moved to a company I've been at for 4 years. No one questioned anything at any job about past employment lengths. I'm starting to think I should have moved on long ago.

> I had long term plans but found out the IT department is just kind of > support and even to make simple changes decisions take weeks. On top of that > I got an offer to be first in house employee of a company where I am > expected to do everything now and manage as company grows.

No one would want that kind of job, changes taking weeks. They should have made that clear, that they basically do all maintenance. The new job offer sounds more challenging and full of opportunities. Staying at your current job sounds like a really bad idea.

Just be aware and look for more opportunities to do interesting projects at your new place.

<comment><AUTHOR> New place seems interesting as well as challenging. Provided that I'm close to 30 but not above I'm taking this chance. After all, it'll be another opportunity to learn even if I fail.

</comment></comment><comment><USER22> > Suddenly I realized I have changed 4 companies in 6 yrs. That made me a bit > worried.

4 companies in 6 years is nothing. I would be more wary of someone switching job every 2/3 months. So, more than 6 times the number of companies you have been working for. You are fine.

</comment><comment><USER23> I've worked at 4 companies in three years. Any company worth working for doesn't give a shit and they'll recognize your abilities.

</comment><comment><USER24> > Does this mean I am unreliable and my career is going in wrong direction?

Self-awareness is good step forward in managing your career. Be upfront with potential employers on what you've learned so far. And be prepared to address concerns they may have over your decision-quality, stick-to-itiveness, and maturity.

Relative to your next move(s) suggest that you create a scorecard-- get clear about the types of environments & work you find appealing and intellectually challenging. You must probe for those things as you explore new opportunities. Put some serious thought into evaluating if the next job is a strong match.

</comment><comment><USER25> The problem with switching often is that there are good reasons to do it, and bad reasons forcing you to do it... That is, many people that read N books and look like experts at a first glance, but _can 't actually code_ tend to switch work very often since after some time they are "uncovered" and move away. There are other good reasons to switch often: being exposed to new technologies, getting a raise, and so forth, the risk is to be confused for a frequent changer for the reason she/he can't actually code.

</comment><comment><USER26> I'm like you, I changed many times. I get bored easily. I think I found what is right for me, maybe it can help you. I now work for a big IT consulting firm on projects averaging 3-5 months.

<comment><USER27> This is a great path if you like starting new projects from scratch every few months. Also advertising agencies do this, although it may not be as interesting as far as technical programming challenges.

</comment></comment><comment><USER28> 10 years ago I was a bit bored in my contract business. As I'm starting yet another new project, I'm talking with the main contact person who happens to be an attorney, and he said something rather interesting. He's been doing what he's been doing for a long time and he's very good at his job, but it's also a bit bland. I think he called it bread and butter work. He doesn't hate it at all, it's just not that interesting, but it pays the bills and, again, he's very good at it. Yet he thinks about retiring. But every once in a while, every 2-3 years, an interesting project (case) comes along that gets him excited and keeps him in the game.

My take away was: it sounds very romantic to be in love with your job, always, but isn't very realistic. Being good at your job is realistic, but many people aren't good at their job. If you are, you stand out and can command a good salary, working hours, benefits, whatever is important to you. And every once in a while you should try to get an interesting project to keep things fresh.

So who's responsibility is it to get that occasional interesting project? I'd loosely say that's 50/50 split between employee and employer. You can't just expect to get spoon fed interesting projects. You have to look for them, and the company has to be in a relevant position to support that.

If you like research, if you good at ramping up and learning new skills, that can be a good way of acquiring the occasional interesting project, while getting better paid for it.

</comment><comment><USER29> Its only a problem if it causes you problems. You shouldnt make decisions about which jobs to stay at or leave because you have some perceived correlation between length at a job and reliability.

This is one of those classic cases where the culutural pressures and beliefs are wrong and ripe for ignoring. Especially for an engineer/hacker its important to second guess your societal perceptions and make decisions on more substantial foundations.

</comment><comment><USER30> It's like the old real estate mantra goes: "It's all about location, location, location."

There will be some metros where no one cares; they're so short-handed and the tech market so hot, they won't care and will hire you. Other metros which are more sedate, with few companies and therefore over-saturated with techs and H1Bs will look at you and laugh.

</comment><comment><USER31> I would look at how long someone needs to work in that industry to meaningfully complete a project or two. In mine, it is about 2 years. If they consistently have below this, I would have to question the depth of contributions to the projects they worked on. New grads I do give a little leeway as they are just figuring out what they want to do.

</comment><comment><USER32> I definitively would hire someone who has experienced different kind of codebases, business styles and products. Think about it.

</comment><comment><USER33> Sounds like you might enjoy freelancing more? Not sure how it works in the RoW - but in the UK you look for contracts, when you find one setup your Ltd Co and engage an accountant - and you're set --- with the added bonus that your will stick with you employer (yourself) for many years.

<comment><AUTHOR> Freelancing was challenging and fun but I'd lean more towards permanent roles where I have more knowledge of business while developing solutions.

</comment></comment><comment><USER34> Try to show proof that the companys want to keep you- and have a very good reason - like i get bored easily.

For companys the questions is do you reach the break even- the point where the investment that they did by hire and assigning somebody too you, to introduce you to your tools and internal operations. Everything else is rather benefical.

Cooperations outsource codejobs to strangers today. And they do well with it. Never heard a hiring manager complain about the company beeing "a problem case" when it came to investments in hirde guns.

You might not hit it off with your collagues though. Many want the safety. If somebody appears who represents the opposite lifestyle, and shows everyone that life can be lived different- which theire manager might use for pressure once you are gone - things can get a little frosty.

<comment><USER35> Do not say you get bored easily. That is a huge red flag to potential employers.

</comment></comment><comment><USER36> As a contractor/freelancer, you may very well switch every 6 months. Nobody says anything about that. It is an absolutely normal thing to do. Just say that you had achieved the goal of the short-term contract for which you had been hired. In a sense, it is probably true anyway.

<comment><USER11> Please don't misrepresent a 6 month span of a full time gig as a short term contract. No one ever expects a FT employee to stay only 6 mos.

</comment></comment><comment><USER37> I recommend looking into a large company that lets you move around (specifically let me recommend Boeing). I have changed groups several times and there is very little stigma assuming you can get yourself up to speed in a reasonable time frame and you're not, "leaving behind dead bodies".

Consider reading a book called, "The First 90 Days: Critical Success Strategies for New Leaders at All Levels". It's contents helped me gear my interviews towards how and when I would add value to a new group. I believe that is the key to changing jobs - average time to positive ROI from the new group's perspective, not average time spent in a group.

You have some great recommendations in this thread, so thank you for asking!

</comment><comment><USER38> It's not that you have changed jobs, it's how and why you have done it. From your description you seem to be directionless, impatient, and prone to experimenting over informing yourself properly. Yeah I would definitely consider you 'unreliable'.

</comment><comment><USER39> It sounds to me like becoming a contractor might perhaps suit you better - <USER3> that a possibility where you are based? On the other hand, contract roles often involve the kind of problems you wouldn't necessarily find "challenging".

<comment><AUTHOR> Contracting would be nice but wouldn't it be stressful looking for work every time project is finished?

</comment></comment><comment><USER40> No, it's common. Many developers focus on purely contract or project work, so 4 companies in one year isn't uncommon.

You have an increased validation in your hirability, as four different companies have thought you were good enough to give an offer to.

</comment><comment><USER41> Like others have said, the important thing is do you just bore easily?

You have mostly pretty good reasons for the switches. The possible exception is the research career move ... didn't you know going in how little money you'd be making? Sounds a little flaky to give up on it for that reason. If I were interviewing you, I'd drill down on that one.

The trick is, would I even interview you or would I see the resume and think, hmm, I don't know? I try to be very thoughtful about that but I usually get a lot of applicants ... I think you should try to keep this new position for a while.

<comment><USER42> If he keeps the current position for 2 years or for 4 years, does it change dramatically the view you would have of his CV? I guess staying there for 10 years would have a sensible impact on how the resume would look like, I'm just trying to calibrate your perception as an interviewer.

<comment><USER41> Sometimes I've gotten 200 applications for a job posting. Not for a long time, but in 2000-2001, after the Internet crash, it was ugly. You had no choice but to filter a lot. You did your best, knowing that you were missing some good candidates. But any little flag was enough to push you into the "no" or the "maybe" pile.

Even when I've gotten relatively few applicants, it's still time-consuming to bring people in. I wouldn't say that a bunch of short-term jobs would rule out anybody on its own, but I would still like to see something that shows you had an impact during your short time. And like others have said, there's a lot of value in seeing big projects through from start to finish, so there might be positions where I'd be like, sorry, I need to see that you've done that before I hire you for this job.

It's not the years, really, but what you've done in the amount of time you had. Like I said, the ones stated are mostly all good reasons for leaving a job. In an interview I woudld probably find them convincing. I also think it would be _great_ to be able to say, for at least one job, "I stuck this one out and did everything I could, despite the odds stacked against it, because I really wanted to see something through."

To you question specifically, I think having at least one job with a longer tenure would be a big improvement to the first-impression reaction most hiring managers would have to the resume.

<comment><USER42> Thanks a lot for your answer, I found it really useful.

</comment></comment></comment></comment><comment><USER43> Finding and hiring the right person is very time consuming, training up that person is very timing consuming, and when someone leaves, training someone to take over their responsibilities is very time consuming. Combining all of those these together, each time a person leaves a company it incurs a cost of about 6 months of their salary. I'd rather pay more for someone that's going to stick around then hire people who are likely going to get bored and leave. Many companies try to figure out way to reduce turnover - it's very expensive.

<comment><AUTHOR> But Once hired they are put into a corner and company doesn't even answer their questions on future, career etc. I have seen a colleague at current office. She has been there for more than 5 years and believe it or not she doesn't even know what an ORM is. She is good at sql queries and she is busy all day with support work. If the company decides to let her go, It'll be very hard for her to get a job. That is what companies/founders/bosses don't care about and that's why people who worry about their time of life they're spending in the company to take some actions.

It's not all about company's money. It's about people's life.

</comment></comment><comment><USER44> Startups aside I'm about 1.5 years on average and the massive finance company I'm at right now only asked about my entrepreneur itch and whether I'll be tempted to jump back in..

</comment><comment><USER9> As an employer, I would have concerns about your job hopping, and it would certainly be discussed in an interview. I would want to know why you job-hop. sometimes, life gets in the way of your plans, so it wouldn't be a determining factor in deciding to interview you. In your case, after your explanation, we'd discuss internally to see if we could offer you enough of a challenge and keep things interesting for you.

</comment><comment><USER45> It depends on the type of work you do and the size of the projects you work on.

If you work on small projects with a 1 month ramp up time then it's not a big deal to leave after a year.

On the other hand I'm currently working on a million+ loc application and the typical ramp up time for a good dev is 6 months. I'm not going to hire somebody who will probably be gone in a year.

</comment><comment><USER46> It's definitely a negative signal for me if someone has moved around a lot within the last few years.

It's not so much a problem for a senior engineer who can onboard relatively quickly.

But for junior engineers, I would be a lot more hesitant because the onboarding that the company invests in you is lost if there's a high chance you'll move on a few months later.

</comment><comment><USER47> Just to be on the safe side, I would stay at least 3 years on a job. 2-3 years is what recruiters/hr people look in CV. If it is less for too many jobs, then they assume that you are a job hopper.

So in your case, yes I would say that 1,5 years is controversial. For 6 years you should have changed 2 jobs (maybe 3 with a good explanation)

</comment><comment><USER48> Unfortunately, yes. Your recruiter and/or hiring manager are definitely going to ask you this and make sure you have a ready-made answer for this question which doesn't involve "boring".

<comment><USER49> Why can't it involve "boring"?

<comment><USER38> 1 - The fact that you were bored does not mean the place was boring. Your ability to make this distinction reflects A LOT on your ability to perform critical thinking and objective evaluations, both of which are part of most technical jobs.

2 - If you chose multiple jobs and were bored in all of them, the problem start to look like it's in you, not in the jobs. Therefore, it's a problem you will bring into your next job, and few companies want that.

When explain that I left my job at a bank after 3.5yrs to go back into videogames dev, nobody bats an eyelid if I say I was bored. Even so, I do not say it, because the important bit is where I wanted to go to, not where I wanted to get out of.</comment></comment></comment>


Bitcoin Inception – what blockchain can learn from Inception - <AUTHOR> https://www.youtube.com/watch?v=fJGuxcEvats&lc=z23lirsoslbdyppcmacdp43bgfpmzyrm4nj0e1m55i5w03c010c <comment><USER2> Love the use of popular culture as a way in to some pretty abstract ideas. Good job.

Are there any other movies you can think of that would help people get their heads around blockchain scaling?

</comment><comment><USER3> Also a Plato's cave? You can't understand blockchain from the outsid?

</comment><comment><USER3> Also a Platos cave analogy?

</comment><comment><USER4> Great video</comment>


Darkreader – Dark Mode for Everything - <AUTHOR> https://darkreader.org/ <comment><USER2> So I came across this a couple of months ago and tried to use it.

It significantly slowed down page loads. When I changed the settings to not be as aggressive in selecting the dark colours, the page load speeds weren't much better.

I since ended up simply creating stylus styles for sites I regularly visit.

Not ideal, but it is better than adding a couple of seconds (not an exaggeration) to the page load.</comment>


The Curta Mechanical Calculator - <AUTHOR> http://www.vcalc.net/cu.htm <comment><USER2> Curtas are lovely. I think that with our current knowledge we could produce a mechanical Von Neumann CPU in roughly the same number of parts in the same size cut to the same precision, but I haven't finished designing it yet. But then you need a few kilobytes of RAM, which is going to be several times larger.

But nowadays I think you can probably make things quite a bit smaller, even using conventional machining processes.

</comment><comment><USER3> Curtas are great, I ran across them a few years ago and I've wanted one ever since.

I'm a huge fan of flight computers too - they're basically a circular slide rule with common units marked. A lot of people don't use them regularly now that we have electronic calculators, but an E6B never runs out of batteries in midair. They're very easy for quick conversions once you get the hang of it.

ASA makes a nice one in aluminum that I really like: [http://www.amazon.com/ASA-E6B-Metal-Flight- Computer/dp/B003Z...](http://www.amazon.com/ASA-E6B-Metal-Flight- Computer/dp/B003ZFSJ3M)

</comment><comment><USER4> A lot of tech nerds seem to have an interest in older computation devices. All the patents on the Curta have expired, and manufacturing technology has improved greatly since it was last made--so where is the Kickstarter to make more of these? I'd pay $200-300 for one.

And while we are at it, where are replicas of the Antikythera mechanism?

Heck, even a good slide rule would be nice. Think Geek had a slide rule for sale a few years ago and I bought a couple, but they were poor quality.

<comment><USER5> The Curta is incredibly complex, and full of springs. That kind of mechanical gizmo is probably a dead art now.

There are other gizmos that would be much easier to build. Like you say, slide rules are cool.

[http://www.sliderule.ca/](http://www.sliderule.ca/)

And some of the other mechanical computers would probably be easy enough to make:

[http://www.computinghistory.org.uk/det/6717/Arithmometer:%20...](http://www.computinghistory.org.uk/det/6717/Arithmometer:%20first%20commercially%20successful%20mechanical%20calculator%20launched)

[http://history- computer.com/MechanicalCalculators/Pioneers/M...](http://history- computer.com/MechanicalCalculators/Pioneers/Morland.html)

[http://lecture.eingang.org/pascaline.html](http://lecture.eingang.org/pascaline.html)

[https://calculating.wordpress.com/2011/11/23/calculators- for...](https://calculating.wordpress.com/2011/11/23/calculators-for- computers/)

Some of these would work as papercraft. Someone creating a nice set of PDFs could probably make a bit of passive income.

</comment></comment><comment><USER6> A Curta has been in my "If I ever have way too much money and have already spread it everywhere else I could" dream-category for years. I would doubly love (and be willing to back) a revival of them (that way it wouldn't feel like I'm buying up a historical artifact for personal enjoyment).

</comment><comment><USER7> When I read William Gibbson's "Pattern recognition" I googled a few items described in the book to better visualize the scene (e.g. the mine manual, Stetson, Rickson's jacket).

It did not occur to me to look Curta calculator up- they sure do look to be worth obsessing about :)

</comment><comment><USER8> I had the privilege of holding one of these a few days ago. One of my co- workers owns one and was happy to demonstrate it to me. The 9's complement subtraction was interesting to watch.</comment>


Ask HN: How do you recover from repeated interview rejections? - <AUTHOR> I am in my mid 40s and for the past 2.5 years I have gone to numerous tech interviews. I have spent many many hours on sites like leetcode etc. and I typically do well in screening rounds but not so well in onsite rounds, leading to getting rejected.
The last rejection was particularly hard for me. In spite of my familiarity with the domain (finance) and being recommended by a senior member of the company and doing quite well in the initial rounds, I was rejected.
I feel extremely frustrated and depressed. It's addictive to keep practicing these algorithms- but I feel at some point the strategy isn't working. I have been at one company most of my career (although different groups with the company). That's probably one of the reasons companies reject me.
Also want to add that I went to a mid-tier college in India. The college I went to does not reflect my abilities but I think that people tend to make judgements about you based on where you went to school.
What can I do to stand out? <comment><USER3> If you pass screening rounds but not on-site, you may need to work on how you present yourself. On-site interviews are just as much about how much they like you and want to work with you as it is about acing the technical screening side.

Some red flags for on-sites:

\- if you do not attempt to develop rapport before, during, or after the interview

\- if you are any of the following: conflict-insensitive, overly-quiet, don't explain yourself or your decisions well, only show answers and not the thought process, take no initiative / force the other party to initiate all conversation topics, etc.

\- a sub-par communicator technically or otherwise. This usually means that you don't respond in the correct way to cues that people give out. As an example, if a person asks an open ended question, they likely want to put the ball in your court and have you sell yourself or confidently take the topic and run with it. If you answer tersely with very little knowledge shared, that's probably a failed communication interaction. Too many of those can lead to a no hire decision.

I think this problem is magnified with older candidates because the expectation for being a great communicator is higher the older you are.

Usually star candidates communicate very well and have the technical chops to back it up, not the other way around. Plenty of technically strong people are hindered in their effectiveness in an org by their sub-par communication abilities.

<comment><USER4> This is great, and something I think a lot of the tech community at large tends to forget.

Being technically proficient is the bare minimum, not the only desired quality.

People forget that interviewing is part knowledge/skill screen, and part first date. You have to know your stuff, of course, but you also have to be someone that others want to be around.

This is not to say that OP lacks these skills, but there is so much focus in tech community around passing technical questions and almost 0 focus on normal interview skills.

The soft/personal skills side of interview is more art than science.

My recommendation is to practice the social side as much as possible. Interview for non-tech positions, hire an interview coach, or otherwise exercise soft social skills as much as possible.

Also remember that at the end of the day, you are being judged against all the other candidates and each hiring manager has a hidden set biases that you will never know about. Even if you crush the interview, there's still a chance they just might not like you.

</comment></comment><comment><USER5> Swallow your pride, always be questioning what you are doing and how you can do better, and never give up.

It can be discouraging to read sites like HN where everyone and their dog seems to have 18 different offers from Google/Facebook/etc with recruiters begging at their feet. This is far from the norm.

I went through a similar phase before my current employer - I had only ever worked for agencies/tiny family run companies/etc, and I wanted to work for a real, "legit" company. This resulted into rejection upon rejection, even when I thought I had nailed the interview. I remember one that hurt pretty hard - <USER2> got scouted by Airbnb because I had given a talk at a fairly large, reputable conference, and their VP Eng at the time reached out to me. On top of that, I got recommended by a friend who used to work there and whom I believe to be one of the very best engineers I have ever met. I know he wouldn't have recommended me if he didn't sincerely believe I would have been a good fit. Halfway through the day of on site interviews, the recruiter comes in the room and tells me that they're not going to move forward, and that I can go home. (my friend met me downstairs for a cigarette right after, and while I do not regularly smoke this was one of the best cigarettes I ever had).

Lowering your standards and interviewing for companies that don't seem that interesting is probably a good idea too - extra practice, and even if you get an offer that you don't accept, it'll make you feel a bit better.

I will say that not having a top institution (either college or employer) on your resume definitely gives you a huge handicap, especially in the Bay Area. All my schools/employers at the time were names no one had ever heard of, and it definitely felt like I was in a different world compared to friends who had gone to Stanford/MIT/Google/etc.

In the end, I found a position with a team that was ideal for me, but yeah - it took a lot of sweat, effort, and perseverance.

Your age probably does not work in favor (sorry about that). Keep interviewing, and do publicly viewable things (open source contributions, blog posts, conference talks, etc) - these will not only help you stand out, but will also help you feel good about achieving something, because one certainly does not get that from interviewing.

Good luck.

<comment><USER6> Thank for the advice. I have been in the exact same "recruiter coming in midway.." situation earlier in the process. Its funny and sad.

</comment></comment><comment><USER7> To answer the question of how to recover from repeated interview rejections, find people that have the same or similar experiences which will help you recognize how capricious the hiring process is. My wife and I have both been recently turned down for positions, at different companies, after going through the full process and being told that we should expect an offer soon. We now laugh about it and expect to get turned down when all the stars are aligned. As a result, I only apply to positions where I am interested in talking with the people that work there so I at least get to enjoy that aspect.

</comment><comment><USER8> At your age, I am assuming you have commensurate experience, so your school should not matter at all.

Any good recruiter should be able to see the qualities somebody of your experience will bring to the table - a holistic view of software development and understanding of things like technical debt, good communication, ability to get along with people from different functional areas, and so on. Maybe you need to work on making these apparent to the interviewers? I don't think anybody would be looking at your tech skills alone.

</comment><comment><USER9> First, make sure to diagnose the problem correctly. It seems like you have good communication skills so I doubt it's that. Second, especially at your age, develop your sense of self worth to the extent that you don't care if you get rejected, it's their mistake.

</comment><comment><USER10> Build something.

</comment><comment><USER11> Given reason for rejection? Skill or fit?

<comment><USER6> OP here (lost original handle)

Most don't give any feedback for rejection

<comment><USER12> Can you drop me a email to pacificleo-at-gmail-dot-com I might be able to help</comment></comment></comment>


Boids in JavaScript - <AUTHOR> http://www.emergentmind.com/boids

<comment><USER2> Boids? In JS? Who would've thought it's even possible... I have not seen anything like this before. Especially not here:

[http://processing.org/examples/flocking](http://processing.org/examples/flocking)

PS: can we get over the little non-optional script language?

</comment><comment><USER3> I love watching how the boids converge, and then small groups break away from the pack every once in a while.

</comment><comment><USER4> [http://creativejs.com/2011/07/flockers/](http://creativejs.com/2011/07/flockers/)</comment>


A formula that visually represents itself when graphed - <AUTHOR> https://twitter.com/fermatslibrary/status/872070585848926208 <comment><USER2> Don't miss the comments. Particularly Tor Hovland's hint about the size of k, and David Turner's "spoiler." The Wikipedia article [1] demystify's it completely.

[1] [https://en.wikipedia.org/wiki/Tupper%27s_self- referential_fo...](https://en.wikipedia.org/wiki/Tupper%27s_self- referential_formula)

</comment><comment><USER3> This isn't a true self-referential graph because k actually encodes the graph, the formula simply iterates over every possible bitmap with a certain height.

A truly self-referential graph would also include the coordinates of itself in the graph.

<comment><USER4> You may enjoy this then: [http://jtra.cz/stuff/essays/math-self- reference/index.html](http://jtra.cz/stuff/essays/math-self- reference/index.html)

<comment><USER3> I was already aware of its existence, but I forgot the exact reference, thanks.</comment></comment></comment>


Estimating the energy cost of evolution - <AUTHOR> http://alanwinfield.blogspot.com/2014/07/estimating-energy-cost-of-evolution.html

<comment><USER2> This is an interesting and valuable analysis. But while applying selection and mutation to generate software might be a fun problem to tackle, it seems like a terrible way to produce useful software.

As a model, the evolution of human intelligence is not something we know remotely enough about to reproduce artificially. Our ancestors evolved in environments that were constantly changing. They had social relationships with other creatures of their kind. They competed with other organisms. They were predators and prey. The path from the first multicellular organisms to the humans of today was not a straight one.

How would you go about judging the evolutionary suitability for reproduction of a particular individual instance of the software? Not to mention that sex surely plays a role in our development. How do you model sexual reproduction and the recombinatorial process of mixing genes from the parents? How are the parents to judge the suitability of each other for mating? The feedback loop of mating behavior, sexual selection, and human intelligence is not a minor thing.

What about development? Humans are created through a process. Our genes alone do not specify our composition. There is feedback from the environment, from our nutrition, from the symbiotic organisms that live in our guts and on our skin, from our social relationships, from our parenting, from what skills we learn, and what sports we play, and which books we read, all of which manifest physical changes on our bodies that are not specified in our genes.

I cannot envision a situation where coming up the algorithm that could successfully produce an intelligent piece of software would not be far more complicated and impossible to create than the resulting intelligent software.

But if it were possible to create this software by this method, how inefficient it would be. Ask any evolutionary biologist how efficient natural selection is at coming up with ideal solutions to problems. There are plenty of ingenious inventions generated by natural selection, but very few if any are remotely "efficient". And the process of generating those systems via thousands and millions of generations of self-replicating organisms is about the least efficient imaginable system possible, as demonstrated by this paper.

<comment><USER3> When you claim that to evolve an intelligent agent, the evolutionary algorithm itself needs to be more intelligent, you are essentially arguing for intelligent design. In the light of modern science, this is clearly wrong. The world is full of emergent complex phenomena (such as intelligent humans) that are result of several simpler "rules".

<comment><USER4> You're confusing things that are good when explaining with things that are good when optimizing.

Simplicity is a huge explanatory advantage, because simple things generally have exponentially higher prior probabilities. But simplicity is only a minor advantage, or even a disadvantage, when you want to make something efficient. It's too constraining.

The dumb algorithm still _works_... it just takes longer. Nature took nonillions of cells and trillions of generations to make something intelligent; we'd prefer something a bit less brute force.

<comment><USER5> Well, remember that intelligence (in the form that we would apparently like to develop) evolved as a by product of natural selection. For one thing, our level of intelligence only really makes sense once a whole set of other niches have been filled out.

Applying a better selection/objective function to an otherwise 'dumb' process would likely drastically reduce the cost to reach a 'solution'.

</comment></comment></comment></comment><comment><USER6> Estimating the energy cost of helping to build the Transhumanist hellish Roko's Basilisk [http://www.slate.com/articles/technology/bitwise/2014/07/rok...](http://www.slate.com/articles/technology/bitwise/2014/07/roko_s_basilisk_the_most_terrifying_thought_experiment_of_all_time.html)

</comment><comment><USER7> IIRC the thermodynamic lower bound is ln 2 kT per bit of final output; for the human genome size that's well under 10^-10 J. Reversible computing may be far off, but I wouldn't assume it's farther off than evolving our successors. (The paper doesn't mention any of this.)</comment>


RethinkDB 1.13: pull data via HTTP, push data via changefeeds - <AUTHOR> http://rethinkdb.com/blog/1.13-release/

<comment><USER2> Huge release this time around. Congrats guys & gals!

`r.args` isn't very flashy but is a huge step forward for ReQL.

Removing protobuf makes deploying to certain platforms (e.g. heroku) so much easier.

Promises support for the Javascript driver brings it to the modern age.

And of course changefeeds and `r.http`!

If you've been hearing about RethinkDB and thinking about trying it out, now's a great time to spin the wheels.

<comment><AUTHOR> slava @ rethink here. I forgot to add `r.args` ([http://rethinkdb.com/api/javascript/#args](http://rethinkdb.com/api/javascript/#args)) to the blog post! People have been requesting that feature for a few releases now, and it should make lots of code much less painful.

FYI the upcoming 1.14 release is scheduled to include a distributed file system and geospacial indexing (probably the most requested RethinkDB features of all time).

If you have any questions about Rethink, I'm here all day to answer questions. (We can also grab lunch or coffee if you're in the Bay Area).

</comment></comment><comment><USER3> Mike @ RethinkDB here. We're co-hosting a RethinkDB + Firebase meetup on July 1st in San Francisco on building realtime apps. We'll be doing more in-depth demos of the new 1.13 features, and showing how you can use them to build realtime apps faster.

RSVP to the meetup here: [http://www.meetup.com/RethinkDB-Bay-Area-Meetup- Group/events...](http://www.meetup.com/RethinkDB-Bay-Area-Meetup- Group/events/188950262/)

We'd love to see you come hang out with the RethinkDB and Firebase teams. Even better, give a lightning talk on how you're using RethinkDB! Christina is finalizing the schedule, if you'd like to do a lightning talk shoot her an email (firstname.lastname@example.com).

<comment><USER4> I must admit this makes me confused -- do RethinkDB and Firebase integrate in some non-obvious way? Both appear to be JSON databases with real-time change feeds so it would seem they'd be competitors if anything... Any chance you can clarify the relationship? Thanks.

<comment><AUTHOR> Slava @ Rethink here.

The relationship between RethinkDB and Firebase is based on conceptual/philosophical agreement about where the world is going (realtime json sync), and that developer tools should be delightful. That's how we know each other, and decided to co-host the event. There is no software integration or anything.

I don't think the companies are really competitors -- Firebase is a service, Rethink is a product, Firebase has much more hands off ops and smaller query language, etc. So the use cases where you'd pick one or the other tend to be quite different.

We just want to give demos about building realtime apps, and get to know people who care about the subject!

<comment><USER4> Thanks, that makes sense. The point about service vs product is well taken, though I find myself wishing somebody supported both modalities: a service to get a prototype up and running quickly, with the option of moving to a self- hosted setup later if needed for scaling or security reasons.

<comment><AUTHOR> We'd like that too, but it's easier said than done. A good, robust service is like a whole other company! We're looking at options, but there is still a dramatic philosophical difference between a product first company and a service first company.

</comment></comment></comment></comment></comment><comment><USER5> I really hope I get to use Rethink in anger before I die. Last time, I had to move on because we are multi-tenant SaaS and it seemed the compound indexes just were not up to that task, does this release fix any of those issues? (I seem to recall I was having to use a between query and not being able to sort, but it was a while ago and I quickly got back to work with old reliable (postgresql))

<comment><AUTHOR> I think you're talking about [https://github.com/rethinkdb/rethinkdb/issues/1227](https://github.com/rethinkdb/rethinkdb/issues/1227). It hasn't been fixed yet, and is a big deal for many multitenancy users.

I'll bump it up in the roadmap -- sorry it's taking so long to get this fixed. It turns out that everyone only needs 5% of RethinkDB features, but it's always a different 5%. That makes product roadmaps really hard. I think in this sense databases are a bit like word processors :)

<comment><USER6> another vote for compound indices.

<comment><AUTHOR> Just FYI, you compound indexes are already fully supported -- see [http://rethinkdb.com/docs/secondary- indexes/python/](http://rethinkdb.com/docs/secondary-indexes/python/).

The particular issue in question is using an index to filter documents, and then ordering them by another index.

</comment></comment></comment></comment><comment><USER7> It is tough to keep up with all these changes. I mean Rethink was pretty feature complete for me like four or five releases ago.

I don't know how I feel about the http command but I am digging the other changes. Keep up the good work.

<comment><USER8> @dkhenry -- Thanks for all your work on the Java driver!

</comment></comment><comment><USER9> Absolutely amazing release! A quarter back we had a small chat with @coffeemug, to see if RethinkDB would be a good fit for our product (geospatial indexing, ad-hoc queries, realtime updates, ...). He said then that it wasn't yet, and promised that it would be in a year's time. I see now what he means, Rethink is already looking like a very strong contender!

</comment><comment><USER10> Damn, rethink won't stop getting better and better! I'm looking forward to getting to use the changefeeds, as I've currently got a redis list that I use to get notified of changes to rethinkdb, which is fine but just another cog in the system to debug.

Seriously guys, thanks for the great product and awesome database experience (PyRethinkORM author here).

<comment><AUTHOR> Thanks for PyRethinkORM! I haven't used it yet, but really looking forward to taking it for a spin with Django in a few weeks. We'd love to feature it in our docs when we get through a few more immediate issues.

<comment><USER10> Awesome! Let me know how it goes and feel free to file as many bugs and issues as you can. I've been saying that I'm going to be releasing v1 soon but school and summer internships have been getting in the way of that, but you might want to take a look at the `dev` branch it is much better than the current v0.3 thats on PyPi, imo.

</comment></comment></comment><comment><USER11> Built-in notifications on writes are really cool! This is something Meteor had to implement on the application layer because MongoDB never supported it natively (and the oplog consumed by Meteor didn't really have enough context). RethinkDB gives you both oldValue and newValue which is super cool!

<comment><AUTHOR> You can also query on them, which is really cool IMO! E.g. give me every document where the score has increased:

      r.table('games')  \
       .changes()       \
       .filter(r.row['old_val']['score'] < r.row['new_val']['score']) \
       .run(conn)

Or, give me every document for user X:

      r.table('games')  \
       .changes()       \
       .filter(r.row['new_val']['user_id'] == X) \
       .run(conn)

So you can write really cool apps out of the box without having to filter things on the client.

(BTW, we have _a lot_ more planned for this)

</comment></comment><comment><USER12> Change feeds look great. r.http seems like a frippery, though. Not a great signal to see things like that getting added when there are much bigger fish yet to fry.

<comment><AUTHOR> The r.http command was controversial, even internally. I had to call in a lot of favors to convince people to get it in, but here is why I was convinced it's a good idea:

      - It fits! It just seems to work magically well with the rest of
        ReQL on so many levels! JSON fits, streams fit, lazy evaluation
        fits, even batch prefetching fits! Everything works so
        wonderfully and provides such a great interactive experience,
        it almost would be silly not to add!
      - It makes a use case that's really important to me
        personally (adhoc analytics) an order of magnitude easier. Over
        the past few months I ran into a few other people that also do
        a lot of interactive adhoc data analysis with Rethink, which
        redoubled my resolve to add r.http.
      - It makes example datasets *much* more elegant. Reading
        RethinkDB docs? Just call this command to get the dataset in so
        you can play around with a command. (We haven't updated the
        examples yet, but we will). That makes the first experience
        with the product better, and makes the learning experience much
        more pleasant.

So I hear what you're saying, but I respectfully disagree. If you think of it as a signal, think of it as a signal of deep passion for the product and our users! Ornamentation for the sake of ornamentation isn't what we do.

(On an unrelated note, I really love your use of 'frippery' \-- I'm a bit of a word nerd, and this is a really neat word!)

<comment><USER12> Thanks for the considered response. I think I have a much better handle now on why it seemed like a good idea to you and a bad idea to me.

The disconnect is that we see Rethink in different ways. You're looking at it, in this context, as Rethink + ReQL combining into a "tool for data analysis".

When I look at Rethink I see "Place to put my data".

My viewpoint pretty much ignores ReQL as anything more than "Means to get my data out of the thing". Which, thinking harder about it, is wrong. You guys are looking to make ReQL more than that. My viewpoint is too heavily influenced by the way I think about things like CouchDB.

I normally don't go in for value judgements about people's viewpoints, but I think in this case yours has to be declared objectively correct. Given that it's your product and I'm just a guy that's been an interested observer for a while, but has never actually used it in anger.

So, thanks for helping me get it. Word nerds unite!

</comment></comment></comment><comment><USER13> I am not a database expert hence this question.

RethinkDB looks better than MongoDB in many respects. But how does it compare to Postgresql (latest versions with document support)?

If I were to start on a new project with modest scalability requirements, what should I choose and why?

<comment><USER14> I think the biggest difference is the scalability built-in. It has a beautiful Web admin and CLI admin that ease the scailability works including sharding and adding a node to the cluster.

PostgreSQL also has built-in streaming replication, which is useful and works nicely. But the scenario it covers is scaling reads, not writes. To scale writes, you should shard the data manually.

There are efforts to bring write scalability to PostgreSQL. One of them I'm keeping my eyes on recently is Postgres-XL, which uses statement-based replication that focus on writability and availability. It is a premature product that started recently, though. And also, some easy-to-administer features like automatic failover and configuration propagation (adding/removing nodes) are not the objective of the project. You should adopt another solution, or write it manually.

However, instead of getting the scalability, you lose ACID in RethinkDB - whose impact can be huge on some use cases. But personally I think it is worth losing to gain scalability easily. And there is two-phase commit which is at least doable to imitate transactions, though it isn't elegant at all.

If your application is read-intensive, I think staring with PostgreSQL and adopting Postgres-XL or pgpool later is a good strategy. But if you are to shard the data to scale writes, or you want an all-on-one solution that helps the administrative works a lot, I think RethinkDB is highly recommended.

</comment></comment><comment><USER15> Great stuff as always. I have had a RethinkDB instance in production for 13 months now (since 1.4 - developed it while on 1.2) and looking forward to upgrading and playing with the new features in other projects.

Thanks again for your awesome work, guys!

</comment><comment><USER16> Great release, time to get my Scala driver updated. Who wants to help getting the `changes` api to work with itertees?

<comment><USER7> Yeah I think that change is going to be another fun one to implement.

</comment></comment><comment><USER17> Congratulations on the release guys. The update to the Javascript driver is huge and will make development a lot less painful. I get to remove a lot of redundant code thanks to that.

I am a huge fan, keep up the outstanding work!

</comment><comment><USER18> Great job! Totally loved it. Thought it would be a good idea to have channels instead of tables for pub/sub mechanism.

<comment><AUTHOR> We debated this for a while and decided not to do channels for now.

Feeds are great because you can use them to integrate with other pieces of the infrastructure like RabbitMQ or ElasticSearch, or write reactive apps where clients instantaneously react to changes in other clients. Incidentally, you can use them to easily get pubsub, but it wasn't the original intention.

There are much better pub/sub services out there, so we decided to stick to having a really good feed API and avoid implementing channels for the time being.

</comment></comment><comment><USER19> Is the changefeeds feature comparable with changes api of couchdb?

<comment><AUTHOR> Unless I'm mistaken RethinkDB changefeeds are more powerful than the couch API. You can perform filters on changefeeds, do joins, transformations, etc., while the Couch API gives you a feed that has to be fully processed on the client.

</comment></comment><comment><USER20> am i correct that the biggest hurdle to a python 3 driver has been the lack of python 3 support in Google's protocol buffer library? If so then, it seems that the 1.13 release which removes the protobuf dependency, will substantially accelerate development of the python3 driver

<comment><AUTHOR> That's right! In fact, there is a pull request to make the driver Python 3 compatible that's being reviewed right now (plus some additional testing changes, etc.) We should be able to get Python 3 support in pretty soon.

</comment></comment><comment><USER21> Is using http out of the db really useful? Can someone give me a simple case when this should be used?

<comment><AUTHOR> It's extremely convenient for interactive use. See this tutorial -- [http://rethinkdb.com/docs/external-api- access/](http://rethinkdb.com/docs/external-api-access/).

You can grab JSON data out of APIs in seconds, filter and manipulate it, and enrich it with more APIs. I've been using `r.http` for some time (since an internal beta) and I now find it invaluable for ad-hoc analysis.

<comment><USER22> > You can grab JSON data out of APIs in seconds, filter and manipulate it, and > enrich it with more APIs.

So it's almost as nice as SQL, except bespoke and not specifically designed for interactive data exploration?

<comment><AUTHOR> I think it's best to play with it to get a feel for how it works. For example, what would the experience be doing the analysis described in [http://rethinkdb.com/docs/external-api- access](http://rethinkdb.com/docs/external-api-access) in SQL?

</comment></comment></comment></comment><comment><USER23> anyone using rethinkdb in production? Hows the experience like?

</comment><comment><USER24> No offense, but I found the voice of the engineer difficult to listen to seriously, found the video too humorous.

<comment><AUTHOR> Michael can be an acquired taste, like fine wine or good scotch. If you don't push past that first sip, you'll never know the deep, tantalizing world known to us connoisseurs as @mlucy. (But if you do, please let it be a matter of public record that we discovered him first)

<comment><USER24> Thanks, apologies for my comment being offensive... but I should be able to state objectively what I thought detracted from the message of an otherwise fantastic announcement. I in no way mean to pass any judgement on Michael as a person...</comment></comment></comment>


MIT Model Predicts Who Will Run Red Lights - <AUTHOR> http://www.wired.com/autopia/2011/12/mathematical-model-predicts-which-drivers-will-run-red-lights/

<comment><USER2> >>"Even though your light might be green, it may recommend you not go because there are people behaving badly that you may not be aware of," said Jonathan How, an aeronautics and astronautics professor who co-created the algorithm."

There is the possibility that this could result in more red-light running instances, if runners begin to presume there is this collision warning system. Whereas before they were "taking chances", now it'd become less "chancy".

</comment><comment><USER3> I wish it would explain how the accuracy numbers work. I could say 'no' to every car and get pretty good naive accuracy, so that's clearly not the method they're using to give the old models scores of only 15-20%.</comment>


The Entertainer: In Praise of Raymond Smullyan - <AUTHOR> https://www.scientificamerican.com/article/the-entertainer/ <comment><USER2> I read everything I could get my hands on that Smullyan wrote when I was 12 or so. I still have many of the copies of articles, old books, and the notes from my attempts to work his puzzles in a box, and just opening Alice in Puzzle- Land, like the madeleine from Proust, instantly brings me back to that time. Highly recommended.

<comment><USER3> My daughter is eleven. When she asks me to read her Smullyan before bed...

I melt.

</comment></comment><comment><USER4> I met Raymond at a conference in the early 90s. I was an undergraduate in math then. We talked about philosophy, religion, and mathematics. Just the two of us. The next day he came up to me and said that he invented a religion for me.

 _God has a number in mind. If the sum total of good deeds minus bad deeds exceeds this number then everyone goes to heavan. If not then everyone goes to hell._

Then he said to me, "Imagine, something you do could send everyone to hell."

<comment><USER5> God's number is zero and no matter what we do that sum will always be above zero. As we are programmed in our DNAs to survive, sustain and multiply, the average outcome will always be positive no matter how many bad apples. If to the contrary, we were programmed to self destroy, we would've been gone long time ago.

<comment><USER4> Raymond just made up a religion for me. It was not meant by him to be serious. Our perceptions of reality appear to be very different.

</comment></comment></comment><comment><USER3> Raymond Smullyan is one of the biggest reasons that I'm a programmer today, most of the reasons that I write about programming today, and nearly all of the reasons for what I choose to write about, when I write about programming.

He was, literally, who I wanted to be when I grew up. It turned out that I grew up to be Raganwald, not Raymond, and that is very alright with me.

But I am forever grateful for the influence he had on me.

</comment><comment><USER6> This is the first time I read about his NPRNPR distillation of Gödel's proof (N=Not,P=Provable,R=Repeat). So clever. And so Smullyan.

I'll always remember his [https://en.wikipedia.org/wiki/To_Mock_a_Mockingbird](https://en.wikipedia.org/wiki/To_Mock_a_Mockingbird) as a most delightful introduction to Combinatory Logic.

<comment><USER7> Funny enough, a similar trick can be used to give you the Y combinator.

Let comp be the 'compose' combinator

((comp f g) x) = (f (g x))

Let R be the 'repeat' or 'self-application' combinator

(R x) = (x x)

Then (Y f), the combinator obeying the equation

(Y f) = (f (Y f))

can be expressed as

(Y f) = (R (comp f R))

If our f is NP, then we'll have (NP (R (comp NP R))). So, in other words, NPRNPR is just (Y NP).

Funny enough, taking that definition of the Y combinator, you can get all of its special forms (normal order, applicative order, and polyvaradic normal & applicative order), just by changing the definition of the 'comp' function.

Here's a gist that shows how:

[https://gist.github.com/mromyers/b6d7678bf7a04e106b3d7d5b649...](https://gist.github.com/mromyers/b6d7678bf7a04e106b3d7d5b6493a2e7)

</comment></comment><comment><USER7> While his puzzle books obviously deserve a lot of praise, Smullyan's textbooks and papers definitely shouldn't be overlooked. There's a lot of wonderful gems to be found there.

Diagonalization and Self-Reference is the single book I would recommend the most to the HN crowd. There are a few sections on quotation and Quines that I've found endlessly useful, his 'Elementary Formal Systems' is my favorite presentation of computability, and there's a lot of really deep stuff in there about the interaction between incompleteness, uncomputability, and fixed- points.

Also, Logical Labyrinths is a pretty great textbook on formal logic. The first half is in the form of one of his puzzle books, introducing notions and building intuitions, while the second half builds off of them to provide a more formal perspective, while incidentally giving a kind of eye opening look at how he comes up with his puzzles and how they map to certain deeper properties of logic.

</comment><comment><USER8> Smullyan's puzzle books are superbly entertaining and witty.

</comment><comment><USER5> "Suppose there is a mapping from the natural numbers onto the decimals."

Infinity is a tricky subject.

There are infinite naturals, fractions and decimals but they are different kinds of infinities. If we define natural positives as N and both positive and negatives as the same infinities N * 2 (with a minus sign), we can safely say that decimals are simply all naturals multiplied by infinity N * N * N * 2 or N ^ 3 * 2 where for every single integer like 0, 1 or 2 there will be infinite decimals after the point prefixed by infinite zeroes too like .1 .01 .001 .0001 and even if N * 2 or N ^ 3 are equal to infinity (infinity because we can't measure it or at least not know its final boundary) both infinities are different.

And guessable, we're out of hell someday.

<comment><USER4> Cardinality is the name given as a measure of the size of a set. The cardinality of the rationals is the same as the integers. The cardinality of the reals is larger than that of the integers.

There is an arithmetic of cardinal numbers and it is well understood if you accept the axiom of choice. For instance, using your notation, N*N = N and N^2 = N. You can read more here

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

<comment><USER5> > The cardinality of the rationals is the same as the integers.

If you combine N as all possible numerators with N as denominators you get that cardinality of Q = N * N

Also, I don't accept the diagonal argument as proof. Given all possible combinations of numbers, any given number will occur in that set no matter what. If you add special rules of course it falls apart and Cantor's argument is just a special rule.

If we use fruits as an example, taking a diagonal from their letters won't form a fruit either.

        1. [A]PPLE
        2. O[R]ANGE
        3. MA[N]GO
        4. CHE[R]RY
        :
        N. ARNR ?

<comment><USER4> It might be worth your time to consider the possibility that it is likely that the whole of the mathematics profession is not wrong in this matter. Are there any professional mathematicians that agree with you? If pretty much the whole profession thinks you are wrong about something then it's quite likely you are indeed wrong.

It's worth pointing out that your logic on Q = N times N is a bit faulty too. Since you are counting things like 4/4 as different than 1/1\. Even so you are correct that the cardinality of Q is N times N. This is because N times N = N.</comment></comment></comment></comment>


Show HN: Is this Chrome extension a useful application of AI? - <AUTHOR> https://crammer.app/ <comment><AUTHOR> Currently a student and made this tool to help speed up the process of reading online articles for research</comment>


Print Your Kindle Highlights by Clicking a Button - <AUTHOR>

Just built a chrome extension that allows you to print / save your highlights to your local computer, Google Drive, or dropbox.  You can find it at http://www.printmykindlehighlights.com <comment><AUTHOR> Just updated the application to use MS Word files as opposed to PDF for a better enduser experience.

</comment><comment><USER2> Awesome, I like it!

<comment><AUTHOR> Great to hear!! If you have any issues or feature requests, let me know! Please rate the extension and recommend it to your friends as well!</comment></comment>


Ask HN: How does one get into energy entrepreneurship (e.g. solar)? - <AUTHOR>

Say I want to manufacture/sell solar modules to buildings in my city or something like that. Where would one get started? Background/theoretical knowledge is an obvious starting point, but then...? <comment><USER2> Having done exactly that, would recommend first coming up with a business plan, recognizing that you have to pay yourself, recognizing the pitfalls of selling your own panels (there are many that aren't obvious), and figuring out how you can make money enough to grow the business and support yourself better than you could by just getting a job.

This is a very tough business to do well in these days, particularly if you go it alone. That's why I no longer am in it. Feel free to message me if you want specific questions answered.

</comment><comment><USER3> Most energy entrepreneurs I know started out leveraging government programs including SBIR/STTR, ARPA-E and DOE grants, and national lab facilities.

</comment><comment><USER4> One simple way would be to start teaching consumers about solar energy and perform an energy audit on their homes. Scale that up to big businesses if you want to charge more - however a sound knowledge of the local electrical code (and standards) is necessary if you want to do the energy audit properly.

Use the findings of the energy audit to propose an energy plan. Partner with an electrical supplier to re-sell solar panels to your clients

</comment><comment><USER5> Become a dealer or reseller and learn the business. Solar panels will be like almost any other product i.e there's a market, a margin etc.</comment>


Yahoo included their private certificate in Axis - <AUTHOR> https://github.com/nikcub/yahoo-spoof

<comment><USER2> I've heard rumours from within Yahoo! that next major product release they're planning on including a copy of Scott Thompson's computer science degree.

</comment><comment><USER3> <https://news.ycombinator.com/item?id=4016707>

</comment><comment><USER4> Ouch. But we've all had moments of forehead-slapping stupidity; I really feel for whoever let this slip through.

<comment> mike-cardwell They will never live it down.

<comment><USER5> The amusing part is that they escaped n rounds of major layoffs, only to be (presumably) canned for something avoidable.

</comment></comment></comment><comment><USER6> Looks like they want to give others an opportunity to fix codes for Yahoo. This will take the open-source to a new level.

</comment><comment><USER7> Is this responsible disclosure?

<comment><USER5> There is no such thing as responsible disclosure.

<comment><USER7> <http://en.wikipedia.org/wiki/Responsible_disclosure>

Not sure I really agree. I think it would be courteous to politely inform yahoo! of their mistake. Potentially more rewarding, as well.

<comment><USER5> <http://en.wikipedia.org/wiki/Allah>

Lots of things that don't exist have Wikipedia pages.

<comment><USER8> Sounds like an affirmative claim, can you prove that? ;)

</comment></comment></comment></comment></comment><comment><USER9> How hard is it for Yahoo to change their certificate?

</comment><comment><USER10> Honestly, it could probably be worse. Who uses Axis, anyway?

It still looks extremely bad for Yahoo, though.

</comment><comment><USER5> It's a key, not a certificate.

</comment><comment><USER11> WOOPSIE POOPSIES!</comment>


Twitter Revamps Revenue Model - <AUTHOR> http://www.wamda.com/2011/12/twitter-revamps-revenue-model-with-300-million-in-investment-from-saudi-prince-alwaleed

<comment><USER2> Seems a lot like the old business model to me - raise more money! ;-)</comment>


Review our Startup - we launched hoodiepeople.com today - let us know what you think - <AUTHOR> http://www.hoodiepeople.com <comment><USER2> Interesting niche. I think it would work really well in the college market. A lot of student groups make and give out hoodies to people. If there was a service where they could design their hoodie and get it from you guys, that would be attractive to them.

<comment><AUTHOR> its def a niche, but we see a big market, especially in the college crowd both from a premium brands perspective and custom printing.</comment></comment>