David Sinclair's blog

Big news: my first Mac OS X application, Narrator, an app to read out stories and interviews in multiple voices, has been acquired by Minneapolis-based Mariner Software, Inc..

Mariner Software produces several Mac apps, including MacJournal, Mariner Write, Mariner Calc, StoryMill, and many more, plus apps for Windows, iPad, and iPhone. They're a great fit for Narrator, since they already have a focus on writing-related products.

So why did I decide to sell Narrator? It comes down to a lack of time. I'm basically a one-man shop: I do development, support, marketing, administration, and more, all myself. I sometimes use contractor assistance for development projects or graphic design, but the vast majority of the work I do myself. I also do contract work. So I have to prioritize my time: I can only devote so much time to each product.

Narrator was originally written back in 2002 as a fun exercise to learn the Cocoa frameworks. Then version 2 was a complete rewrite in 2008 as a way to learn Core Data and other modern technologies. But while speech technologies have always been a bit of a hobby interest with me, I haven't had enough time to enhance Narrator further. Which is a pity, as I and Narrator users have had lots of great ideas for enhancements to the app.

I finally came to the conclusion that since I couldn't give Narrator the attention it deserved, I had a choice: I could discontinue it, or let some other company take over its development.

I didn't want to discontinue Narrator, since it has such great potential, and is relied on by lots of customers, including schools and writers. So to better serve the app and its users, selling Narrator was the best option. Fortunately, Mariner Software came along at the right time, and seemed a perfect fit, since they have the resources to support multiple products, and already have apps that focus on the writing and educational markets where Narrator is most popular.

This is great news for Narrator users.

We'll make the transition as easy as possible for existing customers. Until the official switchover, you can continue to buy and get support for Narrator via the Dejal site. And once it is moved to the Mariner site, licensed users will be able to upgrade to the Mariner-branded edition of Narrator for free.

Stay tuned for news of when the changeover will occur, and further details.

As many of you already know, I've been planning version 2 of Time Out, my handy break reminder tool, for quite some time.

I actually started work on it about a year ago, but then got distracted by iPhone and iPad apps, with some experimentation, an abandoned project, and finally Tweeps, my iPhone and iPad app to manage Twitter accounts. But now I'm back working on my Mac apps, with Simon 2.6 underway currently, and resuming work on Time Out 2 next month, at long last.

Anyway, in preparation for this major upgrade, I wanted to design a new icon for Time Out. The current icon (seen above) is actually not all that old; the app originally had a really ugly icon. But while I mostly like this icon, it isn't perfect. The bezel around it isn't shaded properly, and a number of people are put off by the yoga figure in the background; it can offend the sensibilities of some people for religious or philosophical reasons.

I'd like your help.

I'm not sure what design to use for the new icon. I've enlisted the help of a professional icon designer, but I don't want to waste his time in sketching notions when I don't know what I want. Can you help me?

When you think of taking a break, what image springs to mind?

