Don't understand german? Read or subscribe to my english-only feed.

Vortrag an der TUG: Mehrantennensysteme – Schaltungstheoretisch basierte Kommunikationstechnik

January 13th, 2009

Vortragstitel: Mehrantenne Systeme – Schaltungstheoretisch basierte Kommunikationstechnik
Vortragender: Prof. Dr. techn. Josef A. NOSSEK
Datum: 29.01.2009, 18:30-20:00 Uhr
Ort: TU Graz – HS E, 1. Stock Kopernikusgasse 24
Kosten: Die Teilnahme an dieser Veranstaltung ist kostenlos, um eine Anmeldung wird jedoch gebeten.

Über den Vortrag:

Mehrantennensysteme bieten die Möglichkeit, den stets steigenden Bedarf an Datenrate über einen drahtlosen Zugang begrenzter Bandbreite zum Festnetz zu befriedigen. Sie sind deshalb seit mehr als einem Jahrzehnt Gegenstand intensiver Forschung, die zu einer Fülle von informationstheoretisch wichtigen Ergebnissen die Analyse und Optimierung von MIMO(Multiple Input Multiple Output)-Systemen betreffend geführt hat. Das hohe Maß an Abstraktion der informationstheoretischen Modellierung erweist sich dabei als Vorteil und führt zu einheitlichen Ergebnissen für unterschiedlichste Systemvarianten. Allerdings bietet die Informationstheorie keine angemessene Beschreibung des Energieflusses, der den Informationsfluss stets begleitet. Die physikalisch konsistente Interpretation informationstheoretischer Ergebnisse ist jedoch Voraussetzung für die korrekte Berücksichtigung zentraler Begriffe wie Sendeleistung und Rauschkorrelationen. Mit Hilfe der Netzwerktheorie gelingt eine konsistente Beschreibung der Energieflüsse, die zu überraschenden neuen Ergebnissen hinsichtlich Antennengewinn und Kanalkapazität führt. Damit ergibt sich nicht nur eine Erweiterung der theoretischen Grenzen von MIMO-Systemen, sondern auch neue Gesichtspunkte für die optimale Auslegung und eine erhöhte Attraktivität für deren praktischen Einsatz.

Quelle: http://www.ove.at/akademie/details.php?ID=943

Vorträge an der TU Graz: Blitzforschung/Blitzschutz/Blitzwirkungen

January 13th, 2009

Vortragstitel: 1) Aktuelles aus der Blitzforschung 2) Was bedeutet Blitzschutz heute? 3) Blitzwirkungen – Blitzunfälle
Vortragende: Dipl.-Ing. Dr. Gerhard DIENDORFER, Ao. Univ.-Prof. Dipl.-Ing. Dr. Stephan PACK, Dipl.-HTL-Ing. Gottfried KINDERMANN
Datum: 20.01.2009, 18:30-20:30 Uhr
Ort: TU Graz – HS E, 1. Stock Kopernikusgasse 24
Kosten: Die Teilnahme an dieser Veranstaltung ist kostenlos, um eine Anmeldung wird jedoch gebeten.

1) “Aktuelles aus der Blitzforschung” — Dipl.-Ing. Dr. Gerhard DIENDORFER

Viele Details der physikalischen Vorgänge bei der Entstehung von Gewittern und bei der Ausbildung der Blitzentladung selbst sind bis heute nicht geklärt. Einer der Hauptgründe dafür liegt in der schwierigen Messtechnik. Blitze mit einer Länge von mehreren Kilometern können in ihrer Gesamtstruktur im Labor nur ansatzweise nachgebildet werden. Messungen am realen Blitz können nur an Sonderfällen wie bei Turmeinschlägen oder raketengetriggerten Blitzen stattfinden. Verschiedenste Messungen in den vergangenen Jahren, wie auch die Blitzmessungen am Gaisberg in Salzburg, haben etwas mehr Einsicht in die Abläufe der Blitzentladung gebracht. In dem Vortrag wird ein Überblick über den internationalen und nationalen Stand der Blitzforschung gegeben.

