Why I Will Never Feel Threatened by Programmers in India - <AUTHOR> http://blog.jpl-consulting.com/2011/12/why-i-will-never-feel-threatened-by-programmers-in-india/ <comment><USER3> Look around you and you will find that most American companies hire lots of Indians as programmers. Do you think that the guys who ended up coming to America suddenly transmogrified in to competent programmers during their flight across the ocean? Do you think that those Indian engineers who decided to stay back and work in India are any less competent than the ones who took the flight? Having worked in both India and the US for over a decade, my experience tells me that the distributions for programming skills are almost identical in the two populations. The top percentile of programmers in India (those who work for Google, MS, Amazon) are as good as their counterparts in the US. The $12 crowd is about as good as the craigslist freelancers who charge a similar rate. While you may not have to worry about being replaced as a programmer, what you should worry about is an India startup like Zoho or Freshdesk competing with your company. Unlike China where startups can focus on the largely internal Mandarin speaking market, Indian startups are going to come after all the English speaking markets.

<comment><USER4> The suck in outsourcing doesn't come from the location you outsource to. It comes from hiring bottom of the barrel programmers embedded within a large bureaucracy.

<comment><USER5> And some typical boys club culture clash issues with accountability and honesty

</comment></comment></comment><comment><USER6> Quote one of my past Indian coworkers: "If you pay peanuts, you hire monkeys.". Which is the chuckle worthy way of saying that eventually the markets are, all else equal, fairly efficient, and that the labor pool available at $4 an hour to bill to you at $12 an hour has systemic, pervasive competence issues which will prevent the successful completion of many projects.

Anyhow, beating the usual drum: don't be a cost center. Figure out how the business works and nobody will even consider outsourcing the projects you'll work on.

<comment><USER7> If you want to outsource to India, you need to find a company that hires super stars. Super stars in India demand a salary of Rs50,000 to Rs 100,000 a month. Which is still quite less from international point of view: its about $1000 to $2000 a month. A company hiring them will bill you a minimum of $20-30 per hour. Usually more like $40-45 per hour.

If you go with a company that is billing you less than that from India, you should know that your work will suffer because that company does not hire the best skilled coders.

<comment><USER8> It is less from Western point of view not from international. I'm sure that in Latin America and Eastern Europe prices are quite similar and time zone differences are more acceptable. India lose in this price range because of cultural differences as well. Usually those are small details like matching Christian and/or international holidays (therefore no conflicting days off) but sum of those details are really significant.

Again your point just confirms fact that Western developers shouldn't worry about competition from India.

<comment><USER9> I'm in Uruguay, and Tata Consultancy Services (TCS) opened a huge facility here to address just that (the time zone differences) as we're in the GMT -3 timezone.

But they're having trouble filling positions at their salaries, most decent programmers here earn more than U$ 1.000 (I make U$ 1.500 myself, and want to make at least twice that, so I'm about to start my own company).

</comment></comment></comment></comment><comment><USER10> Based on previous experience working with an outsourcing firm in India, and on what I know/hear from friends back home, here's what I've observed:

\- Although the raw number of 'programmers' in India is large, the percentage of good programmers is smaller than that in the US (anecdotal, as observed by me over ~10 years). So essentially, you get what you pay for because the good programmers can command (and deserve) salaries close to what their American/international counterparts make. Many of these better programmers are snagged by the Amazon/Microsoft/Google of world who have development centers in India.

\- A lot (most?) of firms in India that employ programmers do not invest in educating/developing their employees' skills. This is partly the result of employees jumping ship very often (hence making the investment in their development not worth it), and partly the result of the business (they do one- time contracts and paid by the hour, so delivery == success. Quality/sustainability isn't as much of a concern).

\- For a large percentage of programmers, career development is defined by a larger paycheck, not necessarily stronger experiences/skills. Therefore, their motivation is to switch jobs very often and do the same caliber/quality work, and yet make more money with each switch. So they too aren't motivated to excel.

<comment><USER11> au contraire - the average Indian firm I have had an experience with spends far more time, money and effort training their employees than employers here in the US. I say that as someone who has worked in India for a couple of years and who has been working in the US for about 5 years now. US companies that I have worked with largely expect the employee to pick up tech skills in their own time.

<comment><USER12> It makes no difference. You _will_ need to spend a lot of time, money and effort 'training' your employees when they are at a level where they see a C compiler tell them 'Semicolon missing - Line 19' and have absolutely no clue as to what to do with that. Or they've to call up a friend to figure out the 'difference' between * and & in C.

Source: A lot of my friends go through said 'training'. And I was that 'friend' who was called.

</comment></comment></comment><comment><USER13> I am from India and let me say you don't have to feel threatened by _bad_ programmers in India. The problem with posts like these is they make massive generalizations which are not true. Not every body here is a genius and not everybody here is an idiot.

I have worked in extremely challenging projects which were billed for dirt cheap prices. Considering the cost at which finished the projects it was almost like we were giving our work for free. For every story like this there are a 100 good stories you will hear out here. There are also cases where people do endless work and those hours don't get billed. Yes, there are a lot of cases like this as well. There are 1000's instances where we do work without billing them because some one at onsite put a polite request. I used to work with a very senior person in the UK. During meetings he used to be shocked that we put that crazy hours and efforts for such low prices.

The problem some projects fail here in India is because of the same reasons they fails else where.

When you talk of all this, even manufacturing in China. You need to look that whole picture and then see how the statistics work. At volume, and that scale of economy, If you measure No of Failures Vs No of Success and measure them against money saved. It's a very different story.

One project failing somewhere doesn't talk of the whole outsourcing story.

<comment><USER14> Spot on. My 10 years' experience in outsourcing industry is similar[0]. I think of this as another instance of bias against Indian outsourcing. I have seen many instances during my career which seems to indicate that pricing do not correlate with performance.

[0]<http://news.ycombinator.com/item?id=3182996>

<comment><USER15> Your view could also be interpreted as being biased against US based developers (what you refer to as 'Native') and the racism you perceive them to be exhibiting.

<comment><USER14> In this context I am just trying to explain that price do not necessarily correlates with performance. As far as racism is concerned it definately exists on both sides of the globe.

Meme against Indian is "Indians are taking our jobs by unfair means like working below sustaintable rates".Meme by Indians is "This guy is here to boss us around and confuse us just because he happens to be on the client's payroll."

</comment></comment></comment></comment><comment><USER16> _Why I Will Never Feel Threatened by Bad Programmers_

I fixed the title for you. Next time try and avoid generalizing entire countries.

<comment><USER17> This is correct.

Good programmers in India, like good programmers everywhere, _cost more_ than bad programmers. If you would like to hire a decent shop, there are boutiques and larger firms available, but they will charge $40-50/hour, not $15. The problem isn't in the outsourcing, it's treating development like a $15/hour commodity. We all know that it doesn't work that way.

The author described paying an hourly rate for their offshore developers that was 10% of the local rate. If you compare the salaries of good developers in places like Bangalore to developers in more wealthy countries like the US, you will find that the difference is not that vast--maybe 25-40%, not 10%. If you would like to hire these people, expect to pay corresponding rates and receive good-quality work.

And don't let anyone tell you that you need crystal-clear requirements; pay for a qualified local business analyst and expect to spend a lot of time on the phone with them.

<comment><USER18> But there are plenty of good programmers in the US that will work for $50 an hour, which ends up being about $100,000 a year. And if you can have your users, analysts, and programmers in the same building for what it costs to outsource, why outsource?

<comment><USER17> $50 sounds low to me--I'm not on the sales side, but I'm told that $75 is closer to the minimum for, e.g. a Ruby skillset, and many shops, such as my employer, charge much more--but yes, at that rate you're better off going local, particularly for the colocation benefits.

</comment></comment></comment></comment><comment><USER19> I'm a partner at a Ruby outsourcing company in Argentina. I sympathize with the author, but I think the conclusion that outsourcing doesn't work is overly broad.

The crux of the problem is that working with a remote team is a __very __different proposition than working with people onsite - a fact that is obvious but that people generally fail to act on.

Quite often at my company we're contacted by clients want to hire folks in a foreign country and expect them to work like remote employees, but cheaper, and with fewer legal responsibilities. They think that through the wonders of Skype and email, people in India (or South America) can work just like on-site employees.

The reality is that outsourced development to remote teams only works when the client is willing to adapt their own work patterns to it. As a client, you need to:

* Have a __crystal clear __idea of what you want built. The less communication overhead you have with the remote team, the easier your life will be, and the more likely it will be that stuff gets implemented the way you want to.

* Have frequent and early deliverable dates. Don't start a project that will take 6 months to get a first release out with a remote team. Shoot for as early a release as possible, followed by frequent small releases. This lets you pull out almost whenever you want and also reduces the likelihood of burning out the developers on the other side.

* If you already have a company with a bunch of people, have the remote developers work outside your regular dev cycle. Don't expect to plug in a couple of guys located 5 times zones away into your regular team, unless your regular team is already distributed.

* Be linguistically very compatible with the folks you're outsourcing to. If you have any difficulties understanding or being understood by the folks you're hiring, then you're significantly increasing your risk.

The well known Ruby consultancies like Pivotal, Thoughtbot and Hashrocket will all tell you, that outsourcing to foreign countries is a mistake, and that developers __need __to be on-site. This, of course, while basing a huge amount of their business on Rails and a bunch of other open source libraries and frameworks which are developed almost entirely by distributed teams. These companies have an economic incentive to lead people away from outsourcing to cheaper countries, so follow the money.

It just also happens to be the case that since many clients don't understand how much their own workflow needs to change, many outsourced projects fail and reinforce the idea that outsourcing doesn't work.

<comment><USER20> "Have a crystal clear idea of what you want built."

Rarely have I ever worked for a company that knows this. The last company where I worked would change their mind mid-stream every couple of weeks and it added almost a year of extra time onto the final release date.

