Archive for the “Mac OS X” Category
John Gruber has a good article on spotlight. There’s just 2 things that I think need to be cleared up:
The “spotlight” effect on System Preferences was wholly unrelated to Spotlight. That’s not necessarily true. Unless he has some proof he hasn’t been sharing, that could very well actually be spotlight and just be restricted to, say, files ending in .prefpane, which it then takes and highlights the right one. On the other hand, it also could very well be a custom search or their own calls to SearchKit. As far as I know, only Apple knows the definitive answer and they haven’t said it.
Gruber also said
Spotlight’s ability to show results from Apple Mail archives on Jobs’ machine was tantamount to a sham referring to the fact that Mail now uses an exploded storage format. I’d just like to say that at the Spotlight session several people brought up concerns about this and asked if, in the actual release, Spotlight could support databases and other pseudo-file-collection objects. Of course, if that does happen I don’t know what the output would be like—how do you return part of a database as a file object? But if they can figure out a good way to do it, it may very well show up. Then again, it may not. Who knows?
It’s been a while since I’ve posted anything, I know. I really should start posting again. I just don’t have much to talk about. Here’s an update on my current status:
Colloquy is a Mac OS X IRC client. It’s not as powerful as some others,
notably X-Chat Aqua, but it’s the only one that’s actually well-designed
from a UI standpoint (it looks like an Aqua IRC client should look).
Colloquy is also really nice from a code standpoint. For instance, the way
it does Styles. It has several different styles, and they all look fairly different.
The way it’s done is everything is rendered in a WebView using Safari’s
WebKit. It translates the IRC traffic into an XML log and uses XSLT to
translate the log into an XHTML document and renders that in the WebView.
the document. This makes it really flexible and really powerful. Here’s a
screenshot of my favorite style, called Meinzer:
Read the rest of this entry »
I just got my hands on a brand spankin’ new copy of Garage Band, as well as the Jam Pack (the expansion for GB). This thing is sweet! It’s a lot of fun to play around with and sounds really good. Granted, I already found a bug (a crashing bug that also managed to freeze my computer when I attempted to reproduce it), but that’s only to be expected in a v1 product. Anyway, I really need to get myself a good MIDI keyboard now (which also means getting money, somehow).
Because I kept releasing updates to Rendezvous Browser, I wanted to make it really easy to update my DMG and upload it to the server. To that end, I created a shell script that does exactly that. However, it took a while to get it just right because there were a few problems.
The biggest problem was that every time I updated my DMG and converted it to compressed format, the size would change. It would end up anywhere from 200-600kb. I think the problem was the Disk Image framework doesn’t know anything about HFS+, so space marked as unused by HFS+ but not actually deleted was still being stored in the disk image. The only way to fix this was to create a brand new disk image every time.
The problem with creating a brand new disk image was I had icon placement and a background image that I wanted to keep. However, this wouldn’t work when just copying a folder since the view options of the folder are stored in the .DSStore of the parent folder. A real pain. The only solution I could find was to create a DMG that I used as the source folder, since a volume root stores its view options in its own DSStore. Then I had to scrub the resulting DMG of all the extraneous files and information pertaining to the HFS+ format, otherwise the DMG would break if I tried to open it without the source DMG present since it had information on it pertaining to the source DMG. Luckily, hdiutil has a -scrub option that does exactly that.
After getting it all perfect, my resulting DMG size is 128k. A huge drop from what I was previously offering. And my shell script works great! I compile the app, open the terminal, and type updateRB and it automatically creates the new DMG and uploads it to the server. Additionally, I can supply a different name to use than what it defaults to, in case I want to upload a pre-release version without replacing the previous release. And lastly, I can provide a switch which prevents it from uploading, in case I want to have the resulting DMG without putting it on the server (granted, this option isn’t so useful now that the DMG size isn’t fluctuating wildly with each update).
It’s also pretty easy to adapt to any other program, since I keep the names and paths of everything in variables at the top of the script. Anybody interested in using it for their own program? You can download it here.
Recently I got an email from Ricardo Batista, the owner of MacShareware.net. He had a pre-release version of a new SDK for doing automatic updates on software sites. The only site to support this so far is MacShareware.net, but there’s hope that MacUpdate and VersionTracker will adopt this new format. Basically, it consists of a plist file with a specific set of keys and values, and these values are used for updating programs. The software site scans all known MacPAD files every few hours, and when it detects a change it updates its listing for that program. That way, you change the MacPAD file and in a few hours, the software sites have your update automatically. No more visiting each site and updating the listing there.
The other goal of the MacPAD file format is to give developers an easy way of adding version checking to their program. They can simply download the file and compare versions to see if there’s a new version. To this end, a PHP script was included that does the check, along with a snippet of C code that calls this script via the ‘php’ command-line process. Of course, this is a pretty ugly way to do this, but Ricardo just didn’t have the time yet to write up proper C code, and he already had the PHP. To this end, I have written REALbasic code to do the checking natively, and it works quite well. I sent the code to Ricardo (he knew I was writing it, as I offered to do so when he sent me the SDK). I sent the RB code to him and hopefully it will show up in the official release of the SDK tomorrow.
Perhaps next I should write some Cocoa code that does the same thing?
Well, ShapeShifter was just released. It’s another Haxie by Unsanity for the Application Enhancer, but this one is really impressive. It lets you apply themes without having to replace system files or do anything dangerous at all. It’s really quite nifty. I especially like this Aluminum Alloy theme, along with an icon set from the QTX theme and a cursor set that was included by default with Mighty Mouse. It’s a nice change from the default Aqua. I just hope that some real quality themes get released now.
In other news, someone has finally figured out the velocity of an unladen swallow. For those of you unwashed heathens, this is a direct reference to Monty Python and the Holy Grail.
I just learned a nifty new thing today, thanks to MacOSXHints. In Panther, the AddressBook supports plugins that can be written with C, Obj-C, or AppleScript. Inspired by the example plugin, I created an AppleScript plugin that lets you display maps using Maporama instead of MapQuest. Simply click here to open the script in Script Editor, then save it to your ~/Library/Address Book Plug-Ins folder. Next time you start up AddressBook, if you click on the header for an address in a card (or control-click on the address), you can choose to display the map using Maporama.
I also fooled around and did the same thing using a Cocoa bundle, but it’s easier to provide the AppleScript rather than uploading the bundle.
3 Comments »
After a couple days compiling stuff, I now have KDE running in Apple’s X11! It’s pretty nifty. I especially like the newsgroup reader, KNode.
Click here for screenshot.