Mats Henricson

Mats Henricson

Saker som blippar på min radar

Actors Galore

När jag började lära mig Scala så stötte jag direkt på Actors, ett koncept snott från (om jag förstått det hela korrekt) Erlang. Actors är ett sätt att få till concurrency genom att skicka meddelanden, till skillnad från det vi alla under ett decennium svettats med i Java, trådbaserad concurrency. Tanken är att det ska vara ett lättare sätt att programmera inför den multi-core framtid vi står inför.

Att skriva om sin applikation så att den kan hålla ett par kärnor varma låter sig kanske göras, men hur ska en vanlig applikation rimligen få mer än en handfull kärnor att komma över rumstemperatur?

Så kom Kilim, och jag gjorde ett försök att skriva ett enkelt exempel, men min förståelse för hur Kilim fungerade var för ytlig för att jag skulle ro det hela iland. Jag försökte skriva om min primtalsberäknare från JavaSpaces till Kilim, men det visade sig att att ha en master och många workers inte är det gängse sättet att använda sig av actors.

Nå, för en dryg vecka sedan bloggade Sujit Pal om alla de Actors-ramverk som nu dykt upp som svampar ur jorden. Han har fungerande kodexempel för Kilim, Scala Actors, samt Jetlang, ActorFoundry och Actor’s Guild (hehe, fyndigt namn)! Har man en gång utvärderat ett bleeding edge ramverk av den här typen så inser man vilken herkulisk insats han har gjort för att utvärdera fem ramverk!!

Om man detaljstuderar exemplena så ser man en del eleganta detaljer, men också för varje ramverk en del som ger mig lite ont i magen och gör att jag slipar tänderna mot varandra med ett ohälsosamt ljud. Med lite tur sätter sig de olika programmerarna samman och gör en AOP, dvs mergar sina respektive ramverk på samma sätt som AspectWerkz (drivet av en av våra svenska superprogrammerare Jonas Bonér) och AspectJ slog sina påsar samman och skapade den industristandard som vi nu åtnjuter.

SOA är dött, länge leve SO?

Anne Thomas Manes förklarade den 5:e januari SOA som dött, och ett flertal personer har inspekterat liket och godkänt dödsprotokollet. Själv är jag inte bland de närmast sörjande, och sörjer inte heller. Good riddance, som det heter. Tvingade mig själv för ett par år sedan att läsa en hel bok i ämnet för att försöka förstå vad som menades, och sedan dess har jag varje natt legat i fosterställning mellan kalla svettfuktiga lakan.

Det som skrämde mig mest var SOA Governance, som enligt den bok jag läste var en ofantlig överbyggnad på alla de services som ett företag skulle ha, och SOA Governance skulle naturligtvis i sig implementeras med SOA!

Andra har sagt att det är ett "A" för mycket i SOA, att man borde ha koncentrerat sig på Services, och inget annat. Bokstaven "A" luktar BDUF (Big Design Up Front).

Andra har kritiserat SOA att vara inkompatibelt med Agile. Jag tycker den diskussionen är intressant, men exempelvis Scott Ambler håller i kommentarerna inte med, utan tycker att de kan vara kompatibla om man jobbar på rätt sätt. Men jag tycker att fokuseringen på Services är rätt osund. Bokstaven "S" luktar YAGNI (You Ain’t Gonna Need It).

Sedan har vi Carlos Perez som hoppas på SOA 2.0, men frågan är om inte just den bokstavskombinationen har blivit radioaktiv, att man måste använda något annat. Min kollega Per Lundholm brukar säga att huvudfokuset för Agile är affärsvärde (Business Value), och det är kanske så man kan starta om hela denna debatt, genom att kalla det BVO(A). Hm, kanske inte ligger helt rätt i munnen.

Vad kommer egentligen i Java 7?

Alex Miller har haft den intressantaste bloggen för de som intresserat sig för Java 7, och han har en speciell sida där han summerat all information han kommit över.

Java har känts lite övergivet på Sun, tycker jag. Det har inte funnits någon kapten på skeppet. Gosling gör lite som han vill, men driver inget på egen hand som har med Java att göra, verkar det som. Neil Gafter jobbar nu för Microsoft (burr), och Josh Bloch har bytt till Google. Kvar på Sun fanns Gilad Bracha, mannen med den bästa titeln – Computational Theologist – som hade sitt eget språk han snickrade på, Newspeak. Han blev också lockad över till Microsoft, och min gissning var att han blev ditlockad av att få en grupp som kunde driva hans språk framåt. Nå, Microsoft hoppade av, och jag vet inte vad han sysslar med nu.

Kvar på Sun finns Danny Coward. Vet inte om han har karisma och guts nog att driva fram Java 7 med den pondus som behövs. Ett språk behöver en järnhand för att drivas fram i rätt riktning, tror jag.

Hur som helst så har Alex Miller nu gjort en ny gissning av vad Java 7 kommer att innehålla. Inga closures, vilket många tycker är konstigt, med tanke på all den brouhaha som genererats under den rubriken de senaste åren. Jeez. Hur som helst är det rätt intressant läsning!

Analys av alliansens FRA-uppgöresle, punkt 11