It's usually not this bad, but if more companies followed this (not even just with outsourcing), there wouldn't be as many failed projects.

<comment><USER21> It isn't bad to change requirements depending on user feedback. You can have the best implementation in the world, done after the best specifications in the world; but it's all for nothing if customers don't want it.

</comment></comment></comment><comment><USER22> Here's why you should feel threatened by programmers in India.

I recently hired a guy over there to work for our startup. He's smart and he gets things done. He's still a little green, but overall he adds a lot of value to our company. He's just as good as anyone I would have found in the US.

And after we exit/die, the company he starts might be competing with yours.

India has a billion people, 10's of millions of code monkeys, and millions of good coders. The existence of code monkeys doesn't mean you don't need to compete with the smarter guys.

<comment><USER23> Except that he won't. There seems to be a strong societal and cultural pressure working against people that want to go into business for themselves.

My Dad thinks I'm a bonehead for spending my time at startups and such even though I've tried explaining how working at a large corporation can suck your soul out. I'm pretty sure its not just my Dad and immediate family.

<comment><USER24> Isn't that little anecdotal? Yes agreed there is, social bias against people who want to do start up. But I see many people coming up against that and starting up their own startups. Agreed majority are still sweating in IT services, but we don't expect them to do startups anyways.

In fact, If OP was able to hire a single guy who is good and works remotely, that single guy is 100% startup material (otherwise, he would have been already employed at big IT service company) and very likely to start on his own few years down the line.

<comment><USER22> Actually, my guy was employed at a big IT shop (Microsoft, not an outsourcing shop). He quit since he felt he was stagnating.

</comment></comment></comment></comment><comment><USER25> There is some truth to this. A long while back when I was doing projects, I got a project from a US company.

When after a week of understanding the scope, I quoted my price at around $150/hour they were shell shocked. The work was for redesigning systems that simply were not scaling (designed originally by a US company by the way). At the last minute they backtracked and demanded that since I was from India and the cost of living was much lower, I should charge them around the standard $25/hour.

I can never compete in the project game - and I dont want to anymore - <USER2> of this attitude by every single US company that I have ever interacted with!

I passed them on eventually to a $20/hour company in Delhi, even while I explained to them that none of the coders there had any experience with designing systems that scale.

There is also a tendency to feature creep the project since it is only $20/hour which amuses me and is a sure fire recipe for failure. When we ask them if they want a project manager or an architect who can work with them on architecture/ feature set selection they refuse because they cost way more than the coders.

I am not saying your experience is not true, I am just saying that given the attitude towards India, it is bound to the experience more often than not.

The non-completion of the project above could have been for many reasons... feature creeping, inability to communicate what the client wants, language differences and yes, downright bad coding. Since you were not able to clinch the project - which I believe is simply bad salesmanship, like in my case earlier - your "I told you so" rant is based on a massive leap of faith that you or any "US based" programmers could have finished the project on time, which I am simply have no reason to buy.

</comment><comment><USER26> The people who can't finish after double the allotted time exist in the US, too. Except here they bill the government $100+/hour to not finish FBI case file systems or air traffic control revamps.

There exists good developers in India, but they are harder to find than good programmers locally, because of the distance.

It really is the case that 50% of everybody is below median — doctors, programmers, judges, …!

</comment><comment><USER27> As a product manager for the last 6 years, I've had the opportunity to work for outsourced teams in India, Romania, and Ukraine. I've become really good at managing remote teams, and it can work out really really well. What I write below is based on single data points in each country...

India: I didn't like working with the Indian team. They had the tendency to be overly literal and "by the book" - the book being whatever tech stack they knew. They wouldn't ask questions or push back on things, and the result was crap.

Romanian and Ukrainian teams: did / doing an excellent job. We were able to get them at $40-50 an hour, and they are every bit as good and productive as local teams. I sometimes feel like I like working with outsourced teams better than local teams, because the relationship is straight-up business. I have to make sure that everything I ask for is really strong and really helps the business because I'm very aware of the costs involved.

Having said that, it is important to have a couple things: have someone local who can look over the code and be a man on the inside, to make sure everything a PM can't see is to the standard, having a good project manager of the remote team, and have someone who manages the whole thing who knows how to do it.

<comment> T-hawk > the Indian team. They had the tendency to be overly literal and "by the > book"

My anecdote: We had a spec for a financial business application. Two of the database fields were last-changed-username and last-changed-timestamp. The document mistakenly had them populated backwards, specifying that the current user's name should be populated into last-changed-timestamp and vice versa. You can guess what happened when the Indian outsourcee coded it.

"I ran this and got a type conversion error. Did you even test it?"

"Yes, I got the same error and that is what should have happened based on the spec."

"How did you test the rest of it, then?"

"I was unable to proceed because of that error."

(I'm not generalizing from this one programmer to all Indians. I'm sure programmers that dumb exist everywhere.)

</comment></comment><comment><AUTHOR> The author here, great conversation, gang.

To be clear, I don't mean to dump on India specifically, but rather offer up a narrative that counters the notion of overseas talent being an insurmountable threat. This missive applies equally well to any offshore outsourcing, but I agree that generality gets lost. andrewfelix's suggested title "Why I Will Never Feel Threatened by Bad Programmers" is good but doesn't quite hit it: "Why I Will Never Feel Threatened by Outsourced Programmers" perhaps captures my intended message the best.

This is about insights I've gained from "coming late to the party": projects that first went for implementation overseas, and which I subsequently got to clean up or improve upon. Much like many of you are saying, I found it refreshing [within the context of the "threat" of outsourcing] to experience that programming talent is indeed the primary factor in winning development jobs, with solid communication ability (aided by proximity) a close second.

I don't know that everyone has the benefit of that realization born of seeing firsthand how several such projects turn out (I didn't--out of school in '03 a popular narrative was that programming jobs are vanishing and there's nothing you can do about it). Calling out the myth of cheap overseas programming I reckon can be useful to both programmers (encouragement) and decision makers (insightful warning).

<comment><USER27> Re: coming late to the party, have you considered that maybe you are suffering from some kind of reverse-surviver bias? In other words, that you only get brought on to failed outsource projects. If the outsource project works well then you don't see it.

<comment><AUTHOR> Totally fair point--the fellow I recently talked to is completely an instance of that bias.

For sure, there's nothing statistically significant about my few experiences: I have only observations of some of the shortcomings that are quite real.

</comment></comment></comment><comment><USER28> Why single out India? Sure, it's become a bit of a byword for "outsource" but I think you'd find the same were you to outsource to any country - even within your own country.

The problems pointed out largely surrounding happen due to the difficulty of communicating with a remote team. Having the product owner and the development team geographically distant make everything ten times harder; doesn't matter if they're in India or on the other side of the same country.

<comment><USER23> Agree that communication (or lack thereof) is a key issue. That can be worked out but having 11PM conference calls or combined hacking sessions stretching to 2-3 AM gets old very quickly.

Another is the fact that the culture within a lot of contract shops isn't exactly innovation-driven. I really don't understand how you could get an engineer/coder passionate enough to be interested in some stranger's project.

Net net I agree with the author: you can still make a career out of tech. The doomsayers from ~10 years ago who predicted the end of the US programmer were wrong. I don't think however that big companies (Cisco/Microsoft: any company with a big India development center) will ever hire legions of US programmers again though. That train has long since left the station.

<comment><USER18> _I don't think however that big companies (Cisco/Microsoft: any company with a big India development center) will ever hire legions of US programmers again though. That train has long since left the station._

Are you sure? Lots of US companies are hiring lots of US developers. Google comes to mind immediately, but I'm sure everyone else is too.

<comment><USER23> At the big company where I work they're actively getting rid of their US-based employees and hiring in India and China. My employer isn't one of the ones I mentioned above. But I know from friends working there, that this is the case there as well.

I think there are a number of reasons for this.

1\. Many engineers just aren't interested in the old fogey US tech companies. Do you think a smart kid out of a US college would be more interested in working at Google/Facebook or at Cisco/Microsoft? As a result they have a tough time hiring. In India, people actually LIKE working for the man at big giant companies. It is a status symbol. So its a lot easier to pick up good talent there even if the company is regarded as a has-been in Silicon Valley.

2\. At some point in a tech company's lifespan, decisions seem to be made purely for financial/cost-saving reasons instead of for product/customer reasons. This is usually the point at which good engineers start leaving the company because they realize the bean counters are running things. This is also when these companies start expanding their India ops. Word gets around, and hence this is somewhat co-related to point #1.

3\. Empire building: For some weird reason, engineering managers love having a lot of reports. Its reasonably cheap and easy to staff up in India and China, which means an engineering manager at some loser company in the US can get to brag that he (its always a he) has 100 engineers reporting to him.

</comment></comment></comment></comment><comment><USER29> With all due respect, there is no reason that folks in India will not learn the same stuff the author learnt. They would (and probably are) on hacker news - learning the same subset of things.

And, they live in a country where $2 still buys you a decent meal. I don't see why they wont be able to do a good job, for less.

<comment><USER30> You are making a good point. I'm from a third-world country, and I'll tell you why: they shouldn't be developers in the first place.

1\. Communication: They fail to communicate not because English is not their native language. They'll also fail in their native language. Communication is a skill. English is a language. They don't invest to learn good communication, and also to learn the language.

2\. Coding: They are bad coders. They don't produce good code because they don't want to learn version control, unit testing, and programming patterns. They are too lazy to open up a book and read. They are too lazy to subscribe to programming blogs and listen to podcast. They think that what they learnt in school and university is more than enough.

3\. Creativity: Briefly, they can't look beyond their room window. They don't bother to know if the UX is good enough or the kind of audience for their product. They don't want to create. They prefer to copy/paste.

This is not India. This is most of the "developing" world, a also a part of the "developed" world.

</comment></comment><comment><USER31> Tech talent in other countries isn't the issue.

Demonizing / downplaying foreigners to feel better about ourselves doesn't really solve it either.

