In the beginning of December, I finally finished project I got the idea for about two years ago. “Send Me A Pic” is an application that lets users customize images from Flickr and send a link to the image to their phone, so they can use the photo as a custom wallpaper.

Idea Phase:

A couple years ago I got this idea; create an application that would connect to Flickr or any other image database allowing users to search through the images. Once they found the image they wanted, the application could be used to create a custom image to fit their phone, then they would be able to enter their phone number and presto it would be uploaded directly to their phone.
There were a couple of reasons that let me to think this might be useful:

1. Flickr had just gained substantial popularity and had millions of images. It was nice that I could host my images and search the images to see cute little dogs, but really I couldn’t do anything with them.
2. Mobile phone capabilities had gotten to the point where most phones could support image uploading.
3. Wallpapers and ring tones made up the most of the revenue for 3rd party mobile services.

The one thing I noticed was, this disconnection between where most of the content is created and the content offered as wallpapers. I drew on a white board what I called the “Content Distribution Pyramid”.

The pyramid showed that most of the content that is generated is created by individuals (This is now known as the long tail). So why if all the content is created by individuals, why isn’t that content available as wallpapers for phones? What content is more relevant to an individual then content that they are personal connected to?

So I thought why can’t I take an image I find on Flickr and upload it to my phone, use it as a wallpaper image or just save it to be shown later.

Side Note: Cell Phones are the Wallet of today. How many people actually still carry images in their wallet? If anyone needs to see my kids or other pictures I usually bring it up on my phone.

I looked around trying to find something that allowed me to do this and couldn’t find one. It is a funny thing: looking for something that I think is a good idea. When I don’t find it, I assume that it must be so trivial that know one bothered to do it or it is so difficult that it can’t be done. When I do find it I am like “oh shit”, that was my idea. In this case I didn’t find it; I found things that would allow me to send images from phones to Flickr but not the other way around.So why should this thing not be available? Was it not needed? People sold $billions in wallpapers and ring tones, it most be valuable to someone. Was it easy to do? I couldn’t figure it out. I couldn’t type in an image URL and see it on my phone. I asked another person with more advanced phone who could upload images from the web, but the image always looked funny because it didn’t fit their phone.

But again why was this not available? Well, I still don’t know, but I was going to create it anyways.

Side Note: The great thing about Web2.0 (Even though the name is over used and really doesn’t mean anything), today it is easy to take an idea and make it happen. It may not turn out to be the biggest thing, but you also don’t need to spend loads of money to figure that out. Everything but the idea and hard work is easily accessible in today’s Web. This moves the balance of power from the money and knowledge people back into the hands of the creative people.


Investigation Phase:

Not knowing anything about mobile phones, SMS or anything else that would help solve this problem, I needed to do lots of research.

Let me just say that the Mobile and Telecommunications Industry is still living in the dark ages and controlled by what I figure is committee of cryogenically frozen executives from the 1940’s. The way in which the Mobile / Telco World operates is the complete opposite of that of the Web 2.0 World; it is neither open nor free.

There is a reason that no services for phones, SMS or other wise have made it big. More people have mobile phones than computers, most phones have the ability to deliver services from simple SMS services to services delivered though Java-based applications. Can’t really blame the input devices anymore, kids and adults can navigate the 9-Key keyboards, more and more phones have full keyboards. So why is it that not a lot of companies make it big in the Mobile world? Keep reading.

Sure, JamDat made a nice chunk of cash but I can’t thing of anyone else. Talking with my CTO about this entry, He did bring up OpenWave. Yeah, they made it, but it’s more of an embedded solution rather than a purely third party service. Where are the Googles, Yahoos, Ebays of the phone world? There are a billion mobile phones, more people have mobile phones than computers and yet, no services.

Let’s look at what it takes to create a SMS service. This by the way is one of the easiest paths to creating a service, as soon as an application is involved, it becomes much harder. Everyone has seen this kind of service, think “American Idol” voting, or “Deal or No Deal”.

Step 1)

To get the 5 digit short code that allow users to send you a text message is anywhere between $500 and $1500 a month, that’s a MONTH! This is equivalent of GoDaddy.com charge charging $1500 a month to register a Domain Name. Now this cost is just an administration fee because it doesn’t grant use of the number on anyone’s cellular network. Now that’s not bad to maintain a database of 100,000 numbers. Go to http://www.usshortcodes.com/ for more information.

