Old blog articles

This is a full archive of the blog I used to have on my previous website. Most of the content in here will likely be outdated or uninteresting by this point, but you never know. I went through and fixed some broken links, apart from that it's all untouched.

Using DOSBox and emscripten to put old games onto the web

2015-08-28 22:36:30

Back in January of this year, the Internet Archive published their interactive DOS game library, allowing anyone to play old games that used to run on MS-DOS machines right in their browser, without the need for any plug-in or external software. This was very inspiring to me and reminded me of the time when I took my first steps in the world of programming using Turbo Pascal and compiling for DOS. Naturally, I made games in it.

I made a mental note to check out the underlying technology, but in January I was knee-deep in the process of finishing my master's thesis (followed by a move and a new job), so the “DOS in my browser” thing went somewhere near the bottom of my priority list.

In early June I dedicated a weekend to finally figuring that stuff out, which culminated in me adding a playable version of Revelation Mentis to my website. The way I first learned programming was by taking existing source code (typically little games) and tinkering with it, first changing values, then single instructions, then larger blocks of code. RM is notable in my personal history for being the first game (as well as the first non-trivial program) that I created on my own and completely from scratch, so it seemed like a good candidate for something to put on my website for posterity.

As I found out, many talented developers have made this process comparatively smooth – smoother than I had expected, anyway. Still, it's not a “drag and drop” kind of solution, you still need some coding chops to put all the pieces together. I'd like to walk you through what I did, just in case you're interested in doing something similar or you're curious about how it works.

Setting up the build environment

In a nutshell, emscripten compiles C/C++ code to JavaScript, while DOSBox is an application that can run most DOS applications, including my old Revelation Mentis binary. I won't pretend to be knowledgeable enough about emscripten to know how exactly the various abstractions are divided between the two, but the end result is a (from what I can tell) complete version of DOSBox including graphics, sound, file system access and more that runs without a hitch in modern browsers.

My development machine is running Ubuntu Linux 15.04, which packages emscripten 1.22 as of today. That turned out to not be enough for the version of DOSBox that I used, so I got the portable SDK and followed the instructions for installation of the most recent version of emscripten on Linux, which are straightforward. The compilation involved can take a while though, so it's best to have your beverage of choice ready at this point.

With a recent version of emscripten up and running, the next step is to grab em-dosbox, a port of DOSBox to emscripten maintained by Boris Gjenero, and follow those installation instructions as well. The first “make” command leaves you with a bare instance of DOSBox compiled to HTML and JavaScript. Due to the same-origin policy, you'll need to launch the generated webpage through a local webserver (for example “python -m SimpleHTTPServer 8000”) to get it running.

Packaging the game data

The next question is how to get the DOS application binary into our webpage. The em-dosbox documentation has instructions for that too, the tool includes a packager that can easily put your EXE file into a virtual filesystem that em-dosbox can later use. That should allow you to quickly get your DOS application up and running.

In the case of Revelation Mentis, I had some fine-tuning to do in order to get the exact experience that I wanted. Out of the box, some characters in the title screen ASCII art are rendered wrong. This is because my machine from back then used code page 850 and I (blissfully ignorant of internationalization at the time) used the 0xF7 Cedilla as part of my game's title screen. After a few minutes spent on the DOSBox wiki, I learned that I needed a dosbox.conf with the line “keyboardlayout=gr” in the “[dos]” section to rectify this problem. Unnecessarily, this should also change the keyboard layout to German for all users, but as it turns out Revelation Mentis only uses keys that are identical on US and DE keyboards, so it's not an issue. Packaging my dosbox.conf along with the game binary was accomplished by following em-dosbox instructions again.

By default, the generated instance of DOSBox automatically launches the intended binary. Unfortunately, after exiting the game the user is left at a DOS prompt. By passing it the “-exit” parameter, DOSBox can be instructed to terminate itself after the designated DOS process has ended. There are two easy ways to accomplish this with em-dosbox, you can either modify the packager script to include the option (advisable if you're rather sure you want this behavior for everything you package) or you can modify the generated HTML file afterwards (recommended if you just want to test it out or you're not sure if it's what you want).

If you decide to adjust the packager script, look into “src/packager.py” for the line where a string containing “Module['arguments']” is being written – in the current repository snapshot I'm looking at it's line 124:

f.write("Module['arguments'] = [ " + cmdline + " ];\n</script>\n")

Please note that this is Python code outputting JavaScript code (and a closing HTML tag), so don't waste too many brain cells wrapping your head around the syntax here. You can add the exit parameter as follows:

f.write("Module['arguments'] = [ '-exit', " + cmdline + " ];\n</script>\n")

If you instead decide to change the generated HTML file, it's actually that very line that the packager script is writing that you need to adjust. Look for the JavaScript line starting with “Module['arguments']” that looks about like this:

Module['arguments'] = [ './binary.exe' ];

And change it to this:

Module['arguments'] = [ '-exit', './binary.exe' ];

But keep in mind that this line gets overwritten every time you run the packager.

After all this, I had a version of DOSBox inside a webpage that ran my game as intended. The only remaining task was to change the resulting webpage into something suiting my tastes.

Polishing the front end

With all the compiling and packaging woes out of the way, you should now have one HTML file and some JS and data files. This is where your HTML and JavaScript knowledge comes in and you get to make whatever changes you want to the HTML code. There's nothing particularly challenging or unique about this part, so I'll just quickly go over what I did.

I hid a number of UI elements that I didn't want, like the DOSBox stdout text field and the graphics/mouse settings. I chose to hide them through CSS rather than outright removing them, since I wasn't sure how the DOSBox JavaScript actually interacts with them, and I didn't feel inclined to disentangle the DOSBox JS, the DOM elements and the glue code in order to remove them cleanly.

I applied a palatable dark gray background and a drop shadow – this is of course up to personal taste and you may want to go with your own design. I also added a CSS-based loading animation from Tobias Ahlin's SpinKit to be displayed while the browser fetches the data files.

I wrote a JS snippet that adjusts the size and position of the DOSBox HTML canvas depending on the window size. It's a pretty neat little algorithm that actually causes the game to “snap” to clean multiples of its native resolution of 320x200 with some tolerance, preserving pixel-accurate rendering whenever possible.

Somewhat notably, I also added a little JavaScript hack to detect when my game would finish running. Since DOSBox was configured to terminate upon the process ending, all drawing operations to the HTML canvas element would simply cease. So what I did was to check the document title for the currently running process, which DOSBox updates while it's running. As soon as the name of my game binary no longer appears, I hide the canvas element and show a “Thank you for playing” message instead.


And that's pretty much it! As you can see, while the whole process is certainly not geared towards the average user, it's nothing that an adventurous hobbyist coder couldn't get done in an afternoon.

Now something that I haven't really talked about is the amount of abstraction in this technology stack. My first reaction to the Internet Archive DOS game library was probably something along the lines of “Wow, JavaScript has come a long way.” It's hard not to be impressed by what amounts to a PC emulator running in JS inside a browser. However, with abstraction comes overhead, and my little 20KB DOS binary now requires 35MB of data to be downloaded by the user (the bulk of it is DOSBox I assume). It's a DOS binary running inside DOSBox, which has been compiled to JS using emscripten, running in a browser on my – and your – machine.

Any real discussion of the ramifications of this technology for archivists and the question whether everything should be running in a browser would definitely exceed the scope of this article, but when I first tweeted about this renaissance of Revelation Mentis, someone linked me this talk, which I found fun to watch.

Please let me know if this is helpful to you! If it compels you to play around with emscripten and do something cool, I would like to see the results!



This is very informative , Thank you!

uxHH: Sebastian Deterding on Gamification

2012-12-04 00:34:37

Today the User Experience Roundtable Hamburg (in cooperation with the local IxDA) hosted a talk by Sebastian Deterding titled “9.5 Theses on Gamification” (Sebastian has information on earlier iterations of the same talk available online). For me it's been the first uxHH Roundtable for a good couple of months, but this topic with this speaker I couldn't pass up.

So I just got back from there and I'm pretty tired, but I have some unfinished thoughts rummaging around my head that I'd risk losing by going to sleep. They might not be excessively polished (or even necessarily cohesive), but I'm going to take the red pill and embrace the now-famous Edmund Snow Carpenter quote: “[C]lear speaking is generally obsolete thinking. Clear statement is like an art object: it is the afterlife of the process which called it into being. The process itself is the significant step and, especially at the beginning, is often incomplete and uncertain.” So please bear with me, this blog entry is not an attempt at a scientific paper.

First of all, I have to say Sebastian's overview of the history of gamification was excellent. In my presentations I've always been pretty vague and limited myself to providing a rough timescale. Sebastian apparently did some serious detective work and laid bare all the gory details. That part alone would've been worth the travel through the snow. Major props! It bears mentioning that, while important on a meta level (talking about gamification), that information is essentially trivia and, by itself, doesn't have that much intrinsic value (for pursuing gamification, whatever that may mean).

The implied question that comes with every gamification talk ever, is how to actually do that thing. I felt like Sebastian did a good job at steering people away from the checklist approach decried by Ian Bogost. He outlined some fairly established properties of games and how/why people play, and why it is very difficult to bring those in line with whatever snake oil / gamification salespeople tell you about the bottom line. (Side note: Last week, in an interview about gamification, I've wondered aloud whether the word itself is even salvageable for the long term, or whether it will inevitably go down in history as a marketing fad.)

So what do we tell someone who wants to “get started”, after all the stuff about the value of the player experience has been established? The easy approach, the one I've used so far, is to more or less point people to game design resources. “You want to make good games,” I say, “so here's what experienced designers say about how to make good games.” This also has the neat side effect of alienating checklist aficionados who don't actually want to learn anything new. I'm not even disappointed in them, their failing projects will be disappointing enough. I could link you to that Gartner press release now, but I don't really want to outwardly promote their current position just because it happens to align with my own narrative.

Something else that has jumped out at me is how many talking points (not necessarily from Sebastian's talk, but in general from the discussion surrounding gamification) would be fairly obvious if people, you know, actually played some games. I've seen and heard people talk about gamification who seemed like they hadn't touched a game since Tetris. I mean, how believably can someone talk about player engagement and emotional impact if they've never even saved a princess? (By the way I'm not saying classic games couldn't be emotionally intensive – fact is, they can be.) Sebastian, in contrast to those unnamed people, seemed to be at the very least in touch with gaming culture: we chatted for a bit about Desert Bus for Hope and I did recognize his Sword & Sworcery wallpaper. Small cues like these stabilize the assumption that he does indeed “know games” from more than a purely academic perspective.

I should probably wrap this up this right about here, so in summary I listened to a fantastic talk on gamification that ended up teaching me a good amount of new facts, evoked some new questions, challenged some beliefs and strengthened others. All in all, a valuable experience!

On a related note, I've been drafting a blog entry about an example for games achieving emotional impact through their mechanics, by toying with player expectations / mental models and seemingly “changing the rules.” It's currenty sitting at slightly under 2000 words and should be finished either this week or next.


Michael Karbacher

I really like this blog post :) Not only because it contains a reference to the Matrix ;)

Some of the issues you mention have also been discussed at the researching games conference I've visited earlier this year. For example this one:

Side note: Last week, in an interview about gamification, I've wondered aloud whether the word itself is even salvageable for the long term, or whether it will inevitably go down in history as marketing fad.

I'm probably not as firm on game theory as you are but if a game is meant as some sort of experience outside of our regular reality for a certain amount of time with specific rules and goals that are not meant to directly influence our regular life (whether or not I safe the princess in a game doesn't get me a promotion in my job) then the so called “game aspects” that are added to some regular service applications seem to be nothing more than a form of competition (which doesn't make a game).

I'm looking forward to your blog entry about the emotional impact of games through their mechanics... Kind of reminds me of my experience in the caves of confusion which had a great impact on my emotions ;)


Kind of reminds me of my experience in the caves of confusion which had a great impact on my emotions ;)

The idea is actually fairly similiar to what you've experienced! In Legendary, Vechs first establishes a convention – find the wool in each area – and then breaks it. In your case, that has lead to quite a bit of frustration. I'm not sure if that was 100% intentional on Vechs' part, but given that most of his maps are designed to be various degrees of frustrating, I wouldn't rule it out.

In contrast, the example in my upcoming blog post is one where breaking a convention leads to positive emotions and makes the player feel empowered.

Bachelor Thesis Log #01

2012-11-12 22:20:38

As my studies continue towards their inevitable conclusion, I am once again faced with the situation of having to write a bachelor thesis some time soon-ish. I'm fortunate enough to have already written one of those, so it's not as much of a big unknown for me as it is for others (which doesn't mean that it's routine in any way either). I'm currently (and have been for a good couple of weeks, actually) in the process of brainstorming possible topics. By now I figure I'm not going to make any steps forward by twisting and turning stuff in my head over and over, so here I am late thursday night trying to put some of it into writing. I also thought I might as well involve y'all, since that seemed to work pretty well the first time around.

This time, though, I'll tentatively be writing in English, because in this line of academia you have to make the transition to English at some point, thus why wait?

For those of you not quite in the loop, here's the basic situation: I'm currently at the tail end of a dual curriculum involving the Bachelor of Science in Human-Computer-Interaction and the Master of Science in Computer Science (“Informatik”), so I actually have to write two final theses. They could be somehow connected or they might be completely distinct, that's up for me to decide. I'll be focusing on the bachelor thesis first and foremost.

