小编Tob*_*ede的帖子

使用V8和PostgreSQL进行Javascript序列化和性能

我一直在试验PostgreSQL和PL/V8,它将V8 JavaScript引擎嵌入到PostgreSQL中.使用这个,我可以查询数据库中的JSON数据,这非常棒.

基本方法如下:

CREATE or REPLACE FUNCTION 
  json_string(data json, key text) RETURNS TEXT AS $$
  var data = JSON.parse(data); 
  return data[key];
$$ LANGUAGE plv8 IMMUTABLE STRICT;

SELECT id, data FROM things WHERE json_string(data,'name') LIKE 'Z%';
Run Code Online (Sandbox Code Playgroud)

使用,V8我可以将JSON数据解析为JS,然后返回一个字段,我可以将其用作常规的pg查询表达式.

在大型数据集上,性能可能是一个问题,因为我需要解析数据的每一行.解析器速度很快,但它肯定是过程中最慢的部分,每次都必须发生.

我试图制定出(到最后得到一个实际的问题)是,如果有一种方法可以缓存或预处理的JSON ......即使存储JSON表中的二进制表示,可以由V8使用自动作为JS对象可能是一个胜利.我已经看过使用替代格式,例如messagepack或protobuf,但我不认为它们在任何情况下都必须与原生JSON解析器一样快.

思想

PG有blob和二进制类型,因此数据可以以二进制形式存储,然后我们只需要一种方法将其编组到V8中.

javascript postgresql v8 plv8

26
推荐指数
3
解决办法
4485
查看次数

用于悬停的CSS,包括所有子元素

我有一个带有悬停风格的可拖动div元素.这工作正常,但div包含一些表单元素(标签,输入).问题是,当鼠标悬停在这些子元素上时,将禁用悬停.

<div class="app_setting">
  <label">Name</label>
  <input type="text" name="name"/>
</div>

