Rolling Windows and Sticky Bytes

<tagline type="clever"/>

Hacking House Numbers for Fun (?) and Profit (?)

My wife and I recently bought a set of reasonably tasteful LED house numbers and I decided to work on putting them up today. They’re the modular kind where you can hook up to five numbers together and power them with a single module.

Well, I popped the numbers out of their packaging and screwed them together following the instructions. Added the power module. Plugged it in. Covered the daylight sensor.


Time to look closer.

Mini-USB-B-type-Cable 13916-480x360 (4817557098)

Boy, that connector on the power adapter sure looks familiar. It’s our old friend Mini-USB B! Each of the included numbers has a pair of Mini-USB connectors, one male and one female that are used to connect the numbers together.

Wait. It can’t be that easy… can it? Checking the adapter carefully showed the output as 5V DC 0.2A. The pin-out diagram had +5V on one side and Ground on the other, matching the Mini-USB spec. Maybe…

A quick rummage in my Big Bag O’ Cables and I found that powered USB hub that I bought in college and the Mini-USB cable that came with it. Plugged in the hub, hooked the sign up to it and we’re off to the races. Turns out these fancy LED signs are literally a USB power adapter, a $2 daylight sensor, and a pile of LEDs in a waterproof housing. You can even power them from either end of the bus.

Turns out the power adapter is bad, so the power module is going back tomorrow. In the meantime, I put the house numbers in the front window and plugged the USB hub into a day / night timer so they turn on and off when they’re supposed to. Not quite according to plan but hey, it’s progress.


No Comments »

Officially Open Source

Well, I finally made my first contribution to the Open Source community with this pull request for the “axlsx” Ruby library, used to programatically generate Excel spreadsheets.

I’m grateful that my employer and my management team have allowed me to contribute to the project on company time.

1 Comment »

EMC Elect 2015

I am once again humbled and deeply honoured to have been selected as a member of the EMC Elect program. I was also very pleased to see fellow Canuck Allen Ward back again this year. Allen took on judging the nominees this year which I know is a grueling task. Kudos to Allen and all the judges for their hard work!

The complete list of the EMC Elect for 2015 is available on the EMC Elect Blog. Dave Henry has put together a great summary and breakdown of how things came together this year. I would also recommend reading Rachel Foster’s interview with Mark Browne who is one of the community managers for the EMC Elect program.

I’m really looking forward to working with Mark and Mary and seeing how the program evolves in the coming year!

No Comments »

Debugging an Android Action Bar Menu Issue

I’ve been working through the University of Maryland Programming Mobile Applications for Android Handheld Systems course and recently ran into an issue during one of the labs. I could not figure out why one of my views was not calling its onClick handler. Turns out, the handler was being called but log messages were not being recorded in LogCat.

I eventually determined that the issue was that the location had not been set in the mock location provider included in the lab. For some reason, the action bar overflow button was not appearing, meaning I did not have access to the location provider settings that should have appeared under this button.

I eventually learned on the course forums that you can force the action bar overflow menu to appear by pressing the Page Up key on your keyboard. Once I was able to summon the menu, everything worked as expected.


No Comments »

Heartbleed OpenSSL Vulnerability

The Heartbleed SSL vulnerability is big news in the media right now (and rightly so — it’s a scary bug).

I’ve been contacted by some organizations and software vendors and I’ve contacted others about it. I thought I would compile the list here, mainly for my own reference.

Financial / Banking

President’s Choice Financial – Not Affected (a telephone rep confirmed they do not use the affected versions of OpenSSL)

CIBC – Reply pending but likely unaffected (they provide banking services to PC Financial)

Online Services

CACert – Recommends revoking and regenerating any certificates or keys installed on vulnerable systems

GitHub – Recommends changing your password, enabling two-factor auth and resetting all your tokens

Amazon Web Services – Recommends upgrading OpenSSL on any vulnerable systems (EC2), running update_dependencies for OpsWorks and rotating any keys and certificates for Elastic Load Balancing, EC2, Elastic Beanstalk and CloudFront


