David Sinclair's blog

Octagonal dream house

I've always enjoyed looking at house plans. Many years ago, back around 1995, I had fun imagining an ideal house plan with an octagonal shape. It just seemed an intriguing shape for a house. I particularly liked the idea of having a large courtyard in the center of the house, with a private patio and swimming pool.

I sketched out a house plan based on my ideas, drawing it in the now-obsolete ClarisWorks application. Recently I came across the old file and converted it to PNG so I'd be able to continue viewing it and reminiscing:

(The above notes are part of the original image.)

The plan still has some good ideas, including some things that have become popular in modern luxury houses, like a media room... and some things are are no longer all that relevant, like a photography dark room (though my wife is still keen to have one for B&W photography). I'm sure I would do lots of things differently now, though I still like the general layout.

Now that I live in the US, it's interesting to be reminded of some of the NZ terminology. For example, we'd say "master bath" instead of "master ensuite", "living room" or "great room" instead of "lounge", and "sliding glass door" instead of "ranchslider". The 4-car garage is definitely an American touch, though. :)

Oh, and for those who don't think in meters, 16m is about 52.5'. So the house is about 105' across, all on one level, apart from the basements. Which makes it somewhere in the range of 5,000 square feet, if my rough math is right. Quite big!

Nowadays, I'm more enamored by Queen Anne Victorian house styles. For example, this plan is pretty much ideal in my book. I just love the pointy bits. :)

Simon 2.6 sneak peek update: Find filter

As mentioned in previous blog posts, I'm working on version 2.6 of Simon, my flagship Mac app to monitor websites and servers for changes and failures.

A few brave/lucky people have tried the previous alpha release, and didn't find any problems with it, which is always reassuring. Now I have another alpha available. It is only available to licensed users currently; it'll be opened up to everyone once in beta. If you want to try it, and help me test these new features, please contact me for the download URL.

I spent the past week working on a new filter plugin. It turned out to be one of the most powerful (and code-intensive) features of Simon, second only to the Script plugin.

I was originally planning on having separate "Keyword" and "Regular Expression" plugins, but decided that it'd make more sense to combine them into one, since they have a lot of commonality. So the new plugin is called simply "Find", and it supports both.

Here are the release notes on this new feature:

  • Added a Find filter plug-in. This is as easy or powerful as you want: it supports both simple text matching and regular expression searches.
  • The Find filter plug-in can find one occurrence, find a specific occurrence (like for the Block plug-in), find all occurrences (outputting them separated by your choice of delimiter), or find & replace those possiblities, outputting something else for the match(es) -- especially useful with regular expression searches.
  • For simple text matching mode, the Find plug-in supports finding Contains, Starts With, Whole Words, and Ends With. For regular expression mode, it has a helpful menu of regular expression operators to help build expressions, including a dynamically-updating list of capture group markers for replacements.
  • Find-based filters can even result in a failure if the text was or wasn't found, if desired -- useful to detect text that mustn't or must be there.

Here's a screenshot of the filter portion of the Edit Test window, demonstrating some of the power of regular expression-based filtering, to output the RSS feed URL of a web page. Notice that it outputs just the contents of the first capture group (the portion between parentheses), rather than entire match:

And a simple text match in the Edit Filter window:

The little drop-down menu with the magnifying glass icon hides a lot of power; use it to choose the find or find & replace mode, text matching or regular expressions, and other options. In regex mode it lists lots of regex operators as a handy guide; just choose one to insert it into the find or replace field (as appropriate):

Lastly, as another example, here's the filter portion of the Edit Filter window showing one of the built-in regular expression-based filters, that uses Find All to list all URLs in the input as a comma-separated list (and result in a failure if there aren't any):

Want to try it yourself? Just ask!

Narrator has moved to Mariner Software site

As discussed in a blog post a couple of months ago, my first Mac OS X application, Narrator, was acquired by Minneapolis-based Mariner Software, Inc.

The intervening time has been a transition period, as Mariner updated Narrator to use their branding, licensing, and so forth, and as their support staff got up-to-speed with the app. That process has now been completed, and Narrator is now available on their website.

Visit Mariner's Narrator web page for more information about the rebranded Narrator.

Sales and support for Narrator are now handled by Mariner. Existing Narrator 2 customers can update to the Mariner-branded edition at no cost. If you have any queries about it, please check out their helpful support resources.

I'll be interested to hear your experiences with this transition. If you have any comments (good or bad), please get in touch.

Back to school specials!

On occasion, independent developers like to band together to offer great deals, and help introduce their customers to other great indie products.

One such deal has just been introduced: iAppsForStudents. This is focused on students returning to school around this time (in the US, at least) — but the deals are open to anyone interested in learning about new software.

