Ausgewählter Nerdkram von Informatikstudenten der Uni Ulm

Interview: Dru Lavigne

Dru Lavigne

This time the interview series continues with Dru Lavigne.

Dru is amgonst other things the Community Manager of the PC-BSD project, a director at the FreeBSD Foundation and the founder and president of the BSD Certification Group.

She is also a technical writer who has published books on topics surrounding BSD and writes the blog A Year in the Life of a BSD Guru.

Who are you and what do you do?
I currently work at iXsystems as the “Technical Documentation Specialist”. In reality, that means that I get paid to do what I love most, write about BSD. Lately, that means maintaining the documentation for the PC-BSD and the FreeNAS Projects, assisting the FreeBSD Documentation Project in preparing a two volume print edition of the FreeBSD Handbook, and writing a regular column for the upcoming FreeBSD Journal.

Which software or programs do you use most frequently?
At any given point in time, the following apps will be open on my PC-BSD system: Firefox, pidgin, kwrite, and several konsoles. Firefox has at least 20 tabs open, pidgin is logged into #pcbsd, #freenas, #bsdcert, and #bsddocs. make or igor (the FreeBSD automated doc proofreading utility) are most likely running in one konsole, while other konsoles have various man pages open or various commands which I’m testing. Other daily tools, depending upon which doc set I’m working on, include DocBook xml, OpenOffice, the Gimp, Calibre, Acroread, and VirtualBox for testing images. I also spend a fair amount of time in the forums, wikis, and bug tracking systems for the projects that I write documentation for.

Why did you decide to use your particular operating system(s) of choice?
I had been using FreeBSD as my primary desktop since 1996 and pretty much had an installation routine down pat to get everything I needed installed, up, and running as I needed new systems. When Kris Moore started the PC-BSD Project, I liked the graphical installer and its ability to setup everything I needed quickly. Sure, I could do it myself, but why waste an hour or so doing that when someone else had already created something to automate the process?

In what manner do you communicate online?
If it’s not in my inbox, it probably doesn’t happen. However, IRC, Facebook, and LinkedIn are convenient for getting an answer to something now before summarizing in an email or actioning an item.

Which folders can be found in your home directory?
A dir for temporary downloads and patches, one for PC-BSD src, one for FreeBSD doc src, one for presentations, one for articles, one for bsdcert stuff, one for each version of the PC-BSD docs, and one for each version of the FreeNAS docs.

Which paper or literature has had the most impact on you?
My favorite O’Reilly books are Unix Power Tools by Peek, Powers, et al, TCP/IP Network Administration by Craig Hunt, and Open Sources: Voices from the Open Source Revolution.

What has had the greatest positive influence on your efficiency?
Hard to say, as my brain tends to naturally gravitate towards the most efficient way of doing anything. I can’t imagine working without an Internet connection though and the times when Internet is not available are frustrating work-wise.

How do you approach the development of a new project?
Speaking from a doc project perspective, I tend to think big picture first and then lay out the details as they are tested then written. I can quickly visualize a flow, associated table of contents, and an estimate of the number of pages required, the rest is the actual writing.

Which programming language do you like working with most?
I don’t per se, but can work my way around a Makefile. With regards to text formatting languages, I’ve used LaTex, DocBook XML, PseudoPOD, groff, mediawiki, tikiwiki, ikiwiki, etc. I can’t say that I have a favorite text formatting language as it is just yet another way I have to remember to tag as when writing text. I do have to be careful to use the correct tags for the specified doc set and to avoid using tags or entities when writing emails or chats :-)

In your opinion, which piece of software should be rewritten from scratch?
No comment on software (as I’m not a developer). However, I daily see docs that need to be ripped out and started from scratch as they are either so out-of-date to be unusable or their flow doesn’t match how an user actually uses the software. That’s assuming that any docs for that software exist at all.

What would your ideal setup look like?
I like my current setup as it has all of the tools I need. See #2.

Click here for the full picture.

Interview: Henning Brauer

Henning Brauer

This time the interview series continues with Henning Brauer (@HenningBrauer).

Amongst other things, Henning is an OpenBSD developer and involved in projects like pf, OpenNTPD or OpenBGPD. pf is a BSD-licensed, advanced packet filter and a default component in OpenBSD. It is comparable to e.g. iptables, though in my opinion pf is a superior and better designed tool with a clear syntax that makes configuration very comfortable. I found it to be a very nice tool and it seems like I am not the only one: pf has been ported to many other operating systems and is e.g. integrated into Mac OS X Lion. Since it is licensed under the permissive BSD license (as everything within the OpenBSD source tree) it is possible for companies to integrate the code within their proprietary systems.

