Simple steps for installing Qgis on Ubuntu or WSL

TLDR; Quick recipie for installing newest stable version of QGIS on Ubuntu (plain or WSL ubuntu).

I find the average recipie for installing more up-to-date versions of … anything on linux, basically…. rather difficult  to follow. For me, code words like Bionic does not translate easily into how to to modify the file /etc/apt/sources.list , or what sudo apt  magic I should perform.

So this recipie is helpful only to expert linux users.

Unless you want to install .deb files manually, of course. But you don’t want that – you want to add the repositories so that updates roll in whenever you do sudo apt update && sudo apt -y upgrade.

The best recipie I’ve found so far

This is the easiest breakdown I’ve ever seen of this process:

Thank you, Phil Mike Jones. I learned a lot, and you solved a problem for me.

Translated into do this – then that steps

For my own memory, and possibly benefit of other, provide the the actuall commands needed (valid as of 3d of April, 2020). Updating with fresh, relevant details should be straightforward.

Add repository

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable

Add key to that repository

wget -O - | gpg --import
gpg --fingerprint 51F523511C7028C3
gpg --export --armor 51F523511C7028C3 | sudo apt-key add -

This key should expire around August 2020 or so, unless I’ve misread some of the techspeak from these commands.

Edit the apt/sources file

The file /etc/apt/sources.list should be edited with your favorite editor, run as sudo. Add these following lines.

# Qgis ubuntugis dependencies
deb bionic main
deb-src bionic main

Final installation

sudo apt update
sudo apt upgrade
sudo apt install qgis python-qgis

The final qgis command should now start QGIS just fine.

Bonus: This works in WSL, but you need Xming (or similar)

WSL – Windows subsystem for linux – is a real life saver. Such as when my windows QGIS installation is beyond repair I can just install and run it in WSL. I run Ubuntu in my WSL.

But you need some tweaking to get graphical programs to work. Easy. Just install Xming or some equivalent and make sure to start it (just find it – click it).

In WSL, type:

export DISPLAY=:0

before starting any graphical commands. To test this, do:

sudo apt install x11-apps

Aftenposten driter i lov om personopplysninger

Etter flere festlige runder med Kafkas’k kundeservice kan jeg slå fast at Aftenposten driter i norsk lov om personopplysninger.

Jeg tror nok grunnen er latskap; det er neppe noen som helst rasjonell grunn til å opptre slik av vond vilje.

Alvorlig talt, Aftenposten: Jeg venter bedre av dere!

Så hva i all verden kan jeg gjøre med det? Ingen verdens ting. Rent bortsett fra å «oute» dem på internett og sosiale media står man nemlig totalt maktesløs. Ref Personvernnemdas avgjørelse i Brilleland-saken. Hvis et firma ikke gidder slette deg  så får det altså ingen konsekvenser overhodet. Datatilsynet vil sikkert støtte deg med vedtak om du gnåler lenge nok — men dette vedtaket kan firmaet altså trygt ignorere og trenere så lenge de vil.

For min egen del er historien slik: Jeg ønsker et skille mellom epost på jobb og privat. Jeg har i over ett år bedt Aftenposten om å slette jobb-eposten fra sine registre. Det ble jeg lovet – i august i fjor. Jeg er fremdeles ikke slettet, og får fremdeles spam fra dem. I jobben min hender det jeg får eposter fra – domenet, så jeg kan ikke bruke spamfilteret (der jeg vanligvis er nådeløs!).

Det finnes viktigere og mer alvorlige ting her i verden. Men jeg hadde ventet bedre av en seriøs aktør som aftenposten.


Missing linux shell on W7? Getting friends with Msys2

Are you missing the power of (l)inux shell at you fingertips?

Of course, running Linux would be the best thing — but some of us are stuck on corporate machines, or don’t have the time to be our own sysadmin’s.

Installling Msys2 is fairly straightforward — but you have to type some pretty cryptic commands to get there. But if you’re longing for the linux-shell I guess this feeling should be somewhat familiar.

Understanding and tweaking Msys2

Msys2 makes a directory structure under where you choose to install it. Say you install it at c:\myprograms\msys2, then your home directory will be at c:\myprograms\msys2\home\<username>\

