
Copyparty gikk viralt: «Rimelig heftig»
– Jeg hadde ikke venta at flere enn kameratgjengen ville se den, sier Alexander Edland, om videoen som gjorde hobbyprosjektet Copyparty til en snakkis over hele verden.

For en ukes tid tilbake lasta den 35 år gamle norske utvikleren Alexander Edland opp en video på YouTube: "Introducing Copyparty, the FOSS file server".
– Kun på gøy, selvsagt, forteller Edland til kode24.
Copyparty er et sideprosjekt Edland har jobba med i mange år, og nå som prosjektet begynner å bli stabilt, tenkte han å gi ut en slags trailer.
– Jeg hadde absolutt ikke venta at det stort flere enn kameratgjengen ville se den, sier Edland.
– Men det ser ut som YouTube hadde litt andre planer.
I skrivende stund har nemlig videoen hans 250.000 visninger. Poster om Copyparty har gått viralt på både Hacker News og Reddit med tusenvis av stemmer og kommentarer. Det har blitt skrevet artikler på blant annet japanske Gigazine. Og på GitHub har prosjektet snart 25.000 stjerner.
Som Edland svarer når kode24 spør han hvordan den siste uka har vært:
– Rimelig heftig!
"Ballet på seg"
Copyparty lar deg spinne opp en filserver på en hvilken som helst maskin, som du kan interagere med gjennom nettleseren. Og som med alle gode hobbyprosjekter, starta det med et problem Edland og vennene hans hadde:
– Problemstillingen vi stadig hadde er sikkert lett å kjenne seg igjen i: Hvordan man kan overføre store mengder filer, enten i filstørrelse eller antall, mellom to bokser så raskt som mulig, men også med en god garanti for at alt kommer helskinnet over? sier Alexander Edland, som blant annet er aktiv i musikkmiljøet.
I tillegg ville han unngå at ting som allerede fantes på den ene boksen ble kopiert på nytt, og det hele skulle kreve så lite oppsett som mulig.
– Dette var startskuddet for Copyparty. Men funksjonaliteten har jo bare ballet på seg siden da, fortsetter utvikleren, og akkurat det er en underdrivelse.

Et hav av funksjoner
Det mange på internett har blitt slått i bakken av når det kommer til Copyparty, er nemlig den ekstreme mengden med funksjonalitet. Bare for å nevne noe:
- Oppsettet er potensielt ekstremt enkelt – én av måtene er å bare kjøre en Python-fil.
- Støtten av programvare, og dermed også maskinvare, er enorm. For eksempel Opera-nettleseren på en gammel Nintendo Wii, Internet Explorer 4 på en Windows 3.1-maskin – og selvfølgelig moderne mobiler.
- Selve filoverføringa skal være både rask og robust, og for eksempel sørge for at fila du overførte da du plutselig mista wifi fortsetter der den slapp når du er tilbake. Og de fleste metoder støttes, som FTP.
- Filbehandleren lar deg både se på og redigere filer. For eksempel snurre rundt på bilder, skrive i tekstfiler (med to ulike editorer) eller bruke den som medieavspiller.
- I tillegg er det mange muligheter for å administrere og konfigurere Copyparty så du kan bruke det til akkurat det du trenger – samtidig som Edland hele tida påpeker at alt bare dreier seg om filer, som du alltid har full kontroll og eierskap over, uten noen form for telemetri.
Det er mye, mye mer, så se videoen, og les readme-fila, om du vil sjekke ut alt:
Skummelt, og gøy
Alexander Edland, som ofte går under kallenavnet "ed" eller "tripflag" på nettet, anslår å ha jobba med Copyparty i rundt seks år – et par timer hver dag.
– Prosjektet har eksistert en stund ja, men sannsynlig med ganske beskjeden spredning. Det finnes ingen statistikk å vise til, men jeg tror ikke det fantes stort mer enn instansene til et par dusin bekjente og venners venner, i ymse kjellere og i skyer, sier Edland.
Så lagde han altså traileren, og hobbyprosjektet tok fullstendig av.
– For en ADHD-kar ble det plutselig innmari mye som skjer på én gang. Men samtidig er det fantastisk å få flere øyne og tanker inn i loopen; det oppdages feil, det kommer kule idéer, og ikke minst drypper det inn litt kode også. Så nå er det ikke lenger «bare meg» som hacker i vei. Litt skummel tanke, må jeg si, men som sagt, også kjempegøy.
– Jeg prøver å holde samme tempo som før, prøve å ikke kave meg opp for mye; det er vel det som holder i lengden. Og tror at sjefen vil sette pris på om jeg ikke blir for distrahert, ler han, og ser helst at arbeidsgiverens navn holdes utenfor denne artikkelen.

