New Host May 1 2013

As you might have heard, Posterous shut down after being aquired by Twitter. Since was hosted on Posterous, this means I had to move the site to a new host again.

This time I’ve gone with a Middleman powered site, hosted on a new hosting company for static sites called Fjords.

The current design leaves something to be desired though, just something I’ve quickly thrown together with Twitter Bootstrap. Worse, the archives are a mess, littered with broken links and stuff that didn’t translate well from the old site.

Hopefully I’ll get around to cleaning up the site and archives, and actually start posting content again.

Setting default ignored namespace providers in ReSharper Feb 17 2012

Since I started working with C#/.NET, ReSharper has been my saviour. It simply transforms Visual Studio from a “It’s OK, I guess” IDE to “Quite good”.

One of the things Resharper checks, is that the namespace of classes correspond to their folders. E.g. files in the “Foo” folder should be in the “Foo” namespace, etc. By default, the src folder is set to not be a namespace provider, so files in src/Foo is also evaluated to “Foo” and not “src.Foo”, and you can override individual folders in the project properties.

I like to use a folder convention inspired by Maven. I have a src folder in the project root, and as direct descendants of this folder I generally separate the code by main, test, generated, etc., and then usually seperate the code into subfolders named after the extension of the source file, e.g. cs, rb, js, etc. So typically I might have a folder structure like:

  • src - main - cs

    • test - cs

    • generated - cs

Unfortunately, this means I have to manually change the properties of the sub-folders each time I create a new project, or do a clean checkout from git. I’ve looked for a way to add additional folders to the default settings, but so far been unable to find this in the settings panel. You can however do it manually by editing the default settings file however. It’s normally located at %appdata%\JetBrains\ReSharper\vAny\GlobalSettingsStorage.DotSettings. I simply added the following lines:

<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Cmain/@EntryIndexedValue">True</s:Boolean>
            <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Ctest/@EntryIndexedValue">True</s:Boolean>
            <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Cgenerated/@EntryIndexedValue">True</s:Boolean>
            <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Cmain_005Ccs/@EntryIndexedValue">True</s:Boolean>
            <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Ctest_005Ccs/@EntryIndexedValue">True</s:Boolean>
            <s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=src_005Cgenerated_005Ccs/@EntryIndexedValue">True</s:Boolean>

Not the most elegant solution, but it seems to work pretty good and saves me a recurring minor annoyance. If anyone happens to know of some other way of doing this, I’d appreciate the tip. :)

PPAPI Aug 12 2011

Am I the only one concerned about PPAPI?

While standardizing, updating and bringing the Browser Plugin architecture closer to the new technologies is ostensibly a Good Thing™, I though the whole point of HTML5 was moving away from plugins and towards platform agnostic web applications.

Certainly I can see the benefits. An universal API for native plugins, enabling plugins to work consistently in all browsers. And certain plugins are definitely useful, like handler for various uncommon media-types. But the whole problem with the latter, is the “Flash-problem”. Due to plugins, the web became littered with proprietary formats requiring plugins, and plugins went from “useful” to “must-have” extensions to be able to properly surf the net when said media formats became “de-facto” standards. Just try to navigate to a random restaurant webpage with your iPad, odds are you’ll not get very far before being instructed to download the newest version of Flash.

