Software erosion in pictures
Thursday, November 27th, 2008Insightful post from the creators of Structure 101:
http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/

Insightful post from the creators of Structure 101:
http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/
Congratulations to JetBrains on releasing IntelliJ IDEA 8 – I have been using their EAP build for a number of days prior to the official release – and am excited with the speed and stability. I know the 7.x releases have taken a bit of a beating for having a slow and bloated feel. Redemption yay! Take a look at the new features.
(upgraded Wordpress; Added Flickr / Last.fm sidebars…)
Spent a few hours this weekend finally getting some documentation together for modularity. It has been a pet project of mine ever since I was introduced to the concept by Malcolm Sparks.
modularity is a set of Ant tasks to help with the software configuration management of Java projects with a large number of modules. modularity aims to make maintaining ant build files a thing of the past – instead you maintain a set of ‘metadata.xml’ files describing your project’s layout and dependency tree.
I’m currently using modularity for all my pet projects (yes modularity also builds itself!) and I’m also luck enough to be allowed to use it at in NewBay. At work it is used to create the developers IDE workspace, build all software modules and ultimately release software.
Maciej Baranowski, Darragh Curran and Guy Granger all have helped tremendously on its development to date.
At work I’ve been using the Tambur MMS Library to encode and decode MMS messages. Recently I encountered an unusual bug; some data parts were not being encoded correctly. The bug was related to how the MMEncoder sets the indicated data length of the image/payload.
The packaging date of the MMS Library on the website says 18th April 2005 – So for anyone using that version of the library be aware of the bug. And heres how to fix it:
MMEncoder:
protected static void encodeUintvar(ByteArrayOutputStream res, int l)
throws Exception {
//.....
for (int i = 0; i < buf.length; i++) {
if ((buf[i] & 0xFF) != 0x80)
res.write(buf[i]);
}
}
It should read:
protected static void encodeUintvar(ByteArrayOutputStream res, int l)
throws Exception {
//.....
boolean hasWrittenOnce = false;
for (int i = 0; i < buf.length; i++) {
if (hasWrittenOnce || (buf[i] & 0xFF) != 0x80) {
res.write(buf[i]);
hasWrittenOnce = true;
}
}
}
Haven’t blogged in a while.
Interesting things to note may be:
We’ve all upgraded at work and have started to use the new release of IntelliJ 6.0.1. I find it generally faster than previous releases which has been the biggest bonus… I haven’t taken *much* advantage of the new code coverage, and team features or j2ee/web improvements. The IntelliJ Blog as always is worth checking out.
A new person started working in NewBay recently. He was the best dressed person in the office on his first day; suit, good shoes, jacket – the works. Day two he calmed down a bit but still looked very presentably – nice new jumper, shirt underneath and so forth. Day three he finally looks like one of us wearing baggy jeans and basketball top. The progression was pretty funny.
Thank gods for the *very* casual dress software development environment I work in – I’ll get around to having a wardrobe of respectable work clothes… but just not now.
I stumbled across a blog who had integrated gallery, wordpress and mediawiki. By integrated I mean there was a seamless transition from clicking between his gallery/wordpress/wiki installations. They all shared a custom theme written by himself. It made me instantly envious – there are indeed three dyanmic types of data that I would like to publish online – 1. thoughts and diary via this blog. 2. image / video content via gallery 3. various homes for projects: with downloads, updates and documentation perhaps via a wiki. So instead of finishing some of the projects I wanted to release over the weekend I spent the last few hours getting what I wanted; wordpress, gallery2 & wikimedia working under a common theme
.
I’ve few images uploaded right now – and few entries in the wiki – it would take a while to get up all my back catalog up. But here is the gallery and here is the wiki.
Also; I do like the navigation embedded into the header above…
I had a very naive quick look at db40 – but had a complete working repository implementation up and running for my contacts app up in less than 5 minutes (now that’s an impressively intuative API!). With speed being far superior to serialization! I don’t know what I was expecting but it looks great.