2008-03-27

Amazon EC2 is now ready for production use

Today is the day Amazon Elastic Computing Cloud (EC2) became ready for production use.

Werner Vogels announced the launch of two crucial features: customer-specific IP addresses and geographically spread out sites.

Previously every machine you started was assigned a random IP address, and you had to have your own load balancers, or hope that none of your clients had misconfigured their DNS.

This also gives us hope that we can serve non-US customers through Amazon EC2 someday, as the availability zones can be easily extended to the EU and Asia.

The currently available zones are:
AVAILABILITYZONE us-east-1a available
AVAILABILITYZONE us-east-1b available
AVAILABILITYZONE us-east-1c available


Amazon calls these features Elastic IP Addresses and Availability Zones.

2008-03-21

Mikael's Java library pack

These are the Java libraries I end up using in many if not most of my projects, from the least known to the most popular:

Generic Algorithms for Java (jga) provides really easy tools for common collection tasks. Alas, this great library has languished unmaintained for a while.

Google Collections contains the same kind of functor functionality as jga, as well as useful collections utilities. There is only an alpha release available at this time, and it is unclear to me whether Google is committed to maintaining the library in the future.

Joda-Time lets you handle dates and times in a way that leaves you refreshed and invigorated, instead of wanting to scratch your eyes out, like the standard library date/time functionality. It is in the process of being included in the standard library at some point in the future.

Apache MINA provides nice, just abstract enough interfaces for building network servers for lesser-known protocols, and takes care of the nitty gritty details of the high-performance networking requirements.

Grizzly approaches the same area as MINA from a different direction, and might replace it in my use, especially as it's a part of GlassFish, and thus deployed into production with every GF installation.

Spring Framework does a whole lot of J2EE related gruntwork and boilerplate, saving you the trouble of re-inventing those wheels. Instantly improve the quality of your codebase by telling junior developers to only touch JDBC through Spring. This library is a gift that keeps on giving.

Google Guice provides a subset of Spring's functionality. It has excellent potential, but only a few developers and few users outside Google.

2008-03-18

OpenSolaris' Grand Day Out, starring DTrace and VMware

I finally started the DTrace experiment I've been planning for a while, yesterday.

The experiment had a rocky start, since the primary platform I planned using, SXCE Nevada b84, refused to install inside VMware. The solution I found today was to remove the virtual IDE hard drive the VMware image creation tool added to a new Solaris project, and add a virtual 16GB SCSI drive. Since the SXCE installer was very unhelpful with its error messages, it took a bit of tinkering.

Overall I'm installing three Solaris distributions: Nexenta Core 1.0, Indiana PR2 and SXCE b84.

Indiana had a reasonably pleasant installation experience, nonwithstanding the networking problems which necessitated disabling the nwadm tool and twiddling with the VMware .vmx configuration file. Its challenges lie in the new packaging tool, IPS, which seems to be in a prototyping stage, since it doesn't offer any kind of dist-upgrade functionality, and its undecipherable package names seem to be stuck in the MS/DOS land of 8.3.

SXCE still offered the option of using CDE, which is a bit like a car door offering the option of slamming on your fingers, and it shared Indiana's networking problems. Its overall user experience is worse than Vista's.

Nexenta Core had the most pleasant installation and use experience, and that's what I'd like to use, but I fear its tools don't have DTrace support compiled in. Have to see about that.

2008-03-13

NetBeans 6.1, Maven, Spring 2.5 MVC, Quercus and Mercurial

I've been playing around with the NetBeans 6.1 beta, learning how the new Spring 2.5 MVC annotation-based controllers work combined with Quercus, and how to use Mercurial to source control the whole shebang.

My local Mercurial repository is at http://www.gueck.com/hg/, and this project at http://www.gueck.com/hg/p2j/.

The concrete objective I set myself is to think up a workable way for growing organizations to transition their applications from PHP to Java, without stopping the world.

Step 1: See whether you can run your PHP code completely on Quercus on the JVM, or whether you have to run some parts of the application off Apache and some off the JVM, using mod_rewrite.

Step 2: Transition your whole PHP codebase to run on Quercus on the JVM.

Step 3: Hire at least two senior Java developers to help your developers get to in terms with object-oriented development with virtual machines. Start the slow process of moving people's thinking from a prodecural model to a object-oriented model.

Step 4: Start writing business logic controllers in Java, and use Quercus/PHP for views.

Step 5: Together refactor the controllers which will inevitably still be written in the old procedural PHP model, no matter how smart your developers are, because changing how you think takes time.

Step 6: Profit! Maintainable code! Fewer security risks!

2008-03-11

NetBeans 6.1 beta is getting pretty good!

I've been test-driving the new beta of NetBeans 6.1 through the night.

I'm impressed with what it delivers.

The high points for me are:

* usability: it's quick, it has the shortcuts I use often, and the UI doesn't look like monkey poo flung to a wall, like the previous versions with the GTK L&F did

* library support: it supports Spring 2.5 out of the box! If I want to get someone to try out Spring for the first time, I'll direct them to NB 6.1. Even its wizard-generated projects and code files look fairly sensible, which is very rare.

* default SVN, CVS and Mercurial support: I've been playing around with Mercurial for a while, lamenting its lack of a Eclipse plugin, and this has been a nice opportunity to experience what working with Mercurial in a graphical environment would feel like.

2008-03-08

Hyvät työkalut nostavat suupieliä

Lopettelen pitkää lomaani, ja tein todella onnistuneita työkaluhankintoja.

Hankin Mikromafiasta uuden koneen (E8400, 8GB, 2TB) johon asensin Ubuntu 7.10 amd64:n.

4x2GB DDR2 muistin hinta on vain 220€. Suosittelen päivittämään. Ero on todella tuntuva.

Suoraan Ubuntun mukana ilmaiseksi tuleva, vastikään Sunin ostama VirtualBox-softa toimii erinomaisesti. Se ei ole yhtä kypsä kuin VMware, mutta sen asentamisen ja käytön vaivattomuus, "aptitude install virtualbox", korvaa tätä.

Sain hyvin nopeasti tehtyä dedikoidut virtuaalikoneet Windows Server 2008 Enterprise trialille, Oracle 10g XE:lle ja PostgrSQL 8.3:lle. Tuossa vaiheessa kärsivällisyyteni loppui, ja aloin leikkimään^H^H^H^H opiskelemaan noita tuotteita, mutta seuraavaksi DB2-ExpressC 9.5, MySQL 5.1 ja sovelluspalvelimista pari WLS-versiota, JBoss ja tietysti GlassFish.

Tuntuu todella hyvältä kun ei tarvitse koko ajan kiertää työkalujen rajoituksia. Funtsin että olisiko pitänyt samalla ostaa Samsungin 30" monitori, jota olen pitkään himoinnut, mutta sen 1500€ hinta/hyötysuhde tekee siitä vielä urheiluautonkorvikkeen suhteessa 300€ 22" Samsung 226bw-monitoriini, johon olen ollut myös erittäin tyytyväinen.

Näillä kelpaa tehdä töitä. :-) Sitten pitäisi vaan lähteä keikalle myymään itseään. :-(

2008-03-03

American Gods by Neil Gaiman



HarperCollins is apparently releasing the whole text of this book for free on the Internet.

Thanks, Reddit, for the original link.