小编cal*_*531的帖子

Git:从diff中的行中删除前导加号/减号

我的问题很简单,但我找不到答案.

我想删除每行中的前导加号/减号git diff.在你问我为什么要这样做之前,请允许我概述一下我的理由:

  1. 正好是80个字符的行将被一个字符溢出,这看起来很尴尬
  2. 着色足以让我区分添加/删除
  3. 我更喜欢将终端的窗口宽度保持在80个字符(而不是任意81个字符),以保持与我在终端(外部git)中所做的其他事情保持一致

这样做有一些配置选项吗?如果没有,我怎么能以一种仍允许我翻阅我的差异less风格的方式来做到这一点?

任何见解将不胜感激.

git git-diff

37
推荐指数
4
解决办法
8838
查看次数

WebM与Ogg Theora

如何将Ogg Theora和WebM与以下参数进行比较: -

  1. 压缩效率
  2. 计算效率
  3. 更广泛的适应性问题(为什么没有人制作出能够进行Ogg或WebM转码的硬件芯片;就像目前为H.264做的那样)
  4. 可能/未来的知识产权问题
  5. 现有设备的可用性

我问这些问题的原因是因为我需要在软件项目中选择Ogg Theora和WebM格式,我是一个FLOSS信徒.

video html5 ogg-theora webm

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

Apache:"Header always set"和"Header set"之间的区别?

问题

  1. Header always setHeader setApache有什么区别?
  2. 也就是说,always关键字在设置标题的情况下会发生什么变化?
  3. 我应该总是使用标题设置always吗?
  4. 有什么理由不去吗?

背景

我见过...

Header always set X-Frame-Options DENY
Run Code Online (Sandbox Code Playgroud)

...以及...

Header always set Access-Control-Allow-Headers "*"
Run Code Online (Sandbox Code Playgroud)

...我有时会听到always关键字的存在确保标题设置正确,或者always通常包含关键字更好.但是,我从来没有找到一个明确的,明确的答案,为什么会这样.

我已经检查了Apache文档mod_headers,只是简单地提到always:

当您的操作是现有标头的函数时,您可能需要指定始终的条件,具体取决于设置原始标头的内部表.始终对应的表用于本地生成的错误响应以及成功响应.另请注意,在某些情况下重复使用这两个条件的指令是有意义的,因为对于现有标头,始终不是onsuccess的超集:

  • 您正在为本地生成的非成功(非2xx)响应添加标头,例如重定向,在这种情况下,在最终响应中仅使用始终对应的表.
  • 您正在修改或删除由CGI脚本生成的标头,在这种情况下,CGI脚本在对应于始终而不是默认表的表中.
  • 您正在修改或删除某些服务器生成的标头,但默认的onsuccess条件未找到该标头.

据我所知,这意味着Header set always确保即使在非200页面上也设置了标题.但是,我设置的HTTP标头Header set似乎总是适用于我的404页面等.我在这里误解了什么吗?

FWIW,我发现了SO帖子,比如Apache的Header配置中"always"和"onsuccess"之间有什么区别?,但唯一的答案并没有真正为我解释清楚.

非常感谢,
Caleb

apache .htaccess http-headers

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

使用JavaScript检查XML错误

问题:如何在现代浏览器(除了IE之外的任何东西)中对我的XML进行语法检查?

在W3Schools上看过一个包含XML语法检查器的页面.我不知道它是如何工作的,但我想知道如何实现同样的行为.

我已经在这个问题上进行了很多搜索(没有成功),我尝试使用DOM Parser来检查我的XML是否"格式正确"(也没有成功).

var xml = 'Caleb';
var parser = new DOMParser();
var doc = parser.parseFromString(xml, 'text/xml');

我希望解析器告诉我我有一个XML语法错误(即一个未关闭的名称标签).但是,它总是返回一个XML DOM对象,就好像根本没有错误一样.

总而言之,我想知道如何使用JavaScript自动检查XML文档的语法.

PS有没有办法可以针对DTD验证XML文档(使用JS,而不是IE)?

javascript xml dom

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

Python:具有相同名称的常规方法和静态方法

介绍

我有一个Python类,其中包含许多方法.我希望其中一个方法具有静态对应物 - 即具有相同名称的静态方法 - 可以处理更多参数.经过一番搜索,我发现我可以使用@staticmethod装饰器来创建一个静态方法.

问题

为方便起见,我创建了一个简化的测试用例来重现问题:

class myclass:

    @staticmethod
    def foo():
        return 'static method'

    def foo(self):
        return 'public method'

obj = myclass()
print(obj.foo())
print(myclass.foo())
Run Code Online (Sandbox Code Playgroud)

我希望上面的代码将打印以下代码:

public method
static method
Run Code Online (Sandbox Code Playgroud)

但是,代码打印以下内容:

public method
Traceback (most recent call last):
  File "sandbox.py", line 14, in <module>
    print(myclass.foo())
TypeError: foo() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)

从这里,我只能假设调用myclass.foo()尝试调用其非静态对应物而没有参数(这将无效,因为非静态方法总是接受参数self).这种行为让我感到困惑,因为我希望对静态方法的任何调用都能实际调用静态方法.

