source: projects/paper-tape-project/trunk/TODO.htm

Last change on this file was 43, checked in by sven, 15 years ago

Quality assurance:

  • New TODO plans for "The Paper Tape Project" reanimation
  • small fix in a Makefile

-- Sven @ workstation

File size: 5.6 KB
Line 
1<html>
2<body>
3
4<h2>The Paper Tape Project - TODO and Goals</h2>
5<p>For about one year, the paper tape project has stopped from
6emerging the planned "Paper Tape Suite". Nowadays, there's a big
7crowd of files (many copies) lying around and waiting for being
8ordered, corrected, extended.</p>
9
10<p>These are some plans for the near future:</p>
11
12<ul>
13  <li><b>Clean up</b>. We currently have three directories containing
14      full puncher driver sourcecodes/executables, and I think none of
15      them is really working. Clean it up, make one code working
16      at the end.</li>
17  <li><b>Create Tags (SVN) to simplify access to old project states</b>.
18      By this way, one can easily get access to old generations when
19      there was the running <i>userspace-driver</i> or the <i>Papertape
20      editor</i>. Target directory for tags will be <tt>/paper-tape/tags/</tt>
21      </li>
22  <li><b>Quality assurance</b>. Make code running again. The big things
23      must be executable. At the first, don't implement new features.</li>
24</ul>
25
26
27<h3>The review from September 2008 (german)</h3>
28<p>The following text gives some overview about the rewriting
29plans</p>
30
31<pre>
32The Paper Tape Project -- TODO and Goals, 22.09.08
33==================================================
34
35Folgende Aufgaben, im Groben, stehen noch an:
36
37* Saubere Treiber(-Schnittstelle) für den Leser
38* The Paper Tape Suite
39
40Nun im Einzelnen:
41
42Was zusammengehört, wächst letztlich zusammen: Während bereits
43die Puncher-Treiber umgezogen sind von /userspace-driver zu
44/driver und dabei ein sauberes Backend/Frontend-System gekriegt
45haben, soll selbiges jetzt auch den Leser-Treibern widerfahren.
46Dabei ziehen alle Treiber-Backends, nach Betriebssystemen geordnet, in
47das /driver-Verzeichnis um. Wie das dann letztlich aussieht, weiß
48ich noch nicht genau.
49
50The Paper Tape Suite: Das erklärte Endziel dieses Projektes ist
51ein umfassendes "All in one" GTK-Programm, welches folgende
52Generalfeatures vereint:
53
54* Lochstreifendateien öffnen und anschauen, mit allen bereits
55  bekannten Flexibilitäten von GtkPaperTape
56
57* Lochstreifen auch bearbeiten: Einen vollen Binäreditor in
58  allen Regeln der GTK+-Kunst, d.h. native Benutzung: Kopieren,
59  Verschieben, Auswählen, etc.
60
61* Lochstreifenschriften, Beschriftungen an beliebigen Stellen
62  einfügen
63
64* Ausstanzen der aktuellen Lochstreifendatei auf beliebige
65  Stanzer auf beliebigen Betriebssystemen (das Backend benutzend)
66
67* Einlesen von Lochstreifendaten von beliebigen Lesern auf
68  beliebigen Betriebssystemen
69
70
71Mit GtkPaperTape existierte bereits eine voll funktionsfähige
72C-Implementierung eines Lochstreifenbetrachters. Wegen den
73nun wesentlich gestiegenen Anforderungen wurde dieses System
74in C++ von Grund auf neu programmiert. Dabei wurden viele Bugs
75und Probleme beseitigt und längst überfällige Funktionen
76implementiert. Auf der anderen Seite ist die Entwicklung recht
77komplex, birgt viele neue Gelegenheiten für Bugs und geht wegen
78ihres enormen Umfangs alles in allem auch sehr träge vorran.
79Die gestiegenen Kompilierzeiten tun ihr Übriges dazu (alleine
80Gtk::PaperTape mit allen Abhängigkeiten zu kompilieren dauert
81auf meinem Pentium IV etwa eine halbe Minute).
82
83Der Stand der Dinge:
84
85Die Gtk::PaperTape-Implementierung hat im Grossen und Ganzen
86jetzt den Funktionsumfang erreicht, den die C-Implementierung
87"GtkPaperTape" auch bot. Dabei wurden bereits etliche neue
88Funktionen (auch testweise) implementiert:
89
90* Ein System mit einigen Objekten, welches vor allem in
91  Bezug auf Namensgebung allerdings nochmal etwas überarbeitet
92  werden muss.
93
94* Action-basierte Menues, eine Toolbar
95
96* Viele freundliche Einzeldetails, z.B.
97  * mächtiges Exportwerkzeug mit Auswahloptionen und
98    Fortschrittsbalken
99  * mächtigeres Zoomwerkzeug mit Direktzugriff auf die
100    affine Abbildungsmatrix
101  * mächtigeres Farbenwerkzeug mit Alpha-Unterstützung
102    und Ein/Ausschaltbaren Komponenten
103
104* Erste Bearbeitungsfunktionen: Im momentanen Viewer können
105  Bits durch Klicken ein- und Ausgeschaltet werden. Dies
106  funktioniert exzellent ohne Bugs.
107
108* Sehr ausgereiftes Zeichnungssystem, welches wirklich nur
109  die benötigten Komponenten zeichnet. Einige wenige
110  Bugs existieren noch, traurig ist der noch immer vorhandene
111  Scrollbug (Inhalt bleibt stehen), der aber *aller*
112  Wahrscheinlichkeit nach ein Gtk+/Xlib/Cairo-Problem ist.
113  Ich hab ihn im Gtk+-Bugtracker verzeichnet, siehe
114  http://bugzilla.gnome.org/show_bug.cgi?id=552672
115
116
117Ich denke, dass die Neuerungen bereits Wegweisend sind. Dank
118C++ ist das Widget zudem jetzt wesentlich leichter erweiterbar,
119was die Implementierung von neuen Funktionen erleichtert.
120
121
122TODO
123====
124
125Nun eine Liste der Dinge, die noch fehlen oder buggen:
126
127Bugs/fehlende Funktionen:
128
129* PaperTapeExporter: Stürzt ab oder zeigt Oberfläche nicht
130  richtig. Abbrechen-Button ist immer noch nicht anklickbar.
131  Problem hier vielleicht static- oder Heap-Elemente?
132
133* PaperTapeZoom: Einbindung in LOCHSTREIFEN nicht gut,
134  LOCHSTREIFEN->matrix müsste wieder ein Pointer werden.
135  Es fehlen noch Flip-Funktionen, ausserdem sind die Rotate-
136  Funktionen nicht praktisch (nur 90°-Vielfache sollten
137  möglich sein). Auto-Resizing ist umständlich, weil es
138  bei der GtkScrolledArea die Scrollwidgets abschalten muss,
139  PaperTapeZoom braucht also vollen Zugriff auf die View
140  und den Controller. Deshalb: ScrolledArea in die View-
141  Kompetenzen rübernehmen! Controller zur Chrome umbenennen,
142  Controllerkompetenzen schwächen!
143
144
145Neue Funktionen:
146
147* PaperTapeFont: Einbindung des C-"PaperTapeFont"-Systems fehlt
148* Auswählen geht noch nicht, außerdem Kopieren und Einfügen
149* Problematik immer noch: Cursormetapher -- zwischen Bytes
150  gehen oder immer im "Overwrite"-Modus?
151
152
153
154-- Sven @ 22.09.08 03:00, workstation
155</pre>
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