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

<channel>
	<title>The Nordhagen &#187; General thoughts</title>
	<atom:link href="http://www.oyvindnordhagen.com/blog/category/shout/general-thoughts/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oyvindnordhagen.com/blog</link>
	<description>Øyvind Nordhagen on ActionScript and other things</description>
	<lastBuildDate>Fri, 20 Jan 2012 13:06:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Olog 1.2.8 (and a new Olog page)</title>
		<link>http://www.oyvindnordhagen.com/blog/2010/12/05/olog-1-2-8-and-a-new-olog-page/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2010/12/05/olog-1-2-8-and-a-new-olog-page/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 02:18:18 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/?p=492</guid>
		<description><![CDATA[I just released Olog version 1.2.8. It includes event output of parsed log messages and a simple assert method. I also decided it was time to update the Olog page a bit. Using Olog for Unit Testing The package level [...]]]></description>
			<content:encoded><![CDATA[<p>I just released <a href="http://olog.googlecode.com/files/Olog_1.2.8.zip">Olog version 1.2.8</a>. It includes event output of parsed log messages and a simple assert method. I also decided it was time to<a href="http://www.oyvindnordhagen.com/blog/olog/"> update the Olog page a bit.</a></p>
<h3>Using Olog for Unit Testing</h3>
<p>The package level function assert covers about 70-80% of what Unit Testing is. Here&#8217;s an excerpt from the docs:</p>
<pre lang="actionscript">public function assert(testName:String, expected:*, actual:*, ... args):Boolean</pre>
<p>Performs simple equals assertion and outputs the results to the log window</p>
<p>Parameters</p>
<ul>
<li><strong>testName:String</strong> — String name used to identify the test</li>
<li><strong>expected:*</strong> — The expected value of the actual argument</li>
<li><strong>actual:*</strong> — The actual value. This argument can either be the value itself of a function reference, in which case the function will be called and the returned value will be evaluated against the expected argument</li>
<li><strong>&#8230; args</strong> — Any arguments to use when calling actual if actual is a function reference</li>
</ul>
<p>Returns <strong>Boolean</strong></p>
<p>Here&#8217;s an example of the output it provides:<br />
<a href="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/12/Skjermbilde-2010-12-06-kl.-10.38.58.png" rel="lightbox[492]"><img src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/12/Skjermbilde-2010-12-06-kl.-10.38.58.png" alt="Olog for UnitTesting" title="Olog for UnitTesting" width="515" height="230" class="alignnone size-full wp-image-496" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2010/12/05/olog-1-2-8-and-a-new-olog-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Garmin Forerunner 405cx review/warning</title>
		<link>http://www.oyvindnordhagen.com/blog/2010/10/02/garmin-forerunner-405cx-reviewwarning/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2010/10/02/garmin-forerunner-405cx-reviewwarning/#comments</comments>
		<pubDate>Sat, 02 Oct 2010 21:48:44 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[Shout!]]></category>
		<category><![CDATA[Spread The Word]]></category>
		<category><![CDATA[405]]></category>
		<category><![CDATA[405cx]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[forerunner]]></category>
		<category><![CDATA[garmin]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/?p=441</guid>
		<description><![CDATA[After running for half a year, I decided it was time I treated myself to a GPS based fitness device. A little reasearch later I decided on the Garmin Forerunner 405cx. I mostly compared it to the 305, but decided [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-442" title="Forerunner 405cx" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/10/fr405.jpg" alt="" width="565" height="394" /></p>
<p>After running for half a year, I decided it was time I treated myself to a GPS based fitness device. A little reasearch later I decided on the Garmin Forerunner 405cx. I mostly compared it to the 305, but decided I would use it so much I had a reason to get myself the newest and best. Here&#8217;s how that went.</p>
<h3>I bought it because&#8230;</h3>
<p>&#8230; i liked the look of it. The 305 just seemed a little more dated. For this reason I managed to justify the extra cost by weighing down the desicion with the improved calorie formula, the sleek touch bezel and the wireless sync feature. Some reviewers pointed out that the touch bezel was essentially unusable in the rain or while sweating heavily, and that the battery capacity was slightly disappointing (partly because it doesn&#8217;t have an off button). I thought that these were limitations I could live with while fondling my MasterCard.</p>
<h3>The bezel</h3>
<p>No. I mean seriously. I guess this is a sort of a &#8220;me too&#8221; feature. Any product that want&#8217;s to come across as remotely modern these days has to sport a touch based interface. The silver ring around the display serves as a sort of iPod-esque scroll wheel with additional touch-to-enter and menu access sweet spots. When the watch is new, dry and you&#8217;ve just washed, you can manage a pretty accurate navigation experience using it. But even then you miss your menu item or a tap doesn&#8217;t register quite often (<a href="http://www.youtube.com/watch?v=Cnx9kQQpKv4" target="_blank">even the official promo videos show this problem</a>). Once you start sweating a little, your effort has to be greater if you have a precice goal in mind with your touching. The bezel will easily register a dual tap instead of a single tap, essentially turning the backlight on instead of doing what you want. And if it&#8217;s raining (or if you just get really sweaty), it basically becomes non-responsive or goes haywire. You can always lock it by pressing the two physical buttons, but&#8230; no. Then you&#8217;re stuck with auto toggling info screens or just a single one.</p>
<h3>The screen</h3>
<p>The watch lets you customize the data fields you want to see from a vast array of options ranging from the basic time, distance, HR, pace and averages of the above, to time of day, compass direction and sun up/down. You can have a total of three of these pages in addition to the heart rate page and the page that sums up the most relevant information for the current workout. Great. But since trying to toggle through these pages will have you forget that you were running in the first place, you want to make a screen that displays the three (3 is max per page) things most interesting to you. The problem is that this will make one data item readable, and the other two will make you slow down, wipe the screen (subsequently displaying the next data page because you touched the bezel, then tapping like mad to get the page back) and squint because of their size. I should mention that I&#8217;m 29 years of age and my eye sight is perfect.</p>
<h3>The battery</h3>
<p>While the battery capacity itself is fine, once you begin having some of the problems listed below, you almost forget it even has a battery. Compared the other Forerunners in Garmin&#8217;s lineup, this on does not have an off button. Instead it remains in a daily watch state, consuming very little, but still some battery. In this mode, it will last 2 weeks on a full charge. I have yet to experience that. What I don&#8217;t get is that Garmin must have known through testing that this device will have to be charged pretty frequently. And since that is done by a charging clip (similar to the Forerunner 110), what it the point of using wireless only syncing? With the Forerunner 110, this charging clip doubles as a PC/Mac connector for syncing (with simultanious charging). But the 405 <em><strong>has</strong></em> to be synced through the wireless ANT+ USB stick it comes with. Don&#8217;t get me started..</p>
<h3>The syncing</h3>
<p>You need to have Garmin Ant Agent open and the USB stick plugged in at all times for the wireless syncing to be a real benefit. As a single laptop user, that stick is plugged and unplugged, and the windowed Ant Agent application does not always stay open, I must admit. This means that when I&#8217;m done running, it&#8217;s not a walk in the door, sync complete before I&#8217;m done showering kind of scenario like Garmin will have you believe. I will have to walk downstairs, plug in the ant stick and launch the application. The fact that the sync itself is wireless is of absolutely no benefit to me. Much of the process is physical anyhow. Why not use the same system as the cheap, entry level 110? At the very least as an option? Then I would be able to charge the damn thing at the same time, and I would only need the Garmin Communicatior plug-in to upload my workouts to Garmin Connect. But this comparison is only valid for the times when the sync actually goes as planned. Read on.</p>
<h3>The problems/bugs</h3>
<p>The 405cx is clearly an undertested device released way too early. I feel like a beta tester for a device I dug deep to purchase. It didn&#8217;t take many runs before the watch started behaving very weird. The most frequent problem being that syncing fails and needs up to 10-15 attempts to complete. There are numerous threads on Garmin&#8217;s official forum describing this problem, nevertheless they claim they have never heard of it.</p>
<p>Then there&#8217;s the battery drain status bug. Basically you will take the watch out of sleep mode, check the battery and think &#8220;78%, great, that&#8217;s more than ample for a long run&#8221;. Then you get dressed, step outside, take the watch back out of sleep mode and it will complain about a nearly empty battery. It&#8217;s either that or it will shut down mid run. The sync bug started for me after the watch had shut down with a workout in progress, but none of the other users on the Garmin forum mention that as a possible factor.</p>
<p>Last sunday, after running the Oslo Marathon 10k, the watch took on a new bug. Like it was more exhausted than I was, it shut down and immediately attempted to restart itself. This resulted in a seemingly endless reboot cycle, accompanied by a startup beep every 5 seconds that drove people around me mad. Eventually it managed a full restart and decided to celebrate by splashing the low battery warning across the screen. I should mention that the battery was absolutely topped up before the race, I completed in 47 minutes, and the dead end reboot cycle went on for around 45 minutes after that. If that&#8217;s any indication of the battery life on this thing, you won&#8217;t even be able to use it for a full half marathon unless you finish among the real athletes.</p>
<h3>Conclusion</h3>
<p>I&#8217;m tempted to say shame on you, Garmin. Even though not everyone (though quite a few) have experienced the bugs I have, the design shortcomings of this device are enough to send it straight back to the R&amp;D department. I cannot help but thinking that the Forerunner 405 was a launch with all fingers and toes crossed at Garmin. The functional shortcomings are an imminent experience for all users and I guess Garmin only hoped that the awesomeness of the design and form factor would help people forget that it was basically broken as it left the factory.</p>
<p>I, for one, am returning my Garmin Forerunner 405cx and getting a 305 to replace it (and saving $150 in the process).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2010/10/02/garmin-forerunner-405cx-reviewwarning/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Jordbærpikene—en restaurantanmeldelse i revers</title>
		<link>http://www.oyvindnordhagen.com/blog/2010/03/19/jordbaerpikene/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2010/03/19/jordbaerpikene/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:35:18 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[Bacterial]]></category>
		<category><![CDATA[Culture]]></category>
		<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[Shout!]]></category>
		<category><![CDATA[Spread The Word]]></category>
		<category><![CDATA[anmeldelse]]></category>
		<category><![CDATA[cafe]]></category>
		<category><![CDATA[hvaltorget]]></category>
		<category><![CDATA[hvaltorvet]]></category>
		<category><![CDATA[hygiene]]></category>
		<category><![CDATA[Jordbæpikene]]></category>
		<category><![CDATA[kjede]]></category>
		<category><![CDATA[matforgiftning]]></category>
		<category><![CDATA[mattilsynet]]></category>
		<category><![CDATA[Sandefjord]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/?p=338</guid>
		<description><![CDATA[Anmeldelser av spisesteder på norsk var aldri med i planene for denne bloggen. Det kommer antakelig ikke flere heller, men noen ganger må man gjøre et unntak. For ordens skyld må jeg påpeke at dette kun gjelder Jordbærpikenes avdeling på [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_346" class="wp-caption alignnone" style="width: 580px"><img class="size-full wp-image-346" title="JP_meny" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/03/JP_meny.jpg" alt="" width="570" height="217" /><p class="wp-caption-text">Faksimile fra jordbarpikene.no—et nettsted laget i 2009 med flashintro a-la 1998!</p></div>
<p><em>Anmeldelser av spisesteder på norsk var aldri med i planene for denne bloggen. Det kommer antakelig ikke flere heller, men noen ganger må man gjøre et unntak. For ordens skyld må jeg påpeke at dette kun gjelder Jordbærpikenes avdeling på Hvaltorvet i Sandefjord.</em></p>
<p><a href="http://jordbarpikene.no/" target="_blank">Jordbærpikene</a> er en kjede med spisesteder som etablerer franciser på kjøpesentra. De kan derfor sammenlignes med <a href="http://www.cafeopus.no/" target="_blank">Cafe Opus</a> og <a href="http://www.lecafe.no/" target="_blank">Le Café</a>, men det kan de vanlige anmelderne får gjøre. Jeg er mer opptatt av å se på hva som er unikt med nettopp konseptet Jordbærpikene. Etter 3 besøk siden åpningen av nye Hvaltorvet i Sandefjord sommeren 2010, slår det meg at å vurdere dette spisestedet etter vanlige parametre ikke ville være rettferdig. Baserer man seg på opplevd innsats, kundepleie og kunnskap om næringsmiddeldrift hos personalet, blir det tydelig at dette er et spisested som <em>ønsker</em> å være i bunnklassen. Det finnes ingen annen logisk slutning, så derfor skal jeg vurdere hvordan det presterer på en omvendt skala. Oppsummert blir det da slik:</p>
<p><img class="alignnone size-full wp-image-344" title="JP_terning" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/03/JP_terning.jpg" alt="" width="570" height="200" /></p>
<h3>Første besøk</h3>
<p>Sommeren 2009 åpner nyoppussede og utvidede Hvaltorvet i Sandefjord med ikke mindre fire spisesteder. Min lille familie og jeg stikker innom en lørdag under en handletur. Fruen bestiller hamburger, det gjør også jeg. Til sønnen vår på 2 år blir vi anbefalt en pastavariant med pesto. Vi takker ja og finner oss et bord.</p>
<p>20 minutter passerer og vi begynner virkelig å bli imponerte over både ventetiden og mangelen på tilbakemelding. Men skal det bli toppkarakter må for all del ikke delikatessene ankomme med et beklagende smil helt enda. <em>Skal de klare å stå løpet ut?</em> Ja! Etter en hel halvtime ankommer guttungens pasta i hendene på en servitør som gjør alt for å unngå blikkontakt. Enda ett kvarter senere kommer burgerne, fortsatt uten et forståelsesfullt smil eller noe som helst tilbud om kompensasjon for den lange ventetiden. Dette er rett og slett utklassing! Aldri før har jeg opplevd maken til ignorant kundepleie. Og bedre blir det når det viser seg at pastaen min sønn har fått smaker absolutt ingenting, følgelig spiser han heller mine pommes frites. Den smaker iallefall salt, mens burgeren er helt ålreit.</p>
<p>Derfor: Ingen toppscore på mat i denne omgang. Derimot betaler vi 470 kroner, så det står til en sekser på pris, og på service klarer de målene sine med god margin.</p>
<h3>Andre besøk</h3>
<p>Imponert over innsatsen sist sommer, bestemmer vi oss i januar i år å se om Jordbærpikene kan fascinere oss med sin håpløshet enda en gang. Vi tar et mer kaféaktig besøk denne gangen; kaffe og kake. Min samboer bestiller gulrotkake og kaffe latte. Svart kaffe og eplekake til meg. Men &#8220;Den [Jordbærpikene sin eplekake] serveres med krem&#8221; (dette får jeg repetert ordrett flere ganger under den påfølgende samtalen). Jeg har aldri vært spesielt begeistret for krem.</p>
<p style="padding-left: 30px;"><em>–Jeg skal ha eplekake, men tror du jeg kan få den med is istedet for krem?<br />
–Den serveres med krem.<br />
–Ja, jeg vet det, men jeg spør allikevel om jeg kan få den med iskrem.<br />
–Men vi har ikke iskrem<br />
–Kan du ikke bare bytte ut kremen med en liten porsjon fra soft-is-maskinen bak deg da?<br />
–Ja, men det er ikke inkludert, så da må du betale ekstra for det.</em></p>
<p>Jeg svarer lett leende, som for å vise resten av køen at jeg synes dette var en litt unødvendig diskusjon, at det er helt i orden. Jeg får min eplekake med soft-is, betaler ekstra og finner bordet hvor min samboer har satt seg ned for lengst. Hvis jeg var Jerry Seinfeld ville straks reist meg igjen, spasert tilbake til disken, satt øynene i damen på baksiden og etterlyst kremen. Jeg har nemlig betalt full pris for eplekake med krem, men jeg har også betalt for soft-is og bare fått en av delene. At jeg ikke vil ha kremen er irrelevant i en prinsippiell diskusjon. Jeg har fortsatt betalt for den og damen insisterte jo på å ta ekstra betalt for is. Men køen er lang og jeg er hverken Jerry Seinfeld eller damen bak disken, så jeg slår meg til ro med at det ser ut som det skal bli en bra score denne gangen også.</p>
<p>Matmessig gikk ikke dette besøket så bra. Gulrotkaken var ganske søt, fet og ufrisk, men eplekaken var ganske god, hvertfall med soft-is. Prismessig går dette helt til topps, og spesielt sett i sammenheng med service. Når køen er lang og en kunde ønsker en helt uproblematsik spesialbestilling, ville det være helt uhørt å late som man er serviceinnstillt. Istedet velger personalet her å ta en diskusjon med kunden sin, i påhør av hele resten av køen. Kunden får på denne måten inntrykk av at dersom man betaler over 200 kroner for to kopper kaffe og to kakestykker, skulle det bare mangle at man tar ekstra betalt for en spiseskje soft-is!</p>
<p>Med andre ord: Full pott på både pris og service. Litt trekk for god eplekake.</p>
<h3>Tredje <span style="font-weight: normal;">(og garantert siste)</span> besøk <span style="font-weight: normal;">(hos Jordbærpikene for resten av mitt liv)</span></h3>
<p><img class="alignnone size-full wp-image-342" title="JP_header" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2010/03/JP_header.jpg" alt="" width="570" height="350" /></p>
<p>Jeg er den typen som tror på tilfeldigheter. Derfor går det ikke lenge før jeg er tilbake på Jordbærpikene etter dette siste, helt spesielle besøket. Denne gang alene. Jeg er noen ærend på kjøpesenteret og har ikke spist middag. Jeg er litt forkjølet og tenker at det passer å få i seg litt sunn middag i dag. Man må jo tenke på immunforsvaret. Inn på Jordbærpikene nok en gang. Klokken er 19.15 og senteret stenger om 45 minutter, så kjøkkenet er allerede stengt. Men salat? Joda! Kylling- og pastasalat har de stående klart til meg. Jeg slår til og tar med en eplemost, tilsammen 155 kroner.</p>
<p>Prisen er kanskje ikke helt imponerende denne gangen, men jeg skulle nok hatt med kamera. Fatet jeg får dette servert på kan nemlig best sammenlignes med et sausenebb. Men hvilken rolle spiller vel mengden når maten vokser i munnen på denne måten! Det er noe eget ved å spise kylling som har vært romtemperert i over et halvt døgn, på en seng av gress og hvitløksdressing, laget på sæterrømme, med tørr foccacia til som er fuktet med harskt smør.</p>
<p>Dessverre var det ikke mye service å beskrive denne gangen, ettersom min omgang med personalet begrenset seg til bestilling og betaling. Muligens blir det et lite pluss for ikke å ha advart meg mot matens tilstand og alder. For det er maten som står i fokus etter dette besøket, eller snarere konsekvensene av den.</p>
<p>Nøyaktig 12 timer etter at jeg forlot Jordbærpikene denne dagen kom det første av en serie toalettbesøk som i skrivende stund fortsatt ikke er over. De er så hyppige at cisterna knapt rekkers å fylles mellom slaga og de er så mange at dehydrering må kompenseres for med elektrolyttpulver. Mat: terningkast seks.</p>
<h3>Konklusjon</h3>
<p>For å ta den alvorlige hatten på et øyeblikk: Jeg har selv jobbet i handels- og servicenæringen og håndtert kunder med alle slags ønsker stående i 10 timer i strekk. Det er ikke vanskelig. Tar ting for lang tid, sier man i fra og beklager, og helst også tilbyr man et plaster på såret. Ønsker kunden en endring som er uproblematisk, er det sånn det blir. Må man legge på prisen for noe som åpenbart ikke er inkludert er det underforstått og unødvendig å diskutere i påhør av andre kunder (og må man egentlig plusse på prisen når man erstatter krem med soft-is i en bestilling på over 200 kroner en travel lørdag?). Ingen ønsker å være den som lager kø, og ingen ønsker å oppfattes som vanskelig. Og ikke minst; steng heller butikken enn å gjøre kundene syke. Det resulterer bare i dårlig omtale som dette.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2010/03/19/jordbaerpikene/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Regular Expression matching empty switch statements</title>
		<link>http://www.oyvindnordhagen.com/blog/2010/02/07/regular-expression-matching-empty-switch-statements/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2010/02/07/regular-expression-matching-empty-switch-statements/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 22:21:38 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[empty]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[internal]]></category>
		<category><![CDATA[match]]></category>
		<category><![CDATA[regepx]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[statement]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/2010/02/07/regular-expression-matching-empty-switch-statements/</guid>
		<description><![CDATA[In my continuing effort to track down a particularly nasty case of internal build error/classes must not be nested in Flash Builder. I ran a regex to find empty switch statements. These are notoriously known for causing this error, so [...]]]></description>
			<content:encoded><![CDATA[<p>In my continuing effort to track down a particularly nasty case of internal build error/classes must not be nested in Flash Builder. I ran a regex to find empty switch statements. These are notoriously known for causing this error, so in follow up to my post about regex for finding unterminated lines (another possible culprit), here is a RegExp that matches empty switch statements:</p>
<pre lang="regexp">switch\s*?\(.*\).*\{\s*+\}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2010/02/07/regular-expression-matching-empty-switch-statements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SlowLoader &#8211; Easy bandwidth simulation util for Flash</title>
		<link>http://www.oyvindnordhagen.com/blog/2010/01/06/slowloader-easy-bandwidth-simulation-util-for-flash/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2010/01/06/slowloader-easy-bandwidth-simulation-util-for-flash/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 20:58:32 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[Freebies]]></category>
		<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[bandwidth]]></category>
		<category><![CDATA[connection speed]]></category>
		<category><![CDATA[simulation]]></category>
		<category><![CDATA[SlowLoader]]></category>
		<category><![CDATA[throttle]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/?p=234</guid>
		<description><![CDATA[Today I was working on a project with real strange issues related to the duration of load operations. I decided to throw together a class that would enable me to throttle the download speed of the Loader class when used [...]]]></description>
			<content:encoded><![CDATA[<p>Today I was working on a project with real strange issues related to the duration of load operations. I decided to throw together a class that would enable me to throttle the download speed of the Loader class when used locally. Simply strangle the bandwidth by entering the desired speed in the load method and you&#8217;re good to go.</p>
<p><a href="/public/SlowLoader.zip"><img class="alignleft size-full wp-image-54" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2008/01/zip.gif" alt="" width="32" height="32" /></a><a href="/public/SlowLoader.zip"><br />
Download SlowLoader.as</a></p>
<p>It works very much the same way as the Loader class with the only difference being that you add your event listeners directly to the SlowLoader instance instead of the contentLoaderInfo instance of the Loader instance. Other than that it dispatches the same events as the Loader class does so it should be fairly simple to swap it for a regular Loader when you&#8217;re done. I&#8217;ve also included and example class. Here&#8217;s an excerpt of it:</p>
<pre lang="actionscript3" line="1">var l:SlowLoader = new SlowLoader();
l.addEventListener(ProgressEvent.PROGRESS, _updateProgress);
l.addEventListener(Event.INIT, _showImage);
l.load(new URLRequest("file.jpg"), 512, 0.9);</pre>
<p>NOTE: SlowLoader was developed for my own use, which means that it dispatches AILoggerEvents for printing log messages from it. AILogger is also included in the ZIP file and <a href="http://ailogger.googlecode.com">you can read more about it here</a>. If you do not wish to use it, feel free to strip these lines out of the class.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2010/01/06/slowloader-easy-bandwidth-simulation-util-for-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 dictionary back to back in 4 months</title>
		<link>http://www.oyvindnordhagen.com/blog/2009/11/09/as3-dictionary-back-to-back-in-4-months/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2009/11/09/as3-dictionary-back-to-back-in-4-months/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 03:03:48 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[ActionScript]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/2009/11/09/as3-dictionary-back-to-back-in-4-months/</guid>
		<description><![CDATA[As some of you might know, I&#8217;m in layoff from my job as a flash developer at Allegro Interaktiv. I&#8217;ve been thinking hard and well about what I want to spend this period of four months doing. I will be [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both"><img class="alignnone size-full wp-image-223" title="AS3 Language Reference and Dictionary" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2009/11/asref.jpg" alt="AS3 Language Reference and Dictionary" width="570" height="300" /></p>
<p style="clear: both">As some of you might know, I&#8217;m in layoff from my job as a flash developer at <a href="http://www.allegro.no" target="_blank">Allegro Interaktiv</a>. I&#8217;ve been thinking hard and well about what I want to spend this period of four months doing. I will be freelancing a little if I can (in agreement with my employer of course), spend time with my family, and also catch up on a few forsaken hobbies.</p>
<p style="clear: both">But this sudden abundance of free time obviously creates a pefect climate for getting up to speed on new Flash libraries and dig deeper into the ones I already know. Like the AS3 core classes. That&#8217;s why I&#8217;ve given my self a perhaps rediculous challenge; to read the complete ActionScript Language Reference back to back over the next four months. This is clearly perversely nerd-like and all that, but here&#8217;s why.</p>
<p style="clear: both">
<h2>The case for reading it all</h2>
<p style="clear: both">Actually I&#8217;ve been thinking about it for a few years. You see every time I look up a class or a method in the dictionary, I usually read one or two paragraphs more than I need. Often I learn something new that&#8217;s been sitting just below the surface of what I already know. At times the AS3 language reference is not even that badly written and the examples are usually useful. So instead of googling for tutorials about particle engines, Papervision and what not, I decided that before trying to gain something completely new I&#8217;d be better off getting to know the old annoying aunt intimately. Well not in that sense&#8230; sorry, you know what I mean.</p>
<p style="clear: both">
<h2>You should too!</h2>
<p style="clear: both">I&#8217;m not saying you really should join me in this preposterous endeavour, but I am serious in that many tend to overlook what a great resource the AS3 Language Reference really is. So the essence is really that you can learn a lot from what you already have at a single keyboard command (shift-F1 in Flash that is). Look up some random class name that you&#8217;ve never used an find out what it&#8217;s for. You might be glad you did.</p>
<p style="clear: both">In the mean time, you can follow my progress here at the blog, and if you <a href="http://www.twitter.com/nordhagen" target="_blank">follow me on Twitter</a>.</p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2009/11/09/as3-dictionary-back-to-back-in-4-months/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AILogger 1.2.1 &#8211; Now on Google Code</title>
		<link>http://www.oyvindnordhagen.com/blog/2009/09/21/ailogger-1-2-1-now-on-google-code/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2009/09/21/ailogger-1-2-1-now-on-google-code/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 22:00:38 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/2009/09/21/ailogger-1-2-1-now-on-google-code/</guid>
		<description><![CDATA[After fridays last minute upload of version 1.2.0 of AILogger, some things went fruity and I apologize. Thanks to aYo who brought it to my attention. While I had to make corrections, I decided it was time to set up [...]]]></description>
			<content:encoded><![CDATA[<p style="clear: both"><img src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2009/09/Skjermbilde_2009-09-21_kl-thumb._23.53.1.png" height="387" width="488" style=" text-align: center; display: block; margin: 0 auto 10px;" />After fridays last minute upload of version 1.2.0 of AILogger, some things went fruity and I apologize. Thanks to aYo who brought it to my attention. While I had to make corrections, I decided it was time to set up a <a href="http://code.google.com/p/ailogger/" target="_blank">Google Code project</a> to make it easier to commit and recieve updates down the line. It also provides a better way for others to contribute and report any issues. So if you find any, please let me know.</p>
<p style="clear: both">As before, you can choose to <a href="http://www.oyvindnordhagen.com/public/AILogger.zip" target="_blank">download AILogger from here</a> and the source files can also be downloaded from the Google Project Home as the same ZIP archive in addition to SVN repository access.</p>
<p><br class="final-break" style="clear: both" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2009/09/21/ailogger-1-2-1-now-on-google-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swimming moose and my following 15 minutes</title>
		<link>http://www.oyvindnordhagen.com/blog/2009/04/16/swimming-moose-and-my-following-15-minutes/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2009/04/16/swimming-moose-and-my-following-15-minutes/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 14:30:34 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>
		<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/?p=140</guid>
		<description><![CDATA[My co-worker Jacob called me up right before 2 pm today to tip me off about a moose swimming in Sandefjord bay. I rushed out with camera in hand and just then it passed me. I was at work and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="attachment wp-att-141" src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2009/04/moose.jpg" alt="Moose in sunwind" width="489" height="300" /></p>
<p>My co-worker Jacob called me up right before 2 pm today to tip me off about a moose swimming in Sandefjord bay. I rushed out with camera in hand and just then it passed me. I was at work and our offices are located right next to the water, and so I snapped this shot.</p>
<p>Now, I didn&#8217;t even know these animals could swim, so I was quite surprised. As soon as I got back to my desk I <a href="http://twitter.com/nordhagen" target="_blank">Twittered</a> the incident and <a href="http://twitpic.com/3eawz" target="_blank">uploaded the picture to TwitPic</a>. My Tweet was Re-Tweeted I don&#8217;t know how many times, but the picture was viewed by 140 people within the first 15 minutes. And then the Norwegian TV station TV2 called and wanted to interview me and use the picture. <a href="http://www.tv2nyhetene.no/snop/article2680657.ece" target="_blank">The article can be found here</a>.</p>
<p>So I made the news today. Me and a moose.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2009/04/16/swimming-moose-and-my-following-15-minutes/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Home Cinema back up :-D</title>
		<link>http://www.oyvindnordhagen.com/blog/2008/08/16/home-cinema-back-up-d/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2008/08/16/home-cinema-back-up-d/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 21:20:01 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/2008/08/16/home-cinema-back-up-d/</guid>
		<description><![CDATA[You might remember my excuse for being a slow poster back in March. I am happy to announce that my home cinema is back up and taking visitors. It now looks like this:]]></description>
			<content:encoded><![CDATA[<p>You might remember <a href="http://www.oyvindnordhagen.com/blog/2008/03/17/happy-st-patrics/">my excuse for being a slow poster</a> back in March. I am happy to announce that my home cinema is back up and taking visitors. It now looks like this:<img src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2008/08/_inc1844.jpg" alt="_inc1844.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2008/08/16/home-cinema-back-up-d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Spammers these days</title>
		<link>http://www.oyvindnordhagen.com/blog/2008/08/07/spammers-these-days/</link>
		<comments>http://www.oyvindnordhagen.com/blog/2008/08/07/spammers-these-days/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 06:36:15 +0000</pubDate>
		<dc:creator>Øyvind</dc:creator>
				<category><![CDATA[General thoughts]]></category>

		<guid isPermaLink="false">http://www.oyvindnordhagen.com/blog/2008/08/07/spammers-these-days/</guid>
		<description><![CDATA[So you&#8217;ve got an &#8220;interesting Britney Spears mp3&#8243; for me to check out. Tempting&#8230;.]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.oyvindnordhagen.com/blog/wp-content/uploads/2008/08/spam.jpg" alt="Britney Spears spam" /></p>
<p>So you&#8217;ve got an &#8220;interesting Britney Spears mp3&#8243; for me to check out. Tempting&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.oyvindnordhagen.com/blog/2008/08/07/spammers-these-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

