Milabowl
Sam - 4 min read

Mini-mila awards

# Mini mila awards With the 23/24 FPL season concluded, I have compiled some "fun fact" stats in these tables. I have not included categories which can easily be viewed in the overview table. Also, these numbers are derived from the file with correct bomb and powerup states. ### Most points in chip rounds | Team | Score | | ----------------------- | ----- | | SplitteMilaBramseil | 497 | | MilaysianBucketBoys | 420 | | Milady’s Cmilax | 403 | | Mast69urbinho | 399 | | $jeik og betalt | 392 | | AC Mila | 390 | | Henriks Håndjagere | 384 | | The KaneSaw Massacre | 360 | | Skodad Octavia | 325 | ### Most points in non chip rounds | Team | Score | | ----------------------- | ----- | | AC Mila | 2202 | | MilaysianBucketBoys | 2096 | | $jeik og betalt | 2066 | | Mast69urbinho | 2060 | | Milady’s Cmilax | 2032 | | Henriks Håndjagere | 2022 | | Skodad Octavia | 1996 | | SplitteMilaBramseil | 1924 | | The KaneSaw Massacre | 1785 | ### Best tripple captains | Team | Score | | ----------------------- | ----- | | The KaneSaw Massacre | 127 | | Mast69urbinho | 122 | | SplitteMilaBramseil | 103 | | Skodad Octavia | 95 | | MilaysianBucketBoys | 91 | | $jeik og betalt | 91 | | AC Mila | 90 | | Milady’s Cmilax | 79 | | Henriks Håndjagere | 76 | ### Best wildcarders | Team | Score | | ----------------------- | ----- | | MilaysianBucketBoys | 168 | | $jeik og betalt | 158 | | Henriks Håndjagere | 148 | | Mast69urbinho | 144 | | AC Mila | 142 | | SplitteMilaBramseil | 140 | | Milady’s Cmilax | 114 | | The KaneSaw Massacre | 111 | | Skodad Octavia | 72 | ### Best bench boosters | Team | Score | | ----------------------- | ----- | | MilaysianBucketBoys | 146 | | AC Mila | 143 | | Henriks Håndjagere | 142 | | $jeik og betalt | 127 | | Mast69urbinho | 117 | | Skodad Octavia | 111 | | The KaneSaw Massacre | 104 | | SplitteMilaBramseil | 100 | | Milady’s Cmilax | 56 | ### Best free hitters | Team | Score | | ----------------------- | ----- | | Milady’s Cmilax | 154 | | SplitteMilaBramseil | 154 | | Skodad Octavia | 47 | | The KaneSaw Massacre | 18 | | Henriks Håndjagere | 18 | | Mast69urbinho | 16 | | $jeik og betalt | 16 | | AC Mila | 15 | | MilaysianBucketBoys | 15 | ### Max mila score in a game week | Team | Score | | ----------------------- | ----- | | Mast69urbinho | 16.00 | | The KaneSaw Massacre | 15.00 | | MilaysianBucketBoys | 12.78 | | SplitteMilaBramseil | 12.40 | | AC Mila | 11.00 | | Henriks Håndjagere | 11.00 | | $jeik og betalt | 9.40 | | Milady’s Cmilax | 7.00 | | Skodad Octavia | 6.19 | ### Most mila points from powerups | Team | Score | | ----------------------- | ------ | | The KaneSaw Massacre | 4.50 | | Milady’s Cmilax | 1.00 | | Henriks Håndjagere | -0.50 | | AC Mila | -2.00 | | SplitteMilaBramseil | -3.50 | | Mast69urbinho | -4.00 | | MilaysianBucketBoys | -4.50 | | $jeik og betalt | -10.00 | | Skodad Octavia | -12.00 | ### Most unique players in lineup during season | Team | # | | ----------------------- | --- | | Henriks Håndjagere | 80 | | AC Mila | 70 | | Mast69urbinho | 69 | | Milady’s Cmilax | 65 | | MilaysianBucketBoys | 65 | | SplitteMilaBramseil | 63 | | The KaneSaw Massacre | 61 | | $jeik og betalt | 59 | | Skodad Octavia | 54 | ### Most unique teams in lineup during season | Team | # | | ----------------------- | --- | | Henriks Håndjagere | 20 | | AC Mila | 19 | | MilaysianBucketBoys | 19 | | SplitteMilaBramseil | 19 | | The KaneSaw Massacre | 19 | | Skodad Octavia | 18 | | $jeik og betalt | 18 | | Mast69urbinho | 18 | | Milady’s Cmilax | 18 |
Awards
Sam - 2 min read

