I’ve had a Nest for just under a month now. It’s too early to see whether it’ll really help with the energy bills, or if the only real benefit is having a working HAL 9000 hanging on the wall.

This morning I was thinking through possible next steps for that kind of technology, that maybe Siri 9.0 will figure out that I’m driving home for lunch today (which I only occasionally do) and automatically tell the Nest to crank up the heat, and it occurred to me that there’s no real reason to wait that long. The Nest app could request location change notifications from the OS, figure out that I’m getting closer to my house at a time that doesn’t match the Nest schedule, and raise an iOS notification asking if I want to go ahead and bump the nest out of “away” mode.

Anybody from Nest listening?

Making “Date Modified” Stable in Windows Server 2012

We recently replaced one of our servers with one running Windows 2012. There’s a folder on that server that I maintain by hand with this procedure: sort by Date Modified descending, then select and delete all files older than a target date. That worked well in Server 2003 and 2008, but in 2012 it’s a disaster: new files are constantly being written into that folder, and the user’s selection in Windows Explorer in no longer stable in those conditions in 2012: the cursor and scroll position are constantly jumping around so you can’t select exactly the start/stop file you want and, worse, your selection is constantly being canceled for you. Thanks, Microsoft.

The workaround I found for this is to use the Search box. Instead of doing a Date Descending sort in Explorer, type something like this into the search box:


That will get a list that, by definition, is stable (no new files are being created in the past right now 😉 ). That works as long as you trust the search results to actually be correct, something that I wouldn’t give 2003/XP credit for, but which 7 and above seem to have gotten correct.

Google Image Search

Ok, so I know this has been around for a little while now, but today was the first time I had a real opportunity to use Google’s image search. I was up way too late last night reading theories about Looper and one of the random “other story” links on a website I hit had a picture of a monster that really, seriously creeped me out. I mean, grown-adult-with-kids-but-still-might-get-nightmares creeped out. So off to Google image search to learn about this new enemy – and it worked great. It turns out it’s a death spirit (Shinigami) named Ryuk from a live action version of the anime “Death Note”. Just a bit of knowledge, and I’m considerably less creeped out now. (And Death Note is now at the top of my Netflix queue).

Worx SD Semi-Automatic Driver

At the end of my last post, I mentioned a shower-door repair. That repair took all of 5 minutes, mostly because it turned out to be a really easy repair, but one thing that sped things up a bit (and made me look like a mashup of James Bond, MacGyver and Chris Farley) was a Worx SD that my father-in-law got me for Christmas. It’s a good example of the kind of tool I’d never have bought for myself but really like now that I have it. I usually like my screwdrivers to be human-powered, but there’s just an undeniable cool factor in changing bits by sliding back the action of this handgun-shaped driver and revolving a new bit into place.

Siri and Reminders

I’ve always been one to organize and get things done by making lists — shopping lists, TODO lists, and so on — but I’ve generally not been good at following through on lists of things that fall into the “not right now, but not never” category. Lists like that have a long lifetime and a low priority and tend to get scattered, forgotten, etc. I’ve tried several TODO apps and services in the past few years, but the one that has actually stuck has been Apple Reminders+Siri, especially since I recently switched to an iPhone. I’ve always got a computer, iPad or iPhone with me, and while Siri isn’t as good at recognizing my voice or meaning as Google, it’s got two critical advantages:

* It’s good enough.
* It’s exactly one button-hold away at all times.

So now no matter where I am, whenever I think of something, I can hold down that Siri button and say something like:

* Add a ball peen hammer to the shopping list.
* Add The Wealth of Nations to the reading list.
* Remind me to change the car’s oil when I leave work.
* Remind me to help Ian build his pinewood derby car next Saturday.

Siri almost always understands what I mean, and the experience is vastly different than tap-tap-tapping to find an app, then typing on a tiny keyboard. Different enough that with Siri my lists actually get made and used, unlike every other similar tool I’ve never used.

YMMV – I think I read somewhere that the word “list” is important in those instructions to get Siri to do the right thing, something that came naturally to me but may take an adjustment for some.

That ball peen hammer example is a good one: I don’t have a ball peen hammer b/c:

* I only need one once in a blue moon.
* When I need one, you can always work around it by other means – it’s not worth a trip to the store.
* When I’m at a store that might have one, the memory of having needed a ball peen hammer is too distant to come to mind.

With Reminders+Siri, the evidence is that I’ll end up with a ball peen hammer in the next week or two, whenever I happen to be at a store.

Reminders itself is pretty primitive. There’s a few things I’d like to do for longer-running lists/projects, like archiving reminders without deleting, or grouping related TODOs. There are workarounds, though, and these gripes are tiny compared to the one major benefit: it’s well-integrated enough that I actually use the tool to get things done.

