På torsdag drar årets upplaga av Google Code Jam igång. Det är en mycket trevligt organiserad programmeringstävling där man kan använda vilket språk som helst för att lösa uppgifterna. De flesta andra tävlingar brukar vara begränsade till några få programmeringsspråk pga praktiska skäl, men här ska man istället för att skicka in källkod skicka in ett beräknat svar på vissa testdata. Liksom i princip alla andra programmeringstävlingar jag håller på med så är uppgifterna av algoritmisk natur.
Den första omgången av GCJ är lite speciell, då man har 24h på sig att lösa de 3 uppgifterna man ställs inför. Det räcker dock med att klara en uppgift för att gå vidare, oavsett hur många andra som också gör det. Därefter blir det lite tuffare då man har ca 2h på sig att lösa uppgifterna. Jag orkade dock inte gå in på de exakta avancemangsdetaljerna här, då det förklaras bra på regelsidan.
Google Code Jam har varit en tävling där det alltid gått bra för mig. Första gången den arrangerades, år 2003, vann jag t o m tävlingen. Det finns tyvärr inte så mycket spår på nätet kvar av den tävlingen, men det nämndes åtminstone på Slashdot. Åren därefter tog jag mig till final (som oftast hölls på Googles högkvarter i Mountain View, Californien) men placerade mig oftast dåligt. Förra årets tävling var dock ett fall framåt då jag slutade på en hedrande 14:e plats. I år är det dock riktigt tuffa bud för att ta sig till final, då det endast finns 25 stycken finalplatser. Prispengarna är heller inget att hurra åt. Det verkar som om den ekonomiska krisen även drabbat Google.
Ska förresten också nämna att IOI-arrangörerna precis publicerat de "officiella" lagfotona på tävlingens hemsida.
lördagen den 29:e augusti 2009
lördagen den 15:e augusti 2009
Plovdiv, dag 7
Avslutningsdagen innebär normalt sett bara en lång väntan till prisutdelningen på kvällen. Under förmiddagen hade dock ledarna ett avslutande möte där det bestämdes att under nästa IOI (i Kanada) som kommer resultaten inte hållas hemliga efter tävlingen. Det är en fråga som diskuterats under några år, men som framförallt Fredrik pushat extra hårt för. Överraskande var dock det enhälliga stödet från alla andra ledare, där många normalt sätt är rätt konservativa. Hur det exakta utförande kommer att gå till är inte bestämt, men en grundtanke är att det ska vara mer intressant att följa tävlingen live som åskådare. Allteftersom deltagarna skickar in uppgifter kommer övriga världen (men inte de som tävlar) kunna se utfallet av inskickningarna. Det kan bli mycket intressant!
Som jag nämnt tidigare hölls prisutdelningen i en gammal romersk amfiteater, vilket bidrog till en mäktig upplevelse. Personligen tyckte jag det var en av de bästa avslutningsceremonier jag varit på i IOI-sammanhang (detta är mitt 6:e IOI som ledare). Bland annat så framfördes Bulgariens bidrag, Water, till Eurovision Song Contest 2007 av originalartisterna, en av mina personliga favoriter det året. Allt avslutades med ett praktfullt fyrverkeri.
Själva prisutdelningen var inte så spännande för svenskt vidkommande, då vi i princip visst att Simon skulle få brons och att de andra skulle hamna utanför medaljplatserna. Så blev också fallet. Det är bara att konstantera att det finns väldigt många länder (mestadels från Östeuropea och Asien) som är väldigt bra på programmering i allmänhet och algoritmer i synnerhet. Jag och Fredrik har haft många diskussioner om vad vi ska göra åt saken, hur vi ska kunna få våra deltagare att vara mer förberedda och mer motiverade att träna. Jag kommer att återkomma i ärendet vid ett senare tillfälle.