Tech update - omskriving av rules engine 🤖

Backend prosesseringen til Milabowl bærer mye preg av teknsik gjeld og dårlig struktur som følge av mange snarveier når man gikk fra live applikasjon i Azure til Github Pages. En omfattende omskrivning nærmer seg nå slutten. Hovedfokuset er å senke terskelen for å legge til nye regler. Dette blir gjort ved å ta i bruk en helt ny rules engine, "MilaEngine"🧙🏼‍♂️. Det eneste man trenger for å legge til en ny regel er å implementere `IMilaRule` interfacet, deretter skjer alt automagisk: ```csharp public record MilaRuleResult(string RuleName, string RuleShortName, decimal Points); public interface IMilaRule { MilaRuleResult Calculate(MilaGameWeekState userGameWeek); } ``` Alle implementasjoner vil automatisk bli plukket opp av .NET sin DI container, og automatisk kalkulert og lagt inn i game_state.json. Frontendend vil også bli oppdatert til å automatisk plukke opp alle nye regler, og rendre nye regler. For å forenkle enda mer kan man implementere den abstrakte klassen `MilaRule`. Man må da sette et ShortName (som vil dukke opp i tabellene i front end), og en metode for å beregne poeng. Regelen vil dukke opp med samme navn som klassen i JSON resultatet. ```csharp public abstract class MilaRule : IMilaRule { protected abstract string ShortName { get; } protected abstract decimal CalculatePoints(MilaGameWeekState userGameWeek); public MilaRuleResult Calculate(MilaGameWeekState userGameWeek) { return new MilaRuleResult(GetType().Name, ShortName, CalculatePoints(userGameWeek)); } } ``` For å vise hvor enkelt det blir å legge til en ny regel kan vi se på implementasjonen av regelen for gult kort: ```csharp public class YellowCards : MilaRule { protected override string ShortName => "YC"; protected override decimal CalculatePoints(MilaGameWeekState userGameWeek) { return userGameWeek.User.Lineup .Where(pe => pe.YellowCards == 1) .Sum(pe => pe.Multiplier); } } ``` For å sikre at nye regler fungerer som tenkt vil byggen feile ❌ om man ikke har lagt til minst en test pr. regel. I tillegg til å gjøre det enklere å legge til nye regler, vil prosesseringene gå mye raskere og favhengigheten til SQL databasen i bunn blir fjernet. Planen er å ta nåværende løsning for import av data til SQL, lage et eget prosjekt og rename det til Milalytics, så man fortsatt har mulighet å analysere FPL / Mila data med SQL (spesielt handy rundt MilaAwards). NB: Navn på klasser og interfaces er fortsatt i endring
Tech
Anders - 4 min read

Hyttetur og beste lagnavn

