hoodie blog

Ordner als Podcast?

Ja, das geht!

Ich war es irgendwie Leid, mir Videos die ich einmal schaun will auf mein Handy zu schieben. FTP Clients, SSH Clients und so weiter für Android machen alle keinen guten Eindruck und einen Server möchte ich schon gar nicht auf meinem Telefon haben. Und für einmal gucken extra das Ding via USB einhängen ist auch zu viel.

Da schieb ich doch lieber die Datei auf meinem heimischen Webserver und dank DirCaster wird aus dem Verzeichnis ein Podcast. Somit kann ich die Datei ratz fatz einfach mal so streamen. Geil!

read full...

now this looks familiar ?¿?

Lot’s has happend during the last few months. I’ve been working on a couple of smaller projects, some of which I am going to talk about in this and in the comming posts. Since I’m not much of an expert in any area but instead keep on trying out new things, trying to get to know as many technologies as I can.

On of my first little fun projects using python was a tiny script that created svg images with randomly saturated vertical stripes of one color. At the time was inspired by one single wallpaper I found somewhere on opendesktop.org.

Appearently the Idea cought on, because the gnome people gave their latest version Gnome3 a very similar standard wallpaper. To the left you see the one my little script, to the right you see the one on the gnome desktop. Or was it the other way around?

I’m gonna put this up on github in the next couple of days.

I also started playing around with ruby ( I admit, this has not all just during the last few months) . Two projects were significant. The first was the xxrb, a little extensible xmpp bot I had running on this server for a while and which told you the upcomming trams in the area of Dresden. The second one was a ruby on rails application I worked on as a university project with Lars Beier. The Second part of the same project was supposed to be based on javascript – which gave me the chance to get more familiar with coffeescript – yay

My most productive project does not actually have a name. I have to write a lot of invoices for my student Café and got tired of filling out the same openoffice template over and over again. So I wrote a little ruby script that reads yaml files and fills out a latex template I carefully build. Latex can really be a pain in the behind. I’ll try to make it available on github but I’ll have to generalize it first because at the moment it contains a lot of static content that has to do with my specific case.

I’m gonna get more specific on some of these and one other project I’m working on at the moment, just wanted to get a quick round up. It was nice talking to y’all again. Read you later.

read full...

einmal zum Exmatrikulationsamt bitte

An dieser Stelle ein herzliches Danke Schön an meinen Kumpel Lars, der mich letzte Woche gefragt hat, ob ich nicht bei der Nachtwanderung als Fotograf für die exma unterwegs sein möchte. Ich hab natürlich prompt zugesagt und kam darauf hin um sonst in die Clubs und hatte echt nen geilen Abend.

Heute Schau ich nach meinen Fotos auf der Seite nach und trage mich spaßeshalber bei der Verlosung um freien Eintritt in das Dominic Miller Konzert ein und wieder promit krieg ich die Email, dass ich auf der Gästeliste stehe.

*freu* – aber auf der anderen Seite ist es schade, dass sich keine Sau für Dominic Miller interessieren zu scheint.

read full...

Undo Ubuntu Scrollbars

Neue Ubuntu Versionen sind immer etwas feines, mindestens weil man endlich wieder neue Software bekommt. Schade ist immer nur, dass einem gewisse Interface Änderungen aufgezwungen werden. Unity oder Gnome3 muss man ja nicht mal benutzen, aber wenn auf einmal die Fensterknöpfe links sind oder die Scrollbars weg, dann möchte man doch eingreifen können.

Das letzte mal hatte ich schon eine Lösung zu dem Fensterknopfproblem gefunden. Diesmal:

sudo apt-get remove overlay-scrollbar
sudo bash
echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80-disableoverlayscrollbars

Das sollte dafür sorgen, dass wir wieder alte Scrollbars bekommen.
Vielen Dank an everflux.de

read full...

Leipzigs Mangel an Kultur

Die Bahn hat gestern mal wieder dafür gesorgt, dass ich mal wieder eine wunderschöne knappe Stunde in der Leipziger Innenstadt verbringen konnte. Ich dachte ich geh mal zu CoffeeCulture und musste feststellen, dass es da jetzt indisch gibt. Schade! Geh ich also weiter zu der anderen Filiale Richtung Augustusplatz — doch da gibt es jetzt auch nix mehr.

Scheint wohl für Starbucks funktioniert zu haben, sich in beiden Fällen genau gegenüber zu platzieren. Immer hin sind die Mädels bei Starbucks total freundlich, haben mir in beiden Fällen ganz freundlich den Weg zu der noch verbliebenen CoffeeCulture Filiale beschrieben.

read full...

erste Schritte in Ruby

Da ich in den letzten Wochen sehr viel Zeit in Zügen verbracht habe, hatte ich sehr viel Gelegenheit, mir sehr viele ausgaben von Pentacast und Chaos Radio Express anzuhören.

Besonders Pentacast Nº1 über jabber war sehr aufschlussreich, zumal ich mich schon seit längerem für dieses Protokoll sehr interessiere. Ursprünglich wollte ich etwas in python machen, doch nachdem ich mal einen Nachmittag lang in xmpppy, pyxmpp und twisted reingeschaut hatte — und keines davon wirklich geeignet schien entschied ich mich für xmpp4r.

So lernte ich also mal eben etwas Ruby. Das Projekt was aus meinen ersten Versuchen mit Ruby entstand war ein kleiner Jabberbot namens xxrb (extensible XMPP ruby bot). Teile davon entstanden im Zug :D

Der bot selbst kann in seiner Standardausführung nicht viel, er bietet ein Commandline interface und kann sich mit einem xmpp Server verbinden. Was macht ihn nun so extensible?

