小编tre*_*ace的帖子

为什么Ruby的正则表达式使用\ A和\ z而不是^和$?

我不是Ruby程序员,但在阅读广泛的Ruby on Rails安全指南时,我注意到了这一部分:

Ruby正则表达式中常见的缺陷是将字符串的开头和结尾与^和$匹配,而不是\ A和\ z.

有谁知道这只是美学问题还是其他问题?我问,因为我只使用了使用^和的语言$.

ruby regex ruby-on-rails

29
推荐指数
1
解决办法
7118
查看次数

为什么"overflow-y:hidden"会影响x轴上溢出的项目的可见性?

考虑这个例子:

http://jsfiddle.net/treeface/P8JbW/

HTML:

<div id="test">
    <img src="http://ycombinator.com/images/y18.gif" />
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#test {
    position:relative;
    margin-left:50px;
    margin-top:50px;
    border:1px solid black;
    height:50px;
    width:50px;
    overflow-x:visible;
    overflow-y:hidden;
}
img {
    position:absolute;
    left:-11px;
}
Run Code Online (Sandbox Code Playgroud)

我期待看到这个:

在此输入图像描述

但是我得到了这个:

在此输入图像描述

看来overflow-x属性在这里被覆盖了.这是真的发生了什么?假设我必须将overflow-y设置为隐藏,是否有解决此问题的方法?

html css

26
推荐指数
2
解决办法
7858
查看次数

Travis和矩阵组合

我想针对许多浏览器测试我的.js框架的不同版本

我希望写下这样的东西:

language: node_js
node_js:
- 0.11
env:
  matrix:
    - BUILD='nocompat'
    - BUILD='compat'
    - BUILD='default'

    - BROWSER='ie6'
    - BROWSER='ie7'
    # etc... about total 15 browsers/platforms
Run Code Online (Sandbox Code Playgroud)

但是我使用它的唯一方法是"手动"指定所有组合......

喜欢:

env:
  matrix:
    - BROWSER='chrome_linux'    BUILD='default'
    - BROWSER='chrome_linux'    BUILD='compat'
    - BROWSER='chrome_linux'    BUILD='nocompat'
    - BROWSER='firefox'         BUILD='default'
    - BROWSER='firefox'         BUILD='compat'
    - BROWSER='firefox'         BUILD='nocompat'

    # etc ... and this is about 50 lines!
Run Code Online (Sandbox Code Playgroud)

还有另一种方法吗?或者这是正确的方法吗?

travis-ci

26
推荐指数
1
解决办法
9335
查看次数

为什么CSS宽度和高度属性不能调整填充?

所以首先要设置一些场景:

HTML

<div id="container">
    <div id="inner">test</div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS

#container {
    width:300px;
    height:150px;
    background-color:#d7ebff;
}

#inner {
    width:100%;
    height:100%;
    padding:5px;
    background-color:#4c0015;
    opacity:.3;
}
Run Code Online (Sandbox Code Playgroud)

这将在所有现代浏览器中产生类似于此的东西:

CSS内部宽度测试显示内部盒子超过容器

