[google-appengine] Re: "One senses GAE is just not a major priority for Google"

2014-11-08 Thread Brandon Thomson
On Saturday, November 8, 2014 2:29:02 PM UTC-5, Josh Whelchel (Loudr) wrote:
>
> Also, to those criticisms of the new log viewer, what's the basis for your 
> complaints? I love the new viewer and after adjusting to it (admittedly the 
> transition took a few days) - it's MUCH faster and easier to use.
>

To be clear, I am very happy with app engine in general. I like the 
existing offering very much and want it to either stay the same or to be 
genuinely improved. I am not a fan of change for its own sake, something 
which this new logs viewer seems to be an example of. I am calling it out 
publicly here to alert people to the risks of these kinds of changes, and 
also perhaps to decrease the odds that the old logs viewer will be scrapped.

Based on my brief tests over the last few weeks, here are my complaints so 
far:

  - infinite scroll seems to reliably duplicate log entries when 
long-running requests are involved. Very confusing.
  - infinite scroll sometimes claims no new logs exist even when we are 
looking at them in the old logs viewer
  - expand all button doesn't actually expand all: I still see "show more" 
links at the bottom of every log entry
  - "Save As" does not work correctly after expanding a logs entry using 
said "show more" link (probably because the page's URL is not modified, but 
that's just a guess)
  - limit param in url for fetching more than 100 results at once is not 
supported

These are just a few things that I have noticed the new logs viewer breaks 
relative to the old one (And I use the latest Chrome stable on Win 7, so I 
doubt my browser is the issue). And, I'm sure there are more regressions 
that I haven't discovered yet.

The one thing I like about the new viewer is the default "fully collapsed" 
view. Seeing more requests at a glance is handy and that would be a nice 
backport to the existing appspot logs viewer. But is it worth dealing with 
all of the above problems for this one new useful feature? Not hardly! 

-- 
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/d/optout.


[google-appengine] Re: "One senses GAE is just not a major priority for Google"

2014-11-08 Thread Kaan Soral
Here is an issue that I've 
experienced: 
https://groups.google.com/forum/#!topic/google-appengine/s8qO_JGE7YA

Old log console can't view old logs for me, might be a bug or not, it 
can't, new viewer is confusing, you can't see how far it's searching, it's 
constantly searching, misses some logs (it did in this example, causing me 
to believe that the logs didn't exist, digging in deeper revealed they 
weren't missing)
tl;dr;imo - logs are only useful if you are not digging in deep

pdknsk has a nice point, you must be on a high support level :)

It's also extremely incomplete after all this time, not integrated deeply, 
you also seem to be using Java, so the experience is probably different

I personally really like the old console/style, simple yet extremely 
functional UI, instead of flat/flashy and useless

On Saturday, November 8, 2014 9:29:02 PM UTC+2, Josh Whelchel (Loudr) wrote:
>
> Our experience couldn't be further from the opposite of what's being 
> described in this thread.
>
> Google has been incredibly supportive of us as Appengine clients, and 
> we've worked closely with their teams on feedback for the platform and the 
> new console.
>
> Further, they've been taking a lot of their efforts to the open source 
> community, including the pipeline and mapreduce libraries they have 
> internally developed. [see https://github.com/GoogleCloudPlatform]
>
> Here's hoping your experiences improve!
>
> Also, to those criticisms of the new log viewer, what's the basis for your 
> complaints? I love the new viewer and after adjusting to it (admittedly the 
> transition took a few days) - it's MUCH faster and easier to use.
>
> Also, Cloud Debugger and Cloud Trace will blow your minds (see the GCP 
> recordings if you can) - in particular, the watchpoints <3
>
> On Friday, November 7, 2014 8:17:35 PM UTC-8, Brandon Thomson wrote:
>>
>> Perhaps it is selfish on my part, but in some ways I am glad that GAE is 
>> not getting much attention. Fixing bugs in legacy code is not exciting work 
>> and a new generation of engineers at Google may be tempted to "improve" 
>> things that aren't broken instead of doing the hard work of maintaining the 
>> existing code.
>>
>> As an example of an unwanted "improvement," I would point to the new logs 
>> viewer currently being advertised in the admin console. I don't like it at 
>> all and I hope we will be able to keep using the existing logs viewer.
>>
>

-- 
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/d/optout.


[google-appengine] Re: "One senses GAE is just not a major priority for Google"

2014-11-08 Thread pdknsk

>
> Google has been incredibly supportive of us as Appengine clients, and 
> we've worked closely with their teams on feedback for the platform and the 
> new console.
>

Which support tier do you have? 

-- 
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/d/optout.


[google-appengine] Re: "One senses GAE is just not a major priority for Google"

2014-11-08 Thread Josh Whelchel (Loudr)
Our experience couldn't be further from the opposite of what's being 
described in this thread.

Google has been incredibly supportive of us as Appengine clients, and we've 
worked closely with their teams on feedback for the platform and the new 
console.

Further, they've been taking a lot of their efforts to the open source 
community, including the pipeline and mapreduce libraries they have 
internally developed. [see https://github.com/GoogleCloudPlatform]

Here's hoping your experiences improve!

Also, to those criticisms of the new log viewer, what's the basis for your 
complaints? I love the new viewer and after adjusting to it (admittedly the 
transition took a few days) - it's MUCH faster and easier to use.

Also, Cloud Debugger and Cloud Trace will blow your minds (see the GCP 
recordings if you can) - in particular, the watchpoints <3

On Friday, November 7, 2014 8:17:35 PM UTC-8, Brandon Thomson wrote:
>
> Perhaps it is selfish on my part, but in some ways I am glad that GAE is 
> not getting much attention. Fixing bugs in legacy code is not exciting work 
> and a new generation of engineers at Google may be tempted to "improve" 
> things that aren't broken instead of doing the hard work of maintaining the 
> existing code.
>
> As an example of an unwanted "improvement," I would point to the new logs 
> viewer currently being advertised in the admin console. I don't like it at 
> all and I hope we will be able to keep using the existing logs viewer.
>

-- 
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/d/optout.


[google-appengine] Re: "One senses GAE is just not a major priority for Google"

2014-11-08 Thread Kaan Soral
Hehe, indeed the old logs viewer is better, yet it fails to fetch old logs, 
while the new one manages to do that sometimes

Going off topic, I also hate the new Cloud Console, the colours, the usage, 
the functionality

On Saturday, November 8, 2014 6:17:35 AM UTC+2, Brandon Thomson wrote:
>
> Perhaps it is selfish on my part, but in some ways I am glad that GAE is 
> not getting much attention. Fixing bugs in legacy code is not exciting work 
> and a new generation of engineers at Google may be tempted to "improve" 
> things that aren't broken instead of doing the hard work of maintaining the 
> existing code.
>
> As an example of an unwanted "improvement," I would point to the new logs 
> viewer currently being advertised in the admin console. I don't like it at 
> all and I hope we will be able to keep using the existing logs viewer.
>

-- 
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/d/optout.


Re: [google-appengine] Re: Switched from Windows to Mac - blobstore issues - /n/ncoded_gs_file

2014-11-08 Thread Kaan Soral
Here is the final solution to the issue, I suggest the file_blob_storage 
modification and renaming the existing files for everyone, it's extremely 
clumsy to utilize special characters in file names (macos seems to handle 
"/" in the file name, don't know why "/" is used instead of ":" as windows, 
the modification renames the file name, existing urls and references keep 
working, yet a refactoring is needed for the files themselves)

*file_blob_storage.py modification*
  def _FileForBlob(self, blob_key):
blob_key = self._BlobKey(blob_key)
return os.path.join(self._DirectoryForBlob(blob_key), 
str(blob_key)[1:].replace("/",";").replace(":",";"))
This ensures that files have ";" instead of "/" or ":"

*To pull out the special files from the windows SDK*

1) Go to blob_image.py's serve_image function and pass/comment out 
the datastore.Get(key) check (because we're going to ping files from the 
serving url scheme, this ensures every file is served from that url scheme)
2) Modify file_blob_storage.py to copy the accessed files to a new location 
(from the old SDK)
def _FileForBlob(self, blob_key):
blob_key = self._BlobKey(blob_key); handle=False
path=os.path.join(self._DirectoryForBlob(blob_key), str(blob_key)[1:])
if path.find("ncoded")!=-1: handle=True
if handle and not kaan_marked.get(blob_key):
logging.info("YEY %s"%blob_key)
kaan_marked[blob_key]=True
blob_file = self._FileForBlob(blob_key)
input = _local_open(blob_file, 'rb')
output= _local_open("C:/GCS/"+str(blob_key)[1:].replace(":",";")
,'wb')
try:
  while True:
block = input.read(1 << 20)
if not block:
break
output.write(block)
finally:
  output.close()
logging.info(path)
return os.path.join(self._DirectoryForBlob(blob_key), str(blob_key)[1:])

3) Ping each image, I decided to ping them by browsing the 
"__GsFileInfo__"'s from the Datastore VIewer, couldn't access them easily 
programatically
gg=document.getElementsByTagName("td"); for(var i=0;ihttp://localhost/_ah/img/"+gg[i].innerHTML.trim(); 
document.body.appendChild(image); }

