lucisferre

“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. —Sir Charles Antony Richard Hoare”

The Startup Rush

California Gold Rush

The one very hard to miss elephant in the room amidst all of today’s startup hype is the inevitable question: “are we in a bubble?” I certainly don’t claim to be able to predict the future of the software market, and like most people, I’ve had at least a twinge of skepticism towards all the current software startup hype. However, after some careful consideration I think the obvious conclusion is that this really isn’t a bubble.

You’re Having noSQL Problems, I Feel Bad for You Son

Just recently on Hacker News a whole bunch of posts either deriding or defending Mongo (or in some cases noSQL as a whole) appeared. It all started with this. The problems with this little tirade against Mongo are multiple but the foremost is that it was posted entirely anonymously, and I can’t really think of a reason why someone would feel the need to post something like that anonymously other than to hide from ridicule.

The CTO of 10gen responded in the comments and pointed out that this scenario seems highly unlikely at worst and at best is seriously hyperbolised.

Microsoft and Open Source: Still Oil and Water?

Open source software is something very near and dear to me. I use it every day, it helps me get work done, allows me to skip over large chucks of repetitive architecture code, teaches me things and lets me focus on business problems not just technical ones. Honestly, I’d probably go mad without it, I know I certainly would not know even half of what I know if it wasn’t for all the code up there on Github that I can peruse. This has been doubly true while learning and building in Ruby on Rails.

Microsoft seems to have been unable to ignore the importance of open source either, though in the 90’s they gave a decidedly valiant effort to slay it as if it were some ugly dragon, threatening their customers precious “total cost of ownership”. This antagonism has made Microsoft quite the FOSS villain in the past, a reputation that still lingers a bit today. However there are definitely rumblings inside of the Redmond giant over the past few years that seem to indicate big shifts, at least internally to embrace open source software.

No One Wants to Buy Your Iterations

One of the most common agile tools in the toolbox is the good old iteration. Call them what you want, sprints, cycles, releases, but iterations while a potentially valuable and useful exercise for teams new to agile, can easily become dangerous to the quality of the software and the morale of the team if not used in moderation.

Iterations are useful for a number of reasons, they force teams to break down the product development, they encourage small batches and they help to keep work manageable and time boxed. Honestly, what’s not to like about iterations?

Don’t Call the DOM in a Loop

One of my mine pet peeves with backbone.js is how readily it leads to collection views that are rendered by calling the DOM via $.append() in a loop.

I’ve discovered that making updates to the DOM in a loop is, in general, a bad practice that should be avoided whenever possible. To be completely fair with small enough collection sizes this isn’t really a big problem. So as long as you are doing proper paging of your collection you shouldn’t run into this a problem. That said you are not always going to work with small collections and the fact is if it is a bad performance problem for large collections then it is bad for small one just as well.

We ran into this a few times to the point where we’ve decided to make it a general rule that we do not call the DOM in a loop. Instead we either use each in our jQuery templates (which seems to perform just fine) or collect the child view html up in a variable and .append() it all at once. So just my advice here, do not call the DOM in a loop.