Henning is also the founder and CEO of BSWS, an ISP/MSP based in Hamburg, who makes heavy use of free software. As Henning told me, their technology stack consists basically only of free software. I think this is very nice. It always makes me happy to see businesses build upon free software, contributing back to the development of such.

Who are you and what do you do?
I’m Henning Brauer, 35. I’m the CEO of BS Web Services GmbH, an ISP/MSP here in Hamburg. I have been an OpenBSD developer since 2002, heavily involved with pf – redesigned it completely with Ryan McBride, last not least. I started OpenBGPD a good 10 years ago, OpenNTPD a bit thereafter, and the privsep/messaging-Framework I wrote for bgpd is used by almost all newer daemons in OpenBSD these days. These days I mostly work on the kernel side, the network stack, and pf as an integral part of it. Aside from that I wrote femail, am a board member of the EuroBSDcon Foundation, and do local politics.

Which software or programs do you use most frequently?
I heavily use OpenBSD, which might not come as a surprise. All my laptops run OpenBSD, my workstation at work does, and the vast majority of our servers, routers, firewalls etc run OpenBSD as well. The base system covers a lot of my needs already – webservers are obviously important for my work, all newer setups are on our base nginx, some older ones still on our forked Apache. mysql plays an important role, and unfortunately OpenLDAP as well. Almost all hosts run symon (auto-configured) and most also use femail. LaTeX is used for all documents that we produce.

On the Desktop side, I use mutt for email, both firefox and chromium for the web, tho the latter is foremost a tweetdeck container. mupdf for most PDFs. I fortunately don’t need an office suite. For my presentations I use magicpoint.

Why did you decide to use your particular operating system(s) of choice?
In the late 90s we had a bad DoS attack against a webserver running linux, which behaved poorly. I had the attack recorded and replayed it against a couple of other operating systems. FreeBSD behaved well, OpenBSD much better, and since I liked what I saw (I hadn’t looked at OpenBSD really before) that’s what I picked and stayed with.

Today, the choice is easy. OpenBSD is a good fit for almost all tasks I am confronted with, and since I am so much involved I can fix issues when I run into them instead of having to wait for a vendor or a project to react (or just hope for it), really understand what’s going on when things don’t work and fix issues properly instead of applying stupid workarounds that last from 12 to noon. The result is a setup that is very reliable and very secure, which in turn means that our monitoring doesn’t drive us nuts by demanding fixes at the worst possible times – and happy customers.

In what manner do you communicate online?
Email and twitter, foremost.

Which folders can be found in your home directory?
Found by whom? None for almost everybody.

Which paper or literature has had the most impact on you?
I’m not really into tech books. The few I have read over the last couple of years were all books I was involved with, as tech reviewer – “The Book of PF” and “Absolute OpenBSD” are to be mentioned here, both excellent books.

For papers & presentations, I cannot pinpoint one. I regularily go to conferences – EuroBSDcon, BSDcan and AsiaBSDcon are the standard ones – and visit talks that sound interesting, not just “our” ones. They often bring some kind of enlightment (the Q&A / discussions after my own presentations too). I often end up reading papers when researching on something, but couldn’t point out a specific one.

What has had the greatest positive influence on your efficiency?
Unix :-)

How do you approach the development of a new project?
I think about it for some time, before I write the first line of code. I need to get clear on the structure, break the task down to many small ones. Then get clear on the APIs, including the strictly internal ones, and THEN start coding. Sometimes talking to other developers helps a lot, we frequently use whiteboards.

The worst thing one can do is to sit down and start coding immediately. Spend time on designing your software, don’t just let it happen. Structure is extremely important, breaking down things into smaller, ideally self-contained blocks.

Which programming language do you like working with most?
Depends on the task. For kernel or high-performance network daemons it is C of course. For things like web applications or the like where you really want a higher abstraction level C would be absolutely inapproriate. I frequently use perl for company stuff, accompanied by some shell code (the latter obviously not for web stuff).

In your opinion, which piece of software should be rewritten from scratch?
That’s a tough one. I do believe in evolution, look where the constant revolution approach lead to for the GNU world: gazillions of similar projects, repeating each others faults instead of learning from history. The NIH syndrome (Not Invented Here) is one of the biggest problems in the free software world.

That said, there is a point where evolution is not the right approach. When the base is so bad that you end up rewriting everything anyway, might as well start from scratch. When there is a fundamental design issue, there is barely a way around starting over.

Let me use an example where I was involved: why did I write femail? It is just a little /usr/sbin/sendmail program that doesn’t have a queue but offloads the mail immediately to another mail server via SMTP. There is mini-sendmail doing the same thing. Besides that being GPL and thus not free, I was horrified when I looked at the code. The author brags about it being so small in terms of lines of code – which is pretty damn easy if you use ridiculously long lines instead of the usual 80 char limit. The code is outright unreadable, lack of proper indentation also doesn’t help. Unreadable means unreviewable which in turn has almost always meant buggy as hell. We call that “write-only code”. I then found out that it isn’t even remotely implementing the relevant RFCs, but just the most common subset – play fast and lose. Unusable. So I went on and wrote femail from scratch, which I use in hundreds of installs and which apparently spread quite widely.

