March 09, 2010

mezcalero

Bossa 2010/Manaus Slides

The slides for my talk about the audio infrastructure of Linux mobile devices at BOSSA 2010 in Manaus/Brazil are now available online. They are terse (as usual), and the most interesting stuff is probably in what I said, and not so much in what I wrote in those slides. But nonetheless I believe this might still be quite interesting for attendees as well as non-attendees.

The talk focuses on the audio architecture of the Nokia N900 and the Palm Pre, and of course particularly their use of PulseAudio for all things audio. I analyzed and compared their patch sets to figure out what their priorities are, what we should move into PulseAudio mainline, and what should better be left in their private patch sets.

March 09, 2010 06:04 PM

minbibs

sh

Ab heute steht Ihnen auf vielfachen Wunsch im Lesesaal der Physik-Bibliothek in der Jungiusstr. die Printausgabe der Süddeutschen Zeitung zur Verfügung.

Campusweit ist die tagesaktuelle Online-Deutschland-Ausgabe bereits am Vortag um 22 Uhr verfügbar, die Online-Ausgaben Bayern und München jeweils morgens ab 7 Uhr.

Das Archiv SZ LibraryNet enthält sämtliche Artikel der Süddeutschen Zeitung seit 1992. Über die Volltextsuche kann man gezielt nach Artikeln suchen. Regionalausgaben sind seit 1994 enthalten, seit 1999 zusätzlich das SZ-Magazin und Sonderausgaben wie SZ-Extra, Primetime. Ab 1998 gibt es ganze Zeitungsseiten als PDF- Dateien im Original-Layout mit allen grafischen Elementen und Werbeanzeigen.

Den Zugang erhalten Sie h i e r.


by SH at March 09, 2010 11:55 AM

sh

Die Physik-Bibliothek an der Jungiusstr. öffnet ab dem Sommersemester 2010 für Sie Samstags in der Zeit von 10 – 16 Uhr. Geöffnet ist an jedem Sonnabend in der Vorlesungszeit ab dem 1. April.


by SH at March 09, 2010 11:43 AM

March 04, 2010

4tmuelle

MSN Shutdown in 2003

During CA640 I was made to write an ethical review which I was supposed to hand in using a dodgy webservice. Since it got 90% people mugged me to make it available ;-) Of course, I don’t have a problem with that, so people now have a reference or know what to expect when they enter the course.

You can find the PDF here and its abstract reads:

At the end 2003 Microsoft closed the public chat-rooms of its Internet service called MSN.
MSN was pushed by Children’s Charities because they feared an abuse of these chat-rooms.
In some countries, however, the service was still available but subject to a charge.
This review raises ethical questions about Microsoft’s and the Children’s Charities’ behaviour because making the people pay with the excuse of protecting children is considered ethically questionable.
Also the Children’s Charities pushed for closure of a heavily used service although there is absolutely no evidence that children would be safer after closing down a chat-room.

If you are not interested in the non-technical details you might be interested to know that I use a Mercurial Hook on the server side to automatically compile the LaTeX sources one I push changes to the server:

$ cat .hg/hgrc
[hooks]
changegroup.compile = export FILE=paper && hg up -C && pdflatex --interaction=batchmode $FILE && bibtex $FILE && pdflatex --interaction=batchmode $FILE && pdflatex --interaction=batchmode $FILE

And then I just symlink that resulting PDF file to my public_html directory.

by muelli at March 04, 2010 12:15 PM

Subverting (Soft) Quota

My home directory  in my university has some restrictions, one of them being a ridiculously small 100 megabyte and 5000 files (soft) quota… How could you ever study with that?! My Firefox instance (with e.g. Zotero) uses 4393 files already:

