Tastatur Spiel

Mein letzter Eintrag in dem Blog ist ja schon über zwei Jahre her. Vielleicht sollte ich doch mal hin und wieder was hier posten, aber ich verspreche mir selbst lieber nicht zuviel;-)

Jetzt habe ich wenigstens mal wieder einen Anlass, da ich ein kleines Projekt mit der Welt teilen möchte. Idee war, eine Anwendung zu schreiben, die auf wirklich kinderleichte Art das Üben mit der Tastatur ermöglicht. Es wird einfach nur ein Buchstabe auf dem Bildschirm angezeigt, wenn man den entsprechenden Buchstaben drückt ertönt ein Geräusch und der nächste Buchstabe wird angezeigt. Wenn man irgendeine andere Taste drückt, passiert nichts. Das ganze lässt sich mit wenigen Tasten Javascript implementieren, wobei ich mich auf zwei Bibliotheken gestützt habe, was bei so einem Min-Projekt wohl gar nicht nötig gewesen wäre:

  • Das unvermeidliche JQuery, um etwas einfacheren Code für den Zugriff auf Elemente des DOM verwenden zu können
  • Timbre.js, eine JavaScript Bibliothek zum programmatischen Erzeugen von Sounds, um einfach nur das Piepen nach jedem Anschlag zu erzeugen.

Verlinkt habe ich das auch: Tastaturspiel gleich ausprobieren, oder zum Download.

tastatur_spiel

Hello World in Javascript

Du! Leser dieses Artikels. Gib doch einfach mal javascript:alert("Hello World"); in die Adresszeile deines Browsers ein.

Glückwunsch, Du hast soeben ein Javascript-Programm geschrieben und ausgeführt.

Man kann sogar halbwegs nützliche Dinge damit anfangen. Wenn gerade kein Taschenrechner zur Hand ist:

javascript:alert(19152/456);

Oder sogar solche Sachen:

javascript: var kg = 78; var m = 1.77; function sq(x) {return x*x;} alert("BMI: "+(kg / sq(m)));

Jetzt kommt man schnell an die Grenzen von dem, was man in den Browser eintippen möchte, aber interessant finde ich es trotzdem. Ich glaube sowieso, dass Javascript hervorragend als allererste Programmiersprache für Anfänger geeignet ist, weil

  • Man überhaupt keine „Installation“ braucht, um loslegen zu können. Jeder hat täglich mit einem Browser und fast jeder mit Notepad oder Ähnlichem zu tun.
  • Die geschriebenen Programme lassen sich trivial leicht weitergeben und von anderen ausprobieren
  • Mit relativ wenig Aufwand kann man schon richtig coole Sachen machen, um etwa eine statische Webseite aufzupeppen, wenn Frameworks wie JQuery oder Dojo benutzt werden.
  • Im Gegensatz zu z.B. Pascal kann man Javascript-Kenntnisse in der realen Welt wirklich brauchen. Es ist wahrscheinlich, dass diese Sprache in den nächsten Jahren noch an Bedeutung gewinnen wird.
  • Die Sprache unterstützt verschiedene Programmierparadigmen: Man kann streng prozedural, objektorientiert oder auch funktional programmieren.

Ich plane eine Artikelserie, um Programmierung mit Javascript für absolute Programmier-Anfänger zugänglich zu machen. Ich bin der Meinung, dass ein Mensch heutzutage einfach wissen sollte, was ein Algorithmus, eine Variable und eine Funktion ist, auch wenn er niemals sein Geld mit Programmieren verdienen wird.

Eingestellte Projekte

Zum neuen Jahr habe ich einige Domains wieder freigegeben, für deren Nutzung mir die Zeit fehlt. An dieser Stelle möchte ich nochmal festhalten, worum es ging, und mich wehmütig von eingestellten oder gescheiterten Projekten verabschieden…

flowlinesuntergrund.de

FLU heißt jetzt Matyes, und betreibt weiterhin mit anderen zusammen hannoverrap.de. Die Domain flowlinesuntergrund.de wird daher nicht mehr gebraucht.

mapcraft.net