Från vänster till höger: Fredrik, Rickard N, Rikard L, (Sven), Simon, Arash, Jimmy
Någar ord också om vinnaren, Genadii Karatzkevitch från Vitryssland (tourist på TopCoder). Detta var hans fjärde IOI och tredje guld - och killen är bara 14 år!! Det innebär att han kan vara med i ytterligare fyra år...
Som jag nämnt tidigare hölls prisutdelningen i en gammal romersk amfiteater, vilket bidrog till en mäktig upplevelse. Personligen tyckte jag det var en av de bästa avslutningsceremonier jag varit på i IOI-sammanhang (detta är mitt 6:e IOI som ledare). Bland annat så framfördes Bulgariens bidrag, Water, till Eurovision Song Contest 2007 av originalartisterna, en av mina personliga favoriter det året. Allt avslutades med ett praktfullt fyrverkeri.
Själva prisutdelningen var inte så spännande för svenskt vidkommande, då vi i princip visst att Simon skulle få brons och att de andra skulle hamna utanför medaljplatserna. Så blev också fallet. Det är bara att konstantera att det finns väldigt många länder (mestadels från Östeuropea och Asien) som är väldigt bra på programmering i allmänhet och algoritmer i synnerhet. Jag och Fredrik har haft många diskussioner om vad vi ska göra åt saken, hur vi ska kunna få våra deltagare att vara mer förberedda och mer motiverade att träna. Jag kommer att återkomma i ärendet vid ett senare tillfälle.
Från vänster till höger: Fredrik, Rickard N, Rikard L, (Sven), Simon, Arash, Jimmy
Någar ord också om vinnaren, Genadii Karatzkevitch från Vitryssland (tourist på TopCoder). Detta var hans fjärde IOI och tredje guld - och killen är bara 14 år!! Det innebär att han kan vara med i ytterligare fyra år...
Plovdiv, dag 6
Som jag skrev i mitt förra inlägg var denna dag tänkt som en heldag på stranden, men eftersom vi (och många andra lag) tackade nej till det blev det istället en helt ledig dag. Jag och Fredrik passade på att göra nyttiga saker (dvs jobba) nästan hela dagen och såg aldrig skymten av deltagarna. Enligt rykten har de ägnat dagen åt att dels bli guidad runt i staden av vår guide, Elia, dels åt att sitta och hacka kod (pokerbotar) på rummet.
Då det inte finns så mycket mer att berätta om dagen tänkte jag nämna lite om maten som serveras här, och generellt på IOI. De första dagarna brukar den oftast vara bra (så även i år), men då det i princip är samma mat som serveras en hel vecka blir man rätt less på den. Det som var mest spännande inför vaje måltid (för oss ledare åtminstone) var om lunchen/middagen skulle serveras på nedervåning, övervåningen eller utomhus. Det varierade mer ofta än innehållet i buffén. Under dagens middag kom vi oss för med att fantisera om vilken god mat vi skulle äta när vi kom tillbaka till Sverige - precis som deltagarna i Robinson brukade göra!
Då det inte finns så mycket mer att berätta om dagen tänkte jag nämna lite om maten som serveras här, och generellt på IOI. De första dagarna brukar den oftast vara bra (så även i år), men då det i princip är samma mat som serveras en hel vecka blir man rätt less på den. Det som var mest spännande inför vaje måltid (för oss ledare åtminstone) var om lunchen/middagen skulle serveras på nedervåning, övervåningen eller utomhus. Det varierade mer ofta än innehållet i buffén. Under dagens middag kom vi oss för med att fantisera om vilken god mat vi skulle äta när vi kom tillbaka till Sverige - precis som deltagarna i Robinson brukade göra!
torsdagen den 13:e augusti 2009
Plovdiv, dag 5
Andra tävlingsdagen är över. Uppgifterna var denna gång lite svårare än dag 1 generellt sätt, vilket märktes på resultaten. Bortsett från den "triviala uppgiften" (som alla i laget klarade utan problem) så var uppgifterna lite svårare. Den nästa lättaste, Mecho, krävde en lite mer komplicerad variant av BFS sökning där det gällde att hålla tungan rätt i mun. Både Simon och Rickard N hade rätt lösningsidé, men tappade en del poäng pga implementeringsmissar. Simon tog dock en hel del poäng (60) på dagens kanske svåraste uppgift Salesman vilket var starkt gjort. På den sista uppgiften, Regions, blev det dock inte många poäng för den svenska truppen.
Slutresultatet dag två blev således att Simon visade att yngst är bäst med 226 poäng (totalt 425p). Därutöver fick Rickard N 141p (345), Arash 119p (336) och Rikard L 104p (306). Även fast vi inte vet var medaljgränserna kommer hamna med säkerhet verkar det mesta tyda på att det endast blir en svensk medalj i år (brons till Simon). Dagens uppgifter för den intresserade.
Medan vi väntade på resultaten togs det officiella lagfoton.

