Köpte dator

Det blev dags att köpa ny jobbdator, eftersom den gamla inte längre ville prata med den externa monitorn. Konfiguration, klick. Leverans hem, tack. Sedan började det strula.

Nej, betalning via faktura var inte möjligt om det var delar som skulle hämtas i butik. Vilket inte var fallet, jag skulle ju få allting levererat? Jag ringde datorföretaget, och undrade vad de menade. Jaha, fakturor var för tillfället avstängt för alla. Jag tipsade om att faktiskt skriva det på webben istället för den direkta lögnen. Fakturor och/eller finansiering skulle eventuellt återkomma vid något senare tillfälle, men det verkade lika gärna kunna bli nästa vecka som strax efter att solen slocknat.

Fram med betalkortet. Klick, klick, och så kom ett bekräftelsemail med en stor rubrik ”Faktureras till” med rätt adress. Öh, va? Sedan kom ett mail till, om att betalningen inte hade gått igenom. Den där som alltså gjordes via kortet ändå.

Jag ringde banken, som sa att jag hade nått taket på det kortets köpgräns. Den gick ju att höja, så jag fick ett PDF-formulär via mail. Det fanns till och med en mailadress jag kunde skicka tillbaka det till. Det enda lite otydliga var signaturfältet. Bankpersonen som jag pratade med först hade sagt att om jag struntade i det fältet, men ringde upp dem efteråt och legitimerade mig via bank-id (det där som funkar för typ alla ekonomiska transaktioner i hela Sverige), så skulle det bli bra. Jag ringde kortavdelningen, men så enkelt var det ju inte. Helst skulle jag skriva ut, signera, och scanna formuläret innan jag mailade det. Det kändes som ett gränsfall att de ännu hellre hade velat ha det faxat. Eller skickat enligt RFC 1149, som någon medeltida barbar. Sorry, jag har ingen skrivare. Däremot hade jag en scannad version av min signatur som jag har använt för diverse offerter. Ok, klipp och klistra. Jetefint. Supersäkert och bra. Det finns ju ingen annan i hela universum som kan göra samma sak. Eller nåt.

Efter att ha mailat patchade versionen ringde jag banken igen, som höll med om att de på den här punkten var ”lite gammaldags”. Nej, att välja den osäkrast möjliga lösningen är bara dumt, speciellt när bättre lösningar redan finns i företaget. Men ok, köpgränsen blev höjd.

Jag hoppade tillbaka till datorköpssidan, bad om ett nytt försök med samma kort, varvid köpet nekades igen. Feltexten innehöll exakt noll information, bara ”det gick inte”. Jag ringde datorföretaget för att försöka få lite mer detaljer, men blev mest bara förvånad över den totala bristen på förståelse för mitt problem. De erbjöd sig att maila banken å mina vägnar, vad nu poängen med det skulle vara. Själv ville jag veta varför betalningen inte gick igenom, inte bara att. Var deras egna webb trasig? Var deras betalningstjänst trasig? Var det något problem hos kortleverantören? Blev det nekat hos banken? I så fall varför?

Det där gäller förresten rent allmänt. Om min begäran om någonting blir nekad, vill jag veta varför. Är det mitt eller den andra sidans fel? Om det är mitt fel, vad skulle jag behöva ändra för att begäran skulle bli godkänd (förutom saker som att bli en minoritetskvinna (kanske inte helt uppenbar pop cultural reference)).

Jag blev till slut vidarekopplad till en annan avdelning, som då kunde se att betalningen redan var gjord. Det var därför mitt senaste försök inte gick igenom, för då hade jag gått över (den nya) köpgränsen igen. Jag gick tillbaka till länken för min order, och jo då, den stod som betald. Mellan att banken höjde köpgränsen och jag klickade på ”Prova igen”, en tid på långt under en minut, hade de alltså lyckats smita emellan och redan genomfört transaktionen. Varför betalningssidan då inte kunde säga det, istället för att försöka ta betalt en gång för mycket, kan man ju också undra.

