Yvan Rodrigues' problogue

(like a blog, but with less effort)

Disconnected ramblings about software development, iOS, FreeBSD, anti-social networking, kittens, drosophilidae, small business, Android, web services, finches, Windows, electrical engineering, XML, rental cars, rye, or ... FIVE dollars??!... something something beer.

FreeBSD bug i386/176073: Update from 9.0-RELEASE-p3 to 9.1-RELEASE-p0 "breaks" network interface

I discovered this problem while performing a routine binary upgrade from [geshifilter-code]9.0-RELEASE-p3[/geshifilter-code] to [geshifilter-code]9.1-RELEASE-p0[/geshifilter-code]. I checked [geshifilter-code]UPDATING[/geshifilter-code] and there were no warnings about known issues relating to my NIC.

[geshifilter-blockcode]freebsd-update -r 9.1-RELEASE upgrade freebsd-update install (reboot) freebsd-update install[/geshifilter-blockcode]

After the reboot my primary network interface [geshifilter-code]em0[/geshifilter-code] reported [geshifilter-code]no carrier[/geshifilter-code]. To make a long story short, the interface previously known as [geshifilter-code]em1[/geshifilter-code] was now [geshifilter-code]em0[/geshifilter-code] and the interface previously known as [geshifilter-code]em0[/geshifilter-code] was no longer enumerated.

Scrolling back through the console messages showed:

[geshifilter-blockcode]em0: Setup of Shared code failed device_attach: em0 attach returned 6[/geshifilter-blockcode][geshifilter-code]pciconf -vl[/geshifilter-code] showed that the interface previously enumerated as [geshifilter-code]em0[/geshifilter-code] was now [geshifilter-code]none0[/geshifilter-code]

I have read about other similar issues by other people in the forums, but not necessarily with my NIC (Intel Pro/1000). I think the common denominator may be the chipset. As this is a leased server in a datacentre I don't have much to go on except that it is a SuperMicro PDSBM which appears to use the Intel 946GZ
(Lakeport-G). Perhaps something to do with a pci-related driver has changed.

Follow the bug report here.

Bulk labelling volumes in Bacula

My EC2 Bacula storage configuration consists of a single pool containing multiple storage devices. Each storage device is a 100GB EBS store, and each contains a fixed number of prelabelled 1GB volumes.

Here's a little script I whipped together to prelabel the volumes with an incremental identifier.

[geshifilter-code]NAME bulklabel -- label new Bacula volumes with incremental names VERSION 1.0 February 5, 2013 SYNOPSIS bulklabel <pool> <storage> <start> <count> <prefix> bulklabel <pool> <storage> <start> <count> pool: name of pool resource storage: name of storage resource start: first numerical identifier count: number of volumes to create prefix: optional volume name prefix EXAMPLES bulklabel Default FileStorage1 10000 100 Vol- will create 100 volumes named Vol-10000, Vol-10001... bulklabel Scratch Tape1 20000 50 will create 50 volumes named 20000, 20001... COPYRIGHT (c) 2013, Yvan Rodrigues http://yvanrodrigues.com Red Cell Innovation Inc. http://two-red-cells.com LICENSE FreeBSD license http://en.wikipedia.org/wiki/FreeBSD_License [/geshifilter-code]

Xamarin Authorized Consulting Partner badge

Xamarin Consulting Partner badges

Xamarin doesn't have much in the way of graphics for its partners so I made these badges. Other partners may find them useful.

Vector single-path Android logo

Android logo

I needed to use the Android logo today, but the SVG I got from WikiCommons was made of many paths that used their strokes to exclude parts of the image instead of properly constructing the paths.

Here is the logo as a single path. It can be scaled, recoloured, or put on a background without any problems.

File Android vector logo3.41 KB

Why does Rogers have such contempt for their current customers? It's good for business.

cat and mouse

I just got off the phone with Rogers after changing my internet plan from the Extreme Plus (45Mbps/4Mbps/150GB @ $74.99/mo) plan to their 300GB Express (25Mbps/2Mbps/300GB @ $71.99/mo).

