Tag Archives: Ruby

Visualise macports dependencies

to clean up your installed macports and remove cruft you need to uninstall them in the correct order – according to their dependencies. A graphical visualisation might help doing so: Call $ ./port-deps2dot.rb | dot -Tpdf -o port-deps.pdf ; open port-deps.pdf with the ruby script port-deps2dot.rb as follows: #!/usr/bin/ruby -w   # visualize macports dependencies. [...]

Radio Geeky

wie schon in einem älteren Artikel angerissen möchte ich zeitgesteuert Radiosendungen aufnehmen – und zwar auf einem Rechner (mit Apache Webserver), der rund um die Uhr läuft. Nun habe ich kürzlich einem großen Zündfunk-Fan, der selten Zeit hat ihn zu hören, diesen Mitschnitt als Podcast zum Geburtstag geschenkt. Das ganze wurde aufwändiger als ich dachte [...]

hübsche Dropbox Links

Weil große Email Anhänge stinken, bietet sich z.B. die Dropbox als Dateiaustauschplatform an. Einfach die Datei in den (lokalen) Dropbox/Public Ordner verfrachten, syncen lassen und per “Rechte Maustaste -> Copy Public Link” in die Mail kopieren. Redirect Nun sind solche Links nicht besonders hübsch (Branding!, Branding!, CI! ruft die Marketingabteilung) und  spätestens wenn man’s abtippen [...]

T-Mobile Rechnungen auspacken und umbenennen

über T-Mobile RechnungOnline kann man sich die Rechnung als gpg-verschlüsselten Anhang per Mail schicken lassen – incl. Einzelverbindungsnachweis. Und obwohl’s nur 1x im Monat kommt, ist das Auspacken und Umbenennen in sinnvolle Dateinamen eine lästige Routinearbeit. Also – automatisieren. Das folgende Ruby-Script erledigt das, nachdem der Rechnungsanhang in einen der Ordner “Downloads” oder “Desktop” gelegt [...]

ruby: parse Apache Serverlogs

Yields a hashmap for every line: require ‘date’   class Apache def self.each_request(src=$stdin) ip_pat=/(?:[0-9]+\.){3}[0-9]+/ date_pat=/\[[^\]]+\]/ req_pat=/"([A-Z]+)\s([^\s]+)\s([^\s]+)"/ ref_pat=/"([^"]+)"/ date_fmt = '[%d/%b/%Y:%H:%M:%S %Z]‘ apache_pat = Regexp.new( "(#{ip_pat})\s([^\s]+)\s([^\s]+)\s" < < "(#{date_pat})\s#{req_pat}\s([0-9]+)\s(-|[0-9]+)\s#{ref_pat}\s#{ref_pat}") src.each_line do |l| m = apache_pat.match l if m r = { :ip => m[1], :uid => m[2], :auth => m[3], :date => DateTime.strptime(m[4],date_fmt), :method => m[5], [...]

Transfer Phone Numbers from gammu to the Mac Adressbook

ok, make yourself comfortable, fasten your seatbelt and stop smoking. This will be quite a journey:

Remember Ragel

Es ist schon etwas her aber dennoch einen kurzen Eintrag hier sicher wert. Ragel habe ich für ein Experiment (ist SVG als 2D Szenengraph Format für piccolo2d machbar?) benutzt um einige Parser zu bauen.