[Quicktip] OS X Quick Look Vorschau mit Plugins erweitern

Die OSX Quicklook Vorschau ist sehr praktisch – egal in welchem Dateidialog man sich gerade befindet, man kann jederzeit die Leertaste drücken und bekommt eine Vorschau der aktuell markierten Datei. Das geht mit PDF, Office Dokumenten usw. schon ganz gut, aber wirklich praktisch wird es erst mit zusätzlichen Plugins.

Unter https://github.com/sindresorhus/quick-look-plugins sind ein paar sehr interessante Plugins aufgelistet, die u.a. die die Anzeige von Quellcode incl. Syntax Highlighting oder auch JSON Dateien ermöglichen. Eine Übersicht, was die einzelen Plugins können, findet ihr auf der Seite. Wenn ihr die Tools einfach schnell installieren wollt, dann geht das folgendermaßen auf der Shell (Homebrew muss installiert sein):

brew tap Caskroom/cask
brew update
brew install Caskroom/cask/qlcolorcode
brew install Caskroom/cask/qlstephen
brew install Caskroom/cask/qlmarkdown
brew install Caskroom/cask/quicklook-json
brew install Caskroom/cask/qlprettypatch
brew install Caskroom/cask/quicklook-csv
brew install Caskroom/cask/betterzipql
brew install Caskroom/cask/qlimagesize
brew install Caskroom/cask/webpquicklook
brew install Caskroom/cask/suspicious-package

Anschließend sind alle Plugins direkt ohne Neustart aktiviert.

[Quicktip] Wie kann ich meinen Sonos Lautsprecher über Airplay ansprechen?

Mein Sonos Play5 hab ich ja nun schon ein ganzes Weilchen und ich bin nach wie vor mega begeistert davon. Der Sound ist der Hammer, und die Einsatzmöglichkeiten rocken einfach nur.

Etwas ärgerlich ist es jedoch, dass man die Sonos Lautsprecher immer nur mit der entsprechenden Controller App ansprechen kann. Wäre es nicht viel cooler, wenn man daraus einfach einen Airplay Lautsprecher machen könnte?

Das geht einfacher, als man denkt. Man benötigt dazu nodeJS und das Tool airsonos. Hat man nodeJS installiert, dann kann man airsonos einfach über folgendes Kommando installieren:

npm install -g airsonos


Ist die Installation erfolgreich durchgelaufen, dann reicht es, wenn man auf der Shell einfach nur

airsonos

aufruft. Das Tool sucht dann Sonos Lautsprecher im Netzwerk und erzeugt jeweils eine Airplay Gegenstelle pro gefundenem Lautsprecher. Diese wird auch gleich mit dem korrekten Raumnamen versehen.

Bildschirmfoto 2015-01-07 um 00.08.10

Wichtig: Zumindest bei mir in Kombination mit dem Mac war die Lautstärke sehr sensibel – ich muss den Regler nur minimal nach oben ziehen, damit ich eine normale Lautstärke bekomme.

PS: solltet ihr unter Mac Probleme bei der Installation von airsonos haben, weil “node-gyp“ nicht richtig installiert werden kann und ihr zufällig Homebrew verwendet, dann führt folgendes Kommando aus:

brew unlink libtool


via https://medium.com/@stephencwan/hacking-airplay-into-sonos-93a41a1fcfbb

 

[Test] Sigma 50mm 1.4 DG HSM Art

Im letzten Jahr hat sich mir mal wieder die Möglichkeit geboten, von Sigma ein Objektiv für einen Test auszuleihen – es handelte sich um das von mir schon lang ersehnte 50mm 1.4 DG Objektiv aus der Art Reihe.

Ich denke, dass ich zu dieser Reihe nicht mehr viel sagen muss. Nachdem ich hiermit das 4. Objektiv mit diesem Namen zum Testen da hatte, würde ich die Teile mittlerweile blind kaufen. Die Optiken sind so herausragend und stehen mitdestens auf Canon L Niveau und höher. In jeder Situation liefern sie auch bei Offenblende scharfe Ergebnisse – so, wie man es eigentlich von jedem Objektiv erwartet.

