<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>her er mitt arbeid &#187; utvikling</title>
	<atom:link href="http://dallokken.com/espen/category/utvikling/feed/" rel="self" type="application/rss+xml" />
	<link>http://dallokken.com/espen</link>
	<description></description>
	<lastBuildDate>Fri, 09 Sep 2011 19:44:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Det å presentere</title>
		<link>http://dallokken.com/espen/2010/09/det-a-presentere/</link>
		<comments>http://dallokken.com/espen/2010/09/det-a-presentere/#comments</comments>
		<pubDate>Sat, 11 Sep 2010 11:05:30 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javazone]]></category>
		<category><![CDATA[presentasjon]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=447</guid>
		<description><![CDATA[Jeg var så heldig å få lov til å snakke om noe jeg virkelig synes er spennende på årets JavaZone, nemlig mine erfaringer fra å forsøke skape den nye typen sosiale musikkspiller i foredraget: &#8220;How we blew our shot at beating Spotify, spending two metric truckloads of cash doing it&#8221;. En takk går til programkomiteen [...]]]></description>
			<content:encoded><![CDATA[<p>Jeg var så heldig å få lov til å snakke om noe jeg virkelig synes er spennende på årets <a href="http://jz10.java.no/" target="new" >JavaZone</a>, nemlig mine erfaringer fra å forsøke skape den nye typen sosiale musikkspiller i foredraget:  <a target="new" href="http://javazone.no/incogito10/events/JavaZone%202010/sessions#2f712101-d6cd-4b7a-925b-e5a90248833d">&#8220;How we blew our shot at beating Spotify, spending two metric truckloads of cash doing it&#8221;</a>. </p>
<p>En takk går til programkomiteen som lot meg slippe til med et tema som kanskje er litt utenfor, men som likevel så ut til å være spennende for mange. Personlig trodde jeg at det enten ble meg og noen gamle kolleger som kom dit, men det var utrolig gledelig å se et pakket rom. Det var utrolig spesielt å snakke foran en tydelig engasjert gjeng som også stilte en rekke veldig bra spørsmål etter jeg var ferdig, så tusen takk til dere som kom.</p>
<h2>Det å presentere</h2>
<p>Veldig mange sier at det å holde foredrag handler 80% om det å presentere og 20% om innholdet. Jeg er veldig enig i dette, hvis ikke den som står på scenen faktisk gir av seg selv og forsøker å gjøre det spennende for de som hører på så burde egentlig hele salen gå. Personlig gjør jeg dette veldig ofte, klarer ikke den på scenen å skape en kobling med de som hører på så kan du heller lese slidene etterpå eller se videoen. Du får ingenting ut av å sitte der. </p>
<p>Selvsagt er det utfordringer ved å fokusere mye på hvordan man presenterer, fordi det er ikke alle som da klarer å få med seg hovedbudskapet. Dette forstod jeg da jeg så artikkelen <a target="new" href="http://www.digi.no/850856/slik-tapte-vi-for-spotify">Slik tapte vi for Spotify</a> på digi.no, hvor journalisten hadde valgt å fokusere på de tabloide utsagnene som ikke var en del av hovedbudskapet som gikk på innovasjon og det å starte opp selskaper. Det er selvsagt nyttig erfaring å ta med seg videre og forsøke gjøre det slik at enda fler får med seg det viktigste. Heldigvis var nok journalisten i mindretall, for jeg fikk mange <a href="http://www.no.capgemini.com/teknologiblogg/2010/09/javazone_2010_how_we_blew_our.php" target="new">gode tilbakemelding på nettet</a> og fra folk som var i eller hadde jobbet i oppstartsfirma at jeg hadde noen gode poenger. </p>
<h3>Hvordan jobbe med presentasjon?</h3>
<p>Det er mennesker som skriver bøker om emnet og holder foredrag om nettopp dette. Personlig så har jeg ikke lest noe særlig av slike ting, fordi jeg har en enkel filosofi: <strong>Jeg holde kun foredrag om ting jeg bryr meg om</strong>.</p>
<p>Dersom jeg skulle holdt foredrag om andre ting, ja så kanskje hadde jeg hatt behov for en metode eller lignende for å komme frem til en presentasjon. Kanskje hadde jeg måtte øve mye og trent på hvordan levere ting. Gitt at jeg alltid snakker om noe jeg brenner for eller som jeg er veldig engasjert i så har jeg ikke behov for noen metode for å komme opp med foredraget (ok, kanskje avsnittene nedenfor kan regnes som en metode, hva vet jeg). Det bare kommer av seg selv, fordi jeg har noe å si.</p>
<p>Til årets JavaZone brukte jeg i underkant av ti timer på å forberede foredraget. Det gikk med litt tid til å få slidene til å matche musikken på introen, men til å sette opp selve foredraget så brukte jeg lite tid. Siste uka før konferansen begynte jeg å sette opp selve presentasjonen. Før det hadde jeg satt opp noen mind maps hvor jeg hadde lagt inn hoved poengene og utover det foregikk forberedelsene i hodet mitt. Jeg føler at det er bedre å gå å gjøre presentasjonen i hodet en del ganger, visualisere hvordan det skal gjøres, fremfor å begynne å hacke ting inn i slides. </p>
<h3>Å lage slides er like kjedelig som å skrive manuelle test script</h3>
<p>Å lage slides er, for meg, en svært lite kreativ prosess og noe jeg forsøker å bruke minst mulig tid på. Det er som når man skrev stil på skolen og måtte føre inn med penn (ja, så gammel er jeg at jeg ikke kunne levere stil elektronisk). Oppsett av slides er å føre inn for meg, kjedelig men nødvendig likevel. Jeg gjør det slik fordi jeg vil ha mest mulig frihet til å tenke på hvordan ting skal leveres på scenen så lenge som mulig. Det å sette opp slides gjør ting veldig endelig og det er mye jobb å rette opp i ting etterpå. Ved å ha mind maps og ting i hodet så er det ekstremt lett å gjøre justeringer :)</p>
<p>Det eneste som jeg pleier å øve på er introen. Den aller første setningen må sitte og der er det etter min erfaring veldig dumt å ta det på sparket. Kommer du skeivt ut allerede i det du sier hva du skal snakke om, så kan det fort gå bare nedover fra der. Derfor sørger jeg alltid for å ha helt klart for meg hva første setning er. Alt etter det tar jeg på sparket. Å gjøre selve foredraget er noen ganger litt sånn ut av kroppen opplevelse. Det har hendt at jeg har blitt både overrasket og flau når jeg har sett meg selv på video etterpå fordi jeg trodde virkelig ikke at jeg sa <u>det</u>.<br />
Jeg tror at om jeg hadde øvet inn alt jeg skulle si, så hadde ikke foredraget blitt noe bra. Alt jeg øver inn er første setning og etter det ser jeg bare på flyten i presentasjonen og at det er en bra historie som fortelles. Det er langt viktigere at slidene danner en bra ramme som jeg bare kan snakke ut i fra uten å ha trent inn noe. </p>
<p>Sannelig virker det som jeg har en metode likevel når jeg leser dette her, men jeg tror ikke jeg vil anbefale noen andre å følge den. Finn ut av hva du må gjøre for å føle deg trygg når du skal levere noe også gjør du det. Ikke les en bok eller hør på sånne som meg. Lag din egen måte å gjøre det på, så kommer det helt sikkert til å være veldig mye bedre enn å adoptere andre sine metoder. Dette gjelder ikke bare det å gjøre presentasjoner, men også ting som blogg innlegg. Skriver du fra hjertet om noe du brenner for så blir det stort sett bra og folk skjønner det. Ikke hør på en eller annen &#8220;kjendis blogger&#8221; som skal fortelle deg hvordan du skal gå frem for å skrive blogg. Det er egentlig veldig enkelt: Har du noe på hjertet, så skriv det. Hvis du ikke egentlig har noe å melde, vel så la være å skriv det blogg innlegget. Vi trenger virkelig ikke flere innholdsløse blogger på nettet :)</p>
<h2>Kjære konsulent med fin tittel, kom deg ned av scena!</h2>
<p>På JavaZone er det ekstremt mange konsulentselskaper som ønsker å profilere seg og det har hjulpet konferansen til å vokse seg til å bli en av de største. Problemet med dette er at de samme selskapene tvinger folk som aldri burde stått foran et publikum til å holde foredrag fordi de har en tittel som tilsier det. Jeg har en bønn til alle dere som tvinger i utgangspunktet veldig dyktige mennesker til å gjøre noe de åpenbart ikke er skikket til. Du bør settes foran et publikum bare fordi du er flink, du skal være foran publikumet fordi du klarer å formidle et budskap. Å kunne lese opp dine egne slides holder rett og slett ikke. </p>
<h3>Det handler om å levere</h3>
<p>Jeg konstaterte på at det var noe murring om nordmenn som ikke snakket på engelsk og slike ting. Det er godt mulig de snakket om meg også her, for jeg hadde tittel og slider på engelsk men snakket på norsk. Hvorfor gjorde jeg det? Først og fremst av respekt for de som kommer å hører på. Nå tenker du kanskje at det var en rar ting å si ettersom det kan være noen som ikke forstår engelsk i salen. Jeg mener det er bedre å faktisk være i stand til å formidle noe til 80-90% av salen, fremfor å stå der å stotre på håpløs engelsk og bruke all energi på å forsøke å huske hva faen det var du  skulle si. Flere foredrag jeg så på JavaZone var på såpass dårlig engelsk at jeg strengt tatt tror de engelsktalende hadde problemer med å forstå det likevel. I tillegg så var det folk som jeg vet kan holde bra foredrag som fremstod som ubrukelige fordi de ikke gjorde det på sitt morsmål.</p>
<p>Derfor mener jeg det er en respektfull ting å gjøre å faktisk innse at, nei jeg kommer ikke til å klare å levere en bra presentasjon som engasjerer de som hører på om jeg gjøre det på engelsk så jeg gjør det på morsmålet mitt. Da er det i vertfall en viss kvalitet på det jeg gjør og jeg kan skape den stemningen jeg ønsker. De som ikke forstår norsk kan forlate salen og heller se på <a target="new" href="http://slidesha.re/9xKxce">slidene</a>, eventuelt snakke med meg etterpå. Jeg skulle selvsagt ønske at jeg hadde tid til å øve tilstrekkelig slik at jeg kunne gjort foredraget  på engelsk, men det var ikke mulig i år. All respekt til de som gjorde det og klarte det bra, dere er mer dedikert og flittig enn meg :) </p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2010/09/det-a-presentere/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Enkelhet, ikke så enkelt</title>
		<link>http://dallokken.com/espen/2009/11/enkelhet-ikke-sa-enkelt/</link>
		<comments>http://dallokken.com/espen/2009/11/enkelhet-ikke-sa-enkelt/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 19:25:24 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[smidig]]></category>
		<category><![CDATA[utvikling]]></category>
		<category><![CDATA[enkelhet]]></category>
		<category><![CDATA[simplicity]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=308</guid>
		<description><![CDATA[Dette er en artikkel i kategorien refleksjon og det kommer som et resultat av det jeg har erfart i de siste årene hvor Smidig-bevegelsen virkelig har blitt allemannseie. Jeg har både vært team medlem, Scrum Master, arkitekt og delvis produkt eier i ulike sammenhenger. En ting har alltid ligget å ulmet i bakhodet mitt de [...]]]></description>
			<content:encoded><![CDATA[<p>Dette er en artikkel i kategorien refleksjon og det kommer som et resultat av det jeg har erfart i de siste årene hvor Smidig-bevegelsen virkelig har blitt allemannseie. Jeg har både vært team medlem, Scrum Master, arkitekt og delvis produkt eier i ulike sammenhenger. En ting har alltid ligget å ulmet i bakhodet mitt de siste årene og det har med begrepet <em>enkelhet</em> eller <a href="http://en.wikipedia.org/wiki/Simplicity" target="_blank">simplicity</a>.</p>
<p>Begrepet brukes til veldig mye rart og har blitt en viktig ingrediens i alle dokumenter om visjoner og strategier. Alt skal være enkelt. En annen setting hvor enkelhet nevnes hyppig er i diskusjoner rundt konkrete løsninger. Her brukes begrepet ofte som hersketeknikk hvor den som kommer med &#8220;<em>men det er jo ikke enkelt</em>&#8221; eller &#8220;<em>det er unødig komplisert</em>&#8221; forsøker å parkere andre forslag. Det er i denne andre konteksten hvor det hele tiden har skurret i hodet mitt. Veldig ofte bruker man begrepet <em>enkelt</em> på en måte som tilsier at noe skal være <em>banalt</em> eller <em>simpelt</em>. Løsninger som involverer teknikker eller noen biblioteker blir ofte merket som <em>kompliserte</em> (ofte med unødvendig som prefix).</p>
<h3>Enkelhetens lover</h3>
<p><img class="alignleft" title="4th law: Learn" src="http://lawsofsimplicity.com/images/desk/05_1600_1200sm.jpg" alt="" width="133" height="100" />Enkelhet kan oppnås på mange måter, hvor en av de er å redusere og fjerne noe. Dette er grunntanken de fleste forbinder med enkelhet, men etter å ha lest <a href="http://en.wikipedia.org/wiki/John_Maeda" target="_blank">John Maeda</a> sin <a href="http://lawsofsimplicity.com/" target="_blank">The Laws Of Simplicity</a> ble jeg klar over at dette er bare en av veldig mange teknikker som kan brukes til å oppnå enkelhet.</p>
<p>Maeda oppsummerer enkelhet i <a href="http://lawsofsimplicity.com/category/laws?order=ASC" target="_blank">ti lover</a> som kan brukes i et arbeid med å oppnå enkelhet i løsninger. I det daglige hører jeg stortsett snakk om å oppnå enkelhet gjennom <a href="http://lawsofsimplicity.com/?p=50" target="_blank">Lov 1: Reduser</a>. Det er selvsagt en viktig teknikk for å oppnå enkelhet, men den er overvurdert særlig i forbindelse med å løse problemer som oppstår under systemutvikling. Dersom det er en problemstilling som ikke er triviell, så er det faktisk slik at det er en del andre lover som faktisk gir bedre resultat enn bare å redusere kompleksitet og å &#8220;dumb it down&#8221;. Organisering og kunnskap fører veldig ofte til enkelhet i løsningen, på tilsvarende måte som loven om å redusere.</p>
<h3>Simplifisering mer enn bare å redusere</h3>
<p>Hvis du må lage et rammeverk for å utøve f.eks mapping fra ett objekt til et annet, så kan det gjøres enkelt dersom du sørger for at rammeverket er godt organisert og hvis du sørger for å la de som skal bruke det få økt kunnskap gjennom eksempler og dokumentasjon.  Veldig mange vil si at å lage et rammeverk strider imot det å gjøre noe enkelt, men det blir for enkelt mener jeg. Et godt skrevet rammeverk som er testet og skrevet brukervennlig vil jeg si er essensen i enkelhet. Du gjør en ofte utført operasjon enkel for flere. Hvorvidt det ligger avansert kode i rammeverket er egentlig uinteressant. Ingen stiller spørsmål rundt hvorvidt Spring rammeverket bruker noe avansert for å oppnå det de gjør. Hvorfor skal man i prosjekter måtte gå kanossagang om man ønsker å benytte seg av noe som av enkelte oppfattes som <em>avansert</em>?</p>
<h3>Balanse</h3>
<p>Enkelhet består ikke i å fokusere på <em>reduksjon</em> eller bare å se på tidsbesparelser. Evnen til å vurdere flere av lovene slik at de balanserer hverandre ut som er nøkkelen til å oppnå <em>enkelhet</em>.</p>
<p>Det viktigste er likevel å innse at for å oppnå enkelhet kreves mer enn reduksjon. Hvis du synes utvikling av web applikasjoner er vanskelig med Java verdens mange rammeverk, så blir det ikke bedre av å redusere alle slike å bare bruke servlet klassene. En slik drastisk reduksjon er ofte fundert på en tanke om enkelhet, trukket altfor langt. Ofte bunner slike på manglende kunnskap eller behov for å bevise noe, som begge er krefter som trekker i retning av &#8220;dumbing down&#8221;: ikke enkelhet.</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2009/11/enkelhet-ikke-sa-enkelt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Essensen i brukergrensesnittsutvikling</title>
		<link>http://dallokken.com/espen/2009/09/essensen-i-brukergrensesnittsutvikling/</link>
		<comments>http://dallokken.com/espen/2009/09/essensen-i-brukergrensesnittsutvikling/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:38:59 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javazone]]></category>
		<category><![CDATA[presentasjon]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=303</guid>
		<description><![CDATA[Midt i det som skulle være pappa-permen min så stakk jeg innom JavaZone 2009 for å holde en presentasjon om brukergrensesnittsutvikling. Jeg har lenge tenkt på å holde et foredrag om dette emnet, ettersom det er noe jeg ofte ser behov for i prosjekter jeg har jobbet på. Tradisjonelle Java utviklere sliter veldig med å [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.mesan.no/filestore/JavaZone2009logo.jpg" alt="null" /> Midt i det som skulle være pappa-permen min så stakk jeg innom <a href="http://www.java.no/javazone/2009" target="_new">JavaZone 2009</a> for å holde en presentasjon om brukergrensesnittsutvikling. Jeg har lenge tenkt på å holde et foredrag om dette emnet, ettersom det er noe jeg ofte ser behov for i prosjekter jeg har jobbet på. Tradisjonelle Java utviklere sliter veldig med å applisere sine kunnskaper om objekt orientert programmering i utformingen av brukergrensesnitt. Det er essensen i utvikling av grensesnitt, ingen sort-magi eller annen heksekunst. Teknikken med å objekt orientere er <a href="http://tcs.java.no/tcs/?id=0D5021AF-FB41-4F73-87BE-745A23D5E94D" target="_new">The Essence of User Interface Programming</a>.<br />
I tillegg kommer jeg med en hjelpende hånd til utviklere som starter med grensesnittsutvikling, hvor jeg gir noen tips om hvordan de bør forholde seg til noen av de kjente fallgruvene/problemstillingene som kommer opp i grensesnittsutvikling.</p>
<p>Se foredraget <a href="http://tcs.java.no/tcs/?id=0D5021AF-FB41-4F73-87BE-745A23D5E94D" target="_new">The Essence of User Interface Programming</a> og legg gjerne inn din kommentar. Takk til <a href="http://www.java.no/javazone/2009" target="_new">JavaZone</a> for å arrangere en bra konferranse og det er alltid morsomt å delta!</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2009/09/essensen-i-brukergrensesnittsutvikling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utdaterte arkitekter koster din bedrift penger</title>
		<link>http://dallokken.com/espen/2008/12/om-arkitekter/</link>
		<comments>http://dallokken.com/espen/2008/12/om-arkitekter/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 13:50:52 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[arkitekter]]></category>
		<category><![CDATA[programvare]]></category>
		<category><![CDATA[smidig]]></category>
		<category><![CDATA[smidigemetoder]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=163</guid>
		<description><![CDATA[I anledning Software 2009 skal jeg holde en lyntale hvor jeg tar opp et tema jeg, og veldig mange andre jeg har snakket med, føler smerten til på daglig basis: Programvare arkitekter som ikke jevnlig utfører praktisk utvikling påfører sine bedrifter enorme kostnader Hvordan kan jeg påstå noe slik når det jo er de beste [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dataforeningen.no/software"><img class="aligncenter" title="Software 2009" src="http://dataforeningen.no/filestore/software2009copy.jpg" alt="" width="300" height="162" /></a>I anledning <a href="http://dataforeningen.no/software" target="_blank">Software 2009</a> skal jeg holde en <a href="http://smidig2007.no/static/lyntaler_info" target="_blank">lyntale</a> hvor jeg tar opp et tema jeg, og veldig mange andre jeg har snakket med, føler smerten til på daglig basis:</p>
<p><strong>Programvare arkitekter som ikke jevnlig utfører praktisk utvikling påfører sine bedrifter enorme kostnader</strong></p>
<p>Hvordan kan jeg påstå noe slik når det jo er de beste som får det store ansvaret av å være arkitekter? Årsaken mener jeg ikke er manglende kompetanse, men snarere en gradvis fjerning fra der hvor den faktiske produksjonen skjer. Denne distansen gjør at man i stadig mindre grad er i stand til å gjøre gode vurderinger på enkelt saker.</p>
<p>Gjennom å i stadig mindre grad ta del i det daglige arbeidet havner arkitektene i en situasjon hvor man stort sett kan beslutte på generelt grunnlag og gammel kompetanse. Konsekvensen for bedriftene er at man ofte får en teknisk infrastruktur som stagnerer og som tilslutt må byttes ut til enorme kostnader. I stedet for at man har gradvis forbedret og oppdatert infrastrukturen har man hele tiden kjørt &#8220;safe&#8221; og med det man kan godt fra før.</p>
<h2>Kontinuerlig forbedring</h2>
<p>Hvordan unngår du så at de som tar beslutninger har detaljkunnskap og praktisk erfaring nok til å kunne holde seg oppdatert? Arkitekter må plasseres ut i praktisk arbeid. Dette heter <a href="http://en.wikipedia.org/wiki/Eating_one%27s_own_dog_food" target="_blank">eat your own dog food</a> eller Pain Driven Development. Gjennom å la arkitektene føle på kroppen hvordan det er å utføre vanlige systemutviklingsoppgaver etter retningslinjer de selv har lagt vil også de føle på kroppen behovet for kontinuerlig forbedring av arkitektur og infrastruktur. Gjennom å skape en kultur for endring og kontinuerlig forbedring vil bedriften spare store summer gjennom at de slipper store prosjekter for oppdatering av utdatert arkitektur.</p>
<p>Hvis du synes dette høres spennende ut, så kom på Dataforeningens Software 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/12/om-arkitekter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gro applikasjonen din som en åker</title>
		<link>http://dallokken.com/espen/2008/11/gro-applikasjonen-din-som-en-aker/</link>
		<comments>http://dallokken.com/espen/2008/11/gro-applikasjonen-din-som-en-aker/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 20:27:37 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[applikasjonsdesign]]></category>
		<category><![CDATA[arkitektur]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[leansoftwaredevelopment]]></category>
		<category><![CDATA[metode]]></category>
		<category><![CDATA[smidigemetoder]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=121</guid>
		<description><![CDATA[Jeg har vokst opp på en gård i fjellbygda Folldal og er dermed veldig mottagelig for analogier og eksempler som tar utgangspunkt i gårdsdrift. Overraskelsen min var stor da jeg leste en artikkel av XP-guru Kent Beck som nettopp bruker bøndenes metode for å dyrke åkeren for å vise hvordan man kan gjøre det samme [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mrflip/2260282192/"><img class="alignright" src="http://farm3.static.flickr.com/2031/2260282192_6660fd2465_m.jpg" alt="" /></a>Jeg har vokst opp på en gård i fjellbygda <a href="http://www.folldal.kommune.no/" target="_blank">Folldal</a> og er dermed veldig mottagelig for analogier og eksempler som tar utgangspunkt i gårdsdrift. Overraskelsen min var stor da jeg leste en artikkel av XP-guru <a href="http://en.wikipedia.org/wiki/Kent_Beck" target="_blank">Kent Beck</a> som nettopp bruker bøndenes metode for å dyrke åkeren for å vise hvordan man kan gjøre det samme i applikasjons design.</p>
<p>Artikkelen <a href="http://www.threeriversinstitute.org/FirstOneThenMany.html" target="_blank">First One, Then Many</a> tar for seg et klassisk dilemma innen systemutvikling. Du skal lage et system som skal håndtere en transaksjon i første omgang, men man antar at det vil måtte håndtere mer enn en senere.  Klassisk systemutviklings litteratur sier da at du må <em>ta høyde for</em> dette i ditt design. Kent forklarer i sin artikkel hvorfor dette ikke er en god ide og han bruker bonden som utgangspunkt.</p>
<p>Bønder dyrker ikke åkeren sin for at den skal være komplett fra dag en, han dyrker den for at den skal være perfekt når det er tid for innhøsting. Derfor bruker bonden ikke bare en sort frø, han bruker gjerne flere sorter frø for å oppnå best resultat. Bonden bruker en frø type som gror raskt for å stabilisere jordsmonnet i tillegg til den egentlige sorten frø som gror litt saktere. På denne måten sørger han for at åkeren <em>over tid</em> blir utnyttet optimalt.</p>
<p>Jeg er veldig enig i Kent sin måte å tilnærme seg applikasjons design. Gjennom å gjøre &#8220;smarte&#8221; antagelser og å &#8220;ta høyde for&#8221; ting så skaper man problemer for den som kommer senere. Det er langt bedre å ha en kodebase som reflekterer det som systemet faktisk gjøre, enn en kodebase som inneholder halvveis implementert funksjonalitet. I <a href="http://en.wikipedia.org/wiki/Lean_software_development" target="_blank">Lean Software Development</a> kalles dette søppel (eller waste (eller ennå mer trendy kalles det <a href="http://en.wikipedia.org/wiki/Muda_(Japanese_term)" target="_blank">muda</a>)). Søppel har en tendens til å skape ubehag dersom det opptrer i større mengder og blir liggende over tid. Derfor er jeg helt enig med Kent sine tanker om å la kodebasen reflektere hvordan virkeligheten faktisk er. Det gjør det enklere å både vedlikeholde og videreutvikle en løsning.</p>
<p>Hvis du tenker på Kent sin artikkel neste gang du sitter å forsøker være <em>kreativ</em> når du spesifiserer et grensesnitt så vil du, kunden og systemet nok takke deg til slutt.</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/11/gro-applikasjonen-din-som-en-aker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tips og Triks Til Trivsel med Flex</title>
		<link>http://dallokken.com/espen/2008/10/tips-og-triks-til-trivsel-med-flex/</link>
		<comments>http://dallokken.com/espen/2008/10/tips-og-triks-til-trivsel-med-flex/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 14:43:51 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=41</guid>
		<description><![CDATA[Flex har virkelig begynt å få fotfeste i Norge det siste året. Dette merker man i jobbannonser hvor det stadig oftere er nevnet Flex kompetanse og man merker det med antallet hendvendelser som kommer angående hjelp til å begynne med Flex. Å starte med Flex er ikke noe stort problem og de fleste utviklere klarer [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="___" src="http://www.dallokken.com/images/espen/IMG_1099.png" alt="" />Flex har virkelig begynt å få fotfeste i Norge det siste året. Dette merker man i jobbannonser hvor det stadig oftere er nevnet Flex kompetanse og man merker det med antallet hendvendelser som kommer angående <a href="http://dallokken.com/espen/tjenester/flex-ad/">hjelp til å begynne med Flex</a>.</p>
<p>Å starte med Flex er ikke noe stort problem og de fleste utviklere klarer veldig lett å komme igang med å lage applikasjoner. Tilsvarende lett er det å gå i en del fallgruver og gjøre en del feil. Jeg har arbeidet med Flex en stund og har dermed også vært nedi de fleste fallgruvene. Derfor tenkte jeg å dele noen av mine beste tips og triks som jeg har lært meg til å bruke for å ennå raskere levere Flex applikasjoner.</p>
<ul>
<li>Ha alltid en modell i bunnen også når du lager mockups og prototyper.</li>
<li>Data Driven Application Design: sørg for at det alltid er dataene som driver applikasjonen din ved hjelp av data binding</li>
<li>Les dokumentasjonen om klassen <a href="http://livedocs.adobe.com/flex/3/langref/mx/binding/utils/BindingUtils.html" target="_blank">Binding Utils</a> og sørg for å laste ned koden til <a href="http://weblogs.macromedia.com/paulw/archives/2006/05/the_worlds_smal.html" target="_blank">Observere og ObervereValue</a>.</li>
<li>Logging: lag deg en logger som gjør det mulig for andre brukere og sende deg logg når det oppstår feil situasjoner. Et slikt eksempel er en logger som bruke <a href="http://getfirebug.com" target="_blank">Firebug</a>.</li>
<li>Evolutionary Application Architecture: ikke bygge rammeverk og komponenter i tilfelle du trenger de. Flex rammeverket gjør det veldig enkelt å gradvis bygge ut en prototype til en ferdig applikasjon. Lag for eksempel aldri en gjenbrukbar komponent før du faktisk skal bruke den for andre gang.</li>
</ul>
<p>Mange av disse tingene vil du kanskje si at er vanlige regler for god systemutvikling, og det er selvsagt helt riktig. Likevel er det viktig å påpeke at disse tingene selvsagt også gjelder når man jobber med Flex. Det er veldig lett å tro at fordi det er en ny teknologi så gjør man ting anderledes. Å følge prinsippene i objekt orientert programmering (OOP) gjør det enklere å utvikler og vedlikeholde Flex applikasjoner også.</p>
<h2>Test drevet Flex utvikling</h2>
<p>Mange spør meg om hvordan kan man drive testdervet utvikling når man jobber med Flex. Svaret ligger i tipsene ovenfor, nemlig å ha en <em>data drevet applikasjon </em>hvor hendelser i grensesnittet gjøres gjennom å manipulere en modell klasse. Hvis du gjør dette gjennom å implementere <a href="http://martinfowler.com/eaaDev/PresentationModel.html" target="_blank">presentation model</a> mønsteret vil du merke at å jobbe test drevet ikke er noe problem i Flex.</p>
<p>Gjennom å ha en modell klasse som brukes til å manipulere data (og dermed også grensesnittet) kan du veldig enkelt skrive enhetstester for modell klassen. Dermed får du dokumentert oppførselen i applikasjonen gjennom testene samtidig som kvaliteten på koden din øker. Min gode venn <a href="http://www.borrewessel.com/" target="_blank">Børre Wessel</a> har <a href="http://www.borrewessel.com/?p=10" target="_blank">holdt en presentasjon på Scotch On The Rock</a> hvor han snakker om hvordan du implementerer presentation model mønsteret i Action Script.<br />
Anbefalt lesning om testing av grensesnitt er artikkelserien til Adobe Consulting&#8217;s <a href="http://weblogs.macromedia.com/paulw/" target="_blank">Paul Williams</a> som tar for seg en lang rekke mønster som gjør testing av Flex applikasjoner enklere.</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/10/tips-og-triks-til-trivsel-med-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Du koder, BDoc dokumenterer</title>
		<link>http://dallokken.com/espen/2008/10/du-koder-bdoc-dokumenterer/</link>
		<comments>http://dallokken.com/espen/2008/10/du-koder-bdoc-dokumenterer/#comments</comments>
		<pubDate>Wed, 22 Oct 2008 08:55:54 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[bdd]]></category>
		<category><![CDATA[bdoc]]></category>
		<category><![CDATA[smidig]]></category>
		<category><![CDATA[smidig2008]]></category>
		<category><![CDATA[smidigutvikling]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[userstories]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=102</guid>
		<description><![CDATA[Per Otto Bergum Christensen har laget et meget spennende åpen kildekode verktøy, BDoc, som jeg har veldig tro på kan bli veldig nyttig fremover. Jeg så lyntalen om BDoc på Smidig 2008 og det gjorde meg enda mer nyskjerrig på hvordan BDoc kunne hjelpe meg. BDoc hjelper utvikler team til å holde bruker historier (eller [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.perottobergumchristensen.com" target="_blank">Per Otto Bergum Christensen</a> har laget et meget spennende åpen kildekode verktøy, <a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a>, som jeg har veldig tro på kan bli veldig nyttig fremover. Jeg så <a href="http://smidig.no/smidig2008/lyntaler-p-programmet/du-koder-b-doc-dokumenterer/" target="_blank">lyntalen om BDoc</a> på <a href="http://smidig.no/smidig2008/" target="_blank">Smidig 2008</a> og det gjorde meg enda mer nyskjerrig på hvordan <a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> kunne hjelpe meg.<br />
<a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> hjelper utvikler team til å holde bruker historier (eller user stories på norsk) synkronisert med test koden på en bedre måte enn tidligere. <a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> genrerer rapporter på et naturlig språk utifra testkoden til utviklerne. Dette gjør at hvem som helst kan lese hvilke krav som er implementert av utvikleren. Rapportene er lenket opp mot bruker historier og dette gjør at man unngår det klassiske problemet med at disse to viktige delene ikke stemmer over ens og at man bruker mye tid på å samkjøre disse.</p>
<p><a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> er i første versjon og det er et par åpenbare ting som vil gjøre det enda bedre, likevel er fordelene såpass store slik at det er bare å begynne bruke det umiddelbart også eventuelt bidra selv med kode til å tilpasse <a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> slikat det passer dine behov. Jeg kunne blant annet tenkt meg muligheten til å referere til bruker historiene med en link, slik at man kan ha disse i en Wiki eller lignende. Da kan man bruke mange ulike link sjekk programmer til å unngå døde linker og slike ting.</p>
<p><a href="http://bdoc.googlecode.com/" target="_blank">BDoc</a> har begynt å få en del oppmerksomhet i utvikler kretser og denne uken ble det publisert en artikkel på The Server Side som gir en <a href="http://www.theserverside.com/tt/articles/article.tss?l=BDoc" target="_blank">grundig innføring i BDoc</a> og hvordan det fungerer.</p>
<p style="text-align: center;"><img class="aligncenter" title="BDoc" src="http://www.theserverside.com/tt/articles/content/BDoc/BDoc.jpg" alt="" width="425" height="65" /></p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/10/du-koder-bdoc-dokumenterer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex Camp Oslo &#8211; Avlyst</title>
		<link>http://dallokken.com/espen/2008/09/flex-camp-oslo-18-oktober/</link>
		<comments>http://dallokken.com/espen/2008/09/flex-camp-oslo-18-oktober/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 11:34:29 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[oslo]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=81</guid>
		<description><![CDATA[Flex Camp Norway som skulle vært avholdt den 18. Oktober er avlyst. Dette fordi det rett og slett ikke var nok påmeldte. Det er ikke på grunn av manglende interesse blant utviklere eller selskaper rundt om i Norge, men snarere på grunn av litt problemer rundt organiseringen av eventen som gjorde at vi kom litt [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://www.barcamp.org/f/flexcamp.jpg" alt="" height="130" />Flex Camp Norway som skulle vært avholdt den 18. Oktober er avlyst.</p>
<p>Dette fordi det rett og slett ikke var nok påmeldte. Det er ikke på grunn av manglende interesse blant utviklere eller selskaper rundt om i Norge, men snarere på grunn av litt problemer rundt organiseringen av eventen som gjorde at vi kom litt vel sent i gang. Derfor vil Flex Camp nok bli arrangert en gang i starten av 2009 i stedet. Takk til alle som har vist interesse for Flex Camp og beklager&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/09/flex-camp-oslo-18-oktober/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tjuvstart din utvikling med BlazeDS</title>
		<link>http://dallokken.com/espen/2008/06/blazeds-og-flex/</link>
		<comments>http://dallokken.com/espen/2008/06/blazeds-og-flex/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 09:44:46 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[blazeds]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://dallokken.com/espen/?p=30</guid>
		<description><![CDATA[BlazeDS er et Open Soruce prosjekt som gjør utvikling av Java-baserte web applikasjoner med et brukergrensesnitt skrevet i Flex langt raskere. Denne artikkelen gir deg en tjuvstart i arbeidet og hjelper deg til å raskt komme igang uten å måtte gå i de mest kjente fallgruvene. ]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" style="float: right;" src="http://opensource.adobe.com/wiki/download/attachments/1114252/blazeds_high_119x125.jpg" alt="" width="119" height="125" />I desember 2007 la Adobe ut <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" target="_blank">Blaze Data Services</a> som Open Source. BlazeDS var tidligere en del av den komerisielle programvare pakken <a href="http://www.adobe.com/products/livecycle/" target="_blank">Live Cycle (LC)</a> . Jeg hadde brukt LC Data Services en stund og var veldig interessert i å se hvordan Open Source varianten fungerte i forhold til den ekstremt dyre komersielle varianten. Resultatet er denne korte oppskriften på hvordan du kan starte med BlazeDS.</p>
<h2>Demo applikasjonen</h2>
<p>I tillegg til denne artikkelen har jeg laget en ekstremt enkel demo applikasjon som kan brukes som utgangspunkt for videre abreid. Applikasjonen er ekstremt enkel og er en applikasjon for å samle noteter og lenker.<br />
Demo applikasjonen inneholder en <strong>Flex 3 Web- og AIR </strong>applikasjon og en standard Java web applikasjon.</p>
<p>Alt du trenger å gjøre er å pakke ut filene og kjøre to enkle kommandoer. Sørg for at du har installert følgende programvare:</p>
<ul>
<li><a href="http://maven.apache.org" target="_blank">Maven</a></li>
<li>Java 1.6.x or later</li>
<li><a href="http://www.adobe.com/go/getflashplayer" target="_blank">Flash Player 9</a></li>
</ul>
<p>Når du har disse tingene installert så er det bare å følge instruksjonene nedenfor:</p>
<ol>
<li>Last ned kildekoden til eksempelet: <a title="Blaze POC sample projects" href="http://www.totalworldannihilation.org/blog/wp-content/uploads/2008/06/blaze-poc-v3.zip">Blaze POC v3</a></li>
<li>Pakk ut ZIP filen til en katalog</li>
<li>Åpne filen<em> deploy/blazeds-poc.properties</em> og endre linjen med <em>echo.db.path</em> slik at den passer med stedet du pakket ut kildekoden</li>
<li>Åpne en command promt of kjør scriptet <em>install-flex-libs<br />
</em>Dette scriptet installerer alle BlazeDS JAR-filer i ditt Maven repository<em><br />
</em></li>
<li>Åpne command prompt og kjør følgende:<em> mvn install</em></li>
<li>Gå til katalogen<em> blaze-poc-web</em> og kjør kommandoen: <em>mvn jetty:run</em></li>
<li>Åpne adressen: <a href="http://localhost:8081/blaze-poc-web/" target="_blank">http://localhost:8081/blaze-poc-web/</a></li>
</ol>
<p>Nå som du har sett eksempel applikasjonen er du kanskje interresert i å vite hvordan man konfigurerer BlazeDS? Bare fortsett å les så skal vi se litt på hvordan dette gjøres. <span style="text-decoration: line-through;">For at du skal kunne bygge Flex versjonen bør du installere <a href="http://labs.adobe.com/technologies/flex/flexbuilder3/" target="_blank">Flex Builder 3</a></span>. Alt du trenger for å kunne bygge et Flex prosjekt er <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3" target="_blank">Flex SDK&#8217;en </a>som er tilgjengelig som Open Source. Likevel vil jeg anbefale å installere <a href="http://labs.adobe.com/technologies/flex/flexbuilder3/" target="_blank">Flex Builder 3</a> som gir deg mange fordeler når du jobber med Flex og hjelper deg til å jobbe langt raskere. Du kan bruke Flex Builder gratis i over 30 dager før du bestemmer deg.</p>
<p><a href="http://labs.adobe.com/technologies/flex/flexbuilder3/" target="_blank"></a></p>
<h2>Konfigurere BlazeDS i en Java webapplikasjon</h2>
<p>Opprett en Java web applikasjon i Eclipse (du kan bruke <a href="http://www.myeclipseide.com/" target="_blank">MyEclipse</a> or eller lignende for å gjøre jobben enklere). Last ned <a href="http://opensource.adobe.com/wiki/display/blazeds/Release+Builds" target="_blank">siste versjon av BlazeDS</a> og pakk ut filene et sted på din maskin. Filen <em>blazeds.war</em> pakker du ut i <em>rot katalogen</em> av din webapplikasjon. Du skal ha følgende struktur:</p>
<blockquote><p>WEB-INF\flex<br />
WEB-INF\lib<br />
meta-inf</p></blockquote>
<p>Slett alle JAR-filene i <em>WEB-INF/lib</em> katalogen. Disse filene trenger vi ikke ettersom Maven skal ta hånd om avhengighetene. Adobe virker ikke særlig interessert i Maven og har derfor ikke publisert offesielle BlazeDS artifakter til noe Maven deopt. Derfor ligger det ved et script som installerer BlazeDS artifaktene i ditt lokale Maven depot (takket være <a href="http://www.linkedin.com/in/perottobc" target="_blank">Per-Otto</a>).</p>
<h2>Spring and BlazeDS</h2>
<p>BlazeDS kan veldig enkelt integreres med <a href="http://www.springframework.org" target="_blank">Spring Framework</a> for å hjelpe deg til å utvikle spennende tjenester ennå raskere. Alt du trenger å gjøre er å lage en <em>SpringFactory</em> klasse. <a href="http://coenraets.org/" target="_blank">Christophe Coenrates</a> har skrevet artikkelen <a href="http://coenraets.org/flex-spring/" target="_blank"><em>Using Flex and Spring</em></a> som beskriver detaljene i hvordan dette gjøres.  I eksempel prosjektet er det en <em>SpringFactory</em> klasse som er konfigurert i filen  <em>WEB-INF/flex/services-config.xml</em></p>
<pre>&lt;factories&gt;
  &lt;factory id="spring" class="com.moneytalks.blaze.poc.SpringFactory"/&gt;
&lt;/factories&gt;</pre>
<h2>Hvordan du best konfigurerer tjenestene i Blaze DS</h2>
<p><em>Remote Object</em> kalles teknologien som gjør det mulig å invokere metoder på Java klasser direkte fra Action Script. Rådet fra Adobe er at du skal legge med et kompilator argument, <em>-services</em>, som forteller MXML kompilatoren hvor BlazeDS konfigurasjonen ligger. Dette mener jeg er et veldig dårlig råd ettersom det tving deg til å ha samme katalogstruktur i alle miljøer du har tenkt å rulle ut din applikasjon.<br />
En langt bedre og mer fleksibel løsninger er å sende konfigurasjonsparameter for <em>Remote Object-</em> og <em>Messaging services</em> ved bruk av <a href="http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_16417" target="_blank">Flash Vars</a>. Dette gjør det meget enkelt å endre konfigurasjon for <em>endpoints</em>, fil stier, server navn, osv i ulike miljøer. Denne måten å løse dette på ble jeg først oppmerksom på etter å ha lest <em>Mike Nimer</em> sin artikkel <em><a href="http://blog.mikenimer.com/index.cfm/2007/1/10/Bye-bye-services" target="_blank">Bye bye -services</a></em>.</p>
<h2>La utviklingen begynne!</h2>
<p>Det er igrunn alt du trenger å vite for at du skal kunne begynne utvikle løsninger med BlazeDS. Du vil forhåpentligvis få en langt mer harmonisk hverdag hvor fokus ligger på å utvikle spennende tjenester for dine brukere snarer enn å skrive <em>boiler plate</em> kode som flytter data fra A til B.</p>
<p>Mer informasjon om BlazeDS og hvordan du kan bruke det kan du finne på noen av lenkene nedenfor:</p>
<ul>
<li><a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS" target="_blank">BlazeDS hos opensource.adobe.com</a></li>
<li><a href="http://coenraets.org/" target="_blank">Christophe Coenraets sin blog</a> har veldig mange eksempler på hvordan du kan bruke BlazeDS</li>
</ul>
<p>Artikkelen er også <a href="http://www.totalworldannihilation.org/blog/2008/02/22/just-blaze-getting-started-with-blaze-ds/" target="_blank">tilgjengelig på engelsk</a> og i tillegg publisert hos <a href="http://itpro.no/art/12811.html" target="_blank">ITPro.no</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/06/blazeds-og-flex/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hvordan oppnår du harmoni i forholdet til AJAX?</title>
		<link>http://dallokken.com/espen/2008/06/hvordan-oppnar-du-harmoni-i-forholdet-til-ajax/</link>
		<comments>http://dallokken.com/espen/2008/06/hvordan-oppnar-du-harmoni-i-forholdet-til-ajax/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 14:49:29 +0000</pubDate>
		<dc:creator>espen</dc:creator>
				<category><![CDATA[utvikling]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://s41841.gridserver.com/espen/?p=3</guid>
		<description><![CDATA[Obs! Dette er en eldre artikkel som jeg publiserte tilbake i 2005. Den ble vel generelt ganske misforstått og enkelte av digi.no sine mindre begavede lesere ble veldig forvirret av formen den var skrevet på. Artikkelen er fremdeles relevant og det er ingen tvil om at markedet har tatt samme retning som anbefalt i artikklene. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-26" style="float: left;" title="ajax" src="http://dallokken.com/espen/wp-content/uploads/2008/06/ajax.jpg" alt="" width="200" height="204" />Obs! Dette er en eldre artikkel som jeg publiserte tilbake i 2005. Den ble vel generelt ganske misforstått og enkelte av digi.no sine mindre begavede lesere ble veldig forvirret av formen den var skrevet på. Artikkelen er fremdeles relevant og det er ingen tvil om at markedet har tatt samme retning som anbefalt i artikklene.</p>
<p>I den siste tiden har mange erklært sin kjærlighet til den nye teknikken AJAX (<a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Asynchronus Javascript And XML</a>).<br />
Rådene om hvordan organisasjoner skal forholde seg til den nye teknikken har vært enda flere. Kombinasjonen av XML og asynkrone HTTP kall fra klientside kode skal være teknologien som igjen skal revolusjonere måten man lager &#8220;rike&#8221; applikasjoner.<br />
Mange hevder dette er tilfelle.</p>
<p><strong>Når forelskelsen går over</strong><br />
Den meget omtalte &#8220;nettleser-krigen&#8221; dreide seg i stor grad om implementasjon av JavaScript, HTML og etterhvert også <a href="http://www.w3.org/Style/CSS/">Cascading Stylesheets (CSS)</a>.<br />
Krigen ble avsluttet da de mest utbredte nettleserne fikk et minste felles multiplum som gjorde det enklere å utvikle løsninger som fungerer på alle disse nettleserne med samme kode. I dag finner man de største ulikhetene i implementasjonen av CSS når man utvikler tradisjonelle løsninger.</p>
<p>I tiden etter krigens slutt har mange utviklet et kjærlighetsforhold til teknikken AJAX. Den første tiden i et forhold er alltid den beste, man er forelsket og alt er rosenrødt. Forelskelsen går etterhvert over og man begynner se den andre parten i forholdet på en ny måte.</p>
<p>Dagens nettlesere har de største ulikhetene i implementasjonen når det gjelder XML-standarder.<br />
Dette gjelder <a href="http://www.w3.org/DOM/">dokument-objekt-modellen (DOM)</a> og <a href="http://www.w3.org/TR/xslt">eXtensible stylesheets (XSL)</a>. Utviklere av applikasjoner kan ikke manipulere XML på samme måte i de ulike nettleserne.</p>
<p>Denne utfordringen fører til spenninger i forholdet til AJAX for mange utviklere. Partneren som tidligere var ufeilbarlig viser seg å være menneskelig med både positive og negat            ive sider.</p>
<p><strong>Bli lykkelig og kvitt deg med X’en<br />
</strong>Hvorvidt man skal lykkes med et nytt forhold avhenger ofte av om man er villig til å legge fortiden bak seg. Blant annet må man forsøke å kvitte seg med gamle flammer som kan skape unødvendig spenning i et nytt forhold. Dersom du starter et nytt forhold, så må du først kvitte deg med X’en.<br />
Dette gjelder også for kjærlighetsforhold til AJAX. X’en bør settes på dør inntil den er moden nok til å bli introdusert i forholdet.</p>
<p>Forskjeller fra ulike nettleser-leverandører i sine implementasjoner av webstandarder har alltid skapt utfordringer for de som utvikler nettleser-baserte løsninger. Den senere tiden har forskjellene blitt mindre når det gjelder HTML og JavaScript, slik at dette ikke lengre er et stort problem.</p>
<p>AJAX metoden sier at man skal sende XML fra serversiden og la klienten håndtere XML-responsen. Dersom man ser dette på en tegning så er det lett å være enig i prinsippet. I praksis er det derimot enda enklere å være uenig i denne måten å bygge en løsning på. Dette fordi de ulike nettleserne varierer veldig i forhold til hvilken funksjonalitet de har valgt å bygge inn i nettleseren for å jobbe med XML.<br />
Hvordan kan man så bli kvitt gammel bagasje når man skal forsøke dyrke frem et nytt varig forhold?</p>
<p><strong>Gjør X’en din til et helt vanlig objekt</strong><br />
Å bli kvitt gamle flammer kan være vanskelig for mange, en måte som fungerer er å se på sin X som et helt vanlig objekt. Møter du X’en din på gaten så må du behandle han/henne på samme måte som alle andre.</p>
<p>Forholdet til AJAX vil bedre seg dersom du gjør om responsen til et vanlig objekt og ikke en X. Søkemotor-leverandøren Yahoo! har valgt en smart måte å komme seg rundt problemene med håndtering av XML på klienten.  De sender ganske enkelt ikke noe XML tilbake til klienten og dermed unngår de problemstillingen ved å møte X’en.</p>
<p>Java Script Object Notation (JSON) er et av begrepene som har fått vind i seilene takket være AJAX. JSON er egentlig en beskrivelse på hvordan man kan utnytte en del av ECMA Script standarden for å opprette objekter basert på en streng. Denne teknikken gjør det mulig å sende objekter fra serverside kode til klientside kode uten problemer.</p>
<p><a href="http://developer.yahoo.net/common/json.html">Yahoo! sine webtjenester tilbyr JSON-strenger</a> som et alternativt resultat format fra sine tjenester. Dette gjør at utviklere av applikasjoner kan bruke Yahoo! sine webtjenester uten å måtte håndtere XML. Utviklerne får tilbake en streng som direkte evalurerer til Javascript objekter, helt enkelt og uten problemer.</p>
<p>Din nye partner vil sette pris på din abstrahering av X&#8217;en. Du vil kunne fokusere på å ditt nye forhold og ikke bruke energi på å dekke over X&#8217;er. Når du fokuserer all enerig på din nye partner så har dere alle muligheter til å dyrke frem et langvarig kjærlighetsforhold.</p>
<p><strong>Storebror har jo et godt forhold til sin X, hvorfor kan ikke jeg ha det?</strong><br />
Du hører historier om folk som har gode forhold til sine X’er og tenker kanskje: hvorfor kan ikke jeg også ha et godt forhold til min X? Når man ser på selskaper som har lykkelige samvær med X’en i AJAX så blir man fristet til å ta X’en med seg inn i sitt nye kjærlighetsforhold til AJAX. Men er det slik at de faktisk har et godt forhold til X’en?</p>
<p>Søkemotor- og programvare produsenten Google har tilsynelatende det. Dette er dog en sannhet med visse modifikasjoner. Google har nemlig innsett at hånd            tering av XML på klienten ikke er uten problemer. Derfor har de skrevet sitt eget rammeverk for håndtering av XML som ikke baserer seg på innebygde mekanismer i nettleseren.</p>
<p>Åpen kildekode prosjektet <a href="http://goog-ajaxslt.sourceforge.net/">Google-XSLT</a> inneholder en egen XML-parser som støtter Xpath-spørringer og XSL-transformasjoner. Prosjektet er relativt nytt, men i den nærmeste fremtid vil det være mulig å benytte dette rammeverket dersom man ønsker det.</p>
<p>Gode forhold til X&#8217;er er mulig, men det er ofte noe som kan etableres etter at du og din partner er trygge på hverandre. I tillegg må både du og X&#8217;en være modne nok til å kunne ha et vennskaplig forhold. Derfor kan det være lurt å ta tiden til hjelp dersom du ønsker å ha et godt forhold til X&#8217;en.</p>
<p><strong>Et solid forhold bygges stein for stein<br />
</strong>Kjærligheten til AJAX blomstrer som aldri før i disse dager, men hvordan skal vi klare å bygge videre på forelskelsen, og gjøre den om til et langvarig forhold?</p>
<p>Utviklere som er i en tilstand av blind kjærlighet til AJAX ønsker gjerne å gå direkte til ekteskap uten noe mer mellomspill. Denne tilnærmingen kan føre til store skuffelser den dagen man våkner og begynner se små sprekker i den tidligere herlige fasaden.</p>
<p>Mange av de som uttaler seg om AJAX virker være i fasen hvor man er vilt forelsket i sin nye partner, og hevder at man kun etter kort tid kommer vi til å lage alle applikasjoner basert på AJAX. De mer skeptiske påpeker at man forsøkte seg på dette allerede tidlig i Internetts historie. Man sluttet imidlertid å lage disse fordi mangelen på gode utviklerverktøy gjorde arbeidet svært ineffektivt. I tillegg var det mangel på gode verktøy for feilsøking. Disse to faktorene             er ikke endret i særlig grad i dag. Mozilla-nettleserne kan benytte seg av Wenkman’s JavaScript Debuger, og i andre nettlesere må man i stor grad ordne støtte for feilsøking selv.</p>
<p>Mange maner til forsiktighet, og at man i stedet bør bruke AJAX kun på enkelte deler av en applikasjon. Et godt eksempel er Googles Suggest-tjeneste, som benytter AJAX for å tilby rikere funksjonalitet for en liten del av applikasjonen. En forsiktig og nøktern tilnærming til AJAX vil berede grunnen for et varig forhold.</p>
<p><strong>Oppskriften på et lang og lykkelig samliv med AJAX<br />
</strong>3 råd for å hindre at du sitter med en ekkel smak i munnen når du utvikler din første løsning med AJAX metoden:</p>
<ol>
<li>Forsøk å minimalisere håndtering av XML i på klientsiden, og bruk heller alternative formater som JSON inntil de ulike nettleserne håndterer XML likt.</li>
<li>Utvikle komponenter og ikke applikasjoner dersom det er mulig.</li>
<li>Har man en løsning som krever en såkalt &#8220;rik brukeropplevelse&#8221; bør man også se på alternativer, som for eksempel Flash.</li>
</ol>
<p>Disse enkle reglene vil gjøre at det som nå er en het og heftig forelskelse vil utvikle seg til et forhold som vil gro til noe fantastisk. Lykke til!</p>
<p><a href="http://www.bekk.no/aktuelt/fagartikler/Hvordan-oppnar-du-harmoni-i-forholdet-til-AJAX/" target="_new">Opprinrenelig publisert for Bekk Consulting As</a><br />
<a href="http://www.digi.no/php/art.php?id=296614" target="_new">Publisert på digi.no</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dallokken.com/espen/2008/06/hvordan-oppnar-du-harmoni-i-forholdet-til-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

