<?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>Observations from Uppsala &#187; off-topic</title>
	<atom:link href="http://jakob.engbloms.se/archives/category/off-topic/feed" rel="self" type="application/rss+xml" />
	<link>http://jakob.engbloms.se</link>
	<description>Computer Technology: Simulation, Virtualization, Virtual Platforms, Embedded, Multicore and Multiprocessing (by Jakob Engblom)</description>
	<lastBuildDate>Sun, 29 Jan 2012 19:45:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<image>
    <title>Observations from Uppsala</title>
    <url>http://jakob.engbloms.se/favicon.png</url>
    <link>http://jakob.engbloms.se</link>
    <width>32</width>
    <height>32</height>
    <description>Observations from Uppsala - http://jakob.engbloms.se</description>
    </image>		<item>
		<title>Off-Topic: Ticket-to-Ride Pocket is Broken</title>
		<link>http://jakob.engbloms.se/archives/1606?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1606#comments</comments>
		<pubDate>Sun, 29 Jan 2012 19:45:28 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[board games]]></category>
		<category><![CDATA[highscore]]></category>
		<category><![CDATA[ticket to ride]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1606</guid>
		<description><![CDATA[Ticket to Ride is a nice real-world board game that is generally considered one of the best family and gateway games (and a decent game even for experienced gamers). We recently got it for our iPod Touches, and the weakness of the computer players quickly turned it from &#8220;I wonder if I can win this [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.boardgamegeek.com/boardgame/9209/ticket-to-ride"><img class="alignleft size-full wp-image-1607" style="margin: 10px 5px;" title="ttr pocket logo" src="http://jakob.engbloms.se/wp-content/uploads/2012/01/ttr-pocket-logo.png" alt="" width="60" height="60" />Ticket to Ride </a>is a nice real-world board game that is <a href="http://www.boardgamegeek.com/boardgame/9209/ticket-to-ride">generally considered one of the best family and gateway games </a>(and a decent game even for experienced gamers). We recently <a href="http://itunes.apple.com/us/app/ticket-to-ride-pocket/id471857988?mt=8">got it for our iPod Touches</a>, and the weakness of the computer players quickly turned it from &#8220;I wonder if I can win this game&#8221; into &#8220;let&#8217;s shoot for the highest score possible&#8221;.</p>
<p>Chasing high scores is fairly typical for computer games &#8211; playing against human beings you are motivated to win, even if you win by scoring a measly 75 points&#8230; while against the computer it becomes about beating your own old scores. Unfortunately, this also turns repetitive after a while, due to some small design flaws that really should be easy to fix.</p>
<p><span id="more-1606"></span>What I have found is that I believe there is an optimum high-score strategy in the game, due to the very uneven spread of tickets and a very bad computer player.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2012/01/IMG_00961.png"><img class="aligncenter size-full wp-image-1609" title="IMG_0096" src="http://jakob.engbloms.se/wp-content/uploads/2012/01/IMG_00961.png" alt="" width="354" height="112" /></a></p>
<p>My way to play it to get a high score (not necessarily a highscore, though) is to essentially build the exact same network each time, and then stop and pull as many tickets as a I can that fits into this network. When lucky, 15 tickets can fit inside and none miss, and the score will be 250 or more. If not lucky, some tickets will miss, and the score will be lower.</p>
<p>The reason this style of play works is that the computer player is blind to what you do and does not try to stop you from connecting up obvious points. In a real game, if you see someone starting to build a route that looks familiar, you will tend to play a blocking move. In the iPod version, you can have two 20-car segments separated by a single two-segment track&#8230; and the computer just ignores it and keeps plugging away at its own goal. Also, when playing with humans, you cannot just say &#8220;aw, I got some godawful starting tickets, let&#8217;s all start over with something better&#8221;. With just yourself and the computer, that&#8217;s very natural.</p>
<p>The critical network is this:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2012/01/IMG_0097.png"><img title="IMG_0097" src="http://jakob.engbloms.se/wp-content/uploads/2012/01/IMG_0097.png" alt="" width="614" height="371" /></a></p>
<p>Tracks in green are definitely on the critical network, while the yellow parts depend on exactly which tickets show up. Sometimes, Boston is included, sometimes not. The red circles mark cities which are never on any tickets, and which thus are useless.</p>
<p>The connect the corners strategy is good even in the normal real-world Ticket to Ride &#8211; but with observant human opponents, very hard to pull of. Also, it seems to me that the Tickets in place in the iPod version is different from what&#8217;s in the original board game, and they are bit less balanced.</p>
<p>What I Days of Wonder should do is to copy Angry Birds and just release some free updates containing a ton of new tickets. If there were more tickets connecting from mid-land (Helena, Salt Lake City, Las Vegas) to the unused cities on the east coast, if would be much more variable. Also, the computer components could well be made to be a bit more aggressive and blocking.</p>
<p>In the iPod version of <a href="http://itunes.apple.com/us/app/carcassonne/id375295479?mt=8">Carcassonne</a>, the computer styles of play vary much more between different personalities, and some of them are very good at playing offensively and blocking you. A similar development could make Ticket to Ride for iPod a bit more exciting to play. As it is right now, it feels like the game has been conquered and won and is pretty pointless to play. The chance of grabbing a higher score is rapidly diminishing, as the random luck needed to get the just right set of tickets with the computer getting a non-conflicting set and being fairly slow in building feels very small. It will happen if you just play many times enough &#8211; but where is the fun in that?</p>
<p>&nbsp;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1606"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1606" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1606" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1606/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Touch the Screen vs Press a Button</title>
		<link>http://jakob.engbloms.se/archives/1536?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1536#comments</comments>
		<pubDate>Mon, 26 Dec 2011 09:02:48 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[BlackBerry Torch]]></category>
		<category><![CDATA[G900]]></category>
		<category><![CDATA[GUI design]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[iPod Nano]]></category>
		<category><![CDATA[iPod Touch]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[SonyEricsson]]></category>
		<category><![CDATA[touch screen]]></category>
		<category><![CDATA[UIQ]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1536</guid>
		<description><![CDATA[Is the touchscreen the end-all of user interfaces for mobile devices? There were rumors in early 2011 that the iPad2 would lose all physical buttons (which did not come true, obviously).  To me, that sounds like a really good and bad idea. Good, in the sense that a device that is all a big screen [...]]]></description>
			<content:encoded><![CDATA[<p>Is the touchscreen the end-all of user interfaces for mobile devices? There were rumors in <a href="http://news.cnet.com/8301-17938_105-20028516-1/rumor-no-home-button-for-ipad-2-and-next-iphone/">early 2011 that the iPad2 would lose all physical buttons </a>(which did not come true, obviously).  To me, that sounds like a really good and bad idea. Good, in the sense that a device that is all a big screen certainly looks nice. Bad, since it would be much less user-friendly than a device with some real physical buttons to press.</p>
<p>I have been thinking about this subject lately, after using a <a href="http://www.reghardware.com/2010/10/13/review_smartphone_blackberry_torch_9800/">BlackBerry Torch 9800</a> as my work phone for a few months.  I like the device a lot, but there are certainly some rough edges and some places where there is a UI conflict between touching the screen and pressing the buttons. At the same time, I am using both an <a href="http://jakob.engbloms.se/archives/28">iPod Nano 3G</a>, and a couple of iPod Touches. I used to have SonyEricsson Symbian-based P900, P990i, and <a href="http://jakob.engbloms.se/archives/310">G900</a> smart phones which also were combined touch/press devices with a stylus.</p>
<p><span id="more-1536"></span>I think it is clear that using a physical keyboard is preferable to an on-screen keyboard for typing serious amounts of text.  On the iPod, entering a URL or search term in a browser just feels fiddly, compared to the ease of composition with the physical keyboard on the<br />
BlackBerry.  To me, I cannot get over the feeling that an iPod Touch or iPhone is really best as a consumption device, but that a BlackBerry is a superb creation device.  On a BB, I can type quite long emails, while an iOS device feels more appropriate for the occasional short messages.  To me, this is an important aspect, as I tend use the smart phone as a two-way email communications device.</p>
<p>The slide-out keyboard solution on the BB Torch (and many other phones from many different vendors) seems just right for this, giving you a full-screen device for reading tasks, with a full keyboard when needed.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/12/blackberry-torch-9800-keyboard-out.png"><img class="aligncenter size-full wp-image-1537" title="blackberry torch 9800 keyboard out" src="http://jakob.engbloms.se/wp-content/uploads/2011/12/blackberry-torch-9800-keyboard-out.png" alt="" width="300" height="181" /></a><br />
On my old G900, I used T9 with a 0 to 9 keypad, and that worked surprisingly well.  A problem both with the BB and definitely with an on-screen keyboard is the fact that using it single-handedly is very hard.  On a screen, you do not get feedback from your fingers where you are on the keyboard, and the full keyboard of the BB is a bit too small to reliably use with a single hand.  I noted this in my <a href="http://jakob.engbloms.se/archives/310">G900 </a>review three years ago, and it still holds true. The G900 looked like this:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/12/sonyericsson-g900.png"><img class="aligncenter size-full wp-image-1538" title="sonyericsson g900" src="http://jakob.engbloms.se/wp-content/uploads/2011/12/sonyericsson-g900.png" alt="" width="101" height="200" /></a>Since a primary use of our iPods is gaming, I have noted some different UI principles for games.  There seem to be one class of games where touch makes perfect sense, like Angry Birds.  Press and draw to load, swipe to move the display, pinch to zoom &#8211; perfect and logical. Another class of games are obviously ports of mouse-based games, like Plants vs Zombies.  In such games, the touch screen is essentially used as it was back in stylus-time. It is just another way to generate single-point clicks.</p>
<p>Finally, we have the category of games that really would work best with a physical controller, like PacMan. Displaying a four-way control key setup on the screen does not get close to the right feeling.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/12/pacman-game-on-iphone.png"><img class="aligncenter size-full wp-image-1539" title="pacman game on iphone" src="http://jakob.engbloms.se/wp-content/uploads/2011/12/pacman-game-on-iphone.png" alt="" width="215" height="226" /></a>I think the SonyEricsson <a href="http://www.reghardware.com/2011/04/19/review_sony_ericsson_xperia_play/">Xperia Play </a>was a brilliant idea &#8211; imagine an Apple device with that little built-in game controller.  Seems that SonyEricsson has not quite managed to execute on the idea, but in an ecosystem that generates variation like Android, this kind of device should have a place.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/12/sonyericsson-xperia-ray-controller.png"><img class="aligncenter size-full wp-image-1540" title="sonyericsson xperia ray controller" src="http://jakob.engbloms.se/wp-content/uploads/2011/12/sonyericsson-xperia-ray-controller.png" alt="" width="300" height="192" /></a><br />
However, I have a hard time seeing the swiss-army-knife design of a phone having both a slide out keyboard and a slide-out game controller. Would be neat, but mechanically I don&#8217;t think it would work very well.</p>
<p>On to navigation.  The idea of touch gestures (in particular swipes) to navigate around the UI as popularized by Apple in the first iPhone is great in many ways.  My youngest child has used it since she was two, and it just works quite naturally.  However, there are still cases where a plain old navigation key works better. And having both is best.</p>
<p>Holding a device in one hand and scrolling a web page is faster on the navigation key on my BB than using touch on an iPod. The old G900 was even more efficient, just hold the down key &#8211; no physical motion needed at all. The iPod would be so much better if it could just have a scroll wheel on the side or something so you could use it one-handed<br />
for reading without having to put a finger on top of the screen (and quite often accidentally clicking links in the process).</p>
<p>I also like the menu key on the BB (and on my old SonyEricsson phones), as a way to quickly get to the most important functions. This seems hard to emulate on a touch screen in a good way. In their touch-enabled phones, BB has tried it with a press-and-hold action &#8211; if you press down on the screen, a little action palette opens. Which does not quite work for me.</p>
<p>Another great advantage of some well-choosen physical buttons is that they offer immediate access to certain functions.  On a touch-screen device, I find that you have to dig through several steps to get into any function.  Home screens with most commonly accessed functions in all honor, but a direct key to dial a call or activate the camera is faster.  It cannot support all functions, obviously, but it lets you bring up the most common and important functions quickly. This is an aspect where my iPod Nano is much better than an iPod touch. On the iPod Nano, you can have it in a pocket and just hit the device to move to the next song or pause. On an iPod Touch, you have to look at the screen and find the right spot to hit.</p>
<p>On the other hand, the Nano would have been even better with a couple of buttons to increase/decrease volume rather than the scroll wheel. When out running, having to hold the things in both hands to make simple adjustments is really annoying. It also does not work with gloves on, which is a big problem with all touch device as well as touch-wheels &#8211; they require naked fingers, which is annoying in a climate where gloves are on for at least half the year. <a href="http://jakob.engbloms.se/archives/290">As I said before</a>, someone should put a design center in Luleå or Novosibirsk or Alaska, and then see what kinds of devices come out.</p>
<p>A full keyboard like the BB also have the nice property of providing many points of access to shortcuts.  It might seem quite backwards of me, but I like the speed of action you get with the keyboard shortcuts in the BB email application. It has a lot in common with classic computer UIs, actually. It is hard to afford immediate access to 20+ functions on a touch screen without creating a very cluttered interface.  On the other hand, a touch interface done right makes it simple to access system-level things quickly by just touching the status icons on the screen &#8211; you get out of the application faster than if you had to use the keyboard to navigate up to some button.  For some reason, neither the iOS devices nor the BB does this right, while my old SonyEricsson smartphones all let me access detailed status by hitting the battery icon or network icons.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/12/g900-icons1.png"><img class="aligncenter size-full wp-image-1542" title="g900 icons" src="http://jakob.engbloms.se/wp-content/uploads/2011/12/g900-icons1.png" alt="" width="347" height="113" /></a><br />
However, after singing the praise of the keyboard and touch screen in union, I must admit that there is a big downside to a combined touch/press device. UI design is harder when you have to both afford a good keyboard-controlled interface and a touch interface. The BB Torch I have suffers from this quite badly &#8211; having to afford both touch and non-touch interaction, as well as non-touch versions of the device itself does mean that the UI is not as streamlined and elegant as what you can get on a pure touch device. I often find myself jumping between keyboard and touch as I cannot quite complete what I want to do using just one or the other interaction mode, which really should not be necessary. Only having to think about a single type of input does seem to make things simpler for a UI designers, even if it also sometimes precludes creating truly efficient applications.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1536"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1536" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1536" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1536/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DV* 30 Years</title>
		<link>http://jakob.engbloms.se/archives/1520?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1520#comments</comments>
		<pubDate>Sun, 13 Nov 2011 20:32:34 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[history of computing]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[DVL]]></category>
		<category><![CDATA[DVP]]></category>
		<category><![CDATA[Uppsala University]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1520</guid>
		<description><![CDATA[On the very binary date of 11-11-11, my alma mater, the computer science (DV, for datavetenskap) education at Uppsala University celebrated its thirty years&#8217; anniversary. It was a great classic student party in the evening with a nice mix of old alumni and fresh-faced students. Lots of singing and some nice skits on stage. Great [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/11/dv30%C3%A5r-100x96.jpg"><img class="alignleft size-full wp-image-1521" style="margin: 5px 10px;" title="dv30år (100x96)" src="http://jakob.engbloms.se/wp-content/uploads/2011/11/dv30%C3%A5r-100x96.jpg" alt="" width="100" height="96" /></a>On the very binary date of 11-11-11, my alma mater, the computer science (DV, for datavetenskap) education at Uppsala University celebrated its <a href="http://www.datavetenskap.nu/jubileum/">thirty years&#8217; anniversary</a>. It was a great classic student party in the evening with a nice mix of old alumni and fresh-faced students. Lots of singing and some nice skits on stage. Great fun, and my voice has still not recovered. It also got me thinking about it is that we really do as computer scientists.</p>
<p><span id="more-1520"></span>As David Alan Grier would have said, this kind of event tends to serve to build the professional identity of a group of people. Computer science is not a profession per se, but it is clear that the Uppsala computer science students (almost 2000 has started since 1981) has a particular culture that comes back to us very easily when amongst our peers. I think it is based in the art and practice of <strong>programming</strong>.</p>
<p>The talks and discussions during the dinner often went back to the defining experiences of our student days, and these experiences were mostly about night hacks and classic labs. A speaker told us about how in 1983 they tried to program a simple computer built by the department itself, and how it turned out that 3 out 4 machines were broken. There idea that they expected the program to just work the first time it loaded made me look up my <a href="http://blogs.windriver.com/engblom/2011/05/twenty-thirty-and-sixty-years-ago.html">favorite debugging quote</a>. Somebody reminded me (19 years after the deed) about the time I made a Prolog program exhaust all memory on a Sun server, by performing an exhaustive search for a problem with no solution).</p>
<p>I remembered how some students I taught (while still an undergraduate myself, a common practice at DV) spent 24 hours a day for almost a week in a lab room trying to get their operating systems to boot on some MIPS-based lab machines. In particular, the group that was gripped by ambition and tried to turn on the MMU. Each time they reset the machine and tried to boot their OS, they would see a serial terminal spewing out diagnostics text and then stopping cold&#8230; as they failed again to make it work (they passed the course anyway).</p>
<p>This all indicates the fundamental importance of programming to computer science students. That is also what we believed was our core mission when I was a student &#8211; to go out into the world and create great software. Many still do, even if quite a few of us have left day-to-day coding to become project leaders and outright managers. Can&#8217;t say I program all that much myself, apart from some demos and virtual machine scripts, but I still find the topic incredibly interesting and important.</p>
<p>The event also touched on institutional memory and the longevity of data. The very ambitious anniversary committee had produced a brand new version of the classic &#8220;Manualen&#8221;, a song book first produced in 1995. In it, I found a text I wrote in 1995 about what a computer scientist actually does (a bit pompous, as can be expected from a proud student) as well as a photo of myself from a 1996 cover of the DV student magazine &#8220;Blurgel&#8221;. However, in both cases, these had been reproduced from paper copies. There was no digital memory in place of these 15-year-old pieces of data.</p>
<p>I actually still have both paper copies in good shape and the data &#8211; on a multisession CD-R created in 1999 on a Mac. My current computers all being Windows-based cannot extract the data. I know a Mac can still read them, but it is not clear that the data can be used today. It is likely in some old version of <a href="http://en.wikipedia.org/wiki/Pagemaker">Aldus PageMaker </a>and with no file extensions to guide you as to what each file is. The images are greyscale or black-and-white high-resolution TIFF files I believe (from the era before PNG), once again with no file extensions to hint at what is what. It underscores the importance <a href="http://jakob.engbloms.se/archives/180">of actual running programs and systems </a>as a way to access our digital past. The data might all be there and readable, but with no software to interpret it, what can you do? I actually <a href="http://jakob.engbloms.se/archives/19">noted the same</a> four years ago for the somewhat late 25 years anniversary.</p>
<p>Overall, a very memorable evening, and kudos to the organizers for putting it all together.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1520"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1520" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1520" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1520/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Sälen in the Summer (Vacation)</title>
		<link>http://jakob.engbloms.se/archives/1448?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1448#comments</comments>
		<pubDate>Thu, 14 Jul 2011 19:10:40 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[biking]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[Lindvallen]]></category>
		<category><![CDATA[Sälen]]></category>
		<category><![CDATA[Skistar]]></category>
		<category><![CDATA[vacation]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1448</guid>
		<description><![CDATA[This Summer, our travel-away-from-home vacation was spent in Sälen, Sweden. Sälen is normally considered a winter destination, one of the biggest ski resorts in Sweden &#8211; but they are working on making it more of a year-round attraction. To be more precise, we went to Lindvallen, which is one of the seven or so separate [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/07/sälen.png"><img class="alignleft size-full wp-image-1449" title="sälen" src="http://jakob.engbloms.se/wp-content/uploads/2011/07/sälen.png" alt="" width="71" height="42" /></a>This Summer, our travel-away-from-home vacation was spent in <a href="http://en.wikipedia.org/wiki/S%C3%A4len">Sälen</a>, Sweden. <a href="http://www.salen.se/">Sälen </a>is normally considered a winter destination, one of the biggest ski resorts in Sweden &#8211; but they are working on making it more of a <a href="http://www.skistar.com/en/Salen/Summer/">year-round attraction</a>. To be more precise, we went to Lindvallen, which is one of the seven or so separate &#8220;villages&#8221; that form the &#8220;Sälen&#8221; area. It was a nice and relaxed place, with little stress from having too many things to do, but enough to keep the kids happy. Seeing the mountains in the Summer was nice.</p>
<p><span id="more-1448"></span></p>
<p>The big activity that is being pushed by the ski resorts for Summer is biking. Lindvallen as well as most of the other resorts around the area have a &#8220;bike park&#8221;, some cross-country trails, and a set of downhill tracks of varying difficulty. The business idea is clearly to use ski lifts to bring bikers up to the top, and then have them bike downhill. In this way, you can reuse the existing infrastructure for an extra season There were quite a few bikers making use of the opportunity when we visited.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/07/liften-bike.jpg"><img class="aligncenter size-full wp-image-1451" title="liften bike" src="http://jakob.engbloms.se/wp-content/uploads/2011/07/liften-bike.jpg" alt="" width="500" height="459" /></a></p>
<p>Downhill biking is not really my thing though. I prefer exercising on the bike on forest trails or regular roads but not racing down steep inclines. If you ignore the downhill option, there was still a lot of opportunity for biking in the woods and otherwise around the area. Some not-to-well-marked tracks are available. I did not really see anyone use these tracks and trails, it really seems that downhill is where the focus of the guests is.</p>
<p>There is also a small practice park (<a href="http://www.skistar.com/sv/Salen/Sommar/Salen-Bike-Park/Barnens-Bike-Park/">kid&#8217;s bike park</a>) with some simple jumps and obstacles, and my preschool-age kids found this quite a bit of fun on their regular bikes. It is good practice for terrain and downhill biking too, and it was pretty busy at times.</p>
<p>You can also use the lifts to get up to the top in order to take a short hike or just have a coffee or lunch in the &#8220;Snögubben&#8221; restaurant. You can also take the lift down again, and my kids loved riding the lift up and down taking in the view. A bit like a slow-motion amusement park ride, I guess. In the Summer, you can even just keep going without getting off at the top &#8211; you would not be allowed to do that in the Winter.</p>
<p>The biggest attraction for Summertime use in Lindvallen is the <a href="http://www.skistar.com/sv/Salen/Sommar/Experium/">Experium </a>water land. It cannot compare to <a href="http://jakob.engbloms.se/archives/1162">Lalandia </a>in Denmark, but it is big enough to keep the family happy for a few days of visits. The water slides were appreciated by my three-year-old and six-year-old, but could have been a tad steeper and faster. Fun, but not exhilarating like the ones at Lalandia. It did get pretty crowded on a day with bad weather, so it might be smart to go there on a day when the weather is nice (and everyone else is taking the chance for outdoors activities).</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/07/experium.jpg"><img class="aligncenter size-full wp-image-1455" title="experium" src="http://jakob.engbloms.se/wp-content/uploads/2011/07/experium.jpg" alt="" width="500" height="221" /></a></p>
<p>We chose to rent an apartment for a week. Apartments or entire houses seem to be the most common form of accommodation, and the apartment was fully furnished and we could run our own household for the week. Everything is clean, well-kept, and modern. You can tell that Lindvallen is a booming place.</p>
<h3>Off-Season and Backstage</h3>
<p>The place was definitely off-season. While there was a significant number of people around and the car park in from of Experium did get pretty full, it was clear that you have ten times more people around in the Winter. This is also reflected in pricing: it seems that Summer is about one third to one fourth the price of Winter season, depending on precisely which week you compare to. Very reasonable.</p>
<p>Still, a surprising number of restaurants and cafes were open, but the ones close to the ski slopes were all closed. Lindvallen features a normal ICA shop, but it had closed some sections and was not as richly stocked as it would be in wintertime. There is a better selection of groceries in the shops down in the main village of Sälen &#8211; but that is some 5 km away by car, and really not necessary for most needs.</p>
<p>The staff at Lindvallen was very friendly and definitely relaxed thanks to the low customer pressure. It seemed that they let things pass that would not be accepted in Winter. In contrast to last year&#8217;s vacation in Denmark, the occasional broken glass in the apartment we rented was no big deal. It was almost too relaxed at times, feeling a bit disorganized, and that they let some small problems with the houses pass for fixing later.</p>
<p>I got a feeling of being &#8220;backstage&#8221; at a show, seeing how things really work. In the Summer, you can walk around and look at the lifts without snow and crowds being in the way. At the edges of the area, there are parking lots full of ramps (for snowboarders) to be deployed in the slopes and snow groomers resting until the season starts.</p>
<p>Here we see the base station for a small lift, with the machines that are used to check the ski passes of the skiers covered up and the <a href="http://en.wikipedia.org/wiki/T-bar_lift">T-bars </a>removed. It is not very distinct here, but lots of the equipment sat on raised platforms to become level with the &#8220;ground&#8221; once half a meter of snow or so has fallen.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/07/liften.jpg"><img class="aligncenter size-full wp-image-1453" title="liften" src="http://jakob.engbloms.se/wp-content/uploads/2011/07/liften.jpg" alt="" width="500" height="373" /></a></p>
<p>They did not take down the signs used in Winter either. There were advertisements reminding you to check your skis along the lift tracks, and the signs like this one showing where the ski school gathers:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/07/skidskola.jpg"><img class="aligncenter size-full wp-image-1452" title="skidskola" src="http://jakob.engbloms.se/wp-content/uploads/2011/07/skidskola.jpg" alt="" width="500" height="441" /></a></p>
<p>It all just feels a bit off. But off in a nice way.</p>
<h3>Off-Off-Topic: Skistar</h3>
<p>For full disclosure, I should note that I am a shareholder in <a href="http://www.skistar.com/">Skistar</a>, the company that runs most of the places in Sälen as well as several other skiing destinations in Sweden. Skistar is a fun company actually, and they even run their yearly shareholder meeting in one of their resorts with a special rate for share holders who attend. If you buy a lot of stock, you also get a discount on vacations &#8211; but you need a very large family or to be a busy winter sports addict to turn a profit on that discount.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1448"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1448" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1448" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1448/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-topic: Windows tip: Hide Desktop Icons</title>
		<link>http://jakob.engbloms.se/archives/1431?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1431#comments</comments>
		<pubDate>Tue, 07 Jun 2011 12:39:05 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[desktop software]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1431</guid>
		<description><![CDATA[I often have to create screenshots and screen recordings as part of my job, and to make that look good I don&#8217;t want any part of my Windows desktop or task bar to show in the results. Until now, I have done this the hard way by using very few desktop icons and putting them [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2007/11/a113ad1c-dacb-456b-b0bb-ee6a0ddfef3e.png"><img class="alignleft size-full wp-image-48" style="margin: 5px 10px;" title="Vista" src="http://jakob.engbloms.se/wp-content/uploads/2007/11/a113ad1c-dacb-456b-b0bb-ee6a0ddfef3e.png" alt="" width="63" height="63" /></a>I often have to create screenshots and screen recordings as part of my job, and to make that look good I don&#8217;t want any part of my Windows desktop or task bar to show in the results. Until now, I have done this the hard way by using very few desktop icons and putting them around the edges of the screen.</p>
<p>There is a better way.</p>
<p><span id="more-1431"></span>Just right-click on the desktop, select &#8220;View&#8221; and then &#8220;Show desktop icons&#8221;. So simple.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/06/cleanup-for-recording-tip.png"><img class="aligncenter size-full wp-image-1432" title="cleanup for recording tip" src="http://jakob.engbloms.se/wp-content/uploads/2011/06/cleanup-for-recording-tip.png" alt="" width="545" height="518" /></a>Should have found this years ago. Works on Windows Vista and Windows 7 as far as I know.</p>
<p>&nbsp;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1431"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1431" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1431" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1431/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>msys git &#8211; error could not allocate cygwin heap</title>
		<link>http://jakob.engbloms.se/archives/1403?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1403#comments</comments>
		<pubDate>Wed, 04 May 2011 11:12:04 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[desktop software]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[msysgit]]></category>
		<category><![CDATA[tortoisegit]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1403</guid>
		<description><![CDATA[I am using TortoiseGit on Windows for a while now, and it works OK. However, today, it just stopped working. The error I got persistently was: 0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487 AllocationBase 0x0, BaseAddress 0x68540000, RegionSize 0x480000, State 0x10000 c:\msysgit\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/05/tortoise-git-logo.png"><img class="alignleft size-full wp-image-1404" title="tortoise git logo" src="http://jakob.engbloms.se/wp-content/uploads/2011/05/tortoise-git-logo.png" alt="" width="95" height="55" /></a>I am using <a href="http://code.google.com/p/tortoisegit/">TortoiseGit </a>on Windows for a while now, and it works OK. However, today, it just stopped working. The error I got persistently was:</p>
<pre>0 [main] us 0 init_cheap: VirtualAlloc pointer is null,
Win32 error 487 AllocationBase 0x0, BaseAddress 0x68540000,
RegionSize 0x480000, State 0x10000
c:\msysgit\bin\sh.exe:
*** Couldn't reserve space for cygwin's heap, Win32 error 0
</pre>
<p><span id="more-1403"></span>More than mildly annoying.</p>
<p>I tried searching the web, and found a number of discussions on similar issues. It was not easy to find one that worked, but in the end it turns out that playing with the base address of the <tt>msys-1.0.dll</tt> file worked. The error is not really in TortoiseGit per se, but rather in <a href="http://code.google.com/p/msysgit/">msysgit </a> (which tortoisegit relies on to actually do its work).</p>
<p>The magic incantation that I wound up using:</p>
<pre>c:\msysgit\bin&gt;rebase.exe -b 0x50000000 msys-1.0.dll</pre>
<p>Posting it here for the benefit of any other poor soul who is hit by the same. Apparently, you might have to change to use different other addresses.</p>
<p>The details of my setup for reference:</p>
<ul>
<li>msysgit 1.7.4</li>
<li>tortoisegit 1.6.5.0</li>
<li>Windows 7, 64-bit</li>
</ul>
<p>&nbsp;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1403"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1403" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1403" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1403/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Cubase64 &#8211; Impressive Impossible Retro</title>
		<link>http://jakob.engbloms.se/archives/1400?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1400#comments</comments>
		<pubDate>Fri, 22 Apr 2011 20:14:47 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[desktop software]]></category>
		<category><![CDATA[history of computing]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[Commodore 64]]></category>
		<category><![CDATA[Cubase64]]></category>
		<category><![CDATA[Pex Tufvesson]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1400</guid>
		<description><![CDATA[I recently read the &#8220;Cubase64 White Paper&#8221; by Pex Tufvesson. It is a fantastic piece of retro computing, where he makes a Commodore 64 do real-time audio effects on a sampled piece of music. There is a Youtube movie showing the demo in action. Considering how hard we worked in the early 1980s to make [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2011/04/Commodore-64.jpg"><img class="alignleft size-full wp-image-1401" style="margin: 5px 10px;" title="Commodore 64" src="http://jakob.engbloms.se/wp-content/uploads/2011/04/Commodore-64.jpg" alt="" width="79" height="79" /></a>I recently read the &#8220;<a href="http://www.livet.se/mahoney/c64-files/Cubase64_White_Paper_by_Pex_Mahoney_Tufvesson.pdf">Cubase64 White Paper</a>&#8221; by Pex Tufvesson. It is a fantastic piece of retro computing, where he makes a Commodore 64 do real-time audio effects on a sampled piece of music. There is a <a href="http://www.youtube.com/watch?v=MDrqBYkco-Y">Youtube movie showing the demo in action</a>. Considering how hard we worked in the early 1980s to make a computer make any kind of useful noise at all, this is an amazing feat. It is also a feat that I think would have been impossible at the time.</p>
<p><span id="more-1400"></span>Why do I think it would have been impossible?</p>
<p>In the white paper, some techniques are cited which were published in the late 1990s. Thus, they weren&#8217;t even around when the Commodore 64 was new. We have come a long way in our understanding of digital signal and sound processing since 1982. Thanks to the incredible increase in available computing power, many techniques have been invented over the past few decades that were not available to the first generation of home computer hackers.</p>
<p>A more interesting reason is the amount of compute power needed to prepare the samples. Due  to the tiny memory of the Commodore 64 (in 32kB you cannot store more than a few seconds of audio samples at any kind of reasonable resolution and sampling frequency), as well as the way the samples are played, the audio is heavily compressed and preprocessed before being loaded into the Commodore 64.</p>
<p>This process is reported as having taken 25 minutes on a modern 2 GHz PC. How long would that have taken on a Commodore 64 in 1982? The clock frequency is 2000 x higher. If we assume this is plain floating point math, the PC can get about 1 operation through each cycle on average. The C64 would probably require at least 1000 cycles per floating point operation, emulating it using 8-bit integer math. That gives us a factor of 2,000,000 (give or take an order of magnitude). Thus, the computation would have taken  about 95 years (or as little as 10 years, or as much as 1000 years) back in 1982 (I don&#8217;t think this kind of operation is easily parallelized). It would also have required an unheard-of incredibly large memory of several megabytes.</p>
<p>OK, so maybe if you were  a billionaire and could have rented a few IBM mainframes you could have done it. Just to stand before a bemused crowd showing the little box making music. Would have been much easier to just buy an early CD player which played music at much higher quality.</p>
<p>But don&#8217;t get me wrong &#8211; I really like this work. It is impressive to see what you can do in terms of media replay on a small and slow device if you are willing to put incredible effort into the compression of the media. The way that the author finds ways to achieve various effects within the confines of the Commodore 64.</p>
<p>When retro computing is at its best, it shows how human ingenuity can overcome limitations and get things done even when it should not be possible. This kind of engineering spirit has been crucial many times in the past, in particular when saving space missions from seemingly impossible odds. If you only work with systems with power in abundance and few hard limits, you just don&#8217;t develop that kind of creativity.</p>
<p>&nbsp;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1400"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1400" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1400" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1400/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Set Own Number on BlackBerry</title>
		<link>http://jakob.engbloms.se/archives/1348?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1348#comments</comments>
		<pubDate>Wed, 29 Dec 2010 10:00:53 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[mobile phones]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1348</guid>
		<description><![CDATA[Ever since I got my BlackBerry smartphone, I was annoyed that the display said &#8220;My Number: Unknown number&#8221; in a number of places. I assumed that this would be automatic, just like everything else information-related on this device. However, I finally worked out how to &#8220;fix&#8221; the problem by manually setting my phone number. Here [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/12/bb.jpg"><img class="alignleft size-full wp-image-1349" style="margin: 5px;" title="bb" src="http://jakob.engbloms.se/wp-content/uploads/2010/12/bb.jpg" alt="" width="50" height="50" /></a>Ever since I got my BlackBerry smartphone, I was annoyed that the display said &#8220;My Number: Unknown number&#8221; in a number of places. I assumed that this would be automatic, just like everything else information-related on this device. However, I finally worked out how to &#8220;fix&#8221; the problem by manually setting my phone number.</p>
<p><span id="more-1348"></span>Here is how (and for some reason I could not find this in the manual):</p>
<ul>
<li>Go to &#8220;Options&#8221; on the home screen/main menu</li>
<li>Then to &#8220;Advanced Options&#8221;</li>
<li>Then to &#8220;SIM Card&#8221;:</li>
</ul>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/12/bb1.jpg"><img class="aligncenter size-full wp-image-1350" title="bb1" src="http://jakob.engbloms.se/wp-content/uploads/2010/12/bb1.jpg" alt="" width="480" height="360" /></a></p>
<ul>
<li>In the dialog that comes up, set the phone number and name.</li>
</ul>
<p>I still wonder why this was not automatic.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1348"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1348" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1348" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1348/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Holes: Microsoft Office vs Internet Explorer</title>
		<link>http://jakob.engbloms.se/archives/1297?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1297#comments</comments>
		<pubDate>Fri, 22 Oct 2010 10:05:17 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[desktop software]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[office 2007]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1297</guid>
		<description><![CDATA[There seems to be no shortage of bugs that &#8220;should have been obvious&#8221; and subject to the &#8220;how can you not check that your own products work together&#8221; phenomenon. Just the other day, I stumbled on another one. This time, it was the Microsoft set of applications and operating systems that do not quite work [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png"><img class="alignleft size-full wp-image-1148" style="margin: 5px 10px;" title="happy key" src="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png" alt="" width="95" height="97" /></a>There seems to be no shortage of bugs that &#8220;should have been obvious&#8221; and subject to the &#8220;how can you not check that your own products work together&#8221; phenomenon. Just the other day, I stumbled on another one. This time, it was the Microsoft set of applications and operating systems that do not quite work together the way you would expect them to.</p>
<p><span id="more-1297"></span></p>
<p>Here is the scenario.</p>
<p>We have a wiki system on our Intranet at Wind River, where I attached a Powerpoint 2007 presentation to a file in the wiki. This file has the extension <strong>.pptx</strong>, as they tend to do. I do this in Firefox, and I can download and save and view the files with no problems:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/10/pptxinfirefox.png"><img class="aligncenter size-full wp-image-1299" title="Open pptx attachment in Firefox" src="http://jakob.engbloms.se/wp-content/uploads/2010/10/pptxinfirefox.png" alt="" width="455" height="326" /></a>A colleague of mine tried to do download the presentation, but failed. The problem for her was that she was using Microsoft&#8217;s Internet Explorer, rather than Firefox. IE did not recognize .pptx, and instead did some kind of magic lookup and decided that the file is a .zip file:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/10/pptx-in-ie.png"><img class="aligncenter size-full wp-image-1300" title="pptx in ie" src="http://jakob.engbloms.se/wp-content/uploads/2010/10/pptx-in-ie.png" alt="" width="430" height="306" /></a>So here we have a case where Firefox is able to recognize a file extension, but not Microsoft&#8217;s own web browser. The reason that IE and Firefox are using the file extension is that our wiki did not have a MIME filetype set for the .pptx files, leaving each client to figure it out on their own.</p>
<p>To compound the problem, the simple fix to change the file extension of the downloaded file from .zip to .pptx is not available per default on modern Windows systems. The default policy is to  hide extensions for known file types, so they are unavailable to be edited. The fix is to reveal all file extensions, which at least for me is the first thing I do when I get a new system setup. As  a programmer, I need to know exactly what things are, and quite often change their extensions.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/10/hide-extensions.png"><img class="aligncenter size-full wp-image-1301" title="hide extensions" src="http://jakob.engbloms.se/wp-content/uploads/2010/10/hide-extensions.png" alt="" width="396" height="481" /></a></p>
<p>I guess that Microsoft only tested things in a completely homogeneous system. I assume that if you use Microsoft ISS as your webserver (in a recent version), it will give you the right MIME type automatically. Testing with an Apache server or an old server version might not have been in the plans for Microsoft IE8. Once again, we see that testing requires some imagination to do well.</p>
<p>I would like to note that this problem is not new, and there is a writeup at <a href="http://www.pptfaq.com/FAQ00911.htm ">http://www.pptfaq.com/FAQ00911.htm </a>explaining the issue and some related issues as well.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1297"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1297" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1297" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1297/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Product Holes: Greatest Hits break iPod Cover Flow</title>
		<link>http://jakob.engbloms.se/archives/1190?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1190#comments</comments>
		<pubDate>Sun, 18 Jul 2010 19:20:55 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[Billy Idol]]></category>
		<category><![CDATA[Bruce Springsteen]]></category>
		<category><![CDATA[coverflow]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Robbie Williams]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1190</guid>
		<description><![CDATA[Following on my previous posts about broken phone browsers, phones, and cars, here is another case of &#8220;why didn&#8217;t they catch this in testing?&#8221; We recently got ourselves an iPod Touch, to entertain our oldest child on long trips. It is a brilliant device in many ways, I can understand why people love their iPhones [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png"><img class="size-full wp-image-1148 alignleft" style="margin: 5px 10px;" title="happy key" src="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png" alt="" width="95" height="97" /></a>Following on my previous posts about broken <a href="http://jakob.engbloms.se/archives/1147">phone browsers</a>, <a href="http://jakob.engbloms.se/archives/1185">phones, and cars</a>, here is another case of &#8220;why didn&#8217;t they catch this in testing?&#8221;</p>
<p>We recently got ourselves an iPod Touch, to entertain our oldest child on long trips. It is a brilliant device in many ways, I can understand why people love their iPhones (even though I am very happy with the very different style of the Blackberry phone that I was given by my employer). However, I have found one weird behavior in the music player that leaves me wondering how it got through into the shipping product.</p>
<p><span id="more-1190"></span>The issue appears in the Cover Flow presentation of music, when I have several songs from different albums &#8211; but these albums have the same name. That is most obvious in the case of albums called &#8220;Greatest Hits&#8221;. I have quite a few of those by various artists, and I have synched only a few select songs from a few of those onto the iPod. In this precise case, there are two songs by  Billy Idol, one by Robbie Williams, and two by Bruce Springsteen (revealing my boring music taste I guess&#8230;).</p>
<p>We start coverflow and find an album &#8220;Billy Idol&#8221; and &#8220;Greatest Hits&#8221;:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-1.png"><img class="aligncenter size-full wp-image-1192" title="photo 1" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-1.png" alt="" width="480" height="320" /></a></p>
<p>So far so good. Now touch it, and turn it around to see the songs in the album:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-21.png"><img class="aligncenter size-full wp-image-1193" title="photo 2" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-21.png" alt="" width="480" height="320" /></a></p>
<p>This is starting to look interesting. The two first songs make sense&#8230; but the three later ones are not by Billy Idol.  When I tapped the third song to play it, the display turned into play mode:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-3.png"><img class="aligncenter size-full wp-image-1194" title="photo 3" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-3.png" alt="" width="480" height="320" /></a></p>
<p>When I then turned the iPod back to landscape mode to see coverflow, things have changed in a strange way. We are still at the same position in the list of albums, but the artist and cover picture have changed to now depict Robbie Williams. Funny. This means that this album is out of sort order (as the sorting is clearly by artist name in this view).</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-4.png"><img class="aligncenter size-full wp-image-1195" title="photo 4" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-4.png" alt="" width="480" height="320" /></a></p>
<p>Tapping that album to view the songs on it, we have a very confused display. The album artist is Robbie Williams. The songs are the same as in the first picture above. The small icon of the album cover is Billy Idol, though. Interesting.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-5.png"><img class="aligncenter size-full wp-image-1196" title="photo 5" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/photo-5.png" alt="" width="480" height="320" /></a></p>
<p>To me, this looks like someone at Apple thinks that album names can be used as unique identifiers for certain tasks, such as displaying album covers in Cover Flow. How that fell through testing amazes me, but maybe it only happens if you synch partial albums? It once again shows how hard it is to imagine and test all the odd cases that might happen out in the real world once a product (hardware or software or a combination thereof) is given to real users.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1190"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1190" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1190" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1190/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Product Holes: Tesla Roadster &amp; iPhone 4</title>
		<link>http://jakob.engbloms.se/archives/1185?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1185#comments</comments>
		<pubDate>Sat, 17 Jul 2010 11:57:58 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[transportation]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[Tesla]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1185</guid>
		<description><![CDATA[Continuing on the thread from my previous post about the testing of products that fail to find problems that become obvious to (some) users after a very short time, I just read an article (in Swedish) about how the famed Tesla roadster cars behaved when they were confronted with Scandinavian winters. Basically, they stopped working [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png"><img class="size-full wp-image-1148 alignleft" style="margin: 5px 10px;" title="happy key" src="http://jakob.engbloms.se/wp-content/uploads/2010/06/happy-key.png" alt="" width="95" height="97" /></a>Continuing on the thread from my previous post about the testing of products that fail to find problems that become obvious to (some) users after a very short time, I just read an <a href="http://www.nyteknik.se/nyheter/fordon_motor/bilar/article2441665.ece">article </a>(in Swedish) about how the famed Tesla roadster cars behaved when they were confronted with Scandinavian winters.</p>
<p><span id="more-1185"></span>Basically, they stopped working due to a problem with cooling (!). The roads around here tend to be salted in the Winter. The temperatures also often hover around freezing, with the result that you have roads covered in snow-water slush. This slush clogged up cooling fans for the motors and electronics which are located on the bottom of the cars, around the rear axle.</p>
<p>Putting fans on the bottom of a car where things from the road are quite likely to enter would seem totally silly in hindsight. The root cause is somewhat jokingly referred to as the cars being  designed in sunny California. There is probably some truth to that, even  though all big automakers make sure to cold-weather test their cars in  places like <a href="http://www.arvidsjaur.se/sv/Naringsliv/Test-och-ovningsverksamhet/">Arvidsjaur</a>.  However, that is probably <em>too </em>cold to get much of the slush that caused the issue.</p>
<p>Another issue that has been much more publicized is the <a href="http://arstechnica.com/apple/news/2010/06/putting-hard-numbers-to-the-iphone-4-antenna-issue.ars">Apple iPhone 4 reception problems</a> when holding the phone in certain ways. Also obvious when discovered, but not found in pre-launch testing. Some people speculate that this is due to too much secrecy at Apple <a href="http://arstechnica.com/apple/news/2010/06/new-iphone-4-antenna-causing-potential-reception-issues.ars">preventing a shake-out test </a>with many people using the phones every day in the way they would post-launch.</p>
<p>Once again we see that good testing and destructive creativity is needed during the development of products to make them truly great and avoid embarrassing &#8220;obvious&#8221; mistakes. Tesla and Apple have great product designers and great products &#8211; but you seem to also need great testers to really build solid products.</p>
<p>Sounds like this is turning into a testers lament &#8211; and I must confess to never having worked as a professional tester, just as an accidental tester with a knack for breaking things.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1185"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1185" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1185" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1185/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Voxel Graphics at Legoland</title>
		<link>http://jakob.engbloms.se/archives/1169?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1169#comments</comments>
		<pubDate>Wed, 07 Jul 2010 19:47:47 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[off-topic]]></category>
		<category><![CDATA[Airbus]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[Denmark]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[lego]]></category>
		<category><![CDATA[Legoland]]></category>
		<category><![CDATA[Volvo]]></category>
		<category><![CDATA[voxel]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1169</guid>
		<description><![CDATA[Legoland is full of cool and interesting Lego models, built from millions and millions of Lego bricks. The creations don&#8217;t have too much in common with the standard Lego kits sold in stores. Rather, they are advanced uses of Lego bricks that look like something from the real world &#8212; especially at a distance. Up [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/icon.jpg"><img class="size-full wp-image-1182 alignleft" style="margin: 10px 5px;" title="icon" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/icon.jpg" alt="" width="83" height="80" /></a>Legoland is full of cool and interesting Lego models, built from millions and millions of Lego bricks. The creations don&#8217;t have too much in common with the standard Lego kits sold in stores. Rather, they are advanced uses of Lego bricks that look like something from the real world &#8212; especially at a distance. Up close, they are very blocky and not as smooth and polished as regular Lego models.</p>
<p>Essentially, they are voxel graphic representations that must be very hard to plan and execute.  The standard single-stud 1&#215;1 Lego brick is their smallest unit, or maybe its 1/3 height flat version. Here are some examples that I photographed in Legoland during my visit this Summer.</p>
<p><span id="more-1169"></span>Airbus A380, close to the entrance:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P11305881.jpg"><img class="aligncenter size-full wp-image-1171" title="P1130588" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P11305881.jpg" alt="" width="678" height="316" /></a></p>
<p>If we look up close at the nose, we see the stepping of voxels very clearly:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130590.jpg"><img class="aligncenter size-full wp-image-1172" title="P1130590" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130590.jpg" alt="" width="509" height="428" /></a></p>
<p>The wing roots show how the wings are constructed:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P11305891.jpg"><img class="aligncenter size-full wp-image-1174" title="P1130589" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P11305891.jpg" alt="" width="698" height="402" /></a></p>
<p>I also really liked this Volvo XC90 that I found in one of the town displays. It uses a few more types of elements compared to the big Airbus. I am not so sure about the way they do the windows, but maybe the murkiness is just due to its having been outdoors for a few years. It is interesting though that you immediately recognize this as a Volvo, which is a great testament to the Lego designers.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130598.jpg"><img class="aligncenter size-full wp-image-1175" title="P1130598" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130598.jpg" alt="" width="430" height="302" /></a></p>
<p>Another car is the Citroen found on the canalside in Amsterdam:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130599.jpg"><img class="aligncenter size-full wp-image-1179" title="P1130599" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130599.jpg" alt="" width="700" height="429" /></a></p>
<p>A typical example of the large-scale animals and people present all over Legoland:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130470.jpg"><img class="aligncenter size-full wp-image-1180" title="P1130470" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130470.jpg" alt="" width="600" height="512" /></a></p>
<p>Finally, a Danish flag in a very traditional Lego flat style:</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130534.jpg"><img class="aligncenter size-full wp-image-1176" title="P1130534" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/P1130534.jpg" alt="" width="475" height="341" /></a></p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1169"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1169" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1169" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1169/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Lalandia Billund (Vacation)</title>
		<link>http://jakob.engbloms.se/archives/1162?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1162#comments</comments>
		<pubDate>Tue, 06 Jul 2010 19:40:31 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[off-topic]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[uncategorized]]></category>
		<category><![CDATA[Billund]]></category>
		<category><![CDATA[Denmark]]></category>
		<category><![CDATA[lalandia]]></category>
		<category><![CDATA[vacation]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1162</guid>
		<description><![CDATA[Another Summer vacation has come around, and as usual that causes a blog post or two on Summer tips and comments on places where I have been. This year, we went down to Denmark to visit the city of Billund, home to Legoland and Lalandia. Lalandia is an interesting mix of indoors activity center and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/lalandialogo.png"><img class="alignleft size-full wp-image-1163" style="margin-left: 5px; margin-right: 5px;" title="lalandialogo" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/lalandialogo.png" alt="" width="136" height="64" /></a>Another Summer vacation has come around, and as usual that causes a blog post or two on Summer tips and comments on places where I have been. This year, we went down to Denmark to visit the city of Billund, home to Legoland and Lalandia. <a href="http://www.lalandia.dk/uk/Pages/forside.aspx">Lalandia </a>is an interesting mix of indoors activity center and camping village. We rented a house there for our vacation, and are overall very pleased with the place.</p>
<p><span id="more-1162"></span>The houses at Lalandia are all very new, the block where we stayed (the one furthest away from the central building) cannot be more than two years old. They have not finished the roads yet, nor are the lawns completely grown up.</p>
<p>Everything feels fresh and new, and you cannot complain about the standard of the houses.You have a fully equipped kitchen, as well as a dishwasher and a washing machine &#8211; families with children is clearly the target audience. You do need to bring some basic household supplies with you from home, there are no spices, washing powder, or dishwasher tables available in the houses. You have to pay for electricity and water in addition to the basic rent, which feels unnecessarily stingy as the basic rent is pretty high and the cost for utilities ends up being about one or two percent of the cost. I guess it is a way to steer people towards not wasting resources, though.</p>
<p>Lalandia is intended mainly for visitors who come by car. Each house has two parking spaces in front of it, and the idea is clearly that several families can share a house. The smallest houses are sufficient for four adults, we rented a six-person house (which worked well with five adults and two children), and there are also eight-person houses available in a few different styles. Since the place is next door to Billund Airport, you could also fly in, distances are short enough that you don&#8217;t really need a car during your stay anyway (you can literally walk from the airport terminal to Lalandia and Legoland). The airport does cause the occasional burst of noise as aircraft take off, but is was not really bothersome while we where there.</p>
<p>Since you are likely to cook most of your food yourself, you also need to go buy it somewhere. There is a somewhat pricey &#8220;supermarket&#8221; in the main building, which is almost impossible to avoid thanks to its convenient location and good opening hours. Shopping in downtown Billund is about ten minutes walk away, but this being a small town, shop hours are pretty poor, 9-18 or 9-19, shorter on Saturdays and closed (!) on Sundays. This was  a surprise for someone used to Swedish shop hours which tend to be 10-22 all days all weeks. Try to arrive on a weekday, or bring lots of supplies for the first day.</p>
<p>It also seems that Denmark is not quite as credit-card-friendly as other countries. If you use a foreign card, they charge you, the customer, the 2.5 to 3% charge that the credit card company charges the store. This is something I have only seen in very small shops living on tight margins in Sweden, and in the Netherlands. In everyday life, this never happens in Sweden or the US, or in most other countries. The fact that Denmark is outside the Eurozone makes some of these charges possible, since the tougher EU rules against card charges currently only applies to transactions in Euros. To be fair, Lalandia actually has lower credit card charges than other places in Billund.</p>
<p>I read a number of online reviews of Lalandia, and they tended to complain that Denmark is expensive. I can agree, it feels about 20-25% more expensive than Sweden, but it is not astronomical or any worse than downtown München or Paris or London.</p>
<p>Lalandia itself is really not about the houses or the food or credit card charges, though. It is a waterpark, and the hangar-like main building contains the Aquadome, biggest waterpark I have ever seen. It also holds a fairly camp indoor fake Mediterranean town square (with a roof painted like a blue sky), an indoors playground, a gym, and several restaurants (which we never tried). It reminds me of the plastic fake milieus in Disneyland Florida.</p>
<p>The Aquadome is just fantastic! It is claimed to be the biggest water park in Scandinavia, and I can certainly believe that. It is all indoors, except a small section on the outside that you can swim out to from the inside. It has the best water slides I have ever tried, all of which require you to use some form of craft to go down. They also all leave the building and come back in, making for a very dramatic ride. See the picture below for how the water slides protrude from the building. The biggest tube is a water slide where you ride four people at once, on a four-person rubber raft!</p>
<p style="text-align: left;"><a href="http://jakob.engbloms.se/wp-content/uploads/2010/07/lalandia.jpg"><img class="aligncenter size-full wp-image-1164" style="margin-top: 10px; margin-bottom: 10px;" title="lalandia" src="http://jakob.engbloms.se/wp-content/uploads/2010/07/lalandia.jpg" alt="" width="536" height="362" /></a>There were pools with activities suitable for children as small as one year, and all the way up to those who rather 40 than 4 years old.  Very impressive. You need several visits to explore all the options, and fortunately unlimited access is part of the package with the holiday homes.</p>
<p style="text-align: left;">It is annoying that they do not allow you to bring your own food inside.  Since we have some allergies in the family, it is not that easy to find  food that is safe, and we would much prefer to bring our own. Overall,  you do get the feeling that they are trying a bit too hard to make you  part with your money; it is a bit too aggressive to feel entirely right.</p>
<p style="text-align: left;">Legoland Denmark is right across the street from Lalandia&#8217;s main building, and I will write a separate blog post about that.</p>
<p style="text-align: left;">A final note is that the ownership structure of Lalandia is interesting. Each house is actually privately owned, and the Lalandia company is just a broker organizing the renting-out of the houses. The are still selling houses, and claim that the yearly cost with mortgages is no higher than the cost of renting for a week. It does look like quite a few Norwegians have taken up on the offer, judging from the large number of expensive cars from Norway we saw parked in front of something like half the houses.</p>
<p style="text-align: left;">
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1162"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1162" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1162" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1162/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eyjafjallajökull is Showing us Something</title>
		<link>http://jakob.engbloms.se/archives/1116?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1116#comments</comments>
		<pubDate>Sun, 18 Apr 2010 19:06:49 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[business issues]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[transportation]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[ashcloud]]></category>
		<category><![CDATA[Eyjafjallajökull]]></category>
		<category><![CDATA[Iceland]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1116</guid>
		<description><![CDATA[Wow. The eruption of Eyjafjallajökull in Iceland and the resulting ashcloud has had an effect that I would never ever have expected. A near-total closing down of the European airspace is such a drastic thing to happen to nobody seems to have expected. It has certainly not been included in the list of worst-case scenarios [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2010/04/cloud.png"><img class="alignleft size-full wp-image-1118" style="margin: 5px 10px;" title="cloud" src="http://jakob.engbloms.se/wp-content/uploads/2010/04/cloud.png" alt="" width="99" height="88" /></a>Wow. The eruption of Eyjafjallajökull in Iceland and the resulting ashcloud has had an effect that I would never ever have expected. A near-total closing down of the European airspace is such a drastic thing to happen to nobody seems to have expected. It has certainly not been included in the list of worst-case scenarios to plan for in company and government contingency plans. Where does this leave us? In a very interesting situation indeed. Worst-case, we will have to do without air travel for months.</p>
<p><span id="more-1116"></span>This volcanic eruption certainly is providing a test for how the world would work if air travel became much less affordavble. I really do think it is absurd that we expect to be able to physically move anything and anyone to anywhere on globe in short time and at low cost. This party cannot go on forever, as oil starts to run out and the airline industry starts to have to pay for their carbon emissions. The energy usage needed to move people like that is just a bit too high to be sustainable, even if we make planes run on biofuels. I sometimes feel like I am living in a golden age that will soon end, and that my grandchildren will not have the same easy reach across the world. Maybe we should take the soonest chance available to go on vacation in Asia&#8230; it might not be feasible in a few decades.</p>
<p>Anyhow, suddenly, we are thrown into a world of no flights by a natural disaster. And sure enough, things get chaotic. In particular for those stuck far away from home with few easy ways to get back. Buses and trains become very attractive, all of a sudden. But their limitations also become clear, in that getting from southern Europe back up to Scandinavia now takes 40 hours instead of 4&#8230;</p>
<p>The impact on business is really interesting. The normal mode of operation of having people flying around to do sales and have important meetings is suddenly made impossible. Instead, we have to turn to the phone and videoconferencing. Incredibly good for the environment, and hopefully something of that will stick. It also shows how dependent we are on fragile supply chains, that our modern economy is often efficient at the cost of robustness.</p>
<p>This is a rich subject for reflection &#8212; how would you live your life if airtravel did not exist? How would business be run? One clear conclusion is that it would make sense to have lots of small offices to keep sales and support staff close to customers, and that local organizations would have to be more independent of the center as the center could not come visiting as often.</p>
<p>If you combine this experience with the past Winter&#8217;s train chaos,  you cannot but reach the conclusion that the way to plan your life is to  keep it physically very local. If you can get everywhere you need to in  everyday life on foot, you have a very robust personal solution.  Obviously, in a modern economy, you are still dependent on goods  deliveries to work over long distances &#8212; but those are less timing  sensitive  than getting to and from work and pick-up at daycare (the  main concern for modern parents).</p>
<p>Guess this years vacation will be planned based on trains and cars,  not on flying <img src='http://jakob.engbloms.se/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1116"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1116" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1116" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1116/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eclipse: Changing the Java Heap Size</title>
		<link>http://jakob.engbloms.se/archives/1062?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1062#comments</comments>
		<pubDate>Wed, 13 Jan 2010 16:46:53 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[desktop software]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1062</guid>
		<description><![CDATA[I just won a battle against Eclipse, managing to finally rid myself of a string of strange out-of-heap warnings. It is a long story, involving lots of web searching and fiddling with the eclipse.ini file options for the JVM. It just never seemed to work as I wanted it to, despite changing the -Xmx VM [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1063" title="eclipseicon" src="http://jakob.engbloms.se/wp-content/uploads/2010/01/eclipseicon.png" alt="eclipseicon" width="73" height="71" />I just won a battle against Eclipse, managing to finally rid myself of a string of strange out-of-heap warnings. It is a long story, involving lots of web searching and fiddling with the eclipse.ini file options for the JVM. It just never seemed to work as I wanted it to, despite changing the -Xmx VM argument to 256, then 512, and finally 1024m.</p>
<p><span id="more-1062"></span>Turned out that the problem was not at all related to the names of the parameters to the VM. Xmx is the right way to grow the heap.This set of parameters <em>does </em>work when put into an eclipse.ini file (for Eclipse 3.5):</p>
<pre>-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx1024m</pre>
<p>The problem was that Eclipse actually never read its eclipse.ini file, because I had changed the name of the main Eclipse binary. I have several Eclipse installations with different versions active at the same time, and to bring some sanity to shortcuts and Windows start menu items, I started renaming the executables to include the version name. Thus, I had &#8220;eclipse-3.5.1.exe&#8221; rather than &#8220;eclipse.exe&#8221; in the problematic case.</p>
<p>It seems that eclipse when starting reads a file like &#8220;my-file-name&#8221;.ini, and thus all changes to the file &#8220;eclipse.ini&#8221; has no effect for &#8220;eclipse-3.5.1.exe&#8221;.</p>
<p>Why do I always find these bugs?</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1062"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1062" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1062" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1062/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Old and New Lego</title>
		<link>http://jakob.engbloms.se/archives/1048?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1048#comments</comments>
		<pubDate>Fri, 08 Jan 2010 18:09:08 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[gadgets]]></category>
		<category><![CDATA[general history]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[off-topic]]></category>
		<category><![CDATA[lego]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1048</guid>
		<description><![CDATA[During the Christmas holidays, I got the chance to compare my oldest child&#8217;s brand new Lego set with some from the mid-1980s. It is quite striking how much larger the things in the sets have become, and how much more affordable (in relative terms) Lego has become since then. In the picture below, we have [...]]]></description>
			<content:encoded><![CDATA[<p>During the Christmas holidays, I got the chance to compare my oldest child&#8217;s brand new Lego set with some from the mid-1980s. It is quite striking how much larger the things in the sets have become, and how much more affordable (in relative terms) Lego has become since then.</p>
<p><span id="more-1048"></span>In the picture below, we have the <a href="http://www.brickset.com/detail/?Set=6073-1">&#8220;Knight&#8217;s Castle&#8221; kit from 1984 (set #6073)</a>. I remember this as being a major kit at the time, one of the dream things to buy, and one of the biggest ones around. Compare it to the new <a href="http://www.brickset.com/detail/?Set=7743-1">Police Command Center (set #7743)</a> from 2008. The small police station accompanying the large trailer is as high as the old castle, and the trailer as long as the castle is wide. It has about 25% more pieces that the old castle.</p>
<p><img class="aligncenter size-full wp-image-1050" title="20091225_Gammalt och nytt lego_01_1" src="http://jakob.engbloms.se/wp-content/uploads/2010/01/20091225_Gammalt-och-nytt-lego_01_1.jpg" alt="20091225_Gammalt och nytt lego_01_1" width="600" height="413" /></p>
<p>Also, note the old small vehicles in the front. Four Lego notches wide, unlike the six-wide police trailer. I remember the <a href="http://www.brickset.com/detail/?Set=6653-1">highway truck </a>as being one of the magical models of my childhood.</p>
<p>To me, the most interesting aspect of comparing Lego sets is that it is a very good illustration of the economic growth that we have seen over the past 30 years. In relative terms, Lego sets have become far more affordable. Average income has certainly increased faster than the price of Lego, and my kids have quite a few more pieces to play with than I did at the same age. The nice thing with comparing Lego buying power with my childhood is that it is a product that is mostly &#8220;the same&#8221;, unlike comparisons involving electronics&#8230;</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1048"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1048" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1048" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1048/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google is some kind of Glasses</title>
		<link>http://jakob.engbloms.se/archives/1045?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1045#comments</comments>
		<pubDate>Wed, 30 Dec 2009 20:21:14 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[funny]]></category>
		<category><![CDATA[goggles]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1045</guid>
		<description><![CDATA[We bought some ski goggles for our kids&#8230; and look who have infiltrated that business: Tweet]]></description>
			<content:encoded><![CDATA[<p>We bought some ski goggles for our kids&#8230; and look who have infiltrated that business:</p>
<p><img class="aligncenter size-full wp-image-1046" title="junior google" src="http://jakob.engbloms.se/wp-content/uploads/2009/12/junior-google.jpg" alt="junior google" width="600" height="272" /></p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1045"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1045" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1045" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1045/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SAAB no more</title>
		<link>http://jakob.engbloms.se/archives/1032?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1032#comments</comments>
		<pubDate>Sat, 19 Dec 2009 19:15:44 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[off-topic]]></category>
		<category><![CDATA[cars]]></category>
		<category><![CDATA[GM]]></category>
		<category><![CDATA[SAAB]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1032</guid>
		<description><![CDATA[It is the end of the road for SAAB. As a Swede, it feels sad (and a bit scary) to see a part of our industrial heritage go down and end. It lasted a bit more than 60 years, but now the  manufacturing of cars called SAAB has ended for good. But to be quite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2009/12/saab.png"><img class="alignleft size-full wp-image-1031" style="margin: 5px;" title="saab" src="http://jakob.engbloms.se/wp-content/uploads/2009/12/saab.png" alt="saab" width="136" height="29" /></a>It is the end of the road for SAAB. As a Swede, it feels sad (and a bit scary) to see a part of our industrial heritage go down and end. It lasted a bit more than 60 years, but now the  manufacturing of cars called SAAB has ended for good. But to be quite honest, it is hard to see how things could have gone differently. The closing of SAAB cars must have been considered inevitable for the past ten years or more. There will be lots of finger-pointing in the coming weeks, with the opposition parties trying to smear this on the government. However, I don&#8217;t see what the government could have done other than possibly postpone the inevitable.</p>
<p><span id="more-1032"></span>If you look at the facts, SAAB has very rarely made a profit. Apparently, the 1980&#8242;s were decent, but since GM took over in 1990, maybe there have been two profitable years. With that kind of history, it is hard to motivate why they should have been allowed to continue for this long in a market economy.</p>
<p>That said, the reason that SAAB is closing now is squarely and simply GM. General Motors has to be one of the worst-run companies in the business, and they have badly mauled and mistreated all their car brands except maybe Opel. SAAB was bought as European luxury brand for GM, which could have worked very well. If only the company had been given solid funding and a strategic direction, it could well have grown into a Lexus-Toyota pairing with Opel. Now, SAAB was never given the room to innovate and develop new products, instead it turned a steady draining loss each year. GM managed to do the worst possible: it didn&#8217;t invest in the brand to give it a fighting chance, but it also kept it going as a loss-making unit for almost twenty years. Overall, this long slow decline must have cost more money than a solid up-front investment back in 1990&#8230;</p>
<p>I guess in five years time, we will be seeing the real analysis of what happened, and this might be taught in business schools as a classic example of how not to manage car companies &#8212; or any brand, for that matter.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1032"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1032" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1032" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1032/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Power Architecture Rip Van Winkle</title>
		<link>http://jakob.engbloms.se/archives/1026?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/1026#comments</comments>
		<pubDate>Sun, 06 Dec 2009 20:07:23 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[computer architecture]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[power architecture]]></category>
		<category><![CDATA[Rip van Winkle]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=1026</guid>
		<description><![CDATA[For some reason (I guess it is the job&#8230;) I was browsing through the Power ISA version 2.06 specification last week and hit the following gem of an instruction: &#8220;rvwinkle&#8220;. It is named after a short story I had never heard about, but which apparently is sufficiently well-known in the US literary canon to warrant [...]]]></description>
			<content:encoded><![CDATA[<p>For some reason (I guess it is the job&#8230;) I was browsing through the <a href="http://www.power.org/resources/downloads/PowerISA_V2.06_PUBLIC.pdf">Power ISA version 2.06 specification </a>last week and hit the following gem of an instruction: &#8220;<tt>rvwinkle</tt>&#8220;. It is named after a <a href="http://en.wikipedia.org/wiki/Rip_Van_Winkle">short story I had never heard about</a>, but which apparently is sufficiently well-known in the US literary canon to warrant a sleep mode being named after it.<br />
<span id="more-1026"></span></p>
<p>Anyway, here is a screenshot of the manual:</p>
<p><img class="aligncenter size-full wp-image-1027" title="ripvanwinkle ppc mode" src="http://jakob.engbloms.se/wp-content/uploads/2009/12/ripvanwinkle-ppc-mode.png" alt="ripvanwinkle ppc mode" width="568" height="848" /></p>
<p>It is one of four thread-sleep-state control instructions in the 64-bit server variant of the Power ISA. Essentially, it is an IBM extension for their POWER series machines, as well as the Cell and Xenon CPUs I guess. See the <a href="http://www.power.org/devcon/07/Session_Downloads/PADC07_Frey_PowerISA.pdf">Power ISA tutorial from the Power Architecture Developer&#8217;s Conference 2007</a> for some more on this.</p>
<p>I like this kind of whimsicalness in technical systems. It makes them human and more approachable. Sometimes, big companies (and small companies) once they are mature end up trying a bit too hard to sound business-wise and &#8220;professional&#8221;&#8230; ending up being plain boring and stone-faced and cold. There is no contraction between a chuckle and a professional system for most people.</p>
<p>Some people would put the Power Architecture &#8220;eieio&#8221; instruction in the same category of slightly funny. However, the limit for all assembly languages I have ever encountered seems to be the natural name for an instruction to Sign EXtend something. It is never called what it &#8220;should&#8221; be.</p>
<p>Note that this instruction is not new, it has been around since 2005 at least, probably longer. There are no history notes in the manual, and I have no intention of reading through lots of old manuals to find the first when this one did <em><span style="text-decoration: underline;">not </span></em>appear.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/1026"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/1026" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/1026" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/1026/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Off-Topic: Another Troubled Train</title>
		<link>http://jakob.engbloms.se/archives/997?&#038;owa_medium=feed&#038;owa_sid=</link>
		<comments>http://jakob.engbloms.se/archives/997#comments</comments>
		<pubDate>Sun, 15 Nov 2009 21:36:37 +0000</pubDate>
		<dc:creator>Jakob</dc:creator>
				<category><![CDATA[trains]]></category>
		<category><![CDATA[transportation]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[banverket]]></category>
		<category><![CDATA[broken trains]]></category>
		<category><![CDATA[Laxå]]></category>
		<category><![CDATA[SJ]]></category>
		<category><![CDATA[Skövde]]></category>

		<guid isPermaLink="false">http://jakob.engbloms.se/?p=997</guid>
		<description><![CDATA[Almost exactly a year ago, I wrote a blog post about an adventure with delayed trains getting from Uppsala to Stockholm. As I said then, I am a train fanboy, preferring trains to most alternatives for most travel. Trains do have one big disadvantage though: when something goes wrong, you are unusually powerless and stuck. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jakob.engbloms.se/wp-content/uploads/2008/11/sj-logo_large.gif"><img class="alignleft size-full wp-image-346" style="margin: 5px 10px;" title="sj-logo_large" src="http://jakob.engbloms.se/wp-content/uploads/2008/11/sj-logo_large.gif" alt="sj-logo_large" width="48" height="33" /></a>Almost exactly a year ago, <a href="http://jakob.engbloms.se/archives/347">I wrote a blog post about an adventure with delayed trains </a>getting from Uppsala to Stockholm. As I said then, I am a train fanboy, preferring trains to most alternatives for most travel. Trains do have one big disadvantage though: when something goes wrong, you are unusually powerless and stuck. That happened to me last Friday. I spent some five ours in a dark train in a dark winter evening in the middle of the <a href="http://jakob.engbloms.se/archives/347">forest south of Laxå</a>. Here is the story of that journey, and an observation about the impact of technology on our lives.</p>
<p>It was on a Friday the 13th, by the way. Not that I believe in that bad luck happens more on certain days, this certainly was an unlucky Friday (and very early Saturday).</p>
<p><span id="more-997"></span>I had been down to the area around Jönköping for a family event over the day on Friday. For the return trip, I believed that I had found the perfect train: one train from Habo to Skövde, and then a direct fast X2000 train back home to Uppsala. No need to change trains in Stockholm, as you almost always have to do otherwise. The X2000 train left Skövde at 17.45, perfectly on schedule, but after some twenty minutes, it stopped. The map belows shows the approximate location.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2009/11/kind-of-the-route.png"><img class="aligncenter size-full wp-image-1000" title="kind of the route" src="http://jakob.engbloms.se/wp-content/uploads/2009/11/kind-of-the-route.png" alt="kind of the route" width="419" height="289" /></a></p>
<p>The first message from the train staff was the expected one: &#8220;sorry, something is wrong and we will try restarting the train&#8221; (yes, I have been through quite  a few train reboots, it happens every so often, and usually it does solve the problem). That failed, however, and then power started to fail. I had my laptop plugged into the 220V outlet (which are present at every seat on X2000 trains today, as one of the great advantages of trains compared to all other forms of transport is that they are excellent places to get work done), and saw that the laptop switched to battery power.  It was becoming clear that something was more wrong&#8230;</p>
<p>Next, we learned that the reason that the lights still were on was that the train had backup batteries in all cars. Our car was the first to go dark, as it housed the Bistro and therefore likely used far more power than the other ones. This turned into an early problem with provisions: the teller machine did not get powered as the car switched to backup power, and thus they told us they could not sell anything. A frustrated member of the train staff also complained about the many laptops plugged in, that they would be draining the batteries of the train faster and asked people to unplug them. There were certainly unusually many laptop around.</p>
<p>At this point, after some thirty minutes, it was clear that this was going to be a long wait. It turned out that our train had managed to tear down the overhead electrical lines, and thus we had no power and no chance of moving out by our own means. To make things worse, the torn lines had blocked off both tracks, so no other trains could pass either. The normal solution to a train stoppage of this kind is to drive another train up to side of the stopped train and move the passengers over, but that would not be possible here. Also, there was a huge backlog of trains building up on the tracks on both sides of us.</p>
<p>Soon, power went out for the entire train. It got to be truly black, pitch black. Outside was a frosty forest, apart from the lights from a small house that was facing the track (as you can tell from the <a href="http://kartor.eniro.se/query?mop=aq&amp;mapstate=6%3B14.39090%3B58.90997%3Bs%3B14.37354%3B58.92121%3B14.40815%3B58.89876%3B642%3B786%3B0%3B1&amp;mapcomp=%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B%3B0%3B0%3B%3B%3B%3B0&amp;what=map_adr">map</a>, we were actually pretty close to the large E20 road, and in an area which was partially populated). I wonder what the people in that house thought of what they were seeing happening, or not happening.</p>
<p><a href="http://jakob.engbloms.se/wp-content/uploads/2009/11/train-stopped-here.png"><img class="aligncenter size-full wp-image-999" title="train stopped here" src="http://jakob.engbloms.se/wp-content/uploads/2009/11/train-stopped-here.png" alt="train stopped here" width="581" height="385" /></a></p>
<p>In the darkness, there was the occasional flashlight from the staff as they moved through the train informing people about the state of the situation. But it was never really truly dark, as the car was lit by the spooky light from laptops, iPods, and mobile phones. In a really dark room like this, a mobile phone is quite a beacon! It was a very direct illustration to just how pervasive devices with screens have become in recent years. Even a decade ago, there would have been much fewer mobile phones and even fewer laptops.</p>
<p>Technology soon started being activated for communications&#8230; everybody called home to tell what was happening and that we were late. I opened up Google Maps on my mobile phone to get an idea for where we were, and the result is the map location used previously in this blog post (obviously, a GPS would have been even better, but I think it would have had a hard time getting a position fix ). It was comforting to know we were in some kind of proximity of human settlements, as that is not necessarily always the case in sparsely-populated Sweden. I also found good use for the little Flashlight application on my SonyEricsson G900 phone. Until now, I thought this was just a gimmick, but it was actually quite handy to use the light intended for the camera as a flashlight. Nice and bright, and more efficient than just using the screen backlight.</p>
<p>Overall, the mood in the train was good as hours were added to hours and it got darker and darker as more laptops ran out of power. It had a certain apocalyptic sense to it, but nothing like the sinking of the Titanic&#8230; The main problems were two: the toilets were out of use after a while, as they could not flush without power. And people were getting hungry (I was lucky enough to have an eaten a too-large meal late in the afternoon). The staff on the train handled the situation pretty well, telling us to use the toilets until they were full, and after a few hours they started to distribute the food and snacks that they had in the Bistro to the people on the train (estimated some 300 people). Every once in a while they would open the doors to let in some fresh air, while not letting the cars get freezing cold (actually, it was a nice even temperature in the train, decent insulation plus a few hundred people does work to keep things warm even with no active heating going on).</p>
<p>I am not a big fan of all the big talk about how the Internet empowers people an revolutionizes society, but this situation actually became an interesting illustration in just that. 3G-based mobile Internet has taken off big time in Sweden in recent years. Thus, some people took the chance to join the Facebook group &#8220;<a href="http://www.facebook.com/jakob.engblom?ref=name#/group.php?v=wall&amp;ref=search&amp;gid=132012970820">Vi som sitter fast på tåget</a>&#8221; (I did not). I checked our position, as mentioned, and also surfed onto the traffic status updates of <a href="http://www.banverket.se">Banverket</a>. That made me better informed than the train crew, who had issues with getting through on their mobile phones. That way, I figured out what had happened, and that the estimate for fixing the overhead lines was to 22.00.</p>
<p>When 22.00 rolled around, trains started to pass by us, as the other trains which were not broken but had stopped because of the torn lines were passed on on a single track. It was almost spooky to have the complete silence and darkness of our stranded train interrupted by a short burst of noise and lights as a train screamed by. It took more than an hour after this before a diesel engine could come and tow us into Laxå. Patience was beginning to wear thin at that point, even though the staff did do their best to keep people informed and fed. It took way too long to get the diesel engine hooked to our train and all the breaks and doors locked into travel mode.</p>
<p>As it turned from evening into night, I tried to get a bit of rest, and it felt almost serene to be in a pitch-black train, leaning back in the seat, and hearing the murmur of people around me joking and trying to make the best of the situation. It is rare to experience such complete darkness in a city today, and I think it is a pity that you rarely get real darkness&#8230; it has a special quality. Still, I could imagine many worse places to be stranded. At least here it was a nice big comfortable seat with no immediate danger of freezing or cooking.</p>
<p>That it took five hours to repair the lines and get our train towed is pretty poor, I think. I don&#8217;t know why, but my guess is that it is a combination of splitting the care for the tracks from the traffic companies and a general hunt for profits and economic efficiency removing buffers and spare capacity. I am sure that fifty years ago, there would have been a spare train in place after a few hours at most. Also, we are almost too safety-conscious today. In 1950, who would have worried that much about electrical lines? Jump out and look for them would have been the reply, I think.</p>
<p>Once we got to Laxå it was midnight, and we were all crowded onto another X2000 train that had been standing there for two hours. There weren&#8217;t seats for everyone, but that was quite OK as we were finally moving, after six hours any kind of progress felt good. From here, something seems to have started to work in the contingency planning rooms at SJ, and at each station buses met up to get people home. Certainly six to eight hours late, but still getting home.</p>
<p>I was not that simple for me and the other people bound for Uppsala, Gävle, and further north. When we got to Stockholm at 02.00 at night, we were told  that the north-bound night train was waiting for us. The only problem was how to get to it, as the station was closed. I had no idea you could close Stockholm central station this hard, but the staff had to hustle around along with the security guards to open up a winding path from track 17 to track 10 where the train was waiting for us. It took ten minutes to find someone who could open up the last door, and this was starting to get vocal complaints from the hundred or so people affected&#8230; And I pity the passengers booked on that train from the start, who had to spend three additional hours in Stockholm before leaving in order to wait for us.</p>
<p>So finally, I got home at 03.30 at night, pretty exactly seven hours late. It was a tiring adventure.</p>
<p>Note that for comparison, I did try to work out what happens with other modes of travel. So far, I have been bumped once from an intercontinental flight, delaying getting home by a full day. However, when such things happens you are at an airport, and you given a hotel room to stay in. The bodily comfort is thus not in danger.</p>
<p>I have been spared car breakdowns in the middle of a trip, but I would not like to sit in a snow drift in a cold car in the middle of the winter&#8230; a train is probably better than that. Once, we did stop overnight in a cheap hotel when it was snowing too much to continue. It was not the most exquisite hotel experience in my life, and the only food available was a McDonalds, but still better than a dark train.</p>
<div class="simple_likebuttons_container_small">
      <div class="simple_likebuttons_googleplus">
        <g:plusone size="medium" count="false" href="http://jakob.engbloms.se/archives/997"></g:plusone>
      </div>
    
      <div class="simple_likebuttons_twitter simple_likebuttons_twitter_s">
        <a href="https://twitter.com/share" class="twitter-share-button" data-count="none" data-url="http://jakob.engbloms.se/archives/997" data-lang="en">Tweet</a>
      </div>
    
      <div class="simple_likebuttons_facebook">
        <div id="fb-root"></div>
        <script>(function(d, s, id) {
          var js, fjs = d.getElementsByTagName(s)[0];
          if (d.getElementById(id)) {return;}
          js = d.createElement(s); js.id = id;
          js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
          fjs.parentNode.insertBefore(js, fjs);
        }(document, "script", "facebook-jssdk"));</script>
        <div class="fb-like" data-href="http://jakob.engbloms.se/archives/997" data-send="false" data-layout="button_count" data-show-faces="false" data-width="90"></div>
      </div>
    </div>]]></content:encoded>
			<wfw:commentRss>http://jakob.engbloms.se/archives/997/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

