PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vorüberlegungen zu meiner Diplomarbeit


WhiteVelvet
2006-01-31, 21:12:37
In 2 Monaten beginne ich mit meiner Diplomarbeit, wo ich eine Software in C++ schreiben werde, die von einer 3D-Kamera die Daten über IEEE1394 annimmt, visualisiert und analysiert. Nun fange ich aber schonmal an, Vorüberlegungen zu machen. Zum Beispiel wie einfach oder schwer ist es, Daten vom Firewire-Anschluss abzugreifen. Wie viel Zeit muss ich dafür einplanen, wenn ich noch nie soweit in die Hardware programmiert habe? Ich muss sowieso mal sehen, wie viele Programmteile ich von anderen verwenden darf. Wenn also schon jemand einen Port für Firewire programmiert hat, darf ich den dann weiterverwenden oder muss ich das Rad neu erfinden.
Dann noch eine Frage: Ich werde die Kamera nicht immer an den PC angeschlossen haben und ich muss viel mit Simulationsdaten arbeiten. Ich habe mir dazu folgendes überlegt: Ich lese den Datenstrom vom Firewire aus und speichere ihn in eine Datei. Dann schreibe ich ein Hilfsprogramm, das diese Daten in einer Schleife irgendwohin streamt. Aber wohin genau? Kann ich an einen Port streamen, den ich dann mit dem Hauptprogramm abfrage? Oder kann ich das auf den Firewire-Anschluss ausgeben und gleichzeitig wieder einlesen?
Fragen über Fragen, aber vielleicht hat von Euch ja noch wer Ideen und Anregungen :)

Senior Sanchez
2006-01-31, 21:44:59
Dann noch eine Frage: Ich werde die Kamera nicht immer an den PC angeschlossen haben und ich muss viel mit Simulationsdaten arbeiten. Ich habe mir dazu folgendes überlegt: Ich lese den Datenstrom vom Firewire aus und speichere ihn in eine Datei. Dann schreibe ich ein Hilfsprogramm, das diese Daten in einer Schleife irgendwohin streamt. Aber wohin genau? Kann ich an einen Port streamen, den ich dann mit dem Hauptprogramm abfrage? Oder kann ich das auf den Firewire-Anschluss ausgeben und gleichzeitig wieder einlesen?
Fragen über Fragen, aber vielleicht hat von Euch ja noch wer Ideen und Anregungen :)

Dazu bieten sich doch TCP-Socket an ;)
Du schreibst nen kleines Programm, dass von Firewire lesen kann und dass die Daten einfach auf nem TCP-Port wieder streamed.

Dein Hauptprogramm (das halt analysiert) brauch sich nur auf den Port verbinden und wird mit Daten gefüttert. Wenn de nun den Simulator auch auf diesem Port operieren lässt, ist es dem Hauptprogramm völlig latte, ob es ne Simulation ist oder nicht und eine pot. Fehlerursache (nämlich der Unterschied zwischen Simulation und echt) sollte somit beseitigt sein ;)

WhiteVelvet
2006-01-31, 21:48:10
Hört sich gut an, so stelle ich mir das vor. Ich will im Hauptprogramm dann quasi nur einen Schalter umlegen und er liest von Firewire oder von dem TCP-Socket.

Senior Sanchez
2006-01-31, 22:02:31
Hört sich gut an, so stelle ich mir das vor. Ich will im Hauptprogramm dann quasi nur einen Schalter umlegen und er liest von Firewire oder von dem TCP-Socket.

Naja, so meinte ich das nicht ganz ;)

Ich meinte das mehr so:

Firewire-Leser ----- via TCP/IP -----> Hauptprogramm
Simulator ----- via TCP/IP -----> Hauptprogramm

Das Hauptprogramm greift nur auf den TCP-Port zu, was anderes interessiert es gar nicht. So ist es ihm dann völlig egal obs nun per Firewire ankommt oder ne Simulation ist. Da brauchste dann also keinen Schalter im Hauptprogramm mehr.

ScottManDeath
2006-02-01, 00:10:52
Die Daten würde ich (unter Windows) mit einem selbstgeschriebenem DirectShow Filter auslesen. Ich hatte damals ein SDK Sample manipuliert um an die Frames ranzukommen.

Vorteil der Sache, Du nutzt alle Codecs die benötigt sind. AFAIK ist das DirectShow SDK inzwischen vom DirectX SDK ins Plattform SDK gewandert.

ScottManDeath
2006-02-01, 00:14:20
Je nachdem was Du für eine Sprache und/oder System Du nutzt, kannst Du einfach Komponenten schreiben, eine für Daten von Firewire lesen, eine für Daten aus Datei laden, eine fürs analysieren, eine fürs Speichern. Dann kannst Du in Deinem "Hauptprogramm" einfach die passenden Komponenten zusammenstöpseln.

WhiteVelvet
2006-02-01, 01:20:46
@Senior Sanchez: Stimmt, jetzt verstehe ich was Du meinst, das klappt natürlich auch. Allerdings frage ich mich, ob ich mich dadurch nicht durch TCP/IP abhängig mache. Es kann passieren, dass die Software später auf einem Roboter eingesetzt wird und weiss natürlich nicht, ob da überhaupt TCP/IP verfügbar sein wird ;) Daher würde ich es nur zu sim-Zwecken nutzen und die Hauptdaten direkt vom Firewire abgreifen.

@ScottManDeath: Muss ich mich mal in DirectShow einarbeiten. Bisher kenne ich das alles nur aus dem Grafikbereich. Die Daten von der 3D-Kamera sind echte 3D Daten in einem speziellen Format, keine 2D DV-Daten. Ausserdem möchte ich auf Linux-Kompatibilität achten. Mal sehen, was sich noch findet als Schnittstelle. Der Prof meinte nur, ich sollte irgendwie einen Kontakt mit dem Firewire-Treiber aufnehmen.

ScottManDeath
2006-02-01, 04:58:28
Weißst Du, wie andere Software and die Daten rankommt, bzw. gibts für die Kamera kein SDK? Bin mir nicht sicher ob DirectShow auch andere Datenformate außer Audio und Video verarbeitet.

