Manus Blog twitter
Manus Blog Rss

Altes ausgegraben und neu verpackt

Veröffentlicht von Manu in Allerlei, Computer, Games am 12-03-2010

Tags: , , , , ,

0

Durch Zufall (eigentlich war es keiner, bin durch Xooyoos About Seite draufgestoßen) wuselte ich auf der Internet Wayback Machine archive.org herum. Da konnte ich es mir natürlich nicht verkneifen und ich schaute mal nach, ob man man alte Website dort noch findet. Und Tatsache, meine alte Seite inkl. aller Downloads fand ich dort. Auch mein erstes, selbstprogrammiertes Spiel war dort noch, das möchte ich Euch natürlich nicht vorenthalten.

Das Spiel heißt CrashCars und ist in der Version 0.9 die aktuellste, die es auf dem Markt gibt. ;-) Programmiert wurde es 2005 mit Delphi 5 und den DelphiX Komponenten. Die Originalbeschreibung von damals lautet:

Kleine Vorgeschichte:

Du kommst gerade von der Arbeit. Dein Chef macht dir z.Z. richtig Stress.

Als Du nach Hause fährst, bemerkst Du, dass Du auf der falschen Seite der Autobahn bist. Du bist zum Geisterfahrer geworden!

Da niemand einen Geisterfahrer gerne hat, breiten sich die anderen Fahrer auf der Straße aus und versuchen dir den Weg abzuschneiden.
Mal sehen ob es ihnen gelingt…

Ich glaube, Bilder sprechen mehr als Worte, deswegen gibt es hier ein paar kleine Screenshots und den Download natürlich auch. Viel Spaß beim Ausprobieren :D

Download: CrashCars (Größe: 681.17 KB, Dateityp: zip, Downloads: 5)

Die BDE ist weg, die BDE ist weg…

Veröffentlicht von Manu in Allerlei am 10-03-2010

2

… ja, so hört es sich an, wenn die Umstellung einer Software sich langsam aber sicher dem “Ende” zuneigt. Zu Ende ist es natürlich “nie”, man findet immer wieder eine kleine Sache, die man ändern kann. Dennoch möchte ich einen kleinen Überblick bieten, wie die Umstellung bisher lief. Falls ihr den vorangegangen Artikel noch nicht gelesen habt, solltet ihr das zuerst tun.

TDBScroll

Wie im vorangegangen Artikel beschrieben, tauschte ich das TDBScroll gegen ein QuantumGrid von DevExpress aus. Erstaunlicherweise funktionierte das recht gut. Ein bisschen Logik musste geändert werden (was das Sortieren der Spalten betrifft) und noch ein paar Properties wurden getauscht, dann war die Umstellung von alt zu neu eigentlich schon durch. Da das QuantumGrid etwas flexibler ist, wurde es farblich etwas angepasst.

TQuery & Co.

Die Umstellung der bei Delphi beigelegten TQuery & Co. Komponenten zu den AnyDAC von RemObjects war eine doch etwas Nerven zehrende Arbeit. Etwaige in den Komponenten eingestellte Felder konnten direkt übernommen, doch beim Start flogen einem die SQL-Fehlermeldungen um die Ohren (siehe vorangegangener Artikel “BDE”). Hier und da ein bisschen Suchen und Ersetzen erledigte das ganze. Dennoch wollte es immer noch nicht so, wie es sollte. In der BDE war es möglich, eine Spalte mit “+” zu bezeichnen. FireBird bzw. AnyDAC schien das nicht ganz so zu mögen, deswegen musste die Spalte in “Plus” (wer hätte es auch anders gedacht) umbenannt und etwaige Stellen im Programm angepasst werden.

TStringLoader

