Archive for the ‘Computers and Internet’ Category

A simple SimpleDB use case

Monday, May 4th, 2009

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 mode the Deltatre web/sport platforms.

Apart from strategic consideration, I would like to stress the fact that this decision was not forced by some obscure needs for innovation: in fact, both the data model and use cases fit perfectly with SimpleDB (costs considerations will be done as soon as we have some usage data at hand;) summarizing, Pulse needs an entity with 5 attributes (for now) in which to write a sport news and read it back later, modifying its state, and it should not be tied to a precise Internet hosting facility.

SimpleDB become a natural choice once the Pulse prototype run for some time: in fact, the first implementation of the Pulse Log Repository (i.e. the persistence layer) was implemented using FriendFeed as the “database” (we saved XML as FriendFeed entries, and attributes as comments), and it worked like a charm until our Pulse server IP was temporarily banned because we hit the rate limit; after some research, it was clear that FriendFeed was not good for our needs because the rate limits info are not disclosed, even if it was chosen because it can be seen as a free and simple to use database system that does not require any maintenance.

We were stuck, so it was immediate to think to SimpleDB: a simple to use database system that does not require any maintenance and “lives” on the Internet, even if it’s not free but that it’s not rate limited, though. In a matter of minutes we had a company-wide AWS account, and in two hours we were running on SimpleDB instead of FriendFeed.

I’ll give more technical and practical information about SimpleDB usage (and about clouds in general), but for now I would like to conclude this post saying that, besides a lot of [good and bad] _corridor discussions_ about computing clouds, my advice is: get somewhat familiar with the tool, then use it when you need it, as you would do with any other tool.

You can follow Pulse development and some other funny things on my Twitter profile.

  • Share/Bookmark

Apache, SSL/TSL and SNI status

Monday, April 20th, 2009

I’m trying to host my handful of web sites on Amazon, but in EC2 machines there’s support for only one IP (private and public) and, as you know, SSL/TLS encryption let you have only one domain name per IP address: this is a heavy limit (with a reason), but it’s unacceptable for some reasons (public IP addresses scarcity, cost and management overhead).

Besides other solutions (multi-domain certs for example), I would like to go for the most reasonable way: virtual hosted SSL/TLS web sites, exactly the same way we all use today for non-encrypted web sites. I use Apache and for it there are a couple of solutions in the works that implement SNI or Server Name Indication: an extension to TLS protocol that “… permits the client to request the domain name, before the certificate is committed to by the server“. The support in browsers can be also a problem, but every recent browser supports it (with the exception of IE 6 and 7, apart from Vista); try your browser here.

The solutions I found involve are three (I don’t exclude there are other ones):

  • mod_ssl: the standard Apache SSL/TLS modules, which in turn is based on OpenSSL
  • mod_gnutls: uses the GnuTLS library and not OpenSSL
  • using a SNI-aware web server (like lighttpd or nginx) as frontend/proxy, but this can generate some administrative overhead because I don’t know them at all.

OpenSSL is in fact part of the problem: the support for SNI was introduced in v. 0.9.8f (October 2007) as a TLS extension and fixed in a later version, but these are enabled by default only in 0.9.8j (January 2009). There also no official support yet in mod_ssl for Apache 2.2 (apart from some code and patches for the current and development Apache versions, see here and here).

I finally decided to try the mod_gnutls module way: because of some dependencies on my Centos 5.2 test environment (libgcrypt and GnuTLS itself) it took me some time, but now I have a working SNI web server with how many secure web sites I want (and user’s browsers permit) with only one IP address.

BTW, if you need to generate self-signed certificates, look here.

Update: I used nginx without too much worries, compiled latest version with this command and substituded the official Centos 5.2 version after installing it (don’t do it!), and used it as a proxy in front of apache:

./configure --prefix=/usr --sbin-path=/usr/sbin/nginx \
 --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log \
 --pid-path=/var/run/nginx.pid  --lock-path=/var/lock/subsys/nginx \
 --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module \
 --with-http_gzip_static_module --http-log-path=/var/log/nginx/access.log \
 --http-client-body-temp-path=/var/lib/nginx/tmp/client_body/ \
 --http-proxy-temp-path=/var/lib/nginx/tmp/proxy/ \
 --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi/ \
 --with-openssl=../openssl-0.9.8k/
  • Share/Bookmark

Google Chrome Mac Builds

Wednesday, March 4th, 2009

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!

  • Share/Bookmark

Blogengine.NET Textile Extension

Friday, November 21st, 2008

An extension to add Textile support to Blogengine.NET, directly derived from the Markdown extension by Alexander Schuc (who I thank a lot).

To download it click here.

  • Share/Bookmark

Lightweight Microsoft.NET Process Debugging in Production Environments

Friday, August 22nd, 2008

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.

(more…)

  • Share/Bookmark

The Italian iPhone Scandal

Friday, July 11th, 2008

Just today, on the announced first day of iPhone 3G on the market, the Italian “competitive spirit” has struck again: it seems that Vodafone and TIM have “agreed” to maintain prices of the iPhone ridiculously high; luckily someone has noticed it and reported it to the antitrust agency, which will monitor now possible violations of the law: TLC. I-phone, Antitrust opens pre-inquiry on Tim and Vodafone after the petition submitted by the Movement of Defense of the citizen (MDC).

Many people are protesting (as can be seen looking on search engines), and in particular the site melamorsicata.it launched the online petition iPhoneAffossato, which should help to disseminate more information to the public.

Despite the cost too high compared to other countries, the iPhone is selling well (at least judging from the numbers of the Vodafone shop, if they are real…) and probably the boycott, suggested by several parties, will not have the necessary effectiveness to lower the rates of the two companies: have we to hope in the Tre offer?

  • Share/Bookmark

Bilingual Support

Friday, July 11th, 2008

From today my blog supports more than a languade, English and Italian.

The reason behind this addition is that I felt a bit uncomfortable writing only in English some posts that I would like to be read also in my language, to support the diffusion of technologies and ideas that I think about as important in the country were I live and work.

The preferred language can be choosen selecting it in the top right of the home page. I added the multilingual support to Wordpress installing the qTranslate plugin, very well done even if it has some small defects.

So have a good reading!

  • Share/Bookmark

Ratings!

Friday, July 4th, 2008

Recently I noted that I do not have a lot of comments on my blog (around 60 on 120 posts from 2003) but anyway I would like to some more feedback, so I installed the very-well-done plugin WP-PostRatings: now even my lazier reader can rate any post or page with only one click! ;-)

Remember: in general, who writes does it because likes it (and likes also having some form of reward), but he/she cannot do better without your help so, if you like some post in some blog, please invest some minutes and do comment it!

  • Share/Bookmark

A Case of Architectural Refactoring

Monday, June 30th, 2008

Some weeks ago one of my customers decided that one of its biggest ASP.NET web intranet projects needed a sort of architectural revision, mainly to support better its customers with built-in fault tolerance but also to unchain development of the various sub-projects through better separation between software modules.

(more…)

  • Share/Bookmark

The analysis phase: time to grow up?

Tuesday, June 10th, 2008

When small software companies get bigger they embark on what can be a bumpy ride of change. One of those changes will probably be to do with the way they tackle the analysis phase of the software development life-cycle (SDL). Just to be clear, when I say “analysis phase”, I mean the part before coding starts i.e. requirements elicitation, analysis and system specification.

Typically (although I am sure that there are plenty of shining examples where this is not the case) small software companies with a handful of developers, where the entire SDL for a project is covered by one or two developers, tend not to have a formalised analysis phase. Why is that?

(more…)

  • Share/Bookmark