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.

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

IMG_3545.PNG

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] LTE mit dem iPhone 6 funktioniert bei Vodafone nicht

Als Wechsler vom 5er iPhone zur 6er Version war mir neben vieler toller Features auch die LTE Unterstützung im Vodafone Netz wichtig. Aber nix da, trotz eingeschalteter Option und definitiver Abdeckung mitten in Dresden kam ich einfach nicht in das 4G Netz.

Das Problem war, ähnlich wie bereits bei meinen SMS Problemen, die Mehrzahl an SIM Karten, die ich besitze – iPhone, iPad und nochmal iPad. Warum auch immer, die Nano SIM in meinem iPhone war nicht die Master Karte. Und nur diese unterstützt das Einwählen in das LTE Netz. Zumindest ist das bei Vodafone so.

Die Problemlösung ist also, solltet ihr über mehrere Nano SIM Karten (für den SELBEN VERTRAG!!!) verfügen: tauscht alle Karten durch und probiert es mit jeder mal im iPhone. Alternativ könnt ihr auch einfach die Vodafone Hotline 1212 anrufen. Die netten Leute vom Support können euch schnell sagen, in welchem Gerät die Masterkarte steckt.

Sobald ihr die richtige Karte im Gerät habt, einfach kurz unter “Einstellungen – Mobilfunk – 4G” den Schalter abschalten und anschließend wieder anschalten. Schon sollte, die entsprechende Netzabdeckung vorausgesetzt, in der Statusleiste eures iPhones ein “4G” statt dem “3G” stehen.

[Quicktip] Wie kann ich fragmentierte Videos von akamaihd herunterladen?

Video Streaming ist eine tolle Sache, aber unterwegs auf dem iPad wird es etwas schwierig – entweder ist das Netz schlecht, oder der Stream Anbieter unterstützt gar nicht erst mobile Geräte. Bei Viewster fand ich vor kurzem eine interessante Doku, die ich mir gerne in Ruhe anschauen wollte. Ein einfacher Download direkt oder mittels der üblichen Tools funktionierte nicht. Das Problem ist, dass Viewster mit einem fragmentierten FLV arbeitet – sprich, das Video ist in viele hundert kleine Dateien unterteilt, die man irgendwie wieder zusammenführen muss, um ein einzelnes Video zu erhalten. Diese Vorgehensweise scheint bei Videos, die unter akamaihd.net liegen, öfter vorzukommen.

Glücklicherweise gibt es Scripte, die genau dieses Problem beheben und ich möchte euch kurz zeigen, wie das funktioniert (geht unter Mac, Linux und auch Windows – letzteres benötigt allerdings erstmal eine php Installation):

  1. Ladet euch das Script “AdobeHDS.php” von folgender Seite herunter: https://github.com/K-S-V/Scripts
  2. Ruft die von euch gewünschte Video Seite auf, öffnet die Debug Konsole in eurem Browser und schaut euch den Netzwerkverkehr an. Am besten öffnet ihr dazu die Konsole und den Tab “Network” und ladet dann die Seite neu. Wir sind auf der Suche nach der sogn. Manifest Datei, die die Übersicht für alle Videofragmente ist. Ihr könnt alernativ auch im Quellcode der Datei schauen, ob ihr das Manifest findet. Kopiert euch die URL zu diesem Manifest.
  3. Ruft die Konsole eures Betriebssystems auf und gebt dort folgendes ein:
  4. php AdobeHDS.php --manifest "[URL_ZUM_MANIFEST]"
  5. Anschließend werden alle Einzelteile heruntergeladen und zusammengeführt. Die einzelnen Dateien könnt ihr nach Abschluss des Vorgangs löschen, übrig bleibt dann die zusammengesetzte FLV

Apples neue Programmiersprache Swift

Es ist mir kaum möglich, die Begeisterung über Apples neue Programmiersprache Swift in Worte zu fassen – natürlich neben den vielen anderen großartigen Neuerungen, die am Montag auf der WWDC angekündigt wurden.

Objective C war für mich schon immer ein Problem – als php, Java und c# Entwickler wirkte es einfach nur furchtbar kryptisch und umständlich. Alleine so Dinge wie C-Headerfiles waren für mich einfach nur 80er. Mit Swift wurde nun so viel richtig gemacht – allem voran die ziemlich einfache und sofort verständliche Syntax. Und natürlich die massive Einsparung von Code.

Bereits kleine Testapps sind schnell zusammengebaut und gehen deutlich einfacher von der Hand als mit Objective C. Ich bin sehr gespannt, wie sich das ganze bei umfangreicheren Programmen verhält. Apple hat hier auf jeden Fall den richtigen Weg eingeschlagen.

[Quicktip] Paypal mit 2-Faktor Authentifizierung nutzen

