Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Våra topplistor i Go (Peter Hellberg och Kristi...

Avatar for David Hall David Hall
November 26, 2014

Våra topplistor i Go (Peter Hellberg och Kristian Saebdal, TV4)

Peter Hellberg och Kristian Saebdal berättar om när de skrev om tjänsten för topplistor i Go efter att ha råkat ut för ett fall av ruttnad kod.

Avatar for David Hall

David Hall

November 26, 2014
Tweet

More Decks by David Hall

Other Decks in Programming

Transcript

  1. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  2. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  3. ȇȇ&0&1/"-/"0"+103&0&11,Ǔ)6 16-"&0&101/2 1ȅ 01/&+$ˍ0,+ǥǭ&!ǭˍ 6-"01/&+$ˍ0,+ǥǭ16-"ǭˍ /,$/*01/&+$ˍ0,+ǥǭ-/,$/*ǭˍ 1"$,/601/&+$ˍ0,+ǥǭ 1"$,/6ǭˍ "+/"01/&+$ˍ0,+ǥǭ$"+/"ǭˍ ,2/

    "01/&+$ˍ0,+ǥǭ0,2/ "ǭˍ ,+1"+1,2/ "01/&+$ˍ0,+ǥǭ ,+1"+1Ȁ0,2/ "ǭˍ 01/&+$ˍ0,+ǥǭ&-ǭˍ '" 1 0,+ǣ'" 1 !ˍ0,+ǥǭȀ&!ǭˍ &*"01*-1&*"ǣ&*"ˍ0,+ǥǭ1&*"01*-ǭˍ Ȇ
  4. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  5. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  6. ȇȇ$$/"$1"&0&1 ,+1&+0+$$/"$1"3&0&1 16-"$$/"$1"&0&101/2 1ȅ   01/&+$ˍ0,+ǥǭ&!ǭˍ 6-" 01/&+$ˍ0,+ǥǭ16-"ǭˍ /,$/*

    01/&+$ˍ0,+ǥǭ-/,$/*ǭˍ 1"$,/6 01/&+$ˍ0,+ǥǭ 1"$,/6ǭˍ  "+/" 01/&+$ˍ0,+ǥǭ$"+/"ǭˍ ,2/ "01/&+$ˍ0,+ǥǭ0,2/ "ǭˍ ,+1"+1,2/ "01/&+$ˍ0,+ǥǭ ,+1"+1Ȁ0,2/ "ǭˍ '" 1  0,+ǣ'" 1 !ˍ0,+ǥǭȀ&!ǭˍ  ,2/ 1&*"ǣ&*"ˍ0,+ǥǭ%,2/ǭˍ Ȇ
  7. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  8. ȇȇ&0&11/ (03&0&1+!/"0-,+!04&1%ǐ5ǐ #2+ ȁ-&ȋ Ȃ&0&1ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ 3&0&1ǤȀǥʛ"4&0&1ȁ&-Ǥ-/*0Ȃ !ǣȁǭ3&0&10ǭȂǣ +0"/1ȁ3&0&1Ȃ

    3ǤȀǥʛ"4$$/"$1"&0&1ȁ3&0&1Ȃ !ǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂǣ-0"/1ȁ3Ǥ  0,+ǣȅǭɸ&+ ǭǥ0,+ǣȅǭ3&0&10ǭǥǐȆȆȂ 4ǣ/&1"ȁ/+0-/"+1&5")Ȃ Ȇ
  9. ȇȇ$$/"$1"/"12/+01%"1,-)&010  #2+ ȁ-&ȋ Ȃ$$/"$1"ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ  .2"/6ǥʛ$$/"$1"2"/6ȁ ǣ/*0ȃǭ16-"ǭȄǤ1&*"01*-Ǥ-/*0Ȃ

    -&-")&+"ǥʛ1,-)&01&-")&+"ȁ.2"/6Ǥ)&*&1Ȃ  ,))ǥʛ0"00ǣȁǭǭȂǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂ &1"/ǥʛ ,))ǣ&-"ȁ-&-")&+"Ȃǣ 1"/ȁȂ 1,-)&01ǥʛȃȄ,-)&01 1"*ȅȆ 3/1&,-)&01 1"* #,/&1"/ǣ"51ȁǎ1&Ȃȅ  1,-)&01ʛ--"+!ȁ1,-)&01Ǥ1&Ȃ Ȇ 3)2"ǤȀǥʛ'0,+ǣ/0%)ȁ1,-)&01Ȃ 4ǣ/&1"ȁ3)2"Ȃ Ȇ
  10. ȇȇ$$/"$1"/"12/+01%"1,-)&010  #2+ ȁ-&ȋ Ȃ$$/"$1"ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ  .2"/6ǥʛ$$/"$1"2"/6ȁ ǣ/*0ȃǭ16-"ǭȄǤ1&*"01*-Ǥ-/*0Ȃ

    -&-")&+"ǥʛ1,-)&01&-")&+"ȁ.2"/6Ǥ)&*&1Ȃ  ,))ǥʛ0"00ǣȁǭǭȂǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂ &1"/ǥʛ ,))ǣ&-"ȁ-&-")&+"Ȃǣ 1"/ȁȂ 1,-)&01ǥʛȃȄ,-)&01 1"*ȅȆ 3/1&,-)&01 1"* #,/&1"/ǣ"51ȁǎ1&Ȃȅ  1,-)&01ʛ--"+!ȁ1,-)&01Ǥ1&Ȃ Ȇ 3)2"ǤȀǥʛ'0,+ǣ/0%)ȁ1,-)&01Ȃ 4ǣ/&1"ȁ3)2"Ȃ Ȇ
  11. #2+ $$/"$1"2"/6ȁ101/&+$Ǥ101&*"ǣ&*"Ǥ-2/)ǣ)2"0Ȃ0,+ǣ ȅ .ǥʛ0,+ǣȅǭ16-"ǭǥ1Ǥǭ%,2/ǭǥ0,+ǣȅǭɸ$1"ǭǥ10ȆȆ #2+ ȁ("60ǣǣǣ01/&+$Ȃȅ  #,/ȀǤ("6ǥʛ/+$"("60ȅ  &#3)ǥʛ-ǣ

    "1ȁ("6ȂǦ3)Ǩʛǭǭȅ  .ȃ("6Ȅʛ3)  Ȇ  Ȇ Ȇȁǭ ,+1"+1Ȁ0,2/ "ǭǤǭ 1"$,/6ǭǤǭ$"+/"ǭǤǭ-/,$/*ǭǤǭ0,2/ "ǭȂ /"12/+. Ȇ
  12. ȇȇ$$/"$1"/"12/+01%"1,-)&010  #2+ ȁ-&ȋ Ȃ$$/"$1"ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ  .2"/6ǥʛ$$/"$1"2"/6ȁ ǣ/*0ȃǭ16-"ǭȄǤ1&*"01*-Ǥ-/*0Ȃ

    -&-")&+"ǥʛ1,-)&01&-")&+"ȁ.2"/6Ǥ)&*&1Ȃ  ,))ǥʛ0"00ǣȁǭǭȂǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂ &1"/ǥʛ ,))ǣ&-"ȁ-&-")&+"Ȃǣ 1"/ȁȂ 1,-)&01ǥʛȃȄ,-)&01 1"*ȅȆ 3/1&,-)&01 1"* #,/&1"/ǣ"51ȁǎ1&Ȃȅ  1,-)&01ʛ--"+!ȁ1,-)&01Ǥ1&Ȃ Ȇ 3)2"ǤȀǥʛ'0,+ǣ/0%)ȁ1,-)&01Ȃ 4ǣ/&1"ȁ3)2"Ȃ Ȇ
  13. #2+ 1,-)&01&-")&+"ȁ.2"/60,+ǣǤ)&*&1&+1ȂȃȄ0,+ǣȅ /"12/+ȃȄ0,+ǣȅ  0,+ǣȅǭɸ*1 %ǭǥ.2"/6ȆǤ  0,+ǣȅǭɸ-/,'" 1ǭǥ0,+ǣȅ 

    ǭ&!ǭǥǭɸ&!ǭǤ ǭ3&0&10ǭǥǭɸ3&0&10ǭǤ  ȆȆǤ  0,+ǣȅǭɸ$/,2-ǭǥ0,+ǣȅ  ǭȀ&!ǭǥǭɸ&!ǭǤ ǭ3&0&10ǭǥ0,+ǣȅǭɸ02*ǭǥǭɸ3&0&10ǭȆǤ  ȆȆǤ  0,+ǣȅǭɸ0,/1ǭǥ0,+ǣȅǭ3&0&10ǭǥǸǐȆȆǤ  0,+ǣȅǭɸ)&*&1ǭǥ)&*&1ȆǤ Ȇ Ȇ
  14. ȇȇ$$/"$1"/"12/+01%"1,-)&010  #2+ ȁ-&ȋ Ȃ$$/"$1"ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ  .2"/6ǥʛ$$/"$1"2"/6ȁ ǣ/*0ȃǭ16-"ǭȄǤ1&*"01*-Ǥ-/*0Ȃ

    -&-")&+"ǥʛ1,-)&01&-")&+"ȁ.2"/6Ǥ)&*&1Ȃ  ,))ǥʛ0"00ǣȁǭǭȂǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂ &1"/ǥʛ ,))ǣ&-"ȁ-&-")&+"Ȃǣ 1"/ȁȂ 1,-)&01ǥʛȃȄ,-)&01 1"*ȅȆ 3/1&,-)&01 1"* #,/&1"/ǣ"51ȁǎ1&Ȃȅ  1,-)&01ʛ--"+!ȁ1,-)&01Ǥ1&Ȃ Ȇ 3)2"ǤȀǥʛ'0,+ǣ/0%)ȁ1,-)&01Ȃ 4ǣ/&1"ȁ3)2"Ȃ Ȇ
  15. ȇȇ$$/"$1"/"12/+01%"1,-)&010  #2+ ȁ-&ȋ Ȃ$$/"$1"ȁ 4"ǣǤ 4%11-ǣ"0-,+0"/&1"/Ǥ/ȋ%11-ǣ".2"01Ȃȅ  .2"/6ǥʛ$$/"$1"2"/6ȁ ǣ/*0ȃǭ16-"ǭȄǤ1&*"01*-Ǥ-/*0Ȃ

    -&-")&+"ǥʛ1,-)&01&-")&+"ȁ.2"/6Ǥ)&*&1Ȃ  ,))ǥʛ0"00ǣȁǭǭȂǣȁǭ$$/"$1"!Ȁ3&0&10ǭȂ &1"/ǥʛ ,))ǣ&-"ȁ-&-")&+"Ȃǣ 1"/ȁȂ 1,-)&01ǥʛȃȄ,-)&01 1"*ȅȆ 3/1&,-)&01 1"* #,/&1"/ǣ"51ȁǎ1&Ȃȅ  1,-)&01ʛ--"+!ȁ1,-)&01Ǥ1&Ȃ Ȇ 3)2"ǤȀǥʛ'0,+ǣ/0%)ȁ1,-)&01Ȃ 4ǣ/&1"ȁ3)2"Ȃ Ȇ
  16. -&ȇ$$/"$1"ǣ$, ǐǑǗ -&ȇ$$/"$1"Ȁ3&0&1ǣ$, ǒǕ -&ȇ-&ǣ$, Ǖǘ -&ȇ )"+2-ǣ$, ǒǗ -&ȇ*&!!)"4/"ǣ$,

    ǓǑ -&ȇ/"0-,+0"ǣ$, Ǒǐ -&ȇ/,,10Ȁ151ǣ$, ǐǒ -&ȇ/,21"0ǣ$, Ǒǐ -&ȇ01120ǣ$, ǔǏ -&ȇ3&0&1ǣ$, ǐǑǑ *&+ǣ$, ǘǓ ǔǓǏ ,