Twitter Photo Bot (Raspberry Pi/Camera Module V2) updated

Abgelegt unter DIY

IMG_1993

Der neue Raspberry Pi V3 Model B kommt neuerdings mit integriertem WiFi und das neue Kameramodul V2 kommt jetzt neuerdings mit einer 8-MP-Kamera, diese beiden neuen Features unterstützen die Realisierung des “Twitter Photo Bot” ganz wesentlich.
Die Idee: ein System, was regelmässig und völlig autonom Bilder macht und tweetet. Bei minimalem Bedienungsaufwand, heißt: nur am Strom anschliessen, fertig.
Nötig an Hardware dafür ist (neben dem Raspberry Pi und dem Kameramodul) ein mobiler UMTS-WLAN-Router, der die Netzverbindung herstellt. Diese 3 Sachen müssen alle in ein Gehäuse. Der Router braucht natürlich eine SIM-Karte mit entsprechenden Datenkontingent, auf die Schnelle habe ich mit einem Datenverbrauch von 500 MB pro Monat kalkuliert. Das Ganze hat also den Charakter einer Webcam-to-Go, allerdings mit reiner Twitter-Anbindung, denn irgendwohin müssen ja auch die ganzen Daten, im Jahr wären das stolze 6 GB.
Benötigte Software: das Standard-Raspbian, einen Twitter-Account, die Twython-Bibliothek und ein Python-Script, was über Crontab ausgeführt wird. Das Betriebssystem verarbeite ich mit SDFormatter und ApplePi-Baker, siehe AudioCube, das geht definitiv am schnellsten.
Die App-Registration unter apps.twitter.com braucht etwas mehr Zeit, definiert werden muss ein Name, eine Beschreibung und hinterlegt werden muss eine Handynummer. Die kann man aber nach der Registrierung wieder rausnehmen.

Bildschirmfoto 2016-08-03 um 14.32.46

Die benötigten Token (bei “Manage Keys and Access Tokens”) sind: Consumer Key (API Key), Consumer Secret (API Secret), Access Token und Access Token Secret.
Weiterhin brauchen wir die Twython-Bibliothek, diese wird installiert über:

sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install twython

Hier das endgültige Skript (twitterphotobot.py):


import sys
import os
import random

from twython import Twython

consumer_key = 'lc7dhdghgdhgdfhgdfGPP3'
consumer_secret = 'Fy0S5NhdhgfhdgfhgfdhgfdhdgfhLuvdZpuwiiNgh6'
access_token = '760076306dhdhdfghgdfhdfhgfdhgdfhdgfQzqDhvlLS'
access_token_secret = 'HOidOZfcdhdghdfhgfdhgdfhgfdhdgfZfuXLEAgMMITGKw'

messages = [
"I ve got the Power.",
"Strawberry Fields forever.",
"Boom. Shake, shake, shake the room.",
"We dont need no education.",
]

takephoto = "raspistill -w 1280 -h 960 -q 100 -o /home/pi/Desktop/picture.jpg"
os.system(takephoto)
photo = open('/home/pi/Desktop/picture.jpg', 'rb')
twitter = Twython(consumer_key, consumer_secret, access_token, access_token_secret)
image = twitter.upload_media(media=photo)
twitter.update_status(status=random.choice(messages), media_ids=[image['media_id']])