At my department at the University of Hamburg, a bachelor thesis should be adequately completed in three months of full-time work (which might be changing to five months, or so I've heard). The clock typically does not start ticking until the topic of the thesis has been clarified, often in the form of a written exposé. The first challenge, thus, is to find a suitable topic.

Personal Interest

Obviously, my personal interests are the biggest and most important factor and dictate my specialization in the field. Viewed through the lense of project planning, this is a question of motivation first and foremost. A bachelor thesis is something that you have to persistently work on, literally for months, and from my experience it rarely leaves your mental focus. I know that if I had to write a bachelor thesis on a topic that isn't interesting to me, that I don't feel passionate about, it would just destroy me. That could just be me, I'm sure some people manage to do it. But I don't have that kind of stubborn persistence to give 110% for a single creative work over several months if I can not feel passionate about it. It's vitally important to me that I can write my bachelor thesis on a topic that I actually find interesting.

Flashback: My last thesis in 2010 was about “teachlets,” a method for facilitating software design education, to which I was exposed in a seminar and which left a lasting imprint. I was so fascinated by the concept that I asked its originator, Axel Schmolitzky, to supervise my bachelor thesis on that same topic. He was a bit apprehensive, because he didn't know whether the task we devised for me would lead to a well-rounded bachelor thesis, and he actually offered me a number of “easy ways out”: more precise and controlled lower-risk topics with a higher base chance of success. I chose to take the risk, and my final grades indeed ended up reflecting the truth that my findings did not lead to an outstanding bachelor thesis (it certainly wasn't bad, but also not as good as other things I've done). It did, however, make a lasting contribution to the teachlet community and Axel did not hesitate to attest its scientific value. I'm proud to say that I regret nothing.

Since some time in 2008 or 2009, I've had a heightened interest in Human-Computer-Interaction, usability and related areas. My first bachelor thesis had very little to do with those things, so I promised myself that the next one would definitely be grounded there. Since then, I have specialized my courses appropriately and I have been active in our HCI group, mostly as a student assistant helping with the teaching. I've had time to better familiarize myself with the field and I've begun to stake out areas that I find very interesting versus areas that tend to bore me.

The concepts of usability and user experience are, upon close inspection, still so new and ill-defined that they help very little in narrowing down the whole field of HCI. At their core, these words refer to a common-sense understanding that there have to be some reasons why certain systems are more efficient, easier and more pleasurable to use by a human than others. Research questions in this area range from the deepest depths of psychology (what kinds of tasks are our minds able to handle well, how does work satisfaction arise?) to mechanistic, data-driven evaluations that are not so very different from determining the computational complexity of any algorithm without human components. The fascination that arises from the interaction of these contrasting viewpoints is actually one of the influences that originally lured me in. I would love it if my upcoming bachelor thesis could make a contribution to existing knowledge on how to make computing more accessible and less intimidating for more people around the world.

In contrast, the topic of games and play is one that kind of snuck up on me. The UX community at large has had a bit of a focal shift in recent years, away from the traditional central question of “How can we make all this less of a hassle and annoyance?” to “How can we make this more of a pleasurable and rewarding experience?” Perspectives like Don Norman's Emotional Design caused a rising number of usability professionals to ponder concepts like fun. From that angle, games seemed like a logical thing to investigate, and before I really knew what was happening, I was reading books about game design. I maintain that I'm not interested in becoming a professional game designer or ludulogist, but I fancy myself moderately well-versed in the principles, particularly regarding engagement, motivation, and fun. I don't expect to design/develop a game, but if this knowledge happens to somehow fit into my bachelor thesis, all the better!

Lasting Relevance

Usually, a bachelor thesis does not contain groundbreaking research. There are exceptions of course. Even if it does not warrant publishing the results in a scientific journal, the thesis may still offer some scientific relevance, or it may not. If a bachelor thesis is written in close contact with a company, for example, it is often highly specialized work that is not interesting for anyone outside that company – although, again, there are exceptions to this.

In any case, I would like my bachelor thesis to have as much relevance to the scientific community as possible. I've never published a paper before, but I would very much like that to happen before the end of my studies. It's not a requirement (especially since these things can not be 100% predicted), but as far as I can influence it, I plan on doing so.

Aside from the scientific relevance, I would also love to create something that other people can build upon and make use of. Something useful, in short.

What now?

In any case, the work has to fit within the allotted timeframe. Other than that, I need a supervisor, a role for which, given my preferred topics, only one person at the department really qualifies: the current professor for HCI. In fact, I'll be talking about my ideas with him tomorrow.

I anticipate that I'll return to a weekly schedule with these reports at some point, though possibly not right from the beginning. For now, I'll write one of these whenever there are enough news to warrant it. I hope that you'll be with me again and I'll see you around!

Playful Design

2012-07-27 17:26:51

Last week I was talking to the current professor for HCI at the University of Hamburg in his office, and among the current set of books that he was asked to assess for inclusion in our department's library, something caught my eye. I recognized the cover design of John Ferrara's Playful Design, published very recently by Rosenfeld Media. That was pretty exciting for me, since I had been looking forward to that book for a while, to the extent that I recommended it in a recent talk about gamification, just on the basis of the introductory article at UX Magazine. This occassion presented me with a chance to actually read the whole thing, so here's what came of that.

Topic and Relevance

Here's the blurb from the publisher's website linked above:

Game design is a sibling discipline to software and Web design, but they're siblings that grew up in different houses. They have much more in common than their perceived distinction typically suggests, and user experience practitioners can realize enormous benefit by exploiting the solutions that games have found to the real problems of design. This book will show you how.

Those few lines already managed to catch my attention, since they state something that I've been also thinking and talking about for a while. Usability engineering and interaction design have somewhat become my core interest concerning my studies of computer science, and I've dabbled in game design occassionally, passively (I enjoy some amounts of well-crafted gameplay in my free time) and actively (most visibly in a rather enjoyable real-time strategy game prototype that I developed with a few other students a couple of years ago, that I sadly have yet to document in a world-accessible way).

My recent drive to put games and playful experiences into the spotlight might be fueled partially by the tendency of our current faculty to dismiss games as mostly uninteresting and irrelevant to our work. (Since Timo left, games don't really have a “voice” at our CS department anymore.) I don't mean this as an insult, both mck and Claudia have highly interesting and relevant research topics for our little HCI group, it's just that games happen to not be among those.

Last semester I gave a talk about the challenges of interface complexity in our research colloquium, in which I showcased explorative learning in games by explaining the extraordinarily well-engineered level design of Super Mario Bros on the NES, stage 1-1. This seems to have been a real eye-opener for some of the visitors as to how much thought can go into a good game – they had simply never looked at them so deeply.

So John Ferrara's book, to which excellent timing (in the sense that the UX community can profit immensely from it right now) has been attributed by Hamburg's own Sebastian Deterding, is also excellently timed for me on a more individual level. It's a great opportunity to further the discussion about games in the HCI context at our department. More on that later.

Mini Summary and Review

The book contains three main parts subdivided into four to six chapters each, on 200-odd pages in total. You could say that the three parts roughly contain 1. clarification of what games are and how they're impacting UX practices, 2. how to create games that don't stink, and 3. how games can help us do other things than just relax after work.

It is rather clear about its audience: Playful Design is aimed at UX practitioners who recognize that games may hold something of value to them at least insofar as they're willing to read a book about it. It is not aimed at aspiring game designers without any UX background – although it would probably work, there are other, better-fitting books for them. The ideal reader is someone who has at least some HCI-related knowledge and wants to understand “what's the deal” with games. No experience playing video games is required, though it would probably be helpful for following along.

To give an example: There's a chapter about play-testing and how it relates to the quality of the finished game. The author draws parallels to classic usability testing and highlights the differences. If you know nothing at all about usability testing, parts of this chapter may be hard to follow. You don't need years of experience of course, just a cursory idea will do plenty to help you.

It succeeds in conveying central concepts and messages. I found the way that it delves into UX, psychology and game design very well-rounded. Please note that it is not a textbook on either of those subjects, but is concerned with their overlap and interaction. If you've studied one of these subjects in depth, you might find yourself thinking “well yes, this is nice, but there's so much more.” Indeed there is, but if you're looking for e.g. a fundamental introduction into human psychology, you should look elsewhere.

Playful Design is more of an “applied science” type of book, designed to let you know how to tranform theoretical knowledge into practical results. It reminded my of Steve Krug's famous Don't Make Me Think in its hands-on, “this is how you could do what you do better” kind of way, while also supplying adequate citations for its assertions. Language-wise, it is thankfully not comparable to typical computer science papers, but can be easily and fluently read even by non-native English speakers like me. I read it over the course of a weekend, during which I did plenty of other things as well.

Is this Book for You?

As mentioned above, if you already have some knowledge about interaction design and/or HCI (e.g. if you enrolled in our Interaction Design course last semester or some time beforehand, then you're more than covered) and want to know what all the fuss with gamification, serious games and all that is about, this book is for you. If you're a game design novice and want to know what you can do to better your craft, it almost certainly holds value to you, but I would probalby look elsewhere beforehand. If you're a project manager who has heard about gamification and wants to slap a point system and leaderboards on a tax management software to make it more successful, I will put you inside a Skinner box and repeatedly hit you over the head with this book until you show some improvement.

If you're a student of computer science at the University of Hamburg, I would expect Playful Design to be available at our department library soon-ish. If you're in the master's programme, consider enrolling in the Interactive Systems course next semester, provided you're interested in this topic and want to help further the discussion about games at our department. It looks like a detailed analysis of Playful Design could be a viable task for the seminar. (Of course a plethora of non-game-related topics will be discussed in the seminar as well, so if this book in particular doesn't faze you, don't be deterred.)

If you're a UX professional of any kind, I heartily recommend just buying the book. I will do so myself as soon as I can part with the cash. It's a fantastic addition to your physical bookshelf as well as your mental toolbox.

Interaktionsdesign-Erklärungen für die Nachwelt

2011-12-29 00:57:13

Im Sommersemester 2011 habe ich als studentische Hilfskraft die Veranstaltung Interaktionsdesign bei Prof. Oberquelle mitbetreut. In diesem Rahmen habe ich im (geschlossenen) CommSy-Raum der Veranstaltung einige Fragen schriftlich beantwortet, die den Veranstaltungsteilnehmern bei der Prüfungsvorbereitung aufkamen. Es wäre schade wenn diese Texte einfach verlorengehen, deshalb habe ich sie hier geringfügig aufpoliert und zusammenhängend wiedergegeben. Ob die Inhalte im nächsten Durchgang der Veranstaltung überhaupt noch relevant sind, das ist natürlich noch nicht in Stein gemeißelt. Trotzdem viel Vergnügen damit!

Tangible Media

Ich habe eben noch mal die MIA-Folien durchgeschaut und leider tatsächlich keinen Definitionsansatz dort gefunden. Auf S. 17 und 18 von MIA11-4.pdf gibt es Beispiele. Die Grundidee wird vermutlich durch Beispiele schon einigermaßen gut klar.

Aber was ist mit dem Begriff gemeint? Über die Bedeutung von „tangible“ – greifbar, anfassbar – kommt man schon ganz gut heran. Ein Tangible User Interface erlaubt es uns, den Computer zu steuern, indem wir physische Objekte manipulieren, mit denen wir eine sehr hohe Direktheit der Interaktion erreichen. Einfach gesagt kann Tangible Media alles sein, bei dem physische Objekte mit digitalen Repräsentationen „verbunden“ werden, so dass wir den Zustand der digitalen Welt verändern, wenn wir den Zustand der physischen Objekte verändern. Das ist allerdings immer noch relativ schwammig, deshalb erzähle ich einfach mal ein bisschen genauer...

Vorweg: Tangible Media ist kein besonders technischer Begriff. Aus technischer Sicht wird schließlich jedes Eingabegerät irgendwie physisch manipuliert und bewirkt etwas im Computersystem durch seine Sensordaten. Tangible Media gehört konzeptuell eher in die Schublade der Benutzbarkeitsforschung, Experience Design usw. und berührt neben der Technik auch Dinge wie die mentalen Modelle der Benutzer.

So etwas wie Maus und Tastatur sind Allzweck-Steuergeräte, mit denen wir viele verschiedenen Aufgaben erfüllen können. Diese Geräte werden auf ihre Grundfunktionen (Tastatur: einzelne, diskrete Tastendrücke, Maus: Bewegung in der 2D-Ebene) reduziert und von allen anderen Eigenschaften wird abstrahiert. Auf diesen Grundfunktionen bauen wiederum unsere hochkomplexen Desktop-Softwaresysteme auf. Aufgrund dieser „Kluft“ zwischen den physischen Objekten und der Nutzung würde ich Maus und Tastatur nicht als Tangible Media bezeichnen. Dieser Eindruck wird verstärkt dadurch, dass Computerbenutzer recht schnell lernen, die Maus und die Tastatur zu „vergessen“ und nur noch in virtuellen Konzepten zu denken.

Bei Tangible Media habe ich dagegen physische Objekte, die erstens eng mit der digitalen Repräsentation gekoppelt sind, so dass meine Interaktion mir „direkt“ erscheint. Dadurch, dass ich etwas bspw. anfasse und bewege, verändere ich die digitale Welt so, als hätte ich sie an der gleichen Stelle und auf die gleiche Weise angefasst und/oder bewegt. Zweitens stehen diese phyischen Objekte zusammen mit ihren digitalen Repräsentationen (meist als Einheit) in meinem mentalen Modell im Zentrum. Sie sind nicht nur Werkzeug, sondern auch Material.

Eine spannende Frage in diesem Themenfeld wäre, inwieweit Touchscreens „tangible“ sind. Die Dinger sind schön direkt und physisch, allerdings verändert man sie normalerweise nicht und mit der Material-Sicht haben sie auch nicht viel zu tun. Das wäre vielleicht eine spannende Frage, die man mal in einer Prüfung diskutieren könnte. (Disclaimer: Mit den Prüfungen von Herrn Oberquelle habe ich nichts zu tun und habe weder Einblick in noch Einfluss auf die dort gestellten Fragen.)

Ich hoffe das hilft schon mal. Bei Wikipedia gibt es ansonsten noch ein bisschen was zum Thema: Wikipedia – Tangible User Interface


Für Virtual-Reality-Systeme gibt es die sogenannten „Caves“. Das sind spezielle Räume, in denen die Wände, Fußboden und ggf. auch die Decke als Bildschirme genutzt werden können, so dass für eine Person ein ziemlich hoher Grad der Immersion in eine virtuelle Welt erreicht werden kann. (Meist ist darüber nämlich auch noch stereoskopische 3D-Grafik möglich.) Ein Nachteil von Caves ist, dass sie ziemlich aufwändig und teuer sind, weil die ganzen Projektoren irgendwie untergebracht werden und zusammenarbeiten müssen. Ein weiterer Nachteil ist, dass man sich in der virtuellen Welt zwar ohne Probleme rundherum drehen, aber nicht herumlaufen kann.

Bei einer L-Shape handelt es sich grob gesehen um die Light-Version einer Cave. Man lässt die Decke und drei der vier Wände weg, so dass man sich nur noch um eine Wand und den Boden kümmern muss. (Man stelle sich das räumlich vor, dann erkennt man die Form des Buchstaben „L“.) Das senkt die finanziellen Kosten enorm, verringert aber natürlich auch die Immersion. Das muss man bei der Planung solcher Systeme abwägen. In L-Shapes kann man sich dann anders als in Caves nicht mehr herumdrehen, ohne die Grenzen der Grafikdarstellung zu verlassen. Ansonsten sind L-Shapes und Caves sich funktional ziemlich ähnlich.

Allgemeines zu Modellen

Ich höre von Zeit zu Zeit ein leises Raunen, warum man sich im MCI-Bereich eigentlich mit diesen ganzen Modellen befassen soll, die alle irgendwie ähnlich und trotzdem unterschiedlich sind, und dennoch die Realität nicht vollständig abbilden. Warum machen wir uns die Mühe?

Aus wissenschaftstheoretischer Sicht sind sie eine Möglichkeit, die Realität zu beschreiben. Ein großer Teil auch unserer Arbeit als Wissenschaftler (das werdet ihr wahrscheinlich schon bei eurer Bachelorarbeit feststellen) besteht nicht nur darin, Dinge herauszufinden und zu erklären, sondern auch, Dinge kommunizierbar zu machen, über die vorher nicht gesprochen werden konnte. Wir beobachten komplexe Zusammenhänge in der realen Welt und wollen uns in der wissenschaftlichen Gemeinde darüber austauschen und damit auseinandersetzen. Damit das geht, müssen wir zunächst abstrahieren und strukturieren, was wir zu sehen glauben. Auch das PACT-Modell ist ein Versuch, bis dato unkommunizierte reale Zusammenhänge in eine Struktur zu gießen, in der sie für Außenstehende (also zunächst mal auch uns) erschließbar sind.

Nachdem man sich eine Weile mit solchen Modellen befasst hat, drängt sich manchmal die Frage auf, was man dabei eigentlich gelernt haben soll. Tatsächlich ist das PACT-Modell auch hierfür ein gutes Beispiel: Als mittelmäßig bis gut qualifizierte Informatikstudierende erzählt es uns im Grunde nichts, was wir nicht schon vorher im Prinzip irgendwie gewusst haben. Der Verdienst des Ganzen ist aber, dass wir eine gemeinsame Kommunikationsbasis haben, nachdem wir uns mit dem Modell auseinandergesetzt haben. Wir können untereinander die gleichen Begriffe verwenden, können halbwegs sicher sein dass wir ungefähr das Gleiche meinen, und – hier ist der Knackpunkt – können darauf aufbauen. Beim Lernen für die ID-Prüfung fällt uns evtl. noch nicht auf, wie sehr wir davon profitieren, aber wenn wir später mal in einer Abschlussarbeit das PACT-Modell referenzieren können statt die Zusammenhänge immer wieder von Grund auf neu zu erklären, dann schon.

Leavitt-Raute und PACT-Modell

Nun zu Leavitt-Raute und PACT-Modell (vgl. S. 7 von ID_11-1.pdf). Was hat es damit auf sich? Die beiden Modelle sind sich so ähnlich, dass ich wohl zu beiden gleichzeitig etwas sagen kann.

Bei der Entwicklung von benutzergerechten Systemen kann vieles schiefgehen. Als Entwickler müssen wir viele Dinge auf einmal im Blick behalten. In den beiden genannten Modellen haben wir eine Reihe von Begriffen (Leavitt-Raute: Mensch, Aufgabe, Organisation, System; beim PACT-Modell kommt noch die Technologie hinzu) und Doppelpfeile, die jeden (PACT: beinahe jeden) Begriff mit jedem anderen verbinden. Was soll uns das sagen? Vielleicht betrachten wir erst mal die Begriffe nacheinander isoliert:

Mensch (people): Unsere Systeme werden von Menschen verwendet. Menschen haben unterschiedliche Fähigkeiten, körperliche und geistige Voraussetzungen, Erfahrungen, Neigungen und Geschmäcker. Beim Entwickeln von gebrauchstauglichen Systemen soll uns klar sein, wer unsere Zielgruppe ist.

Aufgabe (activity): In aller Regel will jemand, der eine Software benutzt, dadurch etwas erreichen. Die Zeiten, in denen Computer nur im Kontext von Arbeitsplatztätigkeiten betrachtet werden müssen, sind zwar vorbei, aber dennoch werden sie nicht ohne irgendein Ziel eingesetzt (und sei es Spaß oder Bewältigung von Langeweile). Die Gestaltung eines Systems hängt in nicht geringem Maße davon ab, welche Aufgaben man damit erfüllen können soll.

Organisation (context): In welchem organisationellen Kontext wird das System eingesetzt? Ist es eine Firma (eine konkrete?), ein Verein, eine lockere Community? Das System muss sich in bestehende Regelsysteme eingliedern lassen und sollte die Zusammenarbeit unterstützen.

System (system): Das System selbst, die Komponente, über die wir die größte Kontrolle haben.

Technologie (nur im PACT-Modell): Der technologische Rahmen, Ein- und Ausgabehardware, Ressourcen.

Das alles sind Dinge, die wir im Kopf haben müssen, wenn die Entwicklung gebrauchstauglicher Systeme gelingen soll. Die zentrale Aussage der Leavitt-Raute und des PACT-Modells ist nun dies: All diese Dinge stehen sehr eng miteinander in Beziehung. Man kann quasi nichts davon verändern, ohne Einfluss auf den Rest zu nehmen. Verändern wir den Nutzerkreis (die Menschen), dann verändern sich deren Aufgaben und Ziele. Verändern wir den Organisationskontext, treffen wir auf unterschiedliche Technologien. Ich glaube, die Urheber des PACT-Modells möchten uns primär dazu aufrufen, keine kurzsichtigen Veränderungen am System oder an anderen Bereichen zu machen, ohne über die Konsequenzen im großen Maßstab nachzudenken.

Interaction Space, Visualization Space, Display Space

Die Folien dazu sind MIA11-4.pdf, Seiten 3 bis 19, also beinahe die komplette Datei. Zu Anfang wird das Modell allgemein dargestellt, danach kommen Folien, die die einzelnen Teile konkretisieren.

Beim Spaces-Modell handelt es sich, oh Wunder, um ein Modell. Es greift also auch hier alles, was ich oben über Modelle geschrieben habe. Es stellt einen Versuch dar, etwas Fließendes und Kontinuierliches zu diskretisieren und zu beschreiben.

In dem Modell kommen vier Spaces vor: Interaction Space, Display Space, Visualization Space und Internal Model.

Der Interaction Space bezeichnet den Raum, in dem der Benutzer physisch auf das System einwirkt. Die mentalen Vorgänge des Benutzers zählen nicht dazu, ebensowenig wie die internen Vorgänge im System. Zum Interaction Space gehört normalerweise der Körper des Benutzers und sämtliche Steuerungs- und Sensorik-Hardware. Je nachdem, wie die aufgebaut ist, ist es mehr oder weniger leicht, dem Interaction Space eine Dimensionalität zuzuordnen. Wenn ich nur über eine Maus verfüge, dann ist er zweidimensional, ein VR-Handschuh wäre dreidimensional.

Der Display Space ist der Raum, in dem die Ausgabe des Systems stattfindet. Das kann ein zweidimensionaler Monitor sein, aber auch eine dreidimensionale Cave, ein dreidimensionales Richt-Schall-System oder andere abenteuerliche Dinge. Wichtig ist, dass zum Display Space nicht das gehört, was dargestellt wird (das kommt gleich), sondern nur die Hardware, auf der es dargestellt wird.

Der Visualization Space ist nun der Ort, der auf/durch unsere(n) Displays grafisch dargestellt wird. Der kann ebenfalls typischerweise zweidimensional (Desktop) oder dreidimensional (3D-Spiel, VR-Umgebung) sein, andere Dimensionalitäten sind ziemlich selten. Auffallend ist hier, dass man auf einem 2D-Display-Space einen 3D-Visualization-Space (mit Abstrichen in der Immersion) darstellen kann, sowie auch einen 2D-Visualization-Space auf einem 3D-Display-Space (was allerdings allein wegen der Kosten wahrscheinlich kaum jemand macht).

Eng mit dem Visualization Space verbunden ist das Internal Model, was beschreibt, wie das System intern den Visualization Space beschreibt und speichert. Zum Beispiel könnte das System abgesehen von den Raumdimensionen noch weitere Werte als Dimensionalität abspeichern (z.B. Luftdruck in jedem Punkt), die in der Visualisierung so zunächst nicht sichtbar sind. Der Unterschied zum Visualization Space ist, dass das Internal Model alles enthält, was „unter der Haube“ des Systems in der berechneten Welt stattfindet.

Artikulatorische und semantische Distanz

Diese Schlagworte finden sich in ID_11-2.pdf auf Seite 9 (und wie mir scheint auch nur an dieser einen Stelle) im Bezug zu dem Diagramm auf der gleichen Seite.

Die eine Achse des Diagramms ist mit „Direktheit“ beschriftet. Die semantischen und artikulatorischen Distanzen sind Aspekte, die die Direktheit negativ beeinflussen. Greifen wir uns ein paar Beispiele aus dem Diagramm.

Dort stehen Assemblersprachen unter sehr niedriger Direktheit eingeordnet. (Achtung: Gemeint ist hier die Direktheit zu den mentalen Prozessen des Benutzers, nicht zur Arbeitsweise der Maschine.) Assemblersprachen besitzen eine hohe artikulatorische Distanz, da sie vom Denken und Reden des Menschen relativ weit weg sind. Die eigenen Gedanken müssen vergleichsweise mühsam in das krude Vokabular der Assemblersprache übersetzt werden, bevor sie ihre Wirkung entfalten können. Dagegen hat ein Text in einer Fachsprache, die in das Diagramm unter sehr hoher Direktheit eingeordnet ist, idealerweise eine Eins-zu-eins-Entsprechung von den dahinterstehenden Gedanken und den formulierten Worten. Dazwischen steht wenig Übersetzungsaufwand oder „Umdenken“.

Die semantische Distanz meint dagegen eine Kluft zwischen den Möglichkeiten des Agierens. So hat etwa eine virtuelle 3D-Welt mit hohem Immersionsgrad vermutlich auch eine geringe semantische Distanz, weil zwischen meinem Ziel „mich vorwärts bewegen“ und der im System möglichen Aktion „die Kamera bzw. den Avatar vorwärts bewegen“ eine starke Kongruenz besteht. In einem Textadventure muss ich dagegen mein „vorwärts bewegen“ in ein textuelles Kommando übersetzen, dies eintippen und die Rückmeldung verarbeiten. Der Anwendungskontext „Navigation durch eine Welt“ leidet unter der semantischen Distanz zur Funktionalität „Manipulation von Textkommandos“. Ich hoffe dafür steigen mir jetzt keine Textadventure-Fans aufs Dach – ich möchte nicht gesagt haben, dass es keinen Spaß machen kann.

Zu alldem möchte ich anmerken, dass ich das auch nur aus den wenigen Stichworten extrapoliert habe, die auf der Folie stehen. Es kann durchaus sein, dass ich dabei Fehler gemacht habe. Verlasst euch bitte nicht darauf, dass ich die Weisheit mit Löffeln gegessen habe – vor allem falls eure Interpretation von meiner abweicht bin ich sehr interessiert daran.

Meine erste freie Software

2011-12-23 00:35:36

Für Alles gibt es ein erstes Mal. Ich kann mich noch daran erinnern, wie ich das erste Mal einen Programmcode kompiliert habe. Das waren damals Turbo-Pascal-Schnipsel und ich erarbeitete mir im Selbststudium genug davon, um eigene kleine Spiele unter DOS erstellen zu können.

Paradoxerweise programmiere ich trotz Informatikstudium heute eher weniger als damals. Meine Webseite ist im Prinzip mein einziges Bastelprojekt, in dem ich mich austobe wenn ich etwas Erholung vom Universitätsstoff brauche. Ganz ungestört für mich selbst zu entwickeln hat auf jeden Fall seinen Reiz, umso mehr wenn die Besucher meiner Webseite dadurch auch noch tolle neue Features gewinnen.

Erst vor ein paar Stunden hat es für mich noch ein anderes erstes Mal gegeben: Ich habe gerade das erste Mal Quellcode von mir frei lizensiert und veröffentlicht.

Wenn man meine bisherige Programmiererfahrung und meine gut dokumentierte Einstellung zu freien Inhalten im Hinterkopf hat, muss man mich in dieser Sache wohl als so etwas wie einen Spätentwickler bezeichnen. Tatsächlich hat es sich vorher einfach nie ergeben. Außer ein paar Skripten für den Eigenbedarf ist mein einziges Projekt wie schon gesagt meine Webseite, und der Code ist leider insgesamt in keiner Verfassung, dass ich ihn herausgeben und dazu stehen würde.

Die letzten Tage habe ich jedoch basierend auf jQuery eine nette kleine Sache gebastelt, die sich (nachdem ich mich etwas eingelesen hatte) auch ganz gut als jQuery-Plugin abstrahieren ließ. Es trägt jetzt den Namen ReaderBar:

ReaderBar is a jQuery plugin that aims to augment long HTML documents with a few navigational tools. It includes a button to go to the start of the document, arrows for jumping between headers/sections and bookmarking functionality. Along the left side of the document, it shows a “places bar” with quick access to headers and user bookmarks.

Man kann es in der HTML-Ansicht meiner Texte in Aktion sehen, dazu einfach auf einen der Thumbnails klicken (oder einen der HTML-Links). Über Feedback zur Benutzbarkeit würde ich mich, wie immer, sehr freuen.

Das Ganze ist auf GitHub verfügbar. Wer mag, kann sich den Code direkt von dort kopieren oder einfach nur die Entwicklung mitverfolgen. Der gesamte Quellcode steht unter der MIT-Lizenz. JavaScript ist natürlich eine extrem vielseitige und dynamische Sprache. Ich habe nicht viel Erfahrung mit den Konventionen in der jQuery-Community, deshalb ist mein nächstes Vorhaben, mir von dort Feedback zu holen und den Code strukturell so zu gestalten, dass andere Leute in dem Bereich ihn vernünftig lesen können.

Mittelfristig soll es natürlich nicht bei diesem Projekt bleiben. Ich werde mir Gedanken machen müssen, wie ich meine Inhalte auf GitHub sinnvoll mit meiner Webseite verbinde. Vielleicht ist hier mal eine neue Kategorie „Software“ möglich. Aber wie soll die wohl aussehen?

Wisst ihr noch, was eure erste freie Software war? Oder habt ihr eher an bestehenden Projekten mitgearbeitet? Wen von euch findet man denn noch so alles bei GitHub? Ich bin dort jfietkau, vielleicht sieht man sich ja mal.

Mein erstes Video-Tutorium

2011-10-25 00:13:55

Wie einige von euch vielleicht schon wissen, führe ich dieses Semester ein Tutorium zum Thema LaTeX für Studierende des Fachbereichs Informatik durch, das sich zur Hälfte als Video-Tutorial auf YouTube (oder als heruntergeladene Videodatei) abspielt. Ich möchte an dieser Stelle mal erzählen, wie es eigentlich dazu kam.

Der Bedarf für ein LaTeX-Tutorium wurde wohl vom Studienbüro festgestellt und Jan von Soosten kam auf mich zu, ob ich das nicht übernehmen könnte. Ich hatte vorher noch nie eine komplette Lehrveranstaltung eigenständig und eigenverantwortlich durchgeführt, die mir winkende Gestaltungsfreiheit lockte mich letztlich mehr als meine Semester-Arbeitsbelastung mich abschrecken konnte.

Konzept und Ursprung

Seit einiger Zeit schon wollte ich mal ein Video-Tutorium nach Vorbild der Khan Academy durchführen, doch es fehlte immer die Zeit und der Anlass dafür. Diese Gelegenheit verschaffte mir beides.

Die Grundidee der Khan Academy ist die folgende: Die gemeinsame Zeit, die Lehrenden und Lernenden zur Verfügung steht, ist endlich und wertvoll. Im klassischen Modell der universitären Lehre, bestehend aus Vorlesungen und Übungsaufgaben, findet in der Präsenzzeit eine Wissensvermittlung statt, das Einüben und Anwenden des Wissens erledigen die Studierenden allein zuhause oder in kleinen Gruppen. Die Pädagogik predigt schon lange, dass genau jenes Anwenden des Wissens für den Lernvorgang mindestens ebenso wichtig ist wie das Zuhören und Aufnehmen. Warum also nicht mal das Experiment wagen, die Lernenden die Wissensvermittlung in Form von Videos allein zuhause erledigen zu lassen, und in der Präsenzzeit das Wissen anzuwenden und gemeinsam Aufgaben zu bearbeiten?

Wir leben in einer Zeit, in der Audio- und Videodaten ohne unüberwindbare technische Schwierigkeiten weltweit zugänglich gemacht werden können. Bestehende Vorlesungen lassen sich nach Überwindung von ein paar wenigen technischen Hürden prima eintüten und audiovisuell konservieren, das passiert an der Uni Hamburg bereits und findet sehr positiven Anklang bei den Studierenden. Asynchrone Wissensvermittlung kann in dieser Form gut funktionieren und Dinge wie z.B. Lehrbücher sinnvoll ergänzen. Das bestärkt mich in dem Vorhaben, die alte Welt einfach mal um 180° zu drehen und meine Wissensvermittlung in Form von Videos stattfinden zu lassen. Klappt das notwendigerweise besser als das bewährte Modell? Keine Ahnung, aber ist ist auf jeden Fall einen Versuch wert. Ganz nebenbei fällt dabei übigens ein weltweit frei zugänglicher Video-Kurs für LaTeX-Anfänger auch außerhalb unseres Fachbereichs raus.

Let's Learn!

Die konkrete Gestaltung meiner Videos ist allerdings deutlich anders als bei typischen Lecture2Go-Aufzeichnungen. Das, was fast die gesamte Zeit zu sehen ist, ist mein LaTeX-Editor und der dazugehörige PDF-Viewer. Ich habe keine Kamera auf mich gerichtet, aber ich spreche ins Mikrofon und kommentiere, während ich arbeite. Es gibt ein Intro/Outro und einen einprägsamen Titelsong (Creative Commons sei dank: (A) in Mono – Cube-shaped). Diese Gestaltungsmuster und -elemente entstammen der „Let's Play“-Metacommunity auf YouTube. Für alle, denen das nichts sagt: Man nimmt ein PC- oder Konsolenspiel, spielt und kommentiert es und schneidet das Ganze mit. Daraus entstehen dann jede Menge Videos, die zu Serien und Staffeln zusammengefasst werden. Viele Let's-Player geben sich unglaublich viel Mühe damit, ihre Zuschauer zu fesseln und zu unterhalten.

Wahrscheinlich ist das etwas, was für einige Leute sehr unterhaltsam sein kann, während einige andere sich an den Kopf fassen und sich fragen, wie man das spaßig finden kann. Ich persönlich verfolge eine Handvoll Let's-Player auf YouTube und konnte mir für die Gestaltung meiner eigenen Videos dort einige Tricks abschauen. Die Gemeinsamkeiten beschränken sich jedoch nicht nur auf die Gestaltungsmittel, sondern erstrecken sich auch auf die Herangehensweise: Meine Videos haben bewusst nicht den Charakter eines Films oder eines minutiös durchgeplanten Tutorials, sondern ich habe vorher bestenfalls eine grobe Vorstellung davon was ich machen will, lege dann – wie ein Let's-Player – einfach los und schneide alles mit, einschließlich meiner Fehler und Probleme und Situationen, in denen ich keine Ahnung habe, was gerade schiefgeht. So wirkt das Ganze sehr authentisch und spart mir außerdem zusätzlichen Arbeitsaufwand in der Nachbearbeitung.

Eine weitere Inspirationsquelle sind übrigens die Softwareentwicklungs-Vorlesungen von Axel Schmolitzky. Wer die mal besucht hat, weiß wie Axel Live-Code-Demonstrationen einsetzt, um Dinge vorzuführen. Zwischen diesen Episoden und meinen Videos gibt es starke Parallelen.

Und nun?

Es gab auf meine Ankündigungsmail eine ansehnliche Anzahl Rückmeldungen, es wurde ein Termin ausgedudelt und wir treffen uns diese Woche das erste Mal. Übrigens am Freitag von 12:15 bis 13:45 Uhr in C-101, falls jemand noch spontan dazukommen möchte. Wenn dann bitte vorher die ersten zwei Lektionen schauen und den eigenen Laptop o.Ä. mitbringen.

Im Moment ist es noch zu früh, um die Tragfähigkeit des Konzepts zu evaluieren. Technisch kann ich schon mal sagen, dass das bisschen Videobearbeitung auf meinem Linux-Desktop nach etwas Eingewöhnung prima funktioniert, siehe dazu auch meinen Blogeintrag „recordmydesktop and OGV“. Ist jemand an Details zur Nachbearbeitung mit Kino interessiert?

Auch YouTube funktioniert als Kanal anscheinend hinreichend gut, um quasi alle Interessierten zu erreichen. Ich habe mich außerdem mit dem „Community Video“-Bereich von archive.org auseinandergesetzt und werde die Videos über kurz oder lang auch in verschiedenen Dateiformaten dort anbieten, um auch die Leute einzuschließen, die mit YouTube aus technischen, ethischen oder sonstigen Gründen nicht warm werden. Beim Lecture2Go-Team habe ich dieses Mal noch nicht nachgefragt, ob sie die Videos evtl. auch hosten wollen. Mal gucken, vielleicht geht da auch noch was.



vielen Dank für das tolle LaTeX-tutorial!!! Es ist wirklich sehr hilfreich und informativ.

recordmydesktop and OGV

2011-09-20 18:53:02

Just a small heads up to anyone doing any kind of screencast or desktop recording on a typical desktop Linux:

Usually, people will recommend recordmydesktop, which is a very cool program that's available e.g. in the Ubuntu repositories. It works really well and all, but I keep running into walls with the OGG/Theora videos that it produces.

I'm no expert on video encoding, but apparently recordmydesktop does some very fancy optimizations involving variable FPS and stuff like that, so the video files are quite small byte-wise. Unfortunately, this has caused problems for me down the line: I can play the files just fine in Totem (thus, gstreamer) or VLC. But as soon as I try to reencode them, all hell breaks loose.

I tried importing the files into Kino, but they would cut off too early and the framerate would go bananas. I tried reencoding with ffmpeg, only to get playback speed issues. Mencoder didn't help either. Even VLC, which could play the files without problems, would not produce usable results, but would seemingly offset frame rates, so that when there was no movement on screen for any length of the video, in the resulting video it would pause a couple of frames earlier, which was very annoying.

Despite long searches, I wasn't able to find anyone else having the same problem online. So maybe I'm just incompetent and I'm making some obvious mistake. Still, I wasted hours today trying to figure this out, and I still failed.

So if by any chance you run into the same problem some time, just save yourself a lot of grief and use ffmpeg with x11grab instead of recordmydesktop. It has the added advantage that you can directly encode to any format that ffmpeg can do (which is pretty much all of them).

(It almost pains me to admit this, but in the end I used ffmpeg/x11grab to capture my OGV playing in Totem and then re-muxed the audio because I didn't want to re-record it all. In the future I'll probably use x11grab directly.)



I had similar problems. I was able to solve them by fiddling with recordmydesktop's video capture settings. Way bigger files, but I could edit them fine afterwards. Sorry, but I can't recall what I did, right now, but it was something like setting the video mode to progressive and a fixed framerate.


Unfortunately in my (Ubuntu 11.04) version of recordmydesktop, I can't find any such settings. The only thing that seems to be related is the “--full-shots” option, which didn't solve the problem for me... Oh well.


ctrl+alt+shift+r in gnome3 should help you make easily screencasts


In case this will help someone down the line, I now use the following command to capture an area of my screen and my microphone input:

ffmpeg -y -f x11grab -r 24 -s 768x576 -i :0.0+500,110 -vcodec libx264 -crf 22 -threads 0 -f alsa -ac 2 -i pulse -ab 256k video.mp4

Replace H264 with a better and/or more free codec at your leisure.

Texte nun auch als ePub verfügbar

2011-09-09 15:21:06

Ab sofort sind meine Texte neben dem PDF-Format auch noch im ePub-Format öffentlich verfügbar. Ich hoffe, dass ich sie dadurch einem noch größeren Publikum zugänglich machen kann. Falls du einen E-Reader (z.B. ein Kindle), ein Tablet (z.B. ein iPad oder ein Galaxy Tab) oder ein Smartphone zum Lesen verwendest, führt dieses Format evtl. zu einem für dich angenehmeren Lese-Erlebnis.

Also warum nicht die Chance nutzen und einen Blick in paar „Klassiker“ werfen? Die folgenden Arbeiten stehen für dich im ePub-Format bereit:

  • Interaktionsformen in der Blogosphäre
  • Ansätze zur Vereinigung von Komplexität und Benutzbarkeit in Anwendungssoftware
  • Das Teachlet-Konzept: Möglichkeiten und Grenzen einer Lehrform für Software-Entwurfsdiskussionen
  • Modellierung zustandsorientierter Systeme in Java

Sag mir Bescheid, falls bei dir etwas nicht funktioniert oder dir mit den ePubs Probleme auffallen. Ich habe das vorher noch nie gemacht und es kann sein, dass sich Fehler eingeschlichen haben. Vielen Dank an dieser Stelle den Leuten im E-Reader-Forum, die für mich eifrig auf verschiedenen Geräten getestet und mir Feedback gegeben haben.

Was ist eigentlich ein ePub?

Das ePub-Format ist ein Standard für elektronische Bücher. Für E-Reader und andere Lesegeräte mit kleinen Displays sind PDF-Dateien nur eingeschränkt geeignet, da sie das Layout (meist A4) fest vorgeben, so dass entweder die Schrift winzig ist oder eine Zeile nicht auf den Bildschirm passt, so dass man nur am Hin-und-Her-Scrollen ist. Das ePub-Format erlaubt dagegen fließenden Text, der sich an die jeweilige Anzeigesituation anpassen kann. Mehr Infos gibt's wie immer bei Wikipedia.

Abgesehen von der Flexibilität gibt es noch etwas, was ich am ePub-Format mag: Es ist viel, viel leichter als bei PDFs, die Dateien zu bearbeiten. (Es gibt auch DRM für ePub, aber das lasse ich mal außen vor. Betrifft ja meine Dateien nicht.) Das bedeutet, dass es jetzt sehr viel einfacher für dich ist, die dir per Creative Commons zugestandenen Rechte zur Anpassung und Weiterverarbeitung meiner Texte auch tatsächlich wahrzunehmen.

Technisch sind ePub-Dateien kaum mehr als geziptes (X)HTML mit etwas Zucker, also falls dir vorhandene ePub-Editoren wie Sigil dafür nicht reichen, entpack einfach die ePub-Datei, schmeiß vim / emacs / einen Texteditor deiner Wahl an und mach etwas Kreatives aus meinen Texten (unter Beachtung der jeweiligen CC-Lizenz, versteht sich)!

Humble Indie Bundle 3 (inkl. Gewinnspiel)

2011-08-04 21:58:49

In unregelmäßigen Abständen und gerade zum dritten Mal organisieren die Leute von Wolfire Games ein Projekt, das PC-Spiele aus dem Independent-Bereich zusammenbündelt, die dann zum selbstgewählten Preis gekauft werden können. (Ein Anteil des Betrags, dessen Höhe man auch selbst festlegen kann, geht an wohltätige Zwecke.) Alle enthaltenen Spiele sind frei von DRM-Restriktionen und laufen auf Windows, Linux und MacOS X. Das Ganze nennt sich dann „Humble Indie Bundle 3“ und verdient einen genaueren Blick. Außerdem schon mal vorweg: Heute gibt es etwas zu gewinnen!

Humble Indie Bundle 3

Im aktuellen Bundle gibt es einige echte Juwelen. Allein für Crayon Physics Deluxe lohnt es sich eigentlich schon: In dem Spiel geht es darum, Rube-Goldberg-artige Rätsel zu lösen, indem man Objekte mit Wachsmalern in die Welt malt. Das Spiel ist von der Ästhetik her unglaublich gut gelungen und die Lernkurve ist einerseits kindgerecht, lässt aber andererseits auch viel Spielraum zur Optimierung. VVVVVV ist eher etwas für Hardcore-Gamer der alten Schule, ein LoFi-Arcade-Action-Adventure mit dem gewissen Etwas: Statt zu springen, kann die Spielfigur die Richtung der Schwerkraft umkehren und so zwischen Fußboden und Decke hin- und herfallen. Das erschwert sich durch Stacheln und andere typische Fallen. Ein weiteres Muss ist And Yet It Moves, ein weiteres Spiel in dem die Schwerkraft beeinflusst werden kann, was jedoch auf eine völlig andere Weise umgesetzt ist, insbesondere ästhetisch. Die anderen beiden Spiele im aktuellen Bundle, Cogs und Hammerfight, habe ich leider aus zeitlichen Gründen noch nicht spielen können.

Als wäre das noch nicht genug, haben die Macher des Bundles im Laufe der letzten Tage noch ohne Ende Bonus-Inhalt nachgelegt: Jeder Käufer des Bundles erhält außerdem Steel Storm gratis dazu. Wer beim Kauf das jeweils aktuelle Durchschnittsgebot überbietet, erhält außerdem die fünf Spiele aus dem zweiten Humble Indie Bundle, darunter Braid und Machinarium, beides Spiele, die man sich auf keinen Fall entgehen lassen sollte. Obendrauf kommt ein zeitlich bis zum 14. August befristeter Zugang zur Vollversion von Minecraft.

Die wohltätigen Organisationen, die unterstützt werden, sind die Electronic Frontier Foundation und Child's Play, bei denen das Geld sicher gut angelegt ist.

Jetzt habe ich schon viel zu viel geredet. Wer sich lieber einen visuellen Eindruck von den Spielen machen möchte, möge sich am besten das Werbevideo zum Humble Indie Bundle 3 (und/oder das zum zweiten Bundle) ansehen. Weitere Video-Empfehlungen:

Das Humble Indie Bundle 3 läuft nur noch fünf Tage. Überzeugt? Dann schlag schnell zu, oder lies vielleicht doch erst mal weiter...


Weil ich die Idee des Bundles so großartig finde, möchte ich mit dir, lieber Leser, liebe Leserin, ein kleines Gewinnspiel veranstalten. Vielleicht hast du gerade hierfür nicht genug Finanzpolster und möchtest das Bundle nicht dreist für einen Cent kaufen, oder vielleicht hast du keine Möglichkeit für Online-Bezahlung, oder du bist von Haus aus nicht so Gamer-mäßig drauf und bist jetzt zwar neugierig, aber siehst nicht ein, dir den Aufwand zu machen, oder du hast andere Gründe dafür, das Bundle noch nicht gekauft zu haben.

Wenn du zu diesem Personenkreis gehörst, dann möchte ich dir ein Humble Indie Bundle 3 schenken! Es ist einigermaßen großzügig bezahlt und enthält alle oben genannten Extras.

Hier sind die Teilnahmebedingungen: Du bist gewinnberechtigt, wenn du mir in einem Kommentar zu diesem Blogeintrag möglichst überzeugend darlegst, warum ich das Bundle gerade dir schenken sollte. Überzeug mich mit Argumenten, überzeug mich mit Humor, oder überzeug mich irgendwie anders, es ist dir überlassen. Hinterlasse bitte außerdem eine Mailadresse, falls du mich nicht persönlich kennst oder einen anderen Kommunikationskanal zu mir hast. Wenn ich nicht weiß, wie ich dich erreichen soll, dann gewinnst du auch nicht. Am kommenden Samstag den 6. August um 20:00 Uhr ist Anmeldeschluss, danach wähle ich den/die Gewinner/in aus. Das Ergebnis wird noch am Samstag hier verkündet.

Ich hoffe auf deinen Einfallsreichtum!

Nikon: Ich bin Crowdsourcing

2011-08-04 21:58:49

Beachtliche Teile des deutschsprachigen Internetzes reden derzeit über den aktuellen Nikon-Fotowettbewerb. Bei Twitter ist deswegen einiges los, und auch einige meiner blogosphärischen Nachbarn machen kräftig Eigen-(und damit auch Nikon-)Werbung.

Während ich dies schreibe, sind bereits über 35.000 Fotos eingegangen. Dass der Wettbewerb derartig explodiert, damit hatte man wohl nicht mal bei Nikon selbst gerechnet, den zahlreichen Verbindungsabbrüchen und Fehlermeldungen nach zu urteilen...

Aber sei es wie es sei: Heute möchte ich meinem kleinen bisschen Leserschaft nicht vorenthalten, was einige meiner Freunde und Bekannten so zu dem Wettbewerb beigetragen haben.

Wer in der Liste ergänzt werden möchte, der möge sich bitte melden.

Pablos Beitrag
Frei (Pablo Heimplatz)

(1 Beitrag auf Wunsch des Urhebers entfernt.)



Die Werbemenschen von Nikon haben auch das Prinzip einer solchen Werbung verstanden und richtig umgesetzt. Leider gehören die Produkte nicht zu der Preisklasse: „Ich kauf das jetzt mal, um ein Stück Internet zuhause zu haben“. Henkel hingegen hätte das durchaus mit Pril schaffen können, waren aber während des Wettbewerbs zu ungeschickt und konservativ.¹ Gerettet haben sie sich vielleicht mit der Sonderedition.

[1]: Die ganze Story hier (!Vorsicht: „Sozialmedia-Experten“ würg)

Farbrausch zu Besuch

2011-05-06 14:47:06

Es gibt mal wieder einen Grund, sich so richtig auf das KBS zu freuen – denn am kommenden Dienstag den 10. Mai 2011 gibt es dort prominenten Besuch. Zwei Mitglieder von farbrausch erzählen von ihrem Umfeld und ihrem Handwerk.

Wer oder was ist farbrausch?

Das ist farbrausch.

Das auch.

Und das auch.

Farbrausch ist eine Demo-Gruppe, eine der bekanntesten. Das heißt, dass das weltweit so ziemlich die maßgebenden Experten für effiziente Echtzeit-3D-Programmierung sind, oftmals mit prozedural generierten Assets. Die Demos kann man sich herunterladen und auf dem eigenen PC ausführen – aus einer wenige MB oder sogar KB großen Binary entsteht ein wahres visuelles Feuerwerk auf dem Bildschirm, begleitet von atmosphärischer Musik.

Ich freu mich total auf Dienstag und bin sehr gespannt! Wer Interesse an Computergrafik, Medienkunst und verwandten Gebieten hat, den sehe ich hoffentlich am Dienstag im KBS!

  1. debris, rove oder eine andere gute farbrausch-Demo gucken!
  2. Dienstag zum KBS kommen (17 Uhr, C-221 am Informatikum)!
  3. Weitersagen!

Software that I end up avoiding

2011-04-10 20:01:08

Having recently acquired a brand-new smartphone, I'm still fiddling around with the system, installing apps and configuring things. So far I'm really happy with it, a definite step up from my previous cell phone (and that one wasn't even that old).

Imagine my surprise when I found out that the new one has an office app installed on it by the vendor. Inspired by a semi-recent article on OSNews, I'd been wondering what a good mobile office UI might look like, so I was eager to have a look at this one that came free with my phone. It's called ThinkFree Office and supposedly it works really well. Unfortunately I never actually could look at it. How come? Because the EULA is completely friggin' ridiculous. And here's why.

License Agreements

On a newly configured Android phone, one of the first negative things I noticed was that it kind of spams you with license agreements. It seems like there's one for each Google service (like the App Market, Mail if you use it, Maps, or YouTube) and then more for a lot of other apps that use remote services. Generally these work such that you have to agree to them to use the software – if you don't, you don't get to use it.

In my humble opinion, the ones for the Google services are okay. Obviously I'd prefer it if they weren't necessary, but from what I recall they were worded comparatively clearly, not so bogged down with legalese, and fairly agreeable as far as the actual terms go. I try not to leave more data than necessary with Google, but their license agreements didn't give me that much of a bad feeling for using the Android Market, for example.

And then along comes ThinkFree Office.

Some Choice Quotes

To put my rant into the correct perspective, please keep in mind that I am not a lawyer and I have no formal education about EULAs, how they're written and why they're worded as they are. Also, the EULA presented to me is German and I'm translating it on the fly. I'll do my best, but I make mistakes. At any rate, the wording in this blog post is not the exact wording that I'm asked to agree to.

That said, here are a few quotations illustrating why I think that the ThinkFree Office EULA is completely unacceptable:

The software may be used for personal and internal commercial purposes, but not in the operation of a service bureau or to the advantage of another person or commercial entity,

Okay, so let me get my head around this. The gist seems to be that I can use it to write personal stuff, like laundry lists and diary entries. I could probably use it to write this blog entry (theoretically), even if I was making any money off this website, since it's internal use and I'm not running a service bureau, as far as I know. (What exactly constitutes a “service bureau” anyway?)

But wait... if you're reading this blog entry, and you think it's interesting or funny, did I then write it to the advantage of another person? Or is that only financial advantage? I wonder what would happen if I (hypothetically speaking) used it to write a gift coupon for a book for my mother's birthday. Would that be me using it to her financial advantage? My guess is as good as yours.

Finishing the sentence quoted above, we get this gem:

including but not limited to the development of other software.

Sure, I guess that's... wait, what?

Yes, it is explicitly forbidden to use ThinkFree Office for programming.

I started this blog entry with good intentions, but we've already reached the limits of both my goodwill and my imagination. This doesn't even try to make sense. Who wrote that, and what were they thinking? That I might hack ThinkFree Office from within itself, steal it, and sell it as my own? I'm sort of grasping at straws here. Let's leave it at a big fat “WHAT.

You are not allowed to display, publish, modify, rent, lease, lend, sell or share the software or any part of it.

Right, so if I hand someone my phone, I have to be really careful to not let them use your software, because the license grants it to me and to me alone. Right? Or is it coupled to the phone? It doesn't say so, so I'd have to assume it's not.

Is the license agreement considered to be part of the software, anyway? I'm guessing it is. Good thing I haven't agreed to it, so I can still quote it here.

The software is intellectual property of Hancom Inc. and may not be shared with or displayed to any person besides you and other people who have agreed to this license and are registered with Hancom Inc.

Ah, here we go. I guess that clears that up, at least. If anyone here ever borrows my phone, do not open ThinkFree Office. They don't want you to see it. At all.

You have no rights of property concerning the software. You are merely granted a license to use the software under the conditions outlined in this document, and Hancom Inc. reserves all rights not explicitly granted to you.

Even though this reads like satire, it is sadly commonplace these days. I'm not saying that I think it's a good thing to agree to, but compared to some of the other stuff in there, this is almost sane.

This agreement terminates immediately and without notice, if you violate any of the conditions outlined herein.

Translation: If you don't play by our rules, go to hell.

You agree to destroy the software and all copies of it immediately after this agreement terminates.

Translation: And don't even think about coming back.

The software is provided “AS IS” and Hancom Inc. disclaims any liabilities, implicit or explicit, INCLUDING any silent guarantee concerning admissibility, fitness for any particular purpose, or compliance with the law.

Right. I'm not supposed to assume that the software does its job well. Repeat after me: If the software fails to do its job, I will not complain, because complaining is the way of the devil.

Also, if there's any code in there that (unbeknownst to me) does anything illegal, it's totally my fault, because I didn't check beforehand. Oh no wait, there's a whole paragraph further up that I didn't even bother to quote, that forbids me to even try to look at the code by any means (like decompiling or reverse engineering). So I'm not allowed to make sure that nothing can go wrong, but if something does go wrong it's my fault anyway. Gee, ThinkFree Office, I've only known you for a few minutes but it already feels like an abusive relationship.

You acknowledge and agree that Hancom Inc. may change these conditions at any time. By continuing to use the website, content, service and/or your files after such a modification of the license agreement by Hancom Inc. you agree to be bound by the changed agreement.

How do I know? You probably won't notify me, right? Let's say I check for license updates every time I use your software. What if you update them while I'm using it?

Oh well, I'm sure you'll only change the license agreement in minor ways, update the lawyer-speak or whatever. It's not like you'll say I have to pay you 10€ every time I launch your software...

Hancom Inc. reserves the right to at any time start charging a fee for access or usage of the website, content, services and/or your files.

... nevermind. ಠ_ಠ

You agree to take full responsibility for all activities or actions made by a person using your password, regardless of whether they have been authorized by you or not.

If someone bruteforces my password, or hacks your servers and steals it, it's my fault if they then do something bad with it. Riiiight.

Living in a big city, I've had my fair share of crazy people randomly walking up to me and blabbering about something or other. In situations like that, I try to smile politely and nod, while fervently searching for a way to get out of there. You know what? That is exactly what I am doing right now. Smile, and nod...

The agreement then goes on to list a whole bunch of things I'm not allowed to do while using the software. Among those things: saying stuff that's likely to be misunderstood, accessing “inofficial” parts of their website, doing penetration tests (as in network security), using automated tools or anything else that's not a normal web browser (tough luck, blind people!), sending spam mails, reading the headers of TCP/IP packets or e-mails (I swear I am not making this up), and porn.

And that's about it.

Icing on the Cake

Even after all of that, the best part is yet to come.

As I said earlier, ThinkFree Office came with my phone. It's part of the standard load of crapware you tend to get because the software vendors pay the phone vendors to install their stuff and make it non-removable. Yes, I checked, I can't uninstall ThinkFree Office without voiding my warranty.

Remember earlier, when the license agreement told me that I have to destroy the software if I ever break the license agreement? Think about that for a second. I'll be right here.


So did you figure it out? Yes, indeed, if I agree to be bound by those conditions and I ever break them (even accidentally or through no involvement of my own), I am contractually obligated to void my cell phone's warranty. If I were a conspiracy theorist I'd imagine some evil mastermind behind this scheme. “Isn't it glorious?”

I wonder if I could send my phone to the vendor and demand to have this application removed.

The Verdict

Dear Hancom Inc., or whoever is ultimately behind all of this: As I said, I would have loved to take a look at ThinkFree Office. I appreciate that you took the time to develop a cool mobile office application. I'm not someone who says that absolutely everything has to be free software (though I'd certainly prefer it if it was). But there is simply no way I'm ever agreeing to this. No. Effing. Way.

Dear Samsung, loading your phones with artificially unremovable crapware does not get you any brownie points. It does the opposite. I don't know how much money those people pay you to put their software there, but I'm willing to bet it's low enough that I'd gladly pay it on top of the normal price to get a phone without crapware. This is one of the (few, in my opinion) things that Apple consistently gets right. For that matter, Google gets it right too, concerning the Android hardware they sell directly, or so I've heard. So why live in the nineties?



Kennst du schon cyanogenmod? Könnte ne Alternative zur Softwarekonfiguration deines Herstellers sein. Nutze das seit jeher und bin sehr glücklich damit:


weil der Link sonst einfach geschluckt wird: cyanogenmod


Heh, sorry für das mit den Links. Die kannst du nur setzen, wenn du mit einer OpenID angemeldet bist. Hab ich jetzt mal in der Hilfe dazugeschrieben.

Und nein, cyanogenmod kannte ich noch nicht. Leider steht ja mein Telefon nicht in der Liste der unterstützten Geräte, aber ich forsche vielleicht trotzdem mal noch ein bisschen nach. :)

Wird noch besser

„wenn sie dateien in freigegebenen und/oder öffentlichen ordnern speichern, erklären sie sich damit einverstanden, den zugriff auf inhalte dieser ordner für andere benutzer von thinkfree office mobile for android und/oder der öffentlichkeit freizugeben“

Ja nee, ist klar. Absolut inakzeptable Lizenzbestimmungen. Werde es nicht nutzen.

Ganz viele neue Features

2011-03-18 13:27:03

Vor drei Tagen habe ich neue Features versprochen. Nach einem schrittweisen und heimlichen Launch der letzten paar UI-Elemente ist jetzt alles so weit, dass ich mich freuen würde, wenn die Interessierten unter euch es sich ansehen möchten. Dazu sollte ich sagen, dass nicht alle im Folgenden aufgezählten Features erst seit den letzten paar Tagen existieren, aber sie werden alle zum ersten mal hier explizit erwähnt. Hier die Neuerungen in keiner festen Reihenfolge...


Lange war's geplant, jetzt ist es umgesetzt: Ich kann meine Blogeinträge und andere Inhalte nun mit Stichwörtern versehen. Über diesem Blogeintrag steht beispielsweise ein leicht ausgegrautes „Website“ (jedenfalls wenn ihr meine Webseite besucht und nicht den RSS-Feed direkt lest). Ein Klick darauf bringt euch zu einer Auflistung aller Einträge, die mit dem Stichwort „Website“ versehen sind.

Analog zu den Blogeinträgen beziehen sich die Stichwörter auch auf Vorträge und andere auf dieser Webseite hinterlegte Inhalte. Auf den orangefarbenen Eintragsseiten stehen sie allerdings nicht über dem Eintrag, sondern zwischen Beschreibung und Kommentarbereich.

Ein Klick auf die Überschrift in einem dieser Stichwortfelder führt euch zu meiner „tag cloud“, welche alle vergebenen Stichwörter auf einmal anzeigt, wobei sich die relative Größe auf höchst mathematische Weise aus der Anzahl vorhandener Einträge zum Stichwort, verrechnet mit ihrem jeweiligen Alter, ergibt. Die Wolke steht in einer verkleinerten Version auf der Startseite.

Übrigens gibt es für jedes Stichwort auch einen eigenen RSS-Feed, zu finden auf der Seite zum Stichwort unter dem letzten Eintrag oder wahlweise dort, wo euer Browser euch RSS-Feeds der aktuellen Seite anzeigt.

Übersetzungen der Blogeinträge

Diese Webseite war von Anfang an so konzipiert, dass sie Mehrsprachigkeit unterstützt, wenigstens Deutsch und Englisch sollten möglich sein. Meine Vision war, dass ich jeden Eintrag in beiden Sprachen schreiben würde. Für alle Nicht-Blogeinträge tue ich das auch nach wie vor, bei den Blogeinträgen mache ich mir die Arbeit allerdings nur, wenn sie mir sehr wichtig erscheinen oder nur sehr kurz sind.

Für alle anderen Fälle biete ich jetzt automatische Übersetzungen an. Die Idee dahinter ist, dass (obwohl die Übersetzungen teilweise alles andere als perfekt sind) ein englischsprachiger Leser so trotzdem eine bessere Chance hat, mich zu verstehen, als wenn der Text nur auf Deutsch vorliegt. Die Übersetzungen sind derzeit auf der englischen Übersichtsseite meines Blogs zu bewundern und haben dort einen eigenen Link unterhalb der Beiträge, die ich nur auf Deutsch geschrieben habe. Dahinter findet man dann die Übersetzung (Beispiel) mit Warnhinweis.

Normalerweise lese ich mir die nur ein mal durch, um sicherzugehen, dass keine ganz groben Sinnverfälschungen drinstehen. Ich übernehme aber keinerlei Garantie.

Sprach- und Lizenz-Infos

Ich kann jetzt zu den Links, die unterhalb von Einträgen zu Vorträgen, Artikeln oder Media-Dingen stehen, noch zusätzliche Informationen hinzufügen. Das merkt ihr als Besucher vor allem daran, dass jetzt in Form eines kleinen Icons dransteht, wenn eine PDF-Datei, ein Video o.Ä. unter einer freien Lizenz steht (und wenn ja unter welcher), und dass es angezeigt wird, wenn eine Datei oder ein Video in einer anderen Sprache vorliegt als die, in der ihr diese Webseite lest. Da mein Kram momentan so ziemlich komplett auf Deutsch vorliegt, trifft Letzteres bisher nur die englischsprachigen Besucher.


Mein CSS kann jetzt deutlich besser damit umgehen, wenn ihr etwas von meiner Webseite ausdrucken möchtet. Es gibt dann Serifenschrift, keine Hintergrundfarben, keinen Navigationskram und weitere solche Anpassungen. Probiert es gerne mal aus, wenn ihr mögt.


Ansonsten hat's wieder die üblichen kleinen Verbesserungen unter der Motorhaube gegeben, die ich zum großen Teil schon wieder vergessen habe. Ich hab mich u.A. noch mal darum gekümmert, dass auch wirklich alles hier als XHTML 1.1 validiert. Ich hoffe ich hab dabei nichts übersehen.

Wie immer: Bei Fragen, Wünschen oder entdeckten Bugs gerne einfach mal melden.

Sorry wegen der RSS-Feed-Probleme

2011-03-15 23:26:05

Für alle Leser, denen ihre RSS-Reader heute alle Einträge von meiner Seite als neu angezeigt haben: Sorry, ich hab an den Feeds rumgebastelt, das ist dabei versehentlich passiert.

Kommt (hoffentlich) nicht wieder vor und war Konsequenz von Umbauarbeiten, die ein lange benötigtes und von mir heiß erwartetes Feature für meine Webseite möglich machen sollen. Demnächst mehr!

Dealing with Complexity in UI Design

2011-03-11 16:45:04

Auf OSNews ist heute ein von mir verfasster Artikel zum Thema Komplexität grafischer Schnittstellen online gegangen (englisch):

Over the past few decades, the software that enables us to be productive with our computers has become increasingly sophisticated and complex. Today's UI designers are faced with the challenge of devising graphical user interfaces that are easy to grasp and use, yet still provide access to a wide range of features. Here are some ideas about the nature of GUI complexity, followed by a couple of thoughts on simplicity that might just surprise you.

Es freut mich sehr, dass der Artikel bereits jetzt eine interessante Diskussion ausgelöst hat. Ich bin offen für Vorschläge, womit genau sich weitere Artikel dieser Art befassen sollen. Wer möchte, kann das drüben im OSNews-Kommentarbereich mitentscheiden.

Christoffer/ephracis hat dazu bereits eine lesenswerte Antwort veröffentlicht, die ich hiermit weiterempfehle.



Very nice article and I look forward to the next part on techniques.

Fotoshooting mit Flo

2011-01-21 15:51:06

Letzte Woche habe ich (nachdem wir eine ganze Weile für die Terminfindung gebraucht haben) ein wenig mit Flo (und spontanerweise Rolf) die Köpfe zusammengesteckt mit dem Ziel, ein paar gute Fotos für meine Webseite und andere Online-Aktivitäten zu machen.

Zu Flos Bericht brauche ich nicht viel hinzufügen, die Perspektive des Fotografen hat er dort bereits ausführlich und für mich als Laien trotzdem verständlich dargestellt.

Ich find's super von Flo, dass er die Idee so offen angenommen hat. Dass dabei so ein tolles Shooting herauskommt, hätte ich nicht zu hoffen gewagt, als ich ihn damals angesprochen habe: „Hey, hast du evtl. mal Zeit und Lust, ein paar Porträtfotos von mir zu machen, oder kannst du mir einen anderen Fotografen empfehlen?“ – Aus der Situation hat Flo (zusammen mit Rolf) großartige Ergebnisse gezaubert, für die ich mich hier nochmal herzlich bedanken möchte!

Für mich als jemand, der sich hauptsächlich über intellektuelle Leistungen definiert, war es eine merkwürdige Erfahrung, das eigene Äußere so in den Mittelpunkt gestellt zu bekommen. Ich bin vielleicht nicht so kamerascheu wie viele andere Leute (die sich beim Anblick einer Linse reflexartig wegdrehen), aber mehrere Stunden mit dem Posieren und Lächeln zu verbringen war dann letztlich doch ziemlich anstrengend. Zum Glück hat's mit Flo und Rolf durchgehend sehr viel Spaß gemacht, auch wenn ich hinterher echt geschafft war. Ich würde Team Letsch & Boomgarden jedenfalls weiterempfehlen.

Die Ergebnisse finden sich nun außer auf Flos Blog auch auf meiner Festplatte. Ich muss noch mal schauen was genau ich damit mache. Zunächst mal gibt's ein zufälliges kleines Bild von mir auf meiner Hauptseite. Mal sehen, was mir noch so einfällt...



Danke für deine Perspektive – mir hat die ganze Aktion auch viel Spaß gemacht. :)

Umgestaltung der Sprachfunktionen meiner Webseite

2010-12-27 23:01:43

Die Weihnachtstage sind eine Zeit für viele schöne Dinge: alte Freunde treffen, mit der Familie zusammen sein, gut essen, ausschlafen. Ich klinke mich in dieser Zeit gerne ein wenig aus den meisten Uni-Pflichten aus und betreibe ein wenig Programmierung für eigene Zwecke. Die letzten zwei, drei Tage habe ich mich meiner Webseite gewidment und die technische Grundlage für die Internationalisierung generalüberholt.

Wichtige Änderungen

Zuerst vielleicht mal das, was sich für Besucher der Seite ändert. Die auffälligste Änderung: Es gibt keinen „Implizite-Sprache-Modus“ mehr, sondern jeder Besucher befindet sich jederzeit entweder auf der deutschen oder der englischen Version der Seite. (Daran, dass nur auf deutsch verfügbare Inhalte auch auf der englischen Seite auf deutsch angezeigt werden, ändert sich hierdurch nichts.) Ihr merkt das daran, dass ihr beim Besuch der Seite auf eine Subdomain umgeleitet werdet, entweder de.julian-fietkau.de oder en.julian-fietkau.de, je nach Spracheinstellung des Browsers. Umschalten könnt ihr wie gehabt über die Flagge in der Fußleiste.

Die Links sehen ein wenig anders aus. Statt einer Sprachangabe am Ende des Links (früher: „http://www.julian-fietkau.de/blog/en“) wird die Sprache jetzt über die Subdomain spezifiziert (neu: „http://en.julian-fietkau.de/blog“). Analoges gilt für Direktlinks auf Dateien, soweit sie überhaupt zugelassen sind. Der präferierte Link zur Weitergabe ist nach wie vor der mit dem „www“ ohne Sprache, so dass jeder Besucher des Links die Sprache bekommt, die er lieber haben möchte. Jeder Link ist auch mit „www“ statt „de“ oder „en“ möglich und führt dann die entsprechende Weiterleitung durch.

Das ist im Grunde auch schon alles. Ich schreibe mal noch ein wenig dazu, warum ich das gemacht habe und wie das umgesetzt ist. Warnung vorweg: Hier spricht mal wieder hauptsächlich der Programmierer.

Eindeutigkeit von URLs

Ich war schon seit dem Launch dieser Version meiner Seite ein wenig unzufrieden damit, dass gängige Suchmaschinen zunächst die englischen Versionen meiner Unterseiten indiziert hatten und die deutschen dann nur über die explizite Angabe der Sprache verfügbar waren. Es scheint eine schlechte Idee zu sein, per Auswertung der Spracheinstellung mehrere sprachliche Versionen des Inhalts unter der selben URL verfügbar zu machen. Ist zwar schön, wenn Benutzer einfach die Adresse aus ihrem Browser kopieren und verteilen können, aber irgendwie ist diese dynamische Anpassung der Sprache einer URL doch etwas zu nichtdeterministisch für ein funktionierendes Web und geht entgegen der Konventionen.

In der jetzigen Lösung hat jede URL, hinter der Inhalt liegt, eine eindeutige und explizite Sprache. Alle anderen sind Weiterleitungen, die ggf. die Spracheinstellung des Benutzers bei der Auswahl des Weiterleitungsziels berücksichtigen. Das „xml:lang“-Attribut wird nun übrigens auch korrekt gesetzt.

Über HTTP-Statuscodes

Ich stand vor der Herausforderung, die Struktur so zu implementieren, dass die neuen Links alle funktionieren und die alten weiterhin funktionstüchtig bleiben. Man weiß ja nie, wer sich evtl. irgendwelche Bookmarks gesetzt hat oder wo die URLs überall stehen. Dass die alten weiterhin funktionieren, war mir also schon ziemlich wichtig. In diesem Sinne wird jeder Besucher einer alten URL mit expliziter Sprachangabe per „301 Moved Permanently“ auf die neue Adresse weitergeleitet, ohne sich daran großartig stören zu müssen.

Die andere große Frage war, was ich mit den Besuchern einer Seite ohne Sprachangabe jetzt mache. Einfach irgendwelchen Inhalt rausgeben wollte ich ja nicht mehr. Nachdem ich ermittelt habe, ob sie lieber „de“ oder „en“ haben wollen, werden sie deshalb jetzt per „303 See Other“ auf ihre Sprachversion weitergeleitet. Dadurch bringe ich laut Wikipedia im Gegensatz zu einem 301 unter Anderem zum Ausdruck: „The specified URI is not a substitute reference for the original resource.“ Soll heißen: „Hey Besucher! Das, was du angefragt hast, kannst du persönlich am besten stattdessen hier finden, aber das gilt nicht unbedingt für den Rest der Welt gleichermaßen.“

Die verflixten Kleinigkeiten

Ohne allzu sehr über langweilige Interna zu sprechen, kann ich sagen, dass die meiste Zeit mal wieder der Kleinkram verschlungen hat. Ich musste an vielen Stellen die Templates anpassen und vor allem der OpenID-Login war die letzten zwei Tage komplett kaputt. Jetzt sollte hoffentlich alles wieder gehen. Falls ihr über irgendwelche Bugs oder andere Auffälligkeiten stolpert, sagt mir gerne bescheid!

P.S. Noch eine knappe Stunde lang könnt ihr die Weihnachtsdeko bewundern, danach verschwindet sie bis nächsten Dezember.



nettes Konzept, ich hatte bisher nicht die Gelegenheit mich mit den HTTP-Statuscodes auseinander zu setzen, klingt aber sehr spannend. Da werden dich demnächst ein paar Fragen erwarten :P Aber um auch mal etwas Kritik anzubringen: 1) Das OpenID Login Feld sieht unschön aus, wennn man noch nicht eingeloggt ist. 2) Ich finde es immer schöner, wenn der Quellcode dem Anwender auch korrekt eingerückt ausgeliefert wird. Diese Seite soll ja als Vorbild dienen (unterstelle ich dir mal) und da möchtest du auch gern in der Quelltext-Konvention vorbildlich sein ;)

