Dec 25, 2008

Microlog Snapshot Release

As a X-mas present for you, I have released a new snapshot version of Microlog. The most important update is the updated RecordStoreLogviewer. The default settings was not the same as the RecordStoreAppender. This made it hard to read the log from the record store, although it was possible. The was also some problems with NullPointerExceptions, which is now removed.

Please download the latest snapshot release and try it out.

Dec 21, 2008

Yet Another Review: The Book "Producing Open Source Software"

Running an open source project is not at all what I expected. I started out with one small open source project, Microlog. I have now founded several other projects and the Microlog project has grown. As the time has passed a lot of decisions has to be made, ranging from pure development issues to questions about how to handle project members. Finally I started to think along these lines; "There must be someone who has been running an open source project and written a book about it". Most book that I found was related to license issues. However I found one book that seemed to fit my purposes which is "Producing Open Source Software" by Karl Fogel. I have finished reading the book and I would like to tell you my opinions and thoughts about this book.

The book starts with guidelines how to start an open source project when you have some code that you want to share. Although I have started several projects, the book gave me insight into several issues that I have not been aware of or neglected. The author goes through all the documentation that is needed to get started. The list is comprehensive and contains some documentation that I have missed out, for example developer guidelines. Fortunately most of the documentation seems to be in place for my own projects, even though there are some subjects missing. Consequently I think that I will spend some time on improving the documentation. I will keep the book nearby to get everything in place. The next part is " Technical Infrastructure". As the name implies, this goes through how to setup things like mailing lists, forums etc. The books briefly mention canned hosting, such as SourceForge, but I would like to get more information on the subject. This is one the weak spots of the book. There are millions people out there running a project on SourceForge, or a similar site. The "Social and Political Infrastructure" is by far the most interesting part of the book. The expression "Benevolent Dictator" is explained, which is the final decision-making authority within the project. Since I am more or less the benevolent dictator in the Microlog project, I really enjoyed reading this part. I found myself laughing and people on the bus looking like a was from Mars or something. The next subject in line was "Money". This was totally new for me since none of the projects that I am involved are sponsored by a company, but they are only spare time projects. The author on the other hand is one of the founders of the Subversion project, which is sponsored by a company. This part is well written and it seems that the author does know what he is speaking about. What I am missing is a part on how to fund a project that started out as a spare time project. This is one of the questions that I was looking for an answer to. So I guess that I will have to find the answer elsewhere. The "Communications" part describe how you should handle the communication within the project, including how to handle rude people or people that are creating to much noise in the forums. Not one of the most interesting subjects in the book, but still worth reading. The part about "Packaging, Releasing and Daily Development" was rather familiar to me. In the era of Agile development, this is of great significance. If the "daily development"-part is not working correctly, the project runs a big risk loosing developers. The users may abandon the project if the release process is not working the way it should. Imagine if your project has an unclear release strategy, or the version numbering is dodgy. Managing volunteers is not always as easy at it would seem. To learn this, you should read the chapter with the same name. The last part of the book covers a subject that in itself could fill a whole book; "Licenses, Copyrights and Patents". This is the motivation for keeping the chapter short, the author only included a short introduction to the subject. If you wish to deep diver into this subject, choose a book on the subject.

For those of you who have not started an open project, I think that this book is a very good "getting started guide". For people like me that is already running a project, the book gives invaluable tips. Even people that are participating in open source project could get something out of this book, even though this is not the primary audience. One last thing to mention, the book is under open copyright. In other words you could download it and distribute is as you like. Nice!

Dec 18, 2008

The Microlog Project is Growing

The Microlog projects is growing! My colleague Henrik Larne told me the other day that he has started to use Microlog. He especially liked the BluetoothSerialAppender, which is used for logging to a Bluetooth server on your PC or on another phone. Before I had time to say welcome, he contributed with a better version of the BluetoothSerialAppender. The developer has the opportunity set the server URL, in those cases where the automatic find function does not work. Very handy I would say. I suggested that he would join the project, which he did. All in all we are now four developers. Since we soon will start working on Microlog V2.0, this is very good timing. But that is not all; Henrik wrote an excellent article about how to get started with Bluetooth logging. If you are going to start logging using Bluetooth this article is a good starting point.

Dec 7, 2008

Useful Microlog Feedback

During this week I received some really useful and tangible feedback for Microlog. First I received feedback regarding file logging, i.e. logging with the FileAppender. Later this week I got feedback regarding the reading of logs from the RecordStore.

The feedback for the FileAppender was from the beginning rather straightforward. The developer had found that the JavaDoc and the code were not in sync. The documentation stated that there should be a setDirectory() method available. As it turned out there was no such method. The setFilename() & getFilename() had the same documentation. In other words a ordinary copy-and-paste mistake. The missing setDirecotory() method was not so serious, but yet annoying. I implemented the setDirectory() method within a couple of minutes. I did not really consider the implications of this solution. What the developer really wanted was a method to set the filename, with or without the full path. He did not want to make a separation between the filename and the directory. The final solution was rather elegant. If the user sets a filename with a full path, this is used. Otherwise the user defined filename is used, but the first root directory is used. A feature request for some kind of rotating file logging was also included. The feature request for a rotating log created two featuture requests at the end, a RollingFileAppender and a RotatingFileAppender.

What started out as a discussion about an HTTPAppender in Microlog, lead to a discussion about how to load a log from the RecordStore. One developer wanted som examples on how to read the log content. The code was really spread out in the RecordStoreLogViewer class. This is a MIDlet that is used for reading the log content. The idea is that you switch to this MIDlet when you want to read the log from another MIDlet. What I did was simple. I extracted the load logging parts from the RecordStoreLogViewer into a new class called RecordStoreLogLoader. This was a good thing. The log reading functionality has no right to exists within the RecordStoreLogViewer MIDlet. The is a matter of separation of concerns, as some object orientation guru might have put it.

I try to handle the requests with the same tactics I use for my wife; I try to be as responsive as possible. The initial code changes are in place, as well as a snapshot release. These changes will probably lead to a continued discussion. This shows the real power of open source development. With about 3-4 iterations I had a solution that satisfied the developers need, and it took 3-4 days to solve. What a joy it is to be part of an Open Source project (like Microlog)!

Dec 4, 2008

Software Development for Mobile Applications

Microlog was today presented at a German conference called "Softwareentwicklung für mobile Anwendungen". Translated to English it is "Software development for mobile applications". The presentation was done by Karsten Ohme, a Microlog team member. Many thanks Karsten for promoting Microlog!

Dec 3, 2008

Newsflash: Microlog Featured on the Mobile & Embedded Podcast

During the Öredev conference, yours truly and Darius Katz was interviewed by Terrence Barr, Sun Senior Technologist and Ambassador for the Mobile & Embedded Community. The interview should give you a little more insight into the Microlog project.

Please download and listen to the podcast: