

2 hour side-project to 2 million visitors - krisrak
http://blog.gramfeed.com/post/18460554119/2-hour-side-project-to-2-million-visitors

======
NameNickHN
Hardly a 2 hour side-project but, nevertheless, impressive.

------
rhizome
NB: titlewise, the latter is being measured a year after the former was
launched.

~~~
hello_moto
This is how you get traffic by the way. News website use this trick all the
time.

------
keeptrying
Has the author of this app tried to monetize this?

~~~
krisrak
Yes, it is monetized by Ads and affiliate programs from photo printing
companies

~~~
hello_moto
Sorry to hi-jack the thread but I have a few AppEngine questions for you:

1) I don't understand their pricing scheme, does gamfeed use the free or the
paid? (because currently I'm seeing 2 price lists:
<http://code.google.com/appengine/docs/billing.html> and
[http://www.google.com/enterprise/cloud/appengine/pricing.htm...](http://www.google.com/enterprise/cloud/appengine/pricing.html))

2) AppEngine Datastore: have you ever need to modify your model in a way you
have to run a transaction over a large number of rows? If yes, would that
hurt? (or, another case is if you had encountered a bug in your code that
mistakenly recorded the wrong data thus you have to "clean them all").

3) I saw your code regarding code optimization, would that cause the code to
become a bit brittle by not encapsulating the caching somehow? Like, spreading
the cache at various level in your code.

Thanks!

~~~
krisrak
1 - gramfeed is paid, <http://code.google.com/appengine/docs/billing.html> is
correct, dont know what the other one is, i think that $9/month in minimun
fee, i go past it anyway.

2 - datastore query is expensive but memcache works great, so cache frequently
accessed data

3 - i make sure that whenever i put() any data, i immediately set Memcache,
and before making any get() from datastore, I try get Memcache first, this
should not cause issues.

~~~
hello_moto
Thank you for the reply!

My question for point #2 is in the line of the need to perform data migration
actually.

Let's say you have a bug on your code in a way that the data stored currently
are wrong and you need to fix them up by performing a batch update. Would that
hurt you in terms of cost? How would you handle such situation?

Or let's just say that your user profile data model needs to be re-jiggered to
support a new feature (adding columns, changing current columns, etc).

~~~
krisrak
it depends on how big your data is, but every query operation, every fetch,
every write operation it charged.
<http://code.google.com/appengine/docs/billing.html> has details on how many
read/write datastore API calls are made per operation. if u have to write in a
new column for thousands of entries, then it will cost a bit, $0.10/100k
operations, one re-write has 7 operations + incoming/outgoing bandwidth cost +
instance usage cost will apply, it is hard to estimate actual cost.

------
shingen
I'm surprised Instagram hasn't swooped in and purchased it to acquire the
developer (talent acquisition). Obviously @krisrak has a tremendous grasp of
the platform.