Unter “messages” stehen die Texte des Tweets, die per Zufall eingebunden werden, letzte Zeile. Unter “takephoto” wird die Grösse des Bildes festgelegt; die Bildgrösse muss unbedingt begrenzt werden, weil die rohe Foto-Ausgabe des Camera-Moduls die maximale Twitter-Photo-Upload-Größe (<3MB) überschreitet. Getestet wird das Skript mit python twitterphotobot.py, bei mir dauerte das ganze ca. 20 Sekunden zum Ausführen, danach sollte der Tweet auch schon veröffentlicht sein.
Troubleshooting: SyntaxError: Non-ASCII character '\xc2' ...
Der Fehler bzgl. der Sonderzeichen innerhalb der “messages”-Sektion passiert häufig, hier werden die Umlaute oder falsche Apostrophe (Akut,´) angemerkt. Stattdessen sollte man das Ersatz-Apostroph verwenden (‘). Eine Lösung für die Umlaute habe ich noch nicht.
Raspberry-Pi-Zeit setzen: sudo dpkg-reconfigure tzdata
Crontab: https://www.raspberrypi.org/documentation/linux/usage/cron.md, bei mir ist jede Viertelstunde eingestellt.
Der letzte Schritt ist die WiFi-Anbindung an den UMTS-Router, dafür gibt es eine kurze Anleitung hier: https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md, die SSID und das Passwort stehen bei diesem Model von TP-Link auf der Innenseite des Deckels.
Mit der umfangreichste Teil der Übung ist ein effektives Gehäuse. Ich habe das Innenteil eines Festplattengehäuses in ein MDF-Gehäuse eingepasst, Schwierigkeit besteht darin, dass die Kamera irgendwie fest mit Gehäuse verankert sein muss, gleichzeitig man aber auch an das Innenleben kommen sollte. Und an den Ethernet-Port sollte man auch immer denken, um natürlich das System warten zu können.

Bauteile:

Raspberry Pi V3 Model B 40 EUR
Raspberry Pi Kameramodul V2 32 EUR
TP-Link UMTS Router 56 EUR
SD-Karte 16 GB 8 EUR

PS: das ganze funktioniert auch mit einem Raspberry Pi 1 Model B und Debian Jessie Lite.

IMG_2014

Update 23.9.: Das Sonderzeichen-Problem löst man durch die Definierung des Encodings in der ersten Zeile des Scripts:
# -*- encoding: utf-8 -*-

Apple Mail, Such-Index löschen und neu anlegen

Abgelegt unter Allgemein, Apple

Der Such-Index von Apple Mail ist regelmässig ein Desaster, und gefühlt auch schon seit Version 1.0. Die entsprechenden Dateien liegen innerhalb des lokalen Mail-Ordners und beginnen alle mit “Envelope …”. Der eigentliche Ort variert je nach Betriebssystem-Version. Nachfolgender Befehl sucht innerhalb des Mail-Ordners und löscht die entsprechenden Indizes, diese Methode funktioniert auch mit älteren OS-Versionen (getestet mit 10.11 und 10.6).

find ~/Library/Mail -name Envelope* -exec rm {} \;ls

Nach dem erneuten Starten von Mail wird ein neuer Index angelegt. Achtung: je nach Größe des Mail-Ordners kann das sehr lang dauern, pro Minute werden etwa 3000 Nachrichten indiziert.

Bildschirmfoto 2016-06-23 um 14.40.57

Nicknames in Apple Mail

Abgelegt unter Allgemein

In Apple Mail ist so direkt nicht möglich, Nicknames für Adressen zu vergeben. Auch die Variante, Textersetzungen in “Systemeinstellungen > Tastatur > Text” einzustellen, um damit Adressen abzukürzen, funktioniert (in Mail) nicht.
Die Lösung ist “Kontakte”: man muss sich öfter vergegenwärtigen, dass sich nur im Zusammenspiel mit einer gepflegten E-Mail-Datenbank ein effektiver Umgang mit Apple Mail ergibt.
Einfach in den Namens-Feldern bei Kontakte den Nickname einsetzen, fertig.

Bildschirmfoto 2016-06-17 um 11.01.24

Der Aufruf in Mail sieht dann so aus:

Bildschirmfoto 2016-06-17 um 11.02.39
Meist funktioniert ja die einfache Variante mit Name und Vorname schon, allerdings gibt es E-Mail-Konstellationen, in denen im Mittelteil der Adresse noch ein Wort kommt (für E-Mail-Veröffentlichungen bei Blogspot oder Flickr z.B.). Genau für diese Fälle sind spezielle Nicknames für E-Mails notwendig.

Re-Create the “No more secrets”-Effect from “Sneakers” (1992) in Mac OS X 10.11

Abgelegt unter DIY, Retro

giphy