2) “Was bedeutet Blitzschutz heute?” — Ao. Univ.-Prof. Dipl.-Ing. Dr. Stephan PACK

Atmosphärische Entladungen sind Bestandteil des Wettergeschehens und können nicht verhindert werden. Seit der Menschheit bekannt ist, dass es sich dabei um elektrische Erscheinungen handelt, werden Einrichtungen entwickelt, die vor den Gefahr bringenden Auswirkungen der Blitzentladungen für Mensch und Tier, aber auch für Objekte und Sachen schützen sollen. Daher wird in diesem Vortrag auf die prinzipielle Wirkungsweise des Blitzschutzes eingegangen und an Beispielen gezeigt, wie sich der Blitzschutz des 21.Jahrhunderts in die Gebäudestrukturen integrieren lässt. Mit Hinweisen über das richtige Verhalten bei drohender Blitzentladungsaktivität wird dieser Vortrag abgeschlossen.

3) “Blitzwirkungen – Blitzunfälle” — Dipl.-HTL-Ing. Gottfried Günther KINDERMANN

Die Auswirkungen von Blitzeinschlägen und Personenschäden durch Blitzentladungen werden von der Landesstelle für Brandverhütung in der Steiermark schon über einen längeren Zeitraum erfasst und ausgewertet. Blitzauswirkungen, die besondere Schäden anrichten oder Blitzschläge, bei denen Personen Schaden erleiden, werden vor Ort erhoben und dokumentiert. Eine aktuelle Auswahl der Blitzunfälle der vergangen Zeit soll im Vortrag darstellen, mit welchen Gefahren bei Blitzschlägen zu rechnen ist bzw. welche Schäden durch Blitzschläge verursacht werden können.

Quelle: http://www.ove.at/akademie/details.php?ID=904

Linux New Media Award

January 13th, 2009

I got a mail from Linux New Media telling me that they want me as jury member for the Linux New Media Award. The process is simple and for now they just ask me to send my nominations for the following categories:

  • Outstanding Contribution to Open Source / Linux / Free Software
  • Most Linux / Open Source-Friendly Hardware Vendor
  • Most Innovative Open Source Project
  • Best Open Source Contribution for Mobile Devices
  • Best Open Source Programming Language
  • Most Significant Contribution for Security in Open Source

I have some good candidates in mind already. Do you have any recommendations I should consider for inclusion? Please let me know.

Dreambox Flashen

January 6th, 2009

Ein Windows-Tool zum Flashen einer Dreambox DM600PVR zu Verwenden ist klarer Stilbruch. Via TFTP wäre es vertretbar aber umständlich. Das geht viel einfacher wenn man die Dreambox übers LAN erreicht:

