Tag Archives: Ruby

redmine & chruby (fetch emails)

  #!/bin/bash # chruby needs bash # # # redmine email import with chruby. # # # Put this script into <redmine_dir>/script and a set crontab like # $ sudo -u www-data crontab -l # */15 * * * * <redmine_dir>/script/fetch-email.sh # cd "$(dirname "$0")/.."   log="log/$(basename "$0" .sh).log" cat >> "$log" <<EOF   $(date […]

Ad Blocking Proxy = abloprox

as an act of digital hygiene, I installed abloprox on a raspi and added this PAC file to save some keystrokes when configuring: function FindProxyForURL(url, host) { if (shExpMatch(host,"*.fritz.box")) return "DIRECT"; if (shExpMatch(host,"*.local")) return "DIRECT"; if (shExpMatch(host,"*.akamaistream.net")) return "DIRECT"; if (shExpMatch(host,"*.m945.mwn.de")) return "DIRECT"; // auto config: // 1. ensure there’s a host ‚wpad‘ in the current […]

install ruby @ OS X

OS X comes with a pretty hung ruby (1.8.7) until ‚Mavericks‘. ruby 1.8.7 had it’s planned EOL long ago, even debian/stable nowadays comes with a newer one. So if you’re still running Mountain Lion or older, you may need to install ruby. I chose rbenv and here’s how I did: RTFM install rbenv: $ brew […]

redmine (rails) + puma + lighttpd

Running redmine with a lightweight ruby on rails/webserver stack on a debian server – puma and lighttpd: Assumed you’ve got both redmine and lighttpd already installed: install puma gem: $ sudo gem install puma caution: ArgumentError on ruby 1.8.7 get tools/jungle/init.d/puma to /etc/init.d/ get tools/jungle/init.d/run-puma to /usr/local/bin/ add a puma app: $ sudo /etc/init.d/puma add /your/app/path www-data $ […]

Ruby: Simple Fast Fourier Transform

by far not as powerful as the Fastest Fourier Transform in the West but maybe sometimes useful for a quick data analysis or de-noising. Reads stdin and writes to stdout. Algorithm taken from Meyberg, Vachenauer: Höhere Mathematik II and ported to plain ruby myself.

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$ ./port-deps2dot.rb | dot -Tpdf -o port-deps.pdf ; open port-deps.pdf with the ruby script port-deps2dot.rb […]

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], […]