VisualSVN – VisualSVN Server is not affected. The client should be upgraded to version 4.0.6.


Minecraft (and other Mojang games) – Recommends changing your password

No Comments »

EMC Elect 2014

Each year the EMC Elect program recognizes the contributions of members of the EMC community — participation on the EMC Community Network, engagement on Twitter, blog entries on technology and in-person contributions at industry events. 80 members were selected to join the program this year, some returning and some new. I am very honoured to have been selected (elected?) as a member of EMC Elect again in 2014.

I have to admit that I find myself in awe every time I stop to consider how many interesting and influential people are fellow members of EMC Elect. I was going to give “shouts out” to some of the 79 others who were selected but I realized that I would end up posting 79 shouts out and there’s no way I would be able to do justice to all the members of EMC Elect for 2014 in this short blog post so I will just have to leave a link to the official list and encourage you to peruse their blogs and Twitter feeds.

Okay, I lied. I have to give a shout out to fellow Canuck Allen Ward. I’m very glad to see you back again this year! We’ll have to convince you to make the trip up one of these days to join us for the (unofficial) EMC Burlington “research meeting”.

I’ll leave you with additional thoughts on EMC Elect from some of the new and returning members from 2014:

I’m looking forward to the coming year and the chance to be a part of the fantastic EMC Elect community once again. Congratulations to all those who were selected and hopefully we’ll get a chance to see each other at EMC World 2014.


Adventures in Pie

Today I made my first foray into the realm of gluten-free baking. My sister recently developed some food sensitivities including gluten and when she heard I was making pumpkin pie from fresh pumpkins for (Canadian) Thanksgiving, she asked if I could make the pie crust gluten-free. Not wanting to dive head first into experimentation when the whole family’s dessert was on the line, I agreed to make a tiny pie just for her.

For the gluten-free pastry I followed a pie crust recipe I found at gluten-free-girl. Well… Sort-of.

After doing some reading on xanthan gum (which I was able to find) and guar gum (which I was not), I was a little bit skeptical of including these gums in the pastry. I read mixed reviews of recipes that include xanthan gum, the main complaint being texture. I decided to split the recipe in half and make one tiny pie with xanthan gum and one tiny pie without. Good thing I decided to cut the recipes in half since the recipe turned out to be sized for two crusts.

I used a different mix of flours to those called for in the recipe, basically using what flours I found in the organics section of my local grocery store. The mix I chose was:

  • 5 oz almond flour
  • 3 1/2 oz tapioca flour
  • 5 oz rice flour
  • 2 1/2 oz quinoa


Almond flour is my new nemesis. It might just be the brand of almond flour but my flour was a really, really inconsistent grind. Some of it was extremely fine (as it should be) but there were also relatively large chunks of almond in it. I ended up running the whole bag of flour through my sifter. My sifter now has almond flour stuck in between the two meshes and I just barely made it to 5 oz of sifted flour — the rest was almond chunks.

Nobody has had a chance to try the finished pies yet but I have to say quinoa flour just does not smell very nice, at least not as an ingredient in a pie crust for sweet pie.

The non-xanthan batch mixed up reasonably well and I was able to form it into a ball and get it wrapped and into the fridge with no trouble.

I had a little bit of trouble while mixing up the xanthan batch. The texture seemed all wrong while I was mixing it and it refused to stick together properly even when I reached the maximum amount of water the recipe calls for. I eventually managed to coax it into a ball, wrapped it and stuffed it into the fridge.


Once I was finished with the dough I moved onto baking up the pumpkins (remove stem, cut in half vertically, clean guts, rub cut with butter, bake face down on a baking sheet for an hour). I found an excellent post in /r/cooking that gave instructions on roasting pumpkins — with pictures! — so I followed that. Due to poor (excellent?) planning, I ended up with almost three full pies’ worth of pumpkin puree and enough pastry in the fridge for three full pies so I decided to bake up everything into full-sized pies.

