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

Die Suche nach der Fuzzy-Search

Unscharfes Suchen ist äußerst hilfreich. Wer länger mit Sublime oder vergleichbaren Editoren gearbeitet hat weiß es zu schätzen, dass er statt eines Datei-Dialogs Strg+p, „filibpost“ und Enter drückt, um etwa files/sql/libs/postgresql-lib.rb zu öffnen. Ich arbeite gerade an einem ähnlichen Hilfskommando, welches das Öffnen in Vim etwa mittels ff filibpost vim ermöglicht. Alles nicht so schwierig… Die Suche nach der Fuzzy-Search weiterlesen

Webdesign: Wörter statt CSS und Bilder

Nicht dass die Idee neu ist, aber Justin Jackson hat damit kürzlich eine gewisse Resonanz erreicht: Das Web habe seine Inhalte vergessen, sie in den Hintergrund gedrückt und durch immer tollere und schrillere Designs verdeckt. So der Tenor. Man brauche kein spezielles responsives Design, keine Skripte und kein Content-Management-System. Der Grundgedanke des Webdesigns sollten Wörter sein.… Webdesign: Wörter statt CSS und Bilder weiterlesen

Serial downvoting reversed

Schön zu wissen, dass Stackoverflow für die mühsam gesammelten Reputationspunkte auch Schutzmechanismen hat. Nachdem jemand die letzten zwei Tage acht willkürlich gewählte Fragen von mir negativ bewertet hat, habe ich sie nun zurückbekommen: Wen und wie ich jemanden verärgert habe weiß ich leider nicht. Immer diese Leute die keinen Spaß abkönnen…

Adaptive Bilder im responsiven Webdesign

Während die Gestaltung für unterschiedlich große Ausgabegeräte mit CSS mittlerweile ganz gut möglich ist, hat responsives Webdesign ein großes Problem: Bilder. Schon für Entwickler ist es nervig, unzählige Größen bereitzustellen. Vollautomatisierte Lösungen, die auch für technisch unversierte Nutzer funktionieren, sind noch um einiges komplizierter. Eine schöner Ansatz, der zumindest einen großen Teil dieses Gebietes abdeckt, bietet Adaptive Images. Die Software habe ich nicht getestet und sie dürfte für viele ohnehin nicht nutzbar sein, da sie PHP und einen Apache Webserver erfordert. Die Idee ist aber gut und einfach umsetzbar.

Von Data-Warehouses und Website-Statistiken

Zugriffsstatistiken werden immer wichtiger

Schon vor längerer Zeit habe ich im Rahmen meiner damaligen Firma ein Analysewerkzeug für Website-Besuche geschrieben. Leider ist das ganze recht organisch gewachsen, so dass es heute schwer fällt die Software zu verbessern. Wie lässt sich eine belastbare Architektur entwickeln? Ein Stichwort, an dass ich im Zusammenhang mit großen Datenmengen stets denken muss: Data-Warehouses.

Ruby mit RVM unter Ubuntu installieren

Ruby unter Ubuntu zu installieren ist nicht schwer. Es ist in den Paketquellen enthalten und auch das Bauen einer aktuelleren Variante ist nicht wirklich kompliziert. Ein Problem ist jedoch, dass Ruby noch stark in der Entwicklung steckt und auch kleine Versionssprünge große Änderungen mit sich bringen können. Mit Paketquellen ist es schwierig überall genau die… Ruby mit RVM unter Ubuntu installieren weiterlesen

Git-Merge-Konflikte mit Diff3 einfacher lösen

Merge-Konflikte zu beheben ist nicht immer leicht: <<<<<<< HEAD customer.setPriority(42); ======= client.setPriority(32); >>>>>>> master Customer oder Client? 42 oder 32? Die richtige Lösung muss aus dem umliegenden Code abgeleitet werden. Hier kann es wie so oft helfen, den letzten gemeinsamen Stand der Versionen zu sehen.