uDecide! for iPhone Released!

uDecide! for iPhone® has been approved for sale. uDecide! is US$0.99 (price varies in other countries) and can be purchased on the App Store (click here).

uDecide!

uDecide! … because the important decisions are hard enough.

uDecide! helps you make decisions or answers questions. Some decisions are rather broad; the answers work for almost any question. There are a wide variety of questions whose answers can be chosen from a list of your friends. Other decisions are more specific.

“Who should I ask to help me move my furniture?” … uDecide!
“What to eat for breakfast?” … uDecide!
“Where to go tonight?” … uDecide!
“What to watch on TV?” … uDecide!

Features

  • Ask for an answer (turn the device over and then right-side up or shake it)
  • Select another decision (touch the info button in the lower-right corner and select another decision)
  • Edit an existing decision (touch the edit button while viewing the list of decisions) or add, edit, or delete answers for a decision (done while editing a decision)
  • Delete an existing decision (touch the delete icon while viewing the list of decisions)
  • Create a new decision (touch “Add new decision…” which is the last row in the decisions list)
  • Multi-line paste support (Not only can a line of text be pasted in the standard fashion, but uDecide! supports pasting multiple lines of text and treating each line as a new answer.)

For more information, screenshots, and tips, visit the uDecide! product page.

A Marvel: iPhone Development Environment

Well, school is out for the summer and, while I still have plenty to do to prepare for teaching in the Fall, I have some time to focus on Sugar Maple Software. I’ve downloaded the iPhone SDK, upgraded Xcode, started the Perforce server process, bought the third edition of Aaron Hillegass’ excellent Cocoa Programming for Mac OS X which provided a good refresher and update. To keep from getting too lonely and re-establish contact with old Mac acquaintances, I’ve created a Twitter account: @gcschmit and am following a number of Mac folks that I’ve at least met.

I’ve decided to focus my efforts this summer on the iPhone since I love to learn new stuff and don’t have enough time to develop a full-blown Mac OS X application. I hope to release a “fun” app later this summer and at least make enough progress on a more “serious” app that I can use it during the upcoming school year. If you are intrigued and would like to beta test, let me know; otherwise, I’ll be sure to announce the release when it happens.

We’ve all read, heard, or seen a ton of information about the iPhone in general and a little bit about developing for it. One aspect of iPhone development that I haven’t heard anywhere is the amazing usability, power, and quality of Apple’s iPhone development tools. I suppose I shouldn’t be surprised by this since I expect that most iPhone developers are desktop developers of some flavor and, therefore, expect that developing for the iPhone should be similar to developing a desktop application. However, this blissful expectation is unreasonable — the iPhone is an embedded system. With a few notable exceptions, developing software for embedded systems is extremely challenging in part due to confusing, buggy, limited, and expensive development tools. (One notable exception is my former employer whose LabVIEW development environment makes embedded system development familiar and easy for LabVIEW desktop developers.) Perhaps I appreciate Apple’s iPhone development environment more than other developers due to my previous experience, and pain, developing for embedded systems. I’m trilled with the extremely low barrier to entry both in terms of learning curve and fees. I’m overjoyed to use an object-oriented language and architecture for embedded development. I’m ecstatic that I don’t have to debug code by modifying the assembly by hand to set breakpoints and using a flaky serial port to spew messages displayed in a terminal emulator.

While I’m sure that I will have gripes about iPhone development and will write about them here, today I’m only focusing on the positives. Today, I’ll highlight the amazing accomplishment that is Apple’s iPhone development environment and try to help iPhone developers appreciate how fortunate they are!

Textcast

Dave Dribin and Jonathan ‘Wolf’ Rentzsch of Bit Maki Software software recently released Textcast:
Textcast turns any text — documents, web pages and entire blog feeds — into personal podcasts you can listen to right on your iPod and iPhone.
I mention this since I know that some folks have requested that I added a feature to NewsHawker to create a podcasts instead of immediately reading the news. Well, wait no longer! I haven’t personally used Textcast, but knowing Dave and Wolf, I expect it’s great.

Two Months with Leopard

I’m much too busy to publish my initial impressions of Leopard in a timely manner; so, instead, I’m publishing my thoughts after two months of living with the big cat. I’m going to cover a number of different aspects of Leopard, some major and some minor. I’ll start with the upgrade and a litany of issues and then comment on some surprises, both positive and negative.

Upgrade