To navigate your file structure, you do cd /c or cd /c/data/whatever. cd with no arguments takes you back to your home directory.

Quirks and fixes

My biggest quirk was getting network connections right on my laptop. When connected to the corporate network I need to get the proxy settings rigth — but not when I’m at home, or at any of the other networks.

Adding a few lines to .bashrc did the trick:

if [[ "$(ping -n 1 internal.corporate.webservice | wc -l)" -gt 1 ]]; then
    export https_proxy=$http_proxy
    export ftp_proxy=$http_proxy
    export rsync_proxy=$http_proxy
    export rsync_proxy=$http_proxy
    export no_proxy="localhost,,localaddress,"

I first fire away a single ping request to a service which is accessible only within my corporate firewalls. If it fails, ping’s terse error message is one line only. So if the test fails I’m not at my corporate network and (usually) won’t have to do anything.

If I get more than one line from my single ping I am at our corporate network, and need to use our corporate proxies for internet connection.

Tweaking the bash shell

You should have a look at the file .bashc in your home folder. It already has a lot of the tweaking required to make bash suit your needs. Uncomment the options you love the most —  this is my pick:

# If not running interactively, don't do anything
[[ "$-" != *i* ]] && return

# show differences in colour
alias grep='grep --color'              
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'

# classify files in colour
alias ls='ls -hF --color=tty'
alias dir='ls --color=auto --format=vertical'
# long list
alias ll='ls -l'
# all but . and ..                              
alias la='ls -A'                              
alias l='ls -CF'

# Tab completion cycles through alternatives
bind TAB:menu-complete

Search history

Adding these changes to the the .inputrc file gives you the power to search history.  Most likely, you have soome default setting for show-all-if-ambiguous and completion-ignore-case, so you should review and edit and not just paste into the tail of the .inputrc file. 

"\e[A": history-search-backward
"\e[B": history-search-forward

ls and arrow up now will now iterate over any ls – command you’ve added previously. At least in w7 – can’t get it to work at w10 (yet). 

Thanks for this tip to

You may also consider adding these to the .inputrc (not sure if the same can or should be achieved through settings in .bashrc)

set show-all-if-ambiguous on 
set completion-ignore-case on

If there’s more than one possible completion when you autocomplete with tab, the first setting will list all of them.

The second will tell autocomplete to ignore case when looking for competions.  This is how windows treat file names anyhow.

The daunting Pacman

If you survived the installation instructions you’ll probably have noticed that Msys2 uses the package manager Pacman to administer which programs are installed as part of msys2. For novice users, finding your way through the pacman documentation is quite … daunting and intimidating.

The hardest part about pacman is actually  finding the packages you want to use. I found browsing for available packages and repositories really, really  tedious and painfull. Luckily, the pacman search function is good. So in the MSys-shell you do:

pacman -Ss <search phrase>

and then finally

pacman -S <package name>

Note that you typically don’t need to include version info in <package name> . To install grep I simply typed

pacman -S grep

and then accepted the proposition proceed to installation. 

Pin to start menu and desktop

Creating a shortcut to <your installation folder>\msys2\msys2_shell.bat will give you you one-click startup of this wonderful shell. However, different windows-version have different opinions about how you add stuff to the start menu, your most used programs and the taskbar.

Windows 10: I’ve only been able to create this shortcuts to the desktop, and NOT the taskbar or start meny.

Windows 7: Adding to menu bar and/or start menu is straightforward. (Pro-tip: manipulate the icon of the shortcut, there is a «change icon» button there, you may have to manually input the path to <your installation folder>\msyss\msys.ico ).

What doesn’t work

Working interactively with python sort of works for super simple stuff (use python -i), but is painfull: I cant use the arrow keys to navigate the python history. I think this is why.  Instead I highly recommend installing anaconda, which has the editor spyder built-in (also available separately). Another good editor is IeP. Or you can use the regular windows command line utility.

Diff: If pacman doesn’t have your favorite utility you may have to install that separately. I had to do that with diff (see below)

Manually installing windows command line utilities

