Tuesday, February 12, 2002

There is a bug in the way Carbon applications interact with services. Actually, it may not be a bug, but just a limitation of the Carbon apps themselves in that they don't automatically handle Text selections in a similar fashion as to Cocoa. No big deal; it'll be fixed over time. Under OS X 10.0, Carbon apps didn't even have a services menu, now they do...

Off to bugreport.apple.com to file a report...

To Test:

- launch any Carbon App; IE, Word, whatever...

- select some text

- try to find an enabled menu item under the Services menu

I couldn't. If you do, let me know!
10:47:58 PM    

If this post works, it is because I have successfully imported the source to RadioService into MOSXLand, checked it back out, built and ran the application.

Assuming it did work, you can check out a copy of the source by doing this:

% cvs -d :pserver:anonymous@cvs.mosxland.sourceforge.net:/cvsroot/mosxland login
(Logging in to anonymous@cvs.mosxland.sourceforge.net)
CVS password: ***no password-- just hit return***
% cvs -d :pserver:anonymous@cvs.mosxland.sourceforge.net:/cvsroot/mosxland checkout RadioService

New features since the 'release'; earlier today:

  • Preferences panel now works.
  • Option to automatically open radio desktop and edit the new post (useful for categorization of posts)
  • Some code cleanup, but not much.

Oddities: The code isn't pretty and there is some silliness/laziness. Please feel free to ask questions.

The biggest items on the TODO list are to fix up the error handling and to improve/ensure interoperability with other Bloggers. As well, fixing up some of the cosmetic issues-- quotes are being escaped for some reason, for example-- will go a long way to improving usability.
10:24:15 PM    

Jason Gillman calls this a "Major Breakthrough!" How about a screen shot for us Mac-deprived people?


The above was selected and posted via RadioService from OmniWeb. Here's the screenshot of the posting process. The services menu is automatically generated based on the various services advertised by the applications installed on the system. A service is advertised by what pasteboard types it can consume and what pasteboard types it produces. There is another mechanism called a 'filter service' which can automatically filter from one data type to another. Example: If you write an app that can only consume GIF images and I write a filter service that convert JPEG and TIFF to GIF, your application will automatically be able to open JPEG and TIFF.

OS X rocks.

Currently, RadioService only consumes NSStringPBoardTypes (that is, pasteboards that contain straight string data). This will change as the app evolves.

RadioServices in action

(No, I have *no idea* how that incredibly cool fadeout effect happened on the menu. Seems to be some weirdness associated with the Quartz Compositor and taking screenshots.)
5:46:53 PM    

Radio Services alpha release

An initial alpha release of Radio Services is available as a disk image.  The image contains full documentation (including instructions for those that might want to experiment with RadioServices and other Blogging services).  Pleaselet me know if you have suggestions or problems. The app is far from perfect and there are a couple of known bugs (documented in the README). However, it does work-- this post was created in <b>WebObjects Builder</b> (the closest I have to a WYSIWYG HTML editor, at the moment) and posted via RadioServices.


1:46:58 PM    

It Works!!! RadioServices.app now:
  • uses defaults to store your configuration
  • uses the system wide keychain to store password(s)
  • automatically queries for a password, when needed (or to unlock keychain)
  • listens for keychain events and stops asking for a password if password is supplied via some other app
At this point, the app is useful to anyone running Radio in that the stored defaults work fine with a local Radio desktop. Since it asks for a password via the GUI (using code recycled from SSHPassKey) and stores the password in the key chain, the fact that it totally lacks a GUI for editing the defaults isn't a big deal. As such, I'm going to go ahead and post a version. (This was composed in WebObjects Builder for a sort of WYSIWYG HTML editing experience.)
11:19:34 AM