“Bullet Time” an den Olympischen Spiele 2012

Ich schaue ja nicht wirklich bei den Olympischen Spielen zu, aber in der Berichterstattung ist mir aufgefallen, dass bei den gymnastischen Sprungbewerben Bullet Time-Effekte (wie bei den Matrix-Filmen) eingesetzt [1].

In einem Video sieht das so aus


Mit minimalen Nachforschungen [2] bin ich auf das i3DLive-Projekt der BBC-Forschungsabteilung gestossen. Das i3DLive-System nimmt mit einer hochaufgelösten Kamera die gesamte Szene auf und rekonstruiert durch die Bilder einigen zusätzlichen Kameras die dreidimensionale Ansicht der gezeigten Sequenz. Dieser kurze Clip hier (kann leider nicht eingebunden werden) zeigt etwas den Hintergrund des Projektes. i3DLive wurde laut der BBC im April 2011 eingestellt, über das Nachfolgeprojekt (Origami) finden sich wenig bis gar keine Infos im Netz.Nichtsdestotrotz beschleicht mich das Gefühl, dass das verwendete System eine Weiterentwicklung ist. Jedenfalls so cool, dass ich vielleicht doch noch den einen oder anderen Gymnastik-Event schaue, und nicht nur Beachvolley [3].

[1]: Eigentlich war’s Nina, die mir davon erzählte, aber der Spannungsbogen passt so besser :)
[2]: reddit.com sei Dank
[3]: via @viergrad

Sonderzeichen-Probleme

Als ich letzthin jemandem das Filmli über Terry Pratchett zeigen wollte, hab’ ich im Archiv hier gegraben. Dabei ist mir aufgefallen, dass mein ganzes WordPress-Archiv von einem komischen Sonderzeichen-Käfer befallen war, alle Sonderzeichen wurden nicht mehr in der UTF8-Codierung angezeigt, sondern jedes ä, ö und ü war durch ä, ö und ü ersetzt.

Nach einer kürzeren Suche nach möglichen Problem-Ursachen hab’ ich dank der Hilfe von Mastblau rausgefunden, dass ich mit einer Datenbank-Befehl alle fehlerhaften Einträge retten kann. Mit der Hilfe von Sequel Pro hab’ ich untenstehende Änderungen an meiner WordPress-Datenbank gemacht, so dass das Archiv wieder mit korrekten Umlauten dargestellt werden sollte (und momentan wird). Falls jemand in der nächsten Zeit trotzdem irgendwelche Probleme bemerkt, soll er/sie sich bitte bemerkbar machen…

update wp_posts set post_content = replace( post_content,'ü','ü');
update wp_posts set post_content = replace( post_content,'ä','ä');
update wp_posts set post_content = replace( post_content,'ö','ö');
update wp_posts set post_content = replace( post_content,'ß','ß');
update wp_posts set post_content = replace( post_content,'Ãœ','Ü');
update wp_posts set post_content = replace( post_content,'Ä','Ä');
update wp_posts set post_content = replace( post_content,'Ö','Ö');
update wp_posts set post_title = replace( post_title,'ü','ü');
update wp_posts set post_title = replace( post_title,'ä','ä');
update wp_posts set post_title = replace( post_title,'ö','ö');
update wp_posts set post_title = replace( post_title,'ß','ß');
update wp_posts set post_title = replace( post_title,'Ãœ','Ü');
update wp_posts set post_title = replace( post_title,'Ä','Ä');
update wp_posts set post_title = replace( post_title,'Ö','Ö');
update wp_comments set comment_content = replace( comment_content,'ü','ü');
update wp_comments set comment_content = replace( comment_content,'ä','ä');
update wp_comments set comment_content = replace( comment_content,'ö','ö');
update wp_comments set comment_content = replace( comment_content,'ß','ß');
update wp_comments set comment_content = replace( comment_content,'Ãœ','Ü');
update wp_comments set comment_content = replace( comment_content,'Ä','Ä');
update wp_comments set comment_content = replace( comment_content,'Ö','Ö');
update wp_term_taxonomy set description = replace( description,'ü','ü');
update wp_term_taxonomy set description = replace( description,'ä','ä');
update wp_term_taxonomy set description = replace( description,'ö','ö');
update wp_term_taxonomy set description = replace( description,'ß','ß');
update wp_term_taxonomy set description = replace( description,'Ãœ','Ü');
update wp_term_taxonomy set description = replace( description,'Ä','Ä');
update wp_term_taxonomy set description = replace( description,'Ö','Ö');
update wp_tags set tag = replace( tag,'ü','ü');
update wp_tags set tag = replace( tag,'ä','ä');
update wp_tags set tag = replace( tag,'ö','ö');
update wp_tags set tag = replace( tag,'ß','ß');
update wp_tags set tag = replace( tag,'Ãœ','Ü');
update wp_tags set tag = replace( tag,'Ä','Ä');
update wp_tags set tag = replace( tag,'Ö','Ö');

