小编Att*_* O.的帖子

$(document).ready()source

我需要在JavaScript中等待文档准备,在正文的底部插入一个div.

我想要:

  • 使这个JavaScript文件尽可能小(如果可能,将其编译为<1kb)
  • 内联在闭包中提供文档就绪的代码(不导出它)

在我的文件中内联整个jQuery源代码太大了,所以我正在寻找其他方法.window.onload会工作,但我特别想要文件准备,而不是等待window.onload事件.

有谁知道可以做到这一点的JS片段?或者我应该只复制jQuery的部分源代码?

编辑:

我设法抓取jQuery源代码并将以下代码段放在一起:

var ready = (function () {
    var ready_event_fired = false;
    var ready_event_listener = function (fn) {

        // Create an idempotent version of the 'fn' function
        var idempotent_fn = function () {
            if (ready_event_fired) {
                return;
            }
            ready_event_fired = true;
            return fn();
        }

        // The DOM ready check for Internet Explorer
        var do_scroll_check = function () {
            if (ready_event_fired) {
                return;
            }

            // If IE is used, use the …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

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

如何将*huge*数据块导入PostgreSQL?

我有一个如下所示的数据结构:

Model Place
    primary key "id"

    foreign key "parent" -> Place
    foreign key "neighbor" -> Place (symmetryc)
    foreign key "belongtos" -> Place (asymmetric)

    a bunch of scalar fields ...
Run Code Online (Sandbox Code Playgroud)

我在模型表中有超过500万行,我需要在两个外键表中插入约5000万行.我有这样的SQL文件:

INSERT INTO place_belongtos (from_place_id, to_place_id) VALUES (123, 456);
Run Code Online (Sandbox Code Playgroud)

它们各约为7 Gb.问题是,当我这样做时psql < belongtos.sql,在我的AMD Turion64x2 CPU上导入约400万行需要大约12个小时.操作系统是Gentoo~amd64,PostgreSQL是8.4版,本地编译.数据目录是一个绑定挂载,位于我的第二个扩展分区(),我认为这不是瓶颈.ext4

我怀疑插入外键关系需要这么长时间,因为psql检查每一行的键约束,这可能会增加一些不必要的开销,因为我确信数据是有效的.有没有办法加快导入,即暂时禁用约束检查?

sql database postgresql performance

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

我应该使用GZIP压缩中间件吗?

在与Django合作之后,我发现人们倾向于推荐使用GZIP Middleware来压缩HTML页面.

但是,WSGI v1.0规范告诉我们:

(注意:应用程序和中间件不得Transfer-Encoding对其输出应用任何类型,例如分块或gzipping;作为"逐跳"操作,这些编码是实际Web服务器/网关的范围.请参阅下面的其他HTTP功能, 更多细节.)

这表明压缩应留给服务器/网关.这是有道理的,因为服务器可能要快得多.此外,它可能更喜欢SDCH而不是gzip,因为大多数现代Chrome/Chromium浏览器都支持它.

所以我的问题仍然存在,我是否应该使用中间件来压缩我的回复?具体来说,Google App Engine的正确选择是什么?

编辑:

Pylons Book还包含一个示例gzip中间件.

我没有提到我的选择框架是Pyramid(ex-repoze.bfg).

google-app-engine wsgi

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

在golang中创建TCP客户端

嗨,我试图在golang中学习一些套接字编程,我正在跟随本教程

http://synflood.at/tmp/golang-slides/mrmcd2012.html#1

以下是本教程在一页上的最终结果. https://github.com/akrennmair/telnet-chat/blob/master/03_chat/chat.go

我很困惑如何编写这个程序的客户端,我创建一个连接并拨入服务器运行的同一个端口/ IP但从那里我不知道.我有新创建的连接的read()和write()函数,但不知道在哪里划分读取或任何东西.考虑到文本输入是在服务器中进行的,我想我只需要读一些东西吗?

package main

import (
    "bufio"
    "fmt"
    "net"
    "os"
)

func main() {
    conn, err := net.Dial("tcp", "127.0.0.1:6000")
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }

    for {
        fmt.Println(bufio.NewReader(conn).ReadString([]byte("\n")))
    }

}
Run Code Online (Sandbox Code Playgroud)

sockets networking client tcp go

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

为什么这两个float64具有不同的值?

考虑这两种情况:

fmt.Println(912 * 0.01)
fmt.Println(float64(912) * 0.01)
Run Code Online (Sandbox Code Playgroud)

(去游乐场链接)

第二个打印9.120000000000001,这实际上很好,我明白为什么会这样.

但是,为什么第一行打印9.12,最后没有... 01?Go是否将两个无类型常量相乘,并在编译时简单地用9.12文字替换它们?

floating-point floating-accuracy go

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

使用Python/PIL比较(类似)图像

我正在尝试使用Python 2.6和PIL 计算两个图像的相似度(读取:Levenshtein距离).

我计划用python-levenshtein库进行快速比较.

主要问题:

比较图像的好策略是什么?我的想法是这样的:

  • 转换为RGB(透明 - >白色)(或者转换为单色?)
  • 将较小的一个放大到较大的一个
  • 将每个通道(=唯一通道,如果转换为单色)转换为序列(项值=像素的颜色值)
  • 计算两个序列之间的Levenshtein距离

当然,这不会处理镜像图像,裁剪图像等情况.但是对于基本比较,这应该是有用的.

在某处记录了更好的策略吗?

编辑: Aaron H对速度问题是正确的.对于大于几百乘几百像素的图像,计算Levelshtein需要永远.但是,在我的示例中缩小到100x100和200x200之后的结果之间的差异小于1%,因此将最大图像大小设置为~100px左右可能是明智的...

编辑:感谢PreludeAndFugue,这个问题就是我想要的.

顺便说一句,Levenshtein的距离似乎可以优化,但它给了我一些非常糟糕的结果,也许是因为背景中有很多冗余元素.要看一些其他算法.

EIDT:均方根偏差和峰值信噪比似乎是另外两个选项,不是很难实现,看起来不是很昂贵.但是,似乎我需要某种上下文分析来识别形状等.

无论如何,感谢所有的链接,并指出朝向NumPy/SciPy的方向.

python fuzzy-logic fuzzy-comparison python-imaging-library

8
推荐指数
2
解决办法
9249
查看次数

将postgreSQL触发器应用于数据库中的现有行

我正在使用PostgeSQL 9.2.2.我的数据库架构是

pg_rocks_post

 title                        | character varying(1024) | not null
 body                         | text                    | not null
 body_title_tsv               | tsvector                |
 body_title_titleupweight_tsv | tsvector                |
Run Code Online (Sandbox Code Playgroud)

我创建了body_title_titleupweight_tsv作为类型tsvector.然后,我使用文档中的示例定义了一个触发器,该文档按如下方式对标题进行加权.

pgdj=# CREATE FUNCTION title_upweight_trigger() RETURNS trigger AS $$
begin
new.body_title_titleupweight_tsv :=
setweight(to_tsvector('pg_catalog.english', coalesce(new.title,'')), 'A') ||
setweight(to_tsvector('pg_catalog.english', coalesce(new.body,'')), 'D');
return new;
end
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

我知道触发器有效,因为当我更新pg_rocks_post中的一个条目然后查询它时:我看到它已正确填充了body_title_titleupweight_tsv ts_vector和更新的行.

我的问题是如何将触发器应用于表中的现有行.我只学习postgres,因此我的测试数据库中有几百个条目,想知道如何填充body_title_titleupweight_tsv列.

我认为这样做的一种方法是运行更新并使用类似的东西来编写函数

pgdj=# UPDATE pg_rocks_post SET body_title_titleupweight_tsv =
setweight(to_tsvector( coalesce(title,'')),'A') ||
setweight(to_tsvector(coalesce(body,'')),'D');
Run Code Online (Sandbox Code Playgroud)

而不是在上面的更新语句中再次为触发器重写逻辑.有没有办法通过执行虚拟更新或"触摸"样式操作来触发上面的触发器,该操作会翻转数据库中所有行的触发器.

我试图寻找这种虚拟或"触摸"类型操作的语法或示例,但找不到任何解释如何执行此操作的操作.

postgresql triggers tsvector sql-update

8
推荐指数
1
解决办法
2851
查看次数

在Python中模拟ImportError

我现在正在尝试这个近两个小时,没有任何运气.

我有一个看起来像这样的模块:

try:
    from zope.component import queryUtility  # and things like this
except ImportError:
    # do some fallback operations <-- how to test this?
Run Code Online (Sandbox Code Playgroud)

稍后在代码中:

try:
    queryUtility(foo)
except NameError:
    # do some fallback actions <-- this one is easy with mocking 
    # zope.component.queryUtility to raise a NameError
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:

亚历克斯的建议似乎不起作用:

>>> import __builtin__
>>> realimport = __builtin__.__import__
>>> def fakeimport(name, *args, **kw):
...     if name == 'zope.component':
...         raise ImportError
...     realimport(name, *args, **kw)
...
>>> __builtin__.__import__ = fakeimport
Run Code Online (Sandbox Code Playgroud)

运行测试时: …

python doctest unit-testing mocking zope.component

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

对不可接受的Accept标头的HTTP响应

我的RESTFul API只能响应JSON编码的数据(即我的所有标题都有Content-Type: application/json).如果请求的Accept标头不允许JSON(例如Accept: text/html),我应该返回什么?我应该只返回一个400 Bad Request带有解释的正文,还是有一个更具体的状态代码用于此异常?

请注意,这与不受支持的请求内容类型不同.

api rest http

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

将单行JavaScript注释(//)与re匹配

我想使用python的re模块从(大多数是有效的)JavaScript过滤掉(主要是单行)注释.例如:

// this is a comment
var x = 2 // and this is a comment too
var url = "http://www.google.com/" // and "this" too
url += 'but // this is not a comment' // however this one is
url += 'this "is not a comment' + " and ' neither is this " // only this
Run Code Online (Sandbox Code Playgroud)

我现在正在尝试这个超过半个小时而没有任何成功.谁能帮帮我吗?

编辑1:

foo = 'http://stackoverflow.com/' // these // are // comments // too //
Run Code Online (Sandbox Code Playgroud)

编辑2:

bar = 'http://no.comments.com/'
Run Code Online (Sandbox Code Playgroud)

javascript python regex replace

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