Ich wollte ja schon immer mal hip sein und irgendetwas machen, was auf Heroku läuft. Wie man das so macht als hipper Ruby-Programmierer.

Gestern Abend hörte ich die beiden letzten Folgen Konferenz 28 und weil die beiden ständig erwähnen, dass man ihnen die persönliche Lieblingsfolge mitteilen soll, kam ich auf die Idee eine kleine Seite dafür zu machen.

Also schnell was mit Sinatra und DataMapper zusammengeschustert. Dank entsprechendem Sinatra-Twitter-Auth-Gem ging sogar die Twitter-Authentifizerung recht schmerzfrei. Noch schnell ein bisschen “designt” und fertig. Naja, dann noch Gemfile, Procfile, config.ru und was man alles so für Heroku braucht und fertig war die kleine App: lieblingsfolge.herokuapp.com

Screen Shot 2013-02-12 at 00.49.02

Das ist alles kein Hexenwerk, und auch nicht besonders schön gemacht, aber es fühlt sich gut an mal wieder ein bisschen gelernt zu haben.

Wenn jemand das Design optimieren oder die Code-Einrückung (Hab für Sublime noch kein Fix Indentation Plugin gefunden) fixen will: Der Kram liegt bei Github.

10      12. February 2013

Hallo liebe Blogleser!

Na, habt ihr auch tolle Vorurteile Vorsätze für 2013? Ich ging ohne Vorsätze in das neue Jahr und legte mir statt dessen in Wunderlist eine Liste mit dem Titel “Die große 2013-Liste” an. Also ja, man könnte es auch Vorsätze nennen, aber ich mache das nicht!

Meine Liste enthält aktuell acht Dinge, die ich 2013 gerne machen oder erreichen würde. Allerdings sind es nicht Dinge wie “Weniger essen”, “Mehr laufen” oder “Keine bösen Dinge tun”, das bringt mir irgendwie nichts. Ich habe versucht jede der Sachen genau zu… quantifizieren. Wenn ich sage “In diesem Jahr will ich 20 Häuser bauen” dann kann ich das zwischendurch besser überblicken und am Ende des Jahres besser… bewerten, als wenn ich nur sage “In diesem Jahr will ich mehr Häuser bauen!”.

In den nächsten Monat werde ich nun meine Punkte hier vorstellen und versuchen meinen Fortschritt festzuhalten. Ich könnte die Liste zwar auch einfach so bloggen, aber auf so erzeuge ich hier eine besucherbindende Spannungskurve. Wer will denn nicht alle acht Punkte auf meiner Liste erfahren!

Punkt 1 auf meiner Liste lautet “Irgendwas mit Japanisch”. Na, fällt euch was auf? Jap. Nachdem ich eben stundenlang davon erzählte, dass ich alles quantifiziert habe ist das nicht besonders… spezifisch. Ich habe lang darüber nachgedacht, aber mir fiel einfach kein sinnvolles Ziel ein. Alle 2000 Jōyō-Kanji lernen ist wohl etwas viel. Grammatik und Vokabelkenntnisse lassen sich nicht wirklich in einer Zahl ausdrücken. Ich habe mich also damit abgefunden und freue mich, dass es das einzige unspezifische auf meiner Liste ist.

Was ist mein Ziel dabei? Ich will mich wieder mehr damit beschäftigen Japanisch zu lernen. Ich machte ja, äh, 2011 oder so mal zwei Semester lang einen Japanischkurs in Konstanz. Das Gelernte hat sich aufgrund der Geschwindigkeit leider in Grenzen gehalten, aber es war immer ganz spaßig. Im letzten Jahr habe ich leider komplett den Anschluss verloren und so gut wie nichts getan.

Daran will ich jetzt was ändern. Wieder Kana lernen, endlich vernünftig mit Kanji anfangen und Grammatik und Vokabeln lernen.

Mein aktueller Status? Ich lerne gerade mit WaniKani vor allem Kanji und Vokabeln. Die Seite ist ziemlich hübsch und funktioniert bisher ganz gut, ist aber letztendlich auch nur ein Spaced Repetition System (SRS), ließe sich also auch mit Software wie Anki realisieren. Aber da die Leute die das machen bereits eine andere Japanisch-Lern-Seite (Textfugu.com) haben, wissen sie wohl auch ganz gut was sie tun und die Merksätze für die Kanji/Vokabeln sind alle recht hilfreich.

Dank der API kann ich meinen aktuellen Lern-Status sogar hier im Blog einbinden, wozu ich eine eigene Unterseite einrichtete.

Soviel zu Punkt eins auf meiner Liste. Wenn ihr wissen wollt, welche großartigen Sachen ich in 2013 noch vorhabe solltet ihr diesen Blog weiter verfolgen!

7      11. February 2013

