diff --git a/_posts/2009-03-03-valkommen-till-bloggen.md b/_posts/2009-03-03-valkommen-till-bloggen.md index bfaba0c..a94ed7a 100644 --- a/_posts/2009-03-03-valkommen-till-bloggen.md +++ b/_posts/2009-03-03-valkommen-till-bloggen.md @@ -1,11 +1,14 @@ --- title: "Välkommen till bloggen" date: 2009-03-03 +tags: + - blogg last_updated_by: peter --- Athega Här kommer vi på Athega att blogga om våra respektive intresseområden, saker vi lärt oss under olika projekt och mycket mer. Några exempel på ämnen kan vara: + + Ni kan även följa @athega på Twitter för uppdateringar om vad som sker på företaget. + +/ [Peter](/peter) diff --git a/_posts/2009-03-04-geotagga-bilder.md b/_posts/2009-03-04-geotagga-bilder.md index 9dec803..662e42b 100644 --- a/_posts/2009-03-04-geotagga-bilder.md +++ b/_posts/2009-03-04-geotagga-bilder.md @@ -1,11 +1,14 @@ --- title: "Geotagga bilder" date: 2009-03-04 +tags: + - blogg last_updated_by: peter ---

Att geotagga bilder är att lagra koordinaterna för den geografiska positionen där bilden fotograferades i själva bildfilen. Det skapar många nya möjligheter för att t.ex. söka fram bilder och presentera dem på en karta. Tyvärr är det fortfarande inte många riktiga kameror (och då menar jag inte mobiltelefoner) som har inbyggd GPS vilket krävs för detta. Däremot är vanliga GPS-navigatorer väldigt vanliga nu för tiden, vissa av dem kan kontinuerligt lagra positionen till en spårfil.

Jag tänkte därför presentera en liten guide hur man kan kombinera denna information i efterhand så att man får geotaggade bilder när man laddar över dem till datorn. + -// Johan +/ [Johan](/johan) diff --git a/_posts/2009-03-08-sinatra-och-google-spreadsheet.md b/_posts/2009-03-08-sinatra-och-google-spreadsheet.md index b7fa34e..1423708 100644 --- a/_posts/2009-03-08-sinatra-och-google-spreadsheet.md +++ b/_posts/2009-03-08-sinatra-och-google-spreadsheet.md @@ -16,7 +16,8 @@ Sinatra är ett DSL för att snabbt och enkelt skapa webbapplikationer i Ruby: 'Hello world!' end -

Komma igång

+## Komma igång + Först av allt behöver vi Ruby och RubyGems. Eftersom jag använder OS X så är de redan installerade. (Men se till att du har en uppdaterad version av RubyGems) Om du inte redan har lagt till GitHub i listan över dina gem sources: @@ -29,7 +30,7 @@ Nu är vi redo att installera de gems vi kommer att använda: Nu är vi redo att börja skriva vårt script: -

sinatra-and-google-spreadsheet.rb

+## sinatra-and-google-spreadsheet.rb Först tar vi och laddar in de gems vi kommer använda (Sinatra kommer att ladda in Haml åt oss): @@ -52,18 +53,18 @@ Metoderna för att hämta datat från Google Spreadsheet: # Retrieve and return the posts session["posts"] ||= retrieve_posts end - + def retrieve_posts # Empty posts hash posts = {} - + # Log in to Google Spreadsheet session = GoogleSpreadsheet.login('xxxxxxxx', 'xxxxxxxx') - - # First worksheet of + + # First worksheet of # http://spreadsheets.google.com/ccc?key=peGTxx6h1WT0ihw9-QETbQg ws = session.spreadsheet_by_key("peGTxx6h1WT0ihw9-QETbQg").worksheets[0] - + # Iterate over all the rows in the spreadsheet for i in 1...ws.num_rows # Store the data Identify data using the slug @@ -74,7 +75,7 @@ Metoderna för att hämta datat från Google Spreadsheet: :author => ws[i+1,4], } end - + # Return the retrieved posts posts end @@ -86,7 +87,7 @@ Startsida listar helt enkelt alla poster: get '/' do # Get all the posts @posts = get_posts - + # Render the index template haml :index end @@ -96,7 +97,7 @@ Respektive post har en "slug" som används i urlen: get '/:slug' do # Get the post @post = get_posts[params[:slug]] - + # Render the post template haml :post end @@ -104,17 +105,17 @@ Respektive post har en "slug" som används i urlen: Nu definierar vi de Haml-mallar vi använder på sidorna: __END__ - + @@ layout %html %head %title Sinatra and Google Spreadsheet %body = yield - + @@ index %h1.title All posts - + - @posts.each do |slug, post| %ul %li @@ -123,7 +124,7 @@ Nu definierar vi de Haml-mallar vi @@ post %h1.title = @post[:title] - + %div Published %span.date @@ -131,15 +132,15 @@ Nu definierar vi de Haml-mallar vi by %span.author = @post[:author] - + %p.content = @post[:content] - + %a{:href => '/'} << Back -

Starta scriptet

+## Starta scriptet - $ ruby sinatra-and-google-spreadsheet.rb + $ ruby sinatra-and-google-spreadsheet.rb == Sinatra/0.9.1 has taken the stage on 4567 for development with backup from Thin >> Thin web server (v1.0.0 codename That´s What She Said) >> Maximum connections set to 1024 @@ -147,7 +148,7 @@ Nu definierar vi de Haml-mallar vi Om allt går som det ska så ska vi nu ha en server på http://localhost:4567/. -

Resultat

+## Resultat Från ett kalkylblad på Google Spreadsheet: @@ -159,4 +160,4 @@ Till en sida serverad med Sinatra: Att man kan åstadkomma så mycket med under 100 rader Rubykod är rätt imponerande, speciellt om man tänker på att vi då även räknar in kommentarer och mallar. -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-03-25-athega-bidrar-till-oppen-kallkod.md b/_posts/2009-03-25-athega-bidrar-till-oppen-kallkod.md index be56b7a..57a6401 100644 --- a/_posts/2009-03-25-athega-bidrar-till-oppen-kallkod.md +++ b/_posts/2009-03-25-athega-bidrar-till-oppen-kallkod.md @@ -1,7 +1,7 @@ --- title: "Athega bidrar till öppen källkod" date: 2009-03-25 -last_updated_by: peter +last_updated_by: johan --- Athega har sedan länge, ända sedan starten 1997, arbetat mycket med programmeringsspråket Perl. Vi använder oss i mycket stor utsträckning av öppna och fria mjukvaror och verktyg för de system vi bygger. Därför är även en stor del av den kod vi själva producerar befriad från licenskostnader och betraktas som “open source” även om den kanske i vissa fall inte finns publikt tillgänglig på nätet. @@ -9,9 +9,8 @@ Saker som går att återanvända och andra kan ha nytta av delar vi gärna med o Det distribuerade arkivet för Perl-moduler heter CPAN, dit kan alla bidra med sin kod. När en modul väl finns i arkivet kan den lätt installeras på vilken dator som helst så här: - [user@host ~]$ sudo cpan cpan shell -- CPAN exploration and modules installation (v1.9304) ReadLine support enabled cpan> install Geo::SweGrid -//[[Johan]] +/ [Johan](/johan) diff --git a/_posts/2009-04-08-athegas-oppna-kallkod-anvands-av-valmyndigheten.md b/_posts/2009-04-08-athegas-oppna-kallkod-anvands-av-valmyndigheten.md index bb394df..a950e9a 100644 --- a/_posts/2009-04-08-athegas-oppna-kallkod-anvands-av-valmyndigheten.md +++ b/_posts/2009-04-08-athegas-oppna-kallkod-anvands-av-valmyndigheten.md @@ -1,10 +1,10 @@ --- title: "Athegas öppna källkod används av Valmyndigheten" date: 2009-04-08 -last_updated_by: peter +last_updated_by: johan --- I mitt förra inlägg berättade jag om en Perl-modul som vi släppt som öppen källkod. Det visade sig att denna kod ganska snabbt skulle komma till nytta. Häromdagen fick jag ett e-postmeddelande från Valmyndigheten där de berättade att de använder modulen och att den passar deras behov perfekt. De använder den för att konvertera positionen för alla vallokaler från RT90 till SWEREF99 för presentation på en karta på webben. Modulen hittar ni här: Geo::SweGrid -// [Johan](/johan) +/ [Johan](/johan) diff --git a/_posts/2009-04-16-ruby-on-rails-under-nginx-med-passenger.md b/_posts/2009-04-16-ruby-on-rails-under-nginx-med-passenger.md index 72aef76..81beac8 100644 --- a/_posts/2009-04-16-ruby-on-rails-under-nginx-med-passenger.md +++ b/_posts/2009-04-16-ruby-on-rails-under-nginx-med-passenger.md @@ -10,26 +10,33 @@ Sedan några timmar så kan man köra Phusion Phusion Passenger och Apache har under en tid varit det populäraste sättet att enkelt driftsätta Ruby on Rails och Rack-applikationer. Nu kan man alltså välja att köra Passenger under den ryska (och tokigt snabba) Nginx. Det enda man behöver göra är: +
  1. Installera gem: sudo gem install passenger
  2. Köra Nginx installern: sudo passenger-install-nginx-module
  3. Konfigurera (Det mesta sköts automagiskt)
  4. Starta
+ Mer ingående instruktioner finns på Phusion’s blogg -

Phusion Passenger

+ +## Phusion Passenger + Hongli Lai och Ninh Bui presenterade Phusion Passenger (också känd som mod_rails) under RailsConf 2008, det var då jag verkligen fick upp ögonen för projektet. I den nya versionen har Phusion-grabbarna förutom att man nu kan använda sig av två olika webbservrar för att köra Passenger lagt till: + -

Nginx

