David Sinclair's blog

Simon 2.3 released

Simon version 2.3 is now in general release!

As previously discussed, this release includes a new Mount plug-in, that works both as a service and notifier, and allows mounting and unmounting local, AFP, and SMB volumes. It also extends the Script plug-in to act as a notifier too, allowing great flexibility in notifications. Plus many other enhancements and fixes. See the release notes for more information, or download now!

Multi-touch on the desktop

Craig Hockenberry wrote thought-provokingly about multi-touch interfaces on the desktop (via Gus Mueller).

This is a favorite topic of mine; as I've written before, I look forward to the day when multi-touch comes to desktop (or portable) computers.

One of his objections was the vertical orientation of traditional displays:

If you’re one of the people who think that a multi-touch monitor is a good idea, try this little experiment: touch the top and bottom of your display repeatedly for five minutes. Unless you’re able to beat the governor of California in an arm wrestling match, you’ll give up well before that time limit. Now can you imagine using an interface like this for an eight hour work day?

But he quickly counters that objection with what I feel is the obvious answer: a touch-based interface needs to be at a comfortable angle. I envision a desktop multi-touch surface at a 30-degree angle, or less, from the desktop: as he says, like a classic drafting table. Perhaps there won't be a distinction between desktop and notebook computers anymore, or perhaps the computer will be in two parts: a tablet-like mobile portion, which docks into and rests on a wedge-like stand on your desk, which adds additional functionality (kinda like the old PowerBook Duo and DuoDock).

The multi-touch screen would be the entire interface (other than perhaps some auxiliary buttons like brightness, volume, etc). It would obviously replace the mouse/trackpad, but would also replace the keyboard, using an onscreen keyboard instead. Yes, tactile feedback is an issue, but as many people have reported with their iPhones, it's possible to get used to typing without it; and there are ways to provide feedback, like the iPhone's magnified view of pressed keys, sounds, vibrations, and other ideas being worked on.

Hockenberry also raises a valid point regarding the precision of a mouse pointer vs a finger:

But even if there was a solution to the ergonomic issues, there would be problems mixing mouse-based applications (with small hit areas) with touch-based inputs (and large hit areas). Touch-based UI is not something you just bolt onto existing applications—it’s something that has to be designed in from the start.

Certainly an important consideration. However I would argue that most applications could be modified to support larger hit areas in sensible ways without too much difficulty - though in some cases major redesigns would be needed. Just have a look around the controls in your favorite apps, and think about how easy it would be to "click" on one with a finger, without activating a nearby control. In most cases, controls are spaced out enough for it to not be a problem, but some, like Photoshop, would require either optional support for a stylus (which Apple probably wouldn't be in favor of), or a finer on-screen control (perhaps like the iPhone's magnifying glass). I'm sure apps designed from the ground up with multi-touch in mind would be better... but migration is certainly possible. And yes, resolution independence should help. If you've got big fingers, you just scale everything up to a comfortable level.

I really believe that multi-touch is the way of the future, and will be coming for Macs in due course. But Apple being Apple, they will do it right, with as smooth a migration path for developers and users as possible.

Time Out featured on Lifehacker

Time Out is a featured download on Lifehacker today. They seem to like it, which is always nice. Lifehacker is a great productivity blog, that I read every day, and recommend to others.

I appreciate the publicity, though I kinda wish it had come in a couple of weeks time, as (by popular request) I am planning to release Time Out version 1.5 with the new icon, and a few other improvements, around that time.

If you've come here from Lifehacker or elsewhere to get Time Out, go ahead; the current version is very good... but the icon is somewhat aesthetically challenged. So come back in a couple of weeks to get 1.5 - Time Out will tell you when it's available.

Version 1.5 will remain freeware, for Mac OS X 10.3.9 and later.