Curiously, I could not find a pacman-package for diff. Instead, I installed GnuWin32 diffutils.  Download the binaries, which contains the setup program diffutils-2.8.7.exe.  Run the installation program, then add the destination folder/Gnuwin32/bin to the windows PATH environment variable. (Here’s just one of very many tutorials on how to do this.)

What works:

ssh including key generating and sharing (ssh-copy-id). Scp works just fine, and I assume sftp and the rest of ssh-related stuff will work as well.

well… most of the stuff I’ve tried works. Except the popular have-multiple-bash-sessions-in-one-terminal program screen.

Cutting and pasting magic

Any text that is selected in the command window is also copied to the windows clipboard, automagically. You must use the mouse to select text, but there is a multiple-click to select the whole word or the whole line. This GREATLY speeds up the selection, just click many times to iterate through the selections (none, word, line). If none of those rock your boat you can always do the click-drag thing.

Pasting is done with a  singleright-click on the mouse.

I thought it would be awkward to shift from the highly automated CTRL-C, CTRL-V combination to the click-rigthclick thing inside the shell, but that worked out pretty smooth pretty quick (for me). Now I want all other windows applications to behave like this!

Bruk kart fra kartverkets WMTS i QGIS

Kartverkets WMTS-tjenester egner seg veldig bra som bakgrunnskart i det gratis GIS-verktøyet QGIS. Her er oppskriften jeg bruker for å få det til.

1. Velg en kartprojeksjon for QGIS workspace

Klikk på projeksjonssymbolet nede til høyre:

Skjermdump-projeksjonssymbol QGIS GUI

Eller du kan gå inn i menyen: QGIS -> Prosjekt -> Prosjektegenskaper -> CRS.


Projeksjoner er tungt å sette seg inn i — og veldig mange trenger heller ikke lære seg mer enn at de sjekker at kodeverdiene for kartprojeksjon stemmer overens.

Per juli-2015 støttes disse projeksjonene fra Kartverkets WMTS-tjeneste.

  • UTM med referanseramme WGS-84: EPSG:32635, EPSG:32633, EPSG:32632.
  • UTM med referanseramme Euref-89: EPSG:25832, EPSG:25833, EPSG:25835.  (Landsdekkende datasett fra forvaltningen publiseres oftest som EPSG:25833).
  • Lengde/breddegrad, WGS-84: EPSG:4326
  • Google mercator: EPSG:900913, EPSG:3857
  • For spesielt interesserte: EPSG:3035

Plukk den EPSG-koden du liker best, og som best matcher de øvrige datasettene du skal bruke.

2. Opprett forbindelsen til kartverkets WMTS-tjeneste

I venstre marg på QGIS klikker du «Legg til WMS/WMTS-lag». Så har QGIS det litt forvirrende begrepet forbindelse, som betyr at man henter kartlag fra en WMS- eller WMTS-server.  Klikk «Ny» og legg inn i URL-feltet:

Skjermdump QGIS legg til ny forbindelse
Legg til ny forbindelse med lenke til kartverkets WMTS-tjeneste.

3. Hent liste over kartlag og velg din favoritt

QGIS skjermdump. Klikk "koble til" for å få tilgjengelige kartlag fra tjenesten.
Klikk «koble til» for å se hvilke kartlag som er tilgjengelig fra tjenesten.

Nå er du klar til å laste ned innholdsoversikten. Klikk Koble til. 

Innholdsoversikten åpnes i et nytt vindu med tittelen Legg til lag fra WM(T)S tjener. Scroll ned til ditt favorittkartlag i din favorittprojeksjon (typisk lik prosjektets CRS, som du valgte i første trinn).

Skjermdump QGIS, tilgjengelige kartlag fra Kartverkets WMTS-tjenester
Mange lekre kartlag å velge blant fra Kartverkets WMTS-tjeneste. Denne listen kan sorteres. F.eks. kan du sortere på EPSG-kode; da blir den vesentlig enklere å finne fram i.

Sorterer du tabellen på projeksjon eller CRS så blir den vesentlig enklere å finne fram i (klikk på kolonneoverskriften)