Das Rolex Learning Center an der EPFL in Lausanne, revisited

Vor ein paar Wochen war arbeitsmässig wieder mal an einer Sitzung in Lausanne. Wie schon das letzte Mal hat mich das Rolex Learning Center in seinen Bann gezogen, dieses Mal hatte ich aber meine Panorama-Ausrüstung dabei, und nicht wie das letzte Mal nur mein Telefon.

Dabei ist die Einsicht unten entstanden.

Die geneigte Leserin und der geneigte Leser wird merken, dass das Panorama direkt von meinem eigenen Webserver kommt (genauer von panoramas.davidhaberthür.ch) und nicht von 360cities oder so.
Kürzlich hat Matthew Petroff auf der hugin-Panorama-Mailingliste von seinem neuesten Goodie erzählt, er hat nämlich einen modernen Panoramaviewer programmiert; Pannellum.
Pannellum ist ein kleines Skript, welches auf den eigenen Server kopiert Panoramas ohne mühsames Flash-Plugin immersiv darstellt. Das heisst, das Panorama wird mit der Hilfe von neuen Web-Standards (HTML5,  WebGL, etc.) aufgebaut und dem User ausgeliefert, und sollte in jedem modernen Browser funktionieren. Je nach Browser muss der WebGL-Support eingeschaltet werden (in Safari hab’ ich’s so gemacht, für andere Browser geht’s so), leider geht’s momentan auf iTelefonen und iTablets nicht.
Die Konfiguration und Bereitstellung eines Panoramas ist dank dem mitgelieferten Konfigurator relativ einfach, hat aber noch ein paar eingebaute Hindernisse. Da der Quellcode des Skriptes aber auf bitbucket offen zur Verfügung steht, werde ich versuchen, diese Hürden für mich abzubauen und Matthew davon zu berichten, so dass weitere User diese Hürden nicht überwinden müssen.
Wer die restlichen Panoramas, die ich in Lausanne gemacht habe sehen will, soll seinen Browser hierhin dirigieren.

D’Schütz isch da

Am Dienstag beim Heimfahren sehen, dass d’Schütz da isch. Am Mittwoch Abend mit der Kamera dort eine Zeitlang rumstehen und dann den Kompi (Luminance HDR/Quicktime Pro/iMovie) etwas rechnen lassen. So entstand das HDR-Zeitrafferfilmli unten.

Weil ich mich nicht entscheiden konnte, ob mir die Resultate des Mantiuk- oder des Fattal-Operators besser gefallen, hab’ ich im unten eingebundenen Filmli grad beide Varianten aneinandergehängt.

Wohin gehen all die Kommentare, visualisiert

Herr Leu hat letzthin davon geschrieben, dass das Kommentar-Volumen auf seinem Blog in der letzten Zeit ziemlich abgenommen hat, während die Reaktionen auf die Beiträge in anderen Kanälen stattfinden.

Dies ist mir auch schon lange aufgefallen, ich konnte es aber nicht wirklich mit Zahlen belegen. Da Herr Leu auch grad noch eine handliche MySQL-Abfrage zur Abfrage der Zahlen mitlieferte, hab’ ich mir mit Sequel Pro die Zahlen aus meiner Blog-Datenbank geholt.

Für mich sieht das Resultat der obigen Abfrage so aus:

Year Count Average
2003 157 0.3057
2004 316 0.6108
2005 197 1.2589
2006 144 1.4375
2007 140 2.8143
2008 146 2.5685
2009 93 3.7419
2010 90 3.1333
2011 73 1.3973
2012 17 0.4706

Ein Peak im Jahr 2009 ist klar erkennbar, danach sinken die Kommentarzahlen absolut und im Durchschnitt. Da ich aber der visuelle Mensch bin, hab’ ich mir gedacht, dass sich diese Zahlen (genau wie bei Herr Leu übrigens) doch in eine schöne Grafik verpacken lassen sollten.

Deshalb hab’ meinen Lieblingseditor gestartet und untenstehendes Python-Skript geschrieben. Das Skript liest die Zahlen aus einem Text-File und stellt die durchschnittlichen Kommentare normiert als Plot über die Jahre dar. Das einlesen aus einem Text-File hab’ ich gemacht, damit sich nicht nur meine Zahlen, sondern auch diejenige visualisieren lassen, welche andere in den Kommentaren bei Herr Leu angegeben haben.

#! /opt/local/bin/python

import optparse
from pylab import *

# Use Pythons Optionparser to define and read the options, and also
# give some help to the user
parser = optparse.OptionParser()
usage = "usage: %prog [options] arg"
parser.add_option('-n', dest='Name', metavar='Fridolin')
(options, args) = parser.parse_args()

# show the help if no parameters are given
if options.Name==None:
	parser.print_help()
	print ''
	print 'Example:'
	print 'The command reads the comment from "comments_sepp.txt"'
	print 'and plots them nicely.'
	print ''
	print 'comments.py -n sepp'
	print ''
	sys.exit(1)
