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.
Kategorie: Software-Entwicklung
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
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.