Von Sublime zu Vim? Ein Um- und Einstiegsversuch

Vim ist so einiges, aber sicher nicht einsteigerfreundlich. Dennoch bin ich immer wieder fasziniert, wie sich erfahrene Anwender durch ihren Code navigieren und in der kleinen Kommandozeile Aktionen auslösen, für die die meisten erstmal ein anderes Programm starten müssen. Zudem ist alles frei konfigurierbar und vor allem freie Software. Mal sehen, wie ich meinen auf… Von Sublime zu Vim? Ein Um- und Einstiegsversuch weiterlesen

PHP: Output-Buffer ist schachtelbar

Bei der Entwicklung des WordPress-Caching-Plugins Staticly kam die Frage auf, wie man die Output-Buffer ob_start und Co. nutzen könne, während Plugins und andere Code-Teile selbst davon Gebrauch machen. Und tatsächlich macht es PHP dem Nutzer recht einfach, wie das Manual bestätigt: Output buffers are stackable, that is, you may call ob_start() while another ob_start() is… PHP: Output-Buffer ist schachtelbar weiterlesen

Javascript: Klick außerhalb eines Bereiches

Folgendes Beispiel überwacht ein Dokument auf einen beliebigen Klick, außer wenn dieser in einem bestimmten Element (.container) liegt: $(document).on ‚click‘, (ev) -> if $(‚.container‘).has(ev.target).length == 0 # … Dies ist beispielsweise hilfreich um ein Popup oder Dropdown-Menü schließen möchte, wenn der Nutzer „irgendwo“ außer auf das Widget selbst klickt.

RSpec und PostgreSQL: Insufficient Privilege

Bei einem rake spec erhielt ich den folgenden Fehler: PG::InsufficientPrivilege: ERROR: permission denied to create database […] Es mag eine falsche Einstellung sein (ein einfaches rspec verursacht das Problem nicht), aber offensichtlich benötigt der Datenbanknutzer in meiner Konfiguration das Recht, neue Datenbanken zu erstellen. Auf meiner lokalen Maschine, wo die Tests laufen, kann ich das… RSpec und PostgreSQL: Insufficient Privilege weiterlesen

SublimeSpecCreator: Command-Palette nutzen

Gerade bei unregelmäßig genutzten Funktionen vergisst man gern das zugewiesene Tastenkürzel. Hier hilft Sublimes sogenannte Command Palette. Eine Spezifikation für eine Methode kann man nun auch auf folgende Weise generieren: Zu testende Methode markieren Strg+Shift+P createspec (oder Teile davon) tippen, bis Befehl erscheint Enter

WordPress cachen – einfach und effizient

Immer wieder habe ich mich über Caching-Lösungen für WordPress geärgert. Das ging soweit, dass der Platzhirsch W3 Total Cache meine Seiten deutlich langsamer machte. Unzählige Strategien und Einstellungsmöglichkeiten machen dieses Plugin-Ungetüm unnütz kompliziert. Dabei sind die Anforderungen an kleinere Blogs mit wenigen Artikel und Kommentaren recht übersichtlich: Seite nach der Generierung als fertiges HTML in… WordPress cachen – einfach und effizient weiterlesen

Git-Tags löschen

In Git etwas verschwinden zu lassen ist oft gar nicht so einfach. Tags sind jedoch eine Ausnahme. Selbst wenn sie schon auf dem Remote-Server liegen, kann man sie einfach entfernen: git tag -d release1 git push origin :refs/tags/release1 Sehr angenehm, wenn man mal wieder etwas voreilig war.

Fuzzy-Search-Filter für die Bash

Ich hatte kürzlich von meiner nicht hunderprozentig zufriedenstellenden Suche nach einer Fuzzy-Search für die Bash geschrieben. Das Problem ist nicht das Herausfiltern an sich, sondern die Gewichtung der Ergebnisse. Als Maß für die Güte eignet sich die Levenshtein-Distanz. Diese zählt die Notwendigen Ersetzungen, Einfügungen und Löschungen, die nötig sind, um String a in String b… Fuzzy-Search-Filter für die Bash weiterlesen

Nginx: Proxy-Pass unterschlägt Query-Parameter

Folgende Einstellung verursachte, dass beim Zielserver keine Query-Parameter ankamen: location ~ ^/(assets|pages)/ { proxy_pass http://127.0.0.1:3030/$uri; } http://localhost/assets/x/y?p=1 => http://localhost:3030/assets/x/y Einfach das /$uri weglassen, dann wird der komplette Pfad mit Query-Parametern übergeben: location ~ ^/(assets|pages)/ { proxy_pass http://127.0.0.1:3030; } http://localhost/assets/x/y?p=1 => http://localhost:3030/assets/x/y?p=1