➠ CoffeeScript

Link

CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.

Und das macht es sehr gut.

Zur Zeit schreibe ich sehr viel JavaScript. Und es gefällt mir immer besser. Die Syntax war mir zwar schon lange ein Dorn im Auge, ich konnte mich aber irgendwie damit arrangieren, vor allem mit jQuery. Aber mit CoffeeScript ist es einfach wundervoll.

Jedem der regelmäßig mit JavaScript arbeitet, sei CoffeeScript ans Herz gelegt. Hier ein paar Anlaufstellen zum Einstieg:

  • Meet CoffeeScript: ein wirklich sehr guter Screencast im gewohnt guten PeepCode-Stil, der zusätzlich auch noch BDD mit Jasmine behandelt. Kostet allerdings 12$, ist es aber wirklich Wert, wenn man einen wirklich schnellen, praktischen und gut erklärten Einstieg haben möchte.
  • coffeescript.org: Die CoffeeScript-Seite selbst gibt bereits einen sehr guten Überblick und Einstieg.
  • The Little Book on CoffeeScript: ein ausführlicheres, kleines online Buch.
  • coffeescriptcookbook.com: Eine relativ große, offene Rezeptsammlung. Es empfiehlt sich wirklich dort zu stöbern.
Allerdings sollte man stets eine gesunde Portion JavaScript- oder mindestens andere Sprach-Kenntnisse mitbringen.

➠ Jasmine: BDD for your JavaScript

Link

Jasmine is a behavior-driven development framework for testing your JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.

Jasmine sieht echt gut aus. Da ich gerade an einem jQuery-Plugin schreibe, das prädestiniert dafür ist BDD anzuwenden, ich BDD ohnehin schon längst lernen wollte und es zudem an RSpec angelehnt ist, werde ich die Gelegenheit nutzen, und Jasmine ausprobieren.

Terminal Tipps #1: Dateien suchen und löschen

Viele scheuen das Terminal, weil sie nicht wissen, wie man damit umgeht, Angst haben was kaputt zu machen oder warum auch immer. Dabei ist man doch trotz aller Entwicklungen mit dem Terminal sehr oft schneller und besser unterwegs.

Allerdings trifft das natürlich nur zu, wenn man bereit ist, sich mit dem Terminal, oder besser gesagt der Bash (Z-Shell in meinem Fall), auseinander zu setzen – mit cd, rm alleine erhält man keinen großen Geschwindigkeitsbonus oder Vorteil gegenüber zB. dem Finder.

In kleinen Posts, werde ich deswegen hin und wieder solche kleinen praktischen Tipps für den (meist) alltäglichen Gebrauch vorstellen und sie dann näher erläutern. Dabei gehe ich allerdings erstmal davon aus, dass die wirklichen Grundlagen bekannt sind. Eine Einführung in die Grundlagen ist in Arbeit.

Ich rate ausserdem zu einem häufigen Gebrauch von `man` oÄ, um mehr über die einzelnen Tools/Programme zu erfahren:

man find
man xargs

Fragen oder Ergänzungen dann einfach in die Kommentare oder direkt an mich.

Terminal Tipp #1: Dateien suchen und löschen

Einen Ordner rekursiv nach Dateien durchsuchen um diese dann zum Beispiel zu löschen geht mit dem Terminal eigentlich ganz einfach:

find . -name .DS_Store | xargs rm 

mit find werden ausgehend vom angegeben Ordner ., also das aktuelle Verzeichnis in diesem Fall, alle Pfade zu Dateien mit dem Namen .DS_Store angezeigt. Diese Liste wird über die Pipe | an xargs übergeben – ein Tool, das aus einer Liste eine Argumentenliste erzeugt, um diese dann an ein weiteres Tool übergeben zu können. In diesem fall ist es rm.

Bye bye VPS!

nilsriedemann@nils-riedemanns-macbook [130] % ping 87.230.21.24
PING 87.230.21.24 (87.230.21.24): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
^C
--- 87.230.21.24 ping statistics ---
7 packets transmitted, 0 packets received, 100.0% packet loss

Nach nun fast 3 Jahren. Eigentlich habe ich meinen VPS nie richtig gebraucht, ein paar Domains und E-Mail-Konten liefen drauf, aber sonst eigentlich nichts. Gewartet habe ich ihn auch nicht. Keine Sicherheitsupdates oder dergleichen. Möglich, dass er gehackt und zerstückelt wurde. Naja.

Als ich ein überzeugter ubernaut wurde, war mir recht schnell klar, dass ich den oder irgendeinen eigenen VPS so schnell nicht wieder brauchen werde. Ich bestellte ihn also kurze Zeit darauf ab – bedingt durch die sich automatisch erneuernde Mindestvertragslaufzeit von einem Jahr, war es jetzt erst soweit.

Tschüss!

SQL-Tabellen mit Prefix auflisten

Mit mysql alle Tabellen mit einen einem bestimmten Prefix auflisten, um dann zB alle Tabellen damit zu löschen? Geht hiermit:

SELECT GROUP_CONCAT(table_name) 
AS tables
FROM information_schema.tables
WHERE table_name LIKE 'wp_%';

Das würde mir auf meinem Server folgendes zurückgeben:

+------------------------------------------------------------------------------------------------------------------------------------------+
| tables                                                                                                                                   |
+------------------------------------------------------------------------------------------------------------------------------------------+
| wp_commentmeta,wp_comments,wp_links,wp_options,wp_postmeta,wp_posts,wp_term_relationships,wp_term_taxonomy,wp_terms,wp_usermeta,wp_users |
+------------------------------------------------------------------------------------------------------------------------------------------+

