Interview mit Andreas Meile ("Dreael")

einem der erfahrensten deutschsprachigen QBasic-Programmierer

© Thomas Antoni, März 2001

Andreas Meiles Heimseite: Allgemeiner Einstieg
QuickBASIC: Programmsammlung
Knowhow-Ecke (zur Zeit noch im Aufbau).
Per E-Mail erreichen Sie Andreas unter andreas@hofen.ch  
 



Vorwort von Thomas Antoni

Andreas Meile ist für mich einer der profundesten QBasic-Kenner im deutschsprachigen Raum. Unglaublich, was Andreas in seiner Know-How-Ecke alles an Wissen zusammengetragen hat. Es gibt kaum eine QBasic-Frage, auf die man dort keine Antwort findet. Als Profi-Programmierer ist Andreas darüber hinaus sattelfest auf allen Computer-Themen, die das Internet und die Server-Programmierung betreffen - das ist heute sein Job.

In dem folgenden Interview, das der "Dreael" mir gewährt hat, erfahren Sie mehr über den Werdegang und das Computer-Umfeld, in dem Andreas sich heute bewegt.



Thomas: Dreael, wie alt bist Du?
Dreael: Ich bin geboren am 9. November 1971. Weitere Details über mich.

Thomas: Wo wohnst Du
Dreael: Bin in Hofen, Schweiz (Lage, Abbildung von zu Hause) daheim. Als Grenzbewohner (deutsche Nachbargemeinde ist D-78250 Tengen-Büsslingen; spaziere mit dem Hund über die Grenze) bin ich übrigens nicht selten auch mal in D-78224 Singen (Hohentwil) am Einkaufen. Daher habe ich ausser Schweizer Franken auch fast immer etwas Deutsche Mark irgendwo bereitliegen...: -)

Thomas: Was machst Du ausbildungs- bzw. berufsmäßig?
Dreael: Beruf: als Informatiker tätig (3 Jahre an der Uni [seinerzeit noch HTL {Höhere Technische Lehranstalt}, jetzt FH {Fachhochschule}]) bei onsite solutins ag in Winterthur. Derzeitiges geschäftliches Projekt: LANcheck.

Thomas: Sag doch mal ein paar Worte zu Deiner Webseite.
Dreael: Existiert schon seit 1995 (damals noch auf dem UNIX-Rechner der Uni). Grundidee: "Best viewed with ANY browser" unter 100%iger Einhaltung der offiziellen Standards und Empfehlungen vom W3C.
Inhaltlich: Soll weltweit möglichst jeden ansprechen, daher auch auf englisch und französisch und diverse Themen.

Thomas: Sag doch mal ein paar Worte zu Deinen QBasic-Programmen.
Dreael: Als gelernter Software-Ingenieur legt man mittlerweile Wert auf sauberes Software-Design => also Einsatz von TYPEs im Sinne von objektorientierter Programmierung und SUBs/FUNCTIONs. Themengebiet: Ziemlich breit gestreut. Favorit: Direkter Internet-Zugriff aus QB heraus.

Thomas: Wie war Dein Werdegang als Programmierer?
Dreael: Siehe Website! Sonst ganz kurz & bündig: 1985 erster Commodore 64 (NB: Heute gibt es gute Emulatoren wie z.B. "vice" unter Linux zu diesem Brotkasten!), 1988 Amiga 500 => AmigaBASIC (ein alter A4000er befindet sich jetzt noch im LAN, der A500 lebt in Form von WinUAE [brillianter Amiga-Emulator] auch jetzt immer noch weiter), 1990 erster 286er (mit Azubi-Lohn selber finanziert. Damals noch ein halbes Vermögen für einen Azubi!) => GW-BASIC. QBasic kam noch etwas später dazu. 1994 einer der ersten Pentium (60 MHz) im Einsatz. 1995 Beginn Studium und damit Kennenlernen anderer Programmiersprachen.

Thomas: In welchen Sprachen programmierst Du?
Dreael:
  • C/C++ und C vor allem unter UNIX und Linux. C++ in der Firma längere Zeit.
  • ADA - war Lehrsprache an der Uni. Gilt als sehr robust und findet sehr viele Fehler schon während der Compilerübersetzung
  • Java/JScript (ASP-Programmierung)
  • Etwas Assembler (an der Uni hatten wir ein Fach Mikrorechner).
Thomas: Ich habe Dich als einen kompetenten "Server-Menschen" kennen gelernt. Siehst Du Dich auch so?
Dreael: Da ist was dran. Als Berufsinformatiker bin ich mittlerweile ein regelrechter Servermensch geworden, der seinen Apache (Linux) bzw. IIS (Windows NT/2000) genauso einfach verwalten können will wie Du den Webbrowser auf Deinem Privat-PC aufrufst... :-)

