### From the Windows Event Log

02:47 pm
Generate Activation Context failed for c:\Temp\updater\tests\basic-success\bin\updater.exe. Reference error message: The operation completed successfully.

Error messages like this make me realize that the entire point of the Bill and Melinda Gates Foundation is to shave hours off Bill Gates’ allotted millennia of doing tech support in Hell, where the network is a mix of Windows ME, 2000, and Vista.

 LOATHE Their developers are smoking advanced experimental prototype monkey crack again.

01:27 pm

I just switched to a standing workspace at the day job, for my health. The traditional way to go about this in an open plan office is apparently to just prop up your existing desk on cinderblocks. I was a bit concerned about the stability of doing so with a single cinderblock on end, so I bought a dozen so I could lash them together in groups of three with zip ties. (Total cost at Home Despot: about $20.) Of course, this meant people were remarking on my hauling in a dozen cinderblocks this morning. (Some of them even volunteered to help lug them, without being asked. Good folk here at Electric Cloud.) My response to inquiries was: “Either I’m building a standing workstation, or I’m creating a miniature Stonehenge in honor of my ancient Druidical beliefs.” And my feet are already glad I bought a gel mat at Bed, Bath, and Beyond. ### Another reason I prefer not to work on Windows 03:44 pm Microsoft have mostly coped with the difference between how they like \ for a path separator while the Unix world prefers / by making user-mode paths usually work with either kind of slash. (They still use backslashes in the kernel.) Since \ is also a popular quote character, it is very convenient to just use slash-paths whenever possible so there isn’t any hassle when going between different shells that might or might not decide to interpret \ has having special meaning. Normally, this just works. But then there are the times that it doesn’t: C:\Temp\foo>c:/windows/system32/xcopy.exe /f /r /i /d /y * ..\bar\ Invalid number of parameters C:\Temp\foo>c:\windows\system32\xcopy.exe /f /r /i /d /y * ..\bar\ C:\Temp\foo\blah -> C:\Temp\bar\blah 1 File(s) copied  The same problem will occur if it’s getting the path to c:\windows\system32 from the PATH environment variable, making it utterly unclear as to why the command is failing. If I ever take a job at a Windows-only shop, I am going to insist on a serious salary bump for hazard pay.  LOATHE Their developers are smoking advanced experimental prototype monkey crack again. ### When you need incompetence, you can always count on Microsoft. 12:53 pm A common practice in software engineering is to turn on all the warnings in your compiler, giving it a chance to warn you about unsafe practices, and then to turn on an option that turns warnings into errors so you can’t get code to compile while it is still triggering warnings. This helps avoid dodgy coding practices, though it occasionally necessitates an override when you know damn well what you’re doing and the compiler can’t figure it out. Of course, this requires that the underlying libraries on top of which you’re building your code don’t trigger warnings. Releasing a compiler where even Hello, world! can’t pass that gauntlet? That takes talent.  LOATHE Their developers are smoking advanced experimental prototype monkey crack again. ### New commute 10:10 am So Electric Cloud outgrew its old digs in Mountain View and moved... to a spot in Sunnyvale about a mile from Maine Coon Manor. I’m commuting on foot these days. ### The light at the end of the tunnel is not the headlamp of an oncoming train... 03:30 pm ...but there’s a considerable upward slope between here and there. We have a new engineer who’s taking over Windows driver development, but he only started on Monday, and he’s going to need a few months to get up to speed, just like I did when I started at Electric Cloud. (He has Linux driver experience, but not Windows file system driver experience; people with the latter are just too hard to find.) And meanwhile, I’ve got yet another extremely subtle NTFS behavior I need to emulate. I’ve been working on things outside the driver world for a while, and feeling pretty good... but it’s amazing how fast my energy goes away when I have to wrap my brain around all the interlocking constraints of a file system driver that has to pretend to look like another (undocumented) file system driver.  REVILE They obviously can’t be bothered to write useful documentation. ### There is not enough single malt whisky in all the world 04:24 pm The engineers who designed Windows file systems must have, at some point, discovered that their standard interface was too slow. Rather than coming up with ways to make it faster, they simply introduced a new, parallel one, called “fast I/O”, whose functionality is entirely redundant to the usual one. This is optional, but if you don’t implement it, some behaviors (like appending to a log file, one byte at a time) can become extremely inefficient. And naturally, none of their sample code shows how it’s supposed to work.  LOATHE Their developers are smoking advanced experimental prototype monkey crack again. ### Even they admit it 03:52 pm From the Microsoft Windows Device Driver Kit documentation: The specific rules to follow here are unclear, but as with most things in NT, if you do it wrong the system will fall apart at some future time. This is in a technical article written by the folks at Open Systems Resources, not the actual Microsoft writers... but it’s going out as official Microsoft material.  REVILE They obviously can’t be bothered to write useful documentation. ### Back to the bit mines 03:22 pm Electric Cloud has an open-plan office, and my desk is right next to the CTO. He finds it amusing to hear me talk to headhunters when they call: Recruiter: “I understand you have a background in Windows API work.” Me: “I also have a background in wanting to messily slaughter the entire Windows kernel team for creating really bad APIs.” I find that most headhunters tend to just ignore the outrageous statements rather than attempting to parse them for content. Last week I got a recruiting attempt to work at Microsoft, and sent my usual explanation of why their management practices create an environment in which I wouldn’t wish to work, and the response was a complete non sequitur: that they were working from an out-of-date résumé.  DISDAIN Windows-related tasks are under control. ### Cognitive dissonance of the day 05:23 pm I know that when I read the term “POJO” in design documentation, they’re talking about Plain Old Java Objects. But nevertheless, I cannot help but think about fire-breathing chickens... ### More code comments that won't get shipped 03:52 pm Background: I’m writing a script to read data out of ClearCase history records. The format code %Nd is used to get the maximally specific timestamp for an operation, in yyyymmdd.hhmmss format. The lshistory command accepts a parameter -since that allows you to see all records that have been entered since a given timestamp. And -since insists that its long date format look like dd-month-[yy]yy.[h]h:[m]m:[s]s, which means that if I want to grab the most recent record and stash its timestamp to use as the -since for the next query, I have to rearrange it. Somehow, I suspect that I will be required to redact this comment before we ship a script containing it: #$when is in yyyymmdd.hhmmss format.  It is, of course, invalid as input
# to "-since", because that would be presenting a consistent interface,
# which would doubtless violate some engineer's Dark Pact and cause their
# soul to be claimed immediately.


