[google-appengine] Sign up to use Java in appEngine

2009-04-12 Thread Edward

I singed up to use Java several hours ago; how long does it take to
get approved?

-
e
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Sign up to use Java in appEngine

2009-04-12 Thread Prashant Gupta
i got my approval in 3-4 hrs.

On Sun, Apr 12, 2009 at 12:24 PM, Edward 061...@gmail.com wrote:


 I singed up to use Java several hours ago; how long does it take to
 get approved?

 -
 e
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Sign up to use Java in appEngine

2009-04-12 Thread T.J. Crowder

Minutes, in my case...

HTH,

-- T.J.

On Apr 12, 7:54 am, Edward 061...@gmail.com wrote:
 I singed up to use Java several hours ago; how long does it take to
 get approved?

 -
 e
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] users.User.email()

2009-04-12 Thread 'Αλκης Ευλογημένος
Does this function guarantee that the email will be returned as all
lowercase for the currently logged in user? If it is can this be added to
the docs?

-- 

Alkis

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: users.User.email()

2009-04-12 Thread David Symonds

2009/4/12 Alkis Evlogimenos ('Αλκης Ευλογημένος) evlogime...@gmail.com:

 Does this function guarantee that the email will be returned as all
 lowercase for the currently logged in user? If it is can this be added to
 the docs?

If it's not in the docs, it's probably not guaranteed. Just call
User.email().lower().


Dave.

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] 500 error for static files today April 12 5:23am

2009-04-12 Thread iceanfire

Hi there,

I've been encountering this problem @ around 5:23am Central Time.

Two of my static files for my page (a .css and a .js) seem to
consistently give a 500 error. The .css file sometimes loads (30% of
the time) as I refresh.

I wasn't sure where else to report this. I know its kinda early in the
morning, but I got kinda worried, since my entire app could break if
the server can't consistently serve a .js file!

I've checked the down-time group and the dashboard system status.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: users.User.email()

2009-04-12 Thread 'Αλκης Ευλογημένος
If it is not in the docs it might be an oversight :-)

2009/4/12 David Symonds dsymo...@gmail.com


 2009/4/12 Alkis Evlogimenos ('Αλκης Ευλογημένος) evlogime...@gmail.com:

  Does this function guarantee that the email will be returned as all
  lowercase for the currently logged in user? If it is can this be added to
  the docs?

 If it's not in the docs, it's probably not guaranteed. Just call
 User.email().lower().


 Dave.

 



-- 

Alkis

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: PageContextImpl giving issues (java.lang.ClassCastException: java.security.AccessControlException) with Spring form tag?

2009-04-12 Thread N. Peeters

It seems that this is cause by all specific forms fromthe Spring
taglib form:form... . Any idea how to get around this? Anybody got
Spring forms to work on GAE?

On Apr 10, 4:50 pm, N. Peeters peete...@gmail.com wrote:
 Hi, I'm getting the following error when the JSP page tries to
 compile. Any idea?

 Nested in org.springframework.web.util.NestedServletException: Request
 processing failed; nested exception is java.lang.ClassCastException:
 java.security.AccessControlException cannot be cast to
 javax.servlet.ServletException:
 java.lang.ClassCastException: java.security.AccessControlException
 cannot be cast to javax.servlet.ServletException
         at org.apache.jasper.runtime.PageContextImpl.handlePageException
 (PageContextImpl.java:754)
         at org.apache.jsp.WEB_002dINF.jsp.searchCustomerInput_jsp._jspService
 (searchCustomerInput_jsp.java:64)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

 The page code is as follows:

 %@ include file=/WEB-INF/jsp/include.jsp%
 %@ taglib prefix=form uri=http://www.springframework.org/tags/form%
 html
 body
 form:formcommandName=searchCustomer
     table
         tr
             tdFirst Name:/td
             tdform:input path=firstName //td
         /tr
         tr
             tdLast Name:/td
             tdform:input path=lastName //td
         /tr
         tr
             td colspan=3
                 input type=submit value=Search /
             /td
         /tr
     /table
 /form:form
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: GAE inter-apps communication

2009-04-12 Thread DarkCoiote

Humm.. Didn't remember that, and with a quick (really quick) look
didn't find that too...

But that make sense, as It would be a way to 'bypass' the quotas and a
way to do bad things (dos)...and other evil stuff too! lol

But then, with an application like I said - central database, to use
for score, person info,
'virtual currency',etc  - what would you suggest to do?

Thanks!
On Apr 11, 1:15 pm, 风笑雪 kea...@gmail.com wrote:
 There is a policy of GAE that you CAN NOT use an app to support another
 app.

 2009/4/11 DarkCoiote darkcoi...@gmail.com



  I thinking about creating a couple of applications that have a common
  data-base.
  As I'm pretty new at this stuff, I don't have many ideas.

  One possible solution would be:

  create the applications A,B,C
  create an master app. D that controls the central database:

  Then, apps A,B,C would query app D to use the database  (get, post,
  put)

  For D I guess an REST solution would be fine (although I don't even
  know for sure what
  REST is), then A,B,C would use the D REST api.

  As the database should not be public, some kind of authentication must
  be done to
  ensure that D processes only requests from A,B,C (no idea on how to do
  this, except from
  the stupid method of sending a large known (to A,B,C,D) random string
  as a parameter)

  Other alternatives to REST would be SOA and RPC, right? from what I've
  just read about
  these architecture REST would be the best one

  Useful linkI found around:
 http://code.google.com/p/appengine-rest-server/

  Any suggestion will be appreciated !

  Thanks!
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] URLFetch can't parse the content-type header

