Sunday, May 29, 2011

New release of Sardine

After working for the last few months with the developer of Cyberduck (David Kocher), there is a shiny new release of Sardine. This is the best modern Java webdav client around.

This release makes it safer, easier to use and more compatible with webdav servers than ever. I can also now brag that my code is being used in a really cool product used by a ton of people. The last release had nearly 900 downloads, so I expect this next release to be even more popular.

Saturday, May 28, 2011

Release Engineering at Facebook

Along with my regular duties of coding product features and inventing cool technologies, I've been doing build and release engineering for a while now. This means that I'm responsible for building the systems which not only help developers get work done quickly, but also the building of the artifacts that are pushed to production. It isn't my favorite thing to do, but it turns out that I'm pretty ok at it.

This video is an inside look within facebook about how their release engineering process works. It is pretty amazing that this guy has been able to support the level of development that facebook has with a very minimal team. I share quite a few of his views about how developers should own their work and the culture around that. About the only thing that we differ on is the way branches are managed. I prefer iterations and feature branches over working on trunk (which should be kept in a stable state).

It is an hour long video, but well worth the watch if you are interested in this stuff...

Sunday, May 22, 2011


fallback provides a nice example web application archive (war) for integrating Spring / Hibernate / JMX / JPA / Ehcache.

In order to come up with this clean of an integration, there is a ton of conflicting blog postings and documentation you would have to sift through. My goal here is to do that work for you and provide a nice basis for starting from. The project is up on github in the hopes that you will fork it and make improvements yourself.

The fallback project itself is a very basic 3-tier web application with a RESTful servlet frontend that takes a request and calls a method on a bean which contains the business logic. If you are coming from EJB3 experience, this will look very familiar. Annotations are used as much as possible to simplify the Spring configuration.