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)

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.
    . . .


(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. 😛 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.

Last week I updated my computer to Windows 8.1. The improved Skydrive integration is still completely useless, but luckily there are thrid-party tools for the job.

Whatever. Then I were copying some files onto my backup server and the copying dialog windows offended me with 2 BK/s. To make things clear: we are talking about 5 files, more than 500 MB each, altogether a bit over 18 GB. Thus, it is not the “small files are slow” issue here. After about half a day of checking the configurations of my server and my other computers and semi-guided googeling I finally found the answer:

Large Send Offload v2 (IPv4) – Disable
Large Send Offload v2 (IPv6) – Disable

The thing of this whole story which is really frustrating me, is that I knew about this. I already knew that these settings can be the reason for rancid network performance. *gnampf* It seems I am getting old.

I see myself am a Windows fanboy and an early adopter. I really do. (Don’t mistake me for a Microsoft fanboy. That is something completely different.)

This week, by chance, I found Windows 8.1 on my DreamSpark account. I was smart enought to ignore the preview so far, thus I was able to continue working, but since neither the title nor the description of the Dreamspark download mentioned anything about being a preview, I thought, this might be the real thing, released a bit early to Dreamspark users, like Microsoft sometimes does. That said, I downloaded it and installed Windows 8.1 on my laptop.

To spoiler: Right now, while I am writing this article, I am performing a clean installation on Windows 8(.0) on my laptop.

When I switched from Windows 7 to Windows 8, I quickly got used to the new interface, and I liked many of the new features. Of course, a start button would be nice and the start screen (aka full screen start menu) has a strange way of (un-)organization, but I was able to work rather efficiently with all of it.

Then I tried Windows 8.1 … I don’t want to write “yet another flame-post”, therefore I will limit myself to just one single feature: local accounts.

I have a local PC (stands for “personal” computer). I impersonate several roles when using this PC, e.g. being myself when I do online shopping, being my working self when answering e-mails from one of my mail accounts (I currently use 5 different accounts), being my gaming self when I do online gaming, etc. I could continue this list. What is important here, is that I fullfil different roles when using my computer, but I am always myself. Thus I use my account to do all this. And my account is my local account and not a Microsoft account forible tied with a Microsoft e-mail address.

I don’t want to use a Microsoft account on my local personal computer.

I don’t want to use a Microsoft account on my local personal computer.

I don’t want to use a Microsoft account on my local personal computer.

So, after some hardship I finally managed to use a local user account in windows 8.1 as well, but then suddenly I was no longer able to use several features of Windows. Several Apps stopped working. Yes, they state that I can log into my Microsoft account independently, but with some of the Apps, this really does not work.

More importantly: SkyDrive cannot be used with a local user account.

At least, I was not able to find any work-around to get any SkyDrive integration installed or working. This is a true show-stopper. The improved SkyDrive integration ensures that I will always have enough storage space on my cloud, since I cannot use it any more. Sad. Truely sad.

Well, as stated above, I am switching back to Windows 8(.0) and I will suppress my early-adoper-urges until I get proof that local accounts are again useable with the next windows.

If you want to read more about this misery, I liked reading this article: (especially page 3).

I like working at a university. I like solving problems without known solutions. I like improving existing solutions. I like working in my own directions. I like working with students. I like advising students with their work. I even like giving lectures.

However, what I don’t like, at least currently, is writing publications of my scientific results, which, of course, are the primary part in preparing a scientific career. This process ist currently awful, tiring and frustrating.

This year I wrote six articles. Each time I invested much work into preparation and presentation. However, *none* of them will be published this year. Not a single one. I never had such a bad year before. And from a realistic point-of-view, this is like a death blow for an accademic career.

Of course, this is not nice in itself, but what is even more frustrating are the reviews with which my articles got rejected. One of my papers hat numeric scores (1 = worst, 5 = best score) of: 4 + 4 + 3 +3. Also, the reviewer’s comments are sadly often nonprofessional, useless, and even polemic. Another paper was loved by two of the four reviewers. The third one found it borderline, but found it could be improved. The forth and primary one, however, worte something which I can only understand as “I don’t like it”. His review had more text but not much more contant than that. Result: rejected.

I had some discussions about this issue of an overcritical reviewing with several professors. All were aware of this problem and all agreed that this happens once in a while to a community. Sadly, in my opinion it has gotten continuously worse in the last seven years I have been working and publishing (except for this year) in the visualization community. Honestly, I don’t known what will be …

For several years now, I write my smaller tools in C#. I like the language and the runtime framework is powerful. For that matter I do not care about platform independance. Or for Mono. I am a fan of Windows Forms. It is a nice and capable GUI tool kit, close to the traditional c++ world, but with good abstractions at the right places. And then, there is WPF.

I do not know what to think about WPF.

On the one hand, Microsoft claims WPF to be the future. Many new functions are introduced (first or only) to WPF. Windows 8 Apps and Windows Phone Apps require the programmer to use WPF for the GUI. The data binding is nicely done and cleanly integrated into the language, compared to Windows Forms.

On the other hand, WPF is not a perfect solution. The performance is not great, if the GUI gets complex or heavily modified. The editor integrated in Visual Studio is not very good. (Okey, there is Expression blend, but I do not like to use two editors for one project at the same time.)

What realy bothers me, however, is that even Microsoft has no clear policy concerning this issue. Visual Studio 2012 is written using WPF and this is the required GUI toolkit for Apps. However, for example, the new Office, although sharing the new Metro design, does not use WPF, but uses classical GUI toolkits recreating the same look-and-feel. All in all, I just do not know which one to bet on, Windows Forms or WPF. Probably, it really does not matter at all. But, somehow, I do not like the current situation.

Drat! I wanted to write a post each sunday. Oh well. I will try to minimize these slips and I will try to catch up as quickly as possible.

The news: The TheLib project now uses a Subversion repository!

After Mercurial failed to proof its value, our eagerness for experiments had dried up. We thus switched to a system we knew it worked and how it worked.

Of course, there are countless projects happily working with Mercurial and, of course, there are countless good reasons why everything would be better using Git. To be honest: I don’t care.