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”

Ein bisschen Mathe – Bewegungen auf der Kreisbahn

kreisbahnNeulich in der Vorlesung: Jan, Thomas und meine Wenigkeit saßen in der Pause zusammen und haben darüber nachgedacht wie man sich mathematisch auf einer Kreisbahn entlangbewegen kann. Uns war klar, dass man nicht um den Einsatz von Sinus und Cosinus herumkommt, wie es jedoch genau ging wollte uns partout nicht einfallen.
Natürlich hätten wir im Internet nachsehen können welches sicherlich die richtige Lösung parat gehabt hatte, aber wenn einen erstmal der Ergeiz gepackt hat, dann möchte man das ganze auch selber hinbekommen 😉 Nach einigen Tagen Pause habe ich das Problem heute wieder aufgegriffen und auf dem Rad ist mir die Lösung eingefallen.

Continue reading “Ein bisschen Mathe – Bewegungen auf der Kreisbahn”

Was ist ein Singleton?

Da wir letztens bei statischen Variablen waren habe ich mir gedacht ich setze noch einen drauf und erkläre das nächste Thema der theoretischen und praktischen Informatik 🙂

Was ist ein Singleton?
Eigentlich ist das ganze einfach zu erklären. Wir haben wiedermal eine Klasse, z.B. CBundeskanzlerin. Da es ja bekanntlich nur eine Bundeskanzlerin gibt müssen wir vermeiden, dass mehrere Instanzen dieser Klasse erzeugt werden. Und was hilft uns dabei? Richtig, das Singleton!
In der praktischen Programmierung ist das Singleton meistens eine Basisklasse von der genau die Klassen erben, von denen später nur eine Instanz existieren soll. Heißt in unserem Beispiel: Die Klasse CBundeskanzlerin erbt von der Klasse CSingleton.

Continue reading “Was ist ein Singleton?”

Was sind statische Variablen?

Die Frage hatten wir im Studium schon oft und keiner konnte sie wirklich beantworten. Da ich sie heute 3 Leuten erklärt habe und alle mit einem “Ahhhh!” reagiert haben, dachte ich, ich schreib schnell einen kurzen Artikel drüber 😉

Variablen, die mit der Notation static versehen sind existieren für jede Klasse nur exakt einmal. Wenn wir jetzt beispielsweise in C++ eine Klasse CPerson haben und darin eine Variable mit static int nAlter; deklarieren haben wir dadurch die Möglichkeit das Alter aller Instanzen unserer Klasse durch eine einzelne Zuweisung zu ändern!

Continue reading “Was sind statische Variablen?”

WiiMote via Standard-Bluetoothtreiber mit PC verbinden

Im Internet steht oft geschrieben, dass man für das Verbinden des Wii-Controllers die Blue-Soleil-Treiber erwerben muss. Hier will ich mal diesen Irrglauben beseitigen indem ich in ein paar Schritten erkläre, wie man seine WiiMote auch mit den Standard-Treibern mit Windows verbinden kann ohne ca 20€ für neue Software ausgeben zu müssen. Nich lang schnacken, los geht’s: Rechtsklick auf das Bluetooth-Tray-Icon unten rechts neben der Uhr und dort “Bluetooth-Gerät hinzufügen” auswählen.

Continue reading “WiiMote via Standard-Bluetoothtreiber mit PC verbinden”