Alcaic Research and technology, not iambic verse.

28Mar/120

Death of a friend – and resurrection.

Context

About a year back, after a system update, our 2006 iMac (ATI Radeon X1600 GPU) started acting flaky. Strange visual artifacts popped up sometimes, and the machine hanged (hung?) unexpectedly. This post shows what you can do to solve this problem - partially - and I am putting it up because it took me several days to hunt through old message board posts to find it.

Origin

The root cause of the problem appears to be (shame on you, Apple) some quality problems on a certain batch of GPUs from ATI and their mounting. With the ever increasing reliance of OS X on the GPU (Quartz Extreme etc...), the component starts to heat up and some of the electrical contacts fail. That is was temperature related was very apparent last summer.

Solutions

Browsing the web (I am not going to give you a long list of links, since most of this info was buried deep), the solutions fell into 6 categories

  1. Get Apple to replace the GPU subassembly. In my case: too late (even with extended warranty).
  2. Open up your iMac and clean it out, improving the airflow and (hopefully) reducing the temperature. Well, this was needed, and helped for about 3 days. Probably, opening it and cleaning it out just changed some mechanical strain that relaxed later on and the problem resurfaced.
  3. Reflow the soldering by using a hairdryer. Did not try this - the evidence seemed inconclusive and since I did not have a backup machine (I do have a backup of the data) to serve up the files in the house, I did not want to risk frying the GPU completely.
  4. Applying extra thermal paste. Didn't try this either.
  5. Using smcFan Control or Fan Control to increase the airflow. This is the one that convinced me this is the root cause, because it helped. Most of the time. But the iMac did sound like a vacuum cleaner. Most of the time.
  6. Removing the drivers. You read that right. By removing the GPU drivers, the iMac falls back on using the CPU and basic gfx, and hence the GPU is not used and does not run hot/does not corrupt anything. There is of course a trade-off: some programs that use this to payback video, and games as well, no longer work well/at all.

The last option worked very reliably. And since I only use the machine as a server, it is also the cheapest.

What do I do ?

Assuming you want to try #6, here are the steps:

  1. Reboot in safe mode (hold the shift-key immediately after the startup chime)
  2. Go to /System/Library/Extensions/
  3. Move/delete files that start with atiradeonx1000 and atiradeonx2000
  4. Reboot.

Conclusion

I now have a stable machine again, but I am not happy with Apple. This appears to have been a widespread problem a while back, and a divergence of the quality level I have come to expect from Apple. That it is a 6 year old machine is not an excuse - it still runs the latest OS X smoothly (which always surprises me) - I expect the hardware to live until no longer supported by the latest OS.

11Jan/121

Things and Merlin

Chaos is my natural state. I live and thrive on constant input and movement. I focus when my environment is dynamic. I get bored when things are quiet. But from an operational, task and project management point of view, this often bites me in the posterior. Technology saves me. Specifically, Things (on my Mac and my iPhone) and Merlin (on my Mac).

The problem

Things and Merlin are great, however, they use two databases and didn't really integrate. That's why I was very happy to find that Merlin's support staff had written some scripts that allowed to move items from one to the other.

The snag: it messed up the dates horribly. Now, I have a rather special setup for my short date format in that I prefer yyyymmdd to dd/mm/yy or whatever else is your favorite. That probably has something to do with it. I had expected the OS to take care of this, but there you go. Additionally, it used the planned start date of an activity as the due date, while I wanted the planned end date.

Diagnosis

Looking inside the script bundle (use Show Package contents), which you can find at

~/Library/Application\ Support/Merlin/SendToMenu/Selection\ to\ Things.app/Contents/Resources/Scripts/main.scpt

I found that the applescript uses the parse quicksilver input function -- and this is the culprit.

-- read activity information
set TheDueDate to planned start date
set TheDueDateString to short date string of TheDueDate

… some code cut …

-- this string contains Things project name
set s to "#" & TheTag & " " & TheTitle & " [" & TheMerlinProj & "] > " & TheDueDateString

-- create the to dos in Things
tell application "Things" to parse quicksilver input s

This is what we need to change.

Solution

Using the applescript editor to open main.scpt, I tried various date manipulation doodas (google for them, you'll see that date formatting in applescript appear to be an arcane form of magic), and then realized that using parse quicksilver input might not be the optimal approach. Some tinkering later, this is the final result:

set TheDueDate to planned end date
set ActualCompletion to actual completion
set TheStartDate to planned start date

-- create other way
tell application "Things"
    set newToDo to make new to do with properties {name:TheTitle, due date:TheDueDate, tag names:TheTag} at end of project TheMerlinProj
    if ActualCompletion is 1.0 then
        set status of newToDo to completed
        end if
    end tell

It sends the todo, sets the due date for to the planned end date and if the task is completed, marks it as such. And this works nicely:

Activities in Merlin

Activities in Merlin

Todos in Things

Todos in Things

Next

Two things remains on my wish list: I'd like to use the schedule functionality to schedule at the planned start date and connect the resources in Merlin with the delegates in Things. To be continued.

Postscriptum

You can find my updated script here.

10Mar/110

Cleartype and Remote Desktop Connection

One thing that has been bothering me a lot is the fact that Cleartype does not work on Windows XP (SP3) with my Mac OS X RDC client (v2.1). Well: this can be solved by a registry hack:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations] 
"AllowFontAntiAlias"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"AllowFontAntiAlias"=dword:00000001

Just reboot your Windows Machine, and make sure it is enabled in your RDC client preferences. Tip 'o the hat to s4e8

12Nov/090

Debugging as root in XCode

I could not find a good solution to debug a task that needed raw socket access in XCode on the net - this is my solution: change the gdb to run as root. On my system, all it took was:

chmod u+s /Developer/usr/libexec/gdb/gdb-i386-apple-darwin

5Oct/090

Ctrl and Apple/Command keys in VirtualBox

The fact that Windows XP (as a guest OS) uses CTRL and Mac OSX (as a host OS) uses Apple/Command as a modifier key was causing me pain - the mental context switch is just not that easy. Bring in Sharpkeys -> Use it to remap your Apple/Command to CTRL.

21Sep/090

Woohoo speed increase.

Just to mention that a combination of Snow Leopard (http://www.apple.com/macosx/) and Virtualbox 3.0.6 (http://www.virtualbox.org/) seems like a match made in heaven: my guest OS (Windows XP) appears much zippier. I have no idea why this would be the case (but I surmise that some RT interrupt handling has improved).