Diese ominöse Komponente wurde nun endlich aus der Software verbannt und gegen ein neues System getauscht. Wie das System funktioniert, möchte ich kurz und knapp erläutern: In der FB-Datenbank gibt es eine Tabelle “LANGUAGES”, diese beinhaltet als Spalten “ID” (Int, AutoInc), “LangCode” (VarChar, Unique) sowie für jede Sprache eine einzelne Spalte. Der LangCode ist quasi das Herzstück des Systems. Durch diesen Code werden die Sprachen ins Programm reingeladen. Jeder LangCode in der Datenbank hat eine entsprechende Variable im Programm. Ganz grob gesagt passiert folgendes:

Query.SQL.Text := 'SELECT German FROM Languages WHERE langcode = 'langMainFormCaption';
Query.Open;

langMainFormCaption := Query.FieldByName('German').AsString;

MainForm.Caption := langMainFormCaption;

Von diesen LangCodes gibt es im Moment ca. 340 Stück. Eine Klasse übernimmt das Laden der Sprache. Natürlich wird nicht für jeden LangCode eine eigene SQL-Abfrage ausgeführt. Ursprünglich hatte ich es so, dass für jeden LangCode eine SQL-Abfrage ausgeführt wird, aber so dauerte der Wechsel der Sprache doch gerne mal zwei Sekunden, das war nicht akzeptabel. Durch eine kleine Änderung, alle LangCodes auf einmal zu laden und per Schleife die richtigen Felder zuzuweisen, wechselt die Sprache nun in weniger als einer Sekunde. Neue Sprachen sind nun relativ schnell hinzugefügt. Da das Programm nun auch Unicode kann, ist auch Chinesisch kein Problem mehr. ;-)

BDE

Wie die Überschrift schon sagt: Die BDE ist weg! Die Anwendung läuft nun wunderbar mit einem FireBird embedded, sogar über das Netzwerk geht es prima (was die gemeinsame Entwicklung deutlich vereinfacht hat!). Administriert wird die DB mit IBExpert, ein Muss, wenn man FB-DBs administriert.

WPTools

Die neue WPTools-Version ist nun auch am Laufen. Ein bisschen enttäuscht vom Installer bin ich schon, da zahlt man mehrere hundert Euronen und man darf die Source selbst kompilieren und die Suchpfade entsprechend hinzufügen, dass hätte man auch automatisiert machen können, aber sei’s drum. Leider waren die RTF-Dateien, die damals mit WPTools 4 erstellt wurden, alles andere als brauchbar in der Version 6. Andere Linienstärken, andere Ausrichtungen, andere Darstellung bzw. Einbindung von Bildern. Der hauseigene Editor ist übrigens eine Zumutung und sollte man direkt in den Papierkorb werfen, den Schrott kann man nicht bedienen. Man kann allerdings getrost auf Word zurückgreifen und dort alles bearbeiten. Deswegen mussten alle Datenblätter und Bestellvorlagen neu erstellt werden.

TeeChart

Die TeeChart Komponenten laufen nach wie vor, auch in der neuen Version. Was mich hier allerdings sehr ärgert ist, dass nach einer frischen Installation gleich mal eine Fehlermeldung kommt: Eine Unit im Package xyz.bpl sei schon im Package abc.bpl vorhanden, weswegen xyz.bpl nicht geladen werden konnte. Da ich die Komponenten ohne Source gekauft habe, musste ich eines der Packages in die Mülltonne kloppen (brauche dessen Inhalt sowieso nicht). Nun funktioniert zwar der Start, allerdings wird das zweite Package trotzdem nicht mehr geladen, man muss es immer wieder in der Packageverwaltung wieder aktivieren, sonst kommt es immer wieder zum Fehler, dass die Komponente “TChart” nicht gefunden wird. Ein sehr nerviges Problem. Eventuell besteht hier aber noch eine gewisse Inkompatibilität mit den von Delphi mitgelieferten TeeChart Komponenten. Allerdings habe ich am Laptop diese vorher vollständig entfernt und das Package Problem bleibt bestehen. Wie dem auch sei, es funktioniert. :-)

