Chomp Technology Blog

Email newsletter issues

Posted in Uncategorized by Cathy Edwards on March 29, 2010

Late on Friday night, we implemented a new email newsletter designed to let our users know of new and on-sale app recommendations, making it even easier to find great new apps. This was the first time we’d tried these kinds of mailouts, and unfortunately a bug crept into our system that caused around 100 of our users to get this email multiple times.

We hate spam as well, and we’re very sorry that this happened.

In a nut shell, our email delivery system got itself into a state that it shouldn’t have been able to get into, and was reporting that emails weren’t delivered when in fact they had been. Our email generator did what it was supposed to do and attempted to resend these ‘failed’ emails, causing a loop of retries. We discovered and fixed the problem quickly, but know that for those few affected users it would have been a huge inconvenience.

We care about our users and we’d like to say sorry. If you were one of the ~100 people who received multiple emails, please write to us at feedback@chomp.com and include your Chomp username by March 31 and we’ll send you a $10 iTunes gift card. We hope that you’ll keep using Chomp to find great apps to spend it on.

Getting Access to your Flurry Exception Logs

Posted in Uncategorized by Rob Wills on March 22, 2010

Flurry won’t give you access to more than one 15 record page of your exception log!

If you take your unhandled exceptions seriously (we do), analyzing them regularly is a top priority. To take the tedium out of manually paging and downloading all the individual CSV exports, you can use the Internet’s Swiss Army Knife™, curl.

If you’re on Mac OS X, curl is already installed. On Windows you will need to download and install.

First, use curl to log in to Flurry, obtaining the session cookie for future requests:

<youremail> and <yourpassword> needs to be URL encoded:

$ /usr/bin/php -r 'echo urlencode("rob@domain.com")."\n";'
  rob%40domain.com

$ curl --cookie-jar ./flurry.jar \
  -d "loginEmail=<youremail>&loginPassword=<yourpassword>&rememberMe=true&__checkbox_rememberMe=true" \
  -k https://dev.flurry.com/secure/loginAction.do
  • –cookie-jar stores the response cookie for later use
  • -d sends the POST data
  • -k turns off certificate verification

Grab the Project ID for your App by looking at the CSV download link from the Flurry Error listing page.

Now ask curl to repeatedly download each page of your exception log CSV export:

$ curl --cookie ./flurry.jar \
'http://dev.flurry.com/exceptionLogsCsv.do?projectID=<yourproject>&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[000-100:15]&pageSize=15' \
--output "exception#1.csv"

You’re ready to read those into iWork Numbers or Microsoft Excel one at a time, or you can go another step further and combine them all for a single exception log:

$ grep -h -v -e "^Timestamp" exception???.csv | sort > AllExceptions.csv

Now get on with tracking down your reported errors and uncaught exceptions.

Chomp Connect for iPhoneOS

Posted in Uncategorized by Rob Wills on March 2, 2010

I want to highlight a specific feature of our Chomp Connect for iPhone OS offering – shared sessions on the client device.

To encourage users to submit a rating it’s essential to reduce the overall complexity of the process. If they have to jump through hoops before they can tell the world about this app they’re using, they may not bother. Our aim is to keep that process quick and easy, helping to make sure a user will have their say.

One of the great features of Chomp Connect is the ability to find and use an existing user session. If a user has taken the time to signup for or sign into an account, we don’t want them to go through that again unless they really have to! That session may have been established using the Chomp app directly, or by Chomp Connect in another app.

To achieve this we need to share data between apps. These apps have no ability to know each other is installed, or even if the Chomp app is installed. If Chomp was installed, you could use a registered URL scheme to launch Chomp, have the user perform the rating and possibly return them to your app (if your App also registered a URL scheme). Although more and more people are downloading Chomp every day, it would still limit the potential for users to review the app on Chomp.

I searched for other methods of sharing small amounts of data between apps, and discovered that iPhone OS 3.0 and above provides great support for pasteboards. There are two system pasteboards, System and Finder, but also an application pasteboard that can be created with a unique name. These application pasteboards can be configured as persistent allowing them to be shared between applications that know that unique name. We configure Chomp Connect to use a specific pasteboard name, enabling any app that embeds Chomp Connect to seamlessly share any previous session on the device.

Chomp Connect Pasteboard

Sharing information between Apps with UIPasteboard

Implementation is very straightforward, using the UIPasteboard convenience methods that set and get a simple string pasteboard item.

/* ChompDialog.m */
+ (UIPasteboard *)getPasteboard {
    // Chomp Connect pasteboard will be created if none exists
    UIPasteboard *ccPasteboard = [UIPasteboard pasteboardWithName:@"com.chomp.connect.pboard" create:YES];
    if (ccPasteboard.changeCount < 1) [ccPasteboard setPersistent:YES];
    return ccPasteboard;
}

+ (NSString *)getChompUserToken {
    return [[ChompDialog getPasteboard] string];
}

+ (void)setChompUserToken:(NSString *)newToken {
    [[ChompDialog getPasteboard] setString:newToken];
}

The end result is reduced complexity for a user to perform a review, therefore a higher probability that they will.

We make it easy for your users to show their love!

Follow

Get every new post delivered to your Inbox.