Meine Projekte
An dieser Stelle möchte ich einige meiner privaten Projekte vorstellen, die häufig auch in internationalen Medien Erwähnung fanden.
Web-Entwicklung
Mit dem Erscheinen einer neuen Generation von Webbrowsern, wie Google Chrome, Mozilla Firefox 3.5 und Microsoft Internet Explorer 8, entschied ich, nur noch plattformunabhängige Software auf Basis von JavaScript zu entwickeln.
So entstanden in den letzten Jahren einige kleinere und größere Projekte.
HexEd.it - Browser-based Hex Editing
2013+ HexEd.it ist der erste clientseitige JavaScript-basierende Hex-Editor. Analysieren und Editieren von Dateien wo immer man will, ohne eine Software installieren zu müssen, unter jedem Betriebssystem, in allen modernen Browsern.
HexEd.it wird u.a. an vielen Schulen und Universitäten, rund um die Welt, zu Schulungszwecken verwendet, wurde bereits in über 40 Sprachen übersetzt und wird täglich von mehr als 4500 Besuchern genutzt.
https://hexed.itLeia Image Format (LIF) Decoder
2023 Decoder für Bilder im Leia Image Format (LIF). Das sind JPEG-Bilder mit Metadaten, die Tiefeninformationen, Bokeh-Daten und ein oder mehrere Bilder (z. B. Stereobilder). Diese Bilder können mit Leia-Geräten, wie z. B. dem Leia Lume Pad 2, aufgenommen und betrachtet werden.
https://www.duttke.de/lif/Base64 Online Encoder / Decoder
2009 / 2020 Dieser JavaScript-basierende Base64-Online-Encoder erlaubt es Klartext in Base64-kodierten Text und umgekehrt, umzuwandeln. Zusätzlich erlaubt er beliebige Text- und Binär-Dateien in Data-URLs zu kodieren.
https://www.duttke.de/base64/WalkingPad Bluetooth Connection Test
2022+ Mit dieser Seite können Sie über die Web-Bluetooth-API eine Verbindung zu einem KingSmith WalkingPad und anderen gebrandeten Geräten herstellen, um verschiedene Laufbandeinstellungen anzuzeigen und zu ändern.
https://www.duttke.de/walkingpad/Regular Expression Validator
2009 Dieser JavaScript-basierende Validator für reguläre Ausdrücke, erlaubt es Regular Expressions zu bauen und mit den verschiedenen JavaScript-RegExp-Funktionen zu testen.
https://regexp.duttke.de
Open Source
Einige Werkzeuge die über die Jahre entstanden sind stehen als Open Source-Projekte bei GitHub zur Verfügung, oder können direkt per npm in eigene Projekte eingebunden werden.
check-outdated
2019+ Befehlszeilen-Tool welches in eigene Projekte eingebunden werden kann, um sicherzustellen, dass die verwendeten Node.js-Abhängigkeiten aktuell sind.
https://www.npmjs.com/package/check-outdatedJSQR - JavaScript Quick Response Code Encoder Library
2011 JSQR war die erste JavaScript-Bibliothek, die in der Lage ist QR Codes direkt im Webbrowser des Benutzers zu generieren — ohne Anfragen an einen Webserver und dadurch z.B. auch im Offline-Modus bei mobilen Webapps.
https://jsqr.deXML2JSON.XSL
2009 Dieses hochoptimierte XSLT 1.0-Stylesheet transformiert XML-Daten in ein gültiges JSON-Format (JavaScript Object Notation).
https://xml2json.duttke.de
Browser-Spiele
Da ich mich schon immer für Computerspiele interessiert habe, dürfen natürlich auch einige selbstgeschriebene browser-basierende Casual Games nicht fehlen.
Macuro - A different kind of Sokoban
2009-2010 Macuro ist ein einzigartiges Sokoban-Puzzle-Spiel.
Ziel des Spiels ist es, mit Hilfe des grünen Würfels, alle farbigen Würfel auf die Bodenfläche mit der jeweils gleichen Farbe zu rollen. Der grüne Würfel wird vom Spieler gesteuert und kann andere Würfel andocken, ähnlich einem Elektromagnet - daher auch der Name MAgnetic CUbe ROlling.
https://macuro.deDice Rolling
2015 Dice Rolling ist ein Logikspiel bei dem es darum geht, Würfel auf vorgegebene Flächen zu bewegen. Bei jeder Interaktion verringert sich die Anzahl der Augen auf dem bewegten Würfel. Das Ziel ist es, dass alle Würfel auf den Zielflächen liegen und dabei keine Augen mehr übrig sind.
https://www.duttke.de/projects/dicerolling/Kakuro
2008 Kakuro ist eine Art Kreuzworträtsel, jedoch mit Ziffern statt Buchstaben und Summen statt Wortdefinitionen.
Ein meiner Meinung nach interessantes Spiel, welches in Japan ähnlich beliebt ist wie Sudoku, und hier in meiner Browser-basierenden Umsetzung online gespielt werden kann.
https://kakuro.duttke.deCrazy Movin'
2002 Crazy Movin' ist eine Kombination aus Rohre-Verlegen und Schiebepuzzle, inspiriert durch ähnliche Puzzle im Spiel Oxyd® aus dem Hause Dongleware.
Durch Pfeil-Steine können die anliegenden Rohrsteine in die Pfeilrichtung verschoben werden. Der letzte Stein, wird dabei wieder an erster Position eingesetzt, so dass die Steine endlos im Kreis geschoben werden können. Ziel des Spiels ist es alle Rohrteile zu schließen.
Das Spiel steht in einer englischen Version zur Verfügung, und wurde auf die Möglichkeiten (anno 2002) aller gängigen Web-Browser abgestimmt.
https://www.duttke.de/projects/crazymovin/Nine Men's Morris
2001 Nine Men's Morris, hierzulande als Mühle bekannt, ist das erste meiner veröffentlichten JavaScript-basierenden Projekte.
Es wird gegen den Computer gespielt, dem ich versucht habe, einen hohen Grad an künstlicher Intelligenz zu geben. So habe ich das Spiel darauf hin optimiert, alle damals verfügbaren Mühle-Programme zu besiegen.
https://www.duttke.de/projects/nmm/
Software-Projekte
In der Vergangenheit hatte ich immer ein Händchen dafür auf die falsche Programmiersprache zu setzen. Assembler findet heute kaum noch Anwendung und durch die Veröffentlichung von Windows Vista hat Microsoft auch den Support für Visual Basic Classic eingestellt.
Nichtsdestotrotz habe ich durch die hardwarenahe Programmierung in Assembler, und durch die Geschwindigkeitsdefizite von Visual Basic sehr viel über hoch-optimierte Programmierung gelernt. Wissen, was mir selbst heute noch bei JavaScript hilft, effiziente und performante Software zu entwickeln.
Und obwohl ich meine letzte Zeile plattformabhängigen Code vor über 16 Jahren geschrieben habe (abgesehen von den Garmin Apps), sind die Projekte bei den Benutzern nach wie vor sehr beliebt. So hat PhotoME über 30.000 aktive Benutzer, oder die Webseite vom psx emulation cheater im Jahr 2014 (10 Jahre nach der letzten Programmversion) die Marke von über 4.000.000 Seitenbesuchern überschritten.
Garmin Apps
2022+ Garmin bietet die Möglichkeit für ihre Sportuhren Apps und Datenfelder selbst zu programmieren und diese im Garmin-eigenen Connect IQ Store zu veröffentlichen.
Hierfür habe ich diverse Apps und Datenfelder entwickelt, u.a. eines, welches das Xiaomi/KingSmith WalkingPad-Laufband von der Uhr aus steuerbar macht und die aufgezeichten Daten im Garmin Connect Dashboard auswertbar macht.
Die Apps wurden inzwischen mehr als 10.000 Mal heruntergeladen.
https://apps.garmin.com/de-DE/developer/8cb871b5-2a6c-4a75-a350-99f1945f3d36/appsPhotoME
2006-2009 PhotoME ist ein kostenloser Viewer und Editor für Metadaten in Bilddateien.
Neben den von Digitalkameras erstellten Exif-Daten liest und schreibt PhotoME auch IPTC-NAA-Metadaten, ICC-Profile, MakerNotes zahlreicher Hersteller, sowie unzählige weitere Metadaten- und Datei-Formate.
Mit über 30.000 aktiven Nutzern weltweit, ist PhotoME wohl mein beliebtestes Programm und wird immer noch regelmäßig in der Presse erwähnt. Dank der Unterstützung vieler Helfer, ist die Software in 17 Sprachen verfügbar.
https://www.photome.deOxyd® extra v2
2004-2005 Oxyd® war Anfang der 1990er Jahre eines der beliebtesten Spiele aus dem Hause Dongleware.
2005 wurde ein von mir entwickeltes Remake als offizielle Oxyd-Version veröffentlicht - für mich, selbst ein Oxyd-Fan, eine große Ehre.
Neben zusätzlichen, von mir gestalteten Levels, bot das Spiel auch die Möglichkeit zu zweit, über das Internet und LAN zu spielen.
https://de.wikipedia.org/wiki/Oxydpsx emulation cheater
1999-2004 Der 'psx emulation cheater' kurz [pec] bietet die Möglichkeit GameShark-Cheatcodes in PlayStation-Emulatoren zu verwenden.
In Zusammenarbeit mit den damals größten GameShark-Code-Webseiten konnte ich eine riesige Datenbank mit vorgefertigten Codes für fast alle PlayStation-Spiele aufbauen. Zudem ist es mit [pec] auch möglich eigene Codes zu finden und diese dann mit der originalen PlayStation-Hardware zu verwenden.
Artikel über [pec] sind in verschiedenen Computer-Fachzeitschriften zu finden.
https://pec.duttke.deCyberPad
2001-2003 CyberPad ist ein von mir in Assembler programmiertes einzigartiges Zusatzmodul für PlayStation-Emulatoren, welches es ermöglicht, PlayStation-Spiele über das Internet und LAN zu spielen.
Lange bevor Sony selbst im Jahr 2006 mit der PlayStation 3 das Online-Spielen ermöglichte, konnten Spieler mit CyberPad gegen Freunde auf der ganzen Welt PlayStation-Spiele spielen - dafür reicht schon eine damals übliche ISDN-Internetverbindung aus.
Auch über dieses Programm haben diverse Fachzeitschriften Artikel veröffentlicht.
https://cyberpad.duttke.deBlini!
1999-2000 Blini! ist ein Werkzeug um die recht kryptische Konfigurationsdatei des PlayStation-Emulators Bleem! auf einfache Weise auszulesen und zu bearbeiten, sowie sich Kompatibilitätsinformationen und eine Statistik anzeigen zu lassen.
Blini! war mein erstes im Internet veröffentlichtes Programm und hat den Grundstein für viele weitere Projekte gelegt.
https://blini.duttke.de