Vi selger vår leilighet   June 2nd, 2012

Vår 4-roms leilighet i Bjerregaardsgate på St. Hanshaugen i Oslo er nå lagt ut for salg.

Ta en titt her: Leilighet på St. Hanshaugen

Jeg hadde en lyntale på Smidig 2011 hvor jeg snakket om overvåkning/varsling av systemene som vi lager.

Se videoen her:

Collaborative Filtering in Map/Reduce   September 16th, 2010

I presented Collaborative Filtering in Map/Reduce at JavaZone 2010. Here’s the slidedeck:

Min shopping av musikk   April 20th, 2009

Jeg har hatt cd-spiller siden konfirmasjonen, dvs siden 1992. Når jeg titter bort på cd-hylla mi nå så står det ca 100 cd-er der. De fleste er riktignok gaver, men noen av dem har jeg også kjøpt selv. Noen har også blitt kastet, lånt bort eller mistet under disse årene, så jeg kan tenke meg at jeg totalt har hatt 150 cd-er i løpet av mitt liv.

150 cd / 17 år = 9 cd-er i året. 9  x 150 kr = 1350 kr på musikk årlig.

I fjor så lanserte noen smarte svensker Spotify. Der har jeg en premium avtale som koster 99 kr i måneden. Alene så koster denne avtalen meg 1188 kr pr år. Hvis jeg i tillegg kjøper 2 cd-er så vil jeg overstige mitt gjennomsnitlige forbruk på musikk. Noe jeg forøvrig allerede har gjort da det viste seg at iTunes(post DRM) hadde et par plater som ennå ikke lå på Spotify.

I tillegg til disse cd-ene har jeg lastet ned MYE musikk ulovlig. Dette er musikk som har vært vanskelig å få tak i, musikk som jeg allerede hadde på cd eller musikk som jeg ville ha til en fest eller lignende. Med andre ord, dette er ikke penger som platebransjen har tapt, det er penger de aldri ville ha fått.

Med andre ord, det ser ut som mitt økonomiske forbruk på musikk er på vei oppover og årsaken til det er at platebransjen ser ut til å komme med gode tjenester som jeg er villig til å betale for. Hvis dette fortsetter så kan dette bli dyrt for meg :-)

Forresten: Musikk til fest. Her har platebransjen en mulighet. Kan jeg være så snill til å få lov å leie musikk en helg? Jeg betaler gjerne en krone pr sang som spilles hvis jeg får tilgang til musikken enkelt og lovlig i høy kvalitet.

It’s pi-day pips   March 14th, 2009

For all you circle lovers out there, today is the day to celebrate! Pi-day is coming to town! :-)

The first reference to pi came in 2000 b.f.c. from the Babylons, their value was 3.125. The value of pi has become more and more accurate over the years, and many major cultures have been involved. The latest big breakthrough came from the distributed computing project PiHex who computed the 1,000,000,000,000,000:th bit of pi, which turned out to be 0.



For more info, check out piday.org and the wikipedia article on pi

The power of remix   March 11th, 2009

ThruYou is a great new project from Kutimann. What he has done is take small parts of existing YouTube videos and created new songs and videos. The end result is freakin great:

Check out the rest of the videos over at ThruYou

This raises a whole lot of questions about copyright, but that’s another blogpost :-)

Kommentarer til SVs lisensforslag   February 25th, 2009

Snorre Valen inviterer til dugnad rundt SV sitt forslag om å tillate all deling av musikk mot en statlig lisensordning. Her er mitt svar:

Det er et stort spørsmål du stiller her, og jeg tror ikke det finnes noen enkel løsning på dette. Jeg har likevel noen kommentarer.

1. Fildelingen er internasjonal
Fildeling foregår internasjonalt og den foregår gjennom tusenvis av kanaler. Hvis jeg sender en mp3 fil til en kompis gjennom msn, så er det fildeling. Hvis jeg laster ned en fil fra en server i Ungarn, så er det fildeling. Hvis jeg tar med meg en harddisk full av mp3-filer til en kompis, så er det fildeling. Den norske stat har ikke mulighet til å kontrollere alle disse måtene å dele filer på, det er heller ikke noe det norske folk ønsker. Da vil vi få et overvåkningssamfunn som ville overskygge fantasien fra filmen 1984, og det vil vi ikke.

2. Filene som lastes ned er binære
Dersom man for diskusjonens skyld sier at man faktisk kan overvåke alle filer norske borgere laster ned, så har man likevel problemer. Den eneste måten man kan være sikker på hva som lastes ned er å åpne filene. Det finnes beskrivelser i form av tekstlig innhold, men det kan man ikke stole på. At f.eks. torrent filen heter Bjørn Eidsvågs siste album.torrent, eller at det ligger metadata i filene som sier det samme, er ikke bevis godt nok. Når det er snakk om penger som skal fordeles så må man ha ordentlige bevis. Staten må få tak i et eksemplar av hver fil, analysere den (evt lytte til den), og så registrere det.