Mapcraft.net
broodwarmaps.net war ja relativ erfolgreich, und so wollte ich einen legitimen Nachfolger auf die Beine stellen. Obwohl einige Aspekte der Programmierung und das Design (Dank meines Kumpels Wanja) schon recht fertig aussehen, habe ich das Ganze jetzt doch eingestampft, weil ich aus Erfahrung weiß, dass a) das Feintuning bei der Programmierung und b) das Managen einer Community die mit Abstand zeitaufwändigsten Aspekte sind. Ich musste irgendwann einsehen, dass mir das Thema dann doch nicht wichtig genug ist, um wirklich viel Zeit hineinzustecken.

MyOwnMag.net

myownmag
Die Idee war ambitioniert: Eine Zeitung/Zeitschrift praktisch vollautomatisch herstellen. Der Inhalt würde aus RSS-Feeds beispielsweise von Blogs generiert werden. Regelmäßig ablaufende Cron-Jobs führen Skripte aus, die nach neuen Artikeln in diesen Feeds suchen und aus den Text-Inhalten PDFs generieren. Diese PDFs würden schließlich per E-Mail an den Empfänger versendet werden.
Technisch habe ich die Idee mit PHP (FPDF für die PDF-Generierung) umgesetzt. Es hat funktioniert, aber für den notwendigen Feinschliff und Promotion hat mir dann wieder mal die Motivation gefehlt. Da der Service also von niemanden genutzt wird, habe ich die Domain wieder gelöscht. Mittlerweile gibt es im Internet einige Services, die das gleiche in besserer Qualität machen: Google-Suche

deutschrap-radio.de

deutschrapradio
Ich war positiv überrascht, dass ein so guter Domainname noch frei war, als ich im Juni ’08 zusammen mit meinem Bruder Mathias und Eliquez unter die Podcaster gegangen bin. Da ich für dieses Projekt selbst nicht programmiert habe, sondern mit WordPress + Plugin gearbeitet habe, und die Aufnahmen sehr zeitsparend One-Take durchgezogen wurden, hat das ganze nicht viel Zeit gekostet. Allerdings ging uns recht schnell die wirklich interessante, frei downloadbare Musik aus. Und primär kommerzielle Musik zu spielen erschien wenigstens Mathias und mir wenig attraktiv.

hannover-basketball.de

hannover-bb
Als ich noch in Hannover lebte, war diese Seite mein Versuch, mit Blog und Forum die Verbundenheit und Organisation der lokalen Basketball-Szene zu verbessern. Letztendlich macht Cheik das gleiche allerdings mit bewundernswertem Einsatz schon seit Jahren deutlich erfolgreicher als ich auf BallintheCity-Hannover. Als ich aus Hannover wegzog, wurde die hannover-basketball.de inaktiv.

universallaie.de

Erst vor ein paar Monaten habe ich mir diese Domain gesichert, aber jetzt realisiert, dass ich doch nichts draus machen werde. Der Name hatte mir gefallen, und ich habe grob in die Richtung gedacht, etwas wie eine Seite zum Lernen und Lehren dort einzurichten, die es den Nutzern ermöglichen würde, durch Grundkenntnisse in vielen Wissensbereichen „Universallaien“ zu werden.

In ein paar Tagen sollte die Domainlöschung bearbeitet werden und die Seiten dann nicht mehr erreichbar sein. Neben den etwa 70 Euro jährlich, die ich damit einspare, erhoffe ich mir, dass ich auf diese Weise den Fokus auf die Zukunft setzen zu können statt auf alte Projekte…

Registry zerschossen – und wie ich das Problem gelöst habe

Am Freitag abend ging plötzlich gar nichts mehr: Statt in Windows zu booten, gab der Rechner mit der folgenden Meldung auf:

Windows konnte nicht gestartet werden, da folgende datei beschädigt ist: Windows\SYSTEM32\CONFIG\SYSTEM

