Dienstag, 2. Juni 2009

GSoC'09 Interview mit Alexey Burshtein

IsComputerOn hat noch einen Nachzügler für die GSoC'09 Interviews zu bieten: Alexey "hitech" Burshtein.

Erzähl uns als erstes etwas über Dich. Wie hast Du mit den Programmieren angefangen? Warum hast Du Dich dafür entschieden?

Diese beiden Fragen hängen eng miteinander zusammen, ich werde sie also auch zusammen beantworten. Ich heiße Alexey Burshtein. Ich habe russische Wurzeln (oder sollte ich "sovietisch" sagen? :) ), bin 1978 in West-Sibirien in Irkutsk geboren. Hier möchte ich mal die Gelegenheit ergreifen und eine falsche Vorstellung vieler zurechtrücken, wenn sie an Sibirien denken: Viele denke da an einen eiskalten, von Schneestürmen heimgesuchten Ort. Während das im Winter meistens stimmt, Temperaturen sinken bis zu -30°C, sind die Sommer normalerweise brühtend heiß. Dann steigen die Tempereaturen bis auf +40°C. Niemand sagt, das Leben sei einfach, besonders nicht an Orten wie diesen. :)

Als ich fünf war, ist meine Familie in die kleine russische Stadt Nalchik im Nord-Kaukasus umgezogen, 200 km weg von Tschetschenien (durch den Krieg gegen Russland bekannt geworden). Hier begann ich die Schule und machte meine ersten Erfahrungen mit Computern. Als ich sieben war, fing mein Vater bei einer Baufirma an, die Berechnungen auf ES Computern machten. Das waren im Grunde die gleichen alten IBMs, von den Soviets gestolen und unter einem anderen Namen produziert. Die Technik von damals kann man heute wohl nur noch im Museum sehen, und zwar in einem großen Austellungsraum: Der Computer, so schnell wie ein heutiger Taschenrechner, war so groß wie ein Basketballfeld mit geregelter Lufttemperatur und-feuchtigkeit.

Und, da steh ich zu dem Wort, ich arbeitete mit diesen Kisten. Schon damals - wir reden hier vom Jahr 1985 - im Westen hatte man da schon Apple Macs, die erste Microsoft Windos Version (Gott bewahre! :) ), Festplatten und andere Früchte des Fortschritts. Zu dieser Zeit tippte ich meine ersten BASIC Programme ein (Text-basierte Spiele im Stil von "Rogue"), die ich auf Lochkarten, Lochstreifen und seltener auf Magentbänder speicherte. Falls ich die wertvollen Speicherresourcen und Computerzeiten für meine Programmierversuche verschwenden durfte (was normalerweise kein Problem war, weil mein Vater die Abteilung leitete :) ).

Dort sah ich auch meinen ersten Computer in PC-Größe: Einen "Iskra-226", ein Computer von Russen konstruiert aber eigentlich eine Replika eines Wang 2200. 1987 fiel er mir in die Hände. Er hatte eine 8 Zoll Floppy, formattiert 237 KB, 2-Farb Display mit sagenhaften 31 cm (12") Diagonale und 512x256 Pixel und wog ungefähr 40 kg. Sein Riesenvorteil - und das mein ich ernst - war, dass BASIC in der Kommandozeile integriert war. So konnte man ganz einfach anfangen am Prompt sein Programm einzutippen (10 INPUT X, "Enter", 20 PRINT X etc.), laufen zu lassen und zu debuggen. Alles ohne eine besondere Entwicklungsumgebung starten zu müssen. Ich glaube ja, dieser Vorteil wurde unterschätzt und eine Kommandozeile, die zugleich eine IDE ist, ist eine tolle Sache.

Der Rechner hatte auch eine externe Festplatte - 5 MB in der Größe von Opas altem Venyl Plattenspieler. Durch die durchsichtige Abdeckung konnte man die sich bewegenden Schreib/Lesekopf-Arme sehen und es war ein tolles Gefühl ein Programm zu schreiben, das diese Bewegungen kontrollierte. Ich durfte die Platte weder lesen noch beschreiben, aber programmierte die Ärmchen so, dass sie zu meinen Lieblingsliedern tanzten. Die Motoren für die Köpfe, die rotierende Platte und deren hoch- und runterfahren, machten alle unterschiedliche Geräusche und so hab ich versucht Musik damit zu machen. Manchmal klappte das sogar, meistens aber nicht. :)