As for Time Out 2, it is still in development, but will require Leopard (Mac OS X 10.5) as a minimum, so version 1.5 will tide people over till Leopard is out (and for people who don't upgrade).

Simon 2.3b1 released

I'm pleased to announce a beta release of Simon version 2.3. This update adds a useful new Mount service and notifier, that allows you to check if a local, AFP or SMB volume is mounted, and optionally unmount it. The notifier can be used to mount or unmount a volume as a result of a check.

It also extends the Script plug-in to act as a notifier as well as service. This means that you can now write AppleScripts, shell scripts, Perl, Python, Ruby, etc scripts to do some custom action when a test fails, recovers, or changes. This is a very exciting feature, that expands Simon's already extensive flexibility by an order of magnitude. Not to belabor the hyperbole, but with the new Script notifier, the notification options are now limitless!

This release also includes some new test options, to allow customizing the timeout interval and offline checking, some handy new variables, a number of bug fixes, and compatibility with the current Leopard beta.

There are lots of other nifty enhancements in this release; see the release notes for the full list, or download now!

This is a free update for licensed Simon users.

Caboodle 1.1.2 released

Caboodle has now been updated to version 1.1.2. Similar to yesterday's updates of Macfilink and BlogAssist, this update includes minor tweaks to ensure compatibility with Leopard. It also includes some fixes for ruler handling within entries, to make the preference and menu item work better - existing entries now save the ruler visibility state properly, and new root-level entries now use the preference.

Enjoy!

Macfilink 1.4.1 & BlogAssist 2.1.1 released

Macfilink has now been updated to version 1.4.1, and BlogAssist has been updated to version 2.1.1.

These updates just include some minor changes and fixes that other apps have already received, plus some minor tweaks to ensure compatibility with Leopard, aka Mac OS X 10.5, for those running the developer beta (as I am) or to make the transition smoother when you eventually upgrade.

They are recommended updates for all Macfilink and BlogAssist users... and of course recommended apps for everyone else, too. :)

A store highlight

I've just rolled out some minor changes to the Dejal Store, to enhance the item selection. Having recently bought a new MacBook Pro, I admired how the Apple Store makes it easy to choose the options, and highlights the selected items. (If you're familiar with the way web browsers work, you'll know that clicking on text next to a radio button doesn't normally work; you have to click the actual button.)

Anyway, I wanted to improve the Dejal Store in a similar way, since it has sets of radio buttons to select the license levels for each product. It now looks the same as before, but when you point to a license for a product, the line is highlighted in grey, and you can now click anywhere in that highlighted space to select that license. When you do, the line is nicely highlighted with a blue background. The blue highlight works for the pop-up menus and receipt checkbox, too.

A challenge was that the page allows yellow product highlighting via a page argument - e.g. as used when clicking on a Buy Now link on the product pages. That is still supported:

This was all done via CSS for the styles, JavaScript for the click handlers, and PHP to generate the page with no code duplication. Each license line on the page is constructed via a PHP function call - every page on my site has at least a little PHP magic driving it. A JavaScript onclick handler on the license text simulates a click on the corresponding radio button, and JavaScript functions alter the class of the line based on whether it is selected, highlighted, or neither. The various highlights are done in CSS via classes, and the grey highlight is done purely in CSS via the :hover meta attribute.

The JavaScript code probably isn't all that elegant, since I'm not as familiar with that language as PHP etc, but it works. I am quite impressed with the JavaScript DOM (Document Object Model); it seems quite flexible. I've only had occasion to mess with JavaScript a few times (most recently redoing the screenshot pages, and for a Dashboard widget a while back), but I expect to do a lot more JavaScript stuff in the future, both on my site and in app contexts.

All this was created in Panic's excellent Coda application; my preferred web environment now.

Post WWDC wrapup

I'm back from WWDC now, and am in the process of moving into a shiny new 17" MacBook Pro with the high-res screen. A rather nice machine. I ordered it the day it was released, the Tuesday before WWDC, but unfortunately it didn't arrive till I was already at WWDC. Oh well... I'll have it for next time! :)