femail has been used as the sendmail-compatible command line interface in OpenSMTPD – that’s a nice example on our approach, look for existing code before starting from scratch, faults already made elsewhere don’t need to be repeated.

What would your ideal setup look like?
Not sure that involves computers at all…

Click here for the full picture.

Simple cURL based activity monitor for websites

I wrote a simple activity monitor to notify me about changes on certain websites. The script is executed as a cronjob on a dedicated server and regularly fetches certain URIs. It then executes diff on the last file fetched from this URI. If there is a difference, it is mailed to me. To describe some use cases:

  • Product in Online-Shop is out of stock, I want to be notified when it is available again.
  • University lecture. Want to be notified when news/exercises/etc are put on the lecture website.
  • Usenet Search. Want to be notified when certain files are available and can be found via a Usenet search site.
  • Event registration. I monitored a Barcamp website to get notified, once the registration was available.
  • Monitor changes on certain Wiki pages.
  • Regularly check if something can be ordered now.
  • Monitor changes to a certain Etherpad instance.
  • Monitor changes on databases. Some projects offer a HTTP API (e.g. OpenStreetMap). Regularly exporting the database file and running diffs against it shows changes.
  • Monitor newly created mailinglists via the lists interface offered by our university.
  • Monitor the delivery status of packages, by fetching the transport providers tracking page.

Generally the idea is simply to monitor content changes on HTTP resources and thus the script can easily be used for anything that supports HTTP. A simple monitor is set-up like this:
./ "" ""

If you want to monitor only a certain part of a website you can use a preprocess file to filter out content you don’t want to monitor:
./ "" "" "./preprocess/"

I have released the project under a MIT license via GitHub. Plattform zur Meinungsbildung

OpenCityCamp 2013 in Ulm

Was kann man mit Daten der öffentlichen Hand tun, wenn sie offen für alle zugänglich sind? Welche Anwendungen, Visualisierungen und Apps können aus ihnen entstehen? Wie können diese dabei helfen, Politik transparenter zu machen, Mehrwerte für den Alltag von BürgerInnen zu schaffen und ganz neue Formen des Journalismus zu ermöglichen?

Wie schon im letzten Jahr veranstaltet die datalove Hochschulgruppe auch dieses Jahr wieder ein Barcamp rund um diese Fragestellungen an der Uni Ulm. Neben Vorträgen/Workshops rund um OpenData, Visualisierungen und Anwendungen soll gerne wild gebrainstormt, konzpetualisiert und prototypisiert werden.

Die Veranstaltung findet am 8. und 9. Juni 2013 in den Räumlichkeiten der Uni Ulm statt. Nähere Infos finden sich unter Die Anmeldung ist über möglich.

Interview: Boris ‘krt’ Kraut

I got to know Boris a while ago through a common friend. He is quite active at the “Chaos macht Schule” program and I found him to be quite an interesting person, meaning that he deviates from the mindset and opinions of average people. He regularly writes texts, which are online accesible here. After I talked to him at the GPN ’12 I asked him if he would like to participate in this series and he agreed. So here you go!

Who are you and what do you do?
My name is Boris ‘krt’ Kraut, but it could as well be anything else: You don’t choose your name, it is given to you by others. Even if you pick your name by yourself, e.g. a nickname, you can’t enforce its usage. In fact, sometimes you have to earn your name. Imagine a world where we all are numbers and you have to behave to earn the right to have a name. Sounds fucked up? It sure is! But have a closer look at reality: We just are labeled numbers, because what really matters is your ‘score’. Despite everything you have been told, nobody cares about you, your strengths, your weaknesses, yourself anymore. It’s all about receiving scoring ‘higher’ on somewhat standardized tests to get a ‘better’ chance to earn ‘more’ money to have ‘more’ free-time. This makes me sad.

So, what do I do? I follow a philosophy to improve everywhere: If there is a problem you can fix without negative consequences, it doesn’t matter if it’s your job or not. Just fix it. Sure, you can’t fix everything — either because you just are not able to or because you have something better/more important to do. It’s just that you can improve so much with little to no costs. We shouldn’t miss those opportunities. In the past years I have been focusing on ‘computer/media literacy’, especially the educational system in a digital millennium.

I study at the University of Education, Karlsruhe, and participate in the ‘Chaos macht Schule‘ movement. I like swimming and support the local lifeguards (DLRG), but I resigned from active duty due to my lack of time.

