[linux-l] Dokumentenspeicher

Volker Grabsch vog at notjusthosting.com
Mo Okt 2 14:40:51 CEST 2006


On Mon, Oct 02, 2006 at 09:06:36PM +1000, Peter Ross wrote:
> Steffen hat Recht mit einer Bemerkung, dass man eigentlich gar keine 
> Ordner will, aber man hat sie..

Dem muss ich widersprechen. Man *will* Ordner. Man will nur keine
elendig tiefe Hierarchie, weil man da, wie du sagst, nichts mehr
wiederfindet.

> Auf einem Unix-System landet ja alles, was man so runterlaedt, sich von 
> der Digitalkamera zieht oder was auch immer.. im Homeverzeichnis.

Das ist der Ausgangspunkt all deiner Überlegungen. Nun gut, damit
hast du alle "Quellen". Das heißt, alle Dinge, die du nicht änderst
und vielleicht nichtmal selbst gemacht hast. ("runtergeladen")
Und darüberhinaus alles "fertige", d.h. endgültige Rechnungen,
endgültige Texte, Releases von Programmen, etc.

Auf diesen Spezialfall ist eine Strategie getrimmt. Und wie jede
Extrem-Strategie ist sie nicht flexibel genug, um für irgendwas
anderes zu taugen.

Für ein Archiv-System nicht schlecht. Aber für ein Arbeits-System?

> Well, dann gibt es meistens den Desktop, auf dem sich der Kram sammelt, 
> bis man das Ganze satt hat, und den Muell irgendwo sortiert.. oder 
> wegschmeisst.

Ich habe keinen Desktop, sondern ein Arbeitsverzeichnis, aber das
im Prinzip das gleiche (außer dass ich nicht alle Fenster klein
machen muss, um darauf zugreifen zu können ;-)).

In diesem sammeln sich Dateien an, das ist richtig. Aber sie sammeln
sich in Gruppen an. Ich nenne die Gruppen "Projekte".

Ich entwickle eine Software - ein Projekt. Ich schreibe mehrere Patches
für eine Software - ein Projekt. Ich schreibe einen Text - ein Projekt.
Ich bereite eine Kaninchenausstellung mit vor - ein Projekt.

Egal, ob Programm oder Ausstellung, es sind mehrere Dateien. Ich möchte
nicht gezwungen sein, jeder Datei einen extra Stempel
"Kaninchen-Ausstellung 2006" aufzudrücken. Die liegen in einem Ordner,
und neue Dateien landen automatisch dort (weil OpenOffice/Speicher unter...
sich das aktuelle Verzeichnis merkt).

Ditto für Programm-Code. Ich will ein Verzeichnis, in das ich einfach
nur reingehe und "make test" mache, schon rennt die Testsuite drüber.

Die Vorbereitung über ein halbes Jahr erstreckt, will ich jederzeit,
wenn irgendeiner "mal schnell was ausgedruckt" haben will, an meinen
Rechner gehen können, direkt in den Ordner, und meine Umgebung dort
vorfinden. Meist fällt dem noch ein Fehler auf. Gleich in OpenOffice
korrigiert und nochmal gedruckt.

Ditto für Software.

Oder wenn ich auf ner Reise war. Ein Mathe-Wettbewerb, viele Fotos,
und noch ein Text / Bericht. Will ich das auseinanderreißen und dann
wieder lose zusammenkleben? Sicher nicht.

> Das Sortieren kann eigentlich in einer Datenbank viel schoener passieren..
> Also hinein damit!
> Und die hat dann zunaechst - nutzererweiterbar Dokumententypen.

Meine Dateien haben sowieso schon Dateiendungen, damit sie von
OpenOffice, dem Python-Interpreter, Gimp, etc. verstanden werden.

> Mir reicht vielleicht, zu irgendetwas Software zu sagen, als ab als dieser 
> Typ. Der Naechste kann das durch einen Typ "RPM fuer Fedora" erweitern.

Ich habe einen ganzen Ordner, zu dem ich "Software-Projekt" sage,
und der aus Shell-Scripten, Python/Ruby/C++ - Code, Makefiles, etc.
besteht. Will ich die alle einzeln taggen? Nein.

Will ich den Ordner erst komprimieren und dann ins Archiv packen?
Jein. Eigentlich will ich den Ordner in Archiv packen und als
Ordner wieder rausholen.

> Ein paar neue Musikfiles kriegen eben "Musik", und wenn ich gerade die 
> ganze "Highway To Hell" von AC/DC gestrippt habe, dann eben noch eine 
> Attributableitung "AC/DC" und "Highway to Hell", so dass ich alle Stuecke 
> der CD wiederfinde.

