Archives Posts
July 13th, 2008 by chris
Ich benutze schon seit Jahren das Deskbar-Applet, ein kleines in
Python geschriebenes Programm aehnlich dem MacOSX Quicksilver oder
Gnome-Do. Durch seine hervorragende Plugin API war es mir jetzt mit sehr geringem
Aufwand möglich 3 Plugins zuschreiben die ich schon immer vermisst hatte

Installation
Eine Deskbar Plugin Installation ist ganz einfach! Plugin unter ~/.gnome2/deskbar-applet/modules-2.20-compatible
abspeichern, Deskbar restarten und das Plugin in den Deskbar Einstellungen aktiviert. Fertig!
Tasque Plugin
Novells Tasque ist ein kleines ToDo Verwaltungstool unter Linux. Es
ist in einer Novell Hackweek entstanden und wird seitdem weiter entwickelt und verbessert. Es kann
verschiedenste Backends als ToDo Speicher benutzen, z.B. RememberTheMilk
oder den Evolution Data Server (EDS). Das Programm ist in seiner Bedienung was Tasks verwalten angeht super,
aber ich vermisse globale Tastaturshortcuts für die schnelle Task Eingabe. Aber dieses Manko wird durch mein
Tasque Deskbar Plugin verbessert. Dieses Plugin “redet” mit Tasque
über den D-Bus und unterstützt das Anlegen eines Task in den verschiedenen vorhandenen Kategorien.
Download: Tasque Plugin
Trac Plugin
Trac ist ein Wiki und Ticketverwaltungs-Web-Applikation.
Ich setze es seit der Programmierung von PyCRMan ein und es leistet mit gute Dienste :). Aber wie bei jeder
Web Applikation laesst die schnelle Eingabe auch hier zuwuenschen uebrig. Daher musste ich einfach ein Deskbar
Plugin dafür schreiben. Die Einstellungen (Trac URL) fuer das Plugin werden im GConf abgelegt und sind somit einfach
via gconf-editor zu aendern. In einer naechsten Version gibt es vielleicht einen Einstellungsdialog ueber die
Deskbar Einstellungen
Das Plugin benoetigt das Trac XML-RPC Plugin.
Es lohnt auch ein Blick auf den Source Code des Trac Deskbar Plugins, dort kann man noch ein paar Standarteinstellungen
zum Ticket vornehmen.
Download: Trac Plugin
Google Calendar Plugin
Wer den Google Calendar nicht kennt ist selbst Schuld :). Es ist ein wunderschoenes
Tool zur Verwaltung von Terminen und durch die Reminderfunktionen (SMS aufs Handy bei einem Termin) auch offline sehr brauchbar.
Also schnell ein Deskbar Plugin geschrieben welches via python-gdata (Google Python API) einen Termin eintragen kann
Das Plugin verwendet Googles QuickAdd Feature.
Die Einstellungen werden auch hier im GConf abgelegt.
Zum Anlegen eines Termins einfach so etwas ins Deskbar reinschreiben: Daves birthday July 15 9am
Download: GCal Plugin
Archives Posts
June 6th, 2008 by chris
Hier ein kleiner und kurzer Erfahrungsbericht zu dem Sony Ericsson K550i unter Linux.
Sync
opensync und multisync-tool über bluetooth funktionieren wunderbar, damit hab ich alle meine Kontakte mal aufgeräumt und gesynct
Fernbedienung
- die desktop fernbedienung am handy und mein ubuntu hardy arbeiten auch super miteinander.
- bluetooth am handy einschalten
- hcitool scan und nach der bluetooth mac adresse suchen
$ sudo hidd --connect HANDY_BLUETOOTH_MAC
- am handy “ja” sagen
- FERTIG!
Archives Posts
May 16th, 2008 by chris