+ +## Nginx + Nginx driver ett flertal stora webbplatser, såsom WordPress, Hulu, Github, och Ohloh. Den serverar mer än två miljoner webbplatser och är därmed den näst populäraste webbservern under Linux. Fördelning mellan olika webbservrar -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-04-24-lat-inte-tomcat-jobba-i-onodan.md b/_posts/2009-04-24-lat-inte-tomcat-jobba-i-onodan.md index 6d14230..e874d3f 100644 --- a/_posts/2009-04-24-lat-inte-tomcat-jobba-i-onodan.md +++ b/_posts/2009-04-24-lat-inte-tomcat-jobba-i-onodan.md @@ -1,7 +1,7 @@ --- title: "Låt inte Tomcat jobba i onödan" date: 2009-04-24 -last_updated_by: peter +last_updated_by: chrille --- Ett vanligt upplägg för en lastad sajt med någorlunda statiskt innehåll ser ut enligt nedan: @@ -20,6 +20,7 @@ Dock är det kanske inte att föredra i ett litet större projekt med hundratals Mitt nästa spår var att automatiskt försöka inkludera ovanstående direktiv för varje genererad sida. Från och med JSP 2.0 (som inte direkt kom ut igår) går det att få till ganska enkelt med något som kallas för implicit includes. Börja med att lägga till ett jsp-config-direktiv i din web.xml: + @@ -38,4 +39,4 @@ Notera att filen som inkluderas är av typen .jspf, ett JSP-fragment. Detta är Testa! Tomcat kommer att kasta fel i loggarna så fort du försöker skapa en session, men om du har det som jag är det precis så du vill ha det! -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2009-04-24-screen-capture-online.md b/_posts/2009-04-24-screen-capture-online.md index 9267679..4aa33e6 100644 --- a/_posts/2009-04-24-screen-capture-online.md +++ b/_posts/2009-04-24-screen-capture-online.md @@ -6,13 +6,15 @@ last_updated_by: peter Jag har länge använt ett screen capture-program för att komplettera dokumentation och manualer med tutorials som är lätta för användarna att ta till sig. När det handlar om en steg för steg beskrivning av något i ett applikation tycker jag det både är väldigt bekvämt, för mig som gör det, och mycket lätt att förstå för användarna. Min erfarenhet är att det blir ett mycket uppskattat och givande komplement till övrig dokumentation. -
På mitt uppdrag har jag arbetat med ett par olika lösningar för att spela desktop och visa hur man gör saker och sedan publicera dessa på support-web-sidor. Det kan handla om allt från hur en miljö är uppbyggt till handgrepp vid installationer mm. Jag tycker tekniken nästan kan mäta sig med att sitta bredvid någon och förklara. Speciellt om det är svåra gränssnitt där det finns många möjligheter att klicka bort sig eller när det gäller applikationer som inte är helt logiska.
-
Jag blev väldigt nyfiken när jag fick höra talas om en online screen recorder-tjänst som heter screentoaster. Efter registrering kom jag igång relativt snabbt.
+ +På mitt uppdrag har jag arbetat med ett par olika lösningar för att spela desktop och visa hur man gör saker och sedan publicera dessa på support-web-sidor. Det kan handla om allt från hur en miljö är uppbyggt till handgrepp vid installationer mm. Jag tycker tekniken nästan kan mäta sig med att sitta bredvid någon och förklara. Speciellt om det är svåra gränssnitt där det finns många möjligheter att klicka bort sig eller när det gäller applikationer som inte är helt logiska. + +Jag blev väldigt nyfiken när jag fick höra talas om en online screen recorder-tjänst som heter screentoaster. Efter registrering kom jag igång relativt snabbt. + Inom någon minut hade jag spelat in en första testfilm. Dom inspelade filmerna går sedan direkt att publicera till olika tjänster. Mycket lätt att använda och dom flesta funktioner finns där. Spela in från webcam och att lägga på ljud eller inte. ## Edit (2012) Då Screentoaster verkar ha lagt ner så kan vi rekomendera tjänsten [Screenr](http://screenr.com/) istället. - -// [Mats](/mats) +/ [Mats](/mats) diff --git a/_posts/2009-05-05-railsconf-tutorials.md b/_posts/2009-05-05-railsconf-tutorials.md index ab4429b..a35c73c 100644 --- a/_posts/2009-05-05-railsconf-tutorials.md +++ b/_posts/2009-05-05-railsconf-tutorials.md @@ -19,18 +19,18 @@ last_updated_by: peter
  • Testning
  • -

    Jag hade gärna sett att han gått in lite mer på djupet om skillnaderna -mellan JRuby och MRI, Olika sätt att deploya (Han visade GlassFish, +

    Jag hade gärna sett att han gått in lite mer på djupet om skillnaderna +mellan JRuby och MRI, Olika sätt att deploya (Han visade GlassFish, med tveksamt resultat)

    Ett verktyg jag helt klart kommer att använda mig av i framtiden är VisualVM.

    A Hat Full of Tricks with Sinatra - Blake Mizerany (Heroku)

    -

    Det första som händer är att Christian Neukirchen, +

    Det första som händer är att Christian Neukirchen, huvudutvecklaren av Rack sätter sig brevid mig.

    -

    Första fjärdedelen av Blakes föreläsning handlar inte om +

    Första fjärdedelen av Blakes föreläsning handlar inte om Sinatra över huvud taget utan om just Rack.

    Minimal Rack-applikation

    @@ -40,7 +40,7 @@ huvudutvecklaren av Rack sätter sig br

    Minimal Sinatra-applikation

    require 'sinatra' - + get '/' do 'Hello' end @@ -64,4 +64,4 @@ huvudutvecklaren av Rack sätter sig br gae_hackathon -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-05-06-railsconf-tisdag.md b/_posts/2009-05-06-railsconf-tisdag.md index 1ee2073..82d6a4b 100644 --- a/_posts/2009-05-06-railsconf-tisdag.md +++ b/_posts/2009-05-06-railsconf-tisdag.md @@ -23,23 +23,23 @@ last_updated_by: peter

    Unobtrusive JavaScript kommer att implementeras genom att använda HTML 5 attribut:

    ## Rails 2.x - <%= link_to_remote "Delete", :url => @comment, :method => :delete %> - @comment, :method => :delete %> + Destroy - + ## Rails 3.x - <%= link_to "Delete", @comment, :remote => true, :method = :delete %> + <%= link_to "Delete", @comment, :remote => true, :method = :delete %> Destroy

    Och sen appliceras metoderna med JavaScript:

    - $(document.body).observe("click", function(event) { - var element = event.findElement("a['data-remote']"); - if (element) { - var method = element.readAttribute("data-method") || "get"; - new Ajax.Request(element.readAttribute("href"), { method: method }); - event.stop(); - } + $(document.body).observe("click", function(event) { + var element = event.findElement("a['data-remote']"); + if (element) { + var method = element.readAttribute("data-method") || "get"; + new Ajax.Request(element.readAttribute("href"), { method: method }); + event.stop(); + } });

    Han visade på hur viktigt hög produktivitet faktiskt är, hur motivation snabbt minskar vid svåra problem.

    @@ -193,4 +193,4 @@ last_updated_by: peter

    Tags är en riktigt trevlig liten feature.

    -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-05-07-railsconf-onsdag.md b/_posts/2009-05-07-railsconf-onsdag.md index 13379eb..372ff18 100644 --- a/_posts/2009-05-07-railsconf-onsdag.md +++ b/_posts/2009-05-07-railsconf-onsdag.md @@ -21,7 +21,7 @@ last_updated_by: peter

    Object#extend är dock ett stort problem för att kunna cache:a metodanropen.

    -

    Det är viktigt att förstå hur extend fungerar så att man inte tömmer +

    Det är viktigt att förstå hur extend fungerar så att man inte tömmer metodanropscachen i onödan.

    Konstanter

    @@ -30,7 +30,7 @@ metodanropscachen i onödan.

    Options Argument

    -

    En option hash strider mot DRY. +

    En option hash strider mot DRY. Det är mycket snabbare att använda diskreta argument.

    obj.run rescue nil

    @@ -73,9 +73,9 @@ Använder inte Kernel#require, alltså går det inte att köra autoload från ge

    Jay Phillips (Codemecca LLC) visade hur man kan programmera Ruby för att styra Asterisk genom att använda sig av Adhearsion.

    -

    Tyvärr fungerade det inte att använda Ahearsions Sandbox på konferensens wlan, +

    Tyvärr fungerade det inte att använda Ahearsions Sandbox på konferensens wlan, så jag får ta och testa det lite senare.

    Verkar intressant att kunna styra sin applikation genom att ringa till den :)

    -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-05-08-railsconf-torsdag.md b/_posts/2009-05-08-railsconf-torsdag.md index 7613052..0b94efe 100644 --- a/_posts/2009-05-08-railsconf-torsdag.md +++ b/_posts/2009-05-08-railsconf-torsdag.md @@ -45,4 +45,4 @@ last_updated_by: peter

    Han visade också hur han använder en iPhone som fjärrkontroll till sitt hus.

    -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-06-10-google-wave.md b/_posts/2009-06-10-google-wave.md index 582a712..0609f08 100644 --- a/_posts/2009-06-10-google-wave.md +++ b/_posts/2009-06-10-google-wave.md @@ -9,12 +9,12 @@ Idén är att inte skilja på ovanstående. Detta genom att användaren skapar e Gränssnittet kanske kan beskrivas(mycket förenklat) som en instant messaging wiki. När en deltagare initierat en ström kan alla deltagare se vad som skrivs i realtid. Allt uppdateras löpande bokstav för bokstav i allas klienter. En kraftfull editor hanterar text och olika objekt. Det går att dra in länkar till andra konversationer eller bilder rakt in meddelanden som omedelbart dyker upp för övriga deltagare. -Eftersom allt går att redigera inte bara det man själv skrivit, utan alla meddelanden i wave-konversationen, blir det enkelt för flera att samtidigt redigera eller kommentera i en och samma textmassa. På ett möte skulle alla kunna följa en Wave där protokoll skrivs och samtidigt själva slänga in kommentarer eller rättningar i realtid. Alla ändringar går att spåra och en hela wave historiken finns så att den går att spela upp från början. +Eftersom allt går att redigera inte bara det man själv skrivit, utan alla meddelanden i wave-konversationen, blir det enkelt för flera att samtidigt redigera eller kommentera i en och samma textmassa. På ett möte skulle alla kunna följa en Wave där protokoll skrivs och samtidigt själva slänga in kommentarer eller rättningar i realtid. Alla ändringar går att spåra och en hela wave historiken finns så att den går att spela upp från början. -Stavningskontroll jämför ord i sitt sammanhang så att mycket avancerade rättningar sker i realtid beroende på orden runt om kring. I demonstrationen får vi även se en imponerande översättningsrobot som i realtid översätter meddelanden. +Stavningskontroll jämför ord i sitt sammanhang så att mycket avancerade rättningar sker i realtid beroende på orden runt om kring. I demonstrationen får vi även se en imponerande översättningsrobot som i realtid översätter meddelanden. -Eftersom Google Wave är öppet kommer troligen en mängd nya funktioner och tjänster dyka upp. Både som enklare plugin eller helt separata applikationer som på ett eller annat sätt utnyttjar informationsströmmarna och plattformen. +Eftersom Google Wave är öppet kommer troligen en mängd nya funktioner och tjänster dyka upp. Både som enklare plugin eller helt separata applikationer som på ett eller annat sätt utnyttjar informationsströmmarna och plattformen. Jag har bara skrapat lite på ytan. Se demonstrationen själva på http://wave.google.com/ -// [Mats](/mats) +/ [Mats](/mats) diff --git a/_posts/2009-07-02-lar-dig-leva-utan-ancestorview.md b/_posts/2009-07-02-lar-dig-leva-utan-ancestorview.md index 1aafae0..0653cc9 100644 --- a/_posts/2009-07-02-lar-dig-leva-utan-ancestorview.md +++ b/_posts/2009-07-02-lar-dig-leva-utan-ancestorview.md @@ -7,10 +7,12 @@ Under våren har jag jobbat med att trimma en webbapplikation som levererar nät Responstid före och efter jag bytt ut <section:ancerstorView> -

    Vad är ancestorView?

    +## Vad är ancestorView? + ancestorView används för att skapa en hierarkisk vy av sektioner utgående från den sektion du anger. Inget speciellt avancerat eller konstigt. Det borde inte heller vara jobbigt för systemet att skapa vyn, tyvärr sker något under ytan som ställer till det. Berätta gärna vad i kommentarerna. ;) -

    Hur det kan se ut (före)

    +## Hur det kan se ut (före) + Ett vanligt sätt att använda sig av ancestorView är för att exempelvis bygga en sökväg till en navigering: @@ -30,7 +32,8 @@ Ett vanligt sätt att använda sig av ancestorView är för att exe -

    Skapa en lättviktig ersättning till ancestorView

    +## Skapa en lättviktig ersättning till ancestorView + En enkel väg till ett liv utan ancestorView-taggar är att skapa en mycket enkel custom tag. Nedanstående implementation har inte stöd för precis allt du kan göra med Escenics variant, men den gör jobbet för de flesta användningsfallen. Jag döpte den till ancestors.tag och la den i /WEB-INF/lib/tags/section. <%@tag body-content="empty"%> @@ -52,7 +55,7 @@ En enkel väg till ett liv utan ancestorView-taggar är att skapa e Det enda som egentligen sker här är att jag bygger upp en lista med föräldrasektioner i omvänd ordning genom att anropa Escenics API. Detta går av någon anledning massor med gånger snabbare. -

    Hur det kan se ut utan ancestorView (efter)

    +## Hur det kan se ut utan ancestorView (efter) <%@ taglib prefix="sec" tagdir="/WEB-INF/tags/section" %> @@ -72,7 +75,7 @@ Det enda som egentligen sker här är att jag bygger upp en lista med föräldra Eftersom jag inte längre arbetar med en vy av sektioner, kan jag iterera över listan med föräldrasektioner med en vanlig c:foreach med fördelar som varStatus, mm. -

    Slutsats

    +## Slutsats Om du använder Escenic i någon 4.x-version och om du får några träffar när du söker på ancestorView i din kodbas, finns all anledning att se över ett byte! -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2009-07-02-potion.md b/_posts/2009-07-02-potion.md index 91ec359..45eb571 100644 --- a/_posts/2009-07-02-potion.md +++ b/_posts/2009-07-02-potion.md @@ -6,17 +6,24 @@ last_updated_by: peter Why’s Potion Författaren, tecknaren, musikern, konstnären, och programmeraren Why the Lucky Stiff har under en tid jobbat med ett litet och snabbt språk som han döpt till Potion. Språket är inte på något sätt färdigt eller ens menat att tas på allvar, men jag tycker att det är roligt att experimentera med nya och annorlunda språk. -

    Mantrat bakom Potion

    + +## Mantrat bakom Potion + "Allt är ett objekt, men objekten är inte allt" samt tillägget "Oh, och allt är en funktion" -

    Vad är speciellt med Potion?

    + +## Vad är speciellt med Potion? +
    • Potion kompilerar ner programmen till maskinkod
    • Det inkluderar en liten "generational near-exact garbage collector"
    • Det är två språk i ett: ett för kod, ett för data
    • Det består av färre än 10.000 rader C
    + Potion är inspirerat av språken Io, Ruby, OCaml, Lua, REBOL och C. I den ordningen. -

    Installation under Mac OS X

    + +## Installation under Mac OS X + Först måste man installera Ragel och det gör man enklast genom MacPorts: sudo port install ragel @@ -28,20 +35,22 @@ Och sedan klonar man källkoden med Git: Efter det kompilerar man koden: make -

    Dags att skriva lite kod

    -

    Enklast möjliga

    + +## Dags att skriva lite kod + +### Enklast möjliga 'Athega' print Kommer helt enkelt att skriva ut strängen 'Athega' genom att man skickar meddelandet print. -

    Något lite roligare

    +### Något lite roligare loop: 'Athega' print. I Potion startar man block av kod med kolon och avslutar med punkt. Kommandot loop kommer att inte helt oväntat loopa över blocket (en oändlig loop). Meddelandet print sänds till strängen 'Athega'. Strängar är objekt, som allt annat. De tar emot meddelanden. Meddelanden är separerade från objekt med mellanrum. (I de flesta programmeringsspråk använder man punkt för att separera meddelanden, här (precis som i Svenska) representerar punkt ett avslut på något.) -

    Listor

    +### Listor ('kaffet', 'på', 'h21', 'rockar') at (2) print @@ -49,7 +58,7 @@ Nu skriver vi ut strängen 'h21'. Allt inom parenteser är listorat meddelandet kommer det en till lista. (2) är ett argument till at. Den ser ut som en lista (och det är en lista,) men vi kallar den för ett argument eftersom den kommer efter ett meddelande. -

    Den funktionella sidan

    +## Den funktionella sidan minus = (x, y): x - y. minus (y=10, x=6) @@ -58,33 +67,33 @@ Notera att efter at meddelandet kommer det en till lista. (2) Här har vi en variabel som innehåller en funktion. Funktionen subtraherar y från x. I detta fall returneras -4. (Detta liknar hur nyckelordsargument fungerar i Lua och Python) -

    Den objektorienterade sidan

    +## Den objektorienterade sidan Person = class: /name, /age, /sex. - - Person print = (): + + Person print = (): ('Mitt namn är ', /name, '.') join print. - + p = Person () p /name = 'Peter' - + p print -

    En subklass

    +## En subklass Developer = Person class (language): /language = language. - + Developer print = (): ('Mitt namn är ', /name, ' och jag gillar ', /language, '.') join print. - + u = Developer ('Ruby') u /name = 'Peter' - + u print -

    Licks

    +## Licks -Till sist har vi Lick vilket är dataspråket jag nämnde tidigare. Men varför skulle man vilja ha två språk i ett? En anledning är att det kan vara svårt att uttrycka data i kod. +Till sist har vi Lick vilket är dataspråket jag nämnde tidigare. Men varför skulle man vilja ha två språk i ett? En anledning är att det kan vara svårt att uttrycka data i kod. Genom att ha ett separat litet dataspråk kan man bygga trädstrukturer av godtyckliga element, ungefär som i HTML. (Man kan se det som kod som har blivit tolkad men inte exekverad) @@ -92,11 +101,12 @@ Genom att ha ett separat litet dataspråk kan man bygga trädstrukturer av godty Varje lick kan ha ett namn, en tabell med attribut och en lista med barn. Listan med barn kan även vara av någon annan datatyp. (tex nummer eller sträng) -

    Vidare läsning

    +## Vidare läsning + -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-07-06-mongodb.md b/_posts/2009-07-06-mongodb.md index 44d08cb..6dae22e 100644 --- a/_posts/2009-07-06-mongodb.md +++ b/_posts/2009-07-06-mongodb.md @@ -13,8 +13,11 @@ Den är skriven i C++ och passar bra för realtidsanalys av webbstatistik Den har inbyggd replikering, automatisk failover och sharding, hög prestanda och den är open source. Internt så sparas datan i formatet BSON, vilket är JSON med ett datumformat och möjlighet att spara binärdata. +

    Installation

    + Jag kommer som vanligt att använda Mac OS X och Ruby men det finns förkompilerade paket för de vanligaste operativsystemen: +
    • OS X 32 bit
    • OS X 64 bit
    • @@ -23,7 +26,9 @@ Jag kommer som vanligt att använda Mac OS X och Ruby men det finns förkompiler
    • Windows 32 bit
    • Solaris i86pc (EXPERIMENTAL)
    + Det finns även bindningar till ett flertal olika språk, dock har jag inte sett någon för .NET +
    • C++ (Inkluderas med databasen)
    • Java
    • @@ -32,6 +37,7 @@ Det finns även bindningar till ett flertal olika språk, dock har jag inte sett
    • Python
    • Ruby
    + Installationen var helt smärtfri, bara att ladda ner senaste tarbollen (mongodb-osx-x86_64-0.9.5) och packa upp den på valfri plats. Man behöver skapa en datakatalog (standard är /data/db) och sen starta servern med @@ -43,14 +49,16 @@ Nu lyssnar databasen på port 27017 och det finns ett webbgränssni På Rubysidan behövde jag bara installera paketet mongodb-mongo från GitHub med RubyGems: sudo gem install mongodb-mongo +

    Dags för lite kod

    + Att ansluta till databasen: #!/usr/bin/env ruby - + require 'rubygems' require 'mongo' - + db = XGen::Mongo::Driver::Mongo.new.db("mydb") @@ -58,7 +66,7 @@ MongoDB har konceptet collections för likartade dokument. (Eller o # Hämtar en collection, den skapas om den inte redan finns coll = db.collection("testCollection") - + # Man kan stoppa in olika sorters dokument coll.insert({ :name => "Peter", :address => { :city => "Stockholm" } }) coll.insert({ :name => "Velociraptor", :top_speed => "25 m/s", @@ -67,19 +75,21 @@ MongoDB har konceptet collections för likartade dokument. (Eller o :turn_at_any_angle_at_any_velocity => true } }) - + # Man kan sedan hämta ut datat ur databasen med metoden find_first. peter = coll.find_first(:name => 'Peter') raptor = coll.find_first(:top_speed => '25 m/s') - + # Man kan även hämta alla dokument i en collection coll.find.each do |doc| puts doc.inspect end - +

    Vidare läsning

    + Jag har bara skrapat lite lätt på ytan av allt som går att göra med MongoDB, om du tycker att det verkar intressant så rekomenderar jag följande länkar: + -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2009-07-08-html5-och-canvas.md b/_posts/2009-07-08-html5-och-canvas.md index d5e6668..9a22624 100644 --- a/_posts/2009-07-08-html5-och-canvas.md +++ b/_posts/2009-07-08-html5-och-canvas.md @@ -6,14 +6,17 @@ last_updated_by: peter Rita, animera och kontrollera pixlarna på webbsidan. Den nya canvas-taggen i HTML5 revolutionerar det som är möjligt att göra i en webbapplikation eller webbsida. Det bubblar av exempel på och demonstrationer av vad som är möjligt med webbläsare som har stöd för HTML5. I skrivandets stund kan man slarvigt säga att det är de flesta större alternativen till Internet Explorer som visar framfötterna. Firefox, Safari och Opera är alla långt framme vad gäller stöd för HTML5. Microsoft är inte riktigt med i matchen ännu. men jobbar på det, i alla fall enligt egen utsago. Tyvärr är det ju så att IE måste med, för att vi ska kunna börja använda oss av HTML5-specifika funktioner på riktigt. -

    Den populära spegeleffekten

    + +## Den populära spegeleffekten + Spegeleffekt med canvas-taggen Vi ska titta på hur man kan skapa en spegeleffekt av exempelvis en bild med hjälp av canvas-taggen. Jag har använt två canvas-taggar, en för huvudbilden och en för den reflekterande ytan. Huvudbilden hade kunnat visas med en vanlig img-tagg, men jag ville ha möjligheten att "rita" och animera bilden också. Bilden föreställer min yngsta son, Carl. Principen är enkel; skapa en canvas-tagg med vanlig markup, rita i den med JavaScript. -

    1. Skapa canvas-taggar

    +### 1. Skapa canvas-taggar + Börja med att definiera två canvas att rita i. @@ -23,11 +26,11 @@ Börja med att definiera två canvas att rita i. Innehållet i canvas-taggen är valfritt, men är tänkt att visas för äldre webbläsare eller webbläsare som helt enkelt inte har stöd för canvas-taggen (Varning: tidiga versioner av Safari visade dock detta innehåll). För att enkelt komma åt canvasytorna ger vi dem varsitt ID och en definierad storlek. -

    2. Ladda huvudbilden

    +### 2. Ladda huvudbilden var mainCanvas = document.getElementById('myCanvas'); var mainCtx = mainCanvas.getContext('2d'); - + var img = new Image(); img.src = 'carl.jpg'; img.onload = function() { @@ -36,14 +39,14 @@ Innehållet i canvas-taggen är valfritt, men är tänkt att visas för äldre w För att komma åt pixlarna i canvas-ytan, hämtas ett 2d-kontext, som sedan används av drawImage för att rita bilden. -

    3. Skapa spegeleffekten

    +### 3. Skapa spegeleffekten var mirrorCanvas = document.getElementById('mirrorCanvas'); var mirrorCtx = mirrorCanvas.getContext('2d'); - + var mainData = mainCtx.getImageData(0, 0, mainCanvas.width, mainCanvas.height); var mirrorData = mirrorCtx.getImageData(0, 0, mirrorCanvas.width, mirrorCanvas.height); - + var gradientStep = 70 / mainData.height; for (var x = 0; x < mainData.width; x++) { var currentAlpha = 0; @@ -54,11 +57,11 @@ För att komma åt pixlarna i canvas-ytan, hämtas ett 2d-kontext, som sedan anv mirrorData.data[mirrorIdx+p] = mainData.data[mainIdx+p]; } mirrorData.data[mirrorIdx + 3] = currentAlpha; - + currentAlpha += gradientStep; } } - + mirrorCtx.putImageData(mirrorData, 0, 0); Vi börjar med att hämta pixelarrayer för både huvudbilden och den spegelvända bilden. Detta görs med funktionen getImageData. Den returnerar en platt array med fyra poster för varje pixel. Dessa är i turordning värden för pixelns röda-, gröna-, blåa- och alphavärden. @@ -67,27 +70,31 @@ Huvudbildens pixlar stegas sedan igenom kolumnvis, så att vi kan skapa en refle Till sist uppdaterar vi spegelytan med den modifierade pixelarrayen genom att anropa putImageData. -

    4. Ett fungerande exempel

    +### 4. Ett fungerande exempel + Här finns ett fungerade exempel. För att visa att spegelytan är levande, har jag lagt till en animering som startas och stoppas genom att klicka i bilden. Tänk på att du behöver en hyfsat uppdaterad webbläsare som inte är Internet Explorer. HTML och JavaScript: + -

    Avslutningsvis, några imponerande canvas-exempel

    +### Avslutningsvis, några imponerande canvas-exempel + Realtidsrendrering av 3D-modell av en iPod Touch Ett fullt fungerade Asteroids implementerat endast med Canvas och JavaScript Ett canvas tillsammans med bland annat video-taggen för att analysera var de två iPhone-telfonerna är och i realtid uppdatera innehållet mellan dem med exempelvis innehållet från en annan video-tagg. -

    Läs mer

    +## Läs mer + -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2009-08-12-in-i-zonen-som-systemutvecklare.md b/_posts/2009-08-12-in-i-zonen-som-systemutvecklare.md index 8f5a5ae..bb7b2e3 100644 --- a/_posts/2009-08-12-in-i-zonen-som-systemutvecklare.md +++ b/_posts/2009-08-12-in-i-zonen-som-systemutvecklare.md @@ -40,7 +40,7 @@ Något jag hela tiden har förespråkat i mitt privatliv likväl arbetsliv så Athega, My desk #### Vidare läsning - + - [Unclutterer](http://unclutterer.com/) ### Diska @@ -104,4 +104,4 @@ hörlurar på sig, då noterar folk att man inte hör vad de säger) - [Flow: Get into the Zone at Work](http://www.thatvoodooyoudo.com/best-practice/flow/) - [7 Tips for programming in The Zone](http://www.computus.org/journal/?p=982) -// [[Peter]] +/ [[Peter]] diff --git a/_posts/2009-08-28-sociala-medier-for-foretaget.md b/_posts/2009-08-28-sociala-medier-for-foretaget.md index 0ca16a8..9295ce5 100644 --- a/_posts/2009-08-28-sociala-medier-for-foretaget.md +++ b/_posts/2009-08-28-sociala-medier-for-foretaget.md @@ -5,12 +5,14 @@ last_updated_by: peter --- Igår höll jag en dragning/workshop om hur företag kan använda sociala medier för att komma närmre befintliga och framtida kunder, hantera medgångar och motgångar eller kanske attrahera rätt människor. -

    Dell Hell

    +## Dell Hell + Det låter litet klyschigt, men vi lever i en fantastisk tid. Jag inspirerades av ett blogginlägg från en bloggare med ett namn man inte glömmer, Willis Wee, som skriver mycket bra och tänkvärt om bl a sociala medier ur ett företagsperspektiv. I blogginlägget beskriver han hur Dell gått från förlorare till vinnare de senaste åren. Dells första reaktion var att stänga användarforum och inte bemöta den kritik som östes över dem i sociala medier. Idag satsar Dell stora resurser på bloggande, twittrande och kundmedverkan. Dell har exempelvis gjort ca 25 miljoner i vinst enbart via @Delloutlet. Det fantastiska med vår tid är vad sociala medier kan göra för oss, inte bara privat, utan även för företaget. Företag som fortfarande tror att närvaro på nätet handlar om envägskommunikation, kommer få svårt att konkurrera med öppna, transparenta och medvetna företag som tar sina kunder på allvar. -

    Presentationen

    +## Presentationen + -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2009-09-01-hpricot-och-sinatra-pa-google-app-engine.md b/_posts/2009-09-01-hpricot-och-sinatra-pa-google-app-engine.md index 5babb3b..0ec1e9d 100644 --- a/_posts/2009-09-01-hpricot-och-sinatra-pa-google-app-engine.md +++ b/_posts/2009-09-01-hpricot-och-sinatra-pa-google-app-engine.md @@ -4,20 +4,23 @@ date: 2009-09-01 last_updated_by: peter --- Hpricot är en HTML parser som är skriven i Ruby. Jag gillar den eftersom den är snabb och extremt enkel att jobba med. Den är perfekt om man vill extrahera innehåll från en webbsida som inte tillhandahåller ett färdigt api. Det finns många bra tutorials på nätet. -

    Ett enkelt exempel

    + +## Ett enkelt exempel + För att till exempel hitta alla nyheter på Athegas första sida kan man göra så här. require 'rubygems' require 'open-uri' require 'hpricot' - + # Läs in Athegas första sida doc = Hpricot(open("http://athega.se")) # Xpath uttryck för att hitta nyheterna result = doc/"//*[@id='helplist']/li/a" -

    Hpricot på Google App Engine

    +## Hpricot på Google App Engine + Jag ville använda Hpricot tillsammans med Jruby och Sinatra (som Peter har skrivit mer om) på Google App Engine. Jag följde den här guiden för att komma igång med min Sinatra applikation på App Engine  och det gick smärtfritt. Tyvärr så small det direkt när jag försökte använda mig av Hpricot. Ett AccessControlException kastades. javax.servlet.ServletContext log: Application Error @@ -53,4 +56,4 @@ Sedan transformerade jag resultatet till JSON och la upp applikationen här koden ligger den på Github men tänk på se till så att ni har tillstånd av rättighetsinnehavaren innan ni plockar data från webben. -// [Mikael](/mikael) +/ [Mikael](/mikael) diff --git a/_posts/2009-09-15-ppm-upphandlingen.md b/_posts/2009-09-15-ppm-upphandlingen.md index e49e8d1..3521acc 100644 --- a/_posts/2009-09-15-ppm-upphandlingen.md +++ b/_posts/2009-09-15-ppm-upphandlingen.md @@ -10,4 +10,4 @@ Det är framför allt kompetens inom Perl som Athega kommer att leverera till PP Vi hoppas att det tar ordentlig fart nu i höst, så ska vi köra så det ryker! -// [Fredrik](/fredrik) +/ [Fredrik](/fredrik) diff --git a/_posts/2009-10-01-javascriptprestanda.md b/_posts/2009-10-01-javascriptprestanda.md index 64d69b6..3834a9a 100644 --- a/_posts/2009-10-01-javascriptprestanda.md +++ b/_posts/2009-10-01-javascriptprestanda.md @@ -4,6 +4,7 @@ date: 2009-10-01 last_updated_by: johan --- För moderna webbapplikationer där en större del av koden körs i webbläsaren blir det allt viktigare med bra prestanda för exekvering av JavaScript. + För att kontrollera text i formulärfält och liknande simpla uppgifter är inte hastigheten så avgörande, men vad händer om man försöker köra tyngre beräkningar? För att göra ett benchmark som testar prestandan i de vanligaste webbläsarna har jag skrivit ett program som löser Sudokus. Ett program som löser Sudoku med JavaScript @@ -12,4 +13,4 @@ För att jämföra de olika webbläsarna har jag kört Tid för att lösa ett Sudoku med JavaScript i olika webbläsare -// [Johan](/johan) +/ [Johan](/johan) diff --git a/_posts/2009-10-01-sa-far-du-google-sync-att-fungera-med-din-iphone.md b/_posts/2009-10-01-sa-far-du-google-sync-att-fungera-med-din-iphone.md index 8052622..e0f7ff1 100644 --- a/_posts/2009-10-01-sa-far-du-google-sync-att-fungera-med-din-iphone.md +++ b/_posts/2009-10-01-sa-far-du-google-sync-att-fungera-med-din-iphone.md @@ -9,12 +9,14 @@ Visst, man kan hävda att Googles iPhone-anpassade Safari-applikationer är bra Viktigt att tänka på innan du börjar är att Google endast tillåter ett konto av detta slag (jag har exempelvis lagt till min privata gmail via vanlig IMAP). -

    Aktivera Google Sync för Google Apps

    +### Aktivera Google Sync för Google Apps + För att synkroniseringen ska fungera fullt ut behöver du eller din Google Apps-administratör aktivera Google Sync. Detta görs genom att kryssa för "Aktivera Google Sync" under "Inställningar för mobilen" när du befinner dig på Tjänstinställningar för Google Apps som administratör. Inställningar för mobilen -

    Välj kalendrar

    +### Välj kalendrar + Om du inte aktivt väljer vilka kalendrar du vill synkronisera, kommer du bara få din standardkalender. Detta kanske räcker för en del, men jag har flera olika kalendrar som jag vill få synkroniserade. Att få detta att fungera var inte helt problemfritt. Google kommer säkert förbättra detta, men när detta skrivs behöver du göra enligt nedan. Svenska stöds inte @@ -29,7 +31,8 @@ Nästa steg är att välja din iPhone och sedan vilka kalendrar du vill synkroni Välj kalendrar -

    Sätt upp ett Exchange-konto

    +### Sätt upp ett Exchange-konto + Detta gör du genom att välja Inställningar -> E-post, kontakter, kalendrar -> Lägg till konto... De inställningar du behöver hittar du här. Sätt upp ett Exchange-konto @@ -40,11 +43,13 @@ Om du har befintliga kalendrar får du välja om du vill ersätta dem. I mitt fa Så var det klart, alltid samma data i din iPhone som på Google Apps och med Push! -

    Fördjupning

    +### Fördjupning + Mer information hittar du hos Google: + -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2009-10-06-json-och-mootools-for-web-workers.md b/_posts/2009-10-06-json-och-mootools-for-web-workers.md index 119eb33..1866989 100644 --- a/_posts/2009-10-06-json-och-mootools-for-web-workers.md +++ b/_posts/2009-10-06-json-och-mootools-for-web-workers.md @@ -5,7 +5,8 @@ last_updated_by: peter --- MooTools är en trevlig verktygslåda som främst är tänkt för att skriva JavaScript-kod som manipulerar element på en webbsida och skapar animeringar och grafiska effekter. Därför är den starkt knuten till objekten window och document som finns i det globala kontextet när JavaScript-kod körs på en vanlig webbsida. -

    MooTools i Worker-kontext

    +## MooTools i Worker-kontext + Men MooTools har även hjälpmedel för att skriva objektorienterad kod samt en del utökningar och förbättringar för språket som sådant. Om man vill dra nytta av detta för kod som körs i ett annat sammanhang där window och document inte finns tillgängliga, t.ex. i en Web Worker tråd, vad gör man för att få mootools att fungera då? En variant är att skapa mock-up objekt för att maskera det faktum att objekten inte finns, tomma skelett som bara innehåller det nödvändigaste för att mootools skall kunna laddas utan fel. Självklart ger inte detta tillgång till någon funktionalitet som är beroende av dessa objekt men övriga funktioner finns på plats. @@ -28,14 +29,17 @@ En variant är att skapa mock-up objekt för att maskera det faktum att objekten } -

    Skicka objekt till Workers

    -Eftersom Web Workers är helt isolerade från webbsidan, dvs. inte har tillgång till något delat minne, går det inte att skicka objekt till dem hur som helst. Enda sättet att kommunicera är genom att posta meddelanden som bara kan överföra strängar. Självklart kan man då serialisera objekten till JSON och skicka med dem. +## Skicka objekt till Workers + +Eftersom Web Workers är helt isolerade från webbsidan, dvs. inte har tillgång till något delat minne, går det inte att skicka objekt till dem hur som helst. Enda sättet att kommunicera är genom att posta meddelanden som bara kan överföra strängar. Självklart kan man då serialisera objekten till JSON och skicka med dem. + +### Varför heter det JSON? -
    Varför heter det JSON?
    Vad jag då skulle vilja reflektera över är varför det kallas JavaScript Object Notation. Ett objekt är ju en sak som vet vad den är och kan göra saker själv, dvs. en datastruktur med tillhörande kod som beskriver hur den skall uppföra sig. När man serialiserar ett objekt till en JSON-sträng försvinner alla kodreferenser, dvs. objektets metoder, kvar har man bara datastrukturen. Därför kan det tyckas vara mer korrekt att det borde kallas JavaScript Data Notation -
    Välsigna datastrukturer
    +### Välsigna datastrukturer + Vad gör vi då för att kunna använda datastrukturer som blivit deserialiserade från JSON som fullfjädrade objekt? Vi kan välsigna dem tillbaka till sin klasstillhörighet genom att koppla ihop datastrukturen med metoderna från klassen igen. Därför skapar vi en en konstruktor som heter bless i basklassen för alla klasser Class som tar en datastruktur och utökar en ny instans av klassen med denna. // Contructor that returns a new instance of this class @@ -52,10 +56,10 @@ Då kan vi sedan göra exempelvis så här: alert(this.myData); } }); - + var myObject = new MyClass(); var string = JSON.encode(myObject); - + var data = JSON.decode(string); // data.doStuff(); <--- Not possible here var newObject = MyClass.bless(data); @@ -63,4 +67,4 @@ Då kan vi sedan göra exempelvis så här: På så vis kan man återskapa objekt som är identiska med de som skickades trots att de har blivit omvandlade till och från en ren textsträng på vägen. -// [Johan](/johan) +/ [Johan](/johan) diff --git a/_posts/2009-11-09-athega-pa-escenicutbildning-i-oslo.md b/_posts/2009-11-09-athega-pa-escenicutbildning-i-oslo.md index 660a6db..580948f 100644 --- a/_posts/2009-11-09-athega-pa-escenicutbildning-i-oslo.md +++ b/_posts/2009-11-09-athega-pa-escenicutbildning-i-oslo.md @@ -9,4 +9,4 @@ Vi fick bland annat lära oss Escenic "best practices" och hur man på bästa s Det var tre givande dagar och vi kom tillbaka till Stockholm med mycket ny kunskap som förhoppningsvis även våra kunder kommer dra stor nytta av. -// [Mikael](/mikael) +/ [Mikael](/mikael) diff --git a/_posts/2009-11-10-den-produktive-programmeraren.md b/_posts/2009-11-10-den-produktive-programmeraren.md index b5b771f..9b12c07 100644 --- a/_posts/2009-11-10-den-produktive-programmeraren.md +++ b/_posts/2009-11-10-den-produktive-programmeraren.md @@ -8,35 +8,51 @@ last_updated_by: peter En av de bättre dragningarna på årets Øredev var Neal Ford's ”The Productive Programmer: Mechanics”. Neal har skrivit en bok med samma namn, som jag hört litet blandad kritik om. Därför hade jag inga större förväntningar när jag klev in i rummet. Efter orden ”Graphical tools are med for novices” visste jag att detta var något för mig! Nedan följer en rad tips, som alla syftar till att hjälpa dig bli en mer produktiv programmerare, oavsett om du använder emacs, notepad eller Eclipse. -

    Urklippshanteraren (eller clipboard)

    + +## Urklippshanteraren (eller clipboard) + Varför, varför finns det bara plats för ett urklipp i taget i dagens moderna operativsystem (*nix-dialekter undantagna)? Det är ju helt tokigt att inte kunna gå tillbaka och ta fram något man kopierade eller klippte ut för bara några minuter sedan, bara för att man råkat svara på ett mail, mitt i ett enhetstest eller liknande. Lösningen finns i form av några hjälpprogram: + -

    Lär dig kortkommandon

    + +## Lär dig kortkommandon + Tiden det tar att lära sig även det mest obskyra kortkommando är väl investerad tid. Varje gång dina fingrar måste lämna tangentbord slösar du med tid. Hitta en bra partner att parprogrammera med och be honom/henne raljera över hur långsam du är varje gång du använder musen. -

    Scripta dina vanligast kommandon/texter

    + +## Scripta dina vanligast kommandon/texter + Om du märker att du ofta skriver samma sak, skriver samma fel eller skriver samma sekvens av kommandon i en terminal, finns det hjälp. Textexpander är ett litet makroverktyg som verkligen sparar tid. Du kan använda det till allt från epostsignaturer till kod-"snippets". Tyvärr kostar det pengar och finns det bara för Mac, men jag är övertygad om att det finns ett Windowsalternativ. -

    ”Locus of Attention”

    + +## ”Locus of Attention” + Att kunna fokusera och komma in i flytet (”the Flow” eller ”the Zone”) är lika viktigt som verktygen du använder. Om du programmerar vill du att platsen för din uppmärksamhet (fritt översatt) ska vara din IDE. Inte din klienter för IM, Twitter eller email, etc. Med den mängd information vi utsätts för varje minut är detta svårare och svårare. +
    • Stäng av dina klienter för epost, twitter och IM och uppdatera dig då och då när du tar en paus från programmerandet
    • Använd hörlurar för att visa att du inte vill bli störd
    • Inför tysta timmar på kontoret, exempelvis mellan 14 och 16 varje dag då du verkligen kan fokusera
    + Neal menar exempelvis att Windows är som en treåring som konstant stör dig med påpekanden som ”Du har oanvända ikoner på ditt skrivbord", ”Ditt virtuella minne håller på att ta slut” eller ”Det finns säkerhetsuppdateringar till din dator”. För att ytterligare hjälpa dig att minska störande moment finns det verktyg, skärm-dimmers, som sakta släcker ner allt förutom ditt akiva fönster: + -

    Sök

    + +## Sök + En sökning slår alltid navigation med mus eller till och med tangentbord. Se till att du har en bra lokal sökmotor för din dator, som Google Desktop (Mac/Windows) eller QuickSilver (Mac). Neal menar att navigera i en trädstruktur i utforskaren eller i din IDE är som att berätta för datorn att du vet hur du använder musen. Om du vet vad filen heter - sök! -

    Automatisera

    + +## Automatisera + Ett spiffigt användningsområde för Selenium är faktiskt att automatisera ditt iterativa testande. Du kanske felsöker en funktion som kräver att du klickar dig igenom en sekvens, fyller i litet testdata och till slut når fram till funktionen du felsöker. Denna process kan bli ganska trist att upprepa om och om igen. Med Seleniums IDE, som du installerar som ett plugin till Firefox, kan du enkelt spela in sekvensen en gång och sedan spela upp den varje gång du vill testa. Eller som Neal uttrycker det; ”You should never manually interact with the thing you are building unless you want to”. Han avslutar med tänkvärda ”Solving problems by hand, makes you dumber”. Word! diff --git a/_posts/2010-03-18-extensions-for-episerver.md b/_posts/2010-03-18-extensions-for-episerver.md index 46c82ab..4d725fe 100644 --- a/_posts/2010-03-18-extensions-for-episerver.md +++ b/_posts/2010-03-18-extensions-for-episerver.md @@ -20,6 +20,7 @@ Min klass innehåller ett antal funktioner för att underlätta arbetet med EPiS Inte nöjd med mina eller vill du ha ännu mer extensions så kan du kolla på EPiCode där man försöker sammanställa bra extensions från epi-utvecklare. + -// Markus +/ Markus diff --git a/_posts/2010-03-24-testar-pomodoro-tekniken.md b/_posts/2010-03-24-testar-pomodoro-tekniken.md index 0808827..a510b69 100644 --- a/_posts/2010-03-24-testar-pomodoro-tekniken.md +++ b/_posts/2010-03-24-testar-pomodoro-tekniken.md @@ -11,7 +11,6 @@ Pomodoros syfte är att försöka hjälpa dig att få så mycket som möjligt ut - Som tidtagarur la jag in en widget i min dashboard som hette "Tea Timer" som håller reda på min tid. Skall inte gå in på det mycket djupare då jag ännu inte kan titulera mig expert i ämnet men känner du samma som mig att man ibland kan bli stressad av att tiden bara flyger iväg, så kanske detta är något för dig. -// Markus +/ Markus diff --git a/_posts/2010-04-09-jquery-ar-snyggt.md b/_posts/2010-04-09-jquery-ar-snyggt.md index 672b958..e10a089 100644 --- a/_posts/2010-04-09-jquery-ar-snyggt.md +++ b/_posts/2010-04-09-jquery-ar-snyggt.md @@ -9,10 +9,12 @@ Min idé var att göra ett lajvflöde av Flickr -

    JSONP

    +## JSONP + Både Flickr och Twitter har rika APIer i JSON-format som gör det lätt att åstadkomma det jag vill. Då dessa av naturliga skäl inte ligger på samma domän som min labb, kan jag inte göra ett vanligt XHR-anrop eftersom webbläsaren av säkerhetsskäl kastar ett same domain-policy-fel. Räddningen stavas JSONP, som helt enkelt wrappar hela JSON-svaret i ett metodanrop. Detta går vi inte in närmare på denna gång, utan konstaterar istället glatt att jQuery har stöd för detta och löser detta under ytan. -

    jQuerys effektköer

    +## jQuerys effektköer + Planen är alltså att långsamt smyga in en bild, visa den ett tag, sedan dimma ner den och till sist ta bort den helt. Sedan jQuery 1.4 finns det en toppenmetod för att hantera pauser i den allmänna effektkön, fx. Metoden heter delay() och låter mig åstadkomma önskat beteende på ett oerhört kompakt och tydligt vis. @@ -22,8 +24,8 @@ Sedan jQuery 1.4 finns det en toppenmetod för att hantera pauser i den allmänn delay(1000). fadeTo('slow', 0.3). delay(2000). - fadeOut('fast', function() { - $(this).remove(); + fadeOut('fast', function() { + $(this).remove(); }); @@ -39,4 +41,4 @@ Det är ju nästan som att prata svenska (engelska)! Vi repeterar: Vill du se hur det ser ut, kan du titta här eller ladda ner hela koden och labba vidare själv. -// [Chrille](/chrille) +/ [Chrille](/chrille) diff --git a/_posts/2010-04-10-unobtrusive-javascripts.md b/_posts/2010-04-10-unobtrusive-javascripts.md index 867eba8..905e3c6 100644 --- a/_posts/2010-04-10-unobtrusive-javascripts.md +++ b/_posts/2010-04-10-unobtrusive-javascripts.md @@ -11,19 +11,19 @@ I mitt scenario jobbar jag med ett projekt som kallas "Acme". Jag utgår därfö
     var acme = function() {
    -	
    +
     	// Initierare
     	var init = function() {
     		// Initiera eventuella kontroller etc.
     		// Anropa eventuella andra privata funktioner
     		somePrivateFunction();
    -	}, 
    -	
    +	},
    +
     	// Denna funktionen blir "privat" eftersom den inte returneras
     	somePrivateFunction = function() {
    -		
    +
     	}
    -	
    +
     	return {
     		init: init
     	};
    @@ -33,23 +33,25 @@ $(function() {
     	acme.init();
     });
     
    + När denna scriptfil körs på sidan kommer automatiskt init anropas efter dom:en har laddats. Då kan man där i manipulera dom:en eller kanske binda något event osv. Säg sedan att mitt projekt innehåller ett forum som behöver specifik javascriptlogik som bara gäller för forumet. Jag skapar därför en "acme.forum.js" som skulle kunna se ut såhär; +
     acme.forum = function() {
     	var someVariable,
    -	
    +
     	// Initierare, bind knapphändelser m.m
     	init = function() {
     		$("#someButton").click(validateEmail);
     	},
    -	
    +
     	// Validerar e-postadress
     	validateEmail = function(event) {
     		// Logik för validering
     	}
    -	
    +
     	return {
     		init: init
     	};
    @@ -60,10 +62,10 @@ $(function() {
     });
     
    -Här bygger jag vidare på "acme" variabeln som vi tidigare skapat (eller "namespacet" om ni nu så vill). Enligt detta tänk fortsätter jag med alla delar av projektet. +Här bygger jag vidare på "acme" variabeln som vi tidigare skapat (eller "namespacet" om ni nu så vill). Enligt detta tänk fortsätter jag med alla delar av projektet. När koden sedan skall ut i produktion brukar jag se till att minifiera och kombinera alla mina javascript (även tredjepartsbibliotek t.ex jQuery) till en enda fil vid namn "acme.min.js". Detta gör jag för att få ner antalet requests så mycket som går och även få ner storleken på dem. Jag har haft nöjet att jobba ihop med Robert Nyman som har en bra bloggpost om vilka minifierare som finns att tillgå i denna posten. I mitt fall har jag använt YUI Compressor for .NET som ett "post build-event" som även sköter minifiering av din CSS. Ett tips är att endast inkludera den minifierade CSS:en när det inte är debugg-kompilerat så blir det oerhört mycket enklare i utvecklingsprocessen. -// Markus +/ Markus diff --git a/_posts/2010-05-09-frozen-rails.md b/_posts/2010-05-09-frozen-rails.md index ed9e935..09011f4 100644 --- a/_posts/2010-05-09-frozen-rails.md +++ b/_posts/2010-05-09-frozen-rails.md @@ -4,23 +4,30 @@ date: 2010-05-09 last_updated_by: peter --- I fredags gick konferensen Frozen Rails av stapeln i Helsingfors och Athega var självklart representerade. +

    Rails at GitHub (Chris Wanstrath, @defunkt)

    + Konferensen inleddes av Chris Wanstrath som gick igenom hur Ruby on Rails används på GitHub. Vi fick även reda på hur de använder Git (grit, smoke, chimney) och hur de hanterar meddelandeköer (resque). Några av projekten som nämndes: +
    • albino för syntax highlighting genom (front för pygmentize)
    • faker för att generera påhittad data: namn, adresser, telefonnummer
    • Rack HTTP servern Unicorn
    +

    The Plataforma Way (José Valim, @josevalim)

    Dagens andra föreläsning hölls av José Valim från Plataforma tecnologia. José pratade om autentiseringslösningen Devise (bygger på Warden), domänspråket simple_form (inspirerat av Formtastic) samt Responders vilket är en utbyggnad av respond_with i Rails 3. Lite rörig föreläsning men med många intressanta projekt, kommer speciellt hålla koll på Devise. + + Jag har sedan jag bloggade om MongoDB första gången varit intresserad av projektet och nu fick vi verkligen en bra genomgång av 10gen’s Michael Dirolf. Översikt av MongoDB: +
    • Atomiska operationer per dokument (:$push)
    • Dynamiska frågor
    • @@ -29,12 +36,15 @@ Jag har sedan jag bloggade om MongoDB JavaScript parser
    +

    Mobile Web Apps with Rails 3 (Yehuda Katz, @wycats)

    + Yehuda Katz på Frozen Rails Även om jag sett föreläsningen tidigare (Efter Philly ETE, Emerging Technologies for the Enterprise) så var det bra att få se den live så att säga. Några av punkterna som Yehuda berörde: +
    • HTML 5 LocalStorage (samt Offline API)
    • Föredra gammal data
    • @@ -42,7 +52,9 @@ Några av punkterna som Yehuda berörde:
    • Betrakta webbläsaren som en API-klient
    • “Sip, don’t gulp”
    + Projekt: +
    • Rack::Offline
    • jQuery Offline
    • @@ -54,18 +66,23 @@ Projekt: Frozen Rails Cucumbered
      (Foto: Chris Comella)

      + Den bästa föreläsningen på hela konferensen stod Joseph Wilk för, ämnet var Cucumber och mer specifikt hur man ser till att testerna går så fort som möjligt. (Cucumber 0.7 är för övrigt så galet snabb att det inte ens är roligt nu när de bytt från TreeTop till Ragel) Några av Josephs punkter: +
      • Cukover vs. Autotest
      • Harmony (Frontar Trace/SpiderMonkey i Ruby)
      • cucumber --format
      +

      CouchDB on Rails (Jonathan Weiss, @jweiss)

      + Jonathan hade ett digert uppdrag framför sig då konferensdeltagarna direkt jämförde allt med hur det fungerar i MongoDB. Tyvärr var exemplen lite för enkla och visade inte riktigt på styrkan i CouchDB, snarare att det är “svårare” att ställa enkla frågor än med SQL då man måste implementera map/reduce i JavaScript själv. (Vilket är en BRA grej när man gör lite mer avancerade saker) Några av punkterna: +
      • “Built for the web”
      • Skalar bra
      • @@ -80,7 +97,9 @@ Några av punkterna:
      • HTTP cache (Varnish) och lastbalansering (HAProxy, nginx)
      • Inbäddad Lucene (Killer feature?)
      +

      Rails 3: Tasty Burgers (Carl Lerche, @carllerche)

      +
      • Bundler (Isolation av gems)
      • Möjligt att använda jQuery i Rails!
      • @@ -88,7 +107,9 @@ Några av punkterna:
      • Rack överallt!
      • rails_upgrade
      +

      Perfectionism (Jarkko Laine, @jarkko)

      + Priset för den nervösaste killen på hela konferensen måste ha gått till Jarkko. Förutom detta var det en grym sista föreläsning om hur vi perfektionister ofta har problem med att skeppa något innan det är helt perfekt. (vilket det kanske aldrig blir) Han rekomenderade även boken The Cluetrain Manifesto (hela bokens text) Perfection, Minimally Viable Product, Markets are conversations, Ship! diff --git a/_posts/2010-05-21-ruby.md b/_posts/2010-05-21-ruby.md index 7b26883..d6b577d 100644 --- a/_posts/2010-05-21-ruby.md +++ b/_posts/2010-05-21-ruby.md @@ -5,29 +5,30 @@ last_updated_by: peter --- -
      -
      -

      Jobbet

      -

      Vi söker dig som brinner för Ruby och gillar att ställas inför nya spännande utmaningar. Våra kunder finns i ett flertal branscher och det finns goda möjligheter att hitta en plats där din kompetens är ovärderlig.

      +### Jobbet + +Vi söker dig som brinner för Ruby och gillar att ställas inför nya spännande utmaningar. Våra kunder finns i ett flertal branscher och det finns goda möjligheter att hitta en plats där din kompetens är ovärderlig. + +### H21, vårt kontor + +Lokalerna ligger på Hantverkargatan i Stockholm, nära till tunnelbanan, bussar och parkering. Här samlas vi för utbildning och i perioder interna projekt. -

      H21, vårt kontor

      -

      Lokalerna ligger på Hantverkargatan i Stockholm, nära till tunnelbanan, bussar och parkering. Här samlas vi för utbildning och i perioder interna projekt.

      Athega, My desk -
      -
      -

      Praktiska meriter

      -

      Vi vill att du har goda kunskaper i Ruby, Linux, Apache, MySQL, Git och något/några testramverk som RSpec, Cucumber, Shoulda et.c. Har du även kunskaper i Ruby on Rails, Sinatra och känsla för grafisk formgivning eller gränssnittsprogrammering, är det ett stort plus. Viktigast är dina praktiska erfarenheter och kunskaper samt din vilja att utveckla och att utvecklas.

      - -

      Vilja att lära sig

      -

      Vi som arbetar på Athega sätter utveckling främst. Både vår tekniska kompetens och våra personliga egenskaper. Vi håller internutbildningar som hjälper oss att dela på nyvunnen kunskap. Licensieringar och externa kurser/seminarium sätter spets på vår kompetens. För att passa in på Athega måste du ha en vilja att utvecklas och lära dig nya saker!

      - -
      -
      -

      Flexibilitet

      -

      På Athega har du möjlighet att ta del av en mycket förmånlig lönemodell. Vi är en platt organisation där din åsikt är viktig och beslutsvägarna är korta. Athega har flexibla arbetstider, men hos kunder rättar vi oss efter deras arbetstider. Våra kunder förväntar sig att vi är sociala, flexibla och att vi snabbt anpassar oss till deras olika arbetsplatser och system.

      - -

      Arbeta hos oss!

      -

      Skicka din ansökan till rekrytering@athega.se

      -

      Har du några frågor om tjänsten får du gärna kontakta Fredrik Söder på telefonnummer 070-915 60 02.

      -
      -
      + +### Praktiska meriter + +Vi vill att du har goda kunskaper i Ruby, Linux, Apache, MySQL, Git och något/några testramverk som RSpec, Cucumber, Shoulda et.c. Har du även kunskaper i Ruby on Rails, Sinatra och känsla för grafisk formgivning eller gränssnittsprogrammering, är det ett stort plus. Viktigast är dina praktiska erfarenheter och kunskaper samt din vilja att utveckla och att utvecklas. + +### Vilja att lära sig + +Vi som arbetar på Athega sätter utveckling främst. Både vår tekniska kompetens och våra personliga egenskaper. Vi håller internutbildningar som hjälper oss att dela på nyvunnen kunskap. Licensieringar och externa kurser/seminarium sätter spets på vår kompetens. För att passa in på Athega måste du ha en vilja att utvecklas och lära dig nya saker! + +### Flexibilitet + +På Athega har du möjlighet att ta del av en mycket förmånlig lönemodell. Vi är en platt organisation där din åsikt är viktig och beslutsvägarna är korta. Athega har flexibla arbetstider, men hos kunder rättar vi oss efter deras arbetstider. Våra kunder förväntar sig att vi är sociala, flexibla och att vi snabbt anpassar oss till deras olika arbetsplatser och system. + +## Arbeta hos oss! + +Skicka din ansökan till rekrytering@athega.se + +Har du några frågor om tjänsten får du gärna kontakta Fredrik Söder på telefonnummer 070-915 60 02. diff --git a/_posts/2010-05-28-nordic-ruby.md b/_posts/2010-05-28-nordic-ruby.md index 966b74d..1f09af4 100644 --- a/_posts/2010-05-28-nordic-ruby.md +++ b/_posts/2010-05-28-nordic-ruby.md @@ -4,21 +4,29 @@ date: 2010-05-28 last_updated_by: peter --- Förra fredagen åkte jag, Robert och Mats ner till Göteborg för att gå på konferensen Nordic Ruby. +

      Lördag

      +

      Standing On the Shoulders of Giants

      Corey Haines inledde konferensen med en uppmaning om att reflektera över hur och varför man arbetar som man gör. +

      “Message passing, not objects” “Lotus notes is a good document database”

      +

      Cucumber Inside

      + Aslak Hellesøy höll konferensens andra föreläsning och ämnet var inte helt oväntat testramverket Cucumber samt dess språk Gherkin vilket nu har extraherats till en gem. Den imponerande prestandaökningen i Cucumber den senaste tiden beror på att man har bytt ut TreeTop mot Ragel. Aslak nämnde även hur hooks i Cucumber fungerar. +

      Neo4j.rb - The Benefits of Graph Database

      + Andreas Ronge berättade om sitt projekt Neo4j.rb vilket är en grafdatabas för JRuby. +
      • Inbäddad
      • ACID
      • @@ -26,17 +34,23 @@ Aslak nämnde även hur Neo4j samt Lucene. Neo4j inkluderar ett flertal algoritmer, t.ex. Dijkstra. Möjligheten att traversera djupa relationsgrafer verkar ha ett ganska begränsat användningsområde, men när man väl behöver göra det så är det säkerligen mycket kraftfullt. +

        Rubyists, you can write JavaScript again

        + Priset för konferensens effektfullaste introduktion måste gått till Dr Nic a.k.a. Iron Man. Han började med att nämna att man kan köra JavaScript i Ruby med hjälp av Johnson (Mozilla SpiderMonkey) och att man kan använda capybara-envjs för att testa sina javascript på serversidan. Men efter det var det CoffeeScript som gällde. +

        “Capybara because it’s AWESOME”

        + CoffeeScript är i korta drag: + +

        Enough Design

        + Ian McFarland från Pivotal Labs pratade om agila designprocesser och hur viktigt det är med en kort “feedback loop”. Han påpekade att det är viktigt att iterera över problem, oavsett storlek. En bra design är: +
        • Modulär
        • Principfast
        • Regelbaserad
        • UX > Pixlar!
        +

        The Ruby advantage - metaprogramming and DSLs (.pdf, 22MB)

        + Man kan inte bli annat än imponerad av Niclas Nilsson när han så “vårdslöst” tvingar Ruby att bete sig som han vill. Han berättade om hur man med lite fantasi kan bygga ett internt DSL utan att för den skull ha tillgång till Rubys AST. Han visade även sin gem properties. +

        Middag på SoHo

        + Lördagskvällen spenderade jag med att diskutera hackerspaces, användning av Ruby för utveckling mot Arduino, mikrobryggerier i USA och mycket annat. +

        Söndag

        +

        From artist to programmer

        + Dagens första föreläsning stod Keavy McMinn för, och hon pratade om likheter (och skillnader) mellan konstnärskap och programmering. +

        “Just make”

        +

        Några av hennes punkter

        +
        • Var öppen för förändringar
        • Det går att bygga något utan initial finansiering
        • Vi utvecklas genom reflektion
        +

        The MongoDB Effect

        + Jag hade gärna sett att Durran Jordan och Les Hill hade fokuserat lite mer på Mongoid än vad de gjorde. Vi vet redan att MongoDB är häftigt. Enligt Durran borde man ALLTID använda MongoDB. +

        Mongoid

        +
        • Rails 2 och Rails 3
        • Atomiska operationer
        • @@ -91,15 +122,21 @@ Enligt Durran borde man ALLTID använda MongoDB.
        • Scopes som tar block
        • Master/Slave
        +

        SOLID Ruby

        + Jag hade verkligen sett fram emot Jim Weirich föreläsning om SOLID och jag blev inte besviken. +

        Några av hans punkter

        +
        • Fördela ansvaret
        • Monkey patchning i bibliotek är dåligt (Arv framför öppna klasser)
        • Protokoll är viktiga
        +

        Artificial stupidity, adding smarts to yer kode with a little machine learning

        + Konferensens tyngsta föreläsning (med råge) stod Randall Thomas från Engine Yard för. @@ -107,7 +144,9 @@ Konferensens tyngsta föreläsning (med råge) stod R och RSRuby. Den enligt mig intressantaste delen av föreläsningen bestod i användningen av en support vector machine (KSVM i R) för att gruppera data och sedan använda detta för rekomendationer. Böcker: Super Crunchers, Introductory Statistics with R +

        Software for the Human Animal

        + Hampton Catlin pratade om skillnaderna mellan manlig och kvinnlig design. Att vi inte är mycket mer än djur och att Internet är den nya vildmarken. Han hävdade att vi människor generellt sett är självorganiserande och framförallt trevliga. Vi borde alltså sluta motverka på de fåtal användare som förstör och istället uppmuntra och belöna de användare som uppför sig. diff --git a/_posts/2010-09-21-javascriptprestanda-2010.md b/_posts/2010-09-21-javascriptprestanda-2010.md index 38100b7..15dcd1d 100644 --- a/_posts/2010-09-21-javascriptprestanda-2010.md +++ b/_posts/2010-09-21-javascriptprestanda-2010.md @@ -6,7 +6,7 @@ last_updated_by: johan Förra hösten skrev jag ett program som löser Sudokus och körde det som ett enkelt benchmark-test av javascriptprestandan i de olika webbläsarna. Nu har jag uppdaterat testresultatet för senaste versionen av de vanligaste webbläsarna och man kan lugnt konstatera att det hänt en hel del på javascriptfronten det senaste året. -Testet jag körde är samma Sudoku-kombination som förra gången. Tiden det tar att räkna fram alla möjliga lösningar på just min dator jämförs med tiden det tog i den version av respektive webbläsare som var aktuell för ett år sedan. +Testet jag körde är samma Sudoku-kombination som förra gången. Tiden det tar att räkna fram alla möjliga lösningar på just min dator jämförs med tiden det tog i den version av respektive webbläsare som var aktuell för ett år sedan. Internet Explorer står för den överlägset största förbättringen och är verkligen med i matchen nu. Opera har gjort ett rejält ryck och kapat sin tid till en bråkdel. Firefox har förbättrat sin tid lite men har ändå helt plötsligt hamnat efter de andra. Chrome och Safari har putsat mer marginellt på sina redan låga tider. @@ -23,4 +23,4 @@ På Mac OSX ser det ut så här. Där skiljer ingenting mellan Firefox 3.6 och F På mobiltelefoner går det förstås inte lika snabbt. Här blir det inte heller så mycket en jämförelse mellan olika webbläsare utan mellan olika mobilplattformar och dess hårdvara. Det kan ändå ge en liten uppfattning vad man har för javascriptprestanda att tillgå när man utvecklar webbapplikationer för en mobil jämfört med en fullstor webbläsare. Om du klickar på grafen och kör detta test på din mobil, skriv gärna resultatet som en tweet. -//[[Johan]] +/ [Johan](/johan) diff --git a/_posts/2010-10-19-mountain-rb-1.md b/_posts/2010-10-19-mountain-rb-1.md index cb227d9..d71bd8b 100644 --- a/_posts/2010-10-19-mountain-rb-1.md +++ b/_posts/2010-10-19-mountain-rb-1.md @@ -6,7 +6,6 @@ last_updated_by: peter Flat Irons Boulder Athegas Peter Hellberg (@peterhellberg) och Andrew Crookston (@acrookston) har precis spenderat några dagar i Boulder, Colorado, USA (karta) för att medverka på konferensen Mountain.rb – "A ruby pioneers conference" . - Konferensen lockade med flera ledande personligheter inom Ruby communityn som Jim Weirich (@jimweirich) uppfinnare av Rake, Blake Mizerany (@bmizerany) uppfinnare av Sinatra och Evan Phoenix (@evanphx) lead developer på Rubinius ett alternativt Ruby VM, samt många andra duktiga talare. Första dagen spenderade vi med en promenad i staden där vi bland annat hälsade på hos Dojo4 – en lokal utvecklingsbyrå, och tog oss upp till en av Boulders mer kända utsiktsplatser, Chautauqua som ligger vid foten av Flat Irons (bilden). Boulder ligger fantastiskt vackert vid 1,655 meter höjd precis där Rocky Mountains möter The Great Plains. Längs med hela den västra horizonten, från norr till syd, tornar bergen rakt upp ur marken som en vägg. Vänder man blicken mot öster ser man bara platt mark så långt ögat når. @@ -16,3 +15,5 @@ Boulder har drygt 100 000 invånare och Colorados officiella (och största) univ Eftermiddagen bjöd på registrering med mingel. Arrangören Marty Haught (@mghaught) hade till konferensen hittat på en liten kort-bytar lek där man vid registreringen fick välja mellan fyra karaktärer; Cowboy, Prospector, Homesteader och Trapper. Detta val visade sig ha lite konsekvenser senare under konferensen när vi fick spelreglerna förklarade för oss tillsammans med en uppmaning att skapa valfritt program för att räkna poäng eller göra annat kul med korten vi hade. Vi träffade bland andra Brennan Dunn (@brennandunn) som bygger ett riktigt intressant öppet källkods-projekt som heter Rack::CMS, ett lättviktigt CMS som gör det möjligt för icke tekniker att ändra textinnehåll på en hemsida, använder Redis som lagringsmotor. Peter Williams (@pezra) med Resourceful, ett gem för cachning av HTTP requests och Ryan Angilly (@angilly) lokal entreprenör som bland annat byggt gwop.us ett mikrobetalningssystem för bloggare. + +/ [Peter](/peter) diff --git a/_posts/2010-10-19-mountain-rb-2.md b/_posts/2010-10-19-mountain-rb-2.md index f6af05e..6dee36e 100644 --- a/_posts/2010-10-19-mountain-rb-2.md +++ b/_posts/2010-10-19-mountain-rb-2.md @@ -4,28 +4,43 @@ date: 2010-10-19 last_updated_by: peter --- -

        Jim Weirich (@jimweirich) - “To Infinity And Beyond

        + +## Jim Weirich (@jimweirich) - “To Infinity And Beyond” + Jim höll i konferensens första keynote, titeln löd  och innehöll allt från Speciella relativitetsteorin, rymdresor och Jims släktskap med folkgruppen Amish. +
        Our world is stranger than we think
        + Jim identifierade några områden som går att förbättra: +
        • Testning/Expressiveness (Han har börjat jobba på ramverket Given)
        • Parallellism och stöd för flera CPU-kärnor
        • Message passing mellan Ruby VMs
        -

        Tech Block #1

        -

        Jay McGavren (@jaymcgavren) - “Ruby on Android with Ruboto”

        - + +## Tech Block #1 + +### Jay McGavren (@jaymcgavren) - “Ruby on Android with Ruboto” + + Jay berättade om Ruboto vilket är ett projekt som gör det möjligt att köra Ruby under Android. Som demonstration körde han en DRb server med Ruby Processing som han sedan fjärrstyrde från sin Androidmobil. Tydligen har Dalvik en väldigt långsam reflektion, men det är något man aktivt jobbar med att lösa. -

        Wayne Seguin (@wayneeseguin) - “Do not Bring a Sword to a Gun Fight”

        -Kortfattat kan man säga att föreläsningen handlade om att välja rätt verktyg för jobbet. + +### Wayne Seguin (@wayneeseguin) - “Do not Bring a Sword to a Gun Fight” + + + +Kortfattat kan man säga att föreläsningen handlade om att välja rätt verktyg för jobbet. +
        Common sense isnt’t that common
        + De steg som Wayne gick igenom var: +
        • Definiera problemet
        • Förstå problemet
        • @@ -33,44 +48,79 @@ De steg som Wayne gick igenom var:
        • Utvärdera de olika lösningarna
        • Lös problemet
        + Wayne är kanske mest känd för att ha skapat versionshanteraren RVM. +

        Tony Arcieri (@bascule) - “Reia: Ruby Evolved”

        + Tony berättade om Reia (uttalas RAY-uh), vilket är ett Ruby/Python-liknande språk som körs under Erlangs VM (BEAM) Projektet är i sin linda, men källkoden ligger självklart på GitHub så det är bara att sätta igång och experimentera om man känner att man behöver en något trevligare syntax än vad Erlang erbjuder. En trevlig liten detalj är att en JSON-parser finns inbyggd i språket. Stränghanteringen är även helt OK, men inte direkt snabb. +
        The fun syntax isn’t that FUN in Erlang
        -

        Lunch

        + +## Lunch + Under lunchen snackade jag lite med Joshua Timberman (@jtimberman) från Opscode. De utvecklar verktyget Chef vilket används för deployment och konfiguration av servrar på infrastrukturnivå (Server configuration management). Som alternativ kan man nämna Puppet från Puppet Labs. -

        Evan Phoenix (@evanphx) - “Staking your Claim in OSS”

        + +## Evan Phoenix (@evanphx) - “Staking your Claim in OSS” + Evan gick igenom hur man driver ett lyckat open source-projekt. Fyra av de viktigaste poängerna var: +
        • Karma
        • Open source är ett socialt fenomen
        • Kommunicera!
        • -
        • Var trevlig och håll en sansad ton, även om du inte vill acceptera vissa patchar.
        • +
        • + Var trevlig och håll en sansad ton, även om du inte vill acceptera vissa patchar. +
          + +
        +
        Fork for LOVE!
        -Det självklara exempelprojektet var hans eget heltidsprojekt Rubinius. (En implementation av Ruby, Engine Yard sponsrar utvecklingen) -

        Rubinius

        + +Det självklara exempelprojektet var hans eget heltidsprojekt Rubinius. + +_(En implementation av Ruby, Engine Yard sponsrar utvecklingen)_ + +### Rubinius + Projektet har många utvecklare då man från början bestämt att det räcker med en enda patch för att få commit-rättigheter. Evan beskrev lätta buggfixar som lågt hängande frukt och en “gateway drug” för nya utvecklare. De har haft färre än 10 reverts under de tre år som projektet har funnits. Mycket beroende på det sociala kontraktet mellan utvecklarna. - -

        Joe O'Brien (@objo) - “Everyone should know a little about Sales”

        + + +## Joe O'Brien (@objo) - “Everyone should know a little about Sales” + Joe berättade om sina erfarenheter som säljare och varför försäljning fått ett så dåligt rykte. Hans poäng var att försäljning handlar om att identifiera behov och hitta lösningar som passar båda parter. (Ganska likt det vi utvecklare gör) Han fortsatte även med att alla anställda är säljande, oavsett yrkesroll. -

        Peter Jackson (@peteonrails) - “Introduction to Geospatial Programming with GeoRuby, PostGIS, and OpenLayers”

        + +## Peter Jackson (@peteonrails) - “Introduction to Geospatial Programming with GeoRuby, PostGIS, and OpenLayers” + Peter hade en ganska generell genomgång av geospatiell mappning (projektion/geometri) samt en snabb genomgång av projekten GeoRuby, PostGIS och OpenLayers. -

        Jay Zeschin (@jayzes) - “Avoiding the Seven Year Itch”

        -Jay från Factory Design Labs avslutade dagens föreläsningar med lite tips för de som sitter fast i långtgående projekt, föråldrade projektmodeller eller legacy-system. Han nämnde även den stora tekniska skuld som (oftast) finns i projekt av den typen. + +## Jay Zeschin (@jayzes) - “Avoiding the Seven Year Itch” + + + + +Jay från Factory Design Labs avslutade dagens föreläsningar med lite tips för de +som sitter fast i långtgående projekt, föråldrade projektmodeller eller legacy-system. +Han nämnde även den stora tekniska skuld som (oftast) finns i projekt av den typen. +
        A project is a relationship
        +
        • Uppbrott
        • Tyst lidande
        • Ta lärdom och gå vidare
        +
        Developers have a vast amount of domain knowledge
        + Jay hade även en lista på vad man bör göra för att rädda ett projekt av denna typ: +
        • Snabb återkoppling (test/deploy)
        • Var hänsynslös
        • @@ -79,5 +129,9 @@ Jay hade även en lista på vad man bör göra för att rädda ett projekt av de
        • Sälj in fördelarna
        • Bygg upp ett förtroende
        -

        Quick Left Hackfest

        + +## Quick Left Hackfest + På kvällen gick vi till Quick Left och fortsatte diskussionerna, kodade lite och käkade pizza. + +/ [Peter](/peter) diff --git a/_posts/2010-10-19-mountain-rb-3.md b/_posts/2010-10-19-mountain-rb-3.md index 49a0dad..bc0e301 100644 --- a/_posts/2010-10-19-mountain-rb-3.md +++ b/_posts/2010-10-19-mountain-rb-3.md @@ -3,90 +3,137 @@ title: "Mountain.rb - Dag 3" date: 2010-10-19 last_updated_by: peter --- -

        Keynote: Aaron Patterson (@tenderlove) - "Fear Driven Development".

        -Aaron öppnade med en kort presentation om hans professionella liv som utvecklare där han började med Perl 1999 och blev mer eller mindre tvingad att byta till Java 2002 som fortsatte till 2007 då han började använda Ruby. + +## Keynote: Aaron Patterson (@tenderlove) - "Fear Driven Development". + + + +Aaron öppnade med en kort presentation om hans professionella liv som utvecklare där han började med Perl 1999 och blev mer eller mindre tvingad att byta till Java 2002 som fortsatte till 2007 då han började använda Ruby. I och med att Aarons kunskaper kring Ruby ökade, ökade även hans rädsla för att han inte kunde tillräckligt mycket – kanske något många kan relatera till? Detta var i alla fall ämnet för hans tal. -Hans tips för att motverka den känslan är att "Läsa, Läsa, Läsa" – varje dag, samt vad han gärna kallar "The Buddy System" eller i en något mer bekant term Pair Programming. I Aarons fall fortsatte han lite längre och gick med i e-post listor för ruby-talk och ruby-core, började gå på massor av konferenser och även undervisa på ett lokalt universitet i Seattle. +Hans tips för att motverka den känslan är att "Läsa, Läsa, Läsa" – varje dag, samt vad han gärna kallar "The Buddy System" eller i en något mer +bekant term Pair Programming. I Aarons fall fortsatte han lite längre och gick med i e-post listor för ruby-talk och ruby-core, började gå på massor av konferenser och även undervisa på ett lokalt universitet i Seattle. + + En fras som är viktig i Aarons vardag är "I don't know", om man inte förstår något hjälper oftast personen du pratar med att lära dig och hjälpa dig förstå. -

        Jonathan Dahl (@jondahl) - "Programming and minimalism: lessons from Orwell and the Clash".

        + +## Jonathan Dahl (@jondahl) - "Programming and minimalism: lessons from Orwell and the Clash". + Jons presentation började med liknelser mellan programmerare och andra professioner. Bland annat: +
        • Ingenjörer: "Not about building things – about building processes" och "Designing solutions to direct problems"
        • Hantverkare: Att ha rätt verktyg, kunskaper, jobbar i små team och att ha rätt vanor och rutiner.
        • Författare: Skriv, skriv, refaktorera
        + Presentationen fortsatte med att antal musikdemonstrationer genom tiderna med exempel som Bach, Mozart, Mahler till lite mer nutida pop musik med Beatles och även punk musik. Han ville med dessa exempel demonstrera hur Hans tips för att bli en bättre programmare är: +
        • Konsumera: Läs mycket och inte bara om det du gör
        • Studera - hur skriver andra?
        • Producera - ju mer du skriver desto bättre blir du
        +
        Not only is bad writing impossible to understand, it is buggy.
        -

        Tech Block #2

        + +## Tech Block #2 + Ett Tech Block består av tre kortare presentationer. -

        Jim Remsick (@jremsikjr) - "Functionally Equivalent"

        -Jims tal var något kortare men med ett direkt budskap att förklara fördelarna med funktionell programmering som letade sig ner till dessa tre punkter: + +### Jim Remsick (@jremsikjr) - "Functionally Equivalent" + + + +Jims tal var något kortare men med ett direkt budskap att förklara fördelarna med funktionell programmering som letade sig ner till dessa tre punkter: +
        • Kortfattat (mer koncist)
        • Trådbarhet (Concurrency)
        • -
        • Inga buggar* - Går att bevisa matematiskt
        • +
        • + Inga buggar* + - Går att bevisa matematiskt +
        + Ruby är ett objektorienterat språk men det är inte helt ovanligt att skriva det i funktionell stil. Jim avslutade med en uppmaning +
        Gå ut och prova något du inte är bekväm med.
        -

        CJ Kihlbom (@cjkihlbom) - "Frontend Testing Frontier"

        + +### CJ Kihlbom (@cjkihlbom) - "Frontend Testing Frontier" + Det var extra kul att höra CJ tala då han kommer från Göteborg och driver firman Elabs. CJ/Elabs var också initiativtagarna till konferensen Nordic Ruby som Athega sponsrade och vi har bloggat om tidigare. Elabs har länge lagt ett stort fokus på frontend testning där Elabs, Jonas Nicklas (@jncoward) bland annat har gjort ett par stora bidrag till Ruby commityn via Capybara och Evergreen. Detta var fokus för CJs tal. CJ pratade om verktyg för integrationstestning: + + Capybara är "driver agnostic" vilket innebär att man kan köra Capybara med hjälp av annan mjukvara som: + + JavaScript unit testing är inte så vanligt så CJ tog tillfället att berätta om ett bra alternativ nämligen Jasmine av Pivotal Labs, tillsammans med Evergreen av Jonas Nicklas. En riktigt bra feature med Evergreen är att man kan skriva sina JavaScript tester i CoffeeScript. CoffeeScript är för JavaScript vad HAML/SASS är för HTML/CSS. +
        Front end testing is NOT hard
        -

        Paul Sadauskas (@theamazingrando) - Forms Don't Have to be this Complicated

        + +### Paul Sadauskas (@theamazingrando) - Forms Don't Have to be this Complicated +
        Forms Suck
        + Paul pratade om hur krångliga fomulär kan vara i Rails, framförallt om man har HABTM relationer mellan sina modeller. Eller ännu värre, nästlade formulär. - + Paul visade exempel på krångliga formulär och olika lösningar, de inkluderade bland annat att ladda om hela sidan, olika sidor för olika formulärdelar eller att generera direkt från JavaScript. Paul's förslag till slut var att använda progressiv förbättring som laddar om sidan om man inte har JavaScript aktiverat men endast hämtar en partial via AJAX om man har JS aktiverat. Denna metod blir dessutom ganska enkel att testa. -

        Blake Mizerany (@bmizerany) - 1000 ways to kill a Buffalo

        -Killing Buffalo + +## Blake Mizerany (@bmizerany) - 1000 ways to kill a Buffalo + +Killing Buffalo Blake är uppfinnaren av Sinatra och jobbar till vardags på Heroku som har en intressant och mycket flexibel Rails hosting med enkel Add-on arkitektur. -Blakes presentation tillhörde definitivt en av de mer humoristiska. I princip hela presentationen bestod av en serie tecknade figurer ("Ugh" grottmannen, hans familj och en buffel) ritade på en iPad i en rad olika situationer. +Blakes presentation tillhörde definitivt en av de mer humoristiska. I princip hela presentationen bestod av en +serie tecknade figurer ("Ugh" grottmannen, hans familj och en buffel) ritade på en iPad i en rad olika situationer. -Presentationen (som kunde vart en säljpitch för Heroku) ville få oss att fokusera på problem istället för idéer, hur problem i vår vardag driver innovation och utveckling. För att knyta ihop med titeln var Blakes exempel på hur Ugh försökte jaga buffel på stenåldern. +Presentationen (som kunde vart en säljpitch för Heroku) ville få oss att fokusera på problem istället för idéer, +hur problem i vår vardag driver innovation och utveckling. För att knyta ihop med titeln var Blakes exempel på hur Ugh försökte jaga buffel på stenåldern. Han pratade om hur man som Ruby on Rails utvecklare kan skriva små problemlösande add-ons till Heroku som andra utvecklare kan dra nytta av (och på så vis tjäna pengar). -Heroku add-ons är små självständiga tjänster som man laddar upp i Heroku som i läggs på en Amazon EC2 instans. EC2 arkitekturen var ett starkt argument eftersom alla Heroku appar ligger i EC2 så är det extremt låg latens mellan instanserna (add-ons/appar), även internationellt och mellan kontinenter. -

        Lightning talks

        + + +Heroku add-ons är små självständiga tjänster som man laddar upp i Heroku som i läggs på en Amazon EC2 instans. +EC2 arkitekturen var ett starkt argument eftersom alla Heroku appar ligger i EC2 så är det extremt låg latens mellan instanserna (add-ons/appar), även internationellt och mellan kontinenter. + +## Lightning talks + Lightning talks är snabba presentationer, man har 5-7 minuter att lära ut något. Det var många snabbpresentationer men en som jag tycker var värd att nämna. -

        Neal Enssle (@nealenssle) - How to be a better developer in 90 days

        + +### Neal Enssle (@nealenssle) - How to be a better developer in 90 days + Denna presentation var tre bok rekommendationer för alla som vill bli bättre utvecklare (inte bara Ruby/Rails). Tanken är att man ska läsa en bok per månad. The Passionate Programmer - Chad Fowler +
        • Om du inte bryr dig kommer det att märkas.
        • Var en generalist.
        • @@ -95,17 +142,23 @@ Denna presentation var tre bok rekommendationer för alla som vill bli bättre u
        • Daglig framgång - vad åstadkom du idag?
        • Är du bättre idag än igår? (n + 1)
        + Clean Code - Robert C. Martin +
        • Semi-objektiv och praktisk.
        • Storleken spelar roll.
        • Gör en sak, på ett enda ställe.
        • Scout-regeln, lämna koden bättre än du hittade den.
        + Refactoring: Ruby edition - Martin Fowler (m.fl.) +
        • Koda för att öka förtroende för gammal kod
        • "Smells in code" - motverka dålig kod, duplicering, långa funktioner m.m.
        • Självförklarande variabelnamn
        • 60 refaktoreringsmönster
        + +/ [Peter](/peter) diff --git a/_posts/2010-10-30-lunch-athega-se.md b/_posts/2010-10-30-lunch-athega-se.md index 56cae66..239350c 100644 --- a/_posts/2010-10-30-lunch-athega-se.md +++ b/_posts/2010-10-30-lunch-athega-se.md @@ -3,12 +3,20 @@ title: "lunch.athega.se" date: 2010-10-30 last_updated_by: admin --- -Lunch, startsida -Matmekka -

        -Under Athega Code Base byggde jag en helt ny version av en webbapplikation som jag för två år sedan byggde i Ruby on Rails och Geokit. Denna gång valde jag att använda ramverket Sinatra, databasen MongoDB (genom Mongomatic) samt att hosta allt på Heroku och MongoHQ.

        +Lunch, startsida +Matmekka -Vad jag blev mest imponerad över var det inbyggda stödet för geospatial indexing i MongoDB samt hur enkelt det var att jobba med Heroku. +Under Athega Code Base byggde jag en helt ny version av en webbapplikation som jag för två år sedan byggde i Ruby on Rails och Geokit. +Denna gång valde jag att använda ramverket Sinatra, databasen MongoDB +(genom Mongomatic) samt att hosta allt på Heroku och MongoHQ. -Gränssnittet är utvecklat med hjälp av biblioteket jQuery Mobile och det har visat sig fungera mycket bättre än jQTouch som jag tidigare har använt. Vad jag speciellt gillade var den inbyggda routern. +Vad jag blev mest imponerad över var det inbyggda stödet för +geospatial indexing i +MongoDB samt hur enkelt det var att jobba med Heroku. + +Gränssnittet är utvecklat med hjälp av biblioteket jQuery Mobile och +det har visat sig fungera mycket bättre än jQTouch +som jag tidigare har använt. Vad jag speciellt gillade var den inbyggda routern. + +/ [Peter](/peter) diff --git a/_posts/2010-10-30-warden.md b/_posts/2010-10-30-warden.md index 19cb71a..e956c19 100644 --- a/_posts/2010-10-30-warden.md +++ b/_posts/2010-10-30-warden.md @@ -3,7 +3,9 @@ title: "Warden" date: 2010-10-30 last_updated_by: peter --- -Igår höll jag i internutbildningen på vårt månadsmöte, denna gång berättade jag om autentiseringsramverket Warden och lite kort om Rack. +Igår höll jag i internutbildningen på vårt månadsmöte, denna gång berättade jag om +autentiseringsramverket Warden och lite kort om Rack. -
        + +/ [Peter](/peter) diff --git a/_posts/2010-11-19-kanban-classes-of-service.md b/_posts/2010-11-19-kanban-classes-of-service.md index 9992bf8..ab5f5b8 100644 --- a/_posts/2010-11-19-kanban-classes-of-service.md +++ b/_posts/2010-11-19-kanban-classes-of-service.md @@ -7,16 +7,21 @@ Jag arbetar just nu med ett IT-förvaltnings-team där vi kör Kanban. Med en Ka Vi arbetar frekvent och övervägande med saker som har fasta leveransdatum. Vissa gånger har det stor betydelse för hela verksamheten att vi håller leveransdatum. Andra gånger är det snarare önskvärt från beställaren att det är klart ett visst datum. På en tavla med en stor och dynamisk backlog kan det vara svårt för beställare att prioritera när de måste hålla reda på alla leveransdatum och samtidigt hur viktiga det är att datumet hålls. -Kostnad +## Kostnad + Vi tittar på vad kostnaden blir om vi inte levererar till utsatt datum. Kommer det kosta väldigt mycket eller finns det lite utrymme för justering av planerad leverans. För att tydliggöra detta använder vi nedan klassificeringar (Baserade på David J Anderson beskrivning av Classes Of Service) Vi har fritt översatt vissa ord och gjort en anpassning som passar oss. -
        • UTFÖR -Först och främst har en en utför-klass. Aktiviteter som klassas som utför ska påbörjas så fort som möjligt och vi ska lägga så mycket resurser vi behöver för att på snabbast möjliga sätt ta aktiviteten i mål. Vi har inte många men när dom kommer kan det handla om produktionsstörningar som gör att verksamheten inte kan utföra sitt arbete. Dessa rör sig i en prioriterad fil på tavlan. Går ej att planera, måste utföras direkt när dom dyker upp.
        • -
        • KRITISKT DATUM -Sen har vi aktiviteter som har ett kritiskt leveransdatum. Dessa aktiviteter har hög affärspåverkan om vi inte håller leveransen. Dessa aktiviteter är UTFÖR-aktiviteter men med skillnaden att leverandatum är i framtiden. Behöver inte påbörjas direkt. Går att planera.
        • -
        • FAST DATUM -Aktiviteter där affärspåverkan om vi bryter leveransdatumet blir ringa klassas som FAST DATUM. Dessa har ett tydligt leveransdatum men ofta hänger leveransdatumet mer ihop med planerade releaser än stora kostnader för verksamheten. Vi har möjlighet att i värsta fall skjuta på leveransen av dessa en kortare tid.
        • -
        • STANDARD -Detta är aktiviteter som ska göras men det finns inget datum då dom måste vara klara. Alla tjänar på att göra dom så fort som möjligt men dom har inget fast leveransdatum. Det kan till exempel vara förebyggande aktiviteter för att sänka risker eller förenkla/effektivisera arbetet.
        + +
          +
        • UTFÖR + Först och främst har en en utför-klass. Aktiviteter som klassas som utför ska påbörjas så fort som möjligt och vi ska lägga så mycket resurser vi behöver för att på snabbast möjliga sätt ta aktiviteten i mål. Vi har inte många men när dom kommer kan det handla om produktionsstörningar som gör att verksamheten inte kan utföra sitt arbete. Dessa rör sig i en prioriterad fil på tavlan. Går ej att planera, måste utföras direkt när dom dyker upp.
        • +
        • KRITISKT DATUM + Sen har vi aktiviteter som har ett kritiskt leveransdatum. Dessa aktiviteter har hög affärspåverkan om vi inte håller leveransen. Dessa aktiviteter är UTFÖR-aktiviteter men med skillnaden att leverandatum är i framtiden. Behöver inte påbörjas direkt. Går att planera.
        • +
        • FAST DATUM + Aktiviteter där affärspåverkan om vi bryter leveransdatumet blir ringa klassas som FAST DATUM. Dessa har ett tydligt leveransdatum men ofta hänger leveransdatumet mer ihop med planerade releaser än stora kostnader för verksamheten. Vi har möjlighet att i värsta fall skjuta på leveransen av dessa en kortare tid.
        • +
        • STANDARD + Detta är aktiviteter som ska göras men det finns inget datum då dom måste vara klara. Alla tjänar på att göra dom så fort som möjligt men dom har inget fast leveransdatum. Det kan till exempel vara förebyggande aktiviteter för att sänka risker eller förenkla/effektivisera arbetet.
        • +
        + Hur får vi standardaktiviteter att bli utförda om det hela tiden beställs fasta och kritiska-datum-aktiviteter? Att sätta begränsning i hur mycket arbete som får pågå samtidigt är ett sätt. När pågående arbete(WIP) begränsas kan detta ske per klass. T.ex. sätter vi WIP-Limit (Begränsningen av hur många aktiviteter som får vara påbörjade samtidigt) olika för de olika klasserna. ### Exempel @@ -37,4 +42,4 @@ Det innebär att när vi planerar aktiviteter tar vi automatiskt in STANDARD-akt Så länge vi är noga med att vår totala arbetsbelastningen ligger justerad/med marginal efter vår förmåga att leverera har vi har möjlighet att göra klart aktiviteter i stället för att bara påbörja nya hela tiden. Då håller vi våra cykel-tider inom förväntade och uppskattade värden. Vi försöker nu noggrant klassificera allt samtidigt som vi diskuterar med beställare och beskriver våra klassers cykel-tider. Det hoppas vi gör vår leveranskapacitet tydligare och lättare att förstå. -// [[Mats]] +/ [Mats](/mats) diff --git a/_posts/2011-03-23-nyttigheter-pa-fredagsforelasningen.md b/_posts/2011-03-23-nyttigheter-pa-fredagsforelasningen.md index 4c9ecf3..fc364cb 100644 --- a/_posts/2011-03-23-nyttigheter-pa-fredagsforelasningen.md +++ b/_posts/2011-03-23-nyttigheter-pa-fredagsforelasningen.md @@ -3,6 +3,7 @@ title: "Nyttigheter på fredagsföreläsningen" date: 2011-03-23 last_updated_by: tobbe --- + [Krister Söderström](/krister), som jobbar som utvecklare på Athega, kommer att föreläsa om vektorkvantisering och klustring. Första delen av föreläsningen är en enkel genomgång om vad en vektor är samt vad kvantisering och klustring innebär. Syftet är att ge en grundläggande förståelse inför den andra delen av föreläsningen. diff --git a/_posts/2011-09-09-kanban-klris.md b/_posts/2011-09-09-kanban-klris.md index eb4f819..99a9fba 100644 --- a/_posts/2011-09-09-kanban-klris.md +++ b/_posts/2011-09-09-kanban-klris.md @@ -3,12 +3,17 @@ title: "Kanban Leadership Retreat Iceland 2011" date: 2011-09-09 last_updated_by: peter --- -Jag firade midsommar på Island i år. Förutom att jag såg lite av landet deltog jag i Kanban Leadership Retreat (David J Anderson and Associates). Jag tycker det var en mycket givande tillställning och formatet (unconference) vad en ny erfarenhet för mig. Sessionernas innehåll bestämde vi tillsammans och i princip inga sessioner var förberedda innan. Detta gjorde att fria diskussioner fick stort utrymme. Sessionerna blev väldigt varierande i innehåll. +Jag firade midsommar på Island i år. Förutom att jag såg lite av landet deltog jag i Kanban Leadership Retreat _(David J Anderson and Associates)_. +Jag tycker det var en mycket givande tillställning och formatet (unconference) vad en ny erfarenhet för mig. +Sessionernas innehåll bestämde vi tillsammans och i princip inga sessioner var förberedda innan. +Detta gjorde att fria diskussioner fick stort utrymme. Sessionerna blev väldigt varierande i innehåll. -De övriga deltagarna var de flesta mycket erfarna av både Lean/System thinking och Kanban. Själv sög jag i mig av den samlade expertisen så mycket jag kunde. Eftersom vi alla bodde på samma hotell blev det naturligt med fortsatta spännande diskussioner långt in på småtimmarna. +De övriga deltagarna var de flesta mycket erfarna av både Lean/System thinking och Kanban. +Själv sög jag i mig av den samlade expertisen så mycket jag kunde. +Eftersom vi alla bodde på samma hotell blev det naturligt med fortsatta spännande diskussioner långt in på småtimmarna. -Det enda jag efteråt känner var lite synd var att många sessioner krockade tidsmässigt, och jag hade velat varit med på alla. +Det enda jag efteråt känner var lite synd var att många sessioner krockade tidsmässigt, och jag hade velat varit med på alla. > Får jag möjlighet att åka nästa år, tvekar jag inte en sekund. -// [Mats](/mats) +/ [Mats](/mats) diff --git a/_posts/2011-09-12-rocky-mountain-ruby-2011.md b/_posts/2011-09-12-rocky-mountain-ruby-2011.md index 4697a86..c4f60cd 100644 --- a/_posts/2011-09-12-rocky-mountain-ruby-2011.md +++ b/_posts/2011-09-12-rocky-mountain-ruby-2011.md @@ -6,7 +6,7 @@ last_updated_by: peter ![Boulder Theatre](/images/blogg/rocky-mountain-ruby-2011/boulder_theatre.jpg) För lite mer än en vecka sedan kom jag hem från Colorado och konferensen -[Rocky Mountain Ruby](http://rockymtnruby.com/), förra året hette den +[Rocky Mountain Ruby](http://rockymtnruby.com/), förra året hette den [Mountain.rb](http://mountainrb.com/) men det var tydligen många som misstog den för [MountainWest RubyConf](http://mtnwestrubyconf.org/) så arrangörerna valde helt sonika att byta namn på konferensen. Precis som förra året hölls den på [Boulder Theater](http://www.bouldertheater.com/). @@ -81,7 +81,7 @@ så kombinerade Nick representationen av datat och länkarna i JSON. Självklart hade han skrivit ett bibliotek för att göra detta på ett smidigt sätt. [Roar!](http://rubygems.org/gems/roar) eller RESTful, resource-oriented architectures in Ruby. Han rekomenderade även böckerna -[REST in Practice](http://restinpractice.com/) och +[REST in Practice](http://restinpractice.com/) och [RESTful Web Services Cookbook](http://www.restful-webservices-cookbook.org/). @@ -129,7 +129,7 @@ Formatet för Ignite är väldigt enkelt: [Konstantin Haase](http://rkh.im/) pratade om hur man kan vrida och vända på [Rack](http://rack.rubyforge.org/) för att få streaming -(HTTP server push) att fungera. Alternativen som presenterades var +(HTTP server push) att fungera. Alternativen som presenterades var [Server-Sent Events](http://dev.w3.org/html5/eventsource/) (envägs, enkelt, klienten går att implementera i JavaScript) och [WebSockets](http://websocket.org/) (tvåvägs, men stöds sällan). @@ -165,4 +165,4 @@ Resten av helgen gick åt att flyga hem till Stockholm :) **Uppdatering:** Nu ligger några av de filmade presentationerna uppe på [Confreaks](http://confreaks.net/events/rockymtnruby2011) -// [Peter](/peter) +/ [Peter](/peter) diff --git a/_posts/2011-09-13-wip-limit-indicator.md b/_posts/2011-09-13-wip-limit-indicator.md index 55fcffd..cb12268 100644 --- a/_posts/2011-09-13-wip-limit-indicator.md +++ b/_posts/2011-09-13-wip-limit-indicator.md @@ -3,10 +3,12 @@ title: "Kanban WIP-Limit indikator" date: 2011-09-13 last_updated_by: mats --- -När ett team visualiserar arbetet och använder WIP-limits (begränsning av pågående arbete) kan detta till exempel göras per kolumn på tavlan. Vi får ha 3 pågående arbete i analys, 4 pågående arbete i implementation systest osv. Om man arbetar med ett team som består av generalister (större delen av teamet kan utföra aktiviteter i flera kolumner) vandrar ofta personen med aktiviteten genom olika lägen på tavlan. Då kan man använda en total WIP-limit och delvis frångå den flödes drivande mekanismen i Kanban. En CONWIP på flera eller alla kolumner. Men med många team-medlemmar och många aktiviteter kan det vara lite otydligt vilken WIP teamet ligger på. +När ett team visualiserar arbetet och använder WIP-limits _(begränsning av pågående arbete)_ kan detta till exempel +göras per kolumn på tavlan. Vi får ha 3 pågående arbete i analys, 4 pågående arbete i implementation systest osv. +Om man arbetar med ett team som består av generalister (större delen av teamet kan utföra aktiviteter i flera kolumner) vandrar ofta personen med aktiviteten genom olika lägen på tavlan. Då kan man använda en total WIP-limit och delvis frångå den flödes drivande mekanismen i Kanban. En CONWIP på flera eller alla kolumner. Men med många team-medlemmar och många aktiviteter kan det vara lite otydligt vilken WIP teamet ligger på. -Vi vill visualisera detta tydligt och dagligen. Vi provar just nu en WIP-Indikator som vi uppdaterar varje dag på tavelmötet. Då får vi en klar och tydlig bild av mängden pågående arbete och hur nära taket vi är (Eller om vi i värsta fall går över på akuta ärenden med hög SLA) +Vi vill visualisera detta tydligt och dagligen. Vi provar just nu en WIP-Indikator som vi uppdaterar varje dag på +tavelmötet. Då får vi en klar och tydlig bild av mängden pågående arbete och hur nära taket vi är +_(Eller om vi i värsta fall går över på akuta ärenden med hög SLA)_ -[![WIP-indikatorn](http://img.mu.cdn.li/BD/600/w9OaCT.jpg)](http://img.mu/w9OaCT) - -// [Mats](/mats) +/ [Mats](/mats) diff --git a/_posts/2011-09-16-pragmatisk-installning-till-tdd.md b/_posts/2011-09-16-pragmatisk-installning-till-tdd.md index 229bcff..60d637e 100644 --- a/_posts/2011-09-16-pragmatisk-installning-till-tdd.md +++ b/_posts/2011-09-16-pragmatisk-installning-till-tdd.md @@ -3,12 +3,16 @@ title: "En pragmatisk inställning till testdriven design" date: 2011-09-16 last_updated_by: peter --- -Att utveckla ren, funktionell kod av hög kvalitet, med få buggar, tror jag är något som alla skulle vilja hävda att det gör. Vissa gör det säkert redan, men jag skulle vilja dela med mig av en kort dragning jag hade för Aftonbladets utvecklingsavdelning i dag. +Att utveckla ren, funktionell kod av hög kvalitet, med få buggar, tror jag är något som alla skulle vilja hävda att det gör. +Vissa gör det säkert redan, men jag skulle vilja dela med mig av en kort dragning jag hade för Aftonbladets utvecklingsavdelning i dag. -[TDD](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd) (Test Driven Design) är en av flera xDD-metoder som jag fastnat för litet extra och till slut blivit helt beroende av. Jag tänkte inte gå in närmare på exakt vad det innebär, eftersom så många andra gör det [bättre](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd). +[TDD](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd) _(Test Driven Design)_ är en av flera xDD-metoder +som jag fastnat för litet extra och till slut blivit helt beroende av. Jag tänkte inte gå in närmare på exakt vad det innebär, +eftersom så många andra gör det [bättre](http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd). -Denna presentation riktar sig till den som vet vad ett enhetstest är, kanske testar litet, men där aha-upplevelsen inte riktigt infunnit sig ännu. Naturligtvis är den riktad och lämpar sig bäst med mig ivrigt gestikulerandes framför. +Denna presentation riktar sig till den som vet vad ett enhetstest är, kanske testar litet, men där aha-upplevelsen inte riktigt +infunnit sig ännu. Naturligtvis är den riktad och lämpar sig bäst med mig ivrigt gestikulerandes framför. -// [Christian](/chrille) + -
        +/ [Chrille](/chrille) diff --git a/_posts/2011-09-21-kanban.md b/_posts/2011-09-21-kanban.md index c419f0d..cb56b50 100644 --- a/_posts/2011-09-21-kanban.md +++ b/_posts/2011-09-21-kanban.md @@ -5,7 +5,7 @@ last_updated_by: mats --- [Mats Ygfors](/mats), som jobbar som projektledare på Athega, kommer att föreläsa om [Kanban](/kanban) utifrån sina erfarenheter på en stor bank. -Innehåll +## Innehåll - Grunderna i Kanban - Vilka grundproblem upplevde vi och hur kunde [Kanban](/kanban) adresserade dessa? diff --git a/_posts/2011-10-02-limit-work-in-progress.md b/_posts/2011-10-02-limit-work-in-progress.md index d277b36..c0fbe35 100644 --- a/_posts/2011-10-02-limit-work-in-progress.md +++ b/_posts/2011-10-02-limit-work-in-progress.md @@ -3,8 +3,8 @@ title: "Begränsa mängden pågående arbete" date: 2011-10-02 last_updated_by: peter --- -Gjorde en liten slide angående ledtider och spill i relation till mängden pågående arbete. Ville försöka visualisera vad som händer vid task switching och effekten på ledtiden. +Gjorde en liten slide angående ledtider och spill i relation till mängden pågående arbete. Ville försöka visualisera vad som händer vid task switching och effekten på ledtiden. -// [Mats](/mats) +/ [Mats](/mats) diff --git a/_posts/2011-10-28-det-gors-alldeles-for-manga-nativa-mobilappar.md b/_posts/2011-10-28-det-gors-alldeles-for-manga-nativa-mobilappar.md index 9871b92..9f35cba 100644 --- a/_posts/2011-10-28-det-gors-alldeles-for-manga-nativa-mobilappar.md +++ b/_posts/2011-10-28-det-gors-alldeles-for-manga-nativa-mobilappar.md @@ -4,14 +4,17 @@ date: 2011-10-28 last_updated_by: peter --- Söderarm + Årets [Athega Code Base](/code-base-2011) är förlagd till ön Torskär i det allra ytterstra stråket av skärgård innan havet mot Åland. På ön står den gamla fyren, Söderarm, känd från väderrapporter och vindobservationer. Här driver Anngret Andersson en fantastisk [konferensanläggning](http://www.soderarm.com/web/start.shtml) som jag varmt kan rekommendera. Öns [historia](http://www.soderarm.com/web/historia.shtml) är intressant och vi huserar i ett hus som byggts till i fem omgångar. Med den sista kom ett kontrolltorn åt Sjöfartsverket med makalös utsikt. Detta rum har varit vår kodplats under dessa dagar. -Söderarm Bilden till vänster visar faktiskt inte en Athegaanställd. Den är från 1988 och visar hur rummet användes innan vi tog över. -

         

        +Söderarm + +Bilden till ovan visar faktiskt inte en Athegaanställd. Den är från 1988 och visar hur rummet användes innan vi tog över. ## Projektet + Med smartphone-vågen har ett onaturligt stort behov av nativa mobilappar till framför allt iOS, men också Android, sköljt över oss. Alla vill vara representerade i Apples och Googles app stores. Som utvecklare får man frågan ”Hur mycket kostar det att göra en Iphone-app?”. Den frågan är självklart väldigt svårbesvarad utan att veta vad appen ska göra. Jag har varit med om detta tidigare, för snart 15 år sedan. Då var världen översvämmad av webbyråer, som många gånger var konverterade reklambyråer. Deras uppgift var att svara på frågan ”Vad kostar en hemsida?" och sedan bygga en hemsida. Det var sällan viktigt vad den innehöll, bara man "fanns på nätet". @@ -19,7 +22,9 @@ Jag har varit med om detta tidigare, för snart 15 år sedan. Då var världen Min poäng är alltså, att det för närvarande görs på tok för mycket nativa mobilappar. Många appar skulle passa mycket bättre som mobila webbappar. Med HTML5 och kraftfulla telefoner är begränsningarna få. ### Athega Dashboard + Athega Dashboard + På Athega använder vi det eminenta tidrapporteringssystemet, [Harvest](http://http://www.getharvest.com/). Vi använder även Google för mail och document, mm. Dessa system, i kombination med våra egna system har alla publicerade APIer, som lämpar sig ypperligt att bygga en webbapp på. Jag tänkte mig en dashboard där du kan se grafer över tidrapporter, mätvärden, rapportera tid, osv. Denna gång hann jag med att göra en graf som visar hur vår rapporterade tid fördelar sig över aktuell månad. Servern kommunicerar direkt med Harvest och telefonen med servern. Lokalt ritas ett diagram upp med RGraph som använder sig av ett canvaselement. Koden för den intresserade ligger på [GitHub](https://github.com/athega/acb2011-chrille). @@ -31,6 +36,6 @@ Denna gång hann jag med att göra en graf som visar hur vår rapporterade tid f - [Ruby](http://ruby-lang.org/) - [Sinatra](http://www.sinatrarb.com/) -
        + -/ [Christian](chrille) +/ [Christian](/chrille) diff --git a/_posts/2011-10-31-bootstrap-for-backbone-och-sinatra.md b/_posts/2011-10-31-bootstrap-for-backbone-och-sinatra.md index cb3167e..19999ac 100644 --- a/_posts/2011-10-31-bootstrap-for-backbone-och-sinatra.md +++ b/_posts/2011-10-31-bootstrap-for-backbone-och-sinatra.md @@ -8,7 +8,8 @@ last_updated_by: peter Min tanke med mitt projekt på [Athega Code Base 2011](/code-base-2011) var att skapa en startpunkt för framtida projekt skrivna med ramverket [Backbone.js](http://documentcloud.github.com/backbone/), där testramverk och grundläggande filstruktur redan är uppsatt. CoffeeScript används både i implementation och specs för Backbone.js. -Ruby används i Sinatra-appen. Jag experimenterade med att använda [Evergreen](https://github.com/jnicklas/evergreen), men valde till slut att enbart förlita mig på Jasmine för att testa de genererade JavaScripten. På Rubysidan valde jag att använda MiniTest/Spec. +Ruby används i Sinatra-appen. Jag experimenterade med att använda [Evergreen](https://github.com/jnicklas/evergreen), +men valde till slut att enbart förlita mig på Jasmine för att testa de genererade JavaScripten. På Rubysidan valde jag att använda MiniTest/Spec. Jag använder mig av Guard (samt guard-sass och guard-coffeescript) för att kompilera Sass och CoffeeScript till CSS och JavaScript. diff --git a/_posts/2011-11-15-oredev.md b/_posts/2011-11-15-oredev.md index ce5d7f6..6e71111 100644 --- a/_posts/2011-11-15-oredev.md +++ b/_posts/2011-11-15-oredev.md @@ -11,4 +11,4 @@ Själv valde jag framför allt föreläsningar inom Java eller HTML5 men smög m Antar att det bara är att vänta och se... kanske ska analysera detta jag skriver nu om ett år efter nästa Öredev! -/ [Alex](/alex) +/ Alex diff --git a/_posts/2011-11-21-oredev-2011.md b/_posts/2011-11-21-oredev-2011.md index 351130c..c70bf0c 100644 --- a/_posts/2011-11-21-oredev-2011.md +++ b/_posts/2011-11-21-oredev-2011.md @@ -5,7 +5,8 @@ last_updated_by: chrille --- Øredev 2011-gänget -Årets Øredev… På plats från Athega var förutom [jag](/chrille), [Alex](/alex), [Johan](/johan), [Mats](/mats), [Peter](/peter) och [Petter](/petter) (i alfabetisk ordning). Med hotellet ett knappt kvarter bort hade vi optimerat för att se så mycket som möjligt av konferensen som möjligt utan att distraheras av Malmö i övrigt. +Årets Øredev… På plats från Athega var förutom [jag](/chrille), Alex, [Johan](/johan), [Mats](/mats), [Peter](/peter) och Petter (i alfabetisk ordning). +Med hotellet ett knappt kvarter bort hade vi optimerat för att se så mycket som möjligt av konferensen som möjligt utan att distraheras av Malmö i övrigt. Konferensen öppnas med en keynote av [@kn0thing](http://twitter.com/#!/kn0thing) som berättar hur Reddit tagit sig till en nivå där de har nära två miljarder sidvisningar i månaden. Filosofin är bland annat “The back button is your biggest enemy” och “Users come first”. diff --git a/_posts/2011-11-24-introduktion_tdd_och_ramverk.md b/_posts/2011-11-24-introduktion_tdd_och_ramverk.md index 0d66dee..8d87a22 100644 --- a/_posts/2011-11-24-introduktion_tdd_och_ramverk.md +++ b/_posts/2011-11-24-introduktion_tdd_och_ramverk.md @@ -3,9 +3,6 @@ title: "Introduktion TDD och ramverk" date: 2011-11-24 last_updated_by: chrille --- -Fredagsmys på Athega --------------------- - [Christian Lizell](/chrille), som är utvecklare på Athega, kommer att föreläsa om [TDD](http://www.agiledata.org/essays/tdd.html) (Test Driven Development). Föreläsning är en pragmatisk introduktion till att utveckla testdrivet och vad det innebär. Vi kommer även titta på några ramverk och verktyg, såsom [JUnit](http://www.junit.org/), [Hamcrest](http://code.google.com/p/hamcrest/wiki/Tutorial) och [Mockito](http://code.google.com/p/mockito/). diff --git a/_posts/2011-12-05-kanban-balance-demand-against-capability.md b/_posts/2011-12-05-kanban-balance-demand-against-capability.md index aa55afa..35583a7 100644 --- a/_posts/2011-12-05-kanban-balance-demand-against-capability.md +++ b/_posts/2011-12-05-kanban-balance-demand-against-capability.md @@ -17,12 +17,10 @@ Everyone wants to do a good job. Everyone wants to feel that they are able to do If I would map an overburden team on a modified "mental state in terms of challenge level and skill level chart" (Mihály Csíkszentmihályi) it would be on the left side of the chart. The axis and terms in below example is modified from the original to match what I believe is the teams collective mental state. -![chart](http://i39.tinypic.com/noetsh.jpg) - The collective feeling of capability would be low and this is regardless of individual knowledge, competence, understanding of goals and experienced challenge. What we want is the _whole_ team to feel that they are capable. We would like to move the mental state towards controlled, engaged, relaxed and ultimately flow. One step for this to happen is to begin balancing demand against capability. -// Mats Ygfors +/ [Mats Ygfors](/mats) diff --git a/_posts/2011-12-21-Ramavtal-SVT.md b/_posts/2011-12-21-Ramavtal-SVT.md index 8e0e953..82c7f8e 100644 --- a/_posts/2011-12-21-Ramavtal-SVT.md +++ b/_posts/2011-12-21-Ramavtal-SVT.md @@ -3,8 +3,10 @@ title: "Athega tecknar ramavtal med Sveriges Television AB" date: 2011-12-21 last_updated_by: tobbe --- -Athega AB har i dagarna tecknat ramavtal med Sveriges Television AB. Avtalet gäller även för Sveriges Radio Förvaltnings AB och Sveriges Utbildningsradio AB. Ramavtalet har tillkommit genom en selektiv upphandling enligt lagen (2007:1091) om offentlig upphandling. +Athega AB har i dagarna tecknat ramavtal med Sveriges Television AB. +Avtalet gäller även för Sveriges Radio Förvaltnings AB och Sveriges Utbildningsradio AB. +Ramavtalet har tillkommit genom en selektiv upphandling enligt lagen (2007:1091) om offentlig upphandling. Alla vi som arbetar på Athega ser fram emot alla utmanade och intressanta uppdrag detta kommer leda till. -/Torbjörn +/ [Torbjörn](/tobbe) diff --git a/_posts/2011-12-21-tekniken-bakom-jullunchen.md b/_posts/2011-12-21-tekniken-bakom-jullunchen.md index 233acc6..61d8c60 100644 --- a/_posts/2011-12-21-tekniken-bakom-jullunchen.md +++ b/_posts/2011-12-21-tekniken-bakom-jullunchen.md @@ -3,6 +3,7 @@ title: "Tekniken bakom Jullunchen" date: 2011-12-21 last_updated_by: peter --- +

        OBS! Ovanligt mycket tekniksnack i denna bloggpost, sådant som vi tycker är extra roligt :) @@ -40,40 +41,40 @@ Koden för bildspelet ligger i filen #### Ett exempel på hur trevligt CoffeeScript är att jobba med: class window.PresentationLoop - + constructor: (ms) -> @delay = ms @iteration = 0 - + window.loop = @ window.loop.run() - + tweets: -> tweets.fetch() setTimeout 'tweets.fetch()', @delay/2 setTimeout 'window.loop.check_ins()', @delay - + check_ins: -> check_ins.fetch() setTimeout 'window.loop.images()', @delay - + images: -> images.fetch() setTimeout 'images.fetch()', @delay/2 setTimeout 'window.loop.ads()', @delay - + ads: -> ads.fetch() setTimeout 'window.loop.iterate()', @delay - + iterate: -> @iteration += 1 console.log('iteration: ' + @iteration) setTimeout 'window.loop.tweets()', 0 - + run: -> setTimeout (=> @tweets()), 0 - + ## [jullunch_daemon](https://github.com/athega/jullunch_daemon) @@ -91,7 +92,7 @@ köra bakgrundsprocessen (schemaläggning, loggning, etc.). ## [tomtelizer](https://github.com/athega/tomtelizer) -Nativ iOS applikation för att ta bilder och lokalisera ansikten +Nativ iOS applikation för att ta bilder och lokalisera ansikten ([CIFaceFeature](http://developer.apple.com/library/mac/#documentation/CoreImage/Reference/CIFaceFeature/Reference/Reference.html) och [CIDetector](http://developer.apple.com/library/ios/#documentation/CoreImage/Reference/CIDetector_Ref/Reference/Reference.html)). diff --git a/_posts/2012-02-24-ackrediteringsprogramkanban.md b/_posts/2012-02-24-ackrediteringsprogramkanban.md index 6af67c6..6340b8c 100644 --- a/_posts/2012-02-24-ackrediteringsprogramkanban.md +++ b/_posts/2012-02-24-ackrediteringsprogramkanban.md @@ -3,16 +3,20 @@ title: "Athega med i ackrediteringsprogram för Kanbanutbildningar" date: 2012-02-24 last_updated_by: mats --- + Lean-Kanban University startar väldens första ackrediteringsprogram för Kanbanutbildningar Athega är ett av få svenska bolag som tillsammans med Lean-Kanban University format ackrediteringsprogrammet som går under namnet Lean-Kanban University Accredited Kanban Training Program. -Programmet är framtaget med syftet att erbjuda kvalitetssäkrade utbildningar i Kanban metoden. Medlemsföretagens utbildningsmaterial likväl som lärare måste uppfylla programmets kriterier. +Programmet är framtaget med syftet att erbjuda kvalitetssäkrade utbildningar i Kanban metoden. Medlemsföretagens utbildningsmaterial likväl som lärare måste uppfylla programmets kriterier. Kanban metoden används brett av Athegas kunder och vårt deltagande i programmet kommer ytterligare betona vårt fokus när det gäller utbildningar. Athegas tidiga engagemang i programmet gör det möjligt för oss att inom kort erbjuda ackrediterad Kanbanutbildning. -Lean-Kanban University Accredited Kanban Training Program är grundat av Avega Group AB (Sverige), David J. Anderson and Associates, Inc (USA), Net Objectives (USA), AgileSparks Ltd (Israel), Agileminds bvba (Belgien), Athega AB (Sverige), Corporate Kanban (USA), Imaginet (Kanada), it-agile GmbH (Tyskland), Leverage51 AS (Norge), LEANability e.U. (Österrike), Crisp AB (Sverige), Reaktor (Finland), TeamProsource NV (Belgien,Storbritanien), Trifork A/S (Danmark), Valueinnova LLC (USA), VX Company IT Services B.V. (Holland), Xebia Group B.V. (Holland). +Lean-Kanban University Accredited Kanban Training Program är grundat av Avega Group AB _(Sverige)_, David J. Anderson and Associates, Inc _(USA)_, +Net Objectives _(USA)_, AgileSparks Ltd _(Israel)_, Agileminds bvba _(Belgien)_, Athega AB _(Sverige)_, Corporate Kanban _(USA)_, Imaginet _(Kanada)_, +it-agile GmbH _(Tyskland)_, Leverage51 AS _(Norge)_, LEANability e.U. _(Österrike)_, Crisp AB _(Sverige)_, Reaktor _(Finland)_, +TeamProsource NV _(Belgien, Storbritanien)_, Trifork A/S _(Danmark)_, Valueinnova LLC _(USA)_, VX Company IT Services B.V. _(Nederländerna)_, Xebia Group B.V. _(Nederländerna)_. Läs mer i pressrelease från “[Lean-Kanban University - Accredited Kanban Training Program](http://www.leankanbanuniversity.com/accredited-kanban-training)” diff --git a/_posts/2012-06-01-mjukvarutips-vtd12.md b/_posts/2012-06-01-mjukvarutips-vtd12.md index 51a88cf..8acd44b 100644 --- a/_posts/2012-06-01-mjukvarutips-vtd12.md +++ b/_posts/2012-06-01-mjukvarutips-vtd12.md @@ -6,20 +6,17 @@ last_updated_by: peter I onsdags var jag ([Peter](/peter)) och [Johan](/johan) på Valtech för deras årliga [Tech Day](http://vtd12.se/). -Istället för att skriva om presentationerna tänkte jag lista några +Istället för att skriva om presentationerna tänkte jag lista några av de applikationer och ramverk som nämndes under dagen. - ### Network Link Conditioner Ett litet verktyg som du hittar i paketet **Hardware IO Tools for Xcode** - -### [Flexslider](http://www.woothemes.com/flexslider/) +### [Flexslider](http://www.woothemes.com/flexslider/) Ett helt responsivt bildspel baserat på jQuery. - ### [Modernizr](http://modernizr.com/) Modernizr är ett JavaScript-ramverk som används för att identifiera @@ -27,19 +24,17 @@ vilka funktioner en besökares webbläsare stödjer. Det gör det enklare för utvecklaren att börja använda sig av HTML5 och CSS3 funktioner som ännu inte stöds av alla webbläsare. - -### [ImageOptim](http://imageoptim.com/) +### [ImageOptim](http://imageoptim.com/) Med ImageOptim kan man snabbt och enkelt komprimera bilder, främst för användning på nätet. Det stödjer formaten PNG, JPEG och GIF. Det är för övrigt en OS X applikation. - ### [The Play framework](http://www.playframework.org/) -Ett riktigt intressant webbramverk som med tiden har -fått ett ökat fokus på JVM-språket +Ett riktigt intressant webbramverk som med tiden har +fått ett ökat fokus på JVM-språket [Scala](http://www.scala-lang.org/). @@ -47,33 +42,30 @@ fått ett ökat fokus på JVM-språket En meddelandekö implementerad som ett [jQuery](http://jquery.com/)-plugin. -> You can also get some quantity of JavaScript ducks, put them in a boat, +> You can also get some quantity of JavaScript ducks, put them in a boat, > in a line, and have them fight loudly over who gets to use the oars. - ### [Meteor](http://meteor.com/) Ett riktigt spännande webbramverk byggt med [Node.js](http://nodejs.org/). -Något av det intressantaste med Meteor är att man i stort sett har suddat ut +Något av det intressantaste med Meteor är att man i stort sett har suddat ut gränsen mellan klient och server. - ### [Handlebars.js](http://handlebarsjs.com/) -En vidareutveckling eller snarare en utökning av mallspråket -[Mustache](http://mustache.github.com/). (Ett annat alternativ är +En vidareutveckling eller snarare en utökning av mallspråket +[Mustache](http://mustache.github.com/). (Ett annat alternativ är [Hogan.js](http://twitter.github.com/hogan.js/) från Twitter) - ### [Jasmine](http://pivotal.github.com/jasmine/) -BDD-testramverk för JavaScript. Jag använder det oftast i -kombination med [CoffeeScript](http://coffeescript.org/), +BDD-testramverk för JavaScript. Jag använder det oftast i +kombination med [CoffeeScript](http://coffeescript.org/), enligt mig blir det riktigt stiligt. ### [Clojure](http://clojure.org/) -En LISP-dialekt på JVMen, en perfekt kombination? Jag tror nästan det :) +En LISP-dialekt på JVMen, en perfekt kombination? Jag tror nästan det :) För pakethantering och beroendehantering så rekomenderas [Leiningen](http://leiningen.org/). ### [SPDY](http://dev.chromium.org/spdy) diff --git a/_posts/2012-06-23-nordic-ruby-2012.md b/_posts/2012-06-23-nordic-ruby-2012.md index 2d7e631..f4a25ee 100644 --- a/_posts/2012-06-23-nordic-ruby-2012.md +++ b/_posts/2012-06-23-nordic-ruby-2012.md @@ -3,12 +3,12 @@ title: "Nordic Ruby 2012" date: 2012-06-23 last_updated_by: peter --- -Under förra helgen var jag ([Peter](/peter)), -[Johan](/johan), [Mikael](/mikael) och [Petter](/petter) på +Under förra helgen var jag ([Peter](/peter)), +[Johan](/johan), [Mikael](/mikael) och Petter på [Nordic Ruby](http://2012.nordicruby.org/). -Tidigare år har vi åkt ner till Göteborg, men i år -flyttades konferensen till Stockholm, närmare bestämt +Tidigare år har vi åkt ner till Göteborg, men i år +flyttades konferensen till Stockholm, närmare bestämt till [Yasuragi Hasseludden](http://www.yasuragi.se/). ## Fredag @@ -31,24 +31,24 @@ Han nämnde även på att känslor ofta överskuggar logik. ### We don’t know HTTP -Den andra föreläsningen hölls av -[Konstantin Haase](https://twitter.com/konstantinhaase) +Den andra föreläsningen hölls av +[Konstantin Haase](https://twitter.com/konstantinhaase) och han gick igenom de olika HTTP-verben och hur man egentligen borde använda dem. (Enligt Konstantin missbrukas POST i allt för stor utsträckning) ### Ruby++ -[Ben Orenstein](https://twitter.com/r00k) gick igenom några -funktioner som det skulle vara trevligt om Ruby hade. Några exempel -på detta var *List comprehension* och *Significant whitespace* +[Ben Orenstein](https://twitter.com/r00k) gick igenom några +funktioner som det skulle vara trevligt om Ruby hade. Några exempel +på detta var *List comprehension* och *Significant whitespace* (CoffeeScript/Python) > Haskell is a slightly inconvenient language for the normal developer -Han visade även hur elegant syntax +Han visade även hur elegant syntax LISP-dialekten [Clojure](http://clojure.org/) har. -En fördel med funktionella språk är att det generellt +En fördel med funktionella språk är att det generellt sett är väldigt enkelt att skriva tester. ### Therapeutic Refactoring @@ -58,13 +58,13 @@ konferensens absolut bästa föreläsningar. > Random acts of refactorings -Vi fick följa henne när hon steg för steg tog sig an uppgiften +Vi fick följa henne när hon steg för steg tog sig an uppgiften att förbättra en metod som varken var testad eller lätt att förstå. -Ett av hennes knep var att skriva nonsens-tester för att +Ett av hennes knep var att skriva nonsens-tester för att få reda på vad metoden returnerar. -Hon använde även designmöstret +Hon använde även designmöstret [Replace Method with Method Object](http://www.refactoring.com/catalog/replaceMethodWithMethodObject.html) @@ -81,10 +81,10 @@ Tyvärr hade jag hoppats på något lite mer användbart. ### Marketing for Geeks -[Brian Doll](https://twitter.com/briandoll) föreläste om +[Brian Doll](https://twitter.com/briandoll) föreläste om olika former av marknadsföring som kan vara användbara för oss utvecklare. Han tyckte verkligen att man ska hantera sin egen -marknadsföring, speciellt som kommunikationen med kunder +marknadsföring, speciellt som kommunikationen med kunder måste gå åt båda hållen. En av hans rekomendationer var att läsa [Voice and @@ -96,7 +96,7 @@ Tone](http://voiceandtone.com/) från MailChimp. ### Building an army of robots -[Kyle Neath](https://twitter.com/kneath) från +[Kyle Neath](https://twitter.com/kneath) från [GitHub](https://github.com/) visade ett flertal av deras interna system. (Det syntes verkligen att de lagt ner mycket tid på att bygga välfungerande och framför allt snygga applikationer) @@ -108,8 +108,8 @@ Några exempel: - The Graph Store (Grafer för **allt**) - Janky (Ett snyggare gränssnitt till CI-servern Jenkins) -Han hävdade att interna verktyg är en viktig -faktor när företagskulturen formas och att man +Han hävdade att interna verktyg är en viktig +faktor när företagskulturen formas och att man därför borde satsa lite extra mycket på dem. ### Mastering Database Design with Redis @@ -123,10 +123,10 @@ för komplexa relationer, sökningar eller sortering. ### Yay! Mocks! -[Corey Haines](https://twitter.com/coreyhaines) pratade om *Mocks* +[Corey Haines](https://twitter.com/coreyhaines) pratade om *Mocks* eller snarare alla typer av *Test Doubles*. -Han hävdade att en anledning till att så många tycker illa om +Han hävdade att en anledning till att så många tycker illa om *Test Doubles* är att de representerar en “reaktion av smärta”. > Test Doubles often highlight pain @@ -135,8 +135,8 @@ En tumregel är att man bara hanterar **vad** som ska göras i sina *Controllers* och inte **hur**, det är oftast bättre att delegera vidare till modellen. -Om testerna är svåra att skriva så ska man se det som en indikation -att man kanske behöver förändra sin design så att koden blir enklare +Om testerna är svåra att skriva så ska man se det som en indikation +att man kanske behöver förändra sin design så att koden blir enklare att testa. > TDD is about refactoring away from discomfort @@ -146,7 +146,7 @@ om att använda *Stubs* och *Mocks*. ### Perfectionists Anonymous -[Alan Gardner](https://twitter.com/mr_urf) och +[Alan Gardner](https://twitter.com/mr_urf) och [Erin O’Brien](https://twitter.com/coolaunterin) höll en gemensam föreläsning om psykologin bakom perfektionism. @@ -156,7 +156,7 @@ Tre punker som jag tyckte var extra bra: - Lita på att andra gör ett bra jobb - Behandla varandra med respekt -De nämnde även #devmed, vilket är en mycket enkel meditationsform +De nämnde även #devmed, vilket är en mycket enkel meditationsform som jag utövat till och från sedan Rocky Mountain Ruby förra året. ### Metrics Driven X @@ -171,7 +171,7 @@ Det finns två typer av mätvärden, kvalitativa och kvantitativa; - Kvalitativa mätningar kan ses som tillväxthastigheten för produkten - Kvantitativa mätningar kan ses som accelerationen av produktens tillväxt -Tre av de verktyg som de använder för att mäta trender +Tre av de verktyg som de använder för att mäta trender är Statsd, Graphite och deras eget projekt Graphiti. ### Adventures on the Golden Path @@ -200,3 +200,5 @@ Några förbättringar som han skulle vilja se i Rails 4: Men han ser även att det skulle kunna ske lite förbättringar ![Träd i dimma](http://assets.athega.se/blogg/2012/06/yasuragi_trees_in_fog.jpg) + +/ [Peter](/peter) diff --git a/_posts/2012-09-27-rocky-mountain-ruby-2012.md b/_posts/2012-09-27-rocky-mountain-ruby-2012.md index efe4926..49384bc 100644 --- a/_posts/2012-09-27-rocky-mountain-ruby-2012.md +++ b/_posts/2012-09-27-rocky-mountain-ruby-2012.md @@ -6,14 +6,14 @@ last_updated_by: peter ![Boulder Theatre - Rocky Mountain Ruby Conference](http://assets.athega.se/blogg/2012/09/boulder_theatre_rmr.jpg) Förra veckan fylldes [Boulder Theater](http://www.bouldertheater.com/) -ännu en gång av Rubyister från ett flertal delstater och länder, -det var dags för årets upplaga av konferensen +ännu en gång av Rubyister från ett flertal delstater och länder, +det var dags för årets upplaga av konferensen [Rocky Mountain Ruby](http://rockymtnruby.com/). ## Onsdag 19/9 -Kvällen innan konferensen kom igång på riktigt höll -[Quick Left](http://quickleft.com/) en [Arduino](http://arduino.cc/)-hackfest. +Kvällen innan konferensen kom igång på riktigt höll +[Quick Left](http://quickleft.com/) en [Arduino](http://arduino.cc/)-hackfest. (Hårdvaran sponsrades av [SparkFun](http://www.sparkfun.com/)) ![Quick Left - Arduino](http://assets.athega.se/blogg/2012/09/quickleft_arduino.jpg) @@ -28,7 +28,7 @@ några minuter av [\#devmed](https://twitter.com/i/#!/search/realtime/%23devmed) > What is the future cost of doing nothing now? Den första presentationen hölls av [Sandi Metz](https://twitter.com/sandimetz) -och hon satte ribban riktigt högt för de andra talarna :) +och hon satte ribban riktigt högt för de andra talarna :) Hon beskrev hur man kan göra för att strukturera sin kod så att man kapslar in de tråkigaste delarna av en kodbas. @@ -88,16 +88,16 @@ Han visade även sitt bibliotek [Gimme](https://github.com/searls/gimme). [Roy Tomeij](https://twitter.com/roy) höll mycket bra dragning om hur man kan strukturera sin HTML och CSS på ett modulärt sätt, en lösning som hade vissa likheter med SMACSS som -[Jonathan Snooks](https://twitter.com/snookca) pratade om på förra +[Jonathan Snooks](https://twitter.com/snookca) pratade om på förra [Geek Meet Stockholm](http://robertnyman.com/geekmeet/). [Video](http://www.youtube.com/watch?v=TqPzxrCIJTs) och [Slides](http://roytomeij.com/slides/rockymountainruby2012/) ### Lightning talks -[Colin Thomas-Arnold](https://twitter.com/colinta) visade -[RubyMotion](http://www.rubymotion.com/) samt biblioteken -[BubbleWrap](https://github.com/rubymotion/bubblewrap), +[Colin Thomas-Arnold](https://twitter.com/colinta) visade +[RubyMotion](http://www.rubymotion.com/) samt biblioteken +[BubbleWrap](https://github.com/rubymotion/bubblewrap), [SugarCube](https://github.com/rubymotion/sugarcube) och [Teacup](https://github.com/rubymotion/teacup). @@ -109,7 +109,7 @@ som hade vissa likheter med SMACSS som [José Valim](https://twitter.com/josevalim) förklarade på ett enkelt sätt hur samtidighet (concurrency) fungerar. Han rekomenderade även sitt -språk [Elixir](http://elixir-lang.org/), Ruby-biblioteken +språk [Elixir](http://elixir-lang.org/), Ruby-biblioteken [Celluloid](http://celluloid.io/) och [DCell](https://github.com/celluloid/dcell) samt boken [Seven languages in seven weeks](http://pragprog.com/book/btlang/seven-languages-in-seven-weeks). @@ -120,10 +120,10 @@ och [DCell](https://github.com/celluloid/dcell) samt boken > Pre-auth BOSH -[Derrick Ko](https://twitter.com/derrickko) berättade om hur -[Kicksend](http://kicksend.com/) använder sig av -[ejabberd](http://www.ejabberd.im/), -[RubyBOSH](https://github.com/skyfallsin/ruby_bosh) och +[Derrick Ko](https://twitter.com/derrickko) berättade om hur +[Kicksend](http://kicksend.com/) använder sig av +[ejabberd](http://www.ejabberd.im/), +[RubyBOSH](https://github.com/skyfallsin/ruby_bosh) och [Strophe.js](http://strophe.im/strophejs/) för att öka prestandan på sin tjänst. (både riktig och upplevd) @@ -162,14 +162,14 @@ föreläsning. ## Lördag 22/9 Jag och [Paul](https://twitter.com/p_elliott) tänkte hitta något bra -café att äta frukost på, men så visade det sig att -[Matt](https://twitter.com/mattyoho) redan var på väg till +café att äta frukost på, men så visade det sig att +[Matt](https://twitter.com/mattyoho) redan var på väg till [The Kitchen](http://thekitchencommunity.com/the-kitchen-boulder/) för att möta upp några fler som fortfarande var kvar i Boulder. Vi var självklart inte sena med att haka på :) -Under frukosten bestämde vi oss för att det skulle vara kul att -se mer av de klippiga bergen. [Brian](https://twitter.com/brianlong) +Under frukosten bestämde vi oss för att det skulle vara kul att +se mer av de klippiga bergen. [Brian](https://twitter.com/brianlong) var snäll och ställde upp som både chaufför och guide. _(Boulder -> Nederland -> Peak 2 Peak -> Brainard Lake -> Ward -> Boulder)_ diff --git a/_posts/2012-11-05-dags-for-acb-2012.md b/_posts/2012-11-05-dags-for-acb-2012.md index cb07604..e6c121b 100644 --- a/_posts/2012-11-05-dags-for-acb-2012.md +++ b/_posts/2012-11-05-dags-for-acb-2012.md @@ -13,9 +13,9 @@ Den 30 november är det åter igen dags för Athega Code Base. ![Tornet](http://farm7.staticflickr.com/6051/6294782321_c8d1b5495b_b.jpg) -Alla får välja ett projekt innan vi åker och årets ämne är “Öppna data”. Det är inte tvingande att hålla sig till ämnet utan är mer ett underlag för inspiration och idéer. +Alla får välja ett projekt innan vi åker och årets ämne är “Öppna data”. Det är inte tvingande att hålla sig till ämnet utan är mer ett underlag för inspiration och idéer. -Här följer några länkar till källor och information kring kring “Öppna data” +Här följer några länkar till källor och information kring kring “Öppna data” - - @@ -23,5 +23,5 @@ Här följer några länkar till källor och information kring kring “Öppna d - - -Vi kommer fram till Söderarm på **fredagen** ungefär kl **09:30** och lämnar **lördag** kl **15:30**. +Vi kommer fram till Söderarm på **fredagen** ungefär kl **09:30** och lämnar **lördag** kl **15:30**. Det ger en effektiv utvecklingstid på ungefär **8** timmar. diff --git a/_posts/2012-11-09-Code_Base_2012_Inspiration.md b/_posts/2012-11-09-Code_Base_2012_Inspiration.md index aaf51cb..6f6b6ce 100644 --- a/_posts/2012-11-09-Code_Base_2012_Inspiration.md +++ b/_posts/2012-11-09-Code_Base_2012_Inspiration.md @@ -3,15 +3,19 @@ title: "Nytta med nöje" date: 2012-11-09 last_updated_by: mats --- -Varje år åker vi iväg till en inspirerande plats och kodar tillsammans. Nu är det dags igen. -Code Base handlar om lärande och inspiration. Vi inspireras av det vi arbetar med och utifrån det vill vi fördela våra individuella specialistkunskaper och erfarenheter mellan oss i ett roligt forum. +> Varje år åker vi iväg till en inspirerande plats och kodar tillsammans. Nu är det dags igen. + +Code Base handlar om lärande och inspiration. Vi inspireras av det vi arbetar med och utifrån det +vill vi fördela våra individuella specialistkunskaper och erfarenheter mellan oss i ett roligt forum. + +## Öppna data -**Öppna data** Vi har satt ett tema ”Öppna data”. Utifrån detta vår vi välja helt fritt vad vi ska lära oss mer om. Det viktiga är att vi lär oss tillsammans. -**Nytta med nöje** +## Nytta med nöje + Ni som partners och kunder får gärna komma med inspiration och förslag om ni har något ni vill att vi ska titta på. Det kanske är en allmän frågeställning eller ett specifikt problem ni vill få hjälp att lösa. Vi lovar göra vårt bästa och samtidigt lära oss så mycket som möjligt om ämnet om vi väljer ert förslag. -// Mats +/ [Mats](/mats) diff --git a/_posts/2012-11-11-oredev-2012.md b/_posts/2012-11-11-oredev-2012.md index 6b9c789..429d6cb 100644 --- a/_posts/2012-11-11-oredev-2012.md +++ b/_posts/2012-11-11-oredev-2012.md @@ -8,7 +8,7 @@ image_url: http://assets.athega.se/blogg/2012/11/oredev-grinding-the-crack.jpg ![Grinding the crack](http://assets.athega.se/blogg/2012/11/oredev-grinding-the-crack.jpg) Precis som tidigare år åkte vi -([Alex](/alex), [Chrille](/chrille), [Johan](/johan) och [Peter](/peter)) +(Alex, [Chrille](/chrille), [Johan](/johan) och [Peter](/peter)) ner till Malmö för att gå på utvecklarkonferensen [Øredev](http://oredev.org/2012/). ## Videos från presentationerna @@ -36,8 +36,8 @@ Arrangörerna listar dem på [![Gophers](http://golang.org/doc/gopher/project.png)](http://golang.org/project/) -Jag började kika på [Go](http://golang.org/) för ett litet tag sedan -och de båda Go-föreläsningarna gjorde mig ännu mer taggad +Jag började kika på [Go](http://golang.org/) för ett litet tag sedan +och de båda Go-föreläsningarna gjorde mig ännu mer taggad att använda språket i större utsträckning i framtiden. [Erlang](http://www.erlang.org/) “klickade” aldrig för mig, diff --git a/_posts/2012-12-01-resultatet_fran_athega_code_base_2012.md b/_posts/2012-12-01-resultatet_fran_athega_code_base_2012.md index c5165c6..ffaa2c6 100644 --- a/_posts/2012-12-01-resultatet_fran_athega_code_base_2012.md +++ b/_posts/2012-12-01-resultatet_fran_athega_code_base_2012.md @@ -30,12 +30,12 @@ Ett fungerande exempel kan finnas [här](http://hem.lizell.se/content/dash/). ## Enkelt API för populära bilder på 500px Jag hittade nyligen tjänsten [ScraperWiki](https://scraperwiki.com/) -som låter dig bygga enkla scrapers i Ruby, Python och PHP. +som låter dig bygga enkla scrapers i Ruby, Python och PHP. -Mitt lilla [hack](https://scraperwiki.com/scrapers/500px/) -består i att skrapa några sidor med populära -bilder från [500px](http://500px.com/), informationen sparar jag -ner i ScraperWikis datastore vilket gör att jag kan använda mig +Mitt lilla [hack](https://scraperwiki.com/scrapers/500px/) +består i att skrapa några sidor med populära +bilder från [500px](http://500px.com/), informationen sparar jag +ner i ScraperWikis datastore vilket gör att jag kan använda mig av deras generella [data API](https://scraperwiki.com/docs/api#sqlite) ![iPad med 500px hacket](http://assets.athega.se/blogg/2012/12/ipad-mini-with-500px-hack.jpg) @@ -52,7 +52,7 @@ Alla människor har adresser som deras liv kretsar kring, t.ex. arbete eller sko Teknikerna som användes var JavaScript, [node.js](http://nodejs.org/), [OpenStreetMap](http://www.openstreetmap.org/), SLs Reseplanerare. -/ [Alex](/alex) +/ Alex ## Ansiktsigenkänning med WebRTC, Websockets och OpenCV (Micke) diff --git a/_posts/2012-12-02-mer_resultat_fran_athega_code_base_2012.md b/_posts/2012-12-02-mer_resultat_fran_athega_code_base_2012.md index 15352cf..83988a9 100644 --- a/_posts/2012-12-02-mer_resultat_fran_athega_code_base_2012.md +++ b/_posts/2012-12-02-mer_resultat_fran_athega_code_base_2012.md @@ -7,15 +7,16 @@ last_updated_by: tobbe In some situations it is good to show that you have been diligent and working hard; Athega Codebase 2012 is no exception. You know the other guys have such great ideas and the scenery around us at Söderarm is amazing, its hard to do any real work at all. -So I figured lets show how to create value on our machines [whilst we are dreaming and looking out the windows] by investigating the ideas behind Bitcoin and the like. +So I figured lets show how to create value on our machines [whilst we are dreaming and looking out the windows] by investigating the ideas behind Bitcoin and the like. Well, as you shall see, things did not go quite to plan! Bitcoin and Bitgold are new experimental digital currencies, see bitcoin.com, and proof of work is essential to their inner workings. -Here, value is based on work done in the computer solving very difficult problems. +Here, value is based on work done in the computer solving very difficult problems. + +Simply, solving difficult problems requires a lot of work. So a solved difficult problem has value, in exactly the same way mined silver has intrinsic value. And silver can be used to make coins! So by analogy one can make coins of the value in solving difficult problems; well in theory at least. -Simply, solving difficult problems requires a lot of work. So a solved difficult problem has value, in exactly the same way mined silver has intrinsic value. And silver can be used to make coins! So by analogy one can make coins of the value in solving difficult problems; well in theory at least. But Bitcoin is just one current example of a working digital currency. Cool, and worth looking into, could this be true, and could I build a model of this process? And what is a proof of work function? @@ -42,16 +43,17 @@ I told you I was looking out the window. And here is my proof of work - + And this time I did manage to produce something with enough value to give away. For free, its true, but its a start :) -Hurray, success at last. +Hurray, success at last. I had managed to understand how producing digital value works, and maybe learnt something of value along the way! -For more information about bitcoin-mining see [www.bitcoin.com](http://www.bitcoin.com), and know you understand the principles, create value on your machine, and sell what you produce! For real money. +> For more information about bitcoin-mining see [www.bitcoin.com](http://www.bitcoin.com), and know you understand the principles, +> create value on your machine, and sell what you produce! For real money. -[Mark](mark) +[Mark](/mark) diff --git a/_posts/2013-02-17-nya_ur_play.md b/_posts/2013-02-17-nya_ur_play.md index 8ecec59..45ec18b 100644 --- a/_posts/2013-02-17-nya_ur_play.md +++ b/_posts/2013-02-17-nya_ur_play.md @@ -20,6 +20,7 @@ image_url: /assets/legacy/uploads/2013/10/johan-beronius_small.jpg Alla på UR är klart stolta över det vi åstadkommit och blir taggade att fortsätta utveckla UR Play. ### Ni siktar på att bli bästa play-siten i världen, hur ska det gå till? + Strategin är att noggrant följa hur våra tittare och lyssnare använder UR Play, speciellt i samspel med sociala medier. Förstår vi detta fullt ut så kan vi också kontinuerligt skapa en ännu bättre on-demand-tjänst. ### Hur mycket resurser behövs för att nå den här nivån? diff --git a/_posts/2013-03-15-aftonbladets_nya_livestudio.md b/_posts/2013-03-15-aftonbladets_nya_livestudio.md index 0d907dd..890653a 100644 --- a/_posts/2013-03-15-aftonbladets_nya_livestudio.md +++ b/_posts/2013-03-15-aftonbladets_nya_livestudio.md @@ -11,11 +11,13 @@ Nu får SVT och TV4 konkurrens. Aftonbladets nya live-studio är igång på minu **Den nya studion byggdes upp bara några steg från centrala nyhetsdesken. Vi träffade Vasilios Hatciliamis och ställde några frågor.** ### Vasilios, du ledde uppbyggnaden av nya studion, hur lång tid tog det? + – Totalt tog det tre veckor att få all teknik på plats. Det här är vår andra studio så vi hade redan en hel del infrastruktur exempelvis för att ta in live video feed från olika källor. ### Varför byggde ni en ny studio? ### Hur mycket resurser behövs för att nå den här nivån? + – Vi vill kunna sända live med kort varsel i en studio som är byggd för livesändningar till skillnad mot vår gamla som var byggd för produktioner. Nya studion ligger på samma våningsplan som redaktionen. Nyhetsdesken kan ta beslut ena sekunden och nästa är vi igång. Tekniken är anpassad för att sända med minimal bemanning. Det räcker med en reporter framför kameran i studion och en tekniker i kontrollrummet. Teknikern fjärrstyr robotkamerorna, bildproducerar och styr grafiken. Det är också från kontrollrummet vi väljer in de olika livefeederna och håller kontakten med våra liveteam på fältet. Sen visar vi live-bilder i studion antingen med egen reporter på fältet eller genom att länka in andra sändningar och fylla på med expertkommentarer i studion.

        @@ -24,10 +26,13 @@ Nu får SVT och TV4 konkurrens. Aftonbladets nya live-studio är igång på minu
        ### Hur skiljer ni er från SVT? + – Vi kommer aldrig tablålägga några nyhetssändningar utan sänder när nyheterna är färska. Vi vill ha live-känslan och har ingen ambition att det ska kännas planerat. Vi är bra på att snabbt fånga känslor kring stora händelser och det ska vi fortsätta med. Så visst finns det fördelar mot de traditionella broadcast-kanalernas nyhetsrapportering. ### Men blir det inga omställningar alls? + – Våra reportrar kommer behöva lära sig mer teknik. Kraven är större på en videoreporter än på en skrivande reporter. Man måste kunna ställa in kameran rätt, hantera livesändningsutrustningen och videoredigera. När man åker iväg till en plats man ska sända ifrån har man ingen aning om de lokala förutsättningarna för att kunna feeda hem sin rapport. Finns det bra 3G/4G täckning, går det att komma ut på internet, finns det något wifi? Men allt är inte akututryckningar. För stora händelser vi känner till i förväg så har vi tid att planera tekniken och då kanske vi till och med hyr satellitbussar. ### Drack ni skumpa precis som Karin Magnusson och Jan Helin på premiärsändningen 18 februari? + – Ja, vi fick en chans att fira vi också. diff --git a/_posts/2013-03-18-stop_starting_start_finishing_athega.md b/_posts/2013-03-18-stop_starting_start_finishing_athega.md index 2abcb4e..4fa6173 100644 --- a/_posts/2013-03-18-stop_starting_start_finishing_athega.md +++ b/_posts/2013-03-18-stop_starting_start_finishing_athega.md @@ -3,19 +3,18 @@ title: "Stop starting start finishing" date: 2013-03-18 last_updated_by: mats --- -![](http://www.dfkompetens.se/_internal/cimg!0/3o5iriwoo0p5ga9e2az6e9hq9gga3z8) -Under tisdagen och onsdagen förra veckan anordnades ”Stop starting, Start finishing” konferensen på Hilton Hotell i Stockholm. Ca 150 deltagare från flera branscher och områden samlades. Programmet fokuserade på Lean Kanban och beskrevs som följer. +Under tisdagen och onsdagen förra veckan anordnades ”Stop starting, Start finishing” konferensen på Hilton Hotell i Stockholm. Ca 150 deltagare från flera branscher och områden samlades. Programmet fokuserade på Lean Kanban och beskrevs som följer. + +> _”Hur kan din produkt, verksamhet eller IT-organisation få saker gjorda och avslutade? Hur kan din organisation hantera risker och nå marknaden i rätt tid? Hur kan en produkt-, tjänst- eller projektorganisation göra mindre och tjäna mer?”_ -_”Hur kan din produkt, verksamhet eller IT-organisation få saker gjorda och avslutade? Hur kan din organisation hantera risker och nå marknaden i rätt tid? Hur kan en produkt-, tjänst- eller projektorganisation göra mindre och tjäna mer?” -_ Spridningen på framförandena var stor och täckte in en mängd områden. Jag kommer beskriva några nedan. Tisdagen startades av
 David J. Anderson (LKU och DJAA) med _”Aligning Creative Work with Business Risks”_. David visade hur uppströms visualisering och begränsning kan förbättra vårt sätt att göra rätt saker i rätt tid och minska vår affärsrisk. Att traditionell Agil planering kan anses vara waste och arbete läggs ner på gissningar vilket även kan öka vår risk. David visade på de olika sätt Kanban hanterar risk och vilka möjligheter vi har med Kanban att hantera vår risk utifrån vår domän och specifika risk. En lista på enkla regler för att förbättra vår riskhantering presenterades. Listan innehöll bland annat saker som att använda WiP limits på risk-kategorier. David pratade vidare om att vi ska skjuta på åtagande så sent det bara går. Vi måste hantera osäkerhet och variation. Ordet backlog indikerar att det är något vi på något sätt _åtagit_ oss att förr eller senare leverera. Föreslog ordet ”Ideer” istället. -Efter David var det Arne Roock som pratade om alignment. _”Alignment – the forgotten child”_. +Efter David var det Arne Roock som pratade om alignment. _”Alignment – the forgotten child”_. Arne pratade om hur vi i vår strävan bort från ”command and control” till självorganiserande team där organisationen ibland glömmer bort alignment. Arne pratade om hur viktigt det är med alignment och konsekvenserna om inte alignment finns på plats. Även olika sätt att nå mer alignment. Jag tycker det var mycket intressant och kopplade samman lite vad Don Reinertsen pratade om på LSSC12. -Tisdag kväll var det Open Space night och Athega var med som sponsor. Det var en trevlig tillställning. +Tisdag kväll var det Open Space night och Athega var med som sponsor. Det var en trevlig tillställning. diff --git a/_posts/2013-03-21-Idag_lanserar_Aftonbladet_ny_TV_site.md b/_posts/2013-03-21-Idag_lanserar_Aftonbladet_ny_TV_site.md index d547044..1a617f5 100644 --- a/_posts/2013-03-21-Idag_lanserar_Aftonbladet_ny_TV_site.md +++ b/_posts/2013-03-21-Idag_lanserar_Aftonbladet_ny_TV_site.md @@ -7,9 +7,11 @@ tags: last_updated_by: mats image_url: /assets/legacy/uploads/2013/10/peterb_small.png --- -Med en ny site för bara video blir upplevelsen bättre för användarna. Dessutom ökar annonsintäkterna. Peter Björklund kan berätta mer. ------------- + +> Med en ny site för bara video blir upplevelsen bättre för användarna. Dessutom ökar annonsintäkterna. Peter Björklund kan berätta mer. + ### Peter, du jobbar som konsult hos oss och har varit med under projektet, varför gör Aftonbladet en egen TV-site? + – På vanliga aftonbladet.se ligger alla filmer och klipp huller om buller med artiklar, reportage, foton och reklam. Det är tuff konkurrens om uppmärksamheten. Och eftersom Aftonbladet gör egna TV-program vill man gärna att publiken ska hitta dem. Den enda vettiga lösningen är att skapa en egen site byggd ungefär som en play-site med den skillnaden att den också pushar för de egenproducerade programmen. Layouten är ren, snygg och lättnavigerad. Och allt är enkelt sökbart.
        Peter Björklund @@ -32,4 +34,4 @@ Med en ny site för bara video blir upplevelsen bättre för användarna. Dessut – Vi rev bort all gammal teknik och började från noll. Förstudien gjordes i maj förra året, sen valdes leverantörer och i september började vi skriva kod. Det har gått undan hela tiden. Nu vid premiären finns det drygt 3 200 GB lagrat fördelat på över 3 500 filmer och antalet ökar med 10-20 stycken per dag. -[tv.aftonbladet.se/](http://tv.aftonbladet.se/) +[tv.aftonbladet.se/](https://tv.aftonbladet.se/) diff --git a/_posts/2013-05-23-ramavtal-med-forsakringskassan.md b/_posts/2013-05-23-ramavtal-med-forsakringskassan.md index 31b9ed0..9af5fef 100644 --- a/_posts/2013-05-23-ramavtal-med-forsakringskassan.md +++ b/_posts/2013-05-23-ramavtal-med-forsakringskassan.md @@ -5,4 +5,4 @@ last_updated_by: mats --- Athega har tillsammans med Gabert&Partner blivit tilldelade ramavtal inom systemutveckling och projektledning. Nu hoppas vi på många intressanta uppdragsförfrågningar. -/ [Fredrik](/fredrik) +/ Fredrik diff --git a/_posts/2013-06-04-monster-i-stora-datamangder.md b/_posts/2013-06-04-monster-i-stora-datamangder.md index 0158371..a4f3bb6 100644 --- a/_posts/2013-06-04-monster-i-stora-datamangder.md +++ b/_posts/2013-06-04-monster-i-stora-datamangder.md @@ -7,17 +7,20 @@ tags: last_updated_by: mats image_url: http://i3.createsend1.com/ei/j/57/6D5/833/203220/mikael.png --- -Har du sett någon snygg grafik på sistone? Den kan vara gjord med R. Mikael Forsberg kan berätta mer om succén för detta open-source-språk. ------------- -### Mikael, du är konsult hos oss och gillar R. Varför då?
        + +> Har du sett någon snygg grafik på sistone? Den kan vara gjord med R. Mikael Forsberg kan berätta mer om succén för detta open-source-språk. + +## Mikael, du är konsult hos oss och gillar R. Varför då?
        + – För det första är det ett open-source-språk, vilket aldrig är fel. Sen är det skapat enbart för dataanalys vilket också känns helt rätt. -
        +
        r Den kända fb-vänkartan är gjord i R.
        -### Vad kan R användas till? +## Vad kan R användas till? + – R kan användas överallt där man kan formulera en fråga som man tror kan besvaras med ett statistiskt underlag. Man kan till exempel ta reda på hur besökare beter sig på webbplatser genom att analysera loggar, eller hur ett nytt varumärke tas emot i sociala medier eller så vill en journalist processa offentlig data för att kanske hitta ett scoop.
        @@ -25,12 +28,15 @@ Har du sett någon snygg grafik på sistone? Den kan vara gjord med R. Mikael Fo Mikael Forsberg gillar att använda R för att hitta mönster i stora datamängder och sen enkelt visualisera dem..
        -### Varför ökar intresset för R? +## Varför ökar intresset för R? + – Embryot till R föddes redan 1997 men det är de sista tre åren som intresset exploderat. R har idag det man letar efter när man växt ur till exempel Excel. Man vill ha en enkel och kraftfull open source-miljö att göra analyser i och hitta mönster i sin data. Dessutom har R en stor och levande community med allt från statistiker från universitetsvärlden till programmerare från industrin. Communityn levererar "R-paket" som kan användas för att göra analyser av allt från naturligt språk till att skapa fantastiska diagram och grafer. När man väl sett dessa informativa visuella lösningar så vill man gärna göra samma sak själv. -### Finns det andra verktyg för just dataanalys? +## Finns det andra verktyg för just dataanalys? + – Javisst, några exempel är SAS, Stata och SPSS – inget av dem är dock open source. Det går också att använda programmeringsspråk som exempelvis Java och Python även om de inte är gjorda specifikt för dataanalys. -### Har du några bra exempel? -– Här är en länk till en snygg och smart [Visualisering över London](http://spatialanalysis.co.uk/2012/02/london-cycle-hire-pollution) som är gjord med R och paketet ggplot2. Alla från Google till Microsoft använder R idag. Här är en länk till en [artikel i New York Times](http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=0) från 2009 som kan sägas vara starten för intresset kring R – både mitt och många andras. Här är den kända [Facebook-vän-världskartan](https://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919) och här är en [fin lösning](http://timelyportfolio.github.io/rCharts_512paths/) som gjordes inför presidentvalet i USA. Andra mer konventionella grafer kan man hitta om +## Har du några bra exempel? + +– Här är en länk till en snygg och smart [Visualisering över London](http://spatialanalysis.co.uk/2012/02/london-cycle-hire-pollution) som är gjord med R och paketet ggplot2. Alla från Google till Microsoft använder R idag. Här är en länk till en [artikel i New York Times](http://www.nytimes.com/2009/01/07/technology/business-computing/07program.html?_r=0) från 2009 som kan sägas vara starten för intresset kring R – både mitt och många andras. Här är den kända [Facebook-vän-världskartan](https://www.facebook.com/notes/facebook-engineering/visualizing-friendships/469716398919) och här är en [fin lösning](http://timelyportfolio.github.io/rCharts_512paths/) som gjordes inför presidentvalet i USA. Andra mer konventionella grafer kan man hitta om man bildgooglar på just ggplot2 som är ett av de mest populära paketen för att visualisera data med R. diff --git a/_posts/2013-06-18-nordic-ruby-2013.md b/_posts/2013-06-18-nordic-ruby-2013.md index 5387756..28fd3e3 100644 --- a/_posts/2013-06-18-nordic-ruby-2013.md +++ b/_posts/2013-06-18-nordic-ruby-2013.md @@ -17,7 +17,7 @@ Efter bad och en stadig frukost var det dags för konferensen att komma igång o ### The History of Women in Programming -Konferensen inleddes av [Elise Worthy](http://twitter.com/eliseworthy) och +Konferensen inleddes av [Elise Worthy](http://twitter.com/eliseworthy) och [Jessica Suttles](http://twitter.com/jlsuttles) som berättade om kvinnors viktiga roll i datorns historia. De rekomenderade bland annat böckerna [The Computer Boys Take Over](http://thecomputerboys.com/?page_id=20) och [Gender Codes: Why Women Are Leaving Computing](http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470597194.html). @@ -36,8 +36,8 @@ föreläsning om klara känslosamma motgångar genom fysisk träning. ### Bootstrapping as a Developer -[Tekin Suleyman](https://twitter.com/tekin) berättade om hur han bootstrappade -[crowd.fm](https://crowd.fm/) samt hur viktigt det är att hitta rätt typ av kunder, +[Tekin Suleyman](https://twitter.com/tekin) berättade om hur han bootstrappade +[crowd.fm](https://crowd.fm/) samt hur viktigt det är att hitta rätt typ av kunder, speciellt när man har begränsat med finansiering och tid. > Build something your customers **NEED** @@ -46,7 +46,7 @@ speciellt när man har begränsat med finansiering och tid. [Katrina Owen](https://twitter.com/kytrinyx) gick igenom olika sätt att “levla” i livet. -Hennes initiala mål var att hon ville bli extraordinär på något… men hon hade inte helt +Hennes initiala mål var att hon ville bli extraordinär på något… men hon hade inte helt klart för sig **vad** det kunde vara. Så hon provade på det mesta. 1. Practice: Deliberate and focused @@ -71,10 +71,10 @@ Några av tipsen var att skriva **Outage Reports**, göra **Project Post-Mortems ### Making Friends with the Turtles -[Glenn Vanderburg](https://twitter.com/glv) förespråkade att alla borde lära -sig hur tekniken fungerar några abstraktionsnivåer under den nivå som man +[Glenn Vanderburg](https://twitter.com/glv) förespråkade att alla borde lära +sig hur tekniken fungerar några abstraktionsnivåer under den nivå som man vanligtvis jobbar mot. Han presenterade detta som fem punkter: - + 1. Don’t be afraid to learn the internals 2. Remove the barriers: Make it easy to explore 3. Choose the right tools, even if they’re not “cool” @@ -85,11 +85,11 @@ Han hävdade även om att alla abstraktioner läcker så fort något går snett. ### Realigning & Refactoring -[Jina Bolton](https://twitter.com/jina) beskrev hur hon jobbar +[Jina Bolton](https://twitter.com/jina) beskrev hur hon jobbar med [Sass](http://sass-lang.com/) och style guides. -Hon rekomenderade boken [Scalable and Modular Architecture for CSS](http://smacss.com/), -verktyget [SassMe](http://sassme.arc90.com/) och gridsystemet +Hon rekomenderade boken [Scalable and Modular Architecture for CSS](http://smacss.com/), +verktyget [SassMe](http://sassme.arc90.com/) och gridsystemet [Susy](http://susy.oddbird.net/), vilket bygger på [Compass](http://compass-style.org/). > Don’t try to document everything from the beginning. (You will give up) @@ -108,7 +108,7 @@ bias samt att 2/3 a jordens befolkning inte kan delta i projektet. ### Literate Programming: A Modern Approach -Jeremy Ashkenas pratade om [Literate CoffeeScript](http://ashkenas.com/literate-coffeescript/) +Jeremy Ashkenas pratade om [Literate CoffeeScript](http://ashkenas.com/literate-coffeescript/) samt [Knuths](http://en.wikipedia.org/wiki/Donald_Knuth) grundidé [Literate programming](http://en.wikipedia.org/wiki/Literate_programming). @@ -131,8 +131,8 @@ verktyg i vårt dagliga arbete med Ruby. Bundler, Rake, RSpec, RubyGems, etc. > Pervasive tools are Ruby smells. -Han beskrev det hela som spelet [Jenga](http://en.wikipedia.org/wiki/Jenga) -och att vi alla borde fokusera på att bygga en stabil grund snarare än +Han beskrev det hela som spelet [Jenga](http://en.wikipedia.org/wiki/Jenga) +och att vi alla borde fokusera på att bygga en stabil grund snarare än att utveckla nya verktyg. Han nämnde det inte i föreläsningen men jag kan verkligen rekomendera att du tar en närmare titt på hans projekt [Homoiconic](https://github.com/raganwald/homoiconic/). - [Presentationen på Haiku Deck](http://www.haikudeck.com/p/ZZZZtHRk3c/rubyvrldens-frestende-kollaps) diff --git a/_posts/2013-06-27-klrat13.md b/_posts/2013-06-27-klrat13.md index a9a48bb..46b4f8a 100644 --- a/_posts/2013-06-27-klrat13.md +++ b/_posts/2013-06-27-klrat13.md @@ -3,9 +3,7 @@ title: "Kanban Leadership Retreat 2013" date: 2013-06-27 last_updated_by: mats --- -Under midsommarhelgen hölls årets Kanban Leadership Retreat i Mayrhofen, Österike KLRAT. Att få träffa så många duktiga människor i det format som används är verkligen en möjlighet att lära sig både i formella sessioner och lösa diskussioner. - -![Mayrhofen](http://ih.constantcontact.com/fs022/1103058265564/img/96.jpg) +Under midsommarhelgen hölls årets Kanban Leadership Retreat i Mayrhofen, Österike KLRAT. Att få träffa så många duktiga människor i det format som används är verkligen en möjlighet att lära sig både i formella sessioner och lösa diskussioner. Lean Kanban University partnermöte hölls redan på Söndagen. Eftersom Athega är ett av grundade företag var vi på plats på mötet. På söndagkväll samlades förslag till ämnen in och planerades in till nästföljande dag i tre konferensrum. Det handlade om allt från modeller, metoden i sig, exempel och nya idéer. Helt enkelt förslag på sessioner. @@ -18,16 +16,19 @@ Beskrev hur tidsestimering går att eliminera med statistik och nyttan man kan h ![Troy](/assets/legacy/uploads/2013/06/troy.jpg) ### Håkan Forss -föreslog bland annat sessioner runt hans arbete med Toyota Kata och Kanban. Håkans sätt att se på förändring stämmer väl överens med hur jag ser på det. Träning och åter träning är viktigt. Det kanske är viktigare att vi överhuvudtaget tränar på förändring och förbättring än att den alltid blir till det bättre. Vi måste vara adaptiva och vi tränar detta genom mönster/patterns eller Kata's. Håkan hade sessioner där vi bland annat tittade på att konkretisera punkter och förslag på Kata's som används inom Kanban metoden. Jag går inte in i djupet här utan hänvisar gärna vidare till Håkans utmärkta blogg där hela konceptet beskrivs mycket bra. +föreslog bland annat sessioner runt hans arbete med Toyota Kata och Kanban. Håkans sätt att se på förändring stämmer väl överens med hur jag ser på det. Träning och åter träning är viktigt. Det kanske är viktigare att vi överhuvudtaget tränar på förändring och förbättring än att den alltid blir till det bättre. Vi måste vara adaptiva och vi tränar detta genom mönster/patterns eller Kata's. Håkan hade sessioner där vi bland annat tittade på att konkretisera punkter och förslag på Kata's som används inom Kanban metoden. Jag går inte in i djupet här utan hänvisar gärna vidare till Håkans utmärkta blogg där hela konceptet beskrivs mycket bra. [http://hakanforss.wordpress.com](http://hakanforss.wordpress.com) -### Jade Bloom +### Jade Bloom + Jabe visade "Culture matters". Han berättade om Edgar Schein teorier om vad kultur är och att det inte är något ytligt. Det är något djupt inom organisationen och går att förstå bäst om man tittar på det i tre nivåer. + 1. Saker och observerade beteenden 2. Exponerade Värden (Varför gör vi saker, medvetna strategier, uttalade värden, det vi tror) -3. Underliggande antaganden -På detta sätt ska vi se hur mottaglig en organisations är för förändring. Hypotesen byggde på att de värderingar som finns ibland inte stämmer med de metoder och artifakter vi använder oss av. Då riskerar förändring efter ett tag backa tillbaka till tidigare läge. Ett exempel var organisationer som börjat använda sig av Agila eller Kanban metoden och dess artifakter men över tid återgått till tidigare sätt att arbeta. En sådan organisation har inte samma grundläggande värderingar som Agila-metoder och/eller Kanban metoden bygger på. Då hjälper det inte att försöka trycka på detta. - Vi fick göra en övning där vi först samlade ihop ett antal artifakter i den kultur eller organisation vi tittade på. Sedan samlar vi in antalet värderingar vi tror stämmer på organisationen (Dessa går även att jämföra med vision och mission på företaget för att se att det stämmer med vad individerna i företaget tror). Utifrån dessa kan började vi koppla värderingar mot artifakterna. Hittade vi en skillnad så ansågs det vara en motsägelse. Jabe är alltid förberedd och engagerande på sessionerna. +3. Underliggande antaganden + +På detta sätt ska vi se hur mottaglig en organisations är för förändring. Hypotesen byggde på att de värderingar som finns ibland inte stämmer med de metoder och artifakter vi använder oss av. Då riskerar förändring efter ett tag backa tillbaka till tidigare läge. Ett exempel var organisationer som börjat använda sig av Agila eller Kanban metoden och dess artifakter men över tid återgått till tidigare sätt att arbeta. En sådan organisation har inte samma grundläggande värderingar som Agila-metoder och/eller Kanban metoden bygger på. Då hjälper det inte att försöka trycka på detta. + Vi fick göra en övning där vi först samlade ihop ett antal artifakter i den kultur eller organisation vi tittade på. Sedan samlar vi in antalet värderingar vi tror stämmer på organisationen (Dessa går även att jämföra med vision och mission på företaget för att se att det stämmer med vad individerna i företaget tror). Utifrån dessa kan började vi koppla värderingar mot artifakterna. Hittade vi en skillnad så ansågs det vara en motsägelse. Jabe är alltid förberedd och engagerande på sessionerna. ![Jabe Bloom](/assets/legacy/uploads/2013/06/jabe.jpg) @@ -36,3 +37,5 @@ Arne visade delar av Alignment the forgotten child (alignment and automomy)-idé ![Arne Roock](/assets/legacy/uploads/2013/06/arne.jpg) Sammanfattningsvis innehöll konferensen en spännande blandning av teknik och organisationsutveckling. Hur djup en kanban implementation är och portfolio-kanban var ett återkommande tema. + +/ [Mats](/mats) diff --git a/_posts/2013-08-05-new_employee_lark.md b/_posts/2013-08-05-new_employee_lark.md index 0855307..709eaf1 100644 --- a/_posts/2013-08-05-new_employee_lark.md +++ b/_posts/2013-08-05-new_employee_lark.md @@ -6,10 +6,10 @@ last_updated_by: fredrik Idag är vi glada att få hälsa en ny medarbetare välkommen till Athega, Lark Davis. Lark har inte bara det coolaste namnet på företaget utan är också en mycket skicklig frontend-utvecklare och det är inom det området hon skall stärka Athegas leveranskapacitet. -Några ledord i Larks värld är: HTML5, CSS3, jQuery, PHP, Django, Adobe photoshop, Custom WordPress, Responsive and Fluid Design. +Några ledord i Larks värld är: HTML5, CSS3, jQuery, PHP, Django, Adobe photoshop, Custom WordPress, Responsive and Fluid Design. Första uppdraget för Athega blir till vår mycket uppskattade kund Aftonbladet där hon skall ingå i web teamet för www.aftonbladet.se. Vi ser fram emot att jobba med Lark och nu kör vi så det ryker! -//Fredrik +/ Fredrik diff --git a/_posts/2013-08-20-ruby-20.md b/_posts/2013-08-20-ruby-20.md index 0a6649f..61ae9f3 100644 --- a/_posts/2013-08-20-ruby-20.md +++ b/_posts/2013-08-20-ruby-20.md @@ -7,9 +7,10 @@ tags: last_updated_by: peter image_url: http://athega.se/images/employees/peter/wide.jpg --- -> Denna artikel är ursprungligen publicerad i vårt nyhetsbrev. Vill du prenumerera på våra nyhetsbrev hör av dig till [Fredrik](/fredrik) +> Denna artikel är ursprungligen publicerad i vårt nyhetsbrev. ## Ruby är ett av de 10 mest populära programspråken + ### I år fyller Ruby 20 år och firar med att släppa version 2.0 *Agila programspråk fortsätter att ta marknadsandelar. Peter vet varför och kan berätta mer om styrkan i globala Ruby-communityn.* @@ -18,15 +19,21 @@ image_url: http://athega.se/images/employees/peter/wide.jpg Peter Hellberg är systemarkitekt på Athega med [Ruby](http://ruby-lang.org/) och [Go](http://golang.org/) som favoritredskap. ### Peter, varför har Ruby blivit så framgångsrikt? + – En av de största anledningarna till att [Ruby](http://ruby-lang.org/) blivit så stort är ramverket [Ruby on Rails](http://rubyonrails.org/) men jag tycker personligen att styrkan ligger i Ruby-communityn. Språket lämpar sig väldigt väl för att bygga prototyper och kulturen av testdriven utveckling gör det enkelt att producera vältestad kod. Det skapar en bra plattform för utveckling av större system. En annan anledning är att [JRuby](http://jruby.org/) gjort det väldigt smidigt att introducera Ruby i organisationer där man använder Java. ### Stämmer det att Ruby är japanskt? + – Ja, det utvecklades av [Yukihiro Matsumoto](http://en.wikipedia.org/wiki/Yukihiro_Matsumoto) i mitten på 1990-talet. Han ville skapa ett språk som var väldigt intuitivt och enkelt att förstå även för ovana programmerare. Sen utvecklades språket med hjälp av japanska utvecklare och det var först senare som man började dokumentera språket på engelska – det är nog därför Ruby växt så fort de senaste fem åren. ### Vad är det nya i Ruby 2.0? -– Några interna förändringar sedan 1.9 är en ny Garbage Collector (Bitmap Marking) samt att man lyckats göra `require` markant snabbare. Man har även fokuserat på bakåtkompabilitet med 1.9 så långt som möjligt. + +– Några interna förändringar sedan 1.9 är en ny Garbage Collector (Bitmap Marking) samt att man lyckats göra `require` markant snabbare. Man har även fokuserat på bakåtkompabilitet med 1.9 så långt som möjligt. En av de mer synliga syntaxförändringarna är antagligen "keyword arguments" men till skillnad från Objective-C så behöver man inte tänka på vilken ordning man använder dem i. En liten men trevlig nyhet är att Encoding är satt till UTF-8 som standard. ### Är det lämpligt att gå över till 2.0 direkt? + – Ja, absolut, eftersom version 2.0 är en mindre uppdatering av 1.9.3 så är det bara att börja använda 2.0 i nya Ruby-projekt. Version 2.0 är dessutom väldigt stabil. + + diff --git a/_posts/2013-10-07-sverigesstorstawebbsajt.md b/_posts/2013-10-07-sverigesstorstawebbsajt.md index 383c4d8..c6581c5 100644 --- a/_posts/2013-10-07-sverigesstorstawebbsajt.md +++ b/_posts/2013-10-07-sverigesstorstawebbsajt.md @@ -7,16 +7,14 @@ tags: last_updated_by: mats image_url: http://athega.se/images/employees/chrille/wide.jpg --- -Pingdom har publicerat en artikel om aftonbladet.se där Athegas Christian Lizell beskriver vad det krävs för att hålla Sveriges största webbsajt rullande. +Pingdom har publicerat en artikel om aftonbladet.se där Athegas Christian Lizell beskriver vad det krävs för att hålla Sveriges största webbsajt rullande. ![Christian Lizell](/assets/legacy/uploads/2013/10/chrille.jpg) -Lite siffror +## Lite siffror - Ca 3 miljoner unika besökare per dag - - Toppar på 100,000 unika requests per sekund - - Trafiken är på ca 15 TB per dag, ej inräknat annonser och TV-strömmar I artikeln får vi se exempel på Aftonbladets övervakningsskärmar och infrastrukturen beskrivs. diff --git a/_posts/2013-10-25-darfor-ar-tv4-sa-slimmade.md b/_posts/2013-10-25-darfor-ar-tv4-sa-slimmade.md index 91df642..8dc0db5 100644 --- a/_posts/2013-10-25-darfor-ar-tv4-sa-slimmade.md +++ b/_posts/2013-10-25-darfor-ar-tv4-sa-slimmade.md @@ -5,15 +5,14 @@ description: "TV4 har ett slimmat team för digitala medier samtidigt som kraven last_updated_by: mats image_url: /assets/legacy/uploads/2013/10/per-1.png --- + > TV4 har ett slimmat team för digitala medier samtidigt som kraven är höga. Teknikchef Per Åström kan förklara hur de löser den ekvationen. ------------- ---------------------------------------- ### Per, vad skiljer er från till exempel SVT? – SVT lever inte med samma kommersiella krav som Aftonbladet, vi och andra tv-kanaler gör. Oavsett om tittaren har en dator, platta eller mobil så behöver vi annonsintäkter. Därför lägger vi mycket energi på att hitta nya ytor att sälja. -Den 23 september lanserade vi till exempel det nya annonsformatet T-commerce som vi var först med i Sverige. "T" står för "tv". Tänk dig att du tittar på Drömkåken på vår Play-site. I en scen där en hantverkare använder borrmaskin kommer en yta upp som erbjuder dig att både läsa mer på annonsörens hemsida och att beställa en borrmaskin. Du väljer om du vill se vidare på filmen eller stanna kvar och kolla erbjudandet. Formatet är en del av programmet och det syns i timelinen när det dyker upp. +Den 23 september lanserade vi till exempel det nya annonsformatet T-commerce som vi var först med i Sverige. "T" står för "tv". Tänk dig att du tittar på Drömkåken på vår Play-site. I en scen där en hantverkare använder borrmaskin kommer en yta upp som erbjuder dig att både läsa mer på annonsörens hemsida och att beställa en borrmaskin. Du väljer om du vill se vidare på filmen eller stanna kvar och kolla erbjudandet. Formatet är en del av programmet och det syns i timelinen när det dyker upp. Nya idéer måste fram snabbt och då ställs det krav på den underliggande tekniken. Vi som utvecklar teknik för digitala medier måste känna oss trygga med att vi snabbt kan skapa nästan vilka nya format, ytor och idéer som helst. @@ -27,7 +26,7 @@ Per Åströms utvecklingsteam har lagt ut driften av all IT och hyr funktioner o ### Ni är bara 12 personer på din avdelning. Räcker det? -– Ja, faktiskt. Det beror på två strategiska beslut. Det första är att vi hyr kapacitet istället för att äga egna servrar. Det andra är att vi bygger våra applikationer så mycket som möjligt på färdiga komponenter, tjänster och ramverk. Vi letar upp "pusselbitar" som gör att vi snabbt och enkelt kan bygga bra lösningar. Vi hyr till exempel plattformen PubNub för realtidsmeddelanden, Disqus för kommentarer och använder open source-källkod som Ruby on Rails. +– Ja, faktiskt. Det beror på två strategiska beslut. Det första är att vi hyr kapacitet istället för att äga egna servrar. Det andra är att vi bygger våra applikationer så mycket som möjligt på färdiga komponenter, tjänster och ramverk. Vi letar upp "pusselbitar" som gör att vi snabbt och enkelt kan bygga bra lösningar. Vi hyr till exempel plattformen PubNub för realtidsmeddelanden, Disqus för kommentarer och använder open source-källkod som Ruby on Rails. Det finns massor av färdiga add-ons från tredjepartsleverantörer. Vi letar upp dem, kollar av mot vår kravspec, beställer och betalar, ofta med kort. Fungerar det mindre bra så byter vi bara till en annan leverantör. Marknaden är internationell och konkurrensen stenhård. @@ -35,6 +34,6 @@ Det finns massor av färdiga add-ons från tredjepartsleverantörer. Vi letar up – Till VIP-rummet i Idol köper vi in realtidsfunktionen som en tjänst från PubNub sen hyr vi kapacitet hos Heroku för att köra tjänsten. Där betalar vi bara exakt för den kapacitet vi behöver ända ner på sekundnivå. Perfekt för Idol som har tydliga tittartoppar. -Tack vare att vi använder tredjepartsprodukter kan vi lägga mer energi på att bygga snygga grafiska lösningar, integration och anpassningar som gör att verktygen passar vårt arbetssätt. +Tack vare att vi använder tredjepartsprodukter kan vi lägga mer energi på att bygga snygga grafiska lösningar, integration och anpassningar som gör att verktygen passar vårt arbetssätt. Målet är alltid att skapa maximal kundupplevelse. Det är nödvändigt med den konkurrens som finns om tittarna. De reagerar snabbt och känslomässigt och därför måste vi fokusera på upplevelsen, inte tekniken bakom den, den är bara ett verktyg. diff --git a/_posts/2013-11-22-acb2013.md b/_posts/2013-11-22-acb2013.md index 715d913..0adbc3c 100644 --- a/_posts/2013-11-22-acb2013.md +++ b/_posts/2013-11-22-acb2013.md @@ -36,7 +36,7 @@ Så snart koden är uppstädad och i skick att dela med sig av, gör jag en [Pul ACB Cylon ### Artoo & Cylon -Jag använde ramverken [Artoo](http://artoo.io/) och +Jag använde ramverken [Artoo](http://artoo.io/) och [Cylon](http://cylonjs.com/) för att styra en [Arduino](http://arduino.cc/). Även om Ruby är mitt favoritspråk så måste jag säga att JavaScript @@ -52,21 +52,21 @@ Jag stötte tyvärr på en bugg i Cylon som gjorde att jag inte kunde använda f ### Ljuseffekter och visualisering med Arduino och Processing -Processings-biblioteket [Minim](http://code.compartmental.net/tools/minim/) används för frekvensanalys av extern ljudinput (som kan vara mikrofon eller även en ljudfil med lite justering). Frekvensanalysen skrivs ut i en grafik som är lätt att styra. Genom att följa exempel på Minims hemsida skapade jag två vågformer (en till varje stereokanal) och ett frekvensspektrum som visar alla olika frekvensband samtidigt. +Processings-biblioteket [Minim](http://code.compartmental.net/tools/minim/) används för frekvensanalys av extern ljudinput (som kan vara mikrofon eller även en ljudfil med lite justering). Frekvensanalysen skrivs ut i en grafik som är lätt att styra. Genom att följa exempel på Minims hemsida skapade jag två vågformer (en till varje stereokanal) och ett frekvensspektrum som visar alla olika frekvensband samtidigt. -Men hur gör man ljudvisualisering i den riktiga världen? Med [Processing](http://processing.org/) var frekvensspektrumet uppdelat i sex intervaller. Frekvensmedelvärdet för varje intervall beräknas och skickades till Arduinons programvara som konverterar siffrorna till bytes och bits, det språket som Arduino-chippet förstår, som sen konverterades till elektriskt spänning. Varje del av den sex-delad frekvensspektrumet skickas till Arduinons tilldelade PWM (Pulse Width Modulation) pin-utgångar. +Men hur gör man ljudvisualisering i den riktiga världen? Med [Processing](http://processing.org/) var frekvensspektrumet uppdelat i sex intervaller. Frekvensmedelvärdet för varje intervall beräknas och skickades till Arduinons programvara som konverterar siffrorna till bytes och bits, det språket som Arduino-chippet förstår, som sen konverterades till elektriskt spänning. Varje del av den sex-delad frekvensspektrumet skickas till Arduinons tilldelade PWM (Pulse Width Modulation) pin-utgångar. Sex LED-lampor med olika färger kopplades till dessa utgångar. Om allt funkar rätt så ska de få signaler från Arduinos programvara i form av en spänning som matchar medelvärdena från frekvensspektrumets sex intervaller. Lamporna lyser och festen börjar! -#### Stort tack till dessa resurser: +#### Stort tack till dessa resurser: - PWM visualisering med mikrofon -- hur man gör seriell kommunikation mellan Arduino och Processing: +- hur man gör seriell kommunikation mellan Arduino och Processing: - hur man spelar en låt med minim och skapar en vågform: -/ [Lark](/lark) +/ Lark ![Arduino med LEDs](/assets/legacy/uploads/2013/11/acb13-arduino-with-leds.jpg) @@ -94,11 +94,11 @@ Resultatet kan ses på på [github](http://github.com/ragulin/mds-riksdagen). Arduino ### Motorstyrning med Arduino -Labbade för första gången med en Arduino. Målet var att kontrollera en motor programmatiskt och att försöka addera en sensor. Kan användas för att t.ex. styra en gardin eller ventilera ett växthus. +Labbade för första gången med en Arduino. Målet var att kontrollera en motor programmatiskt och att försöka addera en sensor. Kan användas för att t.ex. styra en gardin eller ventilera ett växthus. -Använde en övningsuppgift med färdigt exempel för att sätta upp initial motorstyring och att komma ingång med tekniken. Adderade sedan en analog fotoresistor och kalibrerade den mot rummets ljusförhållande med resistor och analys av värden. +Använde en övningsuppgift med färdigt exempel för att sätta upp initial motorstyring och att komma ingång med tekniken. Adderade sedan en analog fotoresistor och kalibrerade den mot rummets ljusförhållande med resistor och analys av värden. -Resultatet blev att motorn startar och går i 10 sekunder, om en momentswitch aktiveras och stannar sedan, under förutsättningen att det är tillräckligt ljust i rummet. +Resultatet blev att motorn startar och går i 10 sekunder, om en momentswitch aktiveras och stannar sedan, under förutsättningen att det är tillräckligt ljust i rummet. / [Torbjörn](/tobbe) @@ -106,7 +106,7 @@ Resultatet blev att motorn startar och går i 10 sekunder, om en momentswitch ak ### Interaktiv 3D-kub i CSS & JavaScript En 3D-kub som kan roteras och zoomas med hjälp av mushjul eller pekplatta, pekskärm eller genom att röra på enheten. Tekniken som används är CSS 3D Transforms och JavaScript som hämtar data från gyro och accelerometer genom händelser för Wheel, DeviceMotion, DeviceOrientation, OrientationChange och TouchMove. -På mobilen eller surfplattan skapas en känsla av att kuben är fastlåst i rymden och hänger kvar oavsett hur man rör och vrider på enheten. +På mobilen eller surfplattan skapas en känsla av att kuben är fastlåst i rymden och hänger kvar oavsett hur man rör och vrider på enheten. [Kolla in den på CodePen](http://codepen.io/johanberonius/full/qpzmh). / [Johan](/johan) @@ -133,4 +133,4 @@ Jag utvecklade en Android app i Java som använder Stockholm stads [öppna trafi Appen tar då telefonens GPS-position och hämtar information om MC-rutan från Trafikkontoret och skapar en påminnelse i kalendern när nästa städdag är så att användaren kommer ihåg att flytta sin motorcykel och undvika böter. -/ [Alex](/alex) +/ Alex diff --git a/_posts/2014-02-04-ledningssystemsomfungerar.md b/_posts/2014-02-04-ledningssystemsomfungerar.md index a22447d..510e943 100644 --- a/_posts/2014-02-04-ledningssystemsomfungerar.md +++ b/_posts/2014-02-04-ledningssystemsomfungerar.md @@ -7,33 +7,34 @@ tags: last_updated_by: mats image_url: http://athega.se/images/employees/mark/medium.jpg --- -#### Ledningen måste kunna lita på sina nyckeltal. Hur ska de annars kunna ta rätt beslut? + +> Ledningen måste kunna lita på sina nyckeltal. Hur ska de annars kunna ta rätt beslut? Det går att undvika fällorna när du bygger beslutstödssystem. Vi satte oss ner med seniorkonsulten Mark Ingram för att få veta hur. -_Mark, vad är syftet med de ledningssystem du är med och utvecklar?_ +## Mark, vad är syftet med de ledningssystem du är med och utvecklar? – Systemen används av ledningen på stora företag för att kunna ta rätt beslut. Systemen samlar data och presenterar ekonomiska nyckeltal för organisationens olika delar. Det kan t ex handla om att månad för månad jämföra kostnader mot budget för alla dotterbolag. Ett bra ledningssystem ger företaget en konkurrensfördel. Cheferna kan se möjligheter och agera snabbt eftersom de kan visualisera sin verksamhet mer exakt än sina konkurrenter. Det är som ordspråket säger: If you can´t measure it, you can´t manage it. ![Mark Ingram](http://athega.se/images/employees/mark/wide.jpg) Athegakonsulten Mark Ingram har byggt managementsystem åt storkoncerner sedan 2004 och vet var fallgroparna finns. -_Vilken är den största utmaningen när man bygger ett ledningssystem?_ +## Vilken är den största utmaningen när man bygger ett ledningssystem? -– Systemen är till sin natur komplexa och svåra att förstå. Det finns stora inbyggda motsättningar. Systemet beskriver verksamheten i verksamhetstermer, men realiseras med tekniskt datorspråk samtidigt som de innehåller finansiell information klädd i redovisningstermer. Det är ingen lätt match att greppa helheten. - Den största utmaningen annars är att skapa konsensus i organisationen. Ta bara begreppet kostnadsmodell – hur många tolkningar av vad det är och hur den kan se ut finns det inte? - Jag möter ibland frustrerade chefer som tvivlar på siffrorna de fått och gärna muttrar om "funny money" eftersom siffrorna inte känns relevanta för deras verksamhet. Tvivlet är som ett gift. För att ett system ska bli ett effektivt verktyg för organisationen måste människorna lita på modellen och de nyckeltal som den producerar. - Det finns en utmaning till. En ny kostnadsmodell, för att ta ett exempel, kräver engagemang av organisationen. Ju större denna insats är, desto större risk att medarbetarna nedvärderar nyttan av den information ledningssystemet ger. Det enda sättet att undvika denna fälla är att förenkla hela ledningssystemet. Drömmen vore att modeller och system inte belastar organisationen alls, samtidigt som de levererar exakt den information man vill ha. +– Systemen är till sin natur komplexa och svåra att förstå. Det finns stora inbyggda motsättningar. Systemet beskriver verksamheten i verksamhetstermer, men realiseras med tekniskt datorspråk samtidigt som de innehåller finansiell information klädd i redovisningstermer. Det är ingen lätt match att greppa helheten. + Den största utmaningen annars är att skapa konsensus i organisationen. Ta bara begreppet kostnadsmodell – hur många tolkningar av vad det är och hur den kan se ut finns det inte? + Jag möter ibland frustrerade chefer som tvivlar på siffrorna de fått och gärna muttrar om "funny money" eftersom siffrorna inte känns relevanta för deras verksamhet. Tvivlet är som ett gift. För att ett system ska bli ett effektivt verktyg för organisationen måste människorna lita på modellen och de nyckeltal som den producerar. + Det finns en utmaning till. En ny kostnadsmodell, för att ta ett exempel, kräver engagemang av organisationen. Ju större denna insats är, desto större risk att medarbetarna nedvärderar nyttan av den information ledningssystemet ger. Det enda sättet att undvika denna fälla är att förenkla hela ledningssystemet. Drömmen vore att modeller och system inte belastar organisationen alls, samtidigt som de levererar exakt den information man vill ha. Jag brukar också föreslå att organisationerna ska fokusera på orsak-verkan-sambanden. "Vilka beteenden kan du påverka om du presenterar dessa kostnadssiffror för cheferna på dotterbolagen?" Frågan leder till nya insikter som i sin tur förändrar beteenden och sänker kostnader. -_Vilka verktyg brukar användas?_ +## Vilka verktyg brukar användas? -– Excel leder stort, det är absolut mest populärt. Alla kan använda det utan djupa datorkunskaper. Det finns ett skämt om Excel som säger att "Export to Excel" är den mest tryckta knappen i alla affärssystem. Och det ligger nog något i det. - Ironiskt nog så vill de flesta affärssystemleverantörer bli av med Excel. Det är inte så konstigt. Riskerna med Excel är stora. Eftersom det är enkelt att använda skapar det en övertro på de siffror som kommer ur excel-arken. Tillförlitligheten är låg, speciellt när flera ark länkas ihop. Googla "spreadsheet risks" så hittar du uppskattningar på hur många miljarder USD som blivit felräknade. +- Excel leder stort, det är absolut mest populärt. Alla kan använda det utan djupa datorkunskaper. Det finns ett skämt om Excel som säger att "Export to Excel" är den mest tryckta knappen i alla affärssystem. Och det ligger nog något i det. + Ironiskt nog så vill de flesta affärssystemleverantörer bli av med Excel. Det är inte så konstigt. Riskerna med Excel är stora. Eftersom det är enkelt att använda skapar det en övertro på de siffror som kommer ur excel-arken. Tillförlitligheten är låg, speciellt när flera ark länkas ihop. Googla "spreadsheet risks" så hittar du uppskattningar på hur många miljarder USD som blivit felräknade. Jag lägger mycket tid på att förklara riskerna, hitta felkällor och flytta över funktioner till relationsdatabaser och kundspecifika data warehouses. Excel kommer förstås finnas kvar länge. Det är oöverträffat som verktyg för enkla ögonblicksbilder och analyser. -_Vilken är den kritiska faktorn för att nå framgång med ett ledningssystem?_ +## Vilken är den kritiska faktorn för att nå framgång med ett ledningssystem? -– För mig är det att lyssna på kunden. En klyscha, men väldigt sann. Företag bombarderas idag med information från IT-företag om produkter som är nödvändiga för framgång. BI-systemkonsulter kommer med råd och produkter som ibland är inkompatibla med kundens verksamhet, kostar mycket pengar och stjäl tid – och ofta också låser in kunden. Det är nog därför Excel används överallt. Det är snabbt, enkelt och pratar användarens språk. +– För mig är det att lyssna på kunden. En klyscha, men väldigt sann. Företag bombarderas idag med information från IT-företag om produkter som är nödvändiga för framgång. BI-systemkonsulter kommer med råd och produkter som ibland är inkompatibla med kundens verksamhet, kostar mycket pengar och stjäl tid – och ofta också låser in kunden. Det är nog därför Excel används överallt. Det är snabbt, enkelt och pratar användarens språk. Det behövs kloka råd i denna djungel. Ett bra sätt att inleda ett samarbete är att snabbt bygga ett enkelt kostnadskontroll-system utifrån kundens behov. Då får alla se att det finns fördelar utan att de känner att de blir inlåsta, tappar kontroll och slösar tid. diff --git a/_posts/2014-04-04-aftonbladet-releasar-nytt-dygnet-runt.md b/_posts/2014-04-04-aftonbladet-releasar-nytt-dygnet-runt.md index 4d7457d..7055c0c 100644 --- a/_posts/2014-04-04-aftonbladet-releasar-nytt-dygnet-runt.md +++ b/_posts/2014-04-04-aftonbladet-releasar-nytt-dygnet-runt.md @@ -7,28 +7,29 @@ tags: last_updated_by: chrille image_url: http://athega.se/images/employees/chrille/medium.jpg --- -##"Vi releasar nytt dygnet runt. Som att bypass-operera ett nyhetsankare under sändning." +> "Vi releasar nytt dygnet runt. Som att bypass-operera ett nyhetsankare under sändning." **Aftonbladet är ohotad etta igen. Internetworld säger att det är en ynnest att ha Aftonbladet i landet. Vår konsult [Christian Lizell](/chrille) vet hur sajten håller sig kvar på toppen.** -_Aftonbladet blev Sveriges bästa sajt igen. Hur behåller man greppet om läsarna?_ +## Aftonbladet blev Sveriges bästa sajt igen. Hur behåller man greppet om läsarna? – Genom att aldrig vila. Alla har en stark tro på sig själva och är ständigt på jakt efter nya idéer, funktioner och lösningar. De är inte rädda att prova nya grepp och har lätt för att göra sig av med det som inte fungerar. Ibland driftsätter vi nya funktioner flera gånger om dagen. -![Christian Lizell](http://athega.se/images/employees/chrille/wide.jpg) +![Christian Lizell](/assets/img/employees/chrille.jpg) + _Vår konsult Christian Lizell ingår i Aftonbladets team och gillar pulsen och ambitionen på landets bästa sajt._ -_Hur testas nya funktioner utan risk?_ +## Hur testas nya funktioner utan risk? -– Det är aldrig helt riskfritt. Men det går att minimera följderna av att något eventuellt går sönder. Innan ny funktionalitet tas i drift granskas och testas allt, både i teori och praktik. Kodgranskning sker med en Pull Request. Det är en förfrågan om att lyfta in ny funktionalitet där varenda förändring visas tydligt i ett grafiskt gränssnitt. Utvecklarna kan direkt testa, kommentera och diskutera förändringen. +– Det är aldrig helt riskfritt. Men det går att minimera följderna av att något eventuellt går sönder. Innan ny funktionalitet tas i drift granskas och testas allt, både i teori och praktik. Kodgranskning sker med en Pull Request. Det är en förfrågan om att lyfta in ny funktionalitet där varenda förändring visas tydligt i ett grafiskt gränssnitt. Utvecklarna kan direkt testa, kommentera och diskutera förändringen. Förbättringar görs direkt i en gren av huvudkoden och resultatet kan sedan lyftas in i huvudkoden för att driftsättas. Det innebär att det som ligger i huvudkoden alltid är redo att driftsättas. Det gör stor skillnad. -_Arbetar Aftonbladet annorlunda än andra stora sajter?_ +## Arbetar Aftonbladet annorlunda än andra stora sajter? -– Alla sajter jobbar naturligtvis på sitt sätt, men jag tror att Aftonbladet har en klok strategi för hur nya funktioner tas i drift, stora som små. Det kan handla om att byta ut hela systemet, inklusive infrastruktur och kringsystem eller något så enkelt som att lägga ut en ny logga på en undersajt. Målet är att läsaren aldrig ska påverkas och helst inte ens märka att något skett. Det finns exempel på sajter som stänger ner ett dygn eller ett par timmar för "uppgradering". Det finns också exempel på driftsättning av nya funktioner som lett till att sajter gått ner och att man tvingats rulla tillbaka till en gammal version. Båda dessa exempel är naturligtvis negativa för besökarna. - Aftonbladet jobbar med Feature Toggles. Det är ett sätt att driftsätta ny funktionalitet utan att den omedelbart kommer i drift. Se det som en spak som slår av och på funktionaliteten som då kan testas i lugn och ro på en mindre trafikerad del av sajten. Går allt bra provar man över hela sajten. Skulle det ändå bli problem är det lätt att stänga av funktionaliteten genom att dra i spaken. Ingen kod behöver rullas tillbaka. +– Alla sajter jobbar naturligtvis på sitt sätt, men jag tror att Aftonbladet har en klok strategi för hur nya funktioner tas i drift, stora som små. Det kan handla om att byta ut hela systemet, inklusive infrastruktur och kringsystem eller något så enkelt som att lägga ut en ny logga på en undersajt. Målet är att läsaren aldrig ska påverkas och helst inte ens märka att något skett. Det finns exempel på sajter som stänger ner ett dygn eller ett par timmar för "uppgradering". Det finns också exempel på driftsättning av nya funktioner som lett till att sajter gått ner och att man tvingats rulla tillbaka till en gammal version. Båda dessa exempel är naturligtvis negativa för besökarna. + Aftonbladet jobbar med Feature Toggles. Det är ett sätt att driftsätta ny funktionalitet utan att den omedelbart kommer i drift. Se det som en spak som slår av och på funktionaliteten som då kan testas i lugn och ro på en mindre trafikerad del av sajten. Går allt bra provar man över hela sajten. Skulle det ändå bli problem är det lätt att stänga av funktionaliteten genom att dra i spaken. Ingen kod behöver rullas tillbaka. Detta är ofta applicerbart även på större systemförändringar. Ny hårdvara eller nya lösningar kan testas på delar av infrastrukturen. Det kräver mer förarbete och planering men är väl investerad tid. Det är lite som att bypass-operera ett nyhetsankare under sändning. -_Hur har man organiserat arbetet?_ +## Hur har man organiserat arbetet? – Aftonbladets IT-avdelning är uppdelad i team som jobbar i Scrumliknande upplägg. Vissa team kör Kanban, men alla har en PO, Product Owner. Beställningar hanteras i backlogs som prioriteras av produktägaren. Ny funktionalitet läggs ut genom ett release pipeline/release-flöde så snart behovet finns. Ibland flera gånger per dag. Det finns ett Core-team som hanterar driftsättningar av sajten. Teamet håller också koll på systemen och att allt ser normalt ut före och efter en driftsättning. En beskrivning av hur det går till skulle lätt fylla upp ett helt eget blogginlägg. diff --git a/_posts/2014-05-02-gophercon-2014.md b/_posts/2014-05-02-gophercon-2014.md index c5bec94..243474f 100644 --- a/_posts/2014-05-02-gophercon-2014.md +++ b/_posts/2014-05-02-gophercon-2014.md @@ -24,7 +24,7 @@ Konferensen [inleddes](http://talks.golang.org/2014/hellogophers.slide) av legenden [Rob Pike](https://twitter.com/rob_pike) och efterföljdes sedan av en strid ström av riktigt bra presentationer. -**Några exempel:** +## Några exempel: - [Bluetooth Low Energy and Embedded Go](http://go-talks.appspot.com/github.com/gophercon/2014-talks/offbymany/ble_embedded.slide) - [Best Practices for Production Environments](https://cdn.rawgit.com/gophercon/2014-talks/master/best-practices-for-production-environments.pdf) diff --git a/_posts/2014-06-25-viktklubb-fintrimmar-sin-hemsida.md b/_posts/2014-06-25-viktklubb-fintrimmar-sin-hemsida.md index ddb9f92..7d800b8 100644 --- a/_posts/2014-06-25-viktklubb-fintrimmar-sin-hemsida.md +++ b/_posts/2014-06-25-viktklubb-fintrimmar-sin-hemsida.md @@ -5,31 +5,29 @@ description: "Viktklubb pressas av konkurrensen. Nu måste försäljningen öka. tags: - nyhetsbrev last_updated_by: chrille -image_url: http://athega.se/images/employees/lark/medium.jpg --- -##Aftonbladets Viktklubb pressas av konkurrensen. Nu måste försäljningen öka." +> Aftonbladets Viktklubb pressas av konkurrensen. Nu måste försäljningen öka. -**[Lark Davis](/lark) berättar om nya optimeringsverktyg för näthandel.** +**Lark Davis berättar om nya optimeringsverktyg för näthandel.** -_Lark, hur ska ni göra för att öka Viktklubbs försäljning?_ +## Lark, hur ska ni göra för att öka Viktklubbs försäljning? – Viktklubb startade 2003 och var först med viktminskning på nätet. 500 000 medlemmar har sedan dess gått ner i vikt med individuellt anpassade program. Idag dyker det upp nya aktörer med liknande erbjudanden. Vi måste helt enkelt tänka nytt för att få fler som besöker Viktklubb att också bli medlemmar. I grunden handlar det om att göra hela sajten mer inbjudande. Eftersom det är jag som ansvarar för front-end utvecklingen är det mitt ansvar att fintrimma alla gränssnitt och framför allt startsidan så att den verkligen säljer. -![Lark Davis](http://athega.se/images/employees/lark/wide.jpg) _Athegakonsulten Lark Davis hjälper Viktklubb att öka försäljningen med optimeringsverktyg för näthandel._ -_Hur testar man om en sida säljer?_ +## Hur testar man om en sida säljer? – För några veckor sedan lanserade Viktklubb en ny sajt som vi kan arbeta med på ett nytt sätt. Ett viktigt verktyg i det arbetet är [Optimizely](https://www.optimizely.com/), en nättjänst som används för så kallad A/B-testning. Istället för att gissa hur en sida ska se ut väljer man ut några av sina bästa förslag och testar dem mot varandra i den dagliga driften. Det förslag som ger bäst resultat vinner och testas därefter mot en förfinad variant. Och så fortsätter man tills man har hittat den version som ger maximal säljeffekt. -_Exakt vad kan du testa?_ +## Exakt vad kan du testa? -– Med Optimizely kan jag testa budskap, bilder, färgsättning och grafisk formgivning. Men jag vet inte vad besökarna gör på sajten. För att ta reda på det använder jag webbstatistikverktygen Mixpanel och SiteCatalyst. +– Med Optimizely kan jag testa budskap, bilder, färgsättning och grafisk formgivning. Men jag vet inte vad besökarna gör på sajten. För att ta reda på det använder jag webbstatistikverktygen Mixpanel och SiteCatalyst. Var kommer besökarna ifrån? Vad klickar de på? Hur länge stannar de? Var lämnar de sajten? Alla såna frågor går det att få svar på. -_Vad är dina erfarenheter hittills?_ +## Vad är dina erfarenheter hittills? – De nya optimerings- och webbstatistikprogrammen är supereffektiva och representerar framtiden för all typ av näthandel. Att inte använda dem är detsamma som att skänka bort marknadsandelar. diff --git a/_posts/2014-09-26-GO-kommer-revolutionera-webben.md b/_posts/2014-09-26-GO-kommer-revolutionera-webben.md index 3887624..ccd601d 100644 --- a/_posts/2014-09-26-GO-kommer-revolutionera-webben.md +++ b/_posts/2014-09-26-GO-kommer-revolutionera-webben.md @@ -6,34 +6,35 @@ tags: - nyhetsbrev - golang last_updated_by: peter -image_url: http://athega.se/images/employees/peter/medium.jpg +image_url: /assets/img/employees/peter.jpg --- -##Nu kommer Go. Programspråket som är skapat för att bygga webbtjänster. +> Nu kommer Go. Programspråket som är skapat för att bygga webbtjänster. -**Lägg Go på minnet. Det är ett nytt, öppet programspråk utvecklat av Google som växer lavinartat. [Peter Hellberg](/peter) på Athega förklarar varför. ** +Lägg Go på minnet. Det är ett nytt, öppet programspråk utvecklat av Google som växer lavinartat. [Peter Hellberg](/peter) på Athega förklarar varför. -_Peter, hur många programspråk behöver vi egentligen?_ +## Peter, hur många programspråk behöver vi egentligen? -– Man måste komma ihåg att varje programspråk är ett barn av sin tid. De aktuella behoven styr språkutvecklingen. Idag har webbtjänster och multi-processing stort fokus. Och här är Go supereffektivt. +– Man måste komma ihåg att varje programspråk är ett barn av sin tid. De aktuella behoven styr språkutvecklingen. Idag har webbtjänster och multi-processing stort fokus. Och här är Go supereffektivt. -![Peter Hellberg](http://athega.se/images/employees/peter/wide.jpg) +![Peter Hellberg](/assets/img/employees/peter.jpg) _Använd Go om du vill bygga snabba webbapplikationer, säger Peter Hellberg, systemarkitekt på Athega._ -_Hur länge har Go funnits?_ +## Hur länge har Go funnits? – Den första stabila releasen släpptes 2012. Men grundidéerna till språket härrör från en matematisk teori, Communicating Sequential Processes (CSP), som presenterades redan 1978. Go är ursprungligen utvecklat av Google för att bygga Google-tjänster. Upphovsmännen är bland annat legendarerna Rob Pike och Ken Thompson från Bell Labs. Men idag sker mycket av utvecklingsarbetet utanför Google. -_När ska man använda Go?_ +## När ska man använda Go? -– I webbapplikationer som saknar grafiskt gränssnitt och samtidigt måste fungera med ett mycket stort antal klienter passar Go perfekt. Ett bra exempel är en Go-applikation som gör att en miljon klienter samtidigt kan spela upp ett videoklipp på Youtube.
        -Go passar däremot inte alls för desktop-applikationer och inte heller för mobilappar.
        -För oss som jobbar som utvecklare har Go en stor fördel. Kompilatorn är otroligt snabb. Ett skäl till att Google behövde ett nytt programspråk var faktiskt att det tog 40 minuter att kompilera deras största system i C++. Nu när det är skrivet i Go tar kompileringen någon minut. +– I webbapplikationer som saknar grafiskt gränssnitt och samtidigt måste fungera med ett mycket stort antal klienter passar Go perfekt. Ett bra exempel är en Go-applikation som gör att en miljon klienter samtidigt kan spela upp ett videoklipp på Youtube. +Go passar däremot inte alls för desktop-applikationer och inte heller för mobilappar. -_Hur tror du att framtiden blir för Go?_ +För oss som jobbar som utvecklare har Go en stor fördel. Kompilatorn är otroligt snabb. Ett skäl till att Google behövde ett nytt programspråk var faktiskt att det tog 40 minuter att kompilera deras största system i C++. Nu när det är skrivet i Go tar kompileringen någon minut. -– Eftersom jag är involverad i Go-communityn här i Stockholm blir mitt självklara svar: lysande! De delar i ett system som behöver höga prestanda borde alltid skrivas i Go. Då gör det inget att andra delar, t ex skrivna i Ruby eller Pyton, är lite långsamma. Själv jobbar jag fortfarande mest i Ruby, men Go upptar alltmer av min tid. Go kommer framför allt att växa på bekostnad av Java och C#, som jag ser det.
        - Att det internationella intresset för Go är stort märktes tydligt på den första Go-konferensen i Colorado i våras. Vi var 700 deltagare på plats, vilket är mycket bra för ett språk som bara har två år på nacken. +## Hur tror du att framtiden blir för Go? + +– Eftersom jag är involverad i Go-communityn här i Stockholm blir mitt självklara svar: lysande! De delar i ett system som behöver höga prestanda borde alltid skrivas i Go. Då gör det inget att andra delar, t ex skrivna i Ruby eller Pyton, är lite långsamma. Själv jobbar jag fortfarande mest i Ruby, men Go upptar alltmer av min tid. Go kommer framför allt att växa på bekostnad av Java och C#, som jag ser det. + Att det internationella intresset för Go är stort märktes tydligt på den första Go-konferensen i Colorado i våras. Vi var 700 deltagare på plats, vilket är mycket bra för ett språk som bara har två år på nacken. _Peter Hellberg,
        Systemarkitekt på Athega_ diff --git a/_posts/2014-10-19-abc14.md b/_posts/2014-10-19-abc14.md index 9805719..3c35e31 100644 --- a/_posts/2014-10-19-abc14.md +++ b/_posts/2014-10-19-abc14.md @@ -1,19 +1,30 @@ --- title: "Athega Code Base 2014" date: 2014-10-19 +description: "Årets Codebase hade sin bas på Sandhamns Seglarhotell och ägde rum något tidigare på hösten än förra året." last_updated_by: tobbe +image_url: /assets/legacy/uploads/2014/10/img_4301.jpg --- -Årets Codebase hade sin bas på Sandhamns Seglarhotell och ägde rum något tidigare på hösten än förra året. Valet av en lite mer civilicerad plats med mildare väder kompenserades med en rejäl expedition i ytterskärgården. På eftermiddagen mot skymningen gav vi oss i väg mot Lilla Nassa för fika, över Rödkobsfjärden och genom de östra kobbarna av Storö-Bockö-Lökaö naturreservat. -Sedan vidare mot fyrvisning på Grönskär via Björkskärs skärgård. Trots god utsikt från fyren kan vi inte rapportera om några främmande undervattensfarkoster. Väl tillbaka till Sandhamn innan solen gått ned. +Årets Codebase hade sin bas på Sandhamns Seglarhotell och ägde rum något tidigare på hösten än förra året. + +Valet av en lite mer civilicerad plats med mildare väder kompenserades med en rejäl expedition i ytterskärgården. +På eftermiddagen mot skymningen gav vi oss i väg mot Lilla Nassa för fika, över Rödkobsfjärden och genom de östra +kobbarna av Storö-Bockö-Lökaö naturreservat. Sedan vidare mot fyrvisning på Grönskär via Björkskärs skärgård. + +Trots god utsikt från fyren kan vi inte rapportera om några främmande undervattensfarkoster. + +Väl tillbaka till Sandhamn innan solen gått ned: ![Lilla Nassa.](/assets/legacy/uploads/2014/10/img_4301.jpg) Årets projekt ============= -Många valde att använda [Tessel](https://tessel.io/) som vi införskaffat till årets Codebase. Tessel är kortfattat en microcontroller som kör Javascript och är kompatibel med Node.js. Den går att bygga på med olika moduler med sensorer. +Många valde att använda [Tessel](https://tessel.io/) som vi införskaffat till årets Codebase. Tessel är kortfattat en microcontroller som kör Javascript och är kompatibel med Node.js. Den går att bygga på med olika moduler med sensorer. ### Lars -**Tessel Drink-mixer** + +#### Tessel Drink-mixer + - Moduler: Servo, Climate, BLE - Magneter, häftmassa och glas - När klimat modul känner av värme från tummen så aktiveras servo och efter 10s så skickas ett - iBeacon advertisement att det är klart @@ -21,25 +32,28 @@ Många valde att använda [Tessel](https://tessel.io/) som vi införskaffat till ![Drinkmixer](/assets/legacy/uploads/2014/10/tesselpresentatino-003.jpg) ![Drinkmixer](/assets/legacy/uploads/2014/10/tesselpresentatino-004.jpg) -**Tessel Musik-spelare** +#### Tessel Musik-spelare + - Moduler: Audio - Tiny-router och nodejs-websocket - Web-sida på tessel med spelarkontroller ![Musikspelare](/assets/legacy/uploads/2014/10/tesselpresentatino-006.jpg) ### Mark + PROGRAMABLE EXTENDED NUMBERS FOR RUBY + M500 is designed to be easy to use -input is in the form of text strings [called Strings in Ruby]. That is -any number in quotation marks a -i.e. "22" [is a valid input to M500] otherwise 22 [no quotations] talks -to Ruby's internal number representation system. +input is in the form of text strings [called Strings in Ruby]. + +That is any number in quotation marks a i.e. `"22"` [is a valid input to M500] +otherwise 22 [no quotations] talks to Ruby's internal number representation system. -"22" is a class called a String, this can be check by typing the Ruby -command puts "22".class and on return gives 'String' +`"22"` is a class called a String, this can be check by typing the Ruby +command `puts "22".class` and on return gives `'String'` btw, the command above will be shortened to: -puts "22".class >> String [where >> means what +`puts "22".class >> String` [where >> means what follows is the return after Ruby has interpreted the first part] -i.e. "command to Ruby" >> "output from Ruby" +i.e. `"command to Ruby" >> "output from Ruby"` diff --git a/_posts/2014-10-26-dotgo-2014.md b/_posts/2014-10-26-dotgo-2014.md index a0f0b93..8746215 100644 --- a/_posts/2014-10-26-dotgo-2014.md +++ b/_posts/2014-10-26-dotgo-2014.md @@ -1,6 +1,7 @@ --- title: "dotGo 2014" date: 2014-10-26 +description: "För några veckor sedan åkte jag på konferensen dotGo i Paris. Som namnet antyder handlade den främst om programmeringsspråket Go" tags: - konferens - golang diff --git a/_posts/2014-11-07-blir_det_ett_till_nordicjs.md b/_posts/2014-11-07-blir_det_ett_till_nordicjs.md index 2935f8d..e1e25cd 100644 --- a/_posts/2014-11-07-blir_det_ett_till_nordicjs.md +++ b/_posts/2014-11-07-blir_det_ett_till_nordicjs.md @@ -9,13 +9,12 @@ I dagarna annonserades [Nordic.js](http://nordicjs.com/) 2015, men frågan är o Det har nu gått några veckor sedan jag besökte årets upplaga av Nordic.js, en ny konferens som enligt skaparna skulle vara ”all about Javascript”. Problemet var bara att, det var den inte. Ganska litet faktiskt, till och med. Ändå var det en bra konferens, någonstans. Jag vill egentligen inte skriva det, men kan inte komma ifrån att jag nog tycker det ändå. -Bubblor - Konferensen inleds på kajen i Slussen i årets kanske tätaste dimma och vi kliver ombord på båten för att äta frukost medan vi transporteras ut till ett fantastiskt ställe, [Artipelag](http://www.artipelag.se/). Vi kliver av i ett hav av såpbubblor och tar oss upp till scenen, byggd i trä, som ett stormande hav. Jag tror den starten är svårslagen. Luncherna är fantastiska, kaffet är gott, festen grym, men formatet på själva konferensen är på tok för långsamt. Ett spår, 30 minuter prat och 30 minuter paus. Med några få undantag är nivån på innehållet som talarna framför alldeles för grund och som inledningsvis redan avhandlats, inte ”all about Javascript”. ## Undantagen som jag tar med mig + - [Robert Nyman](http://nordicjs.com/speakers#7-Robert-Nyman) som presenterar dev tools i Firefox (min favoritwebbläsare). - [Douglas Crockford](http://nordicjs.com/speakers#2-Douglas-Crockford) som pratar vidare om does and dont's i Javascript och framför allt varför. - [Hakim el Hattab](http://nordicjs.com/speakers#14-Hakim-El Hattab) som visar en del fantastiska visuella experiment och som är mannen bakom [slides.com](http://slides.com), som jag numera använder med glädje. diff --git a/_posts/2015-03-05-UR-recept.md b/_posts/2015-03-05-UR-recept.md index 2e8789c..31bf088 100644 --- a/_posts/2015-03-05-UR-recept.md +++ b/_posts/2015-03-05-UR-recept.md @@ -8,28 +8,29 @@ tags: last_updated_by: peter image_url: /assets/legacy/uploads/2015/03/susanne_samaras_bw.png --- -UR:s recept för webbutveckling: täta användartester och öppen källkod. ----------------------------------------------------------------------- + +## UR:s recept för webbutveckling: täta användartester och öppen källkod. + > UR har ett unikt public service-uppdrag: att producera och sprida utbildningsprogram. Vi fick en pratstund med webbutvecklingschefen Susanne Samaras. -###### Susanne, vilka skolformer riktar ni er till? +### Susanne, vilka skolformer riktar ni er till? Alla, vårt uppdrag omfattar all form av organiserad utbildning på alla nivåer. Webbtjänsterna UR.se och UR Play är våra huvudkanaler och flaggskepp. UR Play vänder sig till den kunskapstörstande allmänheten, medan UR.se är riktad mot lärare och pedagoger. I höstas lanserade vi en ny version av UR.se. ![Susanne Samaras](/assets/legacy/uploads/2015/03/susanne_samaras.png) > UR finns även på Twitter, Instagram, Youtube, Facebook och ett antal satellitsajter. Allt måste samspela med våra huvudkanaler UR.se och UR Play, säger Susanne Samaras. -###### Hur många besökare har UR.se? +### Hur många besökare har UR.se? – Under terminerna varierar det mellan 160 000 och 180 000 besökare i veckan. Hit söker sig lärare för att få stöd, handledning och inspiration i sin undervisning. På UR.se finns över 12 000 program, så det finns mycket att välja på. -###### Hur vet ni vad lärare behöver? +### Hur vet ni vad lärare behöver? – All vår utveckling är användardriven. Vi bjuder alltid in lärare och elever till fokusgrupper och användartester för att se till att vi ligger rätt när det gäller funktionalitet och design. Sen är förstås själva programmen på webbplatsen ofta framtagna i samarbete med pedagoger och utgår från behovsanalyser. Vi följer naturligtvis också upp i form av besöksstatistik och andra typer av mer kvalitativa mätningar. -###### Hur mycket betyder designen i förhållande till funktionen? +### Hur mycket betyder designen i förhållande till funktionen? – Designen är mycket viktig. Hur den är utformad bestämmer det intuitiva intrycket av sajten, det vill säga om man upplever den som lättillgänglig eller inte. Dessutom ska ju designen stärka varumärket UR. -###### Vilka webbutvecklingsverktyg använder ni? +### Vilka webbutvecklingsverktyg använder ni? – Vi köper inte in stora licensbaserade CMS-system. Flexibilitet är viktigt för oss. Därför föredrar vi öppen källkod. UR.se utnyttjar ett CMS med öppen källkod och den nya playtjänsten bygger vi främst i Ruby on Rails. -###### Vad jobbar ni med nu? +### Vad jobbar ni med nu? – Årets stora satsning är att utveckla en ny playtjänst med förbättrad navigering och möjlighet för användarna att vara med och generera innehåll på sajten. Vi gör också en satsning mot förskolan. Där använder man sig mycket av surfplattor. Det måste vi ta extra hänsyn till både när det gäller funktion och innehåll. diff --git a/_posts/2015-04-14-datascientist.md b/_posts/2015-04-14-datascientist.md index 89f53c5..e8a2578 100644 --- a/_posts/2015-04-14-datascientist.md +++ b/_posts/2015-04-14-datascientist.md @@ -5,30 +5,35 @@ description: "I huvudet på en datascientist. Möt matematikern som vaskar guld tags: - nyhetsbrev last_updated_by: peter -image_url: /assets/legacy/uploads/2015/04/mark_small.jpg +image_url: /assets/img/employees/mark.jpg --- -### I huvudet på en datascientist. Möt matematikern som vaskar guld i databaser. +## I huvudet på en datascientist. Möt matematikern som vaskar guld i databaser. > På nätet lämnar vi spår efter oss som lagras i databaser. I dessa finns värdefull dold kunskap som kan användas för att optimera webbsidor. Mark Ingram berättar om sitt jobb. -##### Mark, titeln datascientist förekommer allt oftare. Vad gör en sådan egentligen? +### Mark, titeln datascientist förekommer allt oftare. Vad gör en sådan egentligen? + – Det finns flera svar. Jag ser det som en person som med matematikens hjälp kan göra analyser av stora datamängder och hitta dolda mönster. ”Data mining” är ett annat begrepp som ofta förekommer i det här sammanhanget. Det är inte så dumt. Jag ser mig gärna som en guldgrävare som vaskar guld i databaser. -![Mark Ingram](https://www.athega.se/images/employees/mark/wide.jpg) +![Mark Ingram](/assets/img/employees/mark.jpg) > – Jag kan enkelt ta reda på om en sajt fungerar bra eller dåligt mot sin tänkta målgrupp, säger Mark Ingram, datascientist på Athega. -##### Vad har du för utbildning? -– Jag är matematiker från början, och är även utbildad i datalogi. Tidigare jobbade jag mest med finans och assets; applikationer, servrar, tjänsteavtal, licenser etc. Här på Athega jobbar vi mest med webblösningar. Att utnyttja ”datascience” inom detta område är helt nytt. +### Vad har du för utbildning? + +– Jag är matematiker från början, och är även utbildad i datalogi. Tidigare jobbade jag mest med finans och assets; applikationer, servrar, tjänsteavtal, licenser etc. Här på Athega jobbar vi mest med webblösningar. Att utnyttja ”datascience” inom detta område är helt nytt. Hur vet man till exempel att en webbsida ger bra resultat? Och om den inte gör det, vad är skälet till det? Det är mitt jobb att besvara sådana frågor. -##### Hur gör man det i praktiken? -– Många webbsidor samlar in data om sina besökare med Elasticsearch. Det är ett verktyg som gränsar till artificiell intelligens och gör det möjligt att analysera besökarnas beteenden. Alla lämnar vi ju spår efter oss på nätet som ger ledtrådar. Idag går det att få fram psykologiska och sociologiska samband ur det insamlade materialet. +### Hur gör man det i praktiken? + +– Många webbsidor samlar in data om sina besökare med Elasticsearch. Det är ett verktyg som gränsar till artificiell intelligens och gör det möjligt att analysera besökarnas beteenden. Alla lämnar vi ju spår efter oss på nätet som ger ledtrådar. Idag går det att få fram psykologiska och sociologiska samband ur det insamlade materialet. Jag kan ganska enkelt räkna ut vilka demografiska grupper (ålder, kön, utbildning, inkomst etc.) som besöker en webbsida och var de befinner sig geografiskt. Med hjälp av A/B-tester och matematisk statistik går det också att se hur bra en sajt fungerar beroende på vilka budskap, färger och bilder som används. -##### Har du några tekniska hjälpmedel? -– Jag gillar Apache Mahout. Det är ett matematikpaket i öppen källkod. Programmeringsverktyget Pig är också intressant. Det hanteras med ett eget språk: Pig-Latin. Ett bra statistikpaket är R. +### Har du några tekniska hjälpmedel? + +– Jag gillar Apache Mahout. Det är ett matematikpaket i öppen källkod. Programmeringsverktyget Pig är också intressant. Det hanteras med ett eget språk: Pig-Latin. Ett bra statistikpaket är R. Men jag vill understryka en sak. Man kan aldrig slumpmässigt börja analysera en stor datamängd och plötsligt se en sanning i den. Först måste alltid en fråga ställas. Den kan sedan omvandlas till en hypotes och testas med matematiska metoder. Fråga - hypotes - test, det är så man måste jobba. -##### Finns det någon fråga som är central för alla företag? +### Finns det någon fråga som är central för alla företag? + – Företagens webbar är idag spjutspetsen i marknadskommunikationen. Därför borde alla företag ställa sig frågan: pratar vår sajt till rätt målgrupp på rätt sätt? En sådan matematisk check kan jag göra på nolltid. Jag utmanar alla som vill veta sanningen att våga ställa den frågan till mig. diff --git a/_posts/2015-06-29-appvideotidningar.md b/_posts/2015-06-29-appvideotidningar.md index 6e36003..c10cea6 100644 --- a/_posts/2015-06-29-appvideotidningar.md +++ b/_posts/2015-06-29-appvideotidningar.md @@ -7,34 +7,40 @@ tags: last_updated_by: peter image_url: /assets/legacy/uploads/2015/06/larsdbw.jpg --- -### Läs om hur hybridtänket tar apparna till nya höjder. +## Läs om hur hybridtänket tar apparna till nya höjder. > Nya Fotbollskanalen släpptes 4 juni. En grym app som byggdes "by the book". Lars Dahllöf satt i teamet på TV4 och gillade allt med det högambitiösa projektet. -##### Kan man kalla nya Fotbollskanalen en appvideotidning? +### Kan man kalla nya Fotbollskanalen en appvideotidning? – Varför inte? Innehållet i appen byts ut hela tiden, och mycket av innehållet är videosnuttar. När redaktörerna skriver i sitt cms-system så kommer det dom ser på sin skärm se likadant ut i appen inom en timme. Allt ändras dessutom på alla plattformar samtidigt, iOS, Android och webb. Skulle vi göra en native app med samma funktionalitet skulle det ta flera timmar att få ut det i Google Play eller i en Android-app och en vecka i en iOS-app som ska upp på App Store. Så den är snabb som en tidning på webben, fast gjord som en app. ![Lars Dahlöf](/assets/legacy/uploads/2015/06/larsd.jpg) -Athega-konsulten Lars Dahllöf är Symbian-veteran från Sony Ericsson, men nu är det apputveckling som gäller: det är roligast. +_Athega-konsulten Lars Dahllöf är Symbian-veteran från Sony Ericsson, men nu är det apputveckling som gäller: det är roligast._ + +### Hur gör man en riktigt bra app? -##### Hur gör man en riktigt bra app? – Ribban har helt klart höjts. Funktionerna måste utformas som användarna tänker. Allt måste fungera intuitivt. Interaktionsexperter och designers måste vara med. Färger, branding, flöden, typografi – allt måste stämma. Hög kodkvalitet är förstås superviktigt. Sen behöver man putsa, putsa, putsa. -##### Du kallar appen en hybridapp, vad är det? +### Du kallar appen en hybridapp, vad är det? + -Det är ett samarbete mellan webb och app kan man säga. Innehållsstrukturen görs i html på en webbsida. När innehållet sen laddas i mobilen används en massa specialfix som gör att appen kan spela upp materialet på rätt sätt. Hybrid-appar är inget nytt, men nya Fotbollskanalen är en mycket ambitiös och snygg hybrid-app. -##### Vad är nytt i nya Fotbollskanalen? -– Allt. Logiken, funktionaliteten, innehållet, det grafiska utseendet. TV4 vill fortsätta vara ledande på grafik och funktionalitet i alla sina kanaler både på TV, webb och appar. +### Vad är nytt i nya Fotbollskanalen? + +– Allt. Logiken, funktionaliteten, innehållet, det grafiska utseendet. TV4 vill fortsätta vara ledande på grafik och funktionalitet i alla sina kanaler både på TV, webb och appar. Appen är byggd enligt modellen ”mobile first” – all design och struktur har skräddarsytts för mobilen och sen skalats upp för att fungera även på desktop. Det har varit ett stort projekt med användarstudier interaktionsdesigners, formgivare och utveckling. Utvecklingsteamet har bestått av fyra utvecklare med specialkunskaper inom Android, iOS, frontend och backend, samt produktägare och testare. -##### Tänker du fortsätta med apputveckling? +### Tänker du fortsätta med apputveckling? + – Jag är gammal i gamet, utvecklade i Symbian på Sony Ericsson i många år. Har jobbat backend, varit arkitekt, kravställare och även chef. Med det jag tycker är kul är ju att programmera, speciellt appar. Appar är visuellt och lättjobbat, man har koll på allt och kan lösa allt själv. Bygga bra användargränssnitt är också väldigt kul. -##### Tips till andra som vill göra bra appar? +### Tips till andra som vill göra bra appar? + – Design och interaktion är viktigt. Använd rätt open source, speciellt på Android. Skriv robust och korrekt kod. Gör rätt från början. Sen är det viktigt att alla i teamet reviewar varandra hela tiden så att alla lär sig mer och utvecklas. Och ha kul förstås. -##### Nå´t mer? +### Nått mer? + – Japp, en grej som är skön numera är att det finns så mycket ny bra open source att använda. Det är smart att våga använda det senaste hela tiden, det lönar sig i längden. -[http://www.fotbollskanalen.se...](http://www.fotbollskanalen.se) +[fotbollskanalen.se](https://www.fotbollskanalen.se) diff --git a/_posts/2015-07-07-datascience.md b/_posts/2015-07-07-datascience.md index 31ef1a6..922d3dc 100644 --- a/_posts/2015-07-07-datascience.md +++ b/_posts/2015-07-07-datascience.md @@ -9,38 +9,34 @@ image_url: /assets/legacy/uploads/2015/07/datascience.png --- > Jag tänkte skriva lite om data-science, algoritmer, AI, neuronnät och tillämpningar en data scientist kan hjälpa till med. Jag har fått hjälp av våra duktiga data-scientists att sätta ihop detta. //Mats +## Generella lösningar kräver både domän- och data-science expertis +Metoder och verktyg som används inom Data-science begränsas inte till specifika områden. Tekniken och algoritmerna är de samma oavsett om det är finansiellt data, besöksstatistik eller CRM-data på försäljning. -#### Generella lösningar kräver både domän- och data-science expertis -Metoder och verktyg som används inom Data-science begränsas inte till specifika områden. Tekniken och algoritmerna är de samma oavsett om det är finansiellt data, besöksstatistik eller CRM-data på försäljning. - -Dock kan det vara svårt är se möjligheterna utan att vara områdesöverskridande expert inom programmering, statistik, matematik och bransch/domän-expert. +Dock kan det vara svårt är se möjligheterna utan att vara områdesöverskridande expert inom programmering, statistik, matematik och bransch/domän-expert. Det går att gruppera expertisen i två delar -- Vi är experter på programmering, statistik och matematik. -- Våra kunder är domänexperter på sitt data. - +- Vi är experter på programmering, statistik och matematik. +- Våra kunder är domänexperter på sitt data. -#### Rollen data-scientist +### Rollen data-scientist -En Data-scientist är en utbildad matematiker som är mycket kunnig i statistiska modeller och dataanalys. Självklart ska en data-scientist programmatiskt kunna modulera artificiella neuronnät och kluster samt veta vilka implementationer som ger bästa lösning. +En Data-scientist är en utbildad matematiker som är mycket kunnig i statistiska modeller och dataanalys. Självklart ska en data-scientist programmatiskt kunna modulera artificiella neuronnät och kluster samt veta vilka implementationer som ger bästa lösning. > På Athega är en Data-Scientist en senior utvecklare med högre akademisk examen i matematik och statistik. - - -##### Vad levererar en data-scientist? +### Vad levererar en data-scientist? De lösningar som en data-scientist kan hjälpa er ta fram jobbar typiskt med stora datamängder(big data) och är effektiva verktyg för att upptäcka komplexa mönster som är svåra, omöjliga eller tidskrävande att identifiera med mer konventionella metoder. Systemen blir ofta en blackbox-lösning för att lösa ett väldigt specifikt problem. Systemen kan vara självlärande i mer eller mindre utsträckning och detta sker ofta på två olika sätt. Återkoppling från användarna (supervised learning) Automatisk anpassning till varierande data (unsupervised learning/outlier detection) -Ni får systemet modulerat, testat och byggt med er expertis på det data som ska behandlas. Detta inkluderar produktionssättning och förvaltningsetablerat på er IT-avdelning. Ni är inblandade som kravställare under hela arbetet. +Ni får systemet modulerat, testat och byggt med er expertis på det data som ska behandlas. Detta inkluderar produktionssättning och förvaltningsetablerat på er IT-avdelning. Ni är inblandade som kravställare under hela arbetet. -#### Exempel på användningsområden för finansiella institutioner +### Exempel på användningsområden för finansiella institutioner Försöker nedan beskriva olika tillämpningar som är mer eller mindre vedertagna. -##### Bedrägerikontroll +#### Bedrägerikontroll En finansiell institution eller bank monitorerar både kunder och transaktioner för att fånga upp misstänkta bedrägerier tidigt. Att tidigt hitta kunder eller konton som uppförs sig ovanligt genom att använda ett poängsystem/risksystem ger företaget eller myndigheten möjlighet att minska den mängd data som behöver utredas manuellt. Resultatet blir ett indikations-system på potentiella problem. Poster med ovanliga uppföranden rankas en mycket högre risk att vara ett bedrägeri än de som uppför sig som förväntat. Till exempel kan det vara en ovanligt stor pengatransaktion. Det är alltså det avvikande beteendet som ger underlag för närmare utredning. Den närmare utredningen sker ofta manuellt. @@ -52,34 +48,32 @@ För denna typ av lösningar finns en mängd verktyg tillgängliga. Alla har oli Som kravställare är ett samarbete med en data-scientist ett bra sätt att komma igång. Vi börjar med att definiera problemställningen och titta på det data som finns. Vi diskuterar hur en prototyp ska fungera. Viktigt är sedan att det finns lämpliga rapporter, GUI eller system för feedback som passar ert sätt att arbeta. Ibland är kanske en färdig programvara, som finns på marknaden, rätt val. Då hjälper våra data-scientists er att välja rätt. -##### Kvalitetskontroll av affärskritiskt- och regulatoriskt data +#### Kvalitetskontroll av affärskritiskt- och regulatoriskt data -Det är både svårt och tidskrävande att avgöra om ursprungsdata från en stor mängd system är rätt. Aggregerade rapporter ska gå till myndigheter och andra kontrollinstanser. Tidsrymden mellan att data skapas i grundsystem till att data ska exponeras på aggregerad nivå krymper hela tiden i och med ökade krav från myndigheter. +Det är både svårt och tidskrävande att avgöra om ursprungsdata från en stor mängd system är rätt. Aggregerade rapporter ska gå till myndigheter och andra kontrollinstanser. Tidsrymden mellan att data skapas i grundsystem till att data ska exponeras på aggregerad nivå krymper hela tiden i och med ökade krav från myndigheter. Traditionellt finns larmsystem på specifika delar i processen, leveranser som uteblir eller körningar som misslyckas. Denna övervakning kan vara byggd på hypoteser och specifika problem-fall där fel rapporterats tidigare. Till exempel kan en leverans övervakas genom att en kontroll sker om fil levererats i tid. Kontroll sker om filen går att validera osv. -###### Data science och kvalitetsmonitorering +#### Data science och kvalitetsmonitorering -Att använda data science och algoritmer för kvalitetsmonitorering av denna typ av data är ett spännande område där helt andra och mer avancerad monitorering går att göra. Målet är att tidigt i data-leveransprocessen fånga avvikande och ovanliga värden för att sedan snabbt indikera för kvalitetsansvarig var det finns potentiella problem. +Att använda data science och algoritmer för kvalitetsmonitorering av denna typ av data är ett spännande område där helt andra och mer avancerad monitorering går att göra. Målet är att tidigt i data-leveransprocessen fånga avvikande och ovanliga värden för att sedan snabbt indikera för kvalitetsansvarig var det finns potentiella problem. Det går till exempel att låta ett neuron-nät “cruncha” data från transaktionsflöden, bokföringsrörelser, trades, manuella inmatningar, antal och typ av systemändringar från IT, rapporter av incidenter. Kort och gott allt man tror påverkar data-kvaliteten och som går att mäta. Dessa system identifierar utan ansträngning komplexa mönster i enorma dataset och kan i och med detta, bottom-up, beskriva hur stor risken är att vissa siffror avviker och bör kontrolleras manuellt. Kombinationen av den mönsterletande algoritmen/neuro-nätverket och den seniora ekonomen med sin erfarenhet minskar arbetsbelastning och gör det möjligt att kontrollera och verifiera siffrorna snabbare. -När verksamhetsdata inkluderas, till exempel change requests och IT-incidenter, går det att empiriskt skapa argument för att driva IT-förändringar/förbättringar på lägre prioriterade system. +När verksamhetsdata inkluderas, till exempel change requests och IT-incidenter, går det att empiriskt skapa argument för att driva IT-förändringar/förbättringar på lägre prioriterade system.
        Vi är experter på programmering, statistik och matematik. Ni är domänexperter på ert data. Tillsammans kan vi skapa konkurrensfördelar genom områdesöverskridande samarbeten.
        - -
        diff --git a/_posts/2015-07-16-datascienceweb.md b/_posts/2015-07-16-datascienceweb.md index c6fa60e..4469444 100644 --- a/_posts/2015-07-16-datascienceweb.md +++ b/_posts/2015-07-16-datascienceweb.md @@ -7,45 +7,52 @@ tags: last_updated_by: peter image_url: /assets/legacy/uploads/2015/07/ab.png --- -#### Att testa en hypotes +## Att testa en hypotes +
        -
        +
        + Hypotesprövning innebär att vi först bestämmer oss för vad vi vill testa. Parametern kan vara antal besökare på en sida och hypotesen att en av två versioner av sidan attraherar besökaren mera. Dock vet vi inte vilken version. Tänk en försäljningssida där besökaren ska klicka på en köp-knapp. Hur ska den knappen och texten se ut för att generera mest försäljning? Vi kan testa två versioner av sidan och mäta försäljningen. Allmänt kallas detta A/B testning. Vi testar två olika fall för att se vilket som genererar högst värde av den parameter vi anser är viktig. Fördelningen eller antal procent som aktiveras kallas konverteringsgrad. > Att genomföra ett statistiskt tillförlitligt A/B test är inte alltid så lätt - -##### 1 - Bakgrundsdata + +### 1 - Bakgrundsdata + Först vill vi samla lite bakgrundsdata. Vad har vi för konverteringsgrad idag? Hur många som klickar på Köp genomför verkligen ett köp? Det är upp till var och en att förbereda sig med relevanta frågeställningar och data runt detta. -##### 2 - Forma hypotesen +### 2 - Forma hypotesen + Detta gäller för övervakade och kontrollerade A/B tester. Helt enkelt tester där vi själva bestämmer vår hypotes. ”Vi tror att en röd knapp ökar konverteringsgraden”. -##### 3 - Designa experimentet +### 3 - Designa experimentet + Räkna ut hur länge vi behöver göra testet. Hur mycket data behöver vi för att kunna dra en tillförlitlig slutsats? Det finns kalkylatorer på nätet och olika tillverkare av programvaror för A/B testning har olika uppfattningar. För att bestämma detta krävs en del kunskap om statistik och kunskap om besökarnas mönster. Det går att med olika metoder komma fram till ett lämpligt underlag. Lägg gärna tid på att förstå detta. Det vore olyckligt om testet visar fel resultat pga för kort eller för lång testperiod. Se till att köra hela testet klart innan ni drar några slutsatser om signifikans. Att löpande köra ett A/B test på en sida och då och då titta efter signifikans ökar drastiskt risken för felaktiga slutsatser. Effekterna och hur svårt detta är kommer beskrivas senare i en separat bloggpost. -##### 4 - Genomför experimentet +### 4 - Genomför experimentet + Sätt upp det innehåll ni vill prova, programmera eller lägg in de script som behövs. Om ni redan har programvaror för detta, starta helt enkelt testet. -##### 5 - Analysera data +### 5 - Analysera data + Precis som i punkt 3 är det viktigt att man vet vad man gör i detta moment. Statistik är inte helt intuitivt och det är lätt att misstolka data som verkar visa självklara slutsatser. Här kan en data-analytiker eller Data Scientist vara behjälplig med variationsanalys och analys av outliers som påverkar resultatet i olika riktningar. Det är sällan så lätt att det går att dra statistiskt säkerställda slutsatser från medelvärden. -##### 6 - Slutsats +### 6 - Slutsats + Kommunicera resultatet inklusive tillförlitligheten. Detta är ett svårt men väldigt viktigt moment. Alla inblandade och alla som berörs måste få ett underlag alla förstår. Speciellt tillförlitligheten är svår att kommunicera. Grafiska och visuella förklaringar är bra. En som är duktig på statistik och kan förklara resultatet och konfidensintervall behövs ofta för att inte resultatet ska misstolkas. - +## Generella lösningar kräver både domän- och data-science expertis -#### Generella lösningar kräver både domän- och data-science expertis -Metoder och verktyg som används inom Data-science begränsas inte till specifika områden. Tekniken och algoritmerna är de samma oavsett om det är finansiellt data, besöksstatistik eller CRM-data på försäljning. +Metoder och verktyg som används inom Data-science begränsas inte till specifika områden. Tekniken och algoritmerna är de samma oavsett om det är finansiellt data, besöksstatistik eller CRM-data på försäljning. -#### Rollen data-scientist +### Rollen data-scientist -En Data-scientist är en utbildad matematiker som är mycket kunnig i statistiska modeller och dataanalys. Självklart ska en data-scientist programmatiskt kunna modulera artificiella neuronnät och kluster samt veta vilka implementationer som ger bästa lösning. +En Data-scientist är en utbildad matematiker som är mycket kunnig i statistiska modeller och dataanalys. Självklart ska en data-scientist programmatiskt kunna modulera artificiella neuronnät och kluster samt veta vilka implementationer som ger bästa lösning. > På Athega är en Data-Scientist en senior utvecklare med högre akademisk examen i matematik och statistik.
        -Läs mer om Mark som vaskar guld i databaser
        +Läs mer om Mark som vaskar guld i databaser
        @@ -55,9 +62,9 @@ Läs mer om Mark som vaskar guld i databaser
        border: 0px solid #bdbdbd; border-radius: 15px 50px 30px 5px; background: #F0F0F0; - padding: 20px; + padding: 20px; width: 50%; - margin: 0 0 25px; + margin: 0 0 25px; font-size: 16px; color: Black; font-style: Italic; overflow: hidden;"> diff --git a/_posts/2015-08-18-gophercon-2015.md b/_posts/2015-08-18-gophercon-2015.md index 3db0419..7724d60 100644 --- a/_posts/2015-08-18-gophercon-2015.md +++ b/_posts/2015-08-18-gophercon-2015.md @@ -18,7 +18,7 @@ Många av talarna (och deltagarna) pratade om förbättringar och ändringar inf ### Dag 1 - Go, Open Source, Community — Russ Cox ([video](https://www.youtube.com/watch?v=XvZOdpd_9tc)) ([text](http://blog.golang.org/open-source)) - - Go kit: A Standard Library for Distributed Programming — Peter Bourgon ([video](https://www.youtube.com/watch?v=1AjaZi4QuGo)) ([slides](https://github.com/gophercon/2015-talks/blob/master/Go%20kit/go-kit.pdf)) + - Go kit: A Standard Library for Distributed Programming — Peter Bourgon ([video](https://www.youtube.com/watch?v=1AjaZi4QuGo)) ([slides](https://github.com/gophercon/2015-talks/blob/master/Go%20kit/go-kit.pdf)) - Delve Into Go — Derek Parker ([video](https://www.youtube.com/watch?v=InG72scKPd4)) ([slides](http://go-talks.appspot.com/github.com/derekparker/talks/gophercon-2015/delve-into-go.slide)) - How a complete beginner learned Go as her first backend language in 5 weeks — Audrey Lim ([video](https://www.youtube.com/watch?v=fZh8uCInEfw)) ([slides](https://github.com/gophercon/2015-talks/blob/master/Audrey%20Lim%20-%20How%20a%20Complete%20Beginner%20Picked%20Up%20Go%20as%20Her%20First%20Backend%20Language%20in%205%20weeks/audreylim_slides.pdf)) - A Practical Guide to Preventing Deadlocks and Leaks in Go — Richard Fliam ([video](https://www.youtube.com/watch?v=3EW1hZ8DVyw)) diff --git a/_posts/2015-11-30-hackday.md b/_posts/2015-11-30-hackday.md index 5f53862..342c2b3 100644 --- a/_posts/2015-11-30-hackday.md +++ b/_posts/2015-11-30-hackday.md @@ -18,11 +18,13 @@ Flera av oss hade valt spelutveckling med lite olika teknik och målplattformar. Vi såg också fina exempel på machine learning, Data Science, Apple TV och IoT som Physical Web med Beacons. Dessutom gjordes en Andriodapplikation, som hjälper till när du parkerar, klar för release. Men det projekt med bäst utformning för demo var ändå det som gjordes med Lego Mindstorms. + [https://www.youtube.com/watch?v=SBb7P-RoYLU&feature=youtu.be](https://www.youtube.com/watch?v=SBb7P-RoYLU&feature=youtu.be) Ni kan studera detaljer, kod och läsa mer om projekten på Athegas GitHub. + [https://github.com/athega/acb2015/blob/master/README.md](https://github.com/athega/acb2015/blob/master/README.md) Håll tillgodo -Torbjörn Nilsson +/ [Torbjörn Nilsson](/tobbe) diff --git a/_posts/2016-01-26-open-maps.md b/_posts/2016-01-26-open-maps.md index b607fe4..a58029a 100644 --- a/_posts/2016-01-26-open-maps.md +++ b/_posts/2016-01-26-open-maps.md @@ -1,6 +1,7 @@ --- title: "Öppna kartor" date: 2016-01-26 +description: "Lantmäteriet har vid årsskiftet släppt vissa av sina kartor fria som öppen data." tags: - öppna data - kartor diff --git a/_posts/2016-02-05-isomorfism.md b/_posts/2016-02-05-isomorfism.md index 5e30c87..070fc16 100644 --- a/_posts/2016-02-05-isomorfism.md +++ b/_posts/2016-02-05-isomorfism.md @@ -1,17 +1,21 @@ --- title: "JavaScript och isomorfism med Node och React" date: 2016-02-05 +description: "Efterfrågan kring erfarenhet av node.js och isomorfiska tillämpningar har fullkomligt exploderat den senaste tiden." last_updated_by: tobbe --- > Efterfrågan kring erfarenhet av node.js och isomorfiska tillämpningar har fullkomligt exploderat den senaste tiden. JavaScript -Vi kommer därför att satsa på just detta under våra internutbildningssessioner under våren. Vi kör, som vanligt, en fredagseftermiddag (14:00 - ca 16:30) varje månad fram till sommaren. +Vi kommer därför att satsa på just detta under våra internutbildningssessioner under våren. +Vi kör, som vanligt, en fredagseftermiddag (14:00 - ca 16:30) varje månad fram till sommaren. -Christian Lizell, som har praktisk erfarenhet från en av landets största sajter, kommer leda utbildningen. Han kommer använda labbar och material från http://nodeschool.io/, men också bjuda på sina egna erfarenheter. +[Christian Lizell](/chrille), som har praktisk erfarenhet från en av landets största sajter, kommer leda utbildningen. +Han kommer använda labbar och material från , men också bjuda på sina egna erfarenheter. + +### Exempel på Innehåll: -### Exempel på Innehåll: * Server side Javascript * node.js, io.js * v0.13, v4, v5? @@ -29,10 +33,11 @@ Christian Lizell, som har praktisk erfarenhet från en av landets största sajte * Phantomjs ### Tillfällen under våren + - 2016-02-26 14:00 - ca 16:30 - 2016-03-18 14:00 - ca 16:30 - 2016-04-15 14:00 - ca 16:30 - 2016-05-20 14:00 - ca 16:30 -Alla är välkomna i mån av plats men vi prioriterar medlemmar i konsultnätverket. +Alla är välkomna i mån av plats men vi prioriterar medlemmar i konsultnätverket. Kontakta Torbjörn Nilsson om du vill delta eller har frågor. diff --git a/_posts/2016-03-10-qconlondon-2016-take-aways.md b/_posts/2016-03-10-qconlondon-2016-take-aways.md index dba8567..d912d69 100644 --- a/_posts/2016-03-10-qconlondon-2016-take-aways.md +++ b/_posts/2016-03-10-qconlondon-2016-take-aways.md @@ -1,6 +1,7 @@ --- title: "QCon London 2016 – Take aways" date: 2016-03-10 +description: "I denna artikel ska jag så kort jag kan redogöra för hur de här tre dagarna påverkat min omedelbara framtid. Eller mindre pretantiöst, vad jag ska prova härnäst och titta litet närmare på." tags: - konferens last_updated_by: chrille diff --git a/_posts/2016-03-21-kafka-buzz-pa-qcon-london.md b/_posts/2016-03-21-kafka-buzz-pa-qcon-london.md index db7b27b..c0f9558 100644 --- a/_posts/2016-03-21-kafka-buzz-pa-qcon-london.md +++ b/_posts/2016-03-21-kafka-buzz-pa-qcon-london.md @@ -1,20 +1,21 @@ --- title: "Kafka-buzz på Qcon London" date: 2016-03-21 +description: "En sak som slog mig var hur mycket buzz det var kring Apache Kafka." tags: - kafka - konferans last_updated_by: mikael --- -#Apache Kafka buzz på Qcon London - Det har gått ett tag sedan [Qcon London](http://qconlondon.com) avslutades. Konferensen hade ett massivt innehåll och Christian har sammanfattat mycket av det som var bra [här](http://athega.se/blogg/2016/03/10/qconlondon-2016-take-aways) -En sak som slog mig var hur mycket buzz det var kring [Apache Kafka](http://kafka.apache.org/). Kafka nämndes i flera föreläsningar, i flera olika spår, antingen direkt, som i [Ben Stopford](https://qconlondon.com/presentation/microservices-streaming-world) och [Martin Kleppmann](https://qconlondon.com/presentation/staying-sync-transactions-streams)s föreläsningar, eller indirekt som när Netflix och Uber beskrev sina respektive arkitekturer där Kafka har en central roll. +En sak som slog mig var hur mycket buzz det var kring [Apache Kafka](http://kafka.apache.org/). Kafka nämndes i flera föreläsningar, i flera olika spår, antingen direkt, som i [Ben Stopford](https://qconlondon.com/presentation/microservices-streaming-world) +och [Martin Kleppmanns](https://qconlondon.com/presentation/staying-sync-transactions-streams) föreläsningar, eller indirekt som när Netflix och Uber beskrev sina respektive arkitekturer där Kafka har en central roll. + +### Vad är då Kafka? -##Vad är då Kafka? Det korta svaret är att Kafka är ett meddelande-system designat som en distribuerad logg. Fokus är lagd på stora mängder trafik, [hög prestanda](https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines) och feltolerans. Om man är intresserad av att gå på djupet så är självklart den officiella [dokumentationen](http://kafka.apache.org/documentation.html) bäst. Qcon-buzzet har definitivt väckt mitt intresse och nästa gång jag är i behov av ett meddelande-system kommer jag garanterat att undersöka Kafka närmare. -/ [Mikael](http://athega.se/mikael) +/ [Mikael](/mikael) diff --git a/_posts/2016-03-26-bland-lyktstolpar-och-grafdatabaser-i-london.md b/_posts/2016-03-26-bland-lyktstolpar-och-grafdatabaser-i-london.md index 6ae0c7f..4be7f94 100644 --- a/_posts/2016-03-26-bland-lyktstolpar-och-grafdatabaser-i-london.md +++ b/_posts/2016-03-26-bland-lyktstolpar-och-grafdatabaser-i-london.md @@ -1,6 +1,7 @@ --- title: "Bland lyktstolpar och grafdatabaser i London" date: 2016-03-26 +description: "Efter en grym konferens så är det dags att samla tankarna." last_updated_by: alex --- Efter en grym konferens så är det dags att samla tankarna. diff --git a/_posts/2016-04-07-UR-vann-tavling-i-webbprestanda.md b/_posts/2016-04-07-UR-vann-tavling-i-webbprestanda.md index a03a590..296b3cb 100644 --- a/_posts/2016-04-07-UR-vann-tavling-i-webbprestanda.md +++ b/_posts/2016-04-07-UR-vann-tavling-i-webbprestanda.md @@ -8,18 +8,25 @@ tags: last_updated_by: peter image_url: /assets/legacy/uploads/2016/04/urskola.jpg --- -##ur.se (numera urskola.se) laddar klart på 610 millisekunder. Det räckte för att vinna Sveriges största tävling i webbprestanda. + +### ur.se (numera urskola.se) laddar klart på 610 millisekunder. Det räckte för att vinna Sveriges största tävling i webbprestanda. > Internetworld har sedan 1997 utsett de främsta svenska webbplatserna i 17 kategorier. Testföretaget Apica mätte upp- och svarstiderna på alla nominerade sajter på Topp100-listan. Vi ringde upp Athega-konsulten Johan Beronius och URs projektledare Arvid Krantz. ### _Johan, klassisk fråga, hur känns det?_ + – Det känns förstås riktigt bra för mig och alla i teamet. Jag har varit med och byggt en stor del av URs webbplats och haft tid att optimera den parallellt med att den utvecklats. Nu när sajten uppmärksammas i media är det kul för alla inblandade. -![Johan Beronius](https://athega.se/images/employees/johan/wide.jpg) +![Johan Beronius](/assets/img/employees/johan.jpg) + _Athegas Johan Beronius är expert på optimering av webbplatser och framhåller att det inte bara är prestanda som är viktigt – även tillgängligheten behöver optimeras._ ### _Arvid, grattis till priset, hur ser den närmaste framtiden ut för ur.se?_ + – Vi kommer fortsätta förbättra och utveckla sajten på samma sätt som tidigare. Vi har en stadig och stor ökning av trafik som kommer med förväntningar och ställer höga krav på kvalitet. En utmaning men samtidigt naturligtvis väldigt roligt. ### _Hur ser ni allmänt på behovet av optimering?_ -– Jag är övertygad om att bra prestanda är viktigare än någonsin för alla sajter, inte minst på grund av det ökande mobilsurfandet. Användarna kanske inte förstår skillnaden men undermedvetet registrerar de förhoppningsvis att vår sajt fungerar som alla andra borde fungera. Man kan tycka att näten blir allt bättre och att responstider spelar mindre roll, men i praktiken har vi av samma anledning mindre tålamod och tar något för lång tid klickar man vidare. I ett klassrum med lite skakig uppkoppling fungerar vår sajt när andra sajter inte ens börjat ladda. Det hoppas jag märks och kan vara en del i den ökande återkommande trafiken till våra webbplatser. + +– Jag är övertygad om att bra prestanda är viktigare än någonsin för alla sajter, inte minst på grund av det ökande mobilsurfandet. Användarna kanske inte förstår skillnaden men undermedvetet registrerar de förhoppningsvis att vår sajt fungerar som alla andra borde fungera. Man kan tycka att näten blir allt bättre och att responstider spelar mindre roll, men i praktiken har vi av samma anledning mindre tålamod och tar något för lång tid klickar man vidare. + +I ett klassrum med lite skakig uppkoppling fungerar vår sajt när andra sajter inte ens börjat ladda. Det hoppas jag märks och kan vara en del i den ökande återkommande trafiken till våra webbplatser. diff --git a/_posts/2016-08-18-Till-vad-anvander-man-ett-Hadoopkluster-till.md b/_posts/2016-08-18-Till-vad-anvander-man-ett-Hadoopkluster-till.md index 1e9f58c..1e4efa9 100644 --- a/_posts/2016-08-18-Till-vad-anvander-man-ett-Hadoopkluster-till.md +++ b/_posts/2016-08-18-Till-vad-anvander-man-ett-Hadoopkluster-till.md @@ -1,10 +1,12 @@ --- title: "Till vad använder man ett Hadoopkluster?" date: 2016-08-18 +description: "Här är en liten översikt över Hadoop för att diskutera den övertro och förvirring som finns kring dess användning." last_updated_by: peter --- -##Ett försök att identifiera typiska användningsfall för ett Hadoopkluster -Här är en liten översikt över Hadoop för att diskutera den övertro och förvirring som finns kring dess användning. Jag hoppas det ger er en intressant läsning och överblick. +### Ett försök att identifiera typiska användningsfall för ett Hadoopkluster + +> Här är en liten översikt över Hadoop för att diskutera den övertro och förvirring som finns kring dess användning. Jag hoppas det ger er en intressant läsning och överblick. ![Datorskärm](/assets/legacy/uploads/2016/08/dator_arbetsplats.jpg) @@ -12,29 +14,28 @@ Hadoop är ett högpresterande datorkluster som fungerar som en enhet. Det betyd Självklart låter detta mycket spännande men frågan är hur ditt Hadoopkluster faktiskt kan leverera önskat affärsvärde. -Hadoop har blivit lite synonymt med analys och Big-data vilket jag skulle säga är en liten överdrift. +Hadoop har blivit lite synonymt med analys och Big-data vilket jag skulle säga är en liten överdrift. Hadoop använder sig av likväl strukturerad som ostrukturerad data. Den kan hantera enorma mängder data i terabyteklassen och lagra datat tills det ska analyseras. Då kan man använda sig av Hadoops stora utbud av kodkomponenter för exempelvis maskininlärning. -Företag som önskar sig ett datorkluster med Hadoop bör tänka igenom olika alternativ. Ja, för det det finns flera bra alternativa datorklusterlösningar som i vissa fall kan vara mer passande. Jag kommer inte att gå på dessa i denna post. +Företag som önskar sig ett datorkluster med Hadoop bör tänka igenom olika alternativ. Ja, för det det finns flera bra alternativa datorklusterlösningar som i vissa fall kan vara mer passande. Jag kommer inte att gå på dessa i denna post. Eftersom Hadoop är öppen källkod kan den uppfattas som kostnadsfri, men sanningen är att kostnaden finns gömd i underhåll och utveckling. -Kostnadskontroll bygger på planering och förståelse av de många spännande källkodskomponenter som eldsjälar har bidragit med. Självklart ska man förstå sin egna affärsbehov och Hadoops begränsningar. +Kostnadskontroll bygger på planering och förståelse av de många spännande källkodskomponenter som eldsjälar har bidragit med. Självklart ska man förstå sin egna affärsbehov och Hadoops begränsningar. Jag har försökt beskriva några användarfall lämpliga för Hadoop-datorkluster och hittat komponenter och kunskap som kan behövas. -Till exempel +## Till exempel - Kostnadseffektiv datalagring på befintliga maskiner - - Driva utvecklingen framåt genom disruptiv innovation och användning av Hadoop - - Hitta datan du söker efter såsom “nålen i höstacken” -##Bakgrundshistoria -Hadoop var i sin linda en lösning till Yahoos sökmotorteknik. +## Bakgrundshistoria + +Hadoop var i sin linda en lösning till Yahoos sökmotorteknik. 2006 arbetade Doug Cutting på Yahoo med deras webbsöksteknik kallad Nutch. Doug kopplade samman Yahoos Nutch-teknik med kunskap av Googles Filsystem och publikationer kring Map Reduce. Det blev Hadoop (namnet Hadoop kommer från Dougs barns leksakselefant) och han släppte Hadoop som öppen källkod under Apache Software Foundation. > “Everyone had something that pretty much was like MapReduce because we were all solving the same problems. We were trying to handle literally billions of web pages on machines that are probably, if you go back and check, epsilon more powerful than today’s cell phones. … So there was no option but to latch hundreds to thousands of machines together to build the index. So it was out of desperation that MapReduce was invented.” – Doug @@ -43,44 +44,52 @@ Min tolkning och översättning av detta är som följer: Vi alla hade samma utmaningar. Bokstavligen miljarder av webbsidor att granska maskinellt med datorer som var endast något kraftfullare än dagens mobiler. Därav fanns det inget annat val än att koppla ihop och indexera hundra miljoner maskiner. Det var ur detta kaos och den komplexitet som MapReduce och därmed Hadoop skapades som en nödlösning. -Även om Hadoop har funnits i åratal är tekniken fortfarande ny och utvecklas i snabb takt. Den är komplex och svår att får ett helhetsgrepp om. +Även om Hadoop har funnits i åratal är tekniken fortfarande ny och utvecklas i snabb takt. Den är komplex och svår att får ett helhetsgrepp om. Är den det “allt i allo” och parallellkluster som den anses vara? Det är den frågan vi ska försöka svara på. -##När ska man använda Hadoop? -Enkelt svarat, när man undersöker stora datamängder i terabytesklassen. +## När ska man använda Hadoop? + +Enkelt svarat, när man undersöker stora datamängder i terabytesklassen. + +### Användarfall 1 +#### Kostnadseffektiv datalagring på befintliga maskiner -##Användarfall 1 -###Kostnadseffektiv datalagring på befintliga maskiner Väl fungerande och kostnadseffektiv datalagring kan lätt åstadkommas med hjälp av en HDFS (Hadoop distributed file system). Vi ser hur kunder testar olika effektiva datalagringslösningar på deras befintliga maskinpark. En vanlig kompletterande teknik är Apache Thrift som tillåter användning av ens favorit programmeringsspråk gentemot Hadoop. -##Användarfall 2 -###Sänk kostnaden för din befintliga databaslösning genom disruptiv innovation +### Användarfall 2 + +#### Sänk kostnaden för din befintliga databaslösning genom disruptiv innovation + Genom den omdiskuterade processen disruptiv innovation skapas alternativ till dagens omfattande och kostsamma databas- och data-warehouselösningar. -För mig är just detta användarfall en förklaring till det något överraskande stora utbudet av SQL-tekniker på Hadoop. Överraskande därför att MapReduce-tekniken som Hadoop bygger på är en begränsande teknik: Det finns flera andra möjliga parallella arkitekturer och angreppssätt. Därmed är Hadoop inte ett självklart val för parallella sökningar i stora datamängder. +För mig är just detta användarfall en förklaring till det något överraskande stora utbudet av SQL-tekniker på Hadoop. Överraskande därför att MapReduce-tekniken som Hadoop bygger på är en begränsande teknik: Det finns flera andra möjliga parallella arkitekturer och angreppssätt. Därmed är Hadoop inte ett självklart val för parallella sökningar i stora datamängder. + +Import av befintligt data till en Hadoop databas underlättas av Apache sqoop. Därefter kan man använda sig av t.ex. Apache hive eller programmera i språket Pig Latin för att utföra sökningar i datat. För att komma igång med Apache hive räcker det med kunskaper och erfarenheter av SQL . +Pig Latin å andra sidan är tekniskt mer komplicerat i och med att sökningen av data är beroende av hur datat är strukturerad, med andra ord är språket lite “pillrigt” och det är svårt att felsöka. Med det sagt är Pig Latin värt besväret då man verkligen vill dra nytta av Hadoops totala kapacitet och möjligheter. -Import av befintligt data till en Hadoop databas underlättas av Apache sqoop. Därefter kan man använda sig av t.ex. Apache hive eller programmera i språket Pig Latin för att utföra sökningar i datat. För att komma igång med Apache hive räcker det med kunskaper och erfarenheter av SQL . -Pig Latin å andra sidan är tekniskt mer komplicerat i och med att sökningen av data är beroende av hur datat är strukturerad, med andra ord är språket lite “pillrigt” och det är svårt att felsöka. Med det sagt är Pig Latin värt besväret då man verkligen vill dra nytta av Hadoops totala kapacitet och möjligheter. +### Användarfall 3 +#### Hitta nålen i höstacken -##Användarfall 3 -###Hitta nålen i höstacken -Användarfall 3 förklarar Hadoops nuvarande popularitet och plats som den mest omtalade analysmiljön för företag. +Användarfall 3 förklarar Hadoops nuvarande popularitet och plats som den mest omtalade analysmiljön för företag. Här hittar vi spännande lösningar som maskininlärning och andra så kallade Big-data funktioner. Här krävs djupare kunskap om både Hadoop-miljön och de matematiska principerna man använder sig av. -##Användarfall 4 -###Batchkörningar +### Användarfall 4 +#### Batchkörningar + Hadoops ursprungliga syfte som satsvis bearbetning genom batchkörningar. Det är Hadoop mycket väl lämpat för till exempel omfattande ETL (extrahera, transformera och ladda data) och liknande. Batchkörningar är inte lika hett och spännande som Big-data funktionerna som nämnts ovan i användarfall 3. Men batchkörningar är och förblir arbetshästen i de flesta företag än idag. -Apache thrift och Avro är komponenter som hjälper till och tillåter att man använder sig av sitt favoritprogrammeringsspråk. Det är ett stort plus gällande underhåll och att börja utforska Hadoop-världen. +Apache thrift och Avro är komponenter som hjälper till och tillåter att man använder sig av sitt favoritprogrammeringsspråk. Det är ett stort plus gällande underhåll och att börja utforska Hadoop-världen. + +## Kunskap är nyckeln -##Kunskap är nyckeln Det är möjligt att installera och underhålla ett eget Hadoop-kluster och komponentbibliotek men det kräver orimligt mycket tid. En bättre lösning är att utnyttja standardlösningar från företag som väljer ut och paketerar mjukvaror. Hortonworks och Cloudera erbjuder sina egna snarlika Hadoops standardlösningar och kundsupport. Dessa två och andra analys- och Big-dataföretag (baserade på annat teknik) konkurrerar hårt i denna tillväxtmarknad. -##Vilka är de stora företagen inom Hadoop och hur tjänar de pengar? +## Vilka är de stora företagen inom Hadoop och hur tjänar de pengar? + Hortonworks och Cloudera säljer Hadoop-relaterade IT-tjänster på en prenumerationsbasis. Med andra ord är Hadoops komplexitet en affärsidé även om koden i själva verket är open source och gratis. Vi arbetar med Hortonworks suveräna virtuella maskiner för träning och utveckling som stöd för era Hadoop-lösningar. -Vi tar gärna emot era frågor kring Hadoop eller andra parallellsystem liksom HPC (hög prestanda datorlösningar) då vi även har erfarenhet av andra parallella ramverk. +Vi tar gärna emot era frågor kring Hadoop eller andra parallellsystem liksom HPC _(hög prestanda datorlösningar)_ då vi även har erfarenhet av andra parallella ramverk. -/Mark +/ [Mark](/mark) diff --git a/_posts/2016-11-08-Codebase-Athegas-Hackday.md b/_posts/2016-11-08-Codebase-Athegas-Hackday.md index 4bbce82..fab9b47 100644 --- a/_posts/2016-11-08-Codebase-Athegas-Hackday.md +++ b/_posts/2016-11-08-Codebase-Athegas-Hackday.md @@ -1,6 +1,7 @@ --- title: "Codebase 2016 (Athegas Hackday)" date: 2016-11-08 +description: "Traditionsenligt arrangerade vi vår Codebase på hösten, men två saker var lite annorlunda i år." tags: - codebase 2016 athegas hackday last_updated_by: johan @@ -10,26 +11,25 @@ last_updated_by: johan Traditionsenligt arrangerade vi vår Codebase på hösten, men två saker var lite annorlunda i år. Det första var att vi inte badade i bräckt vatten i Östersjön utan vi besökte Friiberghs Herrgård i Mälaren (Grodhavet). Kontrasten är stor mellan Ålandshav och Ekoln men båda miljöerna lämpar sig för kreativt arbete i annorlunda miljö. Ett tydligt avbräck från vardagen. Den andra skillnaden var att det flesta jobbade med ett gemensamt projekt som påbörjats tidigare i samband med våra gemensamma athegafredagar. Syftet är att renovera och förnya de kreativa lösningar vi använder på vår jullunch. Funktioner från inbjudan, genomförande av lunchen till uppföljning. -Peter jobbade hårt på serversidan med en meddelandebuss. Han satte upp NATS streaming och skrev en proxy för HTTP till NATS. Proxyn utvecklades i Go och har stöd för att leverera meddelande som Server-Sent Events (SSE) till browserbaserade klienter. +Peter jobbade hårt på serversidan med en meddelandebuss. Han satte upp NATS streaming och skrev en proxy för HTTP till NATS. +Proxyn utvecklades i Go och har stöd för att leverera meddelande som Server-Sent Events (SSE) till browserbaserade klienter. -Mikael jobbade med presentation av livestatistik. Han konsumerar -Server-Sent Events (https://www.html5rocks.com/en/tutorials/eventsource/basics/) och med hjälp av dessa renderar han bubbelgrafer med D3.js (https://d3js.org/). +Mikael jobbade med presentation av livestatistik. Han konsumerar +Server-Sent Events (https://www.html5rocks.com/en/tutorials/eventsource/basics/) och med hjälp av dessa renderar han bubbelgrafer med D3.js (https://d3js.org/). I takt med att händelser av en viss typ anländer till webbklienten så växer eller krymper de olika bubblorna. Neopixel Codebase 2016 -Torbjörn och Mats bygger bygger ljuseffekter till en fysisk inloggningsportal som ska användas när gästerna ankommer till lunchen. De använder Led-lampor från Neopixel som de styr med hjälp av en Tessel och tar fram lämpliga effekter som kan triggas av ankomsthändelser som fotografering av deltagaren. Tessel är en hårdavuutvecklingsplatform (IoT) som kan programmeras med Javascript och Node API:er. Händelser konsumeras via Server-Sent Events. +Torbjörn och Mats bygger bygger ljuseffekter till en fysisk inloggningsportal som ska användas när gästerna ankommer till lunchen. De använder Led-lampor från Neopixel som de styr med hjälp av en Tessel och tar fram lämpliga effekter som kan triggas av ankomsthändelser som fotografering av deltagaren. Tessel är en hårdavuutvecklingsplatform (IoT) som kan programmeras med Javascript och Node API:er. Händelser konsumeras via Server-Sent Events. Chistian jobbade mycket med den nya Tesselplattformen, Tessel2 och den delen som sköter incheckningar med RFID-kort. Han fixar även serversidan med både webbgränssnitt samt lagring av incheckningsdata. -Alex bygger en stämningsmätare och använder en Tessel 1 med ambient- & servo-modulen. Genom ambientmodulen får han data om ljudnivån i rummet. Datat som avspeglar ljudnivån styr ett servo. Servot flyttar på en arm över en mätartavla. Tesseln skickar även datat över Peters lösning och vi kan utnyttja informationen i våra presentationer som rullar under lunchen. +Alex bygger en stämningsmätare och använder en Tessel 1 med ambient- & servo-modulen. Genom ambientmodulen får han data om ljudnivån i rummet. Datat som avspeglar ljudnivån styr ett servo. Servot flyttar på en arm över en mätartavla. Tesseln skickar även datat över Peters lösning och vi kan utnyttja informationen i våra presentationer som rullar under lunchen. -Krister kommer se till vi tar en bra bild av varje deltagare. Han labbar med C++, OpenCV, cnats och curl. +Krister kommer se till vi tar en bra bild av varje deltagare. Han labbar med C++, OpenCV, cnats och curl. Johan bygger dynamiska presentationsbilder som ska snurra och visas på skärmar under lunchen med livestatistik. Hans bildsnurra består av HTML, Javascript med jQuery, CSS med animeringar och webb API:et EventSource för att reagera på NATS-flödet av händelser. - - -Mattias bygger en legorobot som spelar på en Pocket operators. Det blir den bästa demon. +Mattias bygger en legorobot som spelar på en Pocket operators. Det blir den bästa demon. Vi hade en väldigt lyckad och trevlig Codebase och ser fram emot nästa. diff --git a/_posts/2017-02-16-Kreativ-programmering.md b/_posts/2017-02-16-Kreativ-programmering.md index 9408a22..6ce823b 100644 --- a/_posts/2017-02-16-Kreativ-programmering.md +++ b/_posts/2017-02-16-Kreativ-programmering.md @@ -63,4 +63,4 @@ Det är kreativiteten som är det viktiga! Kolla gärna in presentationen och några av de skapelser detta resulterade i som finns länkade här bredvid. Och varför inte testa själv? -**_/Johan._** +/ [Johan](/johan) diff --git a/_posts/2017-03-16-lar-dig-uttala-vuejs.md b/_posts/2017-03-16-lar-dig-uttala-vuejs.md index d662f30..2c356fe 100644 --- a/_posts/2017-03-16-lar-dig-uttala-vuejs.md +++ b/_posts/2017-03-16-lar-dig-uttala-vuejs.md @@ -22,10 +22,9 @@ Det speciella med Vue är att det har en väldigt kort komma igång-tröskel och litet i sin kärna. Med endast 18kb hämtat via en ` +## Se på detta exempelvis: + På några få rader har vi en reaktiv sida som hanterar inmatning från och interaktion med användaren. diff --git a/_posts/2017-04-10-internutbildning-om-go.md b/_posts/2017-04-10-internutbildning-om-go.md index 67f1e7e..7437404 100644 --- a/_posts/2017-04-10-internutbildning-om-go.md +++ b/_posts/2017-04-10-internutbildning-om-go.md @@ -1,6 +1,7 @@ --- title: "Internutbildning om Go" date: 2017-04-10 +description: "Ämnet för månadens internutbildning var Go, det språk jag har fokuserat mest på under de senaste åren." tags: - internutbildning - go diff --git a/_posts/2017-05-23-react-native-from-an-ios-perspective.md b/_posts/2017-05-23-react-native-from-an-ios-perspective.md index c47a62c..0e6bf92 100644 --- a/_posts/2017-05-23-react-native-from-an-ios-perspective.md +++ b/_posts/2017-05-23-react-native-from-an-ios-perspective.md @@ -1,6 +1,7 @@ --- title: "React Native och iOS-säkerhet" date: 2017-05-23 +description: "Månadens internutbildning handlade om React Native utifrån ett iOS perspektiv." tags: - internutbildning - react-native @@ -14,7 +15,7 @@ Månadens internutbildning handlade om [React Native](https://facebook.github.io React Native är Facebooks lösning för att skriva mobilappar med JavaScript för både iPhone och Android. React Native släpptes som öppen källkod 2015 och är en utbyggnad av [React](https://facebook.github.io/react/) för webutveckling, som i sin tur presenterades 2013. React Native är som React, men använder inbyggda komponenter istället för webbkomponenter som byggstenar. Så för utveckling gentemot iPhone är en del problem och lösningar desamma som vid utveckling med Apples egna språk och tekniker i Xcode. -Vi bekantade oss med utvecklingsmiljön och följde sedan en av de [tutorials](https://facebook.github.io/react-native/releases/0.23/docs/tutorial.html) som finns på React Natives hemsida. En del ändringar behövdes för att få den att köra med senaste versionen av Xcode, React Native, iOS och Android. +Vi bekantade oss med utvecklingsmiljön och följde sedan en av de [tutorials](https://facebook.github.io/react-native/releases/0.23/docs/tutorial.html) som finns på React Natives hemsida. En del ändringar behövdes för att få den att köra med senaste versionen av Xcode, React Native, iOS och Android. På vägen gick vi igenom hur Apples Xcode ställs in för de förändringar som kommit med de senaste iOS versionerna: *[App Transport Security](https://forums.developer.apple.com/thread/6767)* och *[Code Signing](https://developer.apple.com/support/code-signing/)*. diff --git a/_posts/2020-09-25-Spelutveckling-med-Phaser.md b/_posts/2020-09-25-Spelutveckling-med-Phaser.md index edb3989..239f507 100644 --- a/_posts/2020-09-25-Spelutveckling-med-Phaser.md +++ b/_posts/2020-09-25-Spelutveckling-med-Phaser.md @@ -24,6 +24,7 @@ Denna gång utmanade vi oss själva att snabbt bygga ihop enkla spel som går at ### Phaser + Phaser är ett ramverk som gör det snabbt att komma igång att skapa ett spel. Har man bara koll på grunderna inom webbutveckling, framför allt JavaScript, är det enkelt att börja med. Phaser fungerar i alla moderna webbläsare, både mobil och desktop, men även i de något äldre då den ser till att grafiken körs på WebGL alternativt Canvas och ljudet på Web Audio alternativt HTML Audio beroende på vad som stöds. Det finns ett stort API att gräva i med funktioner för sprites, animationer, partiklar, fysik med mera. Det gör att koden man skriver för att styra ramverket blir ganska deklarativ och därmed inte nödvändigtvis allt för avancerad. @@ -37,6 +38,7 @@ Det finns ett stort API att gräva i med funktioner för sprites, animationer, p ### Utmaningen + Vi delade in oss i lag om två-och-två. Det var som sagt ingen tung JavaScript-programmering det handlade om, men en fördel om någon i laget är bekväm med det ändå. Annars ligger tonvikten på inspiration och kreativitet, att komma på vad man vill skapa är grundförutsättningen. Eftersom en annan förutsättning var att det skulle gå fort, några timmmar på en eftermiddag bara, ville vi undvika att fastna på något. Därför utgick vi från en tutorial om 10 steg som man kunde bygga vidare på. @@ -51,6 +53,7 @@ Ett förslag var att tänka på enkla, klassiska spel som t.ex. Pong, Asteroids ### Tävlingen + Efter att momentet med att skapa spelen var avklarat var tanken att alla skulle få en chans att slå high-score på de andras spel, men någon fullständig turnering hanns tvärr inte med. Däremot delades det ut guldstjärnor för prestationer som att färdigställa ett spelbart spel, lägga till egen grafik och musik samt bonuspoäng till favoriter. @@ -64,4 +67,4 @@ Vi hade kul både med att koda och att spela. Några av spelen det resulterade i Spring med höger/vänster-piltangent och hoppa med uppåtpil. -**_/Johan._** +/ [Johan](/johan) diff --git a/_posts/2020-10-02-worldseed.md b/_posts/2020-10-02-worldseed.md index a58d78c..998f04e 100644 --- a/_posts/2020-10-02-worldseed.md +++ b/_posts/2020-10-02-worldseed.md @@ -28,8 +28,9 @@ Vi är väldigt glada över spelets varma mottagande. Några citat från recensi > “This game is AMAZING if you like any of its tags just get it.” -Athega har nu ingått ett aktivt samarbete och delägarskap i Ape Egg. Samarbetet innebär att spelet kommer vidareutvecklas med nytt innehåll och förbättrad -spelupplevelse. Målet är också att spelet ska få fler användare. +Athega har nu ingått ett aktivt samarbete och delägarskap i Ape Egg. +Samarbetet innebär att spelet kommer vidareutvecklas med nytt innehåll och förbättrad +spelupplevelse. Målet är också att spelet ska få fler användare. Det är strategiskt viktigt för Athega att utöka sitt utbud med ett tungt kunnande inom spelutveckling. Detta kompletterar Athegas nuvarande erbjudande och kompetens inom digital diff --git a/_posts/2020-10-23-vi-gar-pa-bio.md b/_posts/2020-10-23-vi-gar-pa-bio.md index 21944cb..95ee88c 100644 --- a/_posts/2020-10-23-vi-gar-pa-bio.md +++ b/_posts/2020-10-23-vi-gar-pa-bio.md @@ -5,23 +5,26 @@ description: "Vi besöker biografen Victoria på Södermalm i en egen biosalong" tags: - nyhetsbrev - blogg - + last_updated_by: Torbjörn image_url: /assets/blog/2020-athega-Victoria.jpg --- Bio på Victoria -**Vi går på bio** +## Vi går på bio -Den härliga biografen Victoria på Södermalm har ett tillfälligt erbjudande att hyra en biosalong för ett mycket överkomligt pris. Jag tog cykeln dit från Kungsholmen med sadelväskan tyngd av kyld dryck och en avklarad beställning av hamburgare med leverans direkt till bion. +Den härliga biografen Victoria på Södermalm har ett tillfälligt erbjudande att hyra en biosalong för ett mycket överkomligt pris. +Jag tog cykeln dit från Kungsholmen med sadelväskan tyngd av kyld dryck och en avklarad beställning av hamburgare med leverans direkt till bion. Där mötte jag upp kollegor, som hade med sig en cocktail av teknik, som man kan prova i en biografprojektor. Målet var att spela lite TV-spel och sedan titta på en film. -Det började med en härlig MacGyver-inspirerad session där vi tillsammans med den mycket hjälpsamma biografoperatören, testade alla möjligheter med en biografprojektor. -*Går det t.ex. att streama en film i HD med telefonen? Ja, helt sanlös upplevelse!* +Det började med en härlig MacGyver-inspirerad session där vi tillsammans med den mycket hjälpsamma biografoperatören, testade alla möjligheter med en biografprojektor. + +> Går det t.ex. att streama en film i HD med telefonen? Ja, helt sanlös upplevelse! + Vi hann också med att prova Star Wars Battelfront i onödigt stort format. Det var en lyckad kväll i goda vänners sällskap med bra distans. -/Torbjörn +/ [Torbjörn](/tobbe) diff --git a/_posts/2021-05-20-En-statsminister-med-500-streck.md b/_posts/2021-05-20-En-statsminister-med-500-streck.md index 97ed872..4137e0f 100644 --- a/_posts/2021-05-20-En-statsminister-med-500-streck.md +++ b/_posts/2021-05-20-En-statsminister-med-500-streck.md @@ -6,7 +6,7 @@ tags: - ai - nyhetsbrev - blogg - + last_updated_by: Torbjörn image_url: /assets/blog/2019-stefan_500_streck.jpg --- @@ -17,7 +17,7 @@ image_url: /assets/blog/2019-stefan_500_streck.jpg Stefan 500 streck -Innan påsken höll jag en presentation om Reinforcement Learning (RL) på Luleå Science park. Kanske inte helt oväntat så föll jag ner i många djupa hål på Wikipedia under arbetet med att sammanställa materialet och kanske helt väntat så rymdes inte ens bråkdel i presentationen. +Innan påsken höll jag en presentation om Reinforcement Learning (RL) på Luleå Science park. Kanske inte helt oväntat så föll jag ner i många djupa hål på Wikipedia under arbetet med att sammanställa materialet och kanske helt väntat så rymdes inte ens bråkdel i presentationen. Jag kommer därför i en serie bloggartiklar presentera några av de mest relevanta delarna av presentationen. I den här första delen tänkte jag börja med att beskriva vad som gör RL unik bland alla de otroliga framsteg som gjorts inom AI-teknik de senaste 10 åren. Samtidigt som jag ogenerat tar mig generösa friheter att generalisera och hoppa över detaljer för att åstadkomma ett lättläst bloggformat. @@ -37,10 +37,10 @@ Om vi önskar översätta partiledare till partisymbol kan det vara lämpligt at V-ledare -Det här är helt enkelt en mappning eller översättning mellan två domäner. En teknik som fått utstå negativ press under namnet ‘deep fakes’. Men samtidigt en arkitektur som är väldigt användbar för att översätta en typ av data till en annan. Det behöver inte alltid vara bilder – kan t.ex. vara text in, bild ut eller bild in, text ut. +Det här är helt enkelt en mappning eller översättning mellan två domäner. En teknik som fått utstå negativ press under namnet ‘deep fakes’. Men samtidigt en arkitektur som är väldigt användbar för att översätta en typ av data till en annan. Det behöver inte alltid vara bilder – kan t.ex. vara text in, bild ut eller bild in, text ut. Som med alla system behöver man dock planera för vad som händer som systemet oväntat ser ny data. -Mix +Mix Det är väldigt frestande att nu gå vidare och titta på pix2pix, en översättningsteknik som krävde att man på förhand skapade datapar, till CycleGAN som i sin tur automatiskt gör detta, till contrastive-unpaired-translation (CUT), som gör samma sak fast snabbare och bättre. Men det kräver nog bättre sin rätt och plats i eget blogginlägg i framtiden. @@ -48,25 +48,25 @@ Så vad är då den stora skillnaden? – Vad är det som gör Reinforcement Lea Reinforcement Learning är en teknik som används när flera beslut ska tas i följd och vi är intresserade av att ta de bästa besluten för att långsiktigt nå ett slags optimalt utfall. -Tänk att vi vill måla en statsminister med så få streck som möjligt. Varje streck vi ritar måste bidra så mycket som möjligt till slutprodukten samtidigt som det också hjälper efterföljande streck att bidra till målet. Problemet är inte längre – ‘vilket streck är bäst att rita just nu’ utan snarare, ‘vilket streck ska ritas nu för att få ett så bra porträtt som möjligt i slutändan’. Här är ett exempel på vår nuvarande statsminister som skapas av 500 streck. +Tänk att vi vill måla en statsminister med så få streck som möjligt. Varje streck vi ritar måste bidra så mycket som möjligt till slutprodukten samtidigt som det också hjälper efterföljande streck att bidra till målet. Problemet är inte längre – ‘vilket streck är bäst att rita just nu’ utan snarare, ‘vilket streck ska ritas nu för att få ett så bra porträtt som möjligt i slutändan’. Här är ett exempel på vår nuvarande statsminister som skapas av 500 streck.
        -Stefan +Stefan
        -Algoritmen (bilden till höger) ritar ett streck i taget. Den kan välja tjocklek på pensel, färg och mellan vilka två punkter strecket ritas. För att efterlikna målning av en riktig tavla så tillåts även att färgen som används är delvis genomskinlig. +Algoritmen (bilden till höger) ritar ett streck i taget. Den kan välja tjocklek på pensel, färg och mellan vilka två punkter strecket ritas. För att efterlikna målning av en riktig tavla så tillåts även att färgen som används är delvis genomskinlig. Lite som schack alltså, det gäller inte bara att ta motspelarens pjäser när möjligheten finns, utan att spela långsiktigt och strategiskt om målet är att vinna. Reinforcement Learning, i sin moderna tappning har funnits många år. Redan 2013 publicerade DeepMind att de lyckats spela ett atari-spel med Deep Q Networks, en typ av Reinforcement Learning. Sedan dess har tekniken haft många upp- och nedgångar, en höjdpunkt var när världsmästaren i GO slogs av en dator för första gången 2016 men det har svängt mellan skyhöga förväntningar och förtvivlan flera gånger sedan dess. Idag är RL en relativt mogen teknik vilket upplevs, inte bara av stabilare algoritmer som är lättare att tämja, utan också det faktum att många traditionella system redan har börjat bytas ut. Vem vill inte delegera vissa beslut till en strateg som överträffar en världsmästare? -De flesta processer i verkliga livet är just beslutskedjor och orsakssamband, vilka är mycket svåra att optimera med traditionella verktyg. Beslutkedjor – ja det låter både lite stelt och överdrivet formellt. Vad det handlar om är förlopp där det finns fördröjningar, beroenden och flera beslut ska fattas i en följd. Fortfarande formellt men bästa analogen jag kommer på är att det kallas verkliga livet och för att inte klanta till det krävs ofta erfarenhet. RL är en teknik för att ta dessa beslut för att uppnå ett visst mål och ett bra utfall. +De flesta processer i verkliga livet är just beslutskedjor och orsakssamband, vilka är mycket svåra att optimera med traditionella verktyg. Beslutkedjor – ja det låter både lite stelt och överdrivet formellt. Vad det handlar om är förlopp där det finns fördröjningar, beroenden och flera beslut ska fattas i en följd. Fortfarande formellt men bästa analogen jag kommer på är att det kallas verkliga livet och för att inte klanta till det krävs ofta erfarenhet. RL är en teknik för att ta dessa beslut för att uppnå ett visst mål och ett bra utfall. I den här serien av artiklar tänker jag visa hur Reinforcement Learning kan appliceras som optimering på kombinatoriska problem, reglersystem och för att ta fram optimerad affärslogik. Tack så länge! -Krister Söderström +/ [Krister Söderström](/krister) -Athega-streck-logo +Athega-streck-logo diff --git a/_posts/2022-04-03-varan-teatern-aterupptar-samarbetet.md b/_posts/2022-04-03-varan-teatern-aterupptar-samarbetet.md deleted file mode 100644 index fa7843d..0000000 --- a/_posts/2022-04-03-varan-teatern-aterupptar-samarbetet.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: "Varanteatern återupptar samarbetet" -date: 2022-04-03 -description: "Inför tredje säsongen av Varan-TV återupptar vi diskussionerna om Internet med Varanteatern" -tags: - - nyhetsbrev -last_updated_by: Christian -image_url: /assets/blog/2022-varantv.jpg -published: false ---- - -**Varanteatern återupptar samarbetet** - -Varanteatern och Athegamannen - -På fredag den 8 april har den tredje säsongen av Varan-TV premiär. Det är drygt -20 år efter att den andra säsongen sändes. Vi försökte redan då göra klart att -Internet är en grej, något som är här för att stanna, men de var envisa och såg -inte alls det vi såg. - -Athega kan nu avslöja att de har sett [ljuset](https://1997.athega.se/). -Fantastiskt! Se detaljer i videon nedan. - - -
        -
        - -Välkomna in i framtiden, Varanteatern och tack för att ni finns! -
        -
        -/Athegamannen diff --git a/_posts/2023-02-24-Athegafredag-Stablediffusion.md b/_posts/2023-03-17-Athegafredag-Stablediffusion.md similarity index 95% rename from _posts/2023-02-24-Athegafredag-Stablediffusion.md rename to _posts/2023-03-17-Athegafredag-Stablediffusion.md index 3080365..9e2a028 100644 --- a/_posts/2023-02-24-Athegafredag-Stablediffusion.md +++ b/_posts/2023-03-17-Athegafredag-Stablediffusion.md @@ -1,6 +1,6 @@ --- title: "Stable diffusion" -date: 2023-09-29 +date: 2023-03-17 description: "Athega-fredag med ämnet Stable diffusion" tags: - blogg diff --git a/_posts/2023-06-01-AiVocalConversion.md b/_posts/2023-06-01-AiVocalConversion.md index 7a9b467..79b0bb6 100644 --- a/_posts/2023-06-01-AiVocalConversion.md +++ b/_posts/2023-06-01-AiVocalConversion.md @@ -6,7 +6,7 @@ tags: - ai - nyhetsbrev - blogg - + last_updated_by: Mats image_url: /assets/blog/Entropy-GrimesAI-Zymbsmall.png --- @@ -21,14 +21,15 @@ och ny teknik! Vi satte igång rätt omgående. Det började med att vi fick tillgång till flera Grimes DAW-projekt där hennes röst fanns i ett antal tagningar. Tyvärr var flera av låtarna Stem-bouncade med effekter så en stor del av träningsdatat gick inte att använda. -Vi tränade en av modellerna i ett färdigt ramverk som skulle hitta hennes features för att senare kunna återskapa klang och röst. +Vi tränade en av modellerna i ett färdigt ramverk som skulle hitta hennes features för att senare kunna återskapa klang och röst. Eftersom träningsdatan inte var inte omfattande blev resultatet inte bra direkt med efter några försök och justeringar av träningsdatat lyckades konvertera våra inspelade sång-spår till hennes röst med bra kvalitet. Tekniken går ut på att modellen tränas på så sätt att den efteråt kan återskapa features baserat på ingående pitch och inkommande features. -Går att jämföra det med ett filter som "filtrerar" vilken röst som helst till att låta som den röst som används för att träna modellen. Med skillnaden att +Går att jämföra det med ett filter som "filtrerar" vilken röst som helst till att låta som den röst som används för att träna modellen. Med skillnaden att rösten som kommer ut, helt skapas av modellen. Inget av inkommade ljud skickas vidare. Det var ett spännande projekt och låten vi skapade (projektlåten "Entropy") finns på alla streaming-tjänster. Grimes gick senare ut och tränade en egen modell som hon ville att alla skulle använda. Vi använder ändå den lösning vi själva satte upp. Här är ett litet smakprov på hur vår sång lät och hur modellen omvandlade ljudet till en kvinnlig röst. (Ligger reverb på det konverterade spåret). Det finns stort utrymme för förbättringar. Speciellt under hur träningsdata förbereds, kvaliteten på träningsdatat är nyckeln för ett bra resultat. Vi såg även att vissa artifakter som skapas kan filtreras bort med konventionella metoder. Ska bli spännande att utforska hifi-ljud-generering djupare. Mycket forskning verkar pågå inom området. +