Aber kommen wir zum 50mm zurück. Warum habe ich mich darauf besonders gefreut? Wer meine Fotografie schon etwas länger beobachtet, dem wird aufgefallen sein, dass ich größtenteils nur mit dieser Standard Brennweite fotografiere. Ich habe es bereits mit meinen Crop Kameras geliebt, aber so richtig Klick hat es dann an der Vollformat gemacht. In meinen Augen ist 50mm die ideale Brennweite für so ziemlich alle Situationen. Umso besser wird diese universelle Einsetzbarkeit noch, wenn die entsprechende Lichtstärke da ist. Und 1.4 ist schon recht ordentlich. Klar, es gibt noch 1.2 von Canon und die Olympus Freunde dürfen sogar mit Optiken spielen, die Blenden jenseits der 1 ermöglichen – aber man kann nicht alles haben 😉

Das Objetkiv ist, wie schon gesagt, nahtlos in die Reihe der Art Objektive von Sigma einzuordnen: hochwertig, schwer, groß, wuchtig, exzelent verarbeitet. Man hat sofort den Eindruck, einen wirklichen Gegenwert für sein Geld bekommen zu haben – ohne Angst haben zu müssen, dass es beim kleinsten Rempler kaputt geht. Dazu trägt auch die stabile Sonnenblende bei, die eben nicht aus billigem Plastik ist wie bei Canon. Der Ultraschallmotor sorgt für den schnellen, aber dennoch kaum hörbaren Fokus.

Das Objektiv ist sehr wuchtig, was natürlich negativ für den Komfort ist. Aber die optische Leistung entschädigt umso mehr. Nach den ersten paar Fotos war bereits klar: diese Linse wird demnächst gekauft. Mit einem Preis von derzeit etwas über 800€ sicher kein Schnäppchen, aber noch mal deutlich günstiger als das 50mm 1.2 von Canon. Auch wenn ich mich wiederhole: die optische Qualität ist herausragend. Es macht so viel Spass, ohne Hemmungen fest mit der Offenblende zu fotografieren und sich keine Sorgen zu machen, ob das mit dem Fokus noch klappt. Hinzu kommt ein sehr harmonisches und ruhiges Bokeh. Die Bilder sehen einfach nur toll aus.

Fazit: Die Linse ist eine absolute Empfehlung. Der Preis ist happig, aber doch sehr angemessen und man hat mit den 50mm einen idealen, sehr flexiblen Begleiter für fast jede Fotosituation.

Anbei habe ich noch ein paar Beispielbilder gepackt, die ich mit dem Objektiv geschossen habe (Kamera: Eos 6D):

IMG_9394
50mm 1.4

 

IMG_9398
50mm 1.4

 

IMG_9399
50mm 2.8

 

IMG_9402
50mm 2.8

 

IMG_9409
50mm 1.4

 

IMG_9566
50mm 1.4

 

IMG_9669
50mm 1.4

 

[Quicktip] Globalen SSH Key in Atlassian Stash hinterlegen

Wenn ihr in Stash viele Repositories habt und ein CI Tool wie Jenkins oder Teamcity nutzt, dann möchtet ihr sicher nicht bei jedem einzelnen Repo den SSH Key des Tools hinterlegen. Da ich lange nach der entsprechenden Stelle in Stash gesucht habe und in den Settings nichts dazu zu finden ist, hier eine mögliche Lösung für das Problem:

Die eine globale Stelle für das Problem gibt es nicht, ABER ihr könnt pro Projekt Zugriffsschlüssel hinterlegen. Ruft dazu einfach das Projekt auf, geht dann in die Einstellungen und dort auf Zugriffsschlüssel. Alle hier hinterlegten Keys können nur lesend oder auch lesend und schreibend für ALLE Repositories dieses Projektes freigeschalten werden. So lange ihr also nicht über allzu viele Projekte verfügt, ist die Einrichtung schnell erledigt 😉

[Quicktip] Wie bekomme ich einen Page Access Token als Facebook Entwickler im Graph API Explorer?

Die Facebook API ist ziemlich gut dokumentiert und es gibt auch allerhand Tools, um das ganze auch gleich direkt testen zu können. Im konkreten Beispiel wollte ich etwas von einer Facebook Fanpage auslesen – und ich bekam immer wieder die Fehlermeldung