I'm pleased to participate in this promotion. I've added a coupon code "BACK2SKOOL"; simply click this link to go to the Dejal Store, and the coupon will be already applied for you.

The coupon will give you great discounts on my Mac products. For example, get Simon Standard for just $49.95 instead of the regular $59.95 ($10 off), or get the Enterprise license for just $145 instead of $195 ($50 savings)! Similarly, get $5 off Individual or Household licenses of Caboodle and BlogAssist.

The iAppsForStudents promotion runs until the end of August, but my coupon will continue until the end of September. But don't delay!

And don't forget to check out the other great participating Mac, iPad and iPhone apps with their own coupons, listed on the iAppsForStudents site.

Simon 2.6 sneak peek now available

As discussed in my previous blog post, Simon version 2.6 is coming along nicely.

I am now ready to let a few brave souls try it. See that previous blog post for a list of the changes in this version.

If you'd like to start using an alpha release of Simon 2.6, and help me test the new filter feature and other changes, please contact me, and I'll give you the sooper sekret download URL for this version. Note: only licensed Simon customers can run alpha releases.

Although I've tested it, and it seems bug-free based on my testing, there may be bugs that I haven't found. So I want to limit the number of people using it for now. Once it's had some successful alpha testing, I'll open it up to more people, and once it's feature-complete, I'll do public beta releases.

I'll ask alpha testers to take an extra precaution: you should make a copy of your Simon data (located at "~/Library/Application Support/Dejal/Simon", where "~" means your home folder), just in case. If you want to revert back to version 2.5.7, the data should remain compatible, though any filter changes won't be reflected in that version.

The current Simon 2.6 alpha comes with two filters by default: "Block" and "Change". Both use the "Block" filter plugin; the difference is simply that "Block" includes the Start and End fields in the Edit Test window, like Smart Change Detection, and "Change" doesn't. Both will detect a change.

When you upgrade, existing Smart Change Detection settings should be automatically converted to the corresponding filter settings. Tests with change detection disabled will have no filter; tests with change detection enabled but blank fields will have one "Change" filter; tests with Start and/or End text entered will have one "Block" filter.

No Script-based filters or other filter plugins are included in this release, but they will be added in future updates. I'd really appreciate it if you wanted to write some Script-based filters that I could bundle with the app.

I hope that the alpha testers will try the various new features of Simon 2.6, and let me know of any problems or areas for improvement.

If you're a licensed Simon user and want to try Simon 2.6, please contact me for the download URL.

Simon 2.6 progress report

Since people have been asking and are eagerly awaiting the forthcoming Simon 2.6 release, I thought I'd give a progress report.

Simon 2.6 is coming along nicely. Software development takes time, and the filter feature is quite complex, but the infrastructure is finished, and the Block plugin (which implements the existing Smart Change Detection and more) is done, plus Script plugin support is implemented and being tested now. I then want to add a couple more plugins, though I might do an alpha release once Script is finished.

Here's a teaser screenshot of some filters used in the Edit Test window; notice specifying the input text for each, and advanced options on the second filter (the third one doesn't actually have any additional effect; the Block filter detects changes too):

And the Edit Filter window showing a Script-based filter, which will look familiar to existing Simon users, since it's quite similar to Edit Service etc:

As useful and powerful as the new filter feature is, it isn't the only change in 2.6 by a long shot.

Here are the current release notes, as a sneak peek of the goodies coming in this new version. More stuff will be added before the first beta release, too:

Filters:

  • Added a new Filters feature, replacing the old Smart Change Detection feature in the Edit Test window. The Block filter performs the same function as that old feature, plus several other filters are supported to do other analysis of test output, and you can write custom scripts to create additional filters.
  • Added a Filters window listing the available filters, and enabling adding, editing or deleting them.
  • Added an Edit Filter window to add and edit filters, much the same as the Edit Notifer etc windows. It includes options to configure how the filter is used, plug-in-specific controls, and auto-pause settings.
  • Added a Block filter plug-in to support the old Smart Change Detection functionality. It extracts a block of text between specified start and end text.
  • The Block filter also supports new options to search from the start or the end of the input text, and search for a specific occurrence of the text, e.g. start from the 3rd occurrence from the end of the text.
  • Extended the Script plug-in to work as a filter, too. This enables you to create your own custom filters using AppleScript, Perl, PHP, Python, Ruby, or unix shell scripts.
  • Added a checkbox to the Script filter editor to control whether to merge or override the result of the script with the status of the service and any previous filters.
  • Added a VariablesCSV variable, that outputs a comma-separated list of all other variable names. Potentially useful when debugging your scripts.

