Re: [google-appengine] Re: a happy developer
+1 On Fri, Dec 2, 2011 at 3:48 AM, Thomas Wiradikusuma wiradikus...@gmail.comwrote: Couldn't agree more! Outstanding work guys! PS: When can we see 1.6.1? On Dec 2, 1:11 am, Vivek Puri v...@vivekpuri.com wrote: +1 On Nov 30, 4:59 pm, alex a...@cloudware.it wrote: I've seen many people bashing GAE dev team, especially lately. What I want to say here is, I've been using it for years now and it's pretty awesome what you guys have been doing and where you've gone today. Of course there are bugs and stuff you need to find workarounds for but it is nowhere near compared to the burden of managing a cluster of EC2 on AWS or pay a double to Heroku or RackSpace even if they're great platforms too. -- 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. -- 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.
Re: [google-appengine] Re: What happened to the promised reliability improvement for email delivery?
We are sending out about 1.8 million emails per month. SES or sendgrid would be way to expensive. (~$1000). We do it from a single server (2ghz, 4gb) hosted somewhere outside of google. It costs us about $60 per month and we have a great delivery rate (spif, dkim, dedicated ip and also very important: we handle all email bounces in appengine and dont send any further email to an address if it bounces) Our delivery rate is quite high, way beyond GAE, except for hotmail. I can highly recommend building setting up your own email server and just add a simple php script to expose a http api. Took me about a day to setup and its 20x cheaper then sendgrid. It's been running for almost a year and i never even had to login into the mailserver. it just runs super smooth. I'm monitoring it with prodeagle.com Cheers, -Andrin On Fri, Dec 2, 2011 at 2:53 AM, Vivek Puri v...@vivekpuri.com wrote: 'Cause we like startups! On Dec 1, 8:19 pm, voscausa robert@gmail.com wrote: Why Sendgrid and not AWS SES. I moved to AWS SES and it is looking veyy good. -- 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. -- 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.
Re: [google-appengine] Meeting Notes from the Seattle meet-up.
You just scored 10/10. On Thu, Dec 1, 2011 at 6:40 AM, Brandon Wirtz drak...@digerat.com wrote: We were the rowdiest group in the place. We with our count of 8 were also about half of the people in the joint. ** ** Greg prefixes a great many things with “The opinions I am about to express are my own and do not reflect those of Google, my team members, our sponsors, or my family” ** ** Steve built an app that teaches his daughter math, but mentioned that if it caught on it would bankrupt him proving that GAE doesn’t scale as it can be Over loaded by a 9 year old girl and her computational skills. ** ** It was confirmed that the Team changed GAE’s pricing just to spite me. Which is why I take such joy in the 4 Requests per second on Zero Instances. (That’ll teach you) ** ** While the location of the GAE servers was not revealed we now know where the Google Apartment is for traveling Google Staff. This will make abducting someone who knows this answer easier. ** ** While Matt will tell you that Data Store is superior to all other Database models. He won’t do so publicly because he is a nice guy and “won’t drag the competition through the mud”. ** ** Apparently I have Business Cards, but none of the Google staff did, because that would imply that Google lets them out of the Plex to interact with people who might want said card. ** ** It is rumored that Microsoft has a Bacon Truck for poaching valued Google Employees, but none of the people in attendance had seen said truck, lending to the obvious conclusion, Microsoft doesn’t want any of them. ** ** No one attended in an adult mermaid costume. And our Waitress looked a little to Emo/Suicide Girl to ask if she would consider wearing one. ** ** -Brandon ** ** *Brandon Wirtz *BlackWaterOps: President / Lead Mercenary [image: Description: http://www.linkedin.com/img/signature/bg_slate_385x42.jpg] *Work:* 510-992-6548 *Toll Free:* 866-400-4536 *IM:* drak...@gmail.com (Google Talk) *Skype:* drakegreene BlackWater Ops http://www.blackwaterops.com/ ** ** ** ** ** ** -- 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. -- 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. image001.jpg
RE: [google-appengine] Re: What happened to the promised reliability improvement for email delivery?
Server Beach. Pick a Canada CoLo Pricing about what Andrin said. Being in Canada you screw up and violate some Cann Spam law. Or if you do so intentionally. Being in Canada will prevent your system from just disappearing, and having your domain stolen. At least for a little while. They have a 100% SLA (.5% better than Google's) Because they are hard core like that. I have coupons if you need them. I run quite a few servers there. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Andrin von Rechenberg Sent: Friday, December 02, 2011 12:35 AM To: google-appengine@googlegroups.com Cc: Uwe Maurer Subject: Re: [google-appengine] Re: What happened to the promised reliability improvement for email delivery? We are sending out about 1.8 million emails per month. SES or sendgrid would be way to expensive. (~$1000). We do it from a single server (2ghz, 4gb) hosted somewhere outside of google. It costs us about $60 per month and we have a great delivery rate (spif, dkim, dedicated ip and also very important: we handle all email bounces in appengine and dont send any further email to an address if it bounces) Our delivery rate is quite high, way beyond GAE, except for hotmail. I can highly recommend building setting up your own email server and just add a simple php script to expose a http api. Took me about a day to setup and its 20x cheaper then sendgrid. It's been running for almost a year and i never even had to login into the mailserver. it just runs super smooth. I'm monitoring it with prodeagle.com Cheers, -Andrin On Fri, Dec 2, 2011 at 2:53 AM, Vivek Puri v...@vivekpuri.com wrote: 'Cause we like startups! On Dec 1, 8:19 pm, voscausa robert@gmail.com wrote: Why Sendgrid and not AWS SES. I moved to AWS SES and it is looking veyy good. -- 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 mailto:google-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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. -- 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] Offering a Google App Engine service: using the logo?
Hi, I'm developing a error tracking service called http://crashnote.com and one of the platforms I want to target is the App Engine. Obviously I want to make this very clear on my landing page, so I thought using the logo is a great way of doing this. Today I received a response to my request which said we cannot approve your request. I can understand them, I mean I wouldn't want anyone to use my logo and misguide users. But I want to be a legit SaaS offering for this App Engine platform, there must be some way to become an official partner. I'd be happy to hear advice/suggestions. Regards, Stephan -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/xlQqO89xKrAJ. 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.
RE: [google-appengine] Offering a Google App Engine service: using the logo?
Not a lawyer, not a Google Employee, and I don't know what your request said. I had no trouble getting permission for Powered by the Google App EngineT platform With the Jet logo. Approved. Though I did so very early. (They make you send actual paper in the mail. I didn't have to send actual paper for an NDA. They are very serious about logos) From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of stephanos Sent: Friday, December 02, 2011 1:14 AM To: google-appengine@googlegroups.com Subject: [google-appengine] Offering a Google App Engine service: using the logo? Hi, I'm developing a error tracking service called http://crashnote.com and one of the platforms I want to target is the App Engine. Obviously I want to make this very clear on my landing page, so I thought using the logo is a great way of doing this. Today I received a response to my request which said we cannot approve your request. I can understand them, I mean I wouldn't want anyone to use my logo and misguide users. But I want to be a legit SaaS offering for this App Engine platform, there must be some way to become an official partner. I'd be happy to hear advice/suggestions. Regards, Stephan -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/xlQqO89xKrAJ. 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. -- 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: Doom day
i too am frustrated by this. when google announced the new pricing they also told us that they would discount frontend instance hours until python2.7 was supported. right now python2.7 is in beta, and i am not feeling lucky enough to move production apps on to a beta product (given that i still have to use the beta data migration tool). i'm disappointed that google has not been able to deliver production supported python2.7, but still raised the price. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SoJftf4uDZwJ. 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] CSS file not updating when deploying app
Hey I have made changes to one of my CSS files, however after deploying my application the changes to the CSS are not being reflected in the live CSS. If I go to the explicit version number of the app I.e. 1.myappid.appspot.com the changes to the CSS are apparent. Is this a server caching issue that will sort itself out or do I need to do something to fix this? 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: Meeting Notes from the Seattle meet-up.
It sounds like this meetup was almost worth the 10 hour flight to Seattle ;) On Dec 1, 5:40 am, Brandon Wirtz drak...@digerat.com wrote: We were the rowdiest group in the place. We with our count of 8 were also about half of the people in the joint. Greg prefixes a great many things with The opinions I am about to express are my own and do not reflect those of Google, my team members, our sponsors, or my family Steve built an app that teaches his daughter math, but mentioned that if it caught on it would bankrupt him proving that GAE doesn't scale as it can be Over loaded by a 9 year old girl and her computational skills. It was confirmed that the Team changed GAE's pricing just to spite me. Which is why I take such joy in the 4 Requests per second on Zero Instances. (That'll teach you) While the location of the GAE servers was not revealed we now know where the Google Apartment is for traveling Google Staff. This will make abducting someone who knows this answer easier. While Matt will tell you that Data Store is superior to all other Database models. He won't do so publicly because he is a nice guy and won't drag the competition through the mud. Apparently I have Business Cards, but none of the Google staff did, because that would imply that Google lets them out of the Plex to interact with people who might want said card. It is rumored that Microsoft has a Bacon Truck for poaching valued Google Employees, but none of the people in attendance had seen said truck, lending to the obvious conclusion, Microsoft doesn't want any of them. No one attended in an adult mermaid costume. And our Waitress looked a little to Emo/Suicide Girl to ask if she would consider wearing one. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Description:http://www.linkedin.com/img/signature/bg_slate_385x42.jpg Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene http://www.blackwaterops.com/ BlackWater Ops image001.jpg 1KViewDownload -- 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: CSS file not updating when deploying app
I think Ctrl-F5 solves this. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/pP0B0lBQKWgJ. 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.
RE: [google-appengine] CSS file not updating when deploying app
Likely you set the expiration long, and the edgecache cached the old version. Your app.yaml specifies the settings for a default on static files. -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Mike Sent: Friday, December 02, 2011 2:33 AM To: Google App Engine Subject: [google-appengine] CSS file not updating when deploying app Hey I have made changes to one of my CSS files, however after deploying my application the changes to the CSS are not being reflected in the live CSS. If I go to the explicit version number of the app I.e. 1.myappid.appspot.com the changes to the CSS are apparent. Is this a server caching issue that will sort itself out or do I need to do something to fix this? 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. -- 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.
RE: [google-appengine] Re: CSS file not updating when deploying app
Not if edgecache locked on to it. If it is local then yes. Also consider installing Fiddler 2 on your system, it helps make sure you are always looking at live versions, and will tell you what cache headers are being sent. It will also tell you of 301's 302's and the latency and through put of your requests. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Rohan Chandiramani Sent: Friday, December 02, 2011 2:52 AM To: google-appengine@googlegroups.com Subject: [google-appengine] Re: CSS file not updating when deploying app I think Ctrl-F5 solves this. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/pP0B0lBQKWgJ. 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. -- 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: CSS file not updating when deploying app
Ctrl + F5 was my first solution, needless to say it doesn't work as Brandon suggested. I have set the expiration of css files to 7 days in my appengine- web.xml, I'm sure this hasn't caused an issue before when updating CSS files though. Would it be worth reducing this or am I just going to have to wait 7 days before app engine updates the CSS to the new version I deployed? Thanks On Dec 2, 10:57 am, Brandon Wirtz drak...@digerat.com wrote: Not if edgecache locked on to it. If it is local then yes. Also consider installing Fiddler 2 on your system, it helps make sure you are always looking at live versions, and will tell you what cache headers are being sent. It will also tell you of 301's 302's and the latency and through put of your requests. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Rohan Chandiramani Sent: Friday, December 02, 2011 2:52 AM To: google-appengine@googlegroups.com Subject: [google-appengine] Re: CSS file not updating when deploying app I think Ctrl-F5 solves this. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visithttps://groups.google.com/d/msg/google-appengine/-/pP0B0lBQKWgJ. 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 athttp://groups.google.com/group/google-appengine?hl=en. -- 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: Question about indexing of properties
It wasn't a problem of revealing secrets, I just thought at this situation (while playing with different data models on my entities), so that is why I generalized. So, to use your example: i could model my entity like this: - name=SimpleEntity - type=animal - properties=[cat,big] (which is a list) Or, for the other model, let's say I have this equivalence: - name=SimpleEntity - properties=[cat, big, type=animal] The first two questions that came into my head were: 1. which index will generate more metadata ( it the there is a difference) ? 2. which index needs more write operations ? On Nov 30, 11:30 pm, Ikai Lan (Google) ika...@google.com wrote: Note: I wrote the first part of this email before I understood what you were doing, but since I think it is useful information, I am leaving it in. Original email --- Basically, there are a few rules to remember when considering tradeoffs: - get by key is always best. It's the most cost efficient. If you can perform your query using a named key, you'll see the most benefits - from a cost perspective, writing an index is always 2 datastore operations. If you UPDATE an index (change a value), that's 4 datastore operations because you need to delete the old indexes. In general, most websites and web apps are read heavy. The rule of thumb is that you might do 10 or more reads per every write, so you optimize for reads when possible. One pattern I generally recommend is where you store records both as individual rows as well as child fields in the parent entity. I was talking to someone yesterday about the best way to store, say, travel data. I recommended a structure that looked something like this: Trip - date - description - traveler_id Traveler - name - trips --- serialized trips This was a situation where Traveler would have been read way more times than Trip would have been queried, but we would treat the Trip as the source of truth so we can always regenerated the Traveler's trips property. The tradeoff here is additional storage, but the benefits are that we have a source of truth, and reads are really, really fast since we only need to fetch travelers by ID. Answer to your question - In your case, I think the only read tradeoff, if I understand your problem correctly, is that you cannot query by property equality independent of type. It'll take fewer indexes. Example: Let's say you have a property value cat and a type animal. If you use a list property of animal=cat, you can't ever find ALL the properties cat. It'll cost less in terms of indexes. If you wanted to find all the animals (type), you would do an inequality query on animal. I can't think of a material difference in terms of performance, but maybe someone else in this group can. Also, one more general tip that would have made the original question easier to understand: don't overgeneralize the problem (type, property, value). You probably aren't going to reveal any secret details, and it's easier for readers to conceptualize if they can map to concrete object types. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Wed, Nov 30, 2011 at 2:42 AM, Ice13ill andrei.fifi...@gmail.com wrote: Well let's say I have an Entity with the following fields: - String name - String type - ListString properties The purpose is to search these entities (for example: the user inputs the search words to be matched against properties field and the name and type are matched according to some other settings/ options) So let's say I can use this index: name^ , type^ , properties^. But another option would be to remove the type field and insert the same information in the properties list filed as type=some_value_of_type so and I could use this index: name^ , properties^. I believe that any of this is a solution for searching my Entities (is it possible that i'm missing something ?), but i was wandering what are the differences (advantages/disadvantages) regarding query performance, quotas etc. On Nov 29, 10:57 pm, Brandon Wirtz drak...@digerat.com wrote: I think you are doing someone's home work :-) From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Ikai Lan (Google) Sent: Tuesday, November 29, 2011 10:58 AM To: google-appengine@googlegroups.com Subject: Re: [google-appengine] Question about indexing of properties Can you give a more concrete example of the two cases (maybe provide some code)? I'm trying to figure out what you're doing so I can list off tradeoffs that I see. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com http://plus.ikailan.com/ | twitter.com/ikai On Sat, Nov 26, 2011 at 4:17 AM, Ice13ill andrei.fifi...@gmail.com wrote: Hi, I was wandering which of the following data models are
[google-appengine] Re: CSS file not updating when deploying app
I never have these problems. I see my changes right away. I'am using Stylizer to change my CSS in real time and for testing in different browsers. And than I save (update) my changed CSS in my Eclipse / Pydev static folder of my project. After uploading the new changed CSS I also see the changes. Most of the time I'am using Chrome with Firebug Lite and Firefox with webtools. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/ylPU-WwfmwYJ. 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.
Re: [google-appengine] Re: What if I dpn't want memcache to fail silently?
If you're trying to create a write-through cache, you may want to look at this code: http://code.google.com/p/objectify-appengine/source/browse/trunk/src/com/googlecode/objectify/cache/CachingAsyncDatastoreService.java It will remain transactionally locked to the datastore except in one condition: a DeadlineExceededException. As long as you don't get a hard cutoff, no amount of write contention can cause it to go out of sync. It doesn't require a write lock, but it does make heavy use of CAS. And transactions ignore the cache until commit, which is really the appropriate behavior. Jeff On Fri, Dec 2, 2011 at 3:16 AM, Crizegg craig.qui...@gmail.com wrote: Looking into this solution, I've jumped farther down the rabbit hole than anticipated. First off, memcache write failures are not very common and neglecting to use compare and set was probably the main source of my issues. However memcache writes can still fail and regardless of whether they throw errors, can cause stale data in race conditions. Also, since gae transactions live solely within the datastore, you cannot solve this problem elegantly with transactions. See here for more info: http://groups.google.com/group/appengine-ndb-discuss/browse_thread/thread/cd05c3c8ac7b27cf# On Dec 1, 2:36 pm, Crizegg craig.qui...@gmail.com wrote: Setting the cache is where my pain point lies. I see zero log messages indicating a memcache failed write on the python side. I can't think of a case where you WOULDN'T want to know memcache failed to overwrite stale data. Since the next update is going to read the stale data from memcache and write it to the datastore! In Javaland there is an error handler you can set on MemcacheService @Jeff, this is the exact type of solution I'm after for Python. I'm thinking proxy hooks with backed off retries. Will post soon. On Nov 30, 10:43 am, Brandon Wirtz drak...@digerat.com wrote: Yes, But that is Drawer failed to open Memcache and the drawer should error when theyfailto be a place that may or may not contain data. Drawer is too busy an can't be bothered right now to check if it has your socks, is different than there are no socks. Drawer is suffering from non-existence issues there is no drawer. Or if you are on MS. Drawer only allows you to read socks but you can't store new socks at this time so stop asking. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Jeff Schnitzer Sent: Wednesday, November 30, 2011 5:13 AM To: google-appengine@googlegroups.com Subject: Re: [google-appengine] Re: What if I dpn't want memcache tofail silently? FWIW, there are good reasons to ask when memcache fails - I mean a real failure (say, timeout exception) rather than mere lack of data. For example, if you are put()ing a new value in memcache and you want to make sure the old value is replaced, you really want to be able to retry if the put() fails. In Javaland there is an error handler you can set on MemcacheService - the default is to log and ignore errors but you can set a strict error handler that propagates exceptions. Dunno what the equivalent for Python is. Jeff On Wed, Nov 30, 2011 at 2:03 AM, Brandon Wirtz drak...@digerat.com wrote: My socks are not in the drawer. Return Error (What has the Maid been doing all day? Just because the socks aren't in the drawer doesn't mean the drawer is in error. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Tim Hoffman Sent: Tuesday, November 29, 2011 9:39 PM To: google-appengine@googlegroups.com Subject: [google-appengine] Re: What if I dpn't want memcache tofail silently? Hi Its not generally considered an error if something is not in the cache, (it is after all a cache, not a guarunteed storage.) Use a decorator to raise KeyError or whatever you feel is appropriate. Rgds Tim -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visithttps:// groups.google.com/d/msg/google-appengine/-/A3p__F-3o1kJ. 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 athttp:// groups.google.com/group/google-appengine?hl=en. -- 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 mailto:google-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group athttp://
Re: [google-appengine] Doom day
http://code.google.com/p/googleappengine/issues/detail?id=6282 This is the problem You may be right about the sliders I am attaching my instances chart, any suggestions? (I kept everything at automatic-automatic until now, trusting gae, but it seems it is over using instances) -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/GbOYuz42dlQJ. 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. attachment: chart.png
[google-appengine] Re: CSS file not updating when deploying app
try using a cache-busting stragegy, like mystyle.css?1234 You could even insert the current built of your app for 1234 so all caches break each time you update your app On Dec 2, 4:32 am, Mike phy...@gmail.com wrote: Hey I have made changes to one of my CSS files, however after deploying my application the changes to the CSS are not being reflected in the live CSS. If I go to the explicit version number of the app I.e. 1.myappid.appspot.com the changes to the CSS are apparent. Is this a server caching issue that will sort itself out or do I need to do something to fix this? 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] How to gracefully handle datastore timeouts
Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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. -- 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
:) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.netwrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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. -- 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. -- 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.net wrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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. -- 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. -- 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. -- 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] HRD Migration stuck after quota limit, not resuming
My HRD migration process is stuck at 98.18% since yesterday. I suspect this was due to storage quota limit on the target App, but the process is still stuck and not restarting even after adjusting the quota. Any recommendations? App is 'seacloud-1'. 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why python2.7 can't support M/S either. I can achieve nearly the same level of concurrency with Python2.5 (albeit at a higher cost) that I can with Python2.7, with regards to datastore operations. Can someone at Google provide some direction on long-term support (at least a year or so) for M/S? On Fri, Dec 2, 2011 at 10:07 AM, Joshua Smith joshuaesm...@charter.netwrote: I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.netwrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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. -- 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. -- 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. -- 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. -- 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.
Re: [google-appengine] Doom day
If you set Max Idle Instance to automatic you will always pay for the total number of instances. Looking at your chart I'd set Max Idle Instance to something between 20-25 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/zitj392_plYJ. 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: Email Parser
Thanks for the replies. Maybe I can do this another way. I'm reading up on Procmail, maybe that's what I need. Cynthia On Dec 1, 2:15 pm, Brandon Wirtz drak...@digerat.com wrote: Unless there is a reason for the form to send an email, you would be better to put the forms target on appengine and convert the post data to a database. Java or python can do this relatively easily, if you don't speak either now however I don't know as this is a super easy first task. The DataStorage is easy, but making a spreadsheet out of the data (if you want it to be editable) is not going to be simple. Personally if I were doing the project you describe I would Check out PHP Form Maker (Pro?) or one of the other form maker software suites depending on what you or your Sys admin/web host determines would be easiest in your web configuration. Not that I want to dissuade you from GAE, just don't think that the learning curve for the task is well balanced. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene BlackWater Ops -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Cynthia Sent: Thursday, December 01, 2011 9:03 AM To: Google App Engine Subject: [google-appengine] Email Parser I'm brand new to Google App Engine and I'm not really sure I can get something that will do what I want. Or maybe I need to go elsewhere. I am a programmer by trade but I am still a beginner in many areas. I am looking for a way to receive emails and parse out certain information, then save the info to a DB or a Spreadsheet. A Google Docs Spreadsheet would be fine, if that's possible. Would Google App Engine be able to do this? Which language would be best? Maybe something like this already exists that I could use? It's for a club membership list. People sign up with an HTML form, and the form emails the information to an email address. I want to pluck the data out of the email and have it save automatically. Thanks, Cynthia -- 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 athttp://groups.google.com/group/google-appengine?hl=en. -- 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] Problem with GAE Datastore Viewer
Hi, My application is developed in JAVA, utilizing JDO. Unfortunatelly, I started today getting starnge errors - 500 when trying to run GQL queries on my data: SELECT * FROM Przedszkole where __key__ = Key('agtzfmUtZHppZWNrb3ITCxILUHJ6ZWRzemtvbGUYgooIDA') results with Server error 500 and strange message: address must not be empty. My application is http://e-dziecko.appspot.com . Any hint on this? More funny, access object programatically seems to work without any interruption. -- 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] Failure 500 when I try to call RPC
Hi I am using GWT with JAVA. I wrote a simple program which use RPC. When I try to run it without Google app engine - it works fine. after I upload my apllication to google app engine and try to see if it work, I get strange error. I can see my welcome screen, and when I click on a button (which invoke a RPC) I got an error: failure 500 htmlhead meta http-equiv... .. if the problem persist, please HERF = http://code.google.com/appengine/ community.html ... I cant understand when I can run the apllication with out google app engine, and with app engine I got this error ? -- 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] Python egg importing and entry points?
Given setuptools and zipimport are supported with python 2.7, could someone please provide a brief post describing the specifics of importing eggs and using entry points on gae? For example, it would be nice if the eggs at app root were added to path automatically, and if wsgi handlers (referred to in app.yaml) could reside inside eggs. Thanks! Petri -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/y1kpkIKKmBAJ. 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] AppStats - Gaps in processing times
Hi, I am trying to optimize my application and am using AppStats to see where there may be bottlenecks. Current page processing time is a quite high 1200ms with little data in the datastore. Using AppStats I can see that most RPCs take 3-10ms, so perfectly reasonable. A few questions: 1) There are a total of about 15 RPC per page, is this reasonable for a page? 2) There are two RPCs (both datastore_v3.Get) that take about 50-60ms each - the odd thing is that after each of these calls, there is a 300ms jump before the next event. Both these calls use a Reference Property, which I use quite al lot in the app. Why the 300ms delay, in addition to the 50ms processing time? Is there a way to optimize these reference property calls? Thanks for your help! Incure -- 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.
Re: [google-appengine] Re: The Performance of the SDK development server has become unbearable
On Wed, Nov 30, 2011 at 11:33 AM, PK pa...@gae123.com wrote: Hi Ikai, Thanks for acknowledging this. Good software gets better but great software also does nor regress first. As painful as is to configure static resource serving, it is by now a known evil and I have automated it. Hunting down regressions is unexpected and totally unproductive. Getting back to where this thread started I would like to hear that you will also/first add some benchmarks in your internal SDK testing process so that huge performance regressions like the ones described here will be less likely to happen again. You're right PK and we will look into this. cheers, robert -- 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.
RE: [google-appengine] Re: CSS file not updating when deploying app
Don't put Query strings in your css links, that is a horrible hack. Set your cache headers, or version your files in the name. Query strings for cache busting hard coded in the HTML will bust caching for users later as well. -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of JH Sent: Friday, December 02, 2011 6:00 AM To: Google App Engine Subject: [google-appengine] Re: CSS file not updating when deploying app try using a cache-busting stragegy, like mystyle.css?1234 You could even insert the current built of your app for 1234 so all caches break each time you update your app On Dec 2, 4:32 am, Mike phy...@gmail.com wrote: Hey I have made changes to one of my CSS files, however after deploying my application the changes to the CSS are not being reflected in the live CSS. If I go to the explicit version number of the app I.e. 1.myappid.appspot.com the changes to the CSS are apparent. Is this a server caching issue that will sort itself out or do I need to do something to fix this? 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. -- 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.
Re: [google-appengine] Re: Meeting Notes from the Seattle meet-up.
Oh dude, now you are making me regret not coming along. I do not condone the abduction of Google employees but I will tell you that your intel is virtually worthless regarding the corporate apartments: those things are always booked to capacity every time someone from the GAE team visits the Seattle office. If you really want to capture a Google employee, set up a box like this: http://www.shutterstock.com/pic-82554259/stock-photo-box-trap-d.html And write the words Free ponies on it. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 2:35 AM, Miles milesco...@gmail.com wrote: It sounds like this meetup was almost worth the 10 hour flight to Seattle ;) On Dec 1, 5:40 am, Brandon Wirtz drak...@digerat.com wrote: We were the rowdiest group in the place. We with our count of 8 were also about half of the people in the joint. Greg prefixes a great many things with The opinions I am about to express are my own and do not reflect those of Google, my team members, our sponsors, or my family Steve built an app that teaches his daughter math, but mentioned that if it caught on it would bankrupt him proving that GAE doesn't scale as it can be Over loaded by a 9 year old girl and her computational skills. It was confirmed that the Team changed GAE's pricing just to spite me. Which is why I take such joy in the 4 Requests per second on Zero Instances. (That'll teach you) While the location of the GAE servers was not revealed we now know where the Google Apartment is for traveling Google Staff. This will make abducting someone who knows this answer easier. While Matt will tell you that Data Store is superior to all other Database models. He won't do so publicly because he is a nice guy and won't drag the competition through the mud. Apparently I have Business Cards, but none of the Google staff did, because that would imply that Google lets them out of the Plex to interact with people who might want said card. It is rumored that Microsoft has a Bacon Truck for poaching valued Google Employees, but none of the people in attendance had seen said truck, lending to the obvious conclusion, Microsoft doesn't want any of them. No one attended in an adult mermaid costume. And our Waitress looked a little to Emo/Suicide Girl to ask if she would consider wearing one. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Description:http://www.linkedin.com/img/signature/bg_slate_385x42.jpg Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene http://www.blackwaterops.com/ BlackWater Ops image001.jpg 1KViewDownload -- 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. -- 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.
Re: [google-appengine] Timeouts to Paypal
Vivek, is this to the Paypal sandbox or the real Paypal API? The sandbox has been observed as being pretty slow, but the real API is supposed to be much better. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Wed, Nov 30, 2011 at 1:49 PM, Brandon Wirtz drak...@digerat.com wrote: Pay pal throttles by IP, you should use their Call back method where you submit the request, and they hit a url when the transaction is processed. Also consider using a proxy to do the submission. -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Vivek Puri Sent: Wednesday, November 30, 2011 1:28 PM To: Google App Engine Subject: [google-appengine] Timeouts to Paypal For the past couple weeks, we have been getting timeouts on urlfetch requests made to Paypal. We have set deadline of 55 seconds, and even then the request times out. If anyone else is also facing similar issue, please respond. Also, if anyone from GAE team has any ideas on this, please let me know. -- 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. -- 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. -- 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.
Re: [google-appengine] Problem with GAE Datastore Viewer
HI bart, Oy, I know what is causing this. The datastore admin is written using Python which has validations for fields like Address or GeoPt. The Java code does not, so it's possible to set this to null, which would cause this to error out. In general I advise people to use StringProperty as much as possible. To fix this, you have two choices: 1. Change the Address property to be non-null programmatically 2. Change the property on all entities to be a String property. You'll probably use App Engine mapreduce for this. I'm going to make a list of polish bugs and feature requests that I'm going to champion in an upcoming release. I'm wondering what the implications of a quick and dirty fix to remove the validations are. Unfortunately, if history is any kind of a teacher, the fix is NEVER that easy. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 12:55 AM, bartprokop prokop.b...@gmail.com wrote: Hi, My application is developed in JAVA, utilizing JDO. Unfortunatelly, I started today getting starnge errors - 500 when trying to run GQL queries on my data: SELECT * FROM Przedszkole where __key__ = Key('agtzfmUtZHppZWNrb3ITCxILUHJ6ZWRzemtvbGUYgooIDA') results with Server error 500 and strange message: address must not be empty. My application is http://e-dziecko.appspot.com . Any hint on this? More funny, access object programatically seems to work without any interruption. -- 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. -- 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.
RE: [google-appengine] Re: Meeting Notes from the Seattle meet-up.
I have it on good authority that one of your team mates stayed at the apartment. He apparently has more pull in such matters than you. I'd tell you which team mate it was, but corp perks like who has an executive wash room key aren't secrets I give away. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Ikai Lan (Google) Sent: Friday, December 02, 2011 10:01 AM To: google-appengine@googlegroups.com Subject: Re: [google-appengine] Re: Meeting Notes from the Seattle meet-up. Oh dude, now you are making me regret not coming along. I do not condone the abduction of Google employees but I will tell you that your intel is virtually worthless regarding the corporate apartments: those things are always booked to capacity every time someone from the GAE team visits the Seattle office. If you really want to capture a Google employee, set up a box like this: http://www.shutterstock.com/pic-82554259/stock-photo-box-trap-d.html And write the words Free ponies on it. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com http://plus.ikailan.com/ | twitter.com/ikai On Fri, Dec 2, 2011 at 2:35 AM, Miles milesco...@gmail.com wrote: It sounds like this meetup was almost worth the 10 hour flight to Seattle ;) On Dec 1, 5:40 am, Brandon Wirtz drak...@digerat.com wrote: We were the rowdiest group in the place. We with our count of 8 were also about half of the people in the joint. Greg prefixes a great many things with The opinions I am about to express are my own and do not reflect those of Google, my team members, our sponsors, or my family Steve built an app that teaches his daughter math, but mentioned that if it caught on it would bankrupt him proving that GAE doesn't scale as it can be Over loaded by a 9 year old girl and her computational skills. It was confirmed that the Team changed GAE's pricing just to spite me. Which is why I take such joy in the 4 Requests per second on Zero Instances. (That'll teach you) While the location of the GAE servers was not revealed we now know where the Google Apartment is for traveling Google Staff. This will make abducting someone who knows this answer easier. While Matt will tell you that Data Store is superior to all other Database models. He won't do so publicly because he is a nice guy and won't drag the competition through the mud. Apparently I have Business Cards, but none of the Google staff did, because that would imply that Google lets them out of the Plex to interact with people who might want said card. It is rumored that Microsoft has a Bacon Truck for poaching valued Google Employees, but none of the people in attendance had seen said truck, lending to the obvious conclusion, Microsoft doesn't want any of them. No one attended in an adult mermaid costume. And our Waitress looked a little to Emo/Suicide Girl to ask if she would consider wearing one. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Description:http://www.linkedin.com/img/signature/bg_slate_385x42.jpg Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene http://www.blackwaterops.com/ BlackWater Ops image001.jpg 1KViewDownload -- 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 mailto:google-appengine%2bunsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- 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. -- 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.
Re: [google-appengine] Re: Email Parser
Cynthia, Here are some procmail docs: http://sunsite.utk.edu/UNIX-help/email/procmail.html Having used this before, I will tell you that it is not the easiest thing in the world to debug and write for. Procmail lets you pipe raw email data into a different process, but you still need to use a program that can successfully parse the email, attachments, headers and lots of other weird email spec goodness. You definitely *don't* need Google App Engine, but if I am reading your requirements right, you can get away with using the incoming email API: http://code.google.com/appengine/docs/python/mail/receivingmail.html And making a call to the spreadsheets API: http://code.google.com/apis/spreadsheets/ I'd start by trying to get incoming email working. The nice thing about using GAE's incoming mail API is that it makes processing email SUPER easy. The downside is that you don't get a ton of choices about what addresses you can use (your-app...@appspotmail.com and others). -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:10 AM, Cynthia cynt...@tiptail.com wrote: Thanks for the replies. Maybe I can do this another way. I'm reading up on Procmail, maybe that's what I need. Cynthia On Dec 1, 2:15 pm, Brandon Wirtz drak...@digerat.com wrote: Unless there is a reason for the form to send an email, you would be better to put the forms target on appengine and convert the post data to a database. Java or python can do this relatively easily, if you don't speak either now however I don't know as this is a super easy first task. The DataStorage is easy, but making a spreadsheet out of the data (if you want it to be editable) is not going to be simple. Personally if I were doing the project you describe I would Check out PHP Form Maker (Pro?) or one of the other form maker software suites depending on what you or your Sys admin/web host determines would be easiest in your web configuration. Not that I want to dissuade you from GAE, just don't think that the learning curve for the task is well balanced. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene BlackWater Ops -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Cynthia Sent: Thursday, December 01, 2011 9:03 AM To: Google App Engine Subject: [google-appengine] Email Parser I'm brand new to Google App Engine and I'm not really sure I can get something that will do what I want. Or maybe I need to go elsewhere. I am a programmer by trade but I am still a beginner in many areas. I am looking for a way to receive emails and parse out certain information, then save the info to a DB or a Spreadsheet. A Google Docs Spreadsheet would be fine, if that's possible. Would Google App Engine be able to do this? Which language would be best? Maybe something like this already exists that I could use? It's for a club membership list. People sign up with an HTML form, and the form emails the information to an email address. I want to pluck the data out of the email and have it save automatically. Thanks, Cynthia -- 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 athttp:// groups.google.com/group/google-appengine?hl=en. -- 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. -- 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
As far as I know, there are no plans to shut down M/S within the next 12 months. This is NOT an official announcement, so if this does change later (I don't think it will), just know that it's a gut feeling. When there is a plan to official deprecate master/slave, we will announce it. Many new features will be HRD only, however. Python 2.7 is one of them. Full text search *may* be one of them. There are no plans to support Python 2.7 for master/slave applications, and I don't see this changing. I strongly recommend migrating to HRD or at least starting to investigate the possibility. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:03 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why python2.7 can't support M/S either. I can achieve nearly the same level of concurrency with Python2.5 (albeit at a higher cost) that I can with Python2.7, with regards to datastore operations. Can someone at Google provide some direction on long-term support (at least a year or so) for M/S? On Fri, Dec 2, 2011 at 10:07 AM, Joshua Smith joshuaesm...@charter.netwrote: I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.netwrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also leads to unnecessary increases in costs, then it calls for further optimization. So, my loaded question is - how can I handle this with python2.5? Is python 2.7 the only answer? I imagine python2.7 will help because while a front-end is waiting for data store ops to complete, it can process other requests. But are there other ways of setting specific timeouts to datastore operations? So, if these operations are taking too long, I'd rather just return an error to the user, instead of letting my front-end run indefinitely. -- 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. -- 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. -- 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. -- 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
Re: [google-appengine] How to gracefully handle datastore timeouts
To answer the original question: - As a general best practice, you almost always want to set a timeout for any call that might be frequent: http://code.google.com/appengine/docs/python/datastore/queries.html#Setting_the_Read_Policy_and_Datastore_Call_Deadline This is true for App Engine as well as any application outside of App Engine. You degrade gracefully by telling the user to retry or showing only a subset of data. It sucks, but at this point you have to decide between making the user wait a long time or showing partial results and doing an exponential backoff. - Use exponential backoffs if you tell your client to retry. You might show something to the user that says loading, please wait!, but you're going to be in hot water if you just say retry after 1 second, retry after 1 second, retry after 1 second because these will eventually pile up. You want to do something like retry after 2 seconds + some fuzz factor, retry after 4 seconds plus some fuzz factor, and so forth. - I've been part of a project where there were many administrative knobs that we could flip to gracefully degrade and turn off expensive features. This is particularly useful when you push a new version because you can narrow in on the component that seems to be causing your stack to break. It's also nice because you can turn something off, gather with your team and figure out what the plan of attack is without a full rollback. The tradeoff is that you have to build it, and it's non-trivial to have this all over your code, so you need to figure out which parts tend to be more complex than others. In an ideal world, you always know what component does what in your app, but in reality, you usually don't know that there is a weird code path that might invoke the most expensive method call over and over. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:31 AM, Ikai Lan (Google) ika...@google.comwrote: As far as I know, there are no plans to shut down M/S within the next 12 months. This is NOT an official announcement, so if this does change later (I don't think it will), just know that it's a gut feeling. When there is a plan to official deprecate master/slave, we will announce it. Many new features will be HRD only, however. Python 2.7 is one of them. Full text search *may* be one of them. There are no plans to support Python 2.7 for master/slave applications, and I don't see this changing. I strongly recommend migrating to HRD or at least starting to investigate the possibility. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:03 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why python2.7 can't support M/S either. I can achieve nearly the same level of concurrency with Python2.5 (albeit at a higher cost) that I can with Python2.7, with regards to datastore operations. Can someone at Google provide some direction on long-term support (at least a year or so) for M/S? On Fri, Dec 2, 2011 at 10:07 AM, Joshua Smith joshuaesm...@charter.netwrote: I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.netwrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition lasted only 3 minutes or so, and so, the cost impact was minimal. However, I can imagine that if this lasted an hour or more, I would incur a lot of costs while the downtime persists. I'm okay with such downtimes, as long as it only leads to my customers not being able to access my site. But if it also
Re: [google-appengine] How to gracefully handle datastore timeouts
I just thought of something kind of cool: a real time knob that allows you to change the deadlines! -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:37 AM, Ikai Lan (Google) ika...@google.comwrote: To answer the original question: - As a general best practice, you almost always want to set a timeout for any call that might be frequent: http://code.google.com/appengine/docs/python/datastore/queries.html#Setting_the_Read_Policy_and_Datastore_Call_Deadline This is true for App Engine as well as any application outside of App Engine. You degrade gracefully by telling the user to retry or showing only a subset of data. It sucks, but at this point you have to decide between making the user wait a long time or showing partial results and doing an exponential backoff. - Use exponential backoffs if you tell your client to retry. You might show something to the user that says loading, please wait!, but you're going to be in hot water if you just say retry after 1 second, retry after 1 second, retry after 1 second because these will eventually pile up. You want to do something like retry after 2 seconds + some fuzz factor, retry after 4 seconds plus some fuzz factor, and so forth. - I've been part of a project where there were many administrative knobs that we could flip to gracefully degrade and turn off expensive features. This is particularly useful when you push a new version because you can narrow in on the component that seems to be causing your stack to break. It's also nice because you can turn something off, gather with your team and figure out what the plan of attack is without a full rollback. The tradeoff is that you have to build it, and it's non-trivial to have this all over your code, so you need to figure out which parts tend to be more complex than others. In an ideal world, you always know what component does what in your app, but in reality, you usually don't know that there is a weird code path that might invoke the most expensive method call over and over. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:31 AM, Ikai Lan (Google) ika...@google.comwrote: As far as I know, there are no plans to shut down M/S within the next 12 months. This is NOT an official announcement, so if this does change later (I don't think it will), just know that it's a gut feeling. When there is a plan to official deprecate master/slave, we will announce it. Many new features will be HRD only, however. Python 2.7 is one of them. Full text search *may* be one of them. There are no plans to support Python 2.7 for master/slave applications, and I don't see this changing. I strongly recommend migrating to HRD or at least starting to investigate the possibility. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:03 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why python2.7 can't support M/S either. I can achieve nearly the same level of concurrency with Python2.5 (albeit at a higher cost) that I can with Python2.7, with regards to datastore operations. Can someone at Google provide some direction on long-term support (at least a year or so) for M/S? On Fri, Dec 2, 2011 at 10:07 AM, Joshua Smith joshuaesm...@charter.netwrote: I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL, without HR? On Fri, Dec 2, 2011 at 9:50 AM, Joshua Smith joshuaesm...@charter.netwrote: You can't use 2.7 unless you migrate to HR. Once you migrate to HR, the datastore read timeouts go away. And then you don't need to migrate to 2.7. -Joshua On Dec 2, 2011, at 10:37 AM, Rishi Arora wrote: Earlier this morning I had a situation where datastore reads were timing out. That's okay, and expected, given that I use a M/S datastore. However, the timeouts were of the order of 50 seconds, causing nearly 30 front-end instances to be spawned. My usual number of active front-end instances at that time of the day is about 5, peaking at 15 occasionally. This condition
Re: [google-appengine] Re: Email Parser
I solved the problem of email address choices by creating a Gmail account (or a Google Apps account) that uses Gmail filters to forward emails to ap...@appspotmail.com. It has worked great, with one exception. If Gmail marks an incoming email as spam, it won't get forwarded. This requires manual intervention. On Fri, Dec 2, 2011 at 1:28 PM, Ikai Lan (Google) ika...@google.com wrote: Cynthia, Here are some procmail docs: http://sunsite.utk.edu/UNIX-help/email/procmail.html Having used this before, I will tell you that it is not the easiest thing in the world to debug and write for. Procmail lets you pipe raw email data into a different process, but you still need to use a program that can successfully parse the email, attachments, headers and lots of other weird email spec goodness. You definitely *don't* need Google App Engine, but if I am reading your requirements right, you can get away with using the incoming email API: http://code.google.com/appengine/docs/python/mail/receivingmail.html And making a call to the spreadsheets API: http://code.google.com/apis/spreadsheets/ I'd start by trying to get incoming email working. The nice thing about using GAE's incoming mail API is that it makes processing email SUPER easy. The downside is that you don't get a ton of choices about what addresses you can use (your-app...@appspotmail.com and others). -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:10 AM, Cynthia cynt...@tiptail.com wrote: Thanks for the replies. Maybe I can do this another way. I'm reading up on Procmail, maybe that's what I need. Cynthia On Dec 1, 2:15 pm, Brandon Wirtz drak...@digerat.com wrote: Unless there is a reason for the form to send an email, you would be better to put the forms target on appengine and convert the post data to a database. Java or python can do this relatively easily, if you don't speak either now however I don't know as this is a super easy first task. The DataStorage is easy, but making a spreadsheet out of the data (if you want it to be editable) is not going to be simple. Personally if I were doing the project you describe I would Check out PHP Form Maker (Pro?) or one of the other form maker software suites depending on what you or your Sys admin/web host determines would be easiest in your web configuration. Not that I want to dissuade you from GAE, just don't think that the learning curve for the task is well balanced. -Brandon Brandon Wirtz BlackWaterOps: President / Lead Mercenary Work: 510-992-6548 Toll Free: 866-400-4536 IM: drak...@gmail.com (Google Talk) Skype: drakegreene BlackWater Ops -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Cynthia Sent: Thursday, December 01, 2011 9:03 AM To: Google App Engine Subject: [google-appengine] Email Parser I'm brand new to Google App Engine and I'm not really sure I can get something that will do what I want. Or maybe I need to go elsewhere. I am a programmer by trade but I am still a beginner in many areas. I am looking for a way to receive emails and parse out certain information, then save the info to a DB or a Spreadsheet. A Google Docs Spreadsheet would be fine, if that's possible. Would Google App Engine be able to do this? Which language would be best? Maybe something like this already exists that I could use? It's for a club membership list. People sign up with an HTML form, and the form emails the information to an email address. I want to pluck the data out of the email and have it save automatically. Thanks, Cynthia -- 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 athttp:// groups.google.com/group/google-appengine?hl=en. -- 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. -- 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. -- You received this message because you are subscribed to the Google
Re: [google-appengine] How to gracefully handle datastore timeouts
Ikai, thank you for a comprehensive reply. I had no idea you could set deadlines for datastore reads, even for Master/Slave db reads. This would be my temporary solution until I eventually migrate to HRD. I have already started looking into it, with the toughest part being appropriately managing user experience during the downtime and during the changeover to the new app-id. My users use an Android app and Google Accounts API in conjunction with Android AccountManager, to interface with my GAE system, and they could be running multiple versions of my app at any given time. Thanks again - Rishi On Fri, Dec 2, 2011 at 1:38 PM, Ikai Lan (Google) ika...@google.com wrote: I just thought of something kind of cool: a real time knob that allows you to change the deadlines! -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:37 AM, Ikai Lan (Google) ika...@google.comwrote: To answer the original question: - As a general best practice, you almost always want to set a timeout for any call that might be frequent: http://code.google.com/appengine/docs/python/datastore/queries.html#Setting_the_Read_Policy_and_Datastore_Call_Deadline This is true for App Engine as well as any application outside of App Engine. You degrade gracefully by telling the user to retry or showing only a subset of data. It sucks, but at this point you have to decide between making the user wait a long time or showing partial results and doing an exponential backoff. - Use exponential backoffs if you tell your client to retry. You might show something to the user that says loading, please wait!, but you're going to be in hot water if you just say retry after 1 second, retry after 1 second, retry after 1 second because these will eventually pile up. You want to do something like retry after 2 seconds + some fuzz factor, retry after 4 seconds plus some fuzz factor, and so forth. - I've been part of a project where there were many administrative knobs that we could flip to gracefully degrade and turn off expensive features. This is particularly useful when you push a new version because you can narrow in on the component that seems to be causing your stack to break. It's also nice because you can turn something off, gather with your team and figure out what the plan of attack is without a full rollback. The tradeoff is that you have to build it, and it's non-trivial to have this all over your code, so you need to figure out which parts tend to be more complex than others. In an ideal world, you always know what component does what in your app, but in reality, you usually don't know that there is a weird code path that might invoke the most expensive method call over and over. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:31 AM, Ikai Lan (Google) ika...@google.comwrote: As far as I know, there are no plans to shut down M/S within the next 12 months. This is NOT an official announcement, so if this does change later (I don't think it will), just know that it's a gut feeling. When there is a plan to official deprecate master/slave, we will announce it. Many new features will be HRD only, however. Python 2.7 is one of them. Full text search *may* be one of them. There are no plans to support Python 2.7 for master/slave applications, and I don't see this changing. I strongly recommend migrating to HRD or at least starting to investigate the possibility. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:03 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why python2.7 can't support M/S either. I can achieve nearly the same level of concurrency with Python2.5 (albeit at a higher cost) that I can with Python2.7, with regards to datastore operations. Can someone at Google provide some direction on long-term support (at least a year or so) for M/S? On Fri, Dec 2, 2011 at 10:07 AM, Joshua Smith joshuaesm...@charter.net wrote: I believe so. Google has made it pretty clear that M/S is deprecated and life on M/S will continue to get worse and worse. On Dec 2, 2011, at 10:54 AM, Rishi Arora wrote: :) So I'm SOL,
Re: [google-appengine] Offering a Google App Engine service: using the logo?
Stephanos, You'll definitely want to talk to a lawyer. What you are doing is different from what Brandon is doing. It's one thing to say you are powered by App Engine, and I would imagine it's something totally different to imply that you have any deeper relationship with Google (via partnership). I'm not a lawyer, however, so I can't interpret this for you. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 1:23 AM, Brandon Wirtz drak...@digerat.com wrote: Not a lawyer, not a Google Employee, and I don’t know what your request said… ** ** I had no trouble getting permission for ** ** “Powered by the Google App Engine™ platform” ** ** With the “Jet” logo. Approved. Though I did so very early. ** ** (They make you send actual paper in the mail. I didn’t have to send actual paper for an NDA. They are very serious about logos) ** ** ** ** *From:* google-appengine@googlegroups.com [mailto: google-appengine@googlegroups.com] *On Behalf Of *stephanos *Sent:* Friday, December 02, 2011 1:14 AM *To:* google-appengine@googlegroups.com *Subject:* [google-appengine] Offering a Google App Engine service: using the logo? ** ** Hi, ** ** I'm developing a error tracking service called http://crashnote.com and one of the platforms I want to target is the App Engine. Obviously I want to make this very clear on my landing page, so I thought using the logo is a great way of doing this. ** ** Today I received a response to my request which said we cannot approve your request. I can understand them, I mean I wouldn't want anyone to use my logo and misguide users. ** ** But I want to be a legit SaaS offering for this App Engine platform, there must be some way to become an official partner. ** ** I'd be happy to hear advice/suggestions. ** ** ** ** Regards, Stephan -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/xlQqO89xKrAJ. 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. -- 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. -- 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.
Re: [google-appengine] to redeem back deleted Application Identifier
Pete, When you use the migration tool, it'll allow you to create an alias from your old application ID to your new one. Your new app should still serve at castbird.appspot.com. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Tue, Nov 29, 2011 at 12:56 AM, Pete chanyee...@gmail.com wrote: I am going to migrate to high replication datastore and I do not prefer the version castbird-hrd as the Application Identifier. So I use a temporary application identifier and remove the castbird because there is no option for me to change to high replication. My question is is there a chance for me to redeem back the deleted Application Identifier? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/ImvVI25ZGQQJ. 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. -- 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] db.get() on a list of keys being split into multiple get_async() calls as opposed to a single get_async() call
Did the production server change the way it handles a db.get() on a list of keys? I believe it used to do a single get_async on the list of keys but now it appears that it is doing a get_async for each key (according to appstats). The development server is still doing a single get_async for the entire list. -- 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.
Re: [google-appengine] How to gracefully handle datastore timeouts
You can also set the consistency guarantees to EVENTUALLY_CONSISTENT. Even on master/slave datastore, this fails over to a read-slave. The tradeoff is you might have consistency issues. Here's a pretty good read about consistency vs. availability tradeoffs: http://codahale.com/you-cant-sacrifice-partition-tolerance/ It's good to know this stuff so you have it in your back pocket. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:49 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Ikai, thank you for a comprehensive reply. I had no idea you could set deadlines for datastore reads, even for Master/Slave db reads. This would be my temporary solution until I eventually migrate to HRD. I have already started looking into it, with the toughest part being appropriately managing user experience during the downtime and during the changeover to the new app-id. My users use an Android app and Google Accounts API in conjunction with Android AccountManager, to interface with my GAE system, and they could be running multiple versions of my app at any given time. Thanks again - Rishi On Fri, Dec 2, 2011 at 1:38 PM, Ikai Lan (Google) ika...@google.comwrote: I just thought of something kind of cool: a real time knob that allows you to change the deadlines! -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:37 AM, Ikai Lan (Google) ika...@google.comwrote: To answer the original question: - As a general best practice, you almost always want to set a timeout for any call that might be frequent: http://code.google.com/appengine/docs/python/datastore/queries.html#Setting_the_Read_Policy_and_Datastore_Call_Deadline This is true for App Engine as well as any application outside of App Engine. You degrade gracefully by telling the user to retry or showing only a subset of data. It sucks, but at this point you have to decide between making the user wait a long time or showing partial results and doing an exponential backoff. - Use exponential backoffs if you tell your client to retry. You might show something to the user that says loading, please wait!, but you're going to be in hot water if you just say retry after 1 second, retry after 1 second, retry after 1 second because these will eventually pile up. You want to do something like retry after 2 seconds + some fuzz factor, retry after 4 seconds plus some fuzz factor, and so forth. - I've been part of a project where there were many administrative knobs that we could flip to gracefully degrade and turn off expensive features. This is particularly useful when you push a new version because you can narrow in on the component that seems to be causing your stack to break. It's also nice because you can turn something off, gather with your team and figure out what the plan of attack is without a full rollback. The tradeoff is that you have to build it, and it's non-trivial to have this all over your code, so you need to figure out which parts tend to be more complex than others. In an ideal world, you always know what component does what in your app, but in reality, you usually don't know that there is a weird code path that might invoke the most expensive method call over and over. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 11:31 AM, Ikai Lan (Google) ika...@google.comwrote: As far as I know, there are no plans to shut down M/S within the next 12 months. This is NOT an official announcement, so if this does change later (I don't think it will), just know that it's a gut feeling. When there is a plan to official deprecate master/slave, we will announce it. Many new features will be HRD only, however. Python 2.7 is one of them. Full text search *may* be one of them. There are no plans to support Python 2.7 for master/slave applications, and I don't see this changing. I strongly recommend migrating to HRD or at least starting to investigate the possibility. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Fri, Dec 2, 2011 at 9:03 AM, Rishi Arora rishi.ar...@ship-rack.comwrote: Based on this: http://code.google.com/appengine/docs/python/datastore/hr/ I don't see any strong language indicating imminent deprecation. Although the fact that python2.7 does not support M/S might hint at that. If Google does indeed want to deprecate M/S, why wouldn't they just say it, and give some fixed timeline - 1 month, 6 months, 1 year, whatever. But why hint it, why not just say it? Since I don't see a strong reason for Google to drop subtle hints, I assumed there's no plan to deprecate M/S, and I also assumed that eventually when python2.5 is phased out, python2.7 will support M/S. I don't see any technical reason why
[google-appengine] Re: How to Filter the logs based on instance or loading_request using Labels
Wow, so nobody knows if this is possible? On Nov 23, 4:37 pm, Scott Murphy sc...@pixoto.com wrote: I would like to Filter all 500 requests for a specific instance. Is this possible using labels? I don't know which label to use for instance and/or loading_request? The information I want is in the first line of the log 0.1.0.3 - - [23/Nov/2011:16:05:58 -0800] GET /_ah/warmup HTTP/1.1 500 0 - - 10.354882841056537036.myapp.appspot.com ms=68570 cpu_ms=31239 api_cpu_ms=65 cpm_usd=0.867775 loading_request=1 exit_code=104 instance=00c61b117cde1998d024f2dbbd67e9f4d3dc1f So I want to do something like status:500, instance:00c61b117cde1998d024f2dbbd67e9f4d3dc1f but the valid labels are: Valid labels: - day, - month, - year, - hour, - minute, - second, - tzone, - remotehost, - identd_user, - user, - status, bytes, - referrer, - useragent, - method, - path, - querystring, - protocol, - request_id_hash -- 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.
RE: [google-appengine] How to Filter the logs based on instance or loading_request using Labels
I think the bigger thing was no one thinks this is worth doing. What are you going to learn? Using Local Instance memory you need to assign a Who am I entity. I would do this using 24 Adjectives for the Hour of the day, 60 Nouns for the minutes and the seconds of the minute would be a number, and then pick a place as a random dice roll Use defined warm up function to start your instance, and the only thing that warm up will do is pick a name for your Instance. Do Warmup would then return Hi, I am RedAngel22InTheSky Or Hi, I am PurplePuppy24OnEarth All logs there after you would prefix with the instance name. You can then search for RedAngel22InTheSky in the logs. You may wish to dump logs to data store every so often on a cron as well. If you need a naming convention I can likely dig one up, Hours are A-X (0-23) Minutes are just random things. and Places were always just 10 random choices. Very low probability of collisions unless your app scales by more than 3 instances a second. The advantage of naming this way is that instances spawned together will have similar prefixes unless you have issues on the change of the hour. From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Scott Murphy Sent: Wednesday, November 23, 2011 4:37 PM To: google-appengine@googlegroups.com Subject: [google-appengine] How to Filter the logs based on instance or loading_request using Labels I would like to Filter all 500 requests for a specific instance. Is this possible using labels? I don't know which label to use for instance and/or loading_request? The information I want is in the first line of the log 0.1.0.3 - - [23/Nov/2011:16:05:58 -0800] GET /_ah/warmup HTTP/1.1 500 0 - - 10.354882841056537036.myapp.appspot.com ms=68570 cpu_ms=31239 api_cpu_ms=65 cpm_usd=0.867775 loading_request=1 exit_code=104 instance=00c61b117cde1998d024f2dbbd67e9f4d3dc1f So I want to do something like status:500, instance:00c61b117cde1998d024f2dbbd67e9f4d3dc1f but the valid labels are: Valid labels: . day, . month, . year, . hour, . minute, . second, . tzone, . remotehost, . identd_user, . user, . status, bytes, . referrer, . useragent, . method, . path, . querystring, . protocol, . request_id_hash -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/O2Ndn_cFnksJ. 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. -- 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.