Viele Grüße!


3) Die Zeilenumbrüche hier im Kommentarfeld werden nicht berücksichtigt :/

  1. Hmja, mir gefällt es auch nicht so richtig. Allerdings ist mir keine gute Idee gekommen bisher, wie man das noch sauberer machen könnte. Was würdest du denn ändern wollen?
  2. Du meinst korrekt eingerücktes HTML, so mit einer Einrückungsebene Pro Tag-Verschachtelung? Finde ich realitätsfern, ehrlich gesagt. Meine Templates bauen teilweise darauf auf, dass Quelltextteile an mehreren Stellen eingesetzt werden und dann theoretisch unterschiedlich eingerückt werden müssten. Ich bemühe mich um einigermaßen sinnvolle Strukturierung mit Leerzeilen und rücke mitunter mal innerhalb einzelner Blöcke ein, aber eine dokumentweit konsistente Einrückung ist technisch gar nicht so einfach möglich (höchstens als Ausgabefilter der ganz am Ende noch mal drüberläuft, aber das scheint mir doch CPU-Verschwendung zu sein).
  3. Einzelne Zeilenumbrüche werden ignoriert, das ist By Design(TM) und in Markdown so üblich. Man soll seinen Text ja auch in Editoren schreiben können, die nur eine bestimmte Zeilenbreite zulassen, oder ihn per Mail versenden können, ohne ihn unbeabsichtigt mit Zeilenumbrüchen zu sprenkeln. Einen neuen Absatz machst du mit zwei Zeilenumbrüchen, genau wie auch bei z.B. den meisten Wikis. Falls du ganz unbedingt einen einfachen Zeilenumbruch willst, geht das m.W. mit zwei Leerzeichen am Ende einer Zeile.

