<?xml version="1.0" encoding="UTF-8"?>
<posts type="array">
  <post>
    <body>D&#248;dsstjernen fra starwars var en k&#230;mpe monolitiske stjerne med enorme laserkanoner. Den var bygget til at g&#248;re det af med opr&#248;rerne. Den var ikke helt f&#230;rdigbygget, der manglede endnu nogle essentielle elementer men det gjorde ikke noget i det store billede idet den opfyldte alle de krav som det galaktiske imperium kunne &#248;nske til en intergalaktiske rumstation. D&#248;dsstjernen som en monolitisk installation bet&#248;d at komponenter var t&#230;t forbundene og skabte stor afh&#230;ngighed. Hvis en komponent gik itu havde det implikationer p&#229; resten af strukturen. St&#248;rrelse gav og andre ulemper, fx var det sv&#230;rt at gemme sig i rummet og flugt fra en overh&#230;ngende fare n&#230;sten umuligt og hvis man alligevel skulle g&#229; til overlydsfart m&#229;tte man trimme alle delsystemer til hastigheden. 

Rebelfl&#229;den havde helt andre karakteristika. Det var udpinte sm&#229; rumfart&#248;jer i forskellig stand og ydeevne. Nogle skibe kunne skyde en ekstrem hastighed mens andre er langsomme men kunne skyde pr&#230;cist. De var sm&#229; og adr&#230;tte fart&#248;jer, indtil de faldt ned i stumper og stykker. Selv om halvdelen af fart&#248;jerne var ukampdygtige kunne resten af de sm&#229; skibe stadig bek&#230;mpe det galaktiske imperium.

To vidt forskellige strategier. 

For at &#248;del&#230;gge d&#248;dsstjernen skulle Luke finde en mand med plastikovertr&#230;k og en falleret skuespiller med rusten laser gun. Og hele rebelfl&#229;den naturligvis. 

Justin Gehtland var langt den st&#248;rste oplevelse p&#229; konferencen RailsConf i Berlin. Hans tale &#8221;Small Things, Loosely Joined, Written Fast&#8221; kunne v&#230;re taget lige ud af hans bog &#8221;Better, Faster, Lighter Java&#8221; eller en af hans andre 8 b&#248;ger som har modtaget utallige priser. Justin har billedligt talt ikke bare h&#229;r i ansigtet men ogs&#229; langt ned at ryggen n&#229;r det g&#230;lder om komme ud over scenekanten med hans pointer. I denne tale er emnet l&#248;st koblede systemer og det var forl&#248;serne for en gamle Java hacker som mig. </body>
    <category-id type="integer">11</category-id>
    <created-at type="datetime">2008-10-02T04:19:00Z</created-at>
    <id type="integer">122</id>
    <post-id type="NilClass">122</post-id>
    <published type="boolean">false</published>
    <tag-id type="NilClass">41</tag-id>
    <title>Small Things, Loosely Joined, Written Fast</title>
    <updated-at type="datetime">2008-10-07T20:37:54Z</updated-at>
  </post>
  <post>
    <body>Den naturlige evolution har ramt rails. Keynote spekker David Heinemeier Hansson reflekterer over sine bedrifter og tanker gennem de sidste fem &#229;r med rails. Overvejelser omkring &#8220;mature software&#8221; og fastholdelse af kundesegment spiller en betydede rolle. Rails er nu et fuldt etableret produkt som er alment accepteret bredt over hele verden i det lettere applikationssegment. Med en s&#229;dan en succes f&#248;lger en str&#248;m af modstridende interesser som vil fors&#248;ge at tr&#230;kke rails i forskellige retninger og DHH m&#229; med sin karakter bibeholde kontrol over udviklingen og jeg tror at keynoten var ment til at stabilisere forventninger og krav til rails i den n&#230;rmeste fremtid.  
 
Keynote&#8217;n handlede om menneskets naturlige udviklingsproces over paradigmet, vi vil alle blive klogere med tiden! DHH laborere over hans version af konceptet legacycode og konkludere at al kode bliver legacy lige efter den er konstrueret. Men det skal ikke betragtes som en d&#229;rlig ting, vi skal v&#230;re stolte af den legacy kode vi frembringer idet det ethvert stykke kode repr&#230;sentere vores stade p&#229; tidspunktet. David mener at koden er statisk men at vi som mennesker forandre os i forhold til koden. Vi udviklere vores syn og opfattelse af opgaven og ser hurtigt derefter l&#248;sningen i et anden lys. Det handler om egen udvikling af smag, viden og personlige pr&#230;ferencer. 

Indr&#248;mmet, jeg er ikke ubetinget stolt af de applikationer var med at fremstille omkring &#229;rtusindskiftet. Tiden kr&#230;vede store applikationsarkitekturer med mange lag. Det kunne jo v&#230;re at man ville udskifte hele business modellen, hvilket naturligvis aldrig er sket. Et par &#229;r senere blev design pattern det helt store og applikationerne var nu b&#229;de fyldt med logiske lag og vertikale design patterns. Mit st&#248;rste problem var dog med at begrunde hvorfor jeg som alle andre var med at &#248;del&#230;gge en masse applikationer med overengineered arkitektur. 

