Monthly Archives: January 2012

The V8 Myth: Why JavaScript is not a Worthy Competitor

Dynamic analysis is a great complement to static analysis: unfortunately, it is not a replacement. An ActionScript program that has been optimized to death by an AOT compiler can, almost trivially, beat a JavaScript program that is optimized on the fly by the JIT compiler. The only way out would be to let the JIT compiler work till death, but that is not an option! Checkmate.

So yes, you will hear about all the great things in V8 (JavaScript VM), including type inference. The fact is, there is no way a JIT compiler can afford to do the kind of modular analysis that an algorithm implemented in an AOT compiler can.

Regardless how arrogant it sounds, it’s true. Numbers do follow in the article.

Google is FUBAR

Late yesterday, Google announced perhaps the biggest change it has ever made to its massive network of web services: Starting in March, your search and surf habits across all of Google’s products will be combined to form the mother of all behavioral profiles. On March 1, Search will know the contents of your email and the videos you watch on YouTube. If you use Google Docs for work, Search will know which company you work for and which industry you work in. Via Google Reader, Search and YouTube will know what content you like to consume. And of course, the kicker: Google’s ad networks — AdSense, AdWords, DoubleClick — will have full access to all of your search and surf habits from every Google web service.

Google has all the right to do it. They are also trying to communicate it in a sensible way. Yet, not much of the past innocence has been left after Mr Page’s statements issued after he became the CEO.

Two things about SOPA/PIPA and then I’ll shut up :)

The solution is to start lobbying for our own laws. It’s time to go on the offensive if we want to preserve what we’ve got. Let’s force the RIAA and MPAA to use up all their political clout just protecting what they have. Here are some ideas we should be pushing for:

* Elimination of software patents
* Legal fees paid by the loser in patent cases; non-practicing entities must post bond before they can file fishing expedition lawsuits
* Roll back length of copyright protection to the minimum necessary “to promote the useful arts.” Maybe 10 years?
* Create a legal doctrine that merely linking is protected free speech
* And ponies. We want ponies. We don’t have to get all this stuff. We merely have to tie them up fighting it, and re-center the “compromise” position

In what can be the most interesting aspect of the whole SOPA fight, the people who are building the internet prepare to go to war with “Hollywood” (i.e. large media companies). Here we have Joel Spolsky. Paul Graham came up with a call to action to startup founders.

My first reaction to ponies was allergic (What’s next? Kittens, to render to whole thing laughable?), but then I realized that I’m more and more out of touch with how public debates are done these days.

The GitHub Job Interview

Here’s what you do. You come up with a cool idea of an open-source project. This becomes your company’s development sandbox. Candidates are asked to then contribute to the project in some way. You want to see them code? Ask them to develop a module. You want to see them tackle a bug? Ask them to choose one from the bug-list. This works for every aspect of development work. You can design features together. You can gauge their communication skills. You can see how well they handle reviews. You can ask them to document their work and see how well they can write. But above all, you’re not taking advantage of anyone, and true developers probably won’t mind investing time into an open-source effort.

Interesting idea. It certainly requires more effort than just having few conversations, so I don’t see it becoming a standard procedure, but it may be worth trying.

Flipping the Bit

What if you were on the Starship Enterprise and the warp coil was seconds away from an anti-matter explosion and all you needed to do was invert one IF statement to save the ship. Would you use TDD for that?: Yes.

The article embodies what I see as the biggest problem with Test Driven Development’s evangelism: it’s full of religious zeal, but short on real-world numbers.

8 Things You Ought to Know If You Do Not Know Anything About Hiring A Software Developer

I would ask for proof of talent. Although a degree from an ivy league university might do the trick for some, quality experience does set the good developer apart. My developer friends have loads to show to testify for their talent. For some, from past work done, for others, from apprenticeship projects, but for all, from hands on development.

How to find a programming “friend”. Tips that, when applied in real life, would almost guarantee you would die lonely.

Onboarding: Making the most of joining a new team

Don’t be too critical too early. Sometimes when you arrive on a new project, there may be things that do not make a lot of sense: a choice of tool, technology or practice that no-one appears to question but to you as an outsider seems substandard. It’s worth just hanging back on that criticism just for a couple of weeks. Ask your team mates for back story and try and get their opinions too. It’s alway worth digging around for the reasons first. Then you might be in the position to change things and make a positive contribution to the team.

Tips for programmers joining new teams.