[google-appengine] Re: Mail API stops sending email from one admin address, still sends from others

2011-10-24 Thread Nevin Freeman
Good catch! Thanks for helping me figure this out! Now to figure out
which part of the TOS I am in violation of, if any.

-- 
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: Mail API stops sending email from one admin address, still sends from others

2011-10-23 Thread Nevin Freeman
Hmm, anyone else? This will become a *serious* issue if it happens
again with another address. I'm guessing there must be a logical
explanation.

Nevin

On Oct 21, 8:25 am, Leandro Rezende leandro.reze...@gmail.com wrote:
 I have the same problem,  but in the same google account in different
 applications. i dont know what to do.

 when the problem begin to happend, i have to create a new google
 application, copy all the data from the old datastore to it, and deploy the
 application again. So at the new application, it works. Them i delete the
 bugged application.

 at least u are sending 10k email, i cant send more than 30 and it bugs.

 2011/10/21 Nevin Freeman nevin.free...@gmail.com







  My app sends an email to about 10k people every morning (we are a news
  website, and send out an alert that tells people what the new stories
  are). Until today it's worked really well (for over a year). It sends
  from an address that is registered as an admin (since that's required)
  which is not used by anyone other than the app for this purpose.

  Starting today, calls to the Mail API cause an email to be sent
  *unless* the sender is that address. I noticed this when the daily
  emails weren't actually sent out, and did some testing with the remote
  shell:

  riabizdev test_two = mail.EmailMessage(sender='ne...@riabiz.com',
  to='nevin.free...@gmail.com', subject='TEST', body='TEST')
  riabizdev test_two.send()  # Actually works, the email hits my inbox

  riabizdev test_two = mail.EmailMessage(sender='f...@riabiz.com',
  to='nevin.free...@gmail.com', subject='TEST', body='TEST')
  riabizdev test_two.send()  # Doesn't throw an error, but no email
  ever makes it

  The first obvious mishap would be that the emails are getting filtered
  into people's spam folder. I use an invisible image to track email
  opens though, and zero were opened today, as compared to many
  thousands on an average day, so I'm very confident that this isn't the
  problem. I at least know for sure that my test emails never made it to
  my own spam folder.

  I tried sending out the batch of 10k a few times during the day and
  got nothing. At the end of this testing, I swapped out another admin
  email and it worked fine. Any ideas?

  Thanks!
  Nevin

  --
  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] Mail API stops sending email from one admin address, still sends from others

2011-10-20 Thread Nevin Freeman
My app sends an email to about 10k people every morning (we are a news
website, and send out an alert that tells people what the new stories
are). Until today it's worked really well (for over a year). It sends
from an address that is registered as an admin (since that's required)
which is not used by anyone other than the app for this purpose.

Starting today, calls to the Mail API cause an email to be sent
*unless* the sender is that address. I noticed this when the daily
emails weren't actually sent out, and did some testing with the remote
shell:

riabizdev test_two = mail.EmailMessage(sender='ne...@riabiz.com',
to='nevin.free...@gmail.com', subject='TEST', body='TEST')
riabizdev test_two.send()  # Actually works, the email hits my inbox

riabizdev test_two = mail.EmailMessage(sender='f...@riabiz.com',
to='nevin.free...@gmail.com', subject='TEST', body='TEST')
riabizdev test_two.send()  # Doesn't throw an error, but no email
ever makes it

The first obvious mishap would be that the emails are getting filtered
into people's spam folder. I use an invisible image to track email
opens though, and zero were opened today, as compared to many
thousands on an average day, so I'm very confident that this isn't the
problem. I at least know for sure that my test emails never made it to
my own spam folder.

I tried sending out the batch of 10k a few times during the day and
got nothing. At the end of this testing, I swapped out another admin
email and it worked fine. Any ideas?

Thanks!
Nevin

-- 
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: 1.5.2 SDK Prerelease

2011-07-25 Thread Nevin Freeman
For developers facing this issue locally, it may be useful to know that I 
only was able to access the old local datastore by adding the 
flag --default_partition= (without any quotes).

-- 
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/-/RAuu4omiwwUJ.
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] You cover me, I cover you!

2010-06-30 Thread Nevin Freeman
Hi all,

I am the sole developer for http://riabiz.com, a news website running
on App Engine. This is a great gig -- I really like that, thanks to
App Engine, one amateur can make a site like this from scratch and
keep it running well.

The trouble is that if I am 'off the grid,' there is nobody to tend to
the site in the case of some emergency. Summer is in full swing, and I
don't really like having to stay within the reach of civilization
every single weekend...