Then put the images back to the old or new "n" folder

I think all windows SDK users should do this, I don't know how macos 
handles "/" in the filenames, yet I would suggest everyone to fix the file 
access manually
I've added this to my list of manual sdk modifications, currently I have 9 
manual modifications, sad ... :)

-- 
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/d/optout.


[google-appengine] Re: Bug in ndb with StructuredProperty?

2014-11-08 Thread Lapteuh
Hi.

I tested this code . 
First again, *required* parameter ignored, but it must be composable (It is 
written in the documentation). Second, *validation* in *StructuredProperty* 
work only on *not None* value and it's second bug, because writing custom 
property for model useless at this point.

среда, 5 ноября 2014 г., 4:03:10 UTC+5 пользователь timh написал:
>
> Hi 
>
> You are correct, 
>
> s~cash-drawer> class SecondModel(ndb.Model):
> ... important_prop = ndb.StringProperty(required=True)
> ...
> s~cash-drawer> class FirstModel(ndb.Model):
> ... some_prop = ndb.StringProperty()
> ... some_other_prop = ndb.StructuredProperty(SecondModel, 
> required=True)
> ...
> s~cash-drawer> model2 = SecondModel()
> s~cash-drawer> model2.put()
> WARNING:root:initial generator _put_tasklet(context.py:270) raised 
> BadValueError(Entity has uninitialized properties: important_prop)
> WARNING:root:suspended generator put(context.py:733) raised 
> BadValueError(Entity has uninitialized properties: important_prop)
> Traceback (most recent call last):
>   File "", line 1, in 
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/model.py", 
> line 3187, in _put
> return self._put_async(**ctx_options).get_result()
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/tasklets.py", 
> line 325, in get_result
> self.check_success()
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/tasklets.py", 
> line 368, in _help_tasklet_along
> value = gen.throw(exc.__class__, exc, tb)
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/context.py", 
> line 733, in put
> key = yield self._put_batcher.add(entity, options)
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/tasklets.py", 
> line 371, in _help_tasklet_along
> value = gen.send(val)
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/context.py", 
> line 280, in _put_tasklet
> keys = yield self._conn.async_put(options, datastore_entities)
>   File 
> "/home/timh/google_appengine/google/appengine/datastore/datastore_rpc.py", 
> line 1542, in async_put
> pbs = [self.__adapter.entity_to_pb(entity) for entity in entities]
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/model.py", 
> line 562, in entity_to_pb
> pb = ent._to_pb()
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/model.py", 
> line 2906, in _to_pb
> self._check_initialized()
>   File "/home/timh/google_appengine/google/appengine/ext/ndb/model.py", 
> line 2783, in _check_initialized
> 'Entity has uninitialized properties: %s' % ', '.join(baddies))
> BadValueError: Entity has uninitialized properties: important_prop
> s~cash-drawer> model2 = SecondModel()
> s~cash-drawer> model1 = FirstModel(some_other_prop=model2)
> s~cash-drawer> model1.put()
> Key('FirstModel', 12001)
> s~cash-drawer> model1
> FirstModel(key=Key('FirstModel', 12001), some_other_prop=SecondModel())
> s~cash-drawer>
>
>
> However is it really a bug in NDB or NDB documentation.
>
> Model validation is called at put() time, however a structured property 
> components aren't directly written to the datastore as a model in your 
> case. It is serialized and stored in a property of the outer model and the 
> only model validation that will be performed is on .  You will also find 
> that any hooks on that model used in the structured property won't have 
> it's hooks called (pre_put, post_put, pre_delete . etc...)
>
> Cheers
>
> Tim
>
>
>
> On Tuesday, November 4, 2014 10:43:04 PM UTC+8, Lapteuh wrote:
>>
>> I tested SecondModel() without parameters and result is same. Still no 
>> error.
>>
>> вторник, 4 ноября 2014 г., 19:11:40 UTC+5 пользователь timh написал:
>>>
>>> Not sure I would interpret it as a bug
>>>
>>> If you do model2 = SecondModel()
>>>
>>> You would get the error you expect..
>>>
>>> Setting a property (especiallya StringProperty) explicitly to None, is 
>>> not the same as not setting the value of the property.
>>> The former will define the Property with a value of None, the second 
>>> won't define a value for the property.
>>>
>>> You can see this also in the how indexes work, the former will have a 
>>> value in the index, the later won't even have a record in the index for 
>>> some_other_prop
>>>
>>> So in my opinion it isn't a bug, but could probably do with more 
>>> explicit documentation.
>>>
>>> Just my 2c 
>>>
>>> Cheers
>>>
>>> T
>>>
>>> On Friday, October 24, 2014 9:04:13 PM UTC+8, Lapteuh wrote:

 Hello. Noticed a strange behavior in the library ndb. In my opinion it 
 looks like a bug.

 Example:

 class SecondModel(ndb.Model):
 important_prop = ndb.StringProperty(required=True)


 class FirstModel(ndb.Model):
 some_prop = ndb.StringProperty()

 some_other_prop = ndb.StructuredProperty(SecondModel, required=True
 )
 
 
 def some_fun