Staying sane as a solo developer

Some time ago i have searched for a guide like this, and since i couldn’t find one, I hope to help others in a similar situation by providing some guidance.

After all, this is my opinion, it is biased, it might be full of shit, please point it out, but this is what helped me the past few years and still is kind of what i do on a day to day basis to get my job done and people happy.

So long, enough of the babbling, let’s get to it.

I have to start somewhat further to explain my situation.

About Me

I’m a solo developer in a research institute in germany. On a daily basis we produce radiopharmaceuticals for human application aswell as pre-clinical and in-vitro studies. „Staying sane as a solo developer“ weiterlesen

Es werde Licht

Vor kurzem habe ich mir ein Walimex Blitz-Set gekauft und dieses sowohl alleine als auch zusammen mit Alex ausprobiert. Hier sind ein paar kurze Worte zur allgemeinen Arbeit mit Blitzen, sowie den Gedanken vor dem Kauf.

Dauerlicht oder Blitze?

Das war tatsächlich die größte Frage die ich mir zunächst stellte. Überhaupt auf die Idee gekommen bin ich eher zufällig. Ich wollte schon länger in der Richtung aktiv werden und besitze schon einen Yonguo Yn560IV, den ich aber viel zu selten nutze, also wieso dann überhaupt in diese Richtung gehen? Die Arbeit…

Da wir auf der Arbeit im Zuge der Überarbeitung der Website auch Fotos der Mitarbeiter hinterlegen möchten, damit man z.B. einfacher seinen Ansprechpartner findet, habe ich damit die Rechtfertigung gesehen, mich dahingehend weiter umzusehen. Auf YouTube habe ich dann einige interessante Videos gesehen, sowohl was Dauerlicht als auch was Blitze angeht.

Dauerlicht

Ich habe ein interessantes Video von Paddy zum Thema Dauerlicht (Walimex Daylight 1260) gesehen und war fasziniert von den Möglichkeiten. Auch Alex sah das sehr ähnlich. Mit Dauerlicht hat man den Vorteil, dass man sofort sieht, was man da fabriziert. Man kann sofort die Lichtsituation einschätzen, einfacher Anweisungen geben (Kopf etwas mehr nach Links) damit der Schatten anders fällt. Dauerlichter sind eher aus dem Videografie-Bereich, was jedoch nicht heißt, dass man sie nicht auch bei der Fotografie einsetzen kann, wie Paddy in dem Video schön zeigt.

Andererseits haben Dauerlichter auch den Nachteil, dass sie, gerade bei höheren Leistungen die abzulichtenden Personen blenden. Das kann gewollt sein (haha :P), ist es aber in den seltensten Fällen. Das Problem der Wärmeentwicklung ist dank Energiesparlampen heutzutage nicht mehr so präsent wie noch vor einigen Jahren, also hierfür zu vernachlässigen.

Blitze

Länger habe ich nach passenden Blitzen gesucht, als magische Grenze hatte ich mir selbst 350€ gesetzt. Da kam mir ein Set von Foto-Walser gerade recht, mit dem ich 20% sparen konnte, und damit unterhalb meiner Grenze war.
Entschieden habe ich mich für ein Set von Walimex Newcomer 300 Blitzen mit Stativen, Schirm, Softbox und Funkauslöser.

Der Funkauslöser war mir wichtig, da man ohnehin schon sehr viele Kabel dabei hat und verlegt, da wollte ich darauf verzichten, gerade, wenn man ein Kabel zum Tethered-Shooting von der Kamera zum Rechner hat.

Zwei Blitze wollte ich für eine relativ gleichmäßige Ausleuchtung haben (da die Mitarbeiterfotos eher Bewerbungsbildern gleichen sollen und keine Beauty oder Charakter-Portraits).

Also habe ich es bestellt, alles kam an und nach anfänglichen Schwierigkeiten beim Aufbau der Softbox stand dann alles soweit und ich konnte loslegen. (Keine Bange, es gibt ein Video das erklärt, wie man die Softbox aufbaut 🙂 )

Zunächst einmal habe ich selbst ein bisschen ausprobiert, einfach mal drauf los geschossen und geschaut was dabei herauskommt. Die Grundlagen der Blitzfotografie habe ich vorher dank einiger YouTube-Videos bereits erfahren. Hier möchte ich zum einen die Videos von Stephan Wiesner zum Thema Blitz-Fotografie sowie die Walimex eigenen Videos empfehlen, damit hat man sehr gut alle Grundlagen einmal gehört und kann dann loslegen und ausprobieren, denn all das theoretische Wissen bringt nichts, wenn man nicht dann etwas daraus macht.

Und los gehts!

Gesagt getan, Kamera aufs Stativ, alles angeklemmt und mangels Fernauslöser für die Kamera mit Snapbridge ausgelöst… Elendig langsam, Fehleranfällig, aber dafür doch ausreichend.

Sigma 50mm f/1.4 ART bei f/11 1/100s ISO 100
Sigma 50mm f/1.4 ART bei f/11 1/100s ISO 100

Das war des beste Bild aus einer ganzen Serie die ich an dem Tag aufgenommen habe. vieles ausprobiert, aber alleine und ohne Rechner garnicht so einfach, da man immer zum Anschauen der Bilder hinter die Kamera muss (Auch hier wieder Snapbridge *nerv*), aber doch irgendwie machbar.

Das erste Shooting

Okay, es war kein richtiges Shooting, es waren Alex und ich die ein bisschen mit den Blitzen herumgespielt haben. Macht Spaß, auch man eine andere Kamera (Alex‘ 7D2) in der Hand zu halten und sich wie ein Vollidiot zu fühlen, wenn man nicht weiß, wie man den Fokuspunkt versetzt :D.

Alex in seinem Element
Alex in seinem Element
Semi Behind-The-Scenes
Semi Behind-The-Scenes

Dabei hat Alex das mit dem Posieren vor der Kamera wesentlich besser raus als ich, das einzige „gute“ Bild von mir ist dieses:

Show me your sexy Face!
Show me your sexy Face!

Auch Dinge wie die Blitzsynchronzeit kann man so wunderbar ausprobieren:

Blitzsynchronzeit
Blitzsynchronzeit

 

Oder noch etwas mehr Behind-The-Scenes:

Behind the Scenes
Behind the Scenes

Und bei dem ganzen ausprobieren kommt ab und zu auch ein vernünftiges Bild heraus:

Alex
Alex

In Ermangelung eines Hintergrundsystems haben wir die ganzen Bilder einfach vor einer weißen Wand gemacht, für unseren Zweck vollkommen ausreichend.

Alles in Allem macht es sehr viel Spaß damit zu fotografieren und dinge auszuprobieren. Mit einem längeren USB-Kabel wäre es sicher noch etwas besser gewesen, aber auch so war es schon echt gut.

Und weiterhin habe ich festgestellt, dass das Sigma ein unglaublich tolles Objektiv ist, das SO unglaublich scharf ist, dass ich es jederzeit weiterempfehlen würde.

Fotografie & Bildbearbeitung

Es wird wieder einmal Zeit für einen neuen Blogeintrag, dieses mal, wie man unschwer am Titel des Posts erkennen kann, zum Thema Fotografie.
Im Februar diesen Jahres habe ich mir einen kleineren Technikwunsch erfüllt und meine erste Spiegelreflex-Kamera gekauft, eine Nikon D5500 mit einem Nikkor 18-300mm Objektiv.

Nun wie das eben so ist tastet man sich langsam an ein Thema heran. Die ersten Bilder will man eher Niemandem zeigen, weil man von den ganzen Funktionen überfordert ist. Blende? Belichtungszeit? ISO? Brennweite? Und dann arbeitet man sich langsam dort ein und irgendwann kommt das erste brauchbare Bild heraus.

 
There was an error connecting to . Please try again later.
1 Message:
cURL error 52: Empty reply from server

Was mir sehr geholfen hat, war es mir YouTube Videos anzusehen. Auf zwei deutschsprachige Kanäle möchte ich hier ganz besonders hinweisen: Stephan Wiesner 

und Benjamin Jaworskyj .

Beides sehr coole Menschen, die sich mit so ziemlich allem, was es im Bereich Fotografie gibt beschäftigen, sehr coole Anleitungen posten und erklären, wie man an bestimmte Arten von Fotos überhaupt herangeht.

