A friend of mine informed me of this article. In the article there is a link that you put in your toolbar to basically figure out what Facebook thinks you are stalking. Now I think thats an interesting concept. So I had to dig a bit further and find out what exactly that metric is.

So the interesting part is that Facebook tracks whenever you type into the Search bar. That generates some ajax calls to things you have searched for most recently. That is what the article talks about.

The first time you load the page, the Search bar fires off this call.

https://www.facebook.com/ajax/typeahead/search/first_degree.php?__a=1&filter[0]=user&lazy=1&viewer=6001041&token=v7&stale_ok=1&__user=600104

obviously my id is 6001041 – so if you want to make the same call, then you can either use the link above or replace my id with yours.

What is this call? its basically gives you an list of things that you have searched for with a negative index sorted to the top, being what you are most likely to search for. In the payload of this json call, they’ve also put the url of the profile picture, thats why it shows up so fast – so once you’ve entered something into the Search Bar, it does a quick search through this index and then displays x number of results while then making ajax calls for the profile pics.

then after you are done finding what you want they fire off this call.

https://www.facebook.com/ajax/typeahead/record_metrics.php?__a=1

this is a post call that stores all sorts of statistical information, pretty interesting to say the least.

I have documented 3 basic functions: retrieve, browse, updates
In all cases, we assume the user is logged in, so we have access to his/her data

Retrieve – a user requests for a specific manga name/chapter
1. user sends a request for a specific manga name/chapter
2. service goes to the User table and finds the search order
3. based on the search order, checks the Chapter table to see if the manga chapter is available – return first source with chapter
a. if found, based on the Source, use the source strategies to determine correct urls
b. if not found, return not found

Browse – a user wants to see all available mangas
1. user sends request for mangas
2. service sends back current manga list
3. user selects a manga
4. service goes to User table and gets searchOrder, then goes and aggregates Chapter table
a. if not found, service makes a request through ALL source strategies to populate Chapter table
b. if found, return the aggregate chapters available

Updates – a user wants to know if there are any updates to his favorites
1. user sends a request for updates for all manga
2. service goes to User’s Favorites table
3. for every favorites, checks Chapter table for new Chapters
a. if found, return updates
b. if not found, return no updates

RSS Aggregator
1. Listens for updates on the rss feeds of the sources
a. if updates available – update the Chapter table

Source Strategies
These basically are java classes for determining image urls, for getting chapter lists, for analyzing rss feeds.

I was originally going to wireframe the application in OmniGraffle, but I found the stencils to be inadequate, then I looked into Apple’s Interface Builder, but it seemed to not have support for iPad. so now I’m downloading the latest one. Till tomorrow.

So in order to decide what features or the the reason why I’m building this product, it has to not exist or do something better. If you look at Google, they were a better search engine then the current existing search engines. In the same vein, I want to build a better Manga Management reader.

What do the other apps have? and what will mine have? see the table below.

The key here is updates – my app will be able to let the user know when updates are available for the favorites that they have selected. Some of the apps do have updates, but they seem counter intuitive and don’t work properly.

I’m going to start a new series. I’m going to try to take a couple hours out of everyday to work on this new side project. I’m going to build an iOS application specifically for the iPad. This project will serve 3 purposes;
1. meet a need where the current manga applications on iPad don’t meet
2. to familiarize myself with iOS development
3. to keep my programming and technology fresh.

Purpose: Design and implement a iOS application that will allow a user to receive updates, download, and read Manga titles in a nice looking UI.

Target Audience: iPad only

Technology: Google App Engine (for backend), XCode (iOS development)

Now I’m kind of debating whether I should go with Sencha’s Touch framework, perhaps when I’m prototyping, I’ll use it to see some results.

High Level Flow

I’ve already got a basic architecture down. I’ll be creating a REST service on Google App Engine, which will do most of the heavy lifting. The iOS application will make calls to this service to receive updates about the manga the user is currently reading, if there are updates, and also how to grab the images for each chapter.

One of the most highly publicized communities in the BMW and Euro Arena, MFest has been featured multiple times in publications such as Bimmer Magazine, Heavy Hitters, European Car, Eurotuner, Performance BMW, Modified Luxury & Exotics, local newspapers and much more!

Technology: PHP, JS, CSS, HTML, Google Checkout integration, Paypal integration

launch site