Demirug
2006-02-01, 07:56:58
Zuerst würde ich das ganze über ein Interface entkoppeln. Dann kannst du zwei Klasse schreiben die dieses Interface implementieren. Eine für den echte Hardware zugriff und eine für die Simulation. Zum anderen bist du dann auch variable für andere Hardware.

Was die Linux-Kompatibilität angeht so wirst du wahrscheinlich auch dafür zusätzlichen Code schreiben müssen den gerade im Bereich der Hardware ansteuerung gibt es ehrhebliche Unterschiede. Gleiches gilt dann für die UI. Wenn du Linux-Kompatibilität haben willst musst du gleich von Anfang an einen GUI Framework benutzten der sowohl auf Windows wie auch auf Linux verfügbar ist. Nicht zu vergessen das du das ganze dann fortwährend immer auf beiden Platformen testen musst.

Was die Ansteuerung der Kamera selbst angeht kann ich nicht viel dazu sagen da ich nicht weiß was dort an Treibern mitgeliefert wird bzw. als welche Art von Gerät sie sich meldet.

Monger
2006-02-01, 08:46:41
Nur so mal interesseweise: Wieviel Zeit hast du denn für die Diplomarbeit?

Imho ist das nämlich ein ziemlich kräftiges Stück Arbeit, vorallem weil es viele Teilgebiete umfasst:

- Hardware (Kamera)
- Netzwerk
- Simulator
- Visualisierung
- Bild-Analyse

An deiner Stelle würde ich versuchen, den Aufwand für jedes Teilgebiet möglichst präzise zu schätzen. Je nachdem über welche Zeiträume du planen musst, lohnt es sich möglicherweise, erstmal ein, zwei Wochen nur Infos zu sammeln um zu sehen, wieviel Arbeit du dir an welcher Stelle sparen kannst. Wenn du z.B. ein gutes Tutorial zur Anbindung an einen Firewire Port für C++ findest (wovon ich ausgehe, das ist ja keine exotische Anwendung), bist du an der Stelle fix fertig. Wenn du aus irgendeinem dämlichen Grund da erst nah an der Hardware rumbuddeln musst, können dafür alleine schonmal locker ein paar Wochen drauf gehen.

Meine Vermutung ist, dass du mit großem Abstand am meisten Zeit für den Simulator und für die Analyse brauchen wirst. Netzwerk sollte kein Akt sein, Anbindung an den Kameratreiber sollte gehen (wenn der nicht existiert, kannst du es sowieso vergessen), Visualisierung sollte auch nicht so das Problem sein. Aber je nachdem was du mit deinem Simulator alles simulieren willst und wie weit du es mit der Analyse treiben willst, kann das sehr igitt werden.

WhiteVelvet
2006-02-01, 10:11:29
Ich denke dir Linux-Kompatibilität wird nicht so ein Akt werden, ich habe bereits in einigen anderen Praktika C++ für beide Plattformen geschrieben. Wenn ich mich nicht irre, war es Qt, das ich dafür einsetze, das läuft auf beiden Plattformen.

Offiziell habe ich 4 Monate Zeit, aber der Prof räumt mir netterweise einen Monat als Vorlaufzeit ein und ich werde noch einen Monat vorher beginnen mit Testsoftware, womit ich einfach nur mal aus Spass meine DV-Cam ansprechen will. Wenn das klappt, habe ich das schonmal gelöst. Die 3D-Kamera hat wohl einen eigenen Treiber und meine Simulationssoftware wird danach nicht länger als ein paar Tage in Anspruch nehmen. Sie soll ja nur lesen, in Datei schreiben und später aus Datei lesen und ausstreamen. Das ist sicher nicht viel Codeaufwand. Netzwerkmässig muss ich doch gar nichts machen, ausser einen TCP-Socket anzusprechen, mit den richtigen Tutorials sollte das auch nicht lange dauern. Gerade diese Simulationsgeschichten sind allein meine Idee und keine geforderten Aufgaben, also muss ich diese so oder so möglichst klein und unaufwändig halten.

Darkstar
2006-02-01, 21:42:45
Ist in den vier bzw. sechs Monaten auch der schriftliche Teil enthalten? Mal so eben 80–100 Seiten schreiben, formatieren und korrekturlesen dürfte nämlich auch noch etwas Zeit in Anspruch nehmen.

WhiteVelvet
2006-02-01, 21:59:37
Ist in den vier bzw. sechs Monaten auch der schriftliche Teil enthalten? Mal so eben 80–100 Seiten schreiben, formatieren und korrekturlesen dürfte nämlich auch noch etwas Zeit in Anspruch nehmen.

Ja, das ist inbegriffen. 70 Seiten sollten es werden meint der Professor. Er meinte, das wären 3 Wochen. Das passt schon, das ist momentan das kleinste Problem.

ollix
2006-02-01, 22:15:07
Denke auch das der schriftliche Teil nicht das größte Problem sein wird - seit ihr denn fest auf 6 Monate? Bei uns war das damals effektiv so, daß man sein Thema bearbeitet hat und wenn man fertig war, hat man angemeldet und abgegeben.

ScottManDeath
2006-02-01, 22:55:08
Huch, 3 Wochen für 80 Seiten? Ich hab in 6 Wochen 45 geschafft.

Kann es auch Java sein? Zumindest für GUI und Kommunikation wäre das auch eine Option. Den HW Kram dann z.B. über das Java Native Interface machen.

WhiteVelvet
2006-02-02, 14:05:56
Bei uns schreiben D-I-Diploma 4 Monate und D-II Diploma 6 Monate. Diesen Unterschied gibt es nur in NRW. Der Prof meinte ich solle ruhig schonmal anfangen und wenn ich gut dabei bin, sollte ich mich anmelden. So werd ich es auch machen.

