Archive for October, 2007

On Open Source Licenses [ckkl-core]

Thursday, October 18th, 2007

The other day, I started releasing my core Java development library, under the name ckkl-core, as an open source project. For that I had to decide on a license and so I asked for the opinions of friends and the open source community in Greece. Combining these with my own findings, here is a list with helpful URLs:

David Wheeler has prepared a nice slide depicting the relationship between several open source licenses. His opinion is that one should go for a GPL-compatible license.

The Software Freedom Law Center, suggest the way to Maintaining Permissive-Licensed Files in a GPL-Licensed Project.

This article (with a second part) explains how to pick an open source license.

You can also try the License Wizard. The first page user interface is a little awkward. Choose Yes, or go directly to the second page :-)

Also, take a look at this quick reference. I find of particular importance their comment:

The most common misunderstanding about software licences is that giving someone else a copy of your source code under a licence restricts what you are allowed to do with your source code. The truth is, if you write some code, and give it to someone else under the terms of Licence X, or publish it so that anyone may use it under the terms of Licence X, that this does not subject you to the terms of Licence X! You are the author of the code, and you hold the copyright, and giving someone permission to use the code does not restrict you to using the code in only the way that they are allowed to use it!

And, of course, you should read what GNU has to say.

By the way, I have chosen the Apache License Version 2.0 for ckkl-core which is:

a collection of Java classes developed for personal projects and research. Its implemented features include but are not limited to Java type handling with aliases and equality testing, easy discovery and accessors for JavaBeans properties, functional-oriented collections (list with map(), filter(), and others), and an API to support an easy toString() implementation even for the most complex cases.

Over the years I have developed a library of, let’s say, personal taste; a library which is my swiss army knife when looking into some new (research) idea. Something I use in order not to re-invent the wheel every time. The source code is currently heavily undocumented and I will be releasing new versions as soon as I can put it into some “eye-friendly” shape (javadocs included). I will do my best on that, time permitting. So, stay tuned !

(Micro)Kernel-based Middleware

Tuesday, October 9th, 2007

While trying to write the “About Me” comment you can see in the sidebar, I remembered that a while ago (~2K?) I had proposed to my MSc advisor a research approach to flexible and more “open-minded” software.

The idea is that after you come up with a basic understanding of your problem area and pin down some basic requirements, you start building a kernel or a microkernel supporting the desired features. Everything else should come on top of that in the form of layers. Of course, operating systems work that way, and this is what gave me the idea.

In a previous paper of mine “Digital Typography in the New Millenium: Flexible Documents by a Flexible Engine“, I had proposed such an approach for an extensible next-generation typesetting engine (… those were the years I played around with LaTeX…). Unfortunately, due to lack of resources, these ideas have never transformed into coding, apart from some very early, unpublished attempts.

I have followed the same path in the paper “Non-stop Provision of Internet Services via a Reflectively Load-Sharing Architecture“, where the foundation of a meta-shell approach to programming with DSLs was publicly laid down. This time, my initial prototype in Python was almost feature-complete and the ideas in the paper were all implemented and tested. In the line of this proposal, I am continuing the project in Java. This time, I WILL make the source code publicly accessible and - of course - with an Open Source license. For now, I am preparing the supporting libraries under the ckkl-core project.

“Unfortunately” :-), the more I think about it, the more I become more and more certain that I basically follow this idea of (micro)kernel-based approach to building middleware (and software in general) in the whole line of my research and professional activities. My intention was to lay down the idea in this post, not to enumerate my countfull (cf. with the perfectly legal English word countless) papers. Probably I will speak more of them later on….

Goodbye blogger

Monday, October 8th, 2007

Since I have this domain, I suppose it is a good idea to have a local blog. So, here it is! Currently it is powered by wordpress :-).

For my previous posts, and until I import them here, see blogger.