Example J2EE application

I hate maven with an almost homicidal passion. It only works if your brain works like maven, for the rest of us in the real world its just a pain in the arse. But it does have one good idea - it provides a simple, out of the box way of creating a project structure (but so do rails, django and grails in a much better way). I've decided to publish my own example web application project/structure on GitHub - http://github....

JPasskeep is now on GitHub

I need to stop distributing JPasskeep source code as zip files - yuck. So for anyone who may be interested at what lurks under the cover of the pretty GUI the code is now available on GitHub - http://github.com/tomcz/jpasskeep/tree/master. Comments, suggestions, bugs, patches, forks, or pitch-forks are always welcome; even if sometimes ignored ;-)...

Django and multiple methods per url pattern

HTTP verbs are not used to determine the route to a view method by deliberate design in Django. Sometimes I find it useful to be able to specify different methods for the same url pattern - one per HTTP verb. The Django book contains an interesting example of how this can be done using the django.conf.urls.defaults.url method to separate POST from GET processing. I’ve extended the example to provide handling to cover the standard HTTP verbs....

S3DropBox 1.2 is now released

I love feedback ... including bugs (thanks Cam). The S3DropBox will now only permit the creation of a bucket when Amazon S3 returns a HTTP 404 status code in response to a HTTP HEAD request for the bucket prior to creation. The new version can now be downloaded from http://code.google.com/p/s3dropbox/....

JPasskeep Update

Just finished a new version of my long-running password keeper application. You can download the cross-platform version, the mac dmg image, and the source code. New changes include the ability to export entries to an encrypted HTML page (see my previous post on javascript cryptography) and bundling the cross-platform version as a single JAR file using one-jar. As usual this version does not rely on javax.crypto APIs to function so it should work wherever a JDK5 compatible VM can run....

Javascript Cryptography on the iPhone

How can I store my list of passwords on an iPhone or iPod Touch? This is the question that I attempted to solve as I geeked out over the weekend. I know I can buy an application like 1Password and sync between a laptop and an iPhone but I already have a pretty good password manager (since I wrote the one I use years ago). After a bit of research I came up with a few possibilities: create an iPhone app to sync with my password manager, create an encrypted bookmarklet (this is the way 1Password used to export passwords to the iPhone), or create a html page which will alter its own structure after I enter a password....

S3DropBox 1.1 has been released

This release now permits the S3DropBox to be used in corporate environments (ie. behind authenticated proxies), including being able to handle NTLM authentication with proxies. HTTPS support has been enabled, although HTTP is still used by default. Check out the new release here....

S3DropBox is now on Google Code

In June of 2008 I released the initial version of the S3DropBox as a download available from this blog (see S3DropBox). Since then I've been adding little enhancements to the drop box as updates to the linked zip files. This of course is not the right way to share an application or its code-base, so I've created a google code project at http://code.google.com/p/s3dropbox/. Feedback, patches and wish-list items are always welcome....

Manifesto for Software Craftsmanship

If you believe that Software Craftsmanship is important then its time to nail your pants to the mast. Sign the manifesto....

What is using my USB drive?

For a while I’ve been trying to find out what is using my external USB hard disk on my mac when I want to eject it. Its been driving me batty and I usually resort to a few choice expletives before pulling out the cable anyway. Recently I read about the lsof terminal command - for example: lsof /Volumes/BACKUPHD This shows you what processes are currently busy stuffing around the specific volume....