Arash, Rickard N, Rikard L, Simon
På kvällen ordnades det diskoparty för de tävlande medan ledarna bjöds in på en VIP middag hos borgmästaren. Bästa maten hittills serverades och vi bjöds på högklassig kultur underhållning.
Imorgon är det en heldagsutflykt till stranden för de som vill. Vi ville inte. Anledningen? 6 timmars bussresa, enkel väg... avfärd 4.30 på morgonen. Rikard och Rickard funderade lite på att fara, men då vi inte fick (!) splitta upp laget och då nej-rösterna var starkare än ja-rösterna blev det ingen strand.
Slutresultatet dag två blev således att Simon visade att yngst är bäst med 226 poäng (totalt 425p). Därutöver fick Rickard N 141p (345), Arash 119p (336) och Rikard L 104p (306). Även fast vi inte vet var medaljgränserna kommer hamna med säkerhet verkar det mesta tyda på att det endast blir en svensk medalj i år (brons till Simon). Dagens uppgifter för den intresserade.
Medan vi väntade på resultaten togs det officiella lagfoton.
Arash, Rickard N, Rikard L, Simon
På kvällen ordnades det diskoparty för de tävlande medan ledarna bjöds in på en VIP middag hos borgmästaren. Bästa maten hittills serverades och vi bjöds på högklassig kultur underhållning.
Imorgon är det en heldagsutflykt till stranden för de som vill. Vi ville inte. Anledningen? 6 timmars bussresa, enkel väg... avfärd 4.30 på morgonen. Rikard och Rickard funderade lite på att fara, men då vi inte fick (!) splitta upp laget och då nej-rösterna var starkare än ja-rösterna blev det ingen strand.
onsdagen den 12:e augusti 2009
Plovdiv, dag 4
Dagens mellan de båda tävlingsdagarna brukar alltid innehålla någon form av utflykt eller aktivitet, så även i år. IOI deltagarna och ledarna delades in i två grupper, där varje grupp hade en aktivitet på förmiddagen och en annan på eftermiddagen.
För Sveriges del var det go-cart som gällde under förmiddagen. Vi åkte buss en kort sträcka till en rätt schysst go-cart bana i Plovdiv. Det fanns dock bara 10 bilar och eftersom gruppen var ungefär 200 personer stor fick man köa ett bra tag om man ville åka några minuter. Rikard, Rickard och Fredrik ville raca och ställde sig i kö, vilket lönade sig efter en knapp timme. Under tiden satt jag, Simon och Arash på läktaren i skuggan och diskuterade programmering. På banan visade Fredrik vem som var äldst och gasade på ordentligt, även om de andra skyllde på att deras bilar gick långsammare. Själv skyller jag mitt avhopp på att jag rätt nyligen åkt go-cart och insett att det är något jag dels inte är bra på och dels inte tycker överdrivet mycket om.


Klart för start! Från vänster, Rikard L, Fredrik och Rickard N.

