← Journal · Archiv

Saving the Action History

August 17, 2004

At the last MacES I had the opportunity to talk with Martzell about the way data is saved these days. We came to the conclusion that today's method is antiquated. Normally there is a program, say a word processor, that loads a file into memory, where you can then edit it. When the work is done you save it back to the hard disk. The next time you load it, the file is in a state where the things you did before (possibly the day before) can no longer be undone. Some programs store so-called metadata in the file. Among other things, the history is stored in it. You can trace all changes to the file right back to the beginning. Jasc's PaintShopPro does this with its own file formats. A few other programs do too. What these programs lack, however, is a history that lets you jump back to a point and undo just one action - better still: just hide it. Or add new actions at that point without the old history being deleted. Or strike out in a different direction from some other point while keeping the other one alive. Like the branches of a tree.
Example of a history
Explicit saving would thus become superfluous. Changes could be traced back without backup copies having to be made beforehand. You could try things out over several days and at the end discard them entirely or only in part. Thanks to the continuously saved history, workflows would be easy to see and reproduce, even copy to other files.
Over time the tree would of course grow and come to contain data that really ought to be deleted. You could then delete unused branches and hidden actions. The file would then be almost the size it would have been without any metadata. Of course you could also delete the history entirely and keep only the end result.
TemplatesTo take the whole thing to its extreme. If you have a history that records every change, you could do away with files altogether. A drawing program, for example, would have a workspace with the tree structure described above. Starting a new branch at the very top of the tree would be the equivalent of an empty file. Workflows could be copied in from existing branches and modified. In our word processor, for instance, a branch would be like a template. Steps that have been carried out, turning a blank sheet into a letterhead. Another branch attached at this point and filled in yields the letter. Later you could start again from the template and write a new letter. If something about the template needs changing, you simply append a few steps further up. All the letters then take over the change as well. If a letter is no longer to be changed and no longer to be “related” to the template, the “link” to the template can be cut. The template's steps are copied and placed in front of the letter. Ideally this should be possible with a single keystroke. The letter would now stand on its own. Seen this way, it would also make the file metaphor superfluous.

8 Kommentare

Huflaikhan ·

Auch wenn ich nicht alles kapiere, das scheint mir geradezu so einfach wie revolutionär zu sein, dass es die gesamte EDV umschmeißt. Wo ist denn da der Haken?

martzell ·

Genau so sollte es sein. Eine Versionsverwaltung wäre auch noch sinnvoll. Schön wäre, die Aktionen wie einen Film ablaufen lassen zu können.

lemming ·

@Huflaikhan. Du hast deine Frage selber beantwortet. Der Haken bei der Sache ist, dass es nur mit Kompromissen auf heutige Betriebssysteme anwendbar ist. Die Dateimetapher ist z.Z. nicht weg zu denken. Wenn es nun um Interaktion mit anderen Programmen oder gar Computern geht (Webseiten z.B.). Müßte man stets das »fertige Werk« aus dem Programm - im Beispiel das Textverarbeitungsprogramm - in dem man etwas erstellt hat, in eine Datei exportieren. So dass es verteilbar wird. Das ist der Haken.

Die Teile die du nicht verstanden hast, kann ich gerne noch einmal erklären. Ich hab’ mich sicherlich manchmal undeutlich ausgedrückt.

@martzell, eine Funktion die einem vor den Augen das ganze ablaufen lässt, wäre super. Natürlich reicht auch ein Klick auf eine Aktion, im Verlaufsbaum, um die Version wieder zu sehen. Evtl. als Hotkey noch eine neuere Aktion (Version) die man zuvor ausgewählt hat, um die Auswirkungen der Änderungen, die man im moment macht, in der »Zukunft« zu beobachten.

martzell ·

lemming, pass auf dass dich keiner verklagt. Kai Krause hat das Patent auf genau das was du beschreibst, einen mehrdimensionalen Undo Button.

lemming ·

Verdammt, bist du dir da sicher? Woher weißt du das? Dieser Kai Krause macht wirklich gute Software. Das ausgerechnet er dieses Patent hat, ist ganz schön dumm. Evtl. könnte man es ja so abstrahieren, das es mit seinem undo nichts mehr zu tun hat. Schließlich kann man ja auch in der »Vergangenheit« Dinge ändern, die Auswirkungen auf die Zukunft haben.

Ninnghizidha ·

Stell dir vor, ich arbeite an einem Bild in Photoshop, und wende ein Plugin an. Danach gebe ich die Datei jemand anderem, der dieses Plugin nicht hat.

Ninnghizidha.

p.s.: Im Cookie verliert meine Email-Adresse immer die TLD.

lemming ·

»Natürlich könnte man den Verlauf auch komplett löschen und nur noch das Endergebnis behalten.«

Nachteil - auf den du sicher anspielst - dein Partner kann die Datei dann nicht so modifizieren wie du das könntest, der den kopletten Verlauf hat und das Plugin.

Markus Breuer ·

Erstens ist das eine gute Idee. Aber … (und man braucht dazu ger nicht an PlugIns zu denken): Zweitens ist ein solches Dateiformat nicht besonders sparsam (insbesondere, wenn eine Datei viel bearbeitet wurde). Drittens dauert die Widerherstellung einer Datei anhand des “Protokolls” bei komplexen Operationen u.U, sehr lange.

Kommentar hinterlassen