2009-04-12 Thread 秦锋

I tried to fetch following url and check the content-type:
http://www.pbc.gov.cn/diaochatongji/tongjishuju/gofile.asp?file=2009S07.htm

The html seems:
meta http-equiv=Content-Type content=text/html; charset=gb2312
It's a page generated by Excel.

The response header content-type only return text/html, but
charset is missed.

What's wrong with this page? Is it OK with http-equiv=Content-Type not
http-equiv=Content-Type?
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Sudden Issues: Datastore timeout and

2009-04-12 Thread Paul Kinlan
Hi,

Its weird, I am still seeing lots of timeouts for puts and reads at the
moment.  The app does a lot of writes, but I wouldn't expect these to cause
too much of an issue, saying that I am starting to see a lot of contention
issues too.

Paul.

2009/4/11 Alkis Evlogimenos ('Αλκης Ευλογημένος) evlogime...@gmail.com

 There was a short outage last night:

 http://code.google.com/status/appengine/


 On Sat, Apr 11, 2009 at 9:41 AM, Paul Kinlan paul.kin...@gmail.comwrote:

 Hi,

 I solved the issue with the build-in indicies problem,

 The problem that I have is that I see a very very large number of
 DataStore Timeouts with what appear to be simple puts (an update to an
 existing object).

 Is anyone else experiencing these?

 Paul.

 2009/4/9 Paul Kinlan paul.kin...@gmail.com

 Hi,

 Application: twitterautofollow.

 My application www.twollo.com has all of a sudden started to get
 DataStore timeouts and the following error:

 The built-in indices are not efficient enough for this query and your data. 
 Please add a composite index for this query.

 Now, I would understand this if I had made any changes but I have not made 
 any significant changes in months, and the last change I did upload last 
 week was a change to a template.




 The Query in question has two filters on and a count as follows.
 db.Query(Follow).filter(usernameLc =, user_a.lower()).filter(user =, 
 user).count()

 Any insight would be greatly appreciated.

 Paul







 --

 Alkis

 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Will Google support a relational database in the future?

2009-04-12 Thread Consultuning

 Pushing calculations from read time to write time makes sense in that reads
 seriously out number writes for most web applications.

Pushing calculations at write time instead of read time has some other
very very strong implication that you're probably missing: that you
know in advance what you want to calculate. For very narrow
application domains this is probably true. In the business environment
it's often not know, and the flexibility in this regard provided by
relational databases is part of what has made them so popular.

For Google own apps this is not probably a problem, since they have
other means of processing massive amounts of data. If your only window
to your business knowledge is accessible via GAE, you're in a serious
problem each time your requirements do not fall into the realm of what
you anticipated.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Datastore Question

2009-04-12 Thread Paul Kinlan
Hi Guys,

My app is Twitterautofollow.  I have a question about the quota, basically
my app was serving between 6-13 requests a second and jumped up to 32
requests per-second and subsequently went over the quota.  I am not sure
where the 32 requests a second are comming from although some of them might
come from my ping service that I am running to regularly perform some tasks
- I wouldn't be suprised if it was a bug I created

Additionally the DataStore CPU Time is Limited even though it is only at 3%
of quota.

Its starting to get a bit frustrating at the moment because I am having Data
Store Timeouts very often on reads and puts.  Nothing in my model is in an
EntityGroup, that is, there is no use of parent, however there are many
RefernceProperties.

The general process I have that is causing the process goes as follows


   1. Get the user (User Entity) from the datastore
   2. Get the current search term (Search Entity) for the user - I don't use
   the refernce propery set from the user because I need to filter it
  1. Query Twitter
  2. For up to 3 search results add a new entity of type Follow and
  reference the search and user
 1. For each result check to see if the Follow entity already
 exists for the user - if it does we ignore the result
 3. update the search entity with some basic stats

Overall there are, with 5 (1 user, 1 search and 3 reads of Follow) reads and
up to 4 puts (3 for new entities 1 for the Search entity).  I don't think
this is too heavy, but it might be.

So my question is, am I being too excessive, why would this cause a lot of
datastore timeouts in both the reads and puts?  What tips do people have for
DataStore performance?

Thanks,
Paul

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Datastore Question

2009-04-12 Thread 'Αλκης Ευλογημένος
Pervasive use of memcache + exponential backoff retries on most operations
solved it for me.

On Sun, Apr 12, 2009 at 11:55 PM, Paul Kinlan paul.kin...@gmail.com wrote:

 Hi Guys,

 My app is Twitterautofollow.  I have a question about the quota, basically
 my app was serving between 6-13 requests a second and jumped up to 32
 requests per-second and subsequently went over the quota.  I am not sure
 where the 32 requests a second are comming from although some of them might
 come from my ping service that I am running to regularly perform some tasks
 - I wouldn't be suprised if it was a bug I created

 Additionally the DataStore CPU Time is Limited even though it is only at 3%
 of quota.

 Its starting to get a bit frustrating at the moment because I am having
 Data Store Timeouts very often on reads and puts.  Nothing in my model is in
 an EntityGroup, that is, there is no use of parent, however there are many
 RefernceProperties.

 The general process I have that is causing the process goes as follows


1. Get the user (User Entity) from the datastore
2. Get the current search term (Search Entity) for the user - I don't
use the refernce propery set from the user because I need to filter it
   1. Query Twitter
   2. For up to 3 search results add a new entity of type Follow and
   reference the search and user
  1. For each result check to see if the Follow entity already
  exists for the user - if it does we ignore the result
  3. update the search entity with some basic stats

 Overall there are, with 5 (1 user, 1 search and 3 reads of Follow) reads
 and up to 4 puts (3 for new entities 1 for the Search entity).  I don't
 think this is too heavy, but it might be.

 So my question is, am I being too excessive, why would this cause a lot of
 datastore timeouts in both the reads and puts?  What tips do people have for
 DataStore performance?

 Thanks,
 Paul

 



-- 

Alkis

--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: GAE inter-apps communication

2009-04-12 Thread djidjadji

Terms Of Service 4.4

You can put your separate applications at different URLs of the appid
with the data.

http://greatappid.appspot.com/application1/
http://greatappid.appspot.com/application2/
http://greatappid.appspot.com/application3/

2009/4/12 DarkCoiote darkcoi...@gmail.com:

 Humm.. Didn't remember that, and with a quick (really quick) look
 didn't find that too...

 But that make sense, as It would be a way to 'bypass' the quotas and a
 way to do bad things (dos)...and other evil stuff too! lol

 But then, with an application like I said - central database, to use
 for score, person info,
 'virtual currency',etc  - what would you suggest to do?

 Thanks!
 On Apr 11, 1:15 pm, 风笑雪 kea...@gmail.com wrote:
 There is a policy of GAE that you CAN NOT use an app to support another
 app.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Transactions - Entity Groups

2009-04-12 Thread ae

Does anybody else find transactions very restricting?  How do I solve
this problem?  Here is my data model...

Team(db.Model):
  name = db.StringProperty()

Game(db.Model):
  team1 = db.ReferenceProperty(Team, collection_name='game1_set')
  team2 = db.ReferenceProperty(Team, collection_name='game2_set')

... if I delete a team, I want to delete all the games associated with
it as well so I need to put the delete operation in a transaction.
But how would I setup the entity group?

setup 1) Team as parent of Game - but there can be only 1 parent and
team1 and team2 should both be parents - DOESN'T WORK
setup 2) Game as parent of Team - then that would mean each team can
only play 1 game?  DOESN'T WORK
setup 3) create a 3rd entity and let that be the parent of both Team
and Game - but then all teams and games would be in the same entity
group - is this my only option?