Danke für das Feedback, mit weiteren Fragen zur Technik nur immer raus. :)

Bachelorarbeit-Bericht Nr. 23

2010-12-06 21:46:38

Willkommen zum dreiundzwanzigsten und letzten (!) Bericht zu meiner Bachelorarbeit zum Thema Teachlets. Ein Lebensabschnitt geht zuende... Heute ist der große Tag: der Tag der Abgabe, der Tag der Veröffentlichung. In diesem Sinne bin ich hocherfreut, euch ohne weitere Ausschweife präsentieren zu können:

Das Teachlet-Konzept: Möglichkeiten und Grenzen einer Lehrform für Software-Entwurfsdiskussionen (INFDok)

In den letzten paar Berichten habe ich schon ziemlich viel über die letzten Schritte vor dem Veröffentlichen erzählt, deshalb kommen heute folgerichtig Infos zur Abgabe und Veröffentlichung an sich, gefolgt von einem Fazit über diese Berichte.

Wie eine Bachelorarbeit ihren Weg ins Studienbüro findet

Die eigentliche Abgabe der Arbeit war letztendlich ungeheuer unspektakulär. Ich bin heute extra früher aus einer Veranstaltung raus um zur Öffnungszeit des Studienbüros (13 Uhr) dort zu sein, wo ich dann auf Frau Wilsdorf traf, die mir meine drei gebundenen und unterschriebenen Exemplare plus CD-ROM abgenommen hat. (Weil heute Nikolaus ist, hab ich auf jede Arbeit einen kleinen Schoko-Weihnachtsmann geklebt, das fand sie ganz witzig. Danke an Janina für diese lustige Idee!) Nach knapp 15 Sekunden war's das auch schon wieder – keine Fanfaren, kein Konfetti... Naja, jetzt hab ich das ganze Unternehmen jedenfalls komplett hinter mir und kann in Ruhe auf die Gutachten meiner Betreuer warten. Ich hoffe, dass ich mein Bachelorzeugnis auf der Absolventenverabschiedung im Januar bereits bekommen kann – meines Wissens nach gibt es die zwei mal im Jahr, diese wäre dann der „großen“ im Sommer genau entgegengesetzt.