Jag påpekade att betalning via faktura var ofantligt mycket enklare, men att man kan vänta med leverans till efter att fakturan var betald var tydligen ett totalt okänt koncept. Jag förstår att de inte vill ligga ute med pengar och riskera obetalda fakturor, men enda alternativet är faktiskt inte betalkort.

Man skulle kunna tro att ett (stort) datorföretag har koll på sin webbplats som är till för att köpa företagets datorer. Man skulle också kunna tro att en (stor) bank använder de tekniska lösningar som finns för att erbjuda maximal smidighet för kunden och maximal säkerhet för dem själva. I båda dessa fall har man då tydligen fel.

Nu återstår bara att vänta på att datorn ska skruvas ihop och skickas hit. Eller så dyker den upp på fakturaadressen.

Feldetektorn Theta

Ett väldigt centralt problem när man har datorer som pratar med varandra är att få dem att inse när någon av de andra har dött. Eller helt enkelt inte går att nå, eftersom någon del av internetlinan mellan egna datorn och den potentiellt döda datorn har gått sönder. Dessutom måste de förstå skillnaden på när de själva har fått en trasig uppkoppling, eller när någon annan har fått det.

En enkel lösning är då att alla datorer skickar små ”hur är läget”-paket till varandra. När de får svar, vet de att den de fått svar från fortfarande lever. Får de inget svar från en enstaka dator, är det förmodligen den som är trasig. Får de inga svar alls, är det de själva som har problem.

Det går ju enkelt att effektivisera det där, genom att istället bara skicka ”jag mår bra” till alla, med jämna mellanrum. Samma resultat, men med halva antalet nätverkspaket.

Sedan tar sommartiden slut, så det verkar som att man inte fått svar från någon annan på över en timme. Frågan i båda varianterna ovan är därmed hur länge man ska vänta. Ju kortare tid man väntar, desto snabbare upptäcker man problem, men desto oftare gissar man fel.

Om alla datorer skickar paket till alla andra med ungefär samma frekvens, kan man istället använda Theta-detektorn. Alla datorer har ju en lista med de andra datorer de kommunicerar med, och förutom deras IP-adress och vad man nu behöver, har man då även en räknare. Varje gång man får ett paket av någon, nollställer man den datorns räknare och räknar upp alla andras ett steg. Även datorer som kommunicerar lite mer sällan än de andra, kommer hålla sin räknare på en rimlig nivå. När en dator dör, kommer dess räknare istället öka och öka tills den slår i någon förbestämd gräns. Om det är 10 datorer som pratar med varandra, och någons räknare når 1000, när den i vanliga fall aldrig går över 100, mår den förmodligen inte så bra.

Om datorerna sitter i samma nät eller är utspridda över hela planeten, eller om någon dators klocka ändras lite, spelar nu ingen roll. En dator som kommunicerar mycket mer sällan än de andra, upptäcks med en gång ändå.

Problemet nu är vad ”i vanliga fall” betyder. En enkel lösning är att börja med 0, och sedan behålla typ 90% av det och lägga till 10% av varje nytt värde (eller 99 resp 1, det är bara en fråga om hur känslig man vill att den ska vara). Om värdena är någorlunda lika får man då till slut ett medelvärde som håller sig ganska stabilt. Tyvärr räcker det med några enstaka ovanligt höga värden för att skapa kaos.

Man får mer stabila värden från talseriens median, men att räkna ut den i en oändligt växande talserie är lite jobbigt. Då kan man använda Remedian istället (som jag använde i artikeln i april 2018). Den ger bara ett ungefärligt värde, men är lika effektiv på att filtrera bort undantag. Man får fortfarande vara lite noga när man väljer ”nu är datorn död”-gränsen, men det gör ju ingenting.

Sedan kan man låta bli att skicka flera ”jag mår bra”-paket i rad, utan vänta tills man fått ett sådan från andra sidan. Datorer som står nära varandra kommer då kunna skicka många sådana per tidsenhet, medan de som står längre bort (dvs högre ”ping”) pratar mer sällan. Då är det bara att jämföra medianerna för att de själva ska kunna upptäcka vilka av deras kompisar som står nära, och vilka som står längre bort.

Doktorand