Die offizielle Lösung für das Problem sieht vor, dass man mit der Windows XP CD die Recovery-Funktion nutzt, um auf eine alte Version der Registry zurückzuspringen. Auch nachdem ich dank eines Kollegen an eine Windows CD kam, war das Problem aber nicht gelöst, da die Festplatte von dem System auf der CD nicht erkannt wurde. Ich bin dann am Samstag abend noch schnell zum Bahnhof gefahren und habe mir eine c’T Sonderausgabe gekauft, in der sich Knoppix, ein vollständig vom optischen Datenträger lauffähiges Linux-Derivat, befand. Damit konnte ich dann durch kopieren einiger Dateien das System wieder in Ordnung bringen.

Wenn jemand dieses Problem hat, empfehle ich die gleiche Vorgehensweise. Über Windows geht es unter Umständen auch, aber wenn ich die Beschreibung im folgenden Link lese, scheint es mir doch recht umständlich zu sein. Wenn man Knoppix benutzt, kann man gleich bei Abschnitt 2 starten und kann die Hälfte der Details einfach überlesen…
http://support.microsoft.com/?kbid=307545

Portraitfoto pimpen

In der aktuellen c’T lag unter anderem eine Vollversion des Programms Portrait Professional in der Version 6 bei. Da ich ein paar Minuten Zeit hatte, habe ich einfach mal ausprobiert, was das Programm mit meinem Gesicht anstellt:)
paul_verschoenern1
Zuerst einmal muss man die genaue Position von Augen, Nase, Mund und Kinn festlegen. In der vorliegenden Version ist das Programm nicht in der Lage, das selbst zu erkennen. Es können dann verschiedene Profile gewählt oder die einzelnen Parameter detailliert selbst gesetzt werden. Den Rest übernimmt die Software – manuelles Retouchieren ist hier nicht nötig oder vorgesehen.
vorher_nachher_dramatisch
Links das Original, rechts das bearbeitete Bild

Ergebnisse

Voreinstellung Aussehen männnlich
aussehen_m
Voreinstellung Glamour
dramatisch
Manuell, insbesondere starke Korrektur im Augenbereich.
manuell

Hautunreinheiten werden ganz gut weggebügelt, aber irgendwie bekommt man doch einen ganz schönen Plastik-Look durch die Filter. Mir gefällt das Original ehrlich gesagt besser:D

Javascript and Java

Jeremy Keith:
Java is to JavaScript as ham is to hamster.

Der Name Javascript wurde damals für die Scriptsprache, ohne die das Web 2.0 nicht funktionieren würde, gewählt, um vom Hype um Java zu der Zeit zu profitieren. So ähnlich, wie heutzutage alles mögliche die Versionsnummer 2.0 bekommt;-) Ansonsten haben die Sprachen außer ein bisschen Syntax nicht viel gemein.

Das W3C, das Standardkomitee des Internets, hat beschlossen, die Entwicklung an XHTML2.0 (Hey, da ist es wieder. 2.0. In diesem Fall ist das aber wirklich eine Versionsnummer und nicht nur ein Marketing-Gag) einzustellen und sich stattdessen auf HTML5 zu konzentrieren. Einen interessanten Artikel dazu hat Jeremy Keith verfasst.

EADD 2009

Der Eclipse Application Developer Day fand gestern in Ettlingen bei Karlsruhe statt. Gastgeber war die Softwarefirma Silverstroke, die in einem architektonisch modernen und sehr offenen Gebäude residiert.
Silverstroke Office
Arne, Teamkollege bei der FTG und seit Anfang Juli Praktikant bei meinem Arbeitgeber HighQ-IT, und ich sind morgens um 6 Uhr 50 vom Hauptbahnhof Frankfurt losgefahren, um pünktlich bei der Veranstaltung anzukommen.

Paul-Gabriel Müller and Arne
Insgesamt haben wir uns 7 Vorträge und eine Panel-Diskussion angehört, bevor wir die Heimreise angetreten haben. Im Nachhinein denke ich, wir hätten vielleicht etwas länger bleiben sollen, um nach den Vorträgen noch ein paar Kontakte zu anderen Eclipse-Entwicklern zu knüpfen. Beim nächsten Mal 😉