print ''

Data = genfromtxt('comments_' + str(options.Name) + '.txt',skip_header=True)

MaxAverage = 0
for line in Data[:,2]:
	MaxAverage = max(MaxAverage,line)

ax = plt.subplot(111)
ax.plot(Data[:,0],Data[:,2]/MaxAverage)
ax.axis([2003,2012,0,1])
ax.xaxis.set_major_formatter(FormatStrFormatter('%d'))
title('Normalized comments for ' + str(options.Name))
savefig(str(options.Name) + '.png')

Als ich das kleine Skript mit den angegebenen Zahlen laufen liess, entstehen untenstehende Plots. Schön ist zu sehen, dass der Kommentarhöhepunkt bei allen (Markus, Robert, Roger, Manuel [1] und mir) teilweise deutlich überschritten scheint. Ich persönlich bewege mich nicht (mehr) auf Twitter und Facebook, erhalte also auch von dort keine Rückmeldungen.

habi.png markus.png robert.png roger.png sprain.png


Um’s genau wie Herr Leu zu sagen: Auch wenn ich das ganze als Python-Fingerübung benutzt habe, wünsche ich mir mehr Kommentare hier, auch – oder gerade wenn – ein Beitrag nicht gefällt, oder du eine andere Meinung hast.

[1]: der mich übrigens mit dem “wenn auch auf tieferem Niveau” in seinem Kommentar drüben bei Herr Leu dazu gebracht hat, die durchschnittlichen Kommentare zu normalisieren.

LunaMod

Vor einigen Monaten hab’ ich im damals aktuellen Makezine die Bastelanleitung für den LunaMod gesehen. Wie’s dann so geht mit Projekten, hast ein paar Wochen gedauert, bis wir uns hinter die Teileliste gesetzt haben und alles notwendige bestellt hatten. Kurz vor Weihnachten haben Bastian und ich endlich die Zeit gefunden, uns hinzusetzten und unsere Lötkünste zu trainieren.

Nach kürzerem Soft- und Hardware-Debugging hörten wir tatsächlich zum ersten Mal Sound aus unseren Kopfhörern. Ich hab’s dann beim Einbau in das Holzkistli aus der Brocki geschafft, zwei wichtige Kabel abzureissen, so dass die Spielfreude gerade wieder getrübt wurde. Aufgrund vieler Faktoren hab’ ich es erst dieses Wochenende geschafft, einen neuen Druckschalter einzubauen und die Platine und alle Kabel schön in einem Holzkistli zu verpacken.

Schlussendlich sieht dann das Ding gar nicht so schlecht aus, wenigstens von aussen. In der Kiste drin sieht’s ein bisschen weniger aufgeräumt aus, aber ich bin schon etwas stolz, dass trotz meinen zwei linken Händen das Kästchen lustige Töne von sich gibt. Diese sind unten zu hören, falls sich jemand für 8bit-Lärm interessiert :)

DSC_0474.JPG

IMG_0477.JPG

Gehirnakrobatik

Ich find’s immer wieder erstaunlich, wie einfach sich unser Gehirn täuschen lässt.

Die Herren Tangen, Murphy und Thompson haben entdeckt (doi:10.1068/p6968), dass sich Gesichter, die auf Augenhöhe ausgerichtet und in schneller Folge präsentiert werden, grotesk verformen. Wenn Gesichter von doch recht hübschen Damen in schneller Abfolge nebeneinander präsentiert werden, fallen dem Gehirn nur die Unterschiede auf, die dann im visuellen System stark übertrieben werden, so dass die Gesichter aussehen, als kämen sie aus einem Horrorfilm. Doch seht selber, unten ist ein Film eingebunden, welcher den Effekt zeigt.


Video via Reto Hugi, irgendwie per Google Buzz. Google Buzz wird zwar von mir nicht mehr wirklich benutzt, ich schalte mittlerweile jeden einzelnen Kontakt auf stumm dort, denn wenn ich Email lesen will, will ich Emails lesen und mich nicht in einem Social Stream verlieren. Reto entging dem bis jetzt. Ich hoffe, solche Sachen tauchen dann in Zukunft bei Google+ auf :) Einladungen dafür gibt’s immernoch, wenn jemand will.

Das Eisenbahnviadukt in Gümmenen

Am Montag Abend habe ich ein kleines Velofährtli gemacht um mal das Eisenbahnviadukt neben Gümmenen im Abendlicht zu fotografieren. Mit dem 8mm Fischauge-Objektiv, dass ich momentan zur Evaluation von Martin Bichsel ausgeliehen habe, entstanden dann einige schöne Fotos des Viaduktes. Dank dem extrem weitwinklichen Objektiv konnte ich mit 6 Fotos (ohne Stativ) komplette Rundumansichten des Viaduktes machen.

Laupen Viadukt Fused.jpg