Strax före jul 2016 fick jag besked att jag blivit antagen som doktorand på MDH. Fokuset i början var på testning, men ganska snart gled det över till datakommunikation. Det var helt enkelt för många saker jag ville göra med produkten jag jobbat på sedan 2002, EMG. Mer specifikt är jag industridoktorand, vilket gör att fokuset ska vara på grejer som är bra för arbetsgivaren. Jag fick en idé om att analysera svarstiderna för de sms vi skickar till operatörerna, vilket resulterade i en publicerad artikel i april 2018. Den hann knappt bli klar innan verktyget jag skrev då kom till användning hos flera kunder.

Nu är jag inne på tredje året (av fem), nu med ett allt avsmalnande fokus på geo-replikering. Att köra ett program på en dator är enkelt, men om programmet eller datorn kraschar står trafiken stilla. Det är dåligt. Alltså vill man köra programmet på flera datorer. Problemet då är att de måste samarbeta, vilket inte alltid är så lätt. Om de dessutom står på skilda ställen, t.ex. i serverhallar i olika länder så man inte blir så sårbar om en enstaka internetlina dör, blir det sju resor värre. Som tur var är ”det här är ett problem” en acceptabel artikelkategori. Det hela blev en artikel som publicerades i juli 2018. Att lösa allting där lär hålla mig sysselsatt ett tag till.

Rent allmänt måste en sådan här artikel innehålla en rejäl sektion med referenser till diskussioner om liknande problem och potentiella lösningar som avfärdats av en eller annan anledning. Den processen tar helt galet lång tid, så att jobba som doktorand eller kanske forskare i allmänhet är ju långt ifrån det mest tidseffektiva sättet att lösa uppgifter på. Å andra sidan börjar jag nu hitta folk som funderar på just liknande problem, och även om vi inte kan använda varandras lösningar rakt av så kommer alla en liten bit framåt.

Dessutom gör det att jag alltmer inser vikten av att lösa rätt problem. Istället för att fråga om EMG ska använda MySQL, MongoDB eller Cassandra, blev frågan varför replikering av data är så långsamt. Det blev nyckeln till nästa artikel, som inte har hunnit få en websida än. Än så länge kan den av peer review-folket få allting mellan ”men det här är ju bara korkat och bisarrt, please go away” till ”Best Paper!”.

Visst, jag har nog aldrig skrivit så lite kod som de senaste två åren. En del tid har gått åt till diverse kurser, en del till skrivande av ett par artiklar, men mesta tiden har jag nog ägnat åt att läsa forskningsrapporter. Sedan läst de artiklar de refererar till, och de artiklar som de själva blir refererade av. Framåt i tiden, bakåt i tiden. Det ena sidospåret efter det andra, dag ut och dag in i flera månader. Och plötsligt har jag nu faktiskt kommit en bit på vägen för att lösa det där problemet med geo-replikering som har diskuterats i över 10 år utan någon större framgång. Det är ganska ballt.

En av handledarna på MDH sa att hennes tid som doktorand var det roligaste hon gjort, och att hon knappt förstod varför inte alla gjorde det. Jag är lite benägen att hålla med, i alla fall om man har ett ämne eller ett område som man verkligen vill få koll på. Dels att få en bra bild över var gränsen för mänsklighetens sammanlagda vetande ligger (i ett förvisso vansinnigt smalt området), och hjälpa till att putta gränsen en liten bit framåt. Under en liten, liten stund, är man därmed den personen på hela planeten som vet lite, lite mer om någonting jättespecifikt än alla andra. Sedan blir man ju omkörd cirka en nanosekund senare, men ändå.

Tre år kvar.

Tillbaka

Vartefter åren gick med en egen server, uppstod ett problem. Jag kunde inte på något vettigt sätt uppgradera Linux-installationen. Det hade nämligen inneburit en uppgradering av Ruby On Rails som RSS/Ping körde i, och eftersom jag inte följde med i Rails-uppgraderingarna blev den operationen bara allt större. Hade jag gjort samma sak idag hade jag lagt appen och databasen i varsin Docker-container, och så hade jag kunnat uppdatera en sak i taget.