Rule of thumb for pie pumpkins / sugar pumpkins: one whole pumpkin per pie.


When it came time to roll, I started with the non-xanthan batch. It was a bit troublesome to roll out because it kept breaking apart but it wasn’t catastrophic. I managed to get it into the pie plate mostly whole and I spent a few minutes patching up cracks and broken bits.

Next I rolled out the xanthan batch. What a catastrophe. I don’t know what happened. It might’ve been my fault, I freely admit. Either way though, I rolled out the dough, lifted my silicon baking mat off the top and the crust was a spiderweb of cracks. Turns out it was even worse than it looked — when I lifted the parchment paper under the crust to put the crust into the pie plate, the whole thing crumbled to dust. That batch went in the garbage. I just could not get it to hold together.

I’ll get a verdict on how the non-xanthan batch turned out tomorrow. In the meantime, I think I’m going to stick to glutenous pie crust unless I’m baking for somebody who explicitly needs their treats gluten-free — my regular crust went off without a hitch. Going to have to see about whipping up another batch of dough so I can use up the filling that went with the aborted xanthan-gum crust and I’ll probably make it regular glutenous dough.

Oh, and one more thing. If you make pie and you don’t own a silicon baking mat you need to go out and get one. This is the first chance I’ve had to test-drive the one I picked up a few months ago and it’s amazing. A layer of parchment paper on the bottom, the baking mat on the top and the crust in the middle makes rolling a snap. I may pick up a second, larger mat for underneath.

1 Comment »

Summer Vacation 2013

For our vacation this year, my wife and I booked off some time in late July and early August to line up with a family party that’s always held on the Canadian civic holiday long weekend in August.

A few weeks later, my boss sent me a message asking if I would be available to deliver training in Cork, Ireland in July, right in the middle of my scheduled vacation. Being one of only a few people qualified to deliver this training, there was a possibility that it would have to be cancelled if I was unavailable, so after looking into the timing and discussing with management, my wife and I decided that there was no reason we couldn’t go to Ireland for our vacation since we hadn’t made other plans.

We decided to fly into Dublin and spend a week there prior to the training, then travel down to Cork by train, I could run the class (along with one of my teammates — this training is always run as a tag team) and we could fly home from there.

I have to say, I truly appreciate EMC’s flexibility when it comes to allowing employees travelling for business to extend their stay to accommodate a vacation.

As it turns out, my boss (now my boss’s boss, if we’re going to nitpick) will be my “partner in crime” for this training. He is also planning to bring his wife for some vacation time before the training so I find myself in the curious position of looking forward to spending some vacation time with my boss.

No Comments »

Installing Windows 7 on an ASUS S400C Ultrabook

Edit (2016-01-08): I’ve since installed Windows 10 on this system so it’s unlikely I’ll be able to answer questions about this post in future.

My wife had a very reliable, very handy ASUS Eee PC that served us very well on our travels. It’s small, it’s light and the battery lasts for ages. Unfortunately it’s started to show its age so we decided to shop around for a replacement. The local computer store had an ASUS S400C Ultrabook on sale for $500 even which was exactly the budget we had in mind so we picked it up.

We knew going in that this new beasty shipped with Windows 8 on it but I have an unused Windows 7 license hanging around so I figured that if reports of the “suck” slider being turned up to 11 in Windows 8 proved to be accurate, I could just nuke it, install Windows 7 and we could move on with our lives. Oh, how wrong I was.

So I gave Windows 8 a shot. I used it for about two weeks while my poor Alienware system was off recovering from my clumsiness carrying a drink. I was told by somebody who is a fan of Windows 8 that the key thing is that Windows 8 is designed for touch screen devices so if you have a touch screen device (and the S400C is a touchscreen device), you will love the Windows 8 experience.

I hated it.

I hated every moment of it.

I hated switching between the Metro and desktop user interfaces.

I hated the Metro interface itself.

I hated all the crap they put on the home screen.

I hated the app store.

I hated the fact that Chrome crashed every time I switched out until I figured out how to put it into desktop mode.