Vielleicht noch ein historischer Rückblick: Meine Internet-Karriere (wenn man das so sagen kann) begann Ende 1995 an der Uni. Schon sehr früh bemerkte ich, als ich jeweils am Abend zusammen mit anderen Studenten am Homepage basteln war, dass es ganz ehrlich gesagt nicht das Gelbe vom Ei ist, wenn man kein "root"-Passwort besitzt und nicht in der Lage ist, an der Konfiguration des WWW-Daemons beliebig Anpassungen machen kann, z.B. kein "401 Authorization Required"-Passwort aufsetzen oder ein CGI-BIN-Script einsetzen kann. Dies änderte sich jedoch ziemlich rasch, als ich zum Einen bei mir daheim das erste Linux installierte und zum Anderen an der Uni ein Jahr lang Laborunterricht hatte, wo mir eine DEC Alpha Workstation 1 Jahr vollständig zur Verfügung stand: Endlich konnte ich nach Herzenslust wie ein Profi meine <FORM method="post" action="/cgi-bin/MeinEigenesCProgramm.cgi"> machen ... :-)) Das Schöne war dabei noch, dass sämtliche Workstations offizielle IP-Adressen besassen, d.h. keinerlei Firewall/Proxy-Server dazwischen, so dass man auch von jedem 0815-DialUp-Anschluss aus weltweit draufkam...

Und mittlerweile bin ich es halt beruflich gewöhnt, den Serverraum gleich eine Türe neben mir zu haben, so dass die Erstellung einer Website halt nicht bloss aus reinem Draufspielen von statischen Dateien besteht, sondern auch mal bei Bedarf in der Microsoft Management Console ein Verzeichnis entsprechend konfiguriert werden kann. Zu einem http://www.kundevonuns.ch/ ein http://subdomain.kundevonuns.ch/ einzurichten, ist daher häufig nur noch ein Vorgang von ein paar Mausklicks (virtuelle Domain einrichten). Auch rasch eine SQL-Server-Datenbank anlegen, sobald irgendwelche Daten anfallen, ist bei mir Selbstverständlichkeit geworden.

Mein Kollege, der ja bei sich privat das kostenlose FreeBSD (GNU Lizenz wie Linux!) bei seinen Rechnern einsetzt, verwendet auch PHP und MySQL als entsprechende Möglichkeiten. Zur Zeit bin ich sogar dran, das eine oder andere mit ihm zusammen zu installieren (wir arbeiten sehr viel online per Telnet zusammen!).

Darum mag ich mittlerweilen keine Hosting-Provider mehr: Da musst Du jedesmal lange "Bittibätti" machen, bis er einem z.B. CGI-BIN zulässt, eine SQL-Datenbank einrichtet usw. Kurz & bündig: Ich will mein eigener Verwalter des ganzen Servers sein! :-) ...

Thomas: Kannst Du einige Worte zu Deinen momentanen Projekten sagen?
Dreael: Momentan steht eigentlich nicht ein QBasic-Projekt im Zentrum, viel mehr ist es das schon seit 4 Jahren abklärungsmässig laufende Projekt mit der eigenen Standleitung ins Internet damit ich endlich dasselbe wie mein Kollege tun kann, welcher qbasic.at für uns hostet. Unter anderem gehört dazu auch der Betrieb eines permanent laufenden Servers für Online-Rasterbike!
Anmerkung von Thomas: QBasic.at ist die neue gemeinsame Webseite der deutschsprachigen QB-Webmaster. Wer hierzu etwas beitragen möchte, wende sich bitte an Dreael ,NetZman oder an Thomas Antoni.)

Thomas: Was rätst Du einem QB-Programmierer, der sein Game netzwerkfähig machen will, z.B. über TCP/IP oder IPX?
Dreael: Kurz & bündig: Im heutigen Internet-Zeitalter hat sich eigentlich überall flächendeckend das TCP/IP-Protokoll durchgesetzt, daher sollte man am besten alles übrige besser nicht mehr verwenden. In Klartext: IPX komplett vergessen! In der Firma emfehlen wir dies eigentlich jedem Kunden auch so. Ausserdem empfiehlt es sich, beim Hardware-Einkauf etwas Sorgfalt walten zu lassen, damit man sein "Packet Driver"-Netzwerk bzw. DOSPPP-Dialup-Zugang erfolgreich zum Laufen bringt. => Ausdrückliche Nicht-Empfehlung von internen Modemkarten und USB-Modems! => Ideal: externes Hayes-Befehlssatz (AT-Kommandos) kompatibles Analogmoden oder externer ISDN-Terminaladapter. LAN: hochwertige Marken-Netzwerkkarten von 3Com.
Empfehlenswerte Entwickler-Hardware-Infraktruktur: Mindestens 3 PCs, vernetzt zu einem LAN, der eine unter Linux aufgesetzt als NAT (Numeric Address Translation)-Gateway (ISDN-Karte dort eingebaut bzw. Modem angeschlossen). Auf den beiden übrigen "Packet Driver"-Netzwerk und WATTCP.CFG sauber konfiguriert. => auf dem Linux-Rechner schreibt man den Server, während man auf den beiden übrigen Rechnern den Client schreiben und vor allen Dingen testen kann.