Anyway, it was a good week. I met many developers, including well-known people like Steven & Cabel of Panic (who I had met before, and who most deservedly won an Apple Design Award for Coda for Best Mac OS X User Experience); plus Daniel Jalkut of Red Sweater Software, Ken Case of The Omni Group, plus many other developers.

I've already talked about the Stevenote, and of course can't talk about the conference sessions, other than to say that I'm excited about Leopard, and am looking forward to leveraging its features in future versions of my apps.

WWDC has a number of interesting official and unofficial evening events. I enjoyed the sfMacIndie event on Sunday night, the official reception Monday night, the Apple Design Awards and Stump the Experts Tuesday night, the CocoaHeads gathering at the Apple store Wednesday night, and the WWDC Bash Thursday night.

Check out the photos of my trip to San Francisco and (non-NDA'ed) parts of WWDC.

At WWDC

So, I'm at WWDC currently. I've enjoyed meeting fellow developers (and several Dejal product users) around the conference center, at the sfMacIndie event, and the WWDC reception tonight.

I managed to get an okay seat for the Stevenote, a little back from the center of the room... but in a good position to see the repeater screens. I thought it was an interesting keynote, but with few surprises. I know some people are disappointed, but perhaps they had too high expectations?

So, how'd I do with my predictions? Let's see:

  • No hardware announcements: I was right with this one.
  • Possibly updated displays: nope... but not too surprising.
  • We might see a demo of iLife 07 and/or iWork 07: nope.
  • Steve will no doubt mention the iPhone, but there won't be a SDK: yep, called that one. I know this is disappointing for many people, but as I said, that may come later.
  • Steve will spend most of his time talking about Leopard: sure did.
  • The Finder might be rewritten: yes, though it seems more of a cosmetic overhaul than a full rewrite.
  • I've love to see more multi-touch features in the OS, but I don't think we're ready for that yet: yeah, no mention of that... oh well, it was a faint hope!
  • Maybe improved syncing features, to fit in with the iPhone: I seem to recall some mention of this?
  • The ZFS thing has been a popular rumor of late, but I have no idea whether that will eventuate: no mention of this, so perhaps it didn't... or perhaps Steve was annoyed by the "leak".
  • Probably some cosmetic changes in Leopard - using the newly fashionable dark metal styling for all windows, and other UI improvements: yes indeedy. I do like the dark metal, so a unified OS-provided look is a very good thing.
  • Probably no major new programmer APIs: so it would seem.

I seem to have done alright. Of course, my predictions were based on an aggregation of rumors, so hardly a reflection of my own prognostication abilities.

Anyway, on with the WWDC week... though of course I can't write about anything else discussed in the sessions.

Almost time for WWDC07!

Just another few days before WWDC07 kicks off!

I will be attending WWDC again this year, and am looking forward to the Stevenote, the various gatherings of Mac developers, and the conference sessions themselves.

There have been lots of rumors of what Steve Jobs will announce on Monday. For what it's worth, here are my guesses - not based on any inside information (I haven't run a Leopard seed since last year's WWDC), but based on rumors I've read, etc:

  • No hardware announcements: I don't see an updated iMac at WWDC, being a consumer machine. It is overdue, but will probably be updated at a later date.
  • Though updated displays could be possible, with iSight integration, since the standalone iSight is no longer available. I kinda hope not, since I just bought a 23" display!
  • We might see a demo of iLife 07 and/or iWork 07 (or will they call it 08, or something else?), but they won't be available till Leopard is out.
  • Steve will no doubt mention the iPhone, but there won't be a SDK. I wouldn't want them to release one yet; better to lock down the features and let people become familiar with the phone before allowing third-party development for it.
  • Steve will spend most of his time talking about Leopard.
  • The Finder might be rewritten. I personally use Path Finder, a great third-party replacement Finder, but Apple's Finder is definitely in need of improvement.
  • I've love to see more multi-touch features in the OS, but I don't think we're ready for that yet. I'd really like to see something like Microsoft Surface, done the Apple way.
  • Maybe improved syncing features, to fit in with the iPhone.
  • The ZFS thing has been a popular rumor of late, but I have no idea whether that will eventuate. Even if it is the default disk format, that won't necessarily affect existing disks, though, so it doesn't seem like too big a deal to me.
  • Probably some cosmetic changes in Leopard - using the newly fashionable dark metal styling for all windows, and other UI improvements.
  • Probably no major new programmer APIs; Apple would have had to tell us about them before now, to give developers time to get up to speed. But you never know.

Anyway, I could be totally wrong... but those are my guesses. We'll see in just a few days!

I will be wearing one of the several Dejal shirt designs, like the pictured one, so if you're there and see me, come up and say hi! Here's what I look like, too.

I will be at the sfMacIndie event on Sunday night, and hope to meet many fellow indie developers there. I might go to Buzz's party Monday night, or just hang out at the official WWDC reception. And I'll be around for the rest of the week, too.

Should be a great week!

Pan-Mass Challenge software auction

Seth Dillingham is hosting a Pan-Mass Challenge software auction, as a fundraising project in support of his 300-mile ride across the state of Massachusetts for a cancer care charity.

He wants to collect hundreds of software products, which will be auctioned on eBay starting in July.

This is a very worthy cause, so I am donating 5 Standard licenses for Dejal Simon, plus 5 Household licenses for Dejal Caboodle (about $400 total value). I encourage other Mac developers to join in, too.

For more information on the fundraising, click this image:

Kitten Caboodle

If you look closely at the Caboodle icon, you may notice a kitten in one of the documents overflowing from the bag.

For those interested, this isn't stock art, but is actually one of my cats as a kitten. His name is Pixel, named after the cat who walks through walls in Robert A. Heinlein's novels. Like the cat in the book, he's an orange tabby, and sometimes he seems to walk through walls, too. :)

Here's another picture of him as a kitten, and now:

PixelCloser

 

 

 

 

 

 

VT Memorial Fund results

I'm pleased to be able to report that the independent Mac developers that participated in the recent Virginia Tech Memorial Fund Charity Sale raised a total of $2,433.00.

Thanks to everyone who helped achieve this by buying Dejal and other participants' products on May 2.

Simon tip: detect unacceptable changes

Simon's Smart Change Detection feature looks for the text in the Start text box, then the End text, then compares the text between those two against what it had the last time it checked.

This is useful to detect changes in a portion of the page, but can also be used to detect unacceptable changes.

The usual way to do that is to just provide a Start text block, and not an End one. Then if the Start text isn't found, that is a failure.

So for example, if you do a telnet Script-based check, you'd want it to be considered a success only if this is output:

Escape character is '^]'

So you'd put that in the Start text block, and leave the End block empty.

Then if that text isn't found (as would occur if telnet couldn't connect to the server), Simon will log a failure.

