Manus Blog twitter
Manus Blog Rss

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 ;-) )

Klein, aber fein: Das HTC Touch Pro 2

Veröffentlicht von Manu in Allerlei, Computer, Multimedia am 13-10-2009

Tags: , , ,

0

Hi,

ich hab lange damit geliebäugelt, nun ist es das. Ein neues HTC Touch Pro 2, ohne Simlock, ohne Branding. Preis lag bei 570€. Gekauft wurde es über Amazon.de. Bestellt hab ich es am 30. September um ca. 18 Uhr mit Versandart Overnight-Express und siehe da. Pünktlich am 1. Oktober lag es bei mir zu Hause. Im Gegensatz zu meinem alten Handy, dem Sony Ericsson K800i, ist das HTC TP2 schon ein großes Ding, aber dafür leistet es auch was.

Radialmenü (Mausmenü) für L4D

Veröffentlicht von Manu in Computer, Games, Left 4 Dead am 16-08-2009

Tags: , , , , , ,

6

Hi,

in Left 4 Dead gibt es sogenannte Radialmenüs oder auch Mausmenüs. Ein Beispiel für solch ein StandardradialmenüMenü siehst Du im Bild rechts. Natürlich kann man auch eigene Menüs erstellen, was gerade zum Training von Left 4 Dead sehr nett ist oder wenn man ein paar lokalisierte Sprachausgaben nachschieben will.

Wie man es ja von Valve schon fast gewohnt ist, kann man viel scripten oder am Spiel ändern, wenn man einfach mal in den Textdateien herumschnuppert. Die meisten Textdateien sind auch recht offensichtlich und selbsterklärend aufgebaut, weswegen es meist kein Problem ist, neues zu altem hinzuzufügen. Doch nun zur Erklärung, wie man eigene Radialmenüs erstellt.

Immer dieses Accountstibitzen…

Veröffentlicht von Manu in Allerlei, Computer, Games, Multimedia am 11-08-2009

1

Da war ich nichts ahnend am Left 4 Dead spielen, als mich plötzlich jemand in seine Freundesliste hinzufügen wollte. Der Name des neuen Freundes lautete “S U P P O R T” und hatte als Avatar, wie soll es auch anders sein, das Steamlogo. Natürlich war mir sofort klar, dass derjenige wohl nur scharf auf meinen Account ist, aber, dachte ich mir, nimmst den Kerl mal an und hört Dir an, was er zu sagen hat. Damit er wohl ganz cool und offiziell rüber kommt, hat er alles in blau geschrieben. Das ist aber nicht eine Sonderfunktion, sondern erreicht man ganz einfach, in dem man seiner Nachricht ein “/me” davorstellt. Dann erscheint die Schrift nicht mehr weiß, grau oder schwarz (je nach Farbthema), sondern, in meinem Fall, in blau. Also kaum den Typ angenommen, fing er auch schon an zu quasseln:

Konsole bei Left 4 Dead öffnen

Veröffentlicht von Manu in Computer, Games, Left 4 Dead am 10-08-2009

Tags: ,

2

Hi,

da ich hin und wieder gefragt werde, wie man die Konsole in Left 4 Dead öffnen, hier eine kleine Beschreibung:

Als erstes in den Left 4 Dead Ordner wechseln. Dieser befindet sich unter *\Steam\steamapps\common\left 4 dead\left4dead\cfg. Dort öffnest Du die config.cfg. Wenn man dort noch nichts verändert hat, steht in Zeile 27:

bind “`” “toggleconsole”

Das ersetzt Du nun mit:

bind “F10″ “toggleconsole”

Damit kannst Du die Konsole im Spiel per F10 öffnen. Natürlich kannst Du auch eine andere Taste wählen.

SteameinstellungenDer nächste Schritt ist das Einstellen in Steam. Dazu öffnest Du Steam, klickst rechts auf Left 4 Dead und wählst dort “Properties” (deutsche Version: “Einstellungen”). Weiter geht es mit “Set launch options” (deutsche Version: “Starteinstellungen”).Steam - Set launch options Nun öffnet sich ein kleines Fenster in das Du einfach nur “-console” (ohne die beiden “) eintippst.

Anmerkung: In meinem Screenshot steht “-console -novid”. Das -novid bewirkt, dass am Anfang kein Intro gespielt wird. Man muss das nicht hinzufügen.

Jetzt bist Du fast fertig. Starte nun Left 4 Dead. Wie Du nun siehst, wirst Du mit der Konsole begrüßt, allerdings, wenn diese zu ist, bleibt sie das auch. Auch ein Druck auf die vorher in der config.cfg eingestellte Left 4 Dead - Allow developer consoleTaste geht nicht. Das beheben wir nun auch noch. Du klickst nun auf Options (dt. “Optionen” / “Einstellungen”) :arrow: Keyboard / Mouse (dt. “Tastatur / Maus”). Left 4 Dead KonsoleDort ist ein Eintrag “Allow developer console” (dt. “Erlaube Entwicklerkonsole”). Dort drauf klicken, so das hinten dran “Enabled” (dt. “Aktiviert”) steht. Ein Klick auf Done und Du bist fertig.

Nun kannst Du, in meinem Fall mit F10, die Konsole öffnen.

Drei neue Schmuckstücke

Veröffentlicht von Manu in Allerlei, Computer, Multimedia am 04-08-2009

1

Hi,

ich hab mal wieder bei Amazon “zugeschlagen”. ;-) Diesmal allerdings nicht sowas großes, wie die XBox 360. Drei neue Bücher werden meine Fachbuchbibliothek (die bisher aus eventuell zehn Büchern besteht) erweitern.

Das erste Buch ist über Reguläre Ausdrücke. Da ich in letzter Zeit viel damit zu tun, empfahl mir ein befreundeter Programmierer das Buch. Es sei eine gute Referenz, auch die Rezessionen auf Amazon.de ließen gutes von sich verlauten.

Das zweite Buch ist über IT-Projektmanagement. Bei einer letzten Sitzung mit ein paar Entwicklern, war dieses Buch auch im Gespräch. 21 fünf Sterne Rezessionen auf Amazon sprechen auch für eine gute Lektüre. Also hab ich nicht lange gezögert und hab das Büchlein auch in den Warenkorb gelegt. ;-)

Das letzte Buch ist über Suchmaschinen Optimierung. Natürlich ist es gerade bei SEO wichtig, dass man aktuelle Informationen hat, welche so ein Buch nicht geben kann. Mit dem Erscheinen sind dessen Informationen auch schon wieder alt. Allerdings geht es nicht nur rein um SEO, sondern auch, wie Suchmaschinen funktionieren oder es finden sich allgemeine Tipps und Tricks. Für einen Einstieg in Sachen SEO wird es sicher seinen Zweck erfüllen.

Die Versandbestätigung von Amazon hab ich auch schon erhalten, demnach dürfte morgen alles da sein.

Der Linienkurs

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 30-07-2009

0

Hi,

ich hab heute mal einen Linienkurz für den Roboter gezeichnet.

Der Kurs soll später mal auf 2 Meter x 2 Meter großes Papier geplottet werden, wo ich das mache, steht allerdings noch in den Sternen.

Linienkurs Das Originalbild, hier ist nur eine verkleinerte Version, ist, wie gesagt, 2 Meter mal 2 Meter groß, was bei 300 DPI ca.6000×6000 Pixel bedeuten. Die Linie ist 1,9cm breit, was einem dreiviertel Zoll entspricht. Die dreiviertel Zoll kommen von der Website von Pololu. Ich denke, damit wird man ganz gut fahren.

Zum Parcours selbst: Bei Punkt A wird der Roboter beginnen. Nach ca. 30cm geradeaus, folgt die erste 90° Wende nach links. Die Linien bis zum Punkt B sind jeweils 30cm lang. Bei Punkt B ist die erste Kurve zu überwinden. Die Kurve hat einen Radius von ca. 15cm. Nach zwei weiteren Wenden, folgt bei Punkt C eine scharfe 45° Wende nach links. Nach weiteren Wenden und Kurven, ist bei Punkt D eine Wende direkt nach einer Kurve. Interessant wird nun der Zickzack bei Punkt E. Die Linien sind dort jeweils 15cm lang. Hat er das geschafft, folgt ein weiterer Zickzack mit Linienlänge von 10cm bei Punkt F. Ist dieser hinter sich gebracht, kann der Roboter bei Punkt G zeigen, wie schnell er ist. Satte 1,5,m Geradeausfahrt steht an. Bei Punkt H stehen nun ein paar Kurven mit Radius von ca. 15cm an. Der interessanteste und wohl auch schwerste Part, dürfte nun bei Punkt I liegen. Bei diesem Zickzack sind die Linien nur noch 5cm lang, da bin ich gespannt, ob er hier durchkommen wird. Weiter geht’s bei Punkt K (ja, ich weiß, es fehlt ein Punkt J und ja, ich kann das Alphabet…) mit weiteren Kurven mit 7cm Radius. Sind auch diese bewältigt, ist das Ziel bei Punkt L erreicht. Nach so einer Fahrt, warten dort natürlich ein paar gekühlte Getränke auf den Roboter. ;-)

Als nächstes gilt es, den Kurs irgendwo plotten zu lassen, ansonsten darf ich mir den aus 80 DIN A4 Seiten selbst zusammenschnibbeln…

Heute werde ich noch ein paar Vorüberlegungen zum Algorithmus machen, den ich mit Glück am Wochenende programmieren werde.

In diesem Sinne: Stay tuned!

Das erste eigene Programm

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi, Programmierung am 25-07-2009

0

Hi,

gestern habe ich mich doch noch kurz dran gesetzt und schrieb mein erstes, winziges Programm für den Roboter. Das Ziel: Im Kreis herum fahren. :)

Um das zu erreichen, braucht man nur recht wenig Code, die 3pi API bietet schon einiges:

/*******************************************************
* CircleDrive                                          *
*                                                      *
* Author:  Manuel Rauber                               *
*                                                      *
* Date: 25.07.2009                                     *
*                                                      *
* Purpose: Let 3pi drive a little circle               *
*                                                      *
* Usage:                                               *
*      Press Button B to start the program             *
********************************************************/

// Include 3pi API
#include <pololu/3pi.h>

int main() {
  // Wait for the user. He has to press the B Button to start
  while (!button_is_pressed(BUTTON_B));
  wait_for_button_release(BUTTON_B);
  delay_ms(2000);

  // Infinite loop
  while (1) {
    // Drive 2 secs straight on
    set_motors(40, 40);
    delay_ms(2000);

    // Do a 90 Degree turn to the left
    set_motors(-80, 80);
    delay_ms(180);
  }
}

Der erste Test

Veröffentlicht von Manu in Computer, Hardware, Pololu 3pi am 24-07-2009

0

Hi,

die Pololu AVR Library bringt ein paar Testprogramme für den Roboter mit. Um das ganze einfach mal auszuprobieren, folgte ich dem User’s Guide und spielte ein simples Testprogramm auf den Roboter.

Zuerst lud ich das Programm simple-test.aps im AVR Studio. Per Build :arrow: Build (F7) ließ ich das Programm erzeugen. Per Tools :arrow: Program AVR :arrow: Connect… erscheint ein Dialog, in dem man den AVR Programmer auswählen muss. Ich hab hier einen AVRISP mkII, welcher per USB angeschlossen wird. Also fix aus der Liste ausgewählt, auf Connect… gedrückt. Danach öffnet sich das Programmierprogramm vom AVRISP mkII. Laut User’s Guide muss man nur noch die Hex-Datei laden und aufspielen, aber das wollte bei mir nicht direkt. Im Programm war noch nicht hinterlegt, welcher Microcontroller genutzt wird. Also fix auf den Reiter “Main” gewechelt, dort gibt es eine Auswahlliste, in dem man den ATmega 168 einstellen konnte. Gesagt, getan. Danach wieder zum Reiter “Program” gewechselt, Hex-Datei ausgewählt und auf “Program” gedrückt, allerdings quittierte das Programm den Versuch mit der Meldung:

ISP frequency must be 5 kHz or above when programming EEPROM or FLASH!

Hmm, wieder zurück zum Reiter “Main”, dort stand die ISP frequency auf etwas mehr als 1 kHz. Der Knopf “Settings…” hilft aber, das Problem zu beseitigen. Dort kann man aus verschiedenen Presets eine ISP frequency auswählen. Ich hab dort einfach mal 6.48 kHz ausgewählt, dass war das erste Preset, dass am nächsten an 5 kHz dran ist. Kurz bestätigen und schwupps klappte das Aufspielen vom Programm. :-) Lustiges blinken der LEDs und ein kurzer Ton bestätigte, dass alles erfolgreich ablief.

Dann will ich mal ein bisschen mit dem Kleinen herumspielen und ihn mal ein bisschen im Kreis fahren lassen. :-)