Veröffentlichung einer Abschlussarbeit

Über das pro und contra einer Veröffentlichung einer Bachelorarbeit wurde hier bereits mehrfach diskutiert. Besonders Veröffentlichungen von Vorabversionen sind nicht unstrittig, aber darüber wurde im Zusammenhang mit dem Themenblock Feedback hier schon genug geschrieben. Heute geht es mir um die Veröffentlichung der fertigen Version, wie sie bei mir jetzt erfolgt ist. Denn dagegen spricht in meinen Augen so ziemlich gar nichts.

Ich kann mir zwei Fälle vorstellen, in denen ich es verstehen kann, wenn jemand seine Abschlussarbeit nicht veröffentlichen möchte. Das eine ist eine Arbeit bei einer externen Firma, die gegen eine Veröffentlichung über den nötigen Rahmen hinaus aus Geheimhaltungsgründen Einwände hat. (Ob man sich als Student darauf einlassen möchte, ist die andere Frage, aber wenn es so kommt, dann muss man natürlich konsequent sein.) Das andere ist eine Arbeit, die lediglich mit dem Anspruch auf ein „bestanden“ geschrieben wurde und mit der der Verfasser nie wieder in Verbindung gebracht werden möchte. Ich kenne solche Situationen, in denen ich für eine Studienleistung nur das Nötigste gebe, weil mir das Lernziel am Allerwertesten vorbeigeht, das kann vorkommen. Aber bei einer Bachelorarbeit sollte es die absolute Ausnahmen sein, oder?

