Apologies…

…to everyone whose RSS feed I destroyed this morning. It seems the problem was an extra quotation mark inside an <a href> tag.

I generally make changes to my tools to scratch an itch, and I’m feeling two itches now:

  1. Some way to ensure the validity of my anchor tags before I post them (whether it’s having the tool build the tag for you, or running a validator before posting, or something)
  2. A list of recently posted items with buttons for “Edit” and “Delete.” It’s very hard, almost impossible, to edit a news item with a mangled anchor tag using Manila—maybe I can come up with something that works from Manila Envelope.

Brent, here it is…

Brent says that doing a Cocoa weblog editor “should be a piece of cake.” Maybe he and I should get together. Manila Envelope, after all, is AppleScript Studio, and that’s Cocoa with some AppleScript to glue it together.

What about it, Brent? Want to lend some Cocoa knowledge and help out?

Outline browsing – personal deja vu

Getting in late on Dave’s Google Outline Browser. I have a hell of a lot of respect for this—because it feels really familiar.

Before I left my former company, I wrote a new feature for our flagship application, a client server application that supported government procurement. The feature traced complex relationships between contracting documents—requirements, solicitations, contracts, modifications, delivery orders, etc.—by means of an outline browser. For the first time, contracting agents could explore in a simple interface the path a contract line item took from requirement through closeout, regardless of the number of contractual documents it passed through.

The relationships Google tracks, as explored by the Outline Browser, are much subtler than this, and potentially infinite (well, within the 1000 call limit imposed by the beta). Mind bomb, indeed.
more…

Happy serendipity day #1

Tim Bumgarner: New Cocoa methods for loading data into a table view in AppleScript Studio. I was just starting to work on a new feature in Manila Envelope that required a table view and I was shuddering at the prospect of having to load it in a repeat loop in AppleScript (in my experience, loops in interpreted languages lead to severe performance problems). Tim’s method allows you to pass a list directly into the method, avoiding looping and making your code much cleaner and faster.

In my experience, further movements in this direction would be wise. Let us programmatically specify a relationship between a data source and a flat file. Or a data source and a relational database. Or a data source and a SOAP call. Features like this were what made programming PowerBuilder such a joy—you could specify the relationship between an arbitrary data source and a class to manipulate that data source easily, and the commands to manipulate the data through the class were consistent no matter what the original data source was.
more…

Two down…

The crash I was experiencing before when updating department names multiple times has gone. I think the lesson is that you need to either update an array in a plist with an array of the same length, or to change it to zero length and write the new array.

One problem down – search and replace

Shortly after I posted my last cry of despair over random crashing, I downloaded a new example AppleScript Studio project that contained a Cocoa string replacement method, rather than the one I had been using before which toggled AppleScript’s text delimiters back and forth. Making the switch cost me nothing in execution time and appears to have eliminated the crashing bug. I had to alter the Cocoa method so that it wasn’t doing case insensitive searching, but otherwise easy as pie. Next one… crashing when updating the department list.

Well, darn.

On a tip from a mailing list, I tried a change to Manila Envelope this morning to see whether I could stop an intermittent crashing bug. The change may have stopped the crashes, but unfortunately it also screwed up the text being posted quite badly. Apologies to all who were confused by posts on the page (or in the RSS) that said something like: “tMcWrldTky,pplennuncedBluetthsupprtfrtheMc”.

For the record, if your script is designed to convert accented characters to HTML entities, it’s a bad idea to convert them to Unicode first. It apparently converts them down to regular unaccented characters rather than their proper Unicode entities. When you search and replace on a regular vowel, this is what you get…

NY Times on Radio

The latest from Userland… full New York Times headlines in Radio UserLand. Having previously subscribed to Times feeds from NewsIsFree, I can only guess at the technical differences. Dave has been talking for days now about new drivers to allow Radio’s news page to pick up non-RSS XML-based news sources. My guess is Dave made an agreement with the Times to allow Userland to syndicate an existing XML format there and gave Radio the ability to read it. I think (but am not sure) that this is different from the way NewsIsFree works.

From a qualitative perspective? NewsIsFree’s feeds don’t include bylines; their opinion feed doesn’t include letters to the editor. Their feeds appear to be more selective and differently formatted.

Is Dave competing with NewsIsFree? Not in the professional market; their response to my story about syndication makes that pretty clear. But what is he doing? Userland’s not about content, it’s about providing pipes for content. The New York Times feeds appear to be the demo for this new Radio capability.

OmniOutliner2OPML v. 1.0.2

The new version of OmniOutliner2OPML, v. 1.0.2, has been released. It now produces something that looks like conformant XML–attributes of an <outline> element are now within the base tag, and outline elements without children are closed inline with an “/&gt”. If you have an OPML compatible application, I’d appreciate hearing if you can parse output from my script.
more…

A real mind bomb: Free RCS

The Radio Community Server, which hosts communities of Radio UserLand users behind the firewall, is now available at no charge. What does this mean? Radio is great knowledge management software–you blog about stuff going on (in your life or your industry or your project) and it automatically flows out to other people who have subscribed to your newsfeed. They get it downloaded to their desktops when they’re not looking.

Free? I wasn’t expecting this business move, Dave, but it’s smart. It’s easier for people to understand the benefits of Radio than of the RCS, but once they start playing with the RCS and realize the implications they’ll expand use of Radio inside their organization. Razor and blades, razor and blades… 🙂
more…

OmniOutliner2OPML 1.0.1

Version 1.0.1 of my OmniOutliner2OPML script is now available for download. I couldn’t get through to my iDisk, so I posted it here instead. This version fixes a stupid bug that was introduced at the last minute.

The 1.0.1 release does not address some more fundamental issues with the script:

  • At present, there seems to be no way to get the type of a column in an OmniOutliner file via AppleScript–at least it’s not published in OO’s dictionary.
  • I can’t find documentation for the “type” element in the outline element of OPML. I know that “link,” “file,” and RSS are valid types, but what do those mean in the context of data in an OmniOutliner file? And what are the other valid types?

more…