If you use Time Out now, what image would you prefer to see during the breaks? (Note, Time Out 2 will have more versatile break options, so you won't have to see the icon then at all. But imagine what better image could be used in the current version.)

One fun idea I had was to draw wedge segments over the icon when it's in the Dock, or in the app, to show when upcoming breaks are due, and how long they are. If the icon were a clock, it could have live clock hands showing the current time, with colored segments representing the breaks that are coming up over the next hour. That could also work with a kitchen timer or perhaps stopwatch design. But since Time Out 2 won't have to be running in your Dock, this idea may not be all that useful, so the icon doesn't necessarily have to be constrained by it.

Anyway, I'd love to hear from existing Time Out users or potential users. What are your icon design ideas? Let me know in the comments or contact me privately.

As readers of my blog may know, I'm a fan of multi-touch and similar gestural interfaces. Here's a recent video from the TED conference, from a consultant for the movie Minority Report, demonstrating interacting with data via gestures:

I previously mentioned that version 2.0 of my new iPad and iPhone app, Tweeps, was in the approval queue. Well, today it was approved, and now it's available on the App Store.

You can get it at no cost, too, if you're quick — in celebration of the 2.0 release, I've made it free for a limited time. Tell your friends!

The two major additions in this release are the iPad support, and OAuth support.

The iPad support was of course the biggest change, with a new sidebar and expanded content to take advantage of the increased screen space.

But the OAuth support was a more important change, especially for iPhone users. Without that, Tweeps would have stopped working after June, if Twitter sticks with its plan to turn off the old-style authentication. Tweeps uses xAuth, which is a more convenient variation of OAuth; you still enter your username and password in Tweeps, and it authenticates via a complex dance of exchanging tokens and such. Once you've authenticated once (via a secure connection), Tweeps doesn't need to send the username and password again.

Warning, developer topic... uninterested customers can skip on to the next post....

I was having difficulty getting my new app, Tweeps, working as a universal app: running natively on both iPhone and iPad from one binary.

For some reason, I was in a Mac universal mindset. For Mac apps, a universal app uses two separate targets: one for PowerPC, one for Intel. This is necessary since they are of course very different architectures, so have to be compiled separately.

In iPhone OS, that isn't the case — both iPhone and iPad have the same processor architecture, so both editions can use the same code without needing conditional compilation.

However, there are important differences. Currently, iPhone (and iPod touch) is on iPhone OS 3.1.3, whereas iPad is on OS 3.2. The iPhone can't use OS 3.2, and iPad can't use 3.1. So extra steps are required.

The way this works is to set the Base SDK to the latest one you want to use (in this case 3.2), and the Deployment Target to the earliest you want to support (3.1). You can then use any available APIs from 3.1 and earlier with impunity, and can use APIs from 3.2 if you check that they are available before using them.

The recommended way to check for a new method is to use +instancesRespondToSelector:. For example, 3.2 renames the method to hide the status bar. So to use the new method if available, or fall back to the old method, you'd write:

That's all fine and good. But things get more curly when you want to use new classes. Apple's TopPaid sample code demonstrates the best way to handle this. You can load different xibs depending on which device you're running on, to set up the root views (e.g. to use a split view or a navigation controller). Each xib would load a different controller, which would contain relevant properties for each view.

There's one final gotcha that caused me trouble recently: you have to be careful about programmatically allocating newly introduced classes. If you run and it crashes with an error like the following, this is the issue:

dyld: Symbol not found: _OBJC_CLASS_$_UIPopoverController

The solution is to use NSClassFromString to resolve the class name, like so:

What got me was that this is necessary even in code only called on iPad, which I thought counter-intuitive. But it makes sense on further reflection, as the dynamic nature of ObjC means that it wants to resolve all class references when loading the bundle on startup — it doesn't know that that code won't ever get called if the current device happens to be an iPhone.

I hope this helps others having difficulty building universal iPhone/iPad apps.

Last night I submitted version 2.0 of Tweeps, my new iPhone OS app to easily manage Twitter accounts, to Apple for review prior to appearing in the App Store. I have no idea how long it'll take Apple to review and approve it, but I'd anticipate it being available sometime next week. Follow the Dejal RSS feed or @dejal on Twitter to be notified when it is available.

In celebration of the impending Tweeps 2.0 release, I've now made Tweeps completely free! This is just for a limited time, so go get Tweeps for free now!

It's been about two months since Tweeps 1.0 was released. The 2.0 update includes a number of changes, the main one being native support for iPad, which is why I think it deserves the 2.0 designation. There are some major changes to support the extra screen space, including a sidebar / popover like the Mail app and others use, and lots of other changes.

Another big change is invisible, but essential: it now uses xAuth to authorize the accounts with Twitter. This is a more convenient variation of OAuth, which will be required for Twitter access by the end of June. Tweeps has the same convenient username and password fields as before, but now uses xAuth to log in to the Twitter service. Any Twitter clients that don't support this by the time Twitter disables the old mechanism will stop working.

This new version also includes some fixes for iPhone usage, and should be more compatible with the forthcoming OS 4.0, though some further tweaks may be needed for the final OS release. Note that it now requires a minimum of iPhone OS 3.1.

One unfortunate casualty of the xAuth change is that I had to disable the feature where you can edit your avatar image from within Tweeps. I just couldn't get it working without crashing the library used to handle OAuth. I'll restore this feature in a future update if f I can solve this issue.

I've been working on Tweeps for almost a year, though mixed with other work, so actually about three man-months of work. Still, it's been quite a sizable project, and very gratifying to achieve the 2.0 release. I have a number of ideas for improvements in future versions, if there's sufficient customer interest, though first I've got several updates of my Mac apps to do.

Another minor update, this time for Caboodle, my lean clean snippet machine — a simple app to store text, graphics, PDFs, or other attachments for later access.

As with the recent Simon 2.5.7 and BlogAssist 2.2.5 updates, I'm planning on dropping Tiger support for the next feature update of Caboodle. I'm hoping to get to that in a few months, after I release Time Out 2. Dropping Tiger support will really benefit Caboodle, since it is currently held back by some legacy technologies, which I'll be able to replace with more modern tech. I'm looking forward to working on it.

I've just done a minor fix update for BlogAssist, my handy tool to help with HTML markup.

As with the recent Simon 2.5.7 update, I'm planning on dropping Tiger support for the next feature update of BlogAssist. That may not be for a while, though; I have updates of Tweeps, Simon, Time Out and Caboodle scheduled before I get back to BlogAssist. This is a simple app that does its job well (I use it every day), but I do have some great plans for it when I do get back to it in my development schedule.

One was somewhat trivial on the surface, though required updating several pages: I increased the page width from 900 pixels to 980 pixels, which is the same width Apple and others use. 80 pixels doesn't sound like much, but it gives a little more room for page content. If things look wacky, try reloading; you may have a cached CSS file from a previous visit.

The wider page also gave room for a new tab in the page header: iPad. This new page lists my vast collection of iPad software... namely Tweeps. Though as I write this, the iPad edition of Tweeps isn't released yet, but this was in preparation for that momentous occasion.

I do plan on adding more iPad apps in the future: I want to do iPad editions of at least two of my Mac apps, Simon and Caboodle. I probably won't have time to implement either this year, but they'll come eventually.

Similarly, I added an iPad block to the sidebar, between the Mac and iPhone ones, to make it really easy to see what apps are available for each platform.

Another change was the introduction of a new TrialPay-powered Dejal Store, using their new e-commerce solution. I have made that the default store (for most Mac apps), as it has some advantages over the PayPal-based store. For customers, it has the ability to give automatic discounts when you buy more than one of my apps. Plus you can get a big discount by accepting a third-party offer — for something you might be wanting to buy anyway. And it benefits me, as there are no transaction fees — the discount offers pay for the service. Try it, and tell me what you think.

I already had an experimental TrialPay store before, which has now been expanded to the same set of Mac apps. This is now called the Get It Free store. This is similar to getting a discount when outright buying one of my apps, except that you get the app completely free! Here's how it works:

I have a few more changes planned. One is to add some smaller feature boxes to the home page. Currently, there's a single large feature graphic at the top of the page, highlighting the latest significant release, but I'd like to be able to highlight other recent updates of note, and make it easier to see what apps I offer. I've experimented with mockups of a few designs, but this is my current favorite:

What do you think?

I've also been debating on whether or not I should keep the latest blog post on the home page. I kinda like it, as it makes it easier for people to see, but some blog posts perhaps don't really belong in such a prominent position.

So, I posted my first poll last night, asking how people read the Dejal Blog — via the RSS feed, Twitter mentions, on the Blog page, on the home page, etc. Please take a moment to cast your voie in the poll. (If you saw it yesterday and weren't able to vote, try again; it is now open to anonymous voters.)

As promised last week, here are a few more screenshots of the iPad edition of Tweeps, my new iPhone OS app to easily manage Twitter accounts.

Firstly, the Find Others view in landscape. You can use it to quickly locate any Twitter user. You can search for a person's name, a company or brand name, or a username. If you know the exact username, you can prefix it with an "@" to skip the search results and go straight there. On the iPad, a "Recents" popover is displayed, that includes your recent searches, making it even easier to search for them again:

In portrait orientation, the sidebar is in a popover, like in Mail etc (here's the list of people who follow you... which may get some further improvements before release):

And lastly, another landscape view, this time the Mentions list — tweets that replied to you or mentioned your username:

Simon, my flagship Mac app to monitor websites and servers for changes or failures, has been updated to version 2.5.7. It includes just a couple of changes, but is a recommended update for everyone:

Fixed a bug in the Port plug-in where it would misbehave if the text to receive or send started with a "-" character. This could affect many people, as the default Incoming Email (POP) service uses this when the server doesn't accept the login.

Fixed an issue where a notification could fail if the TestChangeCount, TestFailureCount or TestRecoveryCount variables are used.

Please note: version 2.6, currently scheduled for release in July, will require Mac OS X 10.5 (Leopard) as a minimum OS. So (unless there are any further bug-fix releases) this will be the last version that supports Mac OS X 10.4 (Tiger).

Here's an update on the iPad edition of Tweeps, my new iPhone OS app to easily manage Twitter accounts.

I mentioned in my post last week that I wanted to have Tweeps 2.0 released in time for the US 3G release, which is today. I wasn't sure I'd make it, and a few days ago I decided that there wasn't enough time to do proper testing and get it through the approval process, so my new goal is to beta test it during May, and have it in the App Store for the international iPad release, around the end of May.

I know that some people will be disappointed by the delay, but I don't feel comfortable rushing it out without adequate testing. I pride myself on releasing quality products, and that's more important than an arbitrary self-imposed deadline.

But all is not lost. If you want to try Tweeps 2.0 now (on your iPad or iPhone), you're welcome to apply to become a Dejal beta tester. Tweeps is a Universal application, so works natively on both iPhone and iPad. Only a few of my existing beta testers have notified me of iPad device IDs, so I'm keen to get some more iPad testers. I'll do the first beta release once I have a few more.

Here are a few screenshots of Tweeps on iPad. Firstly, the Profile view. Notice the sidebar providing quick access to the other views, and more spacious avatar and other info (only bug here is the count badges are truncated on the left):

In portrait orientation, the sidebar is in a popover, like in Mail etc (here's the integrated map view):

And lastly, editing the location — you can edit it here, and see the location on the map (or find your current location), or edit it on the Profile view simply as text:

I am currently working on the iPad edition of Tweeps, my new iPhone OS app to easily manage Twitter accounts.

My current goal is to have Tweeps 2.0 released in time for the US 3G release, in just over a week's time. I'm not sure if I'll be able to make it, and of course that depends on a quick approval by Apple, but I'll try!

Tweeps 2.0 will be a free upgrade for existing customers. It is a Universal application, so available as one edition for both iPhone and iPad. I plan on increasing the price for new purchasers. I'm currently thinking of $4.99, with a limited-time special price of $2.99 to ease the transition. So buy now to get it at the cheaper price!

Here's a sneak peek of the current progress; the view I was working on last night: the Edit Avatar view in portrait. There are a couple of issues with this view currently, but otherwise it's fully functional:

When looking through my old documents archive, I came across the following, saved in 1997. I don't know who wrote it or where it came from originally; it was probably written even earlier. If anyone knows, please let me know in the comments. But it's still just as funny (to a programmer, anyway):

In an announcement that has stunned the computer industry, Ken Thompson, Dennis Ritchie and Brian Kernighan admitted that the Unix operating system and C programming language created by them is an elaborate prank kept alive for over 20 years. Speaking at the recent UnixWorld Software Development Forum, Thompson revealed the following:

"In 1969, AT&T had just terminated their work with the GE/Honeywell/AT&T Multics project. Brian and I had started work with an early release of Pascal from Professor Niklaus Wirth's ETH labs in Switzerland and we were impressed with its elegant simplicity and power. Dennis had just finished reading 'Bored of the Rings', a National Lampoon parody of the Tolkien's 'Lord of the Rings' trilogy. As a lark, we decided to do parodies of the Multics environment and Pascal. Dennis and I were responsible for the operating environment. We looked at Multics and designed the new OS to be as complex and cryptic as possible to maximize casual users' frustration levels, calling it Unix as a parody of Multics, as well as other more risque allusions. We sold the terse command language to novitiates by telling them that it saved them typing.

Then Dennis and Brian worked on a warped version of Pascal, called 'A'. 'A' looked a lot like Pascal, but elevated the notion of the direct memory address (which Wirth had banished) to the central concept of the language. This was Dennis's contribution, and he in fact coined the term "pointer" as an innocuous sounding name for a truly malevolent construct.

Brian must be credited with the idea of having absolutely no standard I/O specification: this ensured that at least 50% of the typical commercial program would have to be re-coded when changing hardware platforms. Brian was also responsible for pitching this lack of I/O as a feature: it allowed us to describe the language as "truly portable".

When we found others were actually creating real programs with A, we removed compulsory type-checking on function arguments. Later, we added a notion we called "casting": this allowed the programmer to treat an integer as though it were a 50kb user-defined structure. When we found that some programmers were simply not using pointers, we eliminated the ability to pass structures to functions, enforcing their use in even the Simplest applications. We sold this, and many other features, as enhancements to the efficiency of the language. In this way, our prank evolved into B, BCPL, and finally C.

At one time, we joked about selling this to the Soviets to set their computer science progress back 20 or more years.

Unfortunately, AT&T and other US corporations actually began using Unix and C. We decided we'd better keep mum, assuming it was just a passing phase. In fact, it's taken US companies over 20 years to develop enough expertise to generate useful applications using this 1960's technological parody. We are impressed with the tenacity of the general Unix and C programmer. In fact, Brian, Dennis and I have never ourselves attempted to write a commercial application in this environment.

We feel really guilty about the chaos, confusion and truly awesome programming projects that have resulted from our silly prank so long ago."Dennis Ritchie said: "What really tore it (just when ADA was catching on), was that Bjarne Stroustrup caught onto our joke. He extended it to further parody, Smalltalk. Like us, he was caught by surprise when nobody laughed. So he added multiple inheritance, virtual base classes, and later ... templates. All to no avail. So we now have compilers that can compile 100,000 lines per second, but need to process header files for 25 minutes before they get to the meat of "Hello, World".

Major Unix and C vendors and customers, including AT&T, Microsoft, Hewlett-Packard, GTE, NCR, and DEC have refused comment at this time. Borland International, a leading vendor of object-oriented tools, including the popular Turbo Pascal and Borland C++, stated they had suspected this for a couple of years. In fact, the notoriously late Quattro Pro for Windows was originally written in C++. Philippe Kahn said: "After two and a half years programming, and massive programmer burn-outs, we re-coded the whole thing in Turbo Pascal in three months. I think it's fair to say that Turbo Pascal saved our bacon". Another Borland spokesman said that they would continue to enhance their Pascal products and halt further efforts to develop C/C++.

Professor Wirth of the ETH institute and father of the Pascal, Modula 2 and Oberon structured languages, cryptically said "P.T. Barnum was right." He had no further comments.

I got my iPad on Saturday, and spent much of the weekend playing with it. The iPad really is a magical device — as Arthur C. Clarke said, "Any sufficiently advanced technology is indistinguishable from magic."

I don't really have much to add to the numerous commentaries, reviews, and discussions on the interwebs. So suffice to say that I think it's a great device, and will only get better as OS upgrades and software updates enhance it.

Kudos to developers who provided iPad-native updates for the initial release. It takes a lot of bravery to release an app without ever trying it on a real device. For the most part, the risk paid off for them, though many of the apps have some issues, varying from UI malfunctions to crashes, which the developers are scrambling to fix.

Personally, I decided to wait for my iPad before I released Tweeps for it. Though part of that was due to a lack of time, since Tweeps 1.0 was only released a few weeks ago, then I was away on a cruise. But I think I would have been rather hesitant to do a release without live testing, even if I had enough time.

Anyway, work on the iPad edition of Tweeps is underway. It will look much like in the previously-posted mockups. I'll give my existing beta testers a first chance to try it, then will open it up to others.

One point I wanted to emphasize: Tweeps will be a Universal app — so it will run natively on iPad, iPhone and iPod touch, from one app. If you've already bought Tweeps, you'll get the iPad edition for free! If you haven't bought Tweeps yet, you can get it now at the special introductory price, and will get the iPad edition at no extra cost. I'll be increasing the price soon, so don't miss the low-low price.

Here is my latest design mockup again; see the previous post for more views (click to see full-sized):

Fifteen years ago today, Jennifer and I got married. Actually, technically it was yesterday, since it was in New Zealand, but we ignore the time zone differences. It was April 2, 1995.

Ours was a rather unusual story at the time, though not so much anymore. You see, we met via the internet, before most people had even heard of the internet. Before there was a web browser (or at least before we had heard of one: Mosaic technically was released a couple of months earlier).

Back in 1993, I was attending the University of Auckland in New Zealand, and Jenn was at Lewis & Clark College in Portland, Oregon, USA. I was using the FirstClass BBS client software on my Mac, while she was using a text-based terminal at her part-time job at the college.

We were both fans of Star Trek, so were reading the rec.arts.startrek.current newsgroup via Usenet, and met via a posting there on June 18, 1993. We switched to email, and quickly became friends, and developed deeper feelings as we got to know each other better. This was all via text communication, so we discussed all sorts of things, and got to know each other really well. We still have a foot-high stack of printouts of our early discussions.

It doesn't seem so strange to have e-friends nowadays, that you've never met in person, but back then it was definitely not the norm.

In due course, it was evident that we were in love. So we talked about getting together in person — remember, we were separated by nearly 7,000 miles of ocean, and just had emails and a few photos and other airmail correspondence. So on February 3, 1994 I flew to Sea-Tac and we met in person. So the first time we saw each other in person was at the gate in Sea-Tac (this was before the increased security, when non-travellers could go right to the gates). I stayed with Jenn in Portland for 5.5 weeks, getting to know each other even better, and exploring the area. Then I headed back to Auckland.

Yes, I had hair back then, or some anyway. :)

Our odd long-distance relationship continued, though that time apart was quite difficult for both of us. On August 17, 1994, Jenn moved to New Zealand, and on October 15, 1994 on Long Bay beach near the water edge, I proposed, and she said yes.

We set the wedding date for halfway between our birthdays, on April 2, 1995. (For some reason, we didn't want to get married on April 1. Go figure!)

We've always been ones to do our own thing, and our names were another example. My surname was originally "Lambert", but rather than Jenn taking my name, or using a hyphen or other convention, we decided to both adopt a new name of our choosing. We decided on "Sinclair", and I legally changed my name, then she took it when we married (seems much easier for women to change their names when getting married).

Our wedding was in our own style, too. We didn't want a big fancy traditional wedding, so we opted for a small informal affair on our favorite beach, Long Bay. We rented a shelter for the reception, and had the ceremony on the adjacent grass overlooking the beach. The ceremony was conducted by my late grandfather, who was a minister and came out of retirement for us. That was very special. And since we were (and still are!) unashamed geeks, our wedding cake had bride & groom Macs on top (see the photo).

Since meeting via the internet was so remarkable back then, we were interviewed by a local newspaper and TV station, who filmed our wedding. Some of the best footage of our wedding is from their pro cameras. Apple even gave us a PowerBook 150 laptop as a wedding present.

That was 15 years ago. 15 wonderful, happy years, and we love each other all the more deeply now.

What's the secret of our success? The "four C's":

Communication: talk through concerns, don't use the "silent treatment"; always be honest.

Commitment: those vows really mean something.

Compassion: be supportive and considerate of feelings.

Compromise: be flexible, come to agreements that you can both live with.

That's worked for us. That, and starting out as e-friends, where all we had were our words, so we really got to know each other very well. We both work from home most of the time, so spend a lot of time together, without getting on each others nerves too much. :) So we must be doing something right.

But as I said, I've been struggling with coming up with a satisfactory design. My latest thought is that I shouldn't try to emulate a physical object like a notepad or book, but would be better following Apple's example with apps like Mail, and use a split view.

My wife and I have a tradition of staying somewhere nice to celebrate our wedding anniversary. This being our 15th, we thought we'd do something special, something we've never done before — a trip on a cruise ship.

For our first cruise, we decided to start with a "beginner" 4-night cruise to Baja Mexico on the Carnival Paradise ship. Since it's a special occasion, we sprang for a suite with a balcony.

Overall, the cruise was a great experience. The suite VIP treatment was well worthwhile, with express embarkation (bypassing a 1.5 hour line) and priority disembarkation, among other benefits.

We attended three of the four dinners at our assigned table, including the formal night, and enjoyed conversations with the tablemates. On Wednesday we were feeling peckish early, so partook of the poolside grill instead, which was nice.

We had interesting shore excursions on Tuesday and Wednesday. Tuesday was Catalina Island, where we had a small bus tour of the city of Avalon and walked around the botanical gardens, which was created by the Wrigley chewing gum founder — he originally bought the whole island. We then walked around town and bought some souvenirs.

Wednesday was Ensenada in Mexico, on the Baja peninsula. There we did a wine country tour, with a coach trip out to an organic winery and a wine tasting, followed by a photo stop at a bullfighting ring, then on to a larger-scale winery and more tasting. We bought two bottles of wine at each, plus were given two more as part of the tour. We were worried about getting those home, but they survived the rough baggage handling, buried in the middle of our luggage.

Speaking of alcohol, as people who follow me on Twitter (@dejal) may know, until a couple of months ago I was a teetotaler, by choice — I never saw the point in drinking alcohol. However, I recently changed my mind about that, and have started sampling various alcoholic beverages. On the cruise, I had my first taste of some mixed drinks, including a margarita (invented in Ensenada) and others. My impression was that such beverages are tastier than wine and beer, though of course more dangerous (and expensive).

And speaking of that, it was certainly nice having all the free food and lots of eating options on the ship. I gained several pounds. But they certainly pushed the alcoholic beverages — you hardly sit down somewhere before a server comes by asking if you want a drink. Still, that could be considered good service... and yes, the service was great; everyone was attentive and friendly. Apparently the ship has a passenger capacity of 2,052 and a crew complement of 920, most of which are servers and room stewards.

The room stewards were very friendly, too, greeting us by name when we passed in the corridor, and leaving cute towel-animals on our bed each day.

Another practically constant thing were the photographers — before you even get on the ship, you have your photo taken a couple of times, and getting off in Mexico we had our photo taken no less than four times. There are photographers lining the public hallways, with differing backdrops, and photographers during dinner. They display the photos around one of the main decks, encouraging you to buy them; another great way to extract $$$ out of passengers. We did buy some nice shots of us on our formal diner night.

Thursday was a "fun day at sea", travelling back from Mexico (though most of the day was spent parked off Catalina Island — it doesn't take all that long to travel between the ports). We had a formal lunch and dinner, but otherwise didn't do much... just sat around on our balcony and read for much of the time. We did stop by their evening dance show, but it looked too cheesetastic for our tastes.

Then Friday we woke up early with the ship back at its Long Beach base, and did the VIP early disembarkation, coach shuttle back to LAX airport, and our flight home (which caused some worry, as we had difficulty trying to check in online, but fortunately the check in agent helped us out).

We'll definitely do more cruises in the future. It'd be nice to try a longer one, and one in warmer weather — it was nice enough, though a little cool at times.

Now that Tweeps is available in the iPhone App Store, I'm starting work on the iPad edition.

Obviously, the iPad has a lot more screen space than the iPhone, so a different design is needed to take full advantage of this extras space. I've been thinking about iPad design concepts ever since the iPad was announced, but have yet to come up with something that entirely satisfies me.

A difficulty with coming up with a good design is that Tweeps can show any number of levels. You start with a list of your accounts, then show your profile overview, then can show a list of people you're following (for example), then delve deeper by showing the profile overview for one of them, and their followers, and so on to any number of levels. This works fine with the navigation display in the iPhone edition, where you can keep pushing views onto the screen, but is harder with a more traditional interface.

For quite a while, I've been thinking about something like the iPad Contacts app design, with a two-page book metaphor. The idea would be to display the profile details on the left page, and the avatar, web, map, following, followers etc views on the right (one at a time). It'd then flip the page when viewing a different person's information. That seems like a reasonable approach, though the very different content displays on the right seems to break the book metaphor.

The latest idea I've been exploring is more of a notepad metaphor. The idea is a single notepad page with the profile overview, and bookmark tabs (like Post-it® flags) sticking out from the right for related pages like those listed above. So you touch a tab to flip the notepad to that page. There would also be bookmark tabs on the left side to go back to the previous profile(s) or the accounts list.

Here's a rough mockup, done in the great OmniGraffle (click to see full-sized):

Don't worry about the fine details; as I said, it's very rough.

You'd tap the Following tab on the right to flip pages to the Following view, which would be similar to that in Tweeps now, except would have room to show more information about each person:

You could then go back to the profile overview via the new tab with the avatar icon on the left, or go straight to other pages via the other tabs on the right.

If you tap a row in the Following list, it'd flip the page to the profile overview for that person, and the tabs on the right would then show more information about them.

It might look better with a black background, to merge into the iPad bezel, as follows. In which case I'd eliminate the space around the edges (still shown in this mockup), providing more room for the content:

What do you think? Would this design work, or am I on the wrong track? Should I forget about trying for a real-world look? I'd love to hear other design ideas too.