Archive for the ‘Informatica’ 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

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

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

Clouds Evolve: Dealing with Infrastructure Complexity

Sunday, June 8th, 2008

As expected, at least by me, Amazon EC2 is evolving in a more “concrete” platform good for web hosting; in fact, some time ago I received a mail from AWS announcing two new features: Elastic IP Addresses and Availability Zones (you read for sure the news also on Slashdot: Amazon EC2 Now More Ready for Application Hosting, isn’t it?)

(more…)

  • Share/Bookmark

Amazon EC2 will get persistent storage

Tuesday, April 15th, 2008

Only a small note to let you know that Amazon is hearing us and added a new feature to EC2: persistent storage.

As a subscriber of AWS services yesterday I received an email in which Amazon announces that we “will be able to create volumes ranging in size from 1 GB to 1 TB, and will be able to attach multiple volumes to a single instance. Volumes are designed for high throughput, low latency access from Amazon EC2, and can be attached to any running EC2 instance where they will show up as a device inside of the instance…“.

The mail ends saying that the new functionality “will be publicly available later this year” and offers a link to request to join the private beta program; I subscribed it and will let you now as soon as I’ll put my hands on it.

  • Share/Bookmark