Die Vorträge wurden fast alle auf deutsch gehalten, während die Folien auf englisch waren. Diese Kombination ist nicht ungewöhnlich und habe ich schon zu seligen Studien-Zeiten kennengelernt.
Als kleine Gedächtnisstütze für mich selbst und evtl. meine Kollegen werde ich zu jedem der Vorträge einen kurzen Satz schreiben.

  • Jochen Krause, EclipseSource / Harald Mueller, SAP: Keynote – Eclipse Runtime: Business Ready Open Source
    Besprochen wurde die zunehmende Verbreitung von OSGi auf Servern, die es ermöglicht, die Eclipse-Plattform nicht nur in GUI-Applikationen auf dem Client, sondern auch für Server-Anwendungen („Headless“ = ohne UI) einzusetzen. Darüber hinaus wurde ein grober Überblick über verschiedene Themen wie Equinox als „Kernel“ von Eclipse und Projekte wie Jetty oder RAP gegeben.
  • Leif Frenzel, andrena objects / Stefan Schürle, andrena objects: Gekonnt tranchieren, ansprechend garnieren und maßvoll würzen …
    In diesem Vortrag ging es um die Organisation von Plugins bei größeren Projekten. Hängen geblieben sind neben den vielen Fotos von Nahrungsmitteln auf den Vorlesungsfolien bei mir, dass man möglichst „Extension Points“ nutzen sollte, seine Plugins besser nach Funktionalität als nach technischen Gesichtspunkten trennen sollte (Gutes Beispiel: Ein Plugin für Versionskontrolle und eins für Java-Entwicklung. Schlechtes Beispiel: Ein Plugin für Views und eins für Actions). Außerdem wurde empfohlen, lieber mehrere ViewParts und EditorParts mit klar abgesteckten Aufgaben zu erstellen, statt alles in einer komplexen Mega-View zu behandeln. Zur Kommunikation zwischen den Views sollten SelectionServices eingesetzt werden. Abschließend wurde über die „innere Softwarequalität“ und das Tool ISIS gesprochen. Ein sehr gelungener Vortrag.
  • Jens Kübler, aquintos: Automatisierte GUI Tests mit SWTBot :
    Mit SWTBot lassen sich in Eclipse grafische Oberflächen (UI = User Interface) automatisch testen. Hervorgehoben wurde, dass es sich nicht um aufgezeichnete Tests handelt, die von Testexperten wegen ihrer geringen Flexibilität abgelehnt werden, sondern um welche, die programatisch erzeugt werden. SWTBot bietet eine große Auswahl von Methoden an, um Interaktionen wie das Anklicken eines Menüpunkts zu modellieren und die Ergebnisse zu testen. Das Projekt befindet sich noch in der „Incubator“-Phase, ist also für den Produktiveinsatz noch nicht unbedingt reif.
  • Dr. Frank Gerhardt, Gerhardt Informatics Kft.: Eclipse Data Binding — updating RCP Mail 2.0 (PDF)
    RCP Mail ist das Standard-Tutorial zum Lernen der RCP-Entwicklung. Frank Gerhardt hat die neue Version vorgestellt. Hervorgehoben wurde, dass es sich um eine Art Copy&Paste-Vorlage handelt, und deswegen sehr darauf geachtet wurde, es „richtig“ zu machen.
  • Benjamin Muskalla, EclipseSource: „Single Sourcing RCP and RAP“ – Desktop and web clients from a single code base
    Sehr beeindruckend fand ich diesen Vortrag:

    Chris Aniszczyk:
    “Cool, one runtime to rule them all”

    RAP (Rich Ajax Platform) erlaubt es, mit einigen Anpassungen, RCP-Applikationen in Web-Anwendungen in HTML und Javascript umzuwandeln. Dabei wird die gesamte Arbeit am Server gemacht, der Client braucht nur noch einen Webbrowser, um die Anwendung nutzen zu können.

  • Hans-Joachim Brede, BREDEX: Automated functional testing with keywords
    Der zweite Vortrag zum Thema „Tests“ beschäftigt sich ausdrücklich mit funktionalen Tests, bei denen es im Gegensatz zu Unit Tests nicht darum geht zu testen, ob ein kleines Stück Code so funktioniert, wie der Programmierer es erwartet, sondern darum, ob das Gesamtprogramm sich gemäß der Spezifikation verhält. Hans-Joachim Brede verfolgt dabei einen pragmatischen Ansatz und sagt, dass zuerst einmal der „Happy Path“ getestet werden muss, also dass das Programm bei korrekter Benutzung funktioniert, und das Testfälle explizit nicht von Entwicklern, sondern von den Testern geschrieben werden sollten. Im Prinzip kann das von ihm vorgestellte „Keyword-driven Testing“ also den Testern manuelle Arbeit abnehmen, wenn sie in der Lage sind, ein wenig Code zu schreiben.
  • vortrag_e4
    Thomas Schindl, BestSolution.at: The Modeled UI in Eclipse e4
    In breitem Schwytzerdeutsch referierte Thomas Schindl über e4, bei dem es sich mehr oder weniger um ein Rewrite der Eclipse-Plattform (Aktuelle Version: 3.5, Codename Galileo) handelt. Lästiger und im Regelfall überflüssiger Legacy Code kann hier endlich über Bord geworfen werden, und einige umständliche Konventionen, z.B. die Notwendigkeit, selbst bei simplen Applikationen eine Perspektive definieren zu müssen, können durch einfacherere Vorgehensweisen ersetzt werden. Außerdem wird statt der teilweise sehr komplexen Vererbungsstruktur in Eclipse mehr mit Injection gearbeitet, um Funktionalität wiederzuverwenden.

