小编Bri*_*unt的帖子

使用"this ="的Javascript函数给出"赋值时无效的左侧"

我试图让一个JavaScript对象使用另一个对象的构造函数的"this"赋值,并假设所有对象的原型函数.这是我试图完成的一个例子:

 /* The base - contains assignments to 'this', and prototype functions
  */
 function ObjX(a,b) {
     this.$a = a;
     this.$b = b;
 }

 ObjX.prototype.getB() {
     return this.$b;
 }

 function ObjY(a,b,c) {
    // here's what I'm thinking should work:
    this = ObjX(a, b * 12); 
    /* and by 'work' I mean ObjY should have the following properties:
     * ObjY.$a == a, ObjY.$b == b * 12,
     * and ObjY.getB == ObjX.prototype.getB
     * ... unfortunately I get the error: 
     *     Uncaught ReferenceError: …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance prototypal-inheritance prototype-programming

7
推荐指数
1
解决办法
7906
查看次数

Google App Engine/Python - 更改日志记录格式

如何更改loggingGoogle App Engine中模块的输出格式?

我试过了,例如:

  log_format = "* %(asctime)s %(levelname)-8s %(message)s"
  date_format = "%a, %d %b %Y %H:%M:%S"

  console = logging.StreamHandler()
  fr = logging.Formatter(log_format)
  console.setFormatter(fr)

  logger = logging.getLogger()
  logger.addFilter(SuperfluousFilter())
  logger.addHandler(console)

  logger.setLevel(logging.DEBUG)
  console.setLevel(logging.DEBUG)

  logging.error("Reconfiguring logging")
Run Code Online (Sandbox Code Playgroud)

但是,这会导致重复的日志记录输出:一个包含来自google/appengine/tools/dev_appserver.py(或在Google代码中的某个位置)的日志记录处理程序,另一个来自我StreamHandler上面的新文件.以上代码输出:

ERROR    2010-06-23 20:46:18,871 initialize.py:38] Reconfiguring logging
2010-06-23 20:46:18,871 ERROR    Reconfiguring logging

顶行显然dev_appserver.py来自我的代码的底线.

所以我想推论的问题是:如何更改Google App Engine的格式,同时避免重复输出?

谢谢你的阅读.

布赖恩

python logging google-app-engine

7
推荐指数
1
解决办法
1328
查看次数

Jinja2编码风格/最佳实践

使用Jinja2进行开发时,您是否拥有最佳实践和编码风格?

就个人而言,我喜欢Plurk/Solace中的风格,但我想知道人们在编写Jinja2时使用的其他风格和做法.

jinja2

7
推荐指数
1
解决办法
3719
查看次数

VIM Unix命令以彩色打印

我正在使用MacVim,我希望!打印彩色命令.例如:

在bash中,以下echo语句以绿色打印Hello World(按预期方式):

$ echo -e "\033[32m Hello World" 
 Hello World
Run Code Online (Sandbox Code Playgroud)

但是,在VIM中输出不是颜色,并且打印转义码:

:!echo -e "\033[32m Hello World" 
 [32m Hello World
Run Code Online (Sandbox Code Playgroud)

如何使用VIM(特别是MacVim build 57)打印!命令输出并遵守ANSI颜色转义.

vim ansi macvim

7
推荐指数
1
解决办法
2465
查看次数

在Mac OS X 10.8上使用Python 2.7的Google App Engine(1.7.0)上的PyCrypto会导致ImportError

我正在努力让PyCrypto与Google App Engine合作,我对我遇到的问题进行了长篇描述,该问题报告为Google App Engine的问题7925.

从本质上讲,我不知道在Mac OS X 10.8上以一种dev_appserver.py使用它的方式安装PyCrypto的合理方法- 除了放入Crypto/项目根目录的解决方法.

遗憾的是,当项目Crypto/在项目的根目录中部署时,一个问题似乎刚刚出现,导致项目崩溃.

有可能编辑或monkeypatch GAE代码,但我不熟悉GAE的代码,以便做到这一点.我看到的所有建议都是针对Python2.5和Mac OS X <10.8.

对于让PyCrypto在Mac OS X 10.8上使用GAE开发应用程序服务器的替代,明智的方法,我将不胜感激.

google-app-engine pycrypto

7
推荐指数
1
解决办法
2050
查看次数

测试光标是否位于textarea的第一行(带有软换行符)

鉴于textarea的内容是这样的

     ––––––––––––––––––––––––––
    | This is some text, which |
    | wraps like this.         |
     ––––––––––––––––––––––––––

如何判断文本光标是否位于textarea的第一行?

显然,\n如果想要查看光标是否出现在第一个换行符之前,检查换行符()是否有效,但测试"软"换行符似乎更具挑战性.

这是一个试验的样本jsFiddle.

我还没有提出一个策略,但我怀疑它可能涉及复制文本直到光标位置进入克隆的textarea(或div),并且只要需要它就使宽度变宽,这样它就不会包装.如果克隆区域的宽度小于原始宽度,则光标似乎必须位于第一行.可能有一个更简单的选择,更优雅的东西,或(最重要的)现有的,经过良好测试的解决方案.

目标浏览器是Webkit(Chrome/Safari)和Firefox.即IE兼容性在这个时候不是一个问题(如果这有任何区别).

谢谢阅读.

编辑:寻找文本插入符号的行号,而不是鼠标光标.

falsarella给出了一个很好的答案,突出了问题的模糊性.我想要的是文本光标("插入符号"可能是一个更好的词)是否在第一行.我已经更新了问题和jsFiddle来反映.

html javascript jquery dom textarea

7
推荐指数
1
解决办法
1486
查看次数

优化Knockout/TKO - Alpha3

在现代化Knockout for 4.0版(现在在monorepo tko中)的过程中,我遇到了一些性能问题.

在其他更改中,一些内循环事物已转换为ES6类,并且它会导致一些主要的性能问题.我宁愿不撤消这种努力,因为它为一些关键代码增加了相当多的清晰度,所以我想征求一些关于如何改进ES6代码的意见.

我在这里设置了一些简单的样本进行分析:

敲除Alpha2 - 349ms

淘汰Alpha3(预发行) - 622ms

jsFiddles中的代码如下所示,它是大量绑定中经历的减速的原型.

HTML:

<div id='x'>
  <strong>{{ count }} / {{ time }} ms</strong>
  <custom-component></custom-component>
</div>

<div id='cc-template'>
   cc
   {{# unless: finished }}
      <custom-component></custom-component>
   {{ /unless }}
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

let count = ko.observable(0)
let time = ko.observable(false)
const start = performance.now()
const ITERATIONS = 1000

class viewModel {
  constructor () {
    this.finished = count() > ITERATIONS
    count(count() + 1)
    time(performance.now() - start)
  }
}

ko.components.register("custom-component", {
  viewModel, template: …
Run Code Online (Sandbox Code Playgroud)

javascript optimization performance knockout.js

7
推荐指数
1
解决办法
228
查看次数

Node.js将文本作为"spawnSync"的标准输入传递

我认为这很简单,但以下内容不能按预期工作.

我想wc从Node 管道数据到一个进程,比如说(只是一个用于说明的任意命令).

文档和其他SO问题似乎表明传递流应该工作:

const {spawnSync} = require('child_process')
const {Readable} = require('stream')

const textStream = new Readable()
textStream.push("one two three")
textStream.push(null)

const stdio = [textStream, process.stdout, process.stderr]
spawnSync('wc', ["-c"], { stdio })
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会引发错误:

值"可读{...}对选项"stdio"无效

代码相关的位由internal/child_process.js不立即揭示了什么预期的有效选项.

node.js node-streams

7
推荐指数
1
解决办法
800
查看次数

如何使用 Vega/Vega-lite 渲染类/组织/流程/状态图/图表

我找不到 Vega 的状态/类/流程图/组织结构图示例。外面有吗?

感觉 Vega 非常适合这个(如果有点过分),但没有一个例子可以从它开始,这是一个相当陡峭的学习曲线。“织女星的工作原理页面上有一些示例,但没有链接到它们的构建方式:

vega 工作原理图

还有树布局示例,但不清楚如何开始将其转换为适合流程图样式图的块。

在此处输入图片说明

这是来自例如mermaid.js 的所需输出类型的一些示例(以及其他形状,例如菱形/三角形)

类图

javascript charts vega vega-lite

7
推荐指数
1
解决办法
548
查看次数

GAE 1.5.5本地SDK无法与python2.7运行时一起运行

GAE 1.5.5看起来有一些优秀的,等待很久的功能.但是,他们还没有为我工作.

我已经下载并安装了GAE 1.5.5,并且正在使用退化的"AAA"应用程序进行测试.

这是我的app.yaml(已经进行了各种测试).

的app.yaml

application: AAA # mystical creation.
version: alpha-1
runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /media
 static_dir: media/

- url: /favicon.ico
 static_files: media/images/favicon.ico
 upload: media/images/favicon.ico

- url: /admin
 script: AAA.app
 login: admin

- url: /.*
 script: AAA.app

skip_files:
- ^(.*/)?app\.yaml

libraries:
- name: django
 version: "1.2"
- name: jinja2
 version: latest
- name: yaml
 version: latest
Run Code Online (Sandbox Code Playgroud)

我在Mac OS X Lion(10.7.1)上运行它.

我假设我实际上并没有使用Python 2.7运行时,尽管在app.yaml中声明使用它.我不太确定如何验证这个理论,但我遇到的错误与它一致.这些错误再现如下.

Python路径

如果未设置Google App Engine的Python路径,则应用引擎将使用Python 2.6.6运行.

为了解决这个问题,我将Python Path设置/usr/bin/python2.7为Google App …

python google-app-engine python-2.7

6
推荐指数
1
解决办法
841
查看次数