Die Sprache ist mir im Prinzip freigestellt, aber der Prof will es lieber einheitlich haben, weil alle anderen in dem Forschungsbereich auch C++ programmieren. Ich bin eher Delphi-Programmierer (9 Jahre Erfahrung), dann kommt Java (wenig Erfahrung, bisher nur durch Vorlesung und ein Praktikum) und dann C++ (ein Praktikum letzten Winter). Das Programmgerüst werde ich schon irgendwie hinbekommen, es ist ja doch alles ähnlich. Bloss für die GUI habe ich noch keine Idee. In dem Praktikum vom letzten Winter haben wir Qt benutzt, denke das werde ich dann auch machen. Gibt aber genügend Leute dort die ich fragen kann. Ich soll MS Visual Studio 6 benutzen, mal sehen, wie es ist. Ich habe letzten Winter MS Visual Studio 2005 Beta benutzt, also sollte es ähnlich sein.

noid
2006-02-02, 14:13:02
Bei uns schreiben D-I-Diploma 4 Monate und D-II Diploma 6 Monate. Diesen Unterschied gibt es nur in NRW. Der Prof meinte ich solle ruhig schonmal anfangen und wenn ich gut dabei bin, sollte ich mich anmelden. So werd ich es auch machen.

Die Sprache ist mir im Prinzip freigestellt, aber der Prof will es lieber einheitlich haben, weil alle anderen in dem Forschungsbereich auch C++ programmieren. Ich bin eher Delphi-Programmierer (9 Jahre Erfahrung), dann kommt Java (wenig Erfahrung, bisher nur durch Vorlesung und ein Praktikum) und dann C++ (ein Praktikum letzten Winter). Das Programmgerüst werde ich schon irgendwie hinbekommen, es ist ja doch alles ähnlich. Bloss für die GUI habe ich noch keine Idee. In dem Praktikum vom letzten Winter haben wir Qt benutzt, denke das werde ich dann auch machen. Gibt aber genügend Leute dort die ich fragen kann. Ich soll MS Visual Studio 6 benutzen, mal sehen, wie es ist. Ich habe letzten Winter MS Visual Studio 2005 Beta benutzt, also sollte es ähnlich sein.

Wenn mit Visual Studio 6 auch VC++ 6.0 eingeschlossen ist, dann viel Spass. Dieser alte Dreckskompiler trieb mich fast in den Nervenzusammenbruch. Wenn du die Option hast, dann nimm bitte was anderes. (Ich hab dann meine 2003er Studioversion aus unserem SWT genutzt).

edit: und komm ja nicht auf die doofe Idee deine Arbeit mit Word zu schreiben. Da hör ich rechts neben mir immer wieder heftiges Fluchen. Da ist zwar ein Wordbuch vorhanden, trotzdem verhaut es dauernd Formatierungen und es fehlen Sätze, weil die als Kommentar markiert sind (was eine hauchfeine gepunktete Linie ist).

WhiteVelvet
2006-02-02, 17:29:46
Wenn mit Visual Studio 6 auch VC++ 6.0 eingeschlossen ist, dann viel Spass. Dieser alte Dreckskompiler trieb mich fast in den Nervenzusammenbruch. Wenn du die Option hast, dann nimm bitte was anderes. (Ich hab dann meine 2003er Studioversion aus unserem SWT genutzt).

edit: und komm ja nicht auf die doofe Idee deine Arbeit mit Word zu schreiben. Da hör ich rechts neben mir immer wieder heftiges Fluchen. Da ist zwar ein Wordbuch vorhanden, trotzdem verhaut es dauernd Formatierungen und es fehlen Sätze, weil die als Kommentar markiert sind (was eine hauchfeine gepunktete Linie ist).

Tja, mal sehen wie der Compiler ist, werde ihn die nächsten Tage mal austesten. Ist mir aber schon öfters aufgefallen, dass meine Uni die unmöglichste Software benutzt: VS 6.0 statt VS 2005, Maya statt 3DMax, Pinnacle Liquid statt Adobe Premiere...

Mit Word habe ich nun wirklich kein Problem ;) Habe schon so viel Text damit geschrieben, dass ich schon weiss wo die Haken sind und wie man sie abschaltet. Mal abgesehen davon werde ich wahrscheinlich sowieso an einem Laptop schreiben, sobald ich den habe, und da installiere ich OpenOffice.

Senior Sanchez
2006-02-02, 17:33:07
edit: und komm ja nicht auf die doofe Idee deine Arbeit mit Word zu schreiben. Da hör ich rechts neben mir immer wieder heftiges Fluchen. Da ist zwar ein Wordbuch vorhanden, trotzdem verhaut es dauernd Formatierungen und es fehlen Sätze, weil die als Kommentar markiert sind (was eine hauchfeine gepunktete Linie ist).

Was sollte man stattdessen nutzen?

Expandable
2006-02-02, 17:40:38
Was sollte man stattdessen nutzen?

LaTeX. ;)

ollix
2006-02-02, 17:45:47
Amen

Senior Sanchez
2006-02-02, 17:55:28
Latex, hmm, also so verzweifelt bin ich glaube ich noch nicht um das zu nutzen ;)

Coda
2006-02-02, 18:35:18
Wieso "Verzweifelt"? Ich finde Latex für solche Sachen unglaublich viel praktischer...

HajottV
2006-02-02, 19:05:34
Latex, hmm, also so verzweifelt bin ich glaube ich noch nicht um das zu nutzen ;)

Tu Dir selber einen Gefallen und nimm LaTeX. Wenn man sich mal dran gewöhnt hat, will man es eh nicht mehr missen. An meinem Lehrstuhl war LaTeX Pflicht, und das ist auch eigentlich gut so.

Gruß

Jörg

WhiteVelvet
2006-02-02, 19:53:33
Igitt, Latex ;) Ne, im Ernst. Bevor ich mich in Latex eingearbeitet habe bin ich mit Word schon fertig. Ich hatte bei meiner Hausarbeit letztens keinerlei Probleme, wieso sollte ich dann wechseln? Was diese seltsamen unsichtbaren Kommentare in Word betrifft, die habe ich noch nie gesehen. Es läuft, also benutze ich Word :) Oder OpenOffice...

