Startup Time Machine // The Evolution
I described in Part I how I came up with the idea for my first mobile application for J2ME devices, PalmMSN. The next step was to make an application for all phones, at least that was the plan!
Looking for Part I?
(if it gets too geeky for you jump a few paragraphs)
J2ME was a hot topic in 2002 but it also had a lot of issues, to start with not all phones supported Java, each manufacturer implementation would be different than the other which along the time would become a real headache, specially for a hobbyist mobile developer like myself with very limited resources.
To make things worse, MSN changed the authentication protocol and MSNP started using SSL. Before SSL it was using a much simpler MD5 hashing algorithm which was simply not enough any more. The issue from my side was that most J2ME phones didn't support SSL so this was a major blow and I needed to find a solution until October 2003. Eventually the solution seemed natural, if it can't run on the mobile phones, switch the app from a client stand-alone architecture to a client-server architecture.
The biggest change was that now the Instant Messaging sessions would run on the server side and not on the devices. This would solve the SSL issue on the J2ME phones and the devices would use a WAP browser to communicate with the server over HTTP.
I quickly figured out that if I was building a WAP version over HTTP I might as well build a HTML version, it's the same approach, only the syntax is different. Internet on mobile phones was starting to pick up and there were also plenty of new phones coming out with coloured screens and support for XHTML so it started to make sense to pursue that strategy.
All of a sudden there was light in my head, I really thought that this is was the way to go and this new reality would also require a different name, calling it PalmMSN didn't make much sense anymore and Everywhere MSN or eMSN was born!
That approach came with a new set of technical challenges though, but that didn't stop me from building the application! All of a sudden the target audience was not only Java or WAP enabled devices but a much larger user base, basically any user with any kind of browser and an internet connection could use Everywhere MSN, the application was truly living up to its name and the game was on!
After lots of sleepless nights the first version was ready! Some of the source code used in the first version on the mobile client application was used on the server side which was also built in Java but there was still many many issues to solve. On top of that, I still have my day job so all my spare time was dedicated to have the application ready! I was so excited, couldn't wait until I had it live but it wasn't that easy.
This was 2003 and access to server hosting is not that straight forward, not with a guy like me with no resources and no money. There was no cloud, virtualization was giving it's first baby steps and this was not the standard PHP / Perl application or Wordpress blog, there were plenty of (cheaper) solutions for that kind of websites, but an application with these characteristics would require a dedicated server with some serious CPU power but I couldn't afford to rent dedicated servers, not at this point in time, not without knowing if this thing would be a success or not.
So I started small. I plugged in a desktop to my cable connection at home and used some kind of dynamic DNS service. The site was available at www.everywhere-msn.com and you could read in the bottom section of teh home page:
The application is developed in Java and runs on a Tomcat 4.1. application server.
The server is a Pentium III 500 MHz with 192 MB of RAM running RedHat 9.
The network is my home cable connection so please don’t expect very fast hits or 100% uptime.
There aren’t many resources but it’s with a good intention.
It's September 2003 and it's time to push the button.
End of Part II.