我已经在Python 2.7 3.3中测试了这个问题,只是为了收到同样的错误.

问题

为什么会发生这种情况,我该如何修复我的代码以便打印:

public method
static method
Run Code Online (Sandbox Code Playgroud)

正如我所料?

python static class decorator

15
推荐指数
4
解决办法
5841
查看次数

如何最小化(二进制)搜索树的视觉宽度?

介绍

我正在构建一个HTML5 Web应用程序,它从给定的数字列表中创建二叉搜索树的可视化表示.

目前,我有一个算法,根据树的最大深度(这是一个基数为0的值)计算每行节点之间的视觉间距:

offset = 50
offset *= pow(2, maxDepth - currentDepth)
Run Code Online (Sandbox Code Playgroud)

从这里开始,使用该偏移量和其父节点的x位置确定节点的位置.

该算法运行良好,因为它始终能够适应任何深度的最宽树.然而,这也使得树有时不必要地宽.

例子

树枝向左(太宽):

树枝向左分支http://f.cl.ly/items/0c0t0L0L0o411h092G2w/left.png

树枝分叉到两侧(左侧和右侧可以更靠近在一起).

树枝分枝到两侧http://f.cl.ly/items/0r3X1j0w3r1D3v1V1V3b/left-right.png

理想情况下,上面的树应该像金字塔一样,宽度较小,边长,如下图所示:

分支到两侧时的理想树

平衡树(算法最佳的情况):

平衡树http://f.cl.ly/items/203m2j2i3P1F2r2T3X02/balanced.png

履行

属性

我正在使用Backbone.js从Node模型创建节点.每个节点都具有以下属性:

  • parent(父节点)
  • left(左子节点)
  • (右子节点)
  • x(节点的x位置,以像素为单位)
  • y(节点的y位置,以像素为单位)

上面的xy属性是根据节点分支的方向计算的:

if (parent.get('left') === node) {
    x = parentX - offsetX;
    y = parentY + offsetY;
} else if (parent.get('right') === node) {
    x = parentX + offsetX;
    y = parentY + offsetY;
}
Run Code Online (Sandbox Code Playgroud)

此时,xy属性是用于定位节点的确切值(每个节点都位于容器元素内的绝对值).

方法 …

javascript algorithm binary-tree spacing graph-visualization

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

使用HTML5 FileWriter truncate()方法?

我正在尝试HTML5文件API,我需要使用一种我不太了解的方法(仅仅因为它几乎没有记录在任何地方).

我在谈论FileWriter truncate()方法,我知道它做了我需要做的事情.基本上,不是将文本附加到某些文件数据或使用seek()来覆盖某个部分,我想用其他东西覆盖所有数据(例如从"somedata"到"").

这是HTML5Rocks中的FileWriter设置片段,其中添加了truncate().

function onInitFs(fs) {

  fs.root.getFile('log.txt', {create: false}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.seek(fileWriter.length); // Start write position at EOF.
      fileWriter.truncate(1);

      // Create a new Blob and write it to log.txt.
      var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.
      bb.append('Hello World');
      fileWriter.write(bb.getBlob('text/plain'));

    }, errorHandler);

  }, errorHandler);

}

window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler);
Run Code Online (Sandbox Code Playgroud)

当它调用writer.truncate()时,调用writer.write()会引发File Exception错误.我相信这是因为readyState设置为WRITING.不幸的是,我不知道如何解决这个问题.

我已经试过翻翻的HTML5Rocks节上这一点,但它并没有告诉我任何关于截断()方法(虽然我知道它是什么的Webkit JS控制台告诉我存在).

长话短说,我怎么能正确使用truncate()方法而不会出错?

javascript html5 truncate filewriter

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

Bash:"rm -d"和"rm -R"有什么区别?

问题

  • Bash中的命令rm -drm -R命令有什么区别?
  • 我应该使用哪一个?

细节

根据rm命令的手册页:

  • rm -d 尝试删除目录以及其他类型的文件.
  • rm -R尝试删除以每个文件参数为根的文件层次结构.-R选项表示-d选项.

现在,我知道最后的陈述(-R暗示-d),这似乎可以回答我的问题.但是,我仍然想知道为什么两个命令标志首先存在,如果他们认为它们的相同之处.

此外,因为我仍然在学习Bash,我认为最好知道哪个选项是Bash程序员(传统上)的首选,以及为什么.

bash terminal rm

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

JavaScript:将对象存储为固定值?

我在编写JavaScript时注意到了这种行为,但我无法弄清楚原因:

下面是一些重现相关行为的代码.

var o1 = {
  num: 1
}
var o2 = o1;
o2.num = 2;
alert(o1.num);

预期结果:浏览器警告1,因为我只更改了o2对象的属性,而不是o1对象.

实际结果:浏览器提醒2,因为似乎o1等于o2.

我不确定发生了什么事.我如何修复代码,使其提醒1而不是2(假设o1没有改变)?

非常感谢提前.

javascript variables object

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