Siri isn’t perfect either; again, Google is often better at understanding what I mean. Siri has a tendency to do things like look for nearby restaurants b/c I said a sentence that happened to have the word “steak” in it. If Google (or any other app) could hook into that home button and replace Siri, somebody might make a better Siri for iOS hardware (imagine one of the more fully-featured TODO apps coupled with Google voice recognition!) Apple’s walled-garden approach seems unlikely to see that happen. However, even if they did open up a configuration option and plugin API for what happens when you hold the hardware button, I have little hope that anything better than Siri would actually emerge. I had Android phones for years, and tried a number of “Siri-like” apps, both before and after Siri itself made the scene. Nobody else I’ve tried has gotten it even close to right – they all do unacceptable things like take decaseconds to start listening, or do web searches in a tiny, framed, feature-limited embedded browser instead of switching to the phone’s actual browser app.

Got to go. Siri is reminding me to “Fix the shower door before my wife’s brain melts”.

Anybody know where to buy a good ball peen hammer?

Anybody Home?

One day in 2009, I took my server down for a little routine maintenance…and never turned it on again. Spending time with my young children and helping make this startup a success has just been far more important.

I’ve found myself occasionally rising above the surface for a breath of air lately…and let’s face it, I was also itching to get my hands on a bash command line again :-) So, as part of my multi-pronged effort to return to both the real and virtual worlds, I got WordPress set back up on this server today, and this is my test post to verify whether it’s all working.

See you in 2015!

Comment Bankruptcy

I’ve had a pretty busy year and I haven’t done much writing, and I entirely stopped cleaning out the comment spam. It all gets blocked before it hits a post, but I have to manually comb through it all to throw away the spam and approve the occasional “real” comment. I had to clear some space on this disk today but didn’ thave time to work through 8873 proposed comments (8872 of which are sure to be spam), so I declared Comment Bankruptcy and deleted them all.

delete from wp_comments where comment_approved = "0";

So if you tried to post a comment on a post and it never showed up, that’s why.

Star Trek

It suddenly occurred to me tonight that my son was born exactly as many years after TNG went off the air as I was born after TOS went off the air.

Indiana Jones

I watched Temple of Doom and Last Crusade tonight, for the first time since I was a teenager. A few weeks ago I saw Back to the Future for the first time in as many years as well. It’s funny how many things I notice these days that I never would have 15 years ago. Like the fact that the movie playing in the theater downtown in BTtF was a porno in pre-trip 1985 and a Christian speaker post-trip. Or Julian Glover’s comment as Walter Donovan in Last Crusade that the precious valuables paid for right to travel within Hatay were “donated by some of the finest families in all of Germany,” which almost certainly means they were looted from Jewish families. Forget college, though: that’s 10 years of The History Channel talking.

Clipboard Prioperception

Prioperception is your brain’s ability to know where parts of your body are.  Even without seeing or feeling your hand, you generally know where it is, you can navigate through doorways without running into them with your shoulder, and you don’t typically fall down when you try to sit in a seat b/c you know generally where your hind-end is.

I’ve read somewhere that the concept of having five senses is pretty outdated given our current understanding of the brain, and that there are probably more like 25.  Sure, there are the obvious external senses, but we also have psuedo-external senses like prioperception, and lots of internal senses that aren’t nearly as obvious but that nontheless control things like cravings and hunger (e.g., blood sugar).

One of the possible outcomes of human-computer interface advancement is to provide humans with totally new senses.  I think I’ve developed at least one new sense already, though, after 15 years of using Windows: I know when there’s something in my clipboard.  Now, of course if I cut something and then immediately paste it, I know, intellectually, that the text I just cut is in the clipboard, but this is more than that.  Even if I copy the text, then get distracted and do something else for 15 minutes, I’ll still find myself with a feeling that there is something in my clipboard.  I might not even remember what it is, but I’m almost never wrong: if I open a blank notepad and paste, I’ll find something that I had copied or cut and had not pasted.  Of course, technically, the item often remains in the clipboard even after that point, but after pasting it where it’s supposed to go, the feeling goes away.  Just like I may know that there’s something in my hand, even if I’ve forgotten having picked it up or even what it is (something that happens often when I’m cleaning the house), I just “know” that there’s something in my clipboard that I haven’t pasted yet.  I’ve even had the feeling persist after getting up from the computer and coming back, after totally losing my context.

Computer Interfaces

On the holodeck, on the Enterprise or Voyager, when somebody says, “Computer, delete Medical Consultant program and all related files”, the medical consultant program and his lab disappear from the holodeck.  The computer never says, “The file cannot be deleted because it is in use by the Holodeck.”

D3D Debug Output: Enable Unmanged Code Debugging

The title says it all.  I spent a couple of hours thrashing around a while back before I realized that the reason I wasn’t getting debugging output from Managed Direct3D, even though I’d turned it on, is because I hadn’t enabled “Unmanaged Code Debugging” in the project properties for my main EXE project in Visual Studio 2005.  So I thought I’d throw this post up here; maybe Google will pick it up and help the next poor guy.

Whether or how this applies to XNA I do not know yet.

Vista Explorer File Copy Sucks

Sorry, my eyes are still too crossed from a cold, seething rage to be more articulate than that headline.

You can’t delete whole directory structures — even small ones — b/c it sits and thinks forever and then maybe gives you Access Denied, but then when you drill down and delete individual files one at a time you can work your way up and finish deleting the whole structure by hand, all while the first delete that you tried still sits there working or complaining.

