23 Mar 2012

What in the world is EMS (Smart)??

In version 1.42, I added an "experimental" feature called "EMS (Smart)" - the first and only delivery tracking app in the app store to have this feature (that I know of anyway).

If you are wondering what on earth is EMS (Smart)? Good question!

Other than the usual Fedex/UPS/DHL and TNT parcels, the next most popular service is the international parcels which are handled by the respective country's national postal company (e.g. USPS, Australia Post, RoyalMail/Parcelforce, LaPoste etc). These parcels are known as "EMS" parcels - which stands for Express Mail Service.

EMS involves an agreement between members of the EMS Coopertative to provide express international parcel delivery between the national postal companies. All EMS parcels have tracking number in the format of XX123456789YY - where the YY represents the country code of the sending (or origin) country.

So, Posted already supports many of these national postal companies in the app, but the problem was that if you were (for example) getting a parcel sent to you from USA to Australia, you would have to enter the tracking number twice - once as a USPS parcel, and once as an Australia Post parcel. Which is fine, but just not terribly user friendly and a little bit annoying.

What usually happens is that the origin postal company has a bunch of tracking information whilst the parcel is in that country, but once it leaves that country (e.g. leaves USA soil), the tracking stops and then the destination country postal company picks up the parcel and starts returning tracking events.

EMS (Smart) is intended to solve the problem of having to add two parcels for the one tracking number - and it seems to be helping a lot of people out as it is already very popular within the app.

If you go to the "Add Delivery" tab and sroll right down to the bottom, you can select EMS (Smart). From there you add the parcel description and tracking number as normal - but you also specify the destination country code.

2012-03-23_1804
2012-03-23_1806

The app then automatically knows to check the postal company of the origin country (from the "YY" code in the tracking number) and the postal company of the destination country code. And the app combines these tracking results into one single parcel!

2012-03-23_1808
And there you have it! Hopefully EMS (Smart) makes some more sense now, and you find it useful.

 

10 Feb 2012

Account Sync Arrives + Another Server Migration

I have been fairly busy working on Posted over the past couple of months. I had 4 weeks of annual leave from my normal day job, so set myself a couple of goals to (finally) finish two items during this time:

  1. Migrate to Amazon Web Services for hosting
  2. Launch the account sync feature

I am happy to say that I was able to achieve both things!

Hosting

You might remember that in the previous blog post, I mentioned moving to a new server which left "plenty of room for growth". Well, I was wrong! I quickly realised the VPS server was not cutting it anymore - but more importantly, the was some serious uptime issues with the hosting provider. I had never seen so many small spikes of downtime before!

So before I could launch the account sync feature (which more than any other feature, relies on having a backend server available at *all* times), I knew I needed to move servers again. The options were either Rackspace or Amazon Web Services. I won't go into too much detail, but I ended up choosing Amazon Web Services (AWS) mainly due to the managed MySQL hosting options available.

Aws

I had started playing with AWS in mid-2011, so I had a good idea of how to plan this with minimal/no downtime. It was still quite a tricky thing to manage though, especially migrating a database with millions and millions of rows. Along the way, I made some key optimisations which greatly help maintenance of the application.

So the back-end of Posted now has:

  • 1x Elastic Load Balancer (ELB) to route traffic (with SSL available for account services)
  • 2x EC2 (elastic compute) instances for web servers
  • 1x Relational Database Service (RDS) for MySQL database

This provides some degree of failover (although full failover is out of my reach financially at the moment) and so far has been working very well (zero downtime).

Along the way, I learned and experimented with apache/mod_php/php_fcgi & nginx for the web server element - and now use a combination of both to ensure that if one server suffers a (configuration-related) problem, the other server is unlikely to encounter the same issue.

And the beauty of AWS is that I can (quickly or automatically if I want) add a new web server to the pool and have it server traffic within a minute to cope with a spike in load. Thats what the elasticity is all about!

Account Syncing

So once the server migration was done, I was able to finally rollout the account sync feature. This is the #1 requested feature in the community support forums (support.postedapp.com) and I was excited to finally let it see the light of day.

In a similar way to the server migration, I had coded up the account sync months before. So once the server migration was done, I was able to invite a number of beta testers to give the new feature a whirl! A big big BIG thankyou to the beta testers (who are from all over the world), they are very generous to give up their time to help me out for little/no reward (other than improving Posted). The feedback from the testers was invaluable - it seriously made me re-think a few things regarding the account sync process (which can get very complicated quickly) and the end-result was a far more streamlined process for users.