I naturskjønne omgivelser i Krokskogen i Nordmarka var det duket for historiens første avstemning av beste lagnavn _før_ sesongen begynner! Dette ble selvfølgelig innført for å hindre taktisk stemming på slutten av sesongen, som kan eller ikke kan ha vært et problem tidligere år. Vi ankom hytta på fredag ettermiddag og kveld, først var Markus, Simen, Martin og Eivind (med bil lol), deretter kom Henrik og Anders på sykkel 💪. Bilgutta disket opp med sårt trengt fransk pasta à la Sïmén 👨‍🍳🇫🇷, noe som ble meget godt mottatt, spesielt av litt underernærte syklister. ### - Valg må tas På kvelden ble det Secret Hitler, der de liberale nok fikk en alt for enkel jobb med å skjønne at Hitler var helt borte vekk begge ganger på rad. Valg måtte tas, og Eivind valgte å dra hjem 🥸 (han hadde sikkert en god grunn) Lørdagen startet dårlig med tap for Japan i fotball-VM, med en meget svak prestasjon av de norske damene 😥 Været var rimelig dårlig så istedenfor å gå ut på tur, klinte vi til med Markus sin evige våte drøm - poker.\ Resultat: Markus 📈, resten 📉 ### My precious Heldigvis letta været så vi kunne ta turen ned til vannet og bade. Badeturen ble stort sett preget ev én ting, nemlig Martins 360 sidespin no-scope backflip fra stupebrettet. Dette imponerte Henrik så mye at han bestemte seg for å sparke av Anders sin giftering med tærne sine, i vannet. Det var kanskje ikke med vilje, men det var jo litt kjipt forsåvidt så vi prøvde å finne ringen da. Med grumsete, vanskelige grunnforhold, og etter _timesvis_ med leting og god hjelp fra alle, inkludert Damtjerns store sønn, Atle, fant Markus utrolig nok ringen i et siste Hail-Mary-forsøk (bilde nederst)! Anders ble glad - så glad faktisk at han ga Markus hele 1.69 Milapoeng. Hvordan dette medregnes i totalsummen på slutten av sesongen, må nesten være opp til sekretæriatet ✍🏻 ### Avstemning: Beste lagnavn Men så til helgens største event: Avstemning av beste lagnavn 🏆 På dette tidspunket hadde også Malte joinet gjengen på hytta via buss, da sjåfør Sam hadde blitt syk. På tide å få seg lappen, Malte? 🏎️ Markus og Simen hadde laget i stand et valglokale der én og én ble presentert med alle lagnavn, uten å vite hvem de hørte til. Deretter skulle vi rangere dem fra best til verst, samtidig som vi filmet oss selv (🤤) for å fange opp førsteinntrykket vårt. Lykke til med redigeringsjobben, noen! 😃 (Det var også visstnok en shot i lokalet, men hvem vet). ### Resultatet Det var bred enighet om at årets deltakere hadde rekordsterke lagnavn, og etter en nervepirrende opptelling, kunne valget erklæres gyldig! **Vinneren ble Simen med sine "Milaysian bucket boys", og hanker dermed inn hele 5 Milapoeng! Gratulerer! 🇲🇾🪣👦🏻** På andre plass finner vi Sam med hans "$jeik og betalt", og på tredje har vi Maltes "The KaneSaw Massacre". De tar med seg henholdsvis 3 og 1 poeng inn i sesongen. På de tre siste plassene finner vi Martins "AC Mila" på 7., Henriks "Masturbinho" på 8. og Mikkels "Milady's Cmilax", aka "Semilaksen", på 9. Det er mye man kan si om de ulike navnene, men at Henriks Håndjagere skulle tilhøre en annen enn Henrik, og Skodad Octavia skulle tilhøre en annen enn Octavia-pappaene - det var overraskende. At Milady's Cmilax gjorde det såpass svakt var ingen overraskelse for hyttedeltakerne der og da, men navnet har muligens vokst på oss i ettertid? Så som alle store kunstnere kan kanskje ikke heller Mikkel høste anerkjennelse i sin tid. Et annet notat undertegnede gjør seg er at 6 av 9 spillere i ligaen har fornavn på 6 bokstaver, og de 3 resterende har færre bokstaver og havnet samtidig på de 3 øverste plassene.. Collusion?!? 🤔 VAR?!?⚠️ Her er tabell, nå tar jeg kveld. | Plassering | Playah | Lagnavn | Milapoeng | | :--------- | :----- | :-------------------- | :-------- | | 1 👑 | Simen | Milaysian bucket boys | 5 | | 2 | Sam | $jeik og betalt | 3 | | 3 | Malte | The KaneSaw Massacre | 1 | | 4 | Anders | SplitteMilaBramseil | 0 | | 5 | Eivind | Henriks Håndjagere | 0 | | 5 | Markus | Skodad Octavia | 0 | | 7 | Martin | AC Mila | -1 | | 8 | Henrik | Masturbinho | -2 | | 9 💩 | Mikkel | Milady's Cmilax | -3 | ![My precious](../../../assets/my-precious.jpg)
Awards
Home Standings Team Blog