ollix
2006-02-02, 22:59:43
Deine Entscheidung :D Mehr als einen halben bis einen Tag braucht man eigentlich nicht (früher war das mit dem Paket Setup IMHO noch deutlich komplizierter); und auch mit den neuen GUIs ist alles halb so kompliziert (wie LEd oder TeXnic) - man muß es ja nicht mit vi machen. Dazu sieht das Dokument am Ende besser aus, als man es mit Word wohl hinbekommen würde.

ScottManDeath
2006-02-03, 00:50:59
Mich hat Word gefickt :( Hat einfach mal so nichtdeterministisch im Text Teile um die Referenz auf eine Fußnote kursiv, klein und abgesetzt gemacht. Vorm Drucken hab ich zum Glück alle bis auf eins noch entdeckt, aber eine Fußnote meine Diplomarbeit ist jetzt versaut :(


Naja, irgendwann werd ich wohl Latex nutzen müssen, da die ganzen Journals und Konferenzen Latex Templates für die Paper haben.

Da ich HTML auch lieber im Code schreibe, dürfte es mit Latex nicht so schwer werden. Kennt jemand eine gute Latex IDE für Windows? Am besten so wie der Visual Studio HTML Editor, ein Tab für den code, ein Tab für die Ansicht?

registrierter Gast
2006-02-03, 01:34:59
Igitt, Latex ;) Ne, im Ernst. Bevor ich mich in Latex eingearbeitet habe bin ich mit Word schon fertig. Ich hatte bei meiner Hausarbeit letztens keinerlei Probleme, wieso sollte ich dann wechseln? Was diese seltsamen unsichtbaren Kommentare in Word betrifft, die habe ich noch nie gesehen. Es läuft, also benutze ich Word :) Oder OpenOffice...Hausarbeiten sind auch keine 70 Seiten lang. ;)
Zumindest in MS Word wird daraus eine einzige Ruckelorgie, besonders wenn noch einige Bilder eingebettet sind.

Man braucht vielleicht ein, zwei Stunden, um sich in LaTeX zurecht zu finden und den Rest lernt man nach und nach.
Und mal ehrlich, du programmierst C++ und hardwarenahem Firewire-Zugriff (lauffähig unter Windows und Linux), machst aber einen Bogen um ein simples Textsatzsystem :rolleyes:, welches obendrein nicht solche Zicken macht, wie Textverarbeitungsprogramme.

Coda
2006-02-03, 09:14:59
Kennt jemand eine gute Latex IDE für Windows?TeXnic Center

Und für 70 Seiten würde ich Word nicht mal im Traum benützen. Ich bin doch kein Sadist. Evtl. noch OpenOffice, aber dann ist das Ergebnis mit Latex trotzdem deutlich besser.

WhiteVelvet
2006-02-03, 10:40:10
TeXnic Center

Und für 70 Seiten würde ich Word nicht mal im Traum benützen. Ich bin doch kein Sadist. Evtl. noch OpenOffice, aber dann ist das Ergebnis mit Latex trotzdem deutlich besser.

Na ich schau es mir mal an ;)