You see, Rogers raised their prices today, and my bill was getting a bit pricey. I don't need 45Mbps, and if I did I would use up that 150GB pretty quick. The new price is about $30 more than their competitor, who ironically leases their lines from Rogers.

When they raised their prices they sent me mailer to inform me. It listed all their plans with the old and new rates. When I saw the 300GB plan I was pleased to know I could get twice the volume by sacrificing some speed (I've been burned by overage charges and didn't want to pay an extra $20 a month for 80GB more on the chance I went over my monthly allotment) .

So I called up customer service. The rep said she couldn't offer me the 300GB plan. Oh for fuck's sake. I read between the lines. I've played this game before.

OK, I'd like to cancel my service please.

I'm sorry to hear that. You'll need to call this other number for cancellation.


Hi, yes, I'd like to cancel my service.

No problem, we can take care of that, but I'll need to put you through to another department.Hi, yes, I'd like to cancel my service. I need more volume and I don't want to pay more.Well, I have a 300GB plan I can offer.

Of course once I got through to the retention department (as it's called in the biz) I was easily able to get the plan I wanted, and both the rep and I knew we were just going through the motions of this stupid cat-and-mouse game.

Everyone in business knows that it's so much cheaper to retain an existing customer than find a new one, and yet companies like this show contempt for their customers by offering new customers 6 months of cheap rates and other incentives; and only offering value to existing customers when they threaten to leave.

It's also well known that both customer and employee satisfaction increases when front-line employees are empowered to offer the best solution possible to their clients.

That means the only logical explanation is that Rogers has done the math. This isn't a misguided policy. It's a business strategy. They know their policies piss off existing customers; they willfully bend over for new customers; and they're willing to accept the consequences of trading loyal customers for new ones, because there is a net economic benefit. They use the same strategy in their wireless, cable TV, and even magazine markets.

Do Rogers' executives adopt this strategy at home too?

Honey, I know we've been married for 10 years, but I'm not willing to put any more work into this relationship. I think I'm ready for someone younger and more naïve.

You've got to be kidding. If you're going to be a prick, I'm leaving. I want a divorce.

Oh. That sounds expensive and inconvenient. What if I let you drive the Lexus. Will you stay?

How to close the browser in javascript

Intuitively, you would think that if you want to close the main browser window, all you would need is:


This will actually work on a "fresh" window, but if use has navigated away and back to the page, it may not work.

I have found the following to always work.

[geshifilter-javascript]function CloseApplication() { window.open('', '_self', ''); window.close(); }[/geshifilter-javascript]

No xbox partition table found

While attempting to soft mod an old XBox using the cable swap method, XboxHDMaker kept giving me the error:

[geshifilter-code]No xbox partition table found on /dev/hda drive is not locked but locking is enabled dont reboot untill you have build a working xbox hdd since reboot will lock the drive press ant key to abort operation.[/geshifilter-code]

The hard drive in question had a valid partition table, but several attempts left me with the same message.

I believe the issue is that I was not restarting the PC. The PC was already booted into the Linux live CD. I shut down the PC and rebooted it to the BIOS setup screen. At this point I swapped cables. It worked!

Dear "()<>[]:,;@\"!#$%&'*+-/=?^_`{}| ~ ? ^_`{}|~.a"@example.org

As I ranted in a recent tweet, "A plus sign is a perfectly valid character in an e-mail address." Yet about half of all sites I visit tell me my e-mail address is invalid when they encounter +.

The format for e-mail addresses is defined in RFC 5321, RFC 5322, and summarized nicely in RFC 3696. For the record, these are all valid e-mail addresses:

I thought my server seemed slow.


but this confirms it. Bear in mind that upload is server to client. I'm betting on a bad cable between the server and the switch, but we'll see what iWeb says.

Follow-up: They had originally configured the NIC for auto-negotiate which it didn't like. Setting it to 10/full fixed it.



Simple Copyright Policy: If you want to reproduce anything on this site, get my permission first.