Take a look at who decides to send work overseas to increase their profitability. Business owners and management.

Threatened people are usually those who aren't moving. I'm not saying you're not moving. If you're ahead... stay ahead. :)

If we don't feel threatened today and sit cozy, if developers elsewhere (even in North America) keep improving, they will eventually catchup and get ahead.

</comment><comment><USER32> I don't think the problem is "overpriced" programmers in the US or "bad" programmers in India. The problem may not even be programmers at all.

My guess is that a big problem is "business people"(1) deciding to get their idea implemented on the cheap without knowing the technical challenges involved or even how to clearly communicate with programmers.

This just demonstrates that a founding team needs to have some sort of technical expertise, preferably from everyone on the team. There's no need to be a genius, but at least have a little, tiny bit of experience making a computer do what you want it to do. That makes communicating with programmers a lot easier.

I don't work for a startup, just the opposite, a huge multinational. I see the consequences of relying on people with zero programming experience making decisions about managing software development. There is definitely an attitude of "just ship it to India" without really thinking through the details of what that means. Tsk, tsk, the consequences will not be pretty.

(1) I am not bashing business people here, I am one myself, I am just saying this is often the root cause of the problem.

</comment><comment><USER33> If the author were writing in the late 60's he could have titled a similar piece: _Why GM will never feel threatened by Toyota_

<comment><AUTHOR> That's a very insightful perspective, but I'm campaigning in the opposite direction. What I think you're implying is that GM was complacent, didn't feel threatened, scoffed at the notion, and thus has been over taken.

My thought is that to a large part we've ALREADY been sold on the idea that we can't compete, so we shouldn't even try--that outsourcing is here to stay, and programmers in other countries will have no trouble out competing us. I'm proposing that we don't believe the hype, that we can compete effectively.

It's a rallying cry against complacency.

</comment></comment><comment><USER34> Decent Indian Outsourcing Companies charge 50$/hrs. Authors friend was willing to pay 12$/hr and he got what he payed for.

Outsourcing or not, if you want cheap, you will get cheap.

<comment><USER35> The whole point of outsourcing is to get something done at lower cost. If $50/hr isn't significantly lower than what it would cost here (including factoring in the intangible costs such as communication time, etc) then outsourcing would no longer be compelling.

<comment><USER36> $50/hr is extremely cheap in the US. You can find some competent people at this level, but mostly pretty green. If you are hiring an actual agency, competency probably starts at $100.

</comment></comment></comment><comment><USER37> I think some of these points could be made about any contract developers.

The biggest issue I've seen is that if you don't have things fully spec'ed/flushed out, it becomes a mess. With a couple of committed developers working together no matter where they are, let's you be more agile, and not have to do as much up front work.

<comment><USER37> Also, taking 500 cheap hours instead of 100 expensive ones, means your product is going to ship later...

<comment><USER31> Hours of outsourcing companies are largely about milking the most overall money possible. Sadly North American companies have taken this hook, line and sinker and they over pay for too many hours. First they fell for the empire builders in their own offices, and now they fall for it with strangers.

I outsource and I don't tolerate a 20-30% overage in time at any rate. Surprisingly 100 hour quotes can come down to 30-40 because there was a "mis- understanding in scope".

Another thing I've found is a "Senior" person overseas has 3-5 years, which is maybe $20-25/hour in North America.

Paying $14-17/hour overseas is hilarious for the disconnect in time, assuming you know how to write clear enough specs that it works how clearly communicated and understood.

</comment></comment></comment><comment><USER38> Just because you pay 1/10th of a price that you will have to pay in the developed countries does not mean that you are getting less quality people. The truth is that the cost of living in a country like India is comparitively less. 1 cent per minute is what we pay for telephones $2-3 is good enough to get a sumptuous food. It is the macro economic factors that make workforce available at a competitive price in India.

I think it is about lack of homework on the part of the outsourcer that causes the trouble most of the times. When you are smart enough to hire a developer at less than 1/10th of the price that you will have to pay you otherwise shouldn't you be atleast twice that smart. A clearly defined wireframes with specification document is a must before you start any project. Ask your developer questions on the basis of wireframe to ensure both of you are in sync. As a first step outsource 2-3 modules in phases to see if the developer is able to meet up to your requirements. And do the above irrespective of if you are hiring someone from India or any part of the world which promises kick-ass developers at $100 per hour.

</comment><comment><USER39> First point the title is rude.

One of the biggest problem in India is culture. Right now we have a culture where companies like Wipro & Infosys go to campuses and hire 100-500 graduates , majority of them are from fields other than CS where the companies provide 3 months on training. Why do they do this? Coz someone somewhere needs to get workdone at cheaper cost, and 9 out of 10 times it cuts quality. Quality of code for the client and quality of hiring for the company.

The other major issues is culture. Indians push their kids to be Engineers and Doctors and kids do it even if they dont like it. more than half of my class of 2006 is no longer in the Software development fields coz they never liked it.

Edit:

Also you can get bad programmers everywhere , its just that India , due to the population has a large number of them which makes finding good people & companies very tough.

</comment><comment><USER40> People are missing the underlying root cause of the lower quality programmers in India -- Culture. There, upward mobility is the goal, not being the best programmer. People take a programming job for a year or two, then look to "advance" into management/leadership/etc. So the result is a large number of junior programmers.

That, in turn, is why you need to give very explicit instruction, and why much of the work needs a lot of QA.

Knowing this also makes it a lot easier to interview firms or individuals, looking to their own personal motivations to see whether they match the overall cultural trends or not, and thereby you can build a better team.

</comment><comment><USER41> I've seen this outsourcing problem in a old role I had. For me there were 3 main problems;

\- Not adequate training of these guys. I tried to convince the powers to send someone local over there for 6+ months to get these guys up to speed and ship shape but the management feeling was a good set of written instruction will do the job. Sorry, it wont for work roles of any complexity.

\- Being remote and in different timezones created lags in turning work over that had to be looked at at both ends. Also they didn't all see the bigger picture or side issues which are important to help understand motivations and then create solutions and value ad in many project as they just had the main brief.

\- Cultural differences with Indians I found is they don't like to say they don't know how to do something. I think this is a loss of face not to know or perhaps they are just worried about keeping their jobs. So often if you give them a project and they don't know how to do, they will do something else they do know how to do just to show you they were working. I kid you not... it was really frustrating finding out a week later they didn't know how to do a job so decided to make a new database instead because they could do that. It created problems a bunch of times.

Overall in my experience I found outsourcing is good for jobs where you have clear "A,B,C,D" instructions but for jobs that had to go from A - D and they figure out B and C, your better off keeping this locally. But that said I'm not adverse to outsourcing more complex work as these guys are generally smart and highly motivated. I think the problems I had could have been fixed by rotating local people in a reasonable ratio to the Indian group to keep culture aligned and maintain personal contact.

</comment><comment><USER42> Outsourcing companies using a per-hour/day model don't just save on costs by hiring developers who are not very good at what they do, they benefit from it through increased number of hours required!

It's the model, not the location/nationality.

<comment><USER43> This. Over the years I've been involved in cleaning up horrible messes created by US based consulting companies using US labor. The incentive is to sell you hours, not to sell you a working product, and the outcome is predictable.

I have not doubt you can outsource your programming work to India if you do it the way companies like Oracle and Google do it - go to India, hire your own management, hire employees, and give the local managers enough authority to manage the project in their time zone.

</comment></comment><comment><USER44> Good and bad developers exist anywhere and everywhere. May be because India is a country of a billion people, even small percentages lead to a big number. So your chances of finding not so good developers are higher in India.

But that does not mean that India is all about cheap software development with code that never works. Outsource your projects to the right people and you get things right. There are pretty good companies such as Slideshare, Zoho and most of the big guns like Google, Microsoft, Adobe with offices in India where great products have been developed by Indian developers.

All I say is, give developers in India the kind of money they really deserve (which is still significantly less than what their American counterparts command; it's more to do with the lower cost of living than anything else really) and you would get software that matches international standards.

<comment><USER45> > May be because India is a country of a billion people, even small > percentages lead to a big number. So your chances of finding not so good > developers are higher in India.

Sorry, but you really should try and do that math again.

</comment></comment><comment><USER46> The project I have been involved with over the past 6 months has been quite strange. I'm in Europe, and the company has a team in Hyderabad. The only difference is that the team in Hyderabad is determining the requirements, and I'm writing the code for them. It's a bit of a vice-versa land, especially compared to a few of my previous projects. I think it's quite educational for both them and us, to experience things the other way around.

With developers, you get what you pay for. Good developers in India cost almost as much as good developers elsewhere, and the small cost saving is eaten up by the losses due to distance and culture.

</comment><comment><USER47> Well the problem is not about outsourcing to India, but outsourcing to people who are not really programmers to begin with. Almost 80% of my classmates ended up in software outsourcing companies like this. Guess what? We didn't learn computer science or any meaningful programming in our classes, ever (we actually studied biotech). Almost none of those guys have probably ever typed a single line of code until they were hired. They're just put through some intensive 2 month training where they suddenly magically learn programming (most of these people barely passed every exam they've ever encountered in their life, btw). I'd say 1 in 10 of those people actually cared to learn stuff as opposed to just currying favor with the TLs and being dead-weight in the groups. But the ones who do the work seem to be universally unappreciated thanks to rotten corporate politics. I've seen meetings progress in these teams and a bunch of stoned school kids have probably had much better luck deciding on their agenda than these people.

Does it mean Indians are not smart? Of course it doesn't! It's just that most Indians who actually _are_ smart either transport themselves to the States or end up in the Indian branches of companies like Microsoft or Oracle. Only the absolute bottom rung of barely-competent people end up in software outsourcing companies and that is why you get such POSes out of them. And don't even get me started on the call-center recruits!

</comment><comment><USER48> Although it is unfair to generalize this to all Indian software companies, unfortunately, it is mostly true. In my opinion the reason is mostly one of these three:

1) Some Indian companies, look to cash in the price arbitrage, and have a short term view (3 - 5 years). So they bid for projects, where they have very little expertise and experience. (In India, there is a huge market for sub- sub-contracting. Companies, win projects and then look for people with expertise to actually execute them. (Personally I have been asked to consult so many times)).

2) Education in general is in shambles and especially C.S. education. Also education is (unfortunately) a business. For example the latest fad is to start Android development classes. So many are coming up. (but most of them don't have good tutors. (Again, personally I am asked to come in as "Industry Expert"). Students join these classes and 3 / 6 months later they consider themselves qualified. (when in reality they know so little).

3) Most students (regardless of aptitude to software development) take C.S. is college because of better job prospects. Obviously they cannot be good engineers. There is such a shortage of engineers, that invariably such people do get hired (which feeds the cycle) and lowers quality of output.

