<?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-5293005308084708753</id><updated>2012-02-08T17:45:50.417+01:00</updated><category term='ws'/><category term='ndc2010'/><category term='path'/><category term='smidig'/><category term='bbq'/><category term='web'/><category term='swing'/><category term='xp2010'/><category term='jaxb'/><category term='javaone2010'/><category term='development'/><category term='soa'/><category term='vm'/><category term='turnaround'/><category term='annotations'/><category term='glassfish'/><category term='maven'/><category term='jersey'/><category term='telescope'/><category term='benchmark'/><category term='virtual desktop'/><category term='wsdl'/><category term='conference'/><category term='microbenchmarking'/><category term='syntax'/><category term='cx'/><category term='presentation'/><category term='iam'/><category term='find'/><category term='build time'/><category term='agile'/><category term='debian'/><category term='windows'/><category term='virtual machine'/><category term='knowledge sharing'/><category term='asus eee'/><category term='dolphin'/><category term='uio'/><category term='eee 901'/><category term='xp'/><category term='trusselmodellering'/><category term='linux'/><category term='astro'/><category term='tech'/><category term='ssd'/><category term='soap'/><category term='java'/><category term='xsd'/><category term='cygwin'/><category term='wadl'/><category term='sw2012'/><category term='security'/><category term='core'/><category term='coin'/><category term='ghost'/><category term='modularization'/><category term='open space'/><category term='oracle'/><category term='rest'/><category term='technical debt'/><category term='javazone'/><category term='scrum'/><category term='groovy'/><category term='twitter'/><category term='book review'/><category term='performance testing'/><category term='jboss'/><category term='governance'/><category term='fail'/><category term='testing'/><category term='virtual os'/><category term='experience report'/><category term='json'/><category term='jdk7'/><category term='openjdk'/><title type='text'>Haral's Blog</title><subtitle type='html'>Sporadic rant on java, maven, enterprise application integration, patterns, testing, people, legacy, people and so forth. And some cooking.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://harals.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-8442689879790101430</id><published>2012-02-08T17:45:00.004+01:00</published><updated>2012-02-08T17:45:50.433+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='trusselmodellering'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='sw2012'/><title type='text'>Erfaringer med trusselmodellering</title><content type='html'>Sammendrag av presentasjonen min på Software 2012 - Erfaringer med trusselmodellering. &lt;br /&gt;&lt;br /&gt;Trusslemodellering er en plattform for kommunikasjon. Kunden lurer på hvordan problemer er løst, og leverandøren har behov for å forklare det samme, og i tillegg belyse antagelser og konsekvenser av endringer. En slik plattform er nyttig gjennom hele livssyklusen, og kanskje særlig som dokumentasjon av tidligere avgjørelser.&lt;br /&gt;&lt;br /&gt;En veldig viktig egenskap ved en trusselmodell, er konsistens mellom opptegning av systemet, og analysen av det. Derfor er det nyttig å bruke et verktøy som besørger denne konsistensen, og synliggjør eventuelle avvik. Truslene kan modelleres med "STRIDE"-prinsippene: spoofing, tampering, repudiation, information disclosure, denial of service og elevation of privilege. Hvert av disse appliseres til de forskjellige delene av systemet, som er modellert med komponenter som dataflyt, prosesser, aktører og datalager.&lt;br /&gt;&lt;br /&gt;Gjennom analysen kommer man frem til diverse tiltak som er gjort tidligere. Av og til finner man også mangler. Modellen beskriver hvor inndata kommer fra eksterne aktører. Generelt fins det flere aspekter som kan tas ut som forskjellige rapporter som passer ulike roller, feks arkitekt, funksjonelt ansvarlig, kundens sikkerhetsansvarlig, prosjektleder etc.&lt;br /&gt;&lt;br /&gt;Ved å bruke en dedikert applikasjon til trusselmodellering er det også enklere å oppdatere og endre modellen. Mangler og endringer blir svært synlige i analyse-bildet, og lar seg enkelt oppdatere. Dermed er det også enkelt å "holde liv" i modellen.&lt;br /&gt;&lt;br /&gt;Dessuten er denne prosessen en veldig nyttig kunnskapsdeling mellom kunde og leverandør. Kunden (eller driftsleverandøren) synliggjør situasjonen i produksjonsmiljøet. Leverandøren viser hvordan løsningen opprinnelig var planlagt. Prosessen fører til en dyptgående modell av den eksisterende situasjonen i produksjon.&lt;br /&gt;&lt;br /&gt;Disse erfaringene er basert på bruk av Microsoft SDL Threat Modelling Tool.&lt;br /&gt;&lt;br /&gt;&lt;img alt="" height="126" src="data:image/png;base64,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" width="400" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-8442689879790101430?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/8442689879790101430/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2012/02/erfaringer-med-trusselmodellering.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8442689879790101430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8442689879790101430'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2012/02/erfaringer-med-trusselmodellering.html' title='Erfaringer med trusselmodellering'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-9049506849047699583</id><published>2011-11-08T15:21:00.000+01:00</published><updated>2011-11-08T15:31:19.833+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telescope'/><category scheme='http://www.blogger.com/atom/ns#' term='tech'/><category scheme='http://www.blogger.com/atom/ns#' term='astro'/><title type='text'>Building a telescope from your old optics</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-YCJ3isVw08w/Trk4ocvXxTI/AAAAAAAAAyY/8k-jlzy23YY/s1600/IMAG0082.jpg" imageanchor="1"&gt;&lt;img border="0" height="226" src="http://4.bp.blogspot.com/-YCJ3isVw08w/Trk4ocvXxTI/AAAAAAAAAyY/8k-jlzy23YY/s400/IMAG0082.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I've had a Tamron 500mm f/8 reflector lens around for years. Now I've finally put it to use. With fixed aperture f/8 it's rarely useful for photography, but using it as a secondary telescope is actually really clever (got the idea from someone on the net, obviously).&lt;br /&gt;&lt;br /&gt;The mount goes, from left to right:&lt;br /&gt;- reflector lens&lt;br /&gt;- t2/fd adapter&lt;br /&gt;- fd rear cap /w drilled hole &amp;amp; glue&lt;br /&gt;- celestron t-ring/eyepiece holder&lt;br /&gt;- 1,25" eyepiece&lt;br /&gt;&lt;br /&gt;And there's a bonus: because of the customised fd lens cap, it is possible to mount the eyepiece to any of my old Canon FD lenses. Works great with 35-105 f/3.5 and 100-300mm f/5.6 for both 25mm and 12mm eyepieces. Way to re-use your FD optics :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-QOGUT7kB9kg/Trk8mx7K7wI/AAAAAAAAAy8/5uc0_ia58DQ/s1600/IMAG0085.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="113" src="http://1.bp.blogspot.com/-QOGUT7kB9kg/Trk8mx7K7wI/AAAAAAAAAy8/5uc0_ia58DQ/s200/IMAG0085.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-5Cwr_trmjnI/Trk8h2SdgFI/AAAAAAAAAyw/AMUcT1IoFp0/s1600/IMAG0084.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="113" src="http://4.bp.blogspot.com/-5Cwr_trmjnI/Trk8h2SdgFI/AAAAAAAAAyw/AMUcT1IoFp0/s200/IMAG0084.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-2pfpeMRhK4c/Trk8dO_ycPI/AAAAAAAAAyk/3tFX7kTmues/s1600/IMAG0083.jpg" imageanchor="1"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-2pfpeMRhK4c/Trk8dO_ycPI/AAAAAAAAAyk/3tFX7kTmues/s200/IMAG0083.jpg" width="113" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-9049506849047699583?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/9049506849047699583/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/11/building-telescope.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/9049506849047699583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/9049506849047699583'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/11/building-telescope.html' title='Building a telescope from your old optics'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://4.bp.blogspot.com/-YCJ3isVw08w/Trk4ocvXxTI/AAAAAAAAAyY/8k-jlzy23YY/s72-c/IMAG0082.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-7339389612659209643</id><published>2011-04-29T18:33:00.002+02:00</published><updated>2011-04-29T18:33:00.415+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bbq'/><title type='text'>Innbakte pølser på grillen</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-jRnhcPTtZkk/Tbqio8_oeyI/AAAAAAAAAEE/pr1u3k0gtvU/s1600/IMAG0102.jpg" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"&gt;&lt;img border="0" height="192" width="320" src="http://4.bp.blogspot.com/-jRnhcPTtZkk/Tbqio8_oeyI/AAAAAAAAAEE/pr1u3k0gtvU/s320/IMAG0102.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;En enkel og knallgod fredagsrett:&lt;br /&gt;- 1 pk pølser&lt;br /&gt;- 1 klump fin deig&lt;br /&gt;&lt;br /&gt;Lag en lang, flat stripe deig, og surr den rundt pølsa. Pensle med litt smør. Grill på lav varme i ~5 minutter. Enklere blir det ikke :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-7339389612659209643?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/7339389612659209643/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/04/innbakte-plser-pa-grillen.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7339389612659209643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7339389612659209643'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/04/innbakte-plser-pa-grillen.html' title='Innbakte pølser på grillen'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://4.bp.blogspot.com/-jRnhcPTtZkk/Tbqio8_oeyI/AAAAAAAAAEE/pr1u3k0gtvU/s72-c/IMAG0102.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-7466085688928082882</id><published>2011-04-08T16:34:00.000+02:00</published><updated>2011-04-08T16:34:00.720+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bbq'/><title type='text'>Firespice</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-bvnZx8dyanI/TZc1Ep_4O5I/AAAAAAAAAD8/WsoWewVTmH8/s1600/IMAG0074.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://4.bp.blogspot.com/-bvnZx8dyanI/TZc1Ep_4O5I/AAAAAAAAAD8/WsoWewVTmH8/s320/IMAG0074.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5590995816513289106" /&gt;&lt;/a&gt;&lt;br /&gt;Røykespon bruker man vanligvis til å røyke fisk og denslags, men Weber har en type litt større trebiter som funker bra i grillen. Firespice er små biter av treverk av feks mesquite, hickory eller epletre som kan puttes i grillen for å lage litt ekstra røyk.&lt;br /&gt;&lt;br /&gt;Det funker flott til biff, og også pizza som jeg skrev om i forrige post. Det er lurt å legge flisene i vann et døgn i forveien, så de brenner mindre og ryker mer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-7466085688928082882?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/7466085688928082882/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/04/firespice.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7466085688928082882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7466085688928082882'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/04/firespice.html' title='Firespice'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://4.bp.blogspot.com/-bvnZx8dyanI/TZc1Ep_4O5I/AAAAAAAAAD8/WsoWewVTmH8/s72-c/IMAG0074.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-6369218598157062039</id><published>2011-04-07T14:17:00.003+02:00</published><updated>2011-04-07T14:17:00.435+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='performance testing'/><title type='text'>3xP: Predicting production performance pt. 2</title><content type='html'>In my previous post, I ranted on about testing environments, and how everything would look like if us tech nerds were to run a project. Well .. everything would be tested and running smoothly, but the users might not enjoy the command line interface.&lt;br /&gt;&lt;br /&gt;Anyway, what to do when you're unable to reproduce performance issues that appear in production, disregarding excuses and previous assumptions ?&lt;br /&gt;&lt;br /&gt;There are a number of non-intrusive metrics that is - or should be - available from your production environment. These should be used to monitor the application, and warn whenever something is about to come out of control. &lt;br /&gt;&lt;br /&gt;But since we're already working on this - I guess the metrics failed, or someone did ignore the alerts and flags and whistles. Here's my short recipe for finding performance bottle necks:&lt;br /&gt;&lt;br /&gt;1) Draw a diagram of the application stack&lt;br /&gt;2) Map out the different diagnostics available from each layer&lt;br /&gt;3) Figure out if each layer itself believes it is healthy&lt;br /&gt;4) Let each layer figure if the layer below is healthy&lt;br /&gt;5) Start fixing issues from the bottom. With each change, re-assert that the layers below still are hearty.&lt;br /&gt;&lt;br /&gt;A typical example would be a long-running sql statement. It would be visible in database monitoring tools, and easily fixed either in the database or by altering the statement. Good.&lt;br /&gt;&lt;br /&gt;But it's still a bottle neck. Why? Looking good at the data layer, there may still be issues with transporting the query results to the application server. So, next you look at the database driver, and see that there are a lot of result pagination. You query yielding 20 000 rows gets paginated into 1000 chucks of 20 rows. &lt;br /&gt;&lt;br /&gt;So you fix the prefetch size, and now things run a bit smoother. But there's still some issues, because instantiating all of these results can take a while. &lt;br /&gt;&lt;br /&gt;So you may be altering the data transfer model to be be more precise of which objects to fetch. But in doing so, you complicate the query again, yielding longer execution time ..&lt;br /&gt;&lt;br /&gt;And so on you weave a path upwards to the application level, possibly introducing and resolving several issues as you go. This process is orders of magnitude simpler if you are able to simulate the results instead of actually deploying small fixes to production. In addition, you may unknowingly touch upon stuff that break other performance metrics. So again - monitoring of the entire stack is crucial.&lt;br /&gt;&lt;br /&gt;Finally, when you reach a conclusion and have solved all of the current issues - ensure that your current footprint or benchmark is monitored for changes. Future maintenance and development will surely introduce new issues. Get at them early instead of letting them grow and interweave with each other. Then your next job won't be untying complicated knots of system behavior.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-6369218598157062039?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/6369218598157062039/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/04/3xp-predicting-production-performance_07.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6369218598157062039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6369218598157062039'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/04/3xp-predicting-production-performance_07.html' title='3xP: Predicting production performance pt. 2'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-7992181114772244002</id><published>2011-04-02T16:10:00.005+02:00</published><updated>2011-04-02T16:22:39.255+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bbq'/><title type='text'>Grill-pizza på steinplate</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-l7aD3vc4Z_4/TZcwzS5aIfI/AAAAAAAAAD0/B1HDsPu7WB8/s1600/IMAG0075.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://1.bp.blogspot.com/-l7aD3vc4Z_4/TZcwzS5aIfI/AAAAAAAAAD0/B1HDsPu7WB8/s320/IMAG0075.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5590991120207847922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Av og til oppdager man ting som er så fantastiske at man lurer på hvordan man ikke har oppdaget dem før. Igår hadde jeg en slik opplevelse, takket være en gammel steinplate som fikk plass inni grillen. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-nN6nMkIqcCQ/TZcwzOxomsI/AAAAAAAAADs/NNlvJr52lVI/s1600/IMAG0073.jpg"&gt;&lt;img style="float:left; margin:30px 30px 30px 30px;cursor:pointer; cursor:hand;width: 192px; height: 320px;" src="http://2.bp.blogspot.com/-nN6nMkIqcCQ/TZcwzOxomsI/AAAAAAAAADs/NNlvJr52lVI/s320/IMAG0073.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5590991119101500098" /&gt;&lt;/a&gt;&lt;br /&gt;Pizzabunnen som ellers blir litt kjedelig i ovenen ble helt eksepsjonell i grillen. Og det hele var enklere enn svint: fyr opp grillen til ca 250 grader, forvarm steinplaten, kjevle ut deigen og stek den i 2 minutter på hver side. Den siste stekingen med litt ost og fyll på, feks creme fraiche, skinke, ananas, basilikum og mozarella. Genialt!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-7992181114772244002?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/7992181114772244002/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/04/grill-pizza-pa-steinplate.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7992181114772244002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7992181114772244002'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/04/grill-pizza-pa-steinplate.html' title='Grill-pizza på steinplate'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://1.bp.blogspot.com/-l7aD3vc4Z_4/TZcwzS5aIfI/AAAAAAAAAD0/B1HDsPu7WB8/s72-c/IMAG0075.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-5412503917249588353</id><published>2011-04-01T13:59:00.003+02:00</published><updated>2011-04-01T14:17:00.486+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='performance testing'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>3xP: Predicting production performance pt. 1</title><content type='html'>I've recently worked a bit on performance tuning several applications that have been in production for several years. They range from 70 users to 3000 users, but have one thing in common: None of them have a performance management scheme. &lt;br /&gt;&lt;br /&gt;Of course, it comes down to a question of cost. To be able to make, say, 99% correct predictions of how a system will perform, you need to run a bunch of tests in a sensible environment. There are two cost drivers: creating and managing the tests, and acquiring and maintaining the environment. &lt;br /&gt;&lt;br /&gt;Creating load tests for a huge custom made application in three weeks is not possible. There are so many tweaks and processes and different behavior, that you'd need a load of domain experts just to tell you about all the things you can do. If the load tests were written in parallel with development, it would at least be possible to get somewhat complete coverage. But that's a huge overhead that cannot be added to the vendor budget. And the customer didn't specify inferior performance, so why should they take the cost?&lt;br /&gt;&lt;br /&gt;I guess the lesson learned is that "good" performance may be governed by a tedious technical project management. Great performance has to be a concern even wider than the project scope, also including pre- and post-processes.&lt;br /&gt;&lt;br /&gt;The second cost driver - environment - requires the first driver to be implemented. No need for realistic testing if you don't have a clue of what to test. But if you do - having a faulty or incorrectly scaled environment gives you either a number of falsely positive performance issues to solve, or a number of excuses for bad testing results. None of which is a good thing. &lt;br /&gt;&lt;br /&gt;So, if you got your tests - do go the extra mile and ensure that the environment in which they are running is enabling you to do realistic testing and get correct predictions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5412503917249588353?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5412503917249588353/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/04/3xp-predicting-production-performance.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5412503917249588353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5412503917249588353'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/04/3xp-predicting-production-performance.html' title='3xP: Predicting production performance pt. 1'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-606205724508602283</id><published>2011-02-01T01:00:00.002+01:00</published><updated>2011-02-01T01:00:12.520+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iam'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='governance'/><category scheme='http://www.blogger.com/atom/ns#' term='oracle'/><title type='text'>Oracle Identity Management - Governance, Risk and Compliance Architecture</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_vXH1ngZ2hcQ/TS2XnpovyOI/AAAAAAAAAC8/JKePvIMEaQs/s1600/41NtWYq9HIL._SL500_SS225_.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 225px; height: 225px;" src="http://1.bp.blogspot.com/_vXH1ngZ2hcQ/TS2XnpovyOI/AAAAAAAAAC8/JKePvIMEaQs/s320/41NtWYq9HIL._SL500_SS225_.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5561267822319880418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'll have to admit that my primary reason for reading this book was not to kindle my knowledge of Oracle products, but rather get a picure of the IAM world. That proved a bit difficult, because it was not clear how the O-IAM model connected to the non-vendor-specific side of things. Not very suprising, but the foreword do describe the book as definitive guide. I'd recon the book would have been better with a "middle tier" of conceptual IAM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-606205724508602283?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/606205724508602283/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/02/oracle-identity-management-governance.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/606205724508602283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/606205724508602283'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/02/oracle-identity-management-governance.html' title='Oracle Identity Management - Governance, Risk and Compliance Architecture'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://1.bp.blogspot.com/_vXH1ngZ2hcQ/TS2XnpovyOI/AAAAAAAAAC8/JKePvIMEaQs/s72-c/41NtWYq9HIL._SL500_SS225_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-7921499801878548895</id><published>2011-01-12T12:19:00.005+01:00</published><updated>2011-01-12T12:58:43.048+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='book review'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='glassfish'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Java EE6 with GlassFish 3 Application Server review</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/TS2OkyKvDdI/AAAAAAAAAC0/bY66ryN89ig/s1600/0363_Java%2BEE%2B6%2Bwith%2BGlassFish%2B3%2BApplication%2BServer_cov.jpg.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 125px; height: 152px;" src="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/TS2OkyKvDdI/AAAAAAAAAC0/bY66ryN89ig/s320/0363_Java%2BEE%2B6%2Bwith%2BGlassFish%2B3%2BApplication%2BServer_cov.jpg.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5561257877465664978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just got through this interesting book. It provides a quite nice perspective on a default set of tools for web application development in Java. Obviously focused on config and deployment of GF, the book also covers JSP, JSF, taglibs, messaging, security, ejb, cdi and web services. Althought all very familiar topics, it's nice to have a collection to point to for referencing these proven technologies. It should be pointed out that there are no comprehensive code appendixes in the book. So it's not bloated with code, but on the other hand it's not entirely clear how web services and messaging fit into the big picture.&lt;br /&gt;&lt;br /&gt;The primary audience of this book is web developers wanting to move a bit towards the server side, learning how to integrate scalable data providers into their applications. I'll be recommending this book to a couple of web developers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-7921499801878548895?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/7921499801878548895/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2011/01/java-ee6-with-glassfish-3-application.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7921499801878548895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7921499801878548895'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2011/01/java-ee6-with-glassfish-3-application.html' title='Java EE6 with GlassFish 3 Application Server review'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://2.bp.blogspot.com/_vXH1ngZ2hcQ/TS2OkyKvDdI/AAAAAAAAAC0/bY66ryN89ig/s72-c/0363_Java%2BEE%2B6%2Bwith%2BGlassFish%2B3%2BApplication%2BServer_cov.jpg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-7872512243268818715</id><published>2010-10-22T16:12:00.002+02:00</published><updated>2010-10-22T16:22:55.783+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='knowledge sharing'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><title type='text'>Knowledge sharing days</title><content type='html'>Today is of our knowledge sharing days in Computas. I haven't reflected on the actual value of such days before, except the practical value of giving and attending lectures and talks. &lt;br /&gt;&lt;br /&gt;But today I discovered that there is actually more to it than just the knowledge sharing. Being away from your current project, you get to reflect on things that are not immediatly useful to your work, but rather expands your horizon on other topics. &lt;br /&gt;&lt;br /&gt;Such a day differs from a day at a conference in that you feel free from an obligation to learn directly useful stuff. So, with this new state of mind I got to attend .NET sessions, project management sessions and sales sessions. &lt;br /&gt;&lt;br /&gt;And guess what - I actually learned a lot more than I expected! There are so much knowledge around that will come in handy at some point, which you never can afford spending time on learning in a normal day. But when disconnected from everyday obligations, the mind seeks other kinds of producing useful thoughts, and so attending sessions from other fields than your primary becomes so much more efficient!&lt;br /&gt;&lt;br /&gt;So, today I'm truly appreciating this opportunity to learn something that belongs to another everyday set of mind. &lt;b&gt;+1 for Computas :)&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-7872512243268818715?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/7872512243268818715/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/10/knowledge-sharing-days.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7872512243268818715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/7872512243268818715'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/10/knowledge-sharing-days.html' title='Knowledge sharing days'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-5466908237263064271</id><published>2010-09-23T01:48:00.004+02:00</published><updated>2010-09-23T01:53:24.862+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><title type='text'>JavaOne 2010 tag cloud</title><content type='html'>I'm trying to grasp the trends of JavaOne 2010, and I figured it would be a cool approach to create a tag cloud. So - here it is: Tag cloud composed of the titles of all JavaOne 2010 sessions.&lt;br /&gt;&lt;br /&gt;&lt;!--&lt;br /&gt;begin tag cloud : generated by TagCrowd.com&lt;br /&gt;Feel free to modify as long as you keep this notice.&lt;br /&gt;&lt;br /&gt;EMBEDDING INSTRUCTIONS:&lt;br /&gt;1. Customize your cloud's style by editing the CSS where it says CUSTOMIZE below.&lt;br /&gt;2. Insert this code in its entirety into your webpage or blog post.&lt;br /&gt;&lt;br /&gt;This code and its rendered image are released under the Creative Commons Attribution-Noncommercial 3.0 Unported License. (http://creativecommons.org/licenses/by-nc/3.0/)&lt;br /&gt;&lt;br /&gt;For COMMERCIAL USE LICENSING, visit http://tagcrowd.com/licensing.html&lt;br /&gt;--&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;!-- #htmltagcloud{&lt;br /&gt;&lt;br /&gt;/******************************************&lt;br /&gt; * CUSTOMIZE CLOUD CSS BELOW (optional)&lt;br /&gt; */&lt;br /&gt; font-size: 100%;&lt;br /&gt; width: auto;  /* auto or fixed width, e.g. 500px   */&lt;br /&gt; font-family:'lucida grande','trebuchet ms',arial,helvetica,sans-serif;&lt;br /&gt; background-color:#fff;&lt;br /&gt; margin:1em 1em 0 1em;&lt;br /&gt; border:2px dotted #ddd;&lt;br /&gt; padding:2em; &lt;br /&gt;/******************************************&lt;br /&gt; * END CUSTOMIZE&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;}#htmltagcloud{line-height:2.4em;word-spacing:normal;letter-spacing:normal;text-transform:none;text-align:justify;text-indent:0}#htmltagcloud a:link{text-decoration:none}#htmltagcloud a:visited{text-decoration:none}#htmltagcloud a:hover{color:white;background-color:#05f}#htmltagcloud a:active{color:white;background-color:#03d}.wrd{padding:0;position:relative}.wrd a{text-decoration:none}.tagcloud0{font-size:1.0em;color:#ACC1F3;z-index:10}.tagcloud0 a{color:#ACC1F3}.tagcloud1{font-size:1.4em;color:#ACC1F3;z-index:9}.tagcloud1 a{color:#ACC1F3}.tagcloud2{font-size:1.8em;color:#86A0DC;z-index:8}.tagcloud2 a{color:#86A0DC}.tagcloud3{font-size:2.2em;color:#86A0DC;z-index:7}.tagcloud3 a{color:#86A0DC}.tagcloud4{font-size:2.6em;color:#607EC5;z-index:6}.tagcloud4 a{color:#607EC5}.tagcloud5{font-size:3.0em;color:#607EC5;z-index:5}.tagcloud5 a{color:#607EC5}.tagcloud6{font-size:3.3em;color:#4C6DB9;z-index:4}.tagcloud6 a{color:#4C6DB9}.tagcloud7{font-size:3.6em;color:#395CAE;z-index:3}.tagcloud7 a{color:#395CAE}.tagcloud8{font-size:3.9em;color:#264CA2;z-index:2}.tagcloud8 a{color:#264CA2}.tagcloud9{font-size:4.2em;color:#133B97;z-index:1}.tagcloud9 a{color:#133B97}.tagcloud10{font-size:4.5em;color:#002A8B;z-index:0}.tagcloud10 a{color:#002A8B}.freq{font-size:10pt !important;color:#bbb}#credit{text-align:center;color:#333;margin-bottom:0.6em;font:0.7em 'lucida grande',trebuchet,'trebuchet ms',verdana,arial,helvetica,sans-serif}#credit a:link{color:#777;text-decoration:none}#credit a:visited{color:#777;text-decoration:none}#credit a:hover{color:white;background-color:#05f}#credit a:active{text-decoration:underline}// --&gt;&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="htmltagcloud"&gt; &lt;span id="0" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;apache&lt;/a&gt;&lt;/span&gt; &lt;span id="1" class="wrd tagcloud3"&gt;&lt;a href="#tagcloud"&gt;api&lt;/a&gt;&lt;/span&gt; &lt;span id="2" class="wrd tagcloud7"&gt;&lt;a href="#tagcloud"&gt;applications&lt;/a&gt;&lt;/span&gt; &lt;span id="3" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;best&lt;/a&gt;&lt;/span&gt; &lt;span id="4" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;beyond&lt;/a&gt;&lt;/span&gt; &lt;span id="5" class="wrd tagcloud3"&gt;&lt;a href="#tagcloud"&gt;building&lt;/a&gt;&lt;/span&gt; &lt;span id="6" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;client&lt;/a&gt;&lt;/span&gt; &lt;span id="7" class="wrd tagcloud2"&gt;&lt;a href="#tagcloud"&gt;cloud&lt;/a&gt;&lt;/span&gt; &lt;span id="8" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;code&lt;/a&gt;&lt;/span&gt; &lt;span id="9" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;community&lt;/a&gt;&lt;/span&gt; &lt;span id="10" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;concurrency&lt;/a&gt;&lt;/span&gt; &lt;span id="11" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;creating&lt;/a&gt;&lt;/span&gt; &lt;span id="12" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;data&lt;/a&gt;&lt;/span&gt; &lt;span id="13" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;desktop&lt;/a&gt;&lt;/span&gt; &lt;span id="14" class="wrd tagcloud3"&gt;&lt;a href="#tagcloud"&gt;development&lt;/a&gt;&lt;/span&gt; &lt;span id="15" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;device&lt;/a&gt;&lt;/span&gt; &lt;span id="16" class="wrd tagcloud4"&gt;&lt;a href="#tagcloud"&gt;ee&lt;/a&gt;&lt;/span&gt; &lt;span id="17" class="wrd tagcloud3"&gt;&lt;a href="#tagcloud"&gt;enterprise&lt;/a&gt;&lt;/span&gt; &lt;span id="18" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;experience&lt;/a&gt;&lt;/span&gt; &lt;span id="19" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;faces&lt;/a&gt;&lt;/span&gt; &lt;span id="20" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;framework&lt;/a&gt;&lt;/span&gt; &lt;span id="21" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;future&lt;/a&gt;&lt;/span&gt; &lt;span id="22" class="wrd tagcloud10"&gt;&lt;a href="#tagcloud"&gt;java&lt;/a&gt;&lt;/span&gt; &lt;span id="23" class="wrd tagcloud4"&gt;&lt;a href="#tagcloud"&gt;javafx&lt;/a&gt;&lt;/span&gt; &lt;span id="24" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;javaserver&lt;/a&gt;&lt;/span&gt; &lt;span id="25" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;jsr&lt;/a&gt;&lt;/span&gt; &lt;span id="26" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;language&lt;/a&gt;&lt;/span&gt; &lt;span id="27" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;machine&lt;/a&gt;&lt;/span&gt; &lt;span id="28" class="wrd tagcloud2"&gt;&lt;a href="#tagcloud"&gt;mobile&lt;/a&gt;&lt;/span&gt; &lt;span id="29" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;open&lt;/a&gt;&lt;/span&gt; &lt;span id="30" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;oracle&lt;/a&gt;&lt;/span&gt; &lt;span id="31" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;osgi&lt;/a&gt;&lt;/span&gt; &lt;span id="32" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;performance&lt;/a&gt;&lt;/span&gt; &lt;span id="33" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;persistence&lt;/a&gt;&lt;/span&gt; &lt;span id="34" class="wrd tagcloud3"&gt;&lt;a href="#tagcloud"&gt;platform&lt;/a&gt;&lt;/span&gt; &lt;span id="35" class="wrd tagcloud2"&gt;&lt;a href="#tagcloud"&gt;practices&lt;/a&gt;&lt;/span&gt; &lt;span id="36" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;programming&lt;/a&gt;&lt;/span&gt; &lt;span id="37" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;restful&lt;/a&gt;&lt;/span&gt; &lt;span id="38" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;rich&lt;/a&gt;&lt;/span&gt; &lt;span id="39" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;security&lt;/a&gt;&lt;/span&gt; &lt;span id="40" class="wrd tagcloud4"&gt;&lt;a href="#tagcloud"&gt;services&lt;/a&gt;&lt;/span&gt; &lt;span id="41" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;students&lt;/a&gt;&lt;/span&gt; &lt;span id="42" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;swing&lt;/a&gt;&lt;/span&gt; &lt;span id="43" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;systems&lt;/a&gt;&lt;/span&gt; &lt;span id="44" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;technology&lt;/a&gt;&lt;/span&gt; &lt;span id="45" class="wrd tagcloud1"&gt;&lt;a href="#tagcloud"&gt;tips&lt;/a&gt;&lt;/span&gt; &lt;span id="46" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;tv&lt;/a&gt;&lt;/span&gt; &lt;span id="47" class="wrd tagcloud2"&gt;&lt;a href="#tagcloud"&gt;virtual&lt;/a&gt;&lt;/span&gt; &lt;span id="48" class="wrd tagcloud5"&gt;&lt;a href="#tagcloud"&gt;web&lt;/a&gt;&lt;/span&gt; &lt;span id="49" class="wrd tagcloud0"&gt;&lt;a href="#tagcloud"&gt;world&lt;/a&gt;&lt;/span&gt; &lt;/div&gt;&lt;div id="credit"&gt;created at &lt;a href="http://tagcrowd.com"&gt;TagCrowd.com&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;!-- end tag cloud : generated by TagCrowd.com : please keep this notice --&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5466908237263064271?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5466908237263064271/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010-tag-cloud.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5466908237263064271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5466908237263064271'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010-tag-cloud.html' title='JavaOne 2010 tag cloud'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-5618262010105571280</id><published>2010-09-22T17:22:00.006+02:00</published><updated>2010-09-22T17:41:10.093+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaone2010'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><title type='text'>JavaOne 2010 day 2</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_vXH1ngZ2hcQ/TJogPCnfF4I/AAAAAAAAACg/ViPjdBaUMyk/s1600/P9210044.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_vXH1ngZ2hcQ/TJogPCnfF4I/AAAAAAAAACg/ViPjdBaUMyk/s320/P9210044.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5519759736068577154" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/TJogPdB1PdI/AAAAAAAAACo/-ie4EhKSgyQ/s1600/P9210040.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/TJogPdB1PdI/AAAAAAAAACo/-ie4EhKSgyQ/s320/P9210040.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5519759743158402514" /&gt;&lt;/a&gt;Attended a great session on ESB best practices by Earl Nolan and Monal Daxini. Then some REST stuff of various quality. The big thing of the day was the general technical session with Mark Reinhold. &lt;br /&gt;&lt;br /&gt;Most of the presented material were old news: Java SE 7 and EE 6. I guess the value of it is to say it's still in the pipeline. SE7 is now planned released in 2011 and SE8 in 2012. I.e. lambda expressions has been postponed till the 2012-release. &lt;br /&gt;&lt;br /&gt;The session also had a nice and rather technical twitter client demo which can be found at &lt;a href="https://glassfish.dev.java.net/twitterdemo"&gt;https://glassfish.dev.java.net/twitterdemo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5618262010105571280?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5618262010105571280/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010-day-2.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5618262010105571280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5618262010105571280'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010-day-2.html' title='JavaOne 2010 day 2'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://4.bp.blogspot.com/_vXH1ngZ2hcQ/TJogPCnfF4I/AAAAAAAAACg/ViPjdBaUMyk/s72-c/P9210044.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-5099320131755630871</id><published>2010-09-21T17:43:00.003+02:00</published><updated>2010-09-22T17:39:22.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaone2010'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><title type='text'>JavaOne day 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/TJjS_0lw_OI/AAAAAAAAACY/46jmH9fUgNM/s1600/P9200009.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/TJjS_0lw_OI/AAAAAAAAACY/46jmH9fUgNM/s320/P9200009.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5519393337233177826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What's better than a day full of Java? Such a day, and an BOF evening cruise on the bay :)&lt;br /&gt;&lt;br /&gt;Contemplating on how many participants there are on these conferences, we figured about 60 000. That's a lot of hotel rooms being occupied, dinner services etc. But then there's not a room available anywhere in the city. Wonder what happens when everyone goes home on Friday ..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5099320131755630871?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5099320131755630871/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-day-1.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5099320131755630871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5099320131755630871'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-day-1.html' title='JavaOne day 1'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://2.bp.blogspot.com/_vXH1ngZ2hcQ/TJjS_0lw_OI/AAAAAAAAACY/46jmH9fUgNM/s72-c/P9200009.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-8676363327738190715</id><published>2010-09-20T01:05:00.003+02:00</published><updated>2010-09-22T17:40:00.424+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaone2010'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><title type='text'>JavaOne 2010 !</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/TJaY2vzUrSI/AAAAAAAAACQ/VG9GT3sl8kg/s1600/IMAG0195.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 192px; height: 320px;" src="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/TJaY2vzUrSI/AAAAAAAAACQ/VG9GT3sl8kg/s320/IMAG0195.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5518766459701210402" /&gt;&lt;/a&gt;&lt;br /&gt;Yess! I'm here at Hilton Hotel, San Francisco, ready for 5 days of concentrated Java juice! Tonight at 0530 pm Larry will kick off the show, and we'll be ramlin' down a path of tech discussions over an Anchor Steam pint. This will definitely be awesome!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-8676363327738190715?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/8676363327738190715/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8676363327738190715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8676363327738190715'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/09/javaone-2010.html' title='JavaOne 2010 !'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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/_vXH1ngZ2hcQ/TJaY2vzUrSI/AAAAAAAAACQ/VG9GT3sl8kg/s72-c/IMAG0195.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-5384998335729735935</id><published>2010-09-09T20:27:00.005+02:00</published><updated>2010-09-09T20:30:56.481+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javazone'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>JavaZone 2010</title><content type='html'>Yay, JavaZone 2010 has come to a conclusion. 2 full days of dev and tech. Great fun! Thanks a lot to javaBin for a great event!&lt;br /&gt;&lt;br /&gt;The slides for my lightning speech: "Enhance your Maven plugins with Groovy" is available on slideshare: &lt;a href="http://slidesha.re/aiimmL"&gt;http://slidesha.re/aiimmL&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5384998335729735935?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5384998335729735935/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/09/javazone-2010.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5384998335729735935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5384998335729735935'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/09/javazone-2010.html' title='JavaZone 2010'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-1122306247033529647</id><published>2010-08-20T08:03:00.003+02:00</published><updated>2010-08-20T08:21:35.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wadl'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='xsd'/><category scheme='http://www.blogger.com/atom/ns#' term='ws'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='wsdl'/><category scheme='http://www.blogger.com/atom/ns#' term='soa'/><title type='text'>Presenting a RESTful web service</title><content type='html'>Lately I've been pondering on how to create a unambigious description for the RESTful web service I am designing. The kink is to create a description that will work both ways: For consumbers AND producers. In addition it should be easy to maintain and develop.&lt;br /&gt;&lt;br /&gt;So I figured that there is a description language called WADL - Web Application Description Language. Suitable for REST they say. Great indeed, but as it is not a formal standard, there are very few tools supporting the format. I.e. neither MagicDraw nor XmlSpy supports designing a service, Microsoft Visual Studio doesn't seem to support. For Java, there's wadl2java, which generates the services proxies. But still there's no design tool.&lt;br /&gt;&lt;br /&gt;GlassFish and maven-wadl-plugin can reverse engineer your annotations, and create a WADL describing your service. If you implemented it with JAX-RW. My service was already tentatively implemented using Spring Web, so no luck.&lt;br /&gt;&lt;br /&gt;A lot of services offered "in the cloud", or as we said previously "on the Internet", have textual descriptions for their APIs. Such services include Google Search API, Twitter, Flickr, Sun Kenai etc. But textual descriptions can be ambigious if not carefully written, expecially when it comes to describing message exchange formats. For message consumers, this is probably a reasonable tradeoff. But having several producers, this would most certainly lead to ambigious services.&lt;br /&gt;&lt;br /&gt;So, my solution was to 1) describe the services/resources as text in the API document, and 2) describe the resource models/message formats using XSD. XSD have wide tooling support. This takes us where we want to be.&lt;br /&gt;&lt;br /&gt;The next step would be to hand-craft the WADL using the generated XSDs, but I'll leave that as an excercise to the reader :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-1122306247033529647?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/1122306247033529647/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/08/presenting-restful-web-service.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1122306247033529647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1122306247033529647'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/08/presenting-restful-web-service.html' title='Presenting a RESTful web service'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-5944250405000481053</id><published>2010-07-02T15:12:00.003+02:00</published><updated>2010-07-02T15:31:54.235+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='javazone'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>JavaZone 2010 accept</title><content type='html'>Great, two of my collegues at Computas and me got accepted each our talk for the JavaZone-conference in Oslo 8-9. september. The three of us will contribute with these presentations:&lt;br /&gt;&lt;br /&gt;Geir A. Lund: &lt;br /&gt;&lt;strong&gt;Erfaring med konvertering fra CVS til Mercurial i stort Javaprosjekt&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Filip van Laenen: &lt;br /&gt;&lt;strong&gt;Why We Should Start Tagging Our Code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Harald Søvik: &lt;br /&gt;&lt;strong&gt;Enhance your Maven plugins with Groovy&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Along with a small army of other experts and geeks, we will fill the venue with experience, knowledge and pure java-happiness for two entire days. Don't miss out on this event - it's probably the best java conference in this part of the galaxy :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5944250405000481053?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5944250405000481053/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/07/javazone-2010-accept.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5944250405000481053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5944250405000481053'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/07/javazone-2010-accept.html' title='JavaZone 2010 accept'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-3853093810579201500</id><published>2010-06-16T22:29:00.005+02:00</published><updated>2010-06-17T09:40:48.140+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='modularization'/><category scheme='http://www.blogger.com/atom/ns#' term='ndc2010'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='xp2010'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><category scheme='http://www.blogger.com/atom/ns#' term='technical debt'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>NDC2010 material</title><content type='html'>Here are some material that will be referred to in Mortens and my talk at NDC2010:&lt;br /&gt;&lt;br /&gt;The slides for &lt;span style="font-weight:bold;"&gt;Modularization, testing  and technical debt (in a large agile project)&lt;/span&gt; is available at &lt;a href="http://www.slideshare.net/harals/modularization-testing-and-technical-debt-in-a-large-agile-project"&gt;http://www.slideshare.net/harals/modularization-testing-and-technical-debt-in-a-large-agile-project&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A whitepaper on the same topic (from the proceedings of the XP2010-conference) can be found at &lt;a href="http://www.slideshare.net/harals/cou"&gt;http://www.slideshare.net/harals/cou&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-3853093810579201500?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/3853093810579201500/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/06/ndc2010-material.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3853093810579201500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3853093810579201500'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/06/ndc2010-material.html' title='NDC2010 material'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-9122846308618251166</id><published>2010-05-25T15:41:00.003+02:00</published><updated>2010-05-25T15:41:00.331+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='xp2010'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>XP2010 accept</title><content type='html'>The 11th International Conference on Agile Software Development is coming up (June 1-4 in Trondheim). Unfortunately, I will not be able to be there. But I have been authoring and co-authoring some material for the conference.&lt;br /&gt;&lt;br /&gt;First, &lt;a href="http://twitter.com/yarcyarc"&gt;Morten&lt;/a&gt;'s and my experience report "Tech Challenges in a Large-Scale Agile Project" was accepted, and will be both presented and included in the conference proceedings: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;This experience reports focuses on the major technical challenges that arose during the project, especially those challenges that we think can be attributed to the SCRUM methodology. For each of them, we try to identify the consequence and the cause, and then follow up with any solutions we tried, and an analysis of whether the problem was successfully solved or not. The session paper lists three major examples of such problems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, I got accepted a lightening talk as well: "Agile Methods may Discourage Quality". However, since I have to be attending a customer at the time, &lt;a href="http://twitter.com/yarcyarc"&gt;Morten&lt;/a&gt; will be presenting this instead of me. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Agile methods, and in particular scrum, have a very strong focus on productivity and immediate business value. The developers are encouraged to complete their tasks in due time, and this may lead to quick and dirty solutions. Thus, a quality assurance system is required to ensure that technical quality is within required bounds. This system may be implemented through pair programming, code review, design review etc. It is crucial that whatever QA systems one choose, it has strong enough authority to inflict a decrease in focus factor, or even a postponed deadline.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cheers and good luck to you all in Trondheim! See &lt;a href="http://xp2010.org/"&gt;http://xp2010.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-9122846308618251166?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/9122846308618251166/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/05/xp2010-accept.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/9122846308618251166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/9122846308618251166'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/05/xp2010-accept.html' title='XP2010 accept'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-2111642171522037177</id><published>2010-05-10T12:45:00.003+02:00</published><updated>2010-05-10T12:54:06.651+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='technical debt'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Technical debt in agile projects</title><content type='html'>I'll be presenting my opinions on technical debt in agile projects at &lt;a href="http://wiki.cantara.no/display/PE/Invitasjon+til+Communities+in+Action+2010"&gt;Communities in Action 2010&lt;/a&gt; tonight.&lt;br /&gt;&lt;br /&gt;The presentation can be found at &lt;a href="http://www.slideshare.net/harals/scrum-skjuler-teknisk-gjeld-2277766"&gt;slideshare&lt;/a&gt; but I'll let you in on my three "lemmas" as a tech lead:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li/&gt; make it simple and easy to report a technical shortcoming&lt;br /&gt; &lt;li/&gt; don't let it backfire on the whistleblower&lt;br /&gt; &lt;li/&gt; decide the matter in a setting with both technical expertise and executive power&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-2111642171522037177?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/2111642171522037177/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/05/technical-debt-in-agile-projects.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2111642171522037177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2111642171522037177'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/05/technical-debt-in-agile-projects.html' title='Technical debt in agile projects'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-8926895996273767109</id><published>2010-04-22T21:29:00.003+02:00</published><updated>2010-04-22T21:38:20.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='microbenchmarking'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><category scheme='http://www.blogger.com/atom/ns#' term='benchmark'/><title type='text'>Java Microbenchmarking</title><content type='html'>Working late on preparing a performance test tomorrow, I stumbled over something called microbenchmarking. The idea is to put small performance tests within you code to evalute the system. This gives you the liberty of extracting performance measurements regardless of what environment the platform runs in (i.e. your development desktop vs. testing vs. production).&lt;br /&gt;&lt;br /&gt;There are an awful lot of obvious (and perhaps not so obvious) things not to do while microbenchmarking. Consider e.g. if you should invoke any large or small load, what layer to stress, when to do this ..&lt;br /&gt;&lt;br /&gt;I'm implementing this as a JBoss MBean, which will let me invoke a test suite with a HTTP request, and get a "ping"-style timer response.&lt;br /&gt;&lt;br /&gt;I'll post my results later if this happens to be an interesting feature.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-8926895996273767109?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/8926895996273767109/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/04/java-microbenchmarking.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8926895996273767109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/8926895996273767109'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/04/java-microbenchmarking.html' title='Java Microbenchmarking'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-3650879957673754674</id><published>2010-04-05T15:15:00.007+02:00</published><updated>2010-04-05T15:40:27.238+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='experience report'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>NDC 2010 accept</title><content type='html'>Against all odds (?) - Mortens and my paper ("Modularization, Testing &amp; Technical Debt in a Large Agile Project") was accepted for the Nordic Developer Conference 2010. Well then, even though it's experiences from a Java project presented at a .Net conference, both sides has the agile dimension in common.&lt;br /&gt;&lt;br /&gt;But it's still somewhat comical to present in "the dragon's lair". The presentations is scheduled for day 2, track 2 at 11:40 - in parallel to Eric Evans .. yikes.&lt;br /&gt;&lt;br /&gt;The abstract reads: &lt;blockquote&gt;&lt;br /&gt;This experience reports focuses on the major scrum–related technical challenges that arose during a 120 000 hour scrum controlled project. For each of them, we try to identify the cause and the consequence, and then follow up with any solutions we tried. Finally we sum up and assess whether the problem was successfully solved or not.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In addition, my colleague &lt;a href="http://twitter.com/filipvanlaenen"&gt;Filip van Laenen&lt;/a&gt; was accepted with his presentation "Distributed Computing 2.0". See &lt;a href="http://www.ndc2010.no"&gt;http://www.ndc2010.no&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-3650879957673754674?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/3650879957673754674/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/04/ndc-2010.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3650879957673754674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3650879957673754674'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/04/ndc-2010.html' title='NDC 2010 accept'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-2755290815381114761</id><published>2010-03-08T16:52:00.004+01:00</published><updated>2010-03-08T17:04:19.915+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fail'/><category scheme='http://www.blogger.com/atom/ns#' term='find'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='cygwin'/><category scheme='http://www.blogger.com/atom/ns#' term='path'/><title type='text'>Wannabe Linux "#¤(=¤/"!?%/¤</title><content type='html'>For some reason, we are using Cygwin at work to ease our scripting burden. It's a great tool for using bash-ish scripting power. Lately, my find command has behaved in strange ways. Whatever flags I pass, the result is always the same:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ find&lt;br /&gt;FIND: Parameter format not correct&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;After about 3 days this problem became unbearable, and I dedicated myself to hunt down the cause. Neither a cygwin upgrade, nor my configurations files was to blame. &lt;strong&gt;Windows stole my find !&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ which find&lt;br /&gt;/cygdrive/c/WINDOWS/system32/find&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ rm `which find`&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ which find&lt;br /&gt;/usr/bin/find&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ sleep 10s&lt;br /&gt;[/usr/bin] hasov@HKS-ADAMSTUA300 $ which find&lt;br /&gt;/cygdrive/c/WINDOWS/system32/find&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Note that even though I remove the bogus find, some devil puts it back after a few seconds! Very strange indeed.&lt;br /&gt;&lt;br /&gt;Anyway, I decided to get rid of the entire system32-thingy. I didn't want the break the fragile windows PATH variable, so I decided to handle the problem in .bashrc.&lt;br /&gt;&lt;blockquote&gt;export PATH=`echo $PATH | sed -e 's/:\/cygdrive\/c\/WINDOWS\/system32:/:/'`&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;And that was just another nail in the windows/cygwin/hybrid coffin.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-2755290815381114761?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/2755290815381114761/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2010/03/wannabe-linux.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2755290815381114761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2755290815381114761'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2010/03/wannabe-linux.html' title='Wannabe Linux &quot;#¤(=¤/&quot;!?%/¤'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-3162152645225681693</id><published>2009-12-17T20:32:00.000+01:00</published><updated>2009-12-17T20:34:04.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jdk7'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='swing'/><category scheme='http://www.blogger.com/atom/ns#' term='jaxb'/><title type='text'>Java 7 chapter 4: client and web changes</title><content type='html'>&lt;span style="font-weight:bold;"&gt;XRender&lt;/span&gt; &lt;br /&gt;Old Java2D had to do a lot of rendering in software. This was fixed, but with OpenGL and poor Linux drivers, it can still be a problem. Thus, an X11 renderer should be created. Java2D is used by Cairo, GTK+, QT4 and KDE4.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Deployment features&lt;/span&gt;&lt;br /&gt;Enable better access to installed JREs for applets, webstart and javafx applications. Also seamless JRE installation, and single line javascript deployment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Swing updates&lt;/span&gt;&lt;br /&gt;Translucent and shaped windows, heavyweight/lightweight mixing, and the improved AWT security warning. &lt;br /&gt;&lt;br /&gt;JXLayer (glass pane overlay, control everything) component decorator, JXDatePicker, and possibly CSS-based styling. &lt;br /&gt;&lt;br /&gt;DROPPED: Swing Application Framework to make it easier to write applications. May provide co-existence with JavaFX.&lt;br /&gt;&lt;br /&gt;Nimbus look and feel. JGI.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Web changes&lt;/span&gt;&lt;br /&gt;Upgrade the JAXP, JAXB, and JAX-WS APIs to the most recent stable versions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-3162152645225681693?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/3162152645225681693/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-4-client-and-web-changes.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3162152645225681693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3162152645225681693'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-4-client-and-web-changes.html' title='Java 7 chapter 4: client and web changes'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-2916860724907203151</id><published>2009-12-16T22:08:00.000+01:00</published><updated>2009-12-16T22:10:44.029+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jdk7'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='core'/><title type='text'>Java 7 chapter 3: core</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Modularization&lt;/span&gt;&lt;br /&gt;JSR 277: JAM module system eller OSGi. Applying JSR 294 to the rt.jar, creating virtual machine “profiles”. The core has been reduced from 15 MB to 5 MB. There might be profiles for headless, rich apps, realtime ..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ClassLoader architecture&lt;/span&gt;&lt;br /&gt;Modifications to avoid deadlocks in non-hierarchical (cyclic) topologies. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Close URLClassLoader&lt;/span&gt;&lt;br /&gt;Often in use by application servers. When a new URLClassLoader is constructed, the old one can be garbage collected when there are no references to this object. Only then can files and directories under this CL be unlocked. Because of the nature of GC,  it is unpredictable when this will happend. A close method will make this behavious more predictable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Unicode 5.1&lt;/span&gt;&lt;br /&gt;Standard for representing various characters, now supporting even more characters.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Concurrency/collection updates&lt;/span&gt;&lt;br /&gt;166 is a package of different concurrency stuff. 166y is defining a fork/join-framework (Parallel Array). Operation on a collection of elements, like incrementing a number across an array.  &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;New I/O APIs&lt;/span&gt;&lt;br /&gt;A file system interface that supports bulk access to file attributes, change notification, tunnel to FS-specific APIs, service-provider interface for pluggable FS implementations. &lt;br /&gt;&lt;br /&gt;Asynch I/O operation on both sockets and files. Socket level UDP stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;EEC&lt;/span&gt;&lt;br /&gt;Approac to public-key cryptography. Now supported with a native java library.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-2916860724907203151?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/2916860724907203151/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-3-core.html#comment-form' title='1 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2916860724907203151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2916860724907203151'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-3-core.html' title='Java 7 chapter 3: core'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-6686858000656507924</id><published>2009-12-15T12:39:00.003+01:00</published><updated>2009-12-15T12:44:42.470+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jdk7'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='modularization'/><category scheme='http://www.blogger.com/atom/ns#' term='coin'/><category scheme='http://www.blogger.com/atom/ns#' term='syntax'/><category scheme='http://www.blogger.com/atom/ns#' term='annotations'/><title type='text'>Java 7 chapter 2: Language changes</title><content type='html'>&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Annotations&lt;/span&gt;&lt;br /&gt;Annotations is limited to declarations in java 6 (method parameters and the declarations of packages, classes, methods, fields, and local variables). This jsr extends the annotation system to use on any type. It is limited to defining the syntax of the extended annotations, leaving the semantics out.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Modularization&lt;/span&gt;&lt;br /&gt;Will promote testability and maintainability. Much like OO and interfaces, but at larger scale. A JAR is like a module but does not define dependencies. All classes are put on classpath, which enables interface type checking at compile time. However, the classpath can be different in runtime, i.e. different or multiple library versions. ClassLoaders can be used to segment the classpath, but they are hard to use. OSGi is a module system. It uses metadata in the manifest-file to determine inter-jar dependencies, and provides one ClassLoader per library. OSGi is a specification with several implementations. Project Jigsaw is the effort of modularizing the jdk itself. It will introduce a “module” keyword which combined with maven/ant-style dependencies can be used to create runtime module dependencies.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Coin&lt;/span&gt;&lt;br /&gt;Project Coin defines a set of small language changes should be added to JDK 7. Seven features have been selected:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Strings in switch&lt;br /&gt;&lt;li&gt;Language support for collections&lt;br /&gt;&lt;li&gt;Automatic Resource Management&lt;br /&gt;&lt;li&gt;Improved Type Inference for Generic Instance Creation &lt;br /&gt;&lt;li&gt;Better integer literals&lt;br /&gt;&lt;li&gt;Simplified Varargs Method Invocation&lt;br /&gt;&lt;li&gt;Language support for JSR 292&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;See i.e. &lt;a href="http://blogs.sun.com/darcy/entry/project_coin_final_five"&gt;http://blogs.sun.com/darcy/entry/project_coin_final_five&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/5293005308084708753-6686858000656507924?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/6686858000656507924/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-2-language-changes.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6686858000656507924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6686858000656507924'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-2-language-changes.html' title='Java 7 chapter 2: Language changes'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-1910447851470674403</id><published>2009-12-04T13:12:00.006+01:00</published><updated>2009-12-04T13:18:18.472+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jdk7'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='dolphin'/><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='openjdk'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual machine'/><title type='text'>Java 7 chapter 1: The Virtual Machine</title><content type='html'>To prepare for the arrival of the Dolphin, I will indulge in some research entitled "What's new in Java 7". The story will consist of 5 chapters: the vm, the language, the core, the client and the Web. First came the change to the &lt;span style="font-weight:bold;"&gt;virtual machine&lt;/span&gt;. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;CompressedOops&lt;/span&gt;&lt;br /&gt;OOP is an “ordinary object pointer”, and it’s length is usually similar to the length of the native operating system pointer. Increasing the length from 32 to 64 bits will cause the heap in a 32-based program (running on a 64-bit system) to expand by 50%. Memory is cheap, but bandwidth and cache is expensive, and it is should not be very costly to port applications a new platform. Using a 64 bit vm and the UseCompressedOops flag will keep addressing overhead similar to that of 32 bit systems at the cost of cpu cycles.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Garbage First GC (“G1”)&lt;/span&gt;&lt;br /&gt;Replacement for Concurrent-Mark-Sweep GC, but still “generational”. CMS divides memory into young generation (eden, survivor)  and and old generation. Move live object into a more “persistent” generation. Stops the world to do complete collections. G1 divides memory into small “regions”, and these are labeled “young” or “old”. During a GC, those objects who are “live” in a region, will be compacted with other “live” objects in another region, depending on their age. Each region has a “remembered set”, which contains all external references to this region. This reduces the need to pause the world to mark. &lt;br /&gt;&lt;br /&gt;G1 is a server-style garbage collector, targeted for multiprocessor- and large memory systems. It aims at being more predictable than CMS. It’s also available in 6u14. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;JSR 292: The Da Vinci Machine Project&lt;/span&gt;&lt;br /&gt;The JVM should be extended with general support of languages other than Java, and in particular dynamically typed languages. Such language implementers have observed a range of painful aspects of the byte code language, and this projects aims to remove those in a general manner. The noteworthy suggestions is: dynamic invocation, continuations, tail-calls and interface injection. The JSR specifically targets dynamic invocation and hot class modification. Today dynamic languages produces a lot of different options for signatures that all have to be stored in permgen space. This is very inefficient, and one should be able to narrow down these options at runtime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-1910447851470674403?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/1910447851470674403/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-1-virtual-machine.html#comment-form' title='1 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1910447851470674403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1910447851470674403'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/12/java-7-chapter-1-virtual-machine.html' title='Java 7 chapter 1: The Virtual Machine'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-787691725648872469</id><published>2009-11-13T10:44:00.006+01:00</published><updated>2010-03-11T15:43:09.089+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='soap'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='uio'/><category scheme='http://www.blogger.com/atom/ns#' term='json'/><category scheme='http://www.blogger.com/atom/ns#' term='jaxb'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='jersey'/><title type='text'>Twitter programming session</title><content type='html'>Last night I had a live programming session with ~30 CS students at the University of Oslo. The goal was to show how easy it is to interact with RESTful webservices in Java. I started out with explaining about HTTP and Jersey, REST vs SOAP, JSON vs XML and jsonlib vs jaxb. Those were the major design decisions.&lt;br /&gt;&lt;br /&gt;I subsequently implemented a bot that would befriend anyone that was following the bot. Doing this with jsonlib was pretty straightforward, but showed the weakness of not having a higher level abstraction of the domain. Therefore, the next bot would get status updates from his friends timeline, and show them in a simple GUI. This proved a lot smoother when jaxb was at work, because it created two separate layers: one interacting with twitter restful webservices, and another showing model objects in the GUI. Last I showed a bot that used twitters search api to follow a trending topic.&lt;br /&gt;&lt;br /&gt;Overall it was a good session, but I think it was a little bit too packed with technology choices. I guess it would have been of greater value to just show the magic of jaxb, and skip the primitive alternative.&lt;br /&gt;&lt;br /&gt;The javabots is available for download at &lt;a href="http://bit.ly/FyeqT"&gt;http://bit.ly/FyeqT&lt;/a&gt; for a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-787691725648872469?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/787691725648872469/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/11/twitter-programming-session.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/787691725648872469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/787691725648872469'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/11/twitter-programming-session.html' title='Twitter programming session'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-2566915020082767296</id><published>2009-10-29T16:18:00.006+01:00</published><updated>2010-03-11T15:43:23.464+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cx'/><category scheme='http://www.blogger.com/atom/ns#' term='smidig'/><category scheme='http://www.blogger.com/atom/ns#' term='technical debt'/><category scheme='http://www.blogger.com/atom/ns#' term='open space'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>Scrum and Technical Debt</title><content type='html'>This years Smidig-conference is over, and I've had a week to digest the impressions. Overall it was a great experience. Lots of lightning talks, open space discussions and even some beer. My talk on Scrum and Technical Debt created some fuzz in the following open space discussion, so I guess it must have stroken s chord in some of the listeners :)&lt;br /&gt;&lt;br /&gt;Janniche from Bekk challenged me on my claims, and frankly I think she may have a point. She argued that if tech debt seems to hide away in scrum, we are using scrum in the wrong manner. Technical debt should be up front, and thus decrease the focus factor. It requries developers to be honest and professional about their craftmanship. So maybe we should spend some hours on tutoring instad of repairing old defects ..&lt;br /&gt;&lt;br /&gt;The presentation is unfortunately not available on video, but the slides can be found at http://www.slideshare.net/harals/scrum-skjuler-teknisk-gjeld-2277766&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-2566915020082767296?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/2566915020082767296/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/10/scrum-and-technical-debt.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2566915020082767296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/2566915020082767296'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/10/scrum-and-technical-debt.html' title='Scrum and Technical Debt'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-3971881672629481658</id><published>2009-10-01T16:19:00.003+02:00</published><updated>2009-10-01T16:26:23.451+02:00</updated><title type='text'>Time Snapper</title><content type='html'>I’ve been using TimeSnapper for a few days, and I’m definitively amused by it’s fancyness. Even though I’ve been present at work for perhaps 30 hours, it reveals that I’ve spent nearly a third of that time away from my workstation.&lt;br /&gt;&lt;br /&gt;Moreover, it reveals that I spend most of my day inside if the www with opera. I haven’t been able to break that time slot down, but I’m afraid that most of my opera-time is devoted to issue tracking.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/SsS6nTEi5cI/AAAAAAAAAAc/VwWgTqGxmnc/s1600-h/timesnapper2.PNG"&gt;&lt;img style="float:center; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 288px;" src="http://2.bp.blogspot.com/_vXH1ngZ2hcQ/SsS6nTEi5cI/AAAAAAAAAAc/VwWgTqGxmnc/s320/timesnapper2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387636238538958274" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/SsS6m-aR4FI/AAAAAAAAAAU/vwuFHKZzvIQ/s1600-h/timesnapper1.PNG"&gt;&lt;img style="float:center; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 303px;" src="http://3.bp.blogspot.com/_vXH1ngZ2hcQ/SsS6m-aR4FI/AAAAAAAAAAU/vwuFHKZzvIQ/s320/timesnapper1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5387636232992972882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-3971881672629481658?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/3971881672629481658/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/10/time-snapper.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3971881672629481658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3971881672629481658'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/10/time-snapper.html' title='Time Snapper'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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://2.bp.blogspot.com/_vXH1ngZ2hcQ/SsS6nTEi5cI/AAAAAAAAAAc/VwWgTqGxmnc/s72-c/timesnapper2.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5293005308084708753.post-6287991946947536546</id><published>2009-09-29T10:29:00.002+02:00</published><updated>2009-09-29T10:54:49.245+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><title type='text'>Maven: updating you version tags</title><content type='html'>When you create another branch of your multimodule maven project, updating version tags all over the hierarchy can be a pain. You keep that snippet of code that does the job with 'find -iname pom.xml | xargs sed -e 's/4.0-SNAPSHOT/5.0-SNAPSHOT/g' .. and it works in most of the cases.&lt;br /&gt;&lt;br /&gt;But there's another way: using the maven-versions-plugin. It allows you to change the pom version and parent version with a single target, e.g. mvn versions:set -DnewVersion=4.0b-SNAPSHOT.&lt;br /&gt;&lt;br /&gt;Now, all of your maven modules in this project have been updated to the correct version, and their parent dependencies as well. Voilà :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-6287991946947536546?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/6287991946947536546/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/09/maven-updating-you-version-tags.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6287991946947536546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6287991946947536546'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/09/maven-updating-you-version-tags.html' title='Maven: updating you version tags'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-4346441454397700212</id><published>2009-09-11T12:47:00.004+02:00</published><updated>2009-10-29T22:16:28.620+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='turnaround'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='build time'/><category scheme='http://www.blogger.com/atom/ns#' term='ssd'/><category scheme='http://www.blogger.com/atom/ns#' term='maven'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation'/><title type='text'>Speeding up the development cycle at JavaZone</title><content type='html'>JavaZone 2009 has come to an end. It was a top notch conference: Great speakers and free beer.&lt;br /&gt;&lt;br /&gt;My contribution was a lightning speed with entitled &lt;span style="font-weight:bold;"&gt;Speeding up the development cycle: Stash your files on a Solid State Drive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The abstract reads: &lt;span style="font-style:italic;"&gt;Solid state drives have recently become easily available. Their performence may provide a way of reducing the time spent on on the development cycle: compiling, packeting and deploying applications. This paper shows promising results by locating the code base and local maven repository on a solid state drive. Initial experiments shows that time spent on waiting for your code to compile may be reduced by 50%.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can get the slides at: &lt;a href="http://www.slideshare.net/harals/ssd-dev"&gt;http://www.slideshare.net/harals/ssd-dev&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-4346441454397700212?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/4346441454397700212/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/09/speeding-up-development-cycle-at.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/4346441454397700212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/4346441454397700212'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/09/speeding-up-development-cycle-at.html' title='Speeding up the development cycle at JavaZone'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-1004369746011977746</id><published>2009-08-17T21:12:00.006+02:00</published><updated>2009-08-17T21:27:45.817+02:00</updated><title type='text'>J2EE 6 på norsk</title><content type='html'>Jeg kom tilfeldigvis over denne engelske bloggen, som også kommer i internasjonalisert utgave: http://blog.taragana.com/index.php/archive/java-ee-6-highlights/no/&lt;br /&gt;&lt;br /&gt;Og hva kan man si. Her er det flust av gullkorn. Skulle ønske Sun kom med en norsk utgave av Java EE 6.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The key features of Java EE 6 &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;= Nøkkelen vise egenskaper av Java EE 6&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;RESTful web services&lt;/span&gt; &lt;br /&gt;= Hvile web tjenestene&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Annotations across Web API&lt;/span&gt; &lt;br /&gt;= Merknader vannrett Web API&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Mobile developers&lt;/span&gt; &lt;br /&gt;= transportabel utviklerne&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Scripting languages&lt;/span&gt; &lt;br /&gt;= Skriften språkene&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Manual editing of web.xml&lt;/span&gt; &lt;br /&gt;= håndbok redigere bort av web.xml&lt;br /&gt;&lt;br /&gt;Og andre mer anvendelige oversettelser:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Submit tips&lt;/span&gt; &lt;br /&gt;= Underkaste seg drikkepenger&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Albert Einstein&lt;/span&gt; &lt;br /&gt;= Enskjønt Einstein&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-1004369746011977746?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/1004369746011977746/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/08/j2ee-6-pa-norsk.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1004369746011977746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/1004369746011977746'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/08/j2ee-6-pa-norsk.html' title='J2EE 6 på norsk'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-6288838928325574361</id><published>2009-08-12T09:13:00.003+02:00</published><updated>2009-08-12T09:20:40.563+02:00</updated><title type='text'>Blog blah blah</title><content type='html'>I just can't enought of them interesting blogs to read. And none of those publish exclusively interesting content. I find myself skimming titles to decide what posts to read. &lt;br /&gt;&lt;br /&gt;So I got this idea: Combine Delicious and the blogsphere, and let me subscribe to tags or semantics or even something from a dewey-style categorisation of the world. Let me decide that I want all blog posts concering acquisitions of OSS companies by enterprise organisations. And let something, somewhere handle where to find those blogs, how to rate them, decide what to present to me.&lt;br /&gt;&lt;br /&gt;Sort of like when people tweet about their blog postings.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-6288838928325574361?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/6288838928325574361/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/08/blog-blah-blah.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6288838928325574361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6288838928325574361'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/08/blog-blah-blah.html' title='Blog blah blah'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-3570755387736358122</id><published>2009-08-11T21:58:00.002+02:00</published><updated>2009-08-11T22:00:47.465+02:00</updated><title type='text'>Spoils of Peopleware</title><content type='html'>So, &lt;br /&gt;I read this black bible of technology workers satisfaction. Or perhaps programmers satisfaction. Or perhaps even skilled programmers satisfaction. It is said that this book should be kept secret from any management spy which happen to hoover over your desk. This because it is said to contain revolutionary ideas and truths about productivity, contrary to management theory and practice. So what is it all about?&lt;br /&gt;&lt;br /&gt;Projects are failing to meet deadlines, to implement the specifications, to specify what the costumer really needs. The book claim that there are often no technological issues to explain this, but rather political and sosiological issues.&lt;br /&gt;&lt;br /&gt;"Development is different from production". It's not a process that can be tuned and kept in a steady state, but instead a dynamic organism that should be nourished and kept happy. It's about creating value through ingenuity, not by running the motor at full throttle. One hour of overtime (at which you seldom can work at 100%) may cost an hour of undertime (where you recover and clean up after last nights desperate moves). Deadlines are not always absolute. Sometimes it's acceptable and even sensible to delay a deadline to fulfill quality requirements. I wish we could have both. "Quality is free, but only to those who are willing to pay heavily for it".&lt;br /&gt;&lt;br /&gt;Then there's this part about the office environment. Cubicles and uniform environments are strongly discouraged. As opposed to factory workers, programmers are said to be intellect workers, and there are different rules that make them perform better. Cramped and noisy quarters can be a killer to productivity. Personalization enhances smartness. Interruptions steals a whole lot more of time than their duration, due to interruption of flow. You need at least 20 uninterrupted minutes to start working efficiently, and you need at least one hour to produce efficient results. Thus, behold of the E-factor: uninterrupted hours per working hours. Try measuring them by yourself. It's suggested that your will achieve a factor between 0.1 and 0.4. The number alone tells no story, but try to calculate it prior to and after a change, like moving to another office space, tearing down the office walls, putting up walls, switching offices and so on.&lt;br /&gt;&lt;br /&gt;The right people is another keyword. A short formula for success: get the right people, make them happy so they won't leave, turn them loose. &lt;br /&gt;&lt;br /&gt;The first clause is about hiring. Have an audition. Make the candidated program. Accept those that your collegues think highly of. Measure the cost of turnover. It can easily be as much as 5 months of lost work. Consider them people instead of workers. Most people leave because 1) they're just passing by, 2) they are feeling disposable or 3) they are not loyal because they are being threated as workers.&lt;br /&gt;&lt;br /&gt;It's all about putting a kick-ass team together. There's this concept called jelling, which is rather difficult to quantify. It happens when people are professionally happy with each other, they feel identity and ownership and eliteness. Don't change a winning team. Spend some money on jelling acitivties, like teambuilding. A few hundred hours can easily be spent, or what?&lt;br /&gt;&lt;br /&gt;So, this was a quick and superficial summary of the epic. Mostly written down to serve as my own mindmap for remembering things. Everything favors the developer, and I guess any manager would have loads of counter arguments to any of the claims. I agree with the majority of claims, and then I guess the rest is not applicable to my situation. It seems as if the paradise of developers is a small company owned by the developers themselves. Growth implies overhead, and the overhead eats up the advantage.&lt;br /&gt;&lt;br /&gt;But then there's some advantages of working in a production environment as well. Your schedule is predictable. Your hours are predictable. &lt;br /&gt;&lt;br /&gt;Your duties are predictable. Your requred skills are predictable. And then sometimes they're not, but then it's no longer a stable and optimised production process, is it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-3570755387736358122?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/3570755387736358122/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/08/spoils-of-peopleware.html#comment-form' title='2 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3570755387736358122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/3570755387736358122'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/08/spoils-of-peopleware.html' title='Spoils of Peopleware'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-5546396529063054698</id><published>2009-08-08T10:33:00.003+02:00</published><updated>2009-08-08T10:36:43.018+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eee 901'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='asus eee'/><title type='text'>Installing Debian on EEE 901</title><content type='html'>&lt;span style="font-family:arial;"&gt;For some reason, my Asus 3e 901 decided to freeze during boot. No magic would heal the system, so I booted into a live distro, salvaged the content of my home directory, and decided to offer myself a brand new debian installation.&lt;br /&gt;&lt;br /&gt;For once, I didn't have a linux machine to help me. That caused some trouble, but I was able to get windows utilities to perform the same tasks as dd. &lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;I decided to use the eee community edition of debian. It is available at http://eeepc.debian.net/debian/images/debian-eeepc.img. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Used HP usb disk storage tool to format a pendrive and flashnul to write the image to the device.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Struggled a while with booting the 3e from a usb device. I figured out that you should enter bios (f2 during boot), and enable removable device as primary boot medium, and turn off silent boot and quick boot. It might also be a good ide to set the bios in "install os" mode. &lt;br /&gt;&lt;br /&gt;Save, reboot. Then hit ESC while booting to get a boot menu, and select USB. &lt;br /&gt;&lt;br /&gt;The installer was able to detect both ethernet and wireless NICs. I was able to retrieve the base system as a charm. Promising. I got some hints out of http://wiki.debian.org/DebianEeePC/HowTo/Install&lt;br /&gt;&lt;br /&gt;Then boot. Remember to revert the bios settings - at least set os install mode to "installed". &lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;After boot, I installed those xorg packages suggested by the debianeee howto, and then fluxbox with dependencies. And behold, Xorg started without a glitch. Amazing. Nothing like those old days of xorg.conf hacking, hsync, vsync yadda yadda.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;apt-get install bliss&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-5546396529063054698?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/5546396529063054698/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/08/installing-debian-on-eee-901.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5546396529063054698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/5546396529063054698'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/08/installing-debian-on-eee-901.html' title='Installing Debian on EEE 901'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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-5293005308084708753.post-6398598955743071720</id><published>2009-07-21T14:38:00.006+02:00</published><updated>2009-07-21T16:10:50.599+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtual desktop'/><category scheme='http://www.blogger.com/atom/ns#' term='ghost'/><category scheme='http://www.blogger.com/atom/ns#' term='virtual os'/><title type='text'>Global Hosted Operating System</title><content type='html'>A little rant about this new thingy ..&lt;br /&gt;&lt;br /&gt;So, in the beginning there was the web. Then came the desktop. Then the web became web 2.0. Now, behold of the desktop 2.0.&lt;br /&gt;&lt;br /&gt;You've already heard of it. Google Crome OS. Software-as-a-service. Cloud. Virtual computers. Virtual desktop. Have you tried it ?&lt;br /&gt;&lt;br /&gt;Ghost Inc. provides you with a virtual desktop. That's a full-screen web 2.0 flash application that mimics a desktop. There are about just those applications you use during a week: Web brower, email client, media player, office suite, and storage space.&lt;br /&gt;&lt;br /&gt;Wait. This sounds just like your average work terminal server .. and yes: Ghost is in practice a citrix clone that runs inside your browser. You treat it as your desktop-away-from-home. You've already got one for work. Now you get one for your private use. I'd imagine it being great for those travelling and using different computers every day.&lt;br /&gt;&lt;br /&gt;Actually, Ghost call this application a virtual computer, but hold your horses. You won't get an internet adress. There are no background processes. You spend your own CPU. And the network traffic travels between your own interface and your target network.&lt;br /&gt;&lt;br /&gt;So, this seems to be more of a virtual pseudo operating system running combined inside of your browser and on the cloud. What goes where is hard to tell, but certainly the storage space is in the cloud, since it's provided by Amazon S3. A lot of the applications available at the desktop may be using Cloud Power (tm).&lt;br /&gt;&lt;br /&gt;Mobile access is supported. You can access a downsized and stripped version of your desktop, with mobile-enabled versions of some applications. Neat.&lt;br /&gt;&lt;br /&gt;So, whats the downsides? Applications will probably be your major pain. You can't apt-get install your favourite vim edition. There is no nethack! Just like your strictly managed work citrix terminal ..&lt;br /&gt;&lt;br /&gt;Privacy? I would not bet on it, but they claim it. I've yet to enter any external credentials. Me might be paranoid.&lt;br /&gt;&lt;br /&gt;Availability? Best effort.&lt;br /&gt;&lt;br /&gt;And then there's this thing called shared files, which lets any ghost user access the file. This directory can be searched, so there's this small search engine thingy inside of your desktop. It turns up some really interesting executables. Take care. Your invulnerable virtual desktop may bring death and destruction to your hardware platform.&lt;br /&gt;&lt;br /&gt;There is of course a whole lot of copyrighted material shared. How can you avoid that kind of abuse? Let's see who is being punished ..&lt;br /&gt;&lt;br /&gt;Lastly, there are some cool features to be mentioned: Google Drive lets you use your gmail account file system for additional storage. (Just like gmailfs for linux). OpenSAM provides SSO with all of your web applications. FTP access to your slice of S3.&lt;br /&gt;&lt;br /&gt;Enough ramble. Time to go fishing. Cheers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5293005308084708753-6398598955743071720?l=harals.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://harals.blogspot.com/feeds/6398598955743071720/comments/default' title='Legg inn kommentarer'/><link rel='replies' type='text/html' href='http://harals.blogspot.com/2009/07/global-hosted-operating-system.html#comment-form' title='0 Kommentarer'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6398598955743071720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5293005308084708753/posts/default/6398598955743071720'/><link rel='alternate' type='text/html' href='http://harals.blogspot.com/2009/07/global-hosted-operating-system.html' title='Global Hosted Operating System'/><author><name>harals</name><uri>http://www.blogger.com/profile/04458606913610240902</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></feed>
