blog.andreas-klingler.de

Notizen und Gedanken von Andreas Marc Klingler

Schlagwort: Software

Code-Realität

In Vorlesungen hört man ja ab und zu Horror-Geschichten über „die Realität“(tm). Man lacht dann meist darüber und fragt sich, ob es denn stimmen kann, das in freier Wildbahn wirklich dermaßen unglaublich schrecklicher Code existieren kann. So blöd kann ja keiner sein.

Letzte Woche habe ein solches Beispiel erlebt, bei dessen Code-Analyse ich minutenlang nicht mehr aus dem Lachen herauskam. Auch wenn Weinen wohl angemessener gewesen wäre.

Es ging um eine Webplattform, die trotz 8-Kern-Systems mit 32 GB RAM kaum noch benutzbar war aufgrund extrem langer Antwortzeiten im Minutenbereich. Ein Hauptproblem war eine Mehode, die folgendes gemacht hat:

  • Lade zu Beginn erstmal alle Objekte aus der Datenbank in eine Variable.
  • Lade, weil’s so schön ist, auch direkt alle abgeleiteten Objekte abgeleiteter Tabellen in Variable.
  • Führe diverse Transformationen mit allen diesen Objekten aus (deren Sinn sich mir nicht zu 100% erschlossen hat).
  • Filtere ca. 80% der Objekte raus.
  • Führe mit der verbleibenden Objekten weitere Transformationen durch.
  • Ermittle schließlich die Anzahl der Elemente, die in der „Hauptvariable“ noch drin sind, und …
  • verwende diesen Wert nie wieder.

Überflüssig zu sagen, dass auch die anderen Variablen überhaupt nicht verwendet werden. Tja…

Willkommen in der Realität! (Fluchtmöglichkeiten sind nicht ausgeschildert.)

(Nachtrag: Zum Thema: devopsreactions.tumblr.com, codinghumor.tumblr.com uvm.)

Neue Möglichkeiten mit WebRTC

Ich habe mir schon vor längerem vorgenommen, mich mal ausgiebig mit WebRTC zu beschäftigen. Mit dieser noch in der Entwicklung befindlichen Web-Technik wird es möglich, beliebige Daten in Echtzeit direkt zwischen Browsern zu übertragen. Zum Beispiel ist damit eine Anwendung wie Skype nativ im Browser möglich – ohne den Umweg über US-Server, die alles unbegrenzt speichern.

Sehr spannend. Letzten Montag fand im Betahaus das erste WebRTC-Treffen statt; mit tollen Leuten und Vorträgen. Einige Notizen:

  • In Mac OS ist seit einiger Zeit der Dienst AirDrop eingebaut. Damit kann man im lokalen Netz zwischen zwei Macs Dateien austauschen. Und zwar idiotensicher. Genau diesen Dienst gibt es jetzt auch als Web-Plattform unter sharedrop.io. Im lokalen Netz kann man zwischen zwei Rechnern damit auch plattformunabhängig Dateien austauschen, ohne irgendwelche Server-/Client-Geschichten aufsetzen zu müssen.
  • Browser-zu-Browser-Telefonie wird möglich. Zwischen zwei Browsern klappt das direkt, und mit einem Proxy-Dienst auch mit dem Festnetz. Die Live-Demo eines Testprojekts lief einwandfrei.
  • Falls aufgrund von NAT oder anderen Netzwerkeinschränkungen keine direkte Verbindung zwischen zwei Browsern möglich ist, kann man einen Dienst auf einem gemeinsamen Server aufsetzen, der beide „verbindet“. Wenn die Daten über diesen Server laufen, ist das natürlich sicherheitstechnisch erstmal nicht so schön, aber das garantiert wenigstens die Verfügbarkeit. Und da die Technik dezentral ist, lassen sich hunderttausende WebRTC-Server natürlich auch nicht so einfach überwachen wie z.B. nur Skype-Server.
  • Ich dachte bisher bei dem Begriff WebRTC bisher primär an „Skype ohne Überwachungsinfrastruktur direkt im Browser“. Aber abstrakt gesehen geht es um direkten Austausch beliebiger Daten zwischen Browsern. Das eröffnet ein gewaltiges Feld an neuen Möglichkeiten.

Ich glaube, wir werden in Zukunft viele Dienste mit dieser Technik sehen, welche die Grenze zwischen Desktop- und Browser-Anwendung weiter verwischen werden.

Exzellentes Blog über Softwaretechnik und -entwicklung

Vor einiger Zeit bin ich auf ein wunderbares Blog gestoßen, dass ich allen ans Herz legen möchte, die Software auch entwickeln: Joel on Software.

Es handelt um Softwaretechnik und -entwicklung sowie einer größeren Epsilon-Umgebung davon. Viele Artikel sind Augen-öffnend und zumindest ich habe in den gut vier Wochen, in denen ich das Blog „ausgelesen“ habe, sehr viel erkannt und gelernt. (Untere anderem auch gute Gründe dafür, warum man in der Praxis oft Dinge tut, für die es im akademischen Bereich aber auch gute Gründe gibt, sie zu verpönen.)

Auf der Hauptseite gibt es in der zweiten Spalte eine sehr lange Liste auf gute Artikel aus verschiedenen Bereichen. Ein guter Anfang. Über die Archiv-Seite kann man dann geordnet alle Beiträge ab März 2000 lesen.

Ursprünglich habe ich an dieser Stelle auch noch eine Auswahl hervorragender Zitate aus dem Blog anbringen wollen. Ich habe mich bei der großen Menge, die ich mir herauskopiert habe, nicht mehr entscheiden können und gebe daher allen Interessierten lieber den Rat, das Blog selbst auszulesen. Man kann sich ja auch damit Zeit lassen, die Artikel laufen ja nicht weg. :-)

Etherpad mit Wildcard-Subdomains

Nach dem Aufsetzen einer Etherpad-Installation auf tandem-rhein-main.de kam auf jeder Etherpad-Seite eine unerwartete Authentifizierungsanfrage von Apache. Die Domain etherpad.tandem-rhein-main.de erfordert aber keine Zugangsdaten. In einer Etherpad-Installation auf einem anderen Server habe ich bei der Installation und Einrichtung nichts anders gemacht, und dort trat die Authentifizierungsanfrage nicht auf.

Weiterlesen

RSS-Aggregator wie Google Reader auf eigenem Server

In dem Beitrag Über den Umgang mit RSS erwähnte ich, dass ich noch keine vernünftige Software gefunden hatte, mit der ich RSS-Feeds wie in Google Reader zentral übers Web lesen kann und auf einem eigenen Server läuft.

Über den Kommentar von Nightwolf habe ich endlich eine tolle Lösung gefunden: rssLounge. Die web-basierte OpenSource-Software verfügt sogar über eine zusätzliche Filterebene, um auch bei mehreren hundert RSS-Feeds nicht den Überblick zu verlieren.

Weiterlesen

Sekundäranzeige in Lightroom

Womöglich ist das für manche nichts neues; aber ich habe erst vor kurzem festgestellt, wie unglaublich praktisch bei der Organisation und Entwicklung von Photos in Lightroom (3) die Sekundäranzeige (im Menü Fenster) ist, die viele Lightroom-Benutzer wahrscheinlich gar nicht kennen.

Weiterlesen