Soweit der aktuelle Stand, eventuell folgt noch mal ein Beitrag zu der Sache, sofern sich Material dafür findet.

Willkommen im Winter 2010

Veröffentlicht von Manu in Allerlei am 06-03-2010

1

Gestern war es eigentlich noch relativ mild von den Temperaturen, dennoch etwas windig. Doch heute ist alles etwas anders. Eben zum Fenster raus geschaut, ist alles wieder weiß. Doch das ist nicht alles. Es schneit und es gewittert, erlebt man auch selten. Na, mal schauen was der Tag noch bringt. Den ersten Falschparker haben wir übrigens auch schon ;-)

Penis, Brüste und hemmungsloser Sex – Chatroulette, die etwas andere Art zu chatten

Veröffentlicht von Manu in Allerlei am 16-02-2010

5

Durch einen Tweet wurde ich auf Chatroulette aufmerksam. Die Idee hinter Chatroulette ist simpel: Viele Leute sitzen in einem großen Topf, davon werden immer zwei zufällig ausgewählt und miteinander verbunden, um miteinander chatten zu können. Hat man Webcam und / oder Mikro kann man auch das dafür nutzen. Hat man auf jemanden keine Lust drückt man fix auf F9 und bekommt einen neuen Chatpartner zugeteilt. An sich ist das ja eigentlich eine nette Sache, man kann schließlich auf immer neue Leute in der ganzen Welt treffen. Beim Erstellen dieses Beitrages sind gerade knapp 15.000 Leute online, langweilig wird einem also sicherlich nicht.

Wenn man das ganze ausprobieren will, geht einfach auf den Link oben und drückt auf “Play”. Falls ihr allerdings selbst nicht gesehen werden (sofern Webcam) oder kein Ton übertragen wollt (sofern Mikro), solltet ihr mit der Maus auf das untere der beiden Videos fahren und dort bei “Send” die entsprechenden Häkchen entfernen.

Wie dem auch sei, neugierig wie man nun mal ist, startete ich das “Spiel” und schaute einfach mal was passiert. Die erste Person, die mir zugeteilt wird, hat auch keine Webcam aktiv, also mal ganz simpel “Hi” geschrieben, was auch erwidert wurde. Danach schrieb er / sie mir: “asl?”. Was zum Henker ist asl? Also fix mit einem “what’s asl?” nachgefragt und schwupp, wollte er / sie mich nicht mehr. Bleibe also leider unwissend. Doch es gibt ja noch das Urban Dictionary, welches mir offenbarte, dass es “asl” “Age Sex Location” bedeutet. Gut, für das nächste mal, sofern es je eines geben wird, weiß ich das.

Nach dem ersten Reinfall drücke ich F9, um den nächsten Chatpartner zu bekommen. Diesmal ist es ein älterer Herr, der auf schätzungsweise russisch geschrieben hat, da ich russisch nicht kann, direkt den “Next” Knopf gedrückt.

Da ich selbst keine Webcam bzw. Mikro angeschaltet habe, wird man von den meisten Personen sowieso weggedrückt. Aber das ist ja kein Problem, schließlich sind genug andere online.

Langsam werdet Ihr Euch nun fragen, was die drei Ausdrücke im Titel zu suchen haben. Das ist die Schattenseite vom Chatroulette. Jeder dritte hält sein prahlendes Stück in die Kamera, steht nackt davor oder masturbiert, als gäbe es kein Morgen mehr. Immerhin ist F9 schnell gedrückt, das muss man sich nicht antun. Aber man kommt auch schnell mal vom Regen in die Traufe. Der eine Penis weg, kommt ein Pärchen, dass es gerade wild im Bett treibt, anscheinend muss noch ein Dritter im Zimmer gewesen sein, denn da wollte ich gerade F9 drücken, wurde ich aber schon vom Chatpartner weggedrückt. Als sei das nicht genug gewesen blitzt wieder des Mannes bestes Stück in die Kamera. Meine Güte, haben die Leute nichts besseres zu tun? Wieder F9 gedrückt darf man per Cam irgendeiner Frau in die Ausschnitt blicken. STOP!