So I'm hoping to find someone else who is in the exact same position
as I am; the sole developer for an App Engine site that is in
production and needs to be maintained. We could learn each other's
code well enough so that in an emergency we would be able to cover the
other and fix some small bug or something. I think that after an
initial learning process we would only need to spend an hour or two
each month keeping up with new developments.

Some more info: My app is in Python, uses webapp, and has been in
production for almost a year, so there haven;t actually been any
emergencies for a long time. I work with three other (non-technical)
people, and this backup is in large part (but not entirely) for their
peace of mind. Since our business is actually becoming valuable, it
makes sense to have someone else who understands the code so that in
the unlikely case that I get very sick or die or whatever I won't be
leaving them with a custom website that nobody understands.

Cheers,
Nevin

-- 
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: You cover me, I cover you!

2010-06-30 Thread Nevin Freeman
Rudolf: Thanks! I've actually considered migrating all the JS to
GWT :) Been a while since I used it though.

Ikai: Neat! Just signed up. If I don't get someone here perhaps I'll
solicit people on there.

On Jun 30, 11:53 am, Ikai L (Google) ika...@google.com wrote:
 You can also look up developers here:

 http://www.appenginepeople.net/

 (Yes, this is itself an App Engine app!)





 On Wed, Jun 30, 2010 at 11:43 AM, rudolf michael roud...@gmail.com wrote:
  hi can handle that if it was done using GWT+java backend.
  but i guess that you need to move the whole front end to be implemented
  using GWT, it will become much much faster and the code maintainable and
  clearer.

  Good job and very nice interface :-) i liked it

  regards,
  Rudolf Michael

  On Wed, Jun 30, 2010 at 9:37 PM, Nevin Freeman 
  nevin.free...@gmail.comwrote:

  Hi all,

  I am the sole developer forhttp://riabiz.com, a news website running
  on App Engine. This is a great gig -- I really like that, thanks to
  App Engine, one amateur can make a site like this from scratch and
  keep it running well.

  The trouble is that if I am 'off the grid,' there is nobody to tend to
  the site in the case of some emergency. Summer is in full swing, and I
  don't really like having to stay within the reach of civilization
  every single weekend...

  So I'm hoping to find someone else who is in the exact same position
  as I am; the sole developer for an App Engine site that is in
  production and needs to be maintained. We could learn each other's
  code well enough so that in an emergency we would be able to cover the
  other and fix some small bug or something. I think that after an
  initial learning process we would only need to spend an hour or two
  each month keeping up with new developments.

  Some more info: My app is in Python, uses webapp, and has been in
  production for almost a year, so there haven;t actually been any
  emergencies for a long time. I work with three other (non-technical)
  people, and this backup is in large part (but not entirely) for their
  peace of mind. Since our business is actually becoming valuable, it
  makes sense to have someone else who understands the code so that in
  the unlikely case that I get very sick or die or whatever I won't be
  leaving them with a custom website that nobody understands.

  Cheers,
  Nevin

  --
  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.comgoogle-appengine%2Bunsubscrib
   e...@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-appeng...@googlegroups.com.
  To unsubscribe from this group, send email to
  google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib 
  e...@googlegroups.com
  .
  For more options, visit this group at
 http://groups.google.com/group/google-appengine?hl=en.

 --
 Ikai Lan
 Developer Programs Engineer, Google App Engine
 Blog:http://googleappengine.blogspot.com
 Twitter:http://twitter.com/app_engine
 Reddit:http://www.reddit.com/r/appengine

-- 
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] Very strange/unpredictable behavior today... need help!

2010-02-02 Thread Nevin Freeman
I am getting this error when I load my app on the domain www.riabiz.com:

Error: Server Error The server encountered an error and could not
complete your request. If the problem persists, please report your
problem and mention this error message and the query that caused it.

When I load it on riabizdev.appspot.com, it works, mostly. Now for the
odd part: When I load it on www.riabiz.com on another computer right
next to me, on the same internet connection, it works perfectly!

In Sweden: works on one computer, not on the other
In DC: doesn't work
In NY: works fine
In WA: works fine
In CA: works in Chrome, not in IE (!!??)

For the ones that don't load, I don't see the request even show up in
the logs. I have no idea how to figure out what could be causing this.
Ideas?

Thanks :)
Nevin

-- 
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: Google App Engine server down ?

2009-11-17 Thread Nevin Freeman
I had similar errors, app completely down, now seems to be back up.