Irgendwann schenkte IBM meiner Schule einige IBM PS/2 Rechner und als ich in die 8. Klasse kam beschäftigte ich mich mit höheren Sprachen wie Pascal. Normalerweise zählte ich zu den Besten in meiner Klasse. Für meine Klassenarbeit entwickelte ich sogar ein kleines Intro mit funkelnden Sternen, fliegenden Raketen, wehenden Fahnen usw. (im interstellaren Vakuum - auf Realismus kam's mir da noch nicht an ;) ). Ihr hättet meinen Lehrer sehen sollen, als er meine Hausaufgabe korrigieren wollte und auf mein Intro stieß - das ganze Brimborium nur für sowas wie das Maximum aus drei Zahlen finden oder eine Bubblesort Implementierung! Neben dem normalen Unterricht nahm ich an einem zusätzlichen Kurs teil, bei dem auf einem höheren Level an Algorithmen und Problemlösungen gearbeitet wurde. Und da fing alles an... Auch nachdem ich 1994 nach Israel ausgewandert bin, programmierte ich immer weiter und hab bis heute nicht aufgehört.

Bis 2001 hab ich nie daran gedacht professionell zu programmieren. Im Gegenteil, ich wollte Physiker werden und tat alles um diesen Traum zu verwirklichen. Ich zweifelte erstmals an dieser Entscheidung, als mir klar wurde, dass fortgeschriettene Nuklearphysik, die mich besonders interessierte, fast zu 95% aus höherer Mathematik bestand. Und meine Noten im Einführungskurs zur Programmierung waren alle viel besser als jedem Physikkurs.

Seit 2002 arbeitete ich in den IBM Labs in Haifa in der Systems & Storage Abteilung. Meine Aufgabe war der Support und die Entwicklung von Debugging Tools, die Entwicklung von "Advanced Mirroring" (kontinuierliches Kopieren) für die DS8000 und DS6000 High-End Enterprise-Level Speicherserver, Codepflege etc. Diesen April habe ich IBM verlassen, um mein Studium für mein Master-Diplom fortzusetzen.

Was mich besonders zu Computer hinzog, waren Computerspiele. Die guten alten Titel wie Prehistorik, Nightmare on Elm Street, King's Bounty (Vorgänger der "Heroes of Might and Magic" Serie, Starcon, Wing commander und natürlich Prince of Persia. Alle fast perfekt - aber halt nicht ganz perfekt. Daher mein Drang sie zu perfektionieren, damit sie sich so verhielten, wie ich es gern hätte. Aber sobald ich an einem Spiel arbeitete, merkte ich, dass es einfacher war ein komplett neues Spiel zu entwickeln, als ein bestehendes Spiel zu disassemblen und zu "korrigieren" (damals konnte ich nur Pascal und BASIC). Soweit ich mich erinnere war ein FPS Raumschiff Simulator das einzige Projekt, das ich fertiggestellt und für meine Freunde "veröffentlicht" habe.

Ich finde Computerspiele sind sehr wichtig für die Entwicklung eines Programmierers. Zumindest sind sie ein guter Ausgangspunkt.

Wie hast Du von Haiku erfahren? Hattest Du vorher schon Erfahrung mit BeOS oder Zeta?

1999 arbeitete ich bei Israel's größsten Internet Provider "NetVision Ltd." im Privatkunden Support. Erinnert ihr euch an die Typen, die ihr anruft when ihr euch nicht mehr mit dem Internet verbinden könnt? Ich war einer von ihnen. Verdammt, für 4 Jahre war ich dabei, von Januar 1999 bis Ende 2002. Im Schnitt entkommen die Leute nach 8 Monaten aus dieser Abteilung. Seit dem denke ich über ein Drehbuch für ein IT Horrorfilm nach, basierend auf wahren Gegebenheiten. Ich fürchte allerdings der Film käme gleich wegen extremer Gewaltdarstellung auf den Index. :)

Eines kalten Dezember Abends, während einer langen, einsamen Schicht, erwischte ich einen Kollen mit einer CD in der Hand, wie er durch die Abteilung lief. Die CD war mit "BeOS 4.5" beschriftet.

Zwei Wochen vorher hatte ich mir eine nVidea RIva TNT2 M64 Grafikkarte gekauft. Beim durchstöbern der nVidia Webseite nach Treibern, sah ich, dass es auch Treiber für BeOS gab. Das Logo war so attraktiv: blau, weiß und rot... Das fiel mir sofort wieder ein, als ich die Beschriftung sah. Natürlich schnapte ich mir die CD aus der Hand meines Kollegen und kopierte sie. (Für mich war zur der Zeit "für Software bezahlen" etwas das nur den "Bösen" in Hollywood Filmen zustieß.)

Ich hab das Betriebssystem dann auf meinem Rechner installiert und war beeindruckt von der Geschwindigkeit, den kurzen Ansprechzeiten und der Qualität und Benutzbarkeit des Systems. Als erstes hab ich mich mit dem Uni-Netzwerk verbunden (damals wohnte ich im Wohnheim). Das ging in nur 20 Sekunden. Ich weiß noch, wie geschockt ich vor der Tastatur saß, weil ich nicht glauben konnte, dass es so einfach war. Bei Windows 98 (dem einzigen OS auf meinem Rechner damals) musste ich mehrmals neu Booten, um die selbe Netzwerkverbindung einzurichten.

Die blaue Hintergrundfarbe entsprach genau meinem Lieblingston. Zusammen mit den leuchtend gelben Reitern wurde das OS sofort mein bester Freund. Es war auf meinem Rechner sogar mein Hauptsystem bis letzten Herbst, als es wegen Hardwareänderungen nicht mehr hochfuhr.

Nur selten würde ich Software als lebendig bezeichnen, aber hier war so ein Fall: Von Anfang an verglich ich BeOS mit einem hübschen, sportlichen Mädchen in einem schönen Kleid, das mal albern und kindisch, sich mal ziert oder eifersüchtig ist (besonders wenn sie nicht genug Aufmerksamkeit bekommt, d.h. Du es für längere Zeit nicht mehr bootest). Aber normalerweise vergibt sie schnell wieder und hilft Dir wo sie kann. Und da bin ich wohl nicht allein (hier auch). In der Diskussion zu diesem Bild rief jemand sofort "Hm... Haiku!". Er assoziiert Haiku anscheinend auch mit einem Mädchen. Der Punkt ist, BeOS und ihre Nachfolger sind, genauso wie Schiffe, lebendige Wesen. Windows verbinde ich übrigens mit einem hässlichen, langsamen und schwergewichtigen Arbeitspferd(... bullock), mehr ist es nicht.

Meine Besessenheit mit BeOS lässt sich belegen: Eines meiner poetischsten Komplimente für eine Frau war "Du bist noch besser als BeOS". Wenn das nicht überzeugt: Meine drei Katzen heißen Bes, Haiku und Zet - ratet mal wem zu ehren. :)

