Artiklar för Expert Network
Under åren 2016–2019 samarbetade IDG med ett antal utvalda experter inom IT. De skrev artiklar om "spaningar", och artiklarna publicerades i tidningar som CIO Sweden, Computer Sweden och TechWorld.
Under 2024 bytte IDG publiceringssystem, och de flesta artiklarna plockades då bort från deras webbplatser. De artiklar som Mejsla bidrog med till Expert Network publiceras nu här på Mejslas webbplats med tillåtelse från IDG.
Olösbara problem för utvecklare
Har ni någonsin fått ett omöjligt problem, ett problem som saknar lösning? Förmodligen har ni det, men extra intressant är det när man i förväg inte kan se att problemet saknar lösning.
Det finns ett känt problem från Monty Hall där lösningen överraskar många. Ni som inte känner till det får söka på nätet (eller fråga kompisen). Problematiken i Monty Hall går att simulera i en dator, och det är till och med ett vanligt rekryteringstest för utvecklare att skriva en sådan simulator. Jag tänkte berätta om ett annat paradoxliknande problem som man faktiskt kan få ökad förståelse för genom att upptäcka att det inte går att simulera.
Som konsult händer det ibland att man får uppgifter som
av olika skäl visar sig vara omöjliga att lösa,
och det känns ofta snopet när man till slut inser att det inte går.
En gång fick vi av en mindre aktör på databasmarknaden i uppgift att
jämföra prestanda för deras databas med några välkända dataaser.
Det uppdraget tog stopp när vi upptäckte att en större databasaktör
i sina licensavtal hade en klausul om att man måste få tillstånd
från dem för att offentliggöra prestandajämförelser med deras produkt.
Vi sökte förstås tillstånd, men fick det inte.
Mission impossible by law.
Ett annat uppdrag handlade om att paketera installationsfiler.
Det var många filer som skulle packas ihop i flera steg med
installationsfiler som rekursivt skulle dra igång nya installationsfiler.
Det fungerade inte som väntat, och efter att ha läst på i specifikationerna
för paketeringsformatet förstod vi att denna typ av installationsfiler
faktiskt inte hade stöd för att packas rekursivt.
Mission impossible by design.
Det paradoxliknande exemplet som jag nämnde i inledningen handlar om två kuvert med pengar. Det man vet är att det ena kuvertet innehåller dubbelt så mycket pengar som det andra. Lisa får välja ett av kuverten och när hon öppnar kuvertet ligger det 100 kronor där. Olle erbjuder henne nu att byta kuvert, och Lisa undrar varför. Olle förklarar att det är 50% chans att det andra kuvertet innehåller 200 kronor vilket skulle innebära en vinst på 100 kronor. Samtidigt är det förstås en risk på 50% att det andra kuvertet innehåller endast 50 kronor, men det skulle ju bara innebära en förlust på 50 kronor. Det måste väl vara bra att byta om man bara behöver riskera 50 kronor för en lika stor chans att vinna 100?
Om man formulerar om problemet en aning börjar man ändå ana att det finns skäl för Lisa att vara tveksam. Låt säga att Lisa inte hinner öppna det första kuvertet innan Olle erbjuder henne att byta kuvert. Då säger Olle att det finns x kronor i hennes kuvert men om hon byter kuvert så kan hon antingen förlora ett halvt x eller vinna ett helt x kronor. Även i detta fall måste det väl vara rätt att byta? Men om Lisa nu går med på att byta kuvert så kan ju Olle säga samma sak igen. Och så fastnar de i att byta kuvert i all oändlighet. Det är något som inte stämmer, men vad?
Jag ska inte här ge mig in på den matematiska
förklaringen till denna skenbara paradox.
Självklart går det att söka efter förklaringar på nätet,
men för er som föredrar att tänka själva rekommenderar
jag varmt att försöka skriva en simulator.
Ibland kan en omöjlig uppgift faktiskt vara mycket lärorik.
Mission impossible?
Denna artikel publicerades ursprungligen hos IDG i februari 2017.
Författare:
Karl Dickson