Dem gegenüber stehen die vielen Gründe, die eigene wissenschaftliche Arbeit von vornherein offen zu legen, von denen ich nur mal ein paar aufzählen möchte:

  • Leute interessieren sich dafür. Es stimmt wirklich. Seit etwas über einem halben Jahr stelle ich meinen ganzen Kram hier auf meine Webseite und ich bekomme immer wieder Rückmeldungen und Anfragen dazu – größtenteils von Kommilitonen, klar, aber auch schon von Personen aus anderen Teilen Deutschlands und aus anderen Ländern der Welt (!). Leute kommen per Suchmaschine auf meine Webseite, weil sie irgendwas suchen, worüber ich mal einen Vortrag gehalten und die Folien hier online gestellt habe. Das macht mich schon ein wenig stolz. Vor ein paar Wochen bekam ich eine Mail von einem Menschen, der in meiner Seminararbeit „viele interessante Ansätze“ gesehen hatte und mich fragte, ob er mich für einen Job als Softwareentwickler in Hamburg begeistern könne. Viele Studenten glauben, dass sich niemand dafür interessiert, was sie machen – gerade so als ob erst nach dem Studium irgendein Schalter umgelegt wird und man dann „richtige“ Wissenschaft machen kann. Das ist falsch Leute, eure Ergebnisse sind wertvoll!
  • In Zeiten des Internets liegen die Kosten dafür, einen Text zu veröffentlichen, sehr, sehr nahe bei Null. Wer keine eigene Webseite hat, kann immer noch auf externe Unterstützung zurückgreifen, in der Hamburger Informatik z.B. auf INFDok (siehe unten). In der Vergangenheit und bis heute hat die Wissenschaft viel Zeit und Ressourcen dadurch verloren, dass Dinge mehrfach entdeckt und erforscht wurden, weil Leute einfach veröffentlichungsfaul waren. Warum?
  • Der Löwenanteil meines Studiums bezahlt trotz Studiengebühren nach wie vor die öffentliche Hand, also der Steuerzahler. Das geschieht in der Hoffnung, dass ich später mal mit meiner fachlichen Bildung ordentlich etwas für den Standort Deutschland tue, klar. Aber wer mich kennt, weiß, dass ich nicht gerne Schulden habe. Deshalb finde ich es sinnvoll, der Öffentlichkeit schon jetzt zurückzugeben, was ich durch mein Studium erreiche. Meine Bachelorarbeit ist ein handfestes Ergebnis von „wissenschaftlicher Relevanz“, das jeder für weitere, darauf aufbauende Wissenschaft verwenden kann. So sollte der Laden funktionieren.

Weil ich an eine frei zugängliche wissenschaftliche Welt glaube, veröffentliche ich meine Bachelorarbeit unter CC-BY-SA. Dem Thema „Was für Lizenzen gibt es und wofür sollte ich sie verwenden?“ werde ich mal einen eigenen Blogeintrag widmen. Hier nur so viel: Diese Lizenz erlaubt es jedem Leser, das Dokument weiter zu verteilen und darauf aufbauende Arbeiten zu schreiben, solange mein Name dabei genannt wird und die Ergebnisse wieder unter einer solchen freien Lizenz stehen („Copyleft“).


Die Informatik-Bibliothek betreibt einen Volltext-Server für wissenschaftliche Arbeiten, die an unserem Fachbereich entstehen. Dort können auch Studierende ihre Arbeiten veröffentlichen (allerdings nur, wenn ein Professor oder ein wissenschaftlicher Mitarbeiter die wissenschaftliche Relevanz der Arbeit bestätigt). Das ist ziemlich unproblematisch und ich habe das direkt mal in Anspruch genommen. Die Vorteile dieses Services zitiere ich von der Bibliotheks-Webseite:

  • sofortige weltweite Verfügbarkeit der Veröffentlichung ohne Verzögerung durch Herstellung, Druck und Vertrieb,
  • langfristige Archivierung mit einer dauerhaft stabilen und zitierfähigen Internetadresse,
  • kostenlose Publikationsmöglichkeit für den Autor,
  • Volltextsuche über die gesamte Publikation,
  • formale und inhaltliche Erschließung über die Informatik-Bibliothek,
  • bibliographischer Nachweis im Online-Katalog der Bibliothek sowie in überregionalen Bibliotheksverzeichnissen.
  • Für eine Autorin oder einen Autor bietet sich mit INFDok die Chance, ein zentrales elektronisches Volltext-Archiv seiner Publikationen aufzubauen.
  • Alerting-Dienst per RSS-feed über die neuesten Publikationen
  • Schnittstellen zu Open-Access-Suchmaschinen
  • Zugriffsstatistik

Der Spaß ist komplett kostenlos und wird von der Informatik-Bibliothek betreut, die ja ohnehin für ihren entgegenkommenden Service bekannt ist. Die Idee eines OpenAccess-Katalogs finde ich persönlich großartig – und hey, ich bin nicht alleine, siehe OpenAccess-Award 2010. Ich kann nur mit Nachdruck für das Projekt werben und euch ermutigen, eure Arbeiten dort bereitzustellen. Das Bibliothekspersonal berät euch dazu sicher gerne! In dem Zusammenhang möchte ich mich ganz herzlich bei Frau Obernesser bedanken, die sich bereit erklärt hat, die Veröffentlichung der Arbeit heute synchron mit meiner eigenen durchzuführen und auch sonst während des Prozesses immer hilfsbereit war.

Noch ein bisschen Meta

Mit der heutigen Abgabe und Veröffentlichung der Arbeit enden auch die wöchentlichen Fortschrittsberichte. Ich muss sagen, dass ich viel Spaß dabei hatte, die Entstehung zu dokumentieren! Zu Anfang gab es ja Unkenrufe, ob sich das lohnt und ob es überhaupt jemanden interessiert. Ich kann nur sagen, dass ich vorher froh gewesen wäre, wenn schon mal jemand aufgeschrieben hätte, wie das so ablaufen kann. Dass es da Bedarf gibt, hat ja auch der letzte fb18-Thread zum Thema wieder gezeigt.

Außerdem haben die Berichte wirklich dazu beigetragen, mich vor allem in der heißen Phase von Woche zu Woche immer wieder zu motivieren. Die unangenehme Situation, längere Zeit untätig zu sein und dann in Zeitnot zu kommen, konnte ich so glücklicherweise vermeiden. Dazu kommt, dass es mir viel gebracht hat, alles immer wieder zu reflektieren. Ich habe die Berichte genutzt, um mir Dinge vorher zu überlegen und hinterher zu reflektieren und noch weiter zu verbessern. Ich bin mir recht sicher, dass sich das positiv auf die Gesamtqualität der Arbeit ausgewirkt hat. Nicht zuletzt habe ich auch einiges an Feedback von euch, meinen Lesern, bekommen, das mir ebenfalls weitergeholfen hat. Insgesamt habe ich das Schreiben nie als Last empfunden, da ich meist in Form eines einfachen Bewusstseinsstroms alles geschrieben habe, was mir so in den Sinn gekommen ist. Ich tippe noch nicht mal besonders schnell, aber mehr als eine halbe Stunde oder eine Stunde habe ich selten investiert.

Es ist immer schön, wenn wenig Arbeit viel erbringt, von daher ist die Nachahmung ausdrücklich empfohlen. Ich bin neugierig, wie eure Abschlussarbeiten so laufen. Es soll ja auch niemand denken, dass mein Weg der einzig richtige wäre. Wer macht es mir nach?

Auf in die Zukunft

Das Studium geht weiter und die nächste Abschlussarbeit kommt bestimmt. Bis dahin wird mein Blog wieder in unregelmäßigen Abständen mit Inhalten zu Themen befüllt, die mich interessieren. Behaltet diese URL im Auge (oder diese) oder abonniert meinen Feed, damit ihr nichts verpasst. Falls euch das Thema interessiert, lest meine Bachelorarbeit und verteilt sie weiter. Vielen Dank für eure Treue! Man sieht sich!

-- Julian

Bachelorarbeit-Bericht Nr. 22

2010-11-30 16:01:57

Willkommen zum vorletzten Bachelorarbeits-Bericht. Vorweg kann ich schon mal verkünden: Die Arbeit ist erfolgreich finalisiert und gedruckt worden und wurde heute schon mal meinen beiden Betreuern übergeben. Im Studienbüro werde ich sie dennoch wie geplant erst kommenden Montag abgeben, da sie jetzt auf den 6.12. vordatiert ist (der Endspurt ging schneller als geplant).

Drucken und Binden

Am letzten Samstag habe ich mich das erste Mal mit Textsatz für doppelseitigen, gebundenen Druck befasst. Bisher war die Arbeit für Bildschirmlesen und einseitigen Druck optimiert, was natürlich in gebundener Form nicht so viel hermacht. Deshalb habe ich mich mal ein wenig eingelesen – wieder mal ein Thema, mit dem man Wochen verbringen könnte – und einfach mal die Option „twoside“ für mein Dokument gesetzt und ein bisschen herumexperimentiert mit pagestyle und cleardoublepage. Nach einer Weile war ich dann auch zufrieden. Als PDF sieht es beim seitenweisen Durchblättern ziemlich bescheiden aus, aber in der zweiseitigen Ansicht ist es mal echt eindrucksvoll.

Leider habe ich die Bindekorrektur sträflich vernachlässigt, so dass nach dem Drucken und Binden im Innenbereich unangenehm wenig Weißraum ist. Liebe Schreiber von Abschluss- und sonstigen Arbeiten: Bitte denkt an eine geeignete Bindekorrektur, wenn ihr für zweiseitigen Druck setzt. In LaTeX könnte das z.B. so aussehen:


Ich bin fürs nächste Mal jedenfalls schlauer, aber dieses Mal sind die Druckexemplare leider deshalb etwas unangenehm zu lesen. Sehr schade.

Optimieren für digitale Veröffentlichung mit LaTeX

Wenn ich das Dokument hier als PDF bereitstelle, dann nehme ich die Version für den einseitigen Druck, da die auch für den Selbstausdruck am besten geeignet ist – dabei werden die Seiten ja in der Regel bloß locker zusammengeheftet bzw. getackert. Am Bildschirm finde ich diese Variante angenehmer.

Aber die PDF-Publikation bietet noch ein paar Besonderheiten, die für euch evtl. auch ganz interessant sind. In Zeiten, in denen Publikationen zunehmend auch digital erfolgen, sollte man nicht davor zurückschrecken, auch die Vorteile des Mediums auszunutzen.

Hyperlinks mit hyperref: Das erste Paket, das in keiner mit LaTeX erstellten PDF-Publikation fehlen sollte, ist hyperref. Es kann vollautomatisch arbeiten, lässt sich aber auch sehr schön anpassen. Was tut hyperref? Es versieht das Dokument mit internen und externen Hyperlinks. Zum Beispiel ist jede Kapitelüberschrift im Inhaltsverzeichnis im PDF-Viewer anklickbar und führt direkt zum entsprechenden Kapitel. Jedes Literaturkürzel im Text führt zum entsprechenden Eintrag im Literaturverzeichnis, jede sonstige Referenz (z.B. auf Abbildungen oder Tabellen) führt zu ihrem jeweiligen Ziel und jeder Weblink kann durch einen Klick im Browser geöffnet werden. Die knallbunten Rahmen, die hyperref standardmäßig setzt, muss man nicht unbedingt schön finden – sie werden allerdings standardmäßig nicht mitgedruckt und lassen sich auch sonst anpassen oder ganz deaktivieren. Im Ernst, hyperref ist sehr praktisch für Leute, die das Dokument digital lesen, und lässt im PDF-Viewer den „Zurück“-Button vermissen.

Metadaten mit hyperxmp: Bei XMP handelt es sich um ein von Adobe spezifiziertes Format für Metadaten, das in allerlei Container-Formaten zum Einsatz kommen soll, zur Zeit allerdings meines Wissens nach für PDF-Dateien am relevantesten ist. Das hyperxmp-Paket erlaubt es dem geneigten pdfLaTeX-Benutzer, Metadaten in diesem Format zum Dokument hinzuzufügen. Dazu integriert es sich in hyperref, welches ebenfalls eingebunden werden muss. Mit diesem Paket lassen sich nebst Titel, Autor, Stichwörtern usw. auch Urheberrechts- und Lizenzinformationen hinterlegen. Wenn man irgendwann mal aus den PDF-Dateien die Lizenzinformationen automatisiert auslesen möchte, ist es Gold wert, wenn sie in einem solchen standardisierten Format hinterlegt sind und nicht nur irgendwo im Dokument stehen. Bei mir sieht das so aus:

  pdfcopyright={This work is licensed to the public under the
    Creative Commons Attribution Share-Alike 3.0 License.},

Eine explizite Nennung der Lizenz, die im Dokument lesbar ist, kommt natürlich noch hinzu.

Dateianhänge mit embedfile: Hin und wieder würde man gerne beliebige Dateien mit dem Dokument mitliefern, seien es Quelltexte, Bilder, Messdaten oder was einem sonst noch einfällt. Weniger bekannt ist, dass das PDF-Format Dateianhänge unterstützt und dass das embedfile-Paket dieses Feature für pdfLaTeX nutzbar macht. Unter Angabe einiger Metadaten zur Datei (z.B. des MIME-Typs) kann man dann beliebige Dateien an das PDF-Dokument anhängen. Es ist dann Sache des PDF-Viewers, diese Dateianhänge dem Leser anzuzeigen. Mein PDF-Viewer, evince (jetzt auch für Windows erhältlich), tut das über die Seitenleiste, unterhalb des Punktes „Anlagen“. Ich hänge an meine Bachelorarbeit z.B. ein paar Java-Quelltexte an, damit der Leser sie nicht mühsam mit der Maus markieren und kopieren muss um sie zu testen. Ein Doppelklick auf den Anhang öffnet direkt einen „Speichern“-Dialog, das ist doch viel netter.

Dateianhänge mit attachfile2: Auch das Paket attachfile2 erlaubt Dateianhänge, nutzt dafür jedoch ein anderes PDF-Feature, nämlich Annotationen. Damit werden Dateien nicht allgemein an das Dokument angehängt, sondern an einer bestimmten Stelle eingebunden. Das bedeutet, dass man dann in der PDF-Datei so etwas wie anklickbare Icons haben kann (dieses Mal tatsächlich so richtig im Dokument statt als Anhang), hinter denen sich dann eine Datei verbirgt. Die Verwendung von attachfile2 ist nicht ganz einfach, aber nach etwas Einlesen habe ich eine Variante raus, in der meine Datei-Annotationen funktionieren und unterhalb meiner Listings ein Java-Icon angezeigt wird, das anklickbar ist. Das ist auch sehr nett.

In meiner Arbeit habe ich diese Variante mit embedfile kombiniert und meine Quelltexte sowohl als Annotation als auch als Anhang eingebunden. Jetzt liegt der Quellcode zwar doppelt (bzw. einschließlich der textuellen Version im Dokument sogar dreifach) im Dokument, aber die paar hundert Bytes betrachte ich als kleinen Preis für die Aufwertung der Benutzbarkeit.

Alle diese Features sind hilfreiche Verbesserungen der Usability für Leute, die das Dokument digital konsumieren, ohne dabei die Print-Leser zu benachteiligen. Deshalb ermutige ich jeden, der seine Arbeiten auch digital verbreiten möchte, sich mit den Möglichkeiten zu befassen.

Stand der Abgabe der Arbeit, Ausblick

Um den Bogen zurück zu schlagen: Wie oben bereits erwähnt habe ich die Arbeit inzwischen schon in gedruckter Form meinen Betreuern übergeben. Die drei Exemplare für das Studienbüro liegen mitsamt der gebrannten CD noch bei mir zuhause und werden kommenden Montag erst abgegeben. Danach liegt das Prozedere außerhalb meines Einflussbereichs und ich warte nur noch auf die Endnote.

