Planet Ka-Clique

March 02, 2010

Joachim

Talking at CeBIT tomorrow

Today, I arrived at the CeBIT conference in Hannover, and had a first look around. I find trade fairs like that quickly boring, and I was glad to meet some some other Debian folk and listen to some of the talks at the CeBIT Open Source Forum in hall 2, including tolimar’s talk about Debian GNU/kFreeBSD.

Tomorrow (Wednesday), I will talk at the same place at 13:45, explaining some basic stuff about patches and bug tracker. The target audience are users of Free Software who modify it for their private or company-wide use and would like to see their changes included in the official project. There will be a live stream of the talk, which I am officially holding as an employee of the ITOMIG GmbH.

by mail@joachim-breitner.de (nomeata) at March 02, 2010 08:02 PM

Mareike

Suchen in Windows - Diplomarbeit

Jaa, ihr lest ganz richtig, ich darf mich mal wieder mit Windows beschäftigen. Nun aber nicht nur mit einem einfachen Windows 98 (mein guter alter Rechner - erste Aldi Generation) oder Windows XP (derzeit mit Ubuntu parallel auf meinen Laptop), nein, es musste ja Windows 7 sein.
Nun war ich eben auf der Suche nach einer Möglichkeit unter Windows Dateien bzw. Ordner zu vergleichen. Google ergab mir ein paar Möglichkeiten, ich wollte aber auch schauen, was mir die Windows Hilfe so anbietet....
Kleiner Tipp dazu: lasst einfach die Finger davon!

Man gibt in der Suche ein: "Windows Commander".
-> Welche Suchergebnisse werden geliefert? Alles zu "Windows" natürlich!

Man gibt ein: "Dateien vergleichen" und erfährt alles zu "Dateieigenschaften", "Dateien speichern", "Dateien umbenennen"... sind wir hier im Kindergarten?

"Vergleichen von Ordnern" liefert schließlich was man wissen sollte und alles was man nicht wissen will zu Ordner. Das Wörtchen "Vergleichen" wird schlicht und einfach verschluckt.

Mannmann, das ist ne Suchtechnik. Schon oberpeinlich wenn jede Google-suche mehr und bessere Treffer liefert als die eigene Hilfe. Aber gut... Windows halt.

Wieso ich mich damit überhaupt abgeben muss? Für meine Diplomarbeit sind einige Softwareprodukte an diesem schönen Rechner lizenzmäßig gebunden. Dumm nur, dass in den Installationszetteln eigentlich steht, dass die Softwareprodukte nur für Windows XP oder Vista laufen (und meistens auch nur 32-bit) aber die Diplomarbeit soll ja auch ein wenig experimentell sein (nur leider am falschen Ende).

Ihr habt noch nicht genug spaßiges Zeugs gelesen? Dann weiterlesen:

Richtig Spaß hat man nämlich auch wenn man irgendwelche Fehlermeldungen kriegt, in den Lösungen steht dann (falls es welche gibt): Ändere die "Preferences" und zeigt auch schöne Bildchen wo sie sind... und dann... leider, leider ist es ja eine neue Version und wer will denn bitteschön erwarten, dass eine neue Version auch eine angepasste Hilfe hat? Das wäre ja zu leicht! ;-)
Aber gut, besser als die erste Software, bei der der Installationsprozess schon mächtig ins Schlingern kam und erst nach ca. 20 Fehlerausbesserungen lief und dann, genau rechtzeitig zu Weihnachten lag eine neue Version mit funktionierendem Installationsskript unterm Weihnachtsbaum. Schade nur, dass ich die 2-3 Wochen davor noch mit der alten verbracht hatte.

Kinners ich sags euch, es wäre doch echt langweilig bei der DA, wenn es nicht "hin und wieder" (derzeit ein Synonym für "andauernd") ein paar Problemchen gäbe :-)

by nospam@example.com (Mareike) at March 02, 2010 10:59 AM

March 01, 2010

Joachim

Teeth fashion

Has anyone ever considered wearing his teeth consistent with the rest of ones cloths?

by mail@joachim-breitner.de (nomeata) at March 01, 2010 11:49 AM

February 28, 2010

Joachim

Exploiting sharing in arbtt

My automatic rule-based time tracker (arbtt), which is written in Haskell, collects every minute a data sample consisting mainly of the list of currently open windows (window title and program name). Naturally, this log grows rather large. Since October of last year, I collected 70,000 samples. I already went from a text-based file format to a binary format using Data.Binary, which gave a big performance boost.