For the first time ever, I upgraded an existing installing to a new major release of an operating system. Before Leopard, I always performed a clean installation and then painstakingly reapplied all of my customizations. While time consuming, I always found this process therapeutic and cleansing. However, in October, I barely had time to run an upgrade installer yet alone perform a clean install followed by extensive customizations. Regardless, if an upgrade is good enough for Gruber, it’s good enough for me. And, it was.

Postfix

The most annoying side effect of upgrading to Leopard that would probably have been avoided with a clean install, was the frequent postfix error (fatal: file /etc/postfix/main.cf: parameter mail_owner: user postfix has same user ID as _postfix) that would be displayed in system.log. I eventually Googled this error and discovered that if I changed the user ID the errors would stop. Unfortunately, I now have a new recurring postfix message in system.log: postfix/qmgr[83978]: warning: qmgr_move: update active/0759FEE9FED time stamps: No such file or directory. Lovely.

Cron

I was surprised that my cron tables were empty after installing Leopard. As recently published, crontabs live somewhere different in Leopard. Regardless, I would have expected the installer to move them to the new location. Anyway, I took this opportunity to replace my cron jobs with launchd agents.

Printing

The upgrade process also deleted all of my printers. Again, not a big deal, but I had hoped by upgrading, I’d have less stuff to reconfigure. Anyway, one of the bugs in Leopard that is most annoying is that I can’t print a document in landscape orientation to my school’s HP LaserJet via SMB. When I do, it is cropped and printed in portrait orientation. To work around this bug, I have to print the document to Preview, rotate the document, and then print it in portrait mode. I can print a document in landscape mode to a LaserJet 1022 via USB or to an EPSON Stylus Photo R220. Go figure.

Safari and Domain Names

Since I’m on a roll with various aspects of Leopard that don’t work well, I’ll mention that Safari 3.0 appears to have issues with user names that are prefaced by a Windows domain (e.g., MYDOMAIN\user). I need to specify such a user name for a number of web sites such as Outlook Web Access and, while I had no issues with Safari on Tiger, I do haves issues on Leopard. Sometimes, omitting the domain works, but not always. Since Firefox always works, it is running much more often than under Tiger.

iGTD

iGTD had (has?) various Leopard-specific bugs. The one that was a major inconvenience for myself was that under Leopard features involving current and future dates were broken. I relied on iGTD pretty heavily and having it not working quite right was a huge pain. Fortuitously, Omni opened the beta of OmniFocus to the public shortly after the release of Leopard (or was it opened shortly after they learned of all the Leopard-specific issues with iGTD? hmmm…). I’ve been using OmniFocus ever since and bought a couple of licenses today (one as a gift).

Rounded Screen Corners

I’m getting kind of picky now, but I miss rounded screen corners. Not enough, to bring them back, but I still do miss them. I feel that if I touch the sharp corners of the screen on Leopard, I’ll cut my finger.

Folder Icons

Okay, being even more picky, I find the new folder icons distracting. Go ahead, take a moment to go take a close look at a folder icon in the Finder. Yes, it is wonderful that we are now using folders with 100% post-consumer recycled content, but, even after two months, I keep thinking that my screen has picked up dust and needs to be cleaned.

Spaces

Spaces was the feature in Leopard to which I was mostly looking forward. However, it ended up as the most disappointing new feature. It seemed that most of the time it did the opposite of what I expected. I wanted to use Spaces to separate contexts not applications. Maybe this is not what Spaces is designed to do since it seemed to behave in unexpected ways whenever an application was running in multiple spaces. Too often a new window would open in a different space than the active one. Or, clicking on an application in the dock would switch to another space rather than bring all of that application’s windows to the front in the current space. Furthermore, I never did quite figure out the behavior pattern when I switched to an application using command-tab. I really tried to use Spaces. In fact, I used it for a whole month until I just couldn’t take it anymore and turned it off. Sigh.

New Screen Savers

I’m almost embarrassed to admit that perhaps my favorite Leopard feature is the new screen savers. The collage and mosaic display styles for the pictures screen saver are practically hidden (look for the small slideshow, collage, and mosaic display style icons in the Screen Saver System Preferences). The collage display style is perfect for my MacBook Pro. I love how I can continue to see previous pictures. With the previous slideshow display style, I too often would notice an interesting picture only to have it vanish and be replaced before I was ready. The mosaic display style is amazing on my 24″ iMac. I find myself standing before the screen mesmerized as I try to guess which picture is being displayed.

