Tag Archive | GitHub

Avsluta Pluginprojektet

Då har vi ett plugin som fungerar och det är dags att gå vidare. I denna avslutande artikel så tittar vi närmare på vad man kan göra ”sedan”.

Underhåll av kod, uppdateringar, översättning, publicering, är sådant som vi skall gå igenom.

Läs mer…

Annonser

GIS och GitHub

Hur hanterar man bäst data om man vill dela dessa öppet, versionshantera på ett bra sätt samt låta andra redigera och föreslå uppdateringar?

Varför inte GitHub?

Läs mer…

Personlig GitHub

Detta blir ett experimenterande inlägg där ambitionen är att skapa en lokal variant av GitHub för de tillfällen när man vill hålla all kod innanför brandväggen, eller helt utanför Internet.

Jag skriver och kommenterar under tiden jag jobbar så det är först mot slutet av artikeln du får reda på hur det gick. Läs mer…

Bidra till öppen källkod – Enklare än du tror

I detta inlägg så kommer jag att använda QGIS som exempel och hur vem som helst kan hjälpa till med exempelvis översättning av programmet, även om just översättning av QGIS görs bäst på ett annat sätt (se inlägg från gårdagen).

QGIS utvecklas på GitHub så det första steget blir att skapa sig ett konto där.

Screenshot from 2014-08-23 15:07:10

Det är enkelt, gratis och går att använda på massor med olika sätt. Jag använder bland annat GitHub för många av mina skript som andra skall kunna ladda hem och köra. För mindre filer så går det dessutom utmärkt att redigera innehållet direkt via GitHub.

Screenshot from 2014-08-23 15:11:20

För att kunna bidra till ett projekt på GitHub så gäller det först att skapa en ”gaffel”. I QGIS källkodsbibliotek på https://github.com/qgis/QGIS så kan man klicka på knappen ”Fork” uppe till höger (se bild ovan). Detta skapar en ”kopia” på hela biblioteket under ditt eget konto där du kan göra vad du vill med källkoden utan att något ändras i originalfilerna.

Som jag nämnde tidigare så kan vissa mindre filer redigeras online, men när det gäller översättningsfilerna så är dessa lite för stora för detta. Då får man göra på ett annat sätt. Det går dock att klicka sig fram bland filerna och kika på koden antingen online eller genom att ladda hem den först.

Översättningsfilerna finns under ”i18n” och den svenska översättningen finns i filen ”QGIS_sv.ts” (en vanlig textfil).

Det går att ladda hem, redigera och sedan ladda upp och ersätta filer, men då bryter man kedjan och det är inte så det är tänkt att man skall arbeta. Därför behöver man programmet ”Git”.

I Linux installerar man med ”sudo apt-get install git” och för Windows och OS X är det inte mycket svårare. Det finns sedan många hjälpprogram för att hantera git-filer men här använder jag terminalen (kommandofönstret).

Screenshot from 2014-08-23 15:28:52

Din ”gaffel” kopierar du till den lokala datorn med kommandot: git clone https://github.com/klakar/QGIS.git där du ersätter ”klakar” med ditt eget användarnamn. Det går att kopiera sökvägen direkt via en länk på den gafflade sidan.

QGIS är ett stort bibliotek så det kan ta ett tag att hämta alla filer, men fördelen är sedan att man bara skickar ändringar fram och tillbaka när man synkroniserar biblioteken på servern och lokalt.

När allt är klart kan man göra sina ändringar i valfritt program och sedan kör man ett nytt git kommando från sökvägen där allt är lagrat, i mitt fall ”QGIS/” i min hemmakatalog.

Screenshot from 2014-08-23 16:21:26

När man kör git status så får man reda på vilka ändringar som gjorts lokalt. Dessa kan man sedan välja att lägga till i ett ”uppdateringsuppdrag” med kommandot git add filnamn följt av git commit -m ”Förklarande text”.

Det kan hända att man tillfrågas om e-post och användarnamn, men det framgår då ganska tydligt vilket kommando som skall skrivas in.

Om man inte ”trycker tillbaka” ändringarna direkt så behöver man även ange vilken plats man skall ”trycka” till.

git remote add origin https://github.com/klakar/QGIS.git

Som tidigare så får du ersätta ”klakar” med ditt eget användarnamn.

För att ”trycka tillbaka” (engelska ”Push”) så skriver man bara kommandot git push. Här får man ange användarnamn och lösenord för det egna kontot på GitHub sedan så sker överflyttningen till biblioteket.

Screenshot from 2014-08-23 16:33:55

Nu kan du kontrollera din uppdatering på GitHub och exempelvis granska vilka ändringar som gjorts (bild ovan). När man sedan är nöjd och vill skicka in sina ändringar till QGIS projektet så skapar man en ”Pull request” (en av flikarna till höger). Detta skickar en signal till de som ansvarar för projektet och de kan gå in och granska de ändringsförslag som du gjort. De kan sedan välja att kommentera ändringarna eller helt enkelt acceptera dem och baka in dem i källkoden.

