Release! (still alpha) | Freigabe! (noch im Alphastadium)

23. July 2008 by eyebachelor

Deutsch weiter unten!

The first release was due. All files available under featured downloads on http://code.google.com/p/eyebachelor/

#####################################

Die erste Version war fällig. Alle betroffenen Dateien erhältlich unter “Featured Downloads” auf http://code.google.com/p/eyebachelor/

Wrote function setPupilCenterPoint_LLM | Habe die Funktion setPupilCenterPoint_LLM geschrieben

15. March 2008 by eyebachelor

(Deutsch weiter unten!)

I’ve implemented another function called setPupilCenterPoint_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setPupilCenterPoint_LLM geschrieben, zu sehen in dieser ‘Aktuellesten Dokumentation (Deutsch)’.

Finite-State-Automaton with SeeMe | Zustandsdiagramm mit SeeMe

12. March 2008 by eyebachelor

(Deutsch weiter unten)

I have downloaded SeeMe, a program to visualize a system using a semi-socio modeling method, from
http://www.imtm-iaw.rub.de/projekte/seeme/index.html (German).

This program is perfect for presentational purposes.

With this program I am creating a semi-formal finite-state-automaton during development that represents my program.

The beauty of this program – in my opinion – is that in a presentation you can hide everything that is currently not important – which reduces the size of the automaton – while the model of the entire system is available in the background (you can even model roles that interact with your system – you probably don’t have this freedom on other editors).

The current overall model can be found at
http://eyebachelor.googlecode.com/files/overall.gif (English).

I will only create an English version.

################################

Ich habe SeeMe (Ein Programm zur Anwendung der/einer “Semistrukturierte[n] soziotechnische[n] Modellierungsmethode”) von
http://www.imtm-iaw.rub.de/projekte/seeme/index.html (Deutsch)
runter geladen.

Dieses Programm eignet sich fabelhaft für Präsentationszwecke.

Ich erstelle mit dessen Hilfe im Laufe der Entwicklung einen semi-formales Zustandsdiagramm für meine Software.

Das tolle an diesem Programm – finde ich – ist, dass man bei einer Präsentation alles bis auf das (momentan) wesentliche ausblenden kann und aber gleichzeitig das betroffene System in seiner Gesamtheit vorhanden ist (z.B. können auch Rollen die mit dem System interagieren modelliert werden – diese Freiheit hat man bei reinen Zustandsdiagramm-Editoren wahrscheinlich nicht).

Das jeweils aktuelle Diagramm ist unter
http://eyebachelor.googlecode.com/files/overall.gif (Englisch)
zu finden.

Ich werde das Diagramm allerdings nur in englischer Sprache erstellen.

Wrote function setFaceImage_LLM | Habe die Funktion setFaceImage_LLM geschrieben

11. March 2008 by eyebachelor

(Deutsch weiter unten!)

I’ve implemented another function called setFaceImage_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setFaceImage_LLM geschrieben, zu sehen in dieser ‘Aktuellesten Dokumentation (Deutsch)’.

Wrote function setUndistortedImage_LLM | Habe die Funktion setUndistortedImage_LLM geschrieben

28. February 2008 by eyebachelor

(Deutsch weiter unten!)

I’ve implemented another function called setUndistortedImage_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setUndistortedImage_LLM geschrieben zu sehen in dieser ‘Aktuellesten Dokumentation (Englisch)’.

Documenting in different languages with Doxygen | Mit Doxygen in verschiedenen Sprachen dokumentieren

26. February 2008 by eyebachelor

(Deutsch weiter unten!)

Today I’ve found out – okay, I was given a hint – that it is easy to create the Doxygen documentation in several languages at once (It’s all in the Doxygen documentation of course ;-) ).

In the configuration file (Doxyfile) edit the following line:
ALIASES
by adding the following entries:
“english=if english” “endenglish=endif” “deutsch=if deutsch” “enddeutsch=endif”

In line
ENABLED_SECTIONS
add
deutsch
or
english
what ever is needed next.

In the code write:
/*! @english
* This is English.
* @endenglish
* @deutsch
* Das ist Deutsch.
* @enddeutsch
*/

And the entire documentation will be in one language – surprise, surprise. (There is a more direct way, but that’ll do for now.)

And the documentation suddenly becomes a lot more readable ;-)

###########################

Ich habe heute herausgefunden, dank eines Winks mit dem Zaunpfahl, dass es ganz einfach ist die Dokumentation in Doxygen in mehreren Sprachen zu erstellen (Steht auch alles in der Doxygen Dokumentation ;-) ).

In der der Konfigurationsdatei (Doxyfile) kommen in die Zeile:
ALIASES
zusätzlich folgende Einträge:
“english=if english” “endenglish=endif” “deutsch=if deutsch” “enddeutsch=endif”

