The development of TheLib continues.

One thing I learned during my work as developer of scientific software is that large software projects at universities are extreamly difficult to manage. Mainly because the people involved are “scientists” and no “developers”. The experience, the processes, and the structures to reach common goals (compromises) are mostly missing. At the same time, many problems of todays sciences cannot be solved without large and complex software. Thus, most software created in academia is pratically not usable. This is a fact I can not accept.

The approach of TheLib is based on the idea of “divide an conquer”. Instead of developing a huge software which can do everything, we concentrate on a clean development of smaller pieces of the software. This way, we can increaste the usablility, the maintainability and thus the re-usability of these components. The TheLib provides fundamental base classes. I see this project as “extension” to existing projects like the STL or BOOST. It is not a competitor and it does not aim to be one. Therefore, we pay close attantion to reach very high interoperability with these projects.

Even so we reduced the scope of the TheLib to a moderate minimum, it still is a lot to do. Whatever. This is how it should be. If it would be easy, anyone could do it. 😉

My Harddisk became unpleasently full, therefore I bought an additional one this week and installed in my computer. I noticed again how reluctantly I am tinkerin with my computer’s hardware. Whatever.

My computer uses the ASUS P8Z77-V mainboard, which I can only tell good things about. However, when I inserted the new harddisk and booted my Windows, this harddisk appeard at the tray icon for removable drives. The nonsense.

After some googling I lerned that it is the ASMedia controller, which controls two of the eight SATA ports. And for this controler, the corresponding bios option for drive removal is missing. There are some solutions in the net, e.g. injecting registry hacks at boot time using the task scheduler. What I did not find on the web, but what I found for myself is the “real solution”: simply set the option at the controller:

Device Manager > IDE ATA/ATAPI-Controller > Asmedia 106x SATA Controller > Properties > Policies

What I don’t like, is that this solution was not the first hit at Google. …

In our workgroup we are currently discussing the presentation of our research and the definition of topics for student theses (e.g. for bachelor, master, or diploma). Therefore, each member of our workgroup lists his/hers personal research interests.

Here are mine:

  • Scientific visualization
    • No volume rendering and no flow visualization (there are enough other people doing that)
    • Visualization of particle-based data, e.g. from molecular dynamics (continuation of my Ph.D. thesis, becaue there are enough open questions left)
    • Efficient rendering and high visual quality
    • Development of new abstract visual methophors to aid the understanding of the data
  • Visualization of dynamic data
    • Not restricted to data from classical scientific visualization, but also for abstract data known from information visualization
    • Even data from high dimensional spaces (mostly spaces with “geometric” properties, e.g. physical phase spaces)
    • Visual analysis of dynamic properties through static representations
  • Softwaren engineering for visualization research prototypes
    • For publications almost every time only proof-of-concept prototypes are written; quick and dirty, which makes is almost impossible to maintain them
    • For large scientific projects often larger software is required
    • Large software in the academia almost always failes. Why?

Of course, I am also interested in a lot of other things, practically almost everything. But one has to focus, right. Well, these three topics are such wide, that it should not be called a focus. Whatever. I call it that way. This is my research focus.

Today, I want to write about the project I am working in: the Junior Research Group VICCI

VICCI stands for “Visual and Interactive Cyber-physical systems Control and Integration”.

Core topic are the Cyber-Physcial Systems (short: CPS). Ask ten people what CPS are and you will get ten answers. It is just not clear yet. Here is my opinion:

CPS are “smart”, (semi-)autonome systems (networks) of elements (embedded systems) which have both, a real-world object (e.g. sensors or actuators) as well as a virtuell object (image of data in software). The interconnected elements together form a system capable of optimizing and adapting itself, supporting or performing processes in the real world.

Well, this description is not really clear, is it. Maybe like this: CPS are “automation 3.0”. While classical automation only uses simple control loops or are just remote controls, CPS can optimize and adapt their control mechanisms by themselves. Typical buzzwords are “Smart Factory”, “Smart Grid”, “Smart Office”, “Smart Home”, etc. It is always the idea that the surrounding “thinks along”.

In the VICCI project we follow the scenario of a “smart home”, an apartment which is thinking along and which supports it’s residents. For example, simple transportation or search tasks can be handled. Our CPS consist of sensors and actuators. The sensors are placed in a computer lab which will represent our model-apartment. We have sensores for temperature, light, humidity, cameras, etc. As actuators we have robots which are exemplary for service robots. You remember I, Robot. We (scientists) are working on it 😉

My field of work with our group is (in addition to coordination and administrative tasks) the visualization of CPS, more precisely, the internal state of the CPS. I create visualizations for analyzing: “What does the CPS think?” First results exist, but are not published yet. As soon as they are, I will write about them here.