Und wenn ich gerade ein Stück komponiert / zusammengeschnitten habe?
Dann habe ich mehrere Samples, mehrere Varianten/Versionen der
Zusammenstellung, etc.

Sicher, man kann das alles in eine Datei packen. Aber diese eine
Datei ist das *Produkt*. Die Quellen möchte ich aber auch haben.
Und die sind naturgemäß vielfälig.

> Und dann hat das ein Verfallsdatum. Eine Notiz, was ich morgen einkaufen 
> will, brauche ich naechstes Jahr nicht mehr. Eine bezahlte Rechnung 
> vielleicht fuer zwei oder sieben Jahre?

Jeder Finzel-Datei ein Datum geben? Die Selbstdisziplin, die ich
mir dabei aufhalsen würde, wäre vom Aufwand her nicht tragbar. Da
braucht man schon eine fast religiöse Überzeugung von seinem eigenen
System, wenn man diesen Aufwand wirklich über Jahre hinweg durchhalten
will.

Ich würde lieber zwei große Kategorien einführen, z.B. "in Arbeit"
und "Archiv". Das Archiv wächst unkontrolliert an und könnte wie
von dir beschrieben organisiert sein.

Der "Arbeits-Bereich" hingegen springt einen täglich ins Gesicht.
Und wenn da irgendwas dabei ist, was man seit Wochen nicht gebraucht
hat, kann man es bei Bedarf weghauen, d.h. löschen oder ins Archiv
schieben. Ist viel weniger Aufwand und sehr viel genauer als eine
Zeitangabe.  (Weil man das zum Zeitpunkt der Erstellung meist gar
nicht abschätzen kann)

> Und wenn ich denn etwas suche, dann eben in einer Suchmaske, die mich aus 
> Dokumententyplisten browsen laesst, und ansonsten google-like nach den 
> Namen oder auch dem Inhalt (Zugriff, wenn moeglich, Gott sei Dank gibt's 
> ja unter Unix file(1):-)
> 
> Backup? SQLDump + inkrementelles Backup des Filestores..

Das gilt für so ziemlich jedes System. Egal, ob ein Server mit
100 Usern, eine Uni mit 5000 Usern oder einer 3-Mann-Firma, die
ihre Adressen und Rechnungen in ner Datenbank pflegt.

Es ist immer Datenbank + Dateien.

Das heißt, bei ner Software-Entwicklung kommt noch die Versions-
Kontrolle hinzu. Ist es eine versionsbasierte (CVS, Subversion),
dann hat man noch einen weiteren Dump. Ist sie dezentral (Mercurial,
Darcs), dann *ist* jeder Projektordner ja gleichzeitig ein Repository,
d.h. die Versions-Informationen werden zusammen mit den Dateien
gesichert.

> Warum zum Teufel haben wir immer noch Desktops, auf denen wir nichts 
> weitermachen als Files in Ordnern rumschieben, und mit 47 Symlinks oder 
> Shortcuts sie irgendwie wiederfinden?

Sorry, sowas passiert bei mir niemals im Desktop (auch nicht im
Arbeitsverzeichnis), sondern höchstens im Archiv.

*Ich* verschiebe vorallem Projekt-Ordner, die ich "ganz" lasse.
Innerhalb dieser Ordner ist die Struktur dem Projekt entsprechend.
Da ist nicht viel umzuordnen, weil's nicht soooo viele Dateien
sind. Manchmal sind es nur 10 Dateien. Manchmal nur eine (dann lege
ich keinen Projekt-Ordner an sondern lasse die Datei einzeln).
Manchmal sind es auch 100, dann gibt es entsprechende Unterordner,
meinetwegen "src", "doc", "config_aux". Wird es zu groß, wird es
in zwei Projekte geteilt. Überlappen sich zwei Projekte, und lohnt
sich der Aufwand, die Redundanz zu beseitigen (ist nicht immer der
Fall), dann wird die Gemeinsamkeit in ein extra Projekt ausgelagert.

Die von dir angesprochene (und mittels Datenbank gelöste) Problematik
tritt bei mir erst dann auf, wenn die Dinge "fertig" sind oder
"auf Eis gelegt" werden. Kurz: Wenn sie ins Archiv wandern.

> Haette jemand Lust darauf, dass zu implementieren?

Was du beschrieben hast, wurde m.E.n. schon in Typo3 und vielen
anderen CMS realisiert. Zumindest in Grundzügen. Ich wette, ein
Typo3-Modul für die Kategorisierung der Dokumente würde das schon
erschlagen können.

Eine nicht-Web-Applikation wüsste ich jetzt aber nicht.


Viele Grüße,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l