Vagrant

Na, kennt ihr schon Vagrant? Wenn nicht, dann will ich es kurz vorstellen.

Vagrant ist im Grunde erstmal ein Commandline-Interface für Virtualbox und macht es sehr einfach neue Virtuelle Maschinen zu erstellen, konfigurieren und zu starten. Alles ist sehr eingängig, die Konfiguration lässt sich mit Ruby-Code schreiben und zum starten einer VM genügt ein einfaches vagrant up.

Wozu das ganze?

Naja. Wenn ich programmiere, dann habe ich den Code meistens in einer VM. Warum? Weil ich keine Lust habe mir mein Betriebsystem durch irgendwelche bescheuerten XAMP-Pakete (oder eigene entsprechende Installationen von Webserver, PHP, MySQL) zuzumüllen und weil ich will, dass mein Code möglichst in der Umgebung läuft, in der es auch im Produktivsystem laufen wird. Also ein Debian-Rechner.

Schon seit langem mache ich das mit Virtualbox. Was mir Vagrant hier erleichtert ist der ganze Startprozess, indem es ein paar Mausklicks durch ein einfaches Consolenkommando ersetzt. Außerdem hängt nirgens das dämliche Virtualbox-Fenster rum, da es Virtualbox ohne GUI startet. (Ja, das könnte man auch ohne Vagrant, aber nicht so komfortabel, wenn ich das recht in Erinnerung habe)

Und das ist jetzt alles?

Nein. Das Basis-System, mit der man bei Vagrant eine neue VM startet, hat bereits entsprechend Support für Configuration-Management-Systeme wie Puppet oder Chef eingebaut. Mit ein paar Zeilen in der Vagrant-Konfiguration ist es dadurch möglich in windeseile eine komplett fertig installierte und konfigurierte VM zu basteln.

Das hilft dann z.b. wenn man schnell mal lokal irgendetwas nachstellen oder ausprobieren will und dafür ein paar VMs braucht.

Voraussetzung dafür ist natürlich, dass man entsprechende Chef/Puppet-Konfigurationen hat. Aber da ich mich damit eh schon seit längerem mal beschäftigen wollte ist das hier der perfekte Anlass dafür. Eventuell berichte ich später über meine Erfolge!

Geschrieben am 27. February 2012, 2 Kommentare, 5
·

Meine zweite iPhone-App.

Keine Sorge, ich werde jetzt hier nicht allen Quatsch posten, den ich mache. Aber hier hat es ja einen direkten Bezug zu einem Projekt von mir, nämlich watched.li.

Ich hatte mir für dieses Wochenende vorgenommen etwas tiefer in die Materie einzusteigen und mich langsam an die watched.li-iPhone-App zu machen, die ich schon vor Jahrhunderten versprochen hatte.

Mein erster Plan war erstmal eine einfache TableView, welche die verfolgten Serien anzeigt, samt letzter gesehener Episode und einem Button um die ganze Sache zu inkrementieren. Login-Kram und so erstmal außen vorgelassen.

Watched.li hat zum Glück schon eine (sehr) kleine API, die ich mal machte um eine mobile Seite zu gestalten (mit jQuery Touch-Kram), die genau die beiden benötigten Funktionen bot, also musste ich schonmal keinen PHP-Code schreiben. Nur schnell den Authentifizierungskram entfernt und alles auf den User mit ID 1 umgebogen (in meiner Testumgebung, versteht sich).

Nachdem ich noch ein paar Serien schaute, Wäsche wusch und anderen Kram tat, konnte ich mich dann heute gegen 23:30 dazu aufraffen damit anzufangen. Erstmal festgestellt, dass es jetzt Automatisches Reference-Counting gibt, welches mein Buch noch nich kennt. Dankend angenommen. Dann herausgefunden, dass iOS scheinbar keine JSON-Parsing-Sachen mitbringt. Dafür scheint es aber eine recht weit verbreitete Lösung zu geben, die sich auch problemlos einbinden lies. Hier Screenshots vom Anfang und vom Ende:

Mit Hilfe des Buches und Google (ok, eher StackOverflow) gelang es mir dann meinen Plan umzusetzen. Funktioniert! Natürlich is der Code noch etwas zusammengehackt, aber naja, hey. Meine erste vernünftige App. Hier ein Video, welches ich vom Simulator drehte:

(Wer genau aufpasst erkennt noch einen Bug, den ich aber mittlerweile schon fixte — war aber auch zu faul das Video nochmal zu machen)

