August 22nd, 2010
Don’t.
Agile (scrum, kanban, sprint, lean, etc.) is a huge waste of time and a time suck for software developers who just want to build software.
If you want your software development teams to work together you might try something like, um I don’t know, open communication…aka, talking to each other.
-tony
February 4th, 2010
The latest release of inotify-java is here!
Go and grab it!
The second release of inotify-java bridges the gap in filesystem notification on Linux and the Java platform. The library is tailored towards use in demanding environments (heavy I/O), has no third-party dependencies, and is both extensible and lightweight.
Report bugs, get answers, and look for tutorials soon (Edit: on the wiki).
My thanks to everyone whose used, contributed, and helped the project along the way.
January 18th, 2010
Datanucleus is a pretty complete persistence platform that supports standards such as JDO and JPA as well as persistence platforms such as Google’s BigTable and classic relational databases. Amazon S3 is a storage service provided by Amazon that you can interact with via external apis.
Luckily these two technologies can easily be put together to provide a cost-effective database solution for your applications. I have created a simple project that shows the following:
- JPA annotation configuration for a simple model.
- Configuring Amazon S3 as the JPA datastore (provided you have an account)
- Persisting and querying for model objects through a unit test.
This project is built on Maven2 so the following commands will help:
- mvn eclipse:eclipse
- properly configure build dependencies/targets for eclipse (.project/.classpath).
- mvn test
- compile the classes, bytecode enhance the generated classes (per datanucleus), and run the unit test showing persistence/query.
It’s nothing fancy, but it shows how viable a jpa + amazon s3 solution can be as a simple database.
If you’re truly interested in a relational database through Amazon S3 then look at Amazon’s Simple DB offering. This seems to provide a storage service that performs at the level of a relational database should.
Example Project Download: Datanucleus/JPA + AmazonS3
November 30th, 2009
Learning and staying current with technology is paramount if you’re in the software engineering field so much so that book publishers like O’Reilly have made millions from this. As a software engineer myself I find it hard to resist the availablility and consiceness of the technical information found in these types of books. But try to resist and learn technology the hard way.
What type of software engineer am I?
I think you have to ask yourself this question in the context of a particular technology and wonder… Where do I want to go with it? Do you want to write a small developer tool or a full-blown enterprise solution you wrap a business around? To help answer these questions try out the following list of technical aptitude levels on a particular technology you’re experimenting with.
- Novice
- experiments with the new technology and decides to either forget about it or become better with it.
- Tinkerer
- has experimented with the new technology and decides to poke and prod to see what it’s capable of.
- 15 minutes of fame
- has tinkered with the new technology and has created a cohesive, useful application of it.
- Tools Developer
- has tinkered with the new technology and wants to provide other tinkerers with their “tinkerings”.
- Application Developer
- routinely creates applications of this new technology as a(an):
- Open Source Developer
- Application Developer for Profit
- Consultant
- has routinely created application with the new technology and now consults on this technology soup to nuts.
- Author
- has been a consultant on this new technology and wants to spread the love through paper and easily downloadable ebooks.
You begin as a novice trying out the new technology and you become either a tinkerer or an application provider of it. If you’re a hard-core tinkerer you may have you’re 15 minutes but you’ll never be an application developer. Only when you’ve mastered the basics and are into the advanced do you get to build applications. From there you can either do it for free or do it for profit.
Natural flow of Learning Technology
The above breakdown of technical aptitude levels show what it takes to become fluent in a new technology. You cannot right applications unless you have tinkered for a bit and have created something of use. However, you can stop at any point you would like! But! You cannot jump around the aptitude ladder, because that would disrupt the natural flow.
And it plain, doesn’t work if you want to learn this new technology…
Frustration and Summation
Ahhh, I get it! That explains why some technical authors write garbage books! So I think we put away our books (and rm -fr /ebooks) and we lock ourselves in a room until we go from Novice to Application Developer.
Where we go from there is a choice I leave to you.
– Neo, The Matrix(1999)
September 2nd, 2009
The lib256color library gives the Java platform access to the 256-color mode of Linux terminals.

Go to the project page for more information and downloads.
August 2nd, 2009
Hang tight!
We are in the middle of migrating to a new host. All the old pages and downloads will come back shortly, along with archives of my previous work.
Feel free to send me an email, I could forward along whatever you need.
July 29th, 2009
The Bazaar Version Control System has a great feature called shelving. Perfect for those folks like myself who are always juggling 146 different patches, half of which will never see the platter on someone else’s hard drive. Technically, shelving (and the antithesis, unshelving) is part of BzrTools. In short, it is a way of shelving local changes for some time in the future.
…read more