Cover Flow and QuickLook

I rarely, if ever, enable Cover Flow in iTunes. I simply don’t find that seeing the album cover for those of my albums that have covers in iTunes is helpful. Maybe my CDs have been siting boxed up in my basement for too long for me to remember their covers. Because of my extremely limited use of Cover Flow in iTunes, I was amazed how much I use it, and how useful I find it, in the Finder. Almost half of my main Finder window displays Cover Flow view. I often browse files by looking at nothing more than the Cover Flow view. If I need more detail, I use Quick Look. One of the greatest features of Quick Look is that I can continue to use the arrow keys to switch between files in the Finder white the Quick Look window is displayed.

File Sharing

The behavior of connecting to file shares in Leopard is so intuitive. I like how the other Macs on my LAN are automatically displayed in the sidebar of a Finder window. I was pleasantly surprised when I first clicked on one of these Macs and was automatically connected to it as a Guest which was exactly what I wanted. Later, when I needed to connect to another Mac as a specific user, I was thrilled that I could easily do so from the Finder window (“Connect As…” button) and that, in the future, I would continue to be connected as this user. What a great implementation that addresses multiple use cases with such simplicity.

Unmounted File Shares

Speaking of file sharing, I’m thrilled that I can now forget to unmount a volume, move to another location, wake up my machine, and be able to use it without having the Finder blocked for a ridiculous period of time waiting for the now missing volume to reappear. This is one of those features that those who only use Leopard and onward won’t appreciate since they, as they should, simply expect the system to behave this way. The rest of us can now remark that, back when we used Mac OS X, you had to remember to unmount your volumes before you slept your machine and moved it somewhere or else the Finder would hang when it woke. Yeah, and it was uphill. Both ways.

Software Update

While I don’t perform all sorts of voodoo before installing minor software updates, I am somewhat careful. Gruber’s process from 2004 is almost identical to mine (I reboot rather than just logout). Well, my process is now one step simpler. The new Software Update application will reboot the computer after downloading the updates and before installing them. Another pleasant surprise that makes my life simpler.

Time Machine

I almost forgot to mention Time Machine which is apt because it works so well that I have forgotten about backups. I used to use a sophisticated backup system involving rsync, but now I just use Time Machine. Since I backup my MacBook Pro over wireless, the initial backup would have taken a ridiculous amount of time. Fortunately, I avoided this by following the advice to configure and start the backup over wireless and then plug the external Firewire disk directly to the MBP to complete the initial backup.

Summary

If I was to summarize Leopard in one word, it would be “surprising.” Overall, I’m very pleased with Leopard but not for the reasons that I expected. Rather, it’s the pleasant surprises due to unexpected features or from the unexpected value of features that makes me so pleased. Sure, I’ve enumerated a handful of inconveniences but I’ve either already dealt with them or expect that a future update will. I’m hoping that Leopard will continue to surprise me, in good ways, in the future.

A Warm Welcome to Alex

As a regular user of NewsHawker, one of my favorite features in Leopard is Alex:

Meet Alex — a new English male voice that uses advanced, patented Apple technologies to deliver natural breathing and intonation, even at fast speaking rates.

Alex sounds great when reading feeds at high speaking rates.

If you’ve tried NewsHawker before but didn’t like the sound of the voice in Tiger, if you’ve now installed Leopard, it’s time to give NewsHawker another try with Alex. If you haven’t tried NewsHawker yet but have installed Leopard, now is a great time.

Tumbleweeds with Megaphones

I still hope to gather my thoughts on C4[1] and share them. However, while I’m gathering, I’d like to redirect everyone to a thoughtful piece by Rich Siegel: Tumbleweeds and Used Car Lots. Pay particular attention to the section where Rich describes how the debates on the internet can easily deteriorate into a situation where the person who shouts with the largest megaphone, rather than the person with the best argument, “wins”.

C4[1] Day 0: the Power of the Indies

Last night, C4[1] began. Wolf Rentzsch and Wil Shipley were the speakers. Wil was, well, Wil. Wolf’s talk was interesting and I found myself still thinking about it this morning. Wolf talked about the sea-change that indie developers are experiencing. He believes that indies have much more influence and power since platforms, languages, and interfaces have shifted from the large companies (e.g., Microsoft and Apple) to the web, resulting in a democratization. The lower cost of entry for developers is certainly an example of this trend. However, while I think we’re heading in this direction, we’re not there yet.

