Service-Fassaden – Ein weiteres Entwurfsmuster leicht erklärt

Wo es vor nicht allzulanger Zeit schon einmal um Design Patterns (Entwurfsmuster) ging (Wir erinnerun uns an’s Singleton) will ich heute mal versuchen eine leicht verständliche Erklärung von Service-Fassaden zu geben. Eine Service-Fassade ist ein Entwurfsmuster – genauer gesagt ein Strukturelles Muster, da es eine Struktur abbildet (Das Singleton war ein Erzeugendes Muster, da es eine Struktur anlegt) – zur Darstellung einer Schnittstelle zu stark technischen Systemen die selten von außen angesprochen werden.

Die Fassade stellt nun Funktionen dieser Systeme zur Verfügung und verteilt eingehende Funktionsaufrufe an selbige.
Dadurch wird das Prinzip der Losen Kopplung unterstützt. Sprich, Schittstellen zwischen 2 Systemen werden nich hartkodiert sondern über eine Fassade geleitet die die Services der SubSysteme anderen Systemen zur Verfügung stellt. Ändert sich nun eines dieser SubSysteme, muss nur die Fassade angepasst werden und nicht das aufrufende System. Das Ändern der Fassade ist wesentlich leichter und ist im Regelfall schneller erledigt.

Continue reading “Service-Fassaden – Ein weiteres Entwurfsmuster leicht erklärt”

[Plugin] amBx-Plugin für’s 3D GameStudio

ambxHallo liebe Leute, heute stelle ich ein neues Plugin für’s 3D GameStudio vor. Dieses erlaubt Philips Ambilight Hardware auch in der Spieleengine zu benutzen um Wind, Lichter oder physische Eindrücke in Spielen oder Anwendungen realistischer darzustellen und den Benutzer auf ganz anderen Sinneskanälen anzusprechen als er es gewohnt ist.

Was ist amBx?
AmBx ist eine Hardwarespezifikation um verschiedenfarbige Lampen, Ventilatoren und Vibrationseinheiten aus Computerprogrammen heraus zu steuern. Hauptsächlich findet die Hardware in Spielen Verwendung.

Beispiel 1
Beispiel 2
Beispiel 3

Dieses Plugin ist eine DLL die auf herkömmlichen Wege in die Engine eingebunden wird (DLL ins “Plugin”-Verzeichnis kopieren, Funktionen als Prototypen in die Headerfiles eintragen, fertig). Ihr findet unten 2 Archive, das Src-Archiv zeigt wie die DLL in ein Spiel eingebunden wird, das Bin-Archiv zeigt die fertige Anwendung.

Beispielspiel (bin)
Beispielspiel (src)
Benötigte DLL (siehe “Was ist wichtig?”)

How to use (Englisch – pdf)

Continue reading “[Plugin] amBx-Plugin für’s 3D GameStudio”

[Tool] TextureTiles – Gekachelte Texturen vergrößern

Solltet ihr für Grafiken, Texturen, etc Bilder vergrößern müssen, dann ist dieses kleine Tool genau das richtige für euch. Es erweitert das Ursprungsbild in Breite und Höhe um einen frei wählbaren Faktor.

Hintergrund ist, dass ich mich gerade in Blender einarbeite und viele Texturen die man erstellt oder im Netz findet einfach zu klein sind.

Den Download gib’s hier: DOWNLOAD

ASCII-Starwars – Kleine Telnet-Spielerei

starwars_asciiIch bin grad auf eine ganz coole Story im Internetgestoßen. Ist zwar laut Forum schon etwas Älter aber ich kannte es noch nicht! Wer einen ganz witzigen Ascii-Art-Film sehen möchte, muss folgendes tun:

  1. Windows Start -> Ausführen… -> “Telnet” eingeben -> Enter drücken
  2. o” eingeben -> Enter drücken
  3. towel.blinkenlights.nl” eingeben -> Enter drücken

Das ganze ist nix Böses, ihr bekommt lediglich eine etwas längere Willkommensmeldung in Ascii-Art-Form 🙂

Vonwegen Deutschland = Servicewüste…

Ring of DeathLetzten Dienstag hatte ich die Idee meine längst verstaubte XBox360 auszupacken und nocheinmal den Versuch starten Fable durchzuspielen. Nach 30 Minuten blieb die Kiste hängen, ich dachte mir nix bei, startete neu und plötzlich: Ring of Death, sprich 4 leuchtende rote Lämpchen an der Vorderseite der Konsole die signalisieren, dass das gute Stück gerade wegen Ãœberhitzung hops gegangen ist.

Naja, war ja noch Garantie drauf! Oder nicht? Dummerweise: Nein! Die war schon nach einem Jahr abgelaufen und ich ärgerte mich langsam, dass eine 2 Jahre alte Konsole, die noch nichtmal viel benutzt wurde so plötzlich den Geist aufgab.

Continue reading “Vonwegen Deutschland = Servicewüste…”

Nach Winter kommt Spring