1. Install Homebrew http://brew.sh
2. Install ncurses https://github.com/sup-heliotrope/sup/wiki/Mac-OSX
3. Make your Standalone Executable “nms” https://github.com/bartobri/no-more-secrets
4. Read this! Sorry Unix Fans, El Capitan kills Root
5. Put your nms-File from Step 3 in this Folder: /usr/local/bin/
6. Execute with this command: ls -alst | /usr/local/bin/nms

Download Demo Movie, 0:22 min, 5,7 MB

via Medium

Digital Cinema Packages erstellen mit DCP-o-matic 2

Abgelegt unter DIY

Mit DCP-o-Matic lassen sich aus Video-Files DPC-Container erstellen, die dann auf DCP-Server in digital ausgerüsteten Kinos abgespielt werden können. Diese DCPs bestehen hauptsächlich aus getrennt vorliegenden Ton-, Video- und evtl. Untertitel-Dateien in unkomprimierten Formaten, so wird Ton in ein 24-bit-PCM-File (pcm_xxxxx.mxf) und Video als eine JPEG2000-Sequenz konvertiert (j2c_xxxxx.mxf). Weiterhin ist die “Composition Playlist” wichtig (cpl_xxxxx.xml), ein Playlist-File, das alle Media-Elemente für das Package verwaltet.
Bildschirmfoto 2016-04-08 um 12.42.06
Aus der Konvertierung resultiert ein entsprechend grosser Ordner: in meinem Beispiel wurde aus einem 4:19-min-langen Clip eine 3,23 GB grosse Videodatei innerhalb des Containers. MXF-Files (Material eXchange Format) lassen sich normalerweise nur auf den DCP-Servern abspielen oder lokal auch über EasyDCP-Player vom Fraunhofer-Institut. Dieser liegt auch in einer Demo-Version vor, aber die Limitationen sind so extrem, dass eine visuelle Beurteilung nicht möglich ist, zur Kontrolle des DCP-Containers aber ausreicht.
Wichtig ist, im Vorfeld die Spezifikationen mit dem Kino-Betreiber zu besprechen, vor allem in Richtung Daten-Transport: welche Datenträger in welchen Formatierungen werden akzeptiert. MS-DOS-formatierte Datenträger lassen keine Dateien grösser als 2 GB zu und NTFS-Datenträger lassen sich auf dem Mac ohne weiteres nicht beschreiben. Eine Variante wären UDF-beschriebene DVDs (Universal Disk Format), darauf hätte ein Package von einer Filmdauer mit ca. 2:30 min Platz, diese liesse sich einfach auf dem Mac mit einem Super-Drive-DVD-Laufwerk schreiben.
Bildschirmfoto 2016-04-08 um 13.22.12
Um den Container mit DCP-o-matic zu erstellen, muss ein Ort für den Container bestimmt werden, deswegen “New …” im Vorfeld, um den Speicherort zu definieren.

Bildschirmfoto 2016-04-08 um 12.04.14

Das Filmmaterial (“Content”) wird automatisch in die Standard-DCP-Vorgabe (“Flat”) eingepasst, wichtig zu wissen, dass die DCP-Bildgrösse 1998×1080 beträgt, dh. 78 Pixel mehr in der Breite zu normalen 1080p. Dieser Bereich wird von der Software schwarz gefüllt, man muss also keine Anpassungen des eigenen Format machen. Vorrausgesetzt das Material entspricht den HD-Vorgaben mit einem Bildseitenverhältnis von 16:9.

Bildschirmfoto 2016-04-08 um 12.06.08

Die DCP-Details sind unter dem Reiter “DCP” einzusehen, dort unten sollte “Flat” ausgewählt sein. Framerate richtet sich auch nach dem Filmmaterial, allerdings hier nochmal Rücksprache mit dem Betreiber halten, ob 25 fps auf dem Server unterstützt werden. Die Standard-Auflösung liegt bei 2K.

Bildschirmfoto 2016-04-08 um 12.10.01

Das transkodieren (Menü: “Jobs > Make DCP”) benötigt entsprechend Zeit, ein 90-min-Film würde auf professioneller Hardware ca. 10 Stunden brauchen.

nützliche Links:

http://www.hbfilmworks.com/dcp-info.html

http://www.atms-film.de/dcp_umwandlung.html