Nun reicht es mir! Weg mit dem Unfug. Die zehn Minuten haben eindeutig gereicht. Mag ja durchaus sein, dass man wirklich interessante Leute über den Dienst kennen lernt, wenn ich aber von 20 Leuten, 15 mal irgendwelche Schniebel, Klöten und Nüsse in der Kamera sehe, kann ich gut und gerne drauf verzichten.

10 Jahre alter Film ausgegraben…

Veröffentlicht von Manu in Allerlei am 05-02-2010

Tags: ,

2

Erstaunlich. Vor zwei Wochen fand ich die alte Spiegelreflex-Kamera von meinem Vater. Eine Canon AV-1. Sogar ein paar Objektive waren noch dabei:

  • Tokina 28 – 70mm 1:2.8 – 4.3
  • Tokina 28mm 1:2.8
  • Canon Lens FD 50mm 1:1.8
  • Tokina 80-200mm 1:4

Man muss dazu sagen, dass mein Vater die Kamera zu Zeiten seines Wehrdienstes gekauft hat, dass ist mittlerweile gute 20-25 Jahre her.

Ich hab dann einfach mal ein paar Fotos gemacht und irgendwann merkte ich, dass ich diesen Hebel zum Transportieren des Films nicht mehr bewegen kann, auch nicht mehr, nach dem man ausgelöst hatte. Hmm, sollte ich schon was kaputt gemacht haben? Jedoch kam mir dann die Idee, dass dieser Hebel ja einen Film transportiert und vielleicht geht es nicht weiter, weil noch ein Film in der Kamera ist. Also erst mal am Drehknopf den Film von Hand zurückgedreht. Nun dauerte es erstmal 15 Minuten, bis ich raus fand, wie man die Kamera aufbekommt… Als sie auf war, war tatsächlich noch ein Film drin. Filmrolle raus und ab in ein Filmdöschen, welches dann zum Entwickeln gebracht wurde. Die Filmrolle musste ja schon eine halbe Ewigkeit in der Kamera sein.

Gestern kamen dann endlich die entwickelten Bilder an und siehe da, die Bilder sind mindestens 10 Jahre alt. Seit 10 Jahren gammelt in der Kamera noch ein Film, dessen Bilder sich entwickeln ließen und gar nicht mal so schlecht ausschauen. Es ist eigentlich kein Farbstich oder sonst etwas vorhanden, aber schaut selbst. Hab mal ein paar Bilder eingescannt und hier an den Beitrag geheftet. Die Bilder sind komplett unbearbeitet. Sie zeigen unsere Ministubentiger von vor 10 Jahren. Die Schwarze davon haben wir behalten und die läuft heute noch hier rum und treibt ihr Unwesen.

Englischer Blog entfernt

Veröffentlicht von Manu in Allerlei am 03-02-2010

0

Ich hatte ja eigentlich mal vor, noch ein bisschen auf Englisch zu bloggen, aber da ich recht wenig Zeit für den deutschen Blog habe, habe ich noch weniger Zeit für die englische Version davon. Deswegen hab ich den englischen Blog nun gelöscht. Die Domain manuel-rauber.com leitet einfach nur auf die manuel-rauber.de um.

Der Winter ist da ;-)

Veröffentlicht von Manu in Allerlei am 31-01-2010

2

Hi,

nach dem es hier in unseren Breiten bisher kaum richtig Schnee hatte (im Gegensatz zum Norden), hat es heute Nacht kräftig geschneit. Ich hoffe doch, dass das noch ein bisschen so bleibt :-)

Hab mal die Digi-Cam genommen und ein paar Bilderchen geschossen:

Jetzt kann der Sommer kommen