Fredrik gasar förbi Rikard Lundmark
Efter lunchen var det Aqua Land som gällde. Bara de tävlande for dit då både jag och Fredrik jag jobb att göra. Enligt rapporter från deltagarna var det ett stort badställe med massa vattenrutschbanor annat. Norlander och Arash badade friskt medan Lundmark och Simon höll sig mer på den torra sidan.
På kvällen låstes deltagarna återigen in på sina hotellrum medan ledarna satte igång med att översätta morgondagens tävlingsuppgifter. Trots en tidigare start på översättning blev formuleringen av uppgifterna från arrangörernas sida inte spikade förrän efter två på natten, så det blev ännu en lång och jobbig kväll.
För Sveriges del var det go-cart som gällde under förmiddagen. Vi åkte buss en kort sträcka till en rätt schysst go-cart bana i Plovdiv. Det fanns dock bara 10 bilar och eftersom gruppen var ungefär 200 personer stor fick man köa ett bra tag om man ville åka några minuter. Rikard, Rickard och Fredrik ville raca och ställde sig i kö, vilket lönade sig efter en knapp timme. Under tiden satt jag, Simon och Arash på läktaren i skuggan och diskuterade programmering. På banan visade Fredrik vem som var äldst och gasade på ordentligt, även om de andra skyllde på att deras bilar gick långsammare. Själv skyller jag mitt avhopp på att jag rätt nyligen åkt go-cart och insett att det är något jag dels inte är bra på och dels inte tycker överdrivet mycket om.
Klart för start! Från vänster, Rikard L, Fredrik och Rickard N.
Fredrik gasar förbi Rikard Lundmark
Efter lunchen var det Aqua Land som gällde. Bara de tävlande for dit då både jag och Fredrik jag jobb att göra. Enligt rapporter från deltagarna var det ett stort badställe med massa vattenrutschbanor annat. Norlander och Arash badade friskt medan Lundmark och Simon höll sig mer på den torra sidan.
På kvällen låstes deltagarna återigen in på sina hotellrum medan ledarna satte igång med att översätta morgondagens tävlingsuppgifter. Trots en tidigare start på översättning blev formuleringen av uppgifterna från arrangörernas sida inte spikade förrän efter två på natten, så det blev ännu en lång och jobbig kväll.
måndagen den 10:e augusti 2009
Plovdiv, dag 3 (del 2)
På kvällens GA möte bland ledarna visades snabbt ett histogram över poängfördelningen på de olika uppgifterna. Eftersom jag misstänkte att de skulle göra så hade jag kameran framme och fotograferade snabbt de olika histogrammen. Efter att ha zoomat in och studerat noga fick jag fram följande siffror (inte exakt):
Uppg/poäng 0-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90-99 100
-----------------------------------------------------------------------------------------
POI 20 1 0 1 0 3 1 6 1 3 260
Raisins 75 7 7 1 0 0 0 3 1 5 201
Hiring 165 22 8 10 16 24 16 4 10 12 32
Archery 145 75 77 8 6 4 1 1 0 0 0
Flera lag påpekade att skillnaden i svårighetsgrad mellan det näst svåraste problemet (Hiring) och det svåraste (Archery) var rätt stort, och det bekräftades av arrangörerna att detta var planerat. Den andra dagens uppgifter kommer vara jämnare i svårighetsgrad och ligga någonstans däremellan.
Det är i mitt tycke rätt förnuftigt att placera tävlingens svåraste uppgift tillsammans med lite lättare uppgifter, så att det finns en vettig chans att klara den. Nu verkar förvisso så inte blivit fallet. Lösningen till Archery fanns beskriven på 4 A4 sidor, så det var kanske inte helt förvånande att ingen verkar ha varit nära full poäng på den.
Glömde förresten att lägga upp länk till uppgifterna.
Uppg/poäng 0-9 10-19 20-29 30-39 40-49 50-59 60-69 70-79 80-89 90-99 100
-----------------------------------------------------------------------------------------
POI 20 1 0 1 0 3 1 6 1 3 260
Raisins 75 7 7 1 0 0 0 3 1 5 201
Hiring 165 22 8 10 16 24 16 4 10 12 32
Archery 145 75 77 8 6 4 1 1 0 0 0
Flera lag påpekade att skillnaden i svårighetsgrad mellan det näst svåraste problemet (Hiring) och det svåraste (Archery) var rätt stort, och det bekräftades av arrangörerna att detta var planerat. Den andra dagens uppgifter kommer vara jämnare i svårighetsgrad och ligga någonstans däremellan.
Det är i mitt tycke rätt förnuftigt att placera tävlingens svåraste uppgift tillsammans med lite lättare uppgifter, så att det finns en vettig chans att klara den. Nu verkar förvisso så inte blivit fallet. Lösningen till Archery fanns beskriven på 4 A4 sidor, så det var kanske inte helt förvånande att ingen verkar ha varit nära full poäng på den.
Glömde förresten att lägga upp länk till uppgifterna.
Plovdiv, dag 3
Första tävlingsdagen! Strax innan klockan 9 satt ca 300 deltagare från närmare 80 länder framför sina tävlingsdatorer och väntade på att få börja tackla dagens uppgifter. Själv låg jag då och sov, då ledarna suttit uppe till halv tre på natten och översatt uppgifterna.
Nytt för i år är att antalet uppgifter per tävlingsdag är fyra stycken, mot tidigare tre. Ett problem tidigare år är att även den lättaste uppgiften i tävlingen varit alldeles för svår för många av deltagarna. Extrauppgiften (som dessutom är tydligt markerad) är tänkt att lösa det problemet och ligga på en nivå som de flesta klarar av. Fokus där ligger på implementationen och inte val av en effektiv algoritm - en uppgiftstyp som jag brukar benämna "gör-det-som-står".
Namnet på denna uppgift idag var POI. Som väntat klarade alla i det svenska laget den utan problem. Svårighetsnivån på POI kan jämföras med någon av de lättaste uppgifterna i den svenska PO-finalen.
Därefter följde Raisins som var ett ganska klassiskt DP problem. Svårighetsgraden motsvarade väl ungefär en av de svårare uppgifterna i PO-finalen. Glädjande nog löste alla i laget den uppgiften, även om Simon tappade 5p pga en aning för ineffektiv implementation.
De övriga två uppgifterna, Hiring och Archery blev det dock inte många poäng på, så dagens resultat för svenskarna blev:
int main() {
int n;
cin >> n;
cout << n;
}
Att man överhuvudtaget får poäng på en sådan lösning tyder på en liten miss från de som konstruerat testdatat...
Alla i laget verkade glada och nöjda med resultaten. Ingen är borta, och alla är med i matchen om medaljerna. Eftersom resultaten inte publiceras offentligt är det svårt att veta hur de ligger till totalt sett, men poänger mellan 200-250 verkar rätt vanliga (på en rysk programmeringstävlingssite kan man dock se en del nationers poäng - listan brukar kunna vara lite skev dock då de flesta bara rapporterar in de som lyckats någorlunda bra). Andradagen kommer att vara helt avgörande för medaljfördelningen. Det lär krävas minst 200p där också om det ska bli medalj för någon i laget.
Nytt för i år är att antalet uppgifter per tävlingsdag är fyra stycken, mot tidigare tre. Ett problem tidigare år är att även den lättaste uppgiften i tävlingen varit alldeles för svår för många av deltagarna. Extrauppgiften (som dessutom är tydligt markerad) är tänkt att lösa det problemet och ligga på en nivå som de flesta klarar av. Fokus där ligger på implementationen och inte val av en effektiv algoritm - en uppgiftstyp som jag brukar benämna "gör-det-som-står".
Namnet på denna uppgift idag var POI. Som väntat klarade alla i det svenska laget den utan problem. Svårighetsnivån på POI kan jämföras med någon av de lättaste uppgifterna i den svenska PO-finalen.
Därefter följde Raisins som var ett ganska klassiskt DP problem. Svårighetsgraden motsvarade väl ungefär en av de svårare uppgifterna i PO-finalen. Glädjande nog löste alla i laget den uppgiften, även om Simon tappade 5p pga en aning för ineffektiv implementation.
De övriga två uppgifterna, Hiring och Archery blev det dock inte många poäng på, så dagens resultat för svenskarna blev:
- Simon 199
- Rikard L 202
- Rickard N 204
- Arash 215
int main() {
int n;
cin >> n;
cout << n;
}
Att man överhuvudtaget får poäng på en sådan lösning tyder på en liten miss från de som konstruerat testdatat...
Alla i laget verkade glada och nöjda med resultaten. Ingen är borta, och alla är med i matchen om medaljerna. Eftersom resultaten inte publiceras offentligt är det svårt att veta hur de ligger till totalt sett, men poänger mellan 200-250 verkar rätt vanliga (på en rysk programmeringstävlingssite kan man dock se en del nationers poäng - listan brukar kunna vara lite skev dock då de flesta bara rapporterar in de som lyckats någorlunda bra). Andradagen kommer att vara helt avgörande för medaljfördelningen. Det lär krävas minst 200p där också om det ska bli medalj för någon i laget.
söndagen den 9:e augusti 2009
Plovdiv, dag 2
Dagen började med en "Practice session", där deltagarna får bekanta sig med datorerna och tävlingssystemet. Ett antal träningsuppgifter fanns att tillgå så man hade något att fundera på. Det hela löpte på tämligen smärtfritt och alla i laget var nöjda.