Nåja. Databasen gav i alla fall upp nyss, och därmed även både RSS/Ping, egen-hostade bloggen osv. Så kan det gå.

Det börjar dyka upp lite saker som jag vill skriva om, men som är för mycket för Twitter, för litet för en forskningsartikel, och Facebook är för inlåst. Så, hej igen WordPress, how ya doing?

 

FRA-demonstration

Självklart kommer jag vara med på Medborgarplatsen kl 14 på lördag. Ju fler dess bättre.

Precis som Emma citerade nyss, så finns det ingen som helst trygghet i tanken att någon statlig myndighet får kopior på all min internettrafik. Som min mamma sa när jag nämnde det: ”Nej, det lät inte som någonting som du skulle tycka var så himla bra”. Hon känner mig så väl. 🙂

Andra bloggar om: , .

Snälla SOAP, dö!

Bäst som man sitter och undrar varför så liten del av gammelmedia bryr sig om att FRA bland annat vill avskaffa meddelarskyddet, hittar man en nyhet som gör en liten nörd på bättre humör igen. Cisco har gjort ett eget protokoll för att kommunicera mellan program på olika maskiner, kallat Etch. Corba trodde jag dog för 10 år sedan, men att främsta konkurrenten är SOAP stämmer nog bra. Vilket i sig är ganska konstigt, eftersom det är så pass dåligt.

Ja visst, basen är HTTP och XML, och så långt är det ju bra. Det blir inte supersnabbt, men borde vara portabelt. Bortsett då från att allt ”kul” man vill göra finns i 18 olika versioner. Antingen ska t.ex. användarnamn och lösenord ligga i en HTTP-header, eller så ska det ligger i en ”Head”-sektion, eller som en cookie efter en normal login-fråga. Sannolikheten för att de två system som ska prata med varandra stödjer samma version är noll.

Samma sak med lite mer komplexa strukturer. Ja visst, att skicka en integer och en sträng för att göra ett ”Hello World” fungerar jättebra. Men vill jag skicka en egen struktur med några fält försvinner 75% av de SOAP-paket som finns. Vill jag dessutom skicka subklasser eller strukturer i strukturer, försvinner 20% till. Sedan vill jag skicka enums, t.ex. en förbestämd lista med värden, som ”0, 90, 180, 270”, blir man effektivt av med de sista 5%. Inga speciellt avancerade saker, bara snäppet mer än ”enklaste möjliga”, varpå allting ramlar ihop.

Att två SOAP-system ska kunna prata med varandra enbart baserat på att de ”kan prata SOAP” är lika fånigt som att tro att en svensk skulle kunna förstå kinesiska, eftersom båda språken använder vokaler och konsonanter. SOAP är ungefär som etanol. Kanske en bra idé från början, men när man försöker skala upp det och använda det i verkligheten, går allting sönder.

I version två av Rails gick de över till REST istället, och alla vettiga system pratar helst XMLRPC. Mycket enklare, och därför med väldigt mycket mer kompletta implementation överallt. Får hoppas att Etch når samma miniminivå på täckningsgrad, så att alla system faktiskt kan prata med varandra utan att behöva begränsa sig till den innersta procenten av funktioner som i SOAP. Jag ger härmed Etch mina varmaste lyckönskningar, och ser fram emot en tydlig specifikation och fungerande referensimplementationer i alla normala språk.

Andra bloggar om: , , , , , , , .

Nörd is the new brandman

Jag sa ju det, angående vilka TV-serier som ska fortsätta nästa år.

Vi nördar håller på att få upprättelse, sakta men säkert. Inte för att vi är framme där man på den hippa Stureplansbaren kan använda ”jag är C-programmerare” för att få ställets babes på fall, men det kanske kommer så småningom. Positivt tänkande, positivt tänkande…

Sedan är det lite kul att de har med just en Spectravideo 328, som jag själv hade 1985-1987 någonstans. Jag och en av våra nuvarande riksdagsmän tyckte den var så cool att vi drev SSMK, Svenska Spectravideo och MSX-Klubben under några år, vilket inkluderade både kundsupport, tidningsutgivning och lite annat. Jag hittade några överblivna exemplar av tidningen ganska nyligen, och bläddrade igenom dem. Jo… de var ju fina, och med jättefin layout. *host*