Wer sich jetzt fragt: “BOAH, KANN ICH DAS JETZT MORGEN IM APPSTORE RUNTERLADEN?” — Nein, so schnell geht’s dann doch nicht. Wie gesagt fehlt noch das einloggen und ein bisschen hübscher soll es auch noch werden. Und ich muss mal schauen ob das alles sinnvoll ist, so wie ich es jetzt gemacht hab, oder ob es gegen alle Best Practises der iOS-Programmierung verstößt. Wer weiß. Dauert also noch nen Moment, Freunde.

Geschrieben am 22. January 2012, 4 Kommentare, 5
·

Meine erste iPhone-App.

Ich lerne gerade Objective C und Kram, um demnächst auch ein paar supergute iPhone Apps zu bauen. Muss man ja können heutzutage, sowas.

Aktuell lese ich dazu auch dieses Buch, welches mir irgendwer auf Twitter empfahl.

Am Wochenende plane ich nun, endlich mal die watched.li-App in Angriff zu nehmen. Meine ersten Versuche waren allerdings ein paar Spielereien mit dem Accelerometer. Buuuuunt.

Geschrieben am 21. January 2012, 13 Kommentare, 4
·

Basecamp-Userscripts

Für unser Projektmanagement bei QUOTE.fm verwenden wir bereits seit geraumer Zeit Basecamp, da es eigentlich für viele unserer Anforderungen völlig ausreichend ist und sich insgesamt dann doch etwas komfortabler bedienen lässt, als ein vollwertiges Bugtracking-Tool wie Redmine.

Jedoch hat es ein paar Macken. Oder sagen wir Ecken und Kanten, die nicht so super sind. Aber dafür kann man sich ja zum Glück ein paar Userscripts schreiben, die man dann im Chrome oder im Firefox mit Greasemonkey verwenden kann.

Bisher hab ich zwei kleine Scripte erstellt, die vielleicht auch für andere Basecamp-Benutzer interessant sein könnten:

  • Basecamp ID Userscript – Zeigt links neben den Todo-Items die interne ID des Todo-List-Items an. Brauchen wir, um Todo-Items mit Subversion-Commits zu verbinden. (Github)
  • Basecamp Tabber – Das interessantere Script erstellt in der Todo-Ansicht Tabs, mit denen man Todolisten ein/ausblenden kann, je nachdem zu welcher Kategorie sie gehören. Kategorie-Einteilung funktioniert ganz einfach über einzelne [Tags] die dem Todolist-Namen vorangestellt werden. (Github)

Hier ein Screenshot, auf dem man beides in Aktion sieht:

(Bitte nicht über den Code ablästern, meine Userscripts sind immer ein bisschen schmutzig)

Eventuell ist es ja für jemanden hilfreich!

Geschrieben am 9. January 2012, 8 Kommentare, 5
·

Betreffend: watched.li

Am 30. Mai diesen Jahres stellte ich watched.li hier im Blog vor und brachte es als “alpha”-Version ans Volk. Naja, also man musste sich um einen Invite bewerben um rein zu kommen. Beides war nicht unbedingt gewollt, sondern ergab sich so.

Die Alpha-Version war es, weil es halt unter der alpha.watched.li-Subdomain lief und ich zu faul war ein beta.watched.li anzulegen — weil mir der Name im Grunde auch egal war.

Das Invite-System kam vor allem daher, dass ich möglichst wenig Stress wollte mit 10000 Leuten, die meinen sich über Bugs oder irgendwas beschweren zu müssen. Aber eigentlich wollte ich das auch garnicht so lange so lassen, sondern nur für die erste Test-Zeit.

Nunja, dann, wir wissen es alle, kam QUOTE.fm und beanspruchte die Wochenenden für sich, was ich jetzt auch nicht schlecht finde, denn das macht auch viel Spaß, aber irgendwie tut es mir natürlich auch etwas Leid für watched.li. Immerhin hat es eine recht loyale kleine Benutzergemeinde, die es regelmäßig verwenden.

Dummerweise tauchen in der letzten Zeit immermal ein paar Bugs auf, die zum größten Teil auf Fehlern in der Serien-Datenbank basieren, die ich verwende, wo ich leider nicht arg viel machen kann. Aber hier und da sind natürlich auch ein paar Bugs drin, die ich selber zu verantworten habe, wo mir bisher aber einfach die Zeit fehlte sie zu fixen.