Step 2)

In order to get approved to use the number on a cellular network you need to apply with each individually and give details on the application you will be creating. This approval process can take up to 6 weeks or more. You also run the risk of not getting approved at all. Your best bet here is to go through an SMS Aggregator. Aggregators help you through the approval process and also offer a single API to deal with all the networks. Typically the interface that each cellular network provides is different. Aggregators normalize the network’s APIs and provide a single API. Aggregators can also help with the registering of your SMS code and the submission of the application to the cellular networks but it will typically carry an extra.

Step 3)

Now you get approved, running the service also costs money. You will typically be charged for both incoming or Mobile Originated (MO) and outgoing or Mobile Terminated (MT) messages. Typically this is a small fee, but still, if the service becomes successful or people hack it, as in my case, the fees can add up and cost you some real money.

Charging the customers for the service is also an option; this can offset the cost of the service and actually make some money. Premium SMS as it is know, but this is the best of creating a SMS service, there are three people that equally (something you get less) share the revenue: Cellular Networks, SMS Aggregators and you the application creator. So let’s say that you want to create a service and charge a $1 for the service. You will typically receive about 33 cents. That means you will need to have about 3000 transactions per month to cover just the cost of the short code.

After doing all the research, I am starting to think maybe, “it’s so difficult that it can’t be done”, scenario might be the reason why I haven’t seen this service before. None-the-less I want to get the service thing up and going.

Getting it going

I decide to start small, a tactic that will usually pay big dividends in any application. If you have an application you want to create, just get it out there and see what the public thinks. People are more than willing let you know almost instantly what they think of the application. With around 4 million Blogs in publication there is bound to be a few that have reviewed and posted comments about your site.

I am not going to go into technical details; I have posted in the “Ajax Image Manipulation” used in the site. I will just talk through the high level APIs. Web 2.0 is great; most services now have easy to use APIs that are provide for free and can be used very easily.

sendmeapic.jpg

Flickr API

“Send Me a Pic” requires only simple integrate with Flickr. I only need to access one API call to search photo based on a query sting. The call was simply implemented on the server side through the Flickr rest api. You will need to sign up for the Flickr service. http://www.flickr.com/services/ has all the information needed to get started using the service. It is tough to find the link from the homepage, look under the “Explore” menu.

