I've noticed that there are some questions that are getting asked over
and over again, and the best answers are scattered across many posts.
This is a stab at compiling the wisdom of the group and making it easy
for everyone to get the answers they need fast. So the next time
someone drops their laptop into a pit of alligators and then realizes
it had the only copy of their super awesome app, we can just point
them here instead of snarkily explaining the virtues of source control
and backups.
This is just a start. I included some specific requests for help/
feedback in << >> . any other suggestions are welcome.
-peter
--------------------------------
App Engine FAQ's
Q: I accidentally deleted my source code from my hard drive. How do I
download my source
code from Google's servers once I upload it using dev_appserver.py?
A: You can't. There are several steps you can take to improve your
situation. In general,
using a source control tool is a good way to keep your code safe.
Google offers one such
tool for free:
http://code.google.com
There are many other options for source control out there, and
using app engine as your backup
is not the best one.
<<suggestions for other free source repositories welcome>>
However, if you really want to access your uploaded code directly,
you can include some code in
your app that will allow you to download your code as a zip file:
http://groups.google.com/group/google-appengine/browse_thread/thread/8f68d6a3e61fee8/aa5f0e44d14116ee?lnk=gst&q=zipme#aa5f0e44d14116ee
<< any other suggestions for revision-control-phobes? >>
For shell like access to your uploaded code, check out
http://shell.appspot.com/
http://con.appspot.com/
Q: When is App Engine going to support my favorite programming
language?
Q: When is App Engine going to support billing for higher quotas?
A: The official roadmap is here:
http://code.google.com/appengine/docs/roadmap.html
Beyond that, the GAE team has not made any promises about
particular features.
Q: I am confused about High CPU warnings in my logs or in my
dashboard.
A: The mcycles number included in log entries does not include
mcycles spent on API calls
(like datastore or memcache calls). The number in the dashboard
includes the mcycles
used in both your code and API code. This is why the dashboard
number is usually higher.
<<I would love someone to verify that I got this right and not
backwards. Also, if someone
feels up to giving a clear, concise description of the CPU quota
issue in general that would
probably be helpful.>>
Q: How do I use my favorite SQL feature in GQL?
A: First, you must understand that SQL and GQL are very different.
Not all features of SQL are
available in GQL, just like not all features of GQL are available
in SQL. Here are a few
pointers on how to duplicate some common SQL features using the
Datastore:
* To simulate count(*) in the Datastore, you should construct a
sharded counter. The
datastore does not give you a way to count all your entities.
You must maintain
a count yourself. A sharded counter is the currently accepted
best practice for doing this.
For example implementations, see:
http://github.com/DocSavage/sharded_counter/tree/master/counter.py
(by Bill Katz)
http://paste.blixt.org/1581 (by Sylvain?)
Watch this video for more background:
http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine
<< any other common 'how do i do this SQL task in GQL' issues?>>
Q: I'm in China or somewhere else that does not have SMS connectivity
with Google's servers.
How can I get access? What's wrong with just using my email
address?
A: Look at
http://code.google.com/appengine/kb/sms.html
<<does anyone from china have any better advice? i'm from the US
so i have no idea>>