Ask HN: How do you sell in a new programming language? - <AUTHOR> People who are passionate about programming often find themselves with a need to convince their organisation that it is time to try something new. Resistance against this kind of change is often entrenched, and a long struggle awaits.
What kinds of arguments do you use? What kinds of arguments actually work?
What strategies for transitioning to the "new" have you proposed, and what has actually worked out in real life? <comment><USER2> The same way you sell a business anything else: it will raise our revenues and/or decrease our costs.

Rather than saying "We should reimplement our core products in $FOO" you can often achieve the result of using $FOO while hitting less resistance by implementing one-off projects or support systems in $FOO instead.

e.g. I worked at a Japanese megacorp and, despite us being a Java shop, one of the sales guys sold a customer on "We're certainly the right people to write documentation for your Perl program." This contract only required a bunch of HTML files as a deliverable, rather than getting a team of programmers to speed on something which would be maintained for 30 years, so I successfully convinced my boss that I'd jump on the Perl grenade if he let me use any means necessary to create the HTMLed documentation. I ended up doing it in Ruby. Then I had a "Hey boss remember that time I delivered a $X0,000 project in 1/4th the budget and made you look like an effing hero? I want to use that tech again" case study.

Though for the amount of time I spent on evangelizing Ruby and modern Javascript-heavy UIs at my previous company I could have launched my own. Eventually I did. It turned out to be a much better use of my time.

<comment><USER3> This. Node.js and Rails are sexy right? Show your boss how. Do a video screen capture of the time savings you get. Also, execs like what we used to call "The NASCAR Slide™" \- which is a presentation slide with all of the logos of companies who use those technologies. The more Fortune 500 companies, "the faster your NASCAR car goes".

Pro Tip - Just give them his link [http://www.walmartlabs.com/](http://www.walmartlabs.com/)

Note - Be prepared to have the ugly discussion around support and ecosystem. These are arguably the biggest cons to "newish" frameworks. The problem for any technologically lagging organization is that they don't have the resource (both human and capital) to support change.

<comment><AUTHOR> A screen capture sounds like a very good idea, as a nice way to visualize. People tend to buy based on emotions, and then rationalize with logic. The screen capture sounds like an appeal to emotions, while "the NASCAR slide" would work as justification.

<comment><USER4> The "NASCAR slide" can also appeal to emotions, as a form of peer pressure. "Oh I wanna be like the big guys, and the big guys use this, I should do what they do".

<comment><USER3> In the enterprise world this is done via user groups - [http://www.sap.com/communities/user- groups.html](http://www.sap.com/communities/user-groups.html)

You'd be surprised how often competitors (let's say BP and Shell for example) make purchasing decision after discussions at user group events, simply "to keep up with the Jones's".

<comment><USER4> "Nobody every got fired for buying IBM"

</comment></comment></comment></comment></comment></comment><comment><USER5> One 'argument' that people don't often think of is recruiting and hiring. I recruit for many companies, and the level of applicants I receive for jobs in the more emerging language communities is well above the applicants I usually get for more traditional languages. My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qualified engineers with very impressive track records. The applicants also come from all over, because of the novelty of the jobs. Java jobs tend to get local candidates, but a Clojure job gets applicants worldwide.

Most of this is with startups, but I've even seen serial startup engineers go to work for large companies who use an emerging language.

Obviously this is a side effect that depends on the language chosen, and it doesn't justify that the code or product will improve, but if you are making the argument this could be a consideration.

Of course, the counter is that experienced talent in the emerging language may be more scarce.

<comment><USER6> _My evidence is anecdotal, but when I posted Clojure or Scala jobs (and recently Go) I received fewer applicants! but almost all of them were highly qualified engineers with very impressive track records. The applicants also come from all over, because of the novelty of the jobs. Java jobs tend to get local candidates, but a Clojure job gets applicants worldwide._

My observation (at a Baltimore company) was the exact same. When you post Clojure job ads, your pool becomes national and get rock-solid people who'd be top-2% in the Java pool. The difference is night and day.

The location is a disadvantage, except for local candidates. (There is a lot of talent in Baltimore-- more than you'd think based on the city's reputation-- but the set is small and quickly exhausted for a larger company.) Great programmers who don't mind using Java or C++ have moved on to hedge funds or upper management in the Valley by age 30. Convincing them to take a risk on a geographic move won't happen. The Clojure pool is national-- there are some really great people who will take that risk if you can promise them full-time work in their preferred language. (Being able to make this promise is rare.)

That said, as a sell to upper management, this argument tends to be unsuccessful in my experience. It is 100% true. But the way it sounds is, "People who like the same languages as I do are way better." You can probably understand why managers are skeptical of that claim-- as true as it is.

What's happening in software is that, because 90% of the work in the industry is mindless, ticket-munching bullshit (CommodityJavaDrone stuff) the top programmers are all finding ways to distinguish themselves-- this is something you have to start thinking about by 28, and you have to have a path by 32, lest you be confused for a CommodityJavaDrone and be put on bullshit work (in which case you'll be flushed out by 40)-- as "too good" for junior-level, predigested grunt work. Some become "Data Scientists" or "Machine Learning Engineers" or "Research Engineers". Some learn a lot of nontraditional languages (Clojure, Haskell, Rust). The few who have the connections become startup founders. Others get "special" engineer titles in big companies (Principal Staff Architect XIV). You won't get anyone good (meaning top 5%) over 30 unless you can establish that the job is "special"\-- that they won't be lumped in with regular ol' engineering plebes who have minimal autonomy and are basically there to do what they're told-- but managers see that price of talent as a political risk they'd rather not take. It's hard to address these sociological facts (as one of those "older" (30+) top engineers) without coming across as an arrogant twat. The CommodityJavaDrone engineer mentality is borne of a managerial misconception that those older, top engineers aren't needed, that one can just hire college kids on the cheap and mash them together as if they were all the same... but it's completely wrong. A tech company rots if it can't get top talent.

<comment><AUTHOR> I like the honest career advice :) I agree that a tech company should get top talent, but "older top engineers" are often very resistant to change. Say, as JavaScript has gotten more and more important, it might be hard for those who have built careers around specific languages to move on to something else. On the other hand, younger talent are often more open to this kind of change.

</comment></comment></comment><comment><USER7> I worked for a place that used a dying language. The argument I used was simple: If you stick this technology, your employees will worry about their careers and leave, AND you will find it harder and harder to recruit new people who are interested in this language. Good developers will want to work in exciting and living languages to further their careers and keep their skills up to date. So the only developers you will find are the ones who will "settle" if they can't find another job, or use it as a stepping stone until they find a different job, or demand a high premium to do it.

There seemed to be some openness to studying the alternatives, but ultimately it was hard to convince the powers that be that it was worth the effort to adopt a new language/technology.

So I quit. The only regret I have now is I didn't do it sooner. I wasted a lot of valuable time.

</comment><comment><USER8> I convinced the company I work at to use Haskell for REST services.

The technical leadership team was already interested improving the reliability and rigor of our web backend, but weren't thinking about exploring other programming languages. (we primarily use PHP)

I knew Haskell would be hard to sell, but I also had concerns about it myself, so I ran a live-fire test:

In my spare time, I wrote an interface-compatible Haskell implementation of a particular service that drove a lot of load, but was noncritical. I load- tested this service by flipping an nginx switch to divert traffic to the Haskell implementation. Leadership was ok with this because we could just flip the switch back if there were any issues: The risk of customer impact was miniscule. After some initial tests, we left it to run for a few months without manual intervention.

Over the course of this side-project, I got a few curious coworkers to learn Haskell to help out.

When the right project came along, leadership still had concerns, but I had lot of hard evidence to show that Haskell superbly fit our technical requirements and that the nontechnical problems (like hiring and training) were probably surmountable.

</comment><comment><USER9> A contractor and I successfully convinced our large enterprise that node.js was the best choice for a new project and we were able to use it. I dont want to make this a conversation about whether node is good or not, but it did hit the sweet spot as our goal was basically a RESTful API as a facade to some legacy tech, which is in my opinion where node shined - and this was back in early 2011.

The convincing arguments are:

1) the technology fits the problem - I would not use C++ for a web api, and I would not use node for a rendering engine.

2) the team is (mostly) ready to use it - a couple weeks to read a book and make a prototype should be enough. There is no need for lengthy and expensive training sessions or a gigantic shift in technical knowledge

3) if it doesnt work out, you can double back quickly and cheaply

4) the new technology won't cost an arm and a leg - no need to find budget for expensive licensing for software/tooling

5) you are not proposing this alone - get backing from other senior level programmers/architects.

If you can hit most of those, then you probably have a decent chance!

</comment><comment><USER10> Build something useful with it, prior to getting widespread buy-in. Build this thing more efficiently than you could have using the existing tools. Make sure the end product is more efficient, reliable, and robust than an equivalent built using the existing technologies. Make sure these differences are very, very significant and obvious.

</comment><comment><USER11> Timing for the argument is very crucial. Your arguments for adopting a new language will only work when other employees and your BOSS see your solution run, and that at the correct time, when most of the people are not satisfied with the current solution. If you are successful in demonstrating the pros and importantly cons and other people support your decision, then there is 1% chance that your boss will try!

I don't remember what happened clearly but I am able to recount one instant..

My father is a pro C# guru. His organization was having hard time investing in a proprietary library. High costs had him thinking. I suggested him to use a python based open source library. He asked me to mind my own business and not to meddle in his affairs. That night when I came to his room to good night, he was sitting reading the python documentation!

</comment><comment><USER12> Implement something useful. Be useful. Better to ask for forgiveness than ask for permission. Only way it works.

<comment><USER13> That's wishful thinking when it applies to the choice of programming language.

If you come to a C shop and implement something in VisualBasic, you will de escorted right out. Do the same but with Java and you will be _flying_ out, through a nearest window :)