But by now, I was afraid that this is not enough. My log file is now 30MB large. Looking at the memory graph of gnome-panel, it is taking up more than half of my memory. When running arbtt-stats, the Haskell run time system reports 569 MB total memory in use and the command finishes after 28.5 seconds.

Naturally, the log file is highly redundant: Compressing it with bzip2 shrinks it to 1.6MB. But as I would like to preserve the ability to just append samples at the end, without having to read the file, I chose not just to add bzip2 or gzip compression. Rather, I am now exploiting a very obvious redundancy: Two adjacent samples usually list exactly the same windows, and a focus change only changes a flag. So now, when storing a string that is part of a sample, it will check if this string was already present in the previous sample and, in this case, just store the number of that string (one byte). Only if the string was not present it will write a zero byte and then the string. When reading the sample, the process is reversed.

This greatly reduces the file size: It is down to 6.2MB. It also improves the memory consumption, due to Haskell’s abilities with regard to sharing: When a reference to a string in a previous sample is read, then only one instance of this string is in memory, even if it occurs several times in the log. This brings the memory consumption down to 264 MB and the runtime to 17 seconds.

I released the changes as version 0.4.5.1 to Hackage, Debian and as a Windows installer. The log file is not automatically converted, but new samples will be written in the compressed format. If you want to convert your whole file, you have to stop arbtt-capture, run arbtt-recover, and then move the hopefully noticeable smaller ~/.arbtt/capture.log.recovered  to ~/.arbtt/capture.log.

The required code changes were not too big. I somewhat isolated the relevant code in the Data.Binary.StringRef module. Unfortunately, I have to use OverlappingInstances to be able to provide the special instance for String – is there a cleaner way (besides the trick used for the Show class)?

by mail@joachim-breitner.de (nomeata) at February 28, 2010 10:04 PM

February 15, 2010

Wenzel

Aufhol-Blogeintrag (Teil 2): Tokyo, Yokohama und Zürich

Kurz vor Weihnachten war ich für etwa 10 Tage in Japan, um in Yokohama ein Paper zu präsentieren. Eigentlich eine tolle Reise -- nur leider vereinnahmen einen diese Konferenzen immer so, dass man ansonsten eigentlich nicht viel machen kann. Deshalb war ich noch ein paar Tage in Tokyo, um wenigstens ein bisschen rumspazieren zu können. All das brachte noch einige Komplikationen mit sich: Pascal hat mich letztes Semester davon überzeugt, eine Vorlesung über Stochastische Prozesse zu hören (danke Pascal :-)), die eigentlich auch super war. Nur musste ich am Klausurtag gleichzeitig in Ithaca und Yokohama sein, was mir immer sehr schwer fällt. Der Prof. wollte mir zunächst ein "Incomplete" geben (oh my! - nicht gut), nach längerem Einreden ließ er sich dazu bewegen, mir die Klausur in Yokohama abzunehmen. Und das war dann vielleicht was! In der Nacht vor der Klausur schlief ich mit einem Kommilitonen in einer Jugendherberge in Tokyo, als plötzlich zwei stockbetrunkene Australier in unserem Zimmer erschienen, die uns für den Rest der Nacht keine Ruhe ließen. Es fing an mit Brüllen und Gegenstände werfen, bis hin zu so Sachen wie den Schlafenden bis auf ein paar Zentimeter ans Gesicht kommen und mit einer unglaublichen Fahne plötzlich irgendwas losbrabbeln. Einfach unglaublich -- am nächsten Abend war ich so kaputt, dass ich beim Ab-TeXen meiner Klausurlösungen noch massenhaft Fehler eingebaut habe, danach bin ich sofort eingeschlafen.

    
Hostel und Umgebung in Asakusa, Tokyo

Der Rest der Reise war zum Glück erfreulicher. Japan ist ein irre faszinierendes und von der Globalisierung scheinbar weitgehend verschontes Land -- wo man auch hinschaut, sieht man verblüffendes und oft einfach unbegreifliches. Ein Stadtbummel ist das reinste Kino, und so sind wir die meiste Zeit nur herumgelaufen. Besonders bemerkenswert fand ich die enorme Gastfreundschaft: praktisch von der ersten Minute auf japanischem Boden an wurde ich angesprochen, sobald jemand meine hilflose Suche nach Schildern mit lateinischen Buchstaben erkannte. Und selbst falls mein Retter kaum Englisch sprach, lief ich doch mindestens mit einem Zettel voller japanischen Schriftzeichen weiter, nach denen ich Ausschau halten sollte.

