ProjekteNerdkrams
In eige­ner Sache: Datei­en mit yymmdd_ prä­fi­gie­ren per Drag&Drop

Die Geschich­te der Ver­si­ons­kon­troll­sy­ste­me ist eine Geschich­te vol­ler Miss­ver­ständ­nis­se. Eines die­ser Miss­ver­ständ­nis­se ist, dass man für das Ver­sio­nie­ren von Doku­men­ten zwin­gend ein kom­pli­zier­tes System benö­tigt, des­sen unnö­tig unlo­gi­sche Bedie­nung nicht nur ein Hand­buch, son­dern auch das Lesen von zwöl­fund­vier­zig „Tuto­ri­als“ auf win­di­gen Web­sites vor­aus­setzt, um über­haupt die Grund­la­gen eini­ger­ma­ßen auf die Ket­te zu krie­gen.

Am ande­ren Ende des Kom­ple­xi­täts­spek­trums sit­zen frei­lich Fir­men, deren Ver­si­ons­kon­trol­le dar­in besteht, dass sie der jeweils aktu­el­len Aus­füh­rung eines Doku­ments das jeweils aktu­el­le Datum im Datei­na­men vor­an­stel­len. Das indes emp­fiehlt sogar die Biblio­thek der Har­vard-Uni­ver­si­tät, wo man häu­fi­ger mal mit Doku­men­ten arbei­tet, habe ich gehört. Wenn man aber ein Doku­ment von gestern hat und es für heu­te neu ver­sio­nie­ren möch­te, dann muss man es umständ­lich kopie­ren, die Umbe­nen­nen-Taste drücken, das alte Datum aus dem Namen löschen und das neue Datum in den Namen rein­ko­pie­ren.

Das fin­de ich albern.

Und weil ich alber­ne Com­pu­ter­pro­ble­me gern löse, habe ich ein klei­nes Pro­gramm geschrie­ben, das die­se Schrit­te kom­plett dadurch ersetzt, dass man es star­tet und dann belie­big vie­le Datei­en in sein Fen­ster hin­ein­zieht, die dann ent­spre­chend kopiert und ver­sio­niert wer­den.

Das Pro­gramm trägt den über­schau­bar kom­pli­zier­ten Namen Date­Pre­fix­Co­py und ist hier RAR-ver­packt vor­kom­pi­liert zum Her­un­ter­la­den ver­füg­bar. Es gibt hier­von kei­ne Ver­si­on für ande­re Betriebs­sy­ste­me als Win­dows. Fir­men, die so etwas machen, set­zen nach mei­ner Beob­ach­tung immer Win­dows ein, so dass es dafür kei­nen Markt gäbe, und die Bedien­ober­flä­che mei­nes Pro­gramms setzt nativ auf das Win­dows-API, weil ich außer­or­dent­lich wenig Lust hat­te, einen Rat­ten­schwanz an Abhän­gig­kei­ten hin­ter­her­zie­hen zu müs­sen. Eigent­lich woll­te ich dort, wo jetzt der etwas lang­wei­li­ge Text „Drop Files Here“ (Mehr­spra­chig­keit ist der­zeit nicht geplant) steht, statt­des­sen ein bun­tes Bild­chen rein­ma­chen, aber auf­grund eines (bereits gemel­de­ten) Feh­lers im zugrun­de­lie­gen­den Frame­work lässt sich das der­zeit nicht ver­nünf­tig kom­pi­lie­ren. Viel­leicht hole ich das irgend­wann mal nach. (Nach­trag vom 5. August 2024: Der Feh­ler wur­de umgan­gen.)