You can’t copy large amounts of data (several GB, say) b/c the file copy window simply chugs along inspecting for a while and then goes away, having copied nothing.

Did no one at MS test Vista’s explorer.exe with more than Mickey-Mouse tasks?

I’m so disappointed I want to cry…or order a Mac Mini.

Robocopy Backup on Vista

I run a nightly backup here using Robocopy.  It worked great on XP.  Since I switched to Vista, it hasn’t been working, and I finally was able to take a look at it today.

The Robocopy log file was showing that it was trying to copy files into C:\Users\All Users\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\Application Data\… and so on …

As of Vista (well, NTFS 3.0), you can make Junction Points, which are essentially the same thing as symlinks in Unix.  And apparently C:\Users\All Users\Application Data\Application Data is a symlink to…it’s parent.  Good job!

The fix for my Robocopy backup was to add the /XJ flag.  That tells Robocopy it to skip Junction Points.  It means that a restore from that backup will be missing those links, but that’s better than not getting a backup at all.

Why, oh Why Not (Panel : ContainerControl)?

I think this bit of code that I just wrote (edited to remove any mention of what I’m actually doing for my current employer right now) says it all.

            // Must disable automatic validation to keep,
            // e.g., the foo table from trying to validate
            // an incomplete current row just b/c we clicked
            // the frobinator over on the flogster.  It would
            // be nice to be able to control this on a
            // per-control or just per-container basis, and
            // you sort-of can, except that Panel does not
            // derive from ContainerControl
            // (,
            // so you have to use UserControls to get that
            // kind of control, which is a big-enough
            // pain-in-the-ass that we just make do without.
            AutoValidate = AutoValidate.Disable;

Phone Spam from Charter

My cable TV and Internet provider (Charter Communications) just spammed my home phone with a recorded message to advertise their On Demand channel.  This kind of stuff is totally unacceptible.  Just because it’s legal does not mean that you must do it — there is no “advertising imperative” that says that just because you can spam someone’s phone that you inevitably must.  (The do-not-call list does not apply in this case because I have an existing business relationship with Charter, by being their customer.  That’s a big loophole in my opinion — I get enough phone spam and unwanted calls from Bellsouth, Charter and various charities, all of which can legally call me as much as they want, to barely notice that the do not call list exists.)

Message to companies that want to keep their customers: don’t use my home phone for your recorded advertising.  Just don’t do it.  When the urge hits you, go take a cold shower and remember that respect for other people is not necessarily mutually exclusive with concern for the bottom line.  Maybe there are cases where you could make a dollar but just shouldn’t do it…  I mean, prostitution is legal in Nevada, so shouldn’t Charter be operating a few brothels, since it can?

Debugging in IE 7 in Vista

I wrestled some in the past few days with with trying to debug some code that is hosted in Internet Explorer 7 under Vista.  I finally found the answer at, though they didn’t actually describe the same problem I saw.  (So here’s the description for future Googlers).

Short answer: Start Visual Studio via “Run as Administrator”.

Continue reading

Ian’s Feet

So, my 5 month old discovered his feet last night.  He’s only been using his hands in a manner that could be called non-accidental for like a month now, but last night he was sitting up (with some help), staring at his feet, and trying to reach them with his hands.  Unsuccessfully, I might add — his coordination needs some work.  But they definately had his interest.

Being a dad is great :-)

iTunes on 64-bit Vista

I am running a beta of Windows Vista on my dual core AMD64 desktop.  I had been running a 32-bit build of XP on it because I had read that 64-bit XP had some problems with driver support for some of the hardware I need for work.  Everything seems to be working fine so far with this 64-bit Vista, but I ran across a problem installing iTunes that Google seems to think no one else has seen before.  Hopefully it’ll pick up this page with my solution, in case someone else runs across this.

The problem: start the iTunes installer and get this error message after a few moments “iTunes could not be installed because Visual Basic Script (VBScript) is not installed or has been disabled”, and then a bunch of additional noise.

I found one hit on Google for that phrase, and it was a guy who didn’t have the Windows Scripting components installed at all (or whose installation had been corrupted, possibly); downloading them from Microsoft fixed his problem.  Vista has all the Windows Scripting components preinstalled, of course, so that wasn’t the problem.

The problem was that, for some reason, the 32-bit version of VBScript.dll wasn’t registered on my machine.  I don’t know if that’s by design (a security feature) or a bug in this beta build of Vista.  The solution:

  1. Start Menu -> All Programs -> Accessories -> Right Click on Command Prompt -> Run As Administrator.
  2. Type “cd C:\Windows\SysWOW64”
  3. Type regsvr32 vbscript.dll

If you don’t do Run as Administrator, the regsvr32 will fail.  Also, be careful to run the command in SysWOW64, not System32!  System32 on a 64-bit system actually contains the 64-bit system libraries.  The 32-bit versions are in (where else?) SysWOW64.  Makes perfect sense, right?  (From an engineering standpoint it probably does, but it’s going to be a source of confusion for a lot of people, no doubt).

1 2 3 4 6