Wolf actually reinforced my position in his talk. Using Twitter as an example, he illustrated how a public API is essential for success of a web application. Wolf remarked he doesn’t even bother to use a web application if it doesn’t have a public API. While APIs can be used for a variety of purposes, they are frequently leveraged to develop desktop applications that interface to these web applications. Twitter’s API supports applications such as Twitterific, which I expect is used more often on the Mac than Twitter’s web site. Similarly, it is important that blog software supports an API so bloggers can use desktop tools such as MarsEdit to write their posts rather than the web interface.

So, I’m not willing to go as far as Wolf in terms of the shift of power to indies due to a shift to web apps. That said, I agree that the trend is in that direction. For those of us who develop applications on the desktop, rather than web applications, this transition period provides a unique opportunity to develop desktop-based clients for web applications. I think we’ll still be doing this for a while.

Looking Forward to C4[1]

I’m off to C4[1] in a couple of days and am really looking forward to it. I haven’t made the time to prepare for Iron Coder Live at all. Maybe something fun that doesn’t require actually owning an iPhone will strike me in the next couple of days. I’m really looking forward to meeting a number of people in person that I only know via their blogs, e-mail, or IRC. Speaking of IRC, there’s a channel for C4. There’s also a Wiki where attendees can add themselves. I also hope that this conference will help me focus my vision for Sugar Maple Software.

Focusing My Vision

Astute readers may have noticed the plurality in the following quote from my initial post introducing Sugar Maple Software:

I decided that I had other passions to explore and I wasn’t getting any younger. One of these passions is independent software development for the Mac. So, I founded Sugar Maple Software.

I referred to passions plural. The other passion that I’ve been pursuing since last September is teaching high school physics. I’ve been working towards completing my Secondary Education Teaching Certificate and my Master’s in Teaching from National-Louis University. I expect my certificate to be issued any day now and plan to finish my Master’s in August. I will be teaching high school physics starting this fall. I love it. (Posts have been intermittent lately since I’ve been student teaching.)

I plan to continue to develop NewsHawker. I also plan to continue consulting this summer and during school breaks and future summers.

That said, I want to focus the vision of Sugar Maple Software such that my future applications more closely align with teaching or physics. If I can achieve this, the synergy will benefit both my career as a teacher and Sugar Maple Software.

I’m definitely open to any ideas that the development or teaching communities may have. Please feel free leave a comment, via e-mail, or talk to me in person at C4[1] if you are heading there next month.

How I Use NewsHawker

Obviously, I’ve been using NewsHawker longer than anyone. I thought I’d share how I use it on an almost daily basis in hopes of providing potential uses that may not be obvious at first glance.

I often use NewsHawker to read the news items from a variety of Mac-related news sites. I do this directly in NetNewsWire; I don’t switch to NewsHawker. Instead, I select my “Mac News” group in NetNewsWire and then run the “Read Headlines” AppleScript using FastScripts. The “Read Headlines” AppleScript reads the headlines, but not the bodies, of the news item while marking them as read. (This script is included in the help for NewsHawker.) If I’m interested in the news item, I’ll either press the down arrow key on the keyboard or, if I’m not sitting at my computer, click on the down button on the AppleRemote to hear the body for the news item. This is an example of temporarily overriding NewsHawker’s preferences via AppleScript.

I also use NewsHawker to read the BBC News feed. However, there are a couple of topics in which I’m not interested. To accommodate this, I’ve created a Smart List in NetNewsWire that filters out those stories in the BBC News feed. Then, I invoke NewsHawker in the same manner as above, but I use the “Read News” AppleScript. The “Read News” AppleScript reads the headlines and bodies of the news item while marking them as read. This script is also included in the help for NewsHawker. This is an example of leveraging NetNewsWire’s features to filter the news items passed to NewsHawker.

In case you’re curious, I don’t use NewsHawker to read some feeds.

NewsHawker is a relatively simple application that is designed to do one thing and, hopefully, does it well. These simple examples of how I use NewsHawker are intended to illustrate how I leverage the already existing features in NetNewsWire and NewsHawker’s AppleScript to support to read my news in a variety of sophisticated ways.

One more thing, if you have access to Leopard, you want Alex to be reading you the news. Trust me.

thoughts yet to be boiled down to their essence