On the occasion of presenting CouchDB and jcouchdb at my place of work, I got around to finally create a small example application that is now downloadable as sneak preview. There need to be bugs fixed, features implemented and lots of documentation to be added, but it kind of works.
It’s called “Hood” for neighbourhood and allows you to mark places or people around a place of activity of yours, called hood. it is meant to foster collaboration / tips on local places etc.
It’s Spring Web Application demonstrating some techniques of working with jcouchdb. It’s an eclipse WTP/Spring IDE project with all dependencies you need besides couchdb and tomcat or another servlet container.
Stay tuned for hood to grow into a fullblown app.
I have been planning to release my IRC bot project as open source for quite a while now and the recently added twitter integration gave me the final push to actually do it. So now I am proud to announce the inital release of boticelli, a java / spring IRC bot/web application based on the martyr IRC library. Its mean to be easily configurable and extendable and ships with lots of plugins already included.
- Logging – log channel conversation and provide a web interface to browse and search them
- Seen – Remembers when a user last spoke in the channel
- FAQ – Manages a keyword list of FAQ keywords that are matched to a description. Useful to provide answers for reoccuring topics in the channel.
- AccountCreator?/Revoke/Grant – commands to automatically create accounts for the webapplication and to revoke / grant web app access rights (for ops)
- ServerPing? – plugin that detects broken connections and makes the bot reconnect.
- Say – plugin to let the bot say something or make it do something (a CTCP Action)
- Twitter – two way integration into twitter over a bot specific twitter account.
So if you’re into old-school IRC fun, head over to google code and grab yourself a copy.
When talking to people about the Spring MVC, it became increasingly clear to me that many are thrilled by the possibilities of using annotation based controllers but are somewhat put off by auto discovery / auto-injecting.
Luckily, it’s pretty easy to combine the power of annotation-based MVC Controller (extremely flexible controller methods, flexible binding and validation) and the advantages of externally declared beans: You continue to use the @Controller annotation, but you don’t use a <context:component-scan/> directive.
I’ve been working a lot with the Spring Framework again in the last year. Apart from lots of my work involving it and the JsServ Interceptor I wrote last weekend, another result of this is a book some people from my company wrote. It is about Spring and integrating other technologies into it. It is meant to focus on the practical aspects and tries to explain some exemplary solutions to common problems encountered when working with Spring.
I wrote an awesome chapter about web development with Spring which contains examples for creating a little shop application with a REST-like interface in Spring Web MVC and Spring Webflow.
So if you like a read a brilliant book Spring development, go and buy it . This might work best if you can read German, but you can buy one anyway if you don’t. Hell, buy two and give one away for Xmas.
The book and example code should be available in a few days.
The following diagram shows the way things work:
The parts of jsserv
The DOMInterceptor intercepts the HTML output of other controller and initializes a dom state with it. The document itself is parsed into a DOM tree and the referenced scripts are loaded and executed. Additional patch scripts can be defined to alter the behaviour of other scripts.
The current version adds
<a class="eventHelper" href="/app/event?uuid=42">...</a>
Links around every element for which a onclick handler is registered. The links point to a DOMEvent Controller that triggers updates in the user’s DOM State.
Edit: code.google.com link added, update to 0.12