Hvert kartlag tilbys i bildeformatene PNG og JPEG. Jeg holder kanskje en knapp på JPEG-varianten, men har vel egentlig ikke grunnlag for å hevde at det ene er kjappere eller gir bedre resultat enn det andre.

4. Men detta var stygt? Juster hvordan QGIS resampler kartbildet.

Kartbildet fra WMTS-tjenesten vil sjelden stemme 100% overens med den målestokken du bruker i QGIS. Det betyr at QGIS må «strekke» bildet for å få det til å stemme eksakt. Og standardmetoden (nærmeste nabo) gir et ganske dårlig og kornete resultat.

I oversikten over tilgjengelige kartlag høyreklikk på laget-> Egenskaper. I den nye dialogen velger du fanen Stil. Under Resampling velger du enten bilineær eller kubisk.

QGIS skjermdump Juster metode for resampling




Digitalisering av skolekorps del 1 – nye hjemmesider

Mine forgjengere i Strindheim Skoles Musikkorps hadde lagt mye arbeid ned i å få layout i korpsets glade farger, og holde innholdet oppdatert. Resultatet lignet ganske mye på dette:

Hjemmeside for et tilfeldig valgt musikkorps. De fleste hjemmesider i foreningsnorge ser om lag slik ut
Hjemmeside for et tilfeldig valgt musikkorps. De fleste hjemmesider i foreningsnorge ser om lag slik ut

Hva var bra i de gamle nettsidene?

  • Godt skrevet tekst
  • Mye fine bilder
  • Etter litt tilvenning var sidene var sånn noenlunde grei å finne fram i
  • Mine forgjengere var veldig ivrige på å holde informasjonen oppdatert (all ære til dem for det; arbeidsflyten for å publisere og vedlikeholde var svært brukerfiendtlig). 
  • Kalenderfunksjon (google kalender embedded og godt synlig)

Hva burde vært bedre?

  • Ikke mobil- og nettbrettvennlig
  • Noe innhold burde vært slått sammen, forenklet og ryddet i
  • Noe informasjon var overflødig
  • Menystrukturen var lite intuitiv, litt gammeldags og sær.

Hovedhierarkiet av menyer er horisontalt, under banneret — men venstre marg tas i bruk hvis det er undernivåer. For eksempel  Medlemmer under hovedbanneret, deretter  «Fløyte» eller «Klarinett» i venstre marg. Dette er så intuitivt at bruksanvisningen blir helt overflødig:

Husk: Først klikk i horisontal meny, under banneret. Deretter klikk i venstre marg.
Husk: Først klikk i horisontal meny, under banneret. Deretter klikk i venstre marg.

Og enhver nettside inneholder selvsagt en gjestebok:

Gjestebok - et nostalgisk gjensyn med 1998.
Gjestebok – et nostalgisk gjensyn med 2000-tallet. I rettferdighetens navn må det nevnes at gjesteboken på vår gamle nettside inneholdt to hilsener. Begge var to år gamle, og begge gratulerte med fine, nye nettsider.

Min opprinnelige plan var å slanke innholdet littegrann (færre menyer, færre undernivåer, slå sammen informasjon), og ikke minst: Gjøre løsningen responsiv. Å hacke CSS og html kan da være utrolig artig? I ettertid er jeg veldig glad for at denne planen tryna brutalt pga tidsnød.

Det er ytterst tvilsomt om jeg ville klart å lære meg håndtverket godt nok til å få noe bra ut av kombinasjonen steingammelt rammeverk pluss moderne CSS-teknikker. For ikke å glemme at vi hadde en utrolig brukerfiendtlig løsning for oss som skulle publisere og vedlikeholde.

Plan B — en wordpress-installasjon hos —  kom på lufta i løpet av et par dager. Og da snakker vi om dager med etter-leggertid innsats med travel jobb, travel kone og høyt aktivitetsnivå på mine to søte små, av en som gjør dette for første gang. Å sette opp farger etc. som «datter» av valgt wordpress-tema var derimot overaskende mye googling og fikling før jeg kom i mål; til sammen brukte jeg kanskje 1-2 effektive arbeidsdager på layoutflikking, fordelt utover litt kvelder og trekvart av en natt. Gevinsten er at mine layout-tilpasninger overlever oppgraderinger av WP og tema. Og løsningen ble til slutt akkurat så elegant og enkel som bruksanvisningen hevder den skal være.