现在我知道这是符合标准的行为(正如我之前所知,但在本文中再次确认,我也知道如果我在内部CSS声明中包含此代码:

box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box
Run Code Online (Sandbox Code Playgroud)

...它将采用"边框"模型并获得对我来说更直观的行为,但我发现自己试图在逻辑上证明为什么这就是它的原因并且我无法做到.

看起来(在事物的表面上)对于我来说更合乎逻辑的是内盒总是将容器填充到容器宽度的正好100%,而不管内盒的填充或边框.当我试图将textarea的宽度设置为100%具有边框或类似4px内部填充的东西时,我一直遇到这个问题... textarea将始终溢出容器.

所以我的问题是......在设置宽度时,设置默认行为以忽略元素的边框和填充的原理是什么?

html css standards

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

什么是在数据库中存储Mandelbrot值的最佳方法?

我正在尝试渲染一个Mandelbrot集,我很快就意识到不必重新计算每次渲染的最大迭代次数......另一方面,它需要大量的数据来跟踪的.在我看来(基于我对RDMSes的有限经验),关系数据库可能不是可行的方法,因为我不希望随着数据集变大而影响性能.它几乎看起来像哈希表的完美情况,但我以前从未使用过,似乎无法解决如何使用或管理现有的一种Web服务器语言(Python/PHP /无论如何).

更明确一点:要存储的重要值是:

  • 复杂平面上数字的原始实部
  • 复平面上数字的原始虚部
  • 数量最多的迭代
  • 命中最大迭代之前的完成迭代次数 n或直到该点运行到无穷大
  • n次迭代后复平面上数字的最后一个实部
  • n次迭代后复平面上数字的最后虚部

在任何给定的时间,给定原始实部,原始虚部最大迭代次数,我希望能够得到具有最终实部和虚部的结果集.

所以你怎么看?哈希表是否可行?这个问题对于凡人数据结构来说是否过于复杂?

任何帮助都将非常感激.提前致谢!

编辑

我会根据julienaubert的要求对这个问题进行一些阐述.

我的目标是允许用户在没有计算延迟的情况下放大Mandelbrot集(即使它是通过预定义的缩放).我还希望能够在浏览器中执行此操作,该浏览器不断要求服务器提供新的数据数组,以便在复杂的平面上查看新的x和y坐标以及高度和宽度.但是,由于计算像素颜色值可以更快地完成(给定max_iter,real_final和imag_final),并且因为允许用户调整颜色设置会很好,所以我只会发送浏览器在我的帖子中枚举的变量,让用户的浏览器计算颜色.

看看这个:

http://jsfiddle.net/xfF3f/

如果查看drawMandelbrot()函数,可以看到点循环将重要值存储在名为dataset的变量中.然后在drawMandelbrotFromData()函数中使用此变量,在该函数中,它执行计算每个像素颜色所需的剩余计算.

如果单击"cleardabrot",它将用白色矩形替换画布.如果单击"refilldabrot",它将再次运行drawMandelbrotFromData()函数...这样做是为了向您显示实际渲染集合的速度,只要它不必执行痛苦的迭代计算.

因此,这里的最终目标是能够将这些值计算为任意精度,因此用户可以缩放到该集合的任何级别,让服务器弄清楚是否有这些精确点的任何数据(或者,最好是点NEAR那些确切的要点......虽然我不确定如何在不执行某种范围查询的情况下完成这项工作,然后逐个像素地回吐信息.例如...

  • 用户正在使用300x300画布.
  • 他放大到一个地步,左上角是x = .000001y = .0000231.
  • 他在这个框架中选择的宽度和高度是w = .00045h = .00045

他会将这些数字发送到服务器并依次接收一个包含300*300索引的数组(一个代表每个点),每个索引包含确定画布上每个像素颜色的必要信息.我的问题是......存储预先计算的Mandelbrot数据的最佳方法是什么,这样用户可以输入任意的x,y,w和h值,并快速拉回复平面上的点的值.范围.

database-design hashtable fractals data-structures

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

触发选项卡索引切换时是否会触发 JavaScript 事件?(TABINDEX 不适用于 IFRAME 中的输入)

我的具体用例是我有一个所见即所得编辑器,它基本上是一个可编辑的 iframe。然而,对于用户来说,它看起来像一个标准的文本区域。我的问题是,我在(感知的)选项卡索引中的该编辑器之前和之后有输入,我希望用户能够按选项卡(或他选择的平台上的等效键)进入所见即所得编辑器当他位于前一个元素时,使用 Shift-Tab 可以在后一个元素中访问该元素。

我知道这可以使用按键事件并检查是否按下 Tab 键来伪造,但我很好奇是否有更好的方法。


更新。Treeface在评论中澄清了实际问题。

问题

在正常情况下,您可以使用元素TABINDEX的“ ”属性<input>来控制,当跳出“主题”输入字段(以电子邮件形式)时,焦点落在电子邮件中的“正文”输入字段上。只需将正确排序的值分配给两个输入字段的“TABINDEX”属性即可完成此操作。

问题是 TABINDEX 属性仅对同一框架内的元素进行排序。因此,如果“正文”输入字段实际上位于内部IFRAME,则无法使用 TABINDEX 顺序从父框架中的“主题”直接跳到 IFRAME 中的“正文”。

javascript jquery events jquery-events

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

是否将数组连接到自身比循环遍历数组以创建更多索引更快?

我只是看看three.js github页面上的示例源代码,我遇到了这个ImprovedNoise类,它基本上是一个Perlin噪声脚本:

https://github.com/mrdoob/three.js/blob/master/examples/js/ImprovedNoise.js

在ImprovedNoise函数的最顶层是这样的:

var p = [151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,
         23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,
         174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,
         133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,
         89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,
         202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,
         248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,
         178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,
         14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,
         93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180];

for (var i=0; i < 256 ; i++) {

    p[256+i] = p[i];

}
Run Code Online (Sandbox Code Playgroud)

您会注意到p填充了一个随机排序的数字0到255的p数组.一旦数组建立,脚本就会for在数组中的每个位置上循环,并有效地从位置256到511锁存自身的副本.顺序相同,但索引移动了256.

所以我的问题是:在JavaScript中循环这样的数组或者简单地执行它是否更快..

p = p.concat(p);
Run Code Online (Sandbox Code Playgroud)

javascript arrays performance loops

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

使用boost.python从C++将变量导出到python中

例如,我有一个c ++中的varibale:

const float Pi = 3.1415926535898f;
Run Code Online (Sandbox Code Playgroud)

使用boost.python将它导出到python-module的最佳方法是什么?

我想在全局范围内将其作为变量访问.

c++ python variables boost export

4
推荐指数
1
解决办法
2216
查看次数

jQuery - 我可以将对象引用与其他选择器结合使用吗?

偶尔我会将一个'对象'传递给jQuery而不是id或其他选择器.例如

<input type="text" onclick="doit(this)" />

<script type="text/javascript">
function doit(e) {
    var a = $(e).val();
}
Run Code Online (Sandbox Code Playgroud)

当id不方便时很有用,例如长元素列表或动态创建的输入字段.我实际上看过任何传递对象的例子.我只是尝试过它,它的工作原理.

我的问题是:我可以将对象选择器与其他选择器结合使用,例如我将使用id.而不是:

$("#myDiv .myClass").something()
Run Code Online (Sandbox Code Playgroud)

我不知道如何编码 - 这样的事情可能:

$(e + " .myclass").something
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery

3
推荐指数
1
解决办法
1918
查看次数

将一些jquery脚本添加到Magento页面

这让我疯了.我无法弄清楚如何将一些jquery脚本附加到Magento 1.4.2中特定页面的head部分.我已经通过编辑page.xml将最新的jquery库添加到所有页面,并且我添加了无冲突的东西.

我知道我需要在相关页面的自定义布局更新区域添加一些代码.然而,没有任何作用,我已经尝试了许多代码,当我稍后检查源代码时,没有出现在页面的头部.

我在官方mangeto论坛上发布了同样的问题但八天后没有回复.那个论坛很难得到建议大多数问题都没有答案:(.任何想法如何通过自定义布局更新这个例如?

$(document).ready(function(){
    $("a").click(function(event){
        alert("Thanks for visiting!");
    });
});
Run Code Online (Sandbox Code Playgroud)

我已经尝试将其封装在脚本标签中,在reference = head标签中.什么都行不通.拉出我的头发,我用Google搜索了我能想到的每个单词短语,但没有关于如何在Magento中添加脚本到页面头部的示例.请帮忙.

xml jquery magento e-commerce

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