Veröffentlicht von Manu in Allerlei am 22-01-2010

Tags: , , , , , ,

3

Erstaunlich. Vorhin ging mein Tweetdeck mit folgendem Tweet auf:

Ich mach auch mit, @dm_alverde !!! #verlosung #alverde #ffVerlosung

Aus Spaß an der Freude dachte ich mir, komm, retweetest das, vielleicht hast ja Glück. Keine halbe Stunde später kam ein Tweet von dm_alverde. Nun hab ich ein Überraschungspaket gewonnen. :mrgreen: Mal schauen, ob es nächste Woche hier ist.

Vielleicht sollte ich öfters bei solchen “Tweet das und gewinne”-Aktionen mitmachen.

Blogger Online Gaming Contest

Veröffentlicht von Manu in Allerlei, Computer, Games am 21-01-2010

1

Wurde gerade von Xooyoo auf den Blogger Online Gaming Contest hingewiesen. Hört sich ja ganz lustig an. Hat noch ein anderer Blogger Lust, ins Boot zu kommen, um aus Spaß an der Freude dort mitzumachen? Mail mir ;-)

Die BDE muss weg, die BDE muss weg…

Veröffentlicht von Manu in Computer, Programmierung am 20-01-2010

Tags: , , , , , , , , , , , , , , , , , , ,

3

… ja, so ähnlich ist Momentan ein Status bei einem größeren Softwareprojekt. Das Projekt wurde vor Jahren gestartet, auf der BDE aufgebaut, bis ins Jahr 2009 mit Delphi 5 kompiliert. Doch nun ist die Zeit gekommen, alles zu ändern.

Die Ausgangssituation: Das Projekt benutzt die BDE mit 46 Tabellen, als Datenanzeige im Programm kommt eine Komponente mit dem Namen “TDBScroll” (etwa ein leicht verbessertes TDBGrid) zum Einsatz. Die Komponente lässt sich nicht mal mehr per Google finden… Desweiteren haben die damals aktuellen WPTools 4 (Reporting-Tool, PDF Export) sowie die damals aktuellen TeeChart 5 ihren Existenzgrund im Programm. Der gelungene Abschluss macht die Komponente “TStringLoader” (ebenfalls per Google nicht auffindbar), die die Anwendung in mittlerweile fünf Sprachen lokalisiert (dazu benötigt man pro Form und pro Sprache eine eigene Ini-Datei. Das Programm hat 22 Forms, daher werden 110 Sprachdateien benötigt), darunter Deutsch, Englisch, Französisch, Spanisch und Italienisch.

Nun ist die Zeit gekommen, an dem das Projekt so nicht weiterlaufen kann. Die BDE macht Probleme unter Windows > Vista, die Sprachdateien zu editieren ist nur noch grausam und an kyrillische Sprachen wie Russisch ist gar nicht zu denken. Natürlich gibt es entsprechende Komponenten, um kyrillische Sprachen auch in Delphi 5 verfügbar zu machen, doch Delphi 5 ist mittlerweile auch stolze elf Jahre alt. Alles in allem muss das Programm renoviert werden. ;-) Genau das ist im Moment meine Aufgabe.

Hier eine kleine Übersicht, wie die alten verstaubten Komponenten gegen neue hochglänzende getauscht werden.

TDBScroll

Die datensensitive Anzeigekomponente wird mit dem QuantumGrid von DevExpress getauscht. Ich muss sagen, dass ich von der Qualität der DevExpress Komponenten sehr beeindruckt bin, das sind wahrlich Monsterkomponenten, die (fast) keinen Wunsch übrig lassen. Falls jemand auf der Suche nach einem Grid ist, schaut Euch das QuantumGrid an, es lohnt sich!

TQuery & Co.