On Nov 17, 4:39 pm, arbi arbin...@gmail.com wrote:
 In fact I canno't even connect to appengine.google.com ! App
 completely down :(

 On 17 nov, 16:35, Benjamin bsaut...@gmail.com wrote:



  Yikes. Server error on my end.https://appengine.google.com/ also
  can't publish updates from eclipse.

  On Nov 17, 10:34 am, Tim Hoffman zutes...@gmail.com wrote:

   I am seeing intermittant dashboard failure, transaction timeouts,
   DeadLineExceededErrors ..

   T

   On Nov 17, 11:31 pm, Prashant antsh...@gmail.com wrote:

same here... unable to update apps but apps seems to be working fine...

--

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=.




[google-appengine] Need help understanding an error (not sure if it is my fault or not)

2009-08-27 Thread Nevin Freeman

I am getting the following traceback:

Traceback (most recent call last):
  File /base/python_lib/versions/1/google/appengine/ext/webapp/
__init__.py, line 507, in __call__
handler.get(*groups)
  File /base/data/home/apps/riabizdev/1.335829215948087052/
handlers.py, line 197, in get
banner_code = models.Banner.get_by_id(int
(banner_id)).get_code_and_log_impression()
  File /base/data/home/apps/riabizdev/1.335829215948087052/
models.py, line 209, in get_code_and_log_impression
self.put()
  File /base/python_lib/versions/1/google/appengine/ext/db/
__init__.py, line 725, in put
return datastore.Put(self._entity)
  File /base/python_lib/versions/1/google/appengine/api/
datastore.py, line 166, in Put
raise _ToDatastoreError(err)
  File /base/python_lib/versions/1/google/appengine/api/
datastore.py, line 2100, in _ToDatastoreError
raise errors[err.application_error](err.error_detail)
Timeout

And the method in question from models.py is this:

def get_text(self):
  self.counter += 1
  self.put() #this is line 209, where the error
originates
  return self.text


Is this a common problem that I can do something to avoid?
Alternatively, could someone show me the syntax to make this fail
gracefully? (I think I've seen an example before, but don't remember
where to find it).

Thanks in advance--
Nevin Freeman


--~--~-~--~~~---~--~~
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] Could Mailman run on AppEngine?

2009-05-19 Thread Nevin Freeman

Has anyone tried to port Mailman (http://www.gnu.org/software/mailman/
index.html) to run on AppEngine? I'm assuming there would be some
major barriers, but I think they might be beyond what I have time for.
All comments on the topic welcome!

Thanks,
Nevin
--~--~-~--~~~---~--~~
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: how could you charge users for using your app?

2009-02-22 Thread Nevin Freeman

I'm also interested in this topic and can't really find anything out
there on how to get started. Any information would be appreciated.

Thanks,
Nevin

On Feb 5, 3:24 am, Sharad sharad.pa...@kworks.co.uk wrote:
 Alex,

 Is Google Checkout capable of managing subscriptions (as opposed to
 one-off payments)? Are there sample scripts/apps that show how Google
 Checkout can be integrated with an app engine application. Many
 thanks.

 On Jan 30, 11:38 am, Alexander Orlov alexander.or...@loxal.net
 wrote:

  On Jan 29, 8:58 pm, virtual_pm span...@gmail.com wrote:

   what does Google recommend if you wanted tocharge usersusing your
   application?

  There are corresponding onlinepaymentservices from PayPal.com and
  Google Checkout (www.google.com/checkout). You can bind the access to
  your SaaS app to the condition to go through one of thesepayment
  services. So the user have to pay a pre-defined amount before he can
  access your service.

  HTH
  Alex
--~--~-~--~~~---~--~~
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: Query filter based on the Longitude attribute of a db.GeoPt property

2008-09-10 Thread Nevin Freeman

Since starting this thread, I've come up with something slightly
similar to what you are suggesting here. Rather than store metadata
about both lat and lng, I store a ListProperty of lngs to differing
degrees of accuracy, and still use inequalities for latitude. So if
you have a point with Lat, Lng = 12.12345678, 40.12345678, my stored
lng-list property would look like: [40, 40.1, 40.12, 40.123]. This
way, based on zoom level (well, actually just based on the size of the
viewport, calculated when the query is run), I can query for all of
the strips of longitude within my viewport, and then still include a
minLat  lat  minLng. This results in a single query up front, but
multiple queries behind the scenes, since the viewport will have many
longitude strips and thus I will be comparing the lng-list to an array
of values. I decide how to divide up the viewport based on the
difference in longitude between either edge, and limit the number of
strips to 10 (using the larger strips in order to decrease the
number). Here is the code for encoding and generating the array for
the query:

import decimal
from decimal import Decimal as d
import logging

def LngList(lng):
  returns array of truncated lng strings
  lnglist = []
  lnglist.append(__truncate(lng, 0))
  lnglist.append(__truncate(lng, 1))
  lnglist.append(__truncate(lng, 2))
  lnglist.append(__truncate(lng, 3))
  return lnglist

def ViewportLngs(minLng, maxLng):
  returns array of lngs that exist in the viewport, with the right
degree of precision
  vislngs = []
  dif = abs(maxLng - minLng)
  if minLng  maxLng:
logging.info(minLng: %s maxLng: %s %(minLng, maxLng))
dif = (180 - minLng) + abs(-180 - maxLng)
if dif  .01:
  vislngs = __makelist(3, minLng, 180) + __makelist(3, -180,
maxLng)
elif dif  .1:
  vislngs = __makelist(2, minLng, 180) + __makelist(2, -180,
maxLng)
elif dif  1:
  vislngs = __makelist(1, minLng, 180) + __makelist(1, -180,
maxLng)
else:
  logging.error(Viewing both sides of the dateline, zoomed out.)
  elif dif  .01:
vislngs = __makelist(3, minLng, maxLng)
  elif dif  .1:
vislngs = __makelist(2, minLng, maxLng)
  elif dif  1:
vislngs = __makelist(1, minLng, maxLng)
  else:
# zoomed out case
logging.error(The LngList method is being used on a viewport with
a range larger than 1 degree.)
  return vislngs

def __makelist(level, minLng, maxLng):
  actually populates the list of longs, based on conditions passed
in, and accounts for extreme near-zero cases.
  inc = 10**-level
  lng = __truncate(minLng, level)
  maxL = __truncate(maxLng, level)
  vislngs = [lng]
  while lng != maxL:
if lng == 0:
  return __makelist(level + 1, minLng, maxLng)
lng = __truncate(float(lng)+inc, level)
vislngs.append(lng)
  return vislngs

def __truncate(num, prec):
  truncates the float passed in to _prec_ places after the decimal,
and returns it as a string
  result = unicode(d(str(num)).quantize(d(1e%d % (-prec)),
decimal.ROUND_DOWN))
  if result == u'-0.0':
result = u'0.0'
  if result == u'-0.00':
result == u'0.00'
  return result

This method seems to preform pretty well, though I don't yet have gobs
of data. I am able to run a query that returns 3-400 markers and load
them all up in less than a second. Unfortunately, this doesn't account
for Polylines and Polygons. We're still working on an elegant solution
for those, probably similar to your method of storing the grid-boxes
each one overlaps. Exploding indexes, here I come.

Nevin

On Sep 10, 10:11 am, [EMAIL PROTECTED] [EMAIL PROTECTED]
wrote:
 Thanks for the follow-up.

 I guess one could still use the geotoken (my own term) idea, but
 only save one token (map-graph-square) per saved point.  Then, when
 someone searches on a given point, tokenize the search point, search
 for anything that shares the same token, and then go back for for data
 in the surrounding tokens.  In my example, that means 9 DB calls
 instead of one, but that's pretty manageable...  I don't know how it
 scales if you want to have greater variability in your search range,
 but you could either define your tokens to cover more ground, or
 increase the number of tokens searched.

 Looking at the current quota limits, with 2.5 million datastore
 requests per day, I could handle 200,000 searches per day (250,000 * 9
 = 2.45 million), which leaves room for 50,000 posts per day (one
 datastore operation per post), all under quota.  Once this turns into
 a paid service, if I have to pay for more than that, I think I'll be
 happy to do so.

 -B

 On Sep 9, 2:52 pm, uprise78 [EMAIL PROTECTED] wrote:

  The exploding index issue can occur with list properties readily.

  Properties with multiple values, such as using a list value or a
  ListProperty model, store each value as a separate entry in an index.

  With a 9 element list you just created 9 indexes.  If you expand the
  box to get some more resolution such as the 13 box example, you will
  then have 13 

[google-appengine] Re: GQL Query issue

2008-08-28 Thread Nevin Freeman

José,

Many different workarounds are available, depending on your
circumstances. The simplest (not ideal) thing to do would be to run
two queries and then take the intersection of the two results, i.e.:

q1 = Model.gql(WHERE prop1  :1, number1)
q2 = Model.gql(WHERE prop2  :1, number2)

batch1 = q1.fetch(1000)
batch2 = q2.fetch(1000)
result = []

for entity in batch1:
  if entity in batch2:
result.append(entity)

return result


If you give us a little more context, maybe people who have similar
situations can share with you how they have dealt with the limitation.
In my case, I had to change the way I store my data so that I can get
the right results with only one inequality operator per query (but
name equality operators).

Nevin

On Aug 28, 12:07 pm, fdezjose [EMAIL PROTECTED] wrote:
 Hello! I'm new in the App Engine world and I've run into an issue
 that's driving me crazy. I need to compare two properties (ex.
 propertyA  4 AND propertyB  8) But by doing that I've discovered
 that only one property per query may have inequality filters... Any
 suggestion or workaround to be able to accomplish this task?

 Thanks!

 José Luis
--~--~-~--~~~---~--~~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~--~~~~--~~--~--~---