So - hell, no - it's not how it works at all.

<comment><USER12> _If you come to a C shop and implement something in VisualBasic, you will de escorted right out._

Well, no duh! But I have seen things in unusual languages in large companies become useful then become indispensable. Actually, I worked for a company that couldn't have made $130 million/year if this were not the case.

 _So - hell, no - it 's not how it works at all._

Classic example of someone on the internet mistakenly (and overconfidently) generalizing from their limited experience.

</comment></comment></comment><comment><USER14> While Ruby was growing in popularity prior to Rails, it took Rails to really convince a lot of developers (including me) to switch from existing solutions. I think there's a lot to learn from how that happened. (See SciPy or IPython and Python for smaller scale examples of this story.)

</comment><comment><USER15> It may sound ridiculously obvious, but I think it's often a matter of being able to empathise with whoever you need to convince. Most organisations are in it to make money, and different people are different pieces of the puzzle of achieving that. If you can express the upside of the technology shift in terms relevant to, say, business developers or managers, things get easier. Whether you have closures or not doesn't matter, but time to market, time spent on bug fix releases instead of feature releases, etc do. Also, it will probably serve you best to thoroughly and honestly present both pros and cons. There's almost always cons (training, toolchain or workflow changes, building competence, talent availability, unclear longevity of technology being switched to) so if you're not upfront with the cons, people will wonder what they are and not knowing is scary, risking a higher susceptibility to scepticism. Also, if it's possible to use the new tech for a small project and you can show the upside with clear metrics, actions speak louder than words. My two cents.

<comment><AUTHOR> It may not always be so obvious, so I think this is good advice. It can be hard to understand where everybody comes from, and expressing the upsides in terms that others really understand can be even harder.

</comment></comment><comment><USER16> (We haven't actually switched yet, and there isn't significant progress on doing so, but the attitude change was decent)

We use PHP for most of our web stack at work. This includes long-running consumers that are part of our growing service-oriented architecture. PHP all over. It's hard to say "no" when everyone is familiar with it.

We've dealt with pretty crappy performance, compared to other solutions, using this setup. It puts a lot of backpressure on our publishers (we use RabbitMQ as our messaging layer) and it causes queue build-up, which requires manual intervention, etc etc.

I had mentioned how we should switch to a better language: didn't go that well. We have a lot of code written already: nothing insurmountable to rewrite, definitely <10k lines of good code, excluding boilerplate-y stuff. It's nearly impossible to get people to drop other priorities to _try_ something new. It has to be a more sure shot.

One of our developers, though, wrote a test application in Java to show how much faster we could be consuming and processing messages. He actually replicated one of our simpler services, which isn't much more than turning the messages into rows in a MySQL database. I believe the Java consumer had a ten- fold performance increase over the PHP one.

So, now, we have a few internal working groups for various tracks of improvement to our product, and one of those groups is exploring Java as a possible language to switch to for this area of our infrastructure. We have people dedicated to actually vetting it, not just talking about it at the bar or something.

Long story short, and to echo everyone else: you can't just tell people there's something better, you have to show them something better.

</comment><comment><USER17> arguing beforehand for the language itself never worked for me. for me it's always been easier to get the other developers interested, and then deploy a working project with it.

asking beforehand for me always led to a wide variety of different arguments of why we can't use a different language. the most common two being the following ones.

* we can't find new developers with that experience

* our developers don't know it

</comment><comment><USER18> Depends on who you're selling to. Here are few categories out of top of my head.

\- Make website very fancy with videos and do many useless benchmarks showing that it's faster then everything, especially Nodejs

\- Create VM language and show that it's just as good as Java but with much more syntactic sugar. Also note that C# runs only on Windows and yours run on everything.

\- Do a static compiled-to-bytecode language that will be just as fast as C++. This is very hard so you can forget about this.

\- Create another "language" that will compile to Javascript.