Da ja die BDE in den Mülleimer geworfen wird, müssen auch neue Zugriffskomponenten her. Hier fiel die Wahl auf die AnyDAC von RemObjects. Klasse Dinger und bei Fragen ist der Support, der eigentlich (fast) nur aus dem Programmierer der AnyDAC, Dmitry Arefiev, besteht, wirklich schnell, kompetent und freundlich, so soll es sein.

WPTools 4 & TeeChart 5

Hier wird ganz unspektakulär gegen jeweils die neuste Version der Komponenten getauscht: WPTools 6 und TeeCharts 8

TStringLoader

Auch wenn der RTTI Ansatz dieser Komponente gar nicht mal so schlecht ist, ist es dennoch furchtbar, dass man pro Sprache und Form jeweils eine Sprach-Ini hat, muss weg. Was hier als Ersatz zum Einsatz kommt, ist noch nicht ganz klar. Im Moment wird es entweder GNU GetText for Delphi oder ein eigenes kleines auf FireBird gestütztes System.

BDE

Das ist wohl das größte Sorgenkind der ganzen Anwendung: Die BDE. Damals wohl noch ganz nett und es war schon bei Delphi dabei, muss es nun Platz machen, gegen gescheite Desktop-Datenbanken. Hier fiel die Wahl eigentlich direkt auf FireBird (als embedded-Variante). Nach vielen vielen Tools, die ich ausprobiert habe, um die Daten von der BDE in eine FireBird-DB zu bekommen, half letztendlich das Tool IBDataPump von CleverComponents. Das Programm gibt es kostenlos zum Download und war das einzige Programm, dass die Struktur und die Daten problemlos in FireBird überführte.

Innerhalb des Quelltextes mussten auch einige Änderungen gemacht werden. Gerne hatte man solche netten doppelten Anführungszeichen im Quelltext, die FB-DB bricht bei solchen Konstrukten mit der Fehlermeldung “Column unknown” ab.

Query.SQL.Add('WHERE Feldname = "Text"');

Mein Vorgänger kannte wohl noch kein

Query.SQL.Add('WHERE Feldname = :feld');
Query.ParamByName('feld').AsString := 'Text';

Tja, da auf Grund der Quelltextgegebenheit ich viele Queries neu schreiben müsste, behelfe ich mir mit dem Workaround, dass ich die doppelten Anführungszeichen gegen zwei einfache tausche. Natürlich ist das noch nicht sauber und dient wirklich nur als Workaround, aber behindert im Moment die Umstellung des Programms nicht. Sobald dort das meiste durch ist, statte ich den Queries einen Besuch ab.

Weitere kleine Änderungen betreffen nur das QuantumGrid, aber diese sind kaum relevant und betreffen fast nur das Aussehen.

Delphi 5

Richtig, auch das Delphi 5, das einige gerne als das beste Delphi aller Zeiten ansehen, muss getauscht werden, gegen ein Delphi 2009. Der Tausch ist nötig, da Delphi 2009 nativ Unicode unterstützt, da spart man sich das Tauschen der normalen Buttons gegen welche, die Unicode unterstützen. Auch empfinde ich den Code-Editor angenehmer, als der von Delphi 5, aber das ist reine Geschmackssache. Manche brauchen diesen Schnickschack, andere nicht, ich gehöre allerdings zu ersteren. ;-)

InstallShield Express (Borland Edition)

Wenn man schon so viel umstellt, dann kann man auch gleich einen neuen Installer benutzen. Das Programm benutzt im Moment noch den InstallShield Express (Borland Edition), das automatisch die BDE mitinstallierte. Da diese nun weg ist, kann ein neues Installer her, der auch ein multilinguales Setup anbietet. Hier fiel die Entscheidung auf InstallAware. Vorher zwei Setups (eins in Deutsch, eins in Englisch) mit jeweils 30MB ist es nun nur noch ein Setup für beide Sprachen mit 22MB.

Soviel erst mal dazu, musste das ganze einfach mal bloggen (gab ja schon wieder längere Zeit nichts mehr ;-) )