| 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 |
|---|
| 6 | emerging the planned "Paper Tape Suite". Nowadays, there's a big |
|---|
| 7 | crowd of files (many copies) lying around and waiting for being |
|---|
| 8 | ordered, 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 |
|---|
| 29 | plans</p> |
|---|
| 30 | |
|---|
| 31 | <pre> |
|---|
| 32 | The Paper Tape Project -- TODO and Goals, 22.09.08 |
|---|
| 33 | ================================================== |
|---|
| 34 | |
|---|
| 35 | Folgende Aufgaben, im Groben, stehen noch an: |
|---|
| 36 | |
|---|
| 37 | * Saubere Treiber(-Schnittstelle) für den Leser |
|---|
| 38 | * The Paper Tape Suite |
|---|
| 39 | |
|---|
| 40 | Nun im Einzelnen: |
|---|
| 41 | |
|---|
| 42 | Was zusammengehört, wächst letztlich zusammen: Während bereits |
|---|
| 43 | die Puncher-Treiber umgezogen sind von /userspace-driver zu |
|---|
| 44 | /driver und dabei ein sauberes Backend/Frontend-System gekriegt |
|---|
| 45 | haben, soll selbiges jetzt auch den Leser-Treibern widerfahren. |
|---|
| 46 | Dabei ziehen alle Treiber-Backends, nach Betriebssystemen geordnet, in |
|---|
| 47 | das /driver-Verzeichnis um. Wie das dann letztlich aussieht, weiß |
|---|
| 48 | ich noch nicht genau. |
|---|
| 49 | |
|---|
| 50 | The Paper Tape Suite: Das erklärte Endziel dieses Projektes ist |
|---|
| 51 | ein umfassendes "All in one" GTK-Programm, welches folgende |
|---|
| 52 | Generalfeatures 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 | |
|---|
| 71 | Mit GtkPaperTape existierte bereits eine voll funktionsfähige |
|---|
| 72 | C-Implementierung eines Lochstreifenbetrachters. Wegen den |
|---|
| 73 | nun wesentlich gestiegenen Anforderungen wurde dieses System |
|---|
| 74 | in C++ von Grund auf neu programmiert. Dabei wurden viele Bugs |
|---|
| 75 | und Probleme beseitigt und längst überfällige Funktionen |
|---|
| 76 | implementiert. Auf der anderen Seite ist die Entwicklung recht |
|---|
| 77 | komplex, birgt viele neue Gelegenheiten für Bugs und geht wegen |
|---|
| 78 | ihres enormen Umfangs alles in allem auch sehr träge vorran. |
|---|
| 79 | Die gestiegenen Kompilierzeiten tun ihr Übriges dazu (alleine |
|---|
| 80 | Gtk::PaperTape mit allen Abhängigkeiten zu kompilieren dauert |
|---|
| 81 | auf meinem Pentium IV etwa eine halbe Minute). |
|---|
| 82 | |
|---|
| 83 | Der Stand der Dinge: |
|---|
| 84 | |
|---|
| 85 | Die Gtk::PaperTape-Implementierung hat im Grossen und Ganzen |
|---|
| 86 | jetzt den Funktionsumfang erreicht, den die C-Implementierung |
|---|
| 87 | "GtkPaperTape" auch bot. Dabei wurden bereits etliche neue |
|---|
| 88 | Funktionen (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 | |
|---|
| 117 | Ich denke, dass die Neuerungen bereits Wegweisend sind. Dank |
|---|
| 118 | C++ ist das Widget zudem jetzt wesentlich leichter erweiterbar, |
|---|
| 119 | was die Implementierung von neuen Funktionen erleichtert. |
|---|
| 120 | |
|---|
| 121 | |
|---|
| 122 | TODO |
|---|
| 123 | ==== |
|---|
| 124 | |
|---|
| 125 | Nun eine Liste der Dinge, die noch fehlen oder buggen: |
|---|
| 126 | |
|---|
| 127 | Bugs/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 | |
|---|
| 145 | Neue 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> |
|---|