source: projects/paper-tape/TODO.txt @ 30

Last change on this file since 30 was 30, checked in by sven, 11 years ago

Added new documentation as well as a great new layout and some new
features for the documentation system like syntax higlighting (using
geshi).
Furthermore much directory clean up and movements accross directories.

File size: 4.5 KB
Line 
1
2The Paper Tape Project -- TODO and Goals, 22.09.08
3==================================================
4
5Folgende Aufgaben, im Groben, stehen noch an:
6
7* Saubere Treiber(-Schnittstelle) für den Leser
8* The Paper Tape Suite
9
10Nun im Einzelnen:
11
12Was zusammengehört, wächst letztlich zusammen: Während bereits
13die Puncher-Treiber umgezogen sind von /userspace-driver zu
14/driver und dabei ein sauberes Backend/Frontend-System gekriegt
15haben, soll selbiges jetzt auch den Leser-Treibern widerfahren.
16Dabei ziehen alle Treiber-Backends, nach Betriebssystemen geordnet, in
17das /driver-Verzeichnis um. Wie das dann letztlich aussieht, weiß
18ich noch nicht genau.
19
20The Paper Tape Suite: Das erklärte Endziel dieses Projektes ist
21ein umfassendes "All in one" GTK-Programm, welches folgende
22Generalfeatures vereint:
23
24* Lochstreifendateien öffnen und anschauen, mit allen bereits
25  bekannten Flexibilitäten von GtkPaperTape
26
27* Lochstreifen auch bearbeiten: Einen vollen Binäreditor in
28  allen Regeln der GTK+-Kunst, d.h. native Benutzung: Kopieren,
29  Verschieben, Auswählen, etc.
30
31* Lochstreifenschriften, Beschriftungen an beliebigen Stellen
32  einfügen
33
34* Ausstanzen der aktuellen Lochstreifendatei auf beliebige
35  Stanzer auf beliebigen Betriebssystemen (das Backend benutzend)
36
37* Einlesen von Lochstreifendaten von beliebigen Lesern auf
38  beliebigen Betriebssystemen
39
40
41Mit GtkPaperTape existierte bereits eine voll funktionsfähige
42C-Implementierung eines Lochstreifenbetrachters. Wegen den
43nun wesentlich gestiegenen Anforderungen wurde dieses System
44in C++ von Grund auf neu programmiert. Dabei wurden viele Bugs
45und Probleme beseitigt und längst überfällige Funktionen
46implementiert. Auf der anderen Seite ist die Entwicklung recht
47komplex, birgt viele neue Gelegenheiten für Bugs und geht wegen
48ihres enormen Umfangs alles in allem auch sehr träge vorran.
49Die gestiegenen Kompilierzeiten tun ihr Übriges dazu (alleine
50Gtk::PaperTape mit allen Abhängigkeiten zu kompilieren dauert
51auf meinem Pentium IV etwa eine halbe Minute).
52
53Der Stand der Dinge:
54
55Die Gtk::PaperTape-Implementierung hat im Grossen und Ganzen
56jetzt den Funktionsumfang erreicht, den die C-Implementierung
57"GtkPaperTape" auch bot. Dabei wurden bereits etliche neue
58Funktionen (auch testweise) implementiert:
59
60* Ein System mit einigen Objekten, welches vor allem in
61  Bezug auf Namensgebung allerdings nochmal etwas überarbeitet
62  werden muss.
63
64* Action-basierte Menues, eine Toolbar
65
66* Viele freundliche Einzeldetails, z.B.
67  * mächtiges Exportwerkzeug mit Auswahloptionen und
68    Fortschrittsbalken
69  * mächtigeres Zoomwerkzeug mit Direktzugriff auf die
70    affine Abbildungsmatrix
71  * mächtigeres Farbenwerkzeug mit Alpha-Unterstützung
72    und Ein/Ausschaltbaren Komponenten
73
74* Erste Bearbeitungsfunktionen: Im momentanen Viewer können
75  Bits durch Klicken ein- und Ausgeschaltet werden. Dies
76  funktioniert exzellent ohne Bugs.
77
78* Sehr ausgereiftes Zeichnungssystem, welches wirklich nur
79  die benötigten Komponenten zeichnet. Einige wenige
80  Bugs existieren noch, traurig ist der noch immer vorhandene
81  Scrollbug (Inhalt bleibt stehen), der aber *aller*
82  Wahrscheinlichkeit nach ein Gtk+/Xlib/Cairo-Problem ist.
83  Ich hab ihn im Gtk+-Bugtracker verzeichnet, siehe
84  http://bugzilla.gnome.org/show_bug.cgi?id=552672
85
86
87Ich denke, dass die Neuerungen bereits Wegweisend sind. Dank
88C++ ist das Widget zudem jetzt wesentlich leichter erweiterbar,
89was die Implementierung von neuen Funktionen erleichtert.
90
91
92TODO
93====
94
95Nun eine Liste der Dinge, die noch fehlen oder buggen:
96
97Bugs/fehlende Funktionen:
98
99* PaperTapeExporter: Stürzt ab oder zeigt Oberfläche nicht
100  richtig. Abbrechen-Button ist immer noch nicht anklickbar.
101  Problem hier vielleicht static- oder Heap-Elemente?
102
103* PaperTapeZoom: Einbindung in LOCHSTREIFEN nicht gut,
104  LOCHSTREIFEN->matrix müsste wieder ein Pointer werden.
105  Es fehlen noch Flip-Funktionen, ausserdem sind die Rotate-
106  Funktionen nicht praktisch (nur 90°-Vielfache sollten
107  möglich sein). Auto-Resizing ist umständlich, weil es
108  bei der GtkScrolledArea die Scrollwidgets abschalten muss,
109  PaperTapeZoom braucht also vollen Zugriff auf die View
110  und den Controller. Deshalb: ScrolledArea in die View-
111  Kompetenzen rübernehmen! Controller zur Chrome umbenennen,
112  Controllerkompetenzen schwächen!
113
114
115Neue Funktionen:
116
117* PaperTapeFont: Einbindung des C-"PaperTapeFont"-Systems fehlt
118* Auswählen geht noch nicht, außerdem Kopieren und Einfügen
119* Problematik immer noch: Cursormetapher -- zwischen Bytes
120  gehen oder immer im "Overwrite"-Modus?
121
122
123
124-- Sven @ 22.09.08 03:00, workstation
Note: See TracBrowser for help on using the repository browser.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License