The Windows Powershell is quite nice. Of course, now all the Linux users start bitching around, that they always has something like this and that it is nothing special. And no one claims otherwise. But still, the PowerShell is nice and I enjoy it. 🙂

Like today: I needed a simple hex dump of a file:

PS >  $str = ""; $cnt = 0; get-content -encoding byte C:\pfad\zur\Datei.txt | foreach-object { $str += (" {0:x2}" -f $_); if ($cnt++ -eq 7) { $cnt = 0; $str += "`n"; } }; write-host $str

It’s elegance is limited, that I will admit, however, I does it’s job. And, somehow, it is quite nice …

Some time ago I talked with a good friend of mine about Knights Hunt. He said, I should move away from the chess-like board. Another nice type would be a hex-board. That time I rejected the idea, but the brain can usually not stop thinking about stuff. Basically, the shape of the board is not important.

The way knights move seems easy to transfer to a hex-board (1 field straight + 1 field diagonal => 1 field straight + 1 field in a neighboring direction). The knight loses some freedom in its movement (on a chess board there are 8 reachable fields, while on the hex-board there are only 6 reachable fields.) but that is not a problem. However, if you take a closer look, you will see, that there is a very huge problem! The knight can only reach 1/3 of all fields of the board. To fix this, the knight movement needs to be extended, either by allowing to move only one field or be allowing to move two fields in one direction. The solution is not clear to me yet. Let ignore this problem for now and stick to the classical movement.

Considering the size of the board a hex-board with four fields on each edge would be the same size as the smaller chess board currently used (37 fields vs. 36 fields):

One possible hex-board for an adjusted game.
The currently used Knights Hunt chess-like board

The fields with colored border are the fields the knights can reach in their first move. One further problem is visible: the reachable fields are further apart on the hex-board. This means that the meeting of the knights will need more turns and thus that the games evolve slower. However, Knights Hunt was designed for a fast game play. Thus, I do not like this.

One way to solve this issue is to make the board smaller. However, a hex-board with edge length of three fields has only 19 fields altogether. Too few for four knights. Thus we need to remove some playing pieces (which is a good thing for fast game play):

Smaller hex-board with only one knight

However, now there is a real movement problem: the knight can effectively move only to the center field, where he is immediate prey for the enemy. This is not good. While it would be possible to move the outer pawns out of the way, the problem of the center field remains. Other ways of moving knights might also not solve this problem. One thing we can try is a different starting layout (and rotating the board):

Alternative starting layout

Now, this looks nicely lilke the classical scenario (using the classical knight moves, which will not work). However, the second move (the first black move) is again a huge problem.

Concolusion: The hex-board simple do not work that way. I like the idea to simplify the game by only using one knight and I will continue to think about it. However, the result is likely a completely new game.

The year 2012 is almost gone. Let’s use this opportunity to reflect on what’s happend. Ok, ok. No one likes annual reviews (me neither), but still…

Early this year I defended my dissertation, and finished my Ph.D. With this, I also finished my work at the Visualization Research Center of the University of Stuttgart. And I mean “at”, not “with”. I still continue working with the “guys from Stuttgart”, and we have some pretty exciting ideas under development.

Then I moved to Dresden and started working at the TU Dresden in the project VICCI. It’s a great city and a great group working here at the computer graphics lab. I really enjoy working and we have some fascinating science projects going on here.

What else? TheLib started. Together with two friends and ex-colleagues from Stuttgart, we decided to fix the design issues of the VISlib, by creating a new, clean library. It is a lot of work, but it is worth it.

And, of course, there is my private game project: Springerjagd (Knights Hunt). Although, I already started to work on the rules last year, it was this year that the game finally got it’s name. And it’s webseit, although there is not much to see there. But this project is something I will be definitly going to continue.

And, with this we reach the New Year’s resolutions (although it’s 1-2 days early): basically, I only want to do what I can to make 2013 as successful as 2012 was. No, I will make it even more successful. However, I believer there is no need for more detailed plans 🙂

And, because I do not plan to post again at New Year’s Eve, I wish you all:

“A happy new Year!”

I had some very quite days this week. Nothing really happend, and that is a very good thing. Thus, the only thing I have to say this week is:

Merry Christmas!

What a week.

The deadline for paper submission for the EuroVis 2013 was this weekend. I wanted to submit my current work there, and therefore the motto for this week was: “paper writing and polishing”. Hard work! And now I am curious about the results. I am satisfied with my results, but, of course, the reviewers have to be satisfied as well. And a bit of luck is required as well, as there is strong competition.

However, because the double blind reviewing process is now running, I, of course, cannot write about this work here (yet).