Which software or programs do you use most frequently?
Tough questions. We are all using software all the day, we know what our work setup is like, which programs we use on a daily base, but we often miss the underlying complexity of the operating systems. Even if we don’t use our laptop or smartphone, we are using software, we are depending on software each day: Taking the bus? Guess what, you are using software. Doing the laundry? Software. Reading a book? Hell, yeah, somewhere in the process of writing, printing, delivering and reading it, there is likely software involved…

..but to answer your question in a more convenient way I’d pick ‘openssh’,’dtach‘, ‘vim’, ‘mutt’ and ‘firefox’.

Why did you decide to use your particular operating system(s) of choice?
Postponing my answers for a while turns out to be right: I can proudly say I am no longer with Ubuntu anymore. Don’t get me wrong, it’s not that bad, it even might just be the OS which fits you, but the reason I had to use it was a fracked up graphics card with a picky driver (Intel GMA500, featuring the famous ImgTec PowerVR). Nowadays I use Debian on my notebook, but it will most likely be replaced sometime soon. I went with Debian for obvious reasons: I wanted to drop Ubuntu but hadn’t the time to evaluate what I really want. I really hope to get in touch with BSDs again as I have been a long time FreeBSD user.

I really like fanless systems. I’m frequently checking out ARM based computers, tablets and smartphones, and so I am using Android a lot. I don’t know if I like it or not, I will have a deeper look at it.. someday.

Oh, I do like TinyCoreLinux :)

In what manner do you communicate online?
E-mail is the preferred way to communicate with me. In fact, I even use it for news feeds, task management and my blogging system. I tried a couple of MUAs, ‘nmh‘, ‘mmh‘ and ‘mutt‘, just to name a few. Right now, I am using ‘mutt’, but I am looking for an ‘nmh’/’mmh’ like alternative that handles Maildirs and IMAP. I don’t like programs that take you hostage: Give me my shell back!

I also was very active on IRC, but I dumped it because it — or at least the channels I used to hang out on — didn’t had to offer anything relevant for my life. I don’t like the design of having multiple not interconnected networks, but this feature might just save us one day. Anyways, I reconsider going back to IRC from time to time. My preferred client was ‘irssi‘, but I really liked the way ‘ii‘ works.

At last, there’s XMPP. I used it, I dropped it, I got back to it. I don’t like XML, I don’t like the way how it handle’s some things, but after all it’s the open instant messaging standard, you better support it. Currently, I prepare to drop text messaging (SMS) from my “supported” contact options and replace it with XMPP. My long-term target is to move voice calls as well to XMPP — and later upgrade them to possible video calls. On Android I use the ‘beem‘ and ‘yaxim‘ clients, however I have yet to find one to support all feature from my wishlist; Jingle Audio/Video support can be chippy, just like persistent connections… On the shell, there’s currently only one choice: ‘mcabber‘. However, just like ‘mutt’ It captures your term. There are at least two ‘ii’ inspired clients, one of them is ‘jj‘ — obviously. I even tried to write two XMPP clients on my own: One fed the messages into my mail setup — there are even two kinds of messages types defined by XMPP, mail-like normal and chat — and another one to resemble the ‘talk’ messaging system with a ‘jfinger’ to receive a users xCard. Speaking of xCards: I think letting each user keep it’s own contact information up-to-date is the sane way doing it. Keeping files on persons is just not right, it’s creepy and reminds me of Germany’s history. Besides, you never gonna keep the information up-to-date on your own.

By the way, I don’t do web-based communication, neither Twitter nor Facebook. I think they are bloody awful and are doing harm to humanity. They kill cute kitties and ponies, too. However, I try to evaluate such services every now and then. Buddycloud looks interesting…

Which folders can be found in your home directory?
Having used the same home directory for ages, it has become cluttered and now shows elements from different naming schemes. I really want to clean it up, but I can’t come up with a sane solution. I am currently using some sort of task based naming, but maybe project based would be better? I don’t know.. Oh, and… XDG default names are awful. They brake existing naming traditions. Their scheme is not bad, it’s well thought, but it doesn’t feel right for me.

bin: user binaries and scripts
src: source code
man: manuals, rfcs, technical documents and tutorials
gfx: graphics.. haven’t used it in ages…
mfx: chiptunes :)
mail: mail, tasks, contacts, blog, …
ppt: presentations and talks I have given.. no I won’t rename it to pres…
tmp: temporary files; can be purged after logoff
Desktop: nothing
Downloads: here be dragons… currently flooded with talks/recordings I want to watch..
misc: everything else; sorted

Which paper or literature has had the most impact on you?
I have yet to find the one true thing, the book or paper that catches the essence of how and why. I have been influenced by a lot of papers and persons. I could name a few, but that would be unkind to all those handles I would not include. I actually don’t even care much for names nor bibliographic links, I care for thoughts and ideas.