Dette har jeg aldri gjort før, så det kan jeg helt sikkert — Pippi Langstrømpe

Man må ikke installere selv  — de fleste vil leve veldig godt med for eksempel sitt tilbud. Det er gratis å komme i gang på en – adresse. Så betaler man for å få en annen adresse enn, økt fleksibilitet i layout, hvilke add-ins som er tillatt etc. Vi (jeg) valgte å være min egen herre, men det kan diskuteres hvor rasjonelt det var. Her kan du se hvor langt vi kom med


Fra før hadde korpset standardisert på en Google kalender. Denne fikk en mer sentral plass gjennom tillegget Google Calendar Events. Etter ca ett års erfaring gikk jeg også fra en felles til fire separate kalendere for aspirantkorps, hovedkorps, minimusikere, samt større (felles) korpsbegivenheter.  Disse fire kalenderne spleises sammen i felles kalendervisning og aktivitetsplan. De neste fem kommende begivenhetene vises i høyre marg på nettsidene (evt nederst på siden, om skjermen er liten).

Med dette oppsettet kan vi tilby et sammendrag av større korpshendinger, pluss alle detaljene om øvinger og sånn. Og de mer geeky foresatte kan på sine dingser inkludere en kombinasjon av kalendere relevant for akkurat deres barn. (Ikke at jeg tror noen noensinne gjør det — bortsett fra meg, da, men jeg har laget oppsettet, så jeg teller ikke. Men kult likevel).

Hva trenger man?

I bunn og grunn har et musikkorps to typer informasjon

  • Om oss: Hvordan er det å begynne i korpset, stell av uniformen, kontaktinfo
  • Hva skjer-beskjeder: Planer for høsten, helgas seminar, spilling på Leangen i full uniform

Relativt statisk «om korpset»-informasjon passer fint inn i et enkelt menyoppsett. Hva-skjer passer fint som en strøm av blogginnlegg, det nyeste øverst. Ved større begivenheter kan det være greit å klebre fast et «samleinnlegg» med oversikt over den viktigste informasjonen og lenke til andre innlegg med mere detaljer.

Alt dette kan man løse ganske så elegant med et enkelt oppsett i wordpress. Og en haug med andre verktøy som jeg ikke har undersøkt. WP er gratis, en av verdens mest brukte publiseringsløsninger og gir OK resultat uten at man fikler seg i hjel. Det duger for meg.

Det er mange aktører som tilbyr administrasjonsløsninger for lag, foreninger og musikkorps, for eksempel Norges musikkorpsforbund (med korpsweb), styreweb og helt sikkert en haug med alle. Felles er at den publiseringsløsningen som tilbys stort sett er den samme arkaiske ASP-basert heimesnekra shaiten.

Det må da være en smal sak å tilby en publiseringsløsning a la hvor hvert lag får en WP-sandkasse hvor de kan gjøre grafiske og strukturelle tilpasninger (menyvalg, banner, farger etc), samt et regime for hvilke WP-tillegg som er godkjent. Den øvrige styrefunksjonaliteten — SMS og epost til medlemmer, referater, vedlegg, bilder, kalender, utstyrsregister, kontaktinfo — integreres med WP som publiseringskanal. Bonus er at publiseringsløsningen alltid holdes oppdatert med den siste utviklingen uten at det koster ei krone. Man må betale oppegående utviklere for å sy sammen dette oppsettet, og selvsagt med smart integrasjon mot øvrig databasestruktur (evt flytte all info for en forening over i samme database som WP-installasjonen), sikre at drift og backup funker og så drikke te hele veien til banken.

Joda, jeg er klar over at disse aktørene opererer med ekstremt gnitne kunder, og at overskuddet for å modernisere er syltynt. Men bli relevant eller dø: En løsning for elektronisk styrearbeid uten moderne, lettvint publiseringskanal er ingen levedyktig modell.