Profile cover photo
Profile photo
Rolf W. Rasmussen
Rolf W. Rasmussen's posts

Well that was meta: I got an e-mail from KS (org 971032146, kommunesektorens organisasjon) telling me that I had received a message available at a website maintained by Registerenheten i Brønnøysund (org 974760673). To access it I needed to log into it using credentials issued by my bank provider. The message on the website contained a link to a PDF located back at a website maintained by KS. Inside the PDF there was a cover letter from Sentralarkivet i Bergen kommune, maintained by Bergen byarkiv, explaining that the remaining pages of the PDF contains a letter from Bergen kommune (org 964338531) . That letter tells me that I need to go to a web page on a website maintained by Direktoratet for Forvaltning og IKT to choose between two so-called "electronic mail box" providers, so that Bergen kommune can send me mail. That web page in turn links to the websites maintained by the electronic mail box providers which are e-Boks AS and Posten Norge AS. e-Boks AS (org 996460320) in turn is owned by a different organization with the same name e-Boks A/S (org 25674154) residing in a different country, but the actual maintainer of the service is KMD A/S (org 26911745). That part last part is explained in the privacy policy on the e-Boks site. What the privacy policy does not tell you is that just accessing the website causes the web-browser to automatically send information to a web server maintained by Adobe Systems Incorporated which sometimes call themselves Omniture. Posten Norge AS on the other hand has a website that causes the web-browser to automatically send information to a web-server maintained by Google Inc. which is a subsidiary of Alphabet Inc.

I wish support for the OpenPGP standard had become ubiquitous so that we didn't have to deal with these convoluted communications channels with dubious trust models.

Installing Debian from the Internet onto an blank machine using IPXE without any local installation media feels like magic. The IPXE "sanboot" command that allows you to boot ISO images over HTTP sure is powerful. It was much easier than setting up custom DHCP and TFTP servers as I've done in the past to do regular PXE boots.

Post has shared content
Never ever use Ethernet. It's broken by design. It's badly engineered. It will never have any successful deployment. (Xerox 1974)

Post has attachment
The joys of debugging <video>-element discrepancies between browser implementations. From left to right: Safari on Mac OS X, Chrome on Ubuntu, Chrome on Windows 8.1, and finally Internet Explorer 11 embedded in an application on Windows 7.

The downside of using a full scripting language for configuration files is that it makes static analysis and translation pretty difficult. Right now I'm writing a fake SCons build tool that re-implements enough of the API to be able to run the SConstruct and SConscript files in an emulated environment. That way I can extract the build rules so I can rewrite them to use another build system.

While debugging some code today I was reminded that just like a + b = c ⇏ ‖a‖ + ‖b‖ = ‖c‖, also a + b = c ⇏ f(a) + f(b) = f(c) is true for most non/injective conversion functions . This is not only the case for programming language casts between floats and ints but also conversion between various fixed point representations with different precisions. Or simply put, 10.7 + 10.7 = 21.4 does not imply 11 + 11 = 21, nor 10 + 10 = 21. And this has nothing to do with the classic IEEE 754 gotcha of 0.1f + 0.2f ≠ 0.3f.

Post has attachment
My submission to the Churchill Navigation programming challenge ended up in fourth place. I've published the source code with complete development history on Bitbucket in case anybody is interested.

I've been playing a bit with Visual Studio 2015 Preview after someone requested VS2015 support for the "End of the Line" extension.

None of the extensions I usually use have been updated to support VS2015 yet, but patching existing .vsix extension packages is pretty easy: Extract the .vsix file as a zip archive, edit the extracted extension.vsixmanifest file to add the version number 14.0, then zip the files back up again, and change the extension back to .vsix. Yay for simple package formats.

Post has attachment
Here's a silly "hello world" program written in BrainFuck, run by a BrainFuck interpreter written in C#, compiled to .NET IL and AOT compiled down to a stand-alone portable Bourne shell script.

I wrote a simple .NET IL to Bourne shell compiler as an exercise to learn more about Common Intermediate Language that C# and other .NET languages compiles down to.

It was fun figuring out how to work around the limitations of the portable Bourne shell subset. E.g. how to implement arrays and gotos in a language which has neither.

Post has attachment
A while back I wrote a small editor extension to provide better handling of line endings in Visual Studio. Today I pushed out a version 1.2 of the "End of the Line" extension at

The source code is available at

You may find this extension useful if you work across multiple platforms and have encountered inconsistent line endings creeping into your files.
Wait while more posts are being loaded