Meinung von GN⁺
- Dieser Beitrag handelt von „verfluchten Hacks“, bei denen Software und Technik auf kreative und manchmal ungewöhnliche Weise eingesetzt werden, um das gewünschte Ergebnis zu erzielen.
- Für Technikbegeisterte und Softwareingenieure können solche Hacks inspirierend sein, weil sie zeigen, wie man mit Kreativität über die Grenzen der Technik hinausgehen kann.
- Dieses Thema betont die Flexibilität von Technik und die Fähigkeit der Nutzer, kreative Lösungen zu finden, und macht neugierig auf Beispiele, in denen Technik auf nicht vorgesehene Weise genutzt wird, um überraschende Ergebnisse zu erzielen.
1 Kommentare
Hacker-News-Kommentare
Ein Startup entwickelte ein Plug-in für Microsoft Outlook, und das war erfolgreich. Kunden wollten dieselbe Funktion auch für Outlook Express, aber OE hatte keine Plug-in-Architektur. Mit Windows-Hooks und DLL-Injection ließ sich jedoch ein Makrosystem aufbauen. Dieses System konnte jede Aktion auf dem Bildschirm sehen, funktionierte aber perfekt. Beim Mittagessen machte jemand den Witz, man solle die OE-Nutzer einfach dazu überreden, nicht auf den Bildschirm zu schauen, und diese Idee funktionierte tatsächlich. Es wurde ein Screenshot des gesamten Desktops aufgenommen und im Vollbild angezeigt, die GUI-Manipulationen wurden verborgen, dann wartete man, bis OE aktualisiert war, und beendete anschließend das Vollbild-Overlay.
1999 wurde Eksi Sozluk, eine populäre türkische Social-Plattform, mit einer einzelnen Textdatei als Datenbank gebaut. Die Website wurde in nur 3 Stunden als mit Delphi geschriebene EXE-Datei ohne Web-Framework erstellt. Heute nutzt sie .NET/MySQL und wurde von der türkischen Regierung aus Gründen wie "nationale Sicherheit" gesperrt, ist aber weiterhin populär und bleibt trotz gesperrter Domain ein legales Unternehmen, zahlt Steuern und akzeptiert Anfragen zur Entfernung von Inhalten.
Als ich in den 90ern für HBO als Berater arbeitete, war ich mit einer Migration von MS Mail on Mac Server zu MS Exchange on PC beschäftigt. Das Problem war, dass MS Mail auf dem Mac keine Exportfunktion für Adressbücher hatte, sodass persönliche Assistenten Kontakte einzeln abschreiben mussten. Um das zu lösen, experimentierte ich mit einem Screen-Hotkey-Tool und entwickelte mit einem Tool, das eine vollständige Programmiersprache mitbrachte, eine Lösung, die Kontakte automatisch in CSV-Dateien umwandelte, damit sie in Exchange importiert werden konnten.
In den frühen Tagen von Google Chrome arbeitete ich daran, ihn mit Windows-Screenreadern kompatibel zu machen. Das Design von Chrome unterschied sich von Firefox oder IE, daher war die korrekte Implementierung der Accessibility-APIs eine Herausforderung. Wir versuchten zunächst, es für statische Webseiten zum Laufen zu bringen, aber die Screenreader aktivierten in Chrome keine webspezifischen Funktionen. Schließlich begann alles zu funktionieren, als wir die Chrome-Executable in firefox.exe umbenannten und dann starteten. Danach nahmen wir Kontakt zu den Screenreader-Anbietern auf und baten sie, Chrome als Webbrowser zu behandeln.
Vor mehr als 15 Jahren arbeitete ich daran, auf einer mobilen CPU Textmengen im Gigabyte-Bereich zu indexieren. Die Logik zur Wortnormalisierung war sehr langsam, daher verbesserte ein Cache die Geschwindigkeit erheblich. Als ich die Cache-Eviction-Logik entwickelte, wurde es im Desktop-Simulator schneller, auf dem Embedded-Gerät aber langsamer. Am Ende wurde mit der simpelsten Eviction-Logik ausgeliefert.
Eine Datenbank steckte in einer Boot-Crash-Schleife fest, und die
innodb_history_listfür eine bestimmte Tabelle war beschädigt. Weil die Datenbank sofort abstürzte, war es unmöglich, eine Sitzung zu öffnen und die Tabelle zu löschen. Also wurden mehrere Terminalfenster geöffnet undwhile true; do mysql -e 'drop table xyz;' doneausgeführt, bis nach Millionen von Versuchen schließlich eine Verbindung zur Datenbank gelang.Als das CD-Laufwerk meines ersten Computers kaputtging, konnte ich mir kein neues leisten und benutzte fast ein Jahr lang Disketten. Schließlich zerlegte ich das Laufwerk, fand das Problem und reparierte es, indem ich die Zahnräder mit Kielbasa, einer polnischen Wurst, schmierte.
Weil ein 30 Jahre alter Erdgasheizer keine smarten Thermostate unterstützte, baute ich ein System, bei dem ein Kunststoffzahnrad an das Temperatur-Einstellrad geklebt und über einen mit einem Raspberry Pi verbundenen Servo die Temperatur geregelt wurde.
Als ich im Retail-FX arbeitete, bestritten Kunden oft die Preise, die sie sahen, und die Preise, zu denen Orders eingegeben wurden. Um das zu lösen, entwickelte ich eine Lösung, die beim Klick auf den Trade-Button den Preis ins Log schrieb. Die Logdatei zeichnete dabei die Java-Swing-GUI-Elemente als ASCII-Art auf.
In einem Produktionsservice wurde eine komplette SSD per
mmapeingebunden und als C++-Datenstrukturen gecastet. Auf dieser SSD gab es kein Dateisystem; stattdessen wurde direkt ein riesiges Array von Structs voller Daten gespeichert. Wenn die SSD ausfiel, musste alles aus dem Backup wiederhergestellt werden, aber diese Methode war erstaunlich schnell und günstig.