Die Verpflegung während der Veranstaltung war reichlich, und die leeren Teller mit leckerem Kuchen wurden ständig durch volle ersetzt. Glücklicherweise konnte ich meinen Appetit noch halbwegs im Zaum halten:) Insgesamt war es eine sehr gelungene Veranstaltung, die ich auf jeden Fall wieder besuchen würde.

Das Buffet in den Vortragsräumen wurde ständig wieder aufgefüllt

Das Buffet in den Vortragsräumen wurde ständig wieder aufgefüllt

Der Bahnhof von Karlsruhe, übrigens Bahnhof des Jahres 2008, wurde von mir auch noch fotografiert:
karlsruhe_bahnhof
karlsruhe_bahnhof2
Abschließend noch ein Foto von der „S-Bahn“ in Karlsruhe. Sieht eher aus wie eine Straßenbahn, und fährt auch auf der Straße. Und es gibt gar keine Türen links in diesen Bahnen, was ja auch eher ungewöhnlich ist.
s-bahn_karlsruhe
So sieht übrigens der Fußboden in den Bahnen aus (Ooh-Kay, ich bin einfach aus Versehen auf den Auslöser gekommen^^)
fuesse

Profiling & Performance – Tuning bei RCP-Anwendungen

eclipse
Die RCP-Anwendung, an der ich auf der Arbeit programmiere, reagiert bei größeren Dateien mit einer gewissen Behäbigkeit auf Tastatureingaben. Und wenn der Rechner langsam genug und die Dateien groß genug sind, verlieren auch weniger ungeduldige Leute als ich ihre Nerven. Es war also nach sieben Monaten mal nötig, sich intensiver mit der Performance unserer Applikation zu beschäftigen. Warum wir das nicht schon viel früher gemacht haben?

