October 9th, 2008 • Comments Off on OSGi dependencies
I like the OSGi platform, and I have been using it for quite a while. One of the most important things is to keep track of your dependencies (e.g. like preventing cycled dependencies). Auto-generated MANIFEST.MF files are most of the time not really optimized. Therefor I started writing some python code to check dependencies.
It reads in all the MANIFEST.MF files from the bundles and creates a dependency graph. It will look for unnecessary and unneeded imports and exports. Look for cyclus etc. It is written using the networkx library for python. Also useful is the zipfile extension in python 🙂 It can be used to extract the jar files of bundles.
October 7th, 2008 • Comments Off on Can't wait…
…to play around with the new VirtualBox Version. In the next version hopefully it will be possible to use SATA disc images with a OpenSolaris client. Then I could test ZFS with several disc images…Useful? no – but fun. To play around with hotspares, delete disc images on the host, RAID-Z, RAID-Z2, test thumper disc configurations (which does not make sense I do not have to think about hot spots, where to position disc :-))
October 6th, 2008 • Comments Off on Software engineering
So my personal opinion on software engineering is pretty straight forward. First of all it is important that the developers who write code are willing to improve themself by reading, blogs, articles, books (e.g. Code Craft or Beautiful Code – good reads).
The second idea is to restrict the work of the users. Provide coding guidelines and define processes. Everybody should know them by heart (and behave like they say). This will help that persons can work more and do not have to look up and ask many things (A knowledge base is always a good idea and even more important a todo/issue tracker so everybody knows what he is doing).
The next is to automate everything (another good tip from the Pragmatic Programmer book :-)). Last but not least do clear designs and document them (do not reinvent the wheel).
And if you behave work like this you can minimize the number of bugs you produce during development. You can also speed up your development! But always try to optimize (e.g. by tracking where you loose time…) your personal working behaviour and the global processses. Be Agile!