raspberry pi 3 b+ will nicht booten

Die Geschwindigkeit meines Octopi Druckservers für meinen 3D Drucker hat mich in letzter Zeit etwas genervt, daher habe ich mir direkt einen ganz neuen Raspberry Pi 3 b+ bestellt. So wie immer dachte ich mir: Karte wechseln, booten, fertig. Aber nix da. Der neue Raspi bootet einfach nicht.

Ok, dann neues Image probiert, andere Karten, andere Kabel usw. Nichts half. Die rote LED blinkte immer nur in unregelmäßigen Abständen und auf meinem Monitor war nur das Bunte Viereck sowie das Blitzsymbol zu sehen, was eigentlich auf Stromprobleme hinweist. Was aber wiederum bei einem 2 oder auch 2.5 A Netzteil mit dicken Kabeln nicht sein kann.

Der Grund für das Problem war dann doch sehr einfach: man muss die SD Karte “richtig” formatieren 🙄…

Am besten lädt man sich dazu das offizielle Tool zum Formatieren von SD Karten runter (ja, das gibt es tatsächlich 🙂 ) und wählt dort bei der Formatierung “overwrite format” aus. Damit wird die komplette SD Karte einmal überschrieben. Anschließend spielt man mit einem Tool seiner Wahl ein AKTUELLES Raspbian oder Noobs Image auf, welches die Treiber für den neuen Raspberry enthält.

Im Falle von Octopi wie bei mir war es nötig, den aktuellen Nightly Build zu verwenden. Das letzte stable Release verwendet sogar noch die letzte Raspbian Version…

Beim Ausführungen von Java jnlp Anwendungen erscheint ein Access Denied Fehler

Beim Ausführen einer Java Anwendung mit einer jnlp Datei bekam ich komischerweise immer wieder Fehlermeldungen „java.io.FilePermission“ für die Datei „/usr/bin/xprop“. Die Datei war im System vorhanden und durfte auch von jedem ausgeführt werden, selbst mit Sudo kam der Fehler.

Die Lösung des Problems ist zwar relativ leicht, aber mal wieder sehr ärgerlich: es ist ein Fehler in der OpenJDK und in meinem Fall der icedtea-netx Implementierung. Und um diesen zu umgehen muss man leider die original Oracle JAVA JRE runterladen und installieren.

Wichtig hierbei: man muss wohl zwingend die tar.gz Variante und nicht die RPM Variante nehmen, da nur diese „javasw“ enthält.

Das Vorgehen für die Installation ist:

  • openjdk und co vom System schmeissen (es geht auch anders, aber man muss die Sache ja nicht unnötig verkomplizieren)
  • unter http://www.oracle.com/technetwork/java/javase/downloads/index.html den Download Button unter „JRE“ anklicken und auf der folgenden Seite die AGB akzeptieren und dann die entsprechende tar.gz für 64bit oder 32bit herunterladen
  • tar.gz entpacken und den Ordner nach /usr/java/[ORDNER_NAME] verschieben
  • anschließend (keine Ahnung ob das der richtige Weg ist, aber er funktioniert) unter /usr/bin per Link die java und javasw Binaries verlinken:
cd /usr/bin
ln -s /usr/java/[ORDNER_NAME]/bin/java
ln -s /usr/java/[ORDNER_NAME]/bin/javasw

Nun könnt ihr die jnlp Datei einfach per
javasw [DATEI].jnlp aufrufen.

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

Wie kann ich einen unendlich lang gültigen Facebook Page Accesstoken erzeugen?

Facebook Access Tokens sind eine ziemlich fiese Sache, wenn man Server only Anwendungen bauen möchte – also keine wirkliche Chance hat, den User einen Token besorgen zu lassen. Zusätzlich haben die “normalen” Access Tokens bei Facebook das Problem, dass sie spätestens nach 60 Tagen ungültig sind. Es gibt aber derzeit noch eine Möglichkeit, an unendlich gültige Access Tokens zu kommen. Mit diesen Tokens könnt ihr beliebig auf euer Seite posten, Statistiken abfragen usw. – und an diesen Token kommt ihr so:

  1. Zunächst müsst ihr Admin der gewünschten Fan Page sein
  2. erstellt eine Facebook App – natürlich mit dem gleichen User, der auch Admin der Seite ist.
  3. kopiert in den Einstellungen der App die App-ID sowie das App Secret
  4. öffnet den Facebook Graph API Explorer
  5. oben rechts ist ein Dropdown, in dem ihr die eben erstellte App auswählt (anfänglich steht da “Graph API Explorer” drin)
  6. nun klickt ihr auf das “Get Token”-Dropdown und wählt da “Get User Access Token” – dabei ist es wichtig, dass ihr in der nun erscheinenden Übersicht das Häkchen bei “manage_pages” setzt
  7. kopiert nun den kurzfristigen Token aus dem Textfeld in der Mitte und ruft folgende URL auf:
    https://graph.facebook.com/oauth/access_token?client_id=[APP_ID]&client_secret=[APP_SECRET]&grant_type=fb_exchange_token&fb_exchange_token=[TOKEN]
  8. kopiert euch den nun angezeigten langfristigen Token (LONG_LIVING_TOKEN, 60 Tage gültig)
  9. ruft nun die folgende URL auf:

    https://graph.facebook.com/me/accounts?access_token=[LONG_LIVING_TOKEN]

  10. in dem nun erscheinenden JSON seht ihr alle von euch verwalteten Seiten sowie deren unendlich lang gültigen Tokens für die verwendete App