http://mebucom.de/news-detail/event/dcp-pruefung-ist-sehr-zeitintensiv-.html

Apple Internet Server Solution (1995)

Abgelegt unter Retro

IMG_8928

Die Apple Internet Server Solution (AISS) ist ein Software-Paket, das eine Server-Anwendung beinhaltete, WebSTAR 1.0, und einige Tools für HTML, Skripte sowie einen Webbrowser, Netscape Navigator 1.1.
Hier die vollständige Software-Liste von dem Manual:

WebSTAR 1.0 (formerly MacHTTP 3.0)
the most widely used Mac-OS-based Web server system, provides the software necessary to serve yor documents on the internet.

Netscape Navigator 1.1 lets you browse materials on your server and on the internet and it also gives you a reader's view of the pages yo produce.

BBEdit 3.1 is a reliable and straightforward tool for producing documents in HTML-the standard language for Web pages.

Adobe Acrobat Pro produces documents in Portable Document Format (PDF) for greater control over page appearence than HTML allows, while maintaining the hypertext link facilities users expect.

AppleSearch 1.5 is an easy-to-use tool for creating searchable databases of unstructured information (such a reports, journal articles, or correspondence) on your Web server.

WebMap is a program for creating clickable maps. These maps, which ar graphics containing hypertext links, are a great way to condense information into graphical form.

CGIs (Common Gateway Interfaces) are easy-to-use programs that let you connect a wide variety of software to your WebSTAR server. The CD-ROM includes CGI software for
-AppleSearch
-Butler SQL
-FileMaker Pro
-HyperCard
-E-Mail
-Clickable maps

AppleScript is a powerful object-oriented scripting language designed to let non-programmers script program-to-program communications, which makes it the perfect tool for modifying and creating CGI scripts.

Installation Manual, PDF

AISS-CD-ROM Image, ZIP, 48 MB

IMG_8929

AudioCube-Image-Datei

Abgelegt unter DIY

Hier das für den AudioCube benutzte Raspberry-System-Image inkl. der MusicBox-Installation. 8-GB-SD-Karte benötigt.

Download ZIP-File, 5 GB

AudioCube (Late 2015)

Abgelegt unter DIY

IMG_8707

Nach mehreren Monaten im Testbetrieb hier eine kleine Dokumentation zur Idee und zur Realisation des AudioCube (auch spöttisch AudioKaaba genannt; wobei festzustellen ist, dass die Kaaba in Mekka keine exakte Würfelform besitzt) auf RasberryPi/MusicBox-Basis.
Einen kleinen AirPlay-Receiver für 30 EUR plus Kosten für Netzteil und Audiokabel selbst zu bauen, war die Aufgabe. Dazu die hübsche und naheliegende Würfel-Form zu realisieren, war die wesentlich schwierigere Aufgabe. Martin Jamborsky entwickelte für mich das extrem schlüssige Würfel-Gehäuse aus MDF, versehen mit den notwendigen Öffnungen für Strom, Audio-Klinke und die rückwärtigen Anschlüsse USB und Ethernet. Die Kantenlänge beträgt 99 mm. Ausser an der Unterseite gibt es keinerlei sichtbare Schraubverbindungen. Das Öffnen und Schließen des Gehäusses ist möglich aber ziemlich aufwendig. Trotzdem sollte natürlich das Wechseln der Mini-SD-Karte mit Betriebssystem und Software irgendwie möglich sein, aber eine Prämisse beim Zusammenbau war das nicht gewesen.
IMG_8178

IMG_8192

