The Devil’s in the Details [of Software Development]

It’s always a bit upsetting when I experience that people don’t know concepts related to software development that I think are very common, because lacking knowledge about these “details” can lead to big misunderstandings.

Software Development Cat

I prefer to think that it’s my fault, our fault as an industry, not theirs fault, so here we go with a semi-random choice of fundamental concepts about software development process.

I’d like to talk about these topics distilled from my past and present experiences (yeah, more than 20 years…) in a way that’s “less about making the decisions and more about decision-making” (to cite my good friend Matt, our beloved CEO).

What I’m going to explain should be placed especially in the context of a startup, where time and resources are never enough by definition, much more than in a corporate context.

This post is directed mainly to managers and other people that have little or no experience with software production, but could also be useful to all young developers.

I’m going to be very practical, too (I’m not up to the task for theory, go find some good books about it.)

Continue reading

HTML5 Audio/Video Capture Status

Here at CrowdEmotion one important tech topic is capturing video in the most efficient way: we must be very careful about the quality of capture process, as on it depends part of the accuracy of our analysis processes.

On desktop web platforms the obvious choice is between Adobe Flash and, quite recently, HTML5.

Why bother to find something different from Flash? I’ll not add anything to what someone way more authoritative than me wrote on this topic; the conclusion is simply that HTML5 is the way to go for a number of very good reasons.

Currently, we use a 3rd-party Flash-based solution and we are fairly satisfied with it, but we need to do more, be more flexible. We already started experimenting with Flash development (with Haxe to try to work with open tools) and open source RTMP video servers (Wowza, Red5), but in any case you’re limited by the closed Flash platform.

One simple question first before going on more on HTML5 capture: why Google Hangouts does not yet run on HTML5 and relies instead on a native plugin?

Quick answer: because HTML5 real-time communication stack, called WebRTC, even if feature-complete, seems definitely too young to be adopted for a mainstream & strategic product like Hangouts.

Continue reading

Cloud Demystification

Something weird and unexpected happened lately: the big Amazon cloud failed. Anyone on any media is talking about it, and everyone is communicating just this sense of surprise.

Wait a second and let’s ask to ourselves: why is it weird and unespected that AWS failed? The cloud is something human, so it has failed, as expected, and will fail again. By the way, I am sure that it failed a number of times in the past, but the failures weren’t so big to be noticed like the last big event. Continue reading

URL Shortening

Introduction

If you want, you can read everything about URL Shortening on wikipedia (i.e. http://bit.ly/bgkuGT or http://d3w.io/9KilxK or http://➡.ws/蔤囦 ) but I would like to shortly (sorry, pun intended) say a couple of things.

The “URL shortener” concept is very simple: take an URL and transform it into another (shorter) URL, then use redirection to go back to the first URL. So what’s the deal? Continue reading

A simple SimpleDB use case

I’m happy to say that I had the chance to use Amazon AWS for a project of my customer Deltatre.

The news is particularly good because it offers a real argument in the “use or don’t use it” debate, and offers practical innovation to the company.

Technically, we decided to go on with SimpleDB during the development of deltatrePULSE (or simply Pulse) product: the idea of CTO Carlo De Marchis is to create a new distributed system that will open more the Deltatre web/sport platforms. Continue reading

Google Chrome Mac Builds

Here you can find the builds of Chromium (the open source project on which Google Chrome is built) for Mac OS X that the fine guys at Google are preparing for us.

Waiting for an official version of Chrome (and for Firefox 3.1), let’s continue the browsers’ war on features and not on the garbling of web standards!

Lightweight Microsoft.NET Process Debugging in Production Environments

Everyone is aware of the problem of discovering the causes of a bug when it’s only present in one environment and, if it’s Production, the problem is even bigger, even if you have a solid error logging system in place.

Recently we faced this same situation and we didn’t have any clues to help us, only that the w3wp process was dying and the ASP.NET session remained locked. After some thought, we arrived at the conclusion that there was an infinite loop somewhere, and we had a vague idea of the “zone” of code where this was happening, but we couldn’t reproduce it in any other environment even after several hours of testing.

Continue reading