Efter lunchen (som intas på respektive hotell) var det dags för årets första utflykt, en rundvandring i gamla stan. Det innebar trånga och vindlade gator. En antik amfiteater undersöktes lite närmare, och tydligen ska prisutdelningen hållas här. Det kan helt klart bli häftig! Därefter traskade vi vidare och titta på några gamla kända hus som nu agerade som galleri. En massa konst helt enkelt. Inte alltför upphetsande då ingen av oss är särskilt konstintresserad.

Efter ett kortare uppehåll i schemat (och möjlighet att byta kläder - det är varmt ute) var det dags för öppningsceremonin. Som alltid brukar dessa tillställningar innehålla många tråkiga tal. Så även i år. Jag tappade räkningen på hur många gånger det upprepades att Bulgarien arrangerade även det första IOI. En sak på pluskontot dock: självaste presidenten i landet invigningstalade och förklarade tävlingen öppnad! Jag har svårt att se Fredrik Reinfeldt göra något liknande om tävlingen hållits i Sverige. Det visar på att denna typ av tävlingar har lite högre status i östvärlden än i väst. Resultatlistorna präglas därefter.

Öppningsceremonin avslutades med "underhållning", dvs sång och.. ja, någonting. Ett bedrövligt pojkband följdes upp av en fiolspelande tjejgrupp och sist ett stor sällskap som spelade/"sjöng" folkmusik. Det sistnämnde kan nog vara det sämsta jag hört på väldigt länge.
Just nu väntar vi på middagen. Därefter låses studenterna in på sina hotellrum medan vi ledare börjar processen att översätta morgondagens uppgifter.
Några ord om logistiken också. Gårdagens förhoppningar om att den skulle kunna fungera bra i år verkar ha grusats. Informationsflödet om schemaändringar och liknande existerar inte, så det blir via ryktesspridning vi ledare vet var och när vi ska ta vägen. Deltagarna har det lite lättare då har en guide som leder dem rätt. Det hela har ändå, i mitt tycke, fungerat bättre än förra året även om det inte säger så mycket.
Efter lunchen (som intas på respektive hotell) var det dags för årets första utflykt, en rundvandring i gamla stan. Det innebar trånga och vindlade gator. En antik amfiteater undersöktes lite närmare, och tydligen ska prisutdelningen hållas här. Det kan helt klart bli häftig! Därefter traskade vi vidare och titta på några gamla kända hus som nu agerade som galleri. En massa konst helt enkelt. Inte alltför upphetsande då ingen av oss är särskilt konstintresserad.
Efter ett kortare uppehåll i schemat (och möjlighet att byta kläder - det är varmt ute) var det dags för öppningsceremonin. Som alltid brukar dessa tillställningar innehålla många tråkiga tal. Så även i år. Jag tappade räkningen på hur många gånger det upprepades att Bulgarien arrangerade även det första IOI. En sak på pluskontot dock: självaste presidenten i landet invigningstalade och förklarade tävlingen öppnad! Jag har svårt att se Fredrik Reinfeldt göra något liknande om tävlingen hållits i Sverige. Det visar på att denna typ av tävlingar har lite högre status i östvärlden än i väst. Resultatlistorna präglas därefter.
Öppningsceremonin avslutades med "underhållning", dvs sång och.. ja, någonting. Ett bedrövligt pojkband följdes upp av en fiolspelande tjejgrupp och sist ett stor sällskap som spelade/"sjöng" folkmusik. Det sistnämnde kan nog vara det sämsta jag hört på väldigt länge.
Just nu väntar vi på middagen. Därefter låses studenterna in på sina hotellrum medan vi ledare börjar processen att översätta morgondagens uppgifter.
Några ord om logistiken också. Gårdagens förhoppningar om att den skulle kunna fungera bra i år verkar ha grusats. Informationsflödet om schemaändringar och liknande existerar inte, så det blir via ryktesspridning vi ledare vet var och när vi ska ta vägen. Deltagarna har det lite lättare då har en guide som leder dem rätt. Det hela har ändå, i mitt tycke, fungerat bättre än förra året även om det inte säger så mycket.
lördagen den 8:e augusti 2009
Plovdiv, dag 1
Igår var det dags för avresa till Bulgarien och IOI (se tidigare inlägg). Vi flög med ett polskt flygbolag vilket jag inte gjort förut, men hela resan förflöt utan incidenter. Destinationen för flyget var Sofia. Där blev vi hämtade med buss tillsammans med ett flertal andra IOI lag för transport till Plovdiv. Den resan tog ca 90 minuter.
De senaste två åren har både deltagare och ledare bott i studentbostäder av inte alltför hög kvalité (i Kroatien och Egypten). I år verkar dock arrangörerna bjuda på det bästa - riktigt fina hotell. En nackdel är dock att ledarna bor på ett annat hotell än deltagarna (och det är inte direkt gångavstånd mellan hotellen). Efter att vi släppts av vid deltagarhotellet och registrerat laget blev vi ledare eskorterade till det andra hotellet. Sen dess har jag inte haft någon kontakt med deltagarna och kan därför inte just nu rapportera något om deras förehavanden.
Registreringen gick förvånansvärt smärtfritt i år, ett tecken på att de verkar ha tänkt till lite gällande logistiken i år. Som antytts i mina rapporter från de senaste två åren så har den biten brustit ordentligt från arrangörshållet.
Internetuppkopplingen på ledarhotellet är dock bedrövlig (otroligt långsam och instabil), vilket är anledningen till att denna första rapport är försenad. Risken finns att rapporterna inte kommer lika tätt som jag ursprungligen tänkt. Att ladda upp bilder är inte att tänka på just nu, men förhoppninngsvis blir det bättre.
De senaste två åren har både deltagare och ledare bott i studentbostäder av inte alltför hög kvalité (i Kroatien och Egypten). I år verkar dock arrangörerna bjuda på det bästa - riktigt fina hotell. En nackdel är dock att ledarna bor på ett annat hotell än deltagarna (och det är inte direkt gångavstånd mellan hotellen). Efter att vi släppts av vid deltagarhotellet och registrerat laget blev vi ledare eskorterade till det andra hotellet. Sen dess har jag inte haft någon kontakt med deltagarna och kan därför inte just nu rapportera något om deras förehavanden.
Registreringen gick förvånansvärt smärtfritt i år, ett tecken på att de verkar ha tänkt till lite gällande logistiken i år. Som antytts i mina rapporter från de senaste två åren så har den biten brustit ordentligt från arrangörshållet.
Internetuppkopplingen på ledarhotellet är dock bedrövlig (otroligt långsam och instabil), vilket är anledningen till att denna första rapport är försenad. Risken finns att rapporterna inte kommer lika tätt som jag ursprungligen tänkt. Att ladda upp bilder är inte att tänka på just nu, men förhoppninngsvis blir det bättre.
torsdagen den 6:e augusti 2009
SQL Server är rätt nice ibland
Ibland blir man riktigt imponerad av SQL Server. Under en större queryoptimeringssession dyker helt plötsligt ett trevligt meddelande upp i Execution plan rutan (aktivera med Ctrl-M) i SQL Server Management Studio:
Missing Index (Impact 86.2689): CREATE NONCLUSTERED INDEX [...] ON [dbo].[Document] ([documentTypeID]) (screenshot)
Hoppsan! Utan att jag explicit kört en optimeringswizard eller liknande påminner mig SQL Server ändå om att jag nog borde lägga till ett index. Och visst har den rätt. Jag vet inte vad "Impact 86.2689" innebär exakt, men queryn gick i många fall flera gånger fortare efter att indexet lagts till. Studerar man den nya queryplanen ser man att den använder det nya indexet (IX_Document_TypePublication) och att kostnaden för den delen blev försumbar.
Att på detta sätt studera query plans visuellt och se vilka beslut SQL Server fattar (och om det är bra eller dåliga beslut) är oerhört kraftfullt och något jag nog skulle ha svårt att klara mig utan när jag jobbar i stora databassystem med många komplexa queries. Jag kommer säkerligen återkomma i ämnet.
Prenumerera på:
Inlägg (Atom)