Ebenso gibt es keine Bedienelemente, im Idealfall soll der AudioCube nur gelangweilt neben der Audio-Anlage stehen und über Ethernet den AirPlay-Empfänger für Rechner und iOS-Geräte spielen. Wie der Name schon sagt: nur für Audio. Einrichtung und Betrieb erfolgt rein headless, deswegen ist auch ein Ethernet-Anschluss vonnöten. Im Idealfall steht der Cube also nicht nur neben der Audio-Anlage, sondern auch neben dem Router/Kablemodem. Was zugegeben nicht die Regel ist. Einen WLAN-Adapter zu installieren ist möglich, habe ich auch schon gemacht, allerdings keine Langzeiterfahrung damit.
Zur Software: installiert ist das Standard-Raspian Wheezy und die MusicBox-Software, die aus mehreren Teilen besteht: dem Audio-Player Mopidy, dem AirPlay-Receiver Shairport und dem Web-Client für Einrichtung und Fernsteuerung. Anleitungen dafür gibt es einige im Netz, für meine Zwecke habe ich ein Image von der fertigen Installation erstellt, was ich dann auf die SD-Karten der einzelnen Cubes gespielt habe, denn es gibt inzwischen 3 Stück von diesen. Das Tool ApplePi Baker erledigt das sehr schnell und elegant, ebenfalls nützlich ist das Tool SDFormatter, was die SD-Karten entsprechend den Anforderungen für ApplePi Baker formatiert.
IMG_8678
Der Web-Zugriff erfolgt über die Adresse http://musicbox.local, dort werden die Einstellungen für Name, Netzwerk und andere Musik-Einstellungen gemacht. MusicBox als Software ist sehr vielseitig und kann für diverse Zwecke angepasst werden, man kann Radiostationen fest einstellen, eine Spotify-Station definieren und lokale Musik-Files und -Playlists abspielen, sozusagen das Multifunktionswerkzeug für Musik-Raspberrys. Aber wie gesagt, als AirPlay-Receiver soll er nur so rumstehen.

Safe Mode (OS X und iOS)

Abgelegt unter Allgemein

Safe Mode (oder Safe Boot) unter Mac OS X wird aktiviert durch die Taste “Shift” beim Neustarten/Einschalten solange bis das Apple-Logo erscheint. Siehe auch Mac 112.
Safe Mode in iOS wird aktiviert durch das Drücken und Gedrückthalten des Sleep/Wake-Buttons und des Home-Buttons gleichzeitig, solange bis das Apple-Logo erscheint.
Der Safe Mode löst einige Wartungs-Routinen aus, der Systemstart dauert dementsprechend etwas länger, und kann einige (nicht alle) Probleme hinsichtlich System-Zugriffsrechte auf der Festplatte/Festspeicher lösen.

MacBook Pro (2012); HDD gegen SSD austauschen

Abgelegt unter Apple

Bezugnehmend auf den Artikel vom Juni, hier die angekündigten Erfahrungswerte beim Austausch der standardmässigen, mechanischen Festplatte in eine SSD (Samsung 850 Evo, 500 GB).
Die Unterschiede sind, wie erwartet, gravierend.
Das Hochfahren verbessert sich von 1:28 min auf 0:12 min, das kopieren einer 2,65 GB-grossen-Datei verbessert sich von 0:56 min auf 0:12 min, das entspricht 220 MB/s. Das Starten von Photoshop verbessert sich von 0:32 min auf 0:06 min, das Starten von AFX verbessert sich von 1:00 min auf 0:17 min.
Also durchgehend Geschwindigkeitsverbesserungen zwischen 300 und 400 Prozent. Damit ist das Niveau aktueller Rechner erreicht, obwohl bei den neueren MacBook Airs (2015) nochmal ganz andere Geschwindigkeiten zu erzielen sind.
Der eigentliche Knackpunkt ist aber immer noch aktuell: der Geschwindigkeitszuwachs muss teuer erkauft werden, vor allem, wenn die Festplattenkapazität NICHT WENIGER werden soll. Neue MacBook Air und MacBook Pro werden in der Mindestkonfiguration mit 128 GB SSD verkauft und diese Grösse ist NICHT konfigurierbar. Ein vergleichbares MacBook Pro mit 512 GB SSD (13 Zoll, Retina-Display) würde ca. 1760 EUR (AoC) kosten, ansonsten gilt die Rechnung MacBook Pro von 2012 für 1056 (AoC) plus SSD 500 GB für 175 EUR gleich 1231 EUR.
Noch eine Anmerkung in Richtung RAM: für OS X El Capitan empfiehlt sich unbedingt 8 GB RAM, diese Aufrüstung kostete in meinem Fall nochmal 70 EUR.