Außerdem ist es langsam auch mal Zeit für ein neues, helleres Layout. In meiner Feedback-Umfrage, die ich vor einiger Zeit mal machte, war das der größte Kritikpunkt. Ich selber hab mir da letztens auch mal ein paar Gedanken gemacht, bin in meiner Rolle als Designer nicht ganz so super und bin daher noch zu keinem wirklich guten Ergebnis gekommen. Falls sich also jemand findet, der ne gute Idee hätte und Lust etwas beizutragen, nur zu. Schickt mir ne Mail.

Dieser Post sollte vor allem dazu dienen mal etwas zum Status von watched.li zu sagen. Es ist nicht tot. Und mal wieder werde ich ankündigen, dass ich mich in nächster Zeit drum kümmern werde, auch wenn ich noch nicht weiß, wann.

Danke für die Loyalität an die, die es regelmäßig nutzen.

Geschrieben am 30. November 2011, 10 Kommentare, 1
·

QUOTE.fm, öffentlich.

Wie es sicher viele mitbekommen haben, ist das Projekt an dem Marcel, Martin und ich jetzt seit einiger Zeit arbeiten, heute von der geschlossenen Beta in die öffentliche Phase übergegangen.

Ich hab in letzter Zeit nicht soviel darüber geschrieben, weil, äh, ich mit programmieren beschäftigt war und insgesamt nichts groß zu berichten hatte, was es nicht schon bei den anderen beiden zu lesen gegeben hätte. Da es mittlerweile aber ein recht großer Teil meines Lebens ist und ich ab nächstes Jahr ja auch Vollzeit daran arbeiten werde, dachte ich, es wär mal wieder an der Zeit dem Projekt einen Blogeintrag in meinem Tagebuch-Blog zu widmen.

Falls jemand noch nicht weiß, worum es sich bei QUOTE.fm handelt, dem sei an dieser Stelle mal der offizielle Blog ans Herz gelegt. Kurz zusammengefasst: Leseempfehlungen an Freunde, nicht über Links, sondern in Form von Zitaten aus dem Text.

Im November letzten Jahres startete es quasi, dann kam der erste Konzeptwechsel. Am 10. September dann die geschlossene Beta. Jetzt, knapp 2 Monate später richtiger Launch. Dazwischen lagen einige Wochenenden, die ich statt mit Serien gucken und Zocken mit Coden verbracht habe. Leider hat darunter auch watched.li etwas gelitten, was mir sehr leid tut, denn es hat durch aus eine kleine aber loyale Benutzergruppe. Ich werde sehen, ob sich in nächer Zeit mal kurz Zeit findet die dort auftretenden Probleme zu beseitigen. (Aber dazu zu einem späteren Zeitpunkt)

Hier ein sehr informatives Diagramm:

Man sieht, dass sich zwischen Beta-launch und heute doch noch einiges getan hat (die lange konstante Phase über war ich in nem anderen Branch, deswegen der Stillstand). Jetzt bin ich erstmal froh, dass alles scheinbar ganz gut funktioniert und es erstmal nur ein paar Kleinigkeiten zu korrigieren gibt.

Nichts desto trotz wird es natürlich weiter gehen und Marcel hat wohl noch ein paar Ideen in der Pipeline, von der es die ein oder andere Sicherlich auch dieses Jahr schon live schaffen wird. Und wenn wir dann Vollzeit dran sitzen wirds umso besser.

Im Laufe der Zeit nervt dieses entwickeln mit großem Abstand zueinander nämlich schon etwas. Wir haben zwar tolle Bugtracker, Skype, E-Mail und sonstige Kommunikationstools, aber es kommt halt schon mal vor, das man was falsch baut, weil man etwas dann doch irgendwie anders interpretiert hat. Also klar, das kann auch passieren, wenn man sich gegenübersitzt, aber da merkt man es vielleicht schneller.

Alles in allem läuft’s aber trotz der Entfernung sehr gut, finde ich. Jeder hat klar seinen Bereich und die Übergabe läuft sehr flüssig. Marcel und Martin machen wunderbares Frontend, ich bastel das Backend und am Ende funktionierts irgendwie.

Und das aus einem kleinen “Äh, klar, ich mach dir die Seite” irgendwann mal ein echter Vollzeit-Job wird, hätt ich auch nicht zwingend erwartet.

Geschrieben am 1. November 2011, 15 Kommentare, 10
·