Und man beginnt sich näher mit der Materie zu beschäftigen, bekommt langsam ein Gefühl für den Bildaufbau und probiert neue Dinge aus, bei denen vieles nicht so klappt, wie man sich das vorstellt. Aber wenn es dann doch klappt, wird es immer vorzeigbarer:

 
There was an error connecting to . Please try again later.
1 Message:
cURL error 52: Empty reply from server

Raw oder JPG?

Eine der „großen Fragen“ der Menschheit. Alle Leute schwören auf RAW. Aber wieso? Jpeg ist ein Komprimierungs-Algorithmus, der „unnötige“ Daten aus dem Bild weglässt, also beispielsweise bei Blautöne bei dem Bild eines Himmels, die so nahe bei einander liegen, dass das Menschliche Auge sie nicht differenzieren kann auf einen zu reduzieren. Damit spart man Platz, aber man verschenkt Möglichkeiten in der Nachbearbeitung. Vielleicht will man diese zwei Farben im Himmel unterschiedlich stark betonen, um sie doch wahrnehmbar zu machen. Diese Möglichkeit ist dann nicht mehr gegeben, wenn diese zusätzlichen Informationen ein mal gelöscht wurden in einem Jpeg Bild. Auch hier gibt es wieder ein schönes Video von Ben, auf das ich verweisen möchte:

Womit wir schon beim nächsten Thema wären:

Bildbearbeitung

Mein Plan ist eigentlich einige meiner Bilder hier zur Verfügung zu stellen und zu erklären, was ich daran wie und wieso bearbeitet habe. Und das ganze eventuell auch mit dem entsprechenden RAW-Bild dazu zum selber ausprobieren. Es gibt dabei keine richtige oder falsche Lösung, erlaubt ist, wie bei allem künstlerischen, was gefällt.

Lightroom+Photoshop vs Affinity Photo vs Capture One vs ACDSee vs noch etwas anderes?

Angefangen habe ich meine Bildbearbeitung mit Affinity Photo. Für 50€ (?glaube ich) im Mac App-Store erhältlich und ein super Photoshop-Konkurrent. Klar, es kann noch nicht alles was Photoshop kann, aber eben bereits vieles. Leider fehlte mir persönlich die Möglichkeit der Verwaltung ein wenig in Affinity Photo. Es soll eben mit Photoshop konkurrieren und nicht mit Lightroom, deswegen habe ich mir irgendwann doch ein Adobe Creative Cloud Abo geholt. ~10€ im Monat sind natürlich nicht günstig, dafür erhält man jedoch den de-facto Standard der Bildbearbeitung in der stetig aktuellsten Version und damit kompatibel zu allen Kameras.

Außerdem geht mit diesem Standard einher, dass alle Plugins etc damit kompatibel sind, bei den weiteren Lösungen ist das nicht zwangsläufig gegeben.

Heißt das, dass es der Weisheit letzter Schluss ist? Absolut nicht. Aber aktuell so gut, dass ich es nicht einsehe mich in ein neues Programm einzuarbeiten und dafür Geld auszugeben. Ich werde mir alternativen mit Sicherheit ansehen (ACDSee kenne ich z.B. bereits von einer Bekannten) und eventuell auch meine Erfahrungen dazu aufschreiben, aber aktuell bin ich mit meiner Lösung zufrieden.

 
There was an error connecting to . Please try again later.
1 Message:
cURL error 52: Empty reply from server

Soweit so gut, zu guter letzt noch eines meiner aktuellen Lieblingsbilder, aufgenommen mit dem Tamron 90mm f2.8 F017N:

 
There was an error connecting to . Please try again later.
1 Message:
cURL error 52: Empty reply from server

Javascript und sein Ökosystem

Diejenigen unter euch, die auch im IT-Bereich oder im IT-Nahen Umfeld tätig sind werden es sicher mitbekommen haben, wie ein 11-Zeilen Paket auf npm die halbe Javascript-welt zum Zusammenbruch gebracht hat.

Um welches Paket es geht? leftpad. Was macht leftpad? es fügt einem String ein padding bestehend aus einem frei wählbaren Zeichen hinzu, um den string auf die länge X zu bringen