Neben vielen anderen großen Anbietern unterstützt auch Paypal die 2-Faktor Authentifizierung. Bis vor kurzem hatte ich noch die Variante per SMS genutzt, war aber mehr als unzufrieden damit. Zum einen kommen die SMS teilweise sehr spät an und sind somit ungültig (teilweise bis zu 10 Min verspätet), zum anderen – und das ist besonders ungünstig – war es mir nicht mehr möglich, per mobiler Paypal Website zu bezahlen. Es wurde zwar immer nach einem Sicherheitsschlüssel gefragt, jedoch hatte ich nicht den Button, um mir die SMS mit dem Code zuzusenden. Man fragt sich an der Stelle, ob das niemand bei Paypal mal getestet hat.

Naja egal – nachdem ich mich nun per Mail beim Support darüber beschwert habe, wurde mir eine weitere Alternative, die nirgendwo auf der Paypal Seite dokumentiert ist, genannt: die App VIP Access von Symantec (gibt es für Android und IOS). Die App ist nichts anderes als ein RSA Token Generator, der alle 30 Sekunden einen neuen Sicherheitsschlüssel generiert. Und so richtet ihr das Teil ein:

  • bei Paypal einloggen
  • “Mein Profil” -> “Einstellungen” und dann bei “Sicherheitsschlüssel” auf aktualisieren klicken
  • wichtig: solltet ihr bereits den SMS Schlüssel aktiviert haben, dann muss dieser DEAKTIVIERT werden!
  • nun klickt ihr in der Übersicht über eure Sicherheitsschlüssel unten auf “Kostenlos bestellen: Richten Sie Ihren SMS-Sicherheitsschlüssel mit nur wenigen Klicks ein”
  • auf der anschließenden Seite klickt ihr auf “ABBRECHEN”!
  • Nun seht ihr 3 kleine Fenster mit jeweils einem Button drin und wählt da ganz rechts das Kästchen mit dem Button “aktivieren”
  • Bei Seriennummer tragt ihr die “Credential ID” eurer VIP Access App ein, in die beiden Code Felder jeweils einen Sicherheitscode. Sobald ihr den ersten Code eingegeben habt, wartet ihr 30 Sekunden und tragt dann in das dritte Feld diesen weiteren Code ein. Anschließend bestätigt ihr das ganze mit dem “aktivieren” Button
  • Wichtig: falls ihr das ganze partout nicht aktiviert bekommt: deinstalliert die App von eurem Handy und installiert sie neu. Damit erhaltet ihr eine neue “Credential ID”. Bei mir hat das neu Installieren geholfen und meine Aktivierung wurde angenommen.

NitoTV / xbmc auf dem Apple TV 2 lässt sich nicht updaten

Wenn ihr versucht, NitoTV bzw. xbmc auf eurem Apple TV per

apt-get update

auf den neuesten Stand zu bringen und der Befehl mit der Fehlermeldung

GPG error: http://nitosoft.com Release: The following signatures were invalid: KEYEXPIRED 1355702829 KEYEXPIRED 1355702829 KEYEXPIRED 1355702829"

beendet wird, dann probiert folgendes:

apt-get upgrade -yf --force-yes

Damit wird der Key-Check von Apt-Get umgangen und das Upgrade wird durchgeführt.

Falls ihr anschließend noch das Problem haben solltet, dass Apt-Get meldet, dass kein Speicher mehr vorhanden ist (“No space left on device”), dann schaut mal in folgende Ordner und löscht da die Cache Dateien heraus:

  • /private/var/mobile/Library/Caches/AppleTV/Video/LocalAndRental
  • /private/var/mobile/Library/Caches/AppleTV/Video/Other
  • /private/var/cache/apt/archives/

Anschließend solltet ihr wieder genügend Speicher für das Upgrade frei haben.

via wiki.xbmc.org

[Quicktip] iPhone Fotos am Mac verwalten / löschen

Auf einem iPhone sammeln sich sehr schnell sehr viele Bilder an. Und wenn man dann bei über 1000 angekommen ist und langsam aussortieren möchte, wird es ziemlich friemelig, dies mit dem Handy zu erledigen. Glücklicherweise gibt es die Möglichkeit, eure Fotos auch über euren Mac zu verwalten. Und zwar – und darauf kommen die wenigsten – mit der Vorschau App.

Dazu schließt ihr das iPhone einfach per Kabel an euren Mac an. Dann startet ihr die Vorschau App und wählt da den Menüpunkt “Importieren von …”, wobei das “…” für den Namens eures iPhones steht.

iphone_1

Nun seht ihr die Übersicht eurer Bilder in Listenform. Das ist zur sinnvollen Verwaltung jedoch nicht zu gebrauchen, weswegen ihr unten links den Button findet, um auf die Übersicht mit den größeren Bildern, also Thumbnails, umschalten zu können.

iphone_2

Nun könnt ihr durch eure Bilder scrollen und diejenigen markieren, die ihr gerne vom iPhone löschen wollt.

iphone_3

Um die markierten Bilder nun zu löschen, klickt ihr einfach links unten auf das rote Icon.

iphone_4

Neben der Möglichkeit, die Bilder zu löschen, könnt ihr über diesen Weg natürlich auch Bilder vom iPhone auf den Mac kopieren.