Seit Anfang 2000 bin ich als Alex Hitech Mitglied in der russischen BeOS Community. Ich habe schon einige Programme für BeOS geschrieben, die ich aber erst veröffentliche, wenn ich mit ihrer Qualität zufrieden bin. Die Liste meiner Programme ist daher ziemlich kurz.

Fast hätt ich's vergessen, ich hab für BeOS ein kleines Buch geschrieben: "Immigrant's guide to BeOS (ehemals "BeOS Bubble" in Anlehnung an die BeOS Bible). Darin beschreibe ich so ungefähr was in der BeOS Bible in den ersten fünf Kapiteln steht, also eine Beschreibung des BeOS, seine Vor- und Nachteile, Installation, eine Beschreibung aller mit BeOS kommender Programme und wie man ins Internet kommt. Das Buch ist auf Russisch und wurde bis vor kurzem Online veröffentlicht. Außerdem war es Teil der "BeOS/Zeta Expedition CD".

Wie hast Du vom GSoC erfahren und wann wolltest Du das erste mal teilnehmen?

Weil ich die BeOS Community ungefähr seit dem Jahr 2000 im Auge behalte, war mir der Google Summer of Code der letzten Jahre bekannt - genauer, seit Haiku beim GSoC mitmacht. Ich dachte daran teilzunehmen, aber dafür bräuchte ich eine Genehmigung meiner Vorgesetzten, was nicht einfach gewesen wäre. Um ein closed-source Freeware Programm zu entwickeln braucht man übrigens in der Regel keine Genehmigung. Die einzige Bedingung ist, dass Programm nicht mit dem Produkt des Arbeitgebers konkurriert.

