Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts published in July, 2006

OK, the XRay II file browser now works sufficiently well that I can leave it alone for a week or two, and get to (re!)doing the basic plugin stuff. It still lacks keyboard navigation and scrollwheel support, both of which should be easy to do. It still slows down when accessing a larger folder – or /Network – and I’ll probably have to make this multithreaded soon.

Other UI stuff that works now is dragging&dropping a single file onto the main window or the dock icon. Yes, there’s now a single main window and I’ll do tabs. Real Soon Now. While the idea of supporting multiple windows – like in the current XRay – was attractive at first, experience showed that people were liable to drop a hundred files at once, making the system freeze in an iterative spasm of ever-more-slowly appearing little windows. And very few people ever asked to be able to compare two files side-by-side, anyway. So I’m going for a large main window which will be able to show more stuff at once.

The latter change in direction is also in line with moving away from a (small) “better Get Info” window, towards showing file internals. Finally, having one browser for each window would also become heavy after 2 or 3 windows… not to speak of synchronization issues when the whole thing becomes multithreaded.

The plugin interface is still in flux, but I’m making headway on the basic simple ones: file attributes and metadata (well, some to start with), as well as hex dumps for data and resource forks. The problem is that all those have to converge asymptotically to a nice implementation over multiple iterations, and I won’t be sure of my basic design choices until they’va all been done at least twice…

Still, I’m confident that I’ll be able to show an alpha version at WWDC. Very probably at Buzz’s bloggers dinner net Monday.

Interim progress

No comments

Things are going well. I now have some confidence that I’ll be able to show a working alpha of XRay II at WWDC. Details later…

Also, I found this EgoSurf thingy on Mike Zornek’s blog. It’s some sort of link rank, so here it is without further warranties:

Since yesterday, we’re safely ensconced at a nice hotel in downtown San Francisco, where we’ll stay for 4 weeks – leaving just after WWDC.

The trip up to Corvallis (OR) was marvellous, especially the visit to Crater Lake. It’s the prettiest lake I’ve ever seen, and I’ve seen quite a lot. All this took a little more time and energy than we’d budgeted for, and after visiting with some friends we passed up a chance to see the famous DaVinci Days Festival. Instead, we opted to just walk around the beautiful Oregon State University campus, which was well worth the visit.

Going south the next day we opted for the more scenic 101 route (instead of the 5, which we’d driven up on), and it also was great. The Pacific shore is always beautiful and we also had an opportunity to revisit Ferndale, where we’d been on a previous Los Angeles-Vancouver trip.

So, everything’s settling down and for the next 3 weeks I’ll try to do some extra work on XRay II. Hopefully I’ll have a working alpha to show off at WWDC. Or at least a T-Shirt… icon_wink.gif

In a motel in Ashland, Oregon, where we’ve been visiting friends and having an excellent time.

The trip started out on a quite negative note – our first flight (CFG-GRU) was over two hours late, making us miss our connection to Dallas. We usually never book connections so close, in order to forestall this sort of thing, but our travel agent, who’s aware of this, was on vacation and we changed (temporarily) to another agency. Turns out all flights in the chain were a few hours late except for that most important one, which we missed by30 minutes. So the airline had to put us up in a hotel and, early the next day we went to San Francisco on the red-eye flight starting at New York.

To cap this, when we went to get our rental car, we were informed our reservation had been canceled by the travel agency – strangely enough, not by ours, but by yet another one we never use. After some negotiations with the manager we were informed they were all out of compacts, but we could get a larger car at a slight price increase. OK, reasonable enough…

…but when we got to the parking garage the attendant pointed at an empty lot and said all those cars had already been rented out! So back to the rental office… where after some more waiting we were issued a Buick Lacrosse GNX (GLX? VGX? VGA? something like that). With leather seats and other knicknacks, and most usefully, a GPS locator, which proved invaluable in our sidetrips.

We drove straight up Interstate 5 to Ashland and stayed at a motel near the intersection with Route 66. Ashland is a marvelous little town – lots of greenery, nice shops and very friendly people. We leave today for Corvallis, which lies northwards, but I’ll give some more details tomorrow.

All’s packed and ready for our trip to San Francisco (with a shorter visit to Oregon). We’ll be home after WWDC. I’ll be online most of the time, I hope. More as it happens!

I’ve finally solved a vexing problem that has been affecting version checks for my software.

Basically, checking for updates inside of XRay and Zingg! asks my webserver for a .plist file which contains the latest versions of everything, along with a brief message. On the server, however, this is actually a PHP script which also stores the user’s system version – which is appended to the URL – into a small database.

Since I changed over to DreamHost, my server has been set to gzip everything it sends if the receiver is capable of decoding gzipped files. However, for some time – not sure when that changed – this has messed up my version checking, and users would get a “website was unreachable” error. I did get some reports about this every couple of months, but always had attributed it to a network glitch somewhere… until I tried it myself and got consistent errors.

I read the .plist file directly using +[NSDictionary dictionaryWithContentsOfURL:]. Some combination of Cocoa, php and server parameters now causes the result to be gzipped, and NSDictionary doesn’t understand that format. Anyway, once I figured it out, I had to find a way to turn gzipping off for this particular file only, as I can’t change all the old software versions that are out there.

So, for now, adding this statement at the front of the php part of the file solved it:

header('Content-Encoding: UTF-8');

Strangely enough, rfc2616 says:

The Internet Assigned Numbers Authority (IANA) acts as a registry for content-coding value tokens. Initially, the registry contains the following tokens:




identity The default (identity) encoding; the use of no transformation whatsoever. This content-coding is used only in the Accept- Encoding header, and SHOULD NOT be used in the Content-Encoding header.

…and that’s it. No “UTF-8” is mentioned, so why is it working now? I tried “identity” (before seeing the SHOULD NOT comment) and it had no effect at all. I suppose I should try to debug this on my local server adn see where the problem lies, but time is short…

I don’t plan to use this method in XRay II, so it’s not urgent. I’ll probably use Andy Matuschak‘s Sparkle, of which I’ve had good references.

Photos licensed by Creative Commons license. Unless otherwise noted, content © 2002-2024 by Rainer Brockerhoff. Iravan child theme by Rainer Brockerhoff, based on Arjuna-X, a WordPress Theme by SRS Solutions. jQuery UI based on Aristo.