utvikling
Gir ut verktøy for samarbeid i nettleser - inkludert offline-synkronisering
– Mange har prøvd før oss, men vi er først med å porte Git til nettleseren, sier Dag Asheim og Peter Salomonsen.
Git er et utbredt distribuert system for versjonshåndtering, som opprinnelig ble laget av Linus Torvalds for å lette utviklermiljøets arbeid med Linux-kjernen.
Et par norske entusiaster har nå gjort et omfattende arbeid med å kompilere det C-baserte systemet for kjøring direkte i nettleseren, uten en server.
Dette er en nyhet og en anvendelig «byggestein» de mener kan få stor utbredelse, også globalt.
Blant annet kan dette muliggjøre sanntids samarbeid om tekstfiler rett i nettleseren, og funksjonalitet kjent fra Google Docs, for alle og i helt nye sammenhenger.
Blant de første tilbakemeldingene de har fått kom også CMS og bloggverktøy raskt opp som eksempler på nyttige områder for slik teknologi.
– Ingen har gjort dette tidligere, men mange har prøvd
Git er utgitt i åpen kildekode med en fri programvarelisens, men selv om det finnes en rekke ulike implementeringer er det vanlig å forholde seg til en Git-server.
Å kjøre Git direkte i nettleseren kan ved første øyekast virke som et kuriøst påfunn. Og hva skal det være godt for?
– Ingen har gjort dette tidligere, men mange har etterlyst det. Nå har jeg kompilert Git til WebAssembly. Bruksområdene er blant annet lagring lokalt og synkroniseringsmekanisme for offline webapplikasjoner, sier Peter Salomonsen i tech-startupen Orgbrain.
En morsom utfordring er det også, mener kollega og daglig leder Dag Asheim, som også har bidratt om enn på et mer overordnet nivå.
– Antall kodelinjer som er endret er ikke nødvendigvis så stort, men det gjelder å finne akkurat de riktige kodelinjene å endre på. Det har ikke vært enkelt. Jeg føler det er en teknisk milepæl og Peter er hovedarkitekten. Så har vi begge diskutert litt arkitektur og hvordan gå fram, forteller Asheim.
Seriegründeren er best kjent for å ha startet Linpro på midten av 1990-tallet. IT-selskapet ble senere solgt og fusjonert med svenske Redpill, men nå er det syv år siden han trakk seg ut.
Etterpå har han vært styregrossist og investor, før lysten til å starte noe nytt tok overhånd. Orgbrain er et datterselskap av en større satsing kalt Fintech Neo Group, som vi kommer tilbake til i en egen artikkel.
Offline webløsning
Dag og Peter setter i gang en liten demonstrasjon for digi.no. En mobiltelefon blir satt i flymodus for å vise at løsningen støtter bruk uten mobildata og wifi.
Serviceworker-teknologi, også det en nyere webstandard, handler typisk om bakgrunnprosesser og gir tilgang til webteknologi selv om du ikke er på nett, inkludert også push-varsling i nettleser.
– Her bruker vi det til å gi deg nettsiden, selv om du ikke er på nett. Endringene vi foretar mens vi er offline blir senere synkronisert ved hjelp av Git.
Salomonsen viser og forklarer at tekst skrevet inn på en nettside på denne måten kan mellomlagres i et JavaScript-dokumentformat. Da lagres teksten i et filsystem på enheten din. Dette er et vanlig Git-filsystem og nettsiden fungerer ifølge ham som en helt ordinær Git-klient.
Når enheten senere kobles til internett så sørger Git-systemets algoritmer for å unngå at ulike endringer kolliderer.
Prosjektet er nærmere forklart på Github, der kildekoden også er delt. Her en liten videosnutt de har laget.
– Dette kan gjenskape funksjonalitet vi kjenner fra eksempelvis Google Docs?
– Helt riktig. Men det Google gjør har bare de tilgang på. Dette er basert på teknologi som er tilgjengelig for alle utviklere. Etter hvert vil folk forvente slik teknologi i stadig større grad. Akkurat nå føler vi at vi er tidlig ute med dette, sier Dag Asheim.
Egentlig startet arbeidet med en forespørsel fra en kunde som jobber med bistandsprosjekter. De hadde behov for et rapporteringsverktøy som fungerte også uten internettforbindelse.
– Vi har laget dette for å bruke det selv. Det er fortsatt litt under utvikling, men vi har gjort det tyngste løftet allerede, sier Asheim.
Friprog-entusiasten ønsker også å skape et community rundt programvaren.
«Har gjort noen hack»
Salomonsen anslår at han har brukt 3-4 måneder på å tilpasse Git for kjøring i nettleser, med det han litt ydmykt beskriver som noen hack.
Sentralt står tilpasning av et kodebibliotek skrevet i programmeringsspråket C kalt LibGit 2, som blant annet Microsoft er en storforbruker av.
– Vi har ikke skrevet et synkroniseringsverktøy fra scratch, men bygger på robust teknologi, som er utprøvd over mange år, og har tatt dette over på web.
Resultatet er ikke et produkt, men noe de kaller en byggestein i fri programvare, som både inngår i konkrete løsninger fra Orgbrain, men som de også tror kan få en større utbredelse hos andre.
– Egentlig er det ikke så stor forskjell fra originalversjonen av Git. Arbeidet har stort sett vært å tilpasse HTTP-overføring over nett. C-biblioteket har et eget opplegg for dataoverføring, men i nettleseren må du bruke nettleserens vanlige metode, forklarer Peter.
Én ting er å ta et slikt bibliotek og kompilere det for WebAssembly. Det krever også tilpasninger og må helst gjøres stabilt. Dette er noe folk har snakket om siden 2012, først nå er det gjort, påpeker Salomonsen.
– Du må rett og slett være ganske dedikert for å få til dette. Hadde du gitt dette i oppgave til studenter ved en høyskole er det ikke mange som ville fått det til, sier Dag Asheim om kollegaens innsats.
Nyttig i strøk uten stabilt nett
Filsystemet er også tilpasset. LibGit bruker noe som blir kalt memorymapping mot filsystemet, men det er ifølge ham ikke helt støttet i WebAssembly, så her måtte det også gjøres justeringer.
Salomonsen har også skrevet et eget tilleggs API (programmeringsgrensesnitt) i JavaScript hvor du kan foreta standard Git-kommandoer som blant annet add, commit, push og pull.
– Ved å ta i bruk Git i nettleseren kan vi altså lage nettløsninger der flere kan arbeide sammen, selv om nettet er ustabilt eller borte i perioder. Det var jo akkurat det vår bistandskunde hadde behov for, men vi tror dette kan være nyttig også for mange andre, for eksempel styremedlemmer med dårlig nett på hytta, sammenfatter Dag Asheim.