zum weiterlesen: heise meldung zu schwachen schluesseln unter debian und co
Archives Posts
April 14th, 2008 by chris
Zur Zeit mache ich beim ZID mein Praxissemester, ich programmiere für uns den Python Computer Room Manager (pycrman). Dieses Projekt ist in Python geschrieben und benutzt verschiedene Python Erweiterung. Zur einer Erweiterung will ich hiermit ein bissel was schreiben
Elixir
Elixir ist “dünner” Wrapper für die SQLAlchemy Library. Beide zusammen vereinfachen den Umgang mit einer Datenbank in Python um ein vielfaches.
Hier ein kleines Beispiel mit 2 Tabellen:
# import elixir stuff
from elixir import *
# setup db connection
metadata.bind = "sqlite:///movies.sqlite"
metadata.bind.echo = True
# first table
class Device(Entity):
"""representation of a device
"""
using_options(tablename='device', inheritance='multi')
id = Field(Integer, primary_key=True)
name = Field(String(127), required=True, unique=True)
domain = Field(String(255), required=True)
interfaces = OneToMany('Interface')
def __repr__(self):
return 'Device %s' % (self.name)
# second table
class Interface(Entity):
"""network interfaces
"""
using_options(tablename='interface')
id = Field(Integer, primary_key=True)
name = Field(String(16), required=True)
ip = Field(String(38), required=True, unique=True)
mac = Field(String(17), unique=True)
device = ManyToOne('Device')
def __repr__(self):
return '<Interface: %s ip: %s mac: %s>' % (
self.name, self.ip, self.mac)
setup_all()
drop_all()
create_all()
und schon kann mal auf einfache und sehr elegante Weise diese 2 Tabellen benutzen:
# create new device object
device = Device(name="foobar")
device.domain = "test.localdomain"
# create new interface object
interface = Interface(name="eth0", ip="1.1.1.1")
# add interface object to device object
device.interfaces = [interface]
# store objects in db
session.flush([device, interface])
# query
device = Device.get_by(name="foobar")
print device
Ein schönes Beispiel gibt es auch im Elixir Tutorial.
Noch ein kleiner Beitrag zu den elixir/sqlalchemy sessions. In der Standard Einstellung sind die Elixir sessions sogenannte “scoped_session”, d.h. das jeder Thread in einer threaded Umgebung seine eigene Elixir session hat. Das hat zur folge, das wenn ein Thread ein Objekt anlegt bzw. verändert, ein anderer Thread das nicht unbedingt mit bekommt, da Elixir/SQLAlchemy die Query Resultate cached. Am besten geht man damit um das man den Cache ausschaltet:
import elixir
elixir.options_defaults['mapper_options'] = dict(always_refresh=True)
oder bei einer Query populate_existing() benutzt.
posted with Vim
Archives Posts
February 22nd, 2008 by chris
Ich habe gerade vimpress installiert.
Mit diesem kleinen feinen vim plugin kann man aus dem vim heraus wordpress blog eintraege erstellen, speichern, listen und sogar wieder bearbeiten.
die kommandos sind folgende 4:
- :BlogList
Lists all articles in the blog
- :BlogNew
Opens page to write new article
- :BlogOpen id
Opens the article id for edition
- :BlogSend
Saves the article to the blog
Vielleicht schaffe ich es damit oefters ein posting zu machen
Archives Posts
January 22nd, 2008 by chris
Done
(ohne Worte)
die fertigen Unterlagen gibts hier http://www.ca-net.org/linux_advanced.pdf
Archives Posts
January 18th, 2008 by chris
So hier ist mein posting übers barcamp (zumindest das erste). Ich hab mich vorerst auf die liste der “ich weiß noch nicht ob ich kommen werde/kann” gesetzt, aber das kann sich ja noch ändern
also am 2.2.-3.2.08 ist das Barcamp Senza Confini 2008 in klagenfurt auf der universität!!
Archives Posts
January 15th, 2008 by chris
Zur Zeit halte ich einen 4 Tages ZID-Kurs zum Thema Advanced Linux Server Management. Themenbereiche sind Sicherheit, Statistiken und Virtualisierung.
Hier das Inhaltsverzeichnis:
- Tools/The Linux Way
- Sichere default Installation (Debian)
- Monitoring Tools
- Statistic Tools
- “Intrusion Detection”
- Virtualisierung mit Xen
- Wie machen es wir beim ZID
- Links
Heute sind Punkt 2 (Sichere default Installation) und Punkt 3 auf der Tagesliste
Anbei die erste und noch unvollständige Version meiner Folien. Wenn die Folien erstmal fertig sind werde ich natürlich auch meine Tex-Files zur Verfügung stellen.
linux-advanced.pdf
Archives Posts
October 25th, 2007 by chris
ich hab ein cooles online stategiespiel mit suchtfaktor entdeckt, dieses nennt sich tribalwars
sinn des spiels isses ein dorf/dörfer auf zu bauen. dazu muss man holz,
stein und eisen gewinnen. man kann truppen ausbilden und damit andere
dörfer plündern in einen stamm eintreten und dessen interressen vertreten … das highlight, es gibt einen ubuntu stamm
der immer größer und mächtiger wird.
das gesamte spiel is kostenlos, man kann sich aber einen premium account
kaufen (kostet per month ca. 3 euro) wo die bedienung ein bissel mehr
kann, aber das ist nicht nötig.

also wenn ich euch jetzt neugierig gemacht hab dann meldet euch einfach
an
http://www.tribalwars.net/1179085.html
zum weiter nachlesen und tipps und tricks unter:
https://wiki.ubuntu.com/TribalWars
Archives Posts
September 15th, 2007 by chris
chassing@helix:~$ apt-get moo
(__)
(oo)
/——\/
/ | ||
* /-–/\
~~ ~~
….”Have you mooed today?”…
chassing@helix:~$ aptitude moo
There are no Easter Eggs in this program.
… dafür kann man im aptitude minesweeper spielen