Kommenden Montag (nicht Dienstag) ist es soweit, da gibt es dann die Arbeit hier zu lesen und herunterzuladen. Dazu kommen noch ein paar allgemeine Gedanken und ein Fazit von mir. Und dann, tja, ist es vorbei. Zumindest bis zur nächsten Abschlussarbeit... aber erst mal bis Montag!

Bachelorarbeit-Bericht Nr. 21

2010-11-23 19:25:37

Hier ist der drittletzte Bachelorarbeits-Bericht, ungefähr zwei Wochen vor der endgültigen Einreichung der Arbeit. Viel wird am Text nicht mehr passieren. Ich warte noch auf ein bisschen Feedback, aber ansonsten ist der Rest eher administrativ: ausdrucken, binden, abgeben und so. Heute erzähle ich noch kurz, was im zuletzt entstandenen Kapitel drinsteht, und komme danach zu den bei der Abgabe der Arbeit relevanten Dingen.

Jenseits von Teachlets

Diesen vorläufigen Titel hat das letzte Unterkapitel bekommen, das ich letzte Woche noch geschrieben habe. Das sind tatsächlich noch mal knapp zwei Seiten geworden, auf denen ich gedanklich die absoluten Kernaspekte der Teachlets aus dem Konzept entferne und gucke, was passiert. Teilweise sind dabei ganz interessante methodische Ansätze entstanden, teilweise waren die Ergebnisse aber auch nicht allzu spannend (wir nehmen Teachlets und entfernen die Interaktivität – juchu, wir haben den klassischen Vortrag erfunden...) bis hin zu eindeutigen gedanklichen Sackgassen wie etwa Methoden ohne Teilnehmer.

Von den offenen Enden lasse ich mich aber nicht weiter stören, das Kapitel war ja schon als Bonus geplant und soll lediglich als kleiner Ausblick dienen. Und ganz ehrlich: Inzwischen habe ich auch die Nase voll von der Arbeit. Es hat insgesamt viel Spaß gemacht, aber ich habe einfach keine Lust mehr, noch länger über diesem Text zu brüten, wo er sich für mich schon seit zwei Monaten fertig anfühlt. Naja, nun ist es ja auch fast soweit.


Bei der Anmeldung habe ich den 6. Dezember als Deadline erhalten – der Tag drei Monate nach der Bestätigung der Anmeldung durch den Prüfungsausschussvorsitzenden. Spätestens an diesem Tag muss ich die Arbeit im Studienbüro abgeben, wobei ich auf die Öffnungszeiten achten muss. In meinem Fall, am Montag, geht das z.B. nur vormittags.

Die Abgabe soll in dreifacher schriftlicher und gebundener Form sowie auf CD erfolgen. (Die Prüfungsordnung spricht von einem „geeigneten elektronischen Speichermedium“, in dem Merkblatt des Studienbüros steht, es soll eine CD sein.) Das ist natürlich doof, wenn man seit Jahren keine CDs mehr brennt und die verstaubten Rohlinge längst verschenkt hat. Kapitalismus to the rescue: Bei einer Elektronik-Handelskette in meiner Nähe kann man tatsächlich einen CD-Rohling kaufen (für 70 Cent). Das habe ich gleich mal gemacht. Hoffen wir, dass beim Brennen nichts schief geht...

Die Erklärung, dass ich keine Texte geklaut oder Quellen verschwiegen habe, habe ich auch bereits erstellt, natürlich inklusive Erlaubnis für die Bibliothek die Arbeit in ihren Bestand aufzunehmen. Da ich keine Vorabversionen mehr verteilen werde, habe ich auch schon mal das Dokument ein wenig aufgeräumt: Ich habe den Lizenzverweis und die entsprechenden Metadaten eingefügt und das Wasserzeichen entfernt. Es sieht schon alles ziemlich sauber und final aus.

Das Binden werde ich vermutlich in der Informatik-Bibliothek durchführen, da es dort die Möglichkeit für Studenten gibt, das kostenfrei zu machen. Drei Exemplare muss ich abgeben, dann werd ich wohl noch jeweils eins für meine Betreuer und eins für mich selbst anfertigen. Bei (inzwischen) insgesamt 60 Seiten pro Exemplar sind das immerhin 360 Druckseiten, was von den Kosten her schon wieder nicht zu vernachlässigen ist. Eigentlich hätte ich sie ja auch ganz gerne auf gebleichtem Papier – ich weiß, Un-Öko, aber doch ansehnlicher. Mein kleiner Tintenstrahler wird das allerdings nicht in einem sinnvollen Qualität-Kosten-Maß mitmachen. Ich muss mal herausfinden, was das Informatik-RZ sagt, wenn ich so viel auf dem einen A4-Farbdrucker ausdrucken möchte, den die haben. Preislich ist die Methode vermutlich nicht zu schlagen. Falls die mir nen Vogel zeigen, muss ich mich dafür vielleicht mal nach einem guten aber günstigen Laden umsehen, der das für mich macht. Oder kennt jemand von euch eine bessere Möglichkeit?


Nächste Woche um diese Zeit ziehe ich den Feedback-Schlussstrich. Das heißt, dass Axel nur noch bis dahin Zeit hat, mir Feedback zu geben. Das hat er allerdings auf dem Schirm, ich habe gestern schon eine Mail deshalb von ihm bekommen. Außerdem bekomme ich dankenswerterweise noch Feedback von Jan, auf das ich schon sehr gespannt bin.

Nächste Woche gibt's also einen kurzen Bericht, was ich an Feedback bekommen habe und was ich schon eingearbeitet habe bzw. noch muss. Im Laufe der restlichen Woche passiert dann das Drucken und Binden. Den letzten Bericht kündige ich jetzt schon mal für einen Tag früher an: Es bietet sich an, den allerletzten (versprochen!) Bericht direkt am Montag den 6. zu schreiben. Ich freu mich drauf. Aber erst mal bis nächste Woche!

Bachelorarbeit-Bericht Nr. 20

2010-11-16 21:47:54

Und schon ist wieder eine Woche vergangen, hier kommt der letzte Bericht, der (jedenfalls laut meiner aktuellen Planung) in der letzten Schreibphase meiner Arbeit liegt. Das heißt noch nicht, dass es der letzte Bericht insgesamt ist – ein paar Wochen sind's ja noch, bis ich diese Unternehmung endgültig hinter mir habe. Leider ist in der letzten Woche nicht so sehr viel passiert, zu den verwandten Methoden habe ich bisher keinen guten Zugang finden können. Das Ziel ist jetzt, dass ich das bis zum Wochenende schaffe.

Der erste Eindruck zählt...

...und die erste Seite einer Bachelorarbeit ist typischerweise ein Deckblatt. Nur wie muss so ein Ding eigentlich aussehen? Ich hab noch mal die relevanten Teile der Prüfungsordnung gelesen und dazu rein gar nichts gefunden – es gibt also wohl keinerlei formale Anforderungen. Wie ich schon letzte Woche geschrieben habe, habe ich hier auch so eine PDF-Datei rumfliegen, die „Hinweise für Studien- und Diplomarbeiten“ von SWT enthält (Stand 2003...), aber das sind ja höchstens Empfehlungen.

Die meisten dieser Empfehlungen sind obendrein echte Selbstläufer. Dass auf das Deckblatt der Arbeit auch der Titel der Arbeit gehört, diese Weisheit hätte ich mir vermutlich auch ohne fremde Hilfe erschlossen. Die SWT-Empfehlungen und ich gehen lediglich in zwei Punkten auseinander:

  1. Dort wird empfohlen, die Matrikelnummer auf dem Deckblatt zu platzieren. Welchen tieferen Sinn soll das haben? Dass alle Welt meine Matrikelnummer kennt, die an unserer Uni ständig als pseudoanonymer Identitäts-Schlüssel z.B. in Notenlisten verwendet wird? Wenn ich nicht der einzige Julian Fietkau an dieser Uni wäre, dann gäb's wenigstens überhaupt ein Argument dafür. Aber das bin ich. Von daher: Warum sollte ich meine Matrikelnummer auf meine Bachelorarbeit schreiben? Ernsthaft, wenn mir dafür niemand einen Grund nennt, dann mache ich das auch nicht.
  2. Post- und E-Mail-Adresse. Die Vorstellung, auf meine Bachelorarbeit meine Privatadresse zu schreiben, finde ich aus ähnlichen Gründen etwas lächerlich. Das richtet sich vielleicht eher an Leute, die sowas wie ein Büro an der Uni haben. Den Sinn einer E-Mail-Adresse, den Autor kontaktieren zu können, sehe ich schon eher ein. Aber auch da geht mein Bauchgefühl mehr in die Gegenrichtung, auch wenn ich nicht genau sagen kann wieso. Obwohl ich meine Haupt-Mailadresse erst zwei mal in meinem Leben gewechselt habe, kommen mir Mailadressen so flüchtig und anonym vor, von den Schwierigkeiten mit Klartext-Mailadressdaten im Web ganz zu schweigen. Wie würdet ihr das halten? Ich neige dazu, sie nicht mit anzugeben. Zum Glück bin ich nicht (mehr) besonders schwer im Web zu finden, von daher sollte das das kleinere Problem sein.

Übrigens enthält mein Deckblatt jetzt die schöne Formulierung „Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science. (B.Sc.)“. Das stand auf fast allen Vorlagen, die ich so gefunden habe, und verleiht der Unternehmung irgendwie so einen leicht gediegenen Anstrich. Außerdem bringt es noch mal den offiziellen Sinn und Zweck der Arbeit auf den Punkt. Ich hab's also mal mit aufgenommen.


Jetzt heißt es noch ein paar Tage aktiv sein, voraussichtlich noch bis einschließlich des Wochenendes. Danach soll das Ding endgültig stehen. Feedback von Axel kommt dann hoffentlich noch rechtzeitig, was evtl. noch mal kleinere Veränderungen nach sich zieht, allerdings mehr im Rahmen von einzelnen Formulierungen etc. statt komplett neuen Abschnitten – irgendwann ist ja auch mal Ende der Fahnenstange. Vielleicht gibt es auch noch kurzfristig Rückmeldungen von anderen Leuten, denen ich diese Version der Arbeit dann schicke, ein paar Interessensbekundungen sind ja doch zusammengekommen. Aber da rechne ich nicht mit irgendwelchen Wundern.

Konkret für den nächsten Bericht heißt das also: Dienstag kann ich erzählen, ob ich meinen Plan einhalten und alles schaffen konnte oder nicht. Wenn ja, dann kann ich evtl. etwas Inhaltliches über diesen letzten ausstehenden Abschnitt schreiben. Bis dann!

Bachelorarbeit-Bericht Nr. 19

2010-11-09 17:55:37

Willkommen zurück zum aktuellen Bachelorarbeits-Bericht, heute zur Abwechslung mal ein paar Stunden früher. Dieser wird vermutlich der viertletzte sein, da ich die Arbeit am 6. Dezember spätestens abgeben muss. Das schreit doch eigentlich nach einer neuen Zeitplanung. Aber vorher gibt es eine allgemeine Statusmeldung.


In den letzten paar Tagen habe ich auf vier bis fünf Seiten (inkl. einiger Abbildungen) wie vor zwei Wochen angedeutet einen ausführlichen Teachlet-Ablauf dargestellt. Das sollte beim ersten Lesen vor allem Teachlet-Neulingen dabei helfen, eine Vorstellung vom Konzept zu bekommen. Dieser Punkt der Liste ist also abgehakt.

Die typische Rolle des Klassendiagramms in Teachlets habe ich jetzt auch besser erklärt, und zwar im Abschnitt über das Durchschnitts-Teachlet. Dort ergibt das in meinen Augen am meisten Sinn, da die Erarbeitung von Klassendiagrammen an der Tafel keine Teachlet-Vorschrift ist und nichts mit der Definition zu tun hat, sondern eher eine Tradition aus der Teachlet-Werkstatt ist.

Außerdem habe ich mir ein Beispiel für ein Teachlet ausgedacht, das ohne Ausgangssystem auskommt. Ich habe beschrieben, wie ein Teachlet zum Beobachtermuster aussehen könnte, in dem ein System in BlueJ von Grund auf entwickelt wird. Das Beispiel sind Kameras, die automatisiert einen Fußball verfolgen können – die Vorstellung fand ich ganz amüsant. Um den Code in den Anhang zu packen, konnte ich nun auch doch wieder meine Erfahrung mit Listings und PDF-Dateinanhängen in LaTeX gebrauchen.

Was Stilistisches und Kleinigkeiten angeht: Axel hatte ein paar Formulierungen angemerkt, die mir nicht so gut gelungen waren, die habe ich jetzt korrigiert. Im Glossar hatte ich die „Code-Inspektion“ vergessen, dieser Begriff wird nun auch erklärt. Außerdem habe ich noch ein altes Problem gelöst, das ich, glaube ich, vor langer Zeit hier schon mal erwähnt habe: In meinem großen Diagramm unterscheiden sich die Flächen bisher lediglich nach Farben, was das Ganze in einem schwarz/weiß-Ausdruck komplett unverständlich macht. Deshalb habe ich zusätzlich zu den Farben noch eine Schraffur eingeführt, die hoffentlich auch in einer graustufigen Welt eine Unterscheidung der Kategorien ermöglicht. Für Leute mit Farbsehschwäche ist das bestimmt auch nicht ganz verkehrt. Nebenbei bemerkt war das mit Inkscape deutlich (deutlich!) mehr Arbeit, als ich sinnvoll gefunden hätte. Gibt's hier Inkscape-Hacker, die dafür einen Weg kennen, der keine zwei Stunden dauert?

Das Dokument ist insgesamt auf 56 Seiten bei stolzen 820 KB angewachsen.

Vier Wochen verbleiben, was steht noch an?

Ich muss mich immer noch informieren, ob mein Deckblatt alle wichtigen Informationen enthält und die formalen Anforderungen erfüllt. Ich glaube, da gibt es nicht so das definitive Dokument – die Prüfungsordnung nennt wohl Daten, die draufstehen müssen, und es gibt Richtlinien für Seminararbeiten von SWT, die auch noch mal etwas dazu sagen. Das muss ich in der nächsten Zeit mal konsolidieren.

An möglichen inhaltlichen Punkten habe ich jetzt nur noch einen auf meinem Zettel:

  • Teachlet-verwandte Methoden beschreiben: Am Ende der Arbeit werden einige Kernpunkte als für Teachlets unverzichtbar bewertet. Vielleicht lassen sich hieraus Ideen für Teachlet-ähnliche Vorgehensweisen finden, die ich dann kurz beleuchten könnte. Das sollte wohl möglich sein, auch wenn ich dazu wohl nicht mehrere Seiten schreiben werden – ist ja eigentlich irgendwie auch nicht mehr Teil meines Themas. Aber mal sehen.

Das könnte noch mal zu ein paar Seiten Text führen. Ich hoffe, ich kann das rechtzeitig schreiben und noch Feedback dazu bekommen.

Eine neue Zeitplanung

Unmittelbar vor dem Abgabetermin habe ich glücklicherweise ansonsten nicht viele speziellen Aufgaben in irgendwelchen Lehrveranstaltungen. Das sollte mir ausreichend Möglichkeit geben, in den letzten Tagen etwas Pufferzeit freizuhalten. Auf das ausführliche Korrekturlesenlassen muss ich leider möglicherweise verzichten, aber laut Aussage von Axel ist mein Text sprachlich auch weitgehend unproblematisch. Okay, da achte ich beim Schreiben auch schon mehr auf Kleinigkeiten als bei einem Blogeintrag wie diesem.

Wagen wir mal den Versuch einer Zeitplanung für den letzten Monat:

  • von jetzt bis ca. 20. November: ausstehende Schreibarbeit
  • danach bis 30. November: Feedback von Axel und ggf. von anderen Interessierten
  • vom 1. bis zum 5. Dezember: Pufferzeit, Drucken und Binden
  • 6. Dezember: Abgabe der Arbeit

Das klingt für mich ganz machbar. Ich muss mich zwar jetzt noch mal zusammenreißen, aber der Bachelor wird einem halt nicht geschenkt.


Nächste Woche um diese Zeit melde ich mich wieder mit dem Stand der restlichen Arbeit, die ich bis dahin geschafft habe. Ich bin selbst gespannt, wie gut das klappt. Wer Ende des Monats eine letzte Vorabversion zwecks Feedbacken haben möchte, kann sich gerne schon jetzt melden und wird dann berücksichtigt. Ansonsten bis nächsten Dienstag!

Bachelorarbeit-Bericht Nr. 18

2010-11-03 14:54:53

Dieser Bericht kommt etwas später als geplant, da ich gestern Abend recht lange unterwegs war. Wie bereits letzte Woche vermutet, gibt es allerdings auch nicht so viel zu erzählen. Wegen anderweitiger Verpflichtungen ist an der Arbeit seit letztem Dienstag nämlich noch nichts passiert, daher gibt es heute nur den Bericht zum Vortrag gestern.

Vortrag im Oberseminar

Die Wiederholung meines Kolloquiumsvortrags ist gut über die Bühne gegangen. Mit ein, zwei neuen Folien im Gepäck konnte ich dank der Diskussionsfreudigkeit der SWT-Belegschaft die 90 Minuten bequem mit einem 30-Minuten-Vortrag füllen. Dabei sind für mich keine nennenswerten neuen Erkenntnisse zustande gekommen, aber ich hatte den Eindruck, dass ich einigen Leuten einen guten Eindruck von Teachlets vermitteln konnte – auch wenn der Vortrag sicher nicht perfekt war.

Übrigens war der Laden relativ voll, obwohl ich dieses Mal deutlich weniger Werbung gemacht hatte. Man merkt doch, dass der Termin zugänglicher ist, wenn er nicht in der vorlesungsfreien Zeit liegt. Übrigens: Vielleicht wird es in den nächsten Tagen bei Tien ein, zwei Sätze aus Publikumsperspektive zu lesen geben.

Insgesamt habe ich den Vortrag als gelungen empfunden und bereue trotz Freiwilligkeit nicht, mir dafür etwas Zeit genommen zu haben.

