blogboxes = function() {
        var _data = [
              {url:'http://blog.kjempekjekt.com/2010/07/05/kodekata-romertall/', img:'bbRoman.jpg', txt:'Kodekata: Romertall<br/>Med l&oslash;sning i Clojure og C#'},
              {url:'http://blog.kjempekjekt.com/2009/07/28/en-smidig-team-leder/', img:'bbTeamleder.jpg', txt:'En smidig teamleder,<br/>millit&aelig;r offiser eller gjeter?'},
              {url:'http://blog.kjempekjekt.com/2009/08/25/utenfra-og-inn-programmering/', img:'bbUtenfra.jpg', txt:'Utenfra-og-inn programmering:<br/>TDD, BDD og Mocking'},
              {url:'http://blog.kjempekjekt.com/2009/05/17/hvordan-bryte-avhengigheter-mellom-klasser/', img:'bbAvhengigheter.jpg', txt:'Hvordan bryte avhengigheter<br/>mellom klasser?'},
              {url:'http://blog.kjempekjekt.com/2009/08/27/avhengighetsisolering-aka-mocking-i-net/', img:'bbMocking.jpg', txt:'Avhengighetsisolering<br/>a.k.a. mocking i .NET'},
              {url:'http://blog.kjempekjekt.com/2011/04/02/en-universell-server-video/', img:'bbUniversal.jpg', txt:'En universell server<br/>(video)'},
              {url:'http://blog.kjempekjekt.com/2009/08/30/tdd-og-mocking-i-praksis/', img:'bbTddogmocking.jpg', txt:'TDD og mocking i praksis,<br/>en blogpost med masse kode'},
              {url:'http://blog.kjempekjekt.com/2010/01/05/enkle-knep-for-bedre-objektorientering/', img:'bbEnkleknep.jpg', txt:'Enkle knep for bedre objektorientering<br/>\"tell, don\'t ask\" m.m.'},
              {url:'http://blog.kjempekjekt.com/2009/09/17/onion-architecture/', img:'bbOnion.jpg', txt:'onion architecture<br/>+ litt inversion of control'},
              {url:'http://blog.kjempekjekt.com/2009/12/06/jobbe-effektivt-med-drittkode/', img:'bbLegacy.jpg', txt:'&aring; jobbe effektivt med drittkode<br/>(en bokanmeldelse)'},
              {url:'http://blog.kjempekjekt.com/2009/08/13/ultra-tiny-given-when-then-dsl-snippet/', img:'bbSnippet.jpg', txt:'ultra-tiny given-when-then<br/>dsl-snippet'},
              {url:'http://blog.kjempekjekt.com/2011/04/29/en-funksjonell-stack-basert-kalkulator/', img:'bbStack.jpg', txt:'en funksjonell stack-basert kalkulator<br/>(video)'},
              {url:'http://blog.kjempekjekt.com/2010/08/02/lisp-for-dummies/', img:'bbDummies.jpg', txt:'Lisp for dummies<br/>introduksjon til lisp/clojure-syntaks'},
              {url:'http://blog.kjempekjekt.com/2010/07/08/er-lisp-bedre-enn-andre-programmeringssprket/', img:'bbLispbedre.jpg', txt:'er lisp bedre enn andre<br/>programmeringsspr&aring;k?'},
              {url:'http://blog.kjempekjekt.com/2009/07/24/ren-kode/', img:'bbClean.jpg', txt:'ren kode<br/>(en bokanmeldelse)'},
              {url:'http://blog.kjempekjekt.com/2011/04/19/hemmeligheten-bak-funksjonell-programmering-avslrt', img:'bbFp.jpg', txt:'hemmeligheten bak<br/>funksjonell programmering avsl&oslash;rt'},
              {url:'http://blog.kjempekjekt.com/2010/04/23/mnstergjenkjenning-i-erlang/', img:'bbPattern.jpg', txt:'m&oslash;nstergjenkjenning<br/>i erlang'},
              {url:'http://blog.kjempekjekt.com/2010/08/11/curry-oppskrift-for-sultne-utviklere/', img:'bbCurry.jpg', txt:'curry-oppskrift for<br/>sultne utviklere'},
              {url:'http://blog.kjempekjekt.com/2010/06/13/selectmany/', img:'bbSelectmany.jpg', txt:'mange skal bli flere<br/>(eller noe s&aring;nt)'},
              {url:'http://blog.kjempekjekt.com/2010/10/03/1-2-3-dispatch/', img:'bbDispatch.jpg', txt:'1-2-3 dispatch<br/>single, dual og multiple dispatch'},
              {url:'http://blog.kjempekjekt.com/2010/04/21/en-introduksjon-til-erlang/', img:'bbErlang.jpg', txt:'En introduksjon til Erlang<br/>(inkluderer kult-klassiker video)'},
              {url:'http://blog.kjempekjekt.com/2010/06/09/filtrer-projiser-aggreger/', img:'bbFilter.jpg', txt:'Filtrer, projiser og aggreger:<br/>grunnleggende teknikker'},
              {url:'http://blog.kjempekjekt.com/2010/08/04/lispy-c-og-hva-er-en-closure/', img:'bbLispy.jpg', txt:'Lispy C#<br/>og hva er en closure?'},
              {url:'http://blog.kjempekjekt.com/2010/08/08/fremtidige-lfter/', img:'bbFuture.jpg', txt:'Fremtidige l&oslash;fter:<br/>Verkt&oslash;y for paralellisering'},
              {url:'http://blog.kjempekjekt.com/2009/03/05/parprogrammering-ansikt-til-ansikt/', img:'bbPair.jpg', txt:'Parprogrammering<br/>ansikt til ansikt'},
              {url:'http://blog.kjempekjekt.com/2009/05/20/verdi-vs-kostnad/', img:'bbValue.jpg', txt:'Naked planning:<br/>Verdi vs. kostnad'},
              {url:'http://blog.kjempekjekt.com/2009/07/30/smidige-ting-fokusere-p-i-min-nye-jobb/', img:'bbSmidig.jpg', txt:'Smidige ting &aring; fokusere p&aring;<br/>i min nye jobb'},
              {url:'http://blog.kjempekjekt.com/2009/09/16/vil-du-bli-en-net-ninja-lansert/', img:'bbNinjaquiz.jpg', txt:'Vil du bli en .net ninja?<br/>Spill utviklet med wpf'},
              {url:'http://blog.kjempekjekt.com/2009/02/18/de-12-beste-podcastene-for-programmerere/', img:'bbPodcasts.jpg', txt:'De 12 beste podcastene<br/>for programmerere'},
              {url:'http://blog.kjempekjekt.com/2011/05/06/send-sms-med-python/', img:'bbPython.jpg', txt:'pswinpy:<br/>Send SMS med Python'},
              {url:'http://blog.kjempekjekt.com/2011/02/01/pinglang-teaser/', img:'bbPinglang.jpg', txt:'Pinglang teaser<br/>(video)'},
              {url:'http://blog.kjempekjekt.com/2010/07/01/enhetstester-i-clojure/', img:'bbClojuretesting.jpg', txt:'Enhetstester i Clojure,<br/>se hvor lett det er..'},
              {url:'http://blog.kjempekjekt.com/2009/05/21/a-tenke-objekter/', img:'bbObjects.jpg', txt:'&Aring; tenke objekter<br/>(en bokanmeldelse)'},
              {url:'http://blog.kjempekjekt.com/2011/02/08/pswincom-ruby-gem/', img:'bbPswincomgem.jpg', txt:'PSWincom Ruby Gem<br/>(inkluderer video)'},
              {url:'http://blog.kjempekjekt.com/2011/03/23/script-iis-manager-med-ironruby/', img:'bbIis.jpg', txt:'Script IIS Manager<br/>med Ironruby'},
              {url:'http://blog.kjempekjekt.com/2010/03/25/programmeringsparadigmer-ulike-mter-tenke-p/', img:'bbParadigmer.jpg', txt:'Programmeringsparadigmer:<br/>ulike m&aring;ter &aring; tenke p&aring;'},
              {url:'http://blog.kjempekjekt.com/2010/03/03/du-m-beherske-et-dynamisk-sprk/', img:'bbDynamiske.jpg', txt:'Du m&aring; beherske et<br/>dynamisk spr&aring;k!'},
              {url:'http://blog.kjempekjekt.com/category/b%C3%B8ker/', img:'cbBooks.jpg', txt:'Kategori: B&oslash;ker<br/>Anmeldelser og tips til utviklere'},
              {url:'http://blog.kjempekjekt.com/category/ruby/', img:'cbRuby.jpg', txt:'Kategori: ruby<br/>det mest fleksible OO-spr&aring;ket'},
              {url:'http://blog.kjempekjekt.com/category/lispclojure/', img:'cbClojure.jpg', txt:'Kategori: Lisp og Clojure<br/>verdens mest spennende spr&aring;k'},
              {url:'http://contikistrip.kjempekjekt.com/?p=2', img:'bbStrip2.jpg', txt:'Contiki Strip #2:<br/>killing bugs!'},
              {url:'http://contikistrip.kjempekjekt.com/?p=3', img:'bbStrip3.jpg', txt:'Contiki Strip #3<br/>N&aring;r alt som kan g&aring; galt...'},
              {url:'http://contikistrip.kjempekjekt.com/?p=6', img:'bbStrip6.jpg', txt:'Contiki Strip #6<br/>Enterprise level architecture'},
              {url:'http://contikistrip.kjempekjekt.com/?p=8', img:'bbStrip8.jpg', txt:'Contiki Strip #8<br/>\"En elegant l&oslash;sning\"'},
              {url:'http://blog.kjempekjekt.com/2011/05/14/brainfck/', img:'bbBrainfuck.jpg', txt:'En rask titt p&aring; Brainf*ck<br/>Inkluderer video'},              
              {url:'http://blog.kjempekjekt.com/2011/05/21/php-ikke-djevelens-verk-likevel/', img:'phpdjevel.jpg', txt:'PHP ikke djevelens<br/>verk likevel?'},
              {url:'http://blog.kjempekjekt.com/2011/05/27/mitt-idol-guy-steele/', img:'guy.jpg', txt:'Mitt idol:<br/>Guy Steele'},
              {url:'http://blog.kjempekjekt.com/2011/05/30/mine-verkty/', img:'mineverktoy.jpg', txt:'Mine verkt&oslash;y:<br/>Hva jeg bruker for &aring; kode?'},
              {url:'http://blog.kjempekjekt.com/2011/06/14/hydepunkter-fra-ndc-2011/', img:'ndc2011.jpg', txt:'H&oslash;ydepunkter fra<br/>Norwegian Developers Conferance 2011'},
              {url:'http://blog.kjempekjekt.com/2011/06/17/programmering-er-et-spill/', img:'etspill.jpg', txt:'Er du alltid n&oslash;dt til &aring; vinne?<br/>Programmering er et spill!'},
              {url:'http://blog.kjempekjekt.com/2011/06/20/bowling-kata/', img:'bowling.jpg', txt:'Bowling Kata<br/>med TDD i Clojure'},
              {url:'http://blog.kjempekjekt.com/2011/06/30/et-lite-team/', img:'etliteteam.jpg', txt:'Et lite team: Det optimale<br/>teamet best&aring;r av 1 utvikler!'},
              {url:'http://blog.kjempekjekt.com/2011/07/03/min-aller-frste-c-makro/', img:'cmacro.jpg', txt:'"Tett p&aring; metallet":<br/>Min aller f&oslash;rste C macro'},
              {url:'http://blog.kjempekjekt.com/2011/07/06/min-frste-nodejs-server/', img:'node.jpg', txt:'En Node.js website<br/>integrert mot PSWinCom Intouch'},
              {url:'http://blog.kjempekjekt.com/2011/07/08/wallpaper/', img:'wallpaper.jpg', txt:'Last ned Programmeringsbloggens<br/>inspirerende wallpaper'},
              {url:'http://blog.kjempekjekt.com/2011/08/17/de-seks-beste-utviklerbkene-siste-r/', img:'jolt.jpg', txt:'De seks beste utviklerb&oslash;kene<br/>H&oslash;sten 2010 - V&aring;ren 2011'},
              {url:'http://blog.kjempekjekt.com/2011/08/20/message-passing-style/', img:'messagepassing.jpg', txt:'Grunnleggende OOP:<br/>Message Passing Style'},
              {url:'http://blog.kjempekjekt.com/2009/02/04/en-applikasjon-pa-en-dag/', img:'bbContikiexception.jpg', txt:'En applikasjon p&aring; en dag:<br/>Contiki Exception'},
              {url:'http://blog.kjempekjekt.com/2010/01/25/quickbencher-beta/', img:'bbQuickbencher.jpg', txt:'QuickBencher<br/>Performancetesting i .NET'},
              {url:'http://blog.kjempekjekt.com/2010/11/03/jeg-leker-litt-med-clojure-i-net/', img:'bbClojureclr.jpg', txt:'ClojureCLR:<br/>Clojure + .net = sant'}];
        return {
          getRandomIndexes: function(n) {
            var result=new Array();                  
            var partitionSize = Math.round(_data.length / n);
            for(i=0;i<n;i++)
            {              
              result[i]=Math.min(_data.length-1, Math.floor(Math.random()*partitionSize)+(i*partitionSize));
            }
            return result;
          },
          create: function(i) {
            return "<div class=\"bbox\"><a href=\"" + _data[i].url + 
              "\"><img src=\"http://www.kjempekjekt.com/images/bb/" + _data[i].img + 
              "\" width=\"240\" height=\"140\" /><span class=\"entry-meta\"><span class=\"entry-title\">" + 
              _data[i].txt + "</span></span></a></div>";
          }
        };
      }();

$(document).ready(function() {
    var numAds = Math.floor($("#columnA_3columns").width() / 255);
    var ads = blogboxes.getRandomIndexes(numAds);
    var container = $("#blogboxContainer");
    for(i=0;i<ads.length;i++)
      container.append(blogboxes.create(ads[i]));
    container.append("<div class=\"spacer\"></div>")
      .slideDown(1000);


      $(".bbox").hover(function(){
        $(this).find(".entry-meta").slideToggle();
      });
      
});

