I am currently trying to sort, to organize, and to prioritize my personal software projects. The one probably most important to me, at this moment, is SpringerJagd, albeit it is most likely not interesting for anyone else. Like I care.

Thus I want to focus most of my private programming time towards that project. As a first step I rewrote the front page web site of SpringerJagd: springerjagd.net

More will come …

Once again, it is time for one of my little tools, which the world does not need (but I do). The idea is simple: think of a series of files in one directory, e.g. music files of a audio book or video files of a TV series. Every once in a while you watch/listen to one of the files and days later you do not remember, which was the last file you have seen. My tool registers to the context menu of the Windows Explorer and provides a simply way of setting a bookmark at the file in the directory. The bookmark is an empty file with the same name, additionally using an extra file name extension). The whole thing is no shell extension, but a simple, normal DotNet application which writes to the right places in the registry. Simple, not elegant, but working.

FileBookmark.zipFileBookmark.zip File Bookmark Utility
[91.2 KB; MD5: bd58a615775c9897ae82536bb678b05b; More Info]

And, just because I can, here is the source code::

FileBookmark_src.zipFileBookmark_src.zip File Bookmark Utility Source Code
[60.2 KB; MD5: 84071f778ccb81b0c39101577a3fa204; More Info]

I know, I know, the end of the year is not here, yet. However, it is the last Sunday 2013 and thus it is time for a Post at the end of the year.

Reviews of a year’s events are awful, especially if the year was not that great. Well, this year was not especially bad either, but I could have been much better. At least there was one pleasant surprise shortly before Christmas (I will write more about it early next year, as soon as it gets official).

Now it is time to look at the future. It is time to make plans for 2014 and to start working on their implementation. Form a business point of view many events and ideas are coming up and I am curious to see which of them will be successful. I don’t want to write too much about them yet, only, that I got ideas for research projects and funding project applications. When enough of these ideas work out, then science will remain interesting for me.

Considering my private programming projects, not much has happened; and that is an exaggeration. Well, we will see what will happen on that end.

But, now I wish everyone a Happy New Year!

There is not much happending on my website. Surprisingly, each year again, Christmas is coming around the corner.

Thus, I simply wish you a Merry Christmas!

(P.S.: Yes, I am a avowed LEGO fan)

The German research landscape has many problems. This week I had a very nice discussion with a colleague, about research, the way it is performed today, will not solve any problems. Every researcher only hunt’s for funding, the ones with more ambition hunt for tenure. Doing so, they produce as many papers as possible as fast as possible, to display their excellent scientific quality. As a result, none of the problems they work on is ever solved completely. Every single time, special cases are excluded and only data sets are published which work well, neither representative nor complete; but published. Thus the research community accepts the publication as solution for the corresponding problem. The people having the problem are the upcoming researchers and PhD students, which need to use that stuff. If the only want to continue research, they are forced to make the same simplifications as before. If they want to really used the “solution” to work, they have to solve all the special cases, add robustness, performance, whatever. The tremendous amount of work they have to invest will not be recognized by anyone, since the research community already believe that problem had been solved before, hindering any new publications with the actual working solution. Thus researchers are forced to work with 1/4 solutions all the time.

So what about industry? They could create the full solutions. … Why should they? The industry creates their own solutions, especially tailored for their own problems. They are not interested in generic solutions for a broad audience, and rightly so.

This view of my obviously is limited to the research I see around me, namely the work in computer science. I hope other fields do better research.

So, how do we go on? … Well, exactly as before. There won’t be solutions and we will burn money.

This winter term I am visiting a lecture of Dr. Frank Furrer on Future Proof Software Systems. Very interesting topic and great lecture. Aside the normal lecture I also take the opportunity to discuss topics of my own research field with Dr. Furrer. Doing so reveals wonderful truths. For example the evolutionary steps of a software architect:

  1. The software architect gets ignored.
    That is what is currently happening to me.
  2. The keys, access rights are taken from the software architect and his passwords are changed.
    Well, I am not there, yet.
  3. The software architect is shot in a dark alley.
    . . .

*sigh*

(Source of image)

Last weak I wrote about legacy code. That topic prevails.

There are two fundamental views of legacy code:

  1. Some people believe legacy code is trash and needs to be removed as fast as possible.
  2. Some other people believe legacy code is a gold mine to be harvestes as fast as possible.

The truth is not somewhere in the middle, like it is often. Instead the truth is that both types of arguments are right. Legacy code is a trash pile full of gold! The gold must be harvested and the trash must be removed. However, that, of course, needs a lot of effort to be achieved. One should not be greedy. With each project, one should remove a little bit of the trash and should reveal a little bit of the gold. Over time, everything will get better.

For TheLib we have that problem as well, of course! To implement the “small steps” I was writing about we started the.vislib.legacy project.

Whenever you work on a software, which is not trivial or small, than you have to work with legacy code. I talk about old codes. Either one wants to re-use them or one does not. Regardless, however, you always have to marry the new codes with the old ones, and that is never easy. I gets especially hard when have interfaces to the outside world, i.e. other software using at least parts of the software one is working on. Facing such tasks separates the men from the boys. :-P I am not talking about programming. Programming is easily learned and teached. I talk about software development, design, and architecture.

Current, I work with friends on the creation of the THElib, as successor and replacement of the infamous VISlib. The VISlib has several design errors which we cannot fix due to strong dependancies with other software projects. Of course, we are not rewriting THElib from scratch. She is based on large portions of the VISlib, streamlined and corrected. But here we face a huge foundation of legacy code we need to cope with. It is simply not simple.