Nach kürzerer Nachbearbeitung entstand aus diesen Rundum-Ansichten des Viaduktes eine stereographische Ansicht, ein sogenannter kleiner Planet. Einer der vier Planeten, die am Montag Abend entstanden sind, ist untendran zu sehen, den Rest (und die anderen Rundumansichten) gibt’s drüben bei flickr im Set zum Eisenbahnviadukt zu sehen.

Laupen Viadukt stereographic.jpg,


Wer’s gerne ganz immersiv hat, findet die Fotos auch bei 360°Cities, nämlich hier in der Fused-Variante und hier in der Variante im Schatten, also auf der Rückseite des Viaduktes.

Google Summer of Code 2011: Hugin participates and looks for Students

Readers of this blog might know that I’m an avid user of hugin. Like every year since 2007, hugin participates in the Google Summer of Code, a global program that offers student developers stipends to write code for various open source software projects. In the past years Yuval Levy and Alexandre Prokudine [0] spearheaded the GSoC effort for hugin.

Since I’m no programmer I wanted to give back something to the community and will act as this years main admin, while Bruno Postle will act as a backup.

So, if you know a student that would like to participate in a neat, C and C++-based project this summer, let her or him know about our mentoring page for GSoC: Hugin – Panorama Photo Stitcher

And just to be complete: The text below just went to the hugin mailing list, the call for Students.

[0]: Now of darktable-fame, as seen here.

—-

Dear prospective Students

Hugin has been accepted as a mentoring organization in the upcoming Google Summer of Code 2011. This email is the official call for students:

As Yuval already described in a blog post [1], would-be participants need to get to work soon. The earlier, the better.

Familiarize yourself with the hugin codebase, think of an itch that bothers you and how you could help to get rid of that itch. You need to work on your application, voice up and introduce yourself to the mailing list. We have a dedicated page on the panotools wiki that describes the way to go [2].

Remember, the deadline for your application is April 8 19:00 UTC, this is in two and a half weeks!

Looking forward to hear from you

For the whole hugin-team

Habi, GSoC-Admin

[1]: http://wp.me/paLeH-xE

ZTE Blade oder Orance San Francisco im Test

Letzthin konnte ich für This wieder mal ein kleines Textli in der BZ schreiben: Ich habe über ca. 2 Wochen das Andriod-Telefon ZTE Blade, auch bekannt als Orange San Francisco getestet.

Vor einiger Zeit habe ich dank meinen Online-Kollegen mitbekommen, dass Valora in der Schweiz ein Android-Telefon prepaid für sagenhaft günstige 100.- verkauft. Da ich erst nächsten Herbst bei meinem Anbieter den Vertrag verlängern kann und solange noch offiziell mit dem iPhone 3GS telefoniere, habe ich mir gedach, dass das ein gutes Mittel sei, um mal ein anderes Gerät zu testen [1]. Ich muss sagen, das Gerät beeindruckte mich deutlich mehr, als ich dem Ding für 100.- zugetraut hätte. Trotzdem bin ich nach dem Testzeitraum wieder zu meinem iPhone zurückgekehrt, das hat aber mehr mit einer Tasse Tee und dem doch nicht ganz wasserdichten ZTE Blade und meiner Musikhör-Einrichtung im Büro zu tun als mit dem erstaunlich guten ZTE Blade.

Wer sich für den Kurztest, welcher in der BZ erschienen ist, interessiert, findet den Artikel hier auf der BZ-Website oder hier als PDF oder kann den Artikel unten direkt eingebunden lesen.

Wenn noch Fragen zum Telefon auftauchen, kann ich diese gerne in den Kommentaren hier beantworten.

[1]: Wenn mensch sich ein wenig mit diesem ZTE Blade beschäftigt, findet mensch auch Möglichkeiten, den Prepaid-SIM-lock sagenhaft einfach zu umgehen, dies aber nur so nebenbei erwähnt. Dazu gebe ich keine Auskunft, sondern überlasse dies als Übung dem geneigten Leser oder der geneigten Leserin.

Meine neue Uhr: MONOCHRON [inkl. Timelapse] [update]

Vor ein paar Monaten habe ich meine Uhrensammlung erweitert: ich hab’ mir bei Adafuit Industries [1] eine MONOCHRON-Uhr gekauft (nachdem ich im Make darüber gelesen habe).

Bis jetzt hat die Uhr in Ihren Einzelteilen auf meinem Pult auf den Zusammenbau gewartet. Für This, der letzthin wieder mal einen Citizen Journalism-Artikel in der BZ über digitale Gadgets angezettelt hat, habe ich ein kurzes Textli über diese Uhr geschrieben. Das PDF dieses Artikels kann hier gelesen werden, oder ist per Viewer unten eingebunden [2].

Letzten Sonntag habe ich mich dann endlich hingesetzt und das erste Mal in meinem Leben mehr als zwei Drähte aneinander gelötet. Nach einer halben Stunde Lötarbeit war ich dann schon ziemlich stolz, als die Uhr zum ersten Mal gepiepst hat, nach einer Stunde hat sie dann auch die Zeit angezeigt. Die zusammengebaute Version der Uhr zeigte die Zeit ganz normal an, was an sich schön ist, aber nicht das von mir gewünschte Resultat war.