noid
2006-02-03, 11:10:04
Mich hat Word gefickt :( Hat einfach mal so nichtdeterministisch im Text Teile um die Referenz auf eine Fußnote kursiv, klein und abgesetzt gemacht. Vorm Drucken hab ich zum Glück alle bis auf eins noch entdeckt, aber eine Fußnote meine Diplomarbeit ist jetzt versaut :(


Naja, irgendwann werd ich wohl Latex nutzen müssen, da die ganzen Journals und Konferenzen Latex Templates für die Paper haben.

Da ich HTML auch lieber im Code schreibe, dürfte es mit Latex nicht so schwer werden. Kennt jemand eine gute Latex IDE für Windows? Am besten so wie der Visual Studio HTML Editor, ein Tab für den code, ein Tab für die Ansicht?

Also ne Vorschau braucht man eigentlich nicht direkt. Sind die Voreingestellungen erstmal gemacht, dann tippt man seinen Text runter, Formeln mit kurzer Überlegung und Tabellen ebenso. Bei Grafiken muss man nur bestimmte Dinge beachten (und nicht darauf bestehen, dass man selber bestimmt wo sie am besten hingehören, LaTeX weiss das meist besser).

Ich verwende TeXnicCenter, da kann man alle Konstrukte auch aus dem Menu heraus anklicken. Dann hab ich noch 2 pdfs mit Latexeinführungen - sowas ist sehr praktisch. In dem Programm sieht man dann unten die Ausgabe der Meldungen, links Objekte, Dateien oder die Gliederung.
Mit Bibtex verhaut es dir auch keine Referenzen auf Bücher.

@WhiteVelvet: schau dir LaTeX wirklich an. Meinen ersten Bericht hab ich mit Word geschrieben. Auch mit Hilfe und Büchern sah das mehr schlecht als Recht aus. Es war langsam, groß und vorallem "astonishing effects". Da dreht sich plötzlich eine Seite auf rechtsbündig - ohne irgendwelchen Sonderformatierungen gemacht zu haben.
Den 2ten Bericht habe ich dann mit OO gemacht. Wesentlich schneller bei großen Projekten, stabiler bei großen Dateien und hat weniger Bugs in der Formatierung gehabt.
Meine DA schreib ich grad mit LaTeX, alles Textdateien, keine Lags ;)
Weiterer Vorteil: du kannst deine Arbeit gleich mit ins CVS/Subseven reinhämmern. Mach das mal mit Word oder OO :biggrin:

Ich hab mich auch erst reinarbeiten müssen, hat aber nur 2 Tage gedauert, da ich gute Hilfe in Dokumenten und im Internet gefunden habe. Und es sieht vom Bild genau so aus wie ich es erwarte.

ollix
2006-02-03, 14:50:07
Bin zufällig gerade hierüber (http://dml.drzoom.ch/) gestolpert, ist ja vielleicht hilfreich.

HellHorse
2006-02-03, 18:26:13
Auch mit Hilfe und Büchern sah das mehr schlecht als Recht aus.
Genau. Als Beispiel möchte ich das Word Dokument von Microsoft zu C# 3 anführen. Das Ding sieht einfach scheisse unprofessionell aus. Jeder LaTeX Anfänger kriegt das besser hin.

noid
2006-02-03, 18:43:34
Genau. Als Beispiel möchte ich das Word Dokument von Microsoft zu C# 3 anführen. Das Ding sieht einfach scheisse unprofessionell aus. Jeder LaTeX Anfänger kriegt das besser hin.

Wo gibt es den das? Vorallem: .doc nach extern? :|

Expandable
2006-02-03, 18:55:48
Das gibt's hier:

http://download.microsoft.com/download/9/5/0/9503e33e-fde6-4aed-b5d0-ffe749822f1b/csharp%203.0%20specification.doc

Was? C# 3.0 mit "implicitly typed variables"? WTF? Ist das wirklich eine gute Idee? Sowas z.B.:


var i = 5;
var s = "Hello";
var d = 1.0;
var numbers = new int[] {1, 2, 3};
var orders = new Dictionary<int,Order>();


Das sieht ja schon fast wie PHP-Code aus!

Gast
2006-02-03, 19:33:05
TeXnic Center

Und für 70 Seiten würde ich Word nicht mal im Traum benützen. Ich bin doch kein Sadist. Evtl. noch OpenOffice, aber dann ist das Ergebnis mit Latex trotzdem deutlich besser.

Auch wenn es jetzt definitiv Offtopic wird:

Ich habe vor kurzem http://www.latexeditor.org/ entdeckt. Wenn das Programm irgendwann mal aus dem Betastadium raus ist, dann ist es um Längen besser als das TeXnic Center.

Wenn man sich erstmal an die integrierte Vorschau gewöhnt hat, dann will man nichts anderes mehr benutzen:

http://www.latexeditor.org/screens/main_large.png

Klickt man irgendwo in den Quelltext, scrollt der in die Vorschau an die entsprechende Stelle. Klickt man hingegen in die Vorschau, dann springt der zu der entsprechenden Stelle im Quelltext. Sehr geil, nie wieder Probleme mit dem rumgescrolle im Acrobat Reader.

Und auch sonst findet man viele nette Sachen die einem das Leben sehr erleichtern (ausführliche Hover-Hilfe über jedem Schlüsselwort, ...)



@Threadersteller:
Ich kann mich meinen Vorrednern nur anschließen: Benutze LaTeX und verzichte auf Word. LaTeX kann man innerhalb eines halben Tages lernen.

Was ich nur empfehlen kann ist dieses Dokument:

Projekt Diplomarbeit (http://www.home.uni-osnabrueck.de/phertel/pdf/sws.pdf)

Auch wenn du dich für Word entscheidest, solltest du mal einen Blick reinwerfen, da stehen noch andere nützliche Dinge in Bezug auf Diplomarbeiten drin.

Etwas, was ich in Word definitiv vermisse ist ein Tool für eine automatische Verwaltung des Literaturverzeichnisses. In LaTeX gibt's bibtex was absolut problemlos zu bedienen ist, aber in Word musst du den ganzen Kram selber machen. Und eine Diplomarbeit ohne umfangreiches Literaturverzeichnis ist halt keine vollständige Diplomarbeit

Die zweite Sache die mich in Word (selbst bei kurzen Dokumenten) immer wieder zur Weißglut treibt ist dieser bek*ckte Formeleditor. In LaTeX macht es Spaß mit Formeln zu arbeiten, aber in Word? Bah...

Dazu kommen dann noch:
- problemloser Umgang mit griechischen Buchstaben und sonstigen Sonderzeichen
- ein perfekt funktionierendes, automatisches Durchnummeriergungssystem für Bilder, Tabellen und Kapitel

Und außerdem sehen LaTeX Dokumente immer noch um Welten schicker aus als irgendwas selbst formatiertes in Word (Es sei denn, du bist ein Layoutprofi. Aber dann würdest du eh kein Word für sowas verwenden ;) )

Xmas
2006-02-03, 20:33:14
Hausarbeiten sind auch keine 70 Seiten lang. ;)
Zumindest in MS Word wird daraus eine einzige Ruckelorgie, besonders wenn noch einige Bilder eingebettet sind.
Word ist keineswegs problemfrei, aber Ruckelorgie? Kann ich so nicht bestätigen. Meine Diplomarbeit hat insgesamt 103 Seiten, 47 recht große und hochaufgelöste Abbildungen und wiegt als Word-Datei 96 MiB. Ruckeln tut da allerdings gar nichts.

Das nervigste an Word ist dass man Objekte die Referenziert werden nicht ersetzen kann. Mann kann sie zwar löschen und was anderes hinschieben, aber dann hat man lauter Broken References.
Und was man unter keinen Umständen machen sollte, ist eine Visio-Zeichnung in Word zu bearbeiten. Sieht ganz normal aus, aber sobald man das Ganze druckt oder nach PDF konvertiert, sind sämtliche Textelemente über mehrere Seiten verstreut.

Also ne Vorschau braucht man eigentlich nicht direkt. Sind die Voreingestellungen erstmal gemacht, dann tippt man seinen Text runter, Formeln mit kurzer Überlegung und Tabellen ebenso. Bei Grafiken muss man nur bestimmte Dinge beachten (und nicht darauf bestehen, dass man selber bestimmt wo sie am besten hingehören, LaTeX weiss das meist besser).
"Meist" ist so eine Sache. Die Positionierung der Bilder war ein Grund, warum ich Word für meine DA genommen habe. Ich brauchte einfach die direkte WYSIWYG-Kontrolle, welche Bilder wo in welcher Größe erscheinen und wie weit das die nachfolgenden Absätze verschiebt.

Weiterer Vorteil: du kannst deine Arbeit gleich mit ins CVS/Subseven reinhämmern. Mach das mal mit Word oder OO :biggrin:
Subversion meinst du wohl. Wo ist das Problem?

Huch, 3 Wochen für 80 Seiten? Ich hab in 6 Wochen 45 geschafft.
Kommt ja auch auf den Zeilenabstand an. ;) Der war bei dir relativ klein.
Ich habe insgesamt 4 bis 5 Wochen für meine Diplomarbeit mit ca. 90 Inhaltsseiten gebraucht, davon 60 in den letzten 2 Wochen.