Code Snippet:
$request = "http://flickr.com/services/rest/?".
"api_key=&".
"method=flickr.photos.search".
"&text=$text&".
"per_page=36&".
"page=$page&".
"extras=icon_server"; /*
dataFile = fopen( $request, "r" ) ;

ClickATell API

After much research into SMS and mobile, I choose the simplest path to getting something launched. I signed up with clickatell.com to use their SMS service and choose their cheapest option. The service only allows Mobile Terminate messages, which means sending the message to the phone. This allows me to send the link of the image to a user’s phone so they can download it. This is a fairly big limitation because users will need Web Access on their phone, but is the cheapest and easiest to setup. One thing to look for in an aggregator is the coverage or the service. Where in the world can the service be used? Look for the coverage matrix and the associated cost for each area.

WURFL Information

Another thing that the mobile industry is not good at doing is providing a single source of handset information. An open source project called wurfl hosted on sourceforge.com provides a means to get this information and is the industries defacto standard. All the information is supplied in the wurfl.xml file. wurfl.xml is extremely large, I needed to create a subset of information that could be parsed in a reasonable short period of time.

Presentation

On the front-end of “Send Me A Pic”, I kept it simple again and used HTML and script.aculo.us for the presentation and animation. Communications and HTML DOM modification are provided by the Apache XAP Project which contains xModify. xModify is an XML based DOM modification instruction set that incrementally updates the HTML DOM. Unlike other DOM modification APIs, xModify is XML based which makes it easy to use with server-side scripting like PHP.

To call a server-side xModify script with XAP is quite easy. After creating the application, call the “Application” object’s “fireEvent” function passing in the URL of the resource to retrieve. On the server format the response to the request in the xModify syntax. For this application, I just used set inner HTML instruction. Other DOM instructions are included, but the easiest for most purposes will be the instruction.

Get People to Visit

Now that the application has been created, tested and deployed, it is time to get people to show up and use it. Thinking of myself as a “Street Marketer”, I took to the streets or in this case the web, to start promotion. There are many good vehicles to getting people at your site.

Programmableweb.com

For mashup applications like “Send Me A Pic”, programmableweb.com provide a good starting point to get listed. The website is all about mashups and with an alexa.com ranking of ~8423 they get a good number of hits each day. You will need to create an account and submit your site. Based on the two applications I submitted it takes about a week to get posted. If you are lucky enough to get the “Mashup of the Day” you will instantly start getting lots of hits. My first Mashup, “Ajax Map Comparison” has gotten over a 1000 so far from the site.

Ajaxian.com

Ajaxian is a great source for Ajax information. Submissions for articles, applications and everything Ajax is welcome, just go to the home page and click the ajaxians@ajaxian.com link or send them an email directly.

Dzone.com

One of the best new websites for developer information, works similar to digg.com, submit your link and the community will vote on it. The best thing to do here is write up an article, and post it about your applications. Just posting your application usually doesn’t work; links need to be developer focused.

Others Sites

Digg.com. Netscape.com, reddit.com, slashdot.com … are other sources of that can be used to promote your site. Everyone has heard of the Slashdot and Digg effect, be careful posting here, it could take down your site. Personally I haven’t had any luck with these places.

Linking Back

Use the web sites that have supplied you with APIs as vehicle to promote your site. Everyone likes people to use their stuff and they look to showcase cool applications built on their technology.

Timing

When posting to site like dzone.com and digg.com, timing is everything; you want the most amount of people as possible, weekends are typically a good time to get submissions through, less submissions means more of a chance to get promoted, but less viewers.

Side Note: Remember when promoting your site or Blog, you need to be active and persistent, its all about “Voodoo Marketing”, you are only going to get a portion of the visitors of a site to come to yours, post it everywhere. Keep a drum beat going, do a write up on your experience creating the application. Delivering information that will be helpful to others will get noticed and keeps the promotion going. If your service is going to successful it will take a lot of work and some luck.

Track Your Stats

You will want to know how your website is going, turn on site statistics or even better incorporate Google Analytics.

Google Analytics

Simply create a Google account, then sign up for the Analytics service. This service is awesome! Once you sign up, Google gives you a snippet of code to add to your site that will keep track of statistics. The interface is easy and complete, giving you all the information needed to track how your site is doing. Look at your referring sources, this is the place people are coming from to view your site.

Alexa.com

Alexa provides a kind of ranking of your website, though not entirely accurate, it provides a base line for how your site is doing. If your site is new it will have very little information about it, you can upload a file to your site that Alexa reads and incorporates into their display.

Incorporating Feedback

Whether people like your service or want to Blog about how bad it sucks. No one is afraid to let you know what they think. After your service has been up and running, Google it, and see what people are saying. Once I launched “Send Me a Pic” It took only a few days for results to start showing. Go to the referring sources in Google Analytics and look at the sites people are using to get to yours.

After launching “Send Me a Pic”, the website, descary.com, posted a Blog entry about the site and added the fact that I didn’t allow international numbers to use the service. Wow! This is a big omission on my part, especially after look at the stats and many of the users come from outside the US.

I added support for this and updated the code. For me, fixing bugs or adding features that people want always make it much more enjoyable. Nothing is ever perfect people are willing to put up with small mishaps just don’t annoy them or cause them concern and they will put up with the issue. Be diligent about fixing issues, keeping making progress.

Security

What ever your service or application is, you should think about how secure your application. If you have anything that could be considered a resource, disk space, on-line real-estate or other people will look to exploit it. In the “Send Me a Pic” application, use process of sending an SMS message is a resource, one that costs money. The other day I came home and checked my SMS account, all the sudden it was empty. Some one had been hacking the URL to send messages through my service. Luckily the account was being drawn down form an initial deposit otherwise it could have cost my more money. I finally got the situation resolved but just go’s to show you make sure that your resources are secure.

Conclusion

Just remember, whether you’re creating an application to share or starting something for business to just get it going, work on it when ever you can and market the hell out of it. If it is good, people will find it and start using it. Security should be on your mind at all times, becuase people will look to exploit any hole in your system, so make sure they are plugged. For myself, creating things and implementing ideas is the exciting part. I look forward to do bigger and better things on Rockstarapps.com in the near future.

Bob (Buffone)