In der Zeile
ENABLED_SECTIONS
wird je nach Bedarf
deutsch
oder
english
hingeschrieben.

Im Code macht man folgendes:
/*! @english
* This is English.
* @endenglish
* @deutsch
* Das ist Deutsch.
* @enddeutsch
*/

Und schon wird die Dokumentation völlig einsprachig. (Es geht noch direkter, aber das reicht fürs Erste.)

Und die Dokumentation wird wirklich lesbarer ;-)

Wrote Function setEditableImage_LLM | Habe die Funktion setEditableImage_LLM geschrieben

25. February 2008 by eyebachelor

(Deutsch weiter unten!)

I’ve implemented another function called setEditableImage_LLM included in this ‘Current documentation (English)’.

################################

Habe die nächste Funktion setEditableImage_LLM geschrieben zu sehen in dieser‘Aktuellesten Dokumentation (Englisch)’.

Exception handling for the Tracker | Fehlerbehandlung im Tracker

25. February 2008 by eyebachelor

(Deutsch weiter unten!)

For the Tracker part of the Software I decided to use return values rather than exception handling with TRY/CATCH, because of the following two reasons:

1) One of the reasons for using exception handling with try/catch is the avoidance of large “error handling trees”, which at a function call hierarchy of only a few levels quickly becomes cluttered.

Example: The bottom function knows 2 error conditions.
The above must handle these two errors and has 3 error conditions itself.
Theoretically the next function above must now handle 6 errors …

Since the tracker has “only” about four levels with probably “only” two error conditions (success, failure) and …

2) exception handling with try/catch creates additional overhead…

I will use return values for this part of the software.

####################

Ich habe mich entschieden für den Tracker keine Fehlerbehandlung mit TRY/CATCH sondern mit Rückgabewerten einzusetzen. Dies hat folgende zwei Gründe:

1) Der Grund für den Einsatz von einer Fehlerbehandlung mit try/catch ist unter anderem die Vermeidung großer “Fehlerbehandlungsbäume”, die bei einer Funktionsaufrufshierarchie von nur einigen Ebenen schnell unübersichtlich wird.

Beispiel: Die Unterste Funktion kennt 2 Fehlerzustände.
Die darüber muss diese beiden Fehler behandeln und hat selbst 3 Fehlerzustände.
Die darüber muss nun theoretisch 6 Fehler behandeln…

Da der Tracker “nur” ca. vier Ebenen haben wird mit vorraussichtlich “nur” jeweils zwei Fehlerzuständen (Erfolg,Misserfolg) und…

2) die Fehlerbehandlung mit try/catch zusätzlichen overhead produziert…

werde ich für diesen Teil der Software Rückgabewerte einsetzen.

Example JavaDocs, Doxyfile and Copiled HTML Helpfile(.chm) | Beispiel für meine JavaDoc, generierende Doxyfile und Copiled HTML Hilfedatei(.chm)

24. February 2008 by eyebachelor

(Deutsch weiter unten!)

Today I have made some decisions. I have designed my JavaDocs documentation format, and thereby indirectly (through Doxygen and the generating file Doxyfile_english) take influence on the appearance of the generated Help file (in .html and .chm files). I have designed the layout of the help file largely oriented on SELFHTML’s layout, because I have always felt that this manual allowed easier access (even for beginners) . You’ll find my JavaDocs format here, the generating Dogygen file is here and the .chm output file here.

########################

Heute habe ich einige Entscheidungen getroffen. Ich habe das Format meiner JavaDocs Dokumentation festgelegt und somit indirekt (über Doxygen und die generierende Datei Doxyfile_deutsch) auf das Aussehen der generierten Hilfedatei (im .html und .chm Format) Einfluss genommen. Bei der Hilfe Datei habe ich mich weitestgehend am Layout von SELFHTML orientiert, da ich schon immer fand, dass man dazu (auch als Anfänger) leichter Zugang findet.
Mein JavaDocs Format ist hier, die generierende Datei ist hier und die .chm-Datei hier.

Requirements for the Development Environment | Anforderungen an die Entwicklungsumgebung

23. February 2008 by eyebachelor

(Deutsch weiter unten!)

Okay, so I am developing the mouse system for Windows, with OpenCV.

Originally, I wanted to use Dev-C + + with the MinGW compiler (or wxDev C + + because of the Form-Editor), becaus of the low disc space requirements. I followed the instructions at http://opencvlibrary.sourceforge.net/DevCpp to use OpenCV with Dev-C + +, but to my disappointment only the the C sample files ran, the C + + examples didn’t.

So I will now state the requirements for the development environment (I use the Windows XP operating system, 1.5 gigahertz):