Das war's schon wieder

Nächste Woche gibt es mit einiger Sicherheit neue Ergebnisse zur eigentlichen Arbeit. Trotz weiterer anstehender Vorträge sollte ich ab jetzt nämlich etwas mehr Zeit dafür haben als bis gestern. Bis dann!

Bachelorarbeit-Bericht Nr. 17

2010-10-26 21:55:25

Hallo und willkommen zu einem neuen Wochenbericht. Heute erzähle ich von meinem Gespräch mit Axel über die Möglichkeiten, die Arbeit noch zu verbessern. Entgegen meiner bisherigen Planung sind noch ein paar nicht ganz unaufwändige Punkte aufgetaucht, die Aufmerksamkeit bedürfen. Außerdem gibt's noch mal den Hinweis auf die Wiederholung meines Vortrags.

Neue Ziele

Am Freitag habe ich mich mit Axel zusammensetzen können. Er hat einigen Atem darauf verwendet, mir wiederholt zu versichern, dass er die Arbeit ohne Frage bereits für sehr gelungen hält. Trotzdem gibt es noch ein paar Dinge, die nicht perfekt sind:

  • Der Einstieg könnte noch einfacher und anschaulicher sein. Ich erläutere die Idee recht abstrakt und starte dann gleich in die Begriffsklärung. Dies ließe sich noch sanfter gestalten, indem ich ein ausführliches Beispiel bespreche.
  • Der konstruktive Teil der Arbeit (alles ab der Definition) ist evtl. noch ein bisschen zu mager. Die Begriffsbewertung ist eine gute Sache, könnte aber noch zusammen mit dem Kapitel über die Teachlet-Variationen weiter ausgestaltet werden: Es könnten noch Konstruktionen beschrieben werden, die nach der Begriffsbewertung keine Teachlets mehr sind, sondern lediglich ähnliche Lehrformen.
  • Übergeordneter Punkt: Die Gesamtlänge ist für eine Bachelorarbeit einigermaßen streitbar. Axel bestätigt mir, dass die Arbeit bereits jetzt eine runde Sache ist und an sich inhaltlich nicht länger sein müsste. Diese Meinung würde allerdings potenziell nicht jeder teilen. Für die Bewertung etc. wäre es gut, wenn die Arbeit ein paar Seiten mehr hätte. Dies kann hoffentlich durch die vorherigen zwei Punkte erreicht werden.

Der Rest waren ein paar kleinere Punkte zu einzelnen Formulierungen.

Ich habe nun also doch noch so richtig etwas zu tun – nur noch kleine Korrekturen zu haben, war von mir wohl doch zu viel gehofft. Ich könnte natürlich die Arbeit in der jetzigen Form abgeben, ohne dass mir das das Genick bricht, aber ich mache ja nicht so gerne halbgare Sachen. Deshalb werde ich wohl doch noch mal etwas Zeit da reinstecken und ein paar Seiten Text produzieren. Etwas mehr als einen Monat habe ich ja noch.

Eine detaillierte Zeitplanung mache ich mir jetzt allerdings nicht. Für das neue Semester habe ich noch nicht so richtig meinen Rhythmus gefunden und kann noch nicht sagen, wann schematisch in meiner typischen Woche gute Zeitfenster liegen. Allzu viel Zeit habe ich nicht mehr, daher ergibt sich schon aus der Dringlichkeit, dass ich mich jetzt in meiner vorhandenen Freizeit darum kümmern werde.

Vortrag zur Bachelorarbeit

Nächsten Dienstag im SWT-Oberseminar (02. November, 16 Uhr, D-220) stelle ich meine Arbeit ein zweites Mal vor. Wer den ersten Vortrag verpasst hat oder eine leicht erweiterte Version sehen möchte, ist herzlich eingeladen. Die Idee eines kurzen Demo-Teachlets stand zwar im Raum, ich habe mich aber mangels Vorbereitungszeit dagegen entschieden. Stattdessen halte ich den bewährten Vortrag und gehe auf ein paar Einzelaspekte etwas genauer ein, die letztes Mal wegen der Beschränkung auf 30 Minuten zu kurz gekommen sind. Schließlich ist dieser Vortrag freiwillig und unbenotet, und irgendwo muss ich ja Prioritäten setzen.

Also: Ich hoffe ich sehe euch nächsten Dienstag in D-220!


Inwieweit ich bis Dienstag vorankomme, kann ich wegen eines anstehenden Wochenendseminars noch nicht sagen. Mit großen Fortschritten bis dahin rechne ich nicht. Es hängt ein bisschen vom Verlauf des morgigen Tages ab, wie gut ich die anstehenden sonstigen Aufgaben schaffe und ob noch etwas Zeit für die Bachelorarbeit bleibt. Auf jeden Fall gibt es aber nächsten Dienstag hier einen Eintrag. Bis dann!

Bachelorarbeit-Bericht Nr. 16

2010-10-19 22:21:35

Willkommen zurück zum sechzehnten Bericht über meine Bachelorarbeit. Heute fasse ich mich mal wieder vergleichsweise kurz. Ich erzähle etwas über die Ergebnisse der Feedbackphase (oder vielmehr: die Abwesenheit von Ergebnissen) und über die Wiederholung meines Vortrags.

Feedback einholen

Es ist immer toll, zur eigenen Arbeit konstruktives Feedback zu bekommen. Früher war ich, wie viele andere, eher unempfänglich für Kritik an meinen Projekten. Das hat sich inzwischen geändert, ich freue mich über jeden Verbesserungsvorschlag. Dabei macht sich bemerkbar, dass es gar nicht so einfach ist, Feedback zu bekommen. Im Gegenteil, ich bitte ständig um Feedback und bekomme nur sehr selten verwertbare Infos. So leider auch zu meiner Bachelorarbeit.

Ich habe eine gute Anzahl Leute angeschrieben und um Feedback zu einer Vorabversion meiner Arbeit gebeten. Zurückgemeldet haben sich davon eine Person schriftlich und zwei mündlich. Das Ergebnis für mich war die Korrektur eines einzelnen Grammatikfehlers sowie die Kenntnisnahme des unscharfen Eindrucks eines Lesers, der Text sei insgesamt zu kurz („für eine Bachelorarbeit“, schien mir die unausgesprochene Ergänzung zu sein). Inhaltliche Anmerkungen gab es keine.

Gebracht hat mir das also weniger als erhofft. Immerhin hat es sich als die richtige Entscheidung erwiesen, mit dem Feedback von Axel nicht bis jetzt zu warten. Das bekomme ich allerdings übrigens auch „erst“ Freitag – gelesen hat er die Arbeit wohl schon, kann aber erst Freitag eine Besprechung zeitlich unterbringen. Es ist der Beginn der Vorlesungszeit, das ist für einen vielbeschäftigten Dozenten sicher nicht weniger stressig als für mich – übelnehmen will ich ihm das dementsprechend überhaupt nicht. Dennoch lässt es mich an der Ausgestaltung der Vision einer iterativen Vorgehensweise mit kurzen Feedbackzyklen doch stark zweifeln. Im Moment habe ich noch keine Ahnung, was sich am Freitag bei dem Gespräch ergeben wird und ob ich noch viel schreiben muss in den nächsten Wochen. Ehrlichgesagt hoffe ich, dass es sich in Grenzen hält, da ich dieses Semester einen ganzen Batzen Seminarvorträge vorzubereiten habe (ich zähle gerade insgesamt fünf). Mal sehen.

Ergebnisbericht: Runde 2

Zum SWT-Oberseminar kann ich dieses Semester aufgrund parallel liegender Veranstaltungen zwar nicht ständig gehen, aber dennoch werde ich dort am 2. November noch mal meinen Vortrag in etwas ausführlicherer Form halten. Wer den ersten verpasst hat und ihn gerne hören möchte: Das wird wohl die letzte Chance sein.

Das Oberseminar findet dienstags um 16 Uhr in D-220 am Informatikum statt. Ich würde mich über zahlreiche Besucher auch diesmal sehr freuen!


Nächsten Dienstag gibt es – endlich – das Feedback-Ergebnis von Axel hier zu lesen. Ich weiß, ich verspreche es schon seit Wochen. Aber ich wüsste nicht, wie es dieses Mal noch schiefgehen sollte. Aus Art und Umfang des Feedbacks wird sich dann die weitere Planung ergeben. Also bis dann!

Bachelorarbeit-Bericht Nr. 15

2010-10-13 09:51:58

Diese Woche begrüße ich euch wieder mit einiger selbstverschuldeter Verspätung, dafür bitte ich um Entschuldigung. Hoffentlich konnte der letzte Blogeintrag zu einem etwas entspannteren Thema die Zeit überbrücken. Heute gibt es zunächst mal Infos zu den aktuellen Entwicklungen, was nicht viele sind. Danach gibt's ein paar Tipps, die ich wichtig finde und die mir evtl. geholfen hätten, wenn sie mir jemand vor einem halben Jahr gegeben hätte. Vielleicht ist ja etwas Nützliches dabei.


Die Phase für offenes Feedback geht noch bis einschließlich übermorgen. Leider gibt es bisher keine Rückmeldungen, jetzt warte ich noch ab, ob sich kurz vor Ende noch jemand meldet. Axel hat zugesagt, die Arbeit Anfang nächster Woche noch mal mit mir zu besprechen. Ich bin gespannt, ob es noch viel zu verbessern gibt.

Danach folgt dann noch eine redaktionelle Phase. Wenn die inhaltliche Arbeit abgeschlossen ist, kümmere ich mich um Dinge wie die Korrektur von Tippfehlern, Verbesserungen von Formulierungen und einen ordentlichen Textsatz. Gerade bei letzterem nimmt LaTeX mir natürlich schon viel Arbeit ab, aber an einigen Stellen muss ich mit Sicherheit noch von Hand korrigieren.

Eine Bachelorarbeit zum Erfolg führen

Wahrscheinlich ist die interessanteste Frage für jemanden, der selbst bald eine Bachelorarbeit schreiben möchte, wie man sich den Aufwand gut einteilt und alles innerhalb der gesetzten Zeiträume schafft. Diese Fähigkeit wird ja niemandem in die Wiege gelegt. Zu hoffen ist, dass das während des Studiums schon mal im kleineren Rahmen (Proseminar, Seminar, Berichte zu Praktikum und Projekt etc.) geübt worden ist. Trotzdem möchte ich gerne ein paar Hinweise loswerden, wie ich die Arbeit angegangen bin und was mir geholfen hat, gut genug im Zeitplan zu bleiben.

Habe zu jedem Zeitpunkt einen aktuellen Zeitplan. Ich habe mir noch bevor das Thema feststand einen Kalender geschnappt und eingetragen, wann ich Zeit für die Bachelorarbeit habe und wann andere Termine sind, die in dem geplanten Zeitraum liegen. Außerdem habe ich mir schon überlegt, wann mir vom Studium her die „offiziellen“ drei Monate am besten in die Planung passen. Dass sich die Umstände später noch ändern und Termine sich verschieben können, stimmt natürlich, sollte aber nicht dazu führen, die Planung von vornherein komplett aufzugeben. Um Axel zu paraphrasieren: Einen Plan zu ändern ist das geringste Problem, wenn man erst mal einen Plan hat.

Sei flexibel, aber setze Prioritäten. Die Crux beim Zeitmanagement ist, dass normalerweise ständig neue Aufgaben und Termine dazukommen. „Nächste Woche habe ich mehr Zeit“ ist fast immer ein Trugschluss. Eine gewisse Dynamik ist in der Terminplanung nicht zu vermeiden, besonders, wenn man sich noch auf andere Leute einstellen muss. Dennoch muss jederzeit klar sein, wie wichtig dir der Fortschritt der Bachelorarbeit im Vergleich zu anderen Dingen ist. Da es sich um eine beachtliche Arbeitsleistung handelt, müssen mit Sicherheit irgendwo Abstriche gemacht werden. Bei mir war es so, dass ich im Sommer noch andere Aktivitäten hatte, die dazu geführt haben, dass der Start meiner Bachelorarbeit eher schleppend lief. Das Thema stand schon lange fest, aber ich habe kaum daran gearbeitet, weil es zunächst mal Dringenderes gab. Danach lief die Arbeit aber auch so richtig an und ich habe dann andere Dinge vorerst auf Eis legen müssen, was sich z.B. leider für die Informatik-OE bemerkbar gemacht hat. Vor allem im August und September war es dann so, dass ich die Bachelorarbeit als meine wichtigste Aufgabe gesehen habe und andere Dinge teilweise fallengelassen habe.

Suche und halte den Kontakt zu deinem Betreuer. Seine Aufgabe ist, dir alle nötigen Hilfeleistungen zu geben, um eine gute wissenschaftliche Arbeit schreiben zu können. Außerdem, machen wir uns nichts vor: Deine Betreuer werden die Note festlegen, die am allerwichtigsten für den Bachelor-Abschluss ist. Lass dich deshalb nicht mit halbgaren Auskünften und Vertröstungen abspeisen. Mit dem Erstbetreuer solltest du von Anfang an einen engen Kontakt pflegen und dir zu deinem Fortschritt regelmäßig Feedback holen. Manche Personen haben einen Hang zu der Vorstellung, wochenlang im stillen Kämmerlein an etwas Tollem zu arbeiten, um hinterher als Superheld mit der fertigen Wunder-Arbeit aufzutauchen. Manche Betreuer fördern diese Vorstellung, indem sie sich des kontinuierlichen Kontaktes entsagen um eigene Zeit zu sparen. Allerdings sagt die Erfahrung, dass der Standard-Bachelorarbeit-Schreiber damit auf die Nase fällt, weil es eben die erste „richtige“ wissenschaftliche Arbeit ist. Ich hatte zwischendurch immer wieder die Situation, dass ich nicht wusste, ob ich etwas richtig mache oder ob etwas so geht, wie ich mir das vorstelle. Genau für solche Fragen ist der Erstbetreuer da. Triff dich regelmäßig mit ihm, mindestens alle zwei bis drei Wochen, und halte zwischendurch Kontakt, z.B. per Mail. Bei jedem Treffen mit deinem Betreuer sollten, zusätzlich zum Inhaltlichen, auch die folgenden Fragen besprochen werden:

  • Ist der Fortschritt seit dem letzten Treffen zufriedenstellend? Muss die Zeitplanung angepasst werden?
  • Gibt es Verbesserungsmöglichkeiten für die Arbeitsweise?
  • Klappt die Zusammenarbeit auch weiterhin? Sind Schreiber und Betreuer beide miteinander zufrieden oder gibt es Klärungsbedarf?

Falls jemand in das Thema tiefer einsteigen möchte: Axel hat dazu ein Paper veröffentlicht, das ich sehr empfehlenswert finde. Es ist so gedacht, dass man es mit dem Betreuer durchspricht und schaut, welche der Patterns man umsetzen möchte. Man kann es sich bei SWT herunterladen: Patterns for Supervising Thesis Projects (PDF)

Mache dich schlau über Formalia und den bürokratischen Prozess. Frage Studenten aus höheren Semestern aus, wie sie ihre Bachelorarbeit geschrieben haben (idealerweise findest du welche, die bei dem gleichen Betreuer waren wie du). Lies die Prüfungsordnung und die Fachspezifischen Bestimmungen, da stehen u.A. die Fristen und Regelungen drin. Informiere dich, wann du welchen Antrag und welches Protokoll wo abgeben musst. (Hint: Anmeldung der Arbeit mit Unterschrift von beiden Betreuern zu Beginn der Arbeitszeit, Protokoll des Kolloquiums mit deinen Daten vorausgefüllt zum Kolloquium, Abgabe der Arbeit wenn sie fertig ist mit den nötigen schriftlichen Erklärungen von dir.) Suche nach Richtlinien für Artikel und Seminararbeiten für den Arbeitsbereich deines Betreuers.

Motiviere dich, indem du Andere mitreißt. Überlege dir, wen deine Arbeit interessieren könnte, und beziehe diese Leute mit ein. Du musst sie alleine schreiben, aber das heißt nicht, dass Ideen und Feedback von möglichst vielen Seiten verboten wären – im Gegenteil. Mache dir Gedanken, wie du nebenbei anderen Leuten etwas Gutes tun kannst. Vielleicht schreibst du ja auch solche Berichte wie ich hier. Gerade in den trockeneren Phasen kam ein guter Teil meiner Motivation daher, dass ich meine Arbeit nicht nur für mich schreibe, sondern auch für alle Teachlet-Interessierten dieser Welt und für die dutzenden Leute, die diese Berichte mitlesen, weil sie sich für die Entstehung meiner Bachelorarbeit interessieren. Informiere dich über OpenAccess. Falsche Bescheidenheit ist kein guter Grund, deine Arbeit auf deiner Festplatte vergammeln zu lassen. Freier Zugang zu Wissenschaft verbessert die Welt, also mache deine Wissenschaft frei zugänglich.


Ein paar Tage heißt es noch „warten“, dann gibt's mindestens das Feedback von Axel und vielleicht noch mehr. Nächsten Dienstag werde ich die Feedback-Phase resümieren und erzählen, woran ich im Einzelnen noch arbeiten möchte. Womöglich gibt es dann auch mal wieder eine aktualisierte Zeitplanung. Bis nächsten Dienstag!



Hey Julian, spannend spannend – ich drücke dir die Daumen das alles gut läuft :D Und wenn ich auch mal soweit bin komme ich mal auf deine Tips zurück ^^

Spielerei mit Streifenbildern

2010-10-10 15:57:43

Heute gibt's mal wieder etwas völlig anderes. Ich möchte euch eine Idee zeigen, mit der ich vor einiger Zeit mal herumexperimentiert habe, die mit der Wahrnehmung von teilweise verdeckten Bildern zu tun hat. Die Idee stammt aus einem Video, das ich vor langer Zeit mal gesehen habe. Dort hat jemand diesen Effekt mit schwarzen Silhouetten erzeugt. An dieser Stelle bin ich mutig und versuche es direkt mit einem Farbbild, allerdings einem einfachen. Hier ist eine Spirale: