Island

Falls ihr euch mal gefragt habt, wie groß Island eigentlich ist.
Update: Natürlich beachtete ich bei diesem kurzen Mockup nicht, dass Karten kacke sind. Hier gibt es eine richtigere Karte. Ändert im großen und ganzen aber auch nicht viel.
Ein L und zwei P. Philipp!

Falls ihr euch mal gefragt habt, wie groß Island eigentlich ist.
Update: Natürlich beachtete ich bei diesem kurzen Mockup nicht, dass Karten kacke sind. Hier gibt es eine richtigere Karte. Ändert im großen und ganzen aber auch nicht viel.
Der aktuelle heiße Scheiß im Frontend-Business heißt ja React. Da ich mit Angular nie so richtig warm geworden bin und Facebook vor ein paar Wochen React Native vorstellte, fand ich, dass es an der Zeit war, mich mal damit zu beschäftigen.
In der Firma benutzen wir Redmine zum Ticket-Verwalten und Zeiterfassen. Leider fand ich bisher keine wirklich komfortable Möglichkeit, das damit zu erledigen. Alle Plugins, Mac- und iPhone-Apps gefielen mir nicht so gut, daher passiert es oft, dass ich mir Zeiten einfach in mein Notizbuch schreibe und dann manuell übertrage.
Letzte Woche kam mir die Idee, dass ich ja eine App machen könnte, mit der man ganz leicht Zeiten aufnehmen kann. Die kann den ganzen Tag auf dem iPad geöffnet sein, welches dann immer im Blickfeld herumliegt. Vielleicht löst das dann das Problem, dass ich vergesse das ich ja tracken sollte.


