Homebrew müllt wahrscheinlich deine Festplatte voll

Vielleicht bin ich wirklich einfach zu dämlich, aber mir war nicht klar, wie sehr homebrew (der alternative Open Source Appstore für deinen Mac) die Festplatte vollmüllt. Ja, ich hatte schon verstanden, dass das Ding mit Symlinks arbeitet und somit die aktuelle Version markiert. Nicht offensichtlich wahr jedoch für mich, dass das Ding überhaupt keine Aufräumarbeiten durchführt.

Sprich: bei jedem Update kommt pro installierter App ein neuer Ordner dazu. Um das ganze korrekt aufräumen zu lassen und nur die aktuellste Version der jeweiligen App auf dem Rechner zu haben, muss man folgendes tun:

brew update
brew upgrade
brew cleanup

Bei mir hat das ganze satte 18GB an kostbarem SSD Speicher zurück gebracht 😱😱😱

Reminder / Erinnerungen / TODOs per Hotkey in MacOS erstellen

Seit mehreren Jahren bin ich begeisterter Nutzer der Apple Apps Kalender, Notizen und Erinnerungen. Besonders letztere funktioniert für mich dank der sehr guten Siri Integration perfekt in meinem Workflow. So kann ich Siri unterwegs einfach in die Uhr oder das Handy sprechen “Erinnere mich morgen um 10 an Einkauf erledigen” und ich werde am nächsten Tag sehr zuverlässig daran erinnert.

Die App kann auch relativ einfach mehrere Listen verwalten und so habe ich zig Listen für alle möglichen Dinge – mal als Reminder, mal als Checkliste, und mal einfach nur als Auflistung.

Was mich aber bisher immer gestört hat: es ist direkt am Mac nicht so extrem einfach, schnell eine Erinnerung zu erzeugen. Ja, ich kann Siri verwenden, aber anders als mit den mobilen Geräten macht sich das im Büroalltag nicht immer so leicht und es fühlt sich auch “nicht richtig” an 🙂

Dieses Problem wird mit einer großartigen und vor allem kostenlosen App gelöst, die sich “Remind me” nennt und im App Store zu finden ist.

Die App nistet sich in der Menüleiste ein und ermöglicht von dort aus, einen Dialog zu öffnen und damit schnell Erinnerungen (in der Apple App) zu erstellen. Der Clou jedoch verbirgt sich in den Settings, denn hier kann man ein globales Hotkey für die App vergeben. Sobald man dieses aufruft, erscheint der “Reminder erstellen” Dialog und man kann direkt lostippen. Mega praktisch!

Link: Remind me

Was ist besser: Pebble Time oder Apple Watch?

Als bisher erfolgreichste Kickstarter Kampagne hat Pebble nun bereits zwei mal alle Rekorde gebrochen – und auch eine entsprechende Bekanntheit erlangt. Und da man mich ja sehr schnell für technische Spielereien begeistern kann, hatte ich relativ schnell eine Pebble (die allererste) an der Hand.

img_2946

Und ich war mega glücklich. Pebble hatte die Zeichen der Zeit (Achtung Wortspiel 🙂 ) erkannt und war die perfekte Kombination zum Smartphone. Nach einiger Zeit merkt man allerdings, dass auch nur die Anzeige von Notifications Sinn macht – bei den Apps gibt es nur einige wenige gute Ausnahmen. Mit diesem Problem haben aus meiner Sicht jedoch alle Smartwatches zu kämpfen.

Dank der großartigen Unterstützung für App Enwickler, mit Online IDE und simpler Javascript Entwicklung, waren auch schnell die ersten eigenen Apps gebastelt. Geblieben ist allerdings nur eine App für die Anzeige von Abfahrtszeiten der für mich relevanten Busse und Bahnen. Aus meiner Sicht muss eine App ihren Zweck innerhalb kürzester Zeit erfüllen (max. 10s), sonst wird man äußerst schnell ungeduldig. Dies gilt übrigens auch für alle Smartwatches.

Die cleverste Idee hatte Pebble jedoch mit dem E-Paper/LCD Display, welches eine Laufzeit von bis zu 7 Tagen ermöglicht – und zusätzlich auch bei direkter Sonneneinstrahlung perfekt ablesbar ist. Aus meiner Sicht eines der Hauptargumente für die Pebble.

Und dann kam Apple daher und kündigte die Apple Watch an. Bäm. Und sie kam richtig geil rüber. Retina Screen, Touch, tolles Design – aber nicht mal einen vollen Tag an Akkulaufzeit. Glücklicherweise hatte ich die Möglichkeit, über meinen damaligen Arbeitgeber eine Apple Watch als Testexemplar lange und ausführlich ausprobieren zu können.

img_4432