What has had the greatest positive influence on your efficiency?
I am not efficient at all, but I try to follow inbox zero. I like KISS stuff. I avoid complexity or at least try to brake it up to manageable chunks. Humans and social interaction are a complexity nightmare. They might be efficient for themselves, but me interacting with them or vice verse slows things down. I don’t understand them. That’s where a lot of my efficiency problems come from.

How do you approach the development of a new project?
Tossing around ideas in my head. Scribbling them on a sheet of paper or on a whiteboard. Sort them. Structure them. Look at what is already there. What’s the goal. Talk with people. Listen to people… actually I really don’t know what to say.

Which programming language do you like working with most?
I left the path of a “programmers” many years ago. I spend most of my programming time writing glue code in plain sh. The last few projects I worked on have been done in ruby, as will be my next/last project for university. It wasn’t my decision to use ruby, but it’s an interesting language. I kinda like it and it worked out okay most times. Fair enough, but I don’t know if I really stick with it.

In your opinion, which piece of software should be rewritten from scratch?
Hardware sucks, software sucks, implementations are bad and most standards are even worse. I complain a lot because something might not fit my view/guidelines. But it doesn’t matter. Don’t fix software, fix humanity. Seriously, why can’t we all be a little nicer to others?

What would your ideal setup look like?
Actually, I don’t know. Small, no bloat, sane. I could write a lot about CLI, X and what’s wrong or right. But a more fundamental question I still have to answer is whether I want a client/server setup — a dump client and a freedom box in every house, meshed wireless networking, controlled by the people and not the government or corporations.. — or a complete road-warrior setup, where everything is right on my notebook. Do I want a notebook at all? Or could I use a smartphone/tablet/$futuredevice with an external keyboard? I don’t know..

Click here for the full picture.

mplayer configuration for OpenBSD

I had some issues with getting smooth video playback on my X220. I always ran into flickering, slow output or audio/video synchronization issues. Since I couldn’t find any fitting configurations and since VLC didn’t play things smoothly either, it makes sense to publish a working config with which I came up after investing some time. So this is my ~/.mplayer/config:


For a detailed explanation look through the man-page. Basically mplayer fills a 32M cache before starting playback, uses X11 as the video ouput driver, and skips frames in favor of a/v synchronization.

On another Thinkpad, a T510, mplayer -cache 32768 -cache-min 99 -cache-seek-min 99 -vo gl:swapinterval=0 -lavdopts skiploopfilter=all -vfm ffmpeg worked best.

In my case, I additionally run $ apm -H before starting the video. On my system videos play a lot smoother when apm runs in high performance mode.

Interview: Dominik ‘phil’ Lang

I got to know phil early on when I started studying. Now, some years later, the situation changed a bit and he is now one of my roommates and a close friend. He is also one of the most enthusiastic free and open source software fighters I personally know. As such he made a larger and larger part of his friends migrate to OpenBSD. A few of his code snippets can be found on his website. After his friends pursued him for months he lately gave an amazing talk at the ChaosSeminar in Ulm on OpenBSD (in german).

Who are you and what do you do?
My name is Dominik Lang and I am also known as phil, a nickname that was somehow established when I first entered university. Currently I am in a Masters program for Computer Science at the University of Ulm. My main interests in computer science are security, networking, operating systems and Unix.

Which software or programs do you use most frequently?
Most of the time I work on the command line with a shell. I use xterm with tmux and ksh. A lot of the time I’m writing stuff with an editor, which is nvi. Other than that, standard tools such as cd, ls, rm, mv, cp, sed, grep and ssh. An instance of Firefox is also always running somewhere, although I don’t surf around much except for a few technical blogs because I see the web primarily as a means for information exchange.

Why did you decide to use your particular operating system(s) of choice?

OpenBSD! For various reasons:

Security has always been my main focus and interest. It is mostly looked at from a high level point of view by computer scientists. Complex models and standards are created; the more generic the better. However, often the design is overly generic and the complexity usually isn’t needed and therefore one of the most important rules of security isn’t complied with, namely simplicity. Secondly, someone has to implement all that stuff: Higher levels of complexity lead to more bugs, as do bad design and ugly code.

This is where OpenBSD comes in. Their view on security is a more practical one: simplicity (on the user’s and the developer’s side) and well designed, clean, readable code. Rather than putting complex layers on top of each other, they aim to solve the problem at its root and make things right from the beginning on.

The never-ending debate on the definition of freedom: GNU vs BSD. As one might guess, I support the BSD view of freedom but this isn’t a major reason for me to use OpenBSD. However, how the OpenBSD project pursues freedom is. The OpenBSD source tree is as free as it can get. Blobs are not an option. The project’s developers are among the leading fighters for open hardware documentation. I haven’t seen this dedication in another project. Other projects incorporate proprietary code or sign NDA’s which is a step back for open source / free software.

