This site is designed to take advantage of CSS. If you are seeing this, CSS must not be available or enabled in your browser. Everything should still work, but won't be as pretty. :)
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!
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.
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).
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.
This is a free update for licensed Simon users.
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.
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. :)
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:
All this was created in Panic's excellent Coda application; my preferred web environment now.
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.
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:
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.
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:
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!
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:
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:
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'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.
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.
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!
I've made a number of further website improvements over the last week:
Note: due to the CSS changes, if the page header looks weird, try reloading the page to fix it.
Caboodle version 1.1.1 is now available. It includes several fixes and improvements:
This is a recommended update for all Caboodle users.
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.
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!