Thomas: Was rätst Du einem QB-Programmierer, der aus seinem Programm heraus aufs Internet zugreifen will, z.B. eMails versenden will?
Dreael: Studium der entsprechenden Netzwerk-Protokolle zuerst. Beispiel e-Mail: SMTP (Simple Mail Transfer Protocol) nach RFC819, RFC821 und RFC822 in diesem Fall. Anschliessend sollte man aus Linux oder Windows heraus etwas mit Telnet auf Port 25 spielen gehen: Mail versenden. In diesem Fall wäre dies z.B. HELO pc1.antonis.loc, MAIL From: thomas@antonis.de, RCPT To: andreas@hofen.ch, DATA und etwas Text mit . am Schluss und QUIT. Anschliessend hat man das Ganze in seinem QBasic-e-Mail-Client exakt so zu implementieren, und schon sollte eigentlich der e-Mail-Versand funktionieren!: -) Siehe sonst http://dreael.catty.ch/Deutsch/BASIC-Knowhow-Ecke/InternetMitQuickBASIC.html (später einmal unter http://www.hofen.ch/~andreas/Deutsch/BASIC-Knowhow-Ecke/InternetMitQuickBASIC.html erreichbar)

Thomas: Wie siehst Du die Zukunft von QBasic, QuickBasic und MS-DOS?
Dreael: Microsoft will am liebsten nichts mehr damit zu tun haben (obwohl Windows 2000 immer noch den DOS-Zeichensatz im Prompt-Fenster verwendet). Bekanntlich halte ich mich noch viel im Usenet (Newsgroups) auf, und zwar alt.lang.basic, comp.lang.basic.misc und microsoft.public.basic.dos und verfolge natürlich dort die Diskussionen. Im Internet läuft derzeit ein FreeDOS-Projekt (auch DR-DOS verdient an dieser Stelle Beachtung).

Ich habe mir auch schon überlegt, warum nicht einmal ein eigenes BASIC entwickeln und habe ein Teil der Programmspezifikationen hier dokumentiert. Ziel wäre meinerseits, dass SVGA-Libraries überflüssig werden sollten, d.h. man sollte z.B. SCREEN 19 und PSET(1013, 762), 253 schreiben können (man soll sich nicht unnötig an etwas neues gewöhnen müssen!), um beispielsweise 1024×768 Pixel verenden zu können. Eine callback-funktionsbasierte Treiberschnittstelle sollte dabei eine Selbstverständlichkeit sein, damit exotische Grafikkarten ohne VESA-Schnittstelle ebenfalls verwendet werden können: Treiber entwickeln, der z.B. SCREEN 97 und SCREEN 98 bereitstellt. Ganz ähnlich auch bei Sound.

Thomas: Auf welche Windows-Programmiersprache sollte ein QB-Fan aufsteigen - wenn er nur hobbymäßig programmieren will und wenn er einen IT-Beruf anstrebt?
Dreael: Kommt auf die Kenntnisse an! In den NG wird häufig Liberty Basic als Geheimtip angegeben. FirstBasic (Anmerkung von Thomas: FirstBasic ist eine Freeware-Sparversion von PowerBasic) und XBasic und Visual Basic CCE (Control Creation Edition) (abgespeckte Version von VB, dafür kostenlos. Für ActiveX-Entwicklung konzipiert) werden in comp.lang.basic.misc auch häufig genannt, weil sie Freeware sind. Der offizielle Nachfolger ist aber Visual Basic (aktuell: Version 6).

