[google-appengine] Profiling python on GAE flex
Has anyone tried profiling a service in python GAE flex? The cloud profiler is not available yet for python. pyflame needs ptracing to be enabled inside docker and cProfile does not seem to be profiling across process. -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/6df5926b-4604-4b03-968d-48bf52f858c7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] Re: Spam Email Being Delivered to Inbox
Thank you for directing me to the Gmail Help Center. Also, thanks for the info om IMAP and I am well aware of how the IMAP function works but that has nothing to do with the issue I have. My problem is that spam mail when I look on the gmail web site it shows up in the sam folder but when I look at the same email in Outlook it shows up in the inbox. I hope the Gmail Help Center can help me. On Tuesday, June 28, 2016 at 11:48:55 AM UTC-4, Nicholas (Google Cloud Support) wrote: > > While I appreciate you sharing your experience and questions, I'm afraid > this is not the appropriate forum to address your questions. I would > strongly suggest searching he GMail help center > <https://support.google.com/mail/?hl=en#topic=3394144> and familiarizing > yourself with the differences between POP3 and IMAP > <http://www.pop2imap.com/>. One important note about IMAP as quoted in > the previous link: >> >> When a person uses IMAP, and he or she reads, deletes or moves email into >> folders, the action occurs across all devices simultaneously. > > As such, whatever change happens to the email in GMail (including being > moved to spam) will be reflected on your local device using Outlook. If > the email is deleted in one place, it will be deleted in both. If existing > in one place, it will exist in both. > > I hope you find answers to your questions with the resources linked above. > > On Tuesday, June 28, 2016 at 9:31:31 AM UTC-4, Neil Notme wrote: >> >> I had my email configured as pop account and when spam email was >> delivered it was put into the gmail spam folder on the web and when I >> looked at my email in Outlook it would not be there (like the way I would >> like). I just switched to IMAP and now when an email is delivered to my >> gmail account is=t is put into the spam folder on tthweb but that email is >> now showing up in my inbox in Outlook. Please advise me how I can not have >> the spam email delivered to the Outlook inbox >> > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/da7fbbc3-b6f0-4415-aaf0-d3dff7952564%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] Spam Email Being Delivered to Inbox
I had my email configured as pop account and when spam email was delivered it was put into the gmail spam folder on the web and when I looked at my email in Outlook it would not be there (like the way I would like). I just switched to IMAP and now when an email is delivered to my gmail account is=t is put into the spam folder on tthweb but that email is now showing up in my inbox in Outlook. Please advise me how I can not have the spam email delivered to the Outlook inbox -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/a57ad69a-4f92-4bf4-b3db-a34662f32803%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] JSON API for DataStore
I've been painfully trying to run my C# app with docker on app engine. It's nice that google supports docker, but what's the point if I can't access any app engine services? Anyway I've been trying to access datastore via the JSON API (since I cannot use Google's .NET libraries with the new CoreCLR). I can't figure out how to authenticate requests. Is there a guide somewhere on adding and querying simple entities via the JSON API (without relying on any Google libraries)? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/5085c0e2-d678-48d4-8f84-f54530c99e19%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [google-appengine] Opensourced .NET Core and Google App Engine
That's cool. Is there a client library for the App Engine Search service? I can't find any, so I thought I'd write one, but I couldn't find any publicly accessible interfaces for it (REST etc). -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/53220e0e-70b3-477c-8c88-b803cf7ae8fd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [google-appengine] Opensourced .NET Core and Google App Engine
Hi Nick, Thanks, I'll experiment with the Endpoints API. I created a new feature request here (#12008): https://code.google.com/p/googleappengine/issues/detail?id=12008 Best, Neil On Friday, May 29, 2015 at 2:05:21 PM UTC-5, Nick (Cloud Platform Support) wrote: Hi Neil, The App Engine Search https://cloud.google.com/appengine/docs/java/search/ API service is accessible via the API of the libraries provided to the App Engine runtime in the given language. External access to the Search service for an app should be done through sending requests to handlers on your app (even an Endpoints API https://cloud.google.com/appengine/docs/java/endpoints/) which can access the Search API. Therefore, writing a client library for a custom runtime would involve writing a wrapper or middle-ware application in Java, Python, or Go which could access the Search API. I hope this helps you move forward with your development, and specifically in reference to custom runtimes, I'm sure development will proceed with making these services accessible via a REST API (don't quote me, though), rather than simply being embedded in the runtime for the main supported languages of traditional GAE. If you'd like, there is a public issue tracker for App Engine https://code.google.com/p/googleappengine/issues/list, and I encourage you to create a feature request asking for a REST API for Search API (and any other App Engine services which don't expose a REST API). Sincerely, Nick On Friday, May 29, 2015 at 9:18:09 AM UTC-4, Neil Rao wrote: That's cool. Is there a client library for the App Engine Search service? I can't find any, so I thought I'd write one, but I couldn't find any publicly accessible interfaces for it (REST etc). -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/552c16ac-8b8b-4b66-b2d2-9866f53a9a91%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] Opensourced .NET Core and Google App Engine
With .NET Core being opensourced http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx along with cross-platform runtimes for Linux, Windows, and Mac (and all the source code on GitHub https://github.com/dotnet), I think it'd be absolutely amazing to see .NET support for App Engine. It would be a smart move for Google for a few reasons: 1. There are a lot of people https://www.datanyze.com/market-share/frameworks/ using .NET. 2. .NET Core is released for under the MIT License (see here https://github.com/dotnet/corefx). 3. Some competitors support .NET out-of-the-box. Personally, we rely on the .NET stack, and thus we're forced to use Compute Engine over App Engine. I'd love to see support for the new .NET on Google App Engine. What do you all think? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/3e2a5c95-96c9-4ccd-99ad-caf0fd80c758%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] Error when running tests: TypeError: order() expects a Property or query Order; received DateTimeProperty('date')
I have a small app which uses webapp2 and ndb and just a couple of simple models. It works well and I can manually test it OK. I want to start driving future development using tests but can't seem to get my tests running. I'm using nosetests --with-gae and I followed the examples on the Local Unit Testing for Python and also this article http://digitalflapjack.com/blog/2011/jun/14/gaetesting/ with no luck. I keep getting the following error when running my tests: TypeError: order() expects a Property or query Order; received DateTimeProperty('date') from the line: next_event = Event.query(Event.date = datetime.datetime.now()).order(Event.date).fetch(1) removing the order clause allows the test to pass and running the full app with the clause shows no errors. My tests have the following imports: import unittest from webtest import TestApp from google.appengine.ext import ndb from google.appengine.ext import testbed from event_manager import application Can anyone suggest what is going on and what I have done wrong. Best Regards Neil -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. For more options, visit https://groups.google.com/groups/opt_out.
[google-appengine] Redirect to Non-UTF-8 URL
Hello everyone, I'm currently working on porting an application to using the Google App Engine, but I've run into a very odd bit of behavior. Sometimes I need to redirect to a site that expects query strings to be in EUC-JP instead of UTF-8, and self.redirect() doesn't set the location correctly when I try to do so. Here is the incorrect behavior, which only occurs when run on the cloud: % wget -O /dev/null --server-response 'https://super-nubs.appspot.com/? cmd=mgoo+%E4%B8%AD%E5%B3%B6%E3%81%BF%E3%82%86%E3%81%8Dee' --2011-11-01 10:25:28-- https://super-nubs.appspot.com/?cmd=mgoo+%E4%B8%AD%E5%B3%B6%E3%81%BF%E3%82%86%E3%81%8Dee Resolving super-nubs.appspot.com... 74.125.127.141 Connecting to super-nubs.appspot.com|74.125.127.141|:443... connected. HTTP request sent, awaiting response... HTTP/1.0 302 Found Content-Type: text/html; charset=utf-8 Cache-Control: max-age=172800 Date: Tue, 01 Nov 2011 17:25:28 GMT Server: Google Frontend Content-Length: 0 Connection: Keep-Alive Location: unspecified ERROR: Redirection (302) without location. Here is the correct behavior, running on a local instance: % wget -O /dev/null --server-response 'http://127.0.0.1:8080/?cmd=mgoo+ %E4%B8%AD%E5%B3%B6%E3%81%BF%E3%82%86%E3%81%8Dee' --2011-11-01 10:26:30-- http://127.0.0.1:8080/?cmd=mgoo+%E4%B8%AD%E5%B3%B6%E3%81%BF%E3%82%86%E3%81%8Dee Connecting to 127.0.0.1:8080... connected. HTTP request sent, awaiting response... HTTP/1.0 302 Moved Temporarily Server: Development/1.0 Date: Tue, 01 Nov 2011 17:26:30 GMT Content-Type: text/html; charset=utf-8 Cache-Control: max-age=172800 Location: http://music.goo.ne.jp/search/result.php?n=\303\346\305\347\244ߤ椭ee Content-Length: 0 Location: http://music.goo.ne.jp/search/result.php?n=%C3%E6%C5%E7%A4%DF%A4%E6%A4%ADee [following] --2011-11-01 10:26:30-- http://music.goo.ne.jp/search/result.php?n=%C3%E6%C5%E7%A4%DF%A4%E6%A4%ADee Resolving music.goo.ne.jp... 210.150.25.68 Connecting to music.goo.ne.jp|210.150.25.68|:80... connected. HTTP request sent, awaiting response... HTTP/1.0 200 OK Date: Tue, 01 Nov 2011 17:26:31 GMT Server: Apache Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Content-Type: text/html Set-Cookie: BBTracking=173.36.196.10.1320168391262803; path=/; expires=Fri, 29-Oct-21 17:26:31 GMT Set-Cookie: NGUserID=dummy; expires=Wed, 01-Jan-2003 00:00:00 GMT; path=/; domain=music.goo.ne.jp Length: unspecified [text/html] Saving to: “/dev/null” [ = ] 27,978 --.-K/s in 0.08s 2011-11-01 10:26:31 (345 KB/s) - “/dev/null” saved [27978] Lastly, here is the bit of code identical on both the cloud and the local instance that handles the actual redirect. I have not tried the above cmd value before, so I know it's not in memcache: content = url_parse(row.content, cmd, argv, cmb) content = content.replace(' ', '%20') content = content.encode(row.encoding) self.response.headers['Cache-Control'] = 'max- age=172800' memcache.set(digest, content, 3600) self.redirect(content) row.encoding = 'EUC-JP' in this case. If row.encoding = 'UTF-8' (the default) the behavior on the local and cloud instances is the same. What can I do to get the redirect working when Location can't be UTF-8? Thanks, - Neil -- 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: Urgent - unable to deploy really important app
I am experiencing the same issue. I was able to do a deploy about an hour ago, but now I'm getting that HTML-ified 500 server error. -- 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/-/lUgmjjEm0REJ. 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: Urgent - unable to deploy really important app
Working for me now too. On Fri, Jun 10, 2011 at 10:56 AM, Robert Kluin robert.kl...@gmail.comwrote: Seems to be working again for me. It seemed to be impacting my HR apps but *not* my master-slave apps. On Fri, Jun 10, 2011 at 13:35, Neil McCarthy nmccar...@gmail.com wrote: I am experiencing the same issue. I was able to do a deploy about an hour ago, but now I'm getting that HTML-ified 500 server error. -- 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/-/lUgmjjEm0REJ. 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] We Need an Email Signature App!
I love everything about Google Apps but who doesn't wish that we all could make nice custom font and colored email signatures with logo attachments and such. It's the only thing that bothers me and everyone in my business. We have to POP everything in to Outlook and use that if we want to send nice custom signature. I've asked and researched but I am shocked that this feature isn't available yet. Please someone... make it for us. Sincerely, Neil Sargisian -- 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-appeng...@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: missing logs
thanks nick, responses in line (hope they come through right, i don't really know how to use groups) On Sep 30, 2:57 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Neil, Sorry for the delay responding. Responses inline. On Sat, Sep 26, 2009 at 1:40 PM, neil souza nr...@foulplaymedia.com wrote: the issue: it looks like we may not be getting all of our log entries when when pull the logs from app engine. first, a little context. there's a lot here, so bear with me. we need to record event lines for metrics. normally, we would write the lines to a local file on each app server and then pull those logs every few minutes from the metrics system. we found this to be the most stable and scalable architecture. however, in app engine land, we can't write to a file. so we wrote the event lines to the logs, set up a script to pull them in 10 minute intervals, and loaded them into the stats system. to be clear, the process goes like this: 1.) an event happens on the server that we'd like to record. we write a line to the log using logging.info(...) in python 2.) every 10 minutes, a job starts on a metrics server, which requests the next batch of logs by calling appcfg.py. the last log in the new batch is kept in a append file to use as the 'sentinel' for the next fetch. 3.) the new log file is parsed for event lines, which are written to another 'event' file. 4.) a few minutes later, another job grabs new event files and loads the events into the metrics system. everything seemed to work great. until we realized that we were missing events. a lot of them. between 20-50%. there are some events that need to be shared with other systems. for one if those event types, i was feeling lazy, so i just fired http hits at the other system as the event happen. at some point, we compared these numbers - and found them to be drastically different. i ran tests today comparing the number of events recorded 'through' the logs system and the same events recorded by http hit during runtime. the percent of 'missing' events ranged from 18-56%, and the percent missing appeared to be significantly higher when the frequency of events was higher (during peak). i've done a significant amount of work that points to the logs being missing by the point that appcfg.py records them. i've reasonably verified that all the event lines that appcfg.py pulls down make it into the metrics system. oh, and all the numbers are being run on unique user counts, so there's no way that the counts could be mistakenly large (accidentally reading an event twice does not produce a new unique user id). my questions / issues: 1.) should we be getting all of our logged lines from appcfg.py's request_logs command? is this a known behavior? recall that we are missing 20-50% of events - this is not a small discrepancy. App Engine has a fixed amount of space available for logs; it's essentially a circular buffer. When it runs out of space, it starts replacing older logs. well, i'm going to guess that's the culprit. 2.) we're pulling our logs every 10 minutes. seeing as the request_logs command lets you specify the time you want in days, i imagine this as more frequent than intended. could this be causing an issue? How much traffic are you getting? What's the size of 10 minutes' worth of logs? we're at maybe avg. 200 request and looks like we're recording 1.25 events per request, so perhaps 250 log lines / sec? that's in addition to all the other junk getting spilled out there - i didn't know that space was limited, there's prob some debug output, then the exceptions, etc... 3.) we switch major versions of the app every time we push, which can be several times each day. this doesn't make sense as an issue since the numbers are know to be wrong over periods where there have been no version changes, but i wanted to mention it. 4.) can you suggest a better solution for getting data to offline processing? right now we getting the correct numbers using the async http requests without ever calling get_result() or the like as a 'fire- and-forget' http hit (not even sure if we're supposed to use it like this, but seems to work). however, this approach has serious drawbacks: You could log to the datastore, and read and delete old entries using remote_api. this just doesn't seem like the right job for the datastore - we're only inserting at 250 events / sec right now, but need to be able to scale that. if we're inserting a few thousand events per second, and can only fetch or delete 1K at a time, that seems like a potential problem. we can batch up the events in each request, but still only limits the inserts per second to the app's requests per second, which can have the same issue. just doesn't sound fun. maybe http requests are the best way to do it for now, unless we can get the log space significantly
[google-appengine] missing logs
the issue: it looks like we may not be getting all of our log entries when when pull the logs from app engine. first, a little context. there's a lot here, so bear with me. we need to record event lines for metrics. normally, we would write the lines to a local file on each app server and then pull those logs every few minutes from the metrics system. we found this to be the most stable and scalable architecture. however, in app engine land, we can't write to a file. so we wrote the event lines to the logs, set up a script to pull them in 10 minute intervals, and loaded them into the stats system. to be clear, the process goes like this: 1.) an event happens on the server that we'd like to record. we write a line to the log using logging.info(...) in python 2.) every 10 minutes, a job starts on a metrics server, which requests the next batch of logs by calling appcfg.py. the last log in the new batch is kept in a append file to use as the 'sentinel' for the next fetch. 3.) the new log file is parsed for event lines, which are written to another 'event' file. 4.) a few minutes later, another job grabs new event files and loads the events into the metrics system. everything seemed to work great. until we realized that we were missing events. a lot of them. between 20-50%. there are some events that need to be shared with other systems. for one if those event types, i was feeling lazy, so i just fired http hits at the other system as the event happen. at some point, we compared these numbers - and found them to be drastically different. i ran tests today comparing the number of events recorded 'through' the logs system and the same events recorded by http hit during runtime. the percent of 'missing' events ranged from 18-56%, and the percent missing appeared to be significantly higher when the frequency of events was higher (during peak). i've done a significant amount of work that points to the logs being missing by the point that appcfg.py records them. i've reasonably verified that all the event lines that appcfg.py pulls down make it into the metrics system. oh, and all the numbers are being run on unique user counts, so there's no way that the counts could be mistakenly large (accidentally reading an event twice does not produce a new unique user id). my questions / issues: 1.) should we be getting all of our logged lines from appcfg.py's request_logs command? is this a known behavior? recall that we are missing 20-50% of events - this is not a small discrepancy. 2.) we're pulling our logs every 10 minutes. seeing as the request_logs command lets you specify the time you want in days, i imagine this as more frequent than intended. could this be causing an issue? 3.) we switch major versions of the app every time we push, which can be several times each day. this doesn't make sense as an issue since the numbers are know to be wrong over periods where there have been no version changes, but i wanted to mention it. 4.) can you suggest a better solution for getting data to offline processing? right now we getting the correct numbers using the async http requests without ever calling get_result() or the like as a 'fire- and-forget' http hit (not even sure if we're supposed to use it like this, but seems to work). however, this approach has serious drawbacks: a.) http requests are very slow and expensive for something that does not need to happen immediately. b.) if the metrics system endpoint becomes unavailable, then, at best, the data gets lost. at worst the issue domino's back up into the http servers and takes the app down as well. (each http request has to timeout, which takes significantly longer, spiking the concurrent connections. this has screwed me multiple times. maybe you google guys mark an endpoint as down system-wide so that subsequent requests never attempt the connection, but we were never that smart). thanks in advance, neil. --~--~-~--~~~---~--~~ 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: Sending mail
oh man, sending emails is a pain. the process of doing it successfully is awkward, expensive and surprisingly opaque. here's what i recall, don't quote me on it... 1.) in order to have a chance-in-hell to getting email through, you need to send email from a 'whitelisted' email provider. the term you're looking for is 'email marketing campaign' or the like. yes, even when someone has given you their email and opted in to receiving emails, you need to go through a whitelist service to have a chance-in- hell of getting the email through. 2.) i think there are 2-3 big whiltelist services that are the master- services for all the other ones, but they won't even deal with you unless your volume is decent (i'd guess 100K email / day off the top of my head). there are then hundreds of smaller services that go through them, offering smaller marked-up packages. 3.) i've used these people before: http://www.campaigner.com/ if i recall, they're about mid-tier, integration was better than some but still a pain. 4.) don't expect to see big click-though rates. i would peg 1-2% CTR unless you're really delivering something really compelling to the user. again, all off the top of my head, but hope it helps a bit. good luck... On Sep 25, 1:52 pm, Adam Strickland adam.strickl...@gmail.com wrote: I've got a problem and am looking for suggestions. Our GAE app sends email. In fact, one could say that the success of the application depends on clickthrough from those emails to the application. The problem is, with the limitations on sending SMTP messages using GAE (from docs: For security purposes, the sender address of a message must be the email address of an administrator for the application, or the Google Account email address of the current user who is signed in. The message can also include a reply to address, which must also meet these restrictions.), our generic from email address (invitati...@flexvite.com) is too often being disregarded or judged to be spam by the recipients. Any thoughts or suggestions? --~--~-~--~~~---~--~~ 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: the social network user id problem
thanks, i'll go with that solution. On Jul 13, 4:13 am, Nick Johnson (Google) nick.john...@google.com wrote: On Sat, Jul 11, 2009 at 12:11 AM, neil souzanr...@foulplaymedia.com wrote: hey nick - met you at I/O in may, foulplay media, social gaming and all that... still think you should get on facebook ;) yes, i believe that #3 would be the best solution, let me be more specific: i'm under the impression that the app engine allows you to specify a string identifier for a model (key_name) OR allow the datastore to issue it's own numeric identifier (id). That's correct. what i want to do is set the numeric identifier instead of letting the datastore create one. i have a unique 64bit integer that identifies the user from the social network, i would like to use that as the numeric key if possible (should be faster, avoid casting). can i do this? otherwise, as tmdk mentioned, i could use key_name and stick a letter in front of it, like 'L12345' for platform user id 12345. You can't set the ID directly. Using a prefixed string is your best bet here. -Nick Johnson On Jul 10, 7:23 am, Nick Johnson (Google) nick.john...@google.com wrote: On Fri, Jul 10, 2009 at 2:04 PM, neil souzanr...@foulplaymedia.com wrote: the problem: how to best structure the id system for a social network app on app engine. the run down: users access the app through a social network. they identify themselves to the app with a 'platform type id' (pl_type_id, enum) and 'platform user id' (pl_user_id, 64bit int) pair. examples: user 12345 at facebook, user 45678 at myspace, etc. we need to be able to find their data using that pair. we also need to be able to find their friend's data using lists of the same sort of pairs. let's say for the sake of simplicity that each user has a User object in the datastore. we need to be able to efficiently fetch a specific User object using a (pl_type_id, pl_user_id) pair, and fetch a list of User objects (up to say 1000) using a list of (pl_type_id, pl_user_id) pairs. ideas thus far: 1.) User has integer properties for pl_user_id and pl_type_id. resolving one user object is no issue, resolving many requires an 'IN' query, which is not viable since it makes 1 query for each pair in the list - NO GOOD 2.) User objects use key names of the form 'pl_type_id:pl_user_id' or something similar. then we can form the key from the provided info and fetch based on keys. we never used to do this because sql sucked at finding strings - not sure how app engine does..? - BETTER..? This is your best option. Datastore gets are a _lot_ faster than datastore queries, and you can fetch multiple IDs in the same operation. -Nick Johnson 3.) is there a way to specify the id on a newly created Model? we know the pl_user_id is unique. we can then have a Model for each network and build keys from the pl_user_id. this is how we used to roll in the mysql world. - MAYBE..? additional ideas and feedback appreciated, thanks in advance. -- Nick Johnson, App Engine Developer Programs Engineer Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- Nick Johnson, App Engine Developer Programs Engineer Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 --~--~-~--~~~---~--~~ 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] the social network user id problem
the problem: how to best structure the id system for a social network app on app engine. the run down: users access the app through a social network. they identify themselves to the app with a 'platform type id' (pl_type_id, enum) and 'platform user id' (pl_user_id, 64bit int) pair. examples: user 12345 at facebook, user 45678 at myspace, etc. we need to be able to find their data using that pair. we also need to be able to find their friend's data using lists of the same sort of pairs. let's say for the sake of simplicity that each user has a User object in the datastore. we need to be able to efficiently fetch a specific User object using a (pl_type_id, pl_user_id) pair, and fetch a list of User objects (up to say 1000) using a list of (pl_type_id, pl_user_id) pairs. ideas thus far: 1.) User has integer properties for pl_user_id and pl_type_id. resolving one user object is no issue, resolving many requires an 'IN' query, which is not viable since it makes 1 query for each pair in the list - NO GOOD 2.) User objects use key names of the form 'pl_type_id:pl_user_id' or something similar. then we can form the key from the provided info and fetch based on keys. we never used to do this because sql sucked at finding strings - not sure how app engine does..? - BETTER..? 3.) is there a way to specify the id on a newly created Model? we know the pl_user_id is unique. we can then have a Model for each network and build keys from the pl_user_id. this is how we used to roll in the mysql world. - MAYBE..? additional ideas and feedback appreciated, thanks in advance. --~--~-~--~~~---~--~~ 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: the social network user id problem
hey nick - met you at I/O in may, foulplay media, social gaming and all that... still think you should get on facebook ;) yes, i believe that #3 would be the best solution, let me be more specific: i'm under the impression that the app engine allows you to specify a string identifier for a model (key_name) OR allow the datastore to issue it's own numeric identifier (id). what i want to do is set the numeric identifier instead of letting the datastore create one. i have a unique 64bit integer that identifies the user from the social network, i would like to use that as the numeric key if possible (should be faster, avoid casting). can i do this? otherwise, as tmdk mentioned, i could use key_name and stick a letter in front of it, like 'L12345' for platform user id 12345. On Jul 10, 7:23 am, Nick Johnson (Google) nick.john...@google.com wrote: On Fri, Jul 10, 2009 at 2:04 PM, neil souzanr...@foulplaymedia.com wrote: the problem: how to best structure the id system for a social network app on app engine. the run down: users access the app through a social network. they identify themselves to the app with a 'platform type id' (pl_type_id, enum) and 'platform user id' (pl_user_id, 64bit int) pair. examples: user 12345 at facebook, user 45678 at myspace, etc. we need to be able to find their data using that pair. we also need to be able to find their friend's data using lists of the same sort of pairs. let's say for the sake of simplicity that each user has a User object in the datastore. we need to be able to efficiently fetch a specific User object using a (pl_type_id, pl_user_id) pair, and fetch a list of User objects (up to say 1000) using a list of (pl_type_id, pl_user_id) pairs. ideas thus far: 1.) User has integer properties for pl_user_id and pl_type_id. resolving one user object is no issue, resolving many requires an 'IN' query, which is not viable since it makes 1 query for each pair in the list - NO GOOD 2.) User objects use key names of the form 'pl_type_id:pl_user_id' or something similar. then we can form the key from the provided info and fetch based on keys. we never used to do this because sql sucked at finding strings - not sure how app engine does..? - BETTER..? This is your best option. Datastore gets are a _lot_ faster than datastore queries, and you can fetch multiple IDs in the same operation. -Nick Johnson 3.) is there a way to specify the id on a newly created Model? we know the pl_user_id is unique. we can then have a Model for each network and build keys from the pl_user_id. this is how we used to roll in the mysql world. - MAYBE..? additional ideas and feedback appreciated, thanks in advance. -- Nick Johnson, App Engine Developer Programs Engineer Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 --~--~-~--~~~---~--~~ 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] Deploying to Google is very slow
These days i found that my application deploying is very slow, it needs 3 - 5 minutes, and 1 minute was ok before. why? --~--~-~--~~~---~--~~ 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 manage app admin?
i need to set up production apps. as is, it seems that apps are associated to one and only one *user* account. this is a problem because multiple users (developers) need to be able to admin an app (to deploy, fetch logs, view datastore, etc.). we also need our tracking system to be able to fetch the logs. it uses a subprocess running appcfg.py to get them - which means it must include the email in the subprocess args and feed the password in over stdin. this means that the credential to access each app must be stored in our database. this is a problem - right now, the apps appear to be owned by my google apps account - which is the master account for the domain. for security reasons, i can't give that account's credentials out or store them in our database. here are the possible solutions i see: 1.) allow multiple users to admin an app. this is the desired solution - we can control developers admin access to apps on individual basis, and create a 'tracker' account that the tracking system uses to fetch logs. if this is possible, please let me know how to do it. 2.) create one 'deploy' account that owns all apps - all developers and the tracking system use this account, we change the password when the set of dev's with admin access changes. in this case, how can i 'move' existing apps to a new 'deploy' account? any help / advice appreciated, thanks in advance. --~--~-~--~~~---~--~~ 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: Python Vs Java in GAE
David, perfect summary, great post. Exactly my thoughts on this. There is also an Eclipse version for Python, not used yet. BTW: Is runtime performance comparable? Thanks On 11 Jun., 15:18, Lawrence Fitzpatrick fitzp...@gmail.com wrote: I believe that the GAE team has said they are committed to both, so you can probably take them at their word and expect to just timing differences as to when feature x appears on each platform. Therefore what remains is your learning curve and the type of language you prefer. Do you know Python or Java better? Why not start there? Do you prefer the more static type checking of Java or the more runtime type checking of Python? I've found that most people naturally prefer, and hence are more productive, in one than the other. And lastly, which community do you prefer :) -fitz --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---