Nach einer weiteren halben Stunde Gebastel (inklusive Wiederauseinandernehmen des Gehäuses und einlöten des USB-Adapters, den ich vergessen hatte) konnte ich dann die gewünschte Pong-Firmware auf die MONOCHRON laden und habe jetzt eine schöne neue Uhr in meiner Sammlung (die bis jetzt neben der MONOCHRON-Uhr aus einer Verbarius, einer Manifold Clock und einer Phosphor E-Ink Clock besteht, Hinweise auf weitere Uhren sind willkommen!).

Die MONOCHRON-Uhr spielt mit sich selber Pong, das linke Paddle spielt extrem schlecht, so dass der rechte “Spieler” pro Minute einen Punkt macht, der linke “Spieler” währenddessen nur einen Punkt pro Stunde. Will heissen: der Punktestand des autonomen Pongspiels zeigt mir immer die aktuelle Uhrzeit an:


Wer mir beim Zusammenbau der Uhr über die Schulter gucken will, kann dies in untenstehendem Video tun:


[1]: Adafruit Industries verkauft einiges an sogenannten Kits, elektronische Gadgets, die selber zusammengebaut werden müssen. Ein Grossteil der Kits ist Open Source Hardware, das heisst, die Pläne sind frei verfügbar und könnten auch selber erstellt werden. Einfacher ist es aber, auf der Webseite ein Kit zu bestellen, so dass mensch nicht 20 verschiedene Läden abklappern muss…
[2]: Es hat etwa eine halbe Stunde gedauert, bis ich denn rausgefunden habe, dass der Google Docs Viewer scheinbar nicht mit mehreren Bindestrichen im Filenamen umgehen kann…

update: Mein Filmli hat’s übrigens bis aufs adafruit-blog gebracht!

Surfen ohne Flashplayer funktioniert auf OS X wunderbar

Seit der Neuvorstellung des MacBook Airs vor ein paar Wochen ist mir aufgefallen, dass die neuen Laptops von Apple zwar mit Flash, aber ohne Flash ausgeliefert werden. In den Hintergrundberichten dazu war zu lesen, dass dies unter anderem wohl aus softwarepolitischen Überlegungen gemacht wurde, wichtiger ist aber, dass die Laptops dadurch im Surf-Betrieb stabiler und stromsparender laufen, da der Flash Player prozessorintensiv und nicht ganz fehlerfrei programmiert ist. Schon seit sehr langer Zeit surfte ich mit ClickToFlash durch die Weiten des Internetzes, um dem Problem entgegenzuwirken. Dieses Plugin verhinderte aber nicht, dass der Flash Player im Hintergrund trotzdem geladen wird und Speicher sowie Prozessorzeit verbraucht.

Vor ein paar Tagen habe ich bei Herr Gruber drüben gelesen, wie einfach die Entfernung des Adobe Flash Players unter Mac OS X ist. Eine solche Entfernung (oder genauer Deaktivierung) ist nicht nur einfach, sondern – wie mein Praxistest in den letzten 10 Tagen zeigt – dank neuen Netztechnologien erstaunlich schmerzlos.

Seit 10 Tagen surfe ich fast ausschliesslich Flash Player-frei durch das Internet. Gemacht habe ich das nach Herr Grubers Anleitung so:

  • Im Ordner /Library/ einen neuen Ordner “Internet Plugins (disabled)” erstellen und aus dem Ordner “Internet Plugins” die Dateien Flash Player.plugin, flashplayer.xpt und NP-PPC-Dir-Shockwave rüberverschieben. Dies deaktiviert den Flash Player. Aus- und wieder einloggen oder neu starten aktiviert diese Einstellungen.
  • Youtube auf HTML5 umstellen, das aktiviert den HTML5-Player auf YouTube
  • Vimeo auf HTML5 umstellen
  • Die Safari-Extension Youtube5 installieren, damit auch eingebundene YouTube-Videos ohne Flash Player angezeigt werden.

So bewege ich mich nun seit 10 Tagen durchs Netz und habe nur ein paar Einschränkungen bemerkt. Entweder weil ich (noch) keinen Vimeo Pro Account habe oder weil die Youtube5-Extension nicht korrekt funktioniert werden die eingebetteten Videos von mir nicht als HTML5 ausgeliefert. Teilweise werden Videos von anderen Seiten als Youtube und Vimeo nicht als HTML5-Alternative ausgeliefert (z.B. Spiegel.de oder NewsNetz). Flashgames (z.B. die witzigen der Nothing Agency) funktionieren nicht und die Flickr-Diashows werden auch nicht angezeigt. Diese Probleme sind aber sehr einfach lösbar. Und wie ich im vorhergehenden Eintrag geschrieben habe, ist ohne Flash Player der Link zum Einbinden von issuu.com-Dokumenten zwar kurz sichtbar, führ aber nach einem Klick und der Anzeige des Einbett-Codes direkt zum Dokument.