also wäre ein via leftpad aufgefüllter string „test“ mit dem zeichen x auf länge 10 „xxxxxxtest“.

Man sieht also, eine absolut gerechtfertigte Abhängigkeit, denn man kann wirklich NIEMANDEM zumuten, diesen hoch komplexen Code selbst zu schreiben.

Ich meine, was läuft bei den Leuten im Kopf falsch, dass man eine Abhängigkeit eingeht, also dafür sorgt, dass der eigene Code nur dann funktioniert, wenn diese Abhängigkeit erfüllt ist, für ein stück Code, den man in etwa 3 Minuten intensivem Denkens selbst schreiben kann oder in 20 Sekunden einfach von Stackoverflow kopieren kann? Verdammt, man könnte auch den Code aus dem blöden npm Paket kopieren und das Problem so lösen, aber ich gehe doch keine Abhängigkeiten ein, wenn ich nicht sicher sein kann, dass diese auch in einiger Zeit (und ob das nun morgen oder in 3 Jahren ist, ist dabei egal) noch verfügbar ist?

Mein Blick darauf

Ich arbeite in einem GMP-regulierten Umfeld, das heißt nicht nur, dass wir alles Dokumentieren müssen was wir tun, sondern auch nachweisbar überprüfen müssen, dass es sinnvoll ist, etwas durchzuführen. Im konkreten Fall: Jede Abhängigkeit ist gut durchdacht und geplant. Wir setzen auf offene Standards soweit möglich (z.b. zwar RabbitMQ als Messagebroker, das setzt aber aufs offene AMQP-Protokoll, und kann damit, falls die Software irgendwann nicht mehr verfügbar sein sollte, einfach ersetzt werden). Ebenso unser Datenbank-System (PostgreSQL), dass schon seit 1994 Opensource ist und immernoch aktiv entwickelt wird.
Und wenn man nicht garantieren kann, dass die Abhängigkeiten auch in Zukunft noch erfüllt werden, dann muss man eben sein Buildsystem überdenken. So toll es auch ist, dass man im prinzip mittels „npm install“ alle nötigen pakete installiert hat, wenn es dann nicht hakt steht man da. Da kann man auch gleich alles einfach mit ins Repository packen und hat es bereit. Speicherplatz-Verbrauch ist komplett zu vernachlässigen, da das ganze nur ein mal abgespeichert wird, und danach nurnoch referenziert wird, solange es keine Änderungen in den Dateien gibt.
Alles toll, heile Welt, wunderbar.

Pustekuchen

Und man denkt, dass Pakete, die aktiv entwickelt werden, dann zumindest mittels „npm install“ ihre dependencies auflösen können und man dann daran entwickelt kann. Nein.

npm ERR! Windows_NT 6.1.7601
npm ERR! argv „C:\\Program Files (x86)\\nodejs\\node.exe“ „C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js“ „install“
npm ERR! node v0.12.2
npm ERR! npm v2.7.4
npm ERR! code ELIFECYCLE
npm ERR! obvious-closure-library@20140401.0.2 postinstall: `./bin/postinstall`
npm ERR! Exit status 1

npm ERR!
npm ERR! Failed at the obvious-closure-library@20140401.0.2 postinstall script ‚./bin/postinstall‘.
npm ERR! This is most likely a problem with the obvious-closure-library package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! ./bin/postinstall
npm ERR! You can get their info via:
npm ERR! npm owner ls obvious-closure-library
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! E:\Git\dygraphs\npm-debug.log

Eigentlich hatte ich vor mich an der Entwicklung von dygraphs etwas zu beteiligen, aber wenn ich erst noch Zeit reinstecken muss herauszufinden, wie ich denn meine Buildumgebung so gestaltet bekomme, dass ich irgendwas daran machen kann, vergeht mir schon die Lust.
Aber ich gebe ja nicht so leicht auf, ich dachte „ok, ich bin unter windows, vielleicht wenn ich das ganze unter Linux mit einer richtigen Bash starte funktioniert es, dann kopier ich das ganze Verzeichnis rüber und kann daran Arbeiten.“ … nix ist. Dort wurde mir dann auf der Konsole gesagt, dass die binary früher „node“ hieß und jetzt „nodejs“, das wollte ich dann mit einem symlink umgehen. Computer sagt nein.