All in all, I share the same views as the OpenBSD developers and their uncompromising pursuit of security and simplicity has influenced me a lot.

In what manner do you communicate online?
I use mcabber as an XMPP client and for email I use OpenSMTPD as an mta, fdm as an mra and mmh as an mua. This allows me to integrate my online communication into my ksh/tmux environment.

Which folders can be found in your home directory?
A lot of folders. ;)
I haven’t yet found a fully satisfying solution how to structure my data. I created folders as I went along and mostly they just stayed as they were. Some of them are very chaotic, others are more structured.

The most important folders are:

Mail: self explanatory
bills: self explanatory
bin: self-written tools / programs / scripts
development: this is where I keep the sources of my self-written stuff
digmed: movies / series / photos / music etc.
docs: papers / books etc. → CHAOS
downloads: self explanatory → CHAOS
dumps: temporary dumps from tools / webpages / other stuff
log: some of my own tools log to here
notes: stuff that I want to remember or drafts
src: this is where I keep sources of external projects and also local patches
tmp: all sorts of random stuff, which doesn’t fit in anywhere else → CHAOS
uni: all my university stuff

Which paper or literature has had the most impact on you?
That is a tough question. Theres no THE literature as in a “bible” in my life. There is one concept which is my motto and pretty much is the basis of all my decisions: KISS – keep it small and simple. However, I can’t remember where and when I first heard of it. Other than that, the following writings probably inspired me the most.

In everyday life I’d say the writings of Morihei Ueshiba, the founder of Aikido. His writings have taught me to treasure life more. I do not share his religious views, but rather his idea of how to approach life.

In computer science it has probably been “The Art Of Unix Programming” by Eric S. Raymond. It was my first more thorough contact with the Unix philosophy, which has also inspired and guided me.

What has had the greatest positive influence on your efficiency?
Two things: an open source operating system and the shell in combination with tmux.

By using an open source OS I can easily tailor my system / working environment as I want it. I’m not stuck with the interface the selling company puts in front of me, but can choose to change it to my own needs.

Also the transition from mainly working with a GUI to almost completely working with a shell. For a computer scientist and programmer, a shell interface can boost efficiency by a huge amount. A simple scripting interface is right there to use directly in the command line. That’s when I said goodbye to boring / repetitive tasks. =) In combination with the shell, tmux also sped up things a lot, because one can comfortably change between different shell sessions.

How do you approach the development of a new project?
The first thing I usually do is just lie down comfortably on a sofa or bed and just think about what I want to do, which problems I want to solve, what the finished project should be able to do and how the UI should look like.Pretty much a sort of requirements engineering and a first design in a sort of meditative state. ;)
Then I begin to code the ideas. I usually need a proof of concept and a first kind of prototype before I can go on and really think about a reasonable design. Because then you have a better feeling of what the result should look like and what technical problems you will encounter.

In your opinion, which piece of software should be rewritten from scratch?
I have often heard that the OpenSSL API isn’t as easy to use as it could be. For such a critical library, the API should be rewritten to be more user friendly. Also, all major browsers should be rewritten to get rid of the bloat. =)

What would your ideal setup look like?
Welcome to my secret room, which can only be entered through a cliche secret door in a bookshelf. The room is a storage hall, one half filled with all kind of gadgets like in iron man and displays and server racks and the other half is a gym with cool obstacles. My main workstation looks like the 7 display workstation in Password:Swordfish, but of course the whole setup is running OpenBSD (including all the servers and routers etc.). Because clearly the hall is pretty large, there is a hoverboard to get from point A to point B quickly. For the case of a zombie apocalypse, there is a stash of lightsabers. Ah, who am I kidding, I’d be constantly playing with them and program them as mood and disco lights. ;)

Click here for the full picture.

Interview: Juniorprof. Dr. Birte Glimm

This time the interview is with Birte Glimm, who is a junior professor at the University of Ulm since July 2011. Her research focus lies in knowledge representation and automated reasoning. In the last semesters she has given lectures in algorithms for knowledge representation and semantic web.

At the OpenCityCamp, a Barcamp centered around OpenData that took place a week ago here at the university, she gave an introduction on linked open data. This is quite fitting, since she is a member of the W3C SPARQL Working Group.

Who are you and what do you do?
I am a junior professor at the University of Ulm, where I work at the institute of artificial intelligence.

Which software or programs do you use most frequently?
I use Aquamacs to write publications, lecture notes, etc., so that’s one of my most frequently used programs. For viewing PDFs, I use Skim, which I prefer over Acrobat on the Mac. Apart from that I of course frequently use a browser (mostly Firefox) and I would definitely miss Eclipse and my terminal (shell).