It would not be a problem if people followed the best practices, e.g something like[1](http://#fn1):

<object data="/images/photo.exr" 
                <!--OpenEXR not supported, use JPEG fallback-->
                <img src="/images/photo.jpg"/>

Unfortunately, what you generally find in the wild is something like:

<object data="/flash/site.swf" 

Not only can’t I view the content in any form, I risk not being able to use the page at all, even to get content which would be perfectly presentable in the most basic of text-browsers.

HTML5 promised us an escape from this, by providing richer semantics and capabilities, as well as well-defined fall-back paths. A page written in HTML5, should be viewable in any HTML5 capable browser.

But wouldn’t a cross-browser/platform API mean that plugins would be available for anybody who’d need them? In theory yes, but you’d still have to compile the plugins for a target platform, and people won’t. If you’re lucky, plugins would be compiled for the most common OS’es (Windows, MacOSX and Linux), and of course those devices pushed by Google. But most other platforms are unlikely to have the plugins compiled for them, and since many plugins are bound to be proprietary, the community can’t pick up the slack. It would be no different from the “flash-problem” today.

I’m afraid that by promoting PPAPI, Google is sending a message that it’s okay to provide main content using plugins, thus propagating the “flash-problem”. And while this would be good for Google, as it would give Google backed devices supporting PPAPI an edge, it would not be good for anybody else. It would just maintain the status quo, perhaps with less buggy plugins, rather than moving towards an more open web.

  1. As an aside, in an ideal world you could take this one step further. In the HTML5 draft, it allows the img element to display images in any formats as long as they’re non-interactive. You should therefore be able to just use <img src="/images/photo" />, and have the server return an image in an appropriate format based on the Accept header of the HTTP request.

    E.g. the browser tells the server “I want this image, and I can display it in ‘PNG’, ‘JPEG’, ‘GIF’ and (through plugin) ‘OpenEXR’. I would prefer it in ‘OpenEXR’.” The server then returns an image in an appropriate format based on the image source and available output filters.

    Unfortunately, browsers are really bad at using proper Accept headers, probably because so few people know how to properly handle HTTP-headers. I did a quick check (IE, Chrome and Opera), it seems browsers either tell the server they’ll accept anything (*/*) and/or just send the default accept values they use for webpages.

Working with .NET Aug 9 2011

Since starting at my current company, I’ve been for a large part learning/working with .NET and ASP.NET. For me this really means I’m roughly fluctuating between these two states.

LINQ so sweeeet.

Microsoft - Y U No Follow Standards!?

Name tweak Aug 1 2011

So I caved in and changed the name of the blog from “Ramblings of Me” to “Ramblings by Me”. I’ve been aware of the somwhat akward sentence structure, but I thought it was funny. My English lit. Significant Other, not so much. So after a myriad of good arguments why I should change, I “listened to reason” and changed it. Ironically, this will also make the blog name more unique, as there are fewer exact hits for “Ramblings by Me” than “Ramblings of Me”…

The sad tale of "Smelly" Tom Hobfoot Jul 31 2011


After itching for a RPG-fix over the summer, I decided to try out running a solo game of Hackmaster using the Mythic Game Master Emulator today.

I rolled a Halfling Ranger called Tom Hobfoot. Tom, while strong (for a halfling), would have been rather unremarkable, but unfortunately, he’s rather unattractive, and cursed with flatulence, earning him the nickname “Smelly”. This has made him somewhat of a loner who prefers the wilderness. He also struggles with a gambling addiction.

When the adventure starts, Tom has been cast out of his family burrow by his siblings who despise him. He swears he’ll go out and find adventure and glory, so he can return one day and reconcile with his family.

Even though his burrow is a bit off the beaten track, it is still located quite centrally in Mendarn[1](http://#fn1), so he sets off to a nearby travelers inn. There he hopes to try to figure out where to go next. He tries to talk to his fellow travlers, hoping to pick up on any rumors, but no one are especially interested in talking with the halfling, and there is a depressing lack of a Mysterious Stranger™ in the corner.

He decides to travel to one of the closest cities to seek his fortune. Unfortunately when he tries to enter, the racial bigotry all too common in Brandobia rears its ugly head and he is mocked and refused entry by the gate guards.

Exhausted by a long day of disappointments, he sets off into the wilderness to set up camp, and hopes the next day will be better. Late at night he is rudely awakened by the sound of merrymaking and gambling. A makeshift “temple” to the Risk[2](http://#fn2), consisting of several tents, has been set up nearby. Present among the “worshipers” are the guards from earlier.

Hoping some gambling will let him forget his worries, Tom tries to sneak in. Unfortunately, he is spotted and thrown out. Discouraged, Tom returns to his camp.

Tired after little sleep, Tom decides the city is no place for him, opting instead to seek out the lumber camps in the area. Hopefully, they will have need of his abilities. After an uneventful journey, he finally arrives and approaches the camp leader. To Tom’s great relief, they greet him warmly, and could indeed use some help from an adventurer like him. Some nearby kobolds[3](http://#fn3) have been harassing the camp, damaging equipment and stealing food. If Tom could find their nest, and possibly deal with the problem, they’d make it worth his while. Finally faced with some good fortune, Tom readily accepts.

I decided to stop the first adventure there. One of the main threads, “Find work” had resolved itself, and it felt like a good place to take a break. I’ve used Mythic before, but never solo, and it was interesting to see how it played out. It was quite fun, but it felt a little awkward in the beginning sitting there muttering to myself[4](http://#fn4).

In hindsight, I probably should have been better at removing characters and threads from the lists[5](http://#fn5) who were no longer relevant, as I had to invoke the ‘I dunno’[6](http://#fn6) rule a couple of times when I rolled events with characters/threads that didn’t really make sense anymore.

I’m happy with how it worked out, and I’m looking forward to see if fortune finally smiles on poor Tom Hobfoot.

  1. Mendarn is the southernmost of the three Brandobian Kingdoms, and the most prosperous.

  2. God of luck, thieves and gambling

  3. My GF suggested it might be a bear, my response was something like “A bear?! Have you seen the stats for a bear in Hackmaster!”

  4. Mythic works by simulating a GM answering Yes/No to questions posed by the players. So you basically play by describing what you’re doing, and asking the “GM” questions when you’re unsure about something. E.g. “Is the door locked?”, “are the guards friendly?”, etc.

  5. In Mythic you maintain ‘Character’ and ‘Thread’ lists; used to keep track of elements relevant to the adventure, and generate random events.

  6. If no interpretation for an event seems obvious or you can’t think of anything, you should just move on and discard the event

DC Comics doing (almost) full line-reboot Jun 1 2011

So I wake up today to find the news that DC Comics are doing an almost line-wide reboot of it’s superhero titles. Not something I’d expected to be honest, but the more I think about it, the more excited I get. Despite some rather clumsy reboots and retcons lately, a reboot is probably the right way to go. It’s been 25 years since Crisis on Infinite Earths ended, completely rebooting the line. Since then we’d had a lot of semi-reboots, retcons and reimaginings. Some only lasting a few issues before being forgotten/ignored. And many of the characters have accumulated a lot of crud for the sake of drama and dark & gritty, or been killed off for clumsy story reasons (RIP Indigo), Ryan Choi, etc.)

I can imagine the world of DC Comics are pretty impenetrable for a new comics fan who don’t have the time or effort to read up on old stories on Wikipedia. A line-wide reboot can streamline the properties, clean off unnecessary crud, undo akward changes and make the series more diverse and accessible. Look at Justice League Unlimited or Batman: The Brave & The Bold. These are both tv-series that utilize the rich history of the DCU, but are streamlined and therefore still accessible to new viewers. This is what I want for my comics. And if this is what we’re getting, it’s time to be excited.

Page 1 of 23