Es wundert mich, dass Javascript überhaupt noch existiert… Mal sehen, wann es denn mal Alternativen geben wird.

Skalierung und die Infrastruktur

Auf der Arbeit benutzen wir zur Datenhaltung der aufgenommenen Messwerte unserer Synthesen Postgresql als DBMS.
Zwar befinden sich die Client-PCs auf denen die Steuerungssoftware ausgeführt wird in einem eigenen, abgeschotteten Labornetz, jedoch müssen wir auch den Fall behandeln, falls der Datenbank-Server nicht erreichbar ist (wie zum Beispiel bei einem Netzwerkausfall). Außerdem ist es schöner, wenn die Clients keinen direkten Zugriff auf die Datenbank benötigen, weshalb wir die Software umstrukturiert haben und nun einen Message-Broker als Middleware einsetzen.

RabbitMQ to the Rescue

Durch den Einsatz von RabbitMQ als Message-Broker kann unser System nicht nur Netzwerkausfälle abfangen, es werden auch automatisch die aufgenommenen Daten dann übertragen, sobald die Verbindung wiederhergestellt wurde.

Dafür haben wir sowohl auf unserem Server, als auch den Client-PCs, an welchen die Synthesen durchgeführt werden, Erlang und RabbitMQ installiert, auf dem Server einen Nutzer eingerichtet (um Daten von einem Client dorthin übertragen zu dürfen) und die Software so angepasst, dass wir JSON-Nachrichten verschicken.

Architektur Syntheseclients und Server

Innerhalb der IIS-Website werden beim Start 4 RabbitMQ-Worker-Instanzen gespawnt, die permanent laufen und somit die gesendeten Nachrichten verarbeiten und in die Datenbank eintragen.
Die Daten werden vom Client via Shovel-Plugin auf den Server übertragen.

Datensicherheit

Da die Daten ankommen müssen und nicht verloren gehen dürfen, ist es wichtig, dass wir die Queues auf Durable stellen. Somit werden die Nachrichten beim Eingang auf die Festplatte gespeichert werden, und erst beim Empfang der Nachricht an der Gegenstelle von dort gelöscht. Genau so haben wir es beim Abruf der Daten innerhalb der IIS-Website gemacht, wo die Nachricht erst Acknowledged werden, wenn der Eintrag in die Datenbank Erfolgreich war.

Performance Benchmarking

Die einzige Frage, die sich dann noch Stellen würde, wäre, ob das System in der Lage ist die Daten in Echtzeit zu verarbeiten (solange die Netzwerkverbindung besteht natürlich), oder ob wir eventuell mehr Worker-Instanzen auf dem Server spawnen müssen, oder sogar einen zweiten Server benötigen.

Im Regelfall haben wir Maximal 20 Nachrichten pro Sekunde, die vom Client ausgehen (welche Aktionen durchgeführt wurden, ob ein Ereignis eingetreten ist, Messwerte wie Temperatur und Aktivität). Da wir jedoch mehrere Clients haben, die Nachrichten erzeugen, können wir grob 200 Nachrichten als oberstes Maximum rechnen (< 10 Apparaturen, nicht immer alle gleichzeitig im Betrieb).

Das Netzwerk ist mit 100MBit ausreichend dimensioniert, das einzige verbleibende Problem könnte dann jedoch das persistieren der Daten sein.

Erste Tests haben gezeigt, dass wir im aktuellen Setup rund 500 Nachrichten pro Sekunde verarbeiten können, könnten jedoch noch mehr Worker-Threads spawnen und die Anzahl noch etwas steigern.

Vorteil der Echtzeit-Verarbeitung

Durch die Echtzeit-Verarbeitung ist es uns möglich laufende Synthesen Live am PC zu Verfolgen. Das ist zwar nicht unbedingt nötig, aber dennoch ein nettes Feature.

Alles in Allem eine Erfolgreiche Aktion.

 

Informatik für Maschinenbaustudenten

Aktuell gebe ich einem Maschienenbaustudenten Nachhilfe in Informatik. Nicht nur, dass der Name des Fachs „Grundlagen der Informatik“ absolut nichts mit den Grundlagen zu tun hat, ich muss die Sinnhaftigkeit hinterfragen.