Why did you decide to use your particular operating system(s) of choice?
Software on Mac OS works quite nicely for what I have to do and I like the overall look of Mac OS. It’s also easy to handle and installing programs is hardly ever a pain. I work on the Mac for some years now, so my memories of Windows are a bit outdated, but as far as I remember Windows frequently asked me questions that I didn’t want to answer (like whether I want to remove unused symbols from my desktop, which I don’t) and it was less smooth to use. All in all, I am happier with Mac OS. I never really used Linux/UNIX at least not for my personal computer.

In what manner do you communicate online?
I use email, Skype, IRC and sometimes special online meeting software (XMeeting or Webex). Email is by far the most used of those, but Skype is useful for collaborating with people in different locations or for just calling friends. I use IRC only for W3C telephone conferences, where an IRC bot manages the call participants and where we keep minutes in IRC.

Which folders can be found in your home directory?
Desktop, Documents, Downloads, Dropbox, Movies, Music, ontologies, Pictures, Public and Temp.

Which paper or literature has had the most impact on you?
Hm, it’s rather people who had an impact than papers or literature. I have also read so many papers that there is not a single one that had a big impact, but they all contributed a bit to my work or to my understanding of the things I work on.

What has had the greatest positive influence on your efficiency?
Not working at home. If I work in the office, I get less distracted and find it easier to just work.

How do you approach the development of a new project?
I scribble with pen and paper.

In your opinion, which piece of software should be rewritten from scratch?
That is a tough question as most software I use works quite well. I would probably rather rewrite some parts of a software. For example in the OWL Editor Protege I would spend some time on rewriting the part that interacts with the reasoner. This is probaly because I am implementing a reasoner that is used as a plugin in Protege and I see how the communication between Protege and the reasoner is sometimes not ideal.

What would your ideal setup look like?
If it doesn’t have to be real, I would want a MacBook Air with lots of memory and a big SSD plus a nice external screen.

Click here for the full picture.

Interview: Markus ‘meillo’ Schnalke

I got to know meillo after I followed his online writings for quite a while. During that time he stayed around in South America travelling and working on free software. After he returned to the University of Ulm I walked up to him and introduced myself. I got to to know him better over time and with time we became good friends. He is currently working on his master thesis, though he already holds a diploma on computer science by the University of Applied Sciences in Ulm. If you are further interested in Unix I would recommend to check out his website or one of his seminar recordings (this one for example) at the local ChaosSeminar (language: german).

Who are you and what do you do?
I am Markus Schnalke, also known as meillo. I love Unix, especially its philosophy. Style matters a lot to me and I try hard to write well readable code. I feel a great desire for discovering the early Unix and caring for old software.

Which software or programs do you use most frequently?
The short answer is: The Unix shell. My shell history shows that I run ls, cd and vi most frequently. However, more interesting is, that I spend most of my computer time editing (ex-vi), browsing the web (firefox+pentadactyl or w3m) and emailing (mmh). The window manager aewl (my personal version of dwm) and either tmux or screen are running as well.

Why did you decide to use your particular operating system(s) of choice?
I used to choose Debian GNU/Linux for philosophical, social and technical reasons. Whereas I’m still convinced of the former two, my technical view differs now. In consequence, I switched to Crux, one year ago. Crux is simple. There’s nothing in my way. I have the controls right in my hands. Yes, I do need to adjust manually here and there, but that’s okay. I just don’t want to be put in a sandbox anymore. I don’t want to be kept from “messing up” the (package) system. I am bored building castles in the sand. I want to change the world now. I want to have all the power and I want to be *encouraged* to put my hands on. That’s what Crux offers to me currently.

In what manner do you communicate online?
About 90% of my online communication goes via email. As developer of two email software projects (mmh, masqmail), that’s no surprise. The remaining 10% are spend in I don’t chat nor do I use those modern communication technologies, but I’m on the way to enter Usenet.

Which folders can be found in your home directory?
There’s bin, of course. Then, I’ve started to have src and tmp. Often you can find docs, talks, and dl. For multimedia content German names have survived: fotos, filme, musik.

Which paper or literature has had the most impact on you?
I do love reading old computer books, especially everything written by those guys who shaped Unix. The two books by Kernighan and Pike — “The UNIX Programming Environment” and “The Practice of Programming” — defined my view on Unix and on style. “The Mythical Man-Month” by Fred Brooks and some book by Kent Beck on Extreme Programming opened my eyes for a convincing view on software engineering.

What has had the greatest positive influence on your efficiency?
Definitely, discovering Unix, with all its meanings and concequences. It had improved the efficiency of my computer work fundamentally. Although the Internet technologies can help you a lot, I am most productive when working offline.