.app_setting:hover {
  cursor:move;
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何让悬停也适用于子元素?

html css

23
推荐指数
2
解决办法
3万
查看次数

是否可以使用Rails Asset Pipeline强制生成资产?

在使用Rails 3.1 Asset Pipeline时,有没有办法强制每次请求重新生成资产?

当使用带有一系列partials和mixin文件的Less(less-rails)时,我在让系统获取文件更改时遇到问题.如果我可以强制系统在每个请求上生成,那么我的工作效率会更高.

ruby-on-rails less ruby-on-rails-3.1 asset-pipeline

18
推荐指数
3
解决办法
8039
查看次数

是否存在Node.js/JavaScript的Thrift或Cassandra客户端

我想开始使用带有node.js部署的Cassandra,但我找不到Node.js和/或JavaScript的Thrift或Cassandra客户端.

有吗?

有没有简单的方法来生成Thrift连接?

更新:对这个问题的简短回答结果证明是,没有与Thrift兼容的Cassandra的JS客户端.

进一步更新: Cassandra的下一个版本(撰写本文时为0.8)将支持Avro API.已有node.js模块用于Avro支持.

javascript thrift cassandra node.js

17
推荐指数
2
解决办法
9219
查看次数

您使用哪些工具进行Web应用程序的安全性测试?

您是否建议使用任何工具来进行Web应用程序的安全性测试?

我使用过OWASP的WebScarab,但发现它使用起来有点困难和笨拙.

你还建议使用其他更好的东西吗?

security testing web-applications security-testing

16
推荐指数
0
解决办法
4333
查看次数

使用clojurescript以惯用方式访问json对象

任何人都有任何用于访问javascript对象的idiomatic clojurescript的文档(作为json返回,本质上是哈希)?

我有一个通过AJAX请求返回的JSON对象:

{
  list: [1,2,3,4,5],
  blah: "vtha",
  o: { answer: 42 }
}
Run Code Online (Sandbox Code Playgroud)

如何使用clojurescript访问这些字段?

我可以:

(.-list data)
Run Code Online (Sandbox Code Playgroud)

但是当我有嵌套值和对象时,它是如何工作的?

(.-answer (.-o data))
Run Code Online (Sandbox Code Playgroud)

以上似乎非常笨拙,特别是考虑到良好的js语法:data.o.answer.

用clojurescript访问json对象的惯用方法是什么?

注意:

我意识到我实际上可以使用JS语法来引用元素,这实际上非常方便.所以以下内容将正常工作:

(str data.o.answer)
Run Code Online (Sandbox Code Playgroud)

javascript json clojure clojurescript

15
推荐指数
3
解决办法
8131
查看次数

如何使用Cloud Formation为CloudFront分配配置ACM证书

我正在尝试使用Cloud Formation在我的CloudFrontDistribution中设置证书.

我的证书已通过证书管理器发出.它已被批准,我已经验证证书可以通过CloudFront控制台直接手动配置.

在我的CloudFormation模板中,我尝试在IamCertificateId属性中使用与证书关联的标识符ARN值:

"ViewerCertificate" : {
  "IamCertificateId" : "********",
  "SslSupportMethod": "sni-only"
}
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下我都收到以下错误:

The specified SSL certificate doesn't exist, isn't valid, or doesn't include a valid certificate chain.
Run Code Online (Sandbox Code Playgroud)

阅读DistributionConfig Complex Type的文档,看起来有一个'ACMCertificateArn'属性,但这似乎不适用于CloudFormation.

任何帮助,将不胜感激.

ssl ssl-certificate amazon-web-services amazon-cloudfront aws-cloudformation

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

Ruby on Rails的对象数据库

是否存在使用某种Object Store的ActiveRecord的替代品?

我在想像Erlang的MNesia是理想的.

更新

我一直在调查CouchDB,我认为这是我要选择的选项.这是使用CouchRest和ActiveCouch之间的折腾.CouchRest非常成熟,并且在CouchDB peepcode插曲中使用,但它不是ActiveRecord的替代品,这有点不利.

我只想说CouchDB是非常惊人的.

更新(2009年11月10日)

CouchDB并没有真正为我工作.CouchDB并不真正支持任意查询(需要提前编写和编译查询).它还打破了非常大的数据集.

我一直在玩MongoDB,这真的很不可思议.具有查询和索引的无架构JSON数据存储.

我甚至开始为它建立一个名为Ming的管理工具.

ruby database ruby-on-rails object-oriented-database

14
推荐指数
2
解决办法
3882
查看次数

Clojure允许多个具有相同名称的绑定

我试图理解我在Clojure中注意到的一些行为.

可以使用重复多次的相同绑定名创建let绑定:

(let [a 1 a 2 a b] a)
; (= a 2)

(let [a 1 a 2 a 3] a)
; (= a 3)
Run Code Online (Sandbox Code Playgroud)

我明白让绑定进行评估,这一切都很有意义.

我对文档的理解是"用let创建的本地人不是变量.一旦创建,他们的价值观永远不会改变!"

上述语法是否实际更改了绑定的值?

这感觉它应该引发错误.

作为一种旁注:

有趣的是,您可以使用clojurescript输出上面的JS:

var a__36584 = 1, b__36585 = 2, a__36586 = b__36585;
var a__30671 = 1, a__30672 = 2, a__30673 = 3;
Run Code Online (Sandbox Code Playgroud)

在这里我们可以看到,这些值实际上都是不同的变量,它们指向了封面下发生的事情,但是一些澄清将非常有用.

clojure clojurescript

12
推荐指数
3
解决办法
1233
查看次数

Rails:将分期与生产区分开来

我有一个生产服务器和一个临时服务器,在将它们投入生产之前测试新功能.登台服务器在物理上与生产服务器不同(具有不同URL的不同主机),但它尽可能地模仿它(即相同的包,相同的宝石等).

Rails.env = 'production' 在两台服务器上.

我的问题是,在某些情况下,我需要不同于生产中的不同行为.

例如,新功能可能会在生产时向用户发送大量电子邮件; 但是当我测试它时,我宁愿将它们发送到"测试"电子邮件帐户.

检测我所在服务器的最佳方法是什么?

我想尽可能地"raily".

非常感谢.

ruby-on-rails staging

11
推荐指数
1
解决办法
3829
查看次数