När ändringarna är skickade så är det bara att vänta på en ny kompilering av programmet och sedan testa så att alla ändringar fungerar.

Avslutning

Även om det nu i fallet med QGIS rekommenderas en annan metod än den beskrivna, så fungerar metoden på alla projekt på GitHub oavsett filtyp, när man nu bestämmer sig för att bidraga till öppen källkod.

Berätta något med en karta

Jag var igår inne på StoryMapJS och det kändes så intressant så jag tänkte testa att skapa denna typ av funktion på min egen geoserver.

Först, leta reda på webbroten på servern och använd ”cd” för att gå dit.

Min webbroot fanns på /etc/www och kommandot för det ovanstående blir därför:

cd /var/www

Sedan skall koden hämtas från GitHub:

sudo git clone git://github.com/NUKnightLab/StoryMapJS.git

Du kan behöva hämta och installera ”git” först och det görs med kommandot:

sudo apt-get install git

Nu är det bara att öppna en webbläsare och knappa in adressen till servern, och lägga till /StoryMapJS/compiled/storymap.html i sökvägen.

Skärmbild från 2014-03-27 21:07:08

I htmlfilen så finns en hänvisning till en konfigurationsfil baserad på JSON. Det finns även flera exempelfiler tillgängliga så det är inte så svårt att redigera innehållet och skapa en egen berättelse, om än lite pillrigt.

Det finns en editor som jag inte fått igång än lokalt, men det går att testa den online på http://storymap.knightlab.com/select.html.

Nu har jag ju visat hur du hämtar och installerar StoryMapJS på din egen server, men det går ju naturligtvis bra att skapa ”storymaps” online också och publicera dessa via Google Drive.

Finessen med att ha allt på en egen server är att man har full kontroll på gränssnitt etc och kan bygga in funktionen i en befintlig webbstruktur. Det är inte så farligt mycket krångligare att lägga till en storymap än vad det är att sätta upp en webbkarta med exempelvis LeafletJS eller OpenLayers.

Det går även att anpassa koden med exempelvis fler kartverktyg än vad som är standard. Det skulle ju vara förnämligt om man kunde skrolla kartan in och ut med hjulet på musen…

Fork och Pull

Nej Aprilskämt lämnar jag åt andra, detta inlägg handlar om GitHub och hur man själv kan bidra med kod till olika projekt.

Jag använder mig av StoryMapJS som exempel.

Skärmbild från 2014-03-27 18:55:12

Det blir kanske ett inlägg om StoryMapJS så småningom men kortfattat så är det ett javaskript som kombinerar olika saker för att knyta ihop en historia med olika media till en karta. ESRI Story Map, som faktiskt också är Open Source (typ), är mycket kraftfullare, men vill du vara oberoende så är StoryMapJS så nära du kan komma idag.

All kod för StoryMapJS finns på GitHub och har man ett konto där så kan man testa och experimentera med koden och föreslå ändringar och tillägg väldigt enkelt.

Först så går man till projektets GitHub-sida, i det här fallet https://github.com/NUKnightLab/StoryMapJS, och klickar på knappen ”Fork” uppe till höger (se bilden nedan).

Skärmbild från 2014-03-27 19:00:15

Detta skapar en sorts kopia av hela kodbiblioteket under ditt eget konto. Där kan man sedan redigera eller lägga till filer som om det vore ett eget bibliotek. När man är nöjd och vill skicka tillbaka ändringarna så gör man en ”Pull Request”.

Genom detta så flaggar man upp förslag till ändringar så att ägaren av originalkoden kan granska den för att därefter besluta om den skall accepteras eller ej och bli en del av den ”skarpa” koden.

Det går att gå till den ursprungliga sidan och kontrollera under ”Pull Requests” om de föreslagna ändringarna finns med, och sedan är det bara att vänta. En del vill att man skickar ett mail eller på annat sätt uppmärksammar att man har gjort ändringar, vilket är särskilt vanligt i projekt som ändras sällan.

Skärmbild från 2014-03-27 19:23:32

Det jag gjorde på StoryMapJS var att lägga till en översättningsfil för GUI till svenska, och om du kan något mer eller mindre udda språk som saknas där så kan det vara ett testprojekt för att se hur Fork och Pull fungerar.

 

Geosupport på GitHub

Som trogna läsare kanske noterat så finns numera geosupportsystem även på GitHub.

https://github.com/klakar/geosupportsystem

Det var när jag fick problem med min Internetleverantörs FTP-tjänst som jag undersökte alternativ och då blev GitHub ett naturligt val.

Eftersom det i huvudsak är skript som jag vill göra tillgängliga för er läsare, så fungerar detta utmärkt. Det går dessutom enkelt att redigera skripten online om man vill eller behöver göra en förändring.

Vi får se hur jag kommer att använda GitHub framöver, men håll ögonen öppna så får vi se.