Due to some foreseen circumstances, I'd had to push out a quick fix in the form of 3.5.1 to allow SimplyTweet to be able to continue accessing direct messages. This is the only thing which 3.5.1 does.
After installing the update, you might find that you still cannot load new direct messages, here's what you can do in your desktop/laptop browser:
- Go to http://twitter.com and login.
- Click on your name on the top right hand of the screen and click Settings. (or just go to http://twitter.com/settings/account).
- Click Applications.
- Look for SimplyTweet and click Revoke Access.
- Launch SimplyTweet app and reload a timeline. It should ask you for your login.
After doing this, you might find that push (for paid version only) isn't working. In SimplyTweet app do:
- Go to More > My Profile.
- Disable push.
- Enable push.
Still hit problems? Email simplytweet@motionobj.com
This article mentions that "Apple tries to put the kibosh on iPad and iPhone giveaways". I haven't heard of any of these being enforce and I have personally given out iPhone gift cards so I did some research.
I can only find relevant documents for Australia[1] and Canada[2] on Apple's site. There are interesting differences:
Canada
- You can't give out free iPad.
- Creative review is required - "Apple Canada requests that you forward an electronic layout of your final artwork for review and comment before you proceed with your promotional campaign."
- No mentioned of approved imagery.
- Required disclaimer - "Apple is not a sponsor of, nor a participant in this promotion."
Australia
- You can't give out free iPad and iPhone.
- No mention of creative review.
- Approved imagery provided.
- Required disclaimer - "Apple is not a participant in or sponsor of this promotion."
I wonder why they only exist for these countries and why they are different.
- [1] http://www.apple.com/au/promotions/
- [2] http://www.apple.com/ca/go/promotionuse/
I've been working on a new update for SimplyTweet. and it's been submitted as 3.5.0. SimplyTweet 3.5.0 is now available on the App store as the paid version and free version.
This is the first of what is going to be a series of updates (it's the first time I'm starting with a .0 in the version number).
There's UI improvements and touchups in v3.5.0:
- Improved Swipe menu. 6 buttons, more information, more configurable.
- Less waiting for UI
- Make labels and button icons more consistent across the app
- Added local trends for many more countries
- UI improvements
- Fixed some bugs
- Only support iOS 4 and newer iOS versions from now on
- A little easter egg for the upcoming app
And in more details:
Swipe Menu
- Switch swipe menu to 6 buttons
- More swipe menu buttons for DM timeline
- Create/update look of swipe menu buttons
- Change rt icon in message view to match Twitter's and swipe menu
- Change check button in timeline for Reply Selected to match swipe *
menu's "tick"
- Indicate if using Instapaper or Read It Later in swipe menu button
- Show URL in swipe menu, if there is one
Instagram
- Support Instagram in builtin photo viewer
- Show preview for Instagram pictures in message view
Less waiting for UI
- Change favoriting and unfavoriting in swipe menu to not block
- Don't block when retweeting from swipe menu and message view
- Don't block when saving links to Instapaper in swipe menu and message view
Make labels and button icons more consistent across the app
- Make delete prompt for DM consistent as deleting tweets
- Make bookmarking icon in built-in web browser the same as swipe menu
Added local trends for many more countries
- Added trends for: Argentina, Australia, Chile, Colombia, Detroit, France, Germany, India, Indonesia, Italy, Miami, Minneapolis, Netherlands, Rio de Janeiro, Singapore, Spain, Sydney, Toronto, Toronto, Turkey, Venezuela
UI improvements
- Timeline timestamps now depends on settings again (absolute or relative)
- Refresh saved search when switch accounts
- Don't show loading view when opening MyProfile (for the first time. Subsequent times never showed the loading view too
- Now prompts (only once) for disabling Airplane mode if app is launched (or resumeled) after airplane mode is off
- Improved compose tool buttons and background (same as swipe menu)
- Geotag button in post view changes color to indicate that geotagging is enabled
- Rename "Reply All (including mentioned)" to "Reply All"
- Rename "Reply All" to "Reply Senders"
- Rename "New-style Retweet" to "Retweet"
- Rename "Retweet" to "Quote Tweet"
- Shift buttons for emailing and posting links in built-in web browser
- Display URL to be added to Instapaper or used by Other Actions button in actionsheet in built-in web browser
Fixed some bugs
- Fix: ignore opening and closing quote from the start and end of URLs if they are there
- Fix: can't open URLs with @ character (such as Flickr photo photo sets)
- Fix: can't load older tweets in My Profile by pulling up
- Fix: Decode & and other HTML entities in tweet text
Others
- Only support iOS 4 and newer iOS versions from now on
- A little easter egg for the upcoming app
I have been spending some time working on a new app the past few months as you'll see a hint to it in this update. See if you can find it.

Why are third parties important in the Twitter ecosystem?
Let SimplyTweet count the ways:
- First Twitter app to support view conversations, including viewing replies to each tweet. (really).
- First full-featured Twitter app to support push notifications (BoxCar was first to do Twitter push).
- First Twitter app to support account switching by tapping navigation bar
- First (and possibly still only) Twitter app to allow loading more than 600 unread tweets.
Inspired by http://furbo.org/2011/03/11/twitterrific-firsts/.
Regular expressions or regex (also referred to as regexp) is a way to write a string of text that will serve as a pattern to match another string (or strings). Regex is terse and well supported by many tools including popular programming languages such as Javascript, Java, Perl, Ruby and Python, as well as shell tools such as sed and text editors such as TextMate, vi and Emacs.
There are many ways which regex can be useful, including input validation, extracting strings from text, and search and replacing of text.
Input Validation
Regex is incredibly handy when you want to perform validation of input from HTML forms. For example, you might want to parse emails with expressions such as
.+@.{2,}\..{2,}
Or URLs with
https?://(\w+)\.(\w{2,}/?(\S*)?)
Matching Text
You can matching prices such as $1.99 with
\$\d+(\.\d{1,2})?
How to build and test a regular expression using Regex for Mac OS X
We'll take matching prices as an example of building a regex and testing it with Regex for Mac OS X. Here's a few steps to do it.
1.
Come up with examples of the string you want to match against, typing them into the sample area. So you would have
$1.99
$12.99
$ 12.99
$1

2.
Come up with a regex and try to match them the first example and modify the regex to also work with each example as you work down the list. To match a $ we need to escape it with a preceding \ so we start with
\$

3.
\d matches a digit, so let's match $1 with
\$\d
4.
We want to match the . in $1. remembering that . has to be escaped with a preceding \ too. (Otherwise . matches any character)
\$\d\.
5.
Matching $1.99 we then have. This now matches the first example
\$\d\.\d\d
6.
Since we can match a repeating pattern with {}, let us use it here to make it clear that there is exactly 2 ending digits. And we are now done with the first example
\$\d\.\d{2}

7.
In the 2nd example, we observe that the dollar value can sometimes be more than 1 digit. So let's use the + quantifier to indicate we want 1 or more repeats. This expression matches both examples
\$\d+\.\d{2}
8.
For the 3rd example, we notice that can be an optional space between the $ and first digit. We'll make use of \s as a whitespace matching character as well as the ? quantifier to indicate it is optional.
\$\s?\d+\.\d{2}
9.
And finally, we notice that the cents part (.99) is optional too. So let's make it so with
\$\s?\d+(\.\d{2})?

And this matches every one of the examples above.
10.
Let's extend this example further. Perhaps you want to also match the dollar value in the price. We can do
\$\s?(\d+)(\.\d{2})?

Notice that under Capture Group on the right, the radio buttons for 1 and 2 are now available? Press on 1. The dollar value will now be highlighted in the sample text area instead of the entire price. If you press 2, it will highlight the cents value. This is because capture group 0 refers to the string matching the entire expression, and capture groups 1, 2 and onwards refer to the string matching each parenthesis () group counting from the left.

Additional Tip
If you need to use regular expressions in programming languages like Javascript, you will need to escape \ with an additional \ . For e.g. this expression
\w{2}
needs to be specified as the following in certain programming languages (including Javascript)
\\w{2}
Regex for Mac OS X automatically does this escaping for you when you copy regex from the the app and automatically unescapes (removing double \) when you paste into the app.
Conclusion
This tutorial gives a simple introduction to building regular expressions using Regex for Mac OS X. You might have noticed that the price regex developed only matches $. What about pounds and other currencies? And you might find that the URL regex is overly simplistic. After working with regular expressions for some time, you will discover that they are very powerful and also needs to be used carefully. For example, see here for a much more accurate regex for matching URLs. It is very long and complex, making it hard to modify. For a good overview of regex, see the Wikipedia article for Regular Expression.