$ find  ~/.mozilla/firefox/*.default/ -type f | wc -l
4349
$ du -hs ~/.mozilla/firefox/*.default/  | awk '{print $1}'
90M
$

So these restrictions don’t even allow me to run my research tools. Let alone checking out stuff from a Git/Mercurial repository and working on anything.

Needless to say that I am pretty annoyed by these restrictions. Fortunately, quotas will forget about you as soon as you get fall below the limit so that you only need to fall below the limit every now and then. So let’s do this automatically then:

#!/bin/sh
 
RAND=$$
BACKUP=~/.mozilla
TARGET=/tmp/.mozilla.$RAND
 
cp -ar "$BACKUP" "$TARGET" && rm -rf "$BACKUP" && cp -ar "$TARGET" "$BACKUP" && rm -rf "$TARGET" && echo "Finished successfully" || echo "Failure :("

And let cron run it once a week:

42 23 * * Sun       ~/bin/sneak-quota.sh

*yay*

by muelli at March 04, 2010 12:11 PM

March 03, 2010

2molle

Captain Obvious Live @ Burse

Vor 2 Jahren spielten Captain Obvious live in der Burse zu meinem (Mos) Geburtstag :D Hatte das hier bisher noch nicht drin, aber um den Fehler zu beheben, poste ich es jetzt.

Lizenz: Keine. Aber Weiterkopieren ist trotzdem erlaubt.

Website: captainobvious.de
Download: http://www.archive.org/details/CaptainObvious2008-01-25

by MoKrates (noreply@blogger.com) at March 03, 2010 08:28 PM

February 27, 2010

7clausen

February 26, 2010

minbibs

MO

Safari Tech Books Online ist eine Volltext-Datenbank mit über 5.000 elektronischen Büchern aus dem Bereich Computer Science. Es sind u.a. neueste Publikationen führender IT-Verlage wie O’Reilly, The Pearson Technology Group, Addison Wesley zugreifbar.

Der  Probezugang ist geöffnet bis zum 31.3.2010 und zugänglich für die IP-Range 134.100.*.*.

Safari Tech Books Online

Die Funktionalitäten sind während des Probezuganges eingeschränkt, z.B. ist kein Download einzelner Kapitel möglich.

Ihre sehr willkommene Meinungsäußerung schicken Sie bitte an die Informatik-Bibliothek.


by MO at February 26, 2010 08:52 AM

February 25, 2010

8letsch

tictactoe_android

Seit einigen Wochen bin ich stolzer Besitzer eines Android Phones (dem Motorola Milestone). Als programmierendes Spielkind wollte ich da natürlich sofort ausprobieren, wie man für das Gerät Software Apps schreiben kann.

Irgendwo hatte ich gehört, dass Python und andere Skriptsprachen auf dem Gerät laufen. Hierfür stellt Google das Android Scripting Environment (ASE) bereit. Eine tolle Sache, mit der man in Python direkt auf dem Gerät die API des Phones und die komplette Python-Standard-Library ansteuern kann. Enorm klasse wenn einem in der Bahn mal langweilig ist und man die tolle Hardwaretastatur des Phones ausreizen möchte. Zur ASE folgt aber vielleicht demnächst ein Beitrag.

Alles was man braucht um eine richtige App zu schreiben sind Java-Kenntnisse sowie ein bisschen XML-Wissen. Also nahm ich mir letztes Wochenende vor, statt des sonst obligatorischen “Hello World” mal ein kleines “Tic Tac Toe”-Spiel vom GUI-Bauen über die Implementierung der Funktionalität bis zum Installieren auf dem Phone komplett durchzugehen. Erstaunlich schnell war ich damit auch fertig, trotz einiger schusseliger Fehler, denen ich mit dem Debugger auf die Schliche kommen musste habe ich insgesamt keine 4 Stunden da hinein gesteckt. Der Debugger ist übrigens hervorragend: Man kann interaktiv über Eclipse in den auf dem Emulator (oder sogar auf dem echten Handy!) laufenden Code debuggen. Großartig.

In gewohnter Google-Manier zeigt sich für potenzielle Android-App-Entwickler ganz deutlich, dass Google mitgedacht hat: Aktuelle Handyplattformen sind nur so viel wert, wie sie Möglichkeiten bieten, die Funktionalität der Grundsoftware beliebig zu erweitern.

Alle zur Entwicklung nötigen und hilfreichen Softwareprodukte sind Open-Source und plattformunabhängig: Der Emulator für den PC, die mitgelieferten Android Development Tools (ADT) und das super ADT-Plugin für Eclipse. Wer eine App schreiben möchte findet eine vorbildliche Doku von Google selbst, sowie unzählige Tutorials von Leuten, die genau die gleichen Software-/Hardware-Konstellationen wie man selbst haben (bei mir das Motorola mit Android 2.0 und einem Ubuntu 9.10 als Entwicklungsplattform).

Für Interessierte habe ich das Projekt mal hochgeladen, Dokumentation braucht ihr erst gar nicht zu suchen und wer Bugs findet darf sie behalten. TicTacToe Android (Java Source als ZIP)


by kamelzeug at February 25, 2010 11:16 AM

February 24, 2010

mezcalero

Measure Your Sound Card!

In recent versions PulseAudio integrates the numerous mixer elements ALSA exposes into one single powerful slider which tries to make the best of the granularity and range of the hardware and extends that in software so that we can provide an equally powerful slider on all systems. That means if your hardware only supports a limited volume range (many integrated USB speakers for example cannot be completely muted with the hardware volume slider), limited granularity (some hardware sliders only have 8 steps or so), or no per-channel volumes (many sound cards have a single slider that covers all channels), then PulseAudio tries its best to make use of the next hardware volume slider in the pipeline to compensate for that, and so on, finally falling back to software for everything that cannot be done in hardware. This is explained in more detail here.

Now this algorithm depends on that we know the actual attenuation factors (factors like that are usually written in units of dB which is why I will call this the "dB data" from now on) of the hardware volume controls. Thankfully ALSA includes that information in its driver interfaces. However for some hardware this data is not reliable. For example, one of my own cards (a Terratec Aureon 5.1 MkII USB) contains invalid dB data in its USB descriptor and ALSA passes that on to PulseAudio. The effect of that is that the PulseAudio volume control behaves very weirdly for this card, in a way that the volume "jumps" and changes in unexpected ways (or doesn't change at all in some ranges!) when you slowly move the slider, or that the volume is completely muted over large ranges of the slider where it should not be. Also this breaks the flat volume logic in PulseAudo, to the result that playing one stream (let's say a music stream) and then adding a second one (let's say an event sound) might incorrectly attenuate the first one (i.e. whenever you play an event sound the music changes in volume).

Incorrect dB data is not a new problem. However PulseAudio is the first application that actually depends on the correctness of this data. Previously the dB info was shown as auxiliary information in some volume controls, and only noticed and understood by very few, technical people. It was not used for further calculations.

Now, the reasons I am writing this blog posting are firstly to inform you about this type of bug and the results it has on the logic PulseAudio implements, and secondly (and more importantly) to point you to this little Wiki page I wrote that explains how to verify if this is indeed a problem on your card (in case you are experiencing any of the symptoms mentioned above) and secondly what to do to improve the situation, and how to get correct dB data that can be included as quirk in your driver.

Thank you for your attention.

February 24, 2010 12:49 AM

February 23, 2010

8letsch

prolog_gui_03

Es passiert immer wieder: Man stößt auf eine Programmiersprache die “irgendwie cool” ist, und mit der es Spaß macht, kleine Sachen zu schreiben. Spätestens nach ein paar ersten Gehversuchen möchte man dann aber mehr, am liebsten natürlich etwas Grafisches (oft gibt man es ungern zu, aber insgeheim wissen wir doch alle dass EyeCandy rockt). So ist mir mit Prolog ergangen.

Mittlerweile bin ich aber so weit, auch erste GUI-Erfahrungen zu haben. Damit es anderen vielleicht leichter fällt, werde ich hier eine kleine Einführung in GUI-Programmierung mit Prolog geben.

Zuerst einmal wäre es praktisch, wenn du ein wenig Erfahrung mit Prolog hättest. Dennoch funktionieren die folgenden Beispiele auch ohne weitergehende Kenntnisse in logischer Programmierung.

Getting things up and running

Im Folgenden arbeiten wir mit XPCE, Windows- und Mac-User laden sich ein Stable-Release herunter , unter Ubuntu landet alles was du benötigst mit einer Zeile auf deinem System

sudo aptitude install swi-prolog swi-prolog-xpce

Per Aufruf von “xpce” startest du die interaktive Prolog-Shell. Die folgenden Befehle kannst du einfach der Reihe nach in die Shell eingeben, Pro-Tipp ist das Anlegen einer .pl Datei die in der Shell geladen wird. Dazu aber erst im nächsten Beispiel.

Das erste Beispiel

new(@dialog, dialog('Hello World')).
new(@button,button('Moin!',message(@prolog,write_ln,'Hello World') ) ).
send(@dialog,append(@button)).
send(@dialog,open).

Ausprobieren. Klappt? Gut. Klappt nicht? Nicht gut, melde dich mal in den Kommentaren. Oder schau erstmal, dass du alles richtig abgetippt hast (Punkte am Ende jeder Zeile nicht vergessen!).

Was XPCE zusätzlich zur logischen Programmierung liefert, sind Objekte. Diese werden mit new() erzeugt, wobei sie einen von uns gewählten Namen bekommen (@dialog). Der zweite Parameter von new() enthält den Konstruktor-Aufruf, welcher weitere Parameter enthalten kann. Bei button(‘Moin!’,message(@prolog,write_ln,’Hello World’) zum Beispiel zuerst eine Beschriftung (“Moin!”), sowie ein XPCE-Codefragment, das bei Klicken des Buttons ausgeführt werden soll. In unserem Fall ist dies das Senden einer Nachricht an das @prolog-Objekt. Dieses Objekt ist vordefiniert, und erlaubt uns, aus XPCE wieder Prolog-Code aufrufen zu können. In usnerem Beispiel soll write_ln mit dem Parameter “Hello World” aufgerufen werden.

Was man wissen muss

Prolog ist eine Sprache, die das Paradigma der Logischen Programmierung verfolgt. Anders als in imperativen Sprachen wie Java, C, Php oder Konsorten schreibt man keine Anweisungen, sondern definiert Fakten und Regeln, über die der Interpreter dann Schlüsse ziehen kann. Hierdurch lassen sich mit wenig Aufwand komplexe logische Zusammenhänge beschreiben. Gerade in Bereichen wie der künstlichen Intelligenz oder regelbasierten Spielsystemen (wie Schach und andere Brettspiele) zeigen sich die Stärken von Prolog.

Die Kehrseite der Medaille ist, dass existierende Systembibliotheken (GUI wäre da nur ein Beispiel) imperativ und funktional arbeiten. Um solche Funktionalitäten zu nutzen muss man sich daher für einen Mittelweg entscheiden.

XPCE stellt dafür Objekte bereit, mit denen man in Prolog-Syntax kommunizieren kann. Flexibilität wie zum Beispiel Richtungsunabhängigkeit geht hierbei leider verloren. Dafür laufen mit XPCE entwickelte GUIs plattformunabhängig und mit wählbaren Look&Feels.

Die wichtigsten XPCE Befehle sind new() zum Erzeugen eines Objektes, send() zum Senden von Nachrichten an Objekte, get() zum Abfragen des Objektzustandes und free() zum Entfernen von Objekten.

Ein komplexeres Formular

Lege die folgende Datei an, nenne sie meinetwegen formular.pl

newgame:-
    new(D,dialog('New Game')),
    send_list(D,append,
    [
    new(Name,text_item('Player Name')),
    new(Race,menu(race,cycle)),
    new(NumberOfPlayers,int_item('Number of players',low:=1,high:=10)),
    new(Ok,button('OK'))
   ]),
   send_list(Race, append, [wizard,warrior,elb]),
   send(D,open).

In deiner XPCE-Shell lädst du das externe Skript über “consult(formular.pl).” oder über “[formular].” (ohne Dateiendung .pl!) und startest dein Programm über den Prädikatsaufruf “newgame.” Was hier jetzt neu sind, sind noch ein paar Formularelemente (text_item, menu, int_item) sowie das praktische send_list Prädikat, das ermöglicht, viele Argumente zu einer Liste zusammenzufassen wenn diese zum Beispiel an das gleiche Objekt gesendet werden sollen.

Lasst uns malen

Natürlich kann man mit XPCE auch Grafiken erstellen. Simple zweidimensionale Objekte wie Kreise und Rechtecke sind ebenso machbar wie Bezierkurven oder das Einbinden von Grafiken.

gfx:-
 new(P,picture('Bunte Formen')),
 new(Box,box(100,100)),
 new(Circle,circle(100)),
 send(Box,fill_pattern,orange),
 send(Circle,fill_pattern,red),
 send(P,display(Box,point(10,10))),
 send(P,display(Circle,point(150,10))),
 send(P,open).

Wo lerne ich mehr?

Zugegebenermaßen gewöhnungsbedürftig ist die XPCE-Dokumentation (auch erreichbar mit “manpce.” aus der interaktiven Shell). Besser zu lesen, zu verstehen und auch mit vielen Beispielen versehen ist der XPCE Userguide (PDF 2MB).

Mit den Möglichkeiten von XPCE stößt man aber auch schnell an die Grenzen, vergleichbar mit modernen GUI-Bibliotheken wie Qt und ähnlichen kann XPCE bei weitem nicht mithalten. Dennoch ist es toll, mit wenig Aufwand einfach Oberflächen für die eigenen Prolog-Programme erstellen zu können. Ich wünsche euch viel Spaß dabei!


by kamelzeug at February 23, 2010 09:44 PM

February 22, 2010

vollkorn

Music Festival Packing and Tips List

I've been to a couple of music festivals so far and every time again I'm thinking about what you should bring to a festival. Although I usually only bring my backpack and thus am quite limited there is a lot of stuff I came up with in the past or new ideas I had later. This list is far from complete and mostly a reminder for myself which I'll update over time. Feel free to add your suggestions in the comments.



  • Tent. Maybe you want to bring a tent that's big enough to accomodate two people. Better make it a cheap tent. Bottom should be connected to the body of the tent and water proof. Make sure your tent does stand properly even if you leave the strings away. Never set up strings. While we're at it, try to place your tent not in a valley or drain, just in case it rains. Also don't place your tent at the side of the camping site or next to trees and bushes. Those sites are preferred by thiefs. On the other hand, don't place it in 'crazy' areas where drunken people might shred it into pieces for fun or anything. On a hill in the middle of a medium busy camping site is best.

  • Lock, preferably number lock. To close your tent. It's just ment to avoid mistakes by drunken poeople and theft by chance.

  • Small flashlight, diode light. To open your number lock, find stuff in your tent, search for stuff you dropped somewhere, read the sitemap when you're lost, ... Maybe you can use your mobile but I wouldn't recommend that.

  • Sleeping bag and sleeping mat. If you're the princess from Princess and the Pea you might want an inflatable mat instead

  • Earplugs. Your ear specialist is gonna love you if you wear them during concerts, but I usually use them to sleep.

  • Bottled water, lots of, large. Always enough reasons for that. Brushing teeth, sobering up, cooking, cleaning your dishes, washing yourself, ...

  • Clothing. Usual stuff. Underwear, socks, t-shirts, but also get ready for all possible temperatures and maybe pack a warm sweater and warm pants. Only pack clothing you're ready to leave behind.

  • Hiking shoes. I recommend running around in very comfortable, sturdy hiking shoes. All the time. Foot injuries are the most common ones on festivals. You won't complain anymore if people step or jump on your feet when in the pit, you won't care anymore if there is some broken glass all over the walkways, you can get close enough to the latrine to actually use it, etc.

  • Flip flops. Only for the shower. You do never wanna touch the floor of public festival showers.

  • Hygiene products. Shower gel, shampoo, maybe a combo of both. Tooth paste and tooth brush. Nail scissors, not clippers or pack seperate scissors then. Deodorant, condoms (Better pack them if in doubt. No matter how little your self esteem is, if you get lucky you might be really pissed about yourself), tissues, bandades, antispetic ointment.

  • Towel. A real man always knows where his towel hangs.

  • Mobile phone, plus charger. Often comes in handy. Even if you're in a foreign country. You might get a number you're supposed to call up later the night and it might be worth the couple of bucks. Or you can call the guys who wanted to give you a ride back home. Or to call police or ambulance.

  • Walkie-talkies. Great if you're in a group and just want to meet up quickly or got some important message for your friends at the other end of the festival site.

  • Tape. The stronger, the better. Duct tape will help you to fix just about anything. Can often also be used instead of strings.

  • Pen and paper. Not just to write down important details like phone numbers but also good to plan the concerts you wanna see.

  • Alarm clock. Too bad one of your favorite bands is playing at 10 am. Better make sure you'll wake up from your heavy alcohol poisoning. Who needs sleep anyway?

  • Digital pocketcamera. Definitely don't bring your good camera.

  • Gas stove. Can be very useful if you don't want to eat overpriced burgers and fries for the time of the festival.

  • Pot. For cooking, obviously.

  • Food. Stuff that doesn't need refrigeration, does not mold easily or is easily squished. And doesn't need anything but water for preparing.

  • Cutlery. Most important is a spoon. Knife and fork can be easily replaced with a swiss army knife or whatever flies around.

  • Lighter. Not just perfect for lighting nice girls' cigarettes, but also a great thing to turn on your gas stove or generally a tool to melt things or open beer bottles.


So, any other itmes or tips missing?


EDIT: Added lighter.

by nospam@example.com (Jan Girlich) at February 22, 2010 11:38 PM

February 21, 2010

mezcalero

Horizontal Panoramas Are So 2009!

Horizontal panoramas are so 2009 -- which is why I now give you the vertical panorama:

Brussels Cathedral

Now if I wasn't too stupid to hold my camera steady shooting upwards, this could actually have been a really good picture.

February 21, 2010 01:31 AM

February 20, 2010

mezcalero

Speaker Setup

While tracking down some surround sound related bugs I was missing a speaker setup and testing utility. So I decided to do something about it and I present you gnome-speaker-setup:

gnome-speaker-setup

The tool should be very robust and even deal with the weirdest channel mappings. OTOH the artwork is not really good and appropriate. But I hope it still shows some resemblance to other UIs of this type. If you are an artist wand want to contribute better artwork make sure to go through the Gnome Art Requests page, and more specifically this particular request.

This (or something like it) will hopefully and eventually end up in some way or another in gnome-media. Until that day comes I'll maintain this tool independently.

To compile this you need a recent Vala and libcanberra 0.23.

February 20, 2010 11:58 PM

7clausen

February 17, 2010

2burmest

Evaluation des HmbHG

Derzeit evaluiert eine von der Behörde für Wissenschaft und Forschung eingesetzte Kommission das Hamburgische Hochschulgesetz. CampusGrün Hamburg hat der Kommission eine ausführliche Stellungnahme dazu übersandt.

Wer hat was zu sagen?

Hierzu erklärt Sophie Kaphengst, Vorsitzende von CampusGrün Hamburg: „Diese Evaluation ist dringend notwendig. Die Querelen um die zurückgetretene Universitätspräsidentin Monika Auweter-Kurtz und das intransparente Wahlverfahren des neuen Präsidenten Dieter Lenzen haben gezeigt, dass es nicht im Interesse der Universität ist, weitgehende Entscheidungskompetenzen auf einen externen Hochschulrat zu verlagern. Wir als Studierende erwarten von der schwarz-grünen Koalition, dass der Hochschulrat in seiner jetzigen Form abgeschafft wird und die Universität ihre Angelegenheiten wieder selbst regeln kann.“

Ingo Balzereit, ebenfalls Vorsitzender von CampusGrün Hamburg, ergänzt: „Die Studiensituation in den Bachelor/Master Studiengängen ist in vielen Fächern nach wie vor schlecht. Dies hängt auch damit zusammen, dass Studierende nicht ausreichend beteiligt wurden. Um das zu ermöglichen, müssen auch unterhalb der Fakultätsebene wieder nach Statusgruppen zusammengesetzte Gremien gewählt werden können.“

Stellungnahme zur Evaluation des HmbHG

February 17, 2010 09:00 AM

February 16, 2010

8kuppe

Java keytool and custom certs

When upgrading a JDK, install custom CAs by running “keytool -import -trustcacerts -alias OSU -file /path/to/ca.crt -keystore ${jre.home}/lib/security/cacerts”. Default password is “changeit”

by Markus Alexander Kuppe at February 16, 2010 10:08 PM

5fey

Monitoring PowerDNS via the internal web server

If you want to stay informed about the current status of your PowerDNS server, there is no need to scan the logs or use third party tools like logcheckd. Actually, you might want to do this anyway, but PowerDNS provides an internal web server, which summarizes all the status information (including log messages) in a very nice and compact way for you to view.

By default, the web server will listen on port 8081 on localhost. That means, that you can’t view the status information from the outside network. To view the page, you could use a command line browser like lynx. You could change the interface of the web server to a public IP address, but this is very insecure and not recommended. The PowerDNS web server provides some sensitive information about your DNS server and you should not expose this information to the public. Also, the PowerDNS web server is probably not as thoroughly tested and hardened as e.g. Apache or nginx. Another problem is, that you can only specify a single password and that you are limited to basic authentication, which is not very secure.

There is a secure way to retrieve the information provided by PowerDNS from outside your DNS server host. You could use Apache, nginx or any other web server you like as a proxy server. That way you can use more advanced authentication methods built into that web server to secure your status page. I will now show you how to do this using Apache 2 on Debian. We’ll need mod_proxy, mod_proxy_http and mod_headers enabled on the Apache 2 server. If you do not want to run an instance of Apache 2 on your DNS server, you could use an SSL tunnel or a secure back channel link to a remote Apache server to retrieve the status page. But this is beyond the scope of this post.

First, enable the internal PowerDNS web server by editing the configuration file.

  1. webserver=yes
  2. webserver-address=127.0.0.1
  3. webserver-port=8081
  4. webserver-password=PowerDNS

This tells PowerDNS to run the internal web server on port 8081 of the localhost interface. The user name will be admin and the password will be PowerDNS. Of course you should change the password to something more secure, it’s just an example. After a restart of PowerDNS you can connect to your server from your DNS server host. The password is optional, but it’s safer that way, especially in an environment where you’ve got other users on your DNS server box.

Now install and enable the required modules of Apache 2 by executing the following commands.

  1. apt-get install libapache2-mod-proxy-html
  2. a2enmod proxy
  3. a2enmod proxy_http
  4. a2enmod headers

The last module is only needed, if you set a password for your internal web server as recommended above. I assume that you’ve got some kind of virtual host configuration for your Apache server. You’ll want to add a new virtual host for the DNS status information. If you use a subdirectory, navigation might be a bit odd. Let’s add a new site to the available sites.

  1. vi /etc/apache2/sites-available/status.dns.example.net
  2. <VirtualHost 192.168.0.1:80>
  3. ServerName status.dns.example.net
  4. DocumentRoot /var/www/
  5. ProxyRequests Off
  6. <proxy *>
  7. Order deny,allow
  8. Allow from all
  9. ForceType 'text/html; charset=UTF-8'
  10. </proxy>
  11. ProxyPass / http://localhost:8081
  12. ProxyPassReverse / http://localhost:8081
  13. </VirtualHost>

Alright, so what are we doing here? Basically, we’re adding a new virtual host status.dns.example.net on our main interface of dns.example.net. We’re using a reverse proxy to to send all requests coming from the outside to our internal PowerDNS web server on port 8081. Also, we’re forcing a text/html content type in the proxy request filter, because otherwise we would just get text/plain and we would simply see the source code, which is probably not what you want. Let’s enable the site for a test:

  1. a2ensite status.dns.example.net
  2. /etc/init.d/apache2 reload

If you point your web browser to status.dns.example.net you should now see the internal status page of PowerDNS. If you set a password above, you will see a password dialogue. This is the password dialogue sent by the PowerDNS web server. The user name is admin and the password is your password. Try it out now, because we’ll get rid of this in a minute.

For security reasons, you probably want to use Apache 2 for authentication. E.g. you might want use a SSL connection and authenticate your co-workers using the internal LDAP server of your company intranet. You might even stay with the insecure basic authentication method, but use other user names. This is entirely up to you and beyond the scope of this post. Consult the Apache 2 documentation on how to do this. What you probably don’t want to do, however, is to authenticate twice (first your secure authentication method and then PowerDNS basic authentication. Luckily, we can configure the Apache 2 proxy to do the authentication for us. This is a bit tricky, though.
To authenticate at the PowerDNS server, Apache 2 needs to send an additional Authorization header line to the PowerDNS server with every request it handles. We use the RequestHeader directive to override any existing Authorization header with our own authentication data. Add the following lines just before the end of the virtual host container.

  1. <Location />
  2. RequestHeader Set Authorization "Basic YWRtaW46UG93ZXJETlM="
  3. </Location>

The above example works only for our example password, which is PowerDNS. Try it for a test. This is, because part of the header value is encrypted using the base64 algorithm. You need to change the encrypted part YWRtaW46UG93ZXJETlM=. In plain text the encrypted string would read admin:PowerDNS, where admin is the user name and PowerDNS is the password. To use your own password, you need to encrypt the string admin:yourownpassword using the base64 algorithm and replace our example string. Be sure to keep the Basic and the space. It is crucial for success, that you’ve got the right encrypted string. There are a number of online tools, to encode and decode these strings. To ensure, that you’ve got the correct encryption method, encode the example string and compare it to the string above for a reference. If you’ve got the wrong string, it will not work.

Restart the Apache 2 server. To clear your password cache, restart your browser. Now surf to the site again. You will see, that the password dialogue is gone. Now, don’t forget to secure the page again using Apache 2. Under any circumstances, do not use Directory containers in the configuration. These will not apply to the proxy, because the proxy is not a physical directory on your server. Use Location containers like we did above for setting the RequestHeader directive. Also, you could still use insecure basic authentication to secure the page, if you wanted. It would work regardless of the RequestHeader magic.

A light-weight alternative

For those of you, who think that Apache is too heavy, here is an example for the nginx web server:

  1. vi /etc/nginx/sites-available/status.dns.example.net
  2. server {
  3. listen 192.168.0.1:80;
  4. server_name status.dns.example.net;
  5. root /var/www/nginx-default;
  6. location / {
  7. index index.html
  8. proxy_pass http://localhost:8081;
  9. proxy_redirect off;
  10. proxy_set_header Authorization "Basic YWRtaW46UG93ZXJETlM=";
  11. }
  12. }

by Patrick at February 16, 2010 07:02 AM

February 14, 2010

7clausen

….

Winkeeisbär unter Wasser

Winkeeisbär unter Wasser

by irata at February 14, 2010 10:36 PM

2molle

Archon Defender

Ein sehr schoener Animationsfilm, den Krupicz innerhalb von 3 Jahren vollstaendig alleine erstellt hat (Abgesehen von den Stimmen)
Erinnert insgesamt etwas an "Avatar the last Airbender". Der Film hat Fantasy und SciFi anklaenge. Das Sounddesign ist insgesamt sehr schoen und untypisch, leider sind die Stimmen nicht immer deutlich.

Die Geschichte handelt von Verlust, Betrug und daraus resultierendem Krieg.

Lizenz: Laut vodo.net: CC-BY

Sprache: Englisch
Website: http://archondefender.com/
Download: http://www.vodo.net/archondefender
IMDB: http://www.imdb.com/title/tt1490539/
Titelbildreferenz: Deeplink auf vodo.net

by MoKrates (noreply@blogger.com) at February 14, 2010 04:09 PM

Valkaama

Lasse muss sich auf die Reise machen, um ein neues Leben zu beginnen.

Die Schauspieler sind keine Muttersprachler, und leider ist der Ton insgesamt etwas matschig, und deshalb stellenweise schwer zu verstehen.
Ansonsten gefaellt mir der Film recht gut.

Lizenz: CC-BY-SA


Sprache: Englisch. Untertitel vorhanden.

Website: http://www.valkaama.com/

Download: http://www.valkaama.com/index.php?page=sources&l=en

Via: Musikpiraten
Titelbildreferenz: Deeplink auf valkaama.com

by MoKrates (noreply@blogger.com) at February 14, 2010 04:00 PM

February 13, 2010

7clausen

February 12, 2010

4tmuelle

FOSDEM 2010

This years FOSDEM involved meeting familiar and new people as well as a lot of beer ;-) I can’t understand why the Belgians are so proud of their beer though :> Anyway, I got way too less sleep and spent too much money…
I wished I connected to more new people but I was terribly busy catching up with all the faces that I haven’t seen in a while. Hopefully, I can meet more new people next time. FOSDEM Logo

Although I was scheduled as the very first in the morning after the official Beer-Event (thx teuf…) my talk in the GNOME devroom went well and I hope I represented GNOMEs Bugsquad well. At least two people wanted to help out :-) I hope I was inviting and clear enough. I definitely need to try to hold the people by at least writing to bugsquad-list. I hope I come around doing that, but I also have a huge backlog that wants to be processed. On the todo list is a new bugsquad as well as a membership-committee meeting, so if you are interested, watch out for mails :-)

If you happen to have seen my talk at FOSDEM and want to look over the slides, please find them  here. If you have been there and want to join the bugsquad fun: Awesome! Join the mailinglist now and wait for the next meeting to be organized. Don’t hesitate to push for it ;-)
If you haven’t been there but you want to help the Free Software movement or GNOME in particular: Awesome! Consider subscribing the mailinglist or join the IRC Channel and make sure that you’ve read our awesome TriageGuide :-)

Talks that I have enjoyed at FOSDEM include Maemo6 Platform Security by Elena because Nokia is about to build yet another security for Linux to meet their needs. Apparently the new Maemo devices will come with a TPM to allow DRM like scenarios. But also encrypting data on the device will be possible using an API which in turn uses the built-in keys. These turn out to be recoverable nowadays. If I read this correctly, then the “Open Mode” will not make use of the TPM keys. This means that if your contacts, images, texts, etc…, were encrypted using the above mentioned API, then you couldn’t get hold of this data in Open Mode :( I thus reckon that stuff like Contacts will not be stored encrypted. Hence you would leak all your data when losing the device. So I don’t expect a real advantage but we’ll see.
Another not very informative yet entertaining talk was done by Greg Kroah-Hartman and dealt with creating a patch for Linux. It actually motivated me so that I put “fixing some random driver in staging” on my Todo-List ;-)

Note to self for the next FOSDEM: Book accommodation early. Very early! Also, Charleroi might not be worth it, because the Bus from Brussels to CLR is 13 Euro, return 21.

by muelli at February 12, 2010 09:58 AM

February 07, 2010

7clausen

February 05, 2010

minbibs

sh

Das Regionale Rechenzentrum konnte 2010 eine Campuslizenz für die Literaturverwaltungssoftware Citavi Pro für die Universität Hamburg erwerben.

Ab sofort können Mitarbeitende und Studierende der Universität Hamburg dieses Programm für Studium, Lehre und Forschung am Arbeitsplatz und daheim nutzen.

Weitere Informationen wie Sie einen Lizenzschlüssel erhalten und zur Nutzung des Programms finden Sie h i e r.


by SH at February 05, 2010 01:59 PM

January 29, 2010

7clausen

January 28, 2010

minbibs

Banner,SpringerMaterials,60days,180x80px

Der Testzugriff für SpringerMaterials The Landolt-Boernstein Database ist bis Ende März 2010 verlängert worden. Probieren Sie es aus.
Zugang erfolgt über: http://www.springermaterials.com/Zugang zu SpringerMaterials Sie verfuegen in diesem Zeitraum ueber den Zugang zur weltweit groessten Referenzdatenbank in allen Bereichen der Physical Sciences (90.000 PDF-Dokumente, 165.000 Substanzen und mehr als eine Million Literaturverweise). SpringerMaterials basiert auf dem renommierten Klassiker Landolt-Boernstein, der seit mehr als 125 Jahren als Quelle fuer verlaessliches Expertenwissen dient. Suchen Sie ganz einfach nach Substanzen/Elementen, Substanzeigenschaften, Chemischer Formel oder CAS Nummer. Wir wuenschen Ihnen viel Vergnuegen beim Testen von SpringerMaterials, und stehen Ihnen bei Fragen jederzeit gerne zur Verfuegung bzw. leiten die an Springer weiter.


by YK at January 28, 2010 01:30 PM

raabzmaw

Um das E-Medien-Angebot der Universität Hamburg von zuhause aus abrufen zu können, müssen Sie das erste vorgenerierte Passwort ihres Bibliotheksausweises (die ersten 3 Buchstaben des Nachnamens) einmalig ändern.

Sie können das Passwort im Campus-Katalog unter “Benutzer-Info” ändern.

Bei Fragen wenden Sie sich bitte an die Kollegen und Kolleginnen der MIN-Bibliotheken.


by KR at January 28, 2010 08:43 AM

January 25, 2010

4tmuelle

WTFOTM: Hotels warming your bed

My favourite service, in the series WTFOTM, of this month is *drumroll* a Hotel that sends its employees, wearing an electric blanket, to your bed to warm it up for you.

A hotel chain is employing human bed warmers to help guests get a good night’s sleep.

There’s nothing wrong with having a warm bed, but having hotel employees warming that up for you?! That just feels a bit weird and thus: WTF?!

by muelli at January 25, 2010 02:22 PM

Digital Divide

Als Student kommt es hin und wieder vor, dass ich eine Hausarbeit schreiben muss. Da ich fest davon ueberzeugt, dass Uni, Wissenschaft und Wissen so frei wie moeglich sein sollten, und jedermensch auch noch durch Zahlung von Steuern potentiell das Studieren finanziert, denke ich, hat jedermensch das Recht mindestens zu sehen was ich so eigentlich den lieben langen Tag so mache.

Internet sei dank ist es heutzutage eher einfach, Dinge zu publizieren und Wissen fortzutragen. Deswegen gibt es hier nun eine Hausarbeit, die ich im letzten Semester in Gender Studies geschrieben habe.

Alien Toilet Sign

Alien Toilet Sign

Das Paper traegt den Namen “Weiblicher Zugang zu Technik und feministische Politiken” und das Abstract liesst sich wiefolgt:

Die Gründe, die zum Digital Divide, der digitalen Kluft, führen, sind vielfältig und Geschlecht ist einer davon.
Auch weibliche Gruppierungen haben das Ziel, den Anteil weiblicher Teilnehmer im Digitalen zu erhöhen.
Die Arbeit analysiert, wie dieses Ziel erreicht werden soll, warum das nicht gelingt und wie es eventuell doch erreicht werden kann.

Das PDF gibt es hier und ist als “Namensnennung-Keine kommerzielle Nutzung-Weitergabe unter gleichen Bedingungen 3.0 Deutschland” fuer jedermensch lizensiert. Das heisst aber nicht, dass ich es auf Anfrage anders lizensieren kann.

Die Arbeit liesst sich an einigen Stellen etwas ruckelig, was der Entstehungsgeschichte geschuldet ist. Im Prinzip sind aus 2.5 Arbeiten eine geworden. Ich hoffe, es ist dennoch nicht so schlimm.

Sollte das PDF inhaltlich nicht so spannend sein, lohnt es sich doch auf die technischen Details zu achten. So weiss das PDF, wie dessen Inhalt lizensiert ist. Dazu benutzt es XMP streams, die in das PDF eingebetted wurden. Die sind mit dem Paket hyperxmp ueber LaTeX in das PDF gekommen. Offiziell wird noch xmpincl empfohlen, aber das ist wirklich fies zu benutzen, weil mensch den XMP stream selbst erstellen muss.

\usepackage{hyperxmp}         % To be have an XMP Data Stream f.e. to include the license
[...]
\hypersetup{
        pdftitle={Weiblicher Zugang zu Technik und feministische Politiken},
        pdfauthor={Tobias Mueller},
        [...]
        pdfcopyright={This work is licensed to the public under the Creative Commons Attribution-Non-Commercial-Share Alike 3.0 Germany License.},
        pdflicenseurl={http://creativecommons.org/licenses/by-nc-sa/3.0/de/}
}

Mein Evince 2.29.1 (mit JHBuild gebaut) zeigt die Lizenzinformation froehlich an, Okular 0.9.2 nicht. Wie es sonst moeglich ist, in PDF eingebettete XMP Daten anzusehen, weiss ich nicht. Es waere fuer eine automatisierte Verarbeitung sicherlich interessant.

Vielen Dank and Chillum und Sourci, die mir beratend und patchend zur Seite standen und denen der Text wahrscheinlich zu den Ohren wieder herauskommt ;-)

Fuer eine inhaltliche Diskussion ist die Kommentarfunktion wohl eher schlecht geeignet aber in Ermangelung an Alternativen steht sie dazu zur Verfuegung. Ich mag die Loesung, die das Djangobook benutzt. Am Rand von jedem Absatz gibt es eine Kommentarfunktion die sehr gut funktioniert.

by muelli at January 25, 2010 02:19 PM

CfP Easterhegg 10 in Muenchen

Ein neues Jahr, eine neues Eaterhegg :-) Dieses Mal in Muenchen vom 2010-04-02 bis 2010-04-05.

Es folgt eine Kopierpaste des originalen CfP:

Was ist das Easterhegg?

Das Easterhegg ist das Oster- und Familientreffen des Chaos Computer Clubs und seiner Freunde. Im Jahr 2010 will der µCCC auf der Flucht vor langweiligen Familienfesten kreatives Asyl im familiaeren Kreise Gleichgesinnter bieten. So wird zum Fest nach Muenchen eingeladen, aber nicht nur das: Bei diesem Fest geht es aber auch darum, konkret an Dingen zu basteln und auch darum, immer ein paar Ecken weiterzudenken.

Erfahrungsgemaess werden in den Workshops sowohl sehr technische, als auch immer haeufiger gesellschaftspolitische Themen behandelt. Gefreut wird sich also ueber skurrile Softwarebastelleien, handgreifliche Loetorgien, Aufdeckung von Verschwoerungungen und spontane Realisierungen einer Utopie – oder auch nur Vorschlaege dazu.
Gern gesehen sind aber auch andere Themen, die bewegen und von denen Ihr denkt, dass sie fuer einige Teilnehmer anregend und spannend sind.

Wann und Wo?

Von Karfreitag 02.04.2010 bis Ostermontag 05.04.2010 im  EineWeltHaus  Muenchen Schwanthalerstr. 80 80336 Muenchen bei 48.156582,11.543541.

Einreichungen

Es wird darum gebeten, das Pentabarf zu nutzen: https://cccv.pentabarf.org/submission/EH2010/
Im Anschluss an die Veranstaltung moechten die Folien unter einer freien Lizenz veroeffentlicht werden. Als Richtwert wird fuer Vortraege ca. eine Stunde, fuer Workshops ca. drei Stunden vorgegeben. Alle Zeiten sind frei veraenderbar. Es gilt: Wuensche bitte bei der Einreichung angeben, um einen reibungslosen Ablauf zu gewaehrleisten.

Wir moechten wissen…

…worum es in deinem Workshop/Vortrag geht
…warum du dich mit dem Thema beschaeftigst
…wieso das Thema fuer unsere Besucher interessant ist
…wieviel Zeit Du fuer Deine Veranstaltung gerne haettest
…und was du sonst noch benoetigst (Beamer, Netz, Mobiliar)

Einsendeschluss ist der 21. Februar 2010

Ich glaube, ich werde etwas zu Krypto, Buffer Overflows und Mobile Security machen. Mal gucken :-)

by muelli at January 25, 2010 01:09 PM

WTFOTM: Email validating RegExp

I think I’ll start a new series: My wtf of the month. This time, it’s a regular expression I found.

How much does it take to validate an email address, you might ask. Well, can’t be that hard, right? If you read the corresponding RFC 5322, you’ll notice that the local part of an email address (that is the part in front of the “@”) contains “dot-atoms”. Section 3.4.1 writes:

local-part      =   dot-atom / quoted-string / obs-local-part

At the end of the day, a “dot-atom” is a “dot-atom-text” which is a “atext” which is according to section 3.2.3:

atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
“!” / “#” /        ;  characters not including
“$” / “%” /        ;  specials.  Used for atoms.
“&” / “‘” /
“*” / “+” /
“-” / “/” /
“=” / “?” /
“^” / “_” /
“`” / “{” /
“|” / “}” /
“~”

That effectively allows you to have email addresses like !foo$bar/baz=qux@example.com, "#~foo@bar^^"@example.com, `echo${LFS}ssh-rsa${LFS}AAA...|tee${LFS}~/.ssh/authorized_keys`@example.com. I am more than curious to see how servers and MUAs (especially on mobile devices) handle these cases.

I came around to bother because some poor guy wanted to implement email address validation in Evolution. I found the yet untested but obviously correct way in a Perl module:

$RFC822PAT = <<'EOF';
[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\
xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xf
f\n\015()]*)*\)[\040\t]*)*(?:(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\x
ff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n\015
"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\
xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80
-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*
)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\
\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\
x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n
\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\x
80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^
\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040
\t]*)*)*@[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([
^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\
\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\
x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-
\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()
]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\
x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\04
0\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\
n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\
015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?!
[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\
]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\
x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\01
5()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)*|(?:[^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]
)|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[^
()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]*(?:(?:\([^\\\x80-\xff\n\0
15()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][
^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)|"[^\\\x80-\xff\
n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[^()<>@,;:".\\\[\]\
x80-\xff\000-\010\012-\037]*)*<[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?
:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-
\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:@[\040\t]*
(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015
()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()
]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\0
40)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\
[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\
xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*
)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80
-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x
80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t
]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\
\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])
*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x
80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80
-\xff\n\015()]*)*\)[\040\t]*)*)*(?:,[\040\t]*(?:\([^\\\x80-\xff\n\015(
)]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\
\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*@[\040\t
]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\0
15()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015
()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(
\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|
\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80
-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()
]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x
80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^
\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040
\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff
])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\
\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x
80-\xff\n\015()]*)*\)[\040\t]*)*)*)*:[\040\t]*(?:\([^\\\x80-\xff\n\015
()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\
\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)?(?:[^
(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-
\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\
n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|
\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))
[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff
\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\x
ff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(
?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\
000-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\
xff\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\x
ff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)
*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)*@[\040\t]*(?:\([^\\\x80-\x
ff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-
\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)
*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\
]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\]
)[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-
\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\x
ff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(
?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80
-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<
>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:
\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]
*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)
*\)[\040\t]*)*)*>)
EOF

This is a handy 6.5kB regular expression that validates an email address. I wonder how long it takes to compile and to actually match an email address against… (Arr, stupid wordpress escapes all those fancy characters everytime I have the edit widget open :-( )

So, now go and fix your email address validating script.

by muelli at January 25, 2010 01:06 PM

26C3 Review

Attending last years CCCongress was a great pleasure. Although there were great lectures, it’s the spirit that’s the best part of the conference. Meeting all these nice hacker people, hanging around, talking, discussing, hacking is just brilliant. You’ve got all those smart hackers around you and it just can’t get boring.26c3 logo

A good way of socialising is, of course, visiting the various parties that take place. The Phenoelit party was awesome. Thanks FX for the invites :)

Besides drinking I spent time on some crypto problems and tried to investigate on the magnetic-stripe-card authentication in Hotels and Hostels. I found out, that all our cards for one room are equal, but not one card that has been obtained later. The data on the card is just ~100bits and I tried to find timestamps and room numbers in it but I failed. I blame my dataset to be too small. I’ll launch more advanced experiments next year. If you happen to have insider knowledge in magnetic-stripe locks, drop me a line.

I want to highlight two things about the last CCCongress. Firstly, Friend Tickets were available and the concept is just awesome: Basically you can propose a friend of yours you think would benefit of attending the CCCongress but has no way to cover the expenses. The organisers then decide whether you can get a discount (which will, of course, apportioned to every regularly paying attendee). I like to see this solidarity among hackers. Unfortunately, no stats are available to see how many people were enabled to come through this method. I hope, having these friend tickets will be considered next year again. So if you wanted to come to the CCCongress but feared the expenses, consider asking for a discount. Just for the record: The prices are at rock bottom anyway: 80 Euros for a 4 day conference of this kind is amazingly cheap. Thanks to all the angels! :-)

The second noteworthy concept to distribute the CCCongress as much as possible (called Dragons Everywhere). The idea is fantastic: Increase the number of attendees as much as possible by building mini conferences and stream the most important things. It would be even better, if the gatherings had a feedback channel, i.e. Webcam. Hopefully, it’ll be better next year, i.e. better and more reliable streaming services and more places, especially in Berlin, because many people were sent away because the conference was already sold out :(

If you want to get a feeling of what the CCCongress is like, you might want to have a look at the recordings. If you organize a public viewing, make sure you show these videos :-) Based on the feedback, the best talks were:

And for entertainment, the following German talks are very good:

I hope you enjoy watching the CCCongress and consider coming in next year!

by muelli at January 25, 2010 12:07 PM

January 22, 2010

2burmest

CampusGrün auch bei AS Wahl vorne

Auch aus den Wahlen zum Akademischen Senat ist CampusGrün als stärkste Kraft hervorgegangen.

Ergebnis AS Wahl 2009/10 (Stimmen)

Stimmverteilung

Somit stellt CampusGrün wie bisher einen von drei studentischen Sitzen. In das höchste demokratisch gewählte Gremium der Uni Hamburg wiedergewählt wurden für CampusGrün: Arne Köhn (Hauptmitglied) und Kai Hildebrandt (Stellvertreter).

Vielen Dank für Euer Vertrauen!

Die Ergebnisse im einzelnen:

Liste Stimmen Prozent Sitze
Bündnis für Aufklärung und Emanzipation! (BAE!) 1174 (+435) 23,63% (+5,47%) 1 (+1)
CampusGrün 1488 (+267) 29,95% (-0,05%) 1
Jura-, Mediziner, WiWi-Liste, LHG 1346 (+12) 27,09% (-5,69%) 1
Jusos - Campus International - GeiWi-Liste 866 (+90) 17,43% (-1,64%) 0 (-1)
Uni P.U.R. Produktiv, Unabhängig, Repräsentativ 95 (neu) 1,91% (neu) 0

Ungültige: 25 (-22)

Wahlbeteiligung: 13,3% (+1,8%)

Update: Inzwischen liegt das vorläufige Wahlergebnis vor. Im Vergleich zu den vorab hier veröffentlichten Zahlen gibt es keine Änderungen.

CampusGrün ist im Vorjahr zusammen mit Regenbogen/AL zur AS-Wahl angetreten, die Vergleichszahlen vom Vorjahr stammen von der gemeinsamen Liste.

January 22, 2010 02:38 PM

minbibs

Banner,SpringerImages,60days,180x80px

Noch bis Ende Februar 2010 läuft der Testzugang zu Springer Images (Bilddatenbank). SpringerImages bietet den Zugang zu mehr als 1,7 Millionen Fotos, Grafiken, Histogramme und Tabellen aus allen Fachbereichen der Wissenschaft, Technologie und Medizin. Ausgeprägte Suchfunktionalitäten
erlauben die Suche wahlweise in den Bildlegenden oder im €žFull Text€œ, der auch Keywords und Tabelleninhalte umfasst. Wenn Sie sich persönlich registrieren, können Sie eigene Bildsets erstellen und diese in PowerPoint und PDF herunterladen.
Der Zugriff erfolgt campusweit über: http://www.springerimages.com/


by YK at January 22, 2010 01:15 PM

7clausen

5fey

Display MySQL query output on the command line

If you are using the MySQL command line client regularly, the following scenario might be familiar to you: You run a select on a table, which contains a lot of fields. The output will not fit on one line, which means that it will be unreadable. Consider the following example:

  1. mysql> SELECT * FROM posts LIMIT 1;
  2. +----+-------------+---------------------+---------------------+--------------------------------+--------------+-----------
  3. ----+--------------+----------+----------+-------------+----------------+-------------+---------------+-------------+----
  4. -----+--------+---------------------+---------------------+-----------------------+-------------+-------+------------+----
  5. -------+----------------+---------------+
  6. | ID | post_author | post_date | post_date_gmt | post_content | post_title |
  7. post_category | post_excerpt | post_lat | post_lon | post_status | comment_status | ping_status |
  8. post_password | post_name | to_ping | pinged | post_modified | post_modified_gmt |
  9. post_content_filtered | post_parent | guid | menu_order | post_type | post_mime_type |
  10. comment_count |

  11. +----+-------------+---------------------+---------------------+--------------------------------+--------------+-----------
  12. ----+--------------+----------+----------+-------------+----------------+-------------+---------------+-------------+----
  13. -----+--------+---------------------+---------------------+-----------------------+-------------+-------+------------+----
  14. -------+----------------+---------------+

  15. | 1 | 1 | 2004-01-17 18:17:37 | 2004-01-17 16:17:37 | We'll see what time brings ... | Hello world! | 1
  16. | | NULL | NULL | publish | closed | closed | | hello-world
  17. | | | 2004-01-17 18:17:37 | 2004-01-17 16:17:37 | | 0 | /?p=1
  18. | 0 | post | | 0 |

  19. +----+-------------+---------------------+---------------------+--------------------------------+--------------+-----------
  20. ----+--------------+----------+----------+-------------+----------------+-------------+---------------+-------------+----
  21. -----+--------+---------------------+---------------------+-----------------------+-------------+-------+------------+----
  22. -------+----------------+---------------+
  23. 1 row in set (0.00 sec)

There is actually a nice solution for this. By default, the command line client uses horizontal mode to display the results of MySQL queries. If you use \G instead of ; or \g at the end of the line, your query result will be displayed in vertical mode, which will look a lot better:

  1. mysql> SELECT * FROM posts LIMIT 1\G
  2. *************************** 1. row ***************************
  3. ID: 1
  4. post_author: 1
  5. post_date: 2004-01-17 18:17:37
  6. post_date_gmt: 2004-01-17 16:17:37
  7. post_content: We'll see what time brings ...
  8. post_title: Hello world!
  9. post_category: 1
  10. post_excerpt:
  11. post_lat: NULL
  12. post_lon: NULL
  13. post_status: publish
  14. comment_status: closed
  15. ping_status: closed
  16. post_password:
  17. post_name: hello-world
  18. to_ping:
  19. pinged:
  20. post_modified: 2004-01-17 18:17:37
  21. post_modified_gmt: 2004-01-17 16:17:37
  22. post_content_filtered:
  23. post_parent: 0
  24. guid: /?p=1
  25. menu_order: 0
  26. post_type: post
  27. post_mime_type:
  28. comment_count: 0
  29. 1 row in set (0.00 sec)

While vertical output uses a lot more vertical space than the horizontal output, the vertical output is a lot more readable. Now you can probably see what I used as example query. It is actually the first post from this blog. Yes, this blog just got 6 years old ;).

If you want your command line client to use vertical mode by default, you can add vertical to the client section ([client]) of your .my.cnf file. This would look something like this:

  1. [client]
  2. vertical

by Patrick at January 22, 2010 06:09 AM

January 19, 2010

mezcalero

India, 360 Degrees at a Time, Part Seven

Here's the seventh and final part of my ongoing series.

One of the grandest sights in Delhi is Humayun's tomb, a predecessor of the greatest mausoleum of them all, the Taj Mahal:

Humayun's Tomb

A little bit further down a view on the garden:

Humayun's Tomb

From a different corner:

Humayun's Tomb

We'll finish with our last panorama that shows the courtyard the Jama Masjid of Old Delhi:

Jama Masjid

That's all panoramas from this trip. Thanks for your interest.

January 19, 2010 08:43 PM

January 18, 2010

mezcalero

India, 360 Degrees at a Time, Part Six

Here's the sixth part of my ongoing series.

Leaving Jodhpur we continued our journey to Jaisalmer, a sand castle of a town in the Thar desert:

Jaisalmer

In the vicinity of Jaisalmer you'll find cliche sand dunes like you'd expect from a grown-up desert:

Jaisalmer

Our next station after a long, cold and dusty train ride was Delhi. The principal mosque of Old Delhi is the Jama Masjid:

Jama Masjid

That's all for now, tomorrow I'll post the rest of my panoramas from this trip, all from Delhi.

January 18, 2010 09:14 PM

January 17, 2010

mezcalero

India, 360 Degrees at a Time, Part Five

Here's the fourth part of my ongoing series.

After Udaipur the next stop on our trip was Jodhpur, the blue city. Which is called that way due of the blue colour of many of its houses:

Jodhpur

On a hill next to Mehrangarh Fort, one of the biggest Forts in India (the big sand castle on the hill in the panorama above), you find the Jaswant Thada, a memorial of the Maharajas of Jodhpur:

Jodhpur

Inside the fort you'll find highly decorated courtyards:

Jodhpur

That's all for Jodhpur, tomorrow I'll post more panoramas, from other stops of our trip.

January 17, 2010 05:43 PM

hannosch

Plone 4 - How much faster is it?

During my work on Plone "trunk" in the last year, I kept posting some fancy graphs showing the speed improvements for rendering pages. Much has happened since I last posted one of these in March 2009.

The newly coined Plone 4 is almost ready for a beta release and some companies have started using the alphas for production projects. Overall it's snappy, fun and stable. But how does it stack up against my experimental work? I got the good old ZPTDebugger out and optimized some more rough edges during the weekend and squeezed out another 10%. See the result for yourself:

Compared to Plone 3.3 Plone 4.0 is about 50% faster, ranging from 30% for edit pages up to 70% for anonymous page views. If you use the Chameleon template engine, you get two to three times the speed compared to 3.3.

As a little experiment I trimmed down the default content, portlets and viewlets in a 4.0 site to match what I had done in my experimental work. So I removed all portlets, hid the section, personal bar, site actions and content history viewlets and measured again. In the Chameleon setup you get the same kind of results as I did back in March. For anonymous page views, we are roughly at 50 requests / second. Removing all those elements might sound somewhat odd, but if you don't need some of these features or use xdv to supply some of these elements as static HTML, you can actually get close to these numbers.

It's good to see my work finally in the mainline and available to all. Now onwards to the next adventure, making Plone easier to use and develop for :-)

P.S. The controlpanel stats are indeed correct, though they look pretty odd. I didn't try to find the cause of the slowdown compared to all other page types.

by hannosch@gmail.com (Hanno Schlichting) at January 17, 2010 05:33 PM

7clausen

The Internet Is Made Of Cats

The Internet Is Made Of Cats

The Internet Is Made Of Cats

The Internet Is Made Of Cats. This is FACT and also science. We have written this educational song on the subject. It is wonderful and will also make you clever.

by irata at January 17, 2010 03:58 PM

January 16, 2010

7clausen

2burmest

CampusGrün wird stärkste Kraft im StuPa

Die Stimmen zur Wahl zum Studierendenparlament wurden in der Nacht zum 16.01. ausgezählt. CampusGrün ist mit deutlichem Abstand als stärkste Liste aus dieser Wahl hervorgegangen. In der kommenden Legislatur wird CampusGrün mit acht Sitzen im StuPa vertreten sein. Die zweitstärkste Liste, Regenbogen, ist mit sechs Sitzen vertreten. Erfreulich ist zudem, dass die Wahlbeteiligung der Studierenden von 22,4% auf rund 25% gestiegen ist.

CampusGrün auf der Wahlparty

Wir freuen uns sehr über dieses Ergebnis und bedanken uns bei allen unseren WählerInnen für ihr Vertrauen.

Zusammensetzung des StuPa 2010/11

Sitzverteilung StuPa 10/11

Für CampusGrün im StuPa sind ab dem Sommersemester 2010 für Euch vertreten: Swantje Böttcher, Ingo Balzereit, Sophie Kaphengst, André Dettmering, Katja Weiden, Daniel Lentfer, Luise Günther (über die Liste) und Tim Krämer (Direktmandat).

Hier die Ergebnisse im Einzelnen:

Liste Stimmen Prozent Sitze
GeiWi 961 (+524) 10,09% (+4,69%) 5 (+2)
JuraListe 413 (-6) 4,33% (-0,84%) 2 (-1)
Jusos 920 (-71) 9,65% (-2,58%) 5 (-1)
CampusGrün 1425 (+462) 14,95% (+3,06%) 8 (+2)
Campus Int. 211 (neu) 2,21% (neu) 0
St. Pauli 88 (-3) 0,92% (-0,20%) 0
LHG 517 (-145) 5,43% (-2,75%) 3 (-1)
EPB 417 (neu) 4,38% (neu) 2 (neu)
Tierbefreiung 26 (-21) 0,27% (-0,31%) 0
STOP-Bertelsmann 78 (neu) 0,82% (neu) 0
RCDS 237 (-10) 2,49% (-0,56%) 0 (-2)
Mediziner 614 (+27) 6,44% (-0,81%) 3 (-1)
hisverjus 12 0,13% (-0,02%) 0
Die Linke.SDS 484 (-57) 5,08% (-1,60%) 3
Kultur Campus 113 (neu) 1,19% (neu) 0
Uni P.U.R. 139 (neu) 1,46% (neu) 0
Regenbogen/AL 975 (+47) 10,23% (-1,23%) 6
harte zeiten 185 (-46) 1,94% (-0,91%) 0 (-1)
FSB 240 (-228) 2,52% (-3,26%) 1 (-2)
Piraten 295 (neu) 3,10% (neu) 2 (neu)
LINKS 337 (-19) 3,54% (-0,86%) 2
Freiheitliche Liste 16 (neu) 0,17% (neu) 0
wiwi-Liste 826 (+110) 8,67% (-0,17%) 5 (+1)

Enthaltungen: 15
Ungültige: 26 (-6)

Gültige Stimmen: 9529 (+1432)
Wahlbeteiligung: 25,42% (+ 2,98%)

Diese Zahlen basieren auf dem vorläufigen Endergebnis.

Die Wahl zum Akademischen Senat läuft noch bis Montag, den 18. Januar um 14:00 Uhr (Eingang beim Wahlamt ist entscheidend). Diese Wahl findet als reine Briefwahl statt. Entweder jetzt schnell den Brief in den Briefkasten werfen oder Montag beim Wahlamt (Moorweidenstraße 18, Raum 338) vorbeibringen.

January 16, 2010 04:15 AM

mezcalero

India, 360 Degrees at a Time, Part Four

Here's the fourth part of my ongoing series.

After Hampi we went to Bangalore to attend foss.in. (Fantastic conference, btw. The concerts at the venue are unparalleled.) From there we flew up to Udaipur, in Rajasthan. Udaipur is (among other things) famous for being the place where the central scenes of Octopussy were filmed. Octopussy's famous white palace is on Jagniwas Island in Lake Pichola:

Udaipur

This panorama was taken from another island in the lake, Jagmandir Island, which is visible in the following shot on the left:

Udaipur

Udaipur's scenery, seen from the Maharaja's City Palace down onto Pichola Lake:

Udaipur

That's all for Udaipur, tomorrow I'll post more panoramas, from other stops of our trip.

January 16, 2010 02:10 AM

Announcing udev-browse

It's easy to get lost in /sys and not much fun typing long udevadm info command lines all the time. Today, when I had enough of that I sat down and spent an hour to write a little UI for exploring the udev/sysfs tree: udev-browse. I wrote it for my own use, but I am quite sure I am not the only one who wants a little bit simpler access to the device tree. So here you go.

And since everybody loves screenshots here you go:

udev-browse

Two usability hints: if you run udev-browse from a directory in /sys udev-browse will automatically present the device of that path on startup. And if you know the name of a device you can just type it into the device listbox (which is focussed by default). The usual Gtk+ live search will then find you the right entry right-away. It's pretty nifty.

It's written in Vala with minimal dependencies.

I want to keep the maintainership burden for this minimal. So no tarballs, no releases, and I won't reply to your emails regarding this tool, unless they include a good, clean, git formatted patch. Thank you for your understanding.

Anyone wants to package this for Fedora? I'd be very thankful if someone would pick it up.

Have fun.

January 16, 2010 01:19 AM

January 14, 2010

mezcalero

India, 360 Degrees at a Time, Part Three

Here's the third part of my ongoing series.

Still in Hampi here's another 360 from the Hills in Hampi down to the Achyutaraya Temple:

Matanga Hill

A little further down, before dawn, here's a shot from the rocky path leading up the hill:

Matanga Hill

Our last picture for today is a view down from Hemakuta Hill which is covered with old temples and other structures. In the middle you'll see the large Virupaksha Temple which is still in full use. In that temple you'll find an amazing camera obscura, a physics teacher's dream that projects the temple tower onto a wall (projection, subject, more interesting in reality. Really.)

Hemakuta Hill

That's all for Hampi, tomorrow I'll post more panoramas, from other stops of our trip.

January 14, 2010 10:47 PM

January 13, 2010

minbibs

Historical Encyclopedia of Natural and Mathematical Sciences

Dieses umfangreiche Nachschlagewerk zur Geschichte der Mathematik und Naturwissenschaften  kann ab sofort campusweit online genutzt werden. (Campuslizenz durch die Staats- und Universitätsbibliothek).
Volltextzugang über Geräte auf dem Uni-Campus
Volltextzugang von außerhalb des Campus (nur für Angehörige der Universität)


by MO at January 13, 2010 01:01 PM

2burmest

Gleichstellung mit Pokerface

oder was hat die Gleichstellungskampagne des AStAs mit einem Pokertunier zu tun?

Mit einer Kampagne zur Gleichstellung von Frauen und Männern fand im November eine Veranstaltungsreihe in der Uni statt. Mit der „Frauenhochschulwoche“ bekannte der AStA, dass Frauen immer noch sehr häufig schlechter gestellt sind. Unter dem Slogan „Starke Frauen – Starke Uni“ bemühte sich der AStA das Thema Gleichstellung in das Bewusstsein der KommilitonInnen zu rücken.

Die AStA Vorsitzende Szymanski (Wiwi Liste) zur Frauenhochschulwoche:

Wahre Emanzipation zeigt sich meiner Meinung nach darin, keinerlei Gedanken an den Geschlechterunterschied zu verschwenden, sondern einfach selbstbewusst zu handeln und aufzutreten.

Quelle: www.frauenhochschulwoche.de, AStA Uni HH

Quelle: AStA Uni HH

CampusGrün meint zu der Kampagne, dass das gesellschaftlich tief verankerte Problem der Diskriminierung von Frauen auf der reinen individuellen Wahrnehmungsebene nicht bekämpft werden kann. Stattdessen gilt es, strukturelle Diskriminierung zu enttarnen und auf ihre Beseitigung hinzuwirken.

In einem völlig anderen Lichte erscheint die Gleichstellungskampagne vor dem Hintergrund des am 12.12. stattgefundenen Pokerturniers des AStAs. Dieses wurde mit Flyern stark beworben. Doch die Art und Weise wie dies geschah war mehr als grotesk im Anbetracht der Kampagne zur Gleichstellung.

Flyer des AStA Uni HH, Herbst 2009

Flyer des AStA Uni HH

Man sieht einen Mann in machohafter Pose umringt von drei Frauen, von denen eine ihren Ausschnitt regelrecht präsentiert. Der Mann ist erfolgsverwöhnt, Frauen dienen ihm als Accessoire, Geld und Erfolg machen ihn interessant und anbetungswürdig. Von Gleichstellung kann hier keine Rede sein, da klare Rollenklischees bedient werden. Es stellt sich die Frage, ob dem AStA die Frage der Gleichstellung nicht so wichtig ist wie in der Kampagne beworben oder, ob eine Hand nicht weiß was die andere macht. Beides ist besorgniserregend. Der AStA schafft es durch solche Aktionen das wichtige Thema der Gleichstellung herabzuwürdigen und in den Hintergrund geraten zu lassen.

Wir fordern eine öffentliche Distanzierung, sowie eine Entschuldigung der Verantwortlichen. Ferner muss aufgeklärt werden wie es zu einem solchen sexistischen Flyer überhaupt kommen konnte. Auch hier zeigt der AStA erneut, dass er nicht fähig ist, politische Gleichstellungsarbeit zu leisten.

Daher in der Urnenwahlwoche vom 11. – 15.01.2010 CampusGrün wählen und wahre Gleichstellung fördern.

January 13, 2010 10:27 AM

January 12, 2010

mezcalero

Public Service Announcement: Beware of xmlCleanupParser()!

Everyone and his dog seem to call libxml2's xmlCleanupParser() at inappropriate places. For example Empathy does it, and Abiword does it too. Google Code Search seems to reveal at least Inkscape and Dia do it as well.

So, please, if your project links against libxml2 verify that it calls xmlCleanupParser() only once, and right before exiting! And if it calls it more often or somewhere else, then please fix that!

For more information see my post on fedora-devel.

Thanks for your time.

January 12, 2010 11:29 PM

India, 360 Degrees at a Time, Part Two

Here's the second part of my ongoing series.

Climbing down the hills, on the banks of the Tungabhadra river you find people washing laundry and bathing, and coracles waiting to be used for a trip through the river.

Tungabhadra River

The greatest of the ancient temples in Hampi is the Vitthala Temple:

Vitthala Temple

Set in in lush green scenery you find the Achyutaraya Temple, which you already might have seen, from above, in yesterday's series:

Achyutaraya Temple

That's it for today, tomorrow I'll post more panoramas, both from Hampi and other stops of our trip.

January 12, 2010 06:05 PM

2burmest

Lösung für Unregelmäßigkeiten bei der Wahl des StuPa gefunden

Mit dem Beginn der Urnenwahlwoche zum Studierendenparlament der Universität Hamburg vom 11. - 15.01.2010 wurden am Montag an den Urnen von den WahlhelferInnen Unregelmäßigkeiten festgestellt.

Urnenwahl

Demnach war die Liste der BriefwählerInnen fehlerhaft. Studierende, die sich bereits per Briefwahl beteiligt haben, waren weiterhin zur Urnenwahl zugelassen. Auch wurden auf der Briefwahliste Studierende aufgeführt, die noch nicht per Brief gewählt hatten.

Am Dienstagmorgen wurden vom Präsidium an die WahlhelferInnen aktualisierte Listen herausgegeben. Wichtig ist, dass alle Studierden, welche gestern von der Urnenwahl abgehalten worden sind, sich ab heute an der Wahl beteiligen können. Damit eine Dopplung der Stimme durch Brief- und Urnenwahl vermieden wird, werden die verschlossenen Briefe vor der Auszählung anhand der Matrikelnummer heraussortiert.

Derzeit ist noch unklar, wie es zu den fehlerhaften BriefwählerInnenlisten kommen konnte. Wir fordern alsbaldige Aufklärung.

CampusGrün ruft alle Studierenden auf, sich an der Wahl des Studierendenparlaments zu beteligen. Macht den Campus grüner!

January 12, 2010 01:01 PM

January 11, 2010

mezcalero

India, 360 Degrees at a Time, Part One

Yes, I won't spare you my panorama shots from my recent trip to India. After arriving in Goa Badami was our next stop. It's a very pretty little town in northern Karnataka, and here's a panorama shot from the entrance of the town's famous caves:

Badami

Next step was one of the most amazing places on earth, Hampi in central Karnataka. It is definitely one of the greatest sights I have ever seen, and I guess I can say I have seen quite a few in my life. A vast landscape of hills covered in boulders, lush mango and banana plantations, rice fields, dotted with age-old temples and impressive ruins. Locals crossing the river in coracles that look like they belong in a time centuries ago. Women washing colourful laundry in the river, pilgrims wading across the river in their black clothes. An India that delivers every bit of that promise it makes to its visitors. The ruins rival the grand sites in Greece and the landscape sometimes looks like a Crysis in-game scene.

Taken from one of the hills in Hampi this is the sunset:

Hampi Sunset

And then, the next day at dawn make your way up the hills again and you can get an even greater view on the whole scenery:

Hampi Dawn

That's it for today, tomorrow I'll post more panoramas, both from Hampi and other stops of our trip.

Also, if you haven't seen them yet, don't miss my panoramas from my India trip the year before.

January 11, 2010 07:56 PM

January 10, 2010

4tmuelle

Adding Linux Syscall

In a course (CA644) we were asked to add a new syscall to the Linux kernel.Linux Oxi Power!

As I believe that knowledge should be as free and as accessible as possible, I thought I have to at least publish our results. Another (though minor) reason is that the society -to some extend- pays for me doing science so I believe that the society deserves to at least see the results.

The need to actually publish that is not very big since a lot of information on how to do that exists already. However, that is mostly outdated. A good article is from macboy but it misses to mention a minor fact: The syscall() function is variadic so that it takes as many arguments as you give it.

So the abstract of the paper, that I’ve written together with Nosmo, reads:

This paper shows how to build a recent Linux kernel from scratch, how to add a new system call to it and how to implement new functionality easily.
The chosen functionality is to retrieve the stack protecting canary so that mitigation of buffer overflow attacks can be circumvented.

And you can download the PDF here.

If it’s not interesting for you content wise, it might be interesting from a technical point of view: The PDF has files attached, so that you don’t need to do the boring stuff yourself but rather save working files and modify them. That is achieved using the embedfile package.

\usepackage{embedfile}        % Provides \embedfile[filename=foo, desc={bar}]{file}
[...]
\embedfile[filespec=writetest.c, mimetype=text/x-c,desc={Program which uses the new systemcall}]{../code/userland/writetest.c}%

If your PDF client doesn’t allow you save the files (Evince does :) ), you might want to use pdftk $PDF unpack_files in some empty directory.

by muelli at January 10, 2010 05:50 AM