Stacking blocks – my kid could do that!

by havoc

I spent half the weekend rearranging
Mugshot server code
to make it easy to add new kinds of “block”
(online happenings the site and client app will keep track of).

I’m becoming a huge fan of Java and Eclipse server-side development. I
think it gets a bad rap because of certain suckages (EJB 2, JSF,
old-style JSPs with inline code, old-style Java without generics or
enums). But modern Java is EJB3/Hibernate, JSP expression language and
tag files, Java 5, and so forth. At its best it’s a very nice
setup (though obviously I can come up with some gripes if pressed).

When we started out on Mugshot we made stupid mistakes since we were
not Java programmers or even server-side programmers, and if there’s
one problem with all this Java stuff it’s a lack of guidance on
overall application structure and which technologies to use.

The more we’ve figured out what’s going on the nicer the codebase
gets. Now the problem is going back and fixing all the clueless code
we wrote while learning. 😉

Later this week I want to add a new block type (perhaps one whenever
someone posts a new Flickr photoset), and write up a wiki page
describing how to do it. This could be a short intro to hacking on the
Mugshot server and also of course a guide to adding new block types.

BTW, Google Desktop
was just updated to store more of its data and settings online (shared
between your computers) instead of on a local disk. Obviously the way
of the future and has been for a while now, and open source should be
in a unique position to modify all the important apps to take
advantage when a server side is available. Tom Tromey is thinking about
it, and I’m also encouraged by AbiWord Collaboration.

In part I think there’s a largish up-front effort to get some colocated servers
and build some of the basics like a user account system. In fact I
know there is because for Mugshot we spent a lot of time on this stuff. If it
helps, anyone is welcome to modify Mugshot’s code and use our
colocated machines to work on providing services to the free desktop.
If it doesn’t help, that’s cool too, but still I hope more people will
think about hacking in this area.

My simple file sharing
needs finishing up too (a quick fix is to add a block type
for “new file shared,” so people know when you post something).

(This post was originally found at

My Twitter account is @havocp.
Interested in becoming a better software developer? Sign up for my email list and I'll let you know when I write something new.