Bara för att jag hållt käft på bloggen ett tag så betyder det inte att inte jag också kan snacka lite FRA. Sent ur startgroparna kan tyckas, men i alla fall.
Ungefär en vecka innan den olycksaliga lagen klubbades igenom försökte jag mig på lite direktdemokrati genom att maila ett urval av våra kära folkvalda för att försöka ingjuta lite folkvett och ryggrad hos dem. Jag cc:ade givetvis FRA:s generaldirektör Ingvar Åkesson så att han i lugn och ro, på kammaren, skulle kunna signalspana på mina mail även om serverparken inte snurrat igång ännu.
Reinfeldt låter ju som en repig skiva när han upprepar att lagens motståndare 'inte förstår' vad signalspaning innebär.
I så fall är vi i gott sällskap. En av riksdagsmännen (som iaf hade den goda smaken att inte svara med ett canned response, vilket de flesta gjorde), skrev bl a såhär:
... Sannolikheten att ett mejl från dig skulle fastna i FRA:s sökningar är så nära noll man kan komma - ÄVEN om du ägnade en hel vecka åt att försöka sätta ihop ett mejl som "fastnar"...
Hmm, antingen är det fullt med moroner på FRA som sitter och pillar sig i naveln. Eller också är det våra riksdagsmän som borde bli lite mer informerade.
Vad ska FRA spana på om inte innehållet i mailen? Givetvis kommer en del av spaningen innefatta en filtrering på en uppsättning nyckelord. Säkert också en hel massa andra kluriga algoritmer för att poängsätta mail på nån slags misstänkt-skala där de mest suspekta kommer granskas manuellt av nån 43-årig pot-bellied loser på FRA som aldrig riktigt blev av med sin acne.
Jag är nog rätt säker på att man skulle kunna fastna i nåt filter om man skickar lite jihad-mail mellan några yahoo-konton med arabisk-klingande användarnamn.
Sen sitter Federley och nästan gråter för att han fått smaka partipiskan. Vi har ju för f-n valt personer till riksdagen, inte partier. I annat fall skulle man ju kunna ha en person per parti och bara vikta rösterna efter valresultatet. Slut på pinsamma (för partierna) situationer där inte alla tycker som partiet.
Federley höll sen på att skita på sig av lycka när de 'tänkte om' och utsåg nåt nytt värdelöst tjänstemanna-organ som skall övervaka FRA. Då kunde han vika sig för partipiskan och slapp åka ur riksdagen och kanske faktiskt behöva söka ett riktigt jobb.
De här övervakarna över hemlige Ingvar och hans anhang kommer nog inte kunna uträtta så mycket misstänker jag. FRA:s verksamhet är ju det hemligaste som finns, så jag kan tänka mig att mötena kommer gå till ungefär så här:
Ingvar: Välkomna till juli månads möte mellan FRA och Datainspektionen
Övervakare: Hur går det egentligen till med spaningen rent tekniskt? Vad är det för begrepp ni filtrerar på? Vilka volymer av mail och annan kommunikation har blivit föremål för manuell inspektion? Har ni avvärjt några hot med hjälp av signalspaningen?
Ingvar: Nja, nu måste jag nog svara som jag gjorde vid vårt förra möte: Det är hemligt alltihop.
Övervakare: Ok, men lovar ni att ni inte gör nåt fuffens med all den här trafiken då?
Ingvar: Javisst lovar vi det. Precis som förra månaden.
Övervakare: Jahapp. Då får jag tacka så mycket, då.
Ingvar: Ja, tack själv för visat intresse!
Och vem vet? Den där kufiga snubben i din trappuppgång - han med den dåliga hyn och tveksamma hygienen. Du vet han som brukar öppna dörren bara en centimeter och stirra med ett blodsprängt öga när du är på väg upp till din lägenhet. Vem vet om inte det är vår FRA-loser som kan få för sig att privatspana lite på din trafik när ingen märker nåt.
Det är i alla fall säkert att ingen nånsin kommer få veta nåt om den saken...
Friday, August 15, 2008
Tuesday, August 12, 2008
No more AFK (Away From Keyboard)
Hej igen.
Tröttnade av nån anledning på att blogga. Sen gick jag av en händelse alldeles nyligen in på bloggen och insåg att allt som stod där var precis som jag tycker! Briljant! (Kanske inte så förvånande när man betänker att det var jag som skrev det).
Nåväl. Jag måste se till att mina fans (alla nio) får vad de vill, så därför har jag beslutat att börja igen.
Inte utan problem dock. Eftersom man måste logga in med ett gmail-konto på denna bloggmotorn och jag, eftersom jag är paranoid, inte använder mitt riktiga konto så krävs det att man kommer ihåg sitt pseudo-konto.
Det gjorde jag inte, vilket fördröjde mitt återträde i bloggosfären (påminn mig förresten om att jag ska skalla alla som använder begreppet 'bloggosfären').
Till sist visade det sig att IE på min laptop kom ihåg mitt pseudo-username på gmail efter att jag gått igenom alfabetets bokstäver systematiskt. När det väl var klart var det bara att använda det universella slask-lösenordet så var jag back-in-business!
Sura nu inte för att jag inte hört av mig senaste tiden, utan var istället glad, säg emot, negga o bråka, för det är det jag tänker göra.
Tröttnade av nån anledning på att blogga. Sen gick jag av en händelse alldeles nyligen in på bloggen och insåg att allt som stod där var precis som jag tycker! Briljant! (Kanske inte så förvånande när man betänker att det var jag som skrev det).
Nåväl. Jag måste se till att mina fans (alla nio) får vad de vill, så därför har jag beslutat att börja igen.
Inte utan problem dock. Eftersom man måste logga in med ett gmail-konto på denna bloggmotorn och jag, eftersom jag är paranoid, inte använder mitt riktiga konto så krävs det att man kommer ihåg sitt pseudo-konto.
Det gjorde jag inte, vilket fördröjde mitt återträde i bloggosfären (påminn mig förresten om att jag ska skalla alla som använder begreppet 'bloggosfären').
Till sist visade det sig att IE på min laptop kom ihåg mitt pseudo-username på gmail efter att jag gått igenom alfabetets bokstäver systematiskt. När det väl var klart var det bara att använda det universella slask-lösenordet så var jag back-in-business!
Sura nu inte för att jag inte hört av mig senaste tiden, utan var istället glad, säg emot, negga o bråka, för det är det jag tänker göra.
Tuesday, February 12, 2008
Code Review Part Two
Kodgranskning är en vacker tanke och utförd regelbundet och med relativt korta mellanrum så blir det säkert en produktiv övning.
Alla kodgranskningar jag nånsin gjort eller varit utsatt för har varit one-offs, när nån chef får för sig att bedriva kvalitets-arbete.
Det är ju sällan så att nån ensam sitter och kodar årsvis och inte visar sin kod för nån - det är ju i princip alltid shared code ownership, så de andra i projektet är inne och pillar och fixar och det pågår såklart en ständig diskussion när man ser nåt tokigt nån gjort (för själv gör jag ju aldrig nåt tokigt ;-).
Tricket med kodgranskning är ju dock ofta att det kommer nån extern (=utanför projektet) och kikar på koden. Problemet som uppstår då är att det inte är rimligt att vederbörande läser all kod. Alternativen är stickprov, be utvecklarna plocka ut exempelkod, eller ta hjälp av nåt kodanalysverktyg som hittar skumheter i koden.
Det finns såklart svagheter med alla dessa approacher.
Alla system har sina ugly spots. Nästa kandidater för refactoring. De funkar, men koden ser för jävlig ut. Man kanske, för att spara fyra dagars utvecklingstid nån gång inför en release förra våren, la business-logik i en jsp-sida eller nåt. Man vet om det, man ska fixa det nån gång när man får tid.
Om stickprovaren hittar den koden så har man en del explaining to do. Om man själv får välja koden som skall reviewas så lär inte ful-bitarna komma med - alltså inte heller en representativ bild av systemet. Analysverktyg är bra och hittar död kod, tomma catchar och ostängda streams osv.
Problemet är att det kan bli väldigt mycket brus i rapporteringen från såna verktyg. Varningar ges ofta för saker som kan ses som kodstil snarare än suspekt kod (exempel är t ex huruvida man returnerar immutable collections, nåt som definitivt oftast är overkill utom i fallet då man bygger komponenter som skall användas av tredje part).
Ett annat problem är att man kan luras att lita på verktyget för mycket - en clean slate från analysverktyget ger en illusion av att allt är hunky-dory. Men den kan mycket väl släppa igenom en dylik kodsnutt skriven av nån projektmedlem (som borde skjutas):
Det bästa är nog att göra kodgranskning till en del av ett projekt från första början - granska de tio första klasserna i projektet. Återkom sedan periodiskt för att sedan släppa projektet fritt när alla är överens om hur koden skall skrivas.
Ful-bitar i projekt finns alltid och är därför ok. Bör dock märkas upp med kommentarer som förklarar varför fulfixen finns och TODO:-markeras så att de snappas upp av din favorit-IDE.
Kodanalysverktyg skall användas från början och gärna köras som en del i continous builds (varför inte publicera resultatet på intranätet).
Alla kodgranskningar jag nånsin gjort eller varit utsatt för har varit one-offs, när nån chef får för sig att bedriva kvalitets-arbete.
Det är ju sällan så att nån ensam sitter och kodar årsvis och inte visar sin kod för nån - det är ju i princip alltid shared code ownership, så de andra i projektet är inne och pillar och fixar och det pågår såklart en ständig diskussion när man ser nåt tokigt nån gjort (för själv gör jag ju aldrig nåt tokigt ;-).
Tricket med kodgranskning är ju dock ofta att det kommer nån extern (=utanför projektet) och kikar på koden. Problemet som uppstår då är att det inte är rimligt att vederbörande läser all kod. Alternativen är stickprov, be utvecklarna plocka ut exempelkod, eller ta hjälp av nåt kodanalysverktyg som hittar skumheter i koden.
Det finns såklart svagheter med alla dessa approacher.
Alla system har sina ugly spots. Nästa kandidater för refactoring. De funkar, men koden ser för jävlig ut. Man kanske, för att spara fyra dagars utvecklingstid nån gång inför en release förra våren, la business-logik i en jsp-sida eller nåt. Man vet om det, man ska fixa det nån gång när man får tid.
Om stickprovaren hittar den koden så har man en del explaining to do. Om man själv får välja koden som skall reviewas så lär inte ful-bitarna komma med - alltså inte heller en representativ bild av systemet. Analysverktyg är bra och hittar död kod, tomma catchar och ostängda streams osv.
Problemet är att det kan bli väldigt mycket brus i rapporteringen från såna verktyg. Varningar ges ofta för saker som kan ses som kodstil snarare än suspekt kod (exempel är t ex huruvida man returnerar immutable collections, nåt som definitivt oftast är overkill utom i fallet då man bygger komponenter som skall användas av tredje part).
Ett annat problem är att man kan luras att lita på verktyget för mycket - en clean slate från analysverktyget ger en illusion av att allt är hunky-dory. Men den kan mycket väl släppa igenom en dylik kodsnutt skriven av nån projektmedlem (som borde skjutas):
public void criticalBusinessFunction() {
try {
// do a lot of stuff that definitely
// needs to be exception handled with care
} catch(Throwable t) {
t.printStackTrace();
}
}
Det bästa är nog att göra kodgranskning till en del av ett projekt från första början - granska de tio första klasserna i projektet. Återkom sedan periodiskt för att sedan släppa projektet fritt när alla är överens om hur koden skall skrivas.
Ful-bitar i projekt finns alltid och är därför ok. Bör dock märkas upp med kommentarer som förklarar varför fulfixen finns och TODO:-markeras så att de snappas upp av din favorit-IDE.
Kodanalysverktyg skall användas från början och gärna köras som en del i continous builds (varför inte publicera resultatet på intranätet).
Friday, February 8, 2008
Kaos är kanske din granne?
Yrkesmässigt så har jag bara funnits till i data-branschen. Från början till slut (inte slut, men nu) i ett ständigt tillstånd av kaos.
Ibland mindre kaos, ibland mer kaos än du skulle önska din KTH-polare-som-snodde-din-flickvän-på-tenta-puben.
Man undrar ju om livet i andra ingenjörs-vetenskaper är likadant. Är det kaos när man ska bygga en ny bro över Svartån i Örebro? Eller är det bara att använda vedertagna standarder, räkna lite på det och sen producera en ritning som den lokala byggaren omsätter i en stilig och hållfast bro?
Skillnaden i ett systemutvecklingsprojekt, om man fortsätter på bro-liknelsen, skulle kunna vara att man tre veckor innan leverans får veta att det måste gå att taxa trafikplan från den lokala flygplatsen över bron (= scope creep). Eller att skyltarna på bron måste visas i 15 språk beroende på var bilen som kör över den är registrerad.
Jag föreställer mig att bron över Svartån är mer lättspecad. Tyngden av bron plus max antal samtidiga fordon gånger pi eller nåt for safety. Rota upp nån gammal ritning över en liknande bro i Arboga, fippla lite i ett schysst CAD-verktyg och sen är man hemma.
Är det så? Har jag fel? Är det bara vi som bor i kaos? Jag uppmanar alla som jobbar med att designa broar att berätta hur det funkar i deras värld.
Ibland mindre kaos, ibland mer kaos än du skulle önska din KTH-polare-som-snodde-din-flickvän-på-tenta-puben.
Man undrar ju om livet i andra ingenjörs-vetenskaper är likadant. Är det kaos när man ska bygga en ny bro över Svartån i Örebro? Eller är det bara att använda vedertagna standarder, räkna lite på det och sen producera en ritning som den lokala byggaren omsätter i en stilig och hållfast bro?
Skillnaden i ett systemutvecklingsprojekt, om man fortsätter på bro-liknelsen, skulle kunna vara att man tre veckor innan leverans får veta att det måste gå att taxa trafikplan från den lokala flygplatsen över bron (= scope creep). Eller att skyltarna på bron måste visas i 15 språk beroende på var bilen som kör över den är registrerad.
Jag föreställer mig att bron över Svartån är mer lättspecad. Tyngden av bron plus max antal samtidiga fordon gånger pi eller nåt for safety. Rota upp nån gammal ritning över en liknande bro i Arboga, fippla lite i ett schysst CAD-verktyg och sen är man hemma.
Är det så? Har jag fel? Är det bara vi som bor i kaos? Jag uppmanar alla som jobbar med att designa broar att berätta hur det funkar i deras värld.
Code Review Part One
En strip som träffar ganska rätt vad gäller kod-review: http://www.osnews.com/images/comics/wtfm.jpg
Tuesday, January 29, 2008
Société Degénérale
Min första rubrik på franska! (och jo, "Degénérale" är menat som en ordvits...).
Har följt rapporteringen (http://www.svd.se/nyheter/utrikes/artikel_815041.svd) om mannen som sumpat 46 miljarder för den franska banken. Fyrtiosex tusen miljoner. I runda slängar en Ferrari 430 Scuderia om dagen i 63 år.
Alla hackar på den stackarn, men rimligen är det nåt ruttet i staten Danmark vad gäller övervakningen av dessa unga män i 30 000-kronors-kostymer som mäter sin manlighet i mätenheterna Rolex, Porsche och storleken på aktieaffärerna.
I en artikel (http://www.svd.se/nyheter/utrikes/artikel_807159.svd) står det att han "lyckades ta sig förbi de säkerhetssystem som banken satt upp". Hmm. Det måste ju ändå vara så att transaktionerna går att härleda till en viss person.
Man kan ju tro att det gått till så att vår käre vän Jerome Kerviel blivit fartblind; han har nog successivt ökat sin omsättning utan att nån slagit larm. Efter en tid känns säkert inte affärer i storleksordningen en miljard Euro som en big deal.
Man hade ju hoppats att följande konversation vid något tillfälle ägt rum på veckans personalmöte på Société Degénérale:
- Eh, bien. Låt se, denna vecka har vi en omsättning på Pierre på 650 000 Euro, Louise har omsatt 760 000 Euro. Olivier har tyvärr bara kommit upp i 270 000 Euro, skärpning Olivier.
- Oui, Monsieur Directeure.
- Bon. Sen har vi Jerome. Han har denna vecka omsatt 1800 000 000 Euro. Merde!
Inget sånt har uppenbarligen förekommit. Förmodligen en simpel rapport från trading-systemet som ingen brytt sig om att beställa.
Det går inte att förstå att de inte sett till att ha ordentlig övervakning av sina anställdas aktiviteter - speciellt i en bonusdriven ersättningsmiljö.
I alla fall är ansvaret delat mellan vår vän Jerome och de som ansvarar för säkerhet och övervakning på banken ifråga.
I värsta fall, och det är nog inte helt otroligt, kände ledningen till det och lät honom hållas så länge det gick bra. När kraschen kommer, så låter man Jerome smaka giljotin...
Har följt rapporteringen (http://www.svd.se/nyheter/utrikes/artikel_815041.svd) om mannen som sumpat 46 miljarder för den franska banken. Fyrtiosex tusen miljoner. I runda slängar en Ferrari 430 Scuderia om dagen i 63 år.
Alla hackar på den stackarn, men rimligen är det nåt ruttet i staten Danmark vad gäller övervakningen av dessa unga män i 30 000-kronors-kostymer som mäter sin manlighet i mätenheterna Rolex, Porsche och storleken på aktieaffärerna.
I en artikel (http://www.svd.se/nyheter/utrikes/artikel_807159.svd) står det att han "lyckades ta sig förbi de säkerhetssystem som banken satt upp". Hmm. Det måste ju ändå vara så att transaktionerna går att härleda till en viss person.
Man kan ju tro att det gått till så att vår käre vän Jerome Kerviel blivit fartblind; han har nog successivt ökat sin omsättning utan att nån slagit larm. Efter en tid känns säkert inte affärer i storleksordningen en miljard Euro som en big deal.
Man hade ju hoppats att följande konversation vid något tillfälle ägt rum på veckans personalmöte på Société Degénérale:
- Eh, bien. Låt se, denna vecka har vi en omsättning på Pierre på 650 000 Euro, Louise har omsatt 760 000 Euro. Olivier har tyvärr bara kommit upp i 270 000 Euro, skärpning Olivier.
- Oui, Monsieur Directeure.
- Bon. Sen har vi Jerome. Han har denna vecka omsatt 1800 000 000 Euro. Merde!
Inget sånt har uppenbarligen förekommit. Förmodligen en simpel rapport från trading-systemet som ingen brytt sig om att beställa.
Det går inte att förstå att de inte sett till att ha ordentlig övervakning av sina anställdas aktiviteter - speciellt i en bonusdriven ersättningsmiljö.
I alla fall är ansvaret delat mellan vår vän Jerome och de som ansvarar för säkerhet och övervakning på banken ifråga.
I värsta fall, och det är nog inte helt otroligt, kände ledningen till det och lät honom hållas så länge det gick bra. När kraschen kommer, så låter man Jerome smaka giljotin...
Friday, January 25, 2008
Ta steget?
Satt idag och kodade ramverk för XML-ifiering av objekt som en del i ett projekt för en plattform vi ska använda inom organisationen.
Kul? Javars.
Gjort det förut? You bet. Inget nytt under solen. Visst finns det utmaningar, men det mesta har man sett förut och undviker därför tidigare pitfalls man trillat i (det är väl det som erfarenhet ger).
Blev jag gladare? Hmm. Det börjar snart bli dags att fundera på om jag ska fortsätta på utvecklarbanan och bli ett skägg eller ta steget till att bli nånslags chef (fast det känns inte riktigt rätt heller).
Talande är kanske att jag tycker det är roligare att rita streck och pilar och berätta för andra (=kodapor) hur saker och ting borde implementeras istället för att koda själv.
Kodar-mässigt är jag bättre än fler jag är sämre än - fast absolut ingen superkodare. Jag kommer inte att kläcka ur mig nästa 3D-motor för first-person-shooters eller nästa trådnings-stöd i Linux-kärnan. Det jag är vass på är att bygga på befintliga grejer och se helheten. Och det räcker för att tjäna ihop till blodpuddingen.
Det tråkiga med hela chefs-biten är att det finns ju få chefsjobb som inte innefattar personalansvar. Det brukar ju annars vara den karriärväg som erbjuds - från senior utvecklare till mellanchef med utvecklingssamtal, löneförhandlingar och snack med Nisse som har alkoholproblem.
Konstigt, det där. Ta en snubbe med vässad kompetens inom ett område och ge honom ett annat jobb (=mellanchef) för vilket han har nada utbildning, noll erfarenhet och tveksam entusiasm.
Det borde finnas fler jobb där man dompterar kodaporna (=ritar pilar och streck) men slipper MS Project, Gant-scheman, budgetar, personalplanering och utvecklingssamtal med folk man knappt känner.
Har du ett jobb som passar, så hör av dig...
Kul? Javars.
Gjort det förut? You bet. Inget nytt under solen. Visst finns det utmaningar, men det mesta har man sett förut och undviker därför tidigare pitfalls man trillat i (det är väl det som erfarenhet ger).
Blev jag gladare? Hmm. Det börjar snart bli dags att fundera på om jag ska fortsätta på utvecklarbanan och bli ett skägg eller ta steget till att bli nånslags chef (fast det känns inte riktigt rätt heller).
Talande är kanske att jag tycker det är roligare att rita streck och pilar och berätta för andra (=kodapor) hur saker och ting borde implementeras istället för att koda själv.
Kodar-mässigt är jag bättre än fler jag är sämre än - fast absolut ingen superkodare. Jag kommer inte att kläcka ur mig nästa 3D-motor för first-person-shooters eller nästa trådnings-stöd i Linux-kärnan. Det jag är vass på är att bygga på befintliga grejer och se helheten. Och det räcker för att tjäna ihop till blodpuddingen.
Det tråkiga med hela chefs-biten är att det finns ju få chefsjobb som inte innefattar personalansvar. Det brukar ju annars vara den karriärväg som erbjuds - från senior utvecklare till mellanchef med utvecklingssamtal, löneförhandlingar och snack med Nisse som har alkoholproblem.
Konstigt, det där. Ta en snubbe med vässad kompetens inom ett område och ge honom ett annat jobb (=mellanchef) för vilket han har nada utbildning, noll erfarenhet och tveksam entusiasm.
Det borde finnas fler jobb där man dompterar kodaporna (=ritar pilar och streck) men slipper MS Project, Gant-scheman, budgetar, personalplanering och utvecklingssamtal med folk man knappt känner.
Har du ett jobb som passar, så hör av dig...
Subscribe to:
Posts (Atom)