(In Wirklichkeit stehen da natürlich echte Task-Namen und nicht nur zufällige Buchstaben.)
Die Entwicklung machte im Großen und Ganzen Spaß und ging auch relativ schnell. Das ganze Konzept von React gefällt mir sehr gut, die Dokumentation ist okay und man findet auch schon allerhand Lösungen bei Stackoverflow.
Mein Hauptproblem ist eigentlich, dass React nicht so gut mit fastclick.js funktioniert und man daher nicht um dieses 300ms-Delay auf Touchgeräten herum kommt. Also, es gibt schon ein paar React-Module mit denen man das Anscheinend nachbauen kann, die waren aber hässlicher als "Einfach nur fastclick.js einbinden". Da muss ich nochmal nachforschen.
Ein zweites Schönheitsproblem ist, dass React keine onClick-Handler ausführt, wenn ein Element -webkit-overflow-scrolling: touch hat. Da die Task-Liste auf der linken Seite eben genau so funktioniert, ist das etwas schade.
Etwas verwirrend fand ich zunächst, dass React ja wirklich nur ein Tool für die "View"-Ebene ist. Es gibt daher keine wirklichen Vorschriften, wie man jetzt seine Datenquellen zu bauen hat. Einerseits ist das natürlich eine schöne Freiheit, andererseits erzeugt es natürlich auch zusätzliche Denkarbeit, wie man nun sein Model-Layer aufbaut. (Mit Flux gibt's da auch eine Empfehlung von Facebook)
Ansonsten lief alles gut, aber wie man sieht, ist es ja auch nur ein sehr kleines Projekt.
Da ich natürlich nicht nur eine Sache gleichzeitig angucken kann, probierte ich auch noch Browserify aus um den ganzen Kram zusammenzupacken.
Meine bisherigen Erfahrungen mit Dependency-Managern im Frontend beschränkten sich auf Bower und RequireJS -- das gefiel mir alles überhaupt nicht damals. Mit Browserify kann ich nun npm benutzen und muss nicht zwei Stunden googlen, wie denn die RequireJS-Syntax funktioniert. Klare Empfehlung!
React hat erstmal einen wesentlich besseren Eindruck auf mich gemacht, als Angular. Browserify ist RequireJS in gut. Ein Samstagabend halbwegs sinnvoll und spaßig verbracht!
Für die Neugierigen: Den Code gibt's natürlich auf GitHub!
Spätestens nach dem Kauf verschiedener Fotobücher von Paul Ripke im letzten Jahr wuchs in mir das Verlangen selber ein Fotobuch zu gestalten. Glücklicherweise hatte ich, weil wir im letzten Jahr echt viel unterwegs waren, eine Menge Fotos und so baute ich Ende letzten Jahres in unendlich lang wirkenden Indesign-Sessions mein erstes Buch zusammen.
Ich spielte etwas mit der Bildaufteilung rum, würde viele Sachen wieder genauso machen, manche Sachen lasse ich vielleicht beim nächsten Mal. Insgesamt bin ich aber sehr zufrieden und es fühlt sich ziemlich gut an, die Fotos zum Anfassen zu haben. Mit Blurb bin ich so mittel-zufrieden -- die Druckqualität ist okay. Mehr kann man zum Preis von 70€ für 220 Seiten aber wohl auch nicht erwarten.





Na, macht ihr auch brav eure Backups?
Backups sind ja nur vernünftig, wenn sie automatisiert passieren. Daher habe ich in den letzten Wochen mal meine Scripte überarbeitet und bin zu einem ganz zufriedenstellenden Ergebnis gekommen.
Das einzige was mir jetzt noch fehlt ist:
Sobald ich das alles umgesetzt habe, bräuchte ich dann noch eine weitere USB-Platte, die ich mit der NAS-Backup-Platte in regelmäßigen Abständen tausche und irgendwohin bringe, um noch ein Off-Site-Backup zu haben.
Jetzt seid ihr dran! Steckt mal eure Time Machine Platte an, die seit 57 Tagen darauf wartet, mal wieder zu backuppen oder holt euch einen Backblaze Account. (Dieser Post wird im Gegensatz zu vielen Podcasts nicht von Backblaze gesponsort.)
Ich glaube, es dürfte mittlerweile 10-15 Jahre her sein, dass ich meine ersten Zeilen PHP-Code schrieb. Damals war alles so einfach — man hatte ein paar Dateien mit Code, HTML, CSS und <font>-Tags, alles quer gemischt.
Außerdem gab es keine riesigen Diskussionen, ob PHP nun supergeil, okay, total bescheuert, oder die Ausgeburt der Hölle ist. Also, wahrscheinlich gab es die Diskussionen, aber sie interessierten mich nicht. Ich fand PHP, sah das es genug Tutorials und Dokumentation gab und lernte es einfach, weil es mir am einfachsten erschien.
(Ruby und Python waren damals einfach noch nicht in meinem Blickfeld, Perl verstand ich nicht)

Webentwicklung im Jahre 2015, Symbolfoto
Heute hat sich das geändert. Die Stimmen gegen PHP werden immer mehr, ich ließ mich davon beeinflussen und wurde unsicher. Im Rahmen eines Kundenprojektes beschäftigte ich mich mit NodeJS und fand das auch ziemlich gut, fand aber einige Punkte, die mich störten (Javascript, die Datenbank-Wrapper sind alle komisch, die Template-Engines sind alle komisch).
Dazu kommt, dass viele moderne Webapps Single-Page-Apps sind, dafür gibt es aktuell auch mindestens fünftausend Javascript-Libraries.
Und haben wir schon über Datenbanken gesprochen? SQL ist scheiße, NoSQL ist die Zukunft! Oder auch nicht. Jeder hat hier eine andere Meinung.
Wenn man sich die aktuelle Webentwicklungs-Landschaft so anguckt, könnte man denken, es ist unmöglich etwas zu bauen, ohne mindestens zwölf verschiedene Javascript-Libraries, zwei CSS-Preprocessors und eine fancy Programmiersprache mit MVC-Framework und richtig geiler Asset-Pipeline zu benutzen. Achja, und NoSQL. NoSQL!
Weil ich natürlich auch hip und modern sein will gucke ich mir die meisten Dinge auch an und versuche damit rumzubasteln, meistens merke ich aber auch, dass am Ende doch alles scheiße ist.
Klar stecken in den meisten Produkten tolle Ideen, selten lassen sie sich aber so gut verallgemeinern, wie die Entwickler das andachten und was am Ende dabei rauskommt ist dann wunderschöner, aber sehr speziell geformter Hammer, der nur bei wenigen Nägeln weiterhilft (Ich liebe die Hammer-Nagel-Metapher).
Puh. Insgesamt nervt mich die Situation seit mittlerweile mehr als einem Jahr. Placescore baute ich damals in NodeJS — einmal mit MongoDB, bis ich feststellte, dass es sich nicht dafür eignet (oder ich zu dumm bin) und dann nochmal mit Postgres, glücklich war ich dabei aber auch nicht.
Statt nun weiter frustriert zu sein, entschied ich mich, mir jetzt erstmal Yii 2.0 anzugucken und watched.li damit weiterzuentwickeln. PHP 5.4, MySQL und serverseitig gerenderte Templates.
Das fühlt sich jetzt zwar etwas rückschrittlich an, aber ich glaube, es ist besser, überhaupt etwas zu machen als Monate lang wegen zu großer Auswahl in Schockstarre zu verfallen.
Wenn ihr es nun bis hier her geschafft habt, macht nicht den gleichen Fehler wie ich. Lasst euch nicht frustrieren von der Auswahl und den tausenden Meinungen da draußen. Entscheidet euch für das Werkzeug, was euch am besten in der Hand liegt (selbst wenn es PHP ist) und baut, was ihr bauen wollt.
Viele Grüße,
Philipp
Zeit für einen Jahresrückblick, in dem ich kurz auf verschiedene Aspekte meines Lebens im vergangenen Jahr eingehe und einen Ausblick auf 2015 gebe.
(Hä, die Einleitung klingt viel zu ernst, daher hier ein Satz, der mit “hä” beginnt.)
Programmieren ist weiterhin ein relativ großer Teil meines Lebens, denn es ernährt mich. In diesem Jahr habe ich zu etwa 30% NodeJS und zu 70% Objective C geschrieben und gefühlt sehr viel dazu gelernt, was iOS-Entwicklung angeht.
Leider habe ich nicht die Zeit gefunden, mich mit vielen neuen Sachen zu beschäftigen — Objective C und NodeJS waren ja auch noch relativ neu für mich — dieses Jahr will ich mir aber auf jeden Fall noch etwas neues anschauen, Go steht da aktuell oben auf der Liste.
Nachdem ich 2013 nur relativ wenig Fotos machte, ging es dieses Jahr wieder ordentlich los. Einerseits natürlich, weil ich mir Anfang des Jahres die 6D kaufte, andererseits, weil ich einfach wesentlich mehr unterwegs war.
Insgesamt waren es fast 5000 Fotos, die ich dieses Jahr machte und mit dem was davon übrig blieb (Hier in den Galerien zu finden), bin ich ziemlich zufrieden. Hoffentlich wird das Fotobuch, was ich vor ein paar Tagen zu Blurb schickte so schön wie ich es mir vorstelle.
Konkrete Pläne für 2015 habe ich nicht. Einfach nicht aufhören Fotos zu machen.
Leider gab es nicht ganz so viele größere veröffentlichte Projekte.
Ich arbeitete an ein paar kleinen Updates zu Coffeelog, baute daiquiri, den Generator für meine Bildergalerien und entwickelte eine eigene kleine App, mit der ich komfortabler Drive Now-Autos suchen kann.
Zum Ende des Jahres baute ich dann noch ein Modul für daiquri, mit dem ich die Galerien leichter in Photoshop basteln kann, eine Bluetooth-Lichterkette und ein kleines Tool um iOS-.strings-Dateien per Google Spreadsheet zu managen.
Das einzige größere Projekt war Placescore — das entwickelte sich aber leider etwas anders als geplant und wurde daher auch schon wenige Monate später wieder eingestellt.
2015 will ich auf jeden Fall wieder mehr machen und veröffentlichen, ich weiß nur noch nicht was. Ganz oben auf meiner Liste stehen einige Updates für watched.li (Jaaa, ich weiß.) — aber da verspreche ich nichts. Vielleicht habe ich auch Lust auf etwas komplett anderes.
Better könnte ich auch mal fertig machen — auch wenn es da mittlerweile einige Konkurrenz gibt, wäre es doch schön, das im App Store zu haben, allein damit ich es nicht immer compilen muss, wenn ich mein iPhone neu installiere.
Anfang Januar startete ich mit Daily Knuspi einen täglichen… Podcast, den ich immerhin bis April, oder so durchzog.
Ich hatte kein wirkliches Konzept und wusste auch nicht, wo ich eigentlich damit hin will, aber eigentlich machte es mir Spaß — nach einer Zeit wurde es aber auch langweilig, da meine Tage meist nicht so spannend waren und sich das dann natürlich in den Soundschnipseln widerspiegelte.
Ich glaube nicht, dass ich das Projekt in dieser Form 2015 neu starten werde, habe aber weiterhin Lust auf etwas im Audio-Genre.
Ich las sieben Bücher und fing zwei weitere an. Damit habe ich meinen 12-Bücher-Vorsatz für 2014 natürlich nicht erfüllt, ist mir aber eigentlich auch egal.
Am besten gefiel mir Tschick, die größte Enttäuschung war wohl The Fault in Our Stars, weil es alle anderen so gut finden und ich nun nicht mitreden kann.
Ich machte meinen Führerschein im Herbst 2006 innerhalb weniger Wochen in den Semesterferien und fuhr seit dem quasi gar nicht. Einerseits, weil ich kein Auto hatte, andererseits, weil ich auch nicht fahren musste.
2014 änderte sich das etwas. Wir liehen ein Auto und fuhren nach Rømø und weil es ein neuer A6 mit Automatik war, wollte ich natürlich auch mal fahren. Mittlerweile habe ich einen DriveNow-Account und fahre ab und zu mal zum Baumarkt.
Autofahren ist immer noch keine Routine, noch relativ aufregend und stellt mich noch vor Herausforderungen, aber macht Spaß. Ich hoffe, dass ich in 2015 noch etwas mehr Routine reinbekomme.
Dieses Jahr war ich auf Rømø und Helgoland, in Tokyo, Venedig, Amsterdam, Kiel, Flensburg und sogar mal in Berlin.
In diesem Jahr möchte ich auf jeden Fall mindestens genau so viel unternehmen, werde es aber versuchen ebenso spontan zu halten.
Wenn Letterboxd recht hat, war ich zwölf mal im Kino. Von den gesehenen Filmen gefiel mir wohl The Secret Life of Walter Mitty am besten. Aber auch 300: Rise of an Empire und natürlich Grand Budapest Hotel waren dufte.
Im zweiten Halbjahr liefen leider nicht so viele tolle Filme, Mockingjay 1 und der dritte Hobbit gefielen mir nicht so gut.
Von den Kinofilmen mal abgesehen sah ich zum ersten mal Richy Guitar und bin mir nicht sicher, ob ich ihn guten Gewissens empfehlen kann.
Ich habe keine Ahnung, was für Filme 2015 rauskommen, werde aber weiter ins Kino gehen. Mockingjay 2 wird sicher super. Kommt ein neuer Avengers, oder irgendwas von Marvel? Hoffentlich.
Puh. Bis auf Fargo schaute ich dieses Jahr nichts komplett. Dazu gesellten sich 21 Folgen Pastewka, 13 Folgen Tatortreiniger und sonst nur einzelne Folgen. Ich würde mein watched.li-Profil verlinken, aber die Funktion muss ich erst noch einbauen.
Total verpennt habe ich Game of Thrones, bei Homeland bin ich auch schon zwei Staffeln hinterher. Ich bin mir noch nicht sicher, wie ich meinen Rückstand aufarbeiten werde.
Mein Ziel für 2015 ist auf jeden Fall mehr als 20 Folgen Serien schauen.
Ich glaube, außer Mario Kart 8 und Factorio habe ich dieses Jahr nichts erwähnenswert viel gespielt. Leider habe ich keine Webseite, die das aufzeichnet und muss mich auf meine Erinnerung verlassen.
Ob sich das 2015 ändern wird, weiß ich nicht. Ich wäre auf jeden Fall offen dafür.
Ich besuchte 14 Konzerte und jedes war toll. Reinhard Mey war wieder super, Farin Urlaub sowieso und Thees Uhlmann, auch. Alles gut.
Für 2015 stehen aktuell unter anderem Farin Urlaub und Funny van Dannen auf der Liste, aber das wird sich im Laufe der Zeit sicher noch erweitern. Konzerte finde ich weiterhin gut.
Ehrlich gesagt habe ich keine Ahnung, welche Alben 2014 rauskamen, ich höre soviel Musik, dass das alles verschmilzt. Ich erinnere mich an das Farin Urlaub Album, das war super.
Keine Ahnung, welche Alben 2015 rauskommen werden, aber vielleicht werde ich dieses Jahr mal eine Liste anlegen, damit ich hier in einem Jahr nicht so unvorbereitet da stehe.
2014 war echt gut. 2015 wird besser, oder schlechter, aber wahrscheinlich besser. Mal sehen!




Frohes neues Jahr, liebe Blogleser!
Wenn schon kein ganzer Jahresrückblick kommt, dann doch wenigstens die Amazon-Einkaufsstatistik. Man sollte sich ja wenigstens ein paar Blog-Traditionen erhalten. Hier also der aktuelle Graph:

2013 war also allem Anschein nach nur eine kurze Delle. Ich hoffe, Amazon.de ist froh, dass ich mich als Kunde erholt habe!
Hier noch die Top 5 der Produkte, die ich erwarb:
Makita Akku-Schlagbohrschrauber 18V, BHP453RYJ - Der Akku von meinem alten Schrauber hatte absolut keine Kraft mehr, also musste ein neuer her. Dieser hier haut ordentlich rein und ich hoffe, dass er mich einige Jahre begleiten wird.
Staedtler 308 SB6P Pigment Liner - Seit ein paar Monaten mache ich wieder mehr Notizen bei der Arbeit und diese Stifte sind sehr gut dafür geeignet.
WD My Passport Ultra externe Festplatte 2TB (2,5 Zoll, USB 3.0) - Ganz frisch noch vor Weihnachten gekauft, weil ich eine neue TimeMachine-Backupplatte brauchte. Zwei Terabyte, USB 3.0, 2.5", d.h. kein Netzteil und nur ein kleines Kabel. Ich war total überwältigt, dass wir mittlerweile so weit sind.
Dieser Blogpost erzählt die Geschichte, wie ich mir eine per iPhone-App bedienbare Bluetooth-Lichterkette bastelte. Ich war mir im Vorfeld nicht ganz sicher, ob ich das als knuspermagierTV Classic HD-Video oder in Form eines 12-teiligen Softwareentwicklungstutorials machen soll — entschied mich jetzt aber einfach für die Form “Geschichtenerzählblogpost”, weil ich es sonst wahrscheinlich nie machen würde.

Vor ein paar Wochen, so zum Beginn der Weihnachtszeit, fragte ich mich mal wieder, warum es eigentlich keine Lichterketten gibt, die man irgendwie per Bluetooth cool programmieren kann.
Kurz darauf viel mir dann ein, dass ich ja genau vor einem Jahr in ein Kickstarter-Ding investierte… Espruino. Ein Microcontroller, der mit Javascript programmierbar ist.
Damals klickte ich das einfach aus Interesse an und entschied mich sogar für das 70 Pfund-Paket, das neben der Hauptplatine einigen Kram, wie zum Beispiel einen WS2811 LED-Strip enthielt. Das lief alles gut und wurde auch Anfang des Jahres geliefert — wie das so ist mit Spielzeug, lag es dann aber erstmal rum, weil ich keine Idee hatte, was ich damit nun machen sollte.
Doch jetzt! Ich kombinierte in meinem Kopf. Microcontroller… check! Individuell adressierbare LEDs… check! Fehlt nur noch Bluetooth — nach etwas Recherche fand ich den passenden Chip, der per Bluetooth 4.0 LE auch mit dem iPhone kommunizieren kann und bestellte ihn direkt 2x bei irgendeinem Billoshop in Hong Kong.
Weil ich das ganze noch vor Weihnachten fertig haben wollte gab ich noch Unmengen für einen 3-5 Tage Expressversand aus, wartete 3-5 Tage und holte eines Abends den Lötkolben aus seinem Versteck. Meine Lötskills sind nicht wirklich ausgebildet, aber irgendwie schaffte ich alles korrekt zu verbinden und es funktionierte!
Hardware fertig, nun fehlte noch die Software. Durch geschicktes googeln und kopieren softwareentwickeln schaffte ich es in kurzer Zeit eine App zu bauen, die sich per CoreBluetooth verbinden und Befehle senden konnte. Etwas Javascript-Gemurkse auf der anderen Seite sorgte dann auch dafür, dass die entsprechenden LEDs die richtige Farbe zeigten.
Dann war erstmal kurz Ruhe. Meine interne “Projekt beenden”-Hürde nahm wieder Überhand. Immerhin hatte ich bewiesen, dass es möglich ist, ich hatte ja sogar GELÖTET. Handwerkliche Arbeit ist ja immer schonmal ziemlich zufriedenstellend.
Am Ende sind die 25 LEDs, die ich habe eh viel zu wenig und eigentlich will man die Lichter am Baum auch gar nicht ständig verändern und das ganze “ordentlich” zu machen würde jetzt auch soviel Zeit kosten und eigentlich will ich auch lieber Factorio spielen.

Am Ende ließ es mir dann aber doch keine Ruhe und ich wollte das ganze Konstrukt doch irgendwie in eine “Form” bringen, die ich hier bloggen, oder nächstes Jahr an den Baum hängen kann (nachdem ich nochmal ein paar LEDs dazu gekauft habe). Also habe ich gestern nochmal ein paar Stunden investiert und sowohl die App, als auch den Espruino-Code etwas hübscher und benutzbarer gemacht.
Man kann nun, sobald man sich mit der Lichterkette verbunden hat, jede LED einzeln einfärben. Oder halt alle gleichzeitig! Außerdem sind insgesamt drei hochspannende Animationsmuster eingebaut, durch die man durchschalten kann! (Die ich alle aus dem Espruino-LED-Tutorial kopiert habe)
Damit gebe ich mich jetzt erstmal zufrieden, archiviere das Projekt im Kopf und freue mich, wieder was neues gelernt zu haben. CoreBluetooth, Löten, (wahrscheinlich total bescheuerte) Binär-Protokolle erfinden, Espruino programmieren.
Damit man sich das ganze besser vorstellen kann, hier noch ein unscharfes Video:
Für den unwarscheinlichen Fall, dass das jemand genau nachbauen will habe ich es mal in ein Github-Repository verfrachtet und dort auch kurz beschrieben, welche Teile und Tutorials man so braucht.
Nun noch ein inspirierender Abschluss-Satz:
Bestellt euch auch mal Espruino, Arduino oder vergleichbares und macht irgendein Quatschprojekt. Es macht ne Menge Spaß und ist mal was anderes!
Anhang 1 - Dinge, die ich noch einbauen könnte:
evalt wird. Juchu, Scriptsprachen.Bei einem Projekt letztens fiel mir mal wieder auf, dass ich immer noch keine vernünftige Lösung kenne, um Localizale.strings-Files aus dem iOS-Umfeld gemeinsam mit dem Kunden auf dem aktuellsten Stand zu halten.
Bisher regelte ich das immer über ein Google Spreadsheet, welches ich über den CSV-Export-Umweg in eine .strings-File umwandelte, aber das ist umständlich.
Daher setzte ich mich mal kurz hin und baute syncstrings, ein kleines NodeJS-Tool, welches .strings-Datei und Google Spreadsheet synchronisiert, alles nur mit einem Terminal-Befehl!
Alles weitere dazu auf der dazugehörigen Github-Seite.