Das Problem ist folgendes: Wenn jemand in seiner Freizeit an einem open-source Projekt arbeitet, könnte er dabei zufälligerweise auf eine Lösung stoßen, die er dann später auch bei seinem closed-source Arbeitsprojekt verwendet. GPL-code in die Storage-Software einzuschleusen, wäre eine Katastrophe für meine Arbeitgeber. Wegen der "infizierenden" Wirkung der GPL, müssten sie die gesamte Software ebenfalls unter der GPL rausgeben. Kleinere Firmen könnten bei sowas sogar bankrott gehen. Deswegen ergreift jede Firma, die propritäre Software entwickelt, Maßnahmen um selbst zufälligen Kontakt ihrer Angestellten mit open-source Code zu verhindern, der vorher nicht durch ihre Rechtsabteilung geprüft wurde. Das geht sogar so weit, dass in einigen Firmen die Angestellten, die an einem open-source Projekt, in einem eigenen Gebäude sitzen und keinerlei Kontakt zu den anderen haben dürfen, die an ähnlichen, aber proprietären Projekten arbeiten.

Und das wiederum bedeutet, dass jeder der an einem open-source Projekt arbeiten will, unbedingt mit seinem Vorgesetzten reden muss. Der geht dann mit dem Anwalt über die Projektbeschreibung und, nach dem Schneeballprinzip, kann das bis zur höchsten Managementstufe gehen bis eine Genehmigung erteilt wird. Firmen nehmen Lizensierungsfragen wirklich sehr ernst, oh ja!

Zurück zu mir und den GSoC. Ich habe eine generelle Genehmigung bekommen, eigene Anwendungen für BeOS zu entwickeln (solange ich kein Konkurrenzprodukt zum DS8000 baue :) ). Ein Engagement beim GSoC würde allerdings eine viel eingehendere Prüfung erfordern. Daher hab ich nicht mal versucht mich zu bewerben.

Dieses Jahr wusste ich allerdings, dass ich IBM verlassen würde und meldete mich endlich für den GSoC an. Ich habe drei Bewerbungen für drei Haiku Projekte abgegeben.

Warum ist es Haiku für Dich wert daran zu arbeiten?

Wie ich vorher schon sagte, bin ich ein riesen Fan von BeOS und seinen Derivaten. Haiku ist es also per Definition wert. :)

Im Ernst, BeOS' Stärken sind gepaart mit der freien open-source Lizenz einfach überwältigend. Ich glaube zwar nicht, dass die ganze Welt plötzlich aufhört Windows zu benutzen und stattdessen Haiku installiert (obwohl das die perfekte Zukunft wäre :-P ), aber im Ernst, Haiku ist elegant, durchdacht und schnell. Benutzer wie Entwickler können sehr einfach mal damit rumspielen.

Zwei Punkte, die meine Behauptung stützen:

Erstens, meine Mutter ist ein ganz besonderer Computernutzer. Falls bei Wikipedia mal einen Artikel über den "Primitiven Nutzer" (und damit meine ich das Gegenteil zum "Fortgeschrittenen Nutzer") geben wird, wäre der Artikel mit einem Bild meiner Mutter illustriert. Sie benutzt immer noch einen 486er mit Windows 3.11, weil ihre Bedürfnisse damit voll abgedeckt werden (sprich: es läuft "Solitär"). Nichtsdestotrotz kam sie gut zurecht als sie mal meinen Rechner benutzen musste - Programme starten, Spiele, ins Internet gehen, Musik und Filme abspielen - unter BeOS gar kein Problem für sie. Was die Sache erschwerte, war die fehlende Lokalisierung. Obwohl meine Mutter kein Englisch kann, meisterte sie auch das. Für mich ist das genau die Bedeutung von "Intuitive Bedienung": Selbst ein User fast ohne Computer Erfahrung kann ihre Aufgaben erfolgreich erledigen. Die Bedienoberfläche ist eine der großen Stärken von BeOS. Und da Haiku die gleiche benutzt, somit auch eine Stärke von Haiku.

Zweitens, ich bin Programmierer. Ich hab auf Systemebene schon unter diversen Betriebssystemen programmiert, darunter AIX, QNX und OS/2 (ich hatte das Glück in einer Abteilung mit Leuten zuarbeiten, die OS/2 mitentwickelt hatten). Und ich muss sagen, unter keinem OS ist die Anwendungsentwicklung einfacher. Die API ist rund, logisch und nachvollziehbar - was auf die Win32 API z.B. nicht zutrifft.

Die einfache Bedienung und Entwicklung sind die Stärken von Haiku. Sie versprechen eine große Zukunft.

Für was hast Du Dich beworben und was hat Dich daran besonders interessiert? Gab es andere Projekte, die Du auch gern angegangen wärst?

Wie gesagt, habe ich mich mit drei Projekten beworben:

