<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5291239097546419135</id><updated>2011-04-21T15:03:15.798-07:00</updated><category term='JBoss'/><category term='mysql'/><category term='java'/><category term='cluster'/><category term='Ointressanta människor som gifter sig'/><category term='scrum.xp'/><category term='development'/><category term='Web Services'/><category term='unit tests'/><category term='best practices'/><category term='UML'/><category term='Programmering'/><category term='depression'/><category term='IIS'/><category term='WebLogic'/><category term='holy ghost'/><category term='C++'/><category term='SOAP'/><category term='c#'/><category term='IT-bubbla'/><category term='test'/><category term='WSDL'/><category term='blogger'/><category term='scrum'/><category term='RUP'/><category term='New sheriff in town'/><category term='Smalltalk'/><category term='Optimering'/><category term='sun'/><category term='microsoft'/><category term='Rational'/><category term='versionshantering'/><category term='J2EE'/><category term='Design Patterns'/><category term='Fuck Darwin'/><category term='blogs'/><category term='svn'/><category term='Bloggtoppen will invade your brain and steal your personality'/><title type='text'>Hellre fåraherde</title><subtitle type='html'>"Fixen borde inte påverka nåt annat"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-332390141543874216</id><published>2009-02-25T15:27:00.000-08:00</published><updated>2009-02-25T16:11:35.863-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ointressanta människor som gifter sig'/><title type='text'>Woah de ska gifta sig!</title><content type='html'>Hoppas att ironin i rubriken framgick iaf lite.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Idag åt jag lunch på Östra Station av alla ställen. Schysst hål i rymd-tid-väven med 50-tals-stuk på inredning, husmans och gubbar som faktiskt vissa förmodligen tror att det verkligen fortfarande är the good ole fifties.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Innan jag gick upp och åt min Mannerströmming (fick senare googla vem fan Mannerström kan tänkas vara och det visade sig vara nån kock), så shoppade jag efter lite lektyr i form av kvällstidning. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jag borde inte köpa kvällstidningar, jag vet. Hela mitt jag föraktar denna hela-listan-av-farliga-födelsemärken-journalistik, men ibland faller jag till föga.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dock inte idag. Idag var hela förstasidan på både A och E upptagen av två lyckliga ungdomar som bestämt sig för att slå sina säckar ihop.  Inte nog med det. Nånstans i häraden av sidorna 2,3 4, 5 , 7-16, mitten och två extra bilagor.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Det blev DN istället. Med bara typ fyra sidor av eländet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Jag har extremt svårt att förstå hela dealen. De ska gifta sig. Good for them. Men mitt liv påverkas inte alls. Jag har inget intresse överhuvudtaget. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Nu ska jag straffas månadervis med löpsedlar, tv-program, debatter där man funderar över om fanskapet ska få kallas prins eller inte. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I don't give a fuck. Och ärligt talat så är de enda som drar nån nytta av det här den värsta sortens skitmedia som i vanliga fall har scoop som Amy Winehouse hudproblem, Britneys trosor och Arnolds gubbtuttar på nån strand.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Monarkin borde avskaffas. I alla fall om man tänker på den stackars ovetande ofödda blivande avkomman  som riskerar att få sin första fylla, första hångel, första misslyckade offentliga framträdande förevigat av vidriga gamar på Veckans Nu eller vad fan de kan tänkas heta.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Det bara underbygger min tes om att det värsta oket som kan tänkas läggas på en människa är kändisskap. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-332390141543874216?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/332390141543874216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=332390141543874216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/332390141543874216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/332390141543874216'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2009/02/woah-de-ska-gifta-sig.html' title='Woah de ska gifta sig!'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-1587069607899611688</id><published>2009-02-20T15:28:00.000-08:00</published><updated>2009-02-20T15:37:00.011-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bloggtoppen will invade your brain and steal your personality'/><title type='text'>Bloggtoppen korrumperar</title><content type='html'>Aaah. Har just tagit bort bloggtoppen-trackingen från sidan.&lt;br /&gt;&lt;br /&gt;Ett steg på vägen i reningsbadet att frigöra mig från statistikens ok. Har tidigare varit inne fett många gånger och kollat hur många besök det varit. Också försökt luska i varför det gått bra en viss dag och försökt återskapa det genom att kommentera andra grejer på samma sajt som jag gjort då.&lt;br /&gt;&lt;br /&gt;Vad trodde jag skulle hända? Det är ju för fan inget kommersiellt projekt - det är personlig terapi på ett offentligt plan.&lt;br /&gt;&lt;br /&gt;Fast jag är fortfarande sucker för kommentarer - så pliiis, kommentera, uppmuntra, negga, skrik.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-1587069607899611688?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/1587069607899611688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=1587069607899611688' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1587069607899611688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1587069607899611688'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2009/02/bloggtoppen-korrumperar.html' title='Bloggtoppen korrumperar'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8717955615834215517</id><published>2009-02-20T15:04:00.000-08:00</published><updated>2009-02-20T15:20:41.618-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='New sheriff in town'/><title type='text'>Between Topics</title><content type='html'>Har just insett att mitt behov att negga kanske sträcker sig utanför mitt yrkesliv.&lt;br /&gt;Jag utvecklas uppenbarligen som människa - varför skulle inte min blogg få göra detsamma?&lt;br /&gt;&lt;br /&gt;Det är bara att inse när man ser på mitt track record vad gäller nya inlägg - när inriktningen på bloggen är systemutveckling och relaterade problem och negg, så tröttnar jag. Och ärligt talat, vem fan tror jag egentligen är intresserad?&lt;br /&gt;&lt;br /&gt;Inte sagt att det inte blir nåt mer utvecklings-negg, men meet the new me: jag kan negga om allt!&lt;br /&gt;&lt;br /&gt;Dessutom är det slut på alla patetiska försök att hora till sig uppmärksamhet genom att kommentera på andra forum och cross-länka och sån skit.&lt;br /&gt;&lt;br /&gt;De som hittar hit är de utvalda få och så ska det förbli.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8717955615834215517?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8717955615834215517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8717955615834215517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8717955615834215517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8717955615834215517'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2009/02/between-topics.html' title='Between Topics'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-6649767839666797051</id><published>2009-02-20T10:44:00.000-08:00</published><updated>2009-02-20T15:21:58.938-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fuck Darwin'/><title type='text'>Off Topic</title><content type='html'>Jag har blivit creationist. Jo, en av de där inskränkta jävlarna som tror att jorden skapades på sju dagar för 4000 år sen eller nåt.&lt;br /&gt;&lt;br /&gt;Anledningen? Jo. Folk är så jävla fula.&lt;br /&gt;&lt;br /&gt;Kolla själv på konsum, i tunnelbanan eller på lunch-restan.&lt;br /&gt;Varenda en av de där skeva jävlarna med flyende haka, hängrövv och skepparkrans skulle alltså vara resultatet av 4 miljarder års sexuellt urval?&lt;br /&gt;&lt;br /&gt;Smaka på det uttrycket 'sexuellt urval'. Efter fyra miljarder år borde vi för fan vara über-sexiga knullmonster. Men folk är fulare än stryk. Ergo - ingen evolution.&lt;br /&gt;&lt;br /&gt;Istället - design. Fan vet hur intelligent dock.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-6649767839666797051?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/6649767839666797051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=6649767839666797051' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6649767839666797051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6649767839666797051'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2009/02/off-topic.html' title='Off Topic'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-6510026691917383588</id><published>2008-09-12T15:55:00.000-07:00</published><updated>2008-09-12T16:02:14.905-07:00</updated><title type='text'>Jag och Usama</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_LRunqyTBUFA/SMrz5SB5j4I/AAAAAAAAAAU/4Y1iL-Y8WyM/s1600-h/liffi.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5245272881444261762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_LRunqyTBUFA/SMrz5SB5j4I/AAAAAAAAAAU/4Y1iL-Y8WyM/s320/liffi.jpg" border="0" /&gt;&lt;/a&gt; WTF?!? Fett mycket uppmärksamhet på nine-eleven (graf från bloggtoppen.se). Kan inte vara ett bra tecken. Kanske är det &lt;strong&gt;mrpi&lt;/strong&gt; som lurat hit folk (se kommentar på förra inlägget). Tack i så fall, &lt;strong&gt;mrpi&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Skönt att någon hjälper mitt gnäll vidare ut i världen.&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-6510026691917383588?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/6510026691917383588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=6510026691917383588' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6510026691917383588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6510026691917383588'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/09/jag-och-usama.html' title='Jag och Usama'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_LRunqyTBUFA/SMrz5SB5j4I/AAAAAAAAAAU/4Y1iL-Y8WyM/s72-c/liffi.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-1019042973532868558</id><published>2008-09-09T11:32:00.000-07:00</published><updated>2008-09-09T11:55:26.682-07:00</updated><title type='text'>Personalities del 3</title><content type='html'>OK, det jag nu beskriver kanske inte är så mycket en hel personlighet utan mer ett irriterande karaktärsdrag: att låta påskina att man hela tiden vet vad den andre skall säga.&lt;br /&gt;&lt;br /&gt;Det är lite släkt med oskicket att ta äran för andras idéer, men här försöker man liksom få credit för nån annans idé redan innan man hört den, vilket är fett irri.&lt;br /&gt;&lt;br /&gt;Scenario: Jag hade för ett tag sen kommit på en ganska briljant idé (jo, ibland händer det faktiskt!) för att fixa ett problem med buffring av meddelanden mot ett annat system - något som vi har haft en del problems med på senaste tiden. &lt;br /&gt;&lt;br /&gt;Jag börjar dra idén för min kollega - låt oss kalla honom Greger (var kom det namnet ifrån?):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- Jo, Greger, jag tänkte att vi för att fixa problemet så kunde vi istället för att buffra alla...&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- Ja! Jag vet vad du tänker säga!&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- ...OK, jag tänkte vi dels kunde sätta ner TTL för....&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- Precis, jag vet!&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- ...och se till att vi bara buffrar...&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- Ja just det!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ok, ni ser mönstret. Vid det här laget har man liksom tappat sugen. Syftet är rimligen att få motparten att tro att alla möjliga idéer som nån annan kan tänkas komma med redan tänkts i Gregers mästerhjärna vid nåt tillfälle.&lt;br /&gt;&lt;br /&gt;Nåväl. Häromdagen upprepar sig situationen. Jag ska dra en idé (om än inte lika briljant) om ett annat problem för Greger.&lt;br /&gt;&lt;br /&gt;Skillnaden denna gång är att när han första gången avbryter mig och skriker att han vet vad som försiggår i min miniskula lilla patetiska hjärna, så synar jag bluffen:&lt;br /&gt;&lt;br /&gt;-OK, Greger. Vad är det jag tänker säga?&lt;br /&gt;&lt;br /&gt;Pinsam tystnad och nåt mummel om att "det är nåt med hummfrumm som vi...".&lt;br /&gt;&lt;br /&gt;HA!&lt;br /&gt;&lt;br /&gt;Nu kanske det dröjer innan han kör det tricket på mig i alla fall...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-1019042973532868558?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/1019042973532868558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=1019042973532868558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1019042973532868558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1019042973532868558'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/09/personalities-del-3.html' title='Personalities del 3'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-2522468745498374554</id><published>2008-09-05T14:55:00.000-07:00</published><updated>2008-09-05T14:59:53.639-07:00</updated><title type='text'>Mera Corporate Bullshit</title><content type='html'>Kom just på lite mer saker som jag hatar med corporate bullshit-sajter. De har ofta bilder på kostym/dräkt-klädda unga skrattande människor politiskt korrekt av alla raser. Makes me wanna puke.&lt;br /&gt;&lt;br /&gt;Och så har de nästan alltid blått i loggan och bakgrund. Jag börjar allvarligt tro att det inte är på riktigt utan att det är Satan själv som ligger bakom.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-2522468745498374554?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/2522468745498374554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=2522468745498374554' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/2522468745498374554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/2522468745498374554'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/09/mera-corporate-bullshit.html' title='Mera Corporate Bullshit'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8711200178340550653</id><published>2008-09-05T14:11:00.000-07:00</published><updated>2008-09-05T15:31:23.038-07:00</updated><title type='text'>Corporate Bullshit</title><content type='html'>Har suttit idag och researchat lite på nätet efter programvara vi behöver i projektet. Det är ganska så off-the-shelf vi behöver, men man vill ju veta vad man ska köpa och att man köper rätt.&lt;br /&gt;&lt;br /&gt;Jag har gjort det förut och kommer göra det igen (försöka hitta vettig info om produkter alltså).&lt;br /&gt;&lt;br /&gt;Sökning på nätet tillsammans med benägen hjälp av tips från kollegor om vilka produkter som gäller. Bara surfa dit och få no-nonsense beskrivning av programvaran. White papers som beskriver hur det används och hur man integrerar. Uppriktiga redogörelser för begränsningar och scenarion för vilka man faktiskt medger att produkten inte är lämpad.&lt;br /&gt;&lt;br /&gt;As if.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Fleekster Enterprise Edition (Gold) 4.2 allows you to leverage your Business Expertise by data mining your Enterprise giving unprecedented reporting and monitoring possibilites while maintaining data integrity and security over all your data sources. Internet, email, messaging, push and mobile channels allow for instant data awareness across your, and your partners' organizations. In fact, it will display business graphs on your pale hairy ass if you want it to."&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;En massa ord (ok, påhittade, men inte långt från verkligheten), men ingen information. Över huvud taget.&lt;br /&gt;&lt;br /&gt;Det är så jävla avkönat så att det ofta inte ens går att förstå vad de säljer. Ens för nån som varit i branschen i decennier och letar efter just det deras programvara gör.&lt;br /&gt;&lt;br /&gt;Vem har bestämt att det ska vara så? Hoppas de att nån kostymsnubbe ska köpa skitsnacket och bestämma att man ska köpa grisen i floskel-säcken?&lt;br /&gt;&lt;br /&gt;Jag upprepar (för alla som vill lyssna): &lt;strong&gt;JAG FÖRSTÅR INTE VAD ERAN PRODUKT GÖR OCH VAD NI FÖRSÖKER SÄLJA!  &lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Bifogar för säkerhets skull också den engelska versionen för att upplysa våra engelskspråkiga vänner:&lt;/p&gt;&lt;p&gt;&lt;strong&gt;I DON'T UNDERSTAND WHAT YOUR PRODUCT DOES AND WHAT YOU ARE TRYING TO SELL!&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;Och då tillhör jag ändå dem som (indirekt) bestämmer vilken programvara som skall köpas, så jag borde ju tillhöra målgruppen för dessa corporate bullshit-sajter.&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;Påminn mig förresten om att jag skall skalla alla som använder begreppet 'leverage'...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8711200178340550653?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8711200178340550653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8711200178340550653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8711200178340550653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8711200178340550653'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/09/corporate-bullshit.html' title='Corporate Bullshit'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8302061001236491997</id><published>2008-08-15T11:38:00.000-07:00</published><updated>2008-08-15T13:08:17.594-07:00</updated><title type='text'>FRA</title><content type='html'>Bara för att jag hållt käft på bloggen ett tag så betyder det inte att inte jag också kan snacka lite &lt;strong&gt;FRA&lt;/strong&gt;. Sent ur startgroparna kan tyckas, men i alla fall.&lt;br /&gt;&lt;br /&gt;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 &lt;strong&gt;FRA&lt;/strong&gt;:s generaldirektör &lt;strong&gt;Ingvar Åkesson&lt;/strong&gt; så att han i lugn och ro, på kammaren, skulle kunna signalspana på mina mail även om serverparken inte snurrat igång ännu.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reinfeldt&lt;/strong&gt; låter ju som en repig skiva när han upprepar att lagens motståndare 'inte förstår' vad signalspaning innebär.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;... 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"..&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Hmm, antingen är det fullt med moroner på &lt;strong&gt;FRA&lt;/strong&gt; som sitter och pillar sig i naveln. Eller också är det våra riksdagsmän som borde bli lite mer informerade.&lt;br /&gt;&lt;br /&gt;Vad ska &lt;strong&gt;FRA&lt;/strong&gt; 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å &lt;strong&gt;FRA&lt;/strong&gt; som aldrig riktigt blev av med sin acne.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Sen sitter &lt;strong&gt;Federley&lt;/strong&gt; och nästan gråter för att han fått smaka partipiskan. Vi har ju för f-n valt &lt;strong&gt;personer&lt;/strong&gt; till riksdagen, inte partier. I annat fall skulle man ju kunna ha &lt;strong&gt;en&lt;/strong&gt; person per parti och bara vikta rösterna efter valresultatet. Slut på pinsamma (för partierna) situationer där inte alla tycker som partiet.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Federley&lt;/strong&gt; 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 &lt;strong&gt;FRA&lt;/strong&gt;. Då kunde han vika sig för partipiskan och slapp åka ur riksdagen och kanske faktiskt behöva söka ett riktigt jobb.&lt;br /&gt;&lt;br /&gt;De här övervakarna över hemlige Ingvar och hans anhang kommer nog inte kunna uträtta så mycket misstänker jag. &lt;strong&gt;FRA:&lt;/strong&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ingvar&lt;/strong&gt;: &lt;em&gt;Välkomna till juli månads möte mellan FRA och Datainspektionen&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Övervakare&lt;/strong&gt;: &lt;em&gt;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?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Ingvar&lt;/strong&gt;: &lt;em&gt;Nja, nu måste jag nog svara som jag gjorde vid vårt förra möte: Det är hemligt alltihop.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Övervakare&lt;/strong&gt;: &lt;em&gt;Ok, men &lt;strong&gt;lovar&lt;/strong&gt; ni att ni inte gör nåt fuffens med all den här trafiken då?&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Ingvar&lt;/strong&gt;: &lt;em&gt;Javisst lovar vi det. Precis som förra månaden.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Övervakare&lt;/strong&gt;: &lt;em&gt;Jahapp. Då får jag tacka så mycket, då.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;Ingvar&lt;/strong&gt;: &lt;em&gt;Ja, tack själv för visat intresse!&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;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 &lt;strong&gt;FRA&lt;/strong&gt;-loser som kan få för sig att privatspana lite på din trafik när ingen märker nåt.&lt;br /&gt;&lt;br /&gt;Det är i alla fall säkert att ingen nånsin kommer få veta nåt om den saken...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8302061001236491997?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8302061001236491997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8302061001236491997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8302061001236491997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8302061001236491997'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/08/fra.html' title='FRA'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-9205688043859105946</id><published>2008-08-12T15:42:00.000-07:00</published><updated>2008-08-12T16:02:25.618-07:00</updated><title type='text'>No more AFK (Away From Keyboard)</title><content type='html'>Hej igen.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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').&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-9205688043859105946?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/9205688043859105946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=9205688043859105946' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/9205688043859105946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/9205688043859105946'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/08/no-more-afk-away-from-keyboard.html' title='No more AFK (Away From Keyboard)'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-3290270439531974766</id><published>2008-02-12T13:22:00.000-08:00</published><updated>2008-02-13T11:46:24.019-08:00</updated><title type='text'>Code Review Part Two</title><content type='html'>Kodgranskning är en vacker tanke och utförd regelbundet och med relativt korta mellanrum så blir det säkert en produktiv övning.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 ;-).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Det finns såklart svagheter med alla dessa approacher.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;pre&gt;&lt;br /&gt;public void criticalBusinessFunction() {&lt;br /&gt;   try {&lt;br /&gt;      // do a lot of stuff that definitely &lt;br /&gt;      // needs to be exception handled with care&lt;br /&gt;   } catch(Throwable t) {&lt;br /&gt;      t.printStackTrace();&lt;br /&gt;   }&lt;br /&gt;} &lt;/pre&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;b&gt;TODO:&lt;/b&gt;-markeras så att de snappas upp av din favorit-IDE.&lt;br /&gt;&lt;br /&gt;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).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-3290270439531974766?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/3290270439531974766/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=3290270439531974766' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/3290270439531974766'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/3290270439531974766'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/02/code-review-part-two.html' title='Code Review Part Two'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8601431391120543808</id><published>2008-02-08T16:25:00.000-08:00</published><updated>2008-02-08T17:07:26.565-08:00</updated><title type='text'>Kaos är kanske din granne?</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;Ibland mindre kaos, ibland mer kaos än du skulle önska din &lt;strong&gt;KTH&lt;/strong&gt;-polare-som-snodde-din-flickvän-på-tenta-puben.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Ä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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8601431391120543808?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8601431391120543808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8601431391120543808' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8601431391120543808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8601431391120543808'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/02/kaos-r-kanske-din-granne.html' title='Kaos är kanske din granne?'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-1817909912954935618</id><published>2008-02-08T16:13:00.000-08:00</published><updated>2008-02-08T16:17:08.288-08:00</updated><title type='text'>Code Review Part One</title><content type='html'>En strip som träffar ganska rätt vad gäller kod-review: &lt;a href="http://www.osnews.com/images/comics/wtfm.jpg"&gt;http://www.osnews.com/images/comics/wtfm.jpg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-1817909912954935618?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/1817909912954935618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=1817909912954935618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1817909912954935618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1817909912954935618'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/02/code-review-part-one.html' title='Code Review Part One'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8176754488488371904</id><published>2008-01-29T14:46:00.000-08:00</published><updated>2008-01-29T15:34:52.550-08:00</updated><title type='text'>Société Degénérale</title><content type='html'>Min första rubrik på franska! (och jo, "&lt;em&gt;Degénérale"&lt;/em&gt; är menat som en ordvits...).&lt;br /&gt;&lt;br /&gt;Har följt rapporteringen (&lt;a href="http://www.svd.se/nyheter/utrikes/artikel_815041.svd"&gt;http://www.svd.se/nyheter/utrikes/artikel_815041.svd&lt;/a&gt;) om mannen som sumpat 46 miljarder för den franska banken. Fyrtiosex tusen miljoner. I runda slängar en &lt;em&gt;Ferrari 430 Scuderia&lt;/em&gt; om dagen i 63 år.&lt;br /&gt;&lt;br /&gt;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 &lt;strong&gt;Rolex&lt;/strong&gt;, &lt;strong&gt;Porsche&lt;/strong&gt; och storleken på aktieaffärerna.&lt;br /&gt;&lt;br /&gt;I en artikel (&lt;a href="http://www.svd.se/nyheter/utrikes/artikel_807159.svd"&gt;http://www.svd.se/nyheter/utrikes/artikel_807159.svd&lt;/a&gt;) 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Man hade ju hoppats att följande konversation vid något tillfälle ägt rum på veckans personalmöte på &lt;em&gt;Société Degénérale:&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;- 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.&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- Oui, Monsieur Directeure. &lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;- Bon. Sen har vi Jerome. Han har denna vecka omsatt 1800 000 000 Euro. Merde!&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Inget sånt har uppenbarligen förekommit. Förmodligen en simpel rapport från trading-systemet som ingen brytt sig om att beställa.&lt;br /&gt;&lt;br /&gt;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ö.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8176754488488371904?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8176754488488371904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8176754488488371904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8176754488488371904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8176754488488371904'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/socit-degnrale.html' title='Société Degénérale'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-214915449321695246</id><published>2008-01-25T10:18:00.000-08:00</published><updated>2008-01-25T14:39:01.713-08:00</updated><title type='text'>Ta steget?</title><content type='html'>Satt idag och kodade ramverk för &lt;strong&gt;XML&lt;/strong&gt;-ifiering av objekt som en del i ett projekt för en plattform vi ska använda inom organisationen.&lt;br /&gt;&lt;br /&gt;Kul? Javars.&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;strong&gt;Linux&lt;/strong&gt;-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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Det borde finnas fler jobb där man dompterar kodaporna (=ritar pilar och streck) men slipper &lt;strong&gt;MS Project&lt;/strong&gt;, &lt;strong&gt;Gant&lt;/strong&gt;-scheman, budgetar, personalplanering och utvecklingssamtal med folk man knappt känner.&lt;br /&gt;&lt;br /&gt;Har du ett jobb som passar, så hör av dig...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-214915449321695246?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/214915449321695246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=214915449321695246' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/214915449321695246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/214915449321695246'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/ta-steget.html' title='Ta steget?'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-6644334263341487173</id><published>2008-01-20T10:54:00.000-08:00</published><updated>2008-01-20T12:48:58.792-08:00</updated><title type='text'>Could have told you so</title><content type='html'>Läste &lt;strong&gt;SvD&lt;/strong&gt; om projektet &lt;strong&gt;GVD&lt;/strong&gt; - Gemensam VårdDatabas (&lt;a href="http://www.svd.se/opinion/brannpunkt/artikel_787511.svd"&gt;http://www.svd.se/opinion/brannpunkt/artikel_787511.svd&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;En halv miljard bränd. 500 miljoner. 500 000 tusenlappar. Jag har sett det i ett liknande projekt jag själv var med i även om pengarna som brändes där kanske var en tiondel så mycket (fast 50 000 tusenlappar är ju också en slant).&lt;br /&gt;&lt;br /&gt;Utan att veta ett skit om &lt;strong&gt;GVD&lt;/strong&gt; förutom det jag läst i artikeln, så tror jag att jag har en bra idé om vad som gått snett:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Upphandling&lt;/strong&gt;. Upphandling innebär såklart att den billigaste leverantören som uppfyller kriterierna skall göra jobbet. Det ställer dock enorma krav på de inblandade aktörerna. Att en leverantör kommer med en låg prislapp är knappast en garanti för att projektet skall lyckas (snarare tvärtom skulle jag vilja påstå).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Specning&lt;/strong&gt;. Specningen måste vara immaculate för att det skall fungera. Upphandling innebär ju implicit en fastpris-approach och redan där har man byggt in en konflikt. I projektet jag var med i fanns det en diger spec. Diger i form av tjockleken på pärmen, kanske inte lika fyllig vad gäller innehållet. T ex specades rapportdelen sisåhär, och nu citerar jag: "Relevanta rapporter skall kunna genereras från systemet". Försök leverera till den specen i en fastpris-deal där beställaren försöker suga ut det yttersta och du som leverantör sätter klackarna i backen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Integration&lt;/strong&gt;. Från artikeln: "&lt;em&gt;25 journalsystem av olika ålder och kvalitet&lt;/em&gt;". Hmm. Vi snackar säkert en härlig cocktail av system alltifrån nyutvecklat och stordatorsystem via OS/2 till Windows 3.1 med neandertal-version av Access. Helt säkert lösningar som evolverat patch-för-patch med features som styrs av semikolon-separerad data i fritextfält i databasen. En &lt;strong&gt;gränslös&lt;/strong&gt; källa till problem.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Struts-mentalitet&lt;/strong&gt;. Uppenbarligen har ledningen (som talande nog har slutat allihop enl artikeln) högaktningsfullt skitit i alla varningssignaler och istället snackat om hur bra det blir när visionen blir verklighet. As if.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inkompetens&lt;/strong&gt;. Jag tvivlar på att landets skarpaste hjärnor varit på plats när projektet planerades. Det finns såklart lagkrav (t ex att upphandling skall ske) som i viss mån bakbinder de inblandades möjligheter att styra projektets gång, men det är troligt att ingen från beställarsidan insåg att projektet, som det las fram, var i princip omöjligt att genomföra. Det är svårt att lägga skuld på leverantören i detta fall - det är ju inte deras sak att såga ett projekt för att det inte är genomförbart. Det enda resultatet är ju att det går till en annan leverantör.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Greed&lt;/strong&gt;. Nu motsäger jag punkten ovan lite. Det finns självklart ett visst ansvar hos leverantören att backa ur om projektet inte är genomförbart. Här ser det ut som om de säkert insett att det här aldrig går att ro iland, men bedömt att de i alla fall kommer att få betalt för arbetet (=sno våra skattepengar). Så shame-on-you &lt;strong&gt;Oracle&lt;/strong&gt; och &lt;strong&gt;WM-data&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Det som borde gjorts (och jag har såklart ingen aning om ifall det gjordes), är en förstudie som bedömde riskerna med projektet. Hade en bra sådan analys gjorts hade kanske vi kunde lagt 500 000 tusenlappar av våra skattepengar på äldrevård eller nåt annat nyttigt...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-6644334263341487173?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/6644334263341487173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=6644334263341487173' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6644334263341487173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/6644334263341487173'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/could-have-told-you-so.html' title='Could have told you so'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-279285859214313939</id><published>2008-01-19T08:29:00.000-08:00</published><updated>2008-01-20T12:54:43.613-08:00</updated><title type='text'>Personalities del 2</title><content type='html'>Mera persönlichkeiten kommer här (läs den spännande första delen här: &lt;a href="http://hellrefaraherde.blogspot.com/2008/01/personalities.html"&gt;http://hellrefaraherde.blogspot.com/2008/01/personalities.html&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Floater&lt;/strong&gt;. En kille med teknisk kompetens, men inte tillräckligt för att kunna bidra effektivt till projektet. Börjar ofta som utvecklare, men får glida över till mer administrativa sysslor eftersom det han producerar i kodväg inte håller måttet. Plötsligt sitter &lt;strong&gt;The Floater&lt;/strong&gt; som projektledare. Sen går det via mellanchef raka vägen upp i företagsledningen. Om fem år har han optioner, bonusprogram och tjänar dubbelt så mycket som du. Det är ju f-n att man är kompetent. Notera dock att det inte är en variant på 'skit flyter uppåt'-klyschan. Det är inget större fel på karln. Bara det att &lt;strong&gt;The Floater&lt;/strong&gt; inte är tillräckligt vass för att faktiskt producera nåt produktionsmässigt.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Bit Brain&lt;/strong&gt;. Kan ibland överlappa med &lt;strong&gt;The Fresh Guy&lt;/strong&gt;. Programmeringens motsvarighet till att ha gröna fingrar. Han gillar datorer och datorer gillar honom. The Bit Brain producerar reg expar lika fort som du skriver mail. Ovärderlig tillgång i projekt - det är alltid kvalitetskod producerad i rasande fart. &lt;strong&gt;The Bit Brain&lt;/strong&gt; har sällan ambitioner att ta ledande roller och bestämma saker. Du måste mata honom med en spec.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Shit-for-brains&lt;/strong&gt;. Ej att förväxla med &lt;strong&gt;The Slow Poke&lt;/strong&gt;, som faktiskt ofta är kompetent. &lt;strong&gt;Shit-for-brains&lt;/strong&gt; har helt enkelt inte begåvats tillräckligt förståndsmässigt för att kunna koda. Drar ner projektets produktivitet genom att ständigt behöva långrandiga förklaringar. De uppgifter som han får, efter ingående förklaringar komplett med pseudo-kod, blir alltmer triviala alltefter att han misslyckas med att leverera. Att få &lt;strong&gt;Shit-for-brains&lt;/strong&gt; tilldelad till sitt projekt innebär dessutom att de som planerar resurser tycker att de har gett dig en ny resurs, vilket gör att du hamnar längst ner i prioritetslistan nästa gång resurser skall fördelas. Jag gillar svenska arbetsrättslagar, men det vore gött om man kunde få be security följa &lt;strong&gt;Shit-for-brains&lt;/strong&gt; ut ur lokalerna bärandes på en papplåda med en krukväxt och fyra pärmar och personligen elda upp hans passerkort.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Ego&lt;/strong&gt;. Killen som har lite för hög uppfattning om sig själv och sina förmågor. Ofta kompetent, men inte i paritet med vad han låter påskina. En udda fågel i vårt svenska jante-landskap - lite typiskt amerikansk i sin framtoning. &lt;strong&gt;The Ego&lt;/strong&gt; får en att gnissla tänder i tysthet när man hör honom gå på om hur saker och ting skall göras, gärna i möten med ledningen, när man själv läst hans mediokra kod och genomskådar the bullshit. &lt;strong&gt;The Ego&lt;/strong&gt; har också ofta inga problem med att ta credit för andras idéer - något som får dig att vilja karva ut hans lever med en sked (ifall det är din idé han snor). &lt;strong&gt;The Ego&lt;/strong&gt; går det såklart alltid bra för. De som bestämmer saker vet såklart inte att han är medioker utan sväljer hela grejen. De hör aldrig dina tänder som gnisslar...&lt;br /&gt;&lt;br /&gt;Nu börjar jag få slut på karaktärer. Kanske återkommer i ämnet när jag funderat lite till på folk jag haft förmånen att jobba med.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-279285859214313939?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/279285859214313939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=279285859214313939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/279285859214313939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/279285859214313939'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/personalities-del-2.html' title='Personalities del 2'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5488261867301894926</id><published>2008-01-18T16:32:00.000-08:00</published><updated>2008-01-18T17:45:47.893-08:00</updated><title type='text'>Personalities</title><content type='html'>Nu tänker jag försöka nagla ner karakteristika hos folk jag jobbat med. Alla har ju sina egenheter men vissa har fler.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Fresh Guy&lt;/strong&gt; - färsk från högskolan. Ivrig att lära. Ofta briljant kodare, men devoid of självförtroende. Inte sällan överglänser &lt;strong&gt;The Fresh Guy&lt;/strong&gt; dig vad gäller regelrätt kodning. Du får lita till din erfarenhet och pondus (=kagge) för att hävda dig. Det funkar oftast väldigt bra eftersom &lt;strong&gt;The Fresh Guy&lt;/strong&gt; saknar självförtroende och därför gärna undviker alla typer av beslut och överlåter det till dig. &lt;strong&gt;The Fresh Guy&lt;/strong&gt; är en nära nog optimal tillgång i ditt projekt - produktiv, ambitiös och viker inte när det gäller att bygga tråkiga delar av systemet. Beware - &lt;strong&gt;The Fresh Guy&lt;/strong&gt; kommer att försöka sno ditt jobb så fort han (eller tyvärr mer sällan hon) levlat lite på förtroendeskalan.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Pularen&lt;/strong&gt; - ofta low-key kille (nu slutar jag lägga in tjej-brasklappar. Let's face it - det är bara grabbar i vår bransch). Säger inte mycket, men är &lt;strong&gt;alltid&lt;/strong&gt; på jobbet. Kommer du in 7:22 så sitter &lt;strong&gt;Pularen&lt;/strong&gt; där. När du går 17:56 så är &lt;strong&gt;Pularen&lt;/strong&gt; där på sin plats och kommer så vara flera timmar till. Låt oss bara konstatera att det är &lt;strong&gt;Pularen&lt;/strong&gt; som vet bäst hur man larmar på. &lt;strong&gt;Pularen&lt;/strong&gt; levererar ofta bra (men vem fan skulle inte göra det om man jobbade 12 timmar om dan). Baksidan är det sociala - det är uppenbart nåt fel i huvet på &lt;strong&gt;Pularen&lt;/strong&gt;, så det sociala samspelet med projektmedlemmarna blir lidande.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Tech Guy&lt;/strong&gt; - ultra-kompetent, ultra-insnöad. &lt;strong&gt;The Tech Guy&lt;/strong&gt; har inget behov av sociala färdigheter. Root-login på samtliga miljöer smäller högre. &lt;strong&gt;The Tech Guy&lt;/strong&gt; förstår inte att du inte har full kompetens på hans område. Det går aldrig upp för honom att du har andra prioriteter (typ bygga färdigt systemet). Att hantera &lt;strong&gt;The Tech Guy&lt;/strong&gt; innebär att hålla honom nöjd (kom ihåg att han är ultra-kompetent ).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The Slow Poke&lt;/strong&gt; - killen som inte tar för sig (om det inte gäller mormors-hosta-längd på 3-fikat). Ofta kompetent. Det som produceras håller bra kvalitet. Men det produceras inte mycket. Den ledande principen är att varje producerad kodrad kan betyda problem. Den rimligaste slutsatsen för &lt;strong&gt;The Slow Poke&lt;/strong&gt; är att inte producera nån kod. Att hantera &lt;strong&gt;The Slow Poke&lt;/strong&gt; är svårt. Regelrätt konfrontation kanske kan funka. Men sen kommer säkert facket och klagar på att arbetsgivaren vill att de anställda faktiskt ska jobba effektivt under arbetstid&lt;br /&gt;&lt;br /&gt;Det är sent nu, så jag får fortsätta en annan dag...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5488261867301894926?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5488261867301894926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5488261867301894926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5488261867301894926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5488261867301894926'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/personalities.html' title='Personalities'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-4678509307277962586</id><published>2008-01-12T13:28:00.000-08:00</published><updated>2008-01-12T13:29:58.902-08:00</updated><title type='text'>Är du crappy?</title><content type='html'>En ganska bra uppradning varningstecken på att du kanske är en crappy programmer:&lt;br /&gt;&lt;a href="http://damienkatz.net/2006/05/signs_youre_a_c.html"&gt;http://damienkatz.net/2006/05/signs_youre_a_c.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-4678509307277962586?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/4678509307277962586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=4678509307277962586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4678509307277962586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4678509307277962586'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/r-du-crappy.html' title='Är du crappy?'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-4905593591191937645</id><published>2008-01-11T15:35:00.000-08:00</published><updated>2008-01-11T15:51:40.994-08:00</updated><title type='text'>Complexity Killed the Cat</title><content type='html'>Att utveckla system är en komplex verksamhet. Det ska fungera tekniskt, kommersiellt och användarna ska vara glada. Inte så att det krävs övermänniskor för att genomföra projekt, mer så att varje nytt projekt är så olikt det förra - det finns sällan ett facit.&lt;br /&gt;&lt;br /&gt;Det känns som om risken att nåt ska gå snett och få ett projekt att gå i stöpet är så mycket större än möjligheten att det ska gå bra att det är helt magiskt att folk satsar pengar på systemutvecklingsprojekt. Det vittnar verkligen om människans obotliga optimism (och ofta också downright stupidity).&lt;br /&gt;&lt;br /&gt;Nu menar jag inte att det är bara det tekniska som kan fallera. Riskerna är minst lika stora på business-planet.&lt;br /&gt;&lt;br /&gt;Lek med tanken att alla de tiotals miljarder som brändes under IT-bubblan istället investerats i kort som vi alla vet är säkra (porr-, sprit- och vapenindustrierna), så hade de varit hundratals miljarder idag (jag förbehåller mig rätten att bortse från alla etiska implikationer ;).&lt;br /&gt;&lt;br /&gt;Det finns såklart andra verksamheter som är så komplexa att det svindlar. Tänk t ex på det otroliga faktum att vi får en färsk nytryckt &lt;strong&gt;DN&lt;/strong&gt;/&lt;strong&gt;SvD&lt;/strong&gt; eller whatever i brevlådan varje dag. Ett journalistiskt (nåja inte alltid), tekniskt och logistiskt Labero-trick varje dag.&lt;br /&gt;&lt;br /&gt;Skillnaden är att de utför samma trick varje dag. De har kunnat finslipa sitt projekt under årtionden och kan genomföra det med precision just för att det är same-old same-old varje dag.&lt;br /&gt;&lt;br /&gt;Vi har sällan den lyxen.&lt;br /&gt;&lt;br /&gt;Problemet är att själva kaoskomponenten i ett systems livscykel - från idé till fungerande system (eller kod i malpåse) - gör att det inte med framgång går att ta fram ett recept för hur man skall göra. Tumregler är det bästa vi kan hoppas på.&lt;br /&gt;&lt;br /&gt;Och denna ovisshet går att slå mynt av. Det dyker oavbrutet upp folk som menar att de har svaret på alla frågor. Lösningen på alla problem. The silver bullet to rule them all...&lt;br /&gt;&lt;br /&gt;Min tro är att tumregler är all we can hope for.&lt;br /&gt;&lt;br /&gt;Det finns inte:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;ett&lt;/strong&gt; språk/miljö som löser alla problem&lt;/li&gt;&lt;li&gt;&lt;strong&gt;en&lt;/strong&gt; metodik (vattenfall, scrum, xp, rup...) som passar alla utvecklingsprojekverktygsstöd &lt;/li&gt;&lt;li&gt;verktygsstöd (oavsett hur mycket man betalar) som gör projektet till en walk-in-the-park&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;En rimlig fråga är kanske 'Ge mig tumreglerna du jiddrar om, mannen?'.&lt;/p&gt;&lt;p&gt;Där kan jag inte ge nåt svar (jag vill ju inte vara killen med silverkulan)...&lt;br /&gt;&lt;br /&gt;Det enda jag hoppas är att lite av min luttrade cyniska attityd kan smitta av sig lite lagom på alla entusiastiska oerfarna systemutvecklare out there. &lt;/p&gt;&lt;p&gt;Tänk efter innan ni hakar på the-most-recent-best-thing-since-sliced-bread, så slipper ni göra samma misstag som jag gjorde i min ungdom...&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-4905593591191937645?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/4905593591191937645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=4905593591191937645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4905593591191937645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4905593591191937645'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/complexity-killed-cat.html' title='Complexity Killed the Cat'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5281859836012491236</id><published>2008-01-04T15:32:00.000-08:00</published><updated>2008-01-20T13:00:38.485-08:00</updated><title type='text'>Success</title><content type='html'>Vad är framgång för ett projekt?&lt;br /&gt;&lt;br /&gt;Pengar givetvis. Vi gillar alla pengar. Dock är ju framgång ett djur med många personligheter (wow, going overboard with the liknelser där).&lt;br /&gt;&lt;br /&gt;Frågar du projektledaren (=tid-, budgetstyrd), så handlar det om att leverera det som kunden frågat efter (dvs i princip leverera så mycket så att kunden kan övertalas att det räcker och därför ser sig tvungen att punga upp med stålarna).&lt;br /&gt;&lt;br /&gt;Produktägaren vill se pengar över tid. Skit samma om fanskapet funkar som tänkt och byggdes på tid och pengar - nu ska det se till att dra in stålar också. Nya kunder och nya användare.&lt;br /&gt;&lt;br /&gt;Ledningen sitter såklart och räknar pengar in och pengar ut (skit vore väl annars). Förhoppningsvis ser de också goodwill som ett värde; även om ett enskilt projekt/produkt går i stöpet av nån anledning, så kan kunden ändå tänkas beställa mer om projektet genomfördes på ett rätt och riktigt sätt.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Utvecklarna är nöjda i fallande ordning efter följande:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Systemet genererar inga problem som trillar ner så långt att jag behöver göra nåt&lt;/li&gt;&lt;li&gt;Systemet har användare&lt;/li&gt;&lt;li&gt;Systemet har glada användare&lt;/li&gt;&lt;li&gt;Systemet tjänar pengar&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Notera att listan ovan gäller en luttrad utvecklare. En ung, oförstörd dito skulle kanske ha punkt 3 överst och punkt 1 längst ner.&lt;/p&gt;&lt;p&gt;Notera även att listan ovan gör en luttrad cyniker glad även om systemet aldrig kom i drift (ty ett system ej i drift genererar inga problem, se även &lt;a href="http://hellrefaraherde.blogspot.com/2007/12/dlig-dag-p-jobbet.html"&gt;http://hellrefaraherde.blogspot.com/2007/12/dlig-dag-p-jobbet.html&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;Antalet problem som ett system genererar kan, i idealfallet, antas vara en linjär funktion av antalet användare.&lt;/p&gt;&lt;p&gt;Då utesluter man faktorer som att en dubbling av antalet användare kommer locka fram de där prestandaproblemen som ligger och lurar nånstans långt inne i buken på systemet; querysarna som funkar så fint i testmiljön, men som i verkligheten joinar de fetaste tabellerna i en 20 minuters full-table-search-fest.&lt;/p&gt;&lt;p&gt;Disk är billigt, det vet man. Raidade kanske inte lika. Vad man vet dock är att allt jävelskap loggar. Fett med gig med webserver-loggar (till 99,9999999 procent ointressanta, men man måste ju ha dem ifall det är nån som bråkar med systemet).&lt;/p&gt;&lt;p&gt;Backuperna på databasen måste såklart tas. Och sparas nånstans.&lt;/p&gt;&lt;p&gt;Rapporter måste filas på för att gå att köra i rimlig tid när datamängderna växer.&lt;/p&gt;&lt;p&gt;Kort sagt, ditt system blir som en trädgård du anlagt med gräs, fruktträds-yngel och buskar som sen gödslas och växer i en rasande takt så att du efter ett tag inte har tid att lägga ner häcksaxen ens för en kopp kaffe.&lt;/p&gt;&lt;p&gt;Resultatet blir att problemen växer med kvadraten på antalet användare.&lt;/p&gt;&lt;p&gt;Pengar kan antas växa linjärt med antalet kunder/användare på ett system.&lt;/p&gt;&lt;p&gt;See the problem here?&lt;/p&gt;&lt;p&gt;Eftersom man i slutändan (när man står framför Sankte Per?) mäts efter hur mycket pengar produkten drar in så kan man lakoniskt konstatera att om detta mått på framgång används (och vad annat vore rimligt), så gäller följande:&lt;/p&gt;&lt;p&gt;Om produkten blir riktigt framgångsrik så kommer du att sitta med arslet fullt, äta mer Losec än Kicki D äter falukorv och ha ett rätt ryckigt arbetsschema med nattmanglingar remote hemifrån). &lt;/p&gt;&lt;p&gt;Då är det dags att se till att man har ordentligt betalt eller att söka sig till greener pastures...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5281859836012491236?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5281859836012491236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5281859836012491236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5281859836012491236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5281859836012491236'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2008/01/success.html' title='Success'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-7056108819567326697</id><published>2007-12-13T11:16:00.000-08:00</published><updated>2007-12-13T11:26:01.194-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum.xp'/><title type='text'>Scrumbled Eggs</title><content type='html'>&lt;p&gt;Vi kör ju &lt;strong&gt;Scrum&lt;/strong&gt;. Såklart. Nåt annat (som inte på annat sätt är tillräckligt agilt typ &lt;strong&gt;XP&lt;/strong&gt;) år 2007 vore som ta en helkväll på Stureplan iförd banlonpolo, terylene-byxor och helskägg - ganska bakåtsträvande/framstegsfientligt alltså.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Scrum&lt;/strong&gt; hanterar i princip deadlines genom att säga 'den tredje november har vi release'. Vad som kommer med då är de högst prioriterade backlog items som vi hunnit med. Man har något körbart efter varje sprint som, i princip, kan tas i drift närsomhelst förutsatt att det iaf täcker in de mest basala (och högst prioriterade) backlog items som krävs för att systemet skall kunna ge &lt;em&gt;nån&lt;/em&gt; affärsnytta.&lt;br /&gt;&lt;br /&gt;I bästa fall får man kunden med sig på tåget genom att de inser att de kommer få ett bättre, mer ändamålsenligt system än om det utvecklas med mer traditionella metoder, gärna kryddat med en vag kravspec och framtaget till fastpris och med hård deadline.&lt;br /&gt;&lt;br /&gt;Har suttit i mer än ett fastpris/vag kravspec/hård deadline-projekt och kan intyga att det tar fram de värsta sidorna hos människan. Kunden försöker knö in så mycket features som bara är möjligt givet den vaga kravspecen medan projektet stretar åt andra hållet och ledningen piskar utvecklarna till att jobba kväll och helg in absurdum.&lt;br /&gt;&lt;br /&gt;Resultatet blir ofta minst ett av följande:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Kraschat projekt&lt;/li&gt;&lt;li&gt;Law suits och rättstvister&lt;/li&gt;&lt;li&gt;Pajade personliga relationer för de stackars utvecklarna&lt;/li&gt;&lt;li&gt;Brain drain på företaget när de utnyttjade stackarna flyr till grönare ängder&lt;/li&gt;&lt;li&gt;Total förtroendekris mellan kund och leverantör&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;Jag har suttit i ett projekt som prickade in fyra av de fem ovanstående punkterna (det blev aldrig law suit, men advokater togs in som lusläste kontrakt för att se om möjligheten fanns).&lt;br /&gt;&lt;br /&gt;Så varför berättar jag då detta? Jo, vi som iaf officiellt höjer &lt;strong&gt;Scrum&lt;/strong&gt; till skyarna har precis sålt in ett projekt till kund på fastpris, med vag kravspec och hård deadline.&lt;br /&gt;&lt;br /&gt;Låt oss be till de högre makterna att det inte går som det brukar...&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Läs mer om &lt;strong&gt;Scrum&lt;/strong&gt; här: &lt;a href="http://hellrefaraherde.blogspot.com/2007/11/15-minuter-daglig-masspsykos.html"&gt;http://hellrefaraherde.blogspot.com/2007/11/15-minuter-daglig-masspsykos.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-7056108819567326697?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/7056108819567326697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=7056108819567326697' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7056108819567326697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7056108819567326697'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/scrumbled-eggs.html' title='Scrumbled Eggs'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-7160092765397527120</id><published>2007-12-12T10:06:00.000-08:00</published><updated>2007-12-12T10:08:50.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='versionshantering'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Konflikträdsla</title><content type='html'>Hur kan det komma sig att vuxna män (let's face it, det är mest Y-kromosomer i vår bransch) som utan att blinka droppar tabeller i produktionsdatabasen när så krävs, får en liten svettpärla i pannan när de får en konflikt i &lt;strong&gt;svn&lt;/strong&gt;?&lt;br /&gt;&lt;br /&gt;Så till den milda grad att de ger sig på att committa sina ändringar både på trunken och den branch vi fixar buggar på (och därmed bäddar för klart mer skumma mergningar senare).&lt;br /&gt;&lt;br /&gt;Det är också de som får en osäkerhetsrynka i pannan när ändringar ska mergas mellan brancher.&lt;br /&gt;&lt;br /&gt;Det är nåt med versionshantering som gör att folk regredierar till ett osäkert finnigt högstadietillstånd och med flackande blick väntar på att nån annan ska ta tag i det. När mergningar, commits och branchningar är det säkraste man kan hålla på med - gör man fel ber man bara "mamma &lt;strong&gt;svn&lt;/strong&gt;" snällt att ta fram det man hade nyss. Det är det &lt;strong&gt;svn&lt;/strong&gt; är bra på.&lt;br /&gt;&lt;br /&gt;Testa att be &lt;strong&gt;mysql&lt;/strong&gt; snällt att ta tillbaka tabellen du just droppade av misstag så märker du skillnaden...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-7160092765397527120?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/7160092765397527120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=7160092765397527120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7160092765397527120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7160092765397527120'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/konfliktrdsla.html' title='Konflikträdsla'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-2368334613017841656</id><published>2007-12-11T10:13:00.000-08:00</published><updated>2007-12-12T14:23:52.633-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IT-bubbla'/><title type='text'>Dålig dag på jobbet</title><content type='html'>Hade en dålig dag på jobbet idag. Saker och ting går snett, vi får ta ner systemet oplanerat och får ett gäng arga användare och en del städa-upp-jobb i databasen.&lt;br /&gt;&lt;br /&gt;Tänker nostalgiskt tillbaka på min tid i post-IT-bubble-Sverige. Det fanns fortfarande ett gäng företag som hade kvar pengar i sin säck från de galna dagarna då riskkapitalisterna kastade miljoner över vilken sunk-idé som helst. Har själv suttit med på ett möte med riskkapitalister i egenskap av tekniskt förkläde och hört dem kläcka ur sig att '35 miljoner? Vi går aldrig in med mindre än 50 miljoner' (företaget jag jobbade på hade räknat ut att de behövde 35 miljoner).&lt;br /&gt;&lt;br /&gt;Att det var så ruggigt enkelt att äska pengar blev också indirekt the downfall för många projekt. Det måste vara det bästa sättet att ta död på ett företag: tvångsmata det med en gigantisk pengapåse (jag har sett det inifrån flera gånger). Sen mäts hur bra det går på hur snabbt stålarna rinner iväg, som om det fanns nån korrelation.&lt;br /&gt;&lt;br /&gt;Det som egentligen betyder nåt - leverans - var helt underordnat. Detta ledde till (baserat på tron att botten på pengapåsen aldrig kommer dyka upp):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Hyreskontrakt mitt i stan på fett stor yta. Gärna bundet på 5 år så man helt säkert får sitta med ett osäljbart kontrakt i evigheter när hyresmarknaden viker.&lt;/li&gt;&lt;li&gt;Personalpyramiden (upp-och-ner-vänd). Ett järngäng på 5 utvecklare och sen en chefsorganisation värdig en tysk pansarkår. Inköpschef? självklart - det behövs såklart nån som köper fax-papper (detta var innan faxen var i princip helt utrotad) och pennor. Produktägare, marknadschef, säljchef, gruppchefer och fan och hans moster&lt;/li&gt;&lt;li&gt;Ingen leverans nånsin. Det mest inbitna vattenfallstänket möjligt med lång specfas och sen en implementation som sträcker sig över år. Eftersom ingen mätte framgång med nåt så påtagligt som en leverabel, så togs en dylik heller inte fram&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Resultatet blev såklart det man borde ha kunnat se. Pengarna tar slut. Inget användbart har tagits fram. Företaget blöder som en gris från hyreskontrakt och onödig personal. Riskkapitalisterna drar öronen åt sig för att bubblan spruckit. De där 'bara' 25 miljonerna till som man räknat fram skall räcka kommer aldrig. Och sen varsel i omgångar och sen konkurs.&lt;br /&gt;&lt;br /&gt;På plussidan måste framhållas den galghumor som utvecklas hos personalen, man har faktiskt ofta som roligast under den här tiden. Att man blir av med jobbet vet man ju redan så den tid man har kvar går åt till att snacka skit och utsätta kollegor för practical jokes.&lt;br /&gt;&lt;br /&gt;Så varför blir jag då nostalgisk? Jo (i skenet av min dåliga dag på jobbet), så påminns jag om alla hyllkilometrar kod jag var med och skrev under denna galna tid. Kod som jag fick bra betalt för att skriva. Kod som aldrig nånsin kördes i produktion. Kod som aldrig nånsin ställde till med problem.&lt;br /&gt;&lt;br /&gt;Eller för att travestera general &lt;span style="FONT-WEIGHT: bold"&gt;William Tecumseh Sherman&lt;/span&gt; (1820-1891): &lt;span style="FONT-STYLE: italic"&gt;The only good code is the dead code...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-2368334613017841656?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/2368334613017841656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=2368334613017841656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/2368334613017841656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/2368334613017841656'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/dlig-dag-p-jobbet.html' title='Dålig dag på jobbet'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-1521362550730124055</id><published>2007-12-08T08:51:00.001-08:00</published><updated>2007-12-08T08:54:04.257-08:00</updated><title type='text'>Fåraherde movin' up!</title><content type='html'>Söker man på fåraherde på google.se så hamnar &lt;strong&gt;Hellre fåraherde&lt;/strong&gt; på 5:e plats. Samma sökning på google.com renderar en 11:e plats.&lt;br /&gt;&lt;br /&gt;Snart, om vi alla hjälps åt och cross-länkar, så kan vi ta den eftertraktade förstaplatsen för sökordet 'fåraherde'!&lt;br /&gt;&lt;br /&gt;Moving up in the world!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-1521362550730124055?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/1521362550730124055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=1521362550730124055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1521362550730124055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1521362550730124055'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/fraherde-movin-up.html' title='Fåraherde movin&apos; up!'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-9163912752509481921</id><published>2007-12-07T11:08:00.000-08:00</published><updated>2007-12-07T13:19:34.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebLogic'/><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><title type='text'>Clusterfuck</title><content type='html'>&lt;p&gt;Ursäkta titeln (som faktiskt inte är snuskig, se &lt;a href="http://www.urbandictionary.com/define.php?term=clusterfuck" goog_docs_charindex="65"&gt;http://www.urbandictionary.com/define.php?term=clusterfuck&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Det jag ska negga om idag är klustring. Möjligen går det ett sus i utvecklarleden när jag skriver detta (nåja, ett sus bland de typ 12 ynka själar som hittat hit).&lt;br /&gt;&lt;br /&gt;Klustring är väl det vedertagna sättet att säkra skalbarhet?&lt;br /&gt;Dissa inte klustring, len!&lt;br /&gt;&lt;br /&gt;(eftersom jag redan börjat länka till ordlistesajter och din förortssvenska kanske är lika skral som min: &lt;a href="http://sv.wikipedia.org/wiki/F%C3%B6rortssvensk_ordlista" goog_docs_charindex="494"&gt;http://sv.wikipedia.org/wiki/F%C3%B6rortssvensk_ordlista&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Alla har vi väl hört någon på tekniksidan säga (eller i värsta fall sagt själva) på ett möte där business case-killarna skissar på scenarier med 25000 samtidiga användare:&lt;br /&gt;"Det är lugnt, vi klustrar lösningen och adderar bara noder för att skala. Vår applikationsserver stöder klustring och databasen med"&lt;br /&gt;&lt;br /&gt;Det är här vi går på samma mina som management gör när grabbarna från &lt;strong&gt;Rational&lt;/strong&gt; (se &lt;a href="http://hellrefaraherde.blogspot.com/2007/11/uml-underliggande-megakomplext-elnde.html"&gt;http://hellrefaraherde.blogspot.com/2007/11/uml-underliggande-megakomplext-elnde.html&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;kommer och säljer in metodik och svindyra verktyg: Vi hugger på silver-bullet-wobblern som en vårpilsk gädda!&lt;br /&gt;&lt;br /&gt;Vad gäller management så får de ett paket med verktyg och rigida dokumenteringsregler som ger en illusion av ordning och reda, effektiv utvecklingsprocess och &lt;strong&gt;ROI&lt;/strong&gt; (påminn mig förresten att jag ska skalla alla som säger &lt;strong&gt;ROI&lt;/strong&gt; i tid och otid - 'När kan vi få &lt;strong&gt;ROI&lt;/strong&gt; på den här fitchjurn?')&lt;br /&gt;&lt;br /&gt;Utvecklarna får en illusion av en lans med vilken den mest skrämmande av alla bestar - prestandaproblemen - kan dräpas.&lt;br /&gt;&lt;br /&gt;Missförstå mig rätt - jag anser såklart inte att man ska ha &lt;strong&gt;en&lt;/strong&gt; dunderburk till server som gör allt - självklart behövs lastdelning mellan maskiner med olika ansvarsområden och möjlighet att addera fler burkar när det behövs (och om det hjälper).&lt;br /&gt;&lt;br /&gt;Skillnaden är då att man får en 'klustring' som är skräddarsydd för &lt;em&gt;ditt&lt;/em&gt; system - en &lt;em&gt;fast&lt;/em&gt; nyckel istället för en skiftnyckel (och som alla som testat vet, så spöar den fasta nyckeln skiftnyckeln every time)&lt;br /&gt;&lt;br /&gt;Eller för att dra till med en annan liknelse - hur sugen är du på att köpa ett par unisex-byxor i one-size-fits-all-stretch? Låter inte optimalt...&lt;br /&gt;&lt;br /&gt;Skiftnyckeln/byxorna i det här exemplet är din applikationsservers/databas/messaging engine eller whatever's inbyggda lösning för att klustra upp systemet i brygga. Den har säkert som fjäll i Feskekörka:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Kommit till främst för att tillfredsställa säljarna på produktföretagen som måste erbjuda klustring eftersom konkurrenterna har det&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Blivit så generell att den inte löser något specifikt problem (dvs t ex ditt systems) bra&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Blivit feature-bloated med distribuerade cachar, hot node deploying och fan och hans moster - inte ett öga torrt&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Pga feature-bloatningen blivit helt omöjlig att konfigurera för en vanlig dödlig - specialkonsulter måste tas in för att vada i träsket med XML-config-filer&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Ovanstående information och t ex en brasklapp om att inte alla system passar för att klustra med just applikationsserver X:s inbyggda klustringsstöd står ingenstans att finna.&lt;br /&gt;&lt;br /&gt;T o m &lt;strong&gt;mysql&lt;/strong&gt; har skitnödigt lagt till klustringsstöd som ingenstans marknadsförs som nåt annat än det bästa sen skivat bröd.&lt;br /&gt;&lt;br /&gt;Vi gjorde ett testskott med ett &lt;strong&gt;mysql&lt;/strong&gt;-kluster i ett projekt jag jobbade i förut.&lt;br /&gt;Första setup (innan klustring):&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Två servrar, en master och en replika som select-nod. Vi normaliserar prestanda på denna setup till 100%&lt;/li&gt;&lt;li&gt;Andra setup (med klustring):&lt;br /&gt;Fyra servrar (minimalt &lt;strong&gt;mysql&lt;/strong&gt;-kluster), samma applikation - Prestanda: 50%&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Vi får en skalbarhetsfaktor på 4! Fast vänta... Åt fel håll. Hälften så snabbt med dubbelt så mycket hårdvara.&lt;br /&gt;&lt;br /&gt;Hittade sen äntligen nåt obskyrt dokument på nätet som faktiskt erkände att &lt;strong&gt;mysql&lt;/strong&gt;-klustring ställer en hel del krav på applikationens karaktär för att rocka. T ex gillar den inte joins så mycket. Då blir overheaden när servrarna pratar med varann så stor att systemet knäar.&lt;br /&gt;&lt;br /&gt;Så om din applikation aldrig joinar tabeller utan bara gör uppslagningar på primary keys (fat chance) så kan &lt;strong&gt;mysql&lt;/strong&gt;-klustring få din Volkswagen att bli en Porsche.&lt;br /&gt;&lt;br /&gt;Men, vadå? Klustring funkar ju för världens mest använda gigantokluster &lt;strong&gt;Google&lt;/strong&gt;?&lt;br /&gt;Japp, men det gör det precis just för att de byggde en speciallösning för deras specifika behov, ett distribuerat operativsystem byggt enbart för snabb sökning och skalbarhet.&lt;br /&gt;&lt;br /&gt;Hade de valt att sjösätta i &lt;strong&gt;WebLogic&lt;/strong&gt; (eller insert valfri applikationsserver här) och klustra med deras stöd (vilken absurd tanke!) så skulle nog en google-fråga ge svar efter ett par kvartal istället för millisekunder...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-9163912752509481921?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/9163912752509481921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=9163912752509481921' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/9163912752509481921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/9163912752509481921'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/clusterfuck.html' title='Clusterfuck'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5609432771687017087</id><published>2007-12-06T07:55:00.000-08:00</published><updated>2007-12-06T13:51:08.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Optimering'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmering'/><title type='text'>Suboptimering</title><content type='html'>Satt häromdan och peer-reviewade lite kod. En kollega hade gjort ungefär följande:&lt;br /&gt;&lt;br /&gt;(om du inte är intresserad av detaljerna så räcker det med att sammanfatta med 'komplex och felbenägen', så kan du scrolla ner och läsa resten)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Skapat en klass som hette typ &lt;code&gt;ValueCache&lt;/code&gt; vars syfte var att cacha 'semikonstanta' värden från databasen för att undvika databasåtkomster&lt;/li&gt;&lt;li&gt;&lt;code&gt;ValueCache&lt;/code&gt;:n instansieras i class-loading-time, varför en speciell mekanism fanns implementerad för att undvika att den läste från databasen vid initiering, eftersom risken fanns att db-connection poolen inte alltid kunde antas vara igång vid den tidpunkten&lt;/li&gt;&lt;li&gt;Förra punkten innebär ju en risk att cachen är tom första gången nån frågar efter ett värde, så därför fanns en check som initierade cachen från databasen om den var tom&lt;/li&gt;&lt;li&gt;Cachen har en time-to-live efter vilken hela cachen läses om&lt;/li&gt;&lt;li&gt;Eftersom man då ibland joxar med hashmappen medan andra delar av systemet potentiellt läser samtidigt, så var anrättningen kryddad med synchronized-block till höger och vänster&lt;/li&gt;&lt;li&gt;En freakish detalj var att cachen själv kunde slå av sig om den inte funkade nåt bra. Om man ändrar ett value (som cachades i cachen själv) i runtime, så revertar cachen till att gå direkt mot databasen (dvs precis som innan tjogtals icke-triviala kodrader skrevs, med den skillnaden att alla trådar potentiellt måste köa i synchronized-blocken som lagts till)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Jag stirrade fåraktigt på koden som hade vuxit till en &lt;em&gt;Behemoth&lt;/em&gt; från en i grunden (one could argue) sund tanke att cacha lite data för att minska databasåtkomster.&lt;/p&gt;&lt;p&gt;Testfallen var enkeltrådade (eftersom det ju är krångligt att skriva bra multitrådade testfall) vilket ju liksom förfelar hela syftet - det är ju först i en lastad multitrådad miljö cachen skulle kunna ha en positiv effekt och också då den visar om den inte funkar som den ska.&lt;/p&gt;&lt;p&gt;Här satt jag nu och tittade på en lösning på ett problem som inte fanns. Våra eventuella prestandaproblem kommer (och det vågar jag sätta en tusing på) &lt;strong&gt;inte&lt;/strong&gt; bero på slagningar mot en tabell med namn-värde-par på ett par tjog rader (med index, no less).&lt;/p&gt;&lt;p&gt;Det vi snarare jobbar med prestandamässigt är att få &lt;strong&gt;IIS&lt;/strong&gt; att serva content i tillräcklig fart vid hög last samt några queries som inte har ett jota med valuecachen att göra.&lt;/p&gt;&lt;p&gt;Min gissning är att (om vi inte rycker koden) och går live med lösningen, fortare än attan får använda avstängningsmekanismen och sen ha en bara lite sämre lösning än vi hade innan.&lt;/p&gt;&lt;p&gt;Koden riskerar att ligga kvar, lika död som en fallen gnu på stäppen. Alltför complex-looking för att nån annan, inte insatt, ska våga ta bort den eller ändra nåt (tar man bort den så kompilerar ju inte testfallet - hu så läskigt).&lt;/p&gt;&lt;p&gt;Slutsats (och det är ju en gammal sanning som verkar ha svårt att sjunka in hos folk): &lt;/p&gt;&lt;ul&gt;&lt;li&gt;OPTIMERA INTE&lt;/li&gt;&lt;li&gt;OM DU MÅSTE OPTIMERA - OPTIMERA RÄTT SAKER&lt;/li&gt;&lt;li&gt;OPTIMERA BARA SAKER SOM ÄR PROBLEM PÅ RIKTIGT OCH DÄR DET FINNS MÖJLIGHET ATT MÄTA INNAN OCH EFTER FÖR ATT SE ATT OPTIMERINGEN VERKLIGEN OPTIMERAT NÅT&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Det finns en massa duktiga erfarna programmerare därute som räknar bytes och optimerar sina små uppslagningar i sina egna hemkokta datastrukturer med egna implementationer av B-träd.&lt;/p&gt;&lt;p&gt;Helt i onödan. Till gagn för ingen....&lt;/p&gt;&lt;p&gt;&lt;em&gt;Caveat 1&lt;/em&gt;: Cachning funkar aldrig felfritt första gången du sjösätter det&lt;/p&gt;&lt;p&gt;&lt;em&gt;Caveat 2&lt;/em&gt;: Komplex kod kan vara kul att skriva, men det är alltid den enkla lösningen som blir elegant&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5609432771687017087?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5609432771687017087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5609432771687017087' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5609432771687017087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5609432771687017087'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/12/suboptimering_06.html' title='Suboptimering'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5041366921780534494</id><published>2007-11-24T10:55:00.000-08:00</published><updated>2007-11-24T11:52:02.650-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sun'/><category scheme='http://www.blogger.com/atom/ns#' term='Smalltalk'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Better than Thou</title><content type='html'>Återigen en engelsk titel, det bor uppenbarligen en liten Dolph i mig.&lt;br /&gt;&lt;br /&gt;Ni har kanske råkat ut för den det här inlägget handlar om: idealisten, evangelisten. Då talar jag inte om alla de corporate evangelists det vimlar av från &lt;span style="font-weight: bold;"&gt;Sun&lt;/span&gt; och &lt;span style="font-weight: bold;"&gt;Microsoft&lt;/span&gt; främst, utan den verklige idealisten som har sett ljuset och sen inte kan låta bli att försöka sprida det till alla som vill (och efter ett tag inte vill) lyssna.&lt;br /&gt;&lt;br /&gt;I mitt fall rörde det sig om &lt;span style="font-weight: bold;"&gt;Smalltalk.&lt;/span&gt; Alltså, det var &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; som företeelse som var 'ljuset'. Och i min närhet fanns idealisten som höll &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt;s fana högst i alla lägen.&lt;br /&gt;&lt;br /&gt;Inget ont om &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; och dess olika dialekter - mer OO-purism än så är svårt att tänka sig - allt är objekt - även klasser och integers (1+2 innebär att man skickar meddelandet '+' till objektet 1 med parameter objektet '2'). Para det med grymma utvecklingsmiljöer och en varm och cosy feeling som bara &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; kan ge och man har en vinnande kombination. Eller?&lt;br /&gt;&lt;br /&gt;Problemet kommer när man skall jobba kommersiellt tillsammans med idealisten. Kommersiellt innebär att man skall jobba för pengar som nån känner sig villig att hosta upp.&lt;br /&gt;&lt;br /&gt;Det innebär ofta också att man ska jobba i ett team tillsammans med folk som har kompetens på den valda plattformen (och den valda plattformen är en kommersiellt gångbar plattform = inte &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Smalltalk hade kunnat vara vad &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt; och &lt;span style="font-weight: bold;"&gt;C#&lt;/span&gt; är idag - preferred choice of språk och utvecklingsmiljö för bulken av alla nystartade utvecklingsprojekt.&lt;br /&gt;&lt;br /&gt;Det är som sagt squeaky (förlåt vitsen) clean vad gäller objektorientering. Det saknar också den ofta (enligt min mening) onödiga statiska typningen i &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;C++&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;C#&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Helt enkelt en produktiv miljö second to none.&lt;br /&gt;&lt;br /&gt;Men, marknadens vägar äro outgrundliga, eller snarare beroende av smarta marknadsförare med stora pengasäckar i bakfickan (läs &lt;span style="font-weight: bold;"&gt;Sun&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Microsoft&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Hade det funnits en dylik pengasäck bakom marknadsföring av &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; på den tiden då &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;s showcase var vinkande tomte-appleten, så hade &lt;span style="font-weight: bold;"&gt;Sun&lt;/span&gt; kunnat lägga ner den satsningen.&lt;br /&gt;&lt;br /&gt;Då var &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; sedan länge redan moget och hade bevisat vad det gick för (det var under en period ganska stort i USA som plattform för t ex banksystem och administrativa system).&lt;br /&gt;&lt;br /&gt;Resultatet av den frånvarande marknadsföringspengapåsen är att det inte finns nån marknad (i alla fall inte i Sverige) för&lt;span style="font-weight: bold;"&gt; Smalltalk&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Då återkommer vi till problemet med idealisten. Att sitta i projekt med honom (i en kommersiellt gångbar miljö) blir en evig whine-fest.&lt;br /&gt;"Aaargh. I &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; hade det varit mycket enklare".&lt;br /&gt;"Varför tycker alla &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;C#&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;C++&lt;/span&gt;-människor att det är så j-a bra. Det suger ju jämfört med &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;Kort sagt ingen rolig person att dela skyttegrav med.&lt;br /&gt;&lt;br /&gt;Och omöjlig (eftersom han är en idealist) att få att inse att det handlar om stålar. Den bästa teknologin vinner inte - det är den med mest buzz som vinner och på den fronten står sig &lt;span style="font-weight: bold;"&gt;Smalltalk&lt;/span&gt; slätt.&lt;br /&gt;&lt;br /&gt;Jag älskar idealister - må de sprida sina tankar och visioner till massorna i evig tid - bara jag slipper sitta i samma projekt som dem...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5041366921780534494?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5041366921780534494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5041366921780534494' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5041366921780534494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5041366921780534494'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/better-than-thou.html' title='Better than Thou'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5462863410828946644</id><published>2007-11-22T15:40:00.000-08:00</published><updated>2007-11-24T11:44:32.770-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='unit tests'/><category scheme='http://www.blogger.com/atom/ns#' term='best practices'/><category scheme='http://www.blogger.com/atom/ns#' term='test'/><title type='text'>Singing along with the Choir</title><content type='html'>När jag ser tillbaka på mina inlägg hittills har de, till största delen, drupit av negg.&lt;br /&gt;&lt;br /&gt;Uppenbarligen har en det öppnats en ventil, ett utlopp genom vilket jag kan negga om företeelser i systemutvecklingsbranschen.&lt;br /&gt;&lt;br /&gt;Därför känns det jobbigt att, i strid med tidigare inlägg, verkligen plussa nåt:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Test-driven utveckling&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;När man insett storheten finns det inget sätt att vända åter. Att köra utan är samma känsla som att cykla mitt i stan (bilar är hårdare än människor) utan cykelhjälm (om man nu haft det alltid i 10 år (ja, jag är en farbror)).&lt;br /&gt;&lt;br /&gt;Osäkert - minus frihetskänslan man får med vinden i håret.&lt;br /&gt;&lt;br /&gt;Processen är solklar:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;få en spec på en ny feature&lt;/li&gt;&lt;br /&gt;&lt;li&gt;skriv ett testfall som testar din nya feature&lt;/li&gt;&lt;br /&gt;&lt;li&gt;kör testfallet&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Testa om det funkar. Om ja - avbryt&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ändra/bygg om tills du tror att det funkar&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Gå till punkt 4 - lather, rinse, repeat!&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Om alla gjorde så skulle världen be a better place...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5462863410828946644?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5462863410828946644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5462863410828946644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5462863410828946644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5462863410828946644'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/singing-along-with-choir.html' title='Singing along with the Choir'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-4552656699038079355</id><published>2007-11-21T09:49:00.000-08:00</published><updated>2007-11-24T11:42:41.213-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>Stating the Bleeding Obvious</title><content type='html'>Jag har tidigare redovisat min personliga taxonomi över svenska utvecklingsbloggar (&lt;a href="http://hellrefaraherde.blogspot.com/2007/11/someones-elses-news.html"&gt;Someone else's News&lt;/a&gt;), men måste nu tillfoga en ny - &lt;span style="font-weight: bold;"&gt;The Bleeding Obvious&lt;/span&gt;-bloggen.&lt;br /&gt;&lt;br /&gt;En dylik blog handlar om nåt extremt basalt och har lägre höjd än Nederländerna.&lt;br /&gt;&lt;br /&gt;Nu kanske jag svär i kyrkan när jag pekar ut en medbloggare som hemmahörande i denna kategori, men den ligger 11:a på&lt;span style="font-weight: bold;"&gt; &lt;a href="http://bloggtoppen.se/"&gt;http://bloggtoppen.se&lt;/a&gt;&lt;/span&gt; (Data/IT), så så jävla synd är det inte om honom: &lt;a href="http://www.svensk-server.info/"&gt;http://www.svensk-server.info/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Det gick dessutom inte att kommentera utan att registrera sig först (och som jag har längtat efter ett membership på &lt;span style="font-weight: bold;"&gt;svensk-server.info &lt;/span&gt;- not), så han får finna sig i att jag gnäller här istf på hans blog.&lt;br /&gt;&lt;br /&gt;Den första artikeln har the groundbreaking title &lt;span style="font-style: italic;"&gt;HTML Dokument &lt;/span&gt;(jo det var utan bindestreck) och redovisar hur man ska använda bla &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;-taggen...&lt;br /&gt;&lt;br /&gt;En blick på en bra html cheat sheet site (t ex &lt;a href="http://www.psacake.com/web/dy.asp"&gt;http://www.psacake.com/web/dy.asp&lt;/a&gt;) ger massor mer info befriat från särskrivningar och putslustiga kommentarer.&lt;br /&gt;&lt;br /&gt;Ibland önskar man att det inte var &lt;span style="font-style: italic;"&gt;riktigt&lt;/span&gt; så enkelt att publicera saker på webben. Hade det bara varit &lt;span style="font-style: italic;"&gt;lite&lt;/span&gt; svårare så hade vi sluppit en hel del bleeding obvious skräp producerat av medelmåttor...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-4552656699038079355?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/4552656699038079355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=4552656699038079355' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4552656699038079355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4552656699038079355'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/stating-bleeding-obvious.html' title='Stating the Bleeding Obvious'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-4607081814506647839</id><published>2007-11-20T15:25:00.001-08:00</published><updated>2008-09-22T08:06:47.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Bjarne Spilling the Beans</title><content type='html'>No Java pun intended (beans alltså).&lt;br /&gt;&lt;br /&gt;Lyckades leta reda på den här intervjun som jag minns att jag läste för ett tag sen:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://members.safe-t.net/jwalker/programming/interview.html"&gt;http://members.safe-t.net/jwalker/programming/interview.html&lt;/a&gt; (not working anymore)&lt;br /&gt;&lt;a href="http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml"&gt;http://artlung.com/smorgasborg/Invention_of_Cplusplus.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bjarne Stroustrup (mr &lt;strong&gt;C++&lt;/strong&gt; för oinvigda läsare) berättar vad han &lt;em&gt;egentligen&lt;/em&gt; tycker om sin kreation.&lt;br /&gt;&lt;br /&gt;Den bekräftar vad jag tyckt väldigt länge: &lt;strong&gt;C++&lt;/strong&gt; är datavärldens motsvarighet till att skruva i en spik med en fogsvans - du kommer slinta och såga dig i benet.&lt;br /&gt;&lt;br /&gt;Det är ju faktiskt så att &lt;strong&gt;C++&lt;/strong&gt; nog inte är rätt verktyg nånsin; ska du skriva ett operativsystem eller drivrutiner så vill du inte ha overheaden som OO innebär med t ex traversering av funktionspekararrayer för att hitta rätt implementation - du väljer good ole' &lt;strong&gt;C&lt;/strong&gt; istället.&lt;br /&gt;&lt;br /&gt;Ska du bygga vilken-annan-applikation-som-helst så vill man ju ha:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;bounds checking &lt;/li&gt;&lt;li&gt;garbage collect &lt;/li&gt;&lt;li&gt;ett språk som inte på ett så uppenbart sätt inbjuder till att skjuta sig själv i foten med&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Hoppsan. Hamnade nästan in i en språk A är bättre än språk B-rant och sånt är ju aldrig roligt.&lt;br /&gt;&lt;br /&gt;Roligt är det däremot när folk säger sanningar som man förvånas av.&lt;br /&gt;&lt;br /&gt;Stå på dig, Bjarne. Tell it like it is...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-4607081814506647839?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/4607081814506647839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=4607081814506647839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4607081814506647839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4607081814506647839'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/bjarne-spilling-beans.html' title='Bjarne Spilling the Beans'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8775998457333956589</id><published>2007-11-20T14:32:00.000-08:00</published><updated>2007-11-21T10:40:25.646-08:00</updated><title type='text'>Four Letter Word</title><content type='html'>Påminn mig att jag ska skalla alla som använder ordet 'agil' i svenska språket.&lt;br /&gt;&lt;br /&gt;Det &lt;strong&gt;är&lt;/strong&gt; inte ett ord, &lt;strong&gt;har inte varit&lt;/strong&gt; ett ord och &lt;strong&gt;kommer inte bli&lt;/strong&gt; ett ord på svenska.&lt;br /&gt;&lt;br /&gt;Det är nog irriterande med &lt;strong&gt;agile&lt;/strong&gt; hit och &lt;strong&gt;agile&lt;/strong&gt; dit på engelska.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8775998457333956589?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8775998457333956589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8775998457333956589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8775998457333956589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8775998457333956589'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/four-letter-word.html' title='Four Letter Word'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-5748254180976126847</id><published>2007-11-20T13:51:00.000-08:00</published><updated>2007-11-24T11:39:52.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='holy ghost'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>15 minuter daglig masspsykos</title><content type='html'>Varje morgon kl 09:00 samlas Sveriges alla (nåja majoriteten känns det som i alla fall) systemutvecklare i små grupper om 5 - 15 pers, berättar vad de gjort den senaste dagen och vad de tänker göra idag.&lt;br /&gt;&lt;br /&gt;Nej, det är inte improviserade AA-möten som utspelar sig på landets alla IT-arbetsplatser. Det är såklart &lt;strong&gt;Scrum&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Inte nånsin har jag varit med om att någon metod/metodik/metodologi har fått en sån fullständig impact på så kort tid. Från att knappt ha hört talas om fanskapet till att folk inte gärna sitter bredvid en på tunnelbanan om man inte är &lt;em&gt;Certified Scrum Master&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Det är inte så att jag tycker det är dåligt eller så, men jag blir alltid skeptisk när nåt nästan övergår i religion. "Vad säger &lt;strong&gt;Scrum&lt;/strong&gt; att man ska göra i den här situationen" som om &lt;strong&gt;Scrum&lt;/strong&gt;-väsenet tryckte i nåt dammigt hörn i konferensrummet och hade nåt viktigt att dela med sig av.&lt;br /&gt;&lt;br /&gt;Backlogen är helig (ordet backlog betyder väl egentligen saker man borde gjort men inte hunnit. I &lt;strong&gt;Scrum&lt;/strong&gt; (helgat varde dess namn) så är nåt man precis kommit på en backlog item (alltså nåt man redan borde gjort fast man precis kom på det)). Snacka om att ge &lt;strong&gt;Losec&lt;/strong&gt;-marknaden en extra skjuts.&lt;br /&gt;&lt;br /&gt;Finns det inte i sprinten så ska man inte göra det. Tanken är sund; isolera utvecklings-teamet från den yttre världens alla krav-glidningar och scope creeps. Sprinten blir ett &lt;em&gt;300 DPS Sword of Scope Defence &lt;/em&gt;som teamet kan vifta med när de bakåtslickade frisyrerna kommer och försöker få in lite features som kan hjälpa dem att kränga skiten till nån ny kund.&lt;br /&gt;&lt;br /&gt;Problemet kommer då man inser att man faktiskt inte får med allt man verkligen gör i backlogen och senare i sprintarna. Man ser ut som en lat jävel när det visar sig att man har en sprint-velocity som Micke Persbrandt på väg hem från krogen.&lt;br /&gt;&lt;br /&gt;Sprintplaneringen blir också en speciell upplevelse eftersom det (vad jag vet) inte finns nåt utrymme (=tidpunkt, dedikerad tid) egentligen för att _speca_ en backlog item. Den är oftast på formen 'Användaren ska kunna skicka meddelanden till andra och notifieras när han får ett meddelande sänt till sig'.&lt;br /&gt;Spec behövs minst på områdena Info-design, databasdesign, protokollnivå, kravbild (ska t ex användaren kunna lägga upp nån på en ignore-list? Framgår inte av backlog-itemet).&lt;br /&gt;&lt;br /&gt;Urspungskravet kommer ju oftast från nån som inte håller på med implementation och därför inte kan antas kunna speca på den nivån (eller ens veta att det behöver specas på den nivån).&lt;br /&gt;&lt;br /&gt;Vad det hela kokar ner till är att man försöker tidsskatta i princip helt ospecade krav. Under upp-taskningen sker ju nån slags specning, men det sker inför hela gruppen och blir frustrerande efter fyra-och-en-halv timme, let me tell you.&lt;br /&gt;&lt;br /&gt;Vet inte om det bara är jag som upplevt det, men det verkar som om &lt;strong&gt;Scrum&lt;/strong&gt; (oh, herde på livets stig), inte riktigt tycker att man ska speca (= en (eller ett par tre) person(er) samlas, ritar pilar och streck, kommer överens och skriver ihop ett snärtigt dokument på 1-1,5 A4 som beskriver hur implementationen skall gå till).&lt;br /&gt;&lt;br /&gt;Speca är fult. Luktar vattenfalls-modellen och gammal död hud. Fast där nånstans brister illusionen lite.&lt;br /&gt;&lt;br /&gt;Behold, the revolting underbelly of &lt;strong&gt;Scrum&lt;/strong&gt;...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-5748254180976126847?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/5748254180976126847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=5748254180976126847' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5748254180976126847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/5748254180976126847'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/15-minuter-daglig-masspsykos.html' title='15 minuter daglig masspsykos'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-1398889708856090347</id><published>2007-11-17T17:10:00.000-08:00</published><updated>2007-11-24T11:38:52.336-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='depression'/><title type='text'>Pärlor för ingen?</title><content type='html'>Inser plötsligt att det jag jobbar med (och skriver om i den här bloggen) kanske intresserar ungefär en promille av Sveriges befolkning.&lt;br /&gt;&lt;br /&gt;Det kanske kan översättas till en promille av en promille av världens befolkning, eftersom intresset för utveckling av datasystem (eller snarare nån som gnäller om detsamma) kan antas avta med kvadraten på risken att dö i svält/hamna i husarrest i Öst-Timor/få fågel-influensa/hamna under vatten pga växthuseffekten... etc you name it.&lt;br /&gt;&lt;br /&gt;Är det då värt det? Hittills har ingen. Och jag menar _ingen_ hittat min blog. Inga kommentarer har reggats (utom mina egna patetiska). Jag skulle lika gärna kunna vara den sista utvecklar-gnäll-bloggen på jorden. Tänk er den filmen. 'Utvecklar-gnäll-bloggarnas planet'. På slutet hittar de frihetsgudinnan i sanden med the collective works of Donald Knuth under armen.&lt;br /&gt;&lt;br /&gt;Sad sad developer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-1398889708856090347?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/1398889708856090347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=1398889708856090347' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1398889708856090347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/1398889708856090347'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/prlor-fr-ingen.html' title='Pärlor för ingen?'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-7652351937171798979</id><published>2007-11-17T14:30:00.000-08:00</published><updated>2007-11-24T11:38:00.511-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><title type='text'>Someone else's News</title><content type='html'>Har ni nyligen läst svenska bloggar om systemveckling? Då har ni kanske märkt att de ofta är på nån av formerna:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"Har ni hört att &lt;span style="font-weight: bold;"&gt;Freakalizer&lt;/span&gt; (påhittad hajpad teknologi red. anm.) nu kommer i version 3.2? Det är jätteintressant och de har bland annat lovat högre prestanda och bättre interoperabilitet och antigravitationsflänsar. Cool! Can't wait to try it out!"&lt;/li&gt;&lt;li&gt;"Det är jättesvårt att välja mellan alla standarder och produkter som kommer. Och nu kommer alltså &lt;span style="font-weight: bold;"&gt;Freakalizer&lt;/span&gt; 3.2 som inte gör det lättare att välja, särskilt som &lt;span style="font-weight: bold;"&gt;MastaSoft&lt;/span&gt; precis släppt sin &lt;span style="font-weight: bold;"&gt;DudeMaster&lt;/span&gt; 6.2 i dagarna"&lt;/li&gt;&lt;li&gt;"Jag har testat &lt;span style="font-weight: bold;"&gt;Freakalizer&lt;/span&gt; 3.2 och gjort en test app som skriver ut 'Hello World'. Källkod finns att ladda ner. Jag är ju inte nån erfaren Freakalizer-utvecklare så jag har ju bara testat lite och här är vad jag tycker."&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Alltså en av följande:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Halleluja-bloggen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Väljer ett spår (t ex Java, .Net eller Ruby/Rails t ex) och väljer sedan ut nyheter som sen helt okritiskt presenteras som 'mycket intressanta'. &lt;/p&gt;&lt;p&gt;Bloggaren utmålar sig själv som nån som nästan maniskt kastar sig över vilken alfa-release som helst som släppts av nån håglös open source-utvecklare bara det hamnar inom träffområdet för bloggens inriktning. &lt;/p&gt;&lt;p&gt;Detta är ofta fallet för bloggar som är show cases för företag (eller för enskilda konsulter som försöker profilera sig inom vissa områden). Konsultföretag har gärna teknikbloggar, men innehållet är så streamlined och devoid of personliga tyck och tänk för att undvika att (Gud förbjude) någon presumtiv kund skulle bli upprörd och låta bli att köpa företagets tjänster. &lt;/p&gt;&lt;p&gt;För oss som inte genomgått lobotomi så är detta uppenbart efter att ha läst ett par rader och därefter faller såklart hela bloggen.&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Räkna-upp-alternativ-bloggen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Tar inte ställning. Försöker att täcka in området genom att räkna upp alla möjliga alternativ. Ger inte mer kött på benen än en tio minuters session med Google. Why bother? &lt;span style="font-weight: bold;"&gt;Tyck&lt;/span&gt; för &lt;span style="font-weight: bold;"&gt;fan&lt;/span&gt; nånting!&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Jag-bara-testar-bloggen&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Tycker att det räcker med att fluffigt beskriva den nya teknologin. Ursäktar sig hela tiden med att han/hon inte är expert, men kläcker ändå ur sig lite useless code som inte åstadkommer nåt, men finns att ladda ner!&lt;/p&gt;&lt;p&gt;Jag vägrar att läsa ytterligare en blog där mänskan inte påstår sig kunna det han skriver om! &lt;/p&gt;&lt;p&gt;Skriv för f-n om nåt du kan (eller ta reda på mer så att du kan det du vill skriva om)! Livet är för kort för bortförklaringar. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-7652351937171798979?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/7652351937171798979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=7652351937171798979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7652351937171798979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7652351937171798979'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/someones-elses-news.html' title='Someone else&apos;s News'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-7881638597999895776</id><published>2007-11-17T10:31:00.000-08:00</published><updated>2007-11-20T15:41:05.837-08:00</updated><title type='text'>Pidgeon Swedish</title><content type='html'>Tänkte hitta lite enkla sätt att marknadsföra min blog och googlade på 'blog java' - 'visa svenska sidor' (tanken var självklart att helt utan skam svara på nåt halvtrist inlägg och bifoga min blog-address (cross-linking rules!)).&lt;br /&gt;&lt;br /&gt;Hamnade dock på "&lt;em&gt;Enkel tanken Java &amp;amp; Spindelväv Teknologien Blog&lt;/em&gt;" på sajten som kallar sig för "&lt;em&gt;Simple Thoughts - Enkel lösandet för komplex problemen&lt;/em&gt;". En hilarious babelfish-approach till Java-utveckling.&lt;br /&gt;&lt;br /&gt;Rekommenderas.&lt;br /&gt;&lt;br /&gt;Bland pärlorna finns "&lt;em&gt;Hur Till Möjliggöra Befästa (SSL) IMAP &amp;amp; POP3 Med ( fri) Jag- Undertecknat Intyg&lt;/em&gt;" och t ex "&lt;em&gt;Hur Till Skapa Jag- Undertecknat Intyg&lt;/em&gt;"&lt;br /&gt;&lt;br /&gt;Priceless...&lt;br /&gt;&lt;br /&gt;Här är länken: &lt;a href="http://blog.taragana.com/index.php/sv/"&gt;http://blog.taragana.com/index.php/sv/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-7881638597999895776?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/7881638597999895776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=7881638597999895776' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7881638597999895776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7881638597999895776'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/pidgeon-swedish.html' title='Pidgeon Swedish'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-8051099872806990958</id><published>2007-11-17T09:25:00.000-08:00</published><updated>2007-11-24T11:37:22.901-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rational'/><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><category scheme='http://www.blogger.com/atom/ns#' term='RUP'/><title type='text'>UML - Underliggande Megakomplext eLände</title><content type='html'>&lt;span style="font-weight: bold;"&gt;UML&lt;/span&gt; - the Entreprisest of them all.&lt;br /&gt;&lt;br /&gt;Här har vi nåt som verkligen faller management i smaken. En rigid struktur av dokument, och diagram som specificerar systemet. En illusion av ordning, struktur och specifikation som får alla i beslutsfattande position att komma i brallan.&lt;br /&gt;&lt;br /&gt;Optimalt skall man köpa in &lt;span style="font-weight: bold;"&gt;Rational&lt;/span&gt;s verktyg för en förmögenhet och sen ska man börja med, håll i er nu, ett projekt för att modifiera &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;R&lt;/span&gt;ight &lt;span style="font-weight: bold;"&gt;UP&lt;/span&gt; your ass) att passa det projekt man för tillfället skall bygga.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rational&lt;/span&gt; har också (i enlighet med teoremet 'Management ska komma i brallan') låtit antyda att det är möjligt att, håll i er igen nu, grafiskt rita systemet i deras astronomically overpriced system och sen trycka på 'generate'-knappen och - vips!- så är systemet där. Färdigt att deployas och köras.&lt;br /&gt;&lt;br /&gt;Hur har de då lyckats med detta? Jo, genom att sälja where the wallet is. Hos management. Kostymer möter kostymer och kommer överens om vad som ska gälla som strategi vad gäller systemutveckling. &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;UML&lt;/span&gt; blir ett stridsrop, ett sätt att visa att 'vi har minsann ett enat grepp om systemutveckling'. Notera ingen inblanding av nån som faktiskt fattar nåt om systemutveckling (arkitekter, utvecklare).&lt;br /&gt;&lt;br /&gt;Enter &lt;span style="font-weight: bold;"&gt;The Consultant&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;The Consultant &lt;/span&gt;har för länge sen slutat bry sig om vad som egentligen gör att systemutvecklingsprojekt blir framgångsrika. Istället har han (eller mer sällan hon) koncentrerat sig på att pricka in lämpliga buzzword technologies och methodologies.&lt;br /&gt;&lt;br /&gt;Eftersom ingen in-house-utvecklare med självrespekt nånsin kikat åt &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt; som lösningen på nåt (utom möjligen för att skriva ut specen ifall pappret är slut på muggen), så måste man ta in &lt;span style="font-weight: bold;"&gt;The Consultant&lt;/span&gt; för att ta fram en &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt;-mod som passar projektet och införa den.&lt;br /&gt;&lt;br /&gt;Resultatet blir en mängd dokument (artefakter som de j-a freaksen kallar't) som ingen nånsin läser. Undrar hur många hektar regnskog som gått åt i den dokument-bonanza som &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt;/&lt;span style="font-weight: bold;"&gt;UML&lt;/span&gt; innebär.&lt;br /&gt;&lt;br /&gt;On a side note så är själva grundtänket fel med &lt;span style="font-weight: bold;"&gt;UML&lt;/span&gt; vad gäller objektmodellering - det fokuserar på arvshierarki istället för objektmodell. Arvshierarki är bara kodhygien - hur objekten hänger ihop är det som är intressant.&lt;br /&gt;&lt;br /&gt;Well, well. Para &lt;span style="font-weight: bold;"&gt;RUP&lt;/span&gt; med en hajpad Enterprise-technology of your choice (t ex den här: &lt;a href="http://hellrefaraherde.blogspot.com/2007/11/flja-john.html"&gt;Följa John&lt;/a&gt;), och resultatet låter vänta på sig (resultatet i form av ett användbart system alltså).&lt;br /&gt;&lt;br /&gt;Den som nöjt kan dra sig tillbaka efter projektets downfall är &lt;span style="font-weight: bold;"&gt;The Consultant&lt;/span&gt;, med 1200 kronor i timman i 1000 timmar och en ny entry i sin CV - klar för nästa uppdrag...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-8051099872806990958?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/8051099872806990958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=8051099872806990958' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8051099872806990958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/8051099872806990958'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/uml-underliggande-megakomplext-elnde.html' title='UML - Underliggande Megakomplext eLände'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-596864568330398172</id><published>2007-11-17T08:12:00.000-08:00</published><updated>2007-11-24T11:36:36.964-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Design Patterns'/><title type='text'>När mönster blir monster</title><content type='html'>Boken &lt;span style="font-weight: bold;"&gt;Design Patterns&lt;/span&gt; av &lt;span style="font-style: italic;"&gt;Gang of Four&lt;/span&gt; har varit och är required reading för utvecklare av alla slags system. Tanken är bländande - best practices abstraherade och nerkokade till en bukett av pärlor att plocka ur när man bygger sin applikation (ursäkta ett något utflippat bildspråk ("bukett av pärlor"?)).&lt;br /&gt;&lt;br /&gt;Problemet uppstår när vi vanliga dödliga börjar gå loss i denna bukett. Exemplen är legio på när ett ordinärt order-lager-inköps-system (substituera mot valfri vanilla-applikation) blir en orgie i patterns.&lt;br /&gt;&lt;br /&gt;Många av de mer basala patternsarna (heter det så?) är inte så svåra att knö in i ditt system. Kanske lite &lt;span style="font-style: italic;"&gt;Composite&lt;/span&gt;, lite &lt;span style="font-style: italic;"&gt;Delegate&lt;/span&gt; osv. Man får blodad tand. Lite &lt;span style="font-style: italic;"&gt;Decorator&lt;/span&gt; ovanpå det här (lite krystat i order-lager-inköps-systemet, men what-the-heck).&lt;br /&gt;&lt;br /&gt;The mother-of-all-patterns-you-don't-need: &lt;span style="font-style: italic;"&gt;Factory&lt;/span&gt; ligger sen nära till hands. Och vad är en &lt;span style="font-style: italic;"&gt;Factory&lt;/span&gt; utan en &lt;span style="font-style: italic;"&gt;FactoryManager&lt;/span&gt; (som gärna ska instansiera sig från XML).&lt;br /&gt;&lt;br /&gt;Rätt vad det är så har man slutat bygga systemet och börjat "The Race of Patterns". Det gäller att få med så många som möjligt. Flest patterns när man dör vinner.&lt;br /&gt;&lt;br /&gt;Har vid tillfälle suttit med underhåll av ett system som var byggt på detta vis. En ordinär web request routades genom dispatchers, handlers och delegates så att inte ett öga var torrt. Detta ledde också till att (som ni kanske gissat) 80% av applikationen bestod av infrastruktur för att stödja alla dessa design patterns. Själva business-logiken var gömd långt inne i nån handler nånstans och det var i princip omöjligt (ok, nu tar jag i lite) att avgöra var man skulle hamna för ett givet anrop.&lt;br /&gt;Att fixa buggar och lägga till funktionalitet blev också lite av en bygg-deploy-starta-håll-för-ögonen-övning eftersom man säkert som amen i kyrkan glömt att haka in sin nya handler i nån obskyr XML-fil.&lt;br /&gt;&lt;br /&gt;Missförstå mig rätt - patterns rockar, men bara då dom verkligen behövs. Alltför ofta är det ingen som gör en rimlighetsanalys innan man tillför en eller ett par extra nivåer av indirection för att stödja ett till pattern - och kunna bocka av det i boken &lt;span style="font-weight: bold;"&gt;Design Patterns&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-596864568330398172?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/596864568330398172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=596864568330398172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/596864568330398172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/596864568330398172'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/nr-mnster-blir-monster.html' title='När mönster blir monster'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-3769925742817611923</id><published>2007-11-17T07:19:00.000-08:00</published><updated>2007-11-24T11:36:04.189-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='WSDL'/><title type='text'>Såpa är bäst på TV</title><content type='html'>Jag ska försöka att inte bara negga, men en nystartad blog kommer liksom ofta från ett inneboende behov att negga - nåt man kanske inte vill eller kan göra som 'representant' för ett företag eller ens när man skyltar med sitt eget namn. Vem vet var jag hamnar i framtiden där de tycker att teknologi X är the new black och då kan det ligga mig i fatet om jag har neggat upp X i brygga under mitt eget namn. Men, men - here goes nothing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOAP&lt;/span&gt;. &lt;span style="font-style: italic;"&gt;Simple Object Access Protocol&lt;/span&gt;. Faller på första ordet som utgör "S" i dess akronym. Simple, I think not. Sällan har så många name spaces, externt deklarerade entiteter och dylikt samsats i en och samma XML-blobba som i ett ordinärt &lt;span style="font-weight: bold;"&gt;SOAP&lt;/span&gt;-meddelande.&lt;br /&gt;Testa att skicka ett &lt;span style="font-weight: bold;"&gt;SOAP&lt;/span&gt;-meddelande med texten 'Hello World' till en intet ont anande mottagare och förundras sedan över hur detta meddelande kunde bli 3016 bytes långt (har inte räknat bytesen i just detta exempel, men ni förstår vad jag menar).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SOAP&lt;/span&gt;s styrka ligger i &lt;span style="font-weight: bold;"&gt;WSDL&lt;/span&gt;, dvs formatet för att beskriva ett protokoll (alltså vilka tjänster som finns i en web service och hur meddelandena är strukturerade). Det är barnsligt enkelt att definiera en web service i &lt;span style="font-weight: bold;"&gt;WSDL&lt;/span&gt; och generera en handler-klass som sen pratar med web-tjänsten ifråga med ett enkelt vanligt anrop med typade parametrar. Så långt allt väl.&lt;br /&gt;&lt;br /&gt;Problemet uppstår när man försöker t ex köra igenom en rimligt strid ström av meddelanden och man inser att de informationsbärande bytesen man skickar ligger nånstans runt 5% av junket man skickar. Overhead är bara förnamnet.&lt;br /&gt;Dessutom är min erfarenhet att messaging mellan system är något som är väldigt specifikt; man diskuterar ett API, kommer överens om format och dylikt och utvecklar det hela. Vid förändringar så måste självklart båda sidor byggas om. Behovet av att ha referenser till XML schemas för validering och namespaces för att undvika krockar måste i rimlighetens namn höra till de extrema undantagen.&lt;br /&gt;Detta suger bandbredd och CPU till den milda grad att det i princip är helt oanvändbart, ja rent ut sagt oansvarigt, att använda &lt;span style="font-weight: bold;"&gt;SOAP&lt;/span&gt; i de allra flesta fall.&lt;br /&gt;&lt;br /&gt;Ett &lt;span style="font-style: italic;"&gt;Simple Object Access Protocol&lt;/span&gt; (över HTTP) bör tillåta:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;GET&lt;/span&gt;-baserade anrop (skit i indempotensen). För ostrukturerad data t ex ett id, kör webtjänsten med get och en url-parameter. Går dessutom utomordentligt att provköra i browsern&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;POST&lt;/span&gt;-baserade anrop för mer strukturerad data (t ex resultatet av ett inmatat formulär)&lt;/li&gt;&lt;li&gt;Lean and mean XML-representation av ett objekt:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;user&amp;gt;&lt;br /&gt;&amp;lt;username&amp;gt;leif&amp;lt;/username&amp;gt;&lt;br /&gt;&amp;lt;mailaddress&amp;gt;leif@leif.com&amp;lt;/mailaddress&amp;gt;&lt;br /&gt;&amp;lt;/user&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ett dylikt webservice-ramverk langar man ihop på en eftermiddag (nåja) - satisfaction guaranteed!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-3769925742817611923?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/3769925742817611923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=3769925742817611923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/3769925742817611923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/3769925742817611923'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/spa-r-bst-p-tv.html' title='Såpa är bäst på TV'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-7101838955566958931</id><published>2007-11-17T06:24:00.000-08:00</published><updated>2007-11-24T11:40:45.918-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebLogic'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='J2EE'/><category scheme='http://www.blogger.com/atom/ns#' term='JBoss'/><title type='text'>Följa John</title><content type='html'>Jag har varit så pass länge i systemutvecklingsbranschen att jag insett ett par saker.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is no silver bullet&lt;/li&gt;&lt;li&gt;Om något pushas som det bästa sen sliced bread så är det nåt grundläggande fel nånstans&lt;/li&gt;&lt;li&gt;Det är (faktiskt) inte alltid fel att uppfinna hjulet igen (eller kanske inte hjulet, men kanske chassit, karossen och inredningen för att fortsätta på den något krystade bil-liknelsen)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Låt mig ta några exempel. Jag tillhör, måste jag erkänna, dem som svalde krok, lina och fiskespö när &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-tåget lanserades med buller och bång på senare delen av 90-talet.&lt;br /&gt;Här kom en spec, en standard som skulle lösa alla mina problem - persistens, distribuerade lösningar, messaging och en hel massa annat. Sun, i sin oändliga vishet, publicerade en "show case"-app i form av "pet store" full av&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-patterns att använda för intet ont anande utvecklare världen över.&lt;br /&gt;Inte nog med det - "Enterprise" i namnet gjorde att management i tusentals företag också svalde betet. Att använda &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt; blev ett slags kvalitetsstämpel; en garant för att lösningen var byggd på solid grund, lätt att underhålla och skala upp.&lt;br /&gt;&lt;br /&gt;Hej vad vi alla bedrog oss. Om man bara hade använt sin (iofs på den tiden betydligt kortare) erfarenhet och utbildning och verkligen &lt;span style="font-weight: bold;"&gt;läst &lt;/span&gt;specen istället för att kasta sig över ett kodexempel och med ett fånigt flin på läpparna sjösätta sin första Entity Bean i nån mer än lovligt buggig och seg 'container'.&lt;br /&gt;&lt;br /&gt;Vad som framgår som pinsamt tydligt nu i ett förklarat ljus är att &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-specen var ett typiskt 'Design by Commitee' piece of crap. En kopp komplexitet tillsammans med fyra liter configuration i form av XML och sex matskedar magi - vad containern har för sig under huven visste man inte riktigt (och det var ju inte meningen att man skulle behöva veta det heller). Lycka till förresten med att sätta en debug-stopp långt inne i &lt;span style="font-weight: bold;"&gt;JBoss&lt;/span&gt; mitt i nån ConfigurationFactoryManagerFactory eller nåt som är i full färd med att instansiera sig själv utifrån nån vidrig XML-blobba.&lt;br /&gt;&lt;br /&gt;Applikationerna blev precis det motsatta mot vad som utlovades:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Skalbarhet - my ass. Nåt segare än en &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-applikation med Entity Beans går inte att uppbringa. Det är datavärldens motsvarighet till en bil med prestanda från en Trabant och komplexitet hos en Ferrari F1&lt;/li&gt;&lt;li&gt;Maintainability - tanken var att eftersom allt var byggt efter en enhetlig spec skulle man kunna byta utvecklare i ett projekt lika ofta som man byter kalsonger. Vem som helst skulle kunna kliva in och vara produktiv på en gång. Detta föll genast eftersom alla var tvungna att kringgå den vidriga specen med hembyggda lösningar (som ofta blev mer eller mindre de facto patterns för &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-utveckling) som t ex "fast lane" (dvs gå direkt med JDBC mot databasen för att göra saker som inte gick att göra med &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt; (som att läsa upp fler än 10 objekt t ex (hmm, ett persistensramverk som inte fixar att läsa upp ett tjog objekt eller så från databasen borde ju fått folk att tänka efter)))&lt;/li&gt;&lt;li&gt;En tredjeparts-marknad med färdiga komponenter färdiga att bara drag-and-droppa in i din container och vips så funkar allt! Att bygga ett system skulle bara kräva en systemdesigner (gärna i kostym) som i samråd med beställaren grafiskt drar-och-släpper komponenter i en grafisk högnivå-utvecklingsmiljö. En luttrad utvecklare inser kanske att det är omöjligt att t ex komma fram till en generell definition av ett så basalt begrepp som 'användare'. Vissa system behöver user name och mail address, medan andra behöver längd i cm och hårfärg. Marknaden för tredjepartskomponenter blir snabbt begränsad till komponenter för typisk generell funktionalitet - mail-skickning, och messaging t ex&lt;/li&gt;&lt;/ul&gt;De enda som drar nytta av eländet är företag som säljer &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;-containers och de som konsultar i ämnet. Mest de som gör bådadera, t ex säljer en vidrigt komplex container (läs &lt;span style="font-weight: bold;"&gt;WebLogic&lt;/span&gt;) och sen säljer vidrigt dyra konsulttimmar för att röja upp i de katastrofprojekt som (naturligt nog) inte kan leverera utifrån en galen spec (läs &lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt;) implementerad i en överkomplex container (läs &lt;span style="font-weight: bold;"&gt;WebLogic&lt;/span&gt;). Där har ni en bra affärsidé. Synd att det inte var jag som kom på det.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;J2EE&lt;/span&gt; är en typisk 80-20 deal. Det går bra att utveckla 80 procent av din applikation (om du kan stå ut med att den är seeeeg), medans resterande 20 procent är omöjlig att utveckla eller måste byggas i strid med vett och sunt förnuft för att kringgå alla hinder som &lt;span style="font-weight: bold;"&gt;J2EE &lt;/span&gt;lägger i vägen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-7101838955566958931?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/7101838955566958931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=7101838955566958931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7101838955566958931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/7101838955566958931'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/flja-john.html' title='Följa John'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5291239097546419135.post-4613651417579062470</id><published>2007-11-09T13:37:00.001-08:00</published><updated>2007-11-09T13:46:40.698-08:00</updated><title type='text'>First post!</title><content type='html'>Hej, här är jag. Det här är tänkt att vara en blog om livet som systemutvecklare.   Fett roligt är det också. Bloggen alltså. Jag lovar. Att det blir det.&lt;br /&gt;&lt;br /&gt;Namnet 'Hellre fåraherde' är väl valt. Alla i branschen har upplevt ett 'Hellre fåraherde'-tillfälle (dvs man vill hellre stå på en äng och räkna får än sitta med nosen i en korrupt databas). Master-databasen ditchar. Oförklarliga core dumps. Mer problem than you bargained for. Men så är det. Det bästa systemet är, på ett perverst vis, det som aldrig gick i produktion (såtillvida det inte berodde på din egen inkompents (felstavat med flit för att det är skoj att felstava inkompetnes)).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5291239097546419135-4613651417579062470?l=hellrefaraherde.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hellrefaraherde.blogspot.com/feeds/4613651417579062470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5291239097546419135&amp;postID=4613651417579062470' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4613651417579062470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5291239097546419135/posts/default/4613651417579062470'/><link rel='alternate' type='text/html' href='http://hellrefaraherde.blogspot.com/2007/11/firts.html' title='First post!'/><author><name>Mr Developer</name><uri>http://www.blogger.com/profile/12500315746721110494</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