# Original greeting function
xmpp_hello = RbCmd.new(:hello, .xmpp)
def xmpp_hello.action
	if @args
		result = "I'm not actually " + @args + " but his evil twin"
	else
		result = "hello yourself"
	end
end
def xmpp_hello.help
	result = '"hello" is only the first of many cool features'
end

bot = Xxrb.new
bot.add_cmd(xmpp_hello)

Nachdem man den Bot initialisiert hat kann man ihm neue Commands beibringen indem man ihm RbCmd Objekte übergibt. Diese enthalten zwei Methoden: action und help. Action wird ausgeführt wenn man wie hier im Beispiel “hello” eingibt und Help wenn man “help hello” eingibt. Das zweite Symbol im Konstruktor bezeichnet ob der Befehl über Comandline oder Xmpp erwartet wird. Innerhalb der action stehen zudem @args, @jid des Benutzers (in cli des Bots selbst) und @bot zur Verfügung.

Bislang kann mein Bot nur Haltestelleninfos zu Dresdner Straßenbahnen und Bussen zurück geben. Eine Testversion läuft auf dvb(ät)hoodie.de .

Da ich bereits etwas Erfahrung mit pyGTK sammeln konnte und die RubyGTK Schnittstelle sich nicht viel anders verhält, habe ich nun mit den Arbeiten an einem grafischen Tool begonnen. Da ich mit dem Funktionsumfang von Pidgin in Puncto Jabber noch nie zu Frieden war und bei Psi leider auch nicht viel passiert, habe ich mich daher entschlossen an einem eigenen Jabberclient zu arbeiten. Er wird wohl nach irgendwas zwischen Pidgin und Psi aussehen und in Ruby geschrieben sein. Da man mit Ruby ja auch in einem gewissem Rahmen Funktional programmieren kann dachte ich an ein Scripting interface. Benutzer können bestimmten events (zB ein Kontakt kommt online) eigene Aktionen in Form von Ruby hinzufügen und ausführen. Interessant ist auch Konversationen die man mit zwei Personen Parallel führt automatisch zu einem MUC zusammen zu fassen.

Jabber ist ja auch das Standard ChatProtokoll von facebook, daher würde ich auch einen bestimmten “Stalkermode” einbauen, mit dem man immer sofort die Statusupdates einer bestimmter Person “like”t oder sich für seine Exfreunding unsichtbar macht und deren gespräche mitliest.

Wie ihr seht steckt noch viel Potential in der Materie, ich habe also viel zu tun. Wenn ich mit etwas ranhalte sollte ich allerdings schon in etwa einer Woche den ersten Milestone vorstellen können, also seid gespannt.

read full...

Wiwiwiwi

Ach Leute, das Leben mit Internet ist schon hart. Ich kann verstehen, dass der ein oder andere da manchmal etwas überfordert ist. Tatsächlich scheint Opal es manchen Studenten so schwer zu machen, dass sie schon zu Vitamin B greifen wollen: Geld

Hallo Hendrik,

M. hat mich auf dich verwiesen, dass du beim Einschreiben in Kurse programmiertechnisch helfen kannst.

Ich schildere dir mal kurz mein ANliegen, vielleicht kannst du mir ja helfen:

Ich möchte mich im OPAL am 4. April in einen ziemlich engen Kurs einschreiben. Kannst du dafür ein Programm o.ä. erstellen, damit ich da rein komme?
Würde natürlich auch Aufwandsentschädigung geben.

Sag mir bitte Bescheid, ob du da eine Chance zum Verbessern gegenüber dem allgemeinen Vorgehen beim Einschreiben in die OPAL-Kurse siehst.

VG P.

Meine Antwort:

Hallo P.,
ich weiss nicht, was M. dir da erzählt hat und ich will dich auch nicht in Verlegenheit bringen, aber du bist da glaub ich etwas auf dem Holzweg.
Opal mag eine eklige Oberfläche haben, aber ein weiteres Programm was dir deine Einschreibung abnimmt wird es nicht geben. Zumindest stände das Aufwand-Nutzen Verhältnis nicht auf deiner Seite.

Mein Tipp: sei rechtzeitig online. F5 ist dein Freund und wenn du noch ein wenig im Netz suchst findest du bis zum 4.April auch noch ein paar Tricks mit denen du eventuell deinen Browser ein wenig fixer machen kannst. Auf jeden fall brauchst du keinen Informatiker anzuheuern, um dich in Opal in einen Kurs einzuschreiben. Ich drücke dir die Daumen, das kriegst du bestimmt hin. Sollte es nichts desto trotz nicht mit deiner Einschreibung klappen, gibt wird er ja sicherlich nicht zum letzten mal angeboten.

mfg
Hendrik

read full...

Psi password recovery

Heute wollte ich mal SWIFT ausprobieren und da bemerkte ich, dass ich mein Passwort vergessen hatte. Ich erinnerte mich, dass ich mal ein script gefunden hatte, welches die Passwörter aus der Psi account.xml decodiert. Es hat echt ne Weile gedauert, bis ich das Ding wieder gefunden hatte.

Damit andere nicht so lange danach suchen müssen, hier ist das perl script und hier was ich daraus gemacht habe:

#!/bin/bash
n=0
grep -E '(password|^...\([^<]*\).*|\1|g" -e "s|.*\([^<]*\).*|\1|g" | while read line;
do
	if [ $n -eq 0  ]
		then
			jid=$line
			n=1
		else
			pw=$line
			n=0
			echo $jid
			perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)' $jid $pw
	fi
done
read full...