About Me: I am an Indian software developer and founder of a software development shop.

</comment><comment><USER36> I wouldn't get too complacent. The reason for these bad experiences is similar to manufacturing horror stories in China: basically companies that are competing on price alone are going to give you the minimum they can get away with. Over time companies that outsource are going to come to terms with the failure of this bargain basement model and those companies will either improve or be replaced by new companies that provide "good enough" service.

</comment><comment><USER49> I'd feel more threatened by incompetent management and by manegement that sees workers as replaceable things. The bottom of the barrell programmers that are hired could be much better if there were training programs and they wouldn't be undercutting everyone's salary/wages because they'd be more educated and see that workers deserve more payment for their work.

</comment><comment><USER50> Tell you what, I want to see if this is true. So here is a unique offer.

If anyone here would like me to build a web application for them from scratch, I will quote you a price and a time. The price will be my usual freelance price ($100 / hour) but the turnaround time AND the quality will probably delight you.

Here are my credentials briefly:

I have experience with C, C++, PHP, Mysql, Javascript, CSS3, HTML5, Node.js ...

I have built complex integrations using the facebook platform since 2007 and I have built apps and pages for various brands etc.

I authored a framework that lets me develop social sites and apps in a fraction of the time it would take from scratch. An earlier version was open- sourced at <http://phponpie.com>

I can administer Linux and set up development environments, version control, project management, and can act as a team lead

I have had to deal with issues involving scaling architecture (e.g. sharding), security (e.g. CSRF prevention) and browser incompatibilities. In fact my framework takes care of most of them out of the box, so I don't have to reinvent the wheel anymore.

I've been managing a team of developers for the past two years (<http://qbix.com/about>), so I could help you with leading a team

I've created some apps that have been downloaded about half a million times and have 30k daily active users, so I could probably consult you on increasing word of mouth and engagement.

I'm a CEO of a start-up, which has exclusively hired overseas developers. They are Russian-speaking, however, not Indian. It works for me since I am Russian speaking.

But I do consulting on the side.

The experiment is ... I am curious who reading this would actually contact me and want to hire me. I will make myself available for the next month to do my best on any project I decide to take on.

My guess, however, is that hiring is difficult and connections are usually made through other channels (such as recruiters). This is why many people hire Indian developers online. Because online, it is a much more attractive option.

You can contact me by going here: <http://qbix.com/about> and clicking the right button.

I will report on whether I got any real offers :)

</comment><comment><USER51> Be it onsite/nearshore/offshore, "What was the parameters evaluated to choose a Consulting company or freelancer?"

If price quoted was the only criteria to evaluate, then there are many unknowns

We face the reverse problem, so many times american clients come to us to get a quote, after getting quote then telling it is 2x their budget.

When we give them a detailed breakup question the need for documentation, requirement freezing in the name of Agile.

Also many question why the need to signing off with acceptance testing and would ask for perpetual warranty support.

Now our new presales activity includes gauging clients software life cycle knowledge and understanding working with remote teams.

We take clients and projects where we find a right fit, and can meet or exceed client expectations.

We have been growing at 100% year on year for past 5 years, and employ 132 people now

</comment><comment><USER52> This is like I paid for an iPad clone made in China and concluding that iPad's made in China are of low quality. You need to be an Apple or Google or Microsoft or you should have enough money to afford Wipro, Infosys or TCS to successfully get work done out of India.

<comment><USER53> I think you've mistaken the analogy here. China = Wipro/Infosys/TCS. Not Apple/Google/Microsoft = Wipro/Infosys/TCS

</comment></comment><comment><USER18> The problem with outsourcing to India is the problem with outsourcing: when you give someone a spec and x dollars to implement it, you get exactly what you specified. Most of the time, that's not what you want. You need someone to say "no" to bad ideas and features that will take too long to implement relative to the value they'll provide. Outsourcing companies won't do this, since the incentives are set up for them to take as long as possible.

There are two reasons why you deserve your $250/hour rate: because you know how to build software, and because you know what not to build. If you can't do the second one, you're not going to make your $250 an hour.

</comment><comment><USER54> The majority of people who get burned are people looking for a deal. I mean, it doesn't matter where someone lives $14/hr is cheap and you have to ask why it is so cheap.

OK, the cost of living is cheaper in India than it is in the West. Thats fine. However, if that means that they are charging 25% of the minimum you would expect to pay you have to ask why it is THAT cheap.

Often the difference in cost is a linguistic barrier and copy and paste programming.

I think India can really compete by charging 60-75% of what a project would cost in the West and providing the work to meet those expectations.

If you are going to India for a bargain though you are more than likely going to get burned.

</comment><comment><USER55> Comparing nationalities is overly general and wrong. You should have stuck to comparing hourly rates instead. The points you have made may apply to comparing U.S. based developers just as much as they apply to comparisons with non U.S. based developers. I have seen U.S. developers charge rates which I know are below the level that a freelance developer would need to live on, and I have seen these same developers be very flaky. A solid developer can charge as much as anyone regardless of location.

</comment><comment><USER56> Talking from personal experience of having managed off-shore projects from an on-shore base the most significant challenges are:

\- misaligned interests

\- availability of information

\- control

\- security and compliance

\- communication

As far as "does it EVER work" concerned: it does. It doesn't work well though. Most people can run, doesn't mean that most people can run as fast as Usain Bolt.

My whole opinion at: <http://programmers.stackexchange.com/a/46934/12348>

</comment><comment><USER57> This post is so similar to my current situation I checked the authors connections to see if he was talking me myself and my partner. I am a designer with little code experience who tried to spec and design an app using Indian developers. Needless to say its been a disaster and many months and hours paid later we have a inefficient, poorly coded app which likely needs to be rebuilt with an American team.

<comment><USER23> You'll still need to figure out how to spec your project.

Otherwise in your next iteration you'll still have an inefficient poorly coded app, only you would have spent 3X times more money getting there.

</comment></comment><comment><USER21> TL;DR - consultant writes about how his price is justified, then registers a new account with HN and submits the story

</comment><comment><USER58> Very true.You would be surprised to know that even being an Indian I have so bitterly experieicned this truth that you have described. Now learning to program, so that I odnt get fooled completely next time.

</comment><comment><USER59> We are harmless geeks. Who really feels threatened by _any_ programmer?

</comment><comment><USER60> > the above is meant to apply to overseas outsourcing in general

I feel that this is a really arrogant attitude. I wonder if the author ever heard of that part of the world called Europe for example.

</comment><comment><USER61> "The thing is: I have yet to see a project done overseas at that sort of hourly rate that has actually gone well."

The argument sounds like something Rush Limbaugh would say, "It's cold where I live, therefore global warming is a lie!".

</comment><comment><USER62> biased and poorly thought through article

</comment><comment><USER63> The situation described should never happen.

Did they pump contacts for recommendations on a good outsourcing shop first, or at least ask for references and follow up on them?

I wouldn't even take my car to a mechanic blind.

</comment><comment><USER64> Please change the racist title. Racism towards programmers from India is a problem and you're contributing to it.

<comment><USER64> If downvoting, an explanation of why you feel this article doesn't contribute towards negative attitudes towards Indian people would be appreciated. While the title refers to the place, not the people, the implication is the same.</comment></comment>


Rosetty: A YAML/JS/Node/Python Dual Language View Tutorial Template - <AUTHOR> https://github.com/fornof/rosetty
My goal was to create a dual language viewer as a tool to use at a meetup - basically a lesson plan that people can take home and study if they like. I used the Rosetta Stone as a basis for this simple template.
I only have python and javascript side by side, but the section.yaml can easily be added on to add more languages and more sections to each languages. https://github.com/fornof/rosetty/blob/master/sections.yaml
I made this with a Yaml file that has all the paragraphs in it, I used a python script to syntax highlight and url replace google(subject) with google search links. Node.js is used as the basic file server. Tornado could have also been used. Vanilla javascript is used alongside js-yaml.
Further work I would like to accomplish would be to : 1. get sections for classes, inheritance, and string manipulation. 2. Put in Go and Java so someone could compare Java with Python, Python with Go, and Go with Java. each side by side. 3. Make more pages with the yaml as a template.
4. Do meetups! <comment></comment>


Ask YC: Feedback on BreakkUp.com - <AUTHOR> http://breakkup.com BreakkUp was originally an idea my gf had roughly 2 weekends ago. The idea came about after receiving 4 phone calls in a row seeking advice regarding relationship troubles. I took the idea a step further by building it around a pre-established model (Digg) using open-source (Pligg). Maybe this was a bad idea on my part, maybe not...
For me, this project is an experiment in replicating models for other verticals using open-source. And, an exercise in CPM/CPA advertising and PR -- two areas I don't feel I have a strong understanding of. I'm currently working to raise money for an original idea and ad revenue will play a big part in our ability to stay afloat.
In total, from idea to beta product -- I've spent less than a week putting this together so criticism certainly won't hurt my feelings. We most definitely need to work on an About Page and Tutorial, my assumption is most females have no idea what Digg is.
If I had more time, I'd like to put more focus on the presentation of this site so it looks less digg-like, but my client work needs attention this week. Gotta keep the lights on!
I'm rather excited about BreakkUps opportunity to generate modest revenue (assuming we get traffic) because I feel the audience will often be in an emotional state when visiting, and roughly 50%+ female.
We also own these domains:
BreakupWithHim.com
BreakupWithHer.com
Suggestions, comments, criticism please. Thanks guys. <comment><AUTHOR> BreakkUp was originally an idea my gf had roughly 2 weekends ago. The idea came about after receiving 4 phone calls in a row seeking advice regarding relationship troubles. I took the idea a step further by building it around a pre-established model using open-source (Pligg). Maybe this was a bad idea on my part, maybe not...

