Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  0 2560
Queen of Blades
Jonta's Avatar
DonorCrew
Intro
Prøv selv
Forbedringer

Intro:

Hjernen min foreslår nye prosjekter hele tida.

Om jeg ikke skriver dem ned, blir hjernen min redd, og får ikke gjort noe.

Mange av disse prosjektene er avhengige av andre prosjekter: Må ta på sokker før jeg kan ta på sko.

Ingen fare: Sokker og sko var bare et eksempel for å illustrere rekkefølge og avhengighet.

Gantt-charts (WP) er noe jeg har lurt på å prøve veldig lenge. ProjectLibre (WP) virket som en bra kandidat: FLOSS, på en del måter en kopi av et Microsoft-produkt, som betyr at folk har brukt en del tid på å tenke gjennom det.

Jeg prøvde, ser nytten, men det er ikke noe for meg akkurat nå

«Det der minner meg litt om skill-trees i spill» var det ei som sa. Et kort søk etter: Voilà (SX): Graphviz (WP). Huhei for en minimalistisk syntaks!

Prøv selv:

https://webgraphviz.com/ er nok det enkleste. Ellers: http://graphviz.org/download/

Boilerplate for å styre farger:

Kode

digraph G
{
   graph [bgcolor="#555555"]  // Bakgrunn
   edge [color="red"]         // Piler
   node [color=white]         // Sirkelen
   node [fontcolor="yellow"]  // Teksten

   "a" -> "b";
}
Jeg har hele treet, og delen jeg fokuserer på, i én og samme fil: Fokusdelen etter boilerplaten for farger og litt annet, resten etter ei linje kommentert ut med "// Rest":

Kode

#!/bin/sh

neato -Tsvg full.dot -o full.svg && # Kompilerer hele greia og eksporterer til full.svg
touch temp.dot && # Lager den midlertidige fila å putte fokus-delen oppi
grep -B10000 "\/\/ Rest" full.dot > temp.dot && # Finner 10k linjer før linja med "// Rest", og putter dette i den midlertidige fila. 10k bør holde for en god stund
echo } >> temp.dot && # Legger til en krøllparentes for å avslutte grafen
twopi -Tsvg temp.dot -o focus.svg && # Kompilerer fokus-biten (bruker et annet filter for den. Sjekk f.eks. man dot)
rm temp.dot # Sletter den midlertidige fila
Forbedringer:
- Grafen skulle automatisk tilpasset seg plassen den får. Jeg åpner SVG-ene i Firefox, og ofte er linjene ("edges") unødvendig lange. Skulle heller hatt større tekst og sånt. Det finnes en del options man kan bruke for slikt. Har ikke sett grundig på dem enda. Kanskje mulighetene man får ved å embedde SVG-en i en HTML-side er verdt det. SVG-ene som spyttes ut nå har hardkodete greier for størrelser, som man kanskje kan forandre på vha. sed. SVG er fint fordi det støtter tekstsøk på grafen selv

- Relatert: Text-wrapping for å unngå veldig lange noder. Man kan bruke \n for å legge inn newline (og \l og \r for left- og right-align, merkelig nok), men automatisk hadde vært bedre. Så kvadratiske som mulig kanskje? ("node [shape="rect"]" på starten for rektangulære noder)

- Automatisk farging av node-grupper. Noen prosjekter er relaterte ("ta på sokker" -> "ta på sko", og "ta på bukse" -> "ta på sokker"), og bør ha identiske farger. Men noen er ikke ("se den nye filmen" -> "snakk om den med naboen"). Og de to bør ha forskjellige farger

- Automatisk legge til en passende emoji i hver node, for å lettere finne den visuelt. Det virker greiere enn å tvinge noder til å være på bestemte plasser/områder på X- og Y-aksen. Alle noder med tekst X må få samme emoji, ellers blir de splittet opp i forskjellige noder (om én "ta på sokker"-node får sokker-emoji, og en annen får en eple-emoji, gjelder disse som 2 forskjellige tekster, og vil få 2 forskjellige noder/bobler). Emojis skal være etter node-teksten, separert med mellomrom, være utbredt (at ikke alle noder får samme emoji), og gjerne ofte få samme emoji

- Automatisk left-align på alle noder

- Automatisk underline av lenker ("nFF" [url="https://freak.no"]; // Ser ut til at de må være på en egen linje. Så dette må være på en annen plass: "nFF" -> "Løsninger på Graphviz-bugs")

- Automatisk kompilering når fila lagres. Ikke sett på enda

- Få (Spac)emacs-modusen for DOT til å fungere. Ikke sett på enda

- Raskere lasting av filene i Firefox. Jeg har dem lokalt, og åpner dem automatisk når jeg åpner et nytt Firefox-vindu. No' caching/local storage må da være mulig?
Sist endret av Jonta; 12. april 2020 kl. 23:10.