Thanks.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Transactions - Entity Groups

2009-04-12 Thread djidjadji

Start with answering the question: Do I need a transaction?

I don't think you need it to delete a team.

Every Team and every Game are root entities, no child objects.

When you want to delete a Team
   1) find all Games that have the Team in attribute team1
   2) delete these Games, maybe delete in groups of 10 to 20 per request
   3) find all Games that have the Team in attribute team2
   4) delete these Games, maybe delete in groups of 10 to 20 per request
   5) delete the Team object

You can use the method from [1] to delete the Games

[1] http://code.google.com/appengine/articles/update_schema.html

2009/4/13 ae gappengin...@gmail.com:

 Does anybody else find transactions very restricting?  How do I solve
 this problem?  Here is my data model...

 Team(db.Model):
  name = db.StringProperty()

 Game(db.Model):
  team1 = db.ReferenceProperty(Team, collection_name='game1_set')
  team2 = db.ReferenceProperty(Team, collection_name='game2_set')

 ... if I delete a team, I want to delete all the games associated with
 it as well so I need to put the delete operation in a transaction.
 But how would I setup the entity group?

 setup 1) Team as parent of Game - but there can be only 1 parent and
 team1 and team2 should both be parents - DOESN'T WORK
 setup 2) Game as parent of Team - then that would mean each team can
 only play 1 game?  DOESN'T WORK
 setup 3) create a 3rd entity and let that be the parent of both Team
 and Game - but then all teams and games would be in the same entity
 group - is this my only option?

 Thanks.
 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Transactions - Entity Groups