- Visual C + + 2008 Express Edition
- OpenCV, tips on using OpenCV with Microsoft Visual C + + can be found in the online wiki at http://opencvlibrary.sourceforge.net/VisualC% 2B% 2B
- I use the C + + programming guidelines at http:// … Hey, where’dey go?
Ah here (german document, find more at dmoz.org) http://zach.in.tu-clausthal.de/progr/guidelines.html
- I will be using JavaDocs for commenting style, which enables the next point …
- I use Doxigen to the extract comments from my source code and generate an HTML documentation automatically(!!!). (Configuring the doxyfile until you are content with the Document outcome took me a whole day but it was worth it!)
- With the help of Microsoft’s HTML Help, I let Doxygen create Copiled HTML Help files ( .chm )
- With the help of Graphviz I let Doxygen create graphics for the documentation. These graphics e.g. shows what functions are calling which other functions, that’s really neat ;-)

- I use normal functions, so they can be used or left out as you please.
- I’ll name all functions with the “_LLM” suffix.
- On Pointers I will add a “_P” suffix, and double-pointers (pointers to pointers) a “_PP” suffix.
- I will continuously add my functions to a “.h” header file. so you can include them any time you need them (similar to the OpenCV header files)
- I will try to program the entire thing exception-safe (So without any unexpected conditions – HAHA ;-) )

- As a constant light source I’ll use indirect, diffused, yellow lighting with a brightness between 500 and 700 LUX (Recommended values for reading and or detailed work by (researched) Ergonomics)

- The manual is created with LaTeX

- My goal is to write all documents in German and English

Okay that’s it! :-)

##########################################

Also ich entwickle das Maus-System für Windows, mit OpenCV.

Ursprünglich wollte ich Dev-C++ mit dem MinGW Compiler nutzen (bzw. wxDev-C++ wegen des Form-Editors), wegen des geringen Platzbedarfs. Ich befolgte die Anleitung auf http://opencvlibrary.sourceforge.net/DevCpp, um OpenCV mit Dev-C++ zu benutzen, aber zu meiner Enttäuschung liefen nur die C Beispieldateien, die C++ Beispiele liefen nicht.

Ich habe mich also für folgende Anforderungen an die Entwicklungsumgebung entschieden (Ich benutze das Windows XP Betriebssystem, 1,5 Gigahertz):

- Visual C++ 2008 Express Edition
- OpenCV, Hinweise zur Nutzung von OpenCV mit Microsoft Visual C++ auf http://opencvlibrary.sourceforge.net/VisualC%2B%2B
(Eine deutsche Übersetzung finden Sie hier: http://eyebachelor.googlecode.com/files/cv.pdf)
- Ich benutze die C++ Programmier Richtlinien von http://… Hm, wo waren die nochmal?
Ah hier: http://zach.in.tu-clausthal.de/progr/guidelines.html
- Ich werden mittels JavaDoc kommentieren, das ermöglicht den nächsten Punkt…
- Ich verwende Doxigen, um aus den Kommentaren automatisch(!!!) eine HTML Dokumentation zu generieren. (Die Konfiguration bis zur Zufriedenheit ist langatmig, aber lohnt sich!!!)
- Mit Hilfe von Microsoft’s HTML-Help lasse ich Doxygen zusätzlich eine Copiled HTML Hilfedatei erzeugen ( .chm )
- Mit Hilfe von Graphviz lasse ich Doxygen zusätzlich Graphiken für die Dokumentation erzeugen. Diese Graphiken zeigen zum Beispiel welche Funktion von welcher anderen Funktion aufgerufen wird, echt hübsch ;-)

- Ich verwende einfache Funktionen, damit diese nach belieben verwendet oder weggelassen werden können.
- Ich benenne alle Funktionen mit dem “_LLM” Suffix.
- Zeiger (C++ Pointer) werde ich mit “_P” Suffix, und Doppel-Zeiger (Zeiger auf Zeiger) mit “_PP” Suffix benennen
- Ich werde meine Funktionen nach und nach in eine “.h” Header Datei auslagern, die man dann jeder Zeit einbinden kann, wenn man sie braucht (ähnlich wie die OpenCV Dateien)
- Ich werde versuchen das ganze Exception-Sicher zu programmieren (Also ohne unerwartete Zustände – HAHA ;-) )

- Als konstante Lichtquelle nutze ich indirektes, gestreutes, gelbliches Licht mit einer Stärke zwischen 500 und 700 LUX (Empfohlene Werte aus der Ergonomie für Lesen bis Detailarbeiten)

- Das Handbuch wird mit LaTeX erstellt

- Mein Ziel ist es die gesamten Dokumente in Deutsch und Englisch zu verfassen

Okay das war’s! :-)