# Twtxt is an open, distributed microblogging platform that # uses human-readable text files, common transport protocols, # and free software. # # Learn more about twtxt at https://github.com/buckket/twtxt # # This is an automated Yarn.social feed running feeds v0.1.0@72e53a9 # Learn more about Yarn.social at https://yarn.social # # nick = dvikan-no # url = https://feeds.twtxt.net/dvikan-no/twtxt.txt # type = rss # source = https://dvikan.no/feed.xml # avatar = # description = # updated_at = 2022-06-20T19:59:46Z # 2022-04-25T22:00:00Z **Solving supply chain attacks**
Throwing out my thoughts on this subject.

A supply chain attack is when third-party software contains malware.

All the following operations can potentially compromise a machine:

\\* \`apt upgrade\`
\\* \`pip update\`
\\* \`npm update\`
\\* \`brew update\`
\\* \`cargo update\`
\\* \`yarn update\`
\\* \`gem update\`
\\* \`composer update\`

The following ideas depends on the threat model. There are no solutions, only tradeoffs.

\## Library splitting by complexity

Most projects do not need ... ⌘ [Read more](https://dvikan.no/solving-supply-chain-attacks) 2020-05-26T22:00:00Z **Building and deploying PHP applications - PART ONE**
\*PART ONE\*

Let's reinvent the wheel for educational purposes. It's useful to know how
e.g. Jenkins etc. works under the hood.

Our goal is to build and deploy a PHP application using simple tools.

Requirements:

\\* Create a build
\\* Deploy build
\\* Two environments: \`test\` and \`prod\`
\\* Automatic build and deploy once a day

\## The server

Let's start from a fresh ubuntu 18.04 digital ocean droplet. Its hostname is \`ubuntu\` and its
ip address ... ⌘ [Read more](https://dvikan.no/building-and-deploying-php-applications-1) 2020-04-23T22:00:00Z **Leie vs eie primærbolig**
\*UTKAST\*

Å eie sin primærbolig har mange fordeler:

\\* Du tvinges til langsiktig sparing
\\* Stabil geografisk forankring
\\* Oppussing som hobby

Men dette blogginnlegget handler ikke om \*det\*.

Dette blogginnlegget undersøker hva som er mest finansielt lønnsomt av å eie eller leie bolig
dersom vi justerer for lik månedlig utgift og plasserer differensen i et globalt indeksfond.
I tillegg antar vi at også egenkapital plasseres i et globalt indeksfond.

For å finne ut hvilket alternativ som er mest ⌘ [Read more](https://dvikan.no/bolig) 2019-12-04T23:00:00Z **Fra hullkort til Gigabytes**
\*Skrevet av Thorbjørn Moberg\*

Regnemaskiner hadde man hatt lenge, helt fra abakus/kulerammens tid. Allerede i 1650 bygget franske Blaise Pascal en mekanisk kalkulator som utførte addisjon og subtraksjon.


![En effektiv kuleramme](/blogimages/kuleramme.jpg)
\*En effektiv kuleramme\*

![](/blogimages/blaise.jpg)
\*Blaise kalkulator\*

I 1673 ble den forbedret av tyske von Leibniz til også å kunne utføre mult ⌘ [Read more](https://dvikan.no/hullkort) 2018-05-30T22:00:00Z **Legacy PHP modernisering - Erstatt new med Dependency Injection #4**
new operatoren brukes til å instansiere objekter. Dependency Injection (DI) betyr at man stapper inn avhengigheter i konstruktør, klasse eller felt.

Her er et eksempel som ikke bruker Dependency Injection:

 compileMarkdown($markdown);

 $output->write($html);
 }

 function compileMarkdown($markdown)
 {
 // Kompileringskode...
 return '

# hello world

';
 }
 }

 cla ⌘ [Read more](https://dvikan.no/legacy-php-modernisering-erstatt-new-med-dependency-injection) 2018-05-19T22:00:00Z **Legacy PHP modernisering - Erstatt global med Dependency Injection #3**
Det er veldig sannsynlig at en legacy-applikasjon har mange \`global\` variabler:

 false
 ];

 class Example
 {
 function giveExample()
 {
 global $config;

 if($config['displayErrors']) {
 // [...]
 }
 }
 }

Nøkkelordet \`global\` henter variabeler fra det globale skopet. En alternativ måte er å bruke \`$GLOBALS['config']\`.

Hvorfor er ⌘ [Read more](https://dvikan.no/legacy-php-modernisering-erstatt-global-med-dependency-injection) 2018-05-18T22:00:00Z **Legacy PHP modernisering - Konsolidering #2**
Nå som vi har en klasselaster kan vi fjerne alle include kall som kun laster
klasser og funksjoner inn i minnet.

\## Konsolider klasser:

1\. Finn en \`include()\` setning som laster inn en klassedefinisjon
2\. Flytt fila til \`src/\` slik at den plukkes opp av autolasteren
3\. Fjern alle linjer i kodebasen som inkluderer den klassedefinisjonen

For å finne alle linjer som inkluderer f.eks. \`User.php\` bruker vi regex:

 $ ack "^[ \\t]\*(include\|include\_once\|requ ... ⌘ [Read more](https://dvikan.no/legacy-php-modernisering-konsolidering) 2018-05-13T22:00:00Z **Legacy PHP modernisering - Autolasting #1**
En simpel definisjon på legacy applikasjon er en applikasjon du
har arvet. Den ble skrevet før du kom dit.

Andre betydninger:

\\* Dårlig organisert
\\* Vanskelig å forstå
\\* Vanskelig å vedlikeholde
\\* Vanskelig å endre
\\* Fravær av tester
\\* Utestbar

Legacy-applikasjoner er ofte include-basert. Det vil si at \`include()\` brukes for lasting av funksjoner/klasser og programflyt.

Andre kjennetegn:

\\* Globale variabler
\\* Script-filer plassert i rota av web serve ... ⌘ [Read more](https://dvikan.no/legacy-php-modernisering-autolasting) 2018-03-27T22:00:00Z **Human Action**
\*Dette er del 1 - Human Action\*

Human Action er ei bok skrevet av Ludwig von Mises i 1949. Boka er et forsvar av
laizzes-faire kapitalisme basert på praxeologi, det deduktive studiet av menneskelig handling.

\## FUNDAMENTALS OF HUMAN ACTION

\### Purposeful Action and Animal Reaction

\*\*Menneskelig handling\*\* er målrettet oppførsel.
Det særegne trekket ved handling er at en observatør tilregner mennesker \*\*mål\*\*.
Handling er forskjellig fra \*\*refleks\*\*. Hvis du legger hånda på ei varm kokeplate ⌘ [Read more](https://dvikan.no/human-action-part-one) 2017-12-03T23:00:00Z **Hvordan sjekke om Wordpress installasjon er hacket**
\## Undersøk nylig endrede filer

Se om det er noen mistenkelige endringer gjort de siste 10 dager

 find -mtime -10 -ls

Gitt at installasjonen ikke er oppdatert de siste 10 dager
er det mistenkelig med endrede filer. Sett bort ifra upload mappa.

\## Søk etter php-filer i uploads mappa

Fordi uploads mappa typisk er skrivbar havner malware ofte her.

 find wp-content/uploads/ -iname '\*.php'

\## Filintegritet

For å undersøke om noen av kjernefilene til wordpress-installasjonen e ... ⌘ [Read more](https://dvikan.no/wordpress-hacket) 2017-11-19T23:00:00Z **Finn kvadratrot med Newton's metode**
![](/blogimages/isac-newton.jpg)

Hvordan beregne kvadratrota av tall? For eksempel er \`7\`
kvadratrota til \`49\`. Det fins ingen åpenbar måte å regne seg
fram til et eksakt svar.

Men vi kan komme veldig nært ved å gjette oss framover.

Hvis vi skal finne kvadratrota til \`49\` kan vi f.eks. starte
med \`1\` og beregne \`1 \* 1\` og se hvor nærme vi treffer.

Etter hver gjetning forbedrer vi gjetningen med å plusse på
f.eks. \`0.1\` og beregne \`1.1 \* 1.1 = 1.21\` osv osv
helt til differansen me ... ⌘ [Read more](https://dvikan.no/newtons-metode) 2017-11-15T23:00:00Z **Meditations (Marcus Aurelius)**
![](/blogimages/meditations.jpg)

Jeg har lest \*Meditations\* av Marcus Aurelius, oversatt av Gregory Hays.

Boka er gjennomgående melankolsk. Mye fokus på livets korte varighet.
Og håndtering av ditt sinn, dine følelser og reaksjoner.

Det utvikles en holdning om å ikke la seg påvirke av ting utenfor
din kontroll. Uansett hva som skjer er det ditt valg hvordan du vil
reagere.

Det er mye repetisjon i boka, fordi det er egentlig ikke en bok. Meditations
var Aurelius sin private samling av tekster ⌘ [Read more](https://dvikan.no/meditations) 2017-11-14T23:00:00Z **Hvordan bygge docker container med nginx (archlinux)**
Installer og sett opp docker:

 pacman -Syu docker
 systemctl start docker
 usermod -aG docker dvikan
 newgrp docker # med min non-root bruker
 docker pull ubuntu:14.04
 vim Dockerfile

Min Dockerfile ser slik ut:

 FROM ubuntu:14.04
 RUN apt-get update
 RUN apt-get install -y nginx
 COPY docker/default /etc/nginx/sites-enabled/
 EXPOSE 80
 CMD ["nginx", "-g", "daemon off;"]

Kommandoen som er spesifisert sist med CMD må kjøre og ikke gå i bakgrunnen.
Ellers a ⌘ [Read more](https://dvikan.no/docker) 2017-10-23T22:00:00Z **Enkel nedtrekk meny i CSS**
Jeg har strevd litt med å lage en nedtrekkmeny i CSS. Forskjellige eksempler
på internett har overraskende lange CSS-regler.

Hvorfor ikke gjøre det simpelt.

\## Simpelt

HTML:




 Menu

- foo
- bar

CSS:

 .dropdown
 {
 display: inline-block;
 padding: 0;
 list-style: none;
 }

 .dropdown > li
 { ⌘ [Read more](https://dvikan.no/enkel-nedtrekk-meny-i-css) 2017-07-20T22:00:00Z **Ødeleggende effekter av priskontroll**
\*\*Priskontroll\*\* betyr at staten via forskjellige reguleringer
påvirker prisen på varer og tjenester. I fravær av priskontroll
vil prisene regulere seg selv til et balansepunkt der
\*\*kvantitet etterspurt\*\* er lik \*\*kvantitet tilbudt\*\*.

Priskontroll innføres typisk med en intensjon om å tilgjengeliggjøre
verdifulle varer til en lavere pris enn markedsprisen.

Det er ingenting mystisk med markedspriser. Priser på varer øker
dersom kvantitet etterspurt overstiger kvantitet tilbudt på
\*eksi ... ⌘ [Read more](https://dvikan.no/priskontroll) 2017-05-01T22:00:00Z **Nano database migration tool in PHP**
A migration tool applies changes to your database. I like to keep things simple:

 #!/usr/bin/env php
 load();
 $dotenv->required([
 'DSN',
 'DATABASE\_USERNAME',
 'DATABASE\_PASSWORD',
 'MIGRATIONS\_FOLDER',
 ]);

 $pdo = new PDO(
 getenv('DSN'),
 getenv('DATABASE\_USERNAME'),
 getenv('DATABASE\_PASSWORD') ⌘ [Read more](https://dvikan.no/nano-database-migration-tool-in-php) 2017-02-23T23:00:00Z **3 verktøy for tryggere ferdsel på web**
![Robota](/blogimages/robot.jpg)

\## uBlock origin

[uBlock origin](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/)
er ett nettlesertillegg som blokkerer annonser i din nettleser.

 Finally, an efficient blocker. Easy on CPU and memory.

\## StevenBlack/hosts

StevnBlack har samlet sammen en [svær liste addresser](https://github.com/StevenBlack/hosts)
som du kan stappe inn i din hosts fil.

Lista blokkerer dns-oppslag til fakenews + gambling + porn + social ... ⌘ [Read more](https://dvikan.no/fem-verktoy-for-tryggere-ferdsel-pa-web) 2016-12-26T23:00:00Z **Effektene av statlig pristak**
![Roofs](/blogimages/roofs.jpg)

Det er svært sannsynlig at statlig inngripen i markedsøkonomien vil føre
til utilsiktede konsekvenser der kuren er verre enn sykdommen.

\*\*Priskontroll\*\* er en statlig inngripen der det tvinges igjennom priser
som er forskjellig fra markedspriser.

\## Pristak

Et pristak er et pristak staten setter for en vare eller tjeneste.
En selger som prissetter over taket blir en kriminell.

Intensjonen er å holde viktige varer tilgjengelig for fattige.
For eksempel ... ⌘ [Read more](https://dvikan.no/effektene-av-statlig-pristak) 2016-11-27T23:00:00Z **Diamant paradokset**
![Diamond](/blogimages/diamond.jpg)

Hvorfor verdsetter mennesker diamanter høyere enn brød
når brød åpenbart er mer nyttig enn diamanter?

Svaret er at personer verdsetter ikke abstrakte klasser av varer
men heller en konkret enhet av varen.

\## Loven om marginal nytte

Varer verdsettes i forhold til dens evne til å realisere et mål.
Hver enkelt enhet av en vare verdsettes separat. Etterhvert
som dine mål nås vil du verdsette nye enheter av en vare mindre.

Marginalnytten er den verdien en ytte ⌘ [Read more](https://dvikan.no/diamant-paradokset) 2016-11-26T23:00:00Z **Problemer med sosialisme**
![Toilet](/blogimages/toilet.jpg)

\*\*Sosialisme\*\* er en ren kommandoøkonomi som innebærer planøkonomi.
I sosialismen er alle varer eid av staten og all
produksjon bestemmes og planlegges av statlige planleggere.

Forskjellige sosialister har teoretisert omkring nøyaktig hvordan
beslutninger skal fattes om hva som skal bli produsert.
Ved å spørre folk hva de ønsker seg og hvilke varer og tjenester
de foretrekker kan vi få en idé om hva som skal produseres.

Til syvende og sist er det statlige pla ⌘ [Read more](https://dvikan.no/problemer-med-sosialisme) 2016-11-25T23:00:00Z **Grunnkurs i økonomi**
![Bull and bear market](/blogimages/bullbear.jpg)

Økonomi er studiet av byttehandel. Den røde tråden er \*\*knapphet\*\*.
Knapphet betyr at det fins en endelig mengde ressurser og at personer
har uendelige ønsker.

Den universelle sannheten at ressurser er endelige reiser
et problem vi kaller det \*\*økonomiske problem\*\*. Hvordan skal vi som
samfunn beslutte hvilke produkter og tjenester vi skal produsere
med de begrensede ressursene vi har?

Økonomiens lover skal anvendes på meningsfull oppførsel. ⌘ [Read more](https://dvikan.no/grunnkurs-i-okonomi) 2016-10-16T22:00:00Z **Økonomi på 1-2-3**
![Houses at night](/blogimages/houses.jpg)

Økonomistudiet kan reduseres til én læresetning: analyser umiddelbare
og langsiktige konsekvenser, ikke kun for én gruppe men for alle
grupper.

\## Det knuste vindu

La oss illustrere læresetningen med et enkelt eksempel.

En pøbel kaster en murstein og knuser et vindu hos en baker.
Dette vil skape aktivitet hos en glassmester.
Hvor mye koster det å erstatte et vindu? 5000 NOK?
Hvis ingen vinduer blir knust hva vil skje med glassmestere?
Det koster 500 ⌘ [Read more](https://dvikan.no/okonomi-pa-1-2-3) 2016-10-03T22:00:00Z **Slik sikrer du din Linux-server**
![Penguin](/blogimages/penguin.png)

Du vil unngå at din Linux-server blir brutt inn i.

For å redusere risikoen for innbrudd er det
en rekke grep du kan ta.

Du må gjøre en selvstendig vurdering av hvor
mye du vil redusere risikoen. Risikoredusering har en kostnad.

Jeg tar utgangspunktet i en ny Debian 8 installasjon på
et privat nettverk.

\## SSH

SSH er en protokoll for administrering av maskiner over nettverk.
Åpne konfigurasjonsfila \`/etc/ssh/sshd\_config\` og tillat kun nøkkel- ... ⌘ [Read more](https://dvikan.no/slik-sikrer-du-din-linux-server) 2016-09-04T22:00:00Z **Nettbank sikkerhetstest 2016 (HSTS)**
![Rusty padlock](/blogimages/padlock.jpg)

Formålet med denne testen er å undersøke hvilke nettbanker som
benytter seg av sikkerhetsmekanismen
[HTTP Strict Transport Security](https://en.wikipedia.org/wiki/HTTP\_Strict\_Transport\_Security) (HSTS).

HSTS er en mekanisme der webservere kan instruere nettlesere om at websidene
kun skal aksesseres over TLS.

Dette for å forhindre SSL-stripping angrep, der broen fra ikke-TLS til TLS angripes.

Datagrunnlaget av banker kommer fra Wikip ... ⌘ [Read more](https://dvikan.no/nettbank-sikkerhetstest-2016-HSTS) 2016-09-03T22:00:00Z **En verden med sterkt personvern**
![Binary woman](/blogimages/binary.jpg)

Forbedret teknologi for overvåking og dataprosessering truer vår
mulighet til å regulere andre folk sin tilgang på informasjon om oss.

Men en tredje teknologi jobber i motsatt retning: \*\*asymmetrisk kryptografi\*\*.

Det klassiske problemet er: \*hvordan kommunisere med en person uten at
andre får tak i innholdet?\*

\*\*Les også:\*\*
[Piratkopiering vil snart bli verdiløst](/piratkopiering).

Mye av vår kommunikasjonen skjer nå over kobberled ... ⌘ [Read more](https://dvikan.no/en-verden-med-sterkt-personvern) 2016-08-30T22:00:00Z **Entreprenører er våre helter**
![Jumping man](/blogimages/jump.jpg)

\*\*Entreprenørskap\*\* kan defineres som handlinger basert på observerte muligheter
i markedet, i et forsøk på å oppnå \*\*profitt\*\*.
Disse handlingene inkluderer å være observant på profittmuligheter, reorganisere sine finanser,
vedlikeholde ressurser og å fullføre prosjekter til sin slutt.

\*\*Les også:\*\*
[Entreprenørskap og konkurranse](/entreprenorskap-og-konkurranse).

Entreprenører er heroiske karakterer i en økonomi fordi de tar \*\*risikoen\ ... ⌘ [Read more](https://dvikan.no/entreprenorer-er-vare-helter) 2016-08-09T22:00:00Z **Bitcoin er en penge du bør investere i**
![Bitcoin](/blogimages/bitcoin.jpg)

Du bør investere i \*\*bitcoin\*\* (BTC) fordi jeg er ganske sikker på at prisen på BTC vil gå
opp over tid.

Det er forskjell på \*\*investering\*\* og \*\*spekulering\*\*. Jeg har nylig skrevet
om hvorfor
[aksjespekulering har en nyttig sosial funksjon](/aksjespekulering-har-en-nyttig-sosial-funksjon).

Spekulering er kjøp/salg av en vare du mistenker snart vil oppleve økning eller fall i pris.
Investering er kjøp av varer som du har ... ⌘ [Read more](https://dvikan.no/bitcoin-er-en-penge-du-bor-investere-i) 2016-07-29T22:00:00Z **Aksjespekulering har en nyttig sosial funksjon**
![Stock graph](/blogimages/stock-graph.jpg)

En \*\*aksjebørs\*\* er en markedsplass hvor det handles aksjer. \*\*Aksjer\*\*
er fraksjoner av eierskap til en bedrift.
Hvis du eier 50 aksjer av Nintendo og det fins totalt 1000 aksjer, da
eier du 5% av Nintendo. Aksjeeiere har krav på eiendeler og inntekter
til bedriften.

\*\*Les også:\*\*
[Profitt er positivt for en markedsøkonomi](/profitt-er-bra)

Kjøp og salg av aksjer skjer på en børs som for eksempel
N ... ⌘ [Read more](https://dvikan.no/aksjespekulering-har-en-nyttig-sosial-funksjon) 2016-05-15T22:00:00Z **Profitt er positivt for en markedsøkonomi**
![Skyline](./blogimages/skyline.jpg)

\*\*Pengeprofitt\*\* er positivt for en \*\*markedsøkonomi\*\*. Fordi det motsatte
av pengeprofitt er \*\*pengetap\*\*. De som er for pengetap mangler
en grunnleggende forståelse av hvordan markeder fungerer.

Sannheten er at både profitt og tap er positivt.

\*\*Les også:\*\*
[Tilbud og etterspørsel](/tilbud-og-ettersporsel)

Mange naive observatører av markedsøkonomien avfeier \*\*bunnlinja\*\*
som en tilfeldig sosial konstruksjon. De kan si ting som:

\ ... ⌘ [Read more](https://dvikan.no/profitt-er-bra) 2016-05-08T22:00:00Z **Piratkopiering vil snart bli verdiløst**
![ai](/blogimages/ai.jpg)

Det fins minst tre måter en forfatter av \*\*intellektuell eiendom\*\* (IP)
kan få betalt:

\\* Lovlig kontroll over tilgang
\\* Teknologisk kontroll over tilgang
\\* Ukontrollert tilgang med begrensninger

\*\*Les også:\*\*
[Tilbud og etterspørsel](/tilbud-og-ettersporsel)

Kopirett lover er et eksempel av det første. \*\*Betalingsmur\*\* er et eksempel på
det andre. Annonseinntekter fra radio og websider er et eksempel på det tredje.

IP i digital form er enkelt å kop ... ⌘ [Read more](https://dvikan.no/piratkopiering) 2016-04-09T22:00:00Z **Tilbud og etterspørsel**
![A dollar bill.](/blogimages/buysell.jpg)

\*\*Tilbud\*\* og \*\*etterspørsel\*\* er konseptuelle verktøy for å forstå verden. De er ikke
en hypotese bevist med empirisk undersøkelse. Det vil aldri komme beviser
som demonstrerer at tilbud og etterspørsel er på noen måte usant.

\*\*Les også:\*\*
[Entreprenørskap og konkurranse](/entreprenorskap-og-konkurranse)

Noe som kan skje i framtiden er at økonomer finner bedre \*\*verktøy\*\* til å
forklare priser.

\## Etterspørsel

Etterspørsel er \*\*relasjone ... ⌘ [Read more](https://dvikan.no/tilbud-og-ettersporsel) 2016-04-09T22:00:00Z **Entreprenørskap og konkurranse**
![Laptop](/blogimages/laptop.jpg)

\*\*Entreprenøren\*\* er drivkraften i en markedsøkonomi. Det er entreprenøren
som vurderer om det er noe som mangler i markedet og bestemmer
seg for å starte en bedrift eller utvikle et nytt produkt.

Entreprenøren bruker sine egne eller lånte penger fra \*\*kapitalister\*\*
til å ansette arbeidere, leie kontor, kjøpe strøm og varme, kjøpe utstyr og råvarer.

\*\*Les også:\*\*
[Arbeidsinndeling og spesialisering](/arbeidsinndeling-og-spesialisering)

En ... ⌘ [Read more](https://dvikan.no/entreprenorskap-og-konkurranse) 2016-04-08T22:00:00Z **Hvorfor handler folk med hverandre?**
![Trade](/blogimages/trade.jpg)

To folk som frivillig handler med hverandre forventer å \*\*tjene\*\*
på handelen. Hvordan er dette mulig? Noen kritikere av
kapitalisme hevder at hvis en person tjener på en handel må noen
andre \*\*tape\*\* på det.

\*\*Men dette er feil\*\*. Husk at \*\*preferanser er subjektive\*\*.

Tina kommer på skolen med en appelsin i matpakka. Og
Hanne kommer på skolen med et eple. Det ville ikke vært
merkelig om Tina fortrekker et eple over en appelsin
 ... ⌘ [Read more](https://dvikan.no/hvorfor-handler-folk-med-hverandre) 2016-04-08T22:00:00Z **Arbeidsinndeling og spesialisering**
![Workers on poles](/blogimages/workers.jpg)

En pengeøkonomi muliggjør \*\*arbeidsinndeling\*\*. Som betyr at folk spesialiserer
seg i produksjon av varer.

\*\*Les også:\*\* [Bitcoin er penger](/bitcoin-er-penger)

I fravær av penger blir folk i stor grad selvforsynt og må produsere
alt de trenger selv. Da må du gro din egen mat, sy dine egne klær,
bygge dine egne møbler og utføre boring av dine egne tenner.

En moderne sivilisasjon vil kollapse om penger skulle forsvinne.
Fordi ... ⌘ [Read more](https://dvikan.no/arbeidsinndeling-og-spesialisering) 2016-04-02T22:00:00Z **Kapitalisme forklart på norsk**
\*\*Kapitalisme\*\* er et økonomisk system hvor privat eiendomsrett
er implementert i lovene.

Et samfunn krever institusjoner for å etablere regler og prosedyrer
sånn at folk kan leve i fred med hverandre og unngå konflikt over
knappe ressurser.

To folk kan ikke bruke en traktor samtidig.

På den ene ekstreme siden har vi \*\*sosialisme\*\* der
produksjonsvarer eies av staten. Eierskap tildeles via byråkrater
og politikere. Man yter etter evne og får etter behov.

På den andre ekstreme siden har vi \* ⌘ [Read more](https://dvikan.no/kapitalisme) 2016-03-25T23:00:00Z **Økonomi forklart uten bruk av vanskelig ord**
![En øde øy](/blogimages/island.jpg)

Før vi kan analysere en markedsøkonomi med milliarder av mennesker, bør vi starte
med \_én\_ person. Og forstå hva som får \_han\_ til å tikke.

\*\*Les også:\*\* [5 aksiomer om menneskelig handling](/aksiomer-for-menneskelig-handling)

\_Robinson Crusoe\_ er en kjent novelle av Daniel Defoe. Den omhandler en person
som er strandet på en øde øy. Moderne lesere identifiserer kanskje mer
med Tom Hank's karakter i \_Cast Away (2 ... ⌘ [Read more](https://dvikan.no/okonomi-forklart-uten-bruk-av-vanskelig-ord) 2016-02-15T23:00:00Z **5 aksiomer om menneskelig handling**
![Spock fra star trek](/blogimages/spock.jpg)

Når vi prøver å forstå verden, skiller vi mellom meningsløs og meningsfull oppførsel.

Ved beskrivelsen av banen til en golfball bruker vi masse, fart og luftmotstand. Vi sier ikke
at golfballen \_ønsket å lande der den landet\_.

Betrakt banen til et fly.
Her har vi ingen problemer med å si at \_piloten ønsket å unngå turbulens\_.

Når vi observerer hendelser kan vi forklare dem med naturlige hendelser. Eller med
\*\*intensjonene ti ... ⌘ [Read more](https://dvikan.no/5-aksiomer-for-menneskelig-handling) 2016-01-23T23:00:00Z **Du vet ikke hvem som oppfant penger**
![Bunke med euro](/blogimages/euro.jpg)

Ingen person oppfant penger. Penger er en teknologi som har oppstått \*\*spontant\*\* på markedet.
I likhet med språk.

\*\*Les også:\*\* [Bitcoin er penger](/bitcoin-er-penger)

Penger er en merkelig ting. Penger er overalt. Du går i butikken og møter fremmede
mennesker som gir deg mat. Penger blir utvekslet. Hver dag går vi rundt og bytter penger mot varer og tjenester.
Og så går du på jobb, i bytte mot lønn. \*\*Penger er den ene tinge ... ⌘ [Read more](https://dvikan.no/du-vet-ikke-hvem-som-oppfant-penger) 2016-01-21T23:00:00Z **Bitcoin er penger**
Penger er et generelt akseptert medium for byttehandel.
Et medium er generelt akseptert hvis majoriteten aksepterer det i handel.

Hva som er penger er subjektivt.

Samfunnets teknologiutvikling øker drastisk.
For å få perspektiv på ting må vi ofte tilsidesette
den komplekse verden, og se ting isolert. For deretter
å spore dens virkninger i den virkelige verden. Dette er
spesielt sant når det gjelder å forstå vår økonomi.

Dette tankeverktøyet var hensikten med \*Crusoe Economics\*.

![Robinson Cr ⌘ [Read more](https://dvikan.no/bitcoin-er-penger) 2016-01-19T23:00:00Z **Gå ikke glipp av gjensidig gevinst**
![Bunt med penger](/blogimages/coins.jpg)

En gang for lenge siden, eksisterte ikke penger.

I en markedsøkonomi uten penger skjer direkte byttehandel (barter).
De byttet vare mot vare. En tømrer vil kjøpe melk. Men melkeselgeren
ønsker ikke tømmer akkurat nå. Handel uteblir.

I en direkte-bytte økonomi, kreves \*\*dobbelt sammentreff av behov\*\* (double coincidence of wants)
før handel inntreffer.

En tømrer må finne en melkeselger. Melkeselgeren må samtidig ønske seg tømrer.

 ... ⌘ [Read more](https://dvikan.no/gaa-ikke-glipp-av-gjensidig-gevinst) 2014-12-31T23:00:00Z **Bøker**
\## Økonomi

[Lessons for the Young Economist](https://mises.org/library/lessons-young-economist)
(introduksjon til økonomi for unge voksne)

[How an Economy Grows and Why It Crashes](https://www.amazon.com/How-Economy-Grows-Why-Crashes/dp/047052670X) (kun de første 100 sider)

[Economics in One Lesson](https://mises.org/library/economics-one-lesson) (elementær økonomisk tankegang) ⌘ [Read more](https://dvikan.no/books) 2014-11-27T23:00:00Z **You should hash passwords in browser before transit**
I suggest that we should start hashing users' passwords in the browser
before they are shipped off to the server. The reason is to prevent
leakage (e.g. in logs) and because users reuse passwords.

\## Why hash in the first place?

![](/blogimages/whyunohash.jpg)

We do it to reduce the chance
that passwords get stolen at rest. The classic example is a database leak.
Other possibilities are unfaithful sysadmin or anyone else who might
have access to the hashes.
 ... ⌘ [Read more](https://dvikan.no/hashing-password-in-browser-is-smart) 2014-08-13T22:00:00Z **Movies I liked**
![](/blogimages/logansrun1.jpg)

\\* [10 Cloverfield Lane](https://www.imdb.com/title/tt1179933/) (2016)
\\* [Infinity Chamber](https://www.imdb.com/title/tt3839880/) (2016)
\\* [Europa Report](https://www.imdb.com/title/tt2051879) (2013)
\\* [Coherence](https://www.imdb.com/title/tt2866360) (2013)
\\* [Logan's Run](https://www.imdb.com/title/tt0074812) (1976)
\\* [Contact](https://www.imdb.com/title/tt0118884) (1997)
\\* [Oblivion](https://www.imdb.com/title/tt1483013) (2013) ⌘ [Read more](https://dvikan.no/my-favorite-movies) 2014-06-10T22:00:00Z **The smallest archlinux install guide (with full disk encryption)**
[Download the archlinux iso](https://www.archlinux.org/download/)

 $ dd if=/dev/zero of=/dev/sdb bs=4M
 $ dd bs=4M if=/path/to/archlinux.iso of=/dev/sdb

 $ cfdisk /dev/sda
 $ mkfs.ext4 /dev/sda1
 $ cryptsetup --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random --verify-passphrase luksFormat /dev/sda2
 $ cryptsetup luksOpen /dev/sda2 root
 $ mkfs.ext4 /dev/mapper/root
 $ mount /dev/mapper/root /mnt
 $ mkdir /mnt/boot ... ⌘ [Read more](https://dvikan.no/the-smallest-archlinux-install-guide) 2014-05-20T22:00:00Z **3 Problems with SSL/TLS PKI**
\## Too many certificate authorities

There are 650 organizations capable of producing signatures accepted by
your popular browsers.

\## Revocation is broken

CRL and OCSP are supposed to provide revocation services. If the OCSP
lookup times out, then browsers carry on anyway.

\## The unsafe bridge from HTTP to HTTPS

At the moment in time when a browser is redirected from non-TLS to TLS
there is a window of attack. Take a look at this response:

 curl -I http://dvikan.no/
 HTTP/1.1 301 M ⌘ [Read more](https://dvikan.no/problems-with-TLS) 2014-05-17T22:00:00Z **Birthday attacks**
A birthday attack tries to find collisions on cryptographic hash functions.
crc32 is not cryptographic, but it is a hash function.

The following code finds collisions easily: ⌘ [Read more](https://dvikan.no/birthday-attacks) 2014-05-10T22:00:00Z **Useful unix tools herein**
\## Toggle keyboard layout

 setxkbmap -query \| grep -q "layout:\\s\\+us" && setxkbmap no \|\| setxkbmap us

\## Count lines of code in .php files (using awk!)

 find src -name '\*.php' -exec wc -l {} \\; \| awk '{sum += $1} END {print sum}'

\## Useful svn stuff

 // Ignore multiple files
 svn propedit svn:ignore .

\## Generate tags for php code

 ctags -f php.tags --languages=PHP -R app

\## Flush ARP table

 ip -s -s neigh flush all

\## Add user to group

 usermod -a -G sudo jon

## ⌘ [Read more](https://dvikan.no/useful-unix-tools) 2014-04-18T22:00:00Z **Paranoid security lockdown of laptop**
What I want to achieve is:

\\* Minimize damage done if laptop is stolen
\\* Minimize damage done if laptop is tampered with while away from it
\\* Minimize chance of being compromised while system is running
\\* Maximize chance of detection if system is compromised
\\* Maximize anonymity on the internet

Security is a tradeoff. Having a more secure system has costs.
This text is for those willing to incur some costs in order to be more secure.

\## SSH server

Only allow your ... ⌘ [Read more](https://dvikan.no/paranoid-security-lockdown-of-laptop) 2014-02-04T23:00:00Z **Old ntnu exams**
I compiled a list of
[old ntnu exams.](/gamle-ntnu-eksamener)
Useful for exam preparation.

Also useful is a [list of kompendier](/ntnu-studentserver/kompendier) ⌘ [Read more](https://dvikan.no/old-ntnu-exams) 2013-11-23T23:00:00Z **Deploy SSL or die**
\*Update: [Let's Encrypt](https://letsencrypt.org/) offers free of charge TLS certificates.\*

Few excuses remain not to deploy SSL on your HTTP server. Especially if
your server receives sensitive data over the internet.

For a few dollars a year you can tell your customers you care about
security. Tell them to look for the padlock.

I acquired an SSL certificate from [StartSSL](https://www.startssl.com/) and
installed it on this blog. StartSSL is the only trusted CA which offers free SSL
certif ⌘ [Read more](https://dvikan.no/deploy-ssl-all-the-way-or-fail) 2013-09-26T22:00:00Z **The truth on HTTP GET vs HTTP POST**
Which one should be used for web application forms? As a rule, the HTTP
protocol defines POST for things that may have side effects, and GET
is for read only viewing.

\## tls and sniffing ninjas

If an eavesdropper is able to sniff your traffic it does not make any
difference if you use GET or POST.
The POST and GET parameters are both in plaintext inside the HTTP message.

\## Browser history

GET parameters are cached in the browser history.

\## Server logging

A web server ty ... ⌘ [Read more](https://dvikan.no/the-truth-on-http-get-vs-http-post) 2013-08-28T22:00:00Z **Hvordan fungerer NTNU adgangskortene**
![ntnu kortet](/blogimages/ntnu-card-front.png)
![ntnu kortet](/blogimages/ntnu-card-back.png)

\## Kortnummer og strekkode

Nummeret \`460868\` er kortnummeret og er knyttet til min
ntnu-bruker på et vis. Mitt kort er fra høsten 2009.
Jeg tipper at dette er et tall som øker med én, for hvert nye kort
som produseres. Strekkoden inneholder det samme nummeret.

\## Tall nede til venstre på bakside

Tallet nede til venstre er \`14818476\`. Tallet befinner seg både i
magnetstripe ... ⌘ [Read more](https://dvikan.no/hvordan-fungerer-ntnu-adgangskortene) 2013-06-27T22:00:00Z **Let's go for domain treasure hunting!**
\> Treasure (from Greek θησαυρός – thēsauros, meaning “treasure store”,[2]
\> romanized as thesaurus) is a concentration of riches, often one which is
\> considered lost or forgotten until being rediscovered.

The country Iceland has the top level domain \`.is\`. I want to find cool
domain names such that the second level domain and the top level domain \`.is\`
forms a word. An example is \`meningit.is\`. So I went and grabbed a Norwegian
wordlist:

 $ wget https://scandinavia ... ⌘ [Read more](https://dvikan.no/lets-go-for-domain-treasure-hunting) 2013-01-21T23:00:00Z **Glemt truecrypt passord**
Jeg glemte truecrypt passordet mitt. Heldigvis har jeg ingenting viktig kryptert.
La oss sjekke ut \`truecrack\` som bruteforcer truecrypt passord.

Jeg husker at den første delen av passordet var \`1q2w3e4r\` og at den neste
delen var et ord som fins i den norske ordboka.

Først laster jeg ned en norsk ordliste.

Deretter genererer jeg en liste som inneholder alle mulige passord på
denne formen;

 $ for pw in \`cat norwegian.txt \`;do echo "1q2w3e4r$pw"; done > norwegian.tc.txt

Deretter install ⌘ [Read more](https://dvikan.no/glemt-truecrypt-passord) 2012-11-25T23:00:00Z **How to change time of last status change of Linux file**
Why do I want to do this? Because I tried changing it out of curiosity, and
I could not do it, so my brain tricked me into spending some time on it.

A file has three timestamps associated with it:

 time\_t st\_atime; /\* time of last access \*/
 time\_t st\_mtime; /\* time of last modification \*/
 time\_t st\_ctime; /\* time of last status change \*/

The field \`st\_atime\` is changed by file accesses, for example, by \`execve(2)\`,
\`mk ... ⌘ [Read more](https://dvikan.no/how-to-change-time-of-last-status-change-of-linux-file) 2012-02-23T23:00:00Z **Remote command execution using only wget**
I have discovered a method to get remote command execution on your machine.
To demonstrate, I first need you to fetch this google url using \`wget\`:

 wget -q www.google.com/support?tid=;id;#g54g23df233d

Do you see what I did there? If you didn't catch it, there is an \`id\` inside
the url.

Be careful when pasing stuff into your shell. ⌘ [Read more](https://dvikan.no/remote-command-execution-using-only-wget) 2011-10-10T22:00:00Z **HTTP authentication demystified**
HTTP provides a way for clients to authenticate themselves.
Here is the [rfc](http://tools.ietf.org/html/rfc2617) for the advanced
readers.

\> Like Basic, Digest access authentication verifies that both parties
\> to a communication know a shared secret (a password); unlike Basic,
\> this verification can be done without sending the password in the
\> clear, which is Basic's biggest weakness.

\## Basic Authentication Scheme

If the user agent wishes to send the userid " ... ⌘ [Read more](https://dvikan.no/how-to-crack-http-digest-access-authentication) 2011-05-01T22:00:00Z **Do you protect your logout link from CSRF?**
The logout link is vulnerable to CSRF just like any other action that has an
effect. It's not very dangerous to be affected by a logout attack, but it
could be annoying. Especially if a users on a forum can put HTTP links as
their profile picture etc. Then every user would be logged out each time time
they viewed that profile picture.

 ![](http://victim/logout.php) ⌘ [Read more](https://dvikan.no/do-you-protect-your-logout-link-from-csrf) 2011-04-29T22:00:00Z **XSS steals data from Firefox's password manager**
When you enter data in a login form, Firefox ask if I want to save that login
for future logins. I use this feature all the time and have about 20-30 logins
saved in Firefox. Whenever I visit a site, and Firefox has login credentials
associated with that site, Firefox automatically fills in values in to the DOM.
This way you can simply hit submit.

1\. Find xss bug.

2\. Load the login form into the DOM

3\. Use javascript to access the data

Usually, user ... ⌘ [Read more](https://dvikan.no/xss-steals-data-from-firefoxs-password-manager) 2011-03-23T23:00:00Z **Email header injections explained**
The principle is simple. When user input is used in different contexts, they
mean different things. Html code means nothing in a pure ascii file.
Sql commands mean nothing in a C compiler. And javascript means nothing in
photshop. But if the right kind of meta characters are used in a
spesific context, they can be highly dangerous.

One example of this is sql injections. Characters like ' and -- suddenly have
a big impact on the query.

The metacharacter in email header injections i ... ⌘ [Read more](https://dvikan.no/email-header-injections-explained) 2011-01-26T23:00:00Z **The HTTP referrer cannot be trusted**
The HTTP referrer can't be trusted. The same goes for all the other
HTTP headers. Why can't you trust them? Because they are user inputs.

If you want to spoof your own browsers HTTP header you can simply edit them
on the fly with a plugin or extension. Or you could create an HTTP connection
using a programming language.

What this means is that an HTTP connection's referrer could contain html,
javascript, php, java, xml and so on. So if you are doing referrer logging,
remember ... ⌘ [Read more](https://dvikan.no/the-http-referrer-cannot-be-trusted) 2011-01-18T23:00:00Z **Why won't CSRF flaws go away?**
csrf is short for cross site request forgery, and is an attack, where your
browser is forced to do cross site requests. This means that if you are
logged in to site A, code from other domains can make changes on your behalf
to site A. Say for example that

 index.php?action=delete&id=34

deletes a picture from your photo album. Then a simple;

 ![](http://A/index.php?action=delete&id=34)

would delete the picture with id 34. Your browser sends along
session identifiers.

I s ⌘ [Read more](https://dvikan.no/why-wont-csrf-flaws-go-away)