&quot;Se post om Overengineered-Software&quot;:/posts/118-Overengineered-Software

For at illustrere sin pointe omkring legacy kode benyttede DHH muligheden for at vise nogle eksempler fra den tidlige rails kodebase. Han detekterede nogle sjove konstruktioner, de var naturligvis perfekte da de blev skrevet men nu flere &#229;r efter var de b&#229;de komiske, misvisende og samlet i wastebin klasser med underlig navngivning. Nu da man er blevet s&#229; meget klogere og ens subjektive vurdering er baseret p&#229; flere &#229;rs kodebase ser man ens arbejde i en anden kontekst. Kun rookie programm&#248;re h&#230;vder at de skriver perfekt kode og David havde ondt af dem som tror at rails l&#248;ser alle deres problemer.  

David citeret Joel Spolsky: &quot;God software tager 10 &#229;r at skrive&quot;, men omformuleres til: &quot;Virkelig vellykket software tager 10 &#229;r at skrive&quot;. Hvis du &#248;nsker at g&#248;re noget lykkes, du har i sinde at have arbejdet med det i lang tid. M&#229;let for alle b&#248;r v&#230;re at arbejde med software som tage 10 &#229;r at skrive, og v&#230;re glad for det. Et andet Joel Spolsky citat: &quot;Det st&#248;rste strategisk fejltagelse enhver software virksomhed kan g&#248;re: Omskriv al koden fra bunden&quot;. 

Der findes ikke en endegyldig l&#248;sning p&#229; legacy kode. Det er bevist at rene omskrivninger af kode ikke l&#248;ser store problemer men blot giver nye problemer. En god regel er at omskrive sm&#229; dele af koden og David har i tilgift et r&#229;d som lyder: &quot;Du er n&#248;dt til at forlade den kode du arbejder med i bedre stand en du fandt den&quot;. 

Legacy er ikke s&#229; slemt mener David, det holder dig &#230;rlig om dig selv og hvordan du udvikler dig som programm&#248;r.
</body>
    <category-id type="integer">3</category-id>
    <created-at type="datetime">2008-09-08T03:08:00Z</created-at>
    <id type="integer">119</id>
    <post-id type="NilClass">119</post-id>
    <published type="boolean">false</published>
    <tag-id type="NilClass">41</tag-id>
    <title>RailsConf  Europe 2008 Keynote</title>
    <updated-at type="datetime">2008-09-08T12:33:37Z</updated-at>
  </post>
  <post>
    <body>Det jeg lod m&#230;rke til ved RalisConf Europe 2007 i Berlin var is&#230;r alle de ting som slet ikke blev omtalt eller diskuteret. Umiddelbart har jeg ikke konkluderet hvorvidt jeg synes det er godt eller skidt men det fordret klart forretningsprocessen. 

N&#229;r en flok Java n&#248;rder er samlet under en konference bliver der normalt altid diskuteret heftigt om alle de teknologiske spisfindigheder omkring platformen. N&#229;r en samling af Ruby on Rails n&#248;rder er samlet bliver der diskuteret model objekter og smartass features som fx Ajax. Er der forskel? ja i h&#248;j grad.

I Rails er adoption en k&#230;mpe fordel. Det er f&#248;rst virkeligt g&#229;et op for mig efter disse tre dage i Berlin hvor stor en aflastning det er at der findes en solid konsensus mellem alle de tilstedev&#230;rende omkring en masse punkter som David har bestemt. Jeg har aldrig v&#230;ret til en konference hvor der har stillet s&#229; lidt skeptiske sp&#248;rgsm&#229;l til de beslutninger som ligger til grund for frameworket. Man kan argumentere om det er sundt eller ej, men faktum er at det fjerner en masse triviel st&#248;j og f&#229;r folk til fokuser p&#229; de enlige problemer. Forretningen. 
  

Vel tilbage fra RalisConf Europe 2007 er det netop g&#229;et op for mig at jeg tr&#230;nger til ferie. Det var et par rigtig gode dage sammen men en masse Ruby on Rails fans fulde af entusiasme og masser af spas. Efter min mening har denne konference i nogen grad mindet mig og den l&#248;sslupne men interessante holdning som var til stede under de f&#248;rste store Java konferencer for 10 &#229;r siden. Desv&#230;rre gav det ogs&#229; en fornemmelse af lethed og mangle p&#229; cases fra den virkelige verden hvor problemerne bor. Jeg talte med flere som var enige i min antagelse om at der ligesom manglede lidt substans i flere af indslagene.  

Naturligvis skulle David Heinemeier Hansson selv holde en keynote som god &#229;bning p&#229; to fulde dage med taler. Det gjorde han ogs&#229; ok, Casper Fabricius har lavet en fin blog om keynoten. 

&quot;David Heinemeier Hansson RalisConf Europe 2007 Keynote&quot;:http://casperfabricius.com/blog/2007/09/18/railsconf2007-dhh