Since my wife and I picked up the system for travel and she would be using it too, I decided to leave Windows 8 on the system so she could give it a try. Before she flew to the U.S. on business, I showed her some of the Windows 8 basics so she wouldn’t be completely lost. When she got home, I asked her how she felt about the system.

“The computer’s good. Windows 8 sucks.”

Today I finally decided to wipe the system and install Windows 7 on it. It was not a smooth road. After much Googling (and swearing), I managed to figure it out.

WARNING: Following the instructions below will cause the loss of all data on the system, including the Windows 8 recovery image. This is a one-way trip. You have been warned.

Since the system has no optical drive, the first thing you have to do is put a bootable Windows 7 install image onto a USB stick. From a system running the 64-bit version of Windows 7, do the following:

  1. Insert your Windows 7 DVD.
  2. Format the USB stick as an NTFS volume. Make a note of the drive letter assigned to it (I’ll use F: in the example below)
  3. Start up a Command Prompt as an Administrator.
  4. Change drives to the Windows 7 DVD and run the following:
    cd boot
    bootsect /nt60 F:
  5. In Windows Explorer, copy the entire contents of the Windows 7 DVD to root directory of the USB stick.
  6. While you’re at it, you’ll probably want to grab the LAN driver from the ASUS support site and copy it onto the stick. I saw some posts online from Asus support that said the Windows 8 drivers and the touch screen don’t work in Windows 7 but the NIC driver and touch screen both work fine for me.

USB stick prepared, you now have to start monkeying with the UEFI configuration of the ultrabook. Apologies if any of the options aren’t exactly as written below. I should’ve taken notes while I was working.

  1. Shut down the system if it’s running. If you reboot, it will skip the POST and you won’t be able to boot into the UEFI interface.
  2. Power on the system. While it’s booting, press F9 to enter the UEFI interface.
  3. Select Troubleshoot, then Advanced. Select UEFI Configuration.
  4. In the UEFI configuration, go to the Security page and set “Secure Boot Control” to “Disabled”. Reboot.
  5. Go back into the UEFI interface, then into the UEFI configuration. On the Boot page, change “Launch CSM” to “Enabled”. Plug in the USB stick and reboot.
  6. Once again, go back into the UEFI interface. On the Boot page, you should now see the USB stick (at least I did — YMMV). Go to the Save & Exit page and select the USB stick from the list of one time boot options and you should find yourself booting into the Windows 7 installer.
  7. Since Windows 7 doesn’t support GPT, you’ll have to nuke all the partitions to proceed with the install. Yes, this means delete all the listed  This includes the recovery partition and all the OEM partitions so you can never go back to the factory Windows 8 image.

Edit: Since this seems to be a common pitfall, let me just add in that when I say you need to nuke all the partitions to proceed with the install, I mean you need to hit “Drive Options (advanced)”, then select each partition on the system disk (normally Disk 0) and hit the delete button. Deleting a partition will destroy all the data on it. Data loss! Unrecoverable data loss! You’ve been warned (again).

Now that I read it over, this is a really short set of instructions considering how much time it took to figure all this stuff out. Good luck!


Factory Reset a Nexus S

I found lots and lots of terrible, incomplete or inconsistent advice on how to factory reset a Google Nexus S running Jelly Bean on stock firmware so here’s how you actually do it.

Note: Performing this procedure will wipe all your data. Make sure you have a good backup.

  1. Power off the phone
  2. Press and hold the volume up button, then press and hold the power button until the phone powers on. The phone will start up in the fastboot menu.
  3. Press volume down several times until recovery is highlighted, then press the power button to boot into Recovery mode.
  4. A picture of an android laying on the ground with an exclamation mark over his chest will appear. Press and hold the power button, then press volume up key to open the recovery menu.
  5. Press volume down several times until factory data reset is selected, then press power.
  6. Press volume down until the one “yes” in the field of “no” entries is selected, then press power to wipe the phone.
  7. Select the reboot option to power the phone back up and re-launch the initial configuration wizard.