</comment><comment><USER19> Well, I personally know one high-level technical individual who almost got fired for daring to use Spring in a heavy J2EE shop. He survived and Spring makes the product so much better (for those who don't know - Spring is basically what J2EE should have been - lightweight and high performance framework)

You basically have to appeal to emotions (they won't understand the technical argument or even care). But if it makes the product more stable, more easily extensible/customizable - that could work.

Good luck!

</comment><comment><USER20> Stop arguing. I'm a programmer, not a salesperson. $FOO (a new programming language) needs to sell itself.

Cost. What is it going to cost?

Benefit. What are the benefits of using $FOO?

The answer is: it's going to bring in revenue.

$FOO needs to be adopted because it is popular, it is an industry and open standard.

> Do we need to convert everything to $FOO?

The answer is: no.

> Do all of the programmers need to learn $FOO?

The answer is: everyone already knows how to programs in $FOO.

I'd be curious to know what the "entrenched" programming lanaguage is, and what the "new programming language" is.

</comment><comment><USER21> A lot of this depends on the organization, its perceived needs and the personalities involved. No doubt some of the answers you get here will be helpful, but I would focus on the particulars. The first question is whether the organization actually needs a new language or whether you just want to use a new language.

Depending on the environment, the change will bring its own set of difficulties and those will need to be addressed. Sometimes, it's a matter of the people involved. For instance, you are the only one passionate about a new language and others are not or is willing to learn and others are not, etc, then you suddenly have a new problem that may not have existed before, including having to support your colleagues through the transition.

As for arguments, etc, those should arise from your situation. If the current system is not working, make that clear. You may have to repeat yourself to get the point across. But do your homework first. Know what's broken and how your suggestion will fix it. Know the advantages of the current system and the distadvantages of the new one. "Trying something new" does not seem like a good reason; surely there's a reason why you use language X?

</comment><comment><USER22> Are you respected? Because I'd say don't even bother trying if they don't respect you

</comment><comment><USER23> Have a plan for how it will integrate with your existing ecosystem such as tools, version control, continuous integration, data sources, etc if your org requires these things. I once worked as a principal at a .NET shop and had a smart engineer come to me wanting to use nodejs for part of a project and had to gently turn him down. I love to see enthusiasm for using new tools and personally like node/javascript, but his plan to use node didn't address important process concerns like hooking into our existing deployment, CI, and unit tests. Those concerns could have been addressed, but would have required significantly more effort than the actual project itself. Every org is different, but for us adding something without proper automation/tooling was a sin.

</comment><comment><USER24> If this isn't obvious to your use case, there is no business reason for trying a new programming language and you are doing the whole business a disservice. I should never have to sell a new language or technology. If it's something the business needs, the uses will be obvious.

<comment><AUTHOR> Thinking that something sells itself is an engineer's mistake. I'm an engineer myself, and I have learned through experience that quality is not enough. Selling is important.

<comment><USER24> You're confusing selling with having a business use. There's a huge difference. The OP doesn't have a business use, therefore no business (pun intended) to sell anything.

</comment></comment></comment><comment><USER25> Honestly, I think you can rarely make a convincing case based on technical merit or productivity promises alone. There are often good reasons to be conservative about technology choices.

I would try it from a different angle. If the organization wants people who are able to come up with fresh ideas, these will not be the same people who are content with using only very mature technologies. If the organization wants to cultivate an innovation mindset and be attractive for innovative people there needs to be space for experimentation. Who knows what comes of it.

Maybe that's the point where you get fired. If you were hired by an insurance company to maintain their 2002 style J2EE monster that's what's going to happen.

</comment><comment><USER26> There once was a company called Digital Research (DRI). They had a successful language called CBasic. A friend that worked there tried to convince them to develop a compiler for another language called "C". They refused. He insisted. The result: "they fired my ass!" Later, DRI wrote a C compiler. Was it too late? Would they have been successful if they had written it sooner? Maybe. But, then that would have been a different company. Perhaps, another way of looking at it is that my friend was giving his company a job interview and, in his case, they failed.

</comment><comment><USER27> Does your new language improves productivity, maintainability, code reusability, performance, etc?. Does it allow new crazy esoteric tricks with one line of code?. Does it bring a paradigm shift?.

Otherwise if its a new syntax for the same old thing - specially regarding imperative programming which to me already reached a dead end - it will be hard to sell. If you're thinking of a market strategy then your language is lacking enough innovative features that make it sell itself.

</comment><comment><USER28> \- Make a list of successful companies using lang X. Bonus if competitors. They're a success because of lang X.

\- Will using lang X over Y reduce total lines of code? That's less work, less time, less money.

\- Are # jobs for lang X rising? Show some pretty graphs. We can't fall behind the market.

All of this is bullshit to an engineer, but precisely how you need to sell it.

</comment><comment><USER29> Show that it decreases LOC while improving/maintaining readability with performance at par with current ones OR great performance without too much compromise on LOC count and readability.

So in essence, how it makes an average joe like me more productive/powerful.

</comment><comment><USER30> What makes you sure that your implicit assumption 'new == better' is correct?

</comment><comment><USER31> If I were in your shoes, I would spend some time trying to research why your company is actually resistant to change.

Some managers are extremely resistant to change because they work in organizations with extremely vertical power structures. Consequently, they know that even if they think it is a good idea, they are going to have to sell it to 15 different people and get each to sign off on it. In some organizations (government is an excellent example), a manager would have to write a report to get permission to write a report investigating a new technology. In organizations like this, experienced people (aka - management) generally have horror stories about the time they spent three years getting permission to upgrade all the computers to Windows ME...

That brings up another reason that some organizations are resistant to change. When the kinds of people who read Hacker News think of a new tool, they're usually excited. People like us equate change with learning and improving. Consequently, change is an adventure. Unfortunately, end users don't always feel the same. For these types of users, "IT change" is synonymous with "pain and torture". Consequently, getting permission to use a different tool is usually only the first step. When you actually implement the project, you get to deal with six weeks of whining, followed by another four weeks of training extremely resistant people. And then, for the next several months, every problem on earth is 'the new system's fault'...

And then, there are the sales people. Many managers have horror stories where a sales person convinced them that this great new system would do A, B, C, D, E, and F. Unfortunately, once the system is implemented, lo and behold, the system barely does A and B. If you've ever been through a situation like this, you'll be extraordinarily resistant to any new solution.

Once you know a little more about why your company is resistant to change, you'll be in a better place to make a decision. Maybe you work for a giant, monolithic entity that changes about as fast as granite erodes. In this case, you might have to decide whether you feel comfortable in a company like that. Or, maybe your direct manager got burned by a new tool and is forever paranoid. In a situation like that, you'd be better off implementing a one-off project with the new tool and proving that your solution actually works.

The general advice in situations like this is to show that a new tool will have a positive return on investment. That advice isn't wrong, but unfortunately, when people write about the ROI of a new tool, they usually focus on developer hours saved. While that is a good metric, in most cases, developer hours are just one component of a system's true cost. If you start your analysis earlier, you'll have a better sense of all the other costs involved and be able to speak to the real objections you will face.

</comment><comment><USER32> sell the result, not the medium. I've written code for fortune 100 companies and gov't agencies in "crazy" languages like scheme and lisp... I didn't say what technology I was going to use, I just told them what the result and cost would be.

</comment><comment><USER6> So, to begin, this is really hard to do, and it can lead to the end of your career at a place. Managers might think of you as That Guy, the one who is always coming out with disruptive ideas. ("Disrupt" ain't a positive term, here.) That Guy makes the manager's job harder because the manager wants a unified front, not debate.

1\. It helps if the language interoperates well with the existing platform. If you're at a Java shop, consider Scala and Clojure. Don't bother trying to sell it on Haskell; that'll never happen. But, for Scala or Clojure, the top 25% of Java developers are probably headed that way already.

2\. Don't ask permission of nontechnical management. (Grace Hopper: it is better to ask for forgiveness than permission.) Just deliver something cool in it that the rest of the organization can use. In the JVM ecosystem, no one needs to know that the JAR actually contains Clojure code. Get enough momentum behind the project that management actively wants you to demo it to the rest of the company. Then mention the "secret weapon".

3\. After (2), get a job ad posted in the new language. The quality of applicants will be a lot better. Post a Java job ad, and you'll get more responses, but your phone-screen-to-hire rate will be about 2-5%. For a Clojure job, it'll be closer to 30%-- and 60% of those who actually know Clojure (those who don't will fail-fast on the phone screen). Not only can you reduce time wasted with unqualified candidates, but you're more likely to get a 10X hire. Now you can make the argument that it's worth hiring more people in the newer, better language.

You're not going to turn a large Java shop into a Clojure company. It just won't happen. But if you do the above and have a bit of luck, you might carve out a CoE (Center of Excellence, also known as an "honor's college", which tends to be an elite suborganization that has an R&D flavor) in the organization that uses it.

That above only works if your company has generally good management. (They don't need to be programming language specialists, but they need to be good at their jobs.) If not, you're not going to get anywhere no matter what you do and it's not your fault. Then, the best bet is to move on.

<comment><AUTHOR> I agree that it is hard to do. If it can't be done, though, only the death of companies with old tech will make the world move on.

I think 3) is a good tip, and I have seen it work for some local companies who moved to Scala (for parts of their code).

</comment></comment><comment><USER33> Managers only understand about resources: time, money and human.

And percentages.

<comment><AUTHOR> Most managers think that 100 plus 10% minus 10% equals 100, so I'm not too sure about those percentages.</comment></comment>


About to graduate with non-CS degree and low GPA. How do I break into tech? - <AUTHOR> Like the title says, I am about to graduate with a non CS degree. I have some programming experience from making my own projects but nothing worth showing off. How can I use the next 8 mos. to set myself up for a job in tech? <comment><USER2> Build a portfolio that speaks for your work and experience. Take those projects and make them worth to be shown. That way you can show concrete examples of your work with programming. Make them open source, show them on your github account, that way the interviewer will know that you have an idea of the workflow. Even better if you can get some issue on an already existing project you'd like to contribute, fork the repo, fix it and get it merged (repeat).

That will help a lot, if you fail in a couple of programming questions they can relay on your ability to learn and get things set up and running as your previous projects.

</comment><comment><USER3> What is your degree? Can you get hired in that at all? Then, after getting hired in that, spend the next two years becoming the go-to tech person there. Take on any programming projects that they have, but if they don't have any, become the unofficial IT person.

Then you've got _experience_ , not just a degree. You've proven that you can walk the walk, not just talk the talk. Leverage that into a "real" tech job.

</comment><comment><USER4> What does "break into tech" mean for you?

I've spent ~6 years doing PM work for different software projects and the number of sub-areas within "tech" can include:

\- Actual project dev work, like requirements gathering, Wireframing, UI/UX design, front/back-end development, usability testing, Quality Assurance

\- Managing IT infrastructure. Databases, writing process documentation, running IT controls audits

\- CRM/Marketing Automation/Conversion Optimization

\- Business Intelligence

The rabbit hole goes pretty deep in any of these sub-areas, and the list above is definitely not comprehensive.

I suggest going to meetups in your community to learn from people about what roles they are in, what their day to day looks like, and if it's something you could see yourself doing.

</comment><comment><USER5> The Little Advice I Can offers you is that works and dedicate your time to know the cores of a programming language and use it to work on tangible projects to show... Because you works on projects , the you get more about the programming language and also contribute on Open Source projects on Github.com

</comment><comment><USER6> Invest 6 more months and complete Lambda School</comment>


Why did Skype succeed and Joost fail? - <AUTHOR> http://cdixon.org/2009/12/08/why-did-skype-succeed-and-joost-fail/

<comment><USER2> People used phones for long distance calls. Skype offered the same capability, but for free.

People used tv to watch their favorite shows. Joost offered online video, but did not include their favorite shows.

Skype made something people want. Joost didn't.

<comment><USER3> back in 2008 I wrote a post [1] about the (then new) change between desktop app and a browser plugin-based experience. Honestly, I don't think they ever nailed the right mix of great content and flawless user experience.

Eventually all our TV-watching will be done online - it'll just by through a different service. Hulu seems to be well positioned, but only time will tell.

[1] <http://blog.webreakstuff.com/2008/09/joost-on-the-browser/>

</comment></comment><comment><USER4> They are two very different products and I don't really see the benefit in comparing them, unless of course the question is, why did Nicklas and Janus get Skype (and Kazaar semi) right but joost wrong.

The reason why Skype worked is because it took something that we all needed and wanted and made it fairly simple and attractive. The use of the IM metaphor was the right choice and it pretty successfully manage to stay in the background without interfering unless it was in use. It was an addendum to other tools. You could still use skype even when you weren't using it actively. It also was impossible for telcos of course to touch really touch it once they realized what was going to happen to them.

Joost on the other hand required you to stop everything you where doing in order to use it fully. It couldn't work in the background as the whole idea was "grouphug" tv. Second of all it didn't manage to get proper content.

In my mind the question should be. Why did Hulu succeed and Joost fail. And to that the answer is rather simple. Content.

But I do believe Hulu would have been much less successful if they had taken the application approach. They didn't and instead managed to slowly build up joost as it should have been one natural step at a time.

</comment><comment><USER5> All I remember about an early Joost was the bizarre, grossly non-native GUI that was enough to make me bin the app after a few days.

<comment><USER6> Snap, I thought Joost's GUI was like an SDL (Simple Directmedia Layer) experiment gone horribly wrong. It was verging on Gibson cyberspace, but more likely, a kind of useless Minority Report interface.

</comment></comment><comment><USER7> I believe the author makes several interesting points about the aspects of Joost's business model and corporate culture that might of lead to its failure, however, one aspect not touched on is the user experience of the product itself.

When compared against its main rival Hulu (as in this post [http://www.readwriteweb.com/archives/10_reasons_why_joost_fa...](http://www.readwriteweb.com/archives/10_reasons_why_joost_fails.php)) it becomes clear why Joost's user experience also encumbered its own success.

</comment><comment><USER8> It seems like they're comparing apples and oranges here...

The success and failure or Skype and Joost isn't as cut and dry as the author would like to think. There were a lot of rights and wrongs for both companies and also some luck involved with Skype being successful.

</comment><comment><USER9> I haven't thought of Joost in a while. What I recall: lack of content, and a clunky user-interface that gobbled far too many resources.</comment>


Ask HN: Is working for Huawei a bad career move? - <AUTHOR> I received a very attractive offer from Huawei to working in cutting-edge machine learning research. This offer was for an office in the US, which operates via their subsidiary, FutureWei.
However, given recent news about security concerns of Huawei, I'm concerned whether working for them would be a blemish on my resume for future opportunities with American companies. I keep seeing news articles pop up here and there, and one of my friends warned me of certain American companies having "blacklists" for hiring former Huawei employees (this may or may not be true, but the sentiment may still be there).
I'm not sure if future recruiters or hiring managers might look upon this experience with distrust. I'm early career (mid 20s), and I have large career aspirations in machine learning research/engineering. I do not want future employers, especially Silicon Valley companies or government-related work, to be concerned of any potential security risk of hiring me. Or, just the fact that I worked at this company to be some sort of red flag in my application.
On the other hand, the money is good, and the team seems strong. I would be working on very interesting topics, which would be great for my career advancement.
The offer almost seemed too good to be true, so HN - are my concerns justified? <comment><USER2> Is working at Facebook a bad career move?

You'll always have ethical concerns when working at a multi-national, multi- million dollar Enterprise. I don't think anyone is particularly looking at your background from an ethical perspective. We (as in general public) still hire people from the government for instance, who are from the military.

<comment><AUTHOR> I definitely agree with your statement about tech company ethics as a whole. However, Huawei is particularly in the spotlight for US national security reasons, possibly leading to perceiving involvement with Huawei as a liability. See the following (more articles on the subject can be found with a search):

[https://www.theverge.com/2018/2/14/17011246/huawei-phones- sa...](https://www.theverge.com/2018/2/14/17011246/huawei-phones-safe-us- intelligence-chief-fears)

[https://www.wsj.com/articles/SB10485560675556000](https://www.wsj.com/articles/SB10485560675556000)

[https://www.theregister.co.uk/2017/05/19/huawei_spied_us_jur...](https://www.theregister.co.uk/2017/05/19/huawei_spied_us_jury_finds/)

Given the increasing US-China tensions, the beginnings of a so-called "AI arms race', and Huawei's use of employees to breach the trust of other companies, would this make an employee seen as a potential risk to US companies? It may sound paranoid, but even unfounded rumors can have an effect if a company is paranoid as well!

</comment></comment><comment><USER3> A variety of companies have been vilified in the past: IBM, Microsoft, Oracle and now even Facebook, Google, and Amazon to some extent, yet their employees have no difficulty finding new employment. Short of working on a controversial project, your past employer should have little bearing on how future employers view you.

Should it ever become an issue, you can always leave Huawei and cite ethical concerns as part of your reasons for doing so to future employers.</comment>


Ask HN: Best way to handle user authentication for a high volume Node.js App - <AUTHOR> I am considering Passport since it seems to have pretty good documentation, but I want to make sure I'm not missing out on something better. This app could have a ton of traffic, so I am trying to build it very efficiently right from the start. <comment><USER2> If you're using bcrypt for authenticating passwords, that may end up being the most compuationally-expensive part of your entire application.

Consider running your authentication service as a separate node server so it can scale independent of the rest of your application.

</comment><comment><USER3> It's unlikely you'll have efficiency problems at the user acquisition stage.

It's generally 1 insert into a user table.

The most important thing is your users security. The passwords need to be hashed and salted.

</comment><comment><USER4> I use auth0 and have been very pleased with its performance and documentation. I would suggest you take a look.

</comment><comment><USER5> What's "high volume"?</comment>


Silicon Valley Takes a Right Turn - <AUTHOR> https://www.nytimes.com/2017/01/12/opinion/silicon-valley-takes-a-right-turn.html?_r=0 <comment><USER2> I'm an H1-B visa holder living and working in USA for past 10+ years. I cannot express how much happier I'm to see the Tech industry being on the wrong side of the presidential election. The out going administration had sold us (and indirectly hurting American workers) with the "Indentured servitude rules" to benefit the Tech companies and immigration attorneys.

Here is an example, where every year, tens of thousands of legal immigrant kids getting deported because legal immigrants followed all the laws. Instead if we had not, and our kids were in illegal status, then Obama administration's DACA would have saved our kids.

Just read the 1st two paragraph of this article: [https://www.cato.org/blog/congress-should-help-young- legal-i...](https://www.cato.org/blog/congress-should-help-young-legal- immigrant-dreamers-too)

[Note: there are tons of other examples I can provide, where it is more beneficial to claim to be an illegal vs trying to be legal status]

P.S. the fwd.us, a tech industry backed non-profit organization would never speak about our issues; but would bend over backward to prevent illegals from deported (check their twitter handle "FWD_us" if you don't believe). Btw- I have nothing against illegal immigrants; but it hurts to be disadvantaged after following every impossible immigration rules for past 10+ years.

<comment><USER3> >The out going administration had sold us (and indirectly hurting American workers) with the "Indentured servitude rules" to benefit the Tech companies and immigration attorneys.

The part that says "the outgoing administration" is demonstrably false. The facts are that the immigration policy of the US has not changed much under Obama (with a few notable exceptions like Cuba but that is not really related to the tech industry). Please stop spreading FUD.

The immigration policy is nonsensical, but Obama has little to do with it. Perhaps the only legitimate criticism you can make is that he was not able to reform it properly.

<comment><USER2> >The part that says "the outgoing administration" is demonstrably false.

That is not correct. The G. W. Bush administration, just before leaving the office, gave all the legal immigrants "Job Mobility" (i.e., their H1B visa was not anymore tied to the employer). It is minor and easy step President could take under his executive power.

<comment><USER4> >gave all the legal immigrants "Job Mobility" (i.e., their H1B visa was not anymore tied to the employer)

Reference for this? I see that Bush proposed something like this in 2004, but I can't find any reference for it ever having been implemented.

<comment><USER2> I did a quick google search but could not find any reference. Media barely covers any of our issues (no NYT no WashingPost, no noone). But, I personally know more than few of family friends were benefited.

Bush Administration made the "priority date current" for a short window; this allowed legal immigrants waiting in the line for Permanent Residency to file and obtain 485-EAD.

<comment><USER4> You're saying there was a major change to the H1B rules, and that Obama then reversed this change, and that there is no reference to this anywhere?

<comment><USER2> They were allowed to move out of H1B visa to EAD status (non-visa legal status). The same legal status DACA recipients got from Obama administration. So, technically nothing was changed to the H1B rule.

<comment><USER4> Broadly speaking, this is allowed now, no? There is a route to an EAD for H1B holders (and various advantages and disadvantages to each).

[https://www.murthy.com/2012/10/26/using-the-ead-as-an- option...](https://www.murthy.com/2012/10/26/using-the-ead-as-an-option-for- employment/)

<comment><USER2> 80% of the H1B holders today are from India. And they cannot reach that step; because the wait time to reach there (485-EAD) is 70+ years.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Augh. URL in /opinion/ fails to consider that you're going to donate more money to the people winning because you get more influence per dollar that way, decides to blame "tech has decided the republicans are more in line with their interests".

Well, yes, in so far as "their interests" involve actually getting things done rather than blaming everybody else for not doing.

Can I have a new left wing please? This one appears to be broken :(

<comment><USER6> > Can I have a new left wing please? This one appears to be broken :(

I've been saying this since basically after Obama was elected.

I was a _HUGE_ supporter of his, even in the democratic primaries. I donated to him, I was running local groups that were canvassing and phone banking to get him elected. I was ecstatic when he got elected (though I viewed it as a foregone conclusion, I didn't think McCain had a chance).

When it came to the governing, I was not really impressed. Basically from day 1, everything seemed stuck. He got a few things done (ACA though that's of dubious benefit, and was done in such a way that it became a political punching bag and can't get any reforms), but mostly in the first two years. After the 2010 midterms, this shit was just complete gridlock. You can blame whomever you want for the gridlock but a good leader builds compromise and ends gridlock.

I think there are two good examples of this. First, after sandy hook Obama promised that he would pass gun control legislation. Now, I do not agree with lots of things that he would like to do with such legislation, but, I do agree that there are some changes required. He has basically failed to pass any legislation around gun control and his response to that isn't to propose new legislation that can pass congress. His reaction was to go on national television and cry (literally) about his failure to pass gun control legislation.

I'm sorry, I don't want a damn leader who CRYS about their political failures. I know dead children is a sad subject, but, this is ultimately a political failure.

The 2nd one is Guantanamo. When he was campaigning one of his promises was to close Guantanamo, bring prisoners home and try them for their crimes. After 8 years, that has not happened and its become so politically untenable that he's basically letting these people out, without trying them at all. It is a mind- boggling

Withdrawing from Iraq/Afghanistan was another campaign promise that I was personally invested in too, but that is a far more complex one and though he doesn't get a pass from me on that as I have personal losses there, I acknowledge that its more complex.

I do not agree with lots of things that (old) republicans did (though I am hopeful about the new republican party of today), but they get shit done. They wanted to block (stupid) gun control legislation, they did. They wanted to block returning Guantanamo prisoners to the USA, they did.

Sometimes doing something, even if its not perfect, is more important than doing nothing, especially when you don't have a crystal ball and don't know what exact result specific actions/legislation will have. Move fast, break shit.

<comment><USER7> What's your solution, then? What form of a left wing would have been any better than Obama in light of the obstruct-at-all-cost policy the Republicans held for the last 6 years?

>I do not agree with lots of things that (old) republicans did... but they get shit done. They wanted to block (stupid) gun control legislation, they did. They wanted to block returning Guantanamo prisoners to the USA, they did.

Blocking legislation (esp legislation brought forth by the opposition party) is, always has been, and always will be 100x easier than putting forth any legislation. Blocking legislation isn't getting anything done. We already see a failure to get things done by the Republicans in their handling of Obamacare-- they have no collective idea as to how to replace it, despite their vigor in denouncing and repealing the bill. They have had 6 years.

<comment><USER8> I can agree that blocking legislation is much, much easier than passing it.

On the other point, I lean Republican, and I'm more inclined to agree with 464192002d7fe1c. A lot of leftists love to blame the Republicans for being obstructionist during the Obama administration. But were you paying any attention to Obama's attitude? See [1]. He basically says "I won, deal with it, if you don't like it, then go win some elections". Well, they did, and they obstructed him in exactly the spirit that he invited. And in roughly the same spirit that the Democrats obstructed GWB during his term.

A good leader accepts the political situation and seeks to work within it. If your political opponents have control of Congress, you better learn how to compromise and work with them to get things done. This might actually involve not getting everything your way and sometimes doing something that the other side wants. Whining that you can't get the things that you want done is poor leadership.

I'll grant that there's a big divide between the two sides, and neither side is innocent in perpetuating it. But who can be the bigger person, lay off the name calling for a while, and make some compromises? Evidently not Obama. Maybe Trump will? I guess we'll see soon enough.

[1] [https://www.washingtonpost.com/news/the- fix/wp/2013/10/17/pr...](https://www.washingtonpost.com/news/the- fix/wp/2013/10/17/president-obama-to-republicans-i-won-deal-with-it/)

<comment><USER9> >Well, they did,

Well no. They REDMAP'd it. That was _impolite_ , so to speak: not technically illegal, but sufficiently unethical that in 2004 the Supreme Court basically said they'd ban it if only they had some consistent standard to apply.

This year they might have that consistent standard, and starting with North Carolina and Wisconsin, the permanent Republican Congressional majority might _stop being so permanent_.

In fact, every single politician who utters the phrase "permanent majority", with or without a party name in the middle, should be _jailed_. A democracy _never_ has a _permanent_ majority, or else _it ceases to be a democracy_.

<comment><USER10> > the permanent Republican Congressional majority might stop being so > permanent.

> In fact, every single politician who utters the phrase "permanent majority", > with or without a party name in the middle, should be jailed. A democracy > never has a permanent majority, or else it ceases to be a democracy.

The GOP has controlled the House for only six years running. Before that, the Democrats controlled it for four - before that, the GOP controlled it for six, and before that, the Democrats controlled it for _61 years_ , with the exception of one term (1947, under Truman). During the vast majority of that time, the Senate was also under Democratic control as well, although the Senate has leaned slightly more right than the House fairly consistently ever since the Seventeenth Amendment was passed.

I agree that a democratic system should not be controlled by a single party, but it's rather silly to say that the GOP has a "permanent Congressional majority" given how recent their majority is.

</comment></comment></comment></comment></comment></comment><comment><USER11> Brendan Eich's donation of $1000 in support of Prop 8 ended his career at Mozilla, making a tech employee donating to Trump an obvious potential career- ending move. It's not very surprising that they didn't. An interesting question is whether their family members donated to Trump what was actually the tech employee's money.

<comment><USER12> Eich's career at Mozilla ended when he resigned as CEO and declined to remain as CTO. He resigned because he let a predictable PR problem get away from him and couldn't effectively lead. He had marginal support to begin with; three board members resigned when he was appointed for reasons that had nothing to do with his political activities.

Someone somewhere probably got fired for donating to Trump. Someone somewhere probably got fired for donating to Clinton. Eich donated to curtail civil rights and kept his job as CTO until he gave it up.

<comment><USER13> Since you weren't on the board or privy to details about my time as CEO, what you are doing in your first paragraph is simply lying.

On board resignations: [https://news.ycombinator.com/item?id=10654651](https://news.ycombinator.com/item?id=10654651)

On "curtail civil rights" canard: [https://news.ycombinator.com/item?id=12721891](https://news.ycombinator.com/item?id=12721891) [https://news.ycombinator.com/item?id=12721928](https://news.ycombinator.com/item?id=12721928)

<comment><USER12> I stand corrected on the resignations. You know that's how the Wall Street Journal reported it, so accusing me of _lying_ is out of line, but I appreciate you correcting the record.

"Curtail civil rights" is exactly right, though. Prop 8 didn't nullify existing marriages, but it did prevent new ones. Whatever philosophical reasons you had for supporting the measure, its language and effect were specific.

<comment><USER13> Lying is when you disparage someone by asserting as facts, without any speculative words such as "might have", your negative guesswork that you can't possibly know to be a true and complete account, due to non-disclosure. I'll talk about the Mozilla situation in 2014 later, if I ever do; I'm not out to make trouble right now for a project and org that I co-founded.

"Civil rights", if the phrase meant anything at stake in 2008, meant positive rights under state law that were protected by CA's domestic partnership section of its family law code, which an earlier generation of allies (including me) had supported. You could reframe now (post-Obergefell) in federal civil rights terms, but that tells a revisionist account of the history. Back in 2008, state-guaranteed rights were not the issue in front of the citizens of California, and federal bad law (DOMA) was beyond state power to affect.

Remember Obama was also at that time in favor (he said; maybe he was strategically lying but we don't know) of the conjugal definition of marriage.

Yes, I know people find Obama's position then defective and wrong, and some (few) even said so at the time. But I don't see anyone going around arguing that Obama thereby curtailed civil rights, since he supported civil unions or domestic partnerships. If he got off the hook for the "curtailing civil rights" charge by evolving many years later, then what does the phrase mean? It's not a historically or legally accurate description. It's just a rhetorical club to beat up enemies and spare friends.

<comment><USER12> I never claimed to have inside knowledge. People don't usually attach "might have" to news reports from reputable sources. If I remember correctly, the story was that the dissenters wanted someone with mobile experience, which wouldn't reflect negatively on you even if it had been true. Still, it must be frustrating to see misinformation keep circulating years after the fact. All I can do is apologize for an honest mistake.

"Curtailing civil rights" means simply this: marrying someone of the same sex was legal in California, and then it wasn't. A right previously recognized was taken away. It doesn't matter if you disagree with how that right was recognized. It doesn't matter that domestic partnerships provided most of the same benefits within California as marriage. Most isn't all. Even if those deficiencies had been repaired, "separate but equal" isn't equal.

Obama "got off the hook" because he opposed writing his claimed personal beliefs into law. Even in 2008, he spoke against Prop 8 and advocated repealing DOMA. You aren't my enemy, and he isn't my friend; he just had a better position on this issue.

<comment><USER13> You wrote "declined to remain as CTO." That assertion requires inside knowledge. Note Andreas Gal was made CTO within two months of my leaving. There was a reorg that I announced (which is public info), and a CTO plan which is now clear enough.

I realize it's easy to speculate unintentionally but I try to draw a bright line around things like speaking for someone else, saying they "declined" an offer where you weren't involved and didn't actually see any offering or declining.

In the link I sent about board resignations ([https://news.ycombinator.com/item?id=10654651](https://news.ycombinator.com/item?id=10654651)), I wrote "Alistair Barr of the WSJ was working on a story about Mozilla being in trouble". Barr was getting the "need CEO with mobile experience" line from someone, possibly an ex-executive, even a (soon-to-be-ex) board member. A number of people thought it might be Gary Kovacs, but no one knew for sure.

For my part regarding getting the appointment, I can only say that "mobile experience" line did not come up. Doing Firefox OS (for all its problems) did get us a lot of mobile experience and good partner contacts. I'm engaging with some of those contacts at Brave, so I think the ding from whomever leaked to Barr was not material re: me, then or now.

On where law comes from, why CA voters can override the CA supreme court, see "status quo" on at [https://news.ycombinator.com/item?id=12721928](https://news.ycombinator.com/item?id=12721928).

Obama had no skin in the game in California, but he did say (to Rick Warren in public) that he supported the conjugal definition of marriage. He did not explain how he squared this with being against Prop 8, as far as I know (references welcome). It sure looks like strategic lying to me, and nothing against Obama -- I voted for him in the 2008 CA primary. Politians do this kind of inconsistent fence-sitting all the time.

Thanks for writing back.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> PAC: A political action committee (PAC) is a type of organization that pools campaign contributions from members and donates those funds to campaign for or against candidates, ballot initiatives, or legislation

Tech companies have been annoyingly left for a very long time. I'd like to see more parity. It becomes annoying to have people make questionable political statements (especially HR) and not have the ability to speak up without being called names.

</comment><comment><USER15> Oddly enough, it's on tech-oriented sites like this one that I hear the most chatter about universal basic income or post-work societies, and grappling with the very disruptions of the social fabric that tech development creates.

Perhaps this shift is partly a seismic realignment; traditional left-right divides don't fit as comfortably as they used to, as issues move faster than constituencies and demographics.

Or maybe just corporations, like people, get more conservative when they're richer. Possibly out of cynical self-interest.

<comment><USER16> > Or maybe just corporations, like people, get more conservative when they're > richer. Possibly out of cynical self-interest.

In the case of people, this is a popular misconception. Democrats are funded by more billionaires than Republicans, are in control of a majority of the wealthiest congressional districts, and among people earning more than $200,000 the presidential vote was very evenly split.

[http://www.politifact.com/truth-o- meter/article/2014/jun/23/...](http://www.politifact.com/truth-o- meter/article/2014/jun/23/do-many-billionaires-support-democratic-party/)

[https://www.nytimes.com/2015/10/07/opinion/how-did-the- democ...](https://www.nytimes.com/2015/10/07/opinion/how-did-the-democrats- become-favorites-of-the-rich.html)

[http://ijr.com/2014/02/116056-wall-street-bankers-top- donors...](http://ijr.com/2014/02/116056-wall-street-bankers-top-donors-agree- democrat-party-new-party-rich/)

[http://www.nytimes.com/interactive/2016/11/08/us/elections/e...](http://www.nytimes.com/interactive/2016/11/08/us/elections/exit- poll-analysis.html)

<comment><USER17> Democrat versus Republican makes more sense as urban versus nonurban than anything else.

<comment><USER15> Very true (and parent makes a really good point, also).

I do wonder: rather than a single axis, how many would be appropriate? If you did PCA on... well, some crazy mishmash of factors -- demographic, political, socioeconomic, geographic -- what would be the eigenvalues of today's US politics? (And what's the minimum sensible number of values to capture the range of experience?)

Man, I can just hear my cofounder exhaling in frustration, at such an ill- posed problem, and abuse of terminology... and no doubt there are real, quantitative answers to some of this (and PCA is probably naive compared to... latest whiz-bang etc)... But still.

<comment><USER16> I imagine at that point the cause and effect would become mightily, mightily mixed up. Maybe race is a cause of political affiliation (it certainly isn't an effect), but surely certain factors, like donations, would be an effect of political affiliation. As it already stands, it seems reasonable to me that the urban/suburban/rural split might be equally as much an effect as a cause.

As it stands, that sort of analysis might be interesting, but is of little value without separating cause and effect (and surely those will be different for everyone).

</comment></comment></comment></comment></comment><comment><USER18> In my opinion, Silicon Valley is pragmatic and always has been. The contributions seem less likely to be party-based and more likely to be based on the specific types of legislation they'd see advanced. Sometimes that will fall left, and sometimes right.

Further, if the party likely to win is the right, they'll find candidates within that party to support. Had it been going the other way, then candidates in the left would have gotten that support.

Alternatively, the author is accidentally correct. As business grow, they tend to get more benefit from right fiscal policy than left.

<comment><USER19> Agreed, it was expected that Republicans would control congress after the elections. I wouldn't be surprised to see every industry had given more money to Republican candidates.

</comment></comment><comment><USER20> [https://fivethirtyeight.com/features/nearly-all-of- silicon-v...](https://fivethirtyeight.com/features/nearly-all-of-silicon- valleys-political-dollars-are-going-to-hillary-clinton/)

[http://www.businessinsider.com/silicon-valley-donors- favor-h...](http://www.businessinsider.com/silicon-valley-donors-favor- hillary-clinton-over-trump-2016-11)

Here is what Paul Graham and Sam Altman had donated to: [https://blog.dcpos.ch/silicon-valley-political- contributions](https://blog.dcpos.ch/silicon-valley-political-contributions)

<comment><USER21> The NY Times article says up front that tech companies donations in the Presidential race went overwhelmingly to Clinton. It's the House and Senate races where the rightward shift has occurred.

</comment></comment><comment><USER22> I'm so very tired of the left/right analogy. Please describe your politics as well as you do your sandwich toppings. They're likely similar in quantity. To put Trump and many other republicans on the same "right" is more absurd than ever. I made a video about it.

</comment><comment><USER23> Well, we experienced a black swan event and maybe even the first shoe to drop. Some of us are just capitalists and capitalists are able to do this:

\- Adapt. Even though it seems like we're all in a boat thats capsized and the stove is above your head along with the sing while the cups are floating in the water and in the dark, there's now new opportunity across the board.

\- Make an observation on a "product" and then take that "product" off the table of a competitor and do it better. These are the rules. In 2020 the "product" could be this new incoming administration.

</comment><comment><USER24> The influence of tech companies isn't measured in how much they donate to each party (as the article suggests) so much as it is how they use their powerful technology to influence public opinion and collude with politicians in private.

</comment><comment> rm_-rf_slash To tech employees of corporations whose upper management and/or shareholders have donated to Republican interests: how do you feel about that? If you vote Democratic and contribute to Democratic campaigns, how do you feel knowing that your work directly produced profits which could be used to significantly outspend you and your like-minded colleagues?

I rejected the Valley years ago because I saw the direction it was going in. I would like to hear from the people who are still there.

<comment><USER17> > _how do you feel knowing that your work directly produced profits which > could be used to significantly outspend you and your like-minded colleagues_

Like I live in a democracy? If you are scared shitless of the opposition there's a problem with the checks and balances (or your understanding of them). Democracy requires tolerance of disagreement.

</comment></comment><comment><USER25> Good to see most of the CEOs have come to their senses and are going to put the business before their political beliefs.

<comment><USER15> Personally, I don't think that's "good." I remember fondly Tim Cook's response to an activist investor about why they support environmentally sound policies:

"When we work on making our devices accessible by the blind, I don't consider the bloody ROI," Cook said, adding that the same sentiment applied to environmental and health and safety issues. [1]

Personally, I think there's a higher system of value than corporate profits and share price. But that's a first principle argument. Conveniently, I happen to believe that purely shareholder-value-maximizing behavior rarely fails to build long term value, so I'm having my philosophical cake and eating it, too. But when push comes to shove, we do things for reasons beyond profit. It's pretty hollow otherwise.

[1] [https://www.theguardian.com/environment/2014/mar/03/tim- cook...](https://www.theguardian.com/environment/2014/mar/03/tim-cook-climate- change-sceptics-ditch-apple-shares)

<comment><USER26> Not to rain on your worldview or anything but I must point out that one of the requirements for being in upper management that's public facing is the ability to say just about anything with a straight face. ("Courage" anyone?) The fact that Tim Cook came up with a good (from a PR perspective) response doesn't say anything about the actual motivation.</comment></comment></comment>


Something is amiss with the Interwebs: BGP is a flapping - <AUTHOR> https://isc.sans.edu/forums/diary/Something+is+amiss+with+the+Interwebs+BGP+is+a+flapping+/18523

<comment><USER2> The default partitioning of CAM space on Cisco gear is the obvious issue, but the root cause is the massive deaggregation of announced IPv4 routes on the Internet. You can see various statistics about this problem at [http://www.cidr-report.org/](http://www.cidr-report.org/), but the short of it is that if the top 30 networks (based on announced route savings) completely aggregated their announcements as much as possible, ~41,000 routes (~8% of the routing table) would be eliminated.

And that's just the top 30 networks — if every network cleaned up their announcements, it would eliminate ~232,000 routes (~45% of the table).

Adding to the deaggregation problem is the inability to easily filter out route announcements based on RIR minimum allocations without having to add tons of exceptions for CDNs that operate as islands of connectivity and carve out IP space for each island from a single address space allocation. (There's no covering route for the islands of connectivity since these CDNs have no "backbone" connecting the islands, so if you filter out those smaller announcements, you lose connectivity to those islands.)

There are many people who think this problem will just magically go away as IPv6 adoption increases, but all increased IPv6 adoption will do is make limited CAM space even more limited as network engineers have to balance dividing precious CAM space between a ballooning-quickly IPv4 route table and a ballooning-slightly-less-quickly IPv6 route table.

(To be clear: I think ubiquitous, functioning, end-to-end native IPv6 connectivity needs to happen sooner than later, but it's not a magic bullet for the Internet's technical problems.)

<comment><USER3> This is one of the reasons IPv6 addresses are being given out in such massive allotments. ICANN doesn't want anyone to have to get multiple "chunks" and blow up the routing table later.

<comment><USER4> So people multi-homing (which is the only reason I end up getting and announcing /24s) is not a significant amount of the route table? Cause IPv6 can't really fix that part (multihoming) can it?

<comment><USER5> But it solves the problem of you, after some growth, having received several distinct v4/24s, instead of one huge v6/64...

<comment><USER6> You're assuming that just getting a massive opportunity for more de- aggregation won't cause de-aggregation out of shear laziness and convenience. It's much easier to de-aggregate than it is to aggregate.

The maximum IPv4 de-aggregation possible is 2^24 - 2 ^ 21. The maximum IPv6 de-aggregation with what's currently being handed out (mostly between /32 and /48's) is way, way, way more.

So IPv6 has more addresses, yes. Just so long as you don't actually use them. The problem of course is that the memory requirements for IPv4 assignments were going up linearly. If you bought gear with a good amount of memory, you could therefore expect it to last a few years. Clearly the network vendors that designed IPv6 saw this as a problem ... how can we make it explode ? Well IPv6 was the answer. Problem is that they went completely batshit insane overboard.

"If" IPv6 deaggregates we'll need routers with about 2^(48-24) TIMES more memory. Storing a deaggregated IPv6 routing table (which has to be in memory) requires 524288 terabytes of memory.

The rest of IPv6 isn't much better. It's some academics wish-list, with total disregard for real-world concerns. It is not possible to use 1/10th of the IPv6 features. Multicast ? Won't work (on any public or even just somewhat large network). Encryption ? Won't work (too many devices don't support it). Anycast ? Won't work. Site-local anycast ? Won't work. Larger address space ? Won't work (in half the world). NAT-avoidance ? Won't work (didn't get past security engineers). Autoconfiguration ? Actually kinda handy in some scenarios, but again, won't work on most networks, where you fall back to the IPv4 mechanism. Faster routing due to "smarter" headers ? Doesn't work according to my load stats. Better Qos ? Doesn't work in either of the major routing gear vendors. Mobility ? Let's not go there. Instead of implementing sane "live" re-addressing they went with ... Aargh. Let's not go there. Automatic network renumbering ... riiiight. Heh. I wonder if this was put in as a joke.

There are known solutions to all these problems (well, except the multicast and anycast ones), but of course, the IPv6 designers knew better.

Welcome to the "solution". On the other hand, solving the solution pays rather well.

</comment></comment></comment></comment></comment><comment><USER7> I dropped this into another HN thread, so I'll just put it here:

[http://www.cisco.com/c/en/us/support/docs/switches/catalyst-...](http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series- switches/116132-problem-catalyst6500-00.html)

Takeaways: a) 512K routes isn't necessarily a hardware limitation, it's the default TCAM allocation for IPv4 and B) most people most of the time don't need their routers to take a full BGP feeds worth of routes - and I hope those that do aren't running 6500's in Q3 2014 ;)

<comment><USER8> The backside of the reload-required TCAM reallocation is really brutal, as there are apparently a huge number of faulty cards out there in the wild which won't survive the reload:

[http://www.cisco.com/web/about/doing_business/memory.html](http://www.cisco.com/web/about/doing_business/memory.html)

Reminds me of when I worked at a large public university... the networking group planned on losing/replacing dozens of switches and power supplies during the summer when the power plant underwent maintenance. Losing power and reloading surfaces all sorts of defective components. And, when you have thousands of switches...

<comment><USER7> Ouch. In that case, woe be to anyone who tries to get Cisco to replace their grey-market way-beyond-deprecated almost-definitely-not-covered-by-SmartNet Sup720 linecards in 2014. Even if TAC went for that, I imagine the turnaround time would take forever...

Btw, thanks for the link! I suspect more than a few 6500 linecards that I've seen die in years past were due to something similar, as opposed to what we'd previously assumed to be the root cause - either damage in transit or "cosmic rays" ;)

<comment><USER9> It's generally a two-week turnaround for uncovered equipment, if they have remaining stock, which they always do. Given that SMARTnet-covered equipment turnaround can be 2-hour, 4-hour, or NBD and Cisco's massive global network of warehouses, it appears this constraint is artificially imposed to keep SMARTnet attach rates high.

It's very odd that "grey market" equipment is considered the standard way to refer to genuine Cisco equipment when sold by a company other than a Cisco partner. I understand keeping out counterfeits, but given the first-sale doctrine, how is a resold piece of equipment anything other than completely legitimate?

If you think about it, and get past the "it's just industry standard" mentality, it's generally insane the way that Cisco uses these pseudo-monopoly tactics. In the old days, say with maintenance on IBM Selectric typewriters, such schemes were called "bundling" and "tying," and the DOJ would pursue the companies for anti-trust violations.

Now, the DOJ arrests people based upon nebulous complaints from Cisco's general counsel. See e.g. [http://abovethelaw.com/2011/07/sue-a-giant- corporation-get-r...](http://abovethelaw.com/2011/07/sue-a-giant-corporation- get-rewarded-with-audacious-criminal-charges/#more-84911) wherein a British citizen was arrested in Canada for starting a company that competed with Cisco maintenance.

The Canadian court quashed the request for extradition after the DOJ's request trapped him in a foreign country for years. He remains under indictment here, despite the Canadian judge stating that the DOJ's case was a fairly transparent copy of Cisco's civil suit. The ruling was incendiary, stating that _The extradition process to bring the applicant before United States Courts… involved innuendo, half truths and complete falsehoods._

The judge concluded:

 _The only reasonable inference I can draw from the facts is that the criminal process was used to pressure (unsuccessfully) the applicant into abandoning his antitrust suit against Cisco…. Any well-informed person acquainted with the truth would conclude that the collective result of the mistreatment of Mr. Adekeye offended fundamental notions of justice._

<comment><USER4> Doesn't this just make them want to go sidestep the issue and say you're not licensed to run the software, even if you can resell the hardware? Didn't Autodesk win on that, with respect to licensing software?

<comment><USER9> The "first-sale doctrine" is a legal concept that applies to combination hardware and software products. Essentially it holds that the copyright of any combination of a piece of intellectual property (e.g. Cisco IOS, or the information in a textbook) and a physical product (e.g. a router or the actual copy of a textbook book) is exhausted after the first sale. [0]

Now, there are court-recognized exceptions to this rule in various circuit courts (most significantly by the 9th Circuit in _Vernor v. Autodesk_ , SCOTUS cert denied) for digital goods under the so-called "shrink-warp licensing" exception. [1]

So given that the highest court has allowed the ruling to stand in a large circuit, yet has consistently expanded the first-sale doctrine for four decades [2], the precedent is unclear.

Cisco does rely on _Vernor_ and its progeny as it's justification for blacklisting resold items. But that argument is unlikely to hold water outside of the software-laden 9th Circuit.

The question, stated in layman's terms, is, "To which is a Cisco router or switch more similar, a copy of Windows or an iPod?" This is an open question from a legal standpoint, and thus we must unfortunately resort to that most unreliable of legal tools: reason.

Both options are almost equally unpalatable to the Supreme Court for policy reasons. Expand the shrink-wrap exception to cover Cisco and you risk encompassing all products that contain firmware, from TVs to microwaves, and thus strangling the half-trillion dollar secondary sale market for electronic goods. Keep the exception narrow and you choke off the single largest source of revenue (all told, including gains from new purchases, maintenance contracts, and paid software updates close to $20 Billion, or 40% of annual revenue) to the government's largest IT hardware provider (over 85% of DoD in particular), leaving the government stranded with vast networks of legacy Cisco hardware with little to no new development from the company.

The existing legal precedent creates a tough needle for the Court to thread. As a result, we have the current state of limbo, and thus discussion of "grey markets," which are neither clearly legal nor clearly illegal.

[0] [https://en.wikipedia.org/wiki/First- sale_doctrine](https://en.wikipedia.org/wiki/First-sale_doctrine) [1] [https://en.wikipedia.org/wiki/Vernor_v._Autodesk,_Inc](https://en.wikipedia.org/wiki/Vernor_v._Autodesk,_Inc). [2] Most recently in Kirtsaeng v. John Wiley & Sons, Inc., No. 11-697 (U.S. Mar. 19, 2013)

<comment><USER4> Thank you for the explanation.

>leaving the government stranded with vast networks of legacy Cisco hardware with little to no new development from the company.

Do we have reason to believe this is true? If resale was allowed, do we believe network hardware companies would just shrivel up? How do we square this with the facts of many platforms being intentionally crippled for marketing reasons? Or does that not happen on top-end platforms?

<comment><USER9> >If resale was allowed, do we believe network hardware companies would just shrivel up?

Network hardware companies in general wouldn't suffer, but Cisco's increasing reliance upon support, service, and firmware for revenue means that unrestricted resale would bite into Cisco's revenue _hard_ , perhaps 25-50%.

Right now Cisco hardware powers the most critical government information systems, including military and financial communications (over 85% of the gear is Cisco.) Since many of these networks use Cisco proprietary functions, have scores of personnel trained on Cisco gear, and relationships with networks of Cisco suppliers, transition to another hardware manufacturer would be both expensive and difficult, at a time when the government has little funding for new initiatives.

Since the government needs Cisco to be a smoothly functioning company to meet critical information needs, it makes sense that they maintain tight relations.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> As discussed on NANOG from a few months ago:

[http://markmail.org/message/n32fmeb2dmtnbsff](http://markmail.org/message/n32fmeb2dmtnbsff)

I find the economics of the routing table to be fascinating. When someone announces a route, it makes use of a constrained (and often expensive, TCAM- based) resource on routers all over the world. More discussion:

[http://markmail.org/message/6sunzqtffav5jmfb](http://markmail.org/message/6sunzqtffav5jmfb)

</comment><comment><USER10> 512k is surely enough... [http://www.nux.ro/archive/2014/08/512k_routes_ought_to_be_en...](http://www.nux.ro/archive/2014/08/512k_routes_ought_to_be_enough_for_everyone.html)

</comment><comment><USER11> Slate article on using BGP hijacking to redirect mined bitcoins from an hour ago. Relevant? [http://www.slate.com/articles/technology/future_tense/2014/0...](http://www.slate.com/articles/technology/future_tense/2014/08/bgp_hijacking_cybercriminals_used_internet_architecture_to_mine_bitcoins.html?wpisrc=burger_bar)

edit: I'll take it by the downvotes without responses that's a "no"?

<comment><USER12> The downvotes are probably because you didn't explain why you think it's relevant, and therefore didn't actually contribute to the discussion.

<comment><USER13> How DOES downvoting work? All I see are upward triangles, if that has anything to do with it at all. How much more hidden functionality is there for "privileged members"? And how do you join the club?

<comment><USER14> Downvotes require a karma threshold (of 500 IIRC).

BTW, whatever you do don't overuse the 'flag' feature on stories as it seems when this is revoked it is permanent! I lost mine when trying to encourage news other than the passing of Steve Jobs.

</comment></comment></comment></comment><comment><USER15> Wouldn't it be nice to allocate a small part of the IPv6 space to geographically encoded IP addresses? In other words, the address itself can be used to physically locate the destination and a route could be chosen partially according to geography. It seems like this should be less arbitrary than the routes you need to chose now. Or is it?

<comment><USER16> IPv6 addressing does sort of work that way: each RIR (regional Internet registry) has just a single prefix allocated out of the global unicast address space, instead of a whole bunch of prefixes all over the place as with IPv4. And the IPv6 address space is large enough that ISPs can be given a single huge prefix that they can grow into. Consequentially, the global IPv6 routing table should be a lot smaller than the IPv4 routing table is today.

<comment><USER17> Not quite. The current IPv6 global unicast table is a bit of a poorly planned mess.

[http://www.iana.org/assignments/ipv6-unicast-address- assignm...](http://www.iana.org/assignments/ipv6-unicast-address- assignments/ipv6-unicast-address-assignments.xhtml)

<comment><USER18> There were some smaller chunks in the experimental days, but note that in 2006, each RIR was given a /12, and since then there have been zero allocations at the top level.

8 years of stability is hardly a "poorly planned mess".

<comment><USER17> In 2006 they also gave ARIN a /23 and APNIC a /20\. Then, one month later they expanded some previous RIR allocations into /12's; separate from the previous two allocations I mentioned. They are also allocated in a seemingly random order throughout 2000::/3, which they've decided to constrain their allocations to for some reason.

To the point that the linux documentation project still recommends the following as an ipv6 default route example: /sbin/ip -6 route add 2000::/3 via 2001:0db8:0:f101::1

Yea.. it's /workable/, but a lot of decisions with respect to IPv6 feel like wasted opportunities that have only slowed adoption and promoted general confusion.

</comment></comment></comment></comment></comment><comment><USER19> Neat, I was up late last night and noticed several sites stop working at almost exactly the time of the spike on Cyrmu's graph that went away when I proxied through my Linode in the Dallas datacenter (normally I just go straight through Comcast), though I didn't really think much of it at the time.

</comment><comment><USER20> Dutch business ISP/Colo/Hoster Bedrijvenweb also experienced outages: [http://noc.bedrijvenweb.nl/dashboard/244/op-dit-moment- ervar...](http://noc.bedrijvenweb.nl/dashboard/244/op-dit-moment-ervaren-wij- packetloss)

</comment><comment><USER21> [https://secure.ciscodude.net/blog/2014/08/12/major- internet-...](https://secure.ciscodude.net/blog/2014/08/12/major-internet- issues-today/)

</comment><comment><USER22> I'm surprised this isn't getting more press. Shaw in Alberta has been having problems all day, not sure if it is because of this but I would hazard a guess that it is.

</comment><comment><USER23> Could this be anything to do with why my ping has been spiking to 20 seconds today? Or is it just Sky being useless?

</comment><comment><USER24> Fun times today at work.

<comment><USER25> Yup. It was 5pm in South Korea when this hit. Suddenly much less quiet than usual on the Engineering floor.

</comment></comment><comment><USER26> Will SDN fix such issues?

</comment><comment><USER27> ruined my morning at work, ugh

</comment><comment><USER28> I love this. There is too much conservative behaviour at the expense of innovation. Things break, let's be prepared, let's upgrade, let's not worry about 100% up time and start actually building something bigger.

<comment><USER29> By building something bigger, are you referring to larger BGP routing tables?

</comment></comment><comment><USER30> Standard response: Quick, deploy IPV6 and fix the problem!

OH WAIT, WE DIDNT FKIN THINK OF THIS IN OUR RUSH TO PUSH A BROKEN INCOMPLETE SOLUTION.</comment>


Denial of Service and Unsafe Object Creation Vulnerability in JSON Gem - <AUTHOR> https://groups.google.com/forum/?fromgroups=#!topic/rubyonrails-security/4_YvCpLzL58

<comment><USER2> >`JSON.load` should _never_ be given input from unknown sources. If you are processing JSON from an unknown source, _always_ use `JSON.parse`.

This seems like poor method naming; I would not intuitively understand that "load" is far more dangerous than "parse."

Why not deprecate these and do names like

JSON.load_trusted

JSON.load_untrusted

<comment><USER3> Better would be load and load_trusted so that the safer function has the short (and expected) name.

<comment><USER4> Why have the unsafe function at all?

</comment></comment></comment><comment><USER5> Some details on how this can be exploited:

[http://www.zweitag.de/en/blog/ruby-on-rails-vulnerable-to- ma...](http://www.zweitag.de/en/blog/ruby-on-rails-vulnerable-to-mass- assignment-and-sql-injection)

<comment><USER6> Thanks for reporting this issue to us! :-D

<3<3<3<3

<comment><USER5> Was a pleasure!

With love :-) Thomas

</comment></comment></comment><comment><USER7> I apologize for the ignorant question, but how does Ruby survive this in normal operation?

"Since Ruby symbols are not garbage collected, this can result in a denial of service attack."

If you have a long running Ruby app,and it does not garbage collect symbols, then those symbols are... constants I guess?That survive till the app stops operating? So I guess the assumption is that no app should use too many symbols (and they don't use much memory anyway?)

<comment><USER8> This is not an ignorant question. Any half-experienced Erlang developer can tell you that you use `list_to_existing_atom' rather than `list_to_atom' if you are ever doing dynamic things with atoms. So, if you're trying to accomplish dynamic module lookup and foo_baz.beam is in your code path, default startup will create the `foo_baz' atom, and you know that this atom will exist at runtime.

Symbols in Ruby are atoms (the term "atom" spans languages), and GC/space issues plague any persistent term like an atom, in any language.

And thus I arrive at a key question: Does Ruby have something like `list_to_existing_atom', or some mechanism for telling if a symbol exists already? I see no analog to this, only the `ID2SYM' macro in the extensions API, and similar calls like String#to_sym.

Perhaps there is some way to clean up symbols after they are created. This to me would seem like the ideal route. It's good they've got a stop-gap fix by changing defaults, but it feels to me like they're punting here. Perhaps users who do [ab]use this feature also would not like DOS attacks?

I hope others who know more about Ruby extension development, and symbol management capabilities, can chime in on these questions.

<comment><USER9> there are methods in the ruby reflection api that take strings and silently convert them to symbols so it is really easy to accidentally leak memory.

however, on ruby trunk they added a method: rb_check_id which can be used to check if a string has been already symbolized (<https://github.com/ruby/ruby/blob/trunk/parse.y#L10465>). this means when these reflection methods get passed a string and it hasn't been symbolized they can bail out and not symbolize the string. (<https://github.com/ruby/ruby/blob/trunk/object.c#L2073>)

<comment><USER8> This is an excellent development.

Indeed, when researching just now, I saw examples of people throwing strings at Module#const_defined?, which no doubt get converted to symbols straightaway.

</comment></comment></comment></comment><comment><USER9> also if you have done require 'json/add/rails' you are in for fun ([https://github.com/ruby/ruby/blob/v1_9_2_381/ext/json/lib/js...](https://github.com/ruby/ruby/blob/v1_9_2_381/ext/json/lib/json/add/rails.rb#L10))

        irb(main):001:0> require 'json/add/rails'
        => true
        irb(main):002:0> class Foo
        irb(main):003:1> end
        => nil
        irb(main):004:0> Foo.json_create({"x" => "bar"})
        => #<Foo:0x007fc5f3149540>

[https://github.com/search?q=require+%27json%2Fadd%2Frails%27...](https://github.com/search?q=require+%27json%2Fadd%2Frails%27&type=Code&ref=searchresults)

</comment><comment><USER10> Is it Monday again?</comment>


GitCasts - <AUTHOR> http://gitcasts.com/

<comment><USER2> I got a lot of feedback on these videos (they are a year old now) and started on a new site that incorporates those suggestions at <http://learn.github.com>

Once I get all the same material covered, I'll probably start redirecting this site to the new one. I'm actually just finishing up a print book with Apress on Git that is CC-3.0 licensed, so I'll be putting a site with the contents of that book online soon too (then I'll have some free time to finish up the learn.github.com site).

</comment><comment><USER3> I'd also recommend <http://gitready.com/> which is a kick-ass Git focused blog with tutorials and the like. It's by HN user _qrush_.

</comment><comment><USER4> These were a big part of how I learned git. Do check out his git internals book; the material in it is basically what's in the 'casts, structured along the lines of his RailsConf talk: <http://gitcasts.com/posts/railsconf-git- talk>

The approach he uses is very similar (a little bit more detailed) to this tutorial ("Understanding Git"): <http://news.ycombinator.com/item?id=531517>

</comment><comment><USER5> Am I alone in not really liking screencasts?

I can't really go at my own pace, or skim, like I can with a web page. I can't cut and paste.

I can see why they appeal, TV vs. book etc. etc. Less perceived effort.

</comment><comment><USER6> doesn't it say something about git's usability that there are so many help guides, tutorials and screencasts just to try to show its basic functionality?

it's a revision control system for pete's sake. it should track revisions in your code and let you get back to work.

<comment><USER2> I think the fact that a lot of people feel driven to take their time to write about a tool is much more indicative that it is an incredibly helpful tool, not that it is difficult to use. If you used some tool and it was really hard and barely got the job done, would you feel passionate enough to write a post or tutorial on it? Does horrible usability drive passionate proselytizing? No.

The fact is that proper version control is a hard problem. Tracking your work quickly and simply without forcing you to conform to a workflow prescribed by the VCS tool itself is a non-trivial problem (unless of course your work is itself trivial). Git solves this problem elegantly and efficiently and the amount of information popping up recently are from users who are thrilled that a tool finally exists that does not limit how they do their work and who want to share that with others so they can work better too.

I am driven to do all the Git related stuff that I do because I love the tool and it is so much better than what I had ever used before, not because it's frustrating to me or I feel it's hard to use.

<comment><USER7> "I think the fact that a lot of people feel driven to take their time to write about a tool is much more indicative that it is an incredibly helpful tool, not that it is difficult to use. If you used some tool and it was really hard and barely got the job done, would you feel passionate enough to write a post or tutorial on it? Does horrible usability drive passionate proselytizing? No."

But there _are_ things about git that are non-obvious, and tricky if you've been accustomed to cvs, svn, or even hg.

It's sort of like learning OOP after years of BASIC. Once you get going, you may wonder what was so hard about it, but getting a proper mindset can be difficult.

</comment></comment></comment><comment><USER8> This site date representation is really not user friendly. At first I thought "Jul 13" is a schedule for near future, but after clicking it video showed up. Comments are marked "48 weeks ago", so after some calculations I could finally confirm it's from last year.

<comment><USER9> Great suggestion. One of my pet peeves is sites that don't show the year in the date of the post, never mind the ones that don't show a date at all. The date is extremely relevant when it comes to tech articles.

</comment></comment><comment><USER10> Hasn't been updated in a year. I used to watch and subscribe, until they stopped coming out.</comment>


Hacking Amazon images - <AUTHOR> http://aaugh.com/imageabuse.html <comment><USER2> It would be fantastic if we could really get 99% off Hackers And Painters: [http://images.amazon.com/images/P/0596006624.01._PE99_SCLZZZ...](http://images.amazon.com/images/P/0596006624.01._PE99_SCLZZZZZZZ_.jpg)

<comment><USER3> I have bought a few copies to give to some hacker friends, so I wouldn't mind a discount too :).

I think it is the only book I have bought more than one copy of, so kudos to pg's writing skills.

</comment></comment><comment><USER4> You can do this with lots of major retailers that use Scene7...fun with image servers!

<comment><USER4> an example: [http://s7d2.scene7.com/is/image/Fortunoff/5508214??bgc=255,2...](http://s7d2.scene7.com/is/image/Fortunoff/5508214??bgc=255,255,255&wid=1340&qlt=90,0&layer=comp&op_sharpen=0&resMode=bicub&op_usm=0.7,1.0,0.5,0&fmt=jpeg&rotate=-135)</comment></comment>


How to Web event in Bucharest - <AUTHOR> http://www.how-to-web.net/ Just came back from the event. Any other HN's here who want to comment on it? <comment><AUTHOR> Just came back from the event. Any HN'ers here who want to comment on it?</comment>


NYC Needs a Startup Blog w/out a mesh of financial conflicts - <AUTHOR> http://codybrown.tumblr.com/post/419106809/nyc-needs-a-tech-startup-blog-lets-build-it

<comment><AUTHOR> This is a baller idea!</comment>