Auf der Suche nach einem japanischen Schlafanzug für Olesya gelangte ich an einem Tag in ein größeres Einkaufszentrum. Eine Angestellte erklärte mir den Weg zur passenden Abteilung, der sich als längere Geschichte entpuppte - 5 Stockwerke runter, aus dem Gebäude raus und auf der anderen Straßenseite ins sechste Stockwerk. Dort angekommen war die Auswahl nicht wirklich beeindruckend, doch als ich schon weitergehen wollte, stand dieselbe Angstellte plötzlich vor mir. Vollkommen außer Atem (sie war mir eine Minute später in vollem Tempo hinterhergerannt) meinte sie, dass es in einer anderen Etage auch noch Schlafanzüge gibt. Spätestens da muss einem klar werden, dass man sich in einem wirklich fremden Land befindet.

  
Ein traditionelles japanisches Restaurant

Die Japanische Küche hat mich auch schwer beeindruckt. Ehrlichgesagt kann das bei vielen Gerichten gar nicht "kochen" nennen - "mischen" wäre passender, denn die Zubereitung ist wirklich simpel. Aber das Ergebnis spricht für sich! Allein was man alles aus einer Schale Reis und etwas Brühe machen kann, hätte ich niemals gedacht. Kurz vor Ende hatte ich einen noch halbvollen Koffer, der dann folglich mit Supermarkt-Einkäufen bis zum Bersten aufgefüllt wurde :-).

 
Schilder - hmm..?

Die penible Sauberkeit war auch sehr auffällig. In Yokohama hatten die U-Bahn-Stationen z.B. einen weißen Boden. Ich meine wirklich weiß - wenn man da mit schmutzigen Schuhe durchläuft, hinterlässt man eine Spur vom Eingang bis zum Zug. Und mit an Sicherheit grenzender Wahrscheinlichkeit ist die Spur ein paar Minuten später wieder weggeputzt, von jemandem dessen Job genau darin besteht.

 
Cosplayer und eine Hochzeit

Die restlichen Japan-Fotos habe ich hier hochgeladen.

Ab ca. Ende Juli werde ich mit Steve (meinem Advisor) für ein Jahr von Cornell zum Disney Research Lab an der ETH Zürich wechseln. Aus Neugier waren meine Eltern, Olesya und ich nach Weihnachten deshalb noch einen Tag lang dort. Die Stadt ist sehr schön, allerdings bereitet mir die Wohnungssituation etwas Sorgen .. (vor allem je mehr Geschichten ich höre!)


Zürich

Für Studenten scheint es nur schwer möglich zu sein, etwas in akzeptabler Nähe zur Stadt zu finden. Von Computergrafik-Kollegen höre ich, dass sie zur Wohnungssuche Empfehlungsschreiben der Uni bekommen, die sie als "weltweit renommierte Forscher" ausweisen. Als Qualifikation für eine Wohnung. Irgendwas mache ich falsch - ich versuche mir das zu merken, die nächste WG-Mitbewohner-Suche kommt bestimmt :-).

by nospam@example.com (Wenzel Jakob) at February 15, 2010 10:37 PM

February 11, 2010

Joachim

Diploma Thesis Finished

Earlier today, I went to a local copy shop and had my diploma thesis printed. This afternoon, I will hand it in. The title is “Loop subgroups of Fr and the images of their stabilizer subgroups in GLr(ℤ)” and discusses a group-theoretical result. I assume that very few readers care about the content of the thesis, but maybe some are interested in a few assorted LaTeX hints. I’m also publishing the full TeX source code, maybe someone can make use of it.

Less chatty varioref

I’m using the varioref package, in conjunction with the cleveref package. This provides a command \vref{fig:S3S4l} which will expand to, for example, to “Figure 1 on page 11”. But if the referenced figure is actually on the current page, the next page, the previous page or the facing page (in two-side layouts), it will say so: “Figure 1 on this page.”

