Ephigenia

I’m a web application developer & CxO at foobugs from Berlin, Germany blogging about my work and my private life.

Februar 11, 2014 at 4:56pm

1 Anmerkung

Praktische Sublime-Text-Plugins #2

Nachdem im ersten Beitrag eine Reihe von hilfreichen Sublime-Text-Plugins vorgestellt wurden, folgt nun die Fortsetzung mit ein paar netten Helferlein für Fortgeschrittene.

SublimeCodeIntel

Dieses Plugin erweitert Sublime Text um eine Funktion, die zum Standard von großen IDEs wie Eclipse oder PHPStorm gehört: die Autocomplete-Funktion über Dateigrenzen hinaus. Einmal installiert erhält man Klassennamen, Funktionssnamen, ja sogar Namespace-Vorschläge für das aktuelle Projekt.

SublimeLinter

Wenn es um die Validierung von verschiedenen Dateiformaten geht, ist der Sublime Linter genau das richtige Plugin. Er validiert schon während der Eingabe die Syntax und markiert fehlerhafte Zeilen mit einem (je nach Theme und Einstellung) farbigem Symbol.

Wichtig zu wissen: Für jede Syntax muss ein eigenes Plugin installiert werden. Will man beispielsweise Javascript-Dateien validieren, benötigt man zusätzlich noch das SublimeLinter-jshint Plugin.

GitGutter

Dieses Plugin führt während der Bearbeitung von Dateien ein git diff auf der Datei aus und markiert alle hinzugefügten, gelöschten und editierten Zeilen so, dass man recht schnell sieht, wie viel in einer Datei schon geändert wurde.

PHP Coverage

Die Einrichtung vom PHP Coverage-Plugin ist etwas komplizierter, da das Plugin eine clover.xml-Datei benötigt, die mit PHPUnit und XDebug erzeugt wird. Hat man diese aber erfolgreich eingerichtet, ist das Nachziehen von Unit-Tests für nicht abgedeckte Funktionen ein Kinderspiel. Alle Zeilen, die nicht abgedeckt sind, werden in der Seitenleiste der Datei farbig markiert:

Wer die Unit-Tests in einer virtuellen Umgebung ausführt muss allerdings darauf achten, dass die Pfade in der XML-Datei nachträglich geändert werden müssen. Das ist aber mit sed schnell erledigt:

vendor/bin/phpunit --coverage-clover build/logs/clover.xml
sed -i "s/vagrant/<new-path>/g" build/logs/coverage.xml

Color Picker

Zum Abschluss noch ein kleines Helferlein. Mit dem Color-Picker kann man quasi auf Zuruf (Apfel+Shift+C) die Farbauswahl anzeigen lassen und sich eine Farbe aussuchen, die dann als Hex-Code eingefügt wird.

Wer auf der Suche nach weiteren interessanten und hilfreichen Plugins ist, sollte unbedingt die neue Package-Control-Seite checken, auf der gerade beliebte Plugins gelistet werden.vvvkom

April 3, 2013 at 1:55pm

4 Anmerkungen
Von foobugs gerebloggt

Von einem, der auszog, das Kochen zu lernen - PHP 5.4/5.5 mit Vagrant und Chef ­virtualisieren

foobugs:

Instagram Bild vom PHP Magazin Artikel Vagrant Chef Bei foobugs führen wir seit mindestens einem Jahr unsere Projekte in einer virtualisierten Umgebung durch. Durch die starke Ähnlichkeit zur Umgebung, unter der die Applikation letztendlich beim Kunden laufen wird, ergeben sich zahlreiche Vorteile. So kann man Fehler in einer Live-Umgebung frühzeitig erkennen, das Deployment verbessern und testen, sowie Performance-Tests ausführen, ohne großen Aufwand zu betreiben. Dazu kommt, dass jeder Entwickler die selbe Umgebung hat, in der er testet.

In der Vergangenheit konnte man dies nur erreichen, indem man zuvor erstellte Live-Umgebungen als Image an seine Mitarbeiter oder Freelancer verteilt hat. Dies führte aber auch dazu, dass man bei einem Software-Update (zum Beispiel einer Aktualisierung des Apache in der Virtuellen Box) auch das komplette Image austauschen musste.