Allerdings muss ich jeden vorwarnen: Software-Entwicklung unter Windwos (32-Bit-Umgebung) mit GUI (Graphical User Interface [=typische, grafische Windows-Oberfläche]) ist etwas ziemlich komplett anderes, also ein riesiger Umstellungsschritt! Man muss viele neue Konzepte lernen wie COM/DCOM ([Distributed] Component Object Model) ereignisorientierte Arbeitsweise (man weist z.B. dem OnClick-Ereignis eine SUB-Prozedur zu). Ausserdem ist alles objektbasiert, d.h. man sollte also mit Begriffen wie Klasse, Instanz, Polymorphismus, Vererbung, Methoden, Properties wie dies jeder Java- und C++-Entwickler kennt, ebenfalls genügend vertraut sein. In der Firma realisierte ich auch schon kleinere Windows-Projekte, allerdings in Delphi (Objective Pascal) statt VB.

Thomas: Was rätst Du einem QBasic-Spiele-Programmierer, der Animationen und Sound in seine Spiele hineinbringen will?
Dreael: Siehe
Artikel über flimmerfreie und butterweiche Animationen (künftig http://www.hofen.ch/~andreas/Deutsch/BASIC-Knowhow-Ecke/ButterweicheAnimationen.html) sowie Grundlagen Tonprogrammierung (künftig http://www.hofen.ch/~andreas/Deutsch/BASIC-Knowhow-Ecke/SOUND_Toene.html dazu! Kurz & bündig: Die Kunst ist die CPU-geschwindigkeitsunabhängige Programmierung (alles über TIMER) sowie eine flimmerfreie (Double Buffering!) Darstellung.

Thomas: Wie schafft man sich den nötigen freien Speicherplatz für seine Spiele?
Dreael: In alt.lang.basic sowie comp.lang.basic.misc sind auch schon entsprechende Hilferufe erschienen. Nur soviel dazu: Mit Vorteil $DYNAMIC einsetzen und die Feldvariablen, die man nicht mehr braucht, sofort wieder mit ERASE freigeben. Und nicht zu vergessen: CONFIG.SYS & AUTOEXEC.BAT wie in den guten, alten MS-DOS 6.22/Windows 3.1x-Zeiten optimieren (MEMMAKER oder von Hand, also alles DEVICEHIGH und LOADHIGH, DOS=HIGH,UMB und EMM386.EXE NOEMS HIGHSCAN aktivieren), damit möglichst viel konventioneller Speicher (die berühmten 640 KB) zur Verfügung steht.
Den heutigen Windowsanwendern möchte ich nur empfehlen, eine getrennte DOS- und Windows-Installation zu machen. z.B. ich habe überall je eine primäre DOS- (FAT 16bit) und Windows- (FAT 32bit) Partition und kann mit Hilfe eines Bootmanagers (Windows NT Bootloader und LILO von Linux in meinem Fall bequem zwischen MS-DOS 6.22 und Windows ME zum Arbeiten wählen.

Thomas: Was hast Du für Zukunftsprojekte?
Dreael: Höchste Priorität bei den Freizeitprojekten hat sicherlich der Webpage-Upgrade, damit die BASIC-Knowhow-Ecke nicht mehr länger nur Beta-Release bleibt. (Übersetzen, übersetzen und nochmals übersetzen. Zahlreiche Amerikaner in den NG (Newsgroups) haben bereits grosses Interesse daran bekundet und bestehen auf der Fertigstellung der englischen Version!) Ansonsten will ich natürlich Rasterbike weiterentwickeln, z.B. einen kleinen Chat einbauen (sinnwoll, weil man ja solange das DFÜ-Netzwerk von Windows stoppen muss!) und vor allem ein permanent laufender Server (UNIX-C-Programm), welches via /etc/inittab beim Booten des Linux-Rechners automatisch gestartet werden kann (in der aktuellen Version endet auch das Server-Programm nach jedem Spiel, so dass man neustarten muss).

Thomas: Wie willst Du Dich beruflich entwickeln?
Dreael: Weitgehend offen (wir leben ja heute in einer sehr kurzlebigen Zeit!)... => die meisten Entscheide fallen bei mir ziemlich spontan...

Thomas: Warum hört man so wenig von PowerBasic - im Vergleich zu QuickBasic?
Dreael: Diese Frage ist auch schon durch die NGs (alt.lang.basic und comp.lang.basic.misc) durchgegeistert. Diverse sagen halt, dass es anscheinend zu wenig gut vermarktet wird. Ich hatte einmal im Geschäft mit PowerBasic zu tun (aber nur am Rande!), als es darum ging, das Protokoll auf der seriellen Schnittstelle eines Funkterminalservers ( COSS von Ipta) zu analysieren (ein Teil des Lagers ist nur halbautomatisch, d.h. Gabelstapelfahrer führen Paletten herum und erfassen die Materialbewegungen gleich online von ihrem Fahrzeug aus, damit der Lagerrechner die Lagerbestandsdatenbank nachführen kann), damit wir die Schnittstelle in unserer in C++ geschriebenen Hochregallager-Verwaltungssoftware anpassen konnten: Der Hersteller hatte es ungenügend dokumentiert, insbesondere für den vorgängigen Tandem-Rechner angepasst, so dass ich den BASIC-Code analysieren musste...

Thomas: Hast Du noch andere Hobbies außer Programmieren?
Dreael: Ich hatte früher einmal noch Akkordeon gespielt, vielleicht sollte ich es wieder einmal wachküssen... ;-)

Thomas: Was macht Dreael privat?
Dreael: Siehe vorherige Frage, sonst immer noch ledig (halt typisch Online-ledig ;-)) Mein Bruder sagt zwar dasselbe: "Als ständig engagierter Turnvereinspräsident mit 4× Korbballtraining (Sport) pro Woche bleibt einem keine Zeit für eine Freundin!".