Wieso werden Maschienenbaustudenten dazu gezwungen eine Sprache wie C(++) oder Java zu lernen, wenn vernünftige Alternativen wie Python zur Verfügung stehen?

Die Typisierung in C ist absolut nicht Einsteigerfreundlich und behindert den eigentlichen Lernerfolg des Programmierens erheblich.
Anstatt das sich die gequälten darauf konzentrieren können die Prinzipien zu verstehen, wie die Verwendung von Schleifen, Kontrollabfragen, Funktionen usw. müssen Sie erst einmal einen C-Compiler installieren. Da die meisten Leute wohl Windows auf ihrem privaten PC nutzen, ist alleine das schon ein kleiner Akt. Aber nicht nur das, den Studenten wurde empfohlen in einer VirtualBox ein Windows XP zu installieren und darin zu entwickeln.

Python im Gegensatz dazu könnte mit wenigen Klicks installiert werden, braucht keinerlei Klammerung und der Code wird auf Grund der erzwungenen Einrückung direkt leserlich.

Zum anderen sollte das Fach eventuell in „Grundlagen der Programmierung“ umbenannt werden. Die Programmierung ist ein Teilgebiet der Informatik, aber im Prinzip ein relativ kleines. Es geht nicht darum zu Programmieren des programmierens willen, sondern, dass man ein Programm schreibt um ein Ziel zu erreichen, wie etwas zu berechnen, und es so zu schreiben, dass andere Leute, die den Code eventuell lesen werden, diesen auch verstehen. Es geht um die Entwicklung effizienter Algorithmen, um gute Systementwürfe, um das Zusammenspiel unterschiedlicher Systeme.

Die angehenden Ingenieure werden in ihrem Leben NIEMALS wieder Programmieren (außer haben selbst Interesse an der Thematik und beschäftigen sich abseits der Vorlesung damit).
In jedem anderen Fall wird es jemanden geben, der den Ingenieuren diese Arbeit abnimmt, und das Ergebnis schneller und besser erreicht, also WIESO ZEIT DAFÜR VERSCHWENDEN?

Aber das ist natürlich nur meine Meinung.

HD+ und das schöne HDCP

Gestern Abend habe ich mich dazu entschlossen mein HD+ Abo zu verlängern. Gesagt, getan, auf die Seite gegangen, die Nummer der Karte eingegeben, mich dort angemeldet und die Karte verlängert. Leider funktionierten die HD-Sender nicht. Ich hatte zwar Ton, aber kein Bild. Nur beim Umschalten von einem HD-Sender auf einen SD-Sender hatte ich kurz vor dem Kanalwechsel ein Bild.
Der Empfang funktionierte also, nur wieso habe ich statt HD-Genuss ein Schwarzes Bild?
Zum testen habe ich dann den Sat-Receiver (Technisat Technistar S1+) direkt an den Fernseher angeschlossen und siehe da, alles funktioniert.

Danach habe ich den Sat-Receiver wieder an meinen AVR angeschlossen und im Internet gesucht. Es gibt wohl noch mehr Leute die das Problem haben, und es tritt nicht ausschließlich in meiner Kombination (Denon + Technisat) auf, sondern auch viele andere machen Probleme.

Als Auslöser des Problems wurde HDCP genannt. Problemlösung sollte sein anstatt HDCP nur bei HD+-Kanälen anzuschalten und bei SD-Kanälen automatisch abzuschalten, dass man HDCP dauerhaft anschaltet. Leider war das nicht erfolgreich. Auch alle anderen möglichen Lösungsansätze (Auflösung ändern, Upscaling aus etc etc etc) waren nicht Erfolgreich.

Da mein Receiver schon etwas in die Jahre gekommen ist, habe ich mich dann jetzt dazu entschlossen mir einen Gigablue Quad Plus zu kaufen. Dort habe ich dann einen Twin-Tuner mit Option auf Quad-Tuner, auch im Mischbetrieb mit DVB-C oder DVB-T und dazu bin ich frei in der Wahl der Software und kann das System auch selbst ändern wenn ich es möchte.

