• Portefølje

    Dette er er samling af de programmeringsprojekter, som jeg, Kristoffer Levin Hansen, har bedrevet gennem tiden, listet i tilnærmelsesvist kronologisk rækkefølge.

    Revy A/V

    FysikRevyen (på Københavns Universitet) har tradition for at have sangtekster på storskærm, i tillæg til diverse video- og lydklip. Så efter at have set AV-manden skifte frem og tilbage mellem PowerPoint og diverse afspillere de første par år efter jeg startede på studiet, tænkte jeg, at der må være en bedre løsning. Jeg lavede en browserbaseret løsning, som synkroneserer mellem browservinduer med Server-Sent Events, som kører via en node.js server.

    Status:
    Virker, når den bliver brugt, og intensivt udviklet, en eller to gange om året.
    Udsigter:
    Kommer an på, om den næste AV-mand kan overtales til at overtage den her fremgangsmåde.
    Udvalgte buzzwords:
    node.js, Server-Sent Events, teater, svg animation

    Sourcenpm

    Spellsheet

    Et værktøj til at lave printbare spellsheets til D&D. Kører i browseren, og skrevet med treenigheden (html+css+js). Kan holde styr på tallene for kendte spells og spell slots. Bruger TaffyDB til databaseoperationer på en json-formatteret liste af spells.

    Status:
    Gør helt sikkert ting. Nogle af dem tager meget lang tid. Sikkert temmeligt uigennemskuelig.
    Udsigt:
    ...måske burde jeg vende tilbage til D&D?
    Udvalgte buzzwords:
    Single page web app, database, TaffyDB, drag'n'drop, serverless

    SourceExampleGitHub

    ass-to-vtt

    Et lille npm-modul, som jeg har bidraget til. Det oversætter undertekstfiler i ass-format til vtt-format

    Status:
    Simpelt, men effektivt.
    Udsigt:
    Har ikke rigtig behov for mere.
    Udvalgte buzzwords:
    Undertekstfiler, node.js, stream transformer

    GitHub

    DougScore Visualizer

    Doug deMuro anmelder biler på Youtube, efter en kompleks skala med underscorer på ti forskellige 10-trins skalaer, og han præsenterer dem med skærmbilleder af regneark. Jeg fik den uforsigtige tanke, at der må være en bedre måde, at gøre det på.

    Så det her projekt manipulerer animerede svg-er i en webside. Der er en hel del af interaktionerne, som ikke er færdige endnu, og den har brug for at blive optimeret betydeligt, før den kan håndtere alle de biler, som Doug har anmeldt. Men der er nok der til, at man nok kan se, hvad jeg er ude efter.

    Status:
    Parkeret
    Udsigter:
    Jeg vender helt sikkert tilbage inden længe.
    Udvalgte buzzwords:
    Single page web app, datavisualisering, svg animation, fuzzy søgning, stylus style steets, Google Sheets API, YouTube API, REST API, bilanmeldelser

    SourceExample

    Omega

    FysikRevyen (ved Københavns Universitet) har en ideosynkratisk praksis med at skrive sine manuskripter i LaTeX-format. Overleaf er en hjemmeside, som er designet til at lade brugere samarbejde om at skriv LaTeX-dokumenter, og det er (langt hen ad vejen) open-source. De to ting så ud til at passe sammen, og da Revyens hidtidige lager for manuskripter stod for at skulle lukkes, virkede det som en åbenlys løsning, at sætte community-versionen op, tilpasset til vores behov.

    Overleaf er også et projekt under aktiv udvikling, og Revyen viser sig, som en studenterforening, ikke at være organisatorisk parat til at holde en fork ajour, eller til at vedligeholde en hosting-løsning. Derfor løb det ud i sandet.

    Navnet skyldes, at det var tænkt som en erstatning til en side, som hed Psi.

    Status:
    Virkede i et par måneder.
    Udsigter:
    Opgivet.
    Udvalgte buzzwords:
    Full stack web app, Docker, node.js, mongoDB, Redis, express.js, passport.js, websockets, collaborative editing, LaTeX

    GitHub

    Comic-Epublish

    Et powershell-script, som skraber panelerne fra en (unavngiven) web-tegneserie, og pakker dem som en .epub-fil.

    Jeg havde på fornemmelsen, at min e-bogs-læser ville være en ergonomisk bedre oplevelse, mens jeg gravede mig igennem arkivet fra en lang web-tegneserie.

    Status:
    Done.
    Udsigt:
    Done.
    Udvalgte buzzwords:
    PowerShell script, web scraping, epub, .NET platform

    Source

    Middlemega

    Efter at have opgivet Omega, bestod problemet med at give FysikRevyen (ved Københavns Universitet) et sted at opbevare og give adgang til deres manuskriptfiler stadivæk. Overleaf har gode faciliteter til at skrive LaTeX-filer, men stort set ingen til adgangskontrol.

    Derfor er denne inkarnation af Omega designet til at sidde mellem revyens forfattere og Oveleaf (deraf projektnavnet), og holde styr på hvilke manuskriptfiler er tilgængelige, og give adgang til de, som har brug for det. Og til at sortere efter tags.

    Det fungerer i grunden fint, men er siden strandet på, at Overleaf har strammet op på, hvor svært det er for robotter, at få adgang.

    Status:
    Kan, hvad det var planlagt til at kunne.
    Udsigt:
    Gjort umulig af sine afhængigheder.
    Udvalgte buzzwords:
    php, jQuery, access control, websockets, cookies, scraping

    Source

    FysikRevyTex

    Et sæt python-scripts, som hjælper med at kompilere og kollere FysikRevyens manuskripter.

    Her har jeg kun været bidragsyder og vedligeholder i et par år. Det her projekt har en lang historie før jeg kom til.

    Mine mest bemærkelsesværdige bidrag er integrationerne med Google Sheets og Google Forms.

    Status:
    Virker fint.
    Udsyn:
    Jeg har ikke nogen planer om mere.
    Udvalgte buzzwords:
    Python, multiprocessing, LaTeX, pdf, git, Google Sheets, Google Forms

    GitHub

    ucph-revy.cls

    En strømlinet og udvidet udgave af LaTeX-koden, som studenterrevyerne ved Københavns Universitets Naturvidenskabelige Fakultet bruger til at sætte manuskripter op.

    Den bygger på kode, som er opbygget igennem mange år. Mine bidrag er hovedsagligt muligheden for at lave registermærkninger, og dokumentationen, som er skrevet som “literate programming”, eller noget, der minder om det.

    Udbivet på CTAN, the Comprehensive TeX Archive Network.

    Status:
    Virker fint.
    Udsyn:
    Jeg har ikke nogen planer om mere.
    Udvalgte buzzwords:
    LaTeX, pdf, literate

    CTAN