我想使用GCS存储桶作为我的blobstore的支持,但我无法弄清楚如何在我的开发服务器上设置一个.
有关使用实时服务器上的开发人员控制台执行此操作的说明,但我找不到有关如何在本地开发计算机上执行此操作的任何信息...
假设我有以下javascript事件处理程序:
function handleEvent(e){
document.body.style.backgroundColor = 'green';
longRunningFunction();
document.body.style.backgroundColor = 'red';
}
Run Code Online (Sandbox Code Playgroud)
浏览器是否会首先显示绿色背景,然后将其切换为红色?或直接显示红色背景?
根据我的测试,它直接在事件处理程序的末尾显示红色.但这是规范的一部分,还是偶然发生了如何实现浏览器?
更新:
我应该澄清一点,我并非"瞄准"这种效果.相反,我希望有一些保障,它并没有发生.我的一些事件处理程序改变了很多东西,如果我可以假设没有任何中间状态被渲染,它会让我的生活更轻松.
该文档描述了对数据存储区中实体组的吞吐量的限制,但对于具体的限制是模糊的.我的困惑分为两部分:
1.什么是受限制的?
具体来说,是:
2.限制的类型是什么?
具体来说,是:
Python re模块的文档说,当设置re.UNICODE标志时,'\s'将匹配:
在Unicode字符属性数据库中被分类为空格的任何内容.
据我所知,BOM(U + FEFF)被归类为空间.
然而:
re.match(u'\s', u'\ufeff', re.UNICODE)
Run Code Online (Sandbox Code Playgroud)
评估为None.
这是Python中的错误还是我错过了什么?
我正在开发一个Google App Engine应用程序,我遇到了对App Engine SDK和Cloud SDK的引用.
这两个SDK如何相互关联?
两者之间肯定存在一些重叠.有一个dev_appserver.py并且appcfg.py都是它们.我可以使用dev_appserver.py和运行开发服务器gcloud preview app run.
为什么有两个工具可以做同样的事情?是否有人赞成另一个?是否有合并工具集的路线图,或者它们是否会并行维护?我需要两者,还是只需一片?
看起来Cloud SDK是两者中更为通用的.但它是超集吗?即我可以使用Cloud SDK在App Engine SDK中做任何我能做的事情吗?
我对这个凌乱无证的设置感到非常困惑.
python google-app-engine dev-appserver dev-appserver-2 gcloud
我想使用Python的客户端库获取 Google云端存储桶中所有blob的列表.
根据文档,我应该使用该list_blobs()功能.该函数似乎使用两个参数max_results并page_token实现分页.我不确定如何使用它们.
特别是,我page_token从哪里获得?
我原以为这list_blobs()会page_token在后续调用中提供,但我找不到任何文档.
另外,max_results是可选的.如果我不提供它会怎么样?有默认限制吗?如果是这样,它是什么?
python google-app-engine google-cloud-storage google-cloud-platform
Google Cloud Datastore的一个主要卖点是它在实体组中提供了强大的一致性.
Cloud Datastore确保按键和祖先查询的实体查找始终接收强一致性数据.
[数据存储区适用于]基于ACID属性的交易,例如,将资金从一个银行账户转移到另一个银行账户.
该NDB库是从谷歌应用程序引擎访问数据存储为Python的记录方式.
但是,默认情况下,NDB库使用缓存来加速结果.使用的缓存是"上下文缓存"和内存缓存.但是这些缓存都不能与数据存储区进行事务更新.因此,似乎必须放弃重要的一致性属性(强调我的):
提交事务时,其上下文将尝试从memcache中删除所有此类实体.但请注意,某些故障可能会阻止这些删除的发生.
我对此的理解是否正确?也就是说,在默认配置中使用NDB库时,即使在实体组内也没有一致性保证?
它牺牲了数据存储区的最大特性.所有这些关于一致性和ACID事务的文档.在Google IO上谈论如何使用实体组来获得一致性.甚至是研究论文.而且,在文档的一个小角落里,在最随意的句子中,我知道我没有在默认配置中获得这些属性.
这令人难以置信的误导.我相信大多数人都没见过这个.大多数实现可能期望实体组内的ACID事务,但他们没有得到它.这些是生产代码中的严重错误.
这是实施和文档的重大失败.默认情况下永远不应该牺牲速度的一致性.一致性是实体组的重点.如果实现做了这个意想不到的事情,它会如此戏剧性地改变语义,那么文档应该让它变得非常清晰.
google-app-engine app-engine-ndb google-cloud-datastore google-app-engine-python
问题描述
我正在尝试为Google App Engine创建一个自定义托管VM,其行为与Google提供的标准python27托管VM完全相同.(我这样做是将C++库添加到运行时的第一步).
从谷歌文档,以下Dockerfile指定标准的python27运行时:
FROM gcr.io/google_appengine/python-compat
ADD . /app
Run Code Online (Sandbox Code Playgroud)
我通过检查gcloud preview app run使用标准python27运行时生成的那个来验证这是正确的Dockerfile .它与此完全相同.
但是,当我使用dev_appserver.py或使用此Dockerfile运行我的应用程序时,gcloud preview app run我收到错误消息:
The --custom_entrypoint flag must be set for custom runtimes
Run Code Online (Sandbox Code Playgroud)
我使用的是最新版本的gcloud(1.9.86,app-engine-python组件版本1.9.28)和独立的python app引擎SDK(1.9.28).我在早期版本中遇到了同样的问题,所以我更新到了最新版本.
我做过的事:
gcloud preview app run --help有以下说法--custom-entrypoint:
--custom-entrypoint CUSTOM_ENTRYPOINT
Specify an entrypoint for custom runtime modules. This is required when
such modules are present. Include "{port}" in the string (without
quotes) to pass the port number in as an argument. …Run Code Online (Sandbox Code Playgroud) python google-app-engine gae-module google-app-engine-python google-managed-vm
我想检查字符串是否已经是NFC格式.目前我这样做:
unicodedata.normalize('NFC', s) == s
Run Code Online (Sandbox Code Playgroud)
我这样做是为了大量的字符串,所以我想要高效.上述方法似乎很浪费.它转换为NFC,然后进行字符串比较.
有更有效的方法吗?我考虑过:
len(unicodedata.normalize('NFC', s)) == len(s)
Run Code Online (Sandbox Code Playgroud)
这避免了字符串比较.但我不确定这是否总是正确的.如果NFC标准化始终改变非NFC字符串的长度,则此方法有效.这是一个有效的假设吗?
还有其他想法吗?
python unicode normalization unicode-normalization python-unicode
我正在编写 IOS 应用程序,需要将 CGImage 保存为 JPEG 文件。控制压缩质量很重要。
我已经编写了下面提供的函数。它有效,因为我得到了一个 JPEG 文件。但无论我设置什么压缩,我总是得到相同的结果。即文件大小始终相同。
谁能告诉我我做错了什么?
void CGImageWriteJPEG(CGImageRef image, NSString *path) {
NSMutableData * data = [[NSMutableData alloc] init];
CGImageDestinationRef destination = CGImageDestinationCreateWithData((__bridge CFMutableDataRef)data, kUTTypeJPEG, 1, NULL);
float compression = .8; // What I put here does not seem to matter...
CFStringRef myKeys[1];
CFTypeRef myValues[1];
CFDictionaryRef myOptions = NULL;
myKeys[0] = kCGImageDestinationLossyCompressionQuality;
myValues[0] = CFNumberCreate(NULL, kCFNumberFloatType, &compression);
myOptions = CFDictionaryCreate( NULL, (const void **)myKeys, (const void **)myValues, 1,
&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CGImageDestinationSetProperties(destination, myOptions);
CGImageDestinationAddImage(destination, image, nil); …Run Code Online (Sandbox Code Playgroud) python ×5
unicode ×2
dom ×1
gae-module ×1
gcloud ×1
html ×1
ios ×1
java ×1
javascript ×1
jpeg ×1
objective-c ×1
regex ×1