In letzter Zeit schaue ich häufiger mal in Marcels Photoshop-Dateien. Am Anfang war das alles furchtbar nervig und schlimm (vor allem als ich versuchte die 2GB-PSDs mit Pixelmator zu öffnen), mittlerweile fand ich, dank Marcel und eigenem Rumprobieren, ein paar Tastatur-Shortcuts, die mir die Arbeit erleichtern.

Wahrscheinlich wird das meiste für alle klar sein, aber ich dokumentier hier ja auch gerne meinen Lernprozess.

  • Wenn man Alt gedrückt hat kann man mit dem Mausrad scrollen und dadurch zoomen, ohne das Lupen-Tool auszuwählen. O_____O
  • Hat man sich dann total verzoomt, kommt man mit Alt + Cmd + 0 wieder zurück zur 100%-Ansicht.
  • Will man irgendeine Box, die in irgendwo in der Ebenenhierarchie versteckt ist, auswählen muss man nur Alt + Cmd gedrückt halten und dann mit der rechten Maustaste auf das entsprechende Objekt klicken. Nun ist es in der Ebeneneliste ausgewählt, yeah!
  • Hat man ein Objekt ausgewählt und drückt Cmd + T (Transformationstool) dann wird im Informationspanel die aktuelle Größe angezeigt! Kein manuelles ausmessen mit dem Selektierdingsbums!

Okay, vielleicht hattet ihr mehr als vier Tipps erwartet. Ich dachte vor dem Schreiben auch, dass es mehr wird. Aber allein diese paar Sachen helfen schon ungemein. Vielleicht habt ihr ja selber noch hilfreiche Shortcuts für die Navigation in riesigen Datein? Dann her damit!

12      2. February 2013

Schlag auf Schlag geht es weiter. Nachdem wir feststellten, dass uns Ace of Spades keinen Spaß macht spielten wir eine Runde Awesomenauts:

Liken, Subscriben, Spiele vorschlagen, Freunde!

3      22. January 2013

Willkommen bei archiv.knuspermagier.de dem Webentwickler-Blog für echte Probleme.

Seit einiger Zeit frage ich mich, immer wenn ich irgendwo, sei es bei QUOTE.fm oder watched.li, Javascript einsetze, was denn wohl der Best Practise ist, was das Einbinden von Javascript auf Seiten angeht.

Beispiel: Seite A benutzt einen abgefahrenen jQuery-Slider-Effekt, der mit $('.images').superSlider({tausend parameter}); initialisiert werden muss. Auf Seite B gibt es ein paar Buttons, denen ich mit $('.buttons').live('click', function(){}); irgendwelche Events zuordne.

Die Möglichkeiten

  1. Ich habe eine große scripts.js, die auf jeder Seite eingebunden wird und sowohl den Initialisierungscode für den Slider enthält als auch die ganzen Click-Events für quasi alle Elemente der ganzen Seite, die sowas brauchen. Die Datei hat am Ende 5000 Zeilen und 2000 jQuery-Selectoren.
  2. Ich habe eine welcomepage.js mit dem Slider-Kram, eine buttons.js mit den Click-Events für die Buttons, und je nach Seite binde ich die entsprechende JS-Datei ein.
  3. Ich inline den Kram, den ich jeweils brauche, im HTML mit <script>-Tags.

(Bestandteil dieser Frage ist nicht, wie ich die scripts.js vielleicht aufteile um besser entwickeln zu können und sie dann am Ende zusammenfasse und minimiere oder dass ich dafür sorge, dass alle Inline-<script>-Tags erst am Ende der Seite ausgegeben werden.)

Meine Bedenken

  1. Die Datei enthält superviele Selektoren, die auf jeder Seite abgearbeitet werden. Dem könnte man vielleicht entgegenwirken, wenn man den einzelnen Seiten im <body> eine entsprechende Klasse gibt und in der scripts.js dann schaut, ob die Klassen gesetzt sind und dann entsprechend die Sachen ausführt. Aber ist das… sauber? Außerdem wird’s dann wieder komplizierter, wenn man Overlays/Kram hat der per Ajax-nachgeladen wird.
  2. Viele kleine Javascript-Dateien, die schlecht zusammengefasst werden können, was zu vielen Requests führt
  3. Viel Javascript-Kram im HTML, was schlecht gecached werden kann. Dafür ist der Code direkt da, wo er hingehört. Sachen, die man öfters braucht kommen natürlich auch in eine extra scripts.js, sodass man sich die auch nicht einspart.

Was ist nun die beste Lösung? Ich finde eigentlich die Dritte ganz schön, aber irgendwie ist Inline-Javascript ja immer etwas verpönt. Vielleicht gibt es auch noch eine Lösung, auf die ich nur nicht komme. Was sagen die echten Webentwickler dazu?

13      21. January 2013

IMG_8805

9      20. January 2013
Impressum / Datenschutz