Account sync was released as an experimental features in v1.40 and after 2 minor bug fixes (bringing us to 1.42), it is going quite well and there have been minimal issues. So far, seems like a good success!

Next?

So next will be a) adding new carriers (as always) and b) looking at the next top item on the todo list (auto carrier detection and making the app multilingual). 

7 Nov 2011

Update on Posted (v1.38)

After a bit of neglect for approximately 5 months, Posted has been updated with a bunch of new things (in version 1.37 and 1.38). Most significantly, 22 new providers were added as well as native iPad support to make it a universal app.

Ofcourse, there were also a bunch of smaller improvements and bug fixes which have helped make the app even more stable. And a slightly updated design to make it all that more desirable to use.

Mzl

Servers
Yesterday, I also migrated from a server that was barely surviving to something which will provide some room for growth in the future. All looks to be going well so far.

Support Forum
The community support forum is actively being used, and I make an effort to introduce the most commonly requested features first (e.g. iPad support). http://support.postedapp.com 

Some Stats
Push notifications: ~100,000 per month
Status updates: ~80,000 per day (over 6 million since launch)
Most popular providers: USPS, UPS, Fedex, DHL Germany, DHL, Russian Post, China Post, Australia Post, Parcelforce 

 

To celebrate the new version of the app and the new servers, the full version of Posted will be free for the next 24 hours or so!!

Get it while you can! http://itunes.apple.com/us/app/posted/id355963410?mt=8 

16 May 2011

1.36 is live & what's coming next

I pushed out a new update [1.36] last week - it addressed a minor issue with the estimated delivery date feature and a timezone problem. Only one person seemed to notice, but it was an important bug fix.

Multitasking (or more correctly, fast-app-switching) was also introduced. This time it looks like I got it right. I actually added fast-app-switching back in July 2010 (shortly after it was introduced) but I didn't think a number of consequences through and it ended up causing numberous crashes and a few glaring mistakes. So I removed it shortly after. This time, things seem to have gone well and I haven't had any problem reports *fingers crossed*.

So what's coming? Well I am currently working on an online account sync. This will be particularly useful for those people who have multiple iOS devices. The idea is that you connect each device to an account and then when you add/delete a parcel on one device, it will be added or deleted to/from your other device(s). If I have time, I will also be introducing a web interface where you can manage your account, add parcels etc. We will be using facebook authentication - I was a bit undecided on this - it provides a more secure account than I could have provided coding myself - and I promise we don't post to your wall or anything like that - its purely for authentication. I can probably add twitter authentication in the future too.

Its quite complex coding this, trying to cater for all the weird and wondering scenario's that I can think of, but am getting there. If you would like to help beta test this feature and are willing to be a guinea pig, email me at help@postedapp.com and I will let you know when its ready.

The other big thing I am working on is moving postedapp web services and web site to "the cloud" (shudder). The web application is currently hosted on a rather cheap server - which I am suprised it has performed so well for so long. But we will be moving to the Amazon EC2 infrastructure shortly - providing more redundancy and hopefully better response times. It's a pretty complex move when we are also talking about a rather large database - database migrations are always a pain. If I get it all right, noticable downtime should be minimal (~5 minutes?).

Once I finish the account sync & Amazon migration, I will also look at adding a bunch of new providers, there's a few which are commonly asked for which I hope to add.

Thanks again!

Leeane

26 Apr 2011

Version 1.35 Finished & Submitted to App Store

I spent a good part of my easter break working hard on the upcoming release of Posted. Having just finished and submitted v1.35 to the App Store, I thought I would share with you what it will contain.

Expect this to be available in early May.
Image
(notice the estimated delivery date :P)

New features:
----------------

* (Paid Version Only) Estimated Delivery Date shown on main screen
   - Support for Fedex, UPS, Ensenda, Prestige & some USPS. 
   - Any others which have an estimated delivery date? Email help@postedapp.com

* Option to "Sort by Newest First"
   - Found in More > Preferences screen

* Tracking results now presented in your preferred language
   - Only available for some carriers
   - Depends if the carrier supports your preferred language
   - For new parcels you add to the app, from now on