Virginia Tech Memorial Fund - Charity Sale

All proceeds from sales of all Dejal products on May 2 will be donated to the Virginia Tech Memorial Fund.

Several independent Mac developers are participating in this event, doing what we can for this great cause.

So if you're planning on purchasing a Dejal product soon, or one of the other excellent products from participating developers, you might like to do so this Wednesday.

Dejal Developer pages: free Cocoa code

I've been developing for the Mac since about 1988, initially in Pascal, and since 2002 in ObjC/Cocoa. I've benefited from advice and comments on mailing lists like CocoaDev, and like to give back to the community. In the past I released some of my Classic Pascal code, and now I'm doing the same for some of my Cocoa code.

I am a chronic generic code writer, which I know many people frown on, but with six applications to maintain, shared code is very useful and efficient. An important part of this shared code is my Cocoa categories, that extend Apple's classes with convenience methods and new functionality.

These categories are now available to other Cocoa developers to use in your own products, if desired. The code was written over the last several years, so some of it could be replaced with more modern techniques, but hopefully a lot of it will remain useful. They are certainly used a lot in my products.

The main Developer page is at www.dejal.com/developer. The categories are organized by Foundation and AppKit, plus some utilities. You can view the code online and copy select snippets if you wish, or download .zip archives for each, or a single archive with all.

