小编Kyl*_*ley的帖子

Go:附加,如果唯一

有没有办法检查切片/贴图是否存在值?

我想在切片中存在切片时才向切片添加值.

这有效,但似乎很冗长.有没有更好的方法来做到这一点?

orgSlice := []int{1, 2, 3}
newSlice := []int{}
newInt := 2

newSlice = append(newSlice, newInt)
for _, v := range orgSlice {
    if v != newInt {
        newSlice = append(newSlice, v)
    }
}

newSlice == [2 1 3]
Run Code Online (Sandbox Code Playgroud)

append go slice

59
推荐指数
2
解决办法
5万
查看次数

20
推荐指数
3
解决办法
7964
查看次数

Go如何处理Google App Engine上的并发请求

我对Go如何处理Google App Engine上的并发请求感到有些困惑.所以我希望有人可以提供一些清晰度.

以下是我收集的事实:

  1. Go是App Engine上的单线程.- 这是因为可以通过创建具有多个线程的竞争条件来执行任意指针运算

  2. Goroutines被多路复用到多个OS线程上,因此如果应该阻塞,例如在等待I/O时,其他线程继续运行.

  3. [App Engine有一个] 10并发限制[通过对每个运行时的并发线程的限制来强制执行].大多数情况下,我们的调度程序将尝试启动一个新实例.

如果Go是App Engine上的单线程,则第3点没有实际意义.这留下1和2.如果Go on App Engine是单线程的,并且线程需要在阻塞I/O时继续执行,那么似乎App Engine Go实例将在等待I/O时阻止所有goroutine.

它是否正确?如果不是Go的并发性如何在App Engine上真正起作用?

帮助量化事物.如果我要保持连接打开30秒.单个AE Go实例可以如何维护并发连接?

谢谢.

编辑:这是功能请求,允许Go实例处理超过10个并发请求允许每个实例的可配置的并发请求限制.请加星标.

google-app-engine multithreading go

15
推荐指数
2
解决办法
3472
查看次数

Spiderable包如何与Meteor一起使用?

我已将spiderable包软件包添加到我的Meteor应用程序中,并且?_escaped_fragment_=在网址中发出请求时会返回页面的html版本,但我无法让Google抓取该网站.

细节

Google网站站长工具中使用Fetch as Google并请求根页面时,页面返回是javascript版本; 就像是:"http://example.com/"

HTTP/1.1 200 OK
content-type: text/html; charset=utf-8
date: Fri, 30 Nov 2012 05:39:36 GMT
connection: Keep-alive
transfer-encoding: chunked

<!DOCTYPE html>
<html>
  <head>
    <link rel="stylesheet" href="/e83157bdc4ff057fa3a20b82af4c11b4ebe776e7.css">
    <script type="text/javascript">
      __meteor_runtime_config__ = {"ROOT_URL":"http://www.example.com","DEFAULT_DDP_ENDPOINT":"https://www-example-com-ddp.meteor.com/"};
    </script>
    <script type="text/javascript" src="/13cf3d21ce1c4a88407ca5f3c250f186ab1738f9.js"></script>
    <meta name="fragment" content="!">
    <title>example.com</title>
  </head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

相反,我要求http://example.com/?_escaped_fragment_=返回html版本:

HTTP/1.1 200 OK
content-type: text/html; charset=UTF-8
date: Wed, 05 Dec 2012 02:44:09 GMT
connection: Keep-alive
transfer-encoding: chunked

<!DOCTYPE html>
<html>
  <head> …
Run Code Online (Sandbox Code Playgroud)

javascript search-engine google-webmaster-tools meteor

15
推荐指数
1
解决办法
4759
查看次数

早午餐如何禁用RequireJS模块包装

更新: 对于任何有兴趣使用早午餐AngularJS的人,我已经组建了一个种子项目角 - 早午餐种子

我正在使用BrunchAngularJS.AngularJS提供了一个模块系统,因此使用commonJS/AMD导入文件的需求是多余的.是否可以为目录中的文件禁用此功能/app?从本质上讲,我希望它能像/vendor目录一样不加改变地编译文件.

所以首选的是:

  joinTo:
    'js/app.js': /^app/
    'js/vendor.js': /^vendor/
Run Code Online (Sandbox Code Playgroud)

使用js/app.jsjs/vender.js包含每个相应文件夹的编译文件,但都不包装.

有没有人有任何想法?

更新 语法已从@jcruz回答时更改.现在就是这样做的方法.

最后,我使用了@jcruz答案的修改版本.

exports.config =
  modules:
    definition: false
    wrapper: (path, data) ->
      """
(function() {
  'use strict';
  #{data}
}).call(this);\n\n
      """
  files:
    javascripts:
      defaultExtension: 'coffee'
      joinTo:
        'js/app.js': /^app/
        'js/vendor.js': /^vendor/
Run Code Online (Sandbox Code Playgroud)

默认情况下,"原始"包装器不包含coffeescript的标准包装器.通过将jsWrapper设置为:

wrapper: (path, data) ->
  """
(function() {
  'use strict';
  #{data}
}).call(this);
  """
Run Code Online (Sandbox Code Playgroud)

文件将按预期包装.

javascript coffeescript brunch angularjs

11
推荐指数
2
解决办法
5661
查看次数

App Engine裁剪到特定的宽度和高度

我需要调整大小并将图像裁剪为特定的宽度和高度.我能够构建一个可以创建方形缩略图的方法,但是当所需的缩略图不是正方形时,我不确定如何应用它.

def rescale(data, width, height):
"""Rescale the given image, optionally cropping it to make sure the result image has the specified width and height."""
from google.appengine.api import images

new_width = width
new_height = height

img = images.Image(data)

