Mein erstes "Hello World" (Schneider CPC6128)
1995
Schneider BASIC 1.1
Output to Display
Mein erstes "Hello World" erblickte 1995 auf einem Schneider
CPC6128 das Licht der Welt.
Screenshot
Screenshot
Mein erstes "Hello World" in Q-BASIC (IBM PC)
1996
Q-BASIC 1.1
Output to Display
Mein erstes "Hello World" unter DOS mit Q-BASIC 1.1.
Mein erstes "Hello World" in C64-BASIC (Commodore C64)
1996
C64 BASIC v2
Output to Display
Mein erstes "Hello World" auf einem Commodore 64.
VGAEdit / VGAMaus
1996
Q-BASIC 1.1 / Power BASIC 2.3
Pixelediting
Mouse movement under DOS
BMP File Format
Der VGA Editor entstand, weil ich damals einfach und schnell
Sprites erstellen wollte. Die mussten natürlich Pixel für
Pixel gezeichnet werden. Als ich mit dem Editor anfing, war
er nur im Textmodus geschrieben und arbeitete mit einer
Sprite Auflösung von 12x20 Pixel. Da ich aber auch größere
Sprites benötigte ging ich dazu über den Editor noch einmal
für den VGA Modus zu schreiben, daher auch der Name VGAEdit.
Drei Jahre später überarbeitete ich die letzte Version vom
VGAEdit und fügte eine Maussteuerug ein. Nun heißt die zweite
Version deshalb VGAMaus. Da dieser aber bis auf einige
Codezeilen identisch mit dem Original ist, habe ich ihn nicht
extra aufgeführt, sondern hier zusammengefasst mit dem
Original. Alles in allem leisten mir die beiden auch heute
noch gute Dienste. Sie können sowohl auch eigenes
RAW-Dateiformat benutzen
(Endung .VGA, Objektdatei im Programm) wie auch
BASIC-Quellcode abspeichern. Diesen gibts dann wahlweise mit
einem kleinen Ladeblock zum anzeigen oder auch als
DRAW-Anweisung, die man bei Q-BASIC benutzt um Grafikausgaben
zu machen. Außerdem kann der VGAEditor auch BMP-Dateien
importieren, solange sie 16 Farben haben. Netterweise habe
ich bei der späteren Entwicklung meiner SVGA.SUB -
Grafikbibliothek daran gedacht eine Laderoutine für die mit
VGAEdit erstellten Sprites einzufügen und umfangreiche
Sprite-Operationen zu programmieren, so dass Spieleentwicklung
unter DOS damit relativ leicht fällt.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Nettalk v1.0
1997
Q-BASIC 1.1
Network Drives
Network Files
File operations in Coop-Mode under DOS
Remote Control under DOS
Nettalk entstand aus der Not im Informatikunterricht miteinander
chatten zu können. Das Schulnetzwerk war Novell Netware basiert,
weswegen jeder Zugriff auf das TEMP-Laufwerk des Servers hatte.
Mit diesen Vorraussetzungen macht ich mich ans Werk und
entwickelte die Ur-Version der Nettalk-Reihe mit Q-BASIC. Die
ersten Versionen liefen mit dem Q-BASIC Interpreter von
Microsoft, der damals den DOS-Versionen beilag. Zum starten
wurde einfach eine Batch-Datei verwendet, die den Interpreter
mit dem Source-Code fütterte. Die ersten Versionen waren noch
mit festen IDs für die Rechner bestückt und hatten keine
Konfigurations oder Installationsmodule. Alles war fest im
Quellcode vorgeschrieben, lediglich der Benutzername war frei
wählbar.
DUNE ST2
1997
Q-BASIC 1.1
Mousemovement under DOS
Machine Code in Q-BASIC
PixelArt (16 Colors)
Sprites
Dieses Programm wurde von mir als Teil des Dune 5-Projektes
geschrieben. Es "baut" Gebäude, die in dem Spiel vorkommen
sollten. In diesem Programm tauchten erstmalig alle Gebäude
des Spiels auf, was vorher aufgrund der mangelhaften
Möglichkeiten von Q-BASIC niht möglich war. Auf den 486ern,
die mir damals zur Verfügung standen, lief es jedoch flüssig
und die neuartige Mausunterstützung in einer interpretierten
DOS-Programmiersprache, welche mir dank Maschinensprache
geland, war für meine damaligen Programme erstmalig.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
AQUANOID
1997
Q-BASIC 1.1
Breakout algorithm
Game programming (QB/DOS)
Automatic Ball Movement
Das ist mein erster und einziger Aquanoid-Clone. Naja mal
wieder ein Proof-of-concept, aber eines das funktioniert, vom
Spielstart bis zum "Game Over". Ziel ist natürlich den Ball
mit dem Balken immer wieder aufzufangen, solange bis alle
Blöcke weg sind. Ein Block hinterlasst wenn er getroffen wird
ein Goodie, das man einsammeln kann, um mehr Punkte zu
bekommen. Ist ein Level vorbei, gehts von vorne los. Das ganze
gibts natürlich mit Sound aus dem PC-Speaker, damit man sich
mit seinem 486er die Nacht um die Ohren schlagen kann.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
3D-Algorithm
1998
PB3.5 / DOS
SVGA-Graphics(VESA)
Assembler and PowerBASIC - the unholy alliance
Bitmap-Files as Textures
3D-Arithmetics
Dieses Programm war das erste seiner Art, welches ich mit
einer eigenen proprietären 3D-Engine versehen habe. Es nutzt
einige Routinen aus meiner selbstgeschriebenen SVGA-Library,
die teils in BASIC und teils in Inline-Assembler geschrieben
ist. Die Darstellung erfolgt nur durch Punktkoordinaten, die
im Raum bewegt bzw. rotiert werden. Die Texturen sind nur
Punktansammlungen, die ebenso wie die Objektkanten in Arrays
gespeichert sind.
Screenshot
Screenshot
Screenshot
3D-Algorithm v2
1998
PB3.5 / DOS
SVGA-Graphics(VESA)
Assembler and PowerBASIC - the unholy alliance
Bitmap-Files as Textures
3D-Arithmetics
Code-Optimization
3D-Vectoroperations
Dieses Programm verwendet erstmalig statt Punkten auch
Vektoren. Die Berechnunggeschwindigkeit hat sich dadurch
extrem erhöht. Die Kanten werden dann durch Linien verbunden
und nicht wie früher durch Punkte. Da nun nicht jeder Punkt
einer Linie berechnet wird, sind auch komplexere Objekte
möglich geworden.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
NettalkP v10.0
1999
Power BASIC 2.3
Network Drives
Network Files
File operations in Coop-Mode under DOS
Remote Control under DOS
Hidden Tasks under Win9x
Windows Scripting Host
Kernel Calls under Win9x
Installation Routines under DOS
BMP File Format
SVGA-Graphics(VESA)
Dies war die letzte Version von Nettalk. Seit der ersten Version
hatte sich viel getan. Mittlerweile lag das Programm kompiliert
vor und unterstützte sogar Windows9x. Es konnte den Rechner
neustarten oder anhalten und beherrschte proprietäre Remote
Control Funktionen. Ausserdem konnte ein Administrator oder
ein priviligierter Benutzer mehr als nur noch chatten. So war
es möglich die Farben zu ändern, die Speicherauslastung
anzuzeigen oder Benutzer ähnlich aktueller Chaträume, zu kicken,
zu muten oder zu bannen. Es hatte sich viel getan an dem
Programm, doch mangels Verkaufszahlen und in anbetracht, des
leider drohenden Todes von MS-DOS, starb das Programm mit der
Version 10.0 aus. Rest in Peace my old Friend !
VTEXT
2000
Power BASIC 3.5 (PB/DOS)
VideoText
Chardrawing in Graphics Mode
In meiner Schule bestand damals die Möglichkeit einen
Datenstrom auf eine VHS Kassette zu speichern. Dieser wurde
dann unsichtbar neben dem normalen Bild gespeichert. Nun ging
es mir darum diesen Datenstrom wieder sichtbar zu machen. Die
Spezifikationen dafür lagen leider nicht offen, es gab
lediglich ein Programm, dass nicht als Source vorlag, sondern
als Kompilat. Es konnte Daten beliebiger Art in den Datenstrom
einbetten, nur blöderweise nicht auslesen. Dafür schrieb ich
dann dieses Programm. Es nimmt einen ausgelesenen Datenstrom
auf und interpretiert die einzelnen Steuercodes, die darin
enthalten sind, um den VideoText anzuzeigen, der in diesem
Datenstrom gespeichert wurde. Ein anderes Programm kümmerte
sich stets darum den Datenstrom von der VHS zu holen und als
ASCII abzulegen.
Screenshot
Screenshot
Screenshot
Screenshot
Tetrix / 3D-Tetris
2001
Power BASIC 3.5 (PB/DOS) / Assembler
SVGA-Graphics(VESA)
Assembler and PowerBASIC - the unholy alliance
Bitmap-Files as Background
3D-Arithmetics
Basierend auf den früheren Versuchen 3D-Gittermodelle
darzustellen, brachte ich den Schülern meiner damaligen
Arbeitsgemeinschaft an 3 Gymnasien bei, wie man Tetris
programmiert. Das hier ist das stolze Ergebnis, an dem ich
meinen Schülern Stück für Stück alles gezeigt habe. Links wird
eine dreidimensionale Vorschau des nächsten Tiles angezeigt,
den Rest kennt man ja aus jedem anderen Tetris auch. Es hat
sehr viel Spaß gemacht mit allen aus der Arbeitsgemeinschaft
den Code durchzusprechen und ihnen dabei die erweiterten
Grundlagen von Power BASIC und DOS, insbesondere dem VESA
Grafikstandard durchzusprechen. Die Funktionen für Sinus und
Cosinus musste ich in Inline-Assembler schreiben, da sie für
die 3D-Objekte häufig benötigt wurden und in PB zu langsam
waren. Der Quellcode setzt auf die von mir geschriebene
SVGA.SUB Grafikbibliothek auf und ist ansonsten recht
funktionstüchtig. An dieser Stelle noch einen Gruß an alle
AGler von damals. Die insgesamt 5 Jahre mit euch waren eine
schöne Zeit.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
ELIZA
2002
Power BASIC 3.5 (PB/DOS) / LISP
Artificial Intelligence
FuzzyLogic
Basierend auf dem uralten ELIZA-Code, der in LISP geschrieben
ist, erstellte ich diese ELIZA in Power BASIC. Mehr als nur
ein Proof-of-concept war sie ein beliebter Party-Gag und auch
im Informatikunterricht konnte man damit die Leute unterhalten.
ELIZA basiert auf Schlüsselwörtern, die es aus der
Benutzereingabe heraussucht und antwortet mit einer Liste
vorgefertigter Antworten darauf. ELIZA bedient sich der
englischen Sprachsyntax, da diese sehr leicht abzuändern ist.
ELIZA hat dabei nicht wirklich Intelligenz, sondern ist durch
FuzzyLogic an ihre Grenzen gebunden. Da sie sich ähnlich wie
ein Therapeut verhält, bringt sie den Benutzer dazu von sich
zu erzählen. ELIZA ändert dann das Gesagte ab, durch
Konjugation der Pronomen etc. und antwortet auf ihre Weise.
Screenshot
Screenshot
Screenshot
»SynthelicZ« Extended Console for CS1.5 v1.2
2003
PERL5.6
GUI Design(Perl/TK)
File operations in Coop-Mode(Perl)
Cooperation with the Half-Life-Engine
Half-Life/Counter-Strike Scripting Language
Dies ist eine zusätzliche Konsole zu der in der Half-Life
Engine bereits vorhandenen. Sie ermöglicht dem Spieler neue
Befehle in der HLConsole, welche diese dann über eine Datei an
meine Konsole weitergibt. Die SZXC bearbeitet diese daraufhin
und liefert ihre Ergebnis wieder in Form einer Datei an die
HL-Engine zurück. Nun bekommt der Spieler noch ein akustisches
Signal und kann eine Taste drücken, die einen Befehl ausführt,
um das Ergebnis der SZXC im Spiel dargestellt oder zu hören
zu bekommen. Wichtigste Funktionen sind die
Ingame-Cheaterabfrage ähnlich Cheating-Death, die Stats-Abfrage
des Servers und die Voice-Mitteilungen.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Homepage
2003
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS) / PHP
Dynamic Content(JS)
Webdesign
User management(JS)
Applications(JS)
File modifications(PHP)
JavaScript/PHP Remote Procedure Call
Plain Text Files as Data Source(JS)
Dies ist die erste Homepage des Project »SynthelicZ«,
sowie des Counter-Strike Clans {>SynthelicZ<]. Der Poll,
sowie die Linkliste werden mit JavaScript erzeugt. Der
Memberbereich und der Clanwarbereich sind durch eine JavaScript
Applikation navigierbar. Beim Eintragen von News, Mitgliedern
etc. ruft ein JavaScript-Code eine PHP-Datei auf, die auf dem
Server weitere JavaScript-Dateien ändert und dann eine Nachricht
an den aufrufenden Prozess zurücksendet. Somit ist es möglich,
Dateien auf dem Server durch JavaScript mittels PHP-RPC zu
modifizieren. Dies wird benutzt, um die News zu verwalten, die
Members und die Clanwars. Es gibt auch einen internen Bereich
in den sich Benutzer einloggen können. Die Benutzernamen, sowie
ein Passworthash werden dafür verschlüsselt ine einer JavaScript
Datei abgelegt und bei der Eingabe abgeglichen. Ist ein
Einloggen erfolgt, wird ein Cookie gesetzt, dass zudem die
Zugriffsberechtigungen in Form von Flags enthält. Das Design der
Seite wurde in Zusammenarbeit mit Naii'Ra Tee erstellt.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Webview Matrix
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS) / Windows Scripting Host (WSH)
Windows-Webviews
Dies ist ein Webview, mit dem ich den Standard-Webview von
Windows 98 aufbessern wollte. Hier machte ich erste Erfahrungen
mit den spezifischen Objekten, die nur Webviews benutzen.
Ausserdem bot sich hier ein Cross-Over aus WSH und JS an.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Webview Design 26
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS) / Windows Scripting Host (WSH)
Windows-Webviews
Binary Files threated as Text Files(JavaScript)
File Type AVI
File Type BMP
File Type MP3
File Type JPG
File Type GIV
File Type WAV
Document Object Model
Config-Files(JavaScript)
Dies ist mein zweiter WebView für Windows 98. Diesmal jedoch
sehr viel leistugsfähiger als der erste. Dieser liest mehrere
Dateitypen aus und zeigt detailierte Informationen zum
Dateisystem und der Datenträgerbelegung an. Unter anderem werden
Informationen zu den obigen Dateitypen mit JavaScript eingelesen,
was sich durchaus schwierig gestaltet, da erst ein Wrapper für
Binärdateien geschrieben werden musste, um diese mit einem
OpenTextFile zu verarbeiten. Bei AVI werden die Streams
identifiziert und die enthaltenen Audio- und Videocodecs
ermittelt. Bei MP3 werden sogar die in den Tags enthaltenen
Informationen angezeigt.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Clanpage
2004
HTML / PHP / Document Object Model (DOM) / Cascading Style Sheets (CSS)
File Upload(PHP)
Plain Text Files as Data Source(PHP)
Diese Seite wurde entwickelt, um dem Counter-Strike Clan des
Project »SynthelicZ« gerecht zu werden. Die Seite
unterstützt Add-Ins wie zum Beispiel ein Picture of the week
und wurde in Zusammenarbeit mit Stormy geschaffen.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Transferpage
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
none
Dieser Transferpage war in der Zeit online, zu der gerade die
alten Homepages auf die gemeinsame neue umgestellt wurden. Dies
dauerte ca. 4 Wochen, in denen die Besucher mit dieser
Zwischenseite auskommen mussten.
Screenshot
Screenshot
»SynthelicZ« Homepage
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Window-coding(JS)
Eventhandling(JS)
Cross-Browser(JS)
Dynamic Design(JS)
Dynamic Skinnable Elements(JS)
typical GUI-Elements (Icons, Windows, Desktops)(JS)
Extended Objects(JS)
Mit diesem Projekt soll sowohl ein Proof-of-Concept geliefert
werden, als auch eine umfangreiche GUI mitsamt virtuellen
Datenträgern zur Verfügung gestellt werden. Es gibt virtuelle
Anwendungen, die in Form von IFRAMES oder DIVs
bereitgestellt werden. Das ganze ist zudem modular, so dass
im Betrieb Objekte eingeladen und verwendet werden können.
Natürlich findet sich auch allerhand Inhalt zum Project
»SynthelicZ«, sowie zum CS-Clan des Projektes.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Terrorhuhn
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Sprites(JS)
Event-Handling(JS)
Mouse-Collision-Detection(JS)
Games programming(JS)
Diesen Moorhuhn-Clon habe ich in einer 30-minütigen Pause in
meiner Ausbildungszeit geschrieben. Ein Mit-AZUBI meinte es sei
nicht möglich und ich wollte es halt einfach ausprobieren. Naja
das Ergebnis ist zufriedenstellend, auch wenn ich nicht den
Drang verspürte eine Highscore-Liste zu machen oder ein Menü
oder sonstwas. Ich habe mich lediglich auf das eigentliche
Spielprinzip ohne Nachladevorgänge oder GameOver konzentriert.
Natürlich wäre das auch alles überhaupt keine Schwierigkeit.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Intranet Gruppenseite
2004
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Event-Hanling(JS)
Dynamic-Content(JS)
Diese Seite wurde entwickelt, um zwei AZUBI-Gruppen einen
Instranet-Auftritt zu ermöglichen. Das Thema "Tresor" wurde
von den Gruppen ausgewählt und dann mittels JavaScript von mir
umgesetzt. An der Oberkante befindet sich eine Art Menu, in
welchem die Namen aller Gruppenmitglieder mittels der weißen
Pfeile scrollbar sind. Dazu findet man ein kleines Icon, das
die jeweiligen Gruppen voneinander unterscheidet. Bewegt man
die Mouse über einen Namen erscheint am unteren Rand das
Gesicht der Person, welches wieder verschwindet, sobald man
die Mouse vom Namen weg bewegt. Klickt man auf den Namen oder
wählt mittels der Pfeile den nächsten oder vorherigen Eintrag
an, öffnet sich der Tresor je nach Gruppe auf der linken oder
rechten Seite und gibt einen Blick auf den Steckbrief der
Person, Gruppenphotos oder ähnlichem frei. Am Ende jedes
Steckbriefes findet sich ein Link zu einer ganz persönlichen
Seite der geweiligen Mitglieder. Wird dieser geklickt, öffnen
sich beide Tresortüren und geben den Blick frei. Transparent
scheinen dann von unten 2 Mappen mit der Aufschrift
"Top Secret" durch. Natürlich musste ich die Gruppeninhalte
für die Screenshots aus Datenschutzgründen entfernen.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
JSP-Login and Webshop
2005
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS) / Java Server Pages(JSP)
Java Beans
SQL Connection(JAVA)
Java Server Pages
WebShop(JSP)
Dies entstand in einer Java-Schulung, als man mir die
Grundkonzepte von Java Server Pages vermittelte. Ich probierte
dann natürlich gleich einiges aus und so entstand das
Login-Modul mit Datenbankanbindung und einen Tag später ein
kleiner Webshop. Die Artikelbilder sind auf den Screenshots
leider nicht enthalten, da der Tomcat etwas streikte. Im
Original funktionieren sie aber.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
ICS/ICFW Portmapper
2005
Windows Scripting Host (WSH) / Visual BASIC Script (VBS)
Windows Network Libraries(VBS)
Windows Internet Connection Sharing(VBS)
Dieses Script entstand aus der Not, dass es bei Windows XP
nicht möglich ist ganze Port-Ranges in der Firewall umzuleiten,
bzw. freizugeben. Also schrieb ich ein Script, dass es
ermöglicht Port-Ranges in die Firewall einzutragen und zwar
Port für Port. Es bedient sich dabei einiger Active-X Objekte,
die von Microsoft bereitgestellt werden unnd nimmt dadurch
Änderungen an den Firewall Einstellungen vor. Es kann Ports
und Port-Ranges hinzufügen und löschen. Für jemanden der mal
ebend 100 Ports freigeben oder weiterleiten muss ist das eine
echte Hilfe.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Designstudie
2005
HTML / Cascading Style Sheets (CSS)
WebDesign
Dies ist lediglich eine Designstudie. Ein Freund bat mich mal
etwas in diese Richtung am Beispiel der
»SynthelicZ« Seite zu versuchen und das ist das
Ergebnis. Ich kam zu dem Schluss, dass dies zwar der allgemein
gängigen Praxis vieler damaliger Clanseiten entsprach, jedoch
nicht der Stil von »SynthelicZ« wäre.
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Fensterstudie
2005
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Pixel by Pixel Layout
Hierbei ging es darum für eine andere AZUBI-Gruppe den Windows
Explorer möglichst pixelgenau nachzubauen und dabei den
rechten Teil navigierbar zu machen. Man kann also im rechten
Teil dynamischen Inhalt durch JavaScript anzeigen und kommt
durch einen Klick auf den Zurück-Button in der oberen Leiste
stets zum Ausgangspunkt zurück. Das ganze wurde mit Inhalt
versehen und später eingereicht. Der Vorschlag wurde vom
Administrator angenommen und ins Intranet gestellt.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
DIVX Calculator
2005
Power BASIC 3.5 (PB/DOS)
DIVX Rate Calculation
Dieses Programm schrieb ich, um eine Anzeige über mögliche
Bitraten von Filmen einer bestimmten Länge zu bekommen. Es
errechnet die Bitrate eines Videostreams in Abhängigkeit zu
seiner Länge, bezogen auf bestimmte Größenangaben, zB eine CD.
Beim Start kann man eine Filmlänge in Minuten angeben, die
dann ebenfalls berechnet und in der unteren Tabellenzeile
angezeigt wird. Links sieht man die einzelnen Filmlängen,
während oben die Grenzwerte zu sehen sind. Die Werte in der
Tabelle geben an, wie hoch die Bitrate des Films sein muss,
damit seine Gesamtgröße genau innerhalb dieses Grenzwertes
liegt. Die Farben zeigen an, wie gut die Bildqualität bei
dieser Bitrate noch ist. Dabei kann man davon ausgehen, dass
alles was grün oder blau ist, recht gut aussieht. Hellrot sind
Bitraten, die über 15000kBit/s liegen, was wohl eher
Verschwendung von Speicherplatz ist. Richtig fies sieht das
Bild meist bei den braunen und dunkelroten Bitraten aus, denn
da nehmen die Blöcke schon Überhand. Gelb ist die
durchschnittliche Qualität einer VCD/SVCD. Man kann sich mit
dem Cursor durch das Feld bewegen und erhält unnten die
genauen Werte angezeigt. An Stellen wo n/A in der Tabelle
steht, müsste die Bitrate des Videos negativ sein, da bereits
der Audiocodec mit 224kBit/s zu Buche schlägt und den
gegebenen Speicherplatz ausschöpft.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
JavaScript Water Effects
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Microsoft Filter and WebDesign
In dieser kleinen Demo ging es eigentlich nur darum einen
aufwendigen Effekt mit Hilfe der Microsoft Web Filter zu
generieren. Ist zwar nur auf dem IE bzw. Browsern mit der IE -
Engine lauffähig, für diese Demo war allerdings auch nicht mehr
von Nöten. Geschrieben habe ich dies, nachdem mich in der
BBi jemand gefragt hat, ob es denn generell möglich sei einen
wasserähnlichen Effekt mit JavaScript in Echtzeit zu
generieren. Hier ist das Proof-of-Concept dazu.
Screenshot
Screenshot
»SynthelicZ« Extended Console for CS1.6 v2.0
2006
VBS / HTML4.01 / CSS / JS2.0 / WSH5.6 / DOM
File Operations in Coop-Mode(WSH/VBS)
Cooperation with the STEAM-Engine
Half-Life/Counter-Strike Scripting Language
Speech Synthesis with WSH/VBS
Dies ist eine zusätzliche Konsole zu der in der Half-Life
Engine bereits vorhandenen. Sie ermöglicht dem Spieler neue
Befehle in der HLConsole, welche diese dann über eine Datei an
meine Konsole weitergibt. Die SZXC bearbeitet diese daraufhin
und liefert ihre Ergebnis wieder in Form einer Datei an die
HL-Engine zurück. Nun bekommt der Spieler noch mittels
Sprachausgabe einen Hinweis und kann eine Taste drücken, die
einen Befehl ausführt, um das Ergebnis der SZXC im Spiel
dargestellt zu bekommen. Wichtigste Funktionen sind die
Ingame-Cheaterabfrage ähnlich Cheating-Death und die
Stats-Abfrage des zum Spieleserver gehörenden Stats-Servers.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
PHP Webshop
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
MySQL Database Connections(PHP)
User Management(PHP)
WebShop(PHP)
Dieser WebShop entstand in der Berufsschule innerhalb eines
2-mann kleinen Entwicklungsteams. Das Modul für die
Benutersessions ist nicht von mir sondern von tinitram. Das
ganze ist ein Auktionshaus, wie ebay-nur kleiner. Prinzipiell
liegen sämtliche Produkte und Benutzer in einer SQL-Datenbank.
Es gibt kein Design der Oberfläche, daher dieser Nur-Text-Look.
Dafür war eine dritte Person gedacht, jedoch war diese
innerhalb des Projektzeitraums von gerade mal 2 Wochen krank.
An diesem Projekt lässt sich sehr gut ein mehrschichtiges
modulares Konzept erkennen, dass im Fachkonzept auch als
solches bezeichnet ist.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Isometric JavaScript Engine(beta)
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Isometric graphics engine(JS)
Staggered Maps(JS)
Dies ist ein Projekt an dem ich zur Zeit arbeite. Es soll eine
Spieleengine in JavaScript werden, die die Spielfläche als
Isometrische Karte darstellt, ähnlich wie Civilization oder
Diablo. Eventuell wird das ganze mit Karten in Plain Text
Files funktionieren. Mal schauen, ob es bei einer Studie,
einem Proof-of-concept oder einem beliebten MMORPG endet.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
JavaScript Process Kernel
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Virtual Processes(JS)
Ein als Proof-of-concept gedachtes JavaScript Kernel. Es kann
virtuelle Prozesse ausführen, entweder indem aus ein Objekt
erstellt oder eine Funktion aufruft. Natürlich kann es auch
Prozesse beenden und Nachrichten mit dem Prozess austauschen.
Ziel ist eine Mehrschichtarchitektur, die ähnlich wie in
richtigen Betriebssystemen mit Multitasking und GUI arbeitet.
Das alljährlich erneuerte GUI-System der
»SynthelicZ« Seite soll mit diesem Kernel und dem
Dynmischen JavaScript Lader zusammengeführt werden und so als
Arbeitsoberfläche für die Besucher dienen.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Transferpage
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Cross-Browser CSS
Dieser Transferpage war in der Zeit online, zu der gerade die
alte Homepage auf die neue umgestellt wurde. Dies dauerte ca.
2 Wochen, in denen die Besucher mit dieser Zwischenseite
auskommen mussten.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Homepage
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Window-coding(JS)
Eventhandling(JS)
Cross-Browser(JS)
Dynamic Design(JS)
Dynamic Skinnable Elements(JS)
typical GUI-Elements (Icons, Windows, Desktops)(JS)
Extended Objects(JS)
Virtual File System(JS)
ObjectViewer/-parser(JS)
Encryption methods(JS)
Tree-Parsing(JS)
Mit diesem Projekt soll sowohl ein Proof-of-Concept geliefert
werden, als auch eine umfangreiche GUI mitsamt virtuellen
Datenträgern zur Verfügung gestellt werden. Außerdem ist ein
Verschlüsselungstool, sowie ein Objekt-Viewer enthalten.
Es gibt virtuelle Anwendungen, die in Form von IFRAMES oder DIVs
bereitgestellt werden. Das ganze ist zudem modular, so dass
im Betrieb Objekte eingeladen und verwendet werden können.
Natürlich findet sich auch allerhand Inhalt zum Project
»SynthelicZ«, sowie zum CS-Clan des Projektes.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
CSS Fensterstudie
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
CSS Positioning
CSS Cross-Browser
Bei diesem Projekt geht es darum visuelle Skins nicht wie bisher
über JavaScript, sondern allein durch CSS zu realisieren.
Dies soll einen Geschwindigkeitsgewinn in der nächsten
Fenster-basierten Oberfläche bringen. Außerdem soll
damit die browserübergreifende Engine zuverlässiger
arbeiten.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« Askengine / D&D Characterhelper
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Dynamic Rulesets
Dynamic Content
Dynamic GUI
Mix of local and web content
Cross-browser
In Ahnlehnung eines Charakterberaters für das Spiel
Dungeons&Dragons habe ich diese Fragebogen-Engine
geschrieben. Sie ist universell einsetzbar und kann mit den
verschiedensten Fragen und Regelwerken gefüttert werden, um jede
Art von Fragebogen zu simulieren und die Antworten des Benuters
auszuwerten. Sie enthält weiterhin einen Editor, mit dem
sich die Auswirkungen jeder Frage bearbeiten lassen, so dass
es mit wenigen Mouse-Clicks möglich ist einen Fragebogen
zu generieren. Der Charakterberater für
Dungeons&Dragons war das erste Regelwerk und der erste
Fragenkatalog für die Engine. Er dient dazu den jungen
Rollenspielern bei ihrer Wahl eines Charakters zu helfen, indem
er anhand ihrer Antworten auf die gestellten Fragen den
Charakter zusammenstellt, der ihnen am nächsten kommt.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Containermanager
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS) / Active Server Pages (ASP) / VisualBASIC Script (VBS) / OracleSQL
Dynamic GUI
Parser
User management(ASP)
Ein Projekt hinter dem viel Arbeit steckt ist der
Containermanager. Er hat einige tausend Zeilen Quellcode und
wurde komplett mit einem Benutzermanagement, oder
Benutzerverwaltung, der Implementation von Gruppen und
Kategorien und umfangreicher Datenbankanbindung entwickelt.
Das Projekt kann jede Art von Daten darstellen, solange die
Datenstruktur einem gewissen Schema folgt. Grundsätzlich gibt
es eine hierarchische Struktur bei der Anzeige, die sich in
Ober- und Unterklassen teilt. Dabei werden die Oberklassen
durch die umrandeten DIVs dargestellt und die Unterklassen
als Blöcke innerhalb der Oberklassen. Der Containermanager ist
sehr flexibel und wurde auf den Screenshots als
Versionverwaltung verwendet. Ebenso wäre er geeignet alle
Computer eines Unternehmens zu verwalten oder eine Übersicht
sämtlicher Server und den auf ihnen laufenden Applikationen,
die Auslastung derselben oder auch für ganz andere Dinge.
Ein Parser kann sogar Abhängigkeiten innerhalb verschiedener
Tabellen verfolgen und Datenblöcke farbig darstellen. Es
können sogar mehrere verschiedenartige Oberklassen auf einer
Seite dargestellt werden, die ebenfalls verschiedenartige
Unterklassen enthalten können. Dieses System kommt in einer
modifizierten Version momentan in der T-Systems zum Einsatz,
weswegen ich leider keinen Quellcode dazu veröffentlichen darf.
T-Systems verwaltet damit seine Server und ihre Applikationen
und stellt eine Verbindung zwischen Servern und Projekten bzw.
Umgebungen und Systemen her. Dort liefert der Containermanager
wichtige Aussagen darüber zu welchen Systemen welche Server
gehören und ob Server eventuell völlig unausgelastet sind.
Benutzer die das Tool benutzen können sich zudem ihre
Ansichten umsortieren und Datensätze ausblenden, die für sie
uninteressant sind. Bei der Entwicklung wurde peinlichst genau
auf CSS und HTML Konformität geachtet und auch "barrierefreies"
Benutzen für sehbehinderte Menschen ist möglich.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
»SynthelicZ« History
2006
HTML / JavaScript (JS) / Document Object Model (DOM) / Cascading Style Sheets (CSS)
Dynamic GUI
Cross-Browser
Text-Browser compatible
Tableless Design
Um meine History und meine Referenzen benutzerfreundlich
umzusetzen und trotzdem eine JavaScript-freie Version darbieten
zu können, wurde diese Seite erzeugt. Sie dient einzig und
allein der Navigation durch meine persönliche
Programmiergeschichte und bietet auch mir selbst einen
Überblick was ich schon gemacht hab und was nicht.
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot
Screenshot