Für solche Spezialfälle greife ich auf Google Chrome zurück. Google Chrome hat seinen eigenen Flash Player eingebaut, der nach dem Beenden des Browsers auch sauber wieder aus dem Speicher gelöscht wird und so nach dem Anschauen eines Videos oder einer Diashow keine weiteren Probleme macht.

Fazit: Der Flash Player ist dank neuen Netztechnologien heute nicht mehr zwingend notwendig. HTML5 FTW!

Bücher zu verschenken – BookCrossing [update]

Letzthin hab’ ich ein wunderbares Buch gelesen; die Geschichte des Herr Zbinden, die Christoph Simon in poetischer und spannender Weise niedergeschrieben hat.

Damit auch andere dieses Buch geniessen können, sei es erstens hier empfohlen. Zweitens habe ich das Buch vergangene Woche an der Uni ausgesetzt. Das tönt jetzt erstmals ein bisschen komisch, aber ich hab’s nicht einfach weggeworfen, sondern bewusst in die Freiheit entlassen, nämlich über BookCrossing.com Das Buch hat jetzt eine eigene ID und kann über die Webseite verfolgt werden. In Zukunft werde ich noch ein paar andere Bücher aus meinem Estrich auf diese Weise in die Wildnis entlassen.

Falls du das auch machen möchtest, kannst du hier ein PDF mit den Etiketten (131 kB) runterladen. Dieses Etiketten-PDF kannst du einfach auf die 2×5-Etiketten für 6.90 aus der Migros drucken.

Die Etiketten habe ich mit LaTeX und dem labels sowie dem BookCrossing-Logo ganz unten erstellt. Wer das selber auch machen möchte, oder die Etiketten etwas anders bedrucken, findet unten den TeX-Code eingebunden. Zur freien Verwendung und Verschandelung.

bookcrossing-logo-900.jpg


update: Max hat mich auf einen Schreibfehler im Text aufmerksam gemacht. Ich habe den LaTeX-code sowie das PDF korrigiert.

Timelapsed Zürich II

Herr Hosae hat gefragt, wieso ich die Timelapse-Filme von Zürich stündlich gemacht habe, und nicht einen einzigen Monster-Zeitraffer-Film davon erstellt habe. Die einfache Antwort war, dass der Film so nicht so schön aussieht, viel zu nervös.

Die kompliziertere Antwort war auch, dass das Ganze so nicht einfach zu erstellen war, denn für jede Stunde ein Foto über 2.75 Jahre ergibt sage und schreibe gut 23000 Fotos (kein Tippfehler :) Zuerst musste ich so mal eine Film herstellen. Quicktime Pro auf meinem Bürorechner mit 8 GB RAM hat nach einer Stunde aufgegeben, schlussendlich hab ich’s dann mit ImageJ und dem Quicktime Writer Plugin geschafft, einen zusammenhängenden Film zu schreiben.

Problematisch war jetzt nur, dass der Film bei 24 Bildern pro Sekunde einiges über 15 Minuten war. Mit 1.8 GB Grösse auch nicht grad ein Filmli, das mann einfach irgendwo hochladen kann. Mit 48 Bildern pro Sekunde, also 2 Tagen pro Sekunde passt der Film dann in die Maximal-Länge, die auf youtube hochgeladen werden kann. Das Ergebnis ist unten eingebunden. Hosae, was meinsch? Ist nicht wirklich schön anzuschauen, oder? Aber als “because I can”-Übung musste das hier doch nochmals gepostet werden…


Und nur fürs Protokoll. Ich mag youtube nicht, vimeo ist mir viel sympathischer. Nicht nur wegen der Community, sonder auch bei der Art und Weise, wie meine Urheberrechte dort gehandhabt werden. Aber mit einem kostenlosen Account kann mensch dort nur 500 MB pro Woche hochladen, ist also unmöglich. Oder sponsert mir jemand einen Vimeo Plus-Account? Dann wären auch meine Tauchfilme immer in HD zu sehen…

Zürich im Zeitraffer

Letzthin ist mir aufgefallen, dass die Bilder der SWITCHWebcam, die seit 2008 schön säuberlich in einem Archiv auf denen ihrem Webserver abgespeichert werden. Da die SWITCH-Cam jede Stunde ein Panoramabild der Innenstadtregion, der ETH und dem unteren Seebecken macht, habe ich mir gedacht, dass so schöne Zeitrafferaufnahmen entstehen könnten.

Da ich die schnelle Datenleitung der SWITCH ausnutzen wollte, habe ich mir (in der Freizeit, ja) im Büro ein kleines MATLAB-Skript [1] geschrieben, welches für jede Stunde seit 2008 das Panoramabild von Zürich heruntergeladen hat. Für Interessierte ist das Skript unten dargestellt und kann hier heruntergeladen und angeschaut werden.