Die SQL-Abfrage ist eigentlich ziemlich selbsterklärend und im Nachhinein auch recht naheliegend. Zuvor wechselte ich dafür zu PhpMyAdmin oÄ. und klickte dort umständlich alle Häkchen an. Nie wieder, YAY!

via StackOverflow.

➠ Designers vs Coding

Link

Good design and good markup provide structure to content. Good markup is a fundamental part of good design: beautiful on the inside, beautiful on the outside. HTML and CSS give another venue to provide structure to content in the native language of the web, and learning these guides decisions by surfacing the affordances of the medium. Design decisions are affected by both the content and the format, like how a sculptor would make different decisions if she were working with clay rather than marble.

Warum Designer für Internet-Dinge HTML und CSS können sollten.

➠ Learn Vim Progressively

Link

Want to learn vim (the best text editor known to human kind) the fastest way possible. I suggest you a way. Start by learning the minimal to survive, then integrate slowly all tricks.

Vermutlich die angenehmere Art sich der zugegeben eher unangenehmen Lernkurve des besten Text-Editors überhaupt zu stellen. Wie gut das wirklich funktioniert, kann ich leider nicht beurteilen, aber vielleicht gibt das ja jemanden einen Anreiz es doch mal mit Vim zu probieren. Es lohnt sich!

Meine Web-Entwicklungs-Werkzeuge 2009

Manuela fragt in ihrem Blog gerade nach den Werkzeugen zur Web-Entwicklung ihrer Leser. Ich nutze die Gelegenheit mal, um mal wieder etwas Schwung in mein Blog zu bekommen.

Design/Bildbearbeitung

Für Design und Bildbearbeitung verwende ich ganz klassisch Illustrator, InDesign und Photoshop.

Coding

Zum Code-Schreiben, sei es HTML, PHP, Ruby oder dergleichen verwendete ich noch bis vor kurzem ausschliesslich Textmate. Aber seit kurzem greife ich wieder vermehrt auf VIM zu. Wenn man sich einmal richtig an VIM gewöhnt und an die eigenen Bedürfnisse konfiguriert, sowie die richtigen Erweiterungen installiert hat, kann es einfach kaum ein Text-Editor mit ihm aufnehmen. Unter Mac empfehle ich MacVim, das eine kleine GUI bietet und ein paar Dinge erleichtert (cmd+s = speichern, gewohntes Maus-Verhalten usw).

Ich empfehle jedem Web-Entwickler zumindest einmal den `vimtutor` gemacht zu haben. Danach kann man einigermaßen mit VIM umgehen und kann so auch problemlos Dateien im Terminal bearbeiten, da VIM praktisch auf jedem UNIX-System vorinstalliert und sowieso für jede Plattform verfügbar ist.

Geht es allerdings um CSS, verwende ich CSS-Edit. Die Live-Vorschau, der Inspector, das Overriding, Meilensteine und vieles mehr, machen es für mich zum besten CSS-Editor wo gibt.

Browsing/Debugging

Zum normalem Browsen und Debuggen benutze ich Safari. Dessen Web-Inspector ist für die meisten Angelegenheiten mehr als ausreichend und ich brauch mein mit Plugins überladenenen Firefox nich zu starten. Wird es allerdings komplexer (zB bei AJAX) greife ich, wie die meisten vermutlich, auf Firefox + Firebug zurück. Nerviges IE-Debugging mache ich über Parallels.

Projekt-Planung

Bei einigen Projekten arbeite ich derzeit mit Basecamp von 37-Signals. Das erleichtert die Zusammenarbeit und das Projektmanagement ungemein, wenn man mit mehreren Leuten zusammen arbeitet. Mock-ups erstelle ich mit Hilfe von Balsamiq. Das macht nicht nur Spaß und geht saufix, sondern sieht gerade noch gut genug um niemanden abzuschrecken, aber Skizzenhaft genug um den Planungscharakter zu betonen. Häufig kommt aber auch die analoge Variante mit Stift und Papier zum Einsatz. Zum Verfassen von Angeboten oder Projektbeschreibungen kommt Pages zum Einsatz.

GTD

Für GTD verwende ich The Hit List, was dem letzten MacHeist-Bundle beilag. Das ist zwar nicht ganz so hübsch wie das gehypte Things, aber es bietet ein paar Features mehr und entspricht in der Anwendung eher meinen Bedürfnissen. Dazu gehört zB die Möglichkeit der Zeiterfassung und das Angeben von Tags und Kontexten. Auch das Quick-Entry-Fenster gefällt mir besser.

FTP

Den ganzen FTP-Krams mache ich mit Transmit. Für mich einfach das beste FTP-Programm auf dem Markt. Hat alles was man gebrauchen kann und besonders DockSend ist mehr als praktisch. Dazu habe ich sogar mal einen Screencast angefangen… müsst ich mal fertig machen.

SCM

Für SCM benutze ich im Moment ausschliesslich git. Es gibt zwar noch kein hübsches Programm wie Versions für Subversion. Aber da ich entweder das Terminal eh gerade offen habe oder mich in VIM befinde, ist das für mich nicht weiter tragisch.

MySQL

Für MySQL-Aufgaben verwende ich wenn möglich Sequel Pro. Aber auch `mysql` im Terminal kommt gelegentlich zum Einsatz.

Sonstiges

Andere Programme/Dienste die häufig Verwendung finden und mir die Web-Entwicklung erleichtern: Terminal, iCal, Dropbox

Linksammlung I: HTML5

Ich habe die ganze HTML5 Entwicklung leider etwas verschlafen. Um das nachzuholen habe ich ein paar Links zusammengetragen, die ich zwar ehrlich gesagt noch nicht alle komplett gelesen habe, aber zumindest auf den ersten Blick brauchbar aussahen.

Sollte einer meiner zahlreichen Leser noch weitere brauchbare Links haben, werde ich die Liste gerne ergänzen.