Her er mit personlige udpluk af de folk som efter min mening g&#248;r en forskel. Ola Bini, Craig R. McClanahan, Roy T. Fielding, Cyndi Mitchell, Jonathan Siege, Marcel Molina Jr, Michael Koziarski, og sidst men ikke mindst Neal Ford.  

Den bedste kommentar for mig kom dog ikke fra en Rubyist men fra VP hos ThoughtWorks &quot;Cyndi Mitchell&quot;:http://www.thoughtworks.com/who-we-are/leadership-profiles/cyndi-mitchell.html Cyndi startede med at runde de glade DOT COM dage af, det var en tid uden forretningsmodel men med masser af bloatware og penge ikke mindst. Virksomheder blev fortalt at de skulle investere store summer i infrastruktur og middelsoftware. Og det gjorde de med det resultat at 2004 blev et &#229;r med store problemerne med data migrering og vedligehold af store systemer. Forretningerne lod deres afmagt g&#229; ud over IT afdelingerne. Det var(er) et rod! 

Og nu er det s&#229; jeg bliver n&#248;dt til at undskylde. Som (tidligere) Java specialist f&#248;lte mig truffet over at ha bidraget med en masse bloatware! Ja for fanden, vi havde penge nok til at lave det jeg kalder Ikea applikationer. Ikea st&#229;r for mig som en applikation der samler hele forretningsomr&#229;det under en hat. I denne applikation fylder man s&#229; alle de frameworks og design patterns man kan finde. Jeg ved det. Jeg holdt taler om fremgangsm&#229;den. Jeg var en idiot. 

Nu kr&#230;ver forretningen mere p&#229; 6 m&#229;neder end de fik p&#229; 2 &#229;r. Ikke kun hurtigere, de vil ogs&#229; kunne &#230;ndre undervejs, og bagefter med korte reflekser. Den globale &#248;konomi tr&#230;nger igennem og vi m&#229; kunne reagere hurtigere. Forretningerne kigger efter en bedre m&#229;de, og nu findes der en bedre m&#229;de. Man beh&#248;ver ikke mere k&#230;mpe infrastruktur for at lave en forretningsapplikation. Man beh&#248;ver ikke vente m&#229;nedsvis p&#229; resultatet.  

Ruby g&#248;r det muligt. Rails med David spisen bragte ruby til hvermand. Nu kommer der nye teknologer som JRuby og IronRuby der er med at sikre adoption af Ruby i virksomhederne p&#229; lige fod med Java og .NET. 

Ruby og Rails udviklere med mange kvalifikationer og forretnings viden er med til at &quot;Crossing the Chasm&quot;:/blog/show/68

Det er en sp&#230;ndende tid og jeg vil v&#230;re med. 

En der ikke vil v&#230;re med er &quot;Ola Bini&quot;:http://ola-bini.blogspot.com/ Han fascinerer mig, ikke pga hans sorte negle men mere fordi har siger tingene ligeud og arbejder p&#229; JRuby. Ola er ikke bange for at komme med nogle p&#229;stande fx at Ruby on Rails ALDRIG kommer ind som Enterprise applikation i virksomhederne, med mindre man bruger JRuby on Java pga driftafd. M&#229;ske har han faktisk ret, ikke at jeg er meget for at bifalde den kommentar men jeg arbejder flere steder hvor det er faktum. 

Ola elsker Ruby, JRuby og bitche altid p&#229; den virkelig ruby med ting som;

* Green threading
* Partial Unicode support
* Speed (slow)
* Memory management, specifically the garbage collector
* C language extensions
* Politics (you want me to switch to what?)
* Legacy (Java is everywhere)
&lt;/ul&gt;


Neal Ford er applikations arkitekt hos ThoughtWorks. Ud over at v&#230;re en eminent taler har Neal v&#230;ret rundt omkring og fx skrevet b&#248;ger som Art of Java Web Development. Han ramte p&#229; et &#248;mt sted. Hvordan ved man at ens javascript virker? Av den sad. &quot;Selenium&quot;:http://www.openqa.org/selenium er et test v&#230;rkt&#248;j der simulere en webbrowser og s&#229; kan invokere b&#229;de html sider og Ajax komponenter hverfor sig. P&#229; samme m&#229;de kan man teste sine javascripts uden at teste underliggene bibliotek med. Neal er en forn&#248;jelse at h&#248;re p&#229;, man tr&#230;kkes gennem sjove episoder og 50 min g&#229;r alt for hurtigt. Som en side gevinst blev Firebug plugin Firebug brugt til gr&#230;nsen. Sejt     


</body>
    <category-id type="integer">3</category-id>
    <created-at type="datetime">2007-09-20T03:54:00Z</created-at>
    <id type="integer">69</id>
    <post-id type="NilClass">69</post-id>
    <published type="boolean">false</published>
    <tag-id type="NilClass">41</tag-id>
    <title>RalisConf Europe 2007 Wrap up</title>
    <updated-at type="datetime">2008-02-18T01:46:41Z</updated-at>
  </post>
</posts>