For me, this project is an experiment in replicating models for other verticals using open-source. But more importantly, an exercise in CPM/CPA advertising and PR -- two areas I don't feel I have a strong understanding of. I'm currently working to raise money for an original idea and ad revenue will play a big part in our ability to stay afloat. I'm rather excited about BreakkUp's opportunity to generate modest revenue (assuming we get traffic) because I feel the audience will often be in an emotional state when visiting, and roughly 50%+ female.

In total, from idea to beta product -- I've spent ~a week putting this together so criticism certainly won't hurt my feelings. We most definitely need to work on About and Tutorial pages, my assumption is most females have no idea what Digg is.

If I had more time, I'd like to put more focus on the presentation of this site so it looks less digg-like, but my client work needs attention this week. Gotta keep the lights on!

We also own these domains:

<http://BreakupWithHim.com>

<http://BreakupWithHer.com>

Suggestions, comments, criticism please. We haven't started advertising it yet except to peers...

Thanks guys.

<comment><USER2> I tried this same experiment with pligg on a site I put up, freenormous.com (free samples and offers). I found that almost no one posted, even after I worked hard to get traffic and spent money on adwords. Now I get postings-- they're just all SEO and spam.

It is _very_ tough to build a community. I spent a lot of time talking to myself under different usernames. Only around 1% of users will post (maybe less, from my experience).

I also found that even with 1000 visitors a month, I was making less than $5 per month with adsense. That would be fine if it didn't take a continual flow of real posts to build content, but it does.

This soured me on adwords based based businesses, and even moreso on any business that requires a network effect to work. Now I focus on business models that offer value even when there are no other users.

It was an educational experiment, though, and for the time investment, gave a good return on enlightenment.

<comment><USER3> "I also found that even with 1000 visitors a month, I was making less than $5 per month with adsense. That would be fine if it didn't take a continual flow of real posts to build content, but it does.

This soured me on adwords based based businesses"

$5/month for 1000 monthly visitors is not bad for ads in general. Assuming maybe 10% of those visitors are really active and the others are just one off hits (1-2 pageviews) you're looking at about 5000 pageviews/month which would equate to $1 eCPM on AdSense, which is actually a pretty decent ad network eCPM.

<comment><USER2> I wasn't thinking it was bad for adsense. I was thinking it was a bad price for my time... It took a lot of hours to create the content, and was difficult to get others to create it on their own.

</comment></comment></comment></comment><comment><USER4> I don't care how obvious the purpose of the site seems to you, I don't care how much you don't want one, but the EASIEST thing I should be able to find is the "About" section, whether it's a 2 line blurb ont he front page or a separate page.

People need things explained to them and leave if you don't.

<comment><AUTHOR> The one-liner is available for non-registered accounts on the rectangle image to the right of the site... the big letters read WTF? :)

We're working on the formal About / Tutorial stuff this week.

<comment><USER5> You literally need the words About as a hyperlink. Don't get too creative here. We are used to a certain pattern that every website uses.

<comment><AUTHOR> a high priority is to add About and Tutorial buttons this week. thanks guys.

</comment></comment></comment></comment><comment><USER6> Post to Craigslist personals to drive traffic.

People hitting up the personals likely have funny stories to share.

</comment><comment><AUTHOR> Just wanted to say thanks to all the feedback, was not expecting this much and we really appreciate it!!! We're going to incorporate a lot of the changes and suggestions that have been mentioned thus far, I only wish I had more time and 10 arms!!

</comment><comment><USER7> I'm not a big believer in the whole "social media" thing, but I do like this site. It's entertaining and besides that, I can see it being useful to get a different perspective on relationship problems. The nice thing about this is that for it to be useful you don't need commenters who are "experts," just people who can see things in a different light. Sometimes that's all it takes!

</comment><comment><USER8> It's a good idea and will be successful with very little effort. But you NEED to make the comments possible without signing up for the first few weeks, you'd have made me bookmark it if I had been able to leave a comment Because I'd have been curious to go back and reply. But no, I could not comment, could not be bothered to sign up and so moved on

Comments open for a few weeks, spam on yahoo answers and fluther and in a few weeks you'll have a big site. Send me a thank you note then.

<comment><AUTHOR> Great point and something I've considered doing but it's not in the pligg setup config, so I'll have to dig into the code to make it happen. (i'm a designer but I know a little PHP)

Since you've confirmed this notion, I'll make it a high priority to get it done before we start marketing it. I don't really like the idea of "spamming" though.

Thanks for feedback!

<comment><USER8> Here ya go:

<http://forums.pligg.com/8774-post16.html>

[http://forums.pligg.com/pligg-mods/6844-setting-anonymous- co...](http://forums.pligg.com/pligg-mods/6844-setting-anonymous- comments.html)

It will take a while before the spammers find you. When they find you, start working on that problem, till then, handle your more pressing problem of gaining users.

If you go to Yahoo Answers and point to a relevant link on your own site to the question being asked, I think this qualifies as marketing, no longer spam.

In any case, realise this:

The users of fluther and Yahoo Answers are your CORE audience. You may also take a look at the ask.metafilter.com users - if you sign up for a $5 account, you can post a link to your site under the "Projects" section. You'll get about 200-400 hits, but it's a relevant audience.

Otherwise, you'll have to use a gimmick. This is not ethical, but if you are interested in relevant traffic, then do this:

Post a troll. Target this troll towards christian fundamentalists, teenage girls, or housewives. Then visit a site where these groups are, like a christian forum, a youtube posting of Avril Lavigne or an advice site like flylady. Link to this troll of yours, and watch them get in a hullaboo about it and create links everywhere.

For example, you could write:

"My girlfriend just admitted to me that when Snoop Dogg was in town, she slept with one of his bodyguards. Should I break up with her?"

"My wife has herpes, and our gardener also has herpes. Is she cheating?"

"My sons girlfriend is 14 and he is 18. Is this legal?"

That's linkbait, but you need to target it correctly. The jaded crowd here will immediately see through that, but the groups I mentioned above will believe it immediately.

Yes, unethical I know, but it's just ideas. Pick and mix as you wish.

<comment><AUTHOR> Great thanks! I found those same threads shortly after your first post and have an email out to someone that has supposedly authored a mod for version 9.x to handle the anonymous commenting.

Will take some of your advice on marketing the site next week, after addressing feedback from HN and making some last minute changes.

</comment></comment></comment></comment><comment><USER9> Socialmoth was also a community-driven support website. They let you expose personal tidbits on a public forum. You might try e-mailing them about it, see what sort of problems they had.

I think the UI design of the site is great, but the social design needs a lot of work. Breakups are quite personal and messy -- it seems like the last thing people would want to do is expose details on a public forum.

<comment><AUTHOR> A youth teen would probably disagree with you regarding their comfortability exposing personal information on the web.

A benefit of BreakkUp is that we're not trying to be a social 'networking' site, it's mostly geared for individuals to use with relative anonymity.

<comment><USER9> Also, check out <http://www.divorce360.com> . It seems to be doing pretty well. Maybe you could modify the site to be more of a portal than just a community.

You could add some content to the site (theres lots of information about this topic). Get articles like this:

<http://www.wikihow.com/Break-Up>

Because of the domain name, you could get a nice rank on search engines.

</comment></comment></comment><comment><USER10> Just for your info - You might need to give credit to Pligg according to their licensing terms somewhere on your website. You need to link it to their original site. Something like -

Powered By: Pligg | Legal: License & Source

I do same with <http://siliconverge.com> on About page.

<comment><AUTHOR> Thanks and I will do that when I make changes to the footer / about section this week.

</comment></comment><comment><AUTHOR> Opinions on tag line?

COMMUNITY-DRIVEN ADVICE or,

BRUTALLY HONEST ADVICE (original tag line)

<comment><USER8> Don't forget your target! It's not this crowd - go to fluther and read the quality of the submissions there. That's basically who you are targeting, so customize your text for them.

Add a button to send this to your friend. Take a look at "AddThis", it's easy to integrate and will take care of that problem for you.

I like "Community-driven advice", as brutally honest sounds a bit scary. Teenage girls are sensitive about this stuff, it's the WHOLE world.

It still sounds a bit technological, but I can't think of anything better :)

<comment><AUTHOR> The fear of "brutal" to the youth audience was my exact concern too... However, I liked brutal because some people just don't understand when they are in a bad relationship, and need a reality check.

<comment><USER11> Community driven sounds too geeky for your target audience. How about "Real Advice from Real People" or "Answers to Your Relationship Questions" or something along those lines. Then maybe you can include a more detailed description with what the site does for people.

<comment><AUTHOR> I like "Real Advice from Real People".

<comment><USER8> It's bad. Too personal, I don't want to talk to "Real People", I want to be anonymous.

</comment></comment></comment></comment></comment></comment><comment><USER12> I think you should have two voting options: 'Break Up' and 'Stay Together'. With only the option to vote 'Break Up' can there ever really be another conclusion?

Perhaps you can also have 'color coded' comments to denote the position you are taking.

<comment><AUTHOR> I agree, looking to build in this functionality in the near future.

</comment></comment><comment><USER13> My main issue is with the domain, the double k hurts. You're appealing to non- web 2.0 people and so typoed domains are not going to be that good. You should look for maybe something that is real words. Other than that, great stuff!

<comment><USER14> It's really, _really_ difficult to come up with a relevant, concise dot-com domain name that's not already taken.

<comment><AUTHOR> yeah, i spoke with the breakup.com owner and he's passing on offers that would buy him an exotic.. I just can't afford that. We also own BreakupWithHim.com and BreakupWithHer.com and their respective typos if someone forgets the second H.

<comment><USER14> Yep.

It's disgusting how some companies/people are reserving all the names they can think of, hoping to sell them to someone.

No wonder we have services with names like "Heroku" - at least that was free.

</comment></comment></comment></comment><comment><USER15> Hilarious and useful. Just forwarded to some of my more uh..."outgoing" friends.

</comment><comment><USER16> Interesting idea.. like the design, not sure about using pligg though, had some bad experience with it, but good luck with the 30 day mark, it sounds like a plan

</comment><comment><USER17> The blurb about your site with the "join now" button looks like an ad because of the placement and because it is roughly 300x250 pixels.

Cool logo.

</comment><comment><USER18> Nice concept, but i'd work on the design a bit. Overuse of the color red might be a bit much for some users.

<comment><AUTHOR> If we get any traction, I will definitely put some time into improving the overall look of the site. I really want to get away from the digg-style, but I just don't have time right now to dedicate.

</comment></comment><comment><USER19> I love the look - very clean, very nice. I don't know about the idea but I think it looks quality.

</comment><comment><USER20> There's no button to say don't breakup, only to breakup. Talk about negative!

<comment><AUTHOR> hahah, yeah I thought about that too... but figured "don't breakup" was implied by drama not getting pushed to the home page. I've got a lot of ideas for a version 2.0 though, that deviates away from Digg/Reddit style while retaining core functionality that makes it fun to use.

</comment></comment><comment><USER21> Watch out for Silahsiz Kuvvetler the Turkish hacker.

Seriously ;)