Andra bloggar om: .

Spyware från musikbranschen

Stim får ursäkta, men det finns inte en suck i universum att jag skulle installera deras spyware för att de ska kunna se vad jag lyssnar på. De är en del av en bransch som inte riktigt har visat sig speciellt pålitliga när det gäller mjukvara. Vaddå, är det orättvist att låta Stim bära lite ansvar för Sonys rootkitfiasko förut? Tja, kanske. Det är helt enkelt så att inte ett enda av de företag som pysslar med media har visat minsta tecken på att man som kund kan lita på dem. Sony kör med rootkit. Microsoft stänger av sina ”Plays For Sure”-servrar. Nästan alla (som vanligt förutom ungefär eclassical och NiN, för att jämföra äpplen och kaffekoppsdekorationer) vill ha antingen DRM eller vattenmärkning, för att tydligt visa att de hatar sina kunder och förutsätter att de är ”kriminella”. Förtroende måste förtjänas, det fungerar liksom inte att hela tiden krossa det, och sedan säga ”men NU kan ni lita på oss”. Jo men tjena.

Stim vill inte legalisera någon fildelning, om nu någon fortfarande trodde det. De fortsätter alltjämt sin jakt på att försöka kontrollera och övervaka vad kunderna gör, ingenting annat. Att dessutom basera betalningen på användande är ett så skumt tankefel att man bara blir ledsen. Sälj en produkt som jag vill betala för, istället för att försöka hitta på avgifter överallt där den enda motivationen är ”det är många som gör vad-det-nu-är, alltså ska vi ha X pengar för det, eftersom X * många = mycket”. Vi lever i en marknadsekonomi. Vill ni ha mina pengar, får ni erbjuda någonting i gengäld. Att komma gråtande och säga ”men vi fick ju mer pengar förut” räcker inte.

Om man nu bortser från att Stims spyware bara kommer finnas för Windows och ett år senare kanske för Mac, är en förutsättning för att jag ska installera någonting på min dator att det är open source. Ge mig källkoden, annars är jag inte intresserad. Dessutom under villkor så att vem som helst kan sprida den vidare, så att fler kan undersöka den för säkerhetshål och vad det nu kan vara. Därefter tar det inte många sekunder innan källkoden är ändrad så att den 24/7 rapporterar att jag bara spelar albansk folkmusik. Inte fel med det, men kanske inte inom Stims domäner. Varför? Som vanligt, ”därför att det går”, och för att jävlas med alla som envisas med att vilja avlyssna och bevaka oskyldiga människor bara för att tillfredsställa sina egna kontrollbehov.

Länk: DN

Andra bloggar om: , , , .

Stereotyper

På flygplatsen i Prishtina var det som vanligt en liten passkontroll. Snubben i luckan var en typisk butter jugge. Två meter lång, nästan lika bred, och armar tjockare än mina lår, enbart på grund av muskler. Förmodligen åt han Krissys kattungar till frukost, bara för att visa hur hård han var.

Så han frågade vad jag hade gjort där, och gissade först själv på att jag ingick i KFOR-styrkan. Det var den andra personen på den här resan som trodde det, vad sjutton ger jag för vibbar egentligen? Så jag sa att jag hade gjort lite SMS-saker åt Ipko, som nu är Kosovos andra mobiloperatör. Då log han, gav tillbaka mig mitt pass och sa ”hejdå” på klingande svenska.

Öh, va? Kunde han ens le? Och prata svenska, om än bara en fras?

Det är så störande när folk inte passar in i ens (fördomsfulla) stereotyper. Den mentala närvaron att be att få ta kort på honom eftersom det ändå inte var någon kö infann sig inte, minst sagt. Jag ville bara hoppa in i kuren, skaka om honom och ropa ”DU GÖR FEL!”, men det hade eventuellt inte varit helt lyckat. Kul ja visst, men inte lyckat.

Andra bloggar om: , .