Neue Codesuchmaschine von Etsy: Hound

Seit dem 27. Januar 2015 gibt es eine neue Codesuchmaschine: Hound von Etsy. Das Tool durchsucht Code aus verschiedenen Repositories und stellt eine Weboberfläche für die Suche zur Verfügung.

Die erste Version unterstütze nur Git. Mittlerweile ist auch Mercurial dazu gekommen. Ich selbst habe an der Unterstützung für Subversion gearbeitet.

Das Tool ist in Golang geschrieben und meine Kenntnisse in der Sprache sind doch begrenzt und schon etwas älter. Deshalb bin ich gespannt, welche Kommentare ich noch zu dem Pull Request bekommen werde. Ich hoffe, ich habe nicht zu viele Schnitzer drin und der Code wird wirklich in das Repository gemerged. 🙂

Zurück bei Jekyll

Nachdem ich in den letzten Wochen die Blogsoftware Ghost genutzt habe, bin ich heute morgen wieder zurück zu Jekyll gewechselt. Dazu haben mich vor allem die fehlenden Features von Ghost bewogen, vor allem die folgenden Dinge haben mich gestört:

  • Keine Suchmöglichkeit in der Admin-Oberfläche
  • Viele Änderungen an den Themes, so dass mit jedem Ghost-Update Anpassungen am Theme notwendig waren
  • Admin-Oberfläche ist auf Mobilgeräten nur schwer zu bedienen

Als langjähriger Linux-Nutzer sind mir Kommandozeilentools am liebsten und Jekyll hat auch durch die Unterstützung bei Github viel gewonnen. Github hat in den letzten Monaten mehrere Änderungen ausgerollt, um das Editieren im Browser zu erleichtern. Früher konnte man z.B. keine neuen Dateien in einem Repository anlegen, was neue Blogeinträge effektiv verhindert hat, wenn man gerade keinen eigenen Rechner zur Verfügung hatte. Mittlerweile ist das alles möglich und die Oberfläche von Github ist mir so geläufig, dass ich damit sogar besser klar komme, als mit der Admin-Oberfläche von Ghost. Dazu kommt noch, dass die Suchmöglichkeiten bei Github sehr viel besser sind.

Die Liste der Import-Tools enthält einen Importer für Ghost names jekyll_ghost_importer. Leider kam das Tool bei mir nicht mit einem JSON-File der Ghost-Version 0.5.8 zurecht. Vielleicht antwortet mir der Autor noch auf meine Frage, ob das Tool noch angepasst wird.

In der Zwischenzeit habe ich mir selbst ein kleines Python-Skript erstellt, dass aus dem Ghost-JSON entsprechende Drafts und Posts für Jekyll erstellt. Das Skript ist unter https://github.com/MoriTanosuke/Ghost-to-Jekyll verfügbar.

Anschliessend blieb noch die Übernahme des Themes. Das hat zwar etwas gedauert und ich könnte wetten, dass jemand mit guten CSS-Kentnissen die Hände über dem Kopf zusammenschlagen wird, aber ich habe bei meinen ersten Tests keine großen Unterschiede bemerkt.

Wenn ihr also diesen Eintrag lest, dann wascht ihr bereits eure Hände in Jekyll und dem migrierten Casper-Theme. 🙂 Ansehen könnt ihr euch das ganze wie zuvor im Quelltext in meinem Blog-Repository.

1800 Minecraft-Accountdaten veröffentlicht

Heise meldet, dass die Account-Daten von ca. 1800 Minecraft-Accounts veröffentlicht wurden. Ich habe meine Passwort auch mal wieder geändert, aber ich denke, solange man nicht auf sonderbaren Servern unterwegs ist oder seinen Minecraft-Account für zwielichtige Logins auf irgendwelchen Seiten benutzt hat, braucht man nicht in Panik zu geraten.

Ach ja, und wer jetzt seine Account-Daten auf “Prüfe hier, ob Du gehackt wurdest”-Seiten eingibt, der sollte zwangsweise 3 Monate Minecraft-Verbot bekommen. 🙁

Building a Google AppEngine webapp with Python

Today I wanted to add ReCAPTCHA to one of my web applications built with NodeJS. A quick look on my heroku dashboard showed that the application wasn’t even running anymore, and a quick search through the logs showed that I was running into a quota of the connected Redis to go instance. Before doing any real work I’d have to upgrade the underlying stack, and searching for recaptcha clients for NodeJS did not bring up anything useful for me.

So, I decided to completely switch technology and rebuild the application using Google AppEngine and Python. 🙂

I closely followed the python tutorial for the first steps, creating a simple application that could store and display a single Entity of type Highlight. I then proceeded to add jinja2 templates. All of this is pretty straight forward and the application was up and running after two hours.

But then I stumbled upon a strange error: When I tried to read Entities by key from the Datastore, I couldn’t get the stored Entities back. After researching, I finally found the correct documentation and this code finally let me retrieve stored Highlight entities from the Datastore:

# get key via URL parameter 'safeKey'
# generated via myEntity.key.urlsafe()
k = ndb.Key(urlsafe = safeKey)
highlight = k.get()

Previously I used something like this:

safeKey = myEntity.key.id()
...
Highlight.get_by_id(safeKey)

This did not return any result, although I could verify via the appengine dashboard that there really was an Entity in the Datastore with the given ID.

Anyways, you can now store syntax highlighted code at http://perfect-embassy-830.appspot.com/

Kategorien
Sport

Crossfit 2015 Open

Es ist soweit: Die Registrierung für die 2015 Open ist gestartet. Ich bin bereits registriert. Wer von euch macht noch mit?

Edit Ach so, ich tracke meine Workouts jetzt auch bei Beyond The Whiteboard.

Kategorien
Sport

Neues Squat Rack

Heute kam wieder ein kleines Paket von Bad Company an. Ich habe mir ein neues Squat Rack bestellt, damit ich auch zuhause die schweren Kniebeugen machen kann.

Neues Squat Rack

Vorher habe ich die Squats mit einem Power Clean und einem Jerk begonnen, damit ich die Hantelstange vom Boden über meinen Kopf auf die Schultern bekommen habe. Das klappt aber nur bis rund 85kg, und dann auch nur in den ersten Sätzen ungefährlich. Jetzt kann ich auch die aktuell im Kraftplan vorgesehenen 6 Sätze mit 96kg machen. 🙂 Ausserdem steht einem 1RM Versuch ausserhalb der Box nichts mehr entgegen.

Firefox unter Linux mit HiDPI Display nutzen

Wenn ihr euch auch über die kaputte UI von Firefox unter Linux bei der Nutzung eines Display mit hohen DPI-Werten ärgert, hilft euch evtl. die folgenden Einstellung.

  1. Gebt in der Adressezeile des Firefox about:config ein.
  2. Sucht nach layout.css.devPixelsPerPx.
  3. Setzt den Wert auf mind. 1.5.

Anschliessend werden auch die Tabs und die Menüs anständig dargestellt. 🙂

Neues Notebook: Dell XPS 15

Ich habe seit ein paar Tagen wieder ein Notebook: ein Dell XPS 15. Nach mehreren Wochen Suche und einer frühen Festlegung auf ein ASUS Zenbook UX303LN, habe ich mich dann doch noch umentschlossen. Anscheinend ist ASUS nicht in der Lage, ein Erscheinungsdatum für das Zenbook zu geben und ich hatte auch keine Lust mehr, noch länger zu warten. Das Dell XPS ist aber eine gute Alternative. Zwar ist das Gerät etwas teurer, kommt dafür aber mit einem größeren Prozessor, mehr Arbeitsspeicher und einem Versanddatum. Das Display ist etwas größer, aber mehr Display war noch nie schecht. Das Gewicht bleibt mit rund 2kg auch erträglich.

IMG_20141229_135855IMG_20141229_140400IMG_20141229_140540

Mittlerweile habe ich auch die eingebaute mSATA SSD mit 32GB durch eine Samsung 840evo mit 250GB ersetzt und ein Linux installiert. Ich habe mich wieder für Xubuntu entschieden, weil das System für mich den größten “just works” Faktor hat. Den XFCE-Desktop habe ich aber nach ein paar Tagen durch Ubuntus Standard-Fenstermanager Unity ersetzt, da dort die Unterstützung für HiDPI Displays sehr viel besser ist. Die Unterstützung bei den Anwendungen ist leider sehr durchwachsen, z.B. ist die Oberfläche von Google Chrome kaum zu gebrauchen und ich bin deshalb erstmal wieder auf Firefox umgestiegen… 🙁

Über die Akkulaufzeit kann ich im Moment noch nicht viel sagen, aber ich schätze, sie wird im Vergleich zu einem Ultrabook geringer ausfallen. Da ich den Laptop aber hauptsächlich in der Nähe von Steckdosen einsetzen werde, macht das keinen großen Unterschied.

Noch ein paar Worte zu Windows 8: WTF? Die UI der Metro-Anwendungen gefällt mir ja ganz gut, aber das Bedienkonzept ist ja wohl unterirdisch. Die meisten Anwendungen gehen auf dem Desktop auf, der Windows-Knopf bringt den Startbildschirm statt des Startmenüs, der Stardbildschirm ist eindeutig für Touch ausgelegt, der Desktop ist ohne Maus kaum bedienbar… das ist alles ganz schrecklich. Und dann legt Dell nicht mal Installationsmedien dazu, sondern nur eine Rescue-Partition. Und es gibt keinen Produktkey mehr, der ist jetzt im BIOS. Und der Produktkey für OEM-Installation ist kein “normaler” Windows-Produktkey, mit dem man sich selbst Installationsmedien herunterladen und brennen könnte… WTF?! Und dazu noch Secure Boot.

Alles in allem ganz übel und ich war schon kurz davor, einfach wieder Windows 7 zu installieren. Aber wie das mit dem HiDPI-Display zurecht kommt, will ich mir gar nicht erst vorstellen…