“(#210) A page access token is required to request this resource.”

Der Trick ist nun folgender: man holt sich einen ganz normalen Access Token, der unter anderem die Berechtigungen für „manage_pages“ enthält. Dann ruft man die Ressource 

“me/accounts“

auf. Derzeit lautet die komplette URL also:

„https://graph.facebook.com/v2.2/me/accounts”

Nun bekommt man die Infos zu seinen Pages geliefert – inkl. des Page Access Tokens 😉

[Quicktip] Jenkins zeigt keine Trend Grafiken für Checkstyle, phpmd usw. an

Wenn ihr im Jenkins einen Job auswählt, der eigentlich die Ergebnisse von Checkstyle, phpmd usw. auswerten und anzeigen sollte – ihr aber keine tollen Diagramme sondern nur irgendwelche „headless“ Fehlermeldungen seht:

Installiert mittels

sudo apt-get install ttf-dejavu

die Font ttf-dejavu.

Nachdem die Schriftart installiert ist und Jenkins neu gestartet wurde, sollte Jenkins die Verlaufsdiagramme korrekt generieren und anzeigen.

Wie baue ich eine Vagrant Box mit OSX Yosemite?

Vagrant ist aus dem heutigen Entwickler Alltag nicht mehr weg zu denken. Wird es hauptsächlich für Linux Distributionen verwendet, so ist es doch auch mal ganz reizvoll, eine Box mit einem OSX drin zu betreiben – sprich, Mac OSX Yosemite zu virtualisieren. Und das geht so:

Zieht euch das Repository: https://github.com/box-cutter/osx-vm

Anschließend ladet ihr euch über den App-Store den OSX Yosemite Installer herunter – aktuell ist in diesem OSX Yosemite 10.10.1 enthalten. Wenn der Download abgeschlossen ist, ruft ihr folgendes im ausgecheckten osx-vm Order auf:

mkdir dmg
prepare_iso/prepare_iso.sh /Applications/Install\ OS\ X\ Yosemite.app ./dmg

Anschließend wird das im Installer enthaltene ISO zu einem beschreibbaren DMG umgewandelt und ein paar Patches angewendet. Wenn das Script durchgelaufen ist, dann könnt ihr mittels (xcode Command Line Tools vorausgesetzt)

make virtualbox/osx1010-desktop

die Vagrant Instanz für eine Yosemite Desktop Variante in Virtual Box bauen lassen. Das “virtualbox” kann man durch “vmware” ersetzen, und wenn man das “-desktop” weg lässt, dann bekommt man eine Consolen Variante von OSX.

Ihr werdet hier einen Fehler erhalten, dass der Installer das DMG nicht finden kann. In meinem Fall sollte die Datei “OSX_InstallESD_10.10_14A389.dmg“ heißen. Also benennt ihr einfach die vorhandene DMG Datei im Ordner DMG in den euch angezeigten Namen um. Anschließen führt ihr den oberen Befehl erneut durch und wartet einfach ab. Ihr werdet zuerst ein paar mal die Shell sehen, bis sich dann irgendwann der Yosemite Installer öffnet und das System automatisch installiert.

1416523902_thumb.png

Es wird automatisch der User Vagrant erzeugt, der das Passwort “vagrant” hat. Loggt euch aber nicht direkt ein, sobald die Login Maske erscheint, sondern beobachtet eure Console. Dort werdet ihr sehen, dass Vagrant erstmal die neuesten Updates einspielt und Software installiert. Also erstmal machen lassen 😉

Und ehe man sich versieht, hat man ein OSX in der Virtual Box am laufen:

Bildschirmfoto 2014-11-21 um 00.10.37
Wichtig: brecht auf keinen Fall den Installer ab! Wenn ihr das Script vorzeitig beendet, dann wird die komplette Box gelöscht. Dass ihr die GUI seht ist erstmal etwas verwirrend – letztlich wird die Box nur vorbereit, um dann nach Abschluss aller Installationen als „echte“ Vagrant Box hinterlegt zu werden. Diese Box wiederrum könnt ihr dann als Vagrant Box verwenden, um verschiedene Instanzen davon laufen zu lassen.

Die erstellte Box wird ca. 6GB groß sein.