</comment><comment><USER22> My honest opinion, and this is about the _idea_ , not the implementation.

If you need the relationship advice from the _internet_ , the god damn internet _damnit_ , it's long past time to finish it off.

</comment><comment><USER23> <http://emo.com/> was taken? I don't want to sound like a troll, but i will, so don't take it personally, but when im in an emotionally bad situation the last thing i need is advice from random people on the internet. I also find it boring/stupid to try to give advice to random people on the internet(hey, im doing that now :D). There is a difference between a community and a mass of random people you know, the former i trust(sometimes). Hope you don't fail miserably or get bored/frustrated with you project, just thought some opposition would help.</comment>


Matthew Green cryptography guest lecture at Dartmouth - <AUTHOR> http://www.youtube.com/watch?v=uP6np_oKVCk&feature=youtu.be

<comment><USER2> Prof. Green has a great blog:

<http://blog.cryptographyengineering.com/></comment>


Y Combinator funded companies - <AUTHOR>

<comment><AUTHOR> I was at LeWeb3 and I witnessed Weebly's presentation at the startup corner. Overall of what I remember was that they guy that was presenting was prepared and knew what he was talking about. Comparing to some other presenters who were lost, very stressed and therefore getting you tired and losing you, the difference was obvious. Yoono and Weebly were the highlights for me at the start up corner...

I was trying to find the video from the presentation... www.vpod.tv has an archive with leweb3, but no luck

</comment><comment><USER2> Theres a list at:

http://yrumors.infogami.com/OldHomePage

</comment><comment><AUTHOR> xobni.com, reddit.com, pollground.com, loopt.com, weebly.com

which else?

<comment><USER3> boso.com (now auctomatic), socialmoth, justin.tv?

<comment><USER4> They're all not launched and/or making something new.</comment></comment></comment>


Why good developers don't need a resume - <AUTHOR> http://hedgehoglab.com/about/blog/2008/03/17/why-good-developers-dont-need-resume/

<comment><USER2> why doesn't google hire Linus Torvalds, with Linux and Git in his resume, I wonder why Linus never got highjacked by one the bigger IT firms, Oracle, Apple, IBM, Vodafone, Nokia etc ...

Is Linus now considered to be priceless, is he that good you can't put a price on him! I dunno ... I just wonder

I personally consider Ken Thompson to be the best programmer ever, even better than Donald Knuth (as a programmer), but both of them are old, and we know Don is busy writing books so I am less surprised to know they are not working on something big

Thought I would sure love to see a general purpose programming language written, created and designed by Don Knuth.

</comment><comment><USER3> I have to say that as a way of getting attention for his $3000-a-month internships, Seth Godin's trollish "I know this is controversial, but..." blog post challenging the desirability of every person who's ever written a resume and every employer who's ever read one has really worked.

That Seth Godin fellow must be some kind of marketing genius! He should write a book.

</comment><comment><USER4> because developers are like the brain of the IT DNA - so a good developer can just shine by showing the portfolio of his/her skills and projects.</comment>


Ask HN: Any good products to allow users to build dashboards within an app? - <AUTHOR> My company has an Angular 1.3 front-end app (looking to re-write or upgrade soon) that interacts with our REST API. After logging in users can perform various tasks and see some simple dashboards we created for them around usage. Right now the dashboards are the same for every user but we have had numerous requests for customization. We would love a tool (paid or otherwise) that our users can build custom dashboards with embedded into our front-end app. It would need to grab data from our REST API and provide basic charts and graphs configurable by the user. Does anyone know of any good solutions for this? <comment><USER2> I dont know if I can "recommend" this as we are just starting out with it, but have a look at reflect.io</comment>


Novels about Parallel Universes - <AUTHOR> https://en.wikipedia.org/wiki/Category:Novels_about_parallel_universes <comment><USER2> no Anathem?

<comment><AUTHOR> It's a Wikipedia category page; you can add it if you like...

Reading the plot at Wikipedia's other page, [https://en.wikipedia.org/wiki/Anathem](https://en.wikipedia.org/wiki/Anathem) \- I must say, it sounds pretty interesting!</comment></comment>


How I hacked biotech stock trading - <AUTHOR> https://medium.com/the-mission/trade-biotech-stocks-like-a-hedge-fund-with-these-hacks-ff153c907b0b <comment><USER2> Pretty cool. I messed around with scraping biotech execs buy signals and it worked pretty well.</comment>


2D Syntax - <AUTHOR> https://docs.racket-lang.org/2d/index.html <comment><USER2> I just love this. For some reason, our ways of specifying what we want a computer to do (I don't want to say 'language') remain mired the same territory we started in with punched cards (which I actually got to use as a 10 year old, which was fun).

I'm not sure if this particular cut is the right idea, but it's good to see experimentation. A bias I have here is that I think these ideas should be rigorously separated from the concept that some sort of WYSIWYG editor will allow non-programmers to code.

<comment><USER3> > WYSIWYG...non-programmers

That touches on the reason these type of ideas haven't gone further. Programming is definitionally limited to cryptic text. Anything that deviates from that, especially if it makes it non-cryptic or easy, is no longer a programming tool; it becomes a tool for lowly users. This detracts from the identity of programmers because that is tied to producing and consuming cryptic text.

<comment><USER2> I don't agree. I think there are two things conflated here and trying to unpick them both in the same system is a recipe for disaster. The two things are: (1) programming should be an exercise in linear-text 1970s ASCII art (arguably) and (2) programming should be easy and the hard decisions programmers have to make are all just intentional obfuscation to keep their jobs (not true).

I think a system build along lines to violate assumption #1 will fail if it has the goal of making assumption #2 go away as well. The complexity of many things we manage in text will either appear somewhere else, or bubble up in even worse ways (missing functionality or a system that is broken by design). I would really like to see work that is focused on attacking assumption #1. I'm not going to try to dictate that no-one should work on #2, I just think it's been tried without much success so many times.

<comment><USER4> Looking at it from the other direction, we can start with the premise that applications like Excel, Max, Nuke, and Blender are already visual DSLs. The users are "programmers" of a sort, but not "coders" because they don't type code. Then the question is whether such a DSL can be extended to general- purpose computation with any advantages over text-based coding languages.

<comment><USER5> None of these integrate very well with a programmers existing tools, if they did I am sure programmers wouldn't mind so much.

<comment><USER6> Huh? Excel talks .Net, Blender's a python app. I remember manipulating an excel table in vb 20+ years ago.

</comment></comment></comment></comment></comment></comment><comment><USER7> Very neat, I really appreciate the Racket community's willingness to experiment with syntax.

Looking at the examples reminds me of Julian Noble's "Elegant Finite State Machine" in Forth[0], which takes a different approach to the same problem of creating a language to better specify a problem (in both cases graphically).