Genau in diese Lücke ist Vagrant gesprungen und erleichtert es, die gesamte Entwicklungsumgebung in einem Repository zu speichern und somit auch eine History über geänderte Software-Komponenten zu führen.

Read More

März 22, 2013 at 11:51am

2 Anmerkungen

Praktische Sublime Text Plugins

Wenn es um den perfekten Editor geht, scheiden sich die Geister. Doch eigentlich ist das Nebensache, so lange jeder einen Editor gefunden hat, mit dem er möglichst effektiv und elegant arbeiten kann.

Seit ca. einem Jahr ist Sublime Text der Editor meiner Wahl. In einem ersten kleinen Artikel will ich nun ein paar Plugins vorstellen, die ich sehr nützlich finde.

Leider sind viele Plugins nach der Umstellung auf Python 3 nicht mehr mit Sublime Text 3 kompatibel. Da der Quellcode vieler Plugins aber auf GitHub zu finden ist, kann man helfen, das zu ändern!

Package Manager

Das erste Plugin, das jeder Sublime-Text-User benötigt. Damit kann man im Editor schnell und einfach Plugins installieren, aktualisieren und auch wieder rausschmeißen.

Case Conversion

Dieses Plugin kann die Groß- und Kleinschreibung der markierten Zeichenkette quasi auf „Knopfdruck“ ändern. So wird aus CamelCase ganz schnell snake_case.

ChangeQuotes

In Textmate war diese Funktion schon dabei. In Sublime Text muss man sich dieses Plugin installieren, um aus einfachen Anführungsstrichen ' doppelte " zu machen – und umgekehrt.

Clipboard History

In den meisten Fällen ist ein einziger Eintrag in der Zwischenablage mehr als genug. Mit der Zeilen-verschiebe-Funktion (CMD+CTRL+UP, CMD+CTRL+DOWN) oder Duplikation (CMD+SHIFT+D) kommt man aber auch gut ohne Zwischenablage aus. Wenn das mal nicht ausreicht, hilft die Clipboard-History, die über CTRL+ALT+CMD alle zuletzt kopierten Einträge anzeigt.

GenerateUUID

Generiert quasi auf Zuruf UUIDs. Einfach uuid eingeben, TAB drücken und schon hat man eine neue UUID.

DocBlockr