2009-04-12 Thread GMailingList

Ok maybe I don't absolutely need it to delete a team but what about...

1) when I'm creating a new game - team1 or team2 could be deleted as
I'm creating a new game, then the game will have a team that does not
exist

OR

2) for arguments sake, I need the deletion of a team (and all the
games it's in) to be atomic.  What you're suggesting can fail at
anywhere between 1 and 4.


On Apr 12, 4:35 pm, djidjadji djidja...@gmail.com wrote:
 Start with answering the question: Do I need a transaction?

 I don't think you need it to delete a team.

 Every Team and every Game are root entities, no child objects.

 When you want to delete a Team
    1) find all Games that have the Team in attribute team1
    2) delete these Games, maybe delete in groups of 10 to 20 per request
    3) find all Games that have the Team in attribute team2
    4) delete these Games, maybe delete in groups of 10 to 20 per request
    5) delete the Team object

 You can use the method from [1] to delete the Games

 [1]http://code.google.com/appengine/articles/update_schema.html

 2009/4/13 ae gappengin...@gmail.com:



  Does anybody else find transactions very restricting?  How do I solve
  this problem?  Here is my data model...

  Team(db.Model):
   name = db.StringProperty()

  Game(db.Model):
   team1 = db.ReferenceProperty(Team, collection_name='game1_set')
   team2 = db.ReferenceProperty(Team, collection_name='game2_set')

  ... if I delete a team, I want to delete all the games associated with
  it as well so I need to put the delete operation in a transaction.
  But how would I setup the entity group?

  setup 1) Team as parent of Game - but there can be only 1 parent and
  team1 and team2 should both be parents - DOESN'T WORK
  setup 2) Game as parent of Team - then that would mean each team can
  only play 1 game?  DOESN'T WORK
  setup 3) create a 3rd entity and let that be the parent of both Team
  and Game - but then all teams and games would be in the same entity
  group - is this my only option?

  Thanks.


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Will Google support a relational database in the future?

2009-04-12 Thread Andy Freeman

 In the business environment
 it's often not know, and the flexibility in this regard provided by
 relational databases is part of what has made them so popular.

Only if the schema makes it possible to get what you want.  And, even
if it does, the cost may be excessive.

  If 
 your only window
 to your business knowledge is accessible via GAE, you're in a serious
 problem each time your requirements do not fall into the realm of what
 you anticipated.

Nope.  The difference is that GAE's query language is weaker so you
have to do more in user code, such as joins and aggregations.
Relational databases write this code for you.  However, regardless of
who writes this code, it has to be run.  Maybe the query optimizer
will write better code than you do, but maybe it won't.

On Apr 12, 1:03 pm, Consultuning consultun...@gmail.com wrote:
  Pushing calculations from read time to write time makes sense in that reads
  seriously out number writes for most web applications.

 Pushing calculations at write time instead of read time has some other
 very very strong implication that you're probably missing: that you
 know in advance what you want to calculate. For very narrow
 application domains this is probably true. In the business environment
 it's often not know, and the flexibility in this regard provided by
 relational databases is part of what has made them so popular.

 For Google own apps this is not probably a problem, since they have
 other means of processing massive amounts of data. If your only window
 to your business knowledge is accessible via GAE, you're in a serious
 problem each time your requirements do not fall into the realm of what
 you anticipated.
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Google App Engine group.
To post to this group, send email to google-appengine@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---