Fortsetter som før, tross suksess
– Copyparty ser ut til å støtte det meste som kan krype og gå av nettlesere. Hva er grunnen til at du har fokusert på dette?
– Jeg får skylde på kameratgjengen som har en god fot inni retro-miljøet — kravet om å kunne kjøre serveren på Windows XP, og gjerne også Windows 2000, kom tidlig. Men det var også bare for gøy, for å se hvor langt man kunne strekke strikken. Liker også at det tvinger frem konservative valg, som jeg regner med vil senke mengden vedlikehold som vil trengs i årene fremover, fremfor moderne stacks som er mer flyktige, svarer Edland.

– Copyparty ser også ut til å kunne gjøre det meste som gjøres kan med filer. Hva er grunnen til dette?
– Her er det hovedsakelig gøy og moro som ligger bak; IRC-kanalen jeg henger i har gjort sport i å komme på nye bruksområder, og det er veldig lett å la seg rive med — spesielt når idéen kanskje kan funke og passer sånn cirka. Men det er også et snev av praktisk motivasjon også, at man får en liten verktøykasse som er kjapp å smelle opp ved behov. Så selv om ingen av oss har tatt prosjektet seriøst i særlig grad, så har det jo faktisk blitt nyttig til slutt!
– Hva er planen videre? Har du lyst til å prøve å tjene noe penger på dette?
– Hvis det ikke skjer noe veldig uventa, så er planen å fortsette akkurat som før — altså uten noen form for plan i det hele tatt. Men riktignok nå med en god del flere øyne i nakken. Det starta jo som et prosjekt kun på gøy, og tror det fort skjærer seg hvis jeg endrer på den formelen.
Da blir jo valget av Python fort litt uglesett, siden språket har rykte på seg til å knekke støtt og stadig.
Python har vært suksess
Når det kommer til teknologivalgene i Copyparty har det vært viktig at alt skal fungere overalt. Og dermed også et mål om "minst mulig leamikk", som Edland sier.
– Da blir jo valget av Python fort litt uglesett, siden språket har rykte på seg til å knekke støtt og stadig. Men jeg vil si at det har gått veldig bra; den samme Python-filen flyr jo på både 2.7 og 3.14, og Python finner man på nær samtlige *nix-maskiner, forteller han.
Ytelse har også vært viktig, for å sikre både hastighet og at filer skal komme seg helskinna gjennom nærmest uansett hva som skjer i prosessen – altså integritetssjekkes.
– Den største utfordringen der var at nettlesere kun støtter sha512, og WASM-baserte alternativer var uforsvarlige på grunn av store mengde browserbugs som minnelekkasjer og deadlocks. Så det ble å dele opp filene i småbiter og hashe dem i parallell på flere kjerner for å snike seg rundt at sha512 er ganske treg, og i tillegg sende bruddstykkene over flere TCP-forbindelser slik at de kunne flettes rett inn i målfilen. Det skalerte ganske greit — kommer tett oppunder maksfart på en NVMe således, forklarer Alexander Edland.
– Python har heldigvis vist seg å ikke være noen flaskehals her heller. Selv om et stort antall brukere ikke var noe som ble vurdert eller aktivt designet for, så har demoserveren, en r5-5500U i kjelleren, holdt seg stille og rolig hele uken, så det var en hyggelig overraskelse! Høydepunktet var på forsiden av Gigazine; 470 MiB RAM og 30 prosent av én CPU-kjerne, ved 144 HTTP-forespørsler i sekundet.