org_width, org_height = img.width, img.height

# We must determine if the image is portrait or landscape
# Landscape
if org_width > org_height:
    # With the Landscape image we want the crop to be centered. We must find the
    # height to width ratio …
Run Code Online (Sandbox Code Playgroud)

google-app-engine resize image-manipulation resize-image dynamic-resizing

10
推荐指数
1
解决办法
2912
查看次数

如何将MultiDict转换为嵌套字典

我想将一个POST从Webob MultiDict转换为嵌套字典.例如

所以从POST:

'name=Kyle&phone.number=1234&phone.type=home&phone.number=5678&phone.type=work'
Run Code Online (Sandbox Code Playgroud)

多元化;

[('name', 'Kyle'), ('phone.number', '1234'), ('phone.type', 'home'), ('phone.number', '5678'), ('phone.type', 'work')]
Run Code Online (Sandbox Code Playgroud)

到嵌套字典

{'name': 'Kyle',
 'phone': [
  {
    'number': '12345',
    'type': 'home',
  },{
    'number': '5678',
    'type': 'work',
  },
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑

我最终variable_decode从Will发布的formencode包中提取了该方法.唯一需要的改变是明确列表,例如

'name=Kyle&phone-1.number=1234&phone-1.type=home&phone-2.number=5678&phone-2.type=work'
Run Code Online (Sandbox Code Playgroud)

哪个更好有很多原因.

python nested nested-forms webob

10
推荐指数
1
解决办法
1万
查看次数

玉模板作为html的预处理器

我不会在生产中使用node.js,但我喜欢jade的语法,所以我想在开发时编译jade模板html.

鉴于此文件结构:

app/
  jade_templates /
    index.jade
    subfolder /
      subpage.jade
  html_templates /
    index.html
    subfolder /
      subpage.html
Run Code Online (Sandbox Code Playgroud)

我希望有一个脚本可以监视jade_templates目录,并在html_templates任何时候进行更改时编译相应的html模板.

如何实现这一目标?

谢谢.

编辑 Jade README有这个Sample Makefile,但我不知道如何根据我的需要调整它.

JADE = $(shell find pages/*.jade)
HTML = $(JADE:.jade=.html)

all: $(HTML)

%.html: %.jade
    jade < $< --path $< > $@

clean:
    rm -f $(HTML)

.PHONY: clean
Run Code Online (Sandbox Code Playgroud)

templates makefile node.js pug

10
推荐指数
1
解决办法
3871
查看次数

GAE实例是否仅限于10个并发请求?

我从几个消息来源获悉,Google App Engine实例有10个并发请求的硬限制.我想知道是否有人可以澄清这究竟是什么意思.

调度程序是否阻止通过10的任何请求,还是通过对并发线程的限制强制执行?

具体来说,这个限制对Go实例的影响是否与Python和Java相同?

编辑:这是功能请求,它将允许App Engine实例处理超过10个并发请求/线程.允许每个实例的可配置的并发请求限制.请加星标.

python java google-app-engine go

9
推荐指数
2
解决办法
2149
查看次数

如何使用git和buidout在没有符号链接的情况下使用共享子应用程序构建python项目

我有多个项目与其他项目共享子应用程序.在项目目录中工作时,我希望能够对应用程序进行更改,更新它,并将这些更新提取到第二个项目中.

需求:

  • 不使用符号链接(我的IDE的调试器不适合它们)
  • 没有编译/重新运行脚本.我想对应用程序进行更改,而无需重新运行脚本/ buildout.
  • 应用必须位于项目文件夹中.

这是结构:

app_one (git repo)
  |-- app_one (actual app uses by projects)
  |   +-- models.py
  |-- README.md
  +-- setup.py

project_one  (git repo)
  |-- project_one
  |   |-- apps
  |   |   |-- app_one
  |   |   |   +-- models.py
  |   |   | -- app_two
  |-- setup.cfg
  +-- setup.py

project_two  (git repo)
  |-- project_two
  |   |-- apps
  |   |   |-- app_one (same app …
Run Code Online (Sandbox Code Playgroud)

python git buildout git-submodules git-subtree

5
推荐指数
1
解决办法
1175
查看次数

GAE存储密钥与StringID

在Google App Engine数据存储区中存储Keys over String是否有优势.

例如:

class Model(ndb.Model):
    user_key = ndb.KeyProperty()
Run Code Online (Sandbox Code Playgroud)

VS

class Model(ndb.Model):
    user_id = ndb.StringProperty()
Run Code Online (Sandbox Code Playgroud)
  • 为什么要存储Key而不是StringID?这只是为了方便吗?
  • 哪个使用较少的存储空间?
  • 哪个查询更快?

google-app-engine key app-engine-ndb google-cloud-datastore

5
推荐指数
1
解决办法
588
查看次数

如何覆盖npm peerinvalid

我正在尝试安装已peerDependencies为较旧版本的软件包指定a的节点模块。我知道该模块将与较新版本一起使用。如何告诉npm忽略该peerinvalid错误?当前,该peerinvalid错误正在停止安装过程。

这是错误:

npm ERR! peerinvalid Peer xxx@x.x.x wants xxx@x.x.x
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript package-managers node.js npm

5
推荐指数
1
解决办法
1053
查看次数

NDB的GAE Memcache用法似乎很低

我有一个带有~40 GB数据库的Google App Engine项目,而且我的NDB读取性能很差.我注意到我的memcache大小(在仪表板上列出)只有大约2 MB.我希望NDB能够隐含地更多地使用memcache来提高性能.

有没有办法调试NDB的memcache用法?

google-app-engine memcached app-engine-ndb

2
推荐指数
1
解决办法
824
查看次数