“The First Rule of Program Optimization: Don’t do it. The Second Rule of Program Optimization (for experts only!): Don’t do it yet.” – Michael A. Jackson (Nein, nicht der Thriller-MJ. RIP :-()

oder auch

„We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.“ (Donald Knuth)

Aber nun war es doch mal nötig, sich damit zu beschäftigen. Einfach drauflos zu optimieren hat natürlich keinen Sinn, man muss zuerst einmal wissen, welche Abschnitte wirklich Zeit kosten. Dabei können einem Profiler-Tools helfen. Wir haben TPTP eingesetzt, um einen Eindruck davon zu bekommen, in welchen Methoden unser Programm einen Großteil seiner Zeit verbringt.
tptp_options
Standardmäßig ignoriert TPTP dabei unter anderem alle Pakete, die mit „org“ beginnen, was in unserem Fall nicht so erwünscht war. Eine zusätzliche Regel, die Pakete unter „org.eclipse.jst.pagedesigner“ explizit miteinzubeziehen, hat dieses Problem für uns gelöst. Da der Overhead für diese Analysen zur Laufzeit enorm ist, ist es allerdings schon sinnvoll, nur innerhalb der Klassen zu testen, an die man wirklich heran kommt. So konnten wir herausfinden, dass der Großteil der Laufzeit beim Einfügen von Zeichen für Code draufgeht, der sich um das Synchronisieren der grafischen Darstellung und die Validierung der Eingabeposition kümmert. Bei der weiteren Entwicklung hat es sich dann als nützlich erwiesen, mit folgendem Code zu prüfen, welche Methoden innerhalb einer offenbar aufwändigen Methode den Großteil der Arbeitszeit in Anspruch nehmen. Denn nur an diesen Stellen möchte man überhaupt etwas ändern. Schließlich bringt jede Änderung das Risiko mit sich, irgendetwas kaputt zu machen;-)


long time = System.currentTimeMillis();
doSomething();
System.out.println("doSomething: "+(time-System.currentTimeMillis()));
time = System.currentTimeMillis();
doSomethingElse();
System.out.println("doSomethingElse: "+(time-System.currentTimeMillis()));

Ein weiteres nettes Tool zum profilen von Java-Applikationen ist visualVM, dass von Sun mit dem JDK mitgeliefert wird. Damit kann man bereits laufende Java-Anwendungen unter die Lupe nehmen. Leider lief es in unserem speziellen Fall nicht schnell genug und lieferte keine relevanten Ergebnisse, aber für viele einfacher aufgebaute Java-Anwendungen ist das eine gute Option.visualvm

Mit Hilfe der Werkzeuge und einigen Aussparung von vermeintlich überflüssigem Code konnten wir die Eingabegeschwindigkeit vielfach erhöhen. Bevor wir diese Änderungen ausliefern, werden wir aber lieber testen, ob wir wirklich nichts kaputt gemacht haben…

Präsentationstraining

prasentation
In den letzten beiden Tagen konnte ich eine willkommene Auszeit von der RCP-Programmierung nehmen und habe gemeinsam mit 5 meiner Kollegen an einem Präsentations-Training teilgenommen. Drei Aspekte waren dabei von zentraler Bedeutung: Körpersprache, Stimme und die Struktur des Vorgetragenen. Gerade die Körpersprache macht wohl einen deutlich größeren Unterschied, als ich bisher gedacht hätte. Jeder kennt diese Statistiken, dass diese „Oberflächlichkeiten“ den Eindruck zu 70% oder mehr prägen sollen, aber bisher habe ich die immer für Humbug von Trainern gehalten. Wenn man aber Video-Aufzeichnungen einer eigenen Präsentation sieht, kommen einem diese Zahlen weit weniger absurd vor. Wenn man selbst spricht, hört man nicht wirklich wie man etwas sagt und wie die Körpersprache dabei ist, weswegen man sich in seiner Wahrnehmung auf den Inhalt konzentriert. Wenn man sich selbst aus der dritten Person betrachten kann, ist das eine ganz andere Situation. Das ist wohl auch der Grund, warum Lara Croft in den Tomb-Raider-Spielen soviele Polygone spendiert bekommen hat, statt wie 1.st-Person-Shooter Helden nur aus einer Knarre zu bestehen:-)