This code is generously licensed; you are welcome to use it in your own products, including commercial; all I ask is a mention in your credits or website, and that you tell me you're using it. Use as little or as much as you wish.

If you find any bugs or have some suggestions, or want to roll in improvements, please let me know. The code should all be pretty bug-free, though, being in active use. And depending on feedback, I'll probably add more code over time; I have several subclasses and new classes that are shared by all my apps that (with a little tidying up) could also be made available in the future.

I hope it's helpful for you!

More site improvements

I've made a number of further website improvements over the last week:

  • I've replaced the front page with a custom one. It now shows a large feature graphic (like Apple's site does), followed by the latest blog entry, and a link to the blog page. There's also a sidebar listing the recent blog posts for quick access.
  • Improved the page layout by eliminating the rounded corners on the boxes. Rounded corners look a little nicer, but the :before and :after metatags I was using didn't work reliably, and other approaches are too complex. I think the square corners has a certain elegance.
  • Improved the icons for the Blog and Forums header buttons.
  • Header button selection highlighting is now working for Drupal-based pages.
  • The Navigation menu (for site members) now uses DHTML to expand and collapse sub-menus without having to reload the page.
  • The Navigation menu now isn't available for guests, since all of the relevant functions are available via the header (though the menu does make accessing individual forums etc faster - a benefit of becoming a free site member!).
  • Added a Blog tags page and sidebar block (that only appears when viewing the blog) that lists blog tags, allowing filtering the blog for just those topics.
  • Added graphic captcha for guest comments, instead of the math question - it seems tidier and more reliable.
  • Changed the product screenshot slideshows to use JavaScript, again to avoid untidy page reloads.
  • Added new Developer pages, providing source code to other Cocoa developers (more on this tomorrow).

Note: due to the CSS changes, if the page header looks weird, try reloading the page to fix it.

Caboodle 1.1.1 released

Caboodle version 1.1.1 is now available. It includes several fixes and improvements:

  • Now automatically saves the entry when leaving the Subject field (via tab or click) or modifying the icon, so the entries list is immediately updated, to avoid confusion.
  • The entries list now remains the same size when the window resizes, rather that being resized proportionally.
  • Changed the default icon to a larger green ball, to avoid alignment issues that the smaller one had (it was 16x16 instead of 20x20).
  • Fixed a longstanding bug where encrypting an entry that contains a table would lose the table formatting when it is decrypted. Note: entries encrypted with this version can not be decrypted by previous versions (but this version can decrypt previously encrypted entries).
  • Fixed a crasher when exporting as PDF.
  • Added French localization.

This is a recommended update for all Caboodle users.

Download now!

Leopard delayed till October

I guess I spoke too soon. Apple shocked everyone today by announcing that Leopard is being pushed back from June to October.

Well, maybe "shocked" is too strong a word... I don't think any developers are too surprised, but some developers are more concerned than others... particularly ones with apps requiring Leopard waiting for release.

Personally, I'm not concerned. I applaud Apple for taking the extra time to get it right. And although I have plans for Leopard updates of Dejal apps, the next versions will still be Tiger-compatible. Time Out 2, which I'm working on now, will require Tiger, and Simon 2.3 will remain for Panther (10.3.9) and later, as will the other apps for now.

Looking forward to WWDC 2007

I've just purchased the conference ticket, and booked the hotel and airfare for Apple's Worldwide Developers Conference, coming in June.

Last year was my first attendance, though I'd been meaning to go for years. I enjoyed it, met a bunch of interesting people, and learned useful things about Leopard etc at the sessions, so I wanted to go again this year.

This year's conference should be very interesting again, with Leopard likely being released either shortly before or (more likely) at the Stevenote.

I look forward to meeting more Mac developers at WWDC this year. I'll probably wear Dejal logo shirts, so if you're there and see me, come up and say hi!

Syndicate content