At work I’m building a simple tool to populate a FogBugz wiki page with build information. One of the things this tool needs to do is pull the XHTML contents of a wiki page, parse it (as XML), and take action on the resulting document tree. Initially I expected this to be stupid-easy, as XHTML is just XML, right?
Au contrare!
The first problem is XHTML documents likely contain entity references like and whatnot. These entity references aren’t XML entities, they’re XHTML entities, so you must load the XHTML DTD in order to resolve them. Trouble is, this means there must be a proper XHTML DOCTYPE directive in your XHTML (which there isn’t in my case since I’m using fragments).
Once a valid DOCTYPE directive is added to the XHTML, now .NET will download the full DTD from W3 just to parse a little XHTML fragment. Not acceptable.
My work on a tool to migrate Drupal content to Wordpress’ eXtended RSS (‘WXR) led me into some dusty corners of the WordPress codebase, and I’ve been meaning to write a grumpy post about how much I hate PHP (in which Wordpress is written), but Jeff Atwood at Coding Horror beat me to it with his own PHP sucks lament. Like me, Jeff wonders at the success of PHP given what a dreadfully sucky software engineering tool it is, and scratches his head at the many major Internet properties (Wikipedia, Digg, and Wordpress among them) which are successful notwithstanding an implementation in a language a VB6 programmer might reasonable call “shit”.
Interestingly, though, Jeff and I arrived at two different conclusions on the matter. Jeff surmises:
Some of the largest sites on the internet — sites you probably interact with on a daily basis — are written in PHP.
The hosting provider for apocryph.org, DreamHost, is experiencing a serious outage that has resulted in apocryph.org sucking serious wind and/or being completely offline. DH’s latest claim is a fix from their storage vendor will cure all ills, but this has been going on for a week now so it’s hard to imagine a QFE from a vendor will just make it vanish.
Anyway, I probably brought this down upon myself, since I went from fairly-cheap-but-still-shitty CI Host to considerably-cheaper DreamHost, based on the promise of ridiculous expanses of disk space and lavish transfer quotas.
No sooner had I finished excorciating Rep. Frank Wolf for his spendy ways than did Reason find a worse example of Wolf’s feckless insanity. Reading the original NYT article, it’s a classic Wolfian solution to a non-problem: federal moneys go to an anti-porn crusader organization which hires retired cops to investigate porn reported by concerned citizens for possible obscenity violations.
Whilst building Wireshark I ran into a nasty gotcha in Visual C++. If you set a preprocessor definition in the Preprocessor screen and you use quotes, like _U_="", the IDE happily accepts it, but shit breaks wierdly. Errors like
cl : Command line error D8003 : missing source filename
and
LINK : fatal error LNK1561: entry point must be defined
I’m working on building a Win32 static library version of zlib, which uses some .asm files. One of these files, inffas32.asm, contains this line (line 647):
movd mm4,[esp+0]
This line fails to assemble with the following error:
error A2070: invalid instruction operands
A while back, my pirate friend brought over a rip of Highlander: The Source, the latest movie in the Highlander franchise. I enjoyed the series as a teen, and the last movie, Highlander: End Game, was pretty good. Sure, this one got bad reviews on IMDB, including the dubious claim that it was the “worst movie ever”, but I figured the reviewer just didn’t get the Highlander Zen.
Over the weekend I suffered yet another hard drive failure on prospertine; the second in as many years. The first time I attributed the problems to the super-hot 10K RPM Western Digital drives I had crammed into my tiny Shuttle SB81P chassis, but I had the same problem with cool-running 7200 RPM Baracuda 320GB drives.
Part of my company’s product involves using Windows PE, the bootable-from-a-CD Windows environment Microsoft licenses to companies for products like Symantec Ghost. It’s basically equivalent to the Bart PE project, but it’s officially supported by MS.
The environment you get when running under Windows PE is very limited, and changing that limited environment is tricky. In my case, I need to run some code I wrote in Visual C++ 2005, which is dependent upon the Visual C++ runtime DLLs, atl80.dll, msvcm80.dll, msvcp80.dll, and msvcr80.dll. For various reasons I won’t go into, I don’t have the option to statically link to the runtimes and thus avoid the DLL dependencies in the first place.
I recently switched to a Health Savings Account, getting my High Deductible Insurance Plan from Anthem. Little did I know that, over at Anthem, it’s still 1994, and only computer people use the Internet.
To wit, functions like signing up and making a payment are only available during business hours. I tried to pay my bill at 8:30 PM tonight, and got this:
Site Unavailable
The online self-service feature you have requested is unavailable at this time. Our regular system operating hours are Monday through Friday from 6:00 a.m. to 8:00 p.m., Saturday from 6:00 a.m. to 3:00 p.m., and Sunday from 9:00 a.m. to 1:00 p.m. We apologize for any inconvenience this may have caused.