The Google App Engine Glass Ceiling

With the new billing arrangements, each and every paid GAE app costs at least $2.10 per week which is supposedly $9 per month ($9.125 by my calculation) regardless of quota usage. This cost does cover whatever quotas your app consumes and the regular free quotas are still “free”.

Now I have a GAE app that sends 70-80 emails per day where the free limit is 100. I’d gladly switch over to the paid side of GAE just to be sure that if it ever passes the 100 mark I don’t have any failed email requests but the price of that is 9$ per month. GAE is extremely expensive for apps that just barely brush the end of their free quotas. In order to actually use the $9 per month minimum I’d have to send out 3000 emails per day (at $0.0001 per email).

I don’t know if the free quota on email recipients is really low or if sending out an email is extremely cheap. Either way, GAE expects me to scale from 100 to 3000 while paying the price of 3000. Who knows if I’ll ever even reach that mark?

If google keeps with this plan, I’m probably never going to start another GAE app that has a chance to grow. Every time I have a chance of hitting the quota limits I have 2 choices:

  • Pay google and be screwed over for an indefinite amount of time until I reach the next landmark.
  • Migrate to a cheaper shared hosting option until I reach the next landmark.

Thanks, but no thanks. That’s the GAE glass ceiling.

Appendix

  • Other than this problem I do like GAE. It’s a shame I have to leave it.
  • I’ve made about 11 small python GAE apps. Only 2 of which ever reached the aforementioned glass ceiling.
  • This issue shouldn’t bother you if your app is already big enough to cost more than $9.
  • Maybe google can’t bill less than $9 per month? I doubt it, android apps can cost $0.99.
  • A proposed solution: Google takes $9 of credit at a time from your google wallet and eats quotas out of that. When the $9 run out, it bills another 9. Sounds reasonable and “don’t be evil” to me. Another thing that could be nice would be to allow multiple paid apps to feed from the same budget.

Youtube going to fullscreen skips bug

Whenever I switch between fullscreen and back in this video http://www.youtube.com/watch?v=lOTPCaItx3w for example – youtube skips 2 seconds forward in time. Even while paused.

I found two relevant issues:

http://www.google.com/support/forum/p/youtube/thread?tid=2960543d59021a08&hl=en

http://www.google.com/support/forum/p/youtube/thread?tid=134f7450b6d08d3c&hl=en

The first one suggests to disable flash’s hardware acceleration which does work (right click the video and then click settings).

But why should we do that?

Also did I mention I dislike losing all the video I buffered in 360p when youtube auto-switches to 480p with fullscreen? I had to manually disable that too.

¯\_(ಠ_ಠ)_/¯

The decline of google search

So I revealed the python 3 wall of shame a few days ago and immediately it was the best result in google when I searched for “python wall of shame” and “python3wos”. Seems to make sense as there was no wall of shame for python yet. Now lets look at results 3 days later:

Search results for "Python 3 Wall of Shame"

Search results for "Python 3 Wall of Shame"

You can see that on the first page of google results you can find a million references to the wall, but no links to the actual website or blog post. The same can be said about results for “python3wos” which isn’t even a word but it’s the subdomain of the site.

Search results for "python3wos"

Search results for "python3wos"

It’s not too bad since in most of these results the real website is just a click away. I just really don’t understand what happened, maybe I did something wrong?. Anyhow, it’s pretty obvious that all the kids are only using facebook to communicate nowadays. Soon they’ll just feel comfy with facebook’s bing search, a few years of that and the game will be over. Here’s to hoping google sharpen their edge.

edit – a few hours after writing this article, the search “python 3 wall of shame” is now fixed, though “python3wos” still gets you only to links. Lets do an seo experiment, I’ll add this link python3wos here and add the word “python3wos” on the wall.

Installing extensions on google wave

Some tutorials proclaim to explain this but don’t. In order to install G**gle Wave extensions you have to go to your first wave named “Welcome to Google Wave” and click on the “Extensions Gallery” link. There you’ll find an extension named “Extension Installer”, install it, then when you’re editing waves it’s on the toolbar (yeah, where you change fonts is where you install wave extensions). This allows you to install any extension by url and not just those that are in the gallery.

What a self referential headache that caused.

I think this extension should be pre-installed by default just like the map gadget and yes/no/maybe. And it might be a good idea to just integrate the extension into the settings wave. I would tell google what I think but the forums on the subject don’t seem like the right place to post a suggestion, they’re more akin to tech support:

http://www.google.com/support/forum/p/wave?hl=en

Javascript’s Global Scope and Google Wave

Dmitry Baranovskiy said something that bit me the other day:

JavaScript’s global scope is a public toilet. You can’t avoid going in there but try to limit your contact with surfaces when you do.

Google wave stops calling your gadget callback functions if you do the following in your javascript:

name = "something, anything really, it doesn't matter"

That’s it, that’s all it takes to break a gadget. This bug was very hard for me to find and fix. I now realize it’s noobish not to place ‘var’ before every local variable and that the most polite thing would be to always use var and fight the scoping with only one uniquely named global. Javascript did a big nono when it decided that by default a variable is global and the special ones are local. Really that’s just one insane design choice.

What’s in a “name” as one might ask is something like
“wgadget_iframe_8” for which I didn’t really care enough to dig any further. Just know that you can’t touch it when making a gadget for google wave.

Btw the gadget I made’s called “4 in a wave” which allows you to play the classic game face to face (thumbnail to thumbnail) with your opponent. A bot for playing alone is coming soon. To use this gadget in a wave just click the puzzle piece and paste this url:

http://4inawave.googlecode.com/files/4inaawave.0.8.xml

Google Code Doesn’t Network

When I search for “pyopt” on google the first result is the PyPI page which is pretty amazing considering it didn’t exist before a few hours. The google code page for pyopt is nowhere to be seen, a search for “pyopt site:google.com” gives only some mathematical optimization module. Strange stuff google, strange. Maybe I should’ve went with github.

update 15-11-2009: now I do get the top ranking search result on google for pyopt but zero results on yahoo search’s first page. Wtf is Peyote? So anyway the conclusion is it takes google at least a week to crawl google-code. Strange.