I Alliansens uppgörelse om FRA-lagen från 25:e september finns 15 punkter beskrivna. Punkt 11 lyder:

En underrättelseskyldighet till enskild införs.

I min naivitet trodde jag att det betydde att en individ som felaktigt blev avlyssnad skulle få veta det. Helt fel, visar det sig, enligt interna dokument innifrån alliansen, för ansvaret ligger på oss individer att fråga, högst en gång per år, om vi blivit felaktigt avlyssnade. Det svar man kommer att få är endera "Ja, du har blivit felaktigt avlyssnad, vänd dig till JK så ska vi se om du har rätt till ersättning", eller "Det finns ingen orsak till ersättning".

Så, om min privata kommunikation felaktigt avlyssnats, då får jag skadestånd? Nej, du kan bara få ersättning om dessa fyra villkor är uppfyllda:

  1. Du blev avlyssnad genom direkt avlyssning av just dig, personligen. Blir du avlyssnad för att FRA råkade få en träff på dig när de sökte på någon annan, så har du ingen rätt till ersättning.
  2. Du är hemhörande i Sverige, vilket troligen betyder svensk medborgare eller person med uppehållstillstånd i Sverige. Är man turist på besök, eller väntar på uppehållstillstånd, eller utlänning på affärsresa i Sverige, så kan man känna sig blåst. Och naturligtvis alla andra, misstänkta utlänningar som bor utanför Sverige.
  3. Du anses ha blivit felaktigt avlyssnad, dvs man trodde att du var bin Ladins högra hand i Sverige, men det visade sig vara fel.
  4. Avlyssningen inte är sekretessbelagd. Men det kommer ju allt att vara, så det lär ju alltid gälla.

OK, så om jag får reda på att jag inte har rätt till ersättning, vad betyder det? Ingenting! FRA kan ha massor av avlyssnad kommunikation från dig, men de behöver inte avslöja det, enligt punkterna ovan.

Men all trafik som startar och börjar inom Sverige ska ju inte avlyssnas, eller hur? Fel. Det står nu klart att från och med 1:a januari kommer all kommunikation som FRA kan få sina fingrar på kommer att skickas till dem. Den trafik som startar och slutar i Sverige ska raderas, men först efter att det loggats, vilket troligen betyder att man behåller kopplingarna i våra sociogram, dvs vem som pratar med vem, men raderar själva meddelandet. I alla fall från datorerna. Om någon anställd på FRA ser att du sexchattar med grannen, och sedan raderar den informationen från FRA:s datorer, så finns ju informationen kvar i den anställdes huvud. Den kan inte raderas, vilket betyder att den kan missbrukas, exempelvis genom utpressning.

Välkomna till det nya Sverige! Jag hoppas ni kommer att trivas!

Analys av alliansens FRA-uppgöresle, punkt 8

I Alliansens uppgörelse om FRA-lagen från 25:e september finns 15 punkter beskrivna. Punkt 8 lyder:

Sökbegrepp som är direkt hänförliga till en viss fysisk person får inte användas utan särskilt tillstånd.

Vad betyder detta? Jag menar att det inte betyder något alls. För det första så måste alla sökningar föregås av ett särskilt tillstånd från en speciell domstol, så vari ligger det speciella här? Måste man fylla i ett speciellt formulär? I så fall vill vi se hur det ser ut! Måste speciella krav vara uppfyllda för att man ska få göra denna typ av sökningar? I så fall vill vi se de kraven. Utan en sådan specificering kan vi som medborgare inte lita på lagen.

Men även om det nu finns ett sådant formulär, eller speciella krav så går de ju enkelt att kringgå. Lägg märke till det lilla ordet "direkt"! Om man indirekt gör en sökning på en specifik person, exempelvis genom att använda sökbegrepp som i praktiken bara passar in på en enda person, så blir ju resultatet detsamma. Istället för att prata om Putin så kan man säga "högsta ledaren i Ryssland" (ingen tror väl något annat).

Och även om man inte ens får göra den typen av indirekta sökningar så kan man söka på en liten grupp. "De två högsta ledarna i Ryssland" ger ju nästan samma resultat.

Min analys är att punkt 8 inte betyder ett smack!

Därför får jag ont i magen av DSL

Martin Fowler, mångas favoritförfattare inom mjukvarubranschen (mig inkluderad), håller på att skriva en bok om DSL (Domain Specific Languages) som ska bli färdig 2010. Det borde väcka min nyfikenhet, men jag får bara ont i magen. Teknostress? Kanske det, men det är något med DSL som inte är nyttigt. Tyvärr har jag har inte kunnat sätta fingret på det, tills Jonas Bandi bloggade med titeln "Have I lost my faith?"

Det Jonas säger, framför allt, är att en DSL ganska snart stöter på 80/20 regeln – helt plötsligt måste man löda och svetsa in features i sin DSL för att lösa de där svåra 20% problemen. Då sitter man med ett språk som börjar bli mer och mer komplext, plus att det är designat av en amatör. För det är svårt att utveckla ett språk.

Är detta önskvärt? Roligt, javisst, men är det rätt sätt att använda produktägarens pengar?