Xmas
2006-02-03, 20:44:48
Was? C# 3.0 mit "implicitly typed variables"? WTF? Ist das wirklich eine gute Idee? Sowas z.B.:


var i = 5;
var s = "Hello";
var d = 1.0;
var numbers = new int[] {1, 2, 3};
var orders = new Dictionary<int,Order>();

Bei der sofortigen Initialisierung mit new halte ich es für nützlich, warum soll da der Typ auch immer zweimal erscheinen? Will man eine Basisklasse als Typ, kann man die ja immer noch angeben.

Coda
2006-02-03, 21:13:58
Subversion meinst du wohl. Wo ist das Problem?CVS hat etwas Probleme mit binären Daten, aber Subversion schluckt sowieso alles :)

Hab auch ziemlich viel Uni-Zeugs im OpenOffice-Format im lokalen Repository ;)

ScottManDeath
2006-02-03, 23:26:39
CVS hat etwas Probleme mit binären Daten, aber Subversion schluckt sowieso alles :)

Hab auch ziemlich viel Uni-Zeugs im OpenOffice-Format im lokalen Repository ;)

OT... to be continued

*Grummel* Sollte wirklich mal mein SVN Repository bevölkern. Hab aber irgendwie keine Lust, meine ganzen alten Projekte zu migrieren.

Wie organisiert Du das? Also vom Pfadaufbau, usw....

ScottManDeath
2006-02-03, 23:30:19
Bei der sofortigen Initialisierung mit new halte ich es für nützlich, warum soll da der Typ auch immer zweimal erscheinen? Will man eine Basisklasse als Typ, kann man die ja immer noch angeben.

AFAIK ist für C++0x auch im Gespräch, das auto Keyword dafür zu überladen.

denn

std::map<my_key_type,my_value_type>::const_iterator it = m_dictionary.begin();

ist doch tastaturfeindlicher als

auto it = m_dictionary.begin();

WhiteVelvet
2006-02-05, 12:17:56
OKOK, ihr habt mich überzeugt, ich schau mir mal Latex genauer an. Danke für das oben genannte PDF-Dok über Diplomarbeiten!

Coda
2006-02-05, 12:24:20
*Grummel* Sollte wirklich mal mein SVN Repository bevölkern. Hab aber irgendwie keine Lust, meine ganzen alten Projekte zu migrieren.

Wie organisiert Du das? Also vom Pfadaufbau, usw....Sorry, hab das jetzt erst gelesen.

Also daheim erstell ich einfach pro Projekt nen Repository und hau den ganzen Ordner rein ohne groß nachzudenken, weil ich ja eh keine "Branches" mach. Subversion ist aber eh flexibel, weil man Ordner auch noch verschieben kann, etc.

Bei der Arbeit gibts natürlich

/trunk - Derzeitiger Trunk, also mit den neusten Features die noch gar nicht ausgeliefert wurden
/branches/auslieferversion1, /branches/auslieferversion2, etc. - jeweilige Branches vom Trunk bei einer Auslieferung mit nur den Bugfixes die dafür mal benötigt wurden.

ScottManDeath
2006-02-05, 21:14:33
Sorry, hab das jetzt erst gelesen.

Also daheim erstell ich einfach pro Projekt nen Repository und hau den ganzen Ordner rein ohne groß nachzudenken, weil ich ja eh keine "Branches" mach. Subversion ist aber eh flexibel, weil man Ordner auch noch verschieben kann, etc.

Bei der Arbeit gibts natürlich

/trunk - Derzeitiger Trunk, also mit den neusten Features die noch gar nicht ausgeliefert wurden
/branches/auslieferversion1, /branches/auslieferversion2, etc. - jeweilige Branches vom Trunk bei einer Auslieferung mit nur den Bugfixes die dafür mal benötigt wurden.

:uponder:, klingt gut. Ich schreibe gerade eine Raytracer für die Uni und will die Algebra lib davon auch in anderen Projekten verwenden. Da wäre es praktisch das ganze in einem Repository zu haben, so dass Erweiterungen davon überall verfügbar sind. :uponder:

Senior Sanchez
2006-02-05, 22:44:41
Benutzt ihr ein Versionierungssystem (CVS/Subversion etc.?) auch zu Hause? Ihr habt mich ja jetzt schon auch mit irgendwie zu latex gelockt, aber atm hab ich da nich so die Zeit und da ich schonmal für meine BWinf Dokus mit Word angefangen habe, mach ich das auch weiter ;)

Aber Latex werd ich mir mal anschauen :)

Hardwaretoaster
2006-02-06, 07:43:23
Also ich nutze kein SVN zu Hause (für was auch?? Hab' nix,w as da reinkönnte)aber während des Praktikums habe ich dmit gearbeitet, habe erst zwei TAge gelesen (das svn-book) aber dann bekam ich so langsam alles an's laufen, inkl.s Windows-Client, Trigger, etc...war von svn doch beeindruckt...

Coda
2006-02-06, 10:24:01
Benutzt ihr ein Versionierungssystem (CVS/Subversion etc.?) auch zu Hause?Ja, sag ich doch ;)

Gast
2006-02-06, 13:04:32
Wer Subversion unter Windows komfortabel benutzen möchte, sollte sich mal TortoiseSVN (http://tortoisesvn.tigris.org/) ansehen. Das ist ein SVN-Client, der sich nahtlos in den Explorer einklinkt. Ist zwar evtl. nicht so 'pro-' oder 'hacker'-mäßig wie die Kommandozeilentools, aber für die meisten Anwendungen reicht es allemal.

Gast
2006-02-06, 13:22:34
Habe ich in der Firma auch mit dem client eingerichtet

Coda
2006-02-06, 13:34:27
Ja das sowieso... Und Kommandozeile ist dafür "dämlich" und nicht "pro" unter Windows X-D

Senior Sanchez
2006-02-06, 16:21:25
Ja, sag ich doch ;)