In den ersten paar Zeilen werden die verschiedenen Tage der Monate eingestellt, dann wird für jede Stunde jedes Tages seit 2008 das Webcambild runtergeladen und in einem Verzeichnis gespeichert. Zeitweise kommt es vor, dass ein Bild nicht gefunden wurde, deshalb ist ab Zeile 44 eine Sicherheitsschlaufe eingebaut, die das Skript nicht abbricht. Damit’s dann schön zeitrafferig aussieht habe ich mich eines kleinen ImageMagick-Tricks bedient, und die Bilder noch mit dem Datum und der Uhrzeit beschriftet (Zeile 51-60). Schlussendlich sind für jede Stunde seit Januar 2008 bis September 2010 knapp 1000 Bilder geschrieben worden, die ich dann mit Quicktime Pro zu einem Zeitraffer-Film zusammengesetzt habe.

Das heisst, schlussendlich habe ich für jede Stunde von Mitternacht bis 23.00 Uhr einen Zeitrafferfilm der Stadt Zürich. Alle diese hier zu zeigen würde den Rahmen dieses Blogeintrags sprengen, deshalb hier nur ein paar davon. Alle 24 Filme sind in diesem Album auf Vimeo zu finden. Die Filme haben bei der Flash-Konvertierung ziemlich gelitten, wer die Zeitraffers in HD-Qualität herunterladen will, soll auf die jeweilige Video-Seite gehen. Unten rechts kann das Original heruntergeladen werden, die Videos stehen unter einer CC-Lizenz zur Verfügung. Hoffentlich passt das auch den Herren und Damen der SWITCH :)

Zürich um Mitternacht

Zürich um Neun Uhr Morgens

Zürich um Fünf Uhr Abends

Zürich um Neun Uhr Abends

[1]: Ja, es ginge auch anders, gerne z.B. mit Python. MATLAB kenne ich aber gut und brauche es viel. Deshalb.

Wilderness Downtown

Genauso wie Herr Sprain bin ich unglaublich beeindruckt von The Wilderness Downtown, einem Music-Clip, der sich in verschiedensten Browserfenstern abspielt. Das ganze funktionert nur mit moderneren Browsern, am besten Safari oder Googles Chrome, haut einem aber ganz schön aus den Socken. Am besten ist’s, wenn mensch im Startfenster eine Stadt eingibt, die mensch kennt, alle anderen Browserfenster schliesst, die Lautstärke auf 11 dreht und sich zurücklehnt.

thewildernessdowntown.PNG

[via sprain]

Codevisualisierung mit Gource – So arbeitete ich an meiner Diss

Meine Diss ist auf der Post, im Moment heissts nur noch warten, was die beiden Korrigierenden dazu meinen. Anschliessend gibt’s noch einiges zu tun bis Ende Juni, wenn ich meinen Diss-Vortrag halten muss. Aber im Moment hab’ ich etwas mehr Zeit zum rumspielen.

Genau das habe ich gestern gemacht. Als Typo-Nerd habe ich meine Diss in LaTeX geschrieben und den Fortschritt zusätzlich in einem Subversion-Repository festgehalten. Dies auch damit ich jederzeit zu einer älteren Version zurückwechseln könnte, wäre es denn nötig gewesen. Kürzlich bin ich über die faszinierenden Code-Visualisierungen gestossen, die mit Gource gemacht werden können. Wenn mann versucht, meine Arbeit an meiner Diss zu visualisieren, sieht das dann so aus:

Da für das Ganze doch einiges an rumprobieren notwendig war (und weil vielleicht andere das auch versuchen wollen: This, der Blick geht zu dir, ich nehme an, du hast für deine Semesterarbeit sicher auch irgendwie versioniert :))

Die Installation von Gource ist unter OS X dank MacPorts [1] schnell erledigt: Ein Aufruf des untenstehenden Befehls in Terminal.app installiert das Commandline-Programm mit allen Zugehörigkeiten.

sudo port install gource

Falls du auf deiner Maschine Git und ffmpeg [1] noch nicht installiert hast, dann machst du das Ganze in einem Aufwasch am besten mit

sudo port install git ffmpeg gource

Je nach Aktualität deiner MacPorts-Installation braucht’s vorher evtl. noch ein “sudo port selfupdate”, damit alles klappt. Am besten machst du dir jetzt ein Kafi oder so, das Ganze kann längere Zeit dauern.

Anschliessend gibts du in einem leeren Verzeichnis (immernoch im Terminal) den Befehl

git svn clone http://svn.ana.unibe.ch/svn/Thesis-David

ein. Dies hat zur Folge, dass via Git ein Subversion-Repository (keine Angst, das Repository ist nur innerhalb der Uni Bern erreichbar :) ) ausgecheckt wird. Gource arbeitet nur mit Git-Repositories zusammen, was aber dank “git svn clone” problemlos klappt.

