[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.
Blogo – Der WordPress Client für Mac OSX
Vor einer Weile hatte ich im Appstore mal wieder nach einem OSX Client für meine WordPress Seiten gesucht. Klar ist es toll, alles online an jedem beliebigen Rechner erledigen zu können – ABER: wenn ich mal schnell einen Kommentar freischalten oder kurz einen Mini Post schreiben möchte, dann wird es relativ aufwendig: Browser öffnen, Seite aufrufen, einloggen, Menüpunkt raus suchen. Außerdem wird es schwierig, wenn man gerade kein Netz hat.
Blogo schließt diese Lücke ziemlich gut – alle anderen Tools für Mac sehen ziemlich bescheiden aus und lassen nicht gerade auf eine intuitive Bedienung hoffen. Also hab ich die Entwickler kurzerhand angeschrieben und gefragt, ob sie eine Testversion für mich haben. Und die hatten sie 😉
Das Tool ist auf das nötigste reduziert und bietet alle wichtigen Funktionen, die man für die Verwaltung eines WordPress Blogs braucht – derzeit werden keine anderen Plattformen unterstützt.
Aber – es gibt auch ein paar Schwachpunkte. Vor allem die Arbeit mit Bildern ist eher schwierig, weil man lediglich Platzhalter und nicht wirklich die Bilder sehen kann. Klickt man diese an, dann sieht man zwar das richtige Bild und kann es auch zuschneiden und die Größe ändern, aber so richtig intuitiv wirkt das ganze nicht. Richtig blöd ist, dass Bilder nur einzeln hinzugefügt werden können – einfach mal eine Reihe Bilder in einen Post ziehen funktioniert nicht. Dieses Feature hätte mir besonders bei meiner Fotoseite geholfen.
Ein zweiter Kritikpunkt ist das Setzen von Kategorien und Tags. Hierfür ist nur eine Zeile vorgesehen. Schreibt man einfach nur ein Wort in diese Zeile, so wird dies als Kategorie gewertet. Schreibt man vor das Wort eine Raute, so ist es ein Tag. Schöner wäre es, wenn man alle Kategorien sehen und auswählen könnte – ganz so wie im Browser. Auch vergisst man gerne mal die Raute und legt so gleich eine neue Kategorie an.
Kritikpunkt Nummer drei: man kann den Blogpost nicht in der HTML Ansicht editieren – es ist also nicht möglich, eigene Formatierungen oder HTML Tags zu setzen. Ich verwende dies z.B., wenn ich Code besonders formiert haben möchte.
Abgesehen von diesen drei Kritikpunkten macht Blogo aber richtig Spass. Es schreibt sich irgendwie besser als im Browser und geht leichter von der Hand. Besonders mag ich die Möglichkeit, direkt in der App Kommentare freischalten zu können. Wenn man noch direkt auf Kommentare antworten könnte wäre es natürlich perfekt 😉
Der Preis mit knapp 27€ schon ziemlich happig – zumindest, wenn man von den generell ziemlich niedrigen Preisen im AppStore ausgeht. Sofern die Problemchen noch ausgemerzt werden, ist Blogo allerdings eine sehr gute Investition, die vor allem Vielschreibern die Arbeit deutlich erleichtern wird.
Blogo - Powerful blog editorHersteller: Blogo Inc.
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.
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:

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.
Wie schreibe ich eigene / custom Funktionen in einem Makefile?
Mittels selbst definierter Funktionen kann man so ein Makefile deutlich effizienter und übersichtlicher gestalten.
Definiert wird eine Funktion wie folgt:
define name-meiner-funktion @ [hier steht dein shellcode] \ [mehrzeiliger Code muss pro Zeile mit \ abgeschlossen werden] \ [Variablen werden mit $1, $2, usw. angesprochen] endef
Aufgerufen wird die Funktion dann mittels:
$(call name-meiner-funktion,parameter1,parameter2,...)
Wichtig ist hier, dass zwischen den Kommas KEIN Leerzeichen sein darf, sonst kommt es zu Fehlermeldungen!
[Quicktip] Aptitude meldet fehlerhafte Signaturen für Jenkins
Wenn ihr ein
aptitude update
durchführt und die Meldung
W: GPG-Fehler: http://pkg.jenkins-ci.org binary/ Release: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 9B7D32F2D50582E6
erscheint, dann müsst ihr folgendes machen:
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net 9B7D32F2D50582E6
Damit wird der angezeigte öffentliche Schlüssel auf den neuesten Stand gebracht und der Fehler hat sich erledigt. (9B7D32F2D50582E6 ist die Schlüssel-ID in meinem Fall, kann natürlich auch eine andere sein)
[Quicktip] Wie bringe ich der iOS Tastatur bestimmte Schreibweisen bei?
Die Autokorrektur von iOS ist schon ziemlich gut und sollte eigentlich auch mit der Zeit bestimmte Schreibweisen lernen. Nur tut sie das leider nicht immer. Um ihr etwas auf die Sprünge zu helfen, kann man die “Kurzbefehle” Funktion etwas missbrauchen. Eigentlich ist diese dafür gedacht, Abkürzungen wie “MFG” mit “Mit freundlichem Gruß” zu ersetzen. Man kann aber auch einfach ein Wort ohne Kurzschreibweise hinzufügen und prompt ist dieses in der Autokorrektur verfügbar.
In meinem Fall hat es mit genervt, dass der Name “Amelie” immer in die französische Schreibweise “Amélie” korrigiert wurde.
Um ein Wort hinzuzufügen, ruft ihr einfach folgendes auf:
Allgemein -> Tastaturen -> Kurzbefehle

Anschließend fügt ihr über das “Plus” ein neues Wort hinzu. Hierbei reicht es aus, wenn ihr das Feld “Text” ausfüllt. In meinem Fall schreibe ich also in das Feld “Amelie”. Ab sofort wird diese Ersetzung höher gewertet. Sprich, die Autokorrektur verwendet jetzt nur noch “Amelie” bzw. bevorzugt diese Ersetzung.
[Quicktip] Fehlerhafte Festplatte unter OSX formatieren
Seit einiger Zeit habe ich einen ziemlich komischen Fehler mit meiner Time Machine Festplatte. Es handelt sich um eine 2 TB USB 3.0 Festplatte, die an meinem Retina Mac wunderbar funktioniert. Die Platte ist mit dem Mac OS Dateisystem in der verschlüsselten Variante formatiert und wird, wie gesagt, komplett für meine Timemachine Backups verwendet.
Sobald ich diese Platte jedoch an mein relativ altes Macbook mit USB 2.0 stecke, lässt es sich dort nach Ewigkeiten irgendwie mounten, funktioniert aber partout nicht. An sich nicht schlimm, ABER: sobald ich die Platte nun wieder an meinen Retina Mac hänge, ist sie kaputt. Trotz korrektem Passwort kann ich sie nicht mehr entsichern und das Festplattendienstprogramm meldet auch immer wieder, dass mit dem Laufwerk etwas nicht stimmt. Solltet ihr diesen Fehler auch haben, dann kommt ihr um die erneute Formatierung leider nicht herum. Aber hier lauert der nächste Fehler: die Platte lässt sich nicht mehr formatieren.
Mit folgendem Trick geht es aber nun doch wieder:
– öffnet das Terminal
– gebt “diskutil list“ ein und schaut, ob ihr die gewünschte Platte in der Liste findet. Wichtig hierbei ist die Angabe /dev/disk[x], wobei das „[x]“ für eine Zahl 0, 1, 2, 3 usw. steht. Das ist der internet Identifier eurer Platte.
– führt nun auf der Console ein “ps aux | grep fsck“ aus und schaut, ob ihr damit einen Prozess findet. Dieser sieht dann ungefähr so aus:
– Schaut euch vorn die ID des Prozesses an und killt diesen mit einem „sudo kill [ProzessID]“ auf der Konsole. Anschließend sollte die Platte ausgeworfen werden. Wenn ihr sie nun eurneut an den Rechner steckt, sollte sie erneut erkannt werden und sich dann zumindest wieder formatieren lassen.
