-
Karaoke videos
I am having a lot of fun making demos for my soon-to-be-released scriptable drawing app. Here’s a video that’s the output from a ~200 line AppleScript – its the lyrics for “Take me out to the ball game” in Karaoke format:
-
A Scriptable Drawing app
For many years, the most flexible scriptable drawing app was Intaglio, but it hasn’t been kept up.
Launching it for the first time in a while, it is showing its age:
And speaking of scriptable drawing apps, stay tuned…

-
Engineering the Arts
There’s some deep comedy imagining the software engineering process as applied to art or music or writing. Would an artist publish a draft of a new painting on GitHub and open it up to pull requests from the community? Would a fiction writer begin a new project by first writing the unit tests that the new novel needs to pass? Would a musician develop a battery of A/B tests on an album and ship “remastered” versions every two weeks? If you find these ideas absurd, it’s interesting to ponder why that is. And if you don’t find these ideas absurd, it’s a wonder why anyone would want to read your poetry / listen to your music / see your art.
This is a post about AI.
-
Silly Lightning Talk
Years ago I did a talk at Seattle Xcoders regarding variable naming and Noun Piles. After years of procrastination, here’s a cleaned up version of that talk:
-
AppleEvent Manager does not respect the kAEDontExecute flag of NSAppleEventDescriptor.SendOptions:
[UPDATE: I can’t reproduce this in a sample app, so the .dontExecute flag is sometimes respected, but something my app is doing is making things strange]
This is FB21695413:
My AppleScriptable macOS app is recordable. Occasionally, I have a UI action performed by the user that I handle internally, and I send a corresponding AppleEvent with the SendOptions flag .dontExecute (was kAEDontExecute) so that AppleScript recording will see the action and record it.
With Sequoia 15.7.3 and Tahoe 26.1, I am seeing events sent with the .dontExecute flag delivered back to the application invoking the appropriate AppleEvent handler AS IF the .dontExecute flag was not specified.
For example, if in my app the user does an action to create a new ‘widget’, I send an apple event of the form
make new widget at end of document 1with the .dontExecute option, but, the AppleEvent handler installed for core/crel gets called anyway, and as a result, 2 widgets get made.
I expect (and previously the behavior was) that if I specify .dontExecute, the AppleEvent will be forwarded to any registered recording agents, but not actually delivered to the app itself.
For the expected behavior, see Inside Macintosh: Interapplication Communication / Chapter 9 - Recording Apple Events / Factoring Your Application for Recording “Sending Apple Events Without Executing Them”
subscribe via RSS