Einführung
Nachdem der erste richtige Job meines Lebens begonnen hat, hatte ich auch gleich die Chance mit spärlichen Vorkenntnissen in mein erstes Kundenprojekt zu kommen. Kostenlos versteht sich. Kunde war ein großer deutscher Finanzdienstleister der beschlossen hatte einige Kernprozesse seines IT-Umfelds auf Java umzustellen.
Darunter wurde in dem Framework auch Spring verwendet. Ein Schlagwort, dass jedem Informatikstudenten schonmal untergekommen ist, aber von dem nur die wenigsten wissen was genau Spring tut.
In diesem Artikel will ich mal mit wenigen Sätzen versuchen das so einfach wie möglich zu verdeutlichen.

Unser Beispiel
Da ich gerne an Beispielen erkläre, nehmen wir uns hier ein Auto vor. Ein Auto kann nur fahren, wenn ein funktionierender Motor darin verbaut ist, wenn es einen gefüllten Tank enthält und wenn ein Fahrer samt Führerschein am Steuer sitzt. Diese Bedingung soll hinreichend sein um unser sehr rudimentäres Auto zum Fahren zu bringen.

Die Vergangenheit
Wenn wir jetzt die Eben aufgezählen Objekte auf die Informatik mappen, sprich eine Klasse CAuto, CMotor, CTank, CFahrer und CFuehrerschein erstellen, dann brauchen wir von jeder Klasse eine Instanz die wir ja gewöhnlich per Constructor wiefolgt erstellen:

CMotor meinMotor = new CMotor();
CTank meinTank = new CTank(true); //true = ist gefüllt
CFuehrerschein meinFuehrerschein = new CFuererschein();
CFahrer meinFahrer = new CFahrer(meinFuehrerschein);
CAuto meinAuto = new CAuto(meinMotor, meinTank, meinFahrer);

Jedesmal, wenn wir also mit “meinAuto” arbeiten müssen, müssen wir alle anderen Objekte auch definieren und erstellen. Das sorg natürlich für eine riesige Menge an Speicher die unnützerweise verbraucht wird und jeder Menge Zeilen die sich immer wieder wiederholen.

Continue reading “Nach Winter kommt Spring”

Die einzig wahre SQLite Komponente für Delphi

sqlite1

Da ich in den letzten Tagen wieder ein bisschen auf verschiedenen Datenbanken unterwegs war und ENDLICH mal die Administration einiger Anwendungen über ein zentrales Programm regeln wollte, habe ich eine SQL-Komponente gesucht die ich in meiner Delphi 7 Personal Edition benutzen kann ohne mir teure Zusatzpackages kaufen zu müssen.

Da im Internet viel Quark steht und es geschätzte 1000-2000 verschiedene Komponentensammlungen gibt, hab ich hier mal die beste rausgesucht, die ohne Weiteres ihren Dienst tut.

Zu finden ist diese HIER

Das eigene Betriebssystem – Teil 1

Edit: Dieses Tutorial is veraltet, hier gibt es die neue Version.

Hallo liebe Leute,
heute wollen wir uns mal an etwas besonderes wagen und zwar an die Entwicklung eines kleinen Betriebssystems. Natürlich werden wir damit nicht an Windows / Linux rankommen (noch nicht mal an DOS) aber immerhin erhaltet ihr einen kleinen Einblick darin, wie der Ladeprozess eines Betriebssystems funktioniert, was alles in einem Kernel steckt und wieviel Arbeit es sein muss etwas Windows-ähnliches auf die Beine zu stellen 😉

Was benötige ich?
Zur Entwicklung brauchen wir im Prinzip nur ein Tool, und zwar einen Assembler der aus dem Assemblercode den wir schreiben werden Maschinenbytecode generiert. Ich empfehle NASM da dieser Assember frei verfügbar ist.
Jetzt könnt ihr entweder im Notepad entwickeln oder ihr besorgt euch eine vernünftige Umgebung mit Syntaxhighlighting wie etwa Notepad++. Gut, jetzt haben wir alles was wir zum Programmieren brauchen, aber wie testen wir was wir geschrieben haben? Da haben wir im Prinzip 2 Möglichkeiten:

  1. Wir besorgen uns einen alten PC und spielen unser Geschreibsel jedesmal auf eine Diskette um es dann laufen zu lassen.
  2. Wir besorgen uns eine Virtual Machine. Eine Virtual Machine simuliert einen Computer samt Hardware und BIOS. Die meisten haben virtuelle Laufwerke in die wir Images einlesen können, unabhängig davon ob in das Disketten- oder ins CD-Laufwerk. Als Virtual Machine empfehle ich Virtual PC von Microsoft da es schlank und kostenlos zu haben ist. Wer sich schon ein bisschen auskennt kann natürlich auch zu dem kostenfreien VM Ware Player oder zu Bochs greifen.

Dann brauchst du noch das kostenlose Tool RaWrite damit du Diskettenimages erstellen kannst um diese dann in die Virtual Machine zu laden und/oder auf Diskette zu schreiben.

Continue reading “Das eigene Betriebssystem – Teil 1”