Webcam Treiber
Je mehr Leute Haiku benutzen, desto mehr wollen das zukünftige Multimediasystem auch für Multimedia nutzen. Eine Kamera zu verwenden ist ein Grundbaustein von modernem Multimedia. Wenn immer mehr Leute Video Chats abhalten, werden sie sauer sein, wenn ihre Kamera unter Linux und Windows funktioniert, aber nicht unter Haiku. Außerdem hab ich mir gedacht es wäre schön wenn Haiku Usergroups ihre Treffen in Echtzeit ins Netz übertragen könnten. :)

Verbesserung des WebKit und Entwicklung eines WebKit-basierten, nativen Haiku Browser
Je mehr Menschen Haiku im Alltag benutzen, desto mehr wird Haiku davon profitieren. Weil die meisten User mit ihnen spielen, Dokumente bearbeiten, Multimedia abspielen (E-Books lesen gehört hier auch zu Multimedia) und durch's Netz surfen, wird die Entwicklung eines feature-reichen schnellen Browsers ein Viertel aller Probleme von Haiku Neulingen lösen. Oder gar die Hälfte, wenn Google Documents für ihre Zwecke ausreicht.

Entwicklung einer Kalender/Organizer Anwendung
Das ist mein Favorit. Ich hab mit diesem Programm angefangen, lange bevor ich meine Bewerbung abgeschickt habe. Der Grund war, dass ich irgendwie meine Zeitplanung praktisch erledigen wollte.

Die einfachste Möglichkeit wäre, eine Tabellenkalkulation wie MS Excel (Gott bewahre!) oder Gobe Productive zu nehmen und die Zeitplanung da zu machen. Dann macht man eine Hardcopy, entweder automatisiert (sprich: "ausdrucken") oder manuell (also: mit Stift und Papier "abschreiben", und trägt die immer bei sich. Das ist aber zu, sagen wir mal, "Alte Schule" und Low-Tech; auch berücksichtigt es nicht evtl. auftretende Änderungen.

Eine fortschrittlichere Möglichkeit wäre die Verwendung einer Zeitplanungssoftware wie MS Outlook (Mann, die sind echt überall! :) ), Palm Desktop oder BePlan, wo man sich den kompletten Semesterplan mittels wiederholender Ereignisse erfasst. Die Ereignisse ließen sich dann bei Bedarf anpassen. Besser noch, die Zeitplanung ließe sich mit Mobilgeräten und Handys synchronisieren, was das ganze portabel und aktualisierbar machen würde. Schön wäre auch, wenn man die Funktionalität erweitern würde: So könnte man einen Tag vor dem Examen erinnert werden sich vorzubereiten, per E-Mail, Aufruf eines Skripts, Abspielen eines Sounds etc. Keiner der Planer für BeOS/Haiku kann sowas, obwohl AutoPilot und BeThere dem schon recht nahe kommen. Andererseits können die ihre Kalender nicht auf den Desktop verankern. Schade, wie ich finde, Replicants sollten wo möglich (und praktisch) verwendet werden.

Letztendlich hab ich ein grobes Design der Anwendung entwickelt und auch schon mit der Implementierung begonnen. Auf der Bewerbungsseite stehen noch ein paar mehr Details.

Wie lief die Bewerbung ab? War irgendwas zu kompliziert oder abschreckend?

Ehrlich gesagt war die Voraussetzung einen mit "Easy" gekennzeichneten Bug zu beseitigen nicht so einladend. Ich verstehe allerdings den Sinn dahinter. Es sieht auf alle Fälle so aus, als würde dies zur Standardprozedur für Haikus GSoC. Ich werde mich also damit abfinden müssen. :)

Hast Du Dich neben Haiku noch bei anderen GSoC Organisationen beworben?

Nee, hab ich nicht. Ich hab mir überlegt es bei ReactOS zu probieren, aber soweit ich weiß, waren die dieses Jahr nicht beim GSoC dabei.

Wärst Du an einen evtl. Haiku Code Drive wie im letzten Jahr interessiert? [Das Interview wurde vor der Bekanntgabe der HCD Studenten gehalten.]

Sicher wär ich das. Ich würde die Kalender/Organizer Anwendung bevorzugen, weil mir die am meisten nutzen würde ;) , aber alles andere wäre auch möglich.

ICO bedankt sich herzlich für die ausführlichen Antworten, der Übersetzer ist nicht ganz so dankbar, aber immer noch reichlich... :)

Keine Kommentare:

Kommentar veröffentlichen