Natür­lich wur­de das Pro­gramm in Com­mon Lisp imple­men­tiert, denn völ­lig zu Recht wies ein geschätz­ter Tex­te­schreib­kol­le­ge anläss­lich eines zuvor von mir geschrie­be­nen Pro­gramms dar­auf hin, dass Rust, das ich hier­für anfangs eben­falls im Sinn hat­te, eine Spra­che ist, die ja nun nicht jeder zu ver­ste­hen ver­mag oder auch nur beab­sich­tigt. Aber wer kann denn bit­te kein Lisp? ;) (Außer­dem senkt das die Wahr­schein­lich­keit, dass irgend­ein Schwach­kopf in Zukunft mal einen Teil des Codes per ChatGPT als „sei­nen“ Code aus­gibt, ohne die Lizenz dran­zu­schrei­ben, weil er sie gar nicht ken­nen kann. – Dass wir mal die Rech­te von Urhe­bern wenig­stens ein wenig schüt­zen kön­nen wer­den, indem wir unpo­pu­lä­re Tech­no­lo­gie ver­wen­den, hät­te mir vor ein paar Jah­ren ja auch noch kei­ner geglaubt. Aber ich schwei­fe ab.)

Möge es irgend­wem von Nut­zen sein.


Mei­nung des Tages: Im Kampf gegen den Kin­des­miss­brauch sei es ein enor­mes Hin­der­nis, wenn Men­schen für im Inter­net feil­ge­bo­te­ne Waren (Por­nos zum Bei­spiel; war­um eigent­lich nicht auch iPho­nes?) um Geld gebe­ten wer­den.

Senfecke:

    • Klingt nach einem Radio­sen­der. Aber ja, ken­ne ich. Gibt es zu die­ser Fra­ge eine Anschluss­fra­ge oder ist das mehr so ein Wis­sens­test?

      • Der lie­fert einem halt direkt den Prompt, um den Datei­na­men anzu­pas­sen, wenn man Ctrl‑V fol­gend auf Ctrl‑C drückt.

        • Gut, igno­rie­ren wir mal den Umstand, dass das immer noch kom­pli­zier­ter ist als mei­ne Null-Tasten-Lösung: Wo genau fin­de ich die nati­ve Win­dows­ver­si­on?

    • Das mei­ste davon ist die Run­time. Com­mon Lisp hat ja den Charme, dass jede .exe die kom­plet­te Ent­wick­lungs­um­ge­bung mit­lie­fert und man das Kom­pi­lat qua­si zur Lauf­zeit umpro­gram­mie­ren kann. (Kom­mer­zi­el­le Com­pi­ler, etwa LispWorks, haben eine Art „Strip­funk­ti­on“ – einen Tree­s­ha­ker – ein­ge­baut, was die Grö­ße deut­lich drücken wür­de. Aber ich habe momen­tan kei­ne Lizenz hier­für. Gern selbst kom­pi­lie­ren. Ich tei­le das Ergeb­nis dann gern mit allen.) https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif

      Nach­trag: Grund­sätz­lich tei­le ich den Ein­wand gegen inef­fi­zi­ent kom­pi­lier­te Soft­ware übri­gens. Aber ich hat­te mal wie­der Bock auf was mit Lisp. Hey, es hät­te schlim­mer sein kön­nen. Ich hät­te Java­Script nut­zen kön­nen… (und Trick­se­rei mit Lauf­zeit­kom­pres­si­on ist mei­ner Mei­nung nach die Nach­tei­le – mehr RAM, mehr CPU – nicht wert; die dpc.exe ist doch recht spar­sam, was das betrifft).

  1. Das wer­de ich sicher die Tage mal aus­pro­bie­ren.
    Aber in einem Punkt muss Ich Dir wider­spre­chen:
    Am ande­ren Ende sit­zen Fir­men, die eine Ver­sio­nie­rung haben, aber trotz­dem jedes­mal eine neue Datei mit Datums­prä­fix erzeu­gen https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif

Comments are closed.

https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_smilenew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_biggrin2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_sadnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_eek.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_shocked.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_confusednew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_coolnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_lol.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_madnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_aufsmaul.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_seb_zunge.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_blushnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_frown.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil1.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_twistedevil2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/icon_mad.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_rolleyesnew.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_wink2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_idea2.gif  https://tuxproject.de/blog/wp-content/plugins/wp-monalisa/icons/smiley_emoticons_arrow2.gif 
mehr …
 

Erlaubte Tags:
<strong> <em> <pre> <code> <a href="" title=""> <img src="" title="" alt=""> <blockquote> <q> <b> <i> <del> <tt> <span style=""> <strike>

Datenschutzhinweis: Deine IP-Adresse wird nicht gespeichert. Details findest du hier.