This is very nice, but I assume that the reader of my thesis is able to find Figure 1 when it is visible, i.e. on the current or facing page. One can remove the referencing texts with the commands \def\reftextfaceafter{}, \def\reftextfacebefore{} and \def\reftextcurrent{}. But because varioref puts a space between “Figure 1” and this text, we will get a superfluous space – even before punctuation.

The remedy is the command \unskip, which removes this space again. So I use in my preamble:

\def\reftextfaceafter {\unskip}%
\def\reftextfacebefore{\unskip}%
\def\reftextcurrent   {\unskip}%

Palatino and extra leading

I chose the Palatino font for my thesis, using the mathpazo package. Various sources (such as the KOMA-Script manual) suggest to use 5% extra leading:

\linespread{1.05}

Counting figures independently from chapters

I don’t have too many figures and tables in my thesis, and I want them to be numbered simple 1, 2, ... By default, LaTeX would say 1.1, 1.2, 2.1, ... This can be fixed using the remreset package and these commands:

\makeatletter
\@removefromreset{figure}{chapter}
\renewcommand{\thefigure}{\arabic{figure}}
\@removefromreset{table}{chapter}
\renewcommand{\thetable}{\arabic{table}}
\makeatother

No widows and club lines

LaTeX already avoids these, but I wanted to get rid of them completely. This can be done with:

% Disable single lines at the start of a paragraph (Schusterjungen)
\clubpenalty = 10000
% Disable single lines at the end of a paragraph (Hurenkinder)
\widowpenalty = 10000 \displaywidowpenalty = 1000

Struck table lines

I had to typeset tables with some lines struck, and I could not find a ready command for that. I used the following definition, based on the code for \hline. Note that it probably does not adjust well to other font sizes and needs to be adjusted manually:

\makeatletter
\def\stline{%
  \noalign{\vskip-.7em\vskip-\arrayrulewidth\hrule \@height \arrayrulewidth\vskip.7em}}
\makeatother

Title page in one-sided layout

According to the KOMA manual, the title page as set by LaTeX is not meant to be the cover of a publication, and therefore has to be set with the margins of a right page – i.e. a larger right margin and a smaller left margin. But when printing cheaply, one often just put a transparent sheet on top of the print, so the title page is the cover. You can convince KOMA that you are right by using

\KOMAoptions{twoside=false}
\begin{titlepage}
...
\end{titlepage}
\KOMAoptions{twoside=true}

Not flushing the page for chapter heads

LaTeX would put the list of algorithms on a new right page. I found this a waste of paper for my few algorithms, and preferred to put the list right after the table of contents. You can override the LaTeX behavior using:

\tableofcontents
{
\let\cleardoublepage\relax  % book
\let\clearpage\relax        % report
\let\chapter\section
\listofalgorithms
}

This code also reduces the size of the heading to that of a section. The same trick also works with \chapter.

Math in headings vs. PDF bookmarks

LaTeX with the hyperref package creates nice PDF bookmarks from your chapter and section titles. Unfortunately, PDF bookmark names can only be plain strings, while the titles in the document might contain some math symbols. You can make both happy with \texorpdfstring:

\section{Stabilizer subgroups in \texorpdfstring{$\GL_r(\Z/2\Z)$}{GL\_r(Z/2Z)}}

Setting lines for the signature

The diploma thesis contains a small note which I have to sign, saying that I created it on my own etc. Below that, I put two labeled lines for date and signature, using the tabbing environment:

\begin{tabbing}
\rule{4cm}{.4pt}\hspace{1cm} \= \rule{7cm}{.4pt} \\
Ort, Datum \> Unterschrift
\end{tabbing}

by mail@joachim-breitner.de (nomeata) at February 11, 2010 01:11 PM

February 07, 2010

Joachim

If I were a caricaturist

I’d draw a caricature involving a Toyota car, representing capitalism, with a stuck gas petal and Barack Obama trying to fix it. But as I cannot draw very well, especially recognizable people, I created this collage:

The photo of Obama was created by Beth Rankin.

by mail@joachim-breitner.de (nomeata) at February 07, 2010 08:33 PM

February 04, 2010

Joachim

FontForge-Article in the German Linux-Magazin