Bei dir hab ichs mir ja gedacht, war aber halt ne allgemeine Frage an alle ;)

Aber noch ne Frage an dich: WOZU das ganze?!? *gg*

ollix
2006-02-06, 16:31:27
Man hantiert auch Daheim ab und an mal mit älteren Versionen, für mich vorallem aber das ich Projekte unterwegs am Laptop (mit Internetanschluß) immer aktuell verfügbar habe und man wenig Probleme mit dem Synchronisieren von verschiedenen Geräten hat.

Trap
2006-02-06, 17:45:42
Hilft außerdem gegen eigene Dummheit, besonders wenn der Repository auf einem anderen Rechner liegt. Wer macht schon Backups ;)

Coda
2006-02-06, 18:59:41
Erstens das, und zweitens überschreibt man auch mal aus Versehen gerne was oder löscht im Eifer zuviel, etc.

WhiteVelvet
2006-02-08, 22:39:39
Ich wollte auf dem Laptop, an dem ich das Programm schreiben werde, Windows und Linux installieren. Jetzt kenne ich mich mit Linux nur wenig aus und frage Euch mal, welche Distribution für einen C++ Programmierer am geeignetsten ist.

Coda
2006-02-08, 23:15:41
Eigentlich jede. GCC ist auf jedenfall irgendwie installierbar.

ollix
2006-02-09, 00:28:06
Ist Geschmackssache - ich würde bei ubuntu und Fedora Core mal vorbeischauen.

WhiteVelvet
2006-02-09, 06:19:23
Sagt mir alles nichts, aber ich schaus mir mal an.

So ich mache mich nun auf den Weg zur letzten Vorlesung meines Lebens... :)

WhiteVelvet
2006-03-31, 13:58:45
Da bin ich wieder :) Nun eine Frage zur GUI Programmierung:

Ich habe eigentlich geplant, die GUI mit Qt zu entwerfen, weil wir das auch mal in einem Praktikum so gemacht haben. Dort hatten wir Qt Educational 3.2.2. Habe dann letzte Woche die OpenSource Version 4.1.1 gefunden und will die nun nutzen.

Heute schreibt mir mein Professor, dass es ihm lieber wäre, wenn ich die GUI (wie alles andere auch) mit VisualStudio 6.0 machen soll. Hmmmm mir ist nicht bekannt, dass VS6 Tools für die GUI mitliefert. Wer kann mich da aufklären? Die Anwendung KANN auch irgendwann unter Linux laufen, muss aber nicht, die Option wollte ich aber schon offenhalten, also muss ich doch auf Qt bestehen oder?

Bei Qt habe ich ja auch wieder 2 Möglichkeiten: Einerseits kann ich die GUI komplett im VS programmieren unter Einbindung der GUI-Klassen (also alles per Hand) oder andererseits kann ich den Qt Designer verwenden, der mir am Ende eine ui.-Datei ausspuckt. Zu was würdet Ihr mir raten?

Coda
2006-03-31, 14:02:23
Qt 4 unterstützt kein VC++ 6 mehr. Und das aus gutem Grund ;)

WhiteVelvet
2006-03-31, 14:03:46
Qt 4 unterstützt kein VC++ 6 mehr. Und das aus gutem Grund ;)

Das ist nicht korrekt, es gibt einen Patch dafür. Ich habe beides installiert, aber Du hast Recht, einige Komponenten funktionieren wohl nicht, aber die brauche ich wahrscheinlich nicht.

Coda
2006-03-31, 14:20:00
Wua. Warum denn überhaupt VC++ 6 wenn es Visual C++ 2005 Express mit optimierendem Compiler umsonst gibt? Wer tut sich das freiwillig an?

WhiteVelvet
2006-03-31, 14:24:04
Wua. Warum denn überhaupt VC++ 6 wenn es Visual C++ 2005 Express mit optimierendem Compiler umsonst gibt? Wer tut sich das freiwillig an?

Mein Professor... ich werde ihm da wohl auch mal reinreden, dass die da langsam mal umsteigen. Naja, die alten Programme sind alle mit VS6 gemacht und er will unbedingt diesen "Standard" behalten... leider leider... ich würde auch lieber mit VC++2500 arbeiten, aber man will meine Software später noch weiterentwickeln können... mit VC6 versteht sich :D

Coda
2006-03-31, 14:28:00
Es erstaunt mich immer wieder wie engstirnig Professoren so sind.

Naja, die alten Programme sind alle mit VS6 gemacht und er will unbedingt diesen "Standard" behalten...
Bug-for-Bug-Compatibility? :|

Ansonsten sollte ein anständiger Quellcode auch mit VC++ 2005 kompilieren.

WhiteVelvet
2006-03-31, 14:34:00
Es erstaunt mich immer wieder wie engstirnig Professoren so sind.


Bug-for-Bug-Compatibility? :|

Ansonsten sollte ein anständiger Quellcode auch mit VC++ 2005 kompilieren.

Back to Topic please :)

BavariaBlade
2006-03-31, 14:51:48
Hi,

mach selbst gerade ne Diplomarbeit. Bei dieser muss ich unter anderen ein Video frameweise wiedergeben können. Da fiel mir zuerst DirectShow ein und VisualStudio C++ Express Edition.
Ok, ich hab bisher nur in Java programmiert, aber der Umstieg auf C++ sollte nicht allzu schwer sein. Aber ich hab hier nur Probleme am Start.

DirectShow.... nicht mehr im DirectX SDK sondern im PlatformSDK
DriectShow wird ohne diese strmii**.lib geliefert
DirectShow ist COM also benötige ich nativen C++ code (nix Framework)
Visual Studio EE und nativer C++ code... Ha..HAHAHAHA
Visual Studio EE und MFC .... HA HAHAHAHAHA

