<?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>Alt om ingenting og litt i mellom &#187; teknologi</title>
	<atom:link href="http://hovenko.no/blog/tag/teknologi-2/feed/" rel="self" type="application/rss+xml" />
	<link>https://hovenko.no/blog</link>
	<description>En blogg av Knut-Olav</description>
	<lastBuildDate>Mon, 10 Mar 2025 19:25:02 +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>Modulbasert utvikling og arkitektur</title>
		<link>https://hovenko.no/blog/2018/01/30/modulbasert-utvikling-og-arkitektur/</link>
		<comments>https://hovenko.no/blog/2018/01/30/modulbasert-utvikling-og-arkitektur/#comments</comments>
		<pubDate>Tue, 30 Jan 2018 19:24:13 +0000</pubDate>
		<dc:creator>Knut-Olav</dc:creator>
				<category><![CDATA[Arkitektur]]></category>
		<category><![CDATA[Jobb]]></category>
		<category><![CDATA[Teknologi]]></category>
		<category><![CDATA[arkitektur]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[teknologi]]></category>

		<guid isPermaLink="false">http://hovenko.no/blog/?p=621</guid>
		<description><![CDATA[IT-prosjekter handler ofte om å flytte og konvertere data mellom IT-systemer, i forskjellige presentasjonsformer og koble data fra flere datakilder. Når man kjører flere slike prosjekter samtidig og over lengre tid med betydelig antall ressurser blir det aktuelt å tenke litt større og legge en strategi for hvordan informasjon skal flyte og behandles på tvers [...]]]></description>
			<content:encoded><![CDATA[<p>IT-prosjekter handler ofte om å flytte og konvertere data mellom IT-systemer, i forskjellige presentasjonsformer og koble data fra flere datakilder.</p>
<p>Når man kjører flere slike prosjekter samtidig og over lengre tid med betydelig antall ressurser blir det aktuelt å tenke litt større og legge en strategi for hvordan informasjon skal flyte og behandles på tvers av organisasjonen.</p>
<p>Med modulbasert utvikling kan man utføre prosjekter med mange personer, gjerne delt i flere grupper. Det kan gjerne sees på som et bestiller- og leverandør-forhold, eller &#8220;klient og tjener&#8221;, hvor klienten definerer hva som forventes av den andre modulen å ta i mot og returnere av data og på hvilke formater utvekslingen skal foregå.</p>
<p>Moduler kan integreres i systemer via kompilatorlenking mot definerte grensesnitt, som funksjonssignaturer i et &#8220;interface&#8221; fra objektorientert programmering eller en &#8220;header&#8221;-fil, eller med meldinger som sendes på en meldingsbuss. Å binde seg til et definert grensesnitt har fordeler med at man kan få en kompilator til å sjekke gyldigheten av kontrakten, at man snakkes felles språk, men det gjør det vanskeligere dersom en av partene har andre behov og trenger å endre en funksjonssignatur.</p>
<p>Meldingsbasert integrasjon defineres på et høyere nivå enn ved funksjonssignaturer, for eksempel at grensesnittet bare definerer hvordan meldingen kan sendes og hvordan svaret kan mottas. Ulempen med meldingsbasert kommunikasjon er at det stiller høyere krav til validering, versjonering og bakoverkompatiblitet, siden en av partene kan oppgraderes til nyere versjon mens det finnes andre systemer som fremdeles <em>snakker det gamle språket</em>. Ved meldingsbasert kommunikasjon bør det skrives en spesifikasjon for formatet på meldingene, for eksempel i form av et XSD-skjemadokument dersom kommunikasjonen pakkes som XML-meldinger, eller Protocol Buffers hvis meldingene er mindre og tydelig definerte.</p>
<p>For enklere systemer holder det kanskje med et format på forespørsler ala: <tt>customer search 'ola normann'</tt> hvor &#8220;customer&#8221; kan være navnet på modulen, &#8220;search&#8221; kan være funksjonen i modulens grensesnitt og &#8220;ola normann&#8221; er parameteren til funksjonen. Responsen kan for eksempel være kolonne- og radbasert, som et regneark.<br />
Mange muligheter!</p>
<p>Internett kan sees på som et modulbasert system. Veldig forenklet så kan nettleseren, altså klienten i vårt tilfelle, sende en forespørsel mot en adresse eller filsti til en webserver, altså tjeneren, som kan svare med et HTML-dokument. Det ligger en kontrakt til grunn om et felles grensesnitt som gjør at denne kommunikasjonen fungerer, og en slik kontrakt er HTTP-spesifikasjonen. Det er mulig å basere internkommunikasjon i sitt modulbaserte system over HTTP med for eksempel SOAP, Corba, REST, Thrift, for å nevne noen teknikker. Denne type meldingsbasert kommunikasjon har noen svakheter, blant annet krever det ekstra dataprosessering for å oversette objekter og datastrukturer til og fra meldinger som kan sendes over HTTP. Dette er også dens store fordel, da modulene kan lager i forskjellige programmeringsspråk og kjøre på forskjellige plattformer.</p>
<p>For å oppnå en smidig integrasjon mellom modulene trengs det presis og hyppig koordinering på tvers av utviklingsgruppene. Man må ta et steg tilbake for å få et overblikk over systemet som helhet.</p>
<p><em>Dette er i hovedsak en liten rant jeg skrev i 2011, og jeg mener den fortsatt holder vann – men ta den gjerne med en klype salt…</em></p>
]]></content:encoded>
			<wfw:commentRss>https://hovenko.no/blog/2018/01/30/modulbasert-utvikling-og-arkitektur/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaZone jz10 dag 2</title>
		<link>https://hovenko.no/blog/2010/09/19/javazone-jz10-dag-2/</link>
		<comments>https://hovenko.no/blog/2010/09/19/javazone-jz10-dag-2/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 00:01:55 +0000</pubDate>
		<dc:creator>Knut-Olav</dc:creator>
				<category><![CDATA[Jobb]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Teknologi]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaZone]]></category>
		<category><![CDATA[teknologi]]></category>

		<guid isPermaLink="false">http://hovenko.no/blog/?p=473</guid>
		<description><![CDATA[Nå er det riktignok gått halvannen uke siden JavaZone var over, men en kort oppsummering av dag to kan allikevel tillates. På den andre dagen, 9. september, lærte jeg litt om &#8220;Matching Engines&#8221;, om høye krav til ytelse og nøyaktighet og fikk virkelig innblikk i at tid koster penger, spesielt på nedetid. Videre lærte jeg [...]]]></description>
			<content:encoded><![CDATA[<p>Nå er det riktignok gått halvannen uke siden JavaZone var over, men en kort oppsummering av dag to kan allikevel tillates.</p>
<p>På den andre dagen, 9. september, lærte jeg litt om &#8220;Matching Engines&#8221;, om høye krav til ytelse og nøyaktighet og fikk virkelig innblikk i at tid koster penger, spesielt på nedetid.</p>
<p>Videre lærte jeg ikke så mye nytt om offentlige data. Synd at hele panelet utelukkende bestod av folk som ønsker fri tilgang til offentlige data, men ingen med myndighet til å kunne gjøre noe med det.</p>
<p>Så skulle jeg lære om hva jeg gjør feil med domenedrevet design (DDD), men foredragsholderen var forsinket, så jeg sneik meg inn på en sesjon om planlegging og å ta valg i utviklingsteam. Spesielt én ting fant jeg svært interessant, å premiere feiling for å oppmuntre til å ta sjanser og utfordre seg selv.</p>
<p>Videre lærte jeg hvordan man kan implementere Dungeon and Dragons i RESTful web services basert på prinsippene rundt <a href="http://en.wikipedia.org/wiki/HATEOAS">HATEOAS</a>, å bruke HTTP som motoren til å drive tilstand i applikasjoner.</p>
<p>Så lærte jeg at man må kjøpe Coherence for å bekjempe ytelsesproblemer i systemer. Et foredrag med stort preg av å selge inn Oracle-produktet, dessverre.</p>
<p>Så forvillet jeg meg inn på et foredrag om vedlikehold og utvikling av legacy-systemer.</p>
<p>Til slutt så fikk jeg med meg foredraget om domenedrevet design som ble satt opp. Greit å bli oppdatert på de mer vanskelige aspektene rundt denne teknikken, og selv om foredraget var kort så passet det egentlig bra som avslutning på JavaZone.</p>
<p>Nå er video av foredragene lagt ut på <a href="http://streaming.java.no/tcs/">java.no</a>. Har allerede sett noen lyntaler og lengre foredrag, og kan anbefale lyntalene om &#8220;97 things every programmer should know&#8221; og &#8220;Hjemmelaget er bedre enn takeout&#8221;, hvor begge lufter tanker om å kaste idéer og kode som blir for vanskelige å integrere eller som kommer i veien.</p>
<p>Selv så er jeg dårlig på å kaste kode, men jeg har i det siste kastet kode et par ganger, og selv om det gjør vondt der og da, så savner jeg ikke koden jeg skrev. Det er faktisk deilig å ikke ha uinnsjekket kode liggende over lengre tid.</p>
<p>Det jeg skal ta med videre fra JavaZone 2010 er idéene rundt HATEOAS og event drevet arkitektur. Sistnevnte har jeg allerede utforsket mye på fra før, og dette er motoren for å dytte data rundt i prosjektet jeg for tiden jobber på.</p>
]]></content:encoded>
			<wfw:commentRss>https://hovenko.no/blog/2010/09/19/javazone-jz10-dag-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaZone jz10 dag 1</title>
		<link>https://hovenko.no/blog/2010/09/09/javazone-jz10-dag-1/</link>
		<comments>https://hovenko.no/blog/2010/09/09/javazone-jz10-dag-1/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 22:41:43 +0000</pubDate>
		<dc:creator>Knut-Olav</dc:creator>
				<category><![CDATA[Jobb]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Teknologi]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaZone]]></category>
		<category><![CDATA[teknologi]]></category>

		<guid isPermaLink="false">https://hovenko.no/blog/2010/09/09/javazone-jz10-dag-1/</guid>
		<description><![CDATA[Dag 1 er over for JavaZone 2010. Det har vært mange temaer og tankene svever nå litt rundt i skyen foreløpig. Jeg lærte i dag at hvis man plasserer en Map/Reduce-jobb hos Amazon, så tar det ca 30 ganger lenger tid å kjøre enn på en laptop. Jeg lærte at hvis webappen din sliter under [...]]]></description>
			<content:encoded><![CDATA[<p>Dag 1 er over for <a href="http://jz10.java.no/">JavaZone 2010</a>. Det har vært mange temaer og tankene svever nå litt rundt i skyen foreløpig.</p>
<p>Jeg lærte i dag at hvis man plasserer en Map/Reduce-jobb hos Amazon, så tar det ca 30 ganger lenger tid å kjøre enn på en laptop.</p>
<p>Jeg lærte at hvis webappen din sliter under høy last mot eksterne ressurser, så legg inn sleep(1).</p>
<p>Jeg lærte at Collaborative Filtering kan være et spennende tiltak for å gi noe ekstra tilbake til brukerne.</p>
<p>Jeg lærte at det finnes mange tilnærminger til eventdrevet design.</p>
<p>Jeg lærte at Datalagringsdirektivet har forkjempere og motstandere som ikke alltid klarer å finne ut hvordan livets, trygghetens og frihetens vektskål skal balanseres.</p>
<p>Jeg lærte at RESTful ikke handler om XML og pene URL-er, men om å håndtere state mellom klient og tjener og at resten er bare hjelpemidler for å komme seg dit.</p>
<p>Jeg lærte at det finnes alltid et sikkerhetstiltak som man ikke har tenkt på eller ikke har forstått konsekvensene av.</p>
<p>Jeg lærte at Java har en tung vei å gå for å skape typeorienterte vaner.</p>
<p>Jeg lærte at man bør ha fulladet telefon før man drar på JavaZone.</p>
]]></content:encoded>
			<wfw:commentRss>https://hovenko.no/blog/2010/09/09/javazone-jz10-dag-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