Services and Notifiers:

  • Enhanced the Web (HTTP) service plug-in to include checkboxes in the Cookies table: checked cookies automatically update their values (as before). Cookies with blank values are now also supported; they are not sent. New cookies are recorded automatically. So you can prevent a cookie from being recorded by listing it with an unchecked box, e.g. to send the same value every time. Session cookies are now recorded as unchecked with blank values (so are not sent or updated).
  • Reworded the TestStatusPhrase variable to eliminate the word "just", since the event may have occurred a while ago, if it is an ongoing failure.
  • The new VariablesCSV variable is available for services and notifiers, too.

Other:

  • Added a File > Save Log... command to enable saving the current log information to a tab-delimited text file. It saves just the selected lines if there are at least two selected, otherwise all lines. (You can already copy selected lines, too.)
  • Separated the Pause and Resume commands in the menu and toolbars, so it is easier to pause or resume all tests when there is a mixture of paused and active tests.
  • The Pause interval is now remembered as a default for next time, even across launches of Simon.
  • Added optional support for Wi-Fi hotspots. When enabled, Simon tries to fetch a known value when it is first launched or after the Mac wakes from sleep, and goes into a "hotspot" mode if it receives something unexpected -- probably a hotspot login page. This will avoid having false failures when you have an internet connection but need to log in to the hotspot. This feature is disabled by default, but can be enabled via a new General preference if you have Simon on a laptop.
  • Sorting on the Status column in the Monitor window now sorts so checking is at the top, followed by failure, changes, recovery, and paused at the bottom (with time-sensitive statuses in chronological order).
  • Improved handling of sorting all table columns.
  • Many other behind-the-scenes improvements made possible by dropping Tiger support.
  • Now requires a minimum of Mac OS X 10.5 (Leopard).
Additional planned filter plugins include:
  • Keyword: looking for a single bit of text.
  • Regular expression: using regex to match text.
  • Number: detect if a numeric value is greater or less than a reference value or the previous value, optionally by a threshold amount.
  • Link Validator: check for broken links on a web page.
  • Concatenate: combine the results of two filters.
  • Result Override: change the status (failure, unchanged, changed) into another status.

Some of those might be deferred till a future release, depending on how long they take. But with the Script filter, you'll be able to create your own filters as easily as you can create service and notifier scripts.

I hope you're as excited by Simon 2.6 as I am! It'll be a great release. Follow @dejal on Twitter, like the Dejal Facebook page, or read this blog for more news on development progress and the forthcoming alpha and beta releases.

Simon Standard featured in both VoteBundle and TheMacBundles

I'm pleased to announce that Dejal Simon, my flagship server monitoring app, is now featured in two bundles: the existing TheMacBundles collection, and an innovative new VoteBundle.

VoteBundle started out with 20 apps, and 40,000 Mac users cast 200,000 votes for which apps they most wanted in the bundle. The most popular 10 apps remain, including Simon.

Dejal Simon is the essential site monitoring tool for Mac OS X. It checks servers for changes or failures, and notifies you via e-mail, sound, speech, Twitter, or other means. You can use it to track updated sites, and to alert you when an important server goes down or recovers.

Both bundles include the full Simon Standard license — normally $59.95!

You can see more of the application on the Simon pages.

Version 2.6 is currently in development, and a beta will be out soon. It includes a powerful new Filter feature, enabling much more flexible analysis of test output, plus cookie management and many more enhancements. Version 2.6 will be a free update for all licensed Simon users.

Each bundle also includes several other fine apps. TheMacBundles includes 12 apps for only $49.95, and VoteBundle includes 10 apps for only $39. A bargain! Especially since you're getting a Standard license for Simon — for less than it normally costs by itself. Why not buy both bundles, and get 21 great apps for just $88.50?!

Visit TheMacBundles.com and VoteBundle.com to learn more about each, or to take advantage of one or both of these great deals.

Vote for Dejal apps in VoteBundle

The people behind the popular Mac Bundle Box promotions have launched an innovative new bundle concept: the VoteBundle.

Three Dejal products are in the running: Simon, my tool to monitor websites and servers for changes or failures; Narrator, my fun app to read out stories in multiple voices (soon to move to Mariner Software); and BlogAssist, my handy tool to make marking up HTML easier. As I write this, Simon is doing quite well, though could certainly use more votes, while the other two are trailing. If you like these apps, please vote them up!

Here's an intro video (not iOS compatible, unfortunately):

VoteBundle 1 - www.VoteBundle.com from Christian Owens on Vimeo.

Welcome to VoteBundle the very first community driven, democratic Mac software bundle. Cast your votes now, www.VoteBundle.com

Simon Standard featured in TheMacBundles

I'm pleased to announce that Dejal Simon, my flagship server monitoring app, is featured in the TheMacBundles collection.

Dejal Simon is the essential site monitoring tool for Mac OS X. It checks servers for changes or failures, and notifies you via e-mail, sound, speech, Twitter, or other means. You can use it to track updated sites, and to alert you when an important server goes down or recovers.