How do you approach the development of a new project?
Well, I don’t have much to say here, thus I rather tell one of my favorite jokes: “There are 10 kinds of people in the world; those who understand binary and those who don’t.” :-)

Which programming language do you like working with most?
I became a C programmer, eventually. Of course, I do not only program in C; sh and awk are always in the game as well. You see, I’ve settled with the programming languages that were part of the research Unix from Bell Labs. This should not surprise. I think C is very well designed. It is small and very consistent. I like that a lot. Of course, it has its disadvantages but for a Unix programmer with love for simplicity and the old Unix, the programming language of choice must be C. There’s no way around it. The shell language glues the programs together and increases the power of the system by one magnitude. Awk is somewhere between sh and C, and covers the field of text processing, which neither sh nor C does well. For me, the combination of these languages is a fully satisfying choice.

In your opinion, which piece of software should be rewritten from scratch?
That’s a tough question because we could discuss on the sense of rewriting from scratch for hours. I’ll answer though. Find(1) for instance should be redesigned … but if someone would know how to do it well, it likely would have been done already. X has good concepts but it became old, fat, and the world took different roads to different concepts. X never adapted well enough. Hence, X is my choice for a rewrite from scratch. In the small, however, I clearly vote for a rewrite of the infamous m_getfld.c in mmh/nmh. Who has the guts to take the curse on him?

What would your ideal setup look like?
Maybe it would be Plan 9 without the GUI. Plan 9 offers the concepts of Unix, applied even more thoroughly. It misses some bad design decisions and it is free of the Unix wars’s legacy. All this is very appealing. If I could have that, without the fundamental integration of the GUI …

Click here for the full picture.

Interview series

Inspired by the question series from I am hereby starting a new interview series in which I want to ask the same questions to different people. I love the series, but I find the answers to be kinda simliar these days. I can’t remember how often I have read answers like “Well, I got my MacBook, an iPhone and an iPad“. But what I am really interested in is something different: This series is directed towards people with a strong IT-background. I wrote down some interesting questions and then sat down with phil and meillo to discuss them. We did a lot of brainstorming and came up with some further questions. They both deserve credit for being really helpful! I also have to give credit to Kate, who was really helpful in translating the questions to proper english (which I still have to get better at ;).

The questions you will find now, are those that I am really interested in. Stuff that I find really helpful for myself. I hope that you will gather some insights and find them as interesting as I do.

The series starts with meillo because he was the first of the two who got around answering the questions. Or well… I don’t know if phil maybe planned ahead to get more insights in what to answer ;). But we will see… the next interview will follow shortly.

Click here to get to the first interview.

Benjamin Erb [] studiert seit 2006 Medieninformatik und interessiert sich insbesondere für Java, Web-Technologien, Ubiquitous Computing, Cloud Computing, verteilte Systeme und Informationsdesign.

Raimar Wagner studiert seit 2005 Informatik mit Anwendungsfach Medizin und interessiert sich für C++ stl, boost & Qt Programmierung, Scientific Visualization, Computer Vision und parallele Rechenkonzepte.

David Langer studiert seit 2006 Medieninformatik und interessiert sich für Web-Entwicklung, jQuery, Business Process Management und Java.

Sebastian Schimmel studiert seit 2006 Informatik mit Anwendungsfach Medizin und interessiert sich für hardwarenahe Aspekte, Robotik, webOs, C/C++ und UNIX/Linux.

Timo Müller studiert seit 2006 Medieninformatik. Er interessiert sich allen voran für Mobile and Ubiquitous Computing, systemnahe Enwticklung und verteilte Systeme, sowie Computer Vision.

Achim Strauß studiert seit 2006 Medieninformatik. Seine Interessen liegen in Themen der Mensch-Computer Interaktion sowie Webentwicklung und UNIX/Linux.

Tobias Schlecht studiert seit 2006 Medieninformatik und interessiert sich vor allem für Software Engineering, Model Driven Architecture, Requirements Engineering, Usability Engineering, Web-Technologien, UML2 und Java.

Fabian Groh studiert seit 2006 Medieninformatik. Seine Interessengebiete sind Computer Graphics, Computer Vision, Computational Photography sowie Ubiquitos Computing.

Matthias Matousek studiert seit 2007 Medieninformatik und interessiert sich besonders für Skriptsprachen, Echtzeitsysteme und Kommunikation.

Michael Müller [] studiert seit 2009 Medieninformatik. Er interessiert sich vor allem für Web-Technologien, Ubiquitous Computing, User-Interfaces, UNIX und Creative Coding.

Falco Nogatz [] studiert seit 2010 Informatik mit Anwendungsfach Mathematik. Er interessiert sich für Web-Technologien, Programmierparadigmen und theoretische Grundlagen.


Februar 2015
« Mrz