Project Locationaire

I rarely have the chance to show what I am actually doing at university. But yesterday was the final presentation of a practical course on iOS development and I’d like to share the result.

Locationaire

Locationaire is an app to bookmark and share the best locations you discover and share them with your best friends. When you and your friends are traveling around the globe Locationaire allows to easily share the places you discover and to find the places your friends like.

We – Fabian, Felix, Jörg and me – didn’t aim to get people to constantly save every location. Instead we focused on getting honest recommendations. Therefore Locationaire doesn’t have any global stream or similar functionality but only shows the items of your friends, the people who you trust and whose taste you value.

You can find more information on locationai.re.

Technicalities

For me personally it was the second time I actively developed on iOS and the first time to probably get an actual app out the door. We used Parse as backend and Foursqaure to get locations, which allowed us to mostly focus on the iOS part of the project.

Quo vadis?

At the moment we are happy that we got that far and rocked our presentation. Although we have to catchup with our other courses for now, we plan on bringing Locationaire to the AppStore.

To get if even faster, we start a private beta in the upcoming days. If you are interested feel free to contact us.

Tracking myself

The idea to capture as much data as possible about myself fascinates me. Most of the time I don’t have any specific goal in my mind. It is more about looking back and seeing how things evolved over weeks/months/years. Throughout the last couple of years I tried many different approaches and tools. Here is a short overview of the areas I currently track and what I use for it.

Spending: Next

It’s easy to automatically track the movements in my bank account. But this hardly mirrors my actual spending habits as I can’t figure out where all my cash goes. Next is a sleek iOS app to track on what I actually spend my money.

Sports: Runkeeper

I picked up running once again this year and doing so far much better than in all previous attempts. And finally I can put all those fitness apps to use. I decided to go with Runkeeper mostly because I like their data export options and that they offer an API.

Journaling and everything else: Day One

Day One lives on both my Mac and my iPhone. Generally I try to capture bigger stories about my personal life in there. It’s nice to sometimes look back on what obsessed my mind a couple of months ago and how these things actually turned out.

Brett Terpstra’s Slogger is a nifty tool that pipes the social webservices of choice into Day One. Such a great tool to preserve all my tweets and checkins in a central place.


Maybe I made this whole entry up as an excuse for pre-ordering the Fitbit Flex.

Switching to Ocotopress

Along with a small refresh of the design, I switched this blog from Wordpress to Octopress. Except for the name these two have actually very few in common. While Wordpress is a blogging system growing into a fully fledged CMS, Octopress is a static site generator.

I do still enjoy developing projects with Wordpress a lot. It’s template and theming structure is relatively simple and straightforward (other than Drupal). For most blog-alike things it is the most suitable option.

So I ditched it mostly out of curiosity to try something new. While the admin interface of Wordpress is easy to use, it bugged me to only have the posts in a database on my server. Quite some time ago I have come to love Markdown (and it’s extension MulitMarkdown). It allows me to store additional semantic information in plain text files. Yet I can edit and read these files on any available machine without any proprietary software.

Using Octopress I now create all entries locally on my Mac and write them in Markdown. Which makes them also searchable via Spotlight. It comes with a handy deployment functionality which automatically pushes everything to the server. I find this workflow quite enjoyable.

Furthermore this blog has now a new domain (justcurious.is along the previous .de-domain) and yes, I am writing in English.

Prima Leben und Stereo 2012