Doch vor allem: Ich bin nicht an die Restriktionen von HD+ gebunden.

Wenn ich so einen Weg gehen muss um für mein Geld auch die Leistung wahrnehmen zu können, dann ist das eben so.

Nächste Woche wird es dann wahrscheinlich mehr zu dem Thema geben 🙂

Plex – Der heilige Gral fürs Heimkino

Schon seit einiger Zeit spiele ich zu Hause mit einem Plex Media Server herum. Für diejenigen, die Plex noch nicht kennen hier ein kurzer Übersicht:

Plex bietet das Streaming von Multimedia-Dateien im Netzwerk/Internet an. Klingt erstmal nicht sehr spannend, dafür gibt es noch andere Programme. Was Plex anders macht? Alles!
Zum einen gibt es einen Live Transcoder der mittels HLS (HTTP Live Streaming) die Dateien live streamen kann. Und zwar auch an Geräte, die dies eigentlich nicht unterstützen.
Zusätzlich hat ein Plex ein tolles Webinterface über welches man auch alle Medien verwenden kann. Die hinzugefügten Dateien werden automatisch getaggt und mit weiteren Informationen versehen, wie z.b. den Schauspielern, dem Jahr der Veröffentlichung, einem Cover usw usf.
Plex Webinterface

Zusätzlich gibt es ein Plugin für XBMC bei dem man direkt den Server hinzufügen kann und somit die bisherige Plex-Installation weiterverwenden kann.
Aber das mMn ultimative Feature:

Plexconnect

Nun, was ist Plexconnect? Plexconnect stellt einen kleinen Webserver und DNS Server bereit, um die Daten von Plex auch auf dem AppleTV verwenden zu können. Auch dem AppleTV3, für welchen es bekanntermaßen keinen Jailbreak gibt. Das ganze ist in 3 einfachen Schritten erledigt:

  1. Ein Zertifikat zum AppleTV hinzufügen (siehe Plexconnect Dokumentation für eine genaue Anleitung)
  2. Dem AppleTV den „gehackten“ DNS-Server eintragen, damit dieser bestimmte anfragen umleitet und zwar auf unseren lokalen Plex-Server
  3. Trailers-App starten und genießen

Hierüber ist es möglich MKVs live transkodieren zu lassen und und dem AppleTV zu streamen. Klingt gut? Ist es auch! 🙂

Serverauswahl - Mehrere Server sind natürlich möglichFilmauswahlWährend der WiedergabeAuswahl der Tonspur und des UntertitelsAuch in Dolby Digital

Die Bilder sind dank Belichtung zur späteren Stunde nicht die Besten, aber ich denke es wird deutlich, worauf ich hinaus will. Die ganzen tolles Features die Plex bietet direkt über das native Interface des AppleTVs, also einfach via Fernbedienung oder auch der Remote-App nutzbar. Und: Dolby Digital Sound, also 5.1 oder 7.1, wenn das Ausgangsmaterial entsprechend ist.

Jetzt fehlt nur noch ein kleiner Homeserver um nicht mein Macbook laufen lassen zu müssen. Die Filme an sich liegen schon auf der TimeCapsule die man dann auch einfach mounten kann.

Bis dahin! 🙂

Windows Selbstmord und Fedora 20

Der Windows 7 Selbstmord

Nachdem mein Rechner auf der Arbeit bereits einige Wochen anstatt in den Standby-Modus zu gehen, einen Bluescreen bekommen hat und darauf hin ausgegangen ist, wurde das Problem letzte Woche noch etwas schlimmer. Mit dem neuen Einschalten des Rechners und dem Starten der Programme konnte ich noch relativ gut leben, da die Boot-Zeit dank SSD sowieso vernachlässigbar war, aber mein Rechner entschied sich beim Bluescreen auch gleich noch das halbe Dateisystem mit in den Tod zu reissen. Nach dem Booten hat sich bereits Dropbox beschwert, dass es nicht mehr ordentlich ausgeführt werden kann. Außerdem hat Outlook irgendeine DLL nicht gefunden. Windows empfahl mir typischerweise erst einmal ein chkdsk durchzuführen. „Windows Selbstmord und Fedora 20“ weiterlesen