### Whatever happened to truth in advertising?

12:25 pm
Today, the treat at work was from Noah’s Bagels, and the box had a slogan:
Noah’s makes any occasion taste better!
My natural reaction was to look for exceptions to their blanket statement: any occasion? What, they’re making unleavened bagels for Passover?

### Lesson for the day

01:06 pm
Our office manager brought doughnuts to the office today, and announced them by sending out e-mail with the image of Krispy Kreme. Unfortunately, she used the first hit on Google Images (which is actually a reference to a Chris Rock line about Krispy Kreme’s new slogan after they legalize drugs) without reading the blurry-but-readable text in the lower right hand corner.

So the lesson for the day is: do not copy-paste from Google Images without taking a careful look at the picture. (Notice that Google Images doesn’t have an “I’m feeling lucky” button?)

### Today’s learning experience

03:19 pm
 REVILE They obviously can’t be bothered to write useful documentation.

Today’s technical learning experience: the SuspendThread() call in Windows can return before the thread involved is actually suspended. On a fast multiprocessor machine, the “suspended” thread can actually crank out a few hundred instructions before it grinds to a halt. MSDN doesn’t tell you anything about this one way or the other.

Fortunately, I am going on vacation, and will not need to return to work until January 3, so as soon as I walk out of here tonight:

 IGNORE I can pretend it’s not there.

### Hazards of after-lunch code reviews

02:26 pm
Going from lunch to a darkened room to look at someone else’s code runs the risk of triggering afternoon naps.

### (no subject)

09:23 pm
Trying to figure out bizarre behaviors in Windows drivers is not my idea of a good time. At least my job lets me bring home my machine so I can work late in the comfort of my own home.

### My work is getting increasingly surreal

05:06 pm
I’m debugging both a Windows driver and the client application that talks to it. I have a Windows XP machine running WinDbg to debug a Windows 2000 machine at the kernel level over the serial line. The same Windows XP machine is running Microsoft Visual Studio to debug the client application on the Windows 2000 machine at the user level over TCP/IP. Neither of these machines exist in the physical world: they’re both figments of the imagination of VMware Workstation running on a Linux machine.

Of course, given that people will happily exchange real goods and services for having arbitrary numbers juggled in a bank’s computer, this isn’t too out of the ordinary for the modern world.

### (no subject)

04:37 pm
It’s cool to work someplace where people react to an article on hooking up lava lamps as feedback from the build system by actually implementing it.

### I'm surprised this much indirection goes this fast

04:49 pm
I’ve found that it’s rather convenient to load Cygwin onto my Windows XP VM so I can send an xterm to my Linux desktop, while the actual VM desktop sits idle in another virtual desktop. The VM is accessing a network mount of a directory shared from Linux (where the source code is living) to run a build, and it’s all moving at a reasonable speed.

### "Knowledge Nomad" sounds so much better than "Job Hopper"

02:33 pm
Interesting article: High Turnover: Should You Care? “New research suggests that you focus less on retaining employees and more on re-recruiting your ‘knowledge nomads.’”
Increasing employee mobility— the degree to which workers change companies— appears to be a fact of corporate life in the 21st century. But are such workers less committed to their employers as a result?

The common perception is that workers who hop from job to job are less committed; perhaps even suffer from an inability to commit. However, the reality is that this new generation of “knowledge nomads,” while moving frequently, do form attachments and commit to employers when they stop, according to Todd L. Pittinsky (HBS PHDOB '01) and Margaret J. Shih, in Knowledge Nomads: Organizational Commitment and Worker Mobility in Positive Perspective from the February issue of American Behavioral Scientist.

The rise of knowledge nomads creates “profound implications for managers and for researchers,” says Pittinsky. For example, employers should spend less time trying to “retain” employees through incentives like salary bumps and more time “re-recruiting” them by offering interesting challenges and learning opportunities. Retention will follow when appropriate.

Max Kaehn

S M T W T F S
123456
7 8910111213
14151617181920
212223242526 27
28293031

## Style Credit

• Style: Green Machine for Lefty by

## Expand Cut Tags

No cut tags
Page generated Feb. 21st, 2019 01:39 pm