telnet $IP_OF_DREAMBOX
mount -o remount,rw /boot
rm /boot/*
reboot

Im Browser dann auf $IP_OF_DREAMBOX gehen und über den Punkt Firmware-Upgrade das gewünschte nfi-Image hochladen und wenn das abgeschlossen ist neu starten. That’s it.

Tipp: zuvor ein Backup via ‘cat /dev/mtd/$ID > /var/tmp/backup.img’ zu erstellen (für $ID siehe cat /proc/mtd) und per FTP zu sichern kann nicht schaden.

Apple Tastatur unter Linux – das Problem mit den Funktionstasten

December 31st, 2008

Die Funktionstasten (F1, F2,…) von Apple-Tastaturen erfordern je nach Modell das Drücken der Funktionstaste (fn), um unter Linux wie gewohnt zu funktionieren – wie es der Aufdruck auf der Tastatur auch schon andeutet. Dafür gibt es einen Workaround, Powerbook-Usern wird vielleicht das Stichwort pb_fnmode (/sys/module/hid/parameters/pb_fnmode) was sagen. Das war auf dem USB-Tastatur-Modell MB110D/A und Linux-Kernel 2.6.26 bei mir nicht notwendig. Da aber aufgrund mehrerer notwendiger Workarounds für Apple-Hardware der Code aus dem generischen HID-Layer in ein eigenes Modul namens hid-apple verbannt wurde, braucht es zumindest mit Kernel 2.6.28 eine spezielle Treiberoption, damit die Tastatur wie bisher funktioniert. Falls jemand das gleiche Problem hat:

echo 2 > /sys/module/hid_apple/parameters/fnmode

Dann muss man nicht fn-F1 drücken um das gewohnte Verhalten für F1 zu bekommen. 0 deaktiviert den fn-Hack komplett, 1 ist der Default und setzt es auf fkeyslast (Multimediatasten normal, mit gedrückter fn-Taste dann die Funktionstasten) und 2 aktiviert den fkeysfirst-Modus (Funktionstasten normal, mit gedrückter fn-Taste dann die Multimediatasten). Wer die Einstellung permanent machen will:

echo "options hid_apple fnmode=2" >> /etc/modprobe.d/apple-keyboard

mika’s advent calendar – day 24: zsh globbing

December 24th, 2008

The advent calendar started with a Zsh tip, let’s end the advent calendar session with a Zsh tip: globbing.

Globbing is like pattern matching. When running ‘ls *.txt’ you’re using globbing. But the globbing feature inside Zsh is much more powerful. Quoting the H-Glob function (“help globbing”) of grml’s Zsh configuration:

% H-Glob

    /      directories
    .      plain files
    @      symbolic links
    =      sockets
    p      named pipes (FIFOs)
    *      executable plain files (0100)
    %      device files (character or block special)
    %b     block special files
    %c     character special files
    r      owner-readable files (0400)
    w      owner-writable files (0200)
    x      owner-executable files (0100)
    A      group-readable files (0040)
    I      group-writable files (0020)
    E      group-executable files (0010)
    R      world-readable files (0004)
    W      world-writable files (0002)
    X      world-executable files (0001)
    s      setuid files (04000)
    S      setgid files (02000)
    t      files with the sticky bit (01000)

  print *(m-1)          # Files modified up to a day ago
  print *(a1)           # Files accessed a day ago
  print *(@)            # Just symlinks
  print *(Lk+50)        # Files bigger than 50 kilobytes
  print *(Lk-50)        # Files smaller than 50 kilobytes
  print **/*.c          # All *.c files recursively starting in $PWD
  print **/*.c~file.c   # Same as above, but excluding 'file.c'
  print (foo|bar).*     # Files starting with 'foo' or 'bar'
  print *~*.*           # All Files that do not contain a dot
  chmod 644 *(.^x)      # make all plain non-executable files publically readable
  print -l *(.c|.h)     # Lists *.c and *.h
  print **/*(g:users:)  # Recursively match all files that are owned by group 'users'
  echo /proc/*/cwd(:h:t:s/self//) # Analogous to >ps ax | awk '{print }'<

So as you can see the ‘.’ matches just the plain files. Execute ‘ls -la *(.)’ and I’m sure you get the idea. The lovely about this is that you’ll get a very powerful commandline if you combine globbing with according keybindings and the completion system. Want to list the ten newest files in the current directory? Run ‘ls -rl *(D.om[1,10])’ (or just ‘lsnew’ when using grml’s zsh configuration). This works remote as well! Just give it a try: copy the five most recent files from $HOME/incoming on $SERVER to your local disk running ‘scp $server:incoming/*(D.om[1,5]) .’.

Notice: Just press <tab> behind the pattern to expand it on the command line. Or if you prefer to see what the current pattern will be expanded to without actually expanding it right now on the prompt use the list-expand widget: press ‘ctrl-x g’ (when using emacs keybindings) or ‘ctrl-g’ (using vi bindings) when the cursor is directly behind the pattern.

If you’re interested in further information check out the official docs about globbing and the examples provided in the zsh-lovers manpage.

This was the last tip of I my advent calendar. I hope you enjoyed reading it.

mika’s advent calendar – day 23: nagios

December 23rd, 2008

Nagios is a well known and established Open Source Monitoring System. It’s flexible, easy to deploy and a tool every sysadmin should know how to deal with. I guess most readers of my blog use or at least know Nagios so I’ll keep this blog entry short. But one tip for sysadmins managing Debian systems:

# /usr/lib/nagios/plugins/check_apt 
APT OK: 0 packages available for upgrade (0 critical updates).

check_apt (being shipped as part of nagios-plugins-basic on Debian) is great if you don’t want to use apticron, cron-apt & CO but instead integrate system updates/upgrades into your monitoring infrastructure.

mika’s advent calendar – day 22: patterns in mutt

December 22nd, 2008

The console mail client mutt has some nice features and I noticed that even some long time users of mutt don’t use some of the most rocking features. What’s definitely worth knowing: patterns.

Want to display only mails sent from foo@example.org? Select the limit command to show only messages matching a pattern (bound to ‘l’ by default), enter ‘~f foo@example.org’ and press enter. That’s it. Now only mails sent from foo@example.org will be displayed in the index view. To show the currently active limit use the show-limit command (bount to esc-l by default). If you want to get rid of your current active limit view just use ‘all’ as the matching pattern.

Check out the docs for a list of available patterns. For example if you want to get rid of duplicate mails (based on their message id) just use ‘~=’ as the pattern. You can either tag the selected messages (using tag-pattern, keybinding ‘T’ by default) and delete the tagged messages then or directly invoke the delete-pattern (bound to ‘D’ by default).

Limiting and tagging in mutt using patterns really rocks, if you are using mutt you definitely should use these features.

mika’s advent calendar – day 21: grml-debootstrap

December 21st, 2008

I wrote about FAI for deploying systems a few days ago – but FAI might be too much overhead if you want to install just some few Debian systems and prefer to use a configuration system like puppet instead. Then using grml-debootstrap might be an option for you.

As you might know grml is a Linux Live-CD for sysadmins and texttool-users and debootstrap can be used to create a Debian base system from scratch. grml-debootstrap is a wrapper around debootstrap for installing plain Debian via grml easy and fast. Installing a small but working Debian system is as simple as invoking something like “grml-debootstrap –target /dev/sda1 –grub hd0 –groot hd0,0” and drinking a coffee in the meanwhile.

Why I mainly prefer to use grml-debootstrap instead of d-i (Debian installer) is that I can use a recent grml live system which gives me up2date kernel and userland supporting more hardware than a stable release of Debian usually does. (So I’m more flexible in installing the system. If the installed Debian/stable kernel might not work I can still update the kernel from the live system until it works.)

Check out the manpage of grml-debootstrap for further details.

mika’s advent calendar – day 20: lazy typing

December 20th, 2008

I blogged about some tips for optimizing the workflow on the command line in my advent calendar already (like irssi backlog completion, Zsh keybindings and hashes in the zsh). When optimizing your workflow you should be aware of what exactly is eating up your time.

Start with evaluating your top 10 shell commands, in Zsh (what else should you be using?) by running:

print -l -- ${(o)history%% *} | uniq -c | sort -nr | head -n 10

Then consider creating aliases for the most commonly used commands. I for example use ‘s’ for ssh, ‘g’ for git, ‘S’ for GNU Screen,… (stuff provided in grml’s default Zsh config btw). Of course you should also make sure to use according mappings and abbreviations in other tools as well. Vim for example supports iab and imap. Several browsers support searching by keyword.

Disclaimer: It’s definitely OK if you aren’t interested in optimising every single step of your tools. But don’t waste your own time with stuff that annoys you.

mika’s advent calendar – day 19: zsh completion

December 19th, 2008

One of the reasons why Zsh rocks so much is its completion system. Tab, tab, tab….

Using default Zsh without an useful configuration? Then start with loading the completion system:

autoload -U compinit && compinit

Now check out the completion system with tools that provide lots of options, like for example gpg and rsync. Then continue playing with tab completion using ssh/scp (make sure to use ssh-agent or ssh with option ControlMaster to avoid typing your password again and again…):

scp <tab>
scp user@<tab>
scp user@host:<tab>
scp user@host:/path .

BTW: running ‘ls /u/lo/b<tab>’ should list the content of /usr/local/bin.

Customising the completion system is possible using zstyle. For example to use colors inside completions use the following configuration snippet (assuming $LS_COLORS is set on your system, if not try running ‘eval $(dircolors -b)’):

zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}

If you want to write your own completion mechanism for a program start by exploring the existing completion functions (on Debian systems usually being available at /usr/share/zsh/functions/Completion/). You might consider writing a completion for a program which isn’t supported by Zsh’s completion system yet. You can get a list of those tools running:

check_comp() {
((! $+_comps[$1])) && print "$1 has no completion function yet"
}
setopt nonomatch
for f ($^path/*(:t)) check_comp "$f"

Find all the glory details about Zsh completion in the Completion System documentation, chapter 6 of the Zsh guide and the manpages zshcompctl, zshcompsys and zshcompwid. Notice that zshcompctl is the old style of zsh programmable completion, zshcompsys is the new completion system and zshcompwid are the zsh completion widgets. Several configuration examples are available in grml’s zsh configuration and the COMPLETION section of the zsh-lovers manpage.

Oh, and if you understand german I strongly recommend getting a copy of the book “Zsh – Die magische Shell”, it provide a nice introduction into the completion system.

mika’s advent calendar – day 18: grml-live

December 18th, 2008

grml-live is a buildsystem for generating a grml and Debian based Linux live system (CD/ISO). It’s based on FAI (I mentioned FAI a few days ago already) because its class concept provides a flexible infrastructure for building custom systems. grml-live uses squashfs-tools for building a compressed file (so you can get >2GB on a 700MB ISO) containing the chroot system.

As soon as you’ve a working build environment a grml-live command line might look as simple as:

# grml-live -s sid -a i386 -c GRMLBASE,GRML_MEDIUM,I386

Check out the webpage of grml-live for further usage examples and documentation.

mika’s advent calendar – day 17: ldapvi

December 17th, 2008

ldapvi is an interactive LDAP client for Unix terminals. Using it, you can update LDAP entries with a text editor.

Start exploring it running:

ldapvi --discover --host $SERVER

If you have to deal with LDAP on the command line and want to use $EDITOR for editing: ldapvi is for you. :)

mika’s advent calendar – day 16: puppet

December 16th, 2008

Configuration management tools provide the ability to abstract your requirements. For example you might be running your own (procedural) scripts – which could be even platform specific (igitt) – to add new users. Instead when using a configuration management tool you instruct the system in a (declarative) specification language to do so. This provides much better scaling and management so sysadmins have enough time left for coffee and reading news.

There are several configuration management tools out there. Check out the wikipedia article “Comparison of open source configuration management software” to get a short overview. There are so many to chose from – but the major ones (at least when looking around me) are cfengine, bcfg2 and puppet. All of them have their nifty features and drawbacks – but the one I’d like to present here is puppet. Puppet is written in Ruby, is a pretty fresh project (when compared to its competitors) and has a nice developer and user community. Prominent users of puppet are for example the SANS Institute, Redhat, Fedora and Google (managing their Mac and Linux desktops and laptops).

Quoting the project homepage:

Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files.

The author of puppet – Luke Kanies – states in his blog:

[…] I’ve always said if it takes you more than an hour to do something useful with Puppet, I’ve screwed up.

And getting started with puppet is really just a matter of a few minutes. So consider giving it a try.

BTW: I’m locking forward to meet Luke Kanies at the OSDC 2009 Conference. :)

mika’s advent calendar – day 15: zsh vcs_info

December 15th, 2008

Frank Terbeck, a grml developer, implemented vcs_info for the Zsh. vcs_info is a nice and flexible system for providing version control information information within the Zsh prompt. It provides support for bzr, cdv, cvs, darcs, git, hg, mtn, p4, svk, svn and tla. vcs_info is available since zsh-beta, version 4.3.6-dev-0+20080929-1 or later and using the feature it might look like this (screenshot taken from the current grml release which provides this feature via grml’s zsh config also within the stable Zsh release):

Demonstration of vcs_info inside Zsh on grml

To get an idea how to enable this feature check out the following Zsh configuration snippet:

autoload -Uz vcs_info

precmd() {
  psvar=()
  vcs_info
  [[ -n $vcs_info_msg_0_ ]] && psvar[1]="$vcs_info_msg_0_"
}

PS1="%m%(1v.%F{green}%1v%f.)%# "

mika’s advent calendar – day 14: gnu screen / tscreen

December 14th, 2008

Seriously, if you don’t know GNU screen yet: where are you living? 8-)

Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells. If you want to leave (not exit) your current shell session(s) and re-attach them later again: GNU screen is the answer. If you don’t use it yet you’re missing something, really.

This is what GNU screen usually looks like on a grml system:

GNU screen on grml

mika’s advent calendar – day 13: lesspipe

December 13th, 2008

Displaying more with less:

lesspipe.sh is an input filter for the pager less as described in its man page. The script runs under a ksh compliant shell (ksh, bash, zsh) and allows to view files with binary content, compressed files, archives and files contained in archives. A large and growing number of formats are supported both as plain and compressed files using compress, gzip, bzip2, lzma, lzip or zip.

— quoting the homepage of lesspipe

If lesspipe.sh is present on your system and available in $PATH just use:

export LESSOPEN="|lesspipe.sh %s"

to enable it. Then you can use lesspipe through “the normal less command” like that:

% mkdir demo
% echo foo > demo/foo
% tar zcf demo.tgz demo/
% less demo.tgz
==> use tar_file:contained_file to view a file in the archive
drwxrwxr-x mika/mika         0 2008-12-11 23:49 demo/
-rw-rw-r-- mika/mika         4 2008-12-11 23:49 demo/foo
% less demo.tgz:demo/foo
foo

And of course lesspipe is available out-of-the-box at grml. ;)

Vorträge von Clifford Wolf online verfügbar

December 12th, 2008

Clifford Wolf war ja im September mit 2 Vorträgen zu Besuch in Graz. Jetzt gibt es die Videos dazu online:

Die Credits gehen an Wolfgang Dautermann.

mika’s advent calendar – day 12: IPython

December 12th, 2008

IPython is an enhanced interactive Python shell. It provides some nifty features the usual python console doesn’t provide. Check out the Quick IPython tutorial, the IPython cookbook, IPython as a system shell and the IPython reference for more information.

Funny Dialogs. Not.

December 12th, 2008

The “Bluetooth Applet 1.8” preferences dialog of the Gnome desktop on Ubuntu is broken:

Screenshot of Bluetooth Preferences on Ubuntu

The plus and the trash symbol seem reasonable. But the “connector” and the info button just don’t provide any deterministic behaviour. Thanks for not providing any tooltips so the user might get an idea what the buttons could do for him. (No, I’m not talking about the problem that I’ve to manually remove the device and re-pair it whenever I want to use it later on again.)

And dear NetworkManager Applet 0.7.0: please do NOT inform the user which /dev/ttyACM* is behind which “Ericsson Business Mobile Networks BV Ericsson F3507g WMC Composite Device”. If the connection doesn’t work (which matches 100%) please do not provide any useful error messages. Don’t give the user any chance to cancel connection attempts. (I’m not even talking about all the situations where NetworkManager just fails whereas the manual way works fine.) Thanks for doing so:

NetworkManager Applet on Ubuntu

Finally, thanks to Pidgin (or more precise: libpurple):

You missed 2 messages from $NUMBER because they were too large.

Don’t use the buddy name instead of the account number because then it would be easier to identify who sent the mesage.