The bundle includes the full Simon Standard license — normally $59.95!

You can see more of the application on the Simon pages.

Version 2.6 is currently in development, and a beta will be out soon. It includes a powerful new Filter feature, enabling much more flexible analysis of test output, plus cookie management and many more enhancements. Version 2.6 will be a free update for all licensed Simon users.

This bundle also includes 11 other fine apps, for only $49.95. A bargain! Especially since you're getting a Standard license for Simon — for less than it normally costs by itself.

Visit TheMacBundles.com to learn more, or to take advantage of this great deal.

Tweeps 2.1 released

Version 2.1 of my new iPad and iPhone app, Tweeps, has just been approved, and is now available on the App Store.

You can get it at no cost, too. I've decided to make it completely free. Tell your friends!

The two major additions in this release are support for iOS 4, and for the new iPhone 4 device.

The recent iOS 4 operating system release added multitasking and a number of other great enhancements to devices that support it. Tweeps 2.1 now fully supports fast app switching. There's nothing Tweeps can usefully do in the background, but the convenience of flipping from another app (e.g. your preferred Twitter posting client) to Tweeps and back is very useful.

This update also includes a number of minor bug fixes and tweaks to support other changes in iOS 4.

Apple's new iPhone 4 is a very nice little device. One of its key enhancements is a beautiful new "retina display" — twice the resolution of older iPhone devices, with pixels smaller than the human eye can see. Tweeps 2.1 adds higher resolution icons and other images so it looks even better on the iPhone 4.

Learn more about Tweeps, or get it for free now:

TrialPay Store

A few weeks ago I added a new payment processor to my site: TrialPay, which I mentioned in a previous blog post.

It's a great deal for my customers, as they can get automatic discounts when buying more than one app at the same time, or by try a third-party product that they might have been interested in anyway. And it's a great deal for me, as the discount offers cover the cost of the payment processing, so I get 100% of the money my customers pay for my apps, instead of losing a few percent to the payment processor.

I've been very satisfied with the service. When I first set it up, my contact at the company was extraordinarily helpful, with prompt replies to my queries, and doing much of the setup work for me, or providing plenty of info on the steps I had to do. I was quite impressed.

So I'd like to recommend their service to other Mac developers. It's a great way to offer quick-and-easy payment processing that gives your customers a great deal.

Here's my referral link. If you use this to sign up as a TrialPay merchant, I'll get a $500 referral bonus, and you'll get a $250 Amazon gift card by way of thanks. More details on their site.

TrialPay Referral Program

DSActivityView updated for iOS 4

This blog post has been replaced by a newer edition.

Please see blog posts on DejalActivityView.

DSActivityViewI've committed a minor update to the DSActivityView open source project for iOS. See the DSActivityView introductory post for more information, including a video demo.

This update adds a new prefix to the class methods to create the activity view, to make it more clear that they return a retained object, rather than autoreleased.

So you'd now display the activity view via something like this:


[DSActivityView newActivityViewForView:self.view]

This update also includes a bug fix for iOS 4, where the activity view would appear behind the keyboard.

It is compatible with iOS 3.0 and later, including iOS 4, on iPad, iPhone and iPod touch.

You can get the project from my Dejal Open Source Subversion repository via this Terminal command:


svn checkout http://dejal.svn.beanstalkapp.com/open/DSActivityView

Or browse the source directly on the web.

Mariner Software acquires Narrator

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.

Time Out 2 icon

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.)

Have a think about that before reading on.

My own notions tend to be similar to the current icon. A clock, much like the current icon, but with an improved design. Or a stopwatch, or perhaps a kitchen timer, or even a pocket watch.

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.

Minority Report-like interfaces from TED

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 could care less"

One of my pet peeves:

Tweeps 2.0 released

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.

Learn more about Tweeps, or get it for free now:

Building Universal iPad/iPhone apps

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:

    if ([UIApplication instancesRespondToSelector:@selector(setStatusBarHidden:withAnimation:)])
        [[UIApplication sharedApplication] setStatusBarHidden:hiding withAnimation:YES];
    else
        [[UIApplication sharedApplication] setStatusBarHidden:hiding animated:YES];

Sometimes, you need to take alternative code paths depending on whether you're running on iPad or iPhone. So the way to do that is:

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        ...

I used the following definition to save some typing:

#define IS_IPAD        (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

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:

    Class popoverClass = NSClassFromString(@"UIPopoverController");
   
    if (popoverClass != nil)
        popoverController = [[popoverClass alloc] initWithContentViewController:contentViewController];

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.

Tweeps 2.0 in the review queue!

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.

Anyway, get Tweeps for free now, and you'll automatically get the 2.0 update when it is available.

Caboodle 1.3.6 released

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.

Download Caboodle 1.3.6 now!

Syndicate content