Monday, December 29, 2008

XP SP3: STOP 0x0000007E (0xC000001D) (solved)

Update: If you arrived here, looking for a solution to a blue screen problem that started to occur on Feb 12th, 2010 - this is a different kind of problem. The solution to that can be found here: Heise Online (English). Basically, it is a side-effect of a Microsoft update (MS10-015) that triggers a flaw in an already present bootkit malware, which then leads to the blue screen of death problem.

From time to time (i. e. every workday ;-)) I still use Windows XP. Recently I kept getting complaints about the system partition being too full. I guess on all operating systems this can have all kinds of funny (or disastrous) effects, so I tried to clean up a little. Apart from the usual suspects (temporary internet files, some huge downloads on the desktop and the like) I noticed that there were literally dozens of $NtUninstall...$ folders containing the setup/uninstall files for a lot of updates that had accumulated over time.

I realized that those could be deleted, however I prefer having a "clean" system, so I went for Service Pack 3 first which should include all the individual patches anyway.

The SP3 network install package first complained about the RDP 6.0 MUI Pack (KB925877) being incompatible with SP3 and that I had to remove it first. Doing so via the Control Panel did not work for some reason: It disappeared from the list, however the SP3 setup still complained. I had to manually delete the registry key pointing to it (HLKM/Software/Microsoft/WindowsNT/CurrentVersion/Hotfix/KB925877) before the SP3 setup would start.

After a while it reported a successfully finished installation and asked for a reboot. So I did.... After the POST I got a quick glance at the XP boot screen which was very quickly replaced with a blue screen of death (official: "STOP error") with these details:

An attempt was made to execute to non-executable memory ... STOP: 0x000000FC (0xBA5038E8, 0xBE903964, 0xBA503848, 0x00000001) ...

I looked at my BIOS settings and found the "XD Technology" option set to "on". According to Intel's support glossary this is the "Execute Disable" feature, so I tried again having it switched off. This just replaced the error codes, the BSOD remained:

... STOP: 0x0000007E (0xC000001D, 0xF78DE8EA, 0xF78DE7F4, 0xF78DE4F0) ...

Neither Safe Mode nor regular boot succeeded. Using a different machine I came across some other people with the same problem. This forum entry gave me the necessary clue - probably one of the next things I would have tried anyway: It's a USB driver problem. I removed all USB peripherals - good thing to have a PS/2 keyboard lying around and that "legacy" port on your mainboard - and Windows immediately booted normally. I did not try to reattach the USB devices, but went right to the device manager and removed everything in the USB category. Even without another reboot I just let it then search modified hardware, having it re-detect all the stuff I had removed a minute before. One more reboot, with everything attached an everything is back to normal. Now I can finally delete the superfluous files for which I started this whole odyssey...

Wednesday, December 24, 2008

OS X Development

While waiting for my in-law's Ubuntu machine to download the update from 7.10 to 8.04 over a "DSL light" (384kbit/s) line I thought I might just write a bit about my first developer experiences on the Mac.

Back in August I switched from the PC to a 24" iMac. Now that I got a little more acquainted with it I thought I might just as well have a look at what the developer experience is like. People tend to say all sorts of things about Objective-C and that for a Java guy like me it would be a huge step backwards.

For that reason I was glad to read that Objective-C 2.0 comes with support for garbage collection, because manual memory management after years of Java would have been a real pain-point for me. I find it interesting to still see a discussion going on in the Mac developer world about whether or not GC is a good idea or not. I would have expected everyone to jump at it and leave the manual stuff behind with delight. Well, seems like a little bit of history repeating and all the same arguments against it being dug up again (most prominently of course it being slow and leading to several *seconds* of delay in the GUI all the time). But I am sure, this will pass.

Since then I have gotten used to the square bracket syntax oddities and XCode 3.1 is a whole lot better than the stuff I looked at several years ago when I worked for a company that targeted the Mac as well, but sadly enough had to shut its doors before anything meaningful could happen.

My self-education project is a sync tool that will allow me to keep my FRITZ!Box's internal phonebook aligned with the OS X AddressBook application. This is what I have come up with so far:

Unfortunately AVM - the makers of the FRITZ! line of products - do not offer an official API to upload the XML to the box. So I will have to figure out a way to either remote-control the web interface (yuck!) or somehow send it over via the telnet port (still yuck, but a little less... ;-)).

Apart from the unfamiliar language and library I am somewhat pissed about the level of comfort XCode offers. While it certainly is a good product and people who are knowledgable in it will disagree, it still seems to have a long way to go to catch up with either Netbeans or Eclipse in terms of productivity. After all refactoring is a little more to me than "Rename in scope" and "Extract method" - not even mentioning the differences in SCM integration.

But anyway, I am sure I will learn to live with and like it. I am currently on the look for a suitable book: I am proficient enough in Java and OO that I do not need an introduction to Objective-C, but I would definitely like a very thorough introduction to Cocoa, binding and the development model on the Mac in general. Of course it should include XCode 3 and be based on Objective-C 2.0 so I don't have to translate each and every step to the new version or even worse get used to deprecated ways of doing things. If you have any suggestions, please leave a note in the comments.

Sunday, December 07, 2008

US power sockets in the eyes of a European

I recently went on a trip to the U.S. For 10 days I stayed in different hotels, and in each of them I wondered about the state of the power outlets...

Armed with an adapter for my German/European plugs I tried to charge the camera's or phone's batteries. I don't know if it's just me, but I expect to just plug a device in and get a firm and secure connection to the power outlet. At least that's what I am used to at home.

However in all the hotel rooms the sockets seemed to have no "grip" on the plugs which then tended to either slip out completely or at least lose contact all the time. I first thought it might just be the adapter model I brought, but even the lamps and TVs in the rooms had flaky connections which would easily slip out even when just brushing the cable slightly. I believe this may have to do with the fact that in the US system the power outlets are just flat while in Europe they recess into the wall and provide a much firmer mechanical hold on the plugs. Schutzkontakte_steckdose.jpg The image is taken from German Wikipedia.

Maybe I am a little too "German" here, but I have to admit I felt really uncomfortable sleeping in a room with electrical connections like this. I have never seen such a thing here at home. If this is really normal, I wonder if there are more fires caused by problems with electricity in America than in Europe.