Thomas: Wie sieht Dein Webdesign-Konzept aus?
Dreael: Bereits erwähnt:
  • Verwendbar mit jedem Browser
  • 100%ige Einhaltung der Strict HTML-Empfehlung des W3C
  • Seite lebt ausschliesslich vom Inhalt, d.h. ich bin überhaupt kein Pixelspalter wie viele andere! Abgesehen davon kann ich bei meinem vielen Inhalt nicht noch lange an Abständen und Plazierungen usw. herumfummeln...
  • Direkt-URL-Bookmarkfähigkeit und Lynx-freundlich: Daher ohne Frames.
  • Vor allem Dateinamen so wählen, dass man nie etwas löschen muss, denn jedes "404 Not Found" verursacht weltweit, volkswirtschaftlich gerechnet, einen nicht ganz unerheblichen Schaden (Arbeitsstunden eines jeden Webmasters und Suchmaschinenbetreibers für's Link-Updaten × Stundenlohn!!). Motto: Erst Gehirn einschalten, dann Dateinamen vergeben! Leider: -(( scheint dies noch kein einziger Buchautor (Literatur zu HTML) begriffen zu haben!!


Thomas: Spiele für Linux - denktst Du über sowas nach?
Dreael: Überhaupt nicht, ich bin weniger der Desktop-Mensch, sondern eher der Server-Mensch, d.h. Dinge wie Dienstprozesse (z.B. IIS unter Windows NT managen) interessieren mich wesentlich mehr. Daher wirst Du bei mir nirgends einen aufgemotzten Desktop (z.B. wild animierter Mauszeiger und bewegende Aquarium-Fische als Desktop-Hintergrund, welche nur ¾ der CPU-Rechenleistung für sich verschlingen!) vorfinden, zumal ich alle meine Rechner mit VNC fernwarte. Sicher, zwischendurch mal ein Spielchen auf dem KDE-Desktop starten (resp. X11-Server lokal starten und export DISPLAY=mywinpc:0.0 und xtetris & im Telnet eingeben [=Bildschirm-Ausgabe der grafischen Oberfläche bei UNIX/Linux übers Netzwerk umleiten]) ist ab und zu sicher mal lustig, aber ganze Projekte à la Duke, Quake & Co. anreissen brauche ich nicht... Dies beherrschen andere besser als ich!

Thomas: Spieleprogrammierung in VB oder Delphi - macht das Sinn?
Dreael: Delphi kenne ich ausschliesslich im Geschäft. Dort haben wir auch die Enterprise Edition im Einsatz, da wir sehr viel ADO-, OLEDB- und ODBC-Datenbankzugriff auf SQL-Datenbankserver (SQL-Server von Microsoft, Informix unter UNIX und DB2 auf AS/400 von IBM) innerhalb unserer Unternehmensapplikationen benötigen. So zählt mittlerweile auch das Arbeitsamt der Stadt Zürich zu unserem Kundenkreis, als wir dessen Verwaltungsapplikation erneuern konnten. Ansonsten kenne ich jemand, der unter http://www.trx-world.de/ Windows-Spiele in Pascal entwickelt, mittlerweile auch mit TCP/IP-Socketkommunikation. Sofortiger Vorteil: Läuft im Gegensatz zu QB über das in jedem Internet-Windws-PC vorhandene WINSOCK.DLL, so dass ein Endbenutzer nichts umkonfigurieren/einrichten muss.

Thomas: Danke Dreael für das interessante Interview! Ich bin überzeugt, dass der Leser - ja Dich meine ich, der Du dies gerade liest _(°.°)_ - jetzt erstmal mit großer Neugier Deine Web-Seiten erkunden wird. Die URLs stehen am Beginn dieser Seite.




[zur Homepage http://www.antonis.de]       [zur framelosen Startseite]