Yesterday, I found the 3/10-issue of the German “Linux-Magazin” in my mailbox. (I don’t dare to call it the March issue – they are a bit off schedule...) On page 62, you can find my 3½ page article about creating a symbol font with FontForge. I briefly covered the topic on my blog and later thought that it would made a nice article, even though I’m not an expert on this area. The article will be freely available in about three years.This is already my third publication, after my article on the Cross-Site-Authentication attack that was published in the same magazine (circulation ~63.000) and in its international counterpart in 2005 and my recent article in the “freeX” magazine (circulation ~15.000). Looks like I’ll have to add a  “Publications” section to my website soon...

by mail@joachim-breitner.de (nomeata) at February 04, 2010 09:50 PM

February 01, 2010

Mareike

Wie halte ich mich nach dem Unifest wach?

Ja, da war doch am Samstag mal wieder das Unifest. Was tut man da?

Otto-Normal-Student: Geht gegen 23 Uhr hin, schaut sich Bands an, tanzt, trinkt, isst bei den Essensständen, tanzt und freut sich halt ganz doll. Gegen 3 Uhr geht Otto-normal wieder heim (Durchschnittswerte).

Fachschaftler: Geht um 15 Uhr hin, rennt wichtig in der Mensa hin und her, besorgt alles fehlende, baut die letzten Details bei der Garderobe auf, schmeißt Schneebälle mit den Securities (=sehr wichtige, schwarze Klamotten-tragende Menschen). Garderobe läuft: Kasse, Annahme, Shifter, Rückgabe.



Helfereinweisung, selber mit anpacken, Non-Alk-Helfergetränke vor Ort, interessante bis anstrengende Unterhaltung mit Betrunkenen, Catering mit warmen Essen, Getränke, Süßigkeiten und legga Obstsalat, 10-trale anrufen, Jacken suchen, runtergefallene Schals aufheben, sich freuen, wenn alles vororganisierte auch wirklich läuft und sich ein bischen ärgern, wenn doch nicht :-)




Gegen 5 Uhr früh Garderobe schließen und gegen 6 Uhr früh, nach ein bischen aufräumen und zusammensammeln schließlich nochmal warm essen im Catering. Dann heimgehen.

------------------------------------------------------------------...

Worum es hier jetzt aber eigentlich geht, ist die Lösung des Problems: wie teile ich meine kommenden Schlaf- und Wachzeiten ein, um möglichst bald wieder einen normalen Rhythmus zu haben?
Systemtrick à la Yasmin: schlafen bis um 12 Uhr (mittag) und dann Schlitten fahren gehen!

Gesagt getan, mit ein bischen Aufwand und lustigen Bäckerei-Such-Aktionen sind wir aber schließlich an der Merkur-Bahn in Baden-Baden angekommen. Wirklich, wirklich schade war nur, dass die Bergbahn ohne Begründung zu war! Aber das sollte uns nicht vom rodeln abhalten.



Erstmal mussten noch die anderen vom Bus abgeholt werden und die Zeit vertrieben Yasmin und ich uns mit "Tiefschnee-Kubb". Kubb oder auch Wikingerschach genannt ist (hoffentlich) schon einigen bekannt, aber ob das schonmal jemand im Tiefschnee ausprobiert hat, ist mir nicht bekannt.
Sehr lustig war es, dass der Wurfstock teilweise in den Schnee eintauch, unterschneeisch weiterrutscht und dann (wenn man Glück hat) auch tatsächlich noch den Kubb trifft!



Fertig spielen konnten wir allerdings nicht, da dann die anderen kamen. Dann gings los, Schlitten ziehen bergauf. Hätte mir jemand mal vorher gesagt, dass man da knappe 3km den Berg hinauf laufen kann... ich glaube ich hätte mich früher auf den Schlitten gesetzt und hätte die bequeme Heimwegvariante gewählt. So liefen wir mit Pausen - die Sitzgelegenheit hatte man ja praktischerweise mit dabei - fast den gesamten Berg hoch.



Wieso das ganze? Das fragt man sich ab und an. Aber allein die Aussicht, die man oben hat entschädigt schon (fast) für den gesamten Aufstieg (aber noch nicht dafür auch den Schlitten hinter sich herzuziehen).





Runter ging es dann natürlich schneller, doch dass ich schon Ewigkeiten nicht mehr auf einem Schlitten saß (vom Nachtrodeln beim Skifahren abgesehen) hat sich doch bemerkbar gemacht. Aber so ein bischen Tiefschnee abseits des Weges ist doch auch erkundenswert...



by nospam@example.com (Mareike) at February 01, 2010 01:44 PM