Tagline

Optimists invented the airplane; pessimists, the parachute

I’ve been thinking of the direction I want to take Notae recently (after fixing that damned speed problem with Leopard that Apple seems to want to ignore). I want to do the following things:

  • .Mac Sync of notes and tags.
  • Cleaner tags. Right now, while it works, it feels a little off when you use the tag palette to find things. It could be exchanged with another GUI element that makes it easier to manage tags as well as organize by them.

Unfortunately, Spotlight in Leopard has a bug. A pretty bad one.

As the notes change, Spotlight feels the need to hit the Spotlight index file 22-27 times for no reason, and only for some people. Two out of my three machines are affected. I’ve been told there’s nothing I can change and that I should wait on an update to the OS to resolve the issue.

This sucks, generally, but looking at how the issue presents, I can’t see a clear way around it (as notes change, I load a new NIB — the act of reading the NIB causes Spotlight to go haywire).

The products at CP may see a little longer of a delay than I’d like, with refreshes possibly in the February timeframe. That saddens me, but there’s no way around it, my day job is taking up far too much of my time.

However, that doesn’t mean you have to go without quality Mac software. Smiling I’m a co-founder of Barton Springs Software and we just released a beta version of our first major product, Prosperity. It’s a desktop personal finance program written exclusively for the Mac and includes the ability to connect to banks that offer OFX servers and download your transactions from them. It, of course, also allows for file imports from QIF and OFX as well as manual entry.

Feel free to get in on the beta by going to the site and signing up for the mailing list. You’ll get instructions from there.

I was on vacation for the release of Leo, so I’m a little late for the final compatibility scorecard. As far as I can tell:

  • Notae runs fine in Leopard. I’ll do some more testing to make absolutely sure every feature works well, but I’ve been checking all along and nothing’s obviously broken.
  • My CUPS-PDF distribution does not work in Leopard. I’m sure it’s something simple and I’ll look into it soon.
  • Text Reader and Launchd Editor have not been tested in Leo, but I expect no problems as these are very simple programs.

I’ll be on vacation until November 5th. Contact of any kind will be delayed until I return. Comments on the support site and this site will be disabled in the mean time as I will not be here to monitor for spam, etc.

I’ll try and clear out the inbox before I go, though…

The reason that Notae 2.1 removed the translations is that I really needed to add some UI elements and get an update out but couldn’t really wait on the translations for all the translations I’d added so far.

Now that I really look at the user base for Notae (the sites that give it news and the IPs downloading it), French- and German-speaking countries are growing in number very quickly.

For future versions of Notae, I’d like to limit the translations to just three: English, French, and German. I think that about covers everyone.

I’m going to push out a 2.2.1 later today with some small fixes, but for 2.2.2 I’d like to go to this model.

You can issue the following command for any Cocoa application to increase the number of documents that it remembers in the Recent Documents menu item. In Notae it does something more and increases the number of documents it remembers in the document selector, since it’s the same list.

defaults write net.codepoetry.Notae NSRecentDocumentsLimit 99

Notae 2.1 is knocking at the door, but I need some people to break it first. If you like integrating apps into your workflow, I’d love it if you poked at a beta Notae 2.1 for me. I think it’s done, but I do need some folks to test it, first.

A sample of what it can do:


tell application “Notae” activate make new document tell the front document make new note with properties {name:“Note 1”, note text:“Note 1”} set noteTwo to make new note with properties {name:“Note 2”, note text:“Note 2”} make new note with properties {name:“Note 3”, note text:“Note 3”} make new note with properties {name:“Note 4”, note text:“Note 4”}

make new tag with properties {name:“Tag 1”} set tagTwo to make new tag with properties {name:“Tag 2”} make new tag with properties {name:“Tag 3”} make new tag with properties {name:“Tag 4”}

add tag (tag “Tag 1”) to note 1 add tag tagTwo to noteTwo add tag (tag “Tag 3”) to note 3 add tag (tag “Tag 4”) to note 4 add tag (every tag) to note 1 add tag (tag “Tag 3”) to every note

export note 2 as native to (“Kalyke:Users:ahknight:Desktop:export” as alias) export (every note whose name is “Note 2”) as HTML to (“Kalyke:Users:ahknight:Desktop:export” as alias) without replacing export (every note whose note text contains “Note 2”) as text file to (“Kalyke:Users:ahknight:Desktop:export” as alias) with replacing

set theImportedNotes to import (“Kalyke:Users:ahknight:Desktop:export” as alias) set theImportTag to make new tag with properties {name:“Imported”} repeat with aNote in theImportedNotes add tag theImportTag to aNote end repeat

get the properties of every note whose tags contains tag “Tag 1” end tell
end tell

Result: {{paragraph count:1, creation date:date "Monday, July 16, 2007 2:55:57 AM", modification date:date "Monday, July 16, 2007 2:55:57 AM", size:360, editable:true, class:note, comment:"", note text:"Note 1", name:"Note 1", word count:2}}

If you’re interested, please use the contact form and let me know (use the Notae category).

If there’s something you want to be able to do via scripting that I didn’t demo above, please leave a comment and I’ll investigate doing it.

I’m not dead or gone, I’m just busy as hell.

  • Notae 2.1 is looking nice. Full AppleScript editing support including making new notes and tags and assigning tags and such. Search via AppleScript may be clunky to make it fast because Apple doesn’t let me override the logic of a “whose” statement, it appears. I’m thinking I may make a command like “find [class] where [property] [condition] [value] (in [list])” so you could do: find notes where name is “bob” in (find notes where tags contains “tag1”). I’ve not gotten that far, so we’ll see if I can make it work.
  • The day job has turned from programming to looking for programmers and money. Not fun.

Take note, Core Data programmers, something stupid is afoot, and it’s even documented.

If you pass object URIs around like candy within your program for things like drag-and-drop or token fields or any other representation of your objects and then have to get the object back, use objectRegisteredForID instead of objectWithID.

When you use objectWithID you should note that it will never return nil to you on failure. It will create an invalid object and leave it astray in your managed object context preventing your users from saving their document unless you track it down and delete it. What they get instead is the following in the console.log:

Syndicate content
User login