Man kann nie auf genug Festivals gehen. Also gings vergangenes Wochenende aufs PLUS nach Freising. Mein zweites Festival nach dem Southside im Juni. Allerdings Unterschiedlicher könnte es kaum sein: Nur eine Bühne, recht unbekannte Bands, kein Becks und "Camping" bei Freunden daheim. Nur das Wetter ist auf allen Festivals gleich riskant. Nachdem das PLUS bei meinem letzten Besuch 2010 regelrecht abgesoffen ist, hatten wir dieses Jahr mehr Glück. Leicht bewölkt, warm genug und nur ein kleiner Nieselregen ist eine gute Mischung. Der einzige Schauer kam gerade, als wir noch beim Weißwurstfrühstück im Trockenen saßen. Vielleicht werde ich auch nur alt, aber so es ist schon sehr bequem, in einem Haus schlafen zu können und dennoch in 20 Minuten aufm Festivalgelände zu sein. Da braucht man auf so manchen Zeltplatz länger (I'm looking at you, Frequency!). Es passt zur sonst schon familiären Atmosphäre. So verbrachten wir die Nachmittage eher im hinteren Bühnenbereich chillend auf der Wiese und tranken Bier der ältesten Brauerei der Welt. Musikalisch waren Fuck Art, Let's Dance! und Fiva & das Phantom-Orchester ziemlich weit vorne dabei. Aber auch die meisten lokalen Bands ausm Münchner Raum haben perfekt in diese sommerliche Stimmung gepasst.

public learning

Vier Jahre Student sein und immer noch nicht wissen, wie man am besten die ganzen Informationen organisiert. Oder aus Prokrastinationsgründen immer neue ausprobieren? Anyway. Über Stift und Papier, Evernote, Wikis, OneNote, bin ich jetzt bei GitHub gelandet. Die Idee dahinter: Warum nicht die Dinge, die ich mir für Klausuren näherbringen darf, wie Code behandeln? Lernen ist auch nichts anderes als das Wissen zu versionieren. Here you go: https://github.com/mkleucker/public/tree/master/studium (und ja, ich schreib dieses Semester nur eine Klausur)

Boilerplates und Frameworks

Es ist gerade eine tolle Zeit für Webentwickler. Überall sprießen Frameworks und Boilerplates für jedes erdenkliche Einsatzgebiet aus dem Boden. Man muss eigentlich nur noch zugreifen und sich die gewünschten Sachen zusammenklicken. Eigentlich eine schöne Sache, aber irgendwie auch doch wieder nicht.

Boilerplates

Das HTML5 Boilerplate hat den großen Anfang gemacht und bietet eine super Anlaufstelle für die Best-Practices, wenn ich eine neue Webseite beginne. Problematisch ist, dass das Standardtemplate in vielen Fällen aber einfach "blind" übernommen wird. Getreu dem Motto: "Super, da hat ja jemand schon die ganze Arbeit für mich erledigt." Statt sich mit den vorhanden Features auseinanderzusetzen, finden sich teilweise Anweisungen um das Boilerplate wieder zu überschreiben. Das ist knapp am Ziel vorbeigeschossen.

Die Entwickler hinter dem Boilerplate, allen voran Paul Irish, haben als Intention die Best Practices zu vereinen und muntern dazu auf, auch mal länger auf der Entfernen-Taste zu bleiben. Ich bevorzuge hier allerdings den anderen Weg: Die Dinge, die ich brauche rausziehen und in ein wesentlich einfacheres Boilerplate überführen (mein persönliches basiert auf dem von Harry Roberts alias csswizardry).

Twitter's Bootstrap ist ein Boilerplate für gesamte Webapps und ist dementsprechend umfangreich. Ein Blick in den Code lohnt sich auf jeden Fall, insbesondre auch was CSS und JS betrifft.

Frameworks

Frameworks werden idealerweise so eingesetzt wie sie kommen. Kein rumfuhrwerken, höchstens außenrum bauen. Einfach nur, um sich die Option offen zu halten, später auf eine neue Version es Frameworks umzugraben. Ich verwende beispielsweise jQuery als grundlegendes Framework für so ziemlich alle JavaScript-Geschichten. Würde ich anfangen direkt in jQuery Dinge zu ändern, wäre ich beim nächsten Release, das vielleicht fatale Bugs behebt, aufgeschmissen.

Zugegeben: jQuery ist da ein eher schlechtes Beispiel, weil es sehr ausgereift ist. Templating Frameworks eigenen sich besser als Beispiel (unabhängig davon, ob sie überhaupt sinnvoll sind): Es gibt ein paar große Frameworks und dutzende Micro-Frameworks, die meist nur einen kleinen Anwendungsfall abdecken. Der typische Ablauf sieht dann so aus: Man suche sich ein so kleines Framework, das ungefähr passt und baut das erstmal ein. Gerne kommen dann auf einmal Fälle, in den sich das Framework einen Ticken anders verhalten soll. Der schnellste Lösungsweg führt viele dann doch dazu, das Framework so aufzubohren, dass es den eigenen Vorstellungen entspricht. Der Vorteil der Kompatibilität ist dahin.

Viel zu selten finden (sinnvolle) Anpassungen wieder den Weg zurück in das eigentliche Framework, vor allem da bei kleineren Frameworks schnell das eigene Aufbohren fast so viel Code umfasst wie das gesamte Framework.

... aber warum nicht gleich alles selbst machen?

"Jeder gute Programmierer macht das alles selbst." – Oder so ähnlich. Es gibt einen Grund für Best Practices und ich persönlich wäre beispielsweise nie auf die Idee gekommen, welche Image Replacement Methode denn jetzt die beste sei. Bei Frameworks ist es ähnlich: Ich persönlich habe weder Lust noch Zeit, sicherzustellen, dass mein selfmade Framework auf sämtlichen Plattformen so funktioniert, wie es soll, wenn es schon zig weiterentwickelte Frameworks gibt.

mehr dazu:

Lesenswert zu diesem ganzen Thema auch Stop solving problems you don't have yet und In defense of reinventing wheels.

iOS Simulator wiederbeleben

Ich benutze den iOS Simulator seit Langem um mobile Webseiten zu debuggen. Zum einen fehlt mir ein physische iPad und zum anderen ist es recht umständlich localhost so verfügbar zu machen, dass man ihn auch über's WLAN ansurfen kann. Bisher konnte man den iOS Simulator entspannt über Spotlight finden und starten. Seit ein paar Wochen funktionierte das irgendwie nicht mehr und der Simulator war nur noch über XCode startbar. Und wer einmal XCode gestartet hat, weiß warum man die IDE nicht starten will, wenn man sie nicht unbedingt braucht. Die Ursache des Problems ist, dass der iOS Simulator in das App-Package von XCode gewandert ist, seit Apple angefangen XCode als eigenständige App auszuliefern. (Zuvor gabs über den AppStore nur den Installer.) Ins Package schaut Spotlight nicht rein. Glücklicherweise liegt der Simulator dadrin aber immer noch als einständige App. Am besten legt man sich über den Finder ein Alias an, da Symbolic Links (ln -s) von Spotlight offensichtlich nicht beachtet werden. Hier noch der vollständige Pfad : /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ Debuggen macht zwar immer noch kein Spaß, aber man hat schneller die Ergebnisse vor sich.

Coding: VPN Shortcut

Ich schreibe ja im Moment meine Bachelorarbeit. Sowas muss natürlich ordentlich versioniert werden, dementsprechend gibt es am Lehrstuhl auch die entsprechenden Git & SVN-Repositories. Von daheim aus komme ich nur über ne VPN-Verbindung ins LRZ-Netz und somit an die entsprechenden Server. Da mir das ewige Geklicke in den Einstellungen zu blöd war und ich die VPN-Anzeige auch nicht in meiner Menübar haben will, hab ich da mal ein kleines AppleScript geschrieben: Es togglt den VPN-Status und gibt über Growl Bescheid, was es grade tat. So lässt sich die VPN-Verbindung über den Spotlight oder jeden anderen App-Launcher deiner Wahl aktivieren und deaktivieren.

Den Code dazu gibt es als kompaktes gist zur Verfügung gestellt. In Zeile 2 muss lediglich der Name der VPN-Verbindung angepasst werden.

Q&A: Hacker Historian George Dyson

permalink

They were hackers. They were young men and women, mostly in their twenties. The ones in their thirties were considered old. They did all the things hackers do: working all night, living for their code, arguing over whether a problem was due to software or hardware. They kept logbooks where they left notes telling the next shift what they had done, and they filled them with dark nerd humor, the same sort of sarcastic jokes you find on email and comment threads today.
Wired hat den Technik-Historiker George Dyson interviewt. Über die Anfänge von Computern, Turing, von Neumann & Co. Extrem interessant und lesenswert.

Standing Desk Experiment

Max probiert Dinge aus – Episode drölf. Dieses Mal: Im Stehen arbeiten. Seit einigen Jahren bin ich immer wieder über Blogbeiträge gestolpert von Personen, die ihren Schreibtisch soweit umgebaut haben, dass sie im Stehen arbeiten können. Die Motivation dahinter war oft sehr unterschiedlich: Produktivität, Gesundheit und Auchmalausprobieren. Vor drei Tagen und viel zu viel Sitzen den ganzen Tag über, hab ich es dann auch mal probiert. Mehr aus reinem Interesse denn fundierten Beweggründen. Hier meine ersten Erfahrungen.

Standing Desk

Kartons, Bücher und Trinkspiele

Die kniffligste Aufgabe, war es Bildschirm und Tastatur auf ein angenehmes Level zu bringen. Richtige Stehschreibtische sind zu teuer und es ist ja auch erstmal nur ein Versuch. Also Kartons und Bücher solange gestapelt, bis die Arme locker sind und man nicht nach unten auf den Bildschirm schauen muss. Das Ergebnis hält für den Moment, dennoch baue ich es jeden Tag, wenn ich länger nicht dran arbeite, wieder ab. Sollte ich mich entscheiden, längerfristig so zu arbeiten, dann muss da aber definitiv noch eine stabilere Lösung her.

Stehvermögen

Es geht sehr in die Beine. Die ersten Tage musste ich mich alle paar Stunde mal hinsetzen und bin oft auch eine Runde durchs Zimmer gegangen oder habe mir den siebten Kaffee geholt. Eigentlich auch eine willkommene Abwechslung. Subjektiv aber hat sich meine allgemeine Körperhaltung aber verbessert. Ein schöner Nebeneffekt.

Produktivität

Wie immer, wenn man etwas neues zum Ausprobieren hat: Die ersten Stunden sind immer super. Die Ernüchterung folgt recht schnell: Man kann auch im Stehen prokrastinieren. Gefühlt arbeite ich jetzt aber mehr in längeren Blöcken. Sprich, erst A fertig machen, dann Ablenken und irgendetwas anderes machen, dann B machen. Vor allem das Verlangen, einfach mal eine Serie nebenzu anzuschauen ist ziemlich zurückgegangen. Was eher schwerlich geht, wenn man längere Texte einfach nur lesen muss. Da heißt es dann eher, Notebook abstöpseln und aufs Sofa setzen. Das kann ich sogar soweit verallgemeinern, dass ich eigentlich am Schreibtisch mittlerweile fast zu 90% wirklich arbeite. Entertainment passiert jetzt wesentlich mehr auf dem Sofa. Unschlagbarer Vorteil: Man kann neben dem Arbeiten durchs Zimmer tanzen. Ich halte euch auf dem Laufenden, wie sich das auf lange Sicht so macht.