[0]: [http://galileo.phys.virginia.edu/classes/551.jvn.fall01/fsm....](http://galileo.phys.virginia.edu/classes/551.jvn.fall01/fsm.html)

</comment><comment><USER8> It looks like this (e.g. `#2dcond`) implements a way to directly embed other languages in a racket file [0] and avoids the problems encountered when trying to do it using the `#reader` syntax [1] in a source file. Essentially letting you have multiple readtables in a file (probably not nestable though). I could be wrong about this (need to look more carefully when I have more time), but nonetheless could allow direct embedding of completely alternate syntax with the right setup.

[0] [https://github.com/racket/2d/blob/master/2d-lib/private/read...](https://github.com/racket/2d/blob/master/2d-lib/private/readtable.rkt) [1] [https://docs.racket-lang.org/guide/hash-reader.html](https://docs.racket- lang.org/guide/hash-reader.html)

<comment><USER9> This seems similar to the way the at-exp language is implemented.

at-exp adds support for S-expressions based on braces, and is the foundation of the Scribble markup language.

</comment></comment><comment><USER10> I find this extremely interesting! In the last weeks one of my colleagues had to work to some legacy application that was developed using National Instrument's LabView [1]. For those who do not know it, it is a visual language to develop interfaces to scientific instruments. Everything is done visually, including «if»s and «for» loops.

My colleague, which has large experience with languages like C# and Assembly, is extremely frustrated by this way of working. Everything must be done using a mouse, and even the simplest tasks require some thought in order to be implemented properly. (Although I must say that he praises LabView's hardware support and its Visual Basic-like easiness in developing GUIs.)

I find Racket's 2D syntax to be far more promising than LabView's approach:

1\. You can code it using a text editor: unlike LabView, no mouse is required;

2\. Only a few classes of statements are affected by this (LabView forces you to do _everything_ visually, even function definitions and mathematical operations);

3\. You use this feature only if you think it helps; otherwise, plain text syntax is always available.

As a side note, I would like to give kudos to the Racket developers for this kind of gems. Racket really seems to be a language which makes language experiments easy to implement and try!

[1] [http://www.ni.com/en-us/shop/labview.html](http://www.ni.com/en- us/shop/labview.html)

</comment><comment><USER11> I have some reservations about how this is designed.

All we need are columns labeled with conditions. We don't need rows. And the matrix can just have true/false/don't-care entries, with code assigned to rows.

Concretely, say we have these conditions:

       (> x y)  (stringp foo) (oddp n)

Right? Okay, so now we can identify the combinations of these and assign them to code like this:

       (> x y)  (stringp foo) (oddp n)
          #t                     #t       (whatever)
                    #t           #t       (other-thing)
          #t        #f                    (etc)

There could be a way to mark some of the rows as having "fall through" behavior. If they match, the expression is evaluated (for its side effects, obviously), but then subsequent rows can still match.

This could be worked into a straightforward S-exp syntax without any diagramming shennanigans:

       (table-cond
          (> x y) (stringp foo) (oddp n)
          #t      ()            #t       (let [...]
                                           (whatever))
          ()      #t            #t       (other-thing)
          #t      #f            ()       (etc))

Here, don't cares are denoted using (). Something else could be chosen.

A #f entry means "must be explicitly false". A blank column entry is a "don't care"; that condition is not taken into account for that row.

<comment><USER12> At that point aren't you just doing normal Racket pattern matching?

        (match
          (list (> x y) (stringp foo) (oddp n))
          [(list #t     _             #t      ) (whatever)]
          [(list _      #t            _       ) (other-thing)]
          [(list #t     #f            _       ) (etc)])

... or is that the joke :)

<comment><USER11> There you go. That just needs a very light syntactic sugar and it's there. The elements of the lists are constants, so you want to use a literal, and the quoting of that can all be hidden. The (list ...) around the incoming expressions can be trivially hidden also.

The one thing I suspect _match_ probably doesn't do is feature a fall-through mechanism that I alluded to; say we want (other-thing) for its side-effect, and then still evaluate (etc) if (> x y).

(Under no circumstances do we want fall-through to be opt-out, like in the C switch statement with its forgotten break bugs, but opt-in.)

Also, this mechanism could be optimized. Since the pattern lists must only contain #t, #f and _, they can be validated to contain nothing else. Accordingly, they can be arithmetically encoded (two bits per symbol), and subject to a numeric dispatch. '(#f _ #t) is a six bit number; '(_ #f #f) is another six-bit number and so on. Arguably, _match_ itself could do that, but it's rather specialized.

</comment></comment></comment><comment><USER13> Nicely done!

Different but similar joke for C++: [http://www.eelis.net/C++/analogliterals.xhtml](http://www.eelis.net/C++/analogliterals.xhtml)

<comment><USER14> I assume you didn't mean the Racket implementation being a joke (only the C++ one).

Personally, the Racket idea is good except for the hassle of typing in the borders (emacs-orgmode could help with that though).

<comment><USER15> To confirm that it's not only a joke, you can try the examples online in PasteRack [http://pasterack.org/pastes/72418](http://pasterack.org/pastes/72418)

<comment><USER16> That it compiles and does what the page says doesn't rule out that it is intended as a joke. The C++ code compiles and runs, too.

</comment></comment></comment></comment><comment><USER17> While I appreciate and respect Racket's willingness to experiment and innovate, I'm a bit puzzled by this.

Tables are neat to read but pretty annoying to write, especially in ASCII form. It's true that code is read much more often than written, but still, I wonder how useful this really is.

<comment><USER18> > Tables are neat to read but pretty annoying to write, especially in ASCII > form

They sure are annoying to write in a text editor, but the article does mention built-in support for them in the Dr. Racket IDE/repl.

Dr. Racket does seem like a very nice educational environment to learn some fundamentals of programming. In addition to text it can show images and tables, etc.

I'm under the impression that it is used in some universities in conjunction with SICP or HTDP.

</comment></comment><comment><USER19> The reason why I think that this will not thrive, as other projects have not thrived, is because (at least initially) it adds to the mental burden. Scanning a cond for me is almost instantaneous. It took me a couple of very long seconds for me to figure out what was happening within that table, and even though I recognized it as a truth table, it was not easy to read. The information was too separate on screen to easily compare.

I think that were programming initially presented as such, this would not be a problem, but I expect that many developers are so finely attuned and specialized to text that other methods will not take off purely because of the learning curve.

<comment><USER20> "Scanning a cond for me is almost instantaneous." This is a very subjective concern though. Consider the subtype example. For me, reading that 3x3 table, especially with the grouping of blocks, was a lot easier than mentally parsing a big pile of 'and/or' expressions, or nested switches, etc. And my impression is that a lot of programmers _do_ initially visualise some parts of their work as tables or diagrams.

Our _tools_ on the other hand _are_ indeed 'so finely attuned and specialised to text' that other methods of representation have and will struggle to get traction...

<comment><USER21> I feel like most of these complicated if else statements can generally be written much better for example.

        SUPERTYPES = {'Real': ['Integer'],
                      'Complex': ['Real'],
                      'Integer': []}

        def is_subtype(a, b):
            if a == b:
                return True
            return any(is_subtype(x, b) for x in SUPERTYPES[a])

Which better expresses the intention of the code and is more flexible.

</comment></comment></comment><comment><USER22> Tables are generally a very good idea for languages. SpecFlow/cucumber as most notable example, but I can see others benefitting greatly as well.

</comment><comment><USER23> It reminds me of Funciton, [https://esolangs.org/wiki/Funciton](https://esolangs.org/wiki/Funciton)

</comment><comment><USER24> Surprisingly exactly what the title makes it sound like. Very cool!

</comment><comment><USER25> Nobody has mentioned the dependently type prog-lang Epigram† yet?

"Epigram uses a two-dimensional, natural deduction style syntax, with a LaTeX version and an ASCII version. Here are some examples from The Epigram Tutorial:

Examples

The natural numbers

The following declaration defines the natural numbers:"

             (         !       (          !   (  n : Nat  !
        data !</comment><comment>---! where !</comment><comment>----! ; !</comment><comment>-----!
             ! Nat : * )       !zero : Nat)   !suc n : Nat)

"The declaration says that Nat is a type with kind * (i.e., it is a simple type) and two constructors: zero and suc. The constructor suc takes a single Nat argument and returns a Nat. This is equivalent to the Haskell declaration "data Nat = Zero | Suc Nat"."

Project lives here: [https://code.google.com/archive/p/epigram/](https://code.google.com/archive/p/epigram/) and the last commit on [https://github.com/mietek/epigram2](https://github.com/mietek/epigram2) is five years ago which leads me to believe that the project is abandon-ware.

† [https://en.wikipedia.org/wiki/Epigram_(programming_language)](https://en.wikipedia.org/wiki/Epigram_\(programming_language\))

</comment><comment><USER26> What editor do racketeers commonly use? I like the idea, but this seems like a burden for code editing in most normal editors except for perhaps emacs picture mode.

<comment><USER27> It's good for reading (certain) code. Without the syntax actually be functional, there's no reason to build editor support for it; editor support that makes it cobvenient to write should be expected to be a trailing, rather than leading, feature.

EDIT: incidentally, the documentation for the syntax also refers to the built- in support for it in DrRacket.

<comment><USER26> Makes sense - but I should note that this syntax is from at least Mar 2016[1], so I'm guessing people haven't been clamoring for editor support if it's not available.

[1][https://web.archive.org/web/20160316083925/https://docs.rack...](https://web.archive.org/web/20160316083925/https://docs.racket- lang.org/2d/index.html)

</comment></comment></comment><comment><USER28> If anyone wants to see some ascii-art in Scala, they just need to look at the Akka Streams-graph api ([http://doc.akka.io/docs/akka/current/scala/stream/stream- com...](http://doc.akka.io/docs/akka/current/scala/stream/stream- composition.html#composing-complex-systems))

</comment><comment><USER29> Reminds me (again) of Jonathan Edwards research. He did many editors with tables as first class so that you can avoid boolean nestings, and simplify verification / closure of your boolean mappings.

He published a video, sadly in flash [http://www.subtext- lang.org/subtext2.html](http://www.subtext-lang.org/subtext2.html)

Here's an article about "schematic tables" [http://aigamedev.com/open/review/schematic-table- conditional...](http://aigamedev.com/open/review/schematic-table- conditionals/)

</comment><comment><USER30> I love attempts at visual programming. As a kid I used to pour over the then- fashionable ads for CASE (Compater-Aided Software-Engineering) tools in DDJ and elsewhere and imagined them to do far more than they actually did... Also attempts like Amiga Vision [1]

One of the software engineers I like to go a bit fanboy-ish about is Wouter van Oortmerssen, who I first got familiar with because of Amiga E, but who has a number of interesting language experiments [2], one of which includes a visual language named Aardappel [3] that also used to fascinate me.

There are a number of problems with these that have proven incredibly hard to solve (that this Racket example does tolerably well on, probably because it doesn't go very far):

1\. Reproduction. Note how the Amiga Vision example is presented as a video - there is not even a simple way of representing a program in screenshots, like what you see for the examples of Aardappel, which at least has a linear, 2D representation. That made Amiga Vision work as a tool, but totally fail as a language. This is even a problem for more conventional languages on the fringe, like APL, which uses extra symbols that most people won't know how to type. The Racket example does much better in that it can be reproduced in normal text easily.

2\. Communication. We talk (and write) about code all the time. Turns out it's really hard to effectively communicate about code if you can't read it out loud easily, or if drawing is necessary to communicate the concepts. Ironically, if you can't read the code out easily, it becomes hard for people to visualise it too, even if the original representation is entirely visual. This example does ok in that respect - communicating a grid is on the easier end of the spectrum.

3\. Tools. If it needs special tools for you to be effective, it's a non- starter. This Racket example is right on the fringes of that. You could do it, but it might get tedious to draw without tooling (be it macros or more). On the other hand the "tool" you'd need to be effective is limited enough that you could probably implement it as macros for most decent editors.

I spent years experimenting with ways around these, and the "best" I achieved was a few principles to make it easier to design around those constraints:

A visual language needs a concise, readable textual representation. You need to be able to round-trip between the textual representation and whatever visual representation you prefer. This is a severe limitation - it's easy to create a textual representation (I had prototypes serialising to XML; my excuse is it was at the height of the XML hype train; I'm glad I gave that up), but far easier to make one that is readable enough, as people need to be able to use it as a "fallback" when visual tools are unavailable, or in contexts where they don't work (e.g. imagine trying to read diffs on Github while your new language is fringe enough for Github to have no interest in writing custom code to visualise it; which also brings up the issue of ensuring the language can easily be diffed).

To do that in a way people will be willing to work with, I think you need to specify the language down to how comments "attaches" to language constructs, because you'll need to be able to "round-trip" comments between a visual and textual representation reliably.

It also needs to be transparent how the visual representation maps to the textual representation in all other aspects, so that you can pick one or the other and switch between the two reasonably seamlessly, so that you are able to edit the code when you do not have access to the visual tool, without surprises. This makes e.g. storing additional information, such as e.g. allowing manual tweaks to visual layout that'd require lots of state in the textual representation that people can't easily visualise very tricky.

Ideally, a visual tool like this will not be language specific (or programming specific) - one of the challenges we face with visual programming, or even languages like APL that uses extra symbols, is that the communications aspect is hard if we can not e.g. quickly outline a piece of code in an e-mail, for example.

While having a purely textual representation would help with that, it's a crutch. To "fix" that, we need better ways of embedding augmented, not-purely- textual content in text without resorting to images. But that in itself is an incredibly hard problem, to the extent that e.g. vector graphics supports in terminals was largely "forgotten" for many years before people started experimenting with it again, and it's still an oddity that you can't depend on being supported.

Note that the one successful example in visually augmenting programming languages over the last 20-30 years, has been a success not by changing the languages, but by working within these constraints and partially extracting visual cues by incremental parsing: syntax highlighting.

I think that is a lesson for visual language experiments - even if you change or design a language with visual programming in mind, it needs to be sort-of like syntax highlighting, in that all the necessary semantic information is there even when tool support is stripped away. We can try to improve the tools, but then we need to lift the entire toolchain starting with basic terminal applications.

[1] [https://www.youtube.com/watch?v=u7KIZQzYSls](https://www.youtube.com/watch?v=u7KIZQzYSls)

[2] [http://strlen.com/programming-languages/](http://strlen.com/programming- languages/)

[3] [http://strlen.com/aardappel-language/](http://strlen.com/aardappel- language/)

</comment><comment><USER31> I wonder how nesting of tables would be like? I guess if you had function calls inside, it would look nicer than drawing a table inside a table.

</comment><comment><USER32> Okay. I love this and everything about this.

> This notation works in two stages: reading, and parsing (just as in Racket > in general). The reading stage converts anything that begins with #2d into a > parenthesized expression (possibly signaling errors if the ═ and ║ and ╬ > characters do not line up in the right places).

I'm cracking up, oh my god.

</comment><comment><USER33> Adding tabular display to Lisp is useful, IMHO. I was thinking about using something similar, but mostly where code looks like data or specifically for Lisp data. I would not be very interested to use tables for control structures, but would like more support for auto-aligned layout for control structures.

</comment><comment><USER34> Neat idea. It draws directly from the approach to learning functions of multiple complex arguments in www.htdp.org

Looking forward to 3D syntax for functions of 3 arguments.

</comment><comment><USER35> Yes, and next I'd love to see big parentheses:

        ⎛if ⎛> (+ a b)⎞ ⎛case x      ⎞ ⎛cond              ⎞⎞
        ⎜   ⎝  (- c d)⎠ ⎜    (1 'foo)⎟ ⎜  ((> y 2) 'quux) ⎟⎟
        ⎜               ⎜    (2 'bar)⎟ ⎝  (t       'error)⎠⎟
        ⎝              ⎝    (3 'baz)⎠                   ⎠

(([http://imgur.com/oI0zVm3](http://imgur.com/oI0zVm3)) if that isn't rendering for your setup)

<comment><USER36> This is an excellent idea!

</comment></comment><comment><USER37> RacketFunge?

</comment><comment><USER38> This is not a good idea. That code is gross and illegible. There's definitely better ways to handle anything where you think this is the solution.

<comment><USER39> What's illegible about it? I don't even know Racket, and I can see plainly what it does.</comment></comment>


Nordic Nasdaq outage as data center's fire suppression system breaks servers - <AUTHOR> https://yle.fi/uutiset/osasto/news/nordic_baltic_stock_exchange_openings_delayed_by_knockout_of_nasdaq_data_centre/10165591 <comment><AUTHOR> Longer finnish article: [https://www.hs.fi/talous/art-2000005648385.html](https://www.hs.fi/talous/art-2000005648385.html)

In short, a oxygen starvation charge designed to extinguish fires in the datacenter went off, but the resulting sound and pressure blast from the charge was strong enough to destroy roughly 33% of the servers in the process. Apparently it was non-SSD hard drives that went.

Operations have since resumed from a backup facility, but there were also some un-related issues in getting the backup system online.

Guess this is a somewhat known risk, but very interesting dilemma still to have. Better of course not to burn the whole place down, but to have even an accidental fire alarm risk destroying a significant amount of your hardware doesn't sound fun either.</comment>


Multi 2.0: Create a custom macOS app from a group of websites - <AUTHOR> https://github.com/hkgumbs/multi#readme <comment><AUTHOR> I submitted the initial version of Multi to HN 2 months ago [0], and the response was much larger than I was expecting. Initially, I just built Multi for my personal use, so I cut quite a few corners to get something that worked. When I saw that other folks were actually trying it out, I decided to put it in the work to make the whole experience a bit nicer.

What I'm excited about most with 2.0 is that Multi is a proper macOS app itself, with a UI for creating other apps. That makes the install process much simpler (it's a normal .dmg) and streamlines future updates (install the new Multi "runtime" app and that's it—no need to update each of your generated apps manually).

There are a bunch of other improvements listed on the release page[1]. I'll keep an eye on this thread and answer any questions I can!

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

[1]: [https://github.com/hkgumbs/multi/releases/tag/v2.0.0](https://github.com/hkgumbs/multi/releases/tag/v2.0.0)</comment>


Exploring Performance of Etcd, Zookeeper and Consul - <AUTHOR> https://coreos.com/blog/performace-of-etcd.html <comment><USER2> 404?</comment>


Should you trust a root CA that couldn't keep track of it's own keys?  - <AUTHOR> http://twitter.com/taviso/status/78570545280598016 <comment><USER2> Just to be clear, this is presumably (judging by the filename) the private key associated with the SSL cert for <https://www.certigna.fr/>, rather than the CA private key (which would hopefully be in a HSM), correct?

Not that this make this look any better better, but I think some may be confused that this is a compromise of the CA itself, rather than evidence of poor key management/security practices.</comment>


Ask HN: What domain registration and DNS service do you use? - <AUTHOR>

I love using Digital Ocean and Heroku for my websites. Clean designs, straightforward navigation and functionality, affordable.
And then you have domain registrars like GoDaddy, Domain.com and others that are the exact opposite (except cheap).
Is there a domain registrar that doesn't severely suck the life out of creating a new domain? Something that has an easy to use API, clean and modern? <comment><USER2> Namecheap works well. They have an API but I never used it.

<comment><USER3> I'm up to about 12 domains on namecheap, can't complain

<comment><USER4> Do they have a good deal on SSL certs when buying or transferring domains? the certs are good, yes?

<comment><USER5> I used namecheap and buy SSL certs, including wildcarded SSL certs.

I think they have the best prices for that.

SSL certificate cost is a scam anyways - so you better off with whoever is the cheapest.

</comment></comment></comment></comment><comment> workhere-io [https://gandi.net](https://gandi.net) / [http://doc.rpc.gandi.net](http://doc.rpc.gandi.net). For DNS I sometimes use AWS' Route 53 because it provides some unique options regarding S3 and CloudFront.

</comment><comment><USER6> I've been using Name ([http://name.com](http://name.com)) for a few years now and I've been happy with their services. They also have two factor auth for accessing your account which is a huge plus.

</comment><comment><USER7> A Small Orange ([http://asmallorange.com](http://asmallorange.com)). Simple, clean & top-quality support. Used them for 2 years now - and it's been a pleasure.

<comment><USER8> I may be wrong, but this company seems to only offer hosting services. I see no domain name registration services offered.

</comment></comment><comment><USER9> [https://www.gandi.net/](https://www.gandi.net/) and [https://dns.he.net](https://dns.he.net).

</comment><comment><USER10> I used Gandi for my domains for the last six years. They been great, but since I've never had an issue, I can't say how good their customer service is.

</comment><comment><USER11> dnsimple ([https://dnsimple.com](https://dnsimple.com))</comment>