Notice: register_sidebar was called incorrectly. No id was set in the arguments array for the "Sidebar 1" sidebar. Defaulting to "sidebar-1". Manually set the id to "sidebar-1" to silence this notice and keep existing sidebar content. Please see Debugging in WordPress for more information. (This message was added in version 4.2.0.) in /usr/share/wordpress/wp-includes/functions.php on line 4139 Tech Notes » 2010 » July

Works With IE (URLs)

Uncategorized No Comments »

A fellow I had a lot of respect shrugged me off on a simple thing: “http:\” … I remarked that it would work better if he used forward-slashes, per RFC-1738 (yes, I actually quoted the number).

“nah, it works with IE, it should be fine” Yes, that was said today.

Firefox fixed it for him. He saw this as proof that it qualifies as a valid URL, despite what the actual rules for a URL says (which he didn’t even care existed, and couldn’t be bothered to check what he was arguing against)

Is it any surprise that compatibility just doesn’t happen online? Seriously? When “liberal acceptance” implies “you can be flakey in what you produce”, might as well toss out RFCs, ISOs, and everybody make up your own way… because the really cool things will be worth everyone spending a lot of time to reverse-engineer a 98% effective compatibility, so it’ll work just fine… until it doesn’t.

Passive Check of Cron Jobs

Uncategorized No Comments »

I do a lot of things using passive checks — if there are things I want to keep an eye on without actually watching all the time.

For example, consider the following:

define service {
        use                             bidaily-service
        name                            bidaily-service-passive
        active_checks_enabled           0        ; service is passive only
        passive_checks_enabled          1        ; enable passive which seems redundant but for clarity

        check_freshness                 1        ; ...but check freshness to catch when the service isn't reporting in
        freshness_threshold             129600   ; == 36 hours: echo 36 60 * 60 * p|dc    -- to catch 2 failures

        check_command                   panic-run-in-circles-shouting        ; command to be run when freshness fails
        register                        0

… and an instance of that template:

define service{
        use                             bidaily-service-passive        ; passive: triggered by /etc/cron.daily/mirror-idisk
        host_name                       localhost
        service_description             iDisk Sync

In this case, I also have a script /etc/cron.daily/mirror-idisk that backs up my Apple iDisk (I love backups) and finishes with:

date "+%s PROCESS_SERVICE_CHECK_RESULT;localhost:iDisc sync:0:iDisk Sync OK %Y-%m-%d_%H%m" >> /var/nagios/rw/nagios.cmd

As you can see, this script does its work, and drops a successful return code into Nagios; Nagios simply shows it with a happy green marker on the status page.

What happens if the script’s action fails? It gives a bad result, and Nagios reports that.

What happens if the script has an error and chokes and dies? Nagios sees no result for 36 hours, and executes the “panic-run-in-circles-screaming” command. In my case, that’s another command that puts a failure into a queue, but that’s a bit tangental.

This is quite effective especially when my Nagios is tied to my Jabber, and can escalate to a twitter feed that reaches my by SMS. I know that errors will reach me, so I never have to check the status screen.

SBG6580 Sourcecode?

Uncategorized No Comments »

For enclosed spaces, I’m a big fan of all-in-one devices: they fit inside one smaller footprint, and use a single power connection, and doo all the things I need. I was a big fan of WRTSL54GS for this reason, plus the modifiable sourcecode.

The Motorola SurfBoard SBG6580 (damn, Moto, ever hear of shorter URLs?) showed up when I was looking for a Wifi-N/DOCSIS/hub that might fit inside my “Smart Panel” in my closet, and covers all the bulletpoints: DOCSIS-3.0, Wifi-N, 4 ports of 1gb goodness.

SBG6580 doesn’t have a simple way to create persistent VPN/PPTP connections (that I can see), and the SNMP only goes to the “head end” (the cable provider, I would assume). Finally, when it goes to sleep to conserve power, it’s not in any way fast about coming back up. I’m not sure whether it has a mdns stack to help printers work (one of those things they can’t really advertise because Joe Public doesn’t get it, and Moto doesn’t get blamed if the printer doesn’t work)

Despite these issues, I’m looking at repeating this exercise in my buddy’s closet to replace Comcast’s DOCSIS box, plus a WRTSL54GS.

Notable mention: the SBG6580 has a plug/wart/plug rather than a wall-wart, so it’s a bit easier to share the power connection inside the panel. I think I can lash down that power brick so that it gets a bit of heat-space around it. I’d feel better punching holes in the panel for heat-convection, though — count me crazy: it’s only a 1A/12V power connection, so would have trouble creating dangerous levels of heat without triggering its own thermal fuse.

Since the source for SB6120 is available, perhaps SBG6580 will be there too (it seems to be an evolution of the same product: add some ports) … that would give true future-proofing of the device, allowing it to evolve into an Asterisk server, proper VPN tunnels, SNMP that’s usable for end-users (non-head-end), etc.

No far, no SBG6580 (or SB6580) on Motorola’s website, nor at, and every google shows marketing information (nice google-bomb there) but nothing detailed nor usable.

So… where’s the source?

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in