Alle die wir beim Training dabeiwaren, haben bei der Präsentationstechnik teilweise erheblich Fortschritte gemacht. Ich hoffe, dass ich das Gelernte auch praktisch werde umsetzen können, bevor ich wieder alles vergesse. Ein paar Punkte, die ich mir in Zukunft bei Präsentationen zu Herzen nehmen möchte, trage ich hier zusammen:

  • Laut sprechen. Man hat mir immer schon gesagt, ich müsste lauter, deutlicher und langsamer sprechen. Ganz schön viel auf einmal. Der entscheidende Tipp ist, sich einfach auf laut zu konzentrieren. Der Rest kommt dann beinahe von alleine
  • Fester Stand: Füße parallel, maximal Schulterbreit, das Körpergewicht auf beiden Beinen ruhend. Total ungewohnte Art zu stehen für mich, aber es wirkt souverän, wenn man es ersteinmal verinnerlicht hat, weil man nicht mehr so leicht ins „Schwanken“ kommt
  • Gestik: Möglichst große, langsam ausgeführte Gesten, und zwar im „positiven Bereich“ oberhalb der Gürtellinie. Wenn die Hände gerade nichts zu tun haben, sollten sie möglichst locker am Körper herunter hängen, statt mit einem Stift rumzuspielen oder sich gegenseitig durchzukneten.
  • Präsentation != Vortrag != Vorlesung. Eine technische Spezifikation mit reichlich Detailwissen eignet sich nicht, um einen guten freihändigen Vortrag zu halten. Den Text soweit wie möglich reduzieren in den Folien, die bei einer Präsentation verwendet werden — Zusätzlich kann man natürlich trotzdem detaillierte Folien erstellen und zur Verfügung stellen, aber eben nicht für die Präsentation benutzen.
  • Peinlichkeit: Bei einer Präsentation werden einem Fehler unterlaufen, und man wird Sachen vergessen. Das ist so, aber das ist gar nicht so schlimm. Statt sich zu entschuldigen, zur Decke zu starren oder herumzustammeln, einfach überspielen und weitermachen. Dann fällt es wahrscheinlich nicht einmal auf, dass man gerade etwas Wichtiges Vergessen hat;-)
  • Blickkontakt: Das man irgendwie vage Blickkontakt mit dem Publikum herstellen sollte, war mir wohl schon vorher klar. Aber jetzt ist mir etwas klarer, wie man dabei vorgeht. Man sucht Blickkontakt mit einer Person und erzählt dieser Person (trotzdem in saalfüllender Laustärke^^) praktisch einen oder zwei Sätze, und dann wendet man sich der nächsten zu, die am besten nicht direkt daneben sitzt. So arbeitet man nach und nach die Zuhörer oder bei größeren Präsentation Gruppen von Zuhörern ab.

Wenn man weniger Infos auf den Folien unterbringt, langsam und unaufgeregt spricht und sich bewegt, den Zuhörern genug Zeit zum durchscannen der Folien gibt und dabei darauf achtet, nicht zu überziehen, wird man nicht sehr viele komplexe Sachverhalte vermitteln können. Und das ist wohl ein ganz wichtiger Punkt – Bei einer Präsentation ist das, anders als bei einer Prüfungssituation in der Uni, wohl auch kein großes Problem. Wenn technische Details noch unklar sind, können die wohl auch im Anschluss geklärt werden, wenn ersteinmal ein gewisses Interesse durch eine spannende Präsentation geweckt wurde. Wenn hingegen alles richtige und wichtige gesagt wurde, die Zuhörer aber erschlagen auf der Tischplatte liegen, hat man nicht viel erreicht;-)

Nun bin ich weit davon entfernt, das alles so einfach umsetzen zu können, was ich hier geschrieben habe. Aber ich möchte es in Zukunft wenigstens versuchen, und nach und nach besser in diesem Bereich werden. Das bringt mir mittelfristig wohl deutlich mehr, als noch eine weitere Programmiersprache zu lernen…

Frankfurt-Fotos

Ich war am Wochenende wieder viel mit dem Rad in Frankfurt und Umgebung unterwegs. Am Samstag bin ich nach Offenbach gefahren, und am Sonntag nach Eschborn. Dabei habe ich ein paar Fotos gemacht, die eine Seite von Frankfurt zeigen, die man so nicht auf jeder Postkarte finden würde.
Der Fluss im ersten Bild ist übrigens die Nidda, nicht etwa der Main. Wie der Bach auf dem einen Bild heißt, weiß ich allerdings nicht zu sagen…

an_der_nidda
natur_frankfurt
wald_ffm

Die folgenden drei Photos sind alle in Offenbach entstanden.
wald_offenbach
wald_offenbach3
wald_offenbach2