Das oben eingebundene Filmli habe ich dann mit

cd Thesis-David

gource -1280×720 –disable-progress –stop-at-end –bloom-multiplier 1.25 –bloom-intensity 1 -a 0.25 –output-ppm-stream – | ffmpeg -y -b 3000K -r 60 -f image2pipe -vcodec ppm -i – -vcodec libx264 -vpre default Thesis.mp4

erstellt. Am besten trinkst du jetzt deinen Kafi fertig, das ganze kann wieder etwas dauern. Obiger Befehl berechnet das Filmli mit Gource in HD-Auflösung (-1280×720), ohne Progress-Bar, hört am Ende auf, ändert die Darstellung etwas (-bloom-multiplier, -bloom-intensity und -a) und schreibt das ganze in einen PPM-Stream. Dieser Stream wird dann mit ffmpeg direkt in das Filmli Thesis.mp4 umgewandelt. Hochladen zu vimeo, fertig!

[1]: MacPorts ist sowieso uneingeschränkt zu empfehlen, jegliche Opensource-Software lässt sich so extrem einfach installieren.

[2]: Dringend nachholen, am besten auch gerade noch ImageMagick, dann konvertierst du easy Bilder und Videos…

PS1: Hat jemand gemerkt, dass ich diesen Eintrag dank Gratis-WLAN in Atlanta, Georgia, USA geschrieben habe? Ich bin 10 Tage in den USA, benehmt euch also!

PS2: Das war wohl der bisher nerdigste Beitrag ever hier!

Zeitraffer: Rund um Bern [Video]

Mann nehme:

Zubereitung:

Das iPhone sauber am Velo befestigen, je nach Regenerwartungs-Haltung noch mit Arschlochfolie einpacken. Sieht so aus:

Bild0082.jpg

Gorillacam starten und so einstellen, dass alle 10 Sekunden eine Aufnahme gemacht wird.

Losfahren, z.B. diese Tour rund um Bern:


Fotos vom iPhone runterladen. Staunen, dass nach einer Stunde die Batterie leer war und drum kurz nach Allmendingen kein Foto mehr gemacht wurde.
Fotos in Quicktime importieren, 6 Bilder pro Sekunde, so dass eine Stunde Velofahrt auf eine Minute eingekocht wird. Hochladen, einbinden, verbloggen.

Fertig ist das Samschti-Nami-Velofährtli-Zeitraffer-Filmli.

Automator Actions zur Bildbearbeitung

herr chm hat kürzlich ein schönes panorama-bild von seinem balkon aus veröffentlicht, welches von mir aus gesehen ohne schwarzen rand viel besser aussehen würde. da herr chm offenbar den automator nicht kennt, habe ich hier einen kurzen screencast gemacht, wie ich dieses raffinierte feature verwende, welches von haus aus in OS X integriert ist. der screencast unten zeigt, wie einfach es ist, sich einen sogenannten service zu machen, um bilder schnell umzuwandeln:

da es sicher ein paar eilige gibt, die sich das nicht im automator nachbauen wollen, habe ich meine kleinen scripte hier hochgeladen. diese skripte müssen in ~/Library/Services/ kopiert werden, das heisst in den library-ordner in eurem home-verzeichnis, und sind dann mit einem rechtsklick auf bilder im finder zu sehen (wie im screencast oben gezeigt).

Achtung: Ich habe die services so gemacht, dass KEINE kopie der bilder erstellt/behalten wird, sondern das bild geändert wird. wem das nicht passt, bearbeitet die heruntergeladenen services vor dem kopieren in ~library/services/ mit seinem eigenen automator! die benutzung der hier zur verfügung gestellten skripte erfolgt somit auf eigene gefahr! bei falscher benutzung geht die 7 TeV-Kollision vom LHC morgen früh schief und wir landen alle in einem schwarzen loch!!1!

die skripte sind im file automatorworkflows.zip zu finden. dieses file enthält

  • convert>jpg: konvertiert das gewählte bild (oder die gewählten 100 bilder) von irgendeinem erkannten format nach .jpg
  • convert>png: macht dasselbe nach png
  • resize>1024: ändert die grösse der längsten seite des bildes auf 1024 pixel
  • resize>2048: dasselbe in grün, bzw. auf die grösse 2048 pixel
  • resize>ask: ändert die grösse auf eine pixel-anzahl, welche beim start des skriptes eingegeben werden muss
  • rotate>left: rotiert das bild (oder die 2347 bilder) einmal nach links
  • rotate>right: dasselbe nach rechts

viel spass damit, herr chm (oder wer auch immer die kleinen skripte brauchen will)

btw: für grössere bildbearbeitungs-sachen (z.B. knapp 12000 Bilder beschneiden, die grösse zu ändern oder in ein anderes format zu konvertieren) ist immernoch ImageMagick unschlagbar. dies bedingt aber immer einen umweg übers terminal und eine installation von macports und weiteren abhängigkeiten, automator ist im betriebssystem dabei.