[google-appengine] Re: Should I take my website somewhere else? - blocked in China

2009-04-12 Thread 风笑雪
For this second, you can set an A record to 74.125.113.121.
But google.dns.tancee.com will keep available if this IP got banned.

So when Chinese can't visit your web site, you can ping
google.dns.tancee.com to see if there is a new available IP, and change your
A record again.

Hope this would be helpful.

2009/4/12 kiss242 kiss...@gmail.com


 I suggest never do that, since google.dns.tancee.com is not your own
 domain name, what if the owner/cracker directs it to another malicious
 page?
 You'd better find an google ghs ip, and then make an A record to it.

 I think the best way is that Google provides unique static ips.

 http://groups.google.com/group/google-appengine/browse_thread/thread/78c7b96fd653f24b


 On 4月10日, 下午5时52分, 风笑雪 kea...@gmail.com wrote:
  You can try this CNAME to instead of ghs: google.dns.tancee.com
  My website(http://gae.keakon.cn/) is ok by visiting from China.
 
  2009/4/10 T.J. Crowder t...@crowdersoftware.com
 
 
 
   Hi Wally,
 
   Happy to help (if I did).
 
...you have certainly
covered all the technical bases of implementing a proxy.
 
   Oh, I very much doubt it. :-)  (BTW, I don't know where that six
   came from in my earlier post.  You'll incur 2-3 times, not 2-6 times,
   as much transfer on requests for dynamic content through the proxy.)
 
1. I have experienced being blocked by the app engine (try again in
 an
hour etc.), so I could reasonably assume that it would be likely that
a lot of traffic coming from one source may be blocked.
 
   Perhaps Brett Slatkin or someone else from Google's technical wing
   could comment on this.
 
   I don't know about AppEngine, but Google does place rate limits on end
   users' use of various apps they provide (such as Google Groups!), and
   so this is something to be aware of.  But I'd be surprised if those
   rate-limits are naive enough to be confused by requests from a
   properly-configured proxy.  A request from a properly-configured proxy
   includes the original source of the request as well as the proxy (or
   proxies) through which it's passed.[1]  Proxies are widely used across
   the web, including by ISPs with hundreds of thousands of end users or
   more.  To lump them all together under one rate limit (or at least
   under a rate limit intended for individuals) would be inappropriate.
 
   [1]http://tools.ietf.org/html/rfc2616#section-14.45
 
   This also applies to your points 2 and 3; the original request's
   origin is preserved across the proxy (in the normal case; we're not
   talking about intentionally non-compliant -- but useful! -- proxies
   such as anonymizers and the like).  In any case, the adsense stuff
   won't go through your proxy, remember that the script comes directly
   from googlesyndication.com.
 
Google has also said nothing about the China block, which again means
to expect the worst.
 
   Wally, I'm quite certain that any time China blocks the whole of
   AppEngine (which they don't appear to be doing currently, from other
   comments), Google is aware of it very quickly and does everything they
   reasonably can to clear up the problem working through channels with
   the appropriate Chinese officials.  They cannot afford to be closed to
   China.  Now, the degree to which they'll succeed largely depends on
   the Chinese government.  AppEngine is a bit of a problem for them,
   it's just ridiculously easy to throw together an app that provides a
   way for Chinese citizens to break through the great firewall and get
   unfiltered information.  I'm not surprised the whole of AppEngine was
   blocked for a time last year, and I'm not surprised it got unblocked
   -- presumably the result of discussion and negotiation between the
   Chinese government, U.S. government, and Google.  If Google haven't
   commented on the situation, FWIW I wouldn't take that as evidence of
   their not being concerned about and actively engaged in addressing the
   problem.  Public statements can sometimes cause trouble in sensitive
   negotiations.  But hey, not like I'm an expert on international
   business and government relations. ;-)
 
   And I didn't mean to get into the politics; mainly I was trying to
   address your question about how to go about getting a proxy set up.
 
   Good luck,
   --
   T.J. Crowder
   tj / crowder software / com
   Independent Software Engineer, consulting services available
 
   On Apr 10, 1:08 am, WallyDD shaneb...@gmail.com wrote:
Hi TJ,
 
That really is an amazing post. I'm impressed, you have certainly
covered all the technical bases of implementing a proxy.
 
My biggest concern is that Googles behaviour is unpredictable and I
not entirely sure how well they will respond to something like this
being implemented.
 
1. I have experienced being blocked by the app engine (try again in
 an
hour etc.), so I could reasonably assume that it would be likely that
a lot of traffic coming from one source may be