10 new providers:
------------------
* La Poste/Colissimo (France)
* DPD Austria (Austria)
* DPD Switzerland (Switzerland)
* AnPost (Ireland)
* Ensenda (USA & Canada)
* Prestige Delivery (USA)
* LaserShip (USA)
* Bartolini (Italy)
* TNT Italy (Italy)
* PosLaju (Malaysia)

Other:
--------
* Removed refresh button (use pull down to refresh if you need to refresh)
* Added "Edit" button so more obvious how to delete an item
* Minor bug fixes

 

22 Apr 2011

Some Statistics on Posted (as at April 2011)

I thought I would post some statistics on Posted - and hopefully do a follow up each year to track the growth. Posted has been on the app store since February 2010 - so just over 12 months at the time of writing. Things started to pick up for Posted around mid 2010, and from there things have gone up and up and we have added more and more international providers - and features.

Popular Providers

Not too many surpises here, the main players are up near the top. Below are the top 10, along with how many tracking updates we have done for them (please note, Australia Post may be a bit overstated as every copy of Posted sold has an example parcel from Australia Post).

  1. USPS - 402,000
  2. UPS - 360,000
  3. Fedex - 222,000 
  4. Australia Post - 222,000 
  5. DHL - 213,000
  6. Russia Post - 113,000
  7. TNT International - 112,000
  8. Parcelforce - 112,000
  9. Royal Mail - 108,000
  10. Russia Post EMS - 84,000

Push Notifications

We introudced push notifications around May 2010. After some initial hiccups and hard work, the reliability of push notifications has increased and it is now pretty stable.

  • Tracked over 70,000 parcels for push notification (remember, push notifications are only in the paid version).
  • Sent over 126,000 push notifications
  • Average 40,000 push notifications per month (growing rapidly)

Other

  • 2.52 million tracking updates 
  • Average 20,000 tracking updates a day
  • Average 4.2 stars across all App Stores
  • Averag 3-5 support emails a day (mainly requesting new providers)

 

Looking forward to what the next 12 months will bring!

16 Apr 2011

A first step into localisation (tracking results in your language where available)

Posted has grown far bigger and wider than I had expected.

When I first launched Posted, the app supported 11 Australian based providers. At that time, I didn't expect to expand beyond Australia. But once I started getting some positive feedback and requests - it was hard to say no.

So the app fairly quickly expanded beyond Australia, to UK and USA. But soon after, it also expanded to non-English speaking countries.

Internationalisation of the app (i.e. making the app available in different languages) is definitely on the horizon and I have had some very generous offers from people to assist in the transaltion of all of the bits of text inside the app.

But...

One small change I will be making right now is that any new providers I add from now on who have their tracking results available in multiple languages will use your preferred language on your device to determine which language to grab the tracking results in.

So for example, if provider X has tracking results available in both French and English - they will be shown in Posted as English for me (since I am from Australia) but in French for any users out there with French as their preferred language set on their iPhone.

We will default to English (when available) if the users preferred language is not supported by the tracking company.

I obviously need to retrospectively do this for many of the existing 85 providers that Posted supports. This is on my todo list.

Hope you find this useful.

11 Apr 2011

Austria Post - Mapping improvement

One of our enthusiastic and helpful users (Gerhard) contacted me about Austria Post. As Austria Post only provdes a number as the "location" of each tracking event, the mapping feature of Posted was not working properly. Basically the number turned out not to actually be a zip/post code as I had thought.

We had thought we had hit a dead end, but then Gerhard came across a file with all the numbers and the relevant city names! Great! He even went so far as to create the SQL import file for me... which turned out to be a huge bit of work.

So hopefully the mapping location for Austria Post is a bit more useful these days. Let me know if you experience any problems.

Thanks again Gerhard!

9 Apr 2011

DHL International Update

Just pushed out a fix for DHL International. Their TrackIT webservice went down - causing the whole tracking area of dhl-usa.com to also be down.

I have been aware of a separate DHL API being available but never needed to switch because the first one never caused any problems. However, since TrackIT went down I have now switched to this other API.

All seems good now - let me know if you see any issues (help@postedapp.com)

8 Apr 2011

Welcome to the Posted blog!

We will post about bug fixes, community requests, new developments and overall statistics about how the app is going.

postedapp admin's Space

developer and designer of the posted and posted lite iOS applications