mit dieser Anleitung gehts schon wesentlich besser
(VSEE C++ und nativer Code)

http://www.germangamedev.de/index.php?site=article&id=28

Das Beispiel am besten mit /MT compilieren lassen (40Kb anstatt 6Kb, aber dafür läuft es auch auf anderen Rechnern)

Allerding hab ich dann immer noch das Unicode/ nicht Unicode Problem.
Hinzu kommt noch das ich ,wie gesagt, C++ Anfänger bin. Die DirectShow Bücher die ich hab stammen fast alle aus 2003 und setzten auf VS6 auf.
Naja mit dem VS c++ ExpressEditon bekomm ich wie gesagt kaum was zum laufen. Demnächst bekomm ich die normale VS 2005 Testversion, hoffe das die besser ist.
Geht das in Windows immer so total durcheinander zu?
Ich meine COM oder managed, nativer Code oder .Net, aufgespaltenes Direct X SDK (ist in keinem meiner Bücher erwähnt), Unicode oder doch nicht?....
man.. JAVA ist ech ma einfach in der Hinsicht.

Hast du auch solche Probleme?

servus BB

Coda
2006-03-31, 15:01:23
Visual Studio EE und nativer C++ code... Ha..HAHAHAHA
Hä? Was soll da das Problem sein?

Edit: Oh, sie haben doch mehr Steine in den Weg gelegt als ich gedacht hab ;)

Visual Studio EE und MFC .... HA HAHAHAHAHA
Um die MFC sollte man einen weiten Bogen machen.

Allerding hab ich dann immer noch das Unicode/ nicht Unicode Problem.
Welches? Evtl. kann man ja helfen ;)

Ich meine COM oder managed, nativer Code oder .Net
Ich würde entweder managed oder native benützen. Mischmasch ist wirklich nicht schön.

aufgespaltenes Direct X SDK (ist in keinem meiner Bücher erwähnt)
Das wurde mal gemacht, weil DirectShow eigentlich mehr zum System gehört als zu einem "Spiele-SDK" und viele eben nur DirectX oder nur DirectShow möchten.

Unicode oder doch nicht?....
Wie gesagt, was ist das Problem damit?

BavariaBlade
2006-03-31, 15:22:07
Hä? Was soll da das Problem sein?

Edit: Oh, sie haben doch mehr Steine in den Weg gelegt als ich gedacht hab ;)


Um die MFC sollte man einen weiten Bogen machen.


Welches? Evtl. kann man ja helfen ;)


Ich würde entweder managed oder native benützen. Mischmasch ist wirklich nicht schön.


Das wurde mal gemacht, weil DirectShow eigentlich mehr zum System gehört als zu einem "Spiele-SDK" und viele eben nur DirectX oder nur DirectShow möchten.


Wie gesagt, was ist das Problem damit?

Ok, mal ein Beispiel:
Wenn man das VSEE nach obigen Link "gemodded" hat funktioniert vollgender code:

http://trash.germangamedev.de/msvcpp2005e_tutorial_pictures/vc_download_040.jpg

#include <windows.h>

int __stdcall WinMain(::HINSTANCE__* instance, ::HINSTANCE__* prevInstance, char* cmdLine, int cmdShow)
{
::MessageBoxW(NULL,L"Hallo da!",L"Hinweis",MB_OK );
return 0;
}

Gut, dachte ich mir, schau ich mir doch gleich ma die WinAPI genauer an (ob die soo wichtig ist weiß ich nicht-> Anfänger).

Und dieser Code (für VS6 erstellt) geht dann nicht mehr:

http://www.win-api.de/tutorials.php?tutid=2


#define STRICT
#include <windows.h>

const char szWitz[]="bla blub";

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, pstr szCmdLine, int iCmdShow)
{
int iAntwort = MessageBox(NULL, szWitz, "Ha, ha, ha, ha...",
MB_ICONINFORMATION | MB_OKCANCEL | MB_DEFBUTTON1);

if (IDOK == iAntwort)
{
MessageBox(NULL, "Ja, ich finde den Witz auch Ok...",
"Sie haben auf Ok gedrückt",
MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
}
else if (IDCANCEL == iAntwort)
{
MessageBox(NULL, "Ja, warum haben sie denn auf Abbrechen gedrückt?\n"
"Hat ihnen der Witz etwa nicht gefallen?",
"Sie haben auf Abbrechen gedrückt",
MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
}
return 0;
}


Fehlermeldungen:
.\main.cpp(6) : error C2061: syntax error : identifier 'pstr'
.\main.cpp(7) : error C2731: 'WinMain' : function cannot be overloaded
.\main.cpp(6) : see declaration of 'WinMain'
.\main.cpp(9) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [9]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
.\main.cpp(15) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [34]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
.\main.cpp(22) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [89]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast


und das ist nur ein Beispiel von vielen! Soll ich vielleicht besser direkt VS6 Benutzen? Oder funzt das "normale" VS2005 besser mit dieser Art von Code?

THX BB

WhiteVelvet
2006-03-31, 15:24:09
Hmmmm DirectShow fällt eh für mich flach wegen Linux-Kompatibilität... aber stimmt, das müsste ich auch anwenden, wenn ich in Richtung Realtime-Video will, aber momentan sind nur 5 fps gefordert.

Es wäre höflicher von Euch, wenn Ihr einen neuen Thread aufmachen könntet... es hat hier nichts zu suchen.

Coda
2006-03-31, 16:13:34
Soll ich vielleicht besser direkt VS6 Benutzen?
Nein, bloß nicht

Oder funzt das "normale" VS2005 besser mit dieser Art von Code?
Nein. Das ist einfach komischer Code (ich hab pstr noch nie gesehen), außerdem must du wenn du Unicode benützt eben auch UNICODE definiert hast eben auch Multibyte-Strings verwenden.

Also statt
"Ja, ich finde den Witz auch Ok...",
"Sie haben auf Ok gedrückt"z.B.L"Ja, ich finde den Witz auch Ok...",
L"Sie haben auf Ok gedrückt"Die richtige Deklaration von WinMain ist
int WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)