Der Unterschied zur Pebble war enorm, endlich wunderbare Grafik, Siri direkt an der Hand, auf Nachrichten direkt antworten können – und wenn es mal in den Flieger ging, das Boardticket auch direkt an der Hand haben. Stark. Aber ein riesiger Schatten lag über all den Vorteilen: die Akkulaufzeit. Teilweise ging die Uhr bereits am frühen Abend aus. Und nach den WatchOS Updates hatte ich einige Tage lang das Problem, dass die Uhr bereits nach wenigen Stunden leer war. Mega nervig und enttäuschend, vor allem weil alleine das “Ladekabel” gute 35€ kostet.

Nachdem ich nun vor kurzem die Apple Watch wieder abgeben musste, war ich im Zugzwang. Kaufe ich mir eine eigene Apple Watch, oder schwenke ich zurück zu Pebble, die mit der “Time” mittlerweile auch eine Smartwatch mit Farbdisplay im Angebot haben. Nachdem ich dann sah dass die Pebble Time “nur” 100€ kostet, war die Entscheidung sehr schnell gefällt. Die Uhr kam kurze Zeit später an, war schnell eingerichtet und ab an den Arm. Wahnsinnig toll, welchen Sprung die Uhr gemacht hat – tolles Design sowie ein großartiges neues und vor allem sehr durchdachtes Betriebssystem. Man merkt, dass sich da Leute richtig viel Gedanken gemacht haben. Touch ist in vielen Fällen sicherlich die bessere Art der Steuerung durch Menschen, aber auf dem kleinen Display kommt man mit den Tasten dann doch besser klar.

Aber der größte Vorteil der Pebble ist und bleibt: die Akkulaufzeit. Es ist unglaublich, wie entspannend es sein kann, wenn einem der Akkustand der Smartwatch auf einmal wieder egal ist. Man muss nicht ständig überlegen, ob man das Kabel eingepackt hat und ob der Akku durchhält. First-World-Problems, ich weiß – aber so ist es nun mal 🙂

Kommen wir zum Vergleich: Das Hauptaugenmerk einer Smartwatch sollte das Display sein. Hier muss ich sagen, dass die Pebble Time zwar leicht vorne liegt, die Apple Watch aber auch ganz klar ihre Vorzüge hat. Zwar ist das E-Ink Display der Pebble immer an und in sehr vielen Situationen ganz gut ablesbar, das Display der Apple Watch ist aber ganz klar überlegen – wenn es denn angeht. Reicht es bei der Apple Watch in nahezu allen Situationen, einfach den Arm so zu bewegen, dass man auf die Uhr schauen möchte, so muss man bei der Pebble eine heftige Schüttelbewegung durchführen, damit die Hintergrundbeleuchtung eingeschaltet wird. Wie gesagt, die Pebble liegt hier etwas weiter vorne, einfach, weil man die Uhrzeit bzw. Notification in 99% der Fälle sofort sehen kann. Bei der Watch funktioniert der Mechanismus ab und zu einfach nicht, was dann in hektischen Bewegungen endet. Alles in allem nicht wirklich befriedigend.

Zusammenfassend kann ich sagen: Aus meiner Sicht funktionieren derzeit alle Smartwatches gleich. Sie dienen hauptsächlich der Anzeige von Notifications, Apps spielen kaum eine Rolle und wirklich relevant ist die Akkulaufzeit. Man kann sich nun streiten, ob der Akku nun unbedingt 7 Tage lang halten muss, aber ich denke 2 Tage sollten mindestens drin sein. Einfach, weil man sein Ladegerät nun nicht immer überall mit dabei hat. Der deutliche Mehrwert ergibt sich dann mit der Integration in das jeweilige Handy-Betriebssystem. Unter iOS liegt die Apple Watch hier klar vorne, weil auch wirkliche Interaktion sowie die Nutzung von Siri möglich ist. Bei Android wiederum kann die Pebble vollständig genutzt werden und dann z.B. auch auf SMS direkte Antworten schicken.

Fazit: seid ihr iOS Nutzer, dann müsst ihr selbst abwägen, ob euch die Akkulaufzeit oder die Interaktionsmöglichkeiten wichtiger sind. Für Android Nutzer ist die Pebble sehr sinnvoll.

Nachtrag: während ich diesen Beitrag verfasst habe, wurde Pebble leider an Fitbit verkauft und die Herstellung der Hardware sowie deren Verkauf beendet. Fitbit will wohl dafür sorgen, dass die Software weiterhin funktioniert. Mega schade, aber so ist es nun mal. Solltet ihr also darüber nachdenken, euch eine günstige Pebble zu kaufen, dann solltet ihr sehr schnell zuschlagen. Ihr müsst dann aber auch damit rechnen, dass die notwendige Pebble App in Zukunft irgendwann nicht mehr funktioniert 🙁

Wie kann ich auf das Timemachine Backup eines anderen Macs zugreifen?

Folgende Problemstellung: Du hast eine Timemachine USB Festplatte mit Backups eines anderen Macs, aus denen du einzelne Dateien auf deinen aktuellen Mac kopieren möchtest. Prinzipiell geht das einfach über den Finder, aber der Zugriff auf bestimmte Ordner, wie z.B. den Documents oder Images Ordner eines Users kannst du nicht öffnen, da dafür eine Beschränkung aktiviert ist. Um diese Beschränkung zu umgehen, rufe folgendes Command in einem Terminal aus:

sudo vsdbutil -d '/Volumes/[NAME_DEINER_USB_PLATTE]'

Mit diesem Command werden die Dateizugriffsrechte für diesen Pfad deaktiviert und du hast vollen Zugriff darauf.

[Quicktip] Macbook erkennt Thunderbold Ethernet Adapter nicht richtig

Sollte euer Mac den Thunderbold-Ethernet Adapter nicht erkennen bzw. sich über “Kabel nicht angeschlossen” beschweren (selbst nach einem Neustart), dann probiert mal folgendes aus:

Systemeinstellungen -> Netzwerk und dort den Thunderbold Adapter in der linken Spalte auswählen. Anschließend den Button “weitere Optionen” auswählen und dann zum Tab “Hardware” wechseln.

Hier sollte euch die Mac Adresse des Adapters angezeigt werden. Ist dies nicht der Fall, dann ist der Adapter wahrscheinlich hinüber. Wenn die Mac Adresse angezeigt wird, dann stellt das Dropdown “Konfiguration” auf “manuell” und bei “Geschwindigkeit” auf “automatisch”.

Bildschirmfoto 2016-01-04 um 18.33.26

Speichert das ganze und wartet kurz ab, dann sollte der Adapter das eingesteckte Netzwerkkabel wieder korrekt erkennen. Evtl. könnt ihr mit dem Abziehen und anschließendem erneuten Einstecken des Adapters etwas nachhelfen.

Jenkins OSX Slave für das automatisierte Bauen von iOS Apps

Die Aufgabe ist simpel: ich möchte in meine Jenkins Build Umgebung einen Rechner mit Mac OSX einbinden, der für mich automatisiert iOS Apps bauen soll. Für die Vereinfachung verwende ich dazu das xctool von Facebook, welches das Handling von XCode und co. übernimmt.

Mein Vorgehen war folgendes: Jenkins User auf dem Zielsystem eingerichtet und anschließend den Jenkins Slave per ssh vom Master aus gestartet. Das funktioniert auch alles wunderbar, aber sobald man im Build versucht auf eine Gui Applikation zuzugreifen – das macht z.B. der Aufruf der Unit Tests, weil diese den iPhone Simulator benötigen – knallt xctool ohne eine Fehlermeldung mit einem Exit Code 1 weg. Das Problem an der Stelle ist einfach, dass es in OSX einen Unterschied macht, ob man ein Programm per ssh oder direkt in einer Shell auf dem System startet. Die Variante über ssh darf eben nicht auf GUI Applikationen zugreifen. Und somit laufen die Tests nicht.

Korrekterweise muss man den Jenkins Slave als per JNLP starten. Dazu stellt man im Master in den Slave Einstellungen die „Startmethode“ auf „Starte Slave Agenten über JNLP“. Nach dem Speichern wir einem in der Übersicht des Knotens ein Shell Command angezeigt, den man auf dem Slave ausführen soll:

java -jar slave.jar -jnlpUrl http://[PFAD_ZUM_JENKINS_MASTER]/computer/[SLAVE_NAME]/slave-agent.jnlp -secret [SECRET_HASH]

In diesem Command ist die Datei „slave.jar“ verlinkt und kann heruntergeladen werden. Genau das sollte man auf dem OSX Slave machen und die Datei irgendwo auf der Platte ablegen. Anschließen startet man das Programm „Automator“. Dort wählt man „Applikation“ aus und sucht anschließend in der Bibliothek nach „Shell Script ausführen“. Diesen Eintrag zieht man rechts in die graue Fläche.

In das nun vorhandene Textfeld trägt man folgendes Shellscript ein:

cd [PFAD_ZUR_JAR_DATEI]
java -jar slave.jar -jnlpUrl http://[PFAD_ZUM_JENKINS_MASTER]/computer/[SLAVE_NAME]/slave-agent.jnlp -secret [SECRET_HASH]

Das ganze speichert ihr im Ordner Programme als „run_jenkins_slave“ ab. Nun geht ihr in die „Systemeinstellungen” -> “Benutzer und Gruppen“ und wählt bei Jenkins die „Startobjekte“ aus. Dort fügt ihr nun das eben erstellte Programm „run_jenkins_slave“ hinzu. Anschließend geht ihr noch auf „Anmeldeoptionen“ und stellt da den User „Jenkins“ für den automatischen Login ein.

Wenn ihr nun den OSX Rechner neu startet, dann sollte er automatisch einen Jenkins Slave starten und diesen beim Master registrieren. Nun sind wir genauso weit wie mit dem ssh Weg – aber: wenn man nun Jobs startet, dann dürfen diese auch auf GUI Applikationen zugreifen. Sprich, die Unit Tests mit dem iPhone Simulator laufen nun ohne Probleme durch. Der Jenkins Slave verhält sich in etwa so, als ob man direkt auf dem Desktop eine Shell startet und dann Befehle ausführt.

[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

 

[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.