Das Plugin reagiert auf die verschiedenen Formate dokumentierender Kommentare (/**) und fügt – wenn die Funktion oder Methode schon geschrieben wurde – automatisch die Annotations für Parameter und Return-Werte hinzu. Beim Ausfüllen der Felder kann man dann TAB drücken, um jeweils eins weiter zu rücken.

Hilfreich ist auch der Shortcut ALT+Q, der alle Zeilen innerhalb des mehrzeiligen Kommentars auf die Maximallänge bringt. Man muss also nicht mehr lange überlegen, wann man im Kommentar einen Umbruch macht. Kurz ALT+Q – fertig.

Januar 7, 2013 at 11:22pm

2 Anmerkungen
The past quarter i was working at foobugs for the Berlin based startup Trademob. Our Team was developing a new rich client application for their clients which will be released during this year I think. It was a great opportunity to extend my skills in backbonejs and chaplinjs which are really nice libraries.

During that time I also discovered brunch which is something like a boilerplate, ready-to-use compiler application assembler which makes it much easier to start a new project from scratch. You don’t have to set up your build steps, minification and test configuration on your own because brunch does this stuff for you.

So I tried it out on a little project I had in mind for some months now. A simple and small application that uses the HTML5&#160;geolocation API of the browser to display the user’s location on a map and show the info of the getCurrentPosition or watchPosition return values. It should be designed for small screen mobile devices such as my HTC Desire or iPhone to see how the callback intervals change when I drive or walk around.

So here it is: http://gps-tracker.herokuapp.com/

And the best thing is - it’s open source! Test it on your mobile device and feel free to post issues or fix them in your fork: https://github.com/foobugs/gps-tracker

The past quarter i was working at foobugs for the Berlin based startup Trademob. Our Team was developing a new rich client application for their clients which will be released during this year I think. It was a great opportunity to extend my skills in backbonejs and chaplinjs which are really nice libraries.

During that time I also discovered brunch which is something like a boilerplate, ready-to-use compiler application assembler which makes it much easier to start a new project from scratch. You don’t have to set up your build steps, minification and test configuration on your own because brunch does this stuff for you.

So I tried it out on a little project I had in mind for some months now. A simple and small application that uses the HTML5 geolocation API of the browser to display the user’s location on a map and show the info of the getCurrentPosition or watchPosition return values. It should be designed for small screen mobile devices such as my HTC Desire or iPhone to see how the callback intervals change when I drive or walk around.

So here it is: http://gps-tracker.herokuapp.com/

And the best thing is - it’s open source! Test it on your mobile device and feel free to post issues or fix them in your fork: https://github.com/foobugs/gps-tracker

November 16, 2012 at 3:20pm

1 Anmerkung

Checker Plus for Gmail →

Ich bin Google Mail und Google Apps Nutzer - habe also mehrere E-Mail Konten. Um diese möglichst bequem zu managen habe ich bisher immer auf Sparrow vertraut. Da die aber im Sommer von Google gekauft wurden und die Einstellung angekündigt wurde, war mir klar ich müsste mich an einen neuen E-Mail Client gewöhnen.

Dann kam das 10.8 Update (Snow Leopard) heraus und ich probierte es einige Monate mit dem E-Mail Client “Mail”. Da der aber keinerlei sinnvolle Schortcuts bereit hält und sich obendrein auch irgendwie langsam anfühlt habe ich mich dann doch wieder für den Browser-basierten Client von Goolge entschieden.

Um nicht ständig mehrere Tabs oder Browser mit unterschiedlichen Postfächern offen zu halten gibt es eine praktische Erweiterung für Chrome welche das Prüfen der Postfächer übernimmt: Checker Plus for Gmail Webstore Link

Damit kann man sehen wie viele ungelesene Nachrichten man hat. Man bekommt Benachrichtigungen über neue E-Mails per Audio-Signal, Stimme oder Growl-Benachrichtigung und kann sich sogar die E-Mails ohne GMail öffnen zu müssen öffnen und gleich archivieren oder löschen. Praktisch.

Oktober 18, 2012 at 8:18am

0 Anmerkungen
Die Aussicht von dem Eingang zu &#8220;Studio 1&#8221; im Bethanien am Morgen. #digiyards (at Kunstquartier Bethanien). Mehr auf zum Symposium Digital Backyards auf der Berliner Gazette Website.

Die Aussicht von dem Eingang zu “Studio 1” im Bethanien am Morgen. #digiyards (at Kunstquartier Bethanien). Mehr auf zum Symposium Digital Backyards auf der Berliner Gazette Website.

Juni 26, 2012 at 3:11pm

2 Anmerkungen

CSV Datei mit PHP auslesen

Seit PHP 5.1 gibt es die Möglichkeit Dateioperationen nicht mehr mit Funktionen auszuführen sondern SPLFileObject oder SPLFileInfo zu verwenden. In PHP 5.2 kam auch noch die Unterstützung für CSV Dateien dazu und so kann man ziemlich elegant mit CSV Dateien umgehen. Das folgende Beispiel illustriert das hoffentlich:

Die positiven Dinge sind auf jeden Fall die schöne objektorientierte API und die wenigen Zeilen Code die einem erlauben über den Inhalt der CSV Datei zu iterieren und zwar ohne die gesamte Datei im Speicher zu behalten!

Das Zeilenende als Stolperstein

Ein kleiner Stolperstein stellt allerdings die unterschiedlichen Zeilenenden dar die von manchen Programmen bei dem Erstellen einer CSV Datei verwendet werden. So kam es beim Testen schon vor, dass eine CSV Datei mit einem Carriage Return (chr 13) am Ende erzeugt wurde, statt dem gewohntem Line Feed (chr 10) oder einer Kombination aus beidem. Das Problem dabei ist, dass PHP dann die Zeilenenden nicht richtig erkennt und alle Daten in der ersten Zeile stecken. Dies kann man aber beheben indem darauf achtet, dass man auto_detect_line_endings in der php.ini aktiviert hat oder es einfach selbst setzt.

Juni 13, 2012 at 3:43pm

5 Anmerkungen

git - praktische Einführung

Am Montag haben René und ich bei Familie Redlich einen Workshop rund um das Thema Entwicklungsumgebungen und git gegeben. Zuerst haben wir den von foobugs eingerichteten Server vorgestellt der zum Beispiel verschiedene PHP-Versionen unterstützt. Danach habe ich in einer kleinen Präsentation git vorgestellt und anschliessend haben wir mit den Entwicklern alle möglichen Varienten von ein- und auschecken, pushen, pullen, mergen, branchen etc. durchgespielt.

Wer sich noch nicht an git ran getraut hat sollte sich vielleicht mal die Slides anschauen die Slides der git Präsentation anschauen die ich gerade bei Slideshare hochgeladen habe:

[2012-06-28] Gerade habe ich auf Hacker News noch diese eine wunderbare Visualisierung der Repositories und git-Befehle von Mark Lodato gefunden.

Juni 3, 2012 at 8:36pm

0 Anmerkungen

Developer Color Picker →

Der Developer Color Picker von Panic hat sich gerade als sehr hilfreich herausgestellt. Er ermöglicht es zum Beispiel in Textmate in SCSS/SASS oder CSS Dateien einen Farbwert samt Alpha-Kanal-Stärke auszuwählen. Einfach zu installieren und schon kann’s losgehen.

April 26, 2012 at 5:35pm

0 Anmerkungen

Markdown mit Pandoc und Vorlagen auf OSX in PDFs verwandeln

Markdown ist aus meinem Alltag nicht mehr wegzudenken. Die einfach zu erlernende Auszeichnungssprache die John Gruber und Aaron Swartz erdacht haben, wird mittlerweile von diversen Plattformen unterstützt. Sogar Bücher, wie zum Beispiel “The Grumpy Programmer’s Guide to Building Testable Applications in PHP" von Chris Hartjes, werden damit geschrieben.

Da man so gut wie alle gängigen Formatierungen in Markdown vornehmen kann, kommt es für mich oft gar nicht in Frage, Dokumentation oder Notizen in komplexen Programmen zu schreiben. Textmate, oder wenn es sein muss auch mal vi, reichen mir aus.

Seinen Kunden will man nicht zumuten, Markdown-Dateien zu lesen. Stattdessen sollen diese schöner formatiert und in einem PDF gesammelt werden. Genau dieses Problem habe ich letztens auf OSX relativ komfortabel gelöst.

Markdown zu HTML

Wenn man PDFs aus Markdown erstellen möchte, macht es sich am besten, diese zuerst in HTML umzuwandeln. Ein Tool, welches u.a. Vorlagen mit einbezieht, Inhaltsverzeichnisse erstellen, in andere Formate umwandeln und damit auch für andere Zwecke genutzt werden kann, ist pandoc.

Nach der Installation eines der Packete, kann man einzelne Markdown-Dokumente in HTML umwandeln:

pandoc README.md -o README.html

Das schöne bei pandoc ist, dass man neben Footer, Header oder Stylesheets auch ganze Templates selbst definieren kann, die beim Konvertieren mit einbezogen werden:

pandoc -c mystyle.css -A footer.html -H header.html README.md -o README.html

Weitere Befehle und genauere Beschreibungen zu den Templates sind im Pandoc User’s Guide nachzulesen. Ganz nett ist auch die Funktion, mit Platzhaltern für Datum oder Autor arbeiten zu können.

HTML zu PDF

Hier gibt es wieder mehrere Möglichkeiten. Um pandoc das PDF-Generieren beizubringen, muss man leider LaTeX installieren, was auf Grund der Größe des Pakets (mehr als 1 GB) lächerlich erscheint. Wenn man aber auf OSX arbeitet, kann man eine im System “versteckte” Funktion benutzen, die jedes HTML inklusive Stylesheet, Bilder etc. in ein PDF verwandelt: convert

/System/Library/Printers/Libraries/convert -a "media=A4 portrait" -f README.html -o README.pdf

Der Befehl ist leider nicht wirklich dokumentiert; er kann aber auch RTF oder normale Text-Dateien in PDFs konvertieren. Es gibt auch noch weitere Parameter, die man mit -a übergeben kann. Welche von den auf CUPS gelisteten funktionieren, konnte ich aber leider nicht finden.

Beispiel auf GitHub

Für foobugs habe ich ein kleines Beispielprojekt aufgesetzt, mit dem man wunderbar rumspielen und sich für seine Firma oder sein Projekt eine Vorlage erstellen kann. Die Quellen sind im pandoc-templates Projekt auf GitHub zu finden.