Saturday, September 26, 2009

[ANNOUNCE] nosyd 0.0.3

Some more features since 0.0.1:

  • support of maven2/surefire builds and (untested) trial
  • new command line features: --clean
  • auto-reload of nosyd and project configurations
  • configuration for nosyd
  • try to be more cross platform (untested)

Friday, September 25, 2009

CITConf Paris followup

I was supposed to attend CITConf last week-end, but some real-life virus forced me to cancel my trip. The same virus that kept me in bed most of the week. #&#"(¤/"

There have been interesting discussions on the mailing list:

[ANNOUNCE] nosyd 0.0.1

I got tired of having multiple windows. So I daemonized the whole thing to run a unique instance per user.

Forget (my version of) nosy, here's nosyd, the _minimalist_ personal command line friendly CI server. It's initialy geared towards building python projects (hence the name).

Thursday, September 24, 2009

Lightweight personal continous integration

Getting timely feedback is the key to improved software development productivity and software quality. That's why we have automated testing and CI servers.

Running a full CI server on your machine is a solution I've used in the past for some middle size projects. Using a personnal branch on a distributed SCM is another solution for complex projects / long running branches.

For simple projects, you can easily run a basic CI-like system on your machine. I call this lightweight personal CI.

Jeff Winkler's original nosy script is a great reminder that software should be kept simple and right to the point.

See also Doug Latornell's version

Here's my humble version, with a couple of extra features, in particular Gnome notifications and parsing of the XUnit like XML result.

Too bad I am hitting a lib notify Markup notification issue on Ubuntu 9.04, I can't display pretty HTML. On an unrelated note, launchpad 3.0 launched yesterday.

Building python projects on VPS currently use CentOs 5.2 and python 2.4. Here's my worklog for getting python2.6 projects to build with nose on my hudson server hosted by

Here's the result:

G1 / Android settings for 3G / MMS in Norway

If you need to configure your Android phone for 3G / MMS, look into this page from the XDA developers wiki.

For my operator, the information could also be found on Telenor's web site, but Telenor doesn't seem to support the G1 not make it as easy as the XDA page to configure your Android phone.

Wednesday, September 23, 2009 crappy security policy

We're in 2009 and we still have web merchants able to resend you your exact password if you have forgotten it. I just tested this with a UK sells it all web site (no link to them sorry. Bad boys!) which I just used to purchase "Amazing Grace" (nice movie BTW).

Hey guys, if you don't fix this, I won't place an order again with you.

Because if I you treat my password like other data I gave you (in particular my credit card details), I can't give you my money.

Can't you do the right thing ? Some tips (at a minimum):

  • store the hash of the password
  • salt it
  • compare salted password hashes !
  • regenerate a new password randomly if the user has lost his password

Why ? Because someone (a cracker or a disgruntled employee) could fetch the customer / passwords list and as most people don't have a new password per site, use it to not only make purchases on, but to access all other accounts, up to probably the customer's mail box. And from there access all his accounts.

Note to self: always test the "send me my password" function on any new web site I use.

Update: at least some other sites know what they are doing

Thursday, September 17, 2009

nose, subversion and executable bits

For some reason, nose wasn't executing some of my tests. I found out that nose doesn't select test files if they have an executable bit, and that subversion was configured to create the files with the executable bit. That's a bit unfortunate as I want some python files to be executable, other not. I guess I will let them non executable by default. Worklog below

Friday, September 11, 2009

Britain apologies to Alan Turing

The official site of the UK Prime Minister's office just published Gordon Brown's apologies to Alan Turing.

Kind of them to finally recognize the contribution and inhumane treatment of this great man without who I might not have worked in IT (and might speak German as well).

Thanks Alan.

And when I think about the changes in the society in the past 60 years, I can't help to feel lucky, happy, and somewhat scared that this could regress pretty quickly... We've still a long road ahead though.

Software commit guidelines and tips

Having and following good commit guidelines is critical to ensure you're not doing cowboy coding. Here are my guidelines. I will update them as time goes. Feel free to comment.

Tuesday, September 8, 2009

Tips for autodeploying J2EE apps on Unix platforms

With a little bit of configuration you can have a nice autodeployment setup to save you time and remove potential errors.

For example this is something I can usually do after spending a few hours on the development infrastructure:

# from the build server, deploy the latest build for the specified project onto the 3 dev servers
deploy_build projectName trunk latest dev1 dev2 dev3

# deploy specified build for specified project
deploy_build projectName trunk build65 dev4

# deploy latest branch 2.0 onto specified server
deploy_build projectName 2.0 latest dev5

Also with a little bit more glue code those same commands can be run through your CI server interface, allowing one click deployment from the CI server GUI.

This is one way of achieving it, using standard Unix tools.

Wednesday, September 2, 2009

Python and testing

Here's a list of links I've found when building my python testing knowledge, categorized under Unit testing, Mocks, Articles, Web testing, Google App Engine and Code Coverage.

Hudson, maven and git on VPS

VPS hosting from is a reasonable compromise between cost and hosting service quality. I use it to host a hudson CI server.

This entry explains how I set it up up to a point where I can build using maven a java project hosted on a ssh protected git repository (on github). I will not go into the hudson specific stuff, the hudson wiki is usually complete & well worded. But I will spend more time on the OS specific stuff such as daemon configuration, ssh specifics, etc...