3. Lisensproblematikk
Opphavsrettslig materiale har forskjellige lisenser. Noe blir solgt med standard copyright, mens annet blir distribuert under forskjellige varianter av creative commons. Hvordan skal dette håndteres?

4. Konklusjon

Staten har ingen mulighet til å kontrollere hvor mye som blir delt. Dette betyr at man ikke kan fordele pengene rettferdig. Det betyr igjen at dette er ikke noe rettighetsinnehaverene vil godta.

Jeg tror at dette problemet er noe staten ikke kan løse. Man kan ikke gjøre det ulovlig, folk vil likevel laste ned. Man kan ikke legge på lisens, det er ikke mulig å fordele pengene rettferdig.

Den eneste løsningen, slik jeg ser det, er at bransjen ordner opp selv. Spotify og iTunes har bevist at det er kjøpevilje i folket så lenge man blir tilbydt en løsning som er god og som er fornuftig priset.

Tallinn architecture   January 21st, 2009



Tallinn architecture, originally uploaded by olemartin.

This is a picture I shot in Tallinn a couple of weeks ago. I love the color and shape of it :-)

Do you want a Spotify invite?   January 14th, 2009

I have five Spotify invites laying around. If you want one, leave a comment under this post and I’ll mail you one.

Remember to leave a correct email address.

You have to use the invite within a couple of hours, or it will be revoked.

HBase tutorial for beginners   December 22nd, 2008

This post is old. Most of the code does not compile at the moment!

First of all, HBase is a column oriented database. However, you have to forget everything you have learned about tables, columns and rows in the RDBMS world. The data in an HBase instance is layed out more like a hashtable, and the data is immutable. Whenever you update the data, you are actually just creating a new version of it.

This tutorial will be very hands-on, with not too much explanation. There are a number of articles where the column oriented databases are described in details. Check out my delicious tag for some good ones, for instance jimbojw.com’s excellent introduction

I used Apple OSX 10.5.6 in this tutorial, I am not sure if this will work on windows and linux.

The goal for this tutorial is to create a model for a blog with integration from a java program.

Get started

  • Download from the latest stable release from apache. I went with the hbase-0.18.1 release.
  • Unpack it, for instance to ~/hbase
  • Edit ~/hbase/conf/hbase-env.sh and set the correct JAVA_HOME variable.
  • Start hbase by running ~/hbase/bin/start-hbase.sh

Create a table

  • Start the hbase shell by running ~/hbase/bin/hbase shell
  • Run create ‘blogposts’, ‘post’, ‘image’ in the shell

Now you have a table called blogposts, with a post, and a image family. These families are “static” like the columns in the RDBMS world.

Add some data to the table

Run the following commands in the shell:

  • put ‘blogposts’, ‘post1′, ‘post:title’, ‘Hello World’
  • put ‘blogposts’, ‘post1′, ‘post:author’, ‘The Author’
  • put ‘blogposts’, ‘post1′, ‘post:body’, ‘This is a blog post’
  • put ‘blogposts’, ‘post1′, ‘image:header’, ‘image1.jpg’
  • put ‘blogposts’, ‘post1′, ‘image:bodyimage’, ‘image2.jpg’

Look at the data

Run get ‘blogposts’, ‘post1′ in the shell. This should output something like this.

COLUMN CELL
image:bodyimage timestamp=1229953133260, value=image2.jpg
image:header timestamp=1229953110419, value=image1.jpg
post:author timestamp=1229953071910, value=The Author
post:body timestamp=1229953072029, value=This is a blog post
post:title timestamp=1229953071791, value=Hello World

Summary part1

So, what have we accomplished so far? We have created a table and added one ‘record’ to it. This record consists of the blogpost itself, and the images attached to it. So, how do we retrieve those data from a java application?

Integrate with HBase from Java

In order to integrate with HBase you will need the following jar files in your classpath:

  • commons-logging-1.0.4.jar
  • hadoop-0.18.1-core.jar
  • hbase-0.18.1.jar
  • log4j-1.2.13.jar

All these are found within ~/hbase/lib and ~/hbase

Ok. Here’s the java code:

import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.io.RowResult;

import java.util.HashMap;
import java.util.Map;
import java.io.IOException;

public class HBaseConnector {

public static Map retrievePost(String postId) throws IOException {
HTable table = new HTable(new HBaseConfiguration(), "blogposts");
Map post = new HashMap();

RowResult result = table.getRow(postId);

for (byte[] column : result.keySet()) {
post.put(new String(column), new String(result.get(column).getValue()));
}
return post;
}

public static void main(String[] args) throws IOException {
Map blogpost = HBaseConnector.retrievePost("post1");
System.out.println(blogpost.get("post:title"));
System.out.println(blogpost.get("post:author"));
}
}

This code should print out ‘Hello World’ and ‘The Author’.

Happy coding, check out HBase’s javadoc for more examples.

Please leave feedback in the comments.