Archive

Archive for February, 2008

Jamming for Inveneo

February 29th, 2008 Josh Graham 1 comment

After a meeting of the office of the CTO, most of us stayed around in our San Francisco office for a few days to do some podcasts and to participate in a Code Jam for Inveneo, a not-for-profit who provide computers and connectivity to developing countries (especially their schools, hospitals, and poorer villages).

They install a server in, say, a hospital with a few lower-powered, custom desktops (almost iMac in configuration). These, as well as the servers, can run off solar panels for power.

We were presented with a worthwhile problem with a number of interesting constraints:

  • Low-power server running Ubuntu, with two small SATA hard disks in a Linux software RAID-1 array
  • VMWare images of the servers for testing
  • Python, bash, mdadm, and beep as our “programming languages”

When a RAID array fails, we need to alert any (if any) humans who are near the server. This can be interesting as the only things nearby might be the tree it is mounted in with a long-range WiFi, or the goat who uses it as a heat source at night. This means that any alert should be sufficiently frequent and annoying for the locals to contact someone who can let the support technician know. The conflict is that it also might be the nurses in their office at the hospital who have work to do and don’t want to be disturbed.

The solution was to use the PC speaker to beep. We can control the pitch and duration of the beep. Some combinations sounded too much like an ECG machine so that was no good. In the end, we chose a simple rising scale that would sound odd in any environment (except, perhaps, in a Mike Oldfield recording). This is repeated by default every 30 minutes.

We also had to send an email to the support technician. This doesn’t work when the server doesn’t actually have any connectivity (as some are used only as a local communications hub), or when connectivity is unreliable. Even then, many of the technicians are hours or even days away from the servers.

As many of the technicians aren’t particularly technical, we also had help by identifying which of the two disks had failed and allow them to simply change the one labelled “Disk 1″ or “Disk 2″. Serial numbers are good for this but VM hard disks don’t have serial numbers (I think that’s a feature request to both VMWare and Parallels).

We had Jeff Wishnie from Inveneo as the customer, Anda Abramovici as IM, Jonny Leroy as BA, Paul Hammant and Chad Wathington as QA, and the star developer crew of Drew Olson, Sammy Zahabi, Ola Bini, Erik Doernenburg and your’s truly. We quickly learned the following:

  • The skills we needed (and had, just a little rusty) were more along the lines of Unix devices, shell, ASCII control characters, and simulation
  • Python sucks (a bad tradesman blames his tools? perhaps – but it still sucks)

Anyway, we got most of what we wanted done in the time, and given the context, more than we anticipated. But we all would have liked to get a lot more done and would have if we were using our tools of choice (which are chosen for very good reasons).

Nonetheless, we’re doing it for the kids and it was great!

What a buzz. Super Agile. Super Fun. Go Inveneo, you rock!!

JRuby 1.1 RC2

February 17th, 2008 Josh Graham No comments

Charles Nutter has just written up a nice summary of the things in Thomas Enebo’s announcement of RC2 of JRuby 1.1

He talks in general about the astoundingly improved performance characteristics, particularly when compared to the Ruby 1.8.6 and 1.9 native interpreters, as well as the better use of JVM resources. Let alone the 260 bug fixes since RC1.

There’ll be more from me soon about our commercial experiences with JRuby and hopefully give you some fuel for introducing Ruby into your large, conservative corporate environment. I have to say, going back 2 years and thinking about the “enterprise readiness” of Ruby, things have changed a lot – almost exclusively due to the work done on JRuby. The pace at which the JRuby team work to address issues and improve the platform is outstanding, and puts commercial software vendors (particularly those hawking development tools) to shame. Things also have a long way to go – there are many, many solutions that would still be recommended around a recent version C# / .NET or Java implementation and that doesn’t look like changing for some time. The team behind JRuby is multi-skilled and very aware of innovations in other languages and platforms and I think this is one of their key success factors.

If you are evenly remotely interested in working on an OSS project, I encourage you to contribute to JRuby, even if it’s just to identify a problem to be fixed – it’s fun, it’s a great community, you’ll learn a lot about Ruby and the JVM, and you’ll work with some of the best guys in the business.

Categories: Architecture, Coding, Open Source Tags:

Agile Meetup Alliance

February 16th, 2008 Josh Graham No comments

UPDATE: 4 continents now represented. I’m not sure that we’ll ever get Antarctica, but come on South America and Africa, I know you’re out there.

Calling all Agile and Lean user groups around the world.

If you have an online presence, particularly with one of the usual online group sites, I encourage you to add it to the worldwide meetup alliance.

The purpose of the Agile meetup alliance is to allow Agile Alliance user groups around the world to collaborate on events and to help those who travel to meet up with like-minded software professional wherever they are.

http://www.meetupalliance.com/agilealliance/

Of course, make sure you sign up to the Agile Alliance too!

Looking forward to adding your user group.

Categories: Agile / Lean, Conference Tags:

Ruby.NET is dead?

February 5th, 2008 Josh Graham No comments

I suppose we Aussies might give up too easily, Ola :-(

Antonio Cangiano let everyone else who isn’t on the list know the disappointing news from earlier this afternoon.

Categories: Architecture, Coding, Open Source Tags:

Because I am a girl

February 5th, 2008 Josh Graham No comments

If you’re complaining to someone about how wet it is, or cold, or hot, or how much interest rates have gone up, or your shares in Acme corp have gone down, or how your neighbour turns the music up too loud and you can’t sleep – just have a reality check for a few hours and read the 2007 Because I Am A Girl report from Plan organisation.

Some atrocious statistics to prepare your stomach lining:

  • Pregnancy is a leading cause of death for young women aged 15 to 19 worldwide
  • About 140 million girls have undergone female genital cutting and two million are subjected to it every year
  • In South Africa, 32% of reported child rapes were carried out by a teacher
  • In India, 60% to 70% of adolescent girls are anaemic
  • In Britain, among 16-24 year olds, twice as many young women as young men are overweight
  • One in 10 births worldwide is to a mother who is still a child herself
  • 70% of the 1.5 billion people living on $1 a day or less are female
  • Britain’s Equal Opportunities Commission between 2003 and 2005 showed that there is still a gender pay gap in the UK, of 18% for women working full time and 41% for those working part-time
  • 80% of the 600,000 to 800,000 victims of trafficking per year are girls and women

So, along with the UN, Plan have an action plan that includes nations enforcing their own laws (including the international ones they subscribe to).

Try every day to make it better. It’s in your own back yard, wherever you live.

Categories: Philosophy, Responsibility Tags: