Solipsism Gradient

Rainer Brockerhoff’s blog

Browsing Posts published by Rainer Brockerhoff

What, already?

No comments

Heh. Seems the year’s over already and I almost didn’t notice.

Looking back, it’s been a busy and surprising year. I traveled more than I’d planned and wrote less. XRay II saw a lot of progress in fits and starts, but my plans to release a public beta this year didn’t work out – mostly because I had underestimated the back-end work necessary to actually save data.

On the Apple front, the year has been busy. No iPhone from Apple. Zune out, Vista out (sort of), AAPL options scandal, Leopard, Mac Pro, the Intel migration has been completed, lots of security flaps, new laptops… it’s a long list, so long I don’t feel like finding all those old links. Looking back, what surprises me most is that Apple doesn’t seem to be as interested in virtualization as I felt they should be.

And of course MacWorld is just a little over a week away. Rumors are already flying fast and furious, of course. Here are some things I believe to be more likely (not that I have any inside knowledge, I hasten to add):

  • New Apple displays, with built-in iSights and microphones.
  • New Mac Pro with 8 cores, probably with a new case design.
  • The transition is over, and people are now sure the Intel Macs are “really Macs”, so new case designs are overdue across the whole line, although in the case of the laptops I’d say that’ll be really hard. Thinner and better/larger screens of course, but there’s only so much you can do with minimalism.
  • Leopard? Perhaps we’ll finally see some UI changes. My tip for the release date is March/April.
  • iTV, no idea in which direction they’ll take that; I watch very little TV. Regarding the name(s), it would make sense to go away from the whole iThing.
  • whateverPhone: I don’t use a cellphone, so the basic idea leaves me cold. Unless Apple breaks the entire paradigm with some sort of VoIP breakthrough, it’s bound to be some sort of weak US-only experiment. Let’s hope they don’t do that. I also see no sense in having music capabilities built-in as a default. Opening it up to developers in a big way would be excellent, and the recent rumors of a stripped-down, embedded Mac OS X dovetail with that.
  • .mac is dead. It’s never worked well (or at all) outside the US, as far as I know. It’s an expensive embarrassment. Apple could close it outright, sell it to Google, or allow people to operate their own sync servers.

Blank

No comments

This post intentionally left blank. Fnord.

Flipr out

No comments

Searching for some cool eye candy to add to my applications, I thought of having the main window flip around to present the preferences window – an effect pioneered by Dashboard widgets. Not finding a ready-made solution I set out to do it myself, and learn how to use CoreImage from Cocoa.

So, here’s some new source code: a category on NSWindow to flip from some window to another window. Please read the “ReadMe” file for details and caveats. The code should work on any PowerPC Macs with AltiVec, and any Intel Macs.

That said, it’s not as fast as I thought it would be, and I don’t want to spend more time on it right now. I’ll be looking into Quartz Composer to do something similar, although the upcoming CoreAnimation (for Leopard) will probably make this completely obsolete very shortly.

Not catching up.

No comments

A few years ago, when I was still getting the idea of this blogging thing, I made a serious effort to stay “in the know”. I read most of the Mac websites, I had 390+ feeds in my news reader, I posted links to interesting blogs, I tried to comment on the hot issues of the day. No idea how successful that was (depending on your definition of “successful”), but one side-effect became apparent after a year or so: no useful work on my applications got done. There are just so many nanoseconds in a day.

Perhaps the main cause of that was my overly-zealous polishing of each sentence – writing in what is, after all, my fourth language isn’t that easy – but if there’s any obsessive-compulsive polishing that must be done it would be better applied to my code than to my text. Right? On the other hand, there are people who tell me they like reading what I post here, if only to keep up-to-date with my trips. And the whole thing was, after all, just a sideshow to my support forums… no sense in closing it down.

So, I’ll probably not comment after the fact on most of the various issues du jour here… there have been an awful lot of them lately. I won’t even take the trouble to find links to them now. Let’s see, there was the AirPort security thing, the HIG-is-dead/Disco thing, the MacHeist controversy, the iPhone came-out-but-not-really flap, the options scandal is still going on, I still can’t comment on Leopard, yadda yadda.

My late father worked at a large company and he used to tell with some relish a story about how he used to sort the requests that crossed his desk into “not urgent”, “normal” and “extremely urgent” piles. His usual mode of operation was to ignore the “extremely urgent” stuff until someone asked after a particular item at least twice; it turned out that most of them were never followed up at all! The lesson has served me well. Many of those hot issues have a short half-life, emitting lots of sparks but decaying very soon into plain, dull lead. Nothing like letting a few weeks or months pass to get the proper perspective…

In the meantime, yes, suddenly I’ve been able to get lots of polishing done on XRay II. Keep tuned.

Re: Saltimbanco

No comments

Back from seeing Saltimbanco. Tired, but it was worth it. The word “awesome” which I refuse to use for ordinary things definitely applies here.

I talked to a stagehand who said that this was not only the last Saltimbanco show in Brazil, but the last one ever, anywhere; seems Cirque is putting it to rest after 14 years – it was their oldest show still on the road. They may be back in March with a new show, though.

Saltimbanco

No comments

Somewhat unexpectedly we got a couple of the last tickets to Cirque du Soleil‘s last show in Brazil – namely, Saltimbanco, a show which we’ve seen on DVD, but never before in person. As we’re big fans of the company – in fact, nearly all of the few DVDs we own are the Cirque’s – we didn’t hesitate in booking the package when we were told it was available.

We leave in a few minutes on a bus to Rio de Janeiro. The package includes an overnight stay in a hotel, a few meals and a post-show barbecue – then it’s back home during Sunday night. We’re really looking forward to this. Normal life resumes on Monday; I’ll probably be offline until then.

Re: Update: XRay

No comments

Rainer Brockerhoff wrote:

…Imagine my surprise when I learned that Peter had just published the complete Hex Fiend source code, and also started up a Wiki to explain details…

That said, I haven’t had time to look at details of his data backend yet, but that too looks like it will save me at least a month of tinkering.

Well, I’ve now had a little time to look at the Hex Fiend code.

As I expected, it builds a tree of referenced/changed byte ranges for an edited file. There’s a generic “ByteSlice” class with concrete subclasses that represent either a range of bytes inside a file or a range of bytes in memory – the latter would be the result of an editing operation like typing or pasting in stuff. That much I’m already doing myself, albeit with different names.

The interesting part comes when an edited file is saved. Hex Fiend goes to great lengths in optimizing writing time, allocated RAM, and disk space; it uses threaded AVL trees and lots of neuron grease, and while I understood very generally what’s supposed to be going on, the details are extremely daunting. My hat’s off to the wizard. And he spent similar care on optimized searching, too.

Now, just lifting all that code and plopping it into XRay II just wouldn’t be cost-effective. Yes, the result is that you can open a 240GB file on a 250GB disk, swap huge chunks of it around, and insert random bytes in the middle, and save it with no problem. Do I see this situation arising frequently for XRay II users? Frankly, no. Remember, the idea is to do structured editing of file contents, not necessarily pure hex editing… and Hex Fiend is already terrific at this (not to mention, free). I see the hex editing panels in XRay II more suited to editing small amounts of data and as a convenience to view raw file contents without necessarily changing them.

So, falling back on the old method of saving an edited file to a temporary file, then swapping it with the original if creation succeeded, means that complexity will go way down at the expense of speed (noticeable only for really huge files) and of the necessity of extra free space (same).

A second problem is that, for Hex Fiend, a file is just a sequence of bytes – no structure. For me, on the contrary, changing a byte in one place – meaning editing a representation of (say) an ID3 tag in a music file, or a QuickTime atom in a movie file – will usually mean that elsewhere in the file one (or even several) count or length fields will also have to change, preserving the file’s integrity. So my data representation tree also needs to reflect a particular file’s format as decoded by a plugin – and there may be several plugins seeing the file in different ways – and the nodes need to be more intelligent, notifying each other when necessary.

Still, seeing the Hex Fiend code has given me assurance that I can do it myself, so that’s good… icon_biggrin.gif

Milking Mice

No comments

So, there I was in my trusty BBEdit (thanks Rich!) twiddling HTML code for a friend’s website, trying to get stuff aligned “just so”, checking out the CSS, cleaning up some redundant markup – and of course reloading the browser after every change to be absolutely sure it worked. My friend, who knows how to operate her Mac but is otherwise non-technical, watched this with astonishment… after we were finished (took most of an evening) she exclaimed, in German, “Das ist ja zum Mäusemelken!”

I burst out laughing at this colloquial expression I hadn’t encountered before, and which literally means “that’s for milking mice!”, but actually is used in the sense of “that’s extremely exasperating!”. Or so Google tells me. However, in the sense of twiddling with HTML code – or Objective-C code for that matter – it struck me that it can be taken literally. To quote Tom Digby’s “Little Tiny Eyes” (found via Tim Bray):

“OH YOU NEED LITTLE TEENY EYES FOR READING LITTLE TEENY PRINT

LIKE YOU NEED LITTLE TEENY HANDS FOR MILKING MICE.”

Yep, you have to position those little teeny hands just so and be extremely patient because it’ll take a long time to do it right and get enough… and it takes a very peculiar and determined kind of person to sit there N hours per day, day in and day out, just twiddling away at the little bits to get everything running “just so”.

And that is why my main page has the subtitle “finely crafted software for the Macintosh”. Hm. Should I change this to “Digital Mice Milking” or something? But I suppose that, just because I put this title on this post, that Google will already put me somewhere on its mousemilking results, forever after confusing hapless NIH researchers. But then, that’s the price of fame…

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.