Zur Überprüfung ruft ihr einfach das Access Token Debug Tool auf: 

https://developers.facebook.com/tools/debug/accesstoken

Hier könnt ihr den Token eintragen und bekommt dann Informationen darüber – und eben auch die Gültigkeit.

[Quicktip] 2 Faktor Authentifizierung für Amazon aktivieren

Mittlerweile hat man mit Amazon ja einen relativ wichtigen Account, über den man nicht nur einkauft, sondern evtl. auch seine Cloud Server betreibt oder das Amazon Cloud Drive verwendet. Von daher macht die 2 Factor Authentifizierung in jedem Fall Sinn, um nicht mal eine böse Überraschung zu erleben.

Die Aktivierung ist relativ leicht: meldet euch einfach auf “amazon.com” statt auf “amazon.de” an, und geht dann in die Accounteinstellungen, wo ihr das Passwort ändern könnt (Login & Security Settings). Unter “Advanced Security Settings” könnt ihr dann 2-Factor Auth aktivieren. Sobald das erledigt ist, erscheint dieser Menüpunkt auch auf der deutschen Amazon Seite 😉

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

[Quicktip] Adobe Photoshop Lightroom 6 / CC stürzt in OSX direkt beim Start ab

Nachdem ich mich sehr auf das neue Lightroom Update über die Creative Cloud gefreut hatte, war die Ernüchterung sehr schnell da: Die App stürzt immer kurz nach dem Start ab. Zunächst wurde mein Katalog ohne Probleme konvertiert, dann kam der Lightroom Splashscreen und kurz danach erschien der Apple Crashreport. Dieser enthielt folgende Meldung:

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000348 

Der Fehler tritt bei jedem Start von Lightroom auf. Da Adobe bisher noch keinen Fix für das Problem bereit gestellt hat, möchte ich hier zumindest einen Workaround zeigen:

Startet Lightroom mit gedrückter Alt Taste, sodass der Auswahldialog für den zu öffnenden Katalog erscheint. In diesem Dialog wählt ihr einfach euren bestehenden Katalog und klickt auf „öffnen“. Nun sollte Lightroom wie gewohnt laufen. Sollte das auch nicht funktionieren, erstellt über den Dialog einen neuen Katalog, öffnet diesen und klickt dann direkt in Lightroom auf Datei – „Katalog öffnen“ und wählt da euren „alten“ Katalog aus.

[Quicktip] Jenkins meckert mit einem reject HostKey trotz korrektem Eintrag in der known_hosts Datei

Ihr möchtet mit Jenkins auf einen anderen Server per ssh/scp zugreifen, habt auf der Shell bereits erfolgreich mit dem User Jenkins eine ssh Verbindung aufbauen können, aber im Build Prozess bekommt ihr folgenden Fehler:

com.jcraft.jsch.JSchException: reject HostKey: ...

Das Problem ist relativ simpel zu lösen – die Einträge in der ~/.ssh/known_hosts dürfen nicht verschlüsselt sein. Lösen könnt ihr das folgendermaßen:
– alten Hosts Eintrag löschen: ssh-keygen -R [SERVER_NAME]
– in eurer ssh_config den Parameter „HashKnownHosts“ auf “no” setzen
– per ssh auf den Server eine Verbindung aufbauen und die Frage, ob der Key hinzugefügt werden darf, mit ja beantworten

Nun sollte der Eintrag im Klartext in der known_hosts stehen und Jenkins sollte die Verbindung aufbauen können.

Wie man in der Owncloud Gallery App die natürliche Sortierung von Dateien aktiviert

Owncloud hat mich wirklich von Anfang an begeistert – genauso gut wie Dropbox, aber auf dem eigenen Server. Die Clients auf den Rechnern arbeiten zuverlässig und tun genau, was sie sollen. Die mobilen Clients sind noch etwas verbesserungswürdig, die Owncloud Web Applikation hingegen ist schon ziemlich gut. Besonders gefallen hat mir die Gallery App, die Foto Ordner in schöne Galerien umwandelt. Sie hat aber ein gravierendes Problem: die Sortierung.

Meine Dateinamen in einem Ordner heißen beispielsweise:

Bild-1.jpg
Bild-2.jpg
Bild-3.jpg

Bild-10.jpg

Bild-20.jpg

Bild-100.jpg

In der Owncloud Datelliste werden sie auch so korrekt aufgelistet, in der Gallery App passiert jedoch folgendes:

Bild-1.jpg
Bild-10.jpg
Bild-100.jpg

Bild-2.jpg
Bild-20.jpg
Bild-3.jpg

Dieses Verhalten ist auf eine Javascript Funktion zurückzuführen und kann relativ einfach korrigiert werden. Editiert dazu einfach die Datei “apps/gallery/js/gallery.js”. Sucht nach der Zeile:

Gallery.fillAlbums = function () {
	var sortFunction = function (a, b) {
		return a.path.toLowerCase().localeCompare(b.path.toLowerCase());
	};

und ändert diese in

Gallery.fillAlbums = function () {
	var sortFunction = function (a, b) {
		return a.path.toLowerCase().localeCompare(b.path.toLowerCase(), 'de', {numeric: true});
	};

Und schon ist die Sortierung wieder so, wie erwartet.

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