Dateibasierte Zeiterfassung: Ideen gesucht ...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Betreff ist etwas unklar, wusste nicht wie ich das kurz besser formulieren sollte, sorry.

Geht um Folgendes: wie manche ja vielleicht mitgekriegt haben arbeite ich im Bereich Visual Effects (VFX) fuer Spielfilme, also letztendlich digitale Bildbearbeitung fuer hochaufloesendes Bewegtbild.

Dabei arbeitet jeder Operator taeglich an mehreren Shots und damit mehreren Setups/Dateien von Programmen wie Shake, Nuke, AfterEffects, usw. Damit man erstens in Zukunft besser kalkulieren kann und zweitens eine Auswertung der Auslastung der Maschinen, Operator, usw. hat muss jeder Operator shotbezogen seine Arbeitszeit in ner Datenbank eintragen (die existiert eh da dort der Status jedes Shots/Projekts getrackt wird). In der Hektik des Alltags vergisst man aber natuerlich gerne mal, abends das einzutragen und nach ein paar Tagen weiss man ja evtl. nicht mehr an was man alles gearbeitet hat an welchem Tag.

Deshalb wuerde ich gerne etwas stricken was dem Operator sozusagen automatisiert ne Liste erstellt wo er nachschauen kann welche Dateien er in den letzten Tagen angefasst hat.

Ganz naiv wuerde ich da so vorgehen:
- erstmal alle betreffenden Dateien auf dem Server anhand der Dateiendung suchen
- die Dateien nach Operator sortieren (aufgrund einer Namingconvention steht das Kuerzel immer im Dateinamen, also z.B. "shot1_v01_xz.shk" fuer ein Shakescript des Users xz)
- dann das Aenderungsdatum dieser Files rausfinden und alle nehmen die gestern waren und sie sortiert in ne Liste schreiben

Was mir daran nicht so gefaellt: erstens dauert die Suche nach den Files ja recht lang. Zweitens muss ich das Script jede Nacht durchlaufen lassen und kann immer nur den vorherigen Tag auswerten. Und muss das dann jeden Tag irgendwie an die schon bestehende Auswertungsdatei dranhaengen, damit ich ne Gesamtuebersicht ueber mehrere Tage bekomme. Denn jede Datei hat ja nur ein Aenderungsdatum, ich krieg also ja immer nur die letzte Aenderung raus und nicht alle Tage an denen das File geaendert wurde.

Leider kann ich in den meisten dieser Programme nicht an die Stelle reingraetschen wo das Speichern passiert, sonst koennte man ja einfach da Code hinzufuegen der nen Datenbankeintrag macht fuer Tag, Operator und File und so bei jedem Mal wenn man die Datei speichert. Das krieg ich aber glaub nicht hin. Deshalb die erstmal unelegante Idee mit dem Aenderungsdatum der Files.

Hat irgendjemand ne spontane Idee, ob/wie man das evtl. viel eleganter loesen koennte? (Gehen tut es um Mac-, Linux- und Windows-Workstations die zentral auf nen SAN-Storage zugreifen, teilweise direkt per Fibrechannel, teilweise ueber nen Fileserver per SMB, AFP, NFS).

Danke fuer jegliche Stupser in Richtung von cleveren Modulen/Ideen die mir da helfen koennten!

Gruss, Shakebox
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Von welchen Größenordnungen sprechen wir hier denn so? Hast Du mal versucht einfach alle Datei zu nehmen, das Änderungsdatum zu extrahieren und das ganze zu speichern? (Interessant wäre ggf. eben noch die Storage-Methode)

Wäre doch mal einfach ein erster kurzer Ansatz. Wenn man da schon merkt, dass das zig Stunden dauert, müßte man eben gucken, ob das OS / das FS da nicht einen Hook anbietet, den man bei Änderungen ausnutzen kann.

Funzt der primitive Ansatz, so müßte man sich eigentlich nur Gedanken über die Datenstrukturen (Welche Zusammenhänge will ich speichern) und das Storage-Backend machen. Sollte man komplexere Abfragen haben, so würde ich vermutlich auf eine DB zurückfreifen, wie SQLite. Ansonsten tut es ja vielleicht auch pickle oder JSON.
shakebox
User
Beiträge: 175
Registriert: Montag 31. März 2008, 17:01

Danke. Das Grundprinzip hab ich mal angefangen zu schreiben, aber noch nicht fuer den ganzen Server ausprobiert und Zeit gemessen. Muesste ich mal machen.

Mir ging es eher darum ob es evtl. jemanden gibt der bei obiger Beschreibung spontan aufschreit und sagt "Hilfe, das klingt ja furchtbar, das kann/muss man doch sinnvollerweise voellig anders umsetzen".

Mein Problem ist immer dass ich einfach nicht wirklich programmier-clever denke und auf viele Ideen/Moeglichkeiten gar nicht komme. Deshalb eben dieser Art Brainstormingversuch.
Antworten