That could be considered a trivial thing and I really wonder why so many applications ship without this kind of basic AppleScript support. I sometimes suspect that developers are just not aware of the possibility (which in turn makes me wonder how developers can not be aware of that). It is true that Apple’s documentation for AppleScript support used to be rather bad and that figuring out how to implement it was hard (probably harder than the code needed to support it), but since Mac OS X.4 and the introduction of sdef files things have been reasonably easy to do. In X.5 some of the remaining edges have been smoothened as well. And with tools like Sdef Editor even those technicalities are reasonably easy to handle.
As a consequence I added basic AppleScript support to Symmetries even though I didn’t see much use for it. But that’s exactly the point of scripting support: making it easy for people to do things I did not anticipate or consider worth the effort of implementing myself.
Recently Arthur asked about being able to reverse the steps of an animation which Symmetries plays. Symmetries totally isn’t made to do that. It’s a marginal feature which would make Symmetries’ ‘fun’ animation mode slightly useful. But implementing it with a nice GUI and everything would be a lot of effort. Yet, it’s a good idea: You see a nice shape in an animation which you want to keep, but due to its continuous movement it will be lost by the time you stop the animation. Hence, having a bit of history would be good.
As Symmetries’ files are quite small and quickly written, I started wondering whether I can write a simple script which records the steps of the animation reasonably smoothly by saving the current state to a file. It turned out that a few lines of script:
set f to choose folder
set outputfolder to POSIX path of f
tell application "Finder" to open f
tell application "Symmetries"
activate
set n to 1
repeat
save first document in outputfolder & (time of (current date) as string) & "-" & (n as string) & ".symmetricpath"
set n to n + 1
end repeat
end tell
… do the trick. Open the script in Script Editor, run it, select the folder the files should be stored into and then start the animation in Symmetries. The script will store the current state to the folder as quickly as it can and you can easily see the images in the Finder later on thanks to Quick Look.
You’ll have to hit ⌘-. in Script Editor to stop the script. And I wouldn’t let the script run too long because it creates loads of files somewhat rapidly.
It’s not particularly pretty but it may give a reasonable approximation to the desired feature with just a little effort. That’s what scripting is for.
]]>It’s another wonderful earthlingsoft application, it lives in the intersection of mathematics and graphics, it seems likely that many won’t see what it’s good for - yet it creates wonderfully symmetric paths and even has a bit of entertainment up its sleeves.
It was an interesting journey getting here. As usual the main idea was sheer silliness and the essential implementation was quite easy. Then things got out of control and I wanted them to be a little nice as well. Which expanded the project from a Saturday afternoon to a few more of those. As a consequence may have opinions to share on topics like paths, mouse tracking, Objective-C garbage collection, Core Animation, mouse cursors, file promise drags and a venture into software fascism at some point in the future.
To make things a little more challenging I also found a handful of great testers whose sharp eyes were quick to spot weaknesses. Special hat tip to Tom and Nicholas for the extra share of work they brought my way and to Dave for offering advice on the graphics aspects.
Special thanks go to Ronald for making Symmetries speak French and to Henrik for giving the icon the shine it has now.
]]>
Ah crap! Releasing software and learning shortly after that there’s a bug in it sucks. Unfortunately that’s just what happened for GeburtstagsChecker 1.7 and thus an update fixing the problem follows. As the problem in question is exclusive to MacOS X.4, I didn’t even have a chance to see it in my own usage of the app. And the somewhat amusing fact that people think sites like MacUpdate are a place to report problems they have with software – instead of the e-mail address given in the about box, readme and web site, say – is somewhat amusing and slowed things down somewhat.
So those of you still using Mac OS X.4 may want to get the update…
And now I’m off to muse about a career in PR where I’d spin this as us simply needing an excuse to show off the cool Sparkle based updating included in the 1.7 version…
]]>
Good things come to those who wait. And it took almost two years of waiting for a GeburtstagsChecker update to come along. And the new version 1.7, released yesterday, even brings along a new feature: support for anniversaries, rather than just birthdays.
This is based on a rather obscure but nice feature of OS X’s Address Book. In addition to a person’s birthday you can store additional dates with their record (by using the Card → Add Field → Dates command). GeburtstagsChecker will now list upcoming anniversaries or other dates stored in your address book along with the birthdays. As an incentive for ugrading, we’ll send e-mails about the new feature to the wives of our registered users, pointing out that there will be no more excuse for forgetting wedding anniversaries…
In addition to this there have been a few fixes of problems created by MacOS X.5 (log messages from the address book, loss of window transparency, loss of localised strings for today and tomorrow). It looks like Apple simply changed a number of things there over time. Further changes are slight improvements of localisations and the inclusion of Sparkle for automatic update checking.
Uh, and if you are running a Mac OS X version smaller than X.4, you are screwed. The new version won’t work for you.
]]>Yet I decided to stick with the old name and icon. On the one hand because I’m lazy. On the other hand because I quite dislike fundamental icon changes or even application name changes. I prefer a constant theme to what I see on my screen. Even though the result slightly absurd in this case…
]]>
While we made ASCII Projektor, we contemplated not using the Terminal as the Terminal application isn’t exactly made to draw things quickly and the frame rates you get aren’t too impressive. We tinkered a bit with Cocoa and hoped to create our own drawing code for this which could then easily use different fonts, allow the use of non-ASCII characters and be generally cooler. But it turned out that all the straightforward approaches to this gave us significantly worse performance than what the Terminal did, so we just stuck with the original command line tool for this little toy.
With Mac OS X.4 Quartz Composer was added to the system. Despite its shortcomings (the Quartz Composer Application’s UI is PITA in X.4 and the rendering is rather unreliable both in speed and in quality across different machines, particularly with the crappy MacBook graphics chips), it’s still a rather interesting and fun bit of technology which application developers only slowly started to pick up. In addition to that it provides a quick graphics engine, QuickTime playback and numerous filters in one place. So the idea to move ASCII Projektor to this new technology was born rather soon after playing with X.4’s graphics features.
But as things go, it took a while to get a computer that actually runs those things well, even more time to get into the programming language (or rather language subset) needed to write your own image kernels, even more time to actually implement things and finally another year to make a UI for it that doesn’t completely suck.
But we are through all these delays now, and I can present the totally re-vamped ASCII Projektor. It is based on Quartz Composer, it can process film files as well as your computer’s camera stream, it will let you use different fonts for the characters (only works well with monospaced fonts) and, as a bonus, we even threw in a few extra effects if you are so inclined. All in all, a great bit of fun if you ask me.
So go ahead an enjoy!
Free fake license if you tell me where the shot above came from.
]]>
UnicodeChecker has become a pretty mature application over the years. And with half a year since the previous update, it may seem that development is slowing down a bit. But to be honest, we are reaching the stage where it’s hard to come up with reasonable new features for the application and, likewise, requests for real new features have become quite rare. UnicodeChecker supports so many different aspects of Unicode and makes them accessible to the whole system, that it’s hard to need more.
So the focus these days is mainly on the user interface. And UnicodeChecker gained a feature that I have been nagging for for a long time: Favourites. My main reason for wanting that is of course convenient access to the Snowman glyph, but I imagine other people will find equally good uses for it. To give you a good start, UnicodeChecker comes with a bunch of pre-defined favourites and will also display your favourites from the system’s Character Palette:
If you’re a fan of things like copy and paste or drag and drop, you’ll probably enjoy playing with the favourites window, by the way. Other improvements include small bugfixes as well as cosmetic future-proofing and better usability for character cross-references in the Unihan data display. An addition I quite like – while being slightly non-standard – is that the items in the Character Blocks menu which contain the currently displayed character now come with a check mark. That certainly simplifies things.
Finally, a feature that is as obscure as it is neat has been added: Unicode contains a few deprecated code points, the use of which is discouraged. UnicodeChecker will now mark these in an obvious way to keep users from running into whichever sorts of trouble:
Download and enjoy.
]]>
For two of them that has been improved now. The Address Book plugin Touch Tone Checker which as a plugin wouldn’t run at all on Intel is now Universal. As the Waveform generation involves a little bit of mucking with raw numbers this one even needed a small Endianness fix to play actual sounds rather than just unpleasant static on Intel systems.
With more and more people using digital phones from ISDN to mobile phones to VoIP in which those sounds won’t be able to actually dial, I suspect that Touch Tone Checker’s days are over before they really started. But with the fix being reasonably easy, it wass still worth doing - particularly as our general Waveform Checker class that is used by Touch Tone Checker will benefit from being Intel compatible and thus other applications using it will benefit as well. In addition, the speakers of current Macs seem to be good enough to make the dialling actually work for those people who do have an analogue phone (with my TiBook the speaker quality used to be a real problem).
The other project that saw updating was the sweet ASCII Projektor. While it did work on Intel without problems, throwing a highly compressed film at it while running in PPC emulation could hurt performance. Thankfully Apple updated the sample code we use for the Terminal output to be Intel compatible, making this just an exercise in merging their and our changes to the project together.
Actually we have had a much better and cooler improvement of ASCII Projektor almost finished for months now. We’ll just need to get our act together and iron out the remaining glitches, so this update may be good thing to pass the time in the meanwhile.
]]>
The most immediately noticeable improvement of the application is that it now comes with an icon. No more default application icon, then! (Ahich actually was a ‘complaint’ about the little tool that I found in some review) Instead a pretty ‘Smart Mailbox’ icon that was contributed by Henrik Cederblad. Big thanks to Henrik!
Big thanks go to Ronald Leroux as well for providing Mailboxer’s French localisation for the tool. Which in turn forced me to go and add a German localisation as well. So we’are starting to be international because of that.
But let’s look under the hood, shall we? Once it is launched, Mailboxer now comes with a tacky huge icon filled window not unlike Earth Addresser’s. In addition to the huge icons, you will find a menu to pick a group from your Address Book from and a text field that lets you set the name of the Smart Mailbox Folder inserted into Mail. Mailboxer also tries to keep you informed about what exactly clicking that seductively pulsing button will do.
As a response to the feedback we received we now also have a Preferences window where you can adjust the contents of the Smart Mailboxes as well as their view options. While I am not a big fan of preferences – after all I do have good taste, so why would anybody want anything else – offering those options seems par for an application that in itself is nothing but a way to adjust the setup of another application. And as the feedback I received indicated that Mail’s way of displaying those new Smart Mailboxes isn’t 100% predictable, I even had a real world excuse for those settings.
And that’s pretty much it. Enjoy.
]]>And after that both Nat, who got this rolling, and myself started hacking up a little tool to do this. Nat using AppleScript, myself by adapting what I had done for Mailboxer before. And while these things never work quite as easily as they look at first (getting into NSXML seemed like a typing intensive but worthwhile detour and some aspects of Google Earth’s icon loading remain a bit unclear to me), working results appeared quite quickly. My side of which I present here:
Earth Addresser. It takes the addresses from your Address Book, writes them to a KML file with links to any photos you may have for your contacts. And opening that file displays the addresses right in Google Earth. Neat. And, if it weren’t for the slightly uncomfortable fact that Google Earth and Google will know about all addresses you use this on after this, excellent.
There are still some potential problems like that of addresses potentially not being found because of strangely formatted addresses or things like department names being in the address. Or because people have set the wrong country for an address’ format. But for my well-organised address book it does work reasonably well. And seeing my friends right there on the map is just nice.
While doing this, I thought that this tool is definitely offers one of the nicest pay-offs for a well organised and -filled address book. One that makes the time wasted entering those addresses and adding those photos worth it. I also started to think that the Address Book framework, while doing the job, could possibly be a bit better.
Give it a try and let me know what you think.
]]>