小编Kyl*_*nin的帖子

使用Git push部署项目

是否可以使用git push?部署网站?我有一个预感,它与使用git hooksgit reset --hard在服务器端执行有关,但我将如何实现这一目标呢?

git deployment webserver githooks

410
推荐指数
10
解决办法
12万
查看次数

GOTO仍被视为有害吗?

每个人都知道Dijkstra 给编辑信件:转到被认为有害的声明(也就是这里 .html脚本和这里的 .pdf)并且从那时起就有一个强大的推动,尽可能避开goto声明.虽然可以使用goto来生成不可维护的,庞大的代码,但它仍然保留在现代编程语言中.甚至Scheme中的高级连续控制结构也可以被描述为复杂的goto.

什么情况下可以使用goto?什么时候最好避免?

作为后续问题:C提供了一对函数setjmp和longjmp,它们不仅可以在当前堆栈帧内,而且可以在任何调用帧中进行转换.这些应该被视为像goto一样危险吗?更危险吗?


Dijkstra本人对这个头衔表示遗憾,他对此不负责任.在EWD1308(也是这里 .pdf)结束时,他写道:

最后是一个短篇小说的记录.1968年,ACM的通讯以" 被认为有害的goto声明 "的标题发表了我的一篇文章,遗憾的是,在后来的几年中,这一期刊最常被引用,但是,经常被作者看到的不多于标题,通过成为一个模板成为我的名声的基石:我们会看到几乎任何X的标题"X被认为有害"的各种文章,包括一个标题为"Dijkstra被认为有害"的文章.但是发生了什么?我提交了一份题为" 反对goto声明的案件 "的论文"为了加快出版速度,编辑已经变成了一封"给编辑的信",并在此过程中给了他一个新的自己的发明名称!编辑是Niklaus Wirth.

关于这个主题的经过深思熟虑的经典论文,与Dijkstra的相关,是结构化编程,由Donald E. Knuth撰写.阅读都有助于重新建立背景和对主题的非教条性理解.在本文中,Dijkstra对此案的观点得到了报道,甚至更为强烈:

Donald E. Knuth:我相信通过提出这样一种观点,我实际上并不同意Dijkstra的观点,因为他最近写了以下内容:"请不要陷入相信我非常悲惨的陷阱.去发言.我有其他人正在一个宗教出来的不舒服的感觉,就好像编程的概念问题可以通过一个单一的技巧来解决,通过编码规则的简单形式! "

language-agnostic goto

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

围绕表中特定行的边框?

我正在尝试设计一些HTML/CSS,它可以在表格中的特定行周围放置边框.是的,我知道我不是真的应该使用表格进行布局,但我不知道足够的CSS来完全替换它.

无论如何,我有一个包含多行和多列的表,有些与rowspan和colspan合并,我想在表的各个部分周围放一个简单的边框.目前,我正在使用4个单独的CSS类(顶部,底部,左侧,右侧),我分别附加到表<td>的顶部,底部,左侧和右侧的单元格.

.top {
  border-top: thin solid;
  border-color: black;
}

.bottom {
  border-bottom: thin solid;
  border-color: black;
}

.left {
  border-left: thin solid;
  border-color: black;
}

.right {
  border-right: thin solid;
  border-color: black;
}
Run Code Online (Sandbox Code Playgroud)
<html>

<body>

  <table cellspacing="0">
    <tr>
      <td>no border</td>
      <td>no border here either</td>
    </tr>
    <tr>
      <td class="top left">one</td>
      <td class="top right">two</td>
    </tr>
    <tr>
      <td class="bottom left">three</td>
      <td class="bottom right">four</td>
    </tr>
    <tr>
      <td colspan="2">once again no borders</td>
    </tr>
    <tr>
      <td class="top bottom left right" colspan="2">hello</td>
    </tr>
    <tr> …
Run Code Online (Sandbox Code Playgroud)

html css border css-tables

119
推荐指数
4
解决办法
29万
查看次数

Mac OS X上的Emacs Leopard键绑定

我是Mac用户,我决定学习Emacs.我已经读过这样可以减少手部疲劳并提高精度,CTRL并且CAPS LOCK应该更换钥匙.我如何在Leopard中执行此操作?

此外,在终端我必须使用ESC密钥来调用元.有没有办法让alt/option键代替调用meta?

更新:虽然控制键现在更容易被击中,但元键也经常被使用,以至于它在我的MacBook和Apple键盘上的位置也值得关注.事实上,我发现控制键实际上更容易被击中,所以我重新映射了我的控制键以充当元键.有没有人有更好/更标准的解决方案?

macos emacs keyboard-shortcuts key-bindings

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

使用Python的timeit来定义"全局名称'foo'"

我试图找出执行Python语句需要多长时间,所以我在线查看并发现标准库提供了一个名为timeit的模块,其目的是做到这一点:

import timeit

def foo():
    # ... contains code I want to time ...

def dotime():
    t = timeit.Timer("foo()")
    time = t.timeit(1)
    print "took %fs\n" % (time,)

dotime()
Run Code Online (Sandbox Code Playgroud)

但是,这会产生错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in dotime
  File "/usr/local/lib/python2.6/timeit.py", line 193, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
NameError: global name 'foo' is not defined
Run Code Online (Sandbox Code Playgroud)

我还是Python新手,我不完全理解它所有的范围问题,但我不知道为什么这个片段不起作用.有什么想法吗?

python scope timeit

83
推荐指数
4
解决办法
4万
查看次数

删除Amazon S3存储桶?

我一直在通过S3Fox与Amazon S3进行交互,我似乎无法删除我的存储桶.我选择一个桶,点击删除,在弹出窗口中确认删除,然后......没有任何反应.我应该使用另一种工具吗?

buckets amazon-s3

56
推荐指数
7
解决办法
5万
查看次数

如何实现延续?

我正在使用C语言编写的Scheme解释器.目前它使用C运行时堆栈作为自己的堆栈,这实现了实现continuation的一个小问题.我目前的解决方案是手动将C堆栈复制到堆中,然后在需要时将其复制回来.除了不是标准C之外,这种解决方案并不理想.

在C中实现Scheme的延续的最简单方法是什么?

c lisp scheme continuations

53
推荐指数
9
解决办法
7586
查看次数

什么是找到重叠矩形区域的有效算法

我的情况

  • 输入:一组矩形
  • 每个rect由4个双打组成:(x0,y0,x1,y1)
  • 它们不是以任何角度"旋转",它们都是相对于屏幕"上/下"和"左/右"的"正常"矩形
  • 它们随机放置 - 它们可能在边缘接触,重叠或没有任何接触
  • 我将有几百个矩形
  • 这是在C#中实现的

我需要找到

  • 由它们重叠形成的区域 - 画布中多个矩形"覆盖"的所有区域(例如,具有两个矩形,它将是交叉点)
  • 我不需要重叠的几何形状 - 只需要区域(例如:4平方英寸)
  • 重叠不应该被计算多次 - 例如,想象3个具有相同大小和位置的rects - 它们是相互重叠的 - 这个区域应该被计算一次(不是三次)

  • 下图包含三角形矩形:A,B,C
  • A和B重叠(如虚线所示)
  • B和C重叠(如虚线所示)
  • 我正在寻找的是显示破折号的区域

-

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
AAAAAAAAAAAAAAAA--------------BBB
                BBBBBBBBBBBBBBBBB
                BBBBBBBBBBBBBBBBB
                BBBBBBBBBBBBBBBBB
                BBBBBB-----------CCCCCCCC
                BBBBBB-----------CCCCCCCC
                BBBBBB-----------CCCCCCCC
                      CCCCCCCCCCCCCCCCCCC
                      CCCCCCCCCCCCCCCCCCC
                      CCCCCCCCCCCCCCCCCCC
                      CCCCCCCCCCCCCCCCCCC
Run Code Online (Sandbox Code Playgroud)

algorithm optimization performance geometry

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

确定数组是否包含n ... n + m的算法?

我在Reddit上看到了这个问题,并没有提出积极的解决方案,我认为这是一个完美的问题.这是关于面试问题的一个主题:

编写一个采用大小为m的int数组的方法,如果数组由数字n ... n + m-1组成,则返回(True/False),该范围内的所有数字以及该范围内的数字.不保证数组已排序.(例如,{2,3,4}将返回true.{1,3,1}将返回false,{1,2,4}将返回false.

我遇到的问题是我的采访者一直要求我优化(更快的O(n),更少的内存等),他声称你可以在数组的一次传递中使用恒定量的记忆.从未想过那一个.

除了您的解决方案,请指出他们是否认为该阵列包含唯一的项目.同时指出您的解决方案是否假设序列从1开始.(我稍微修改了一下这个问题以允许它变为2,3,4 ......)

编辑:我现在认为在空间算法中不存在处理重复的线性时间和常数.任何人都可以验证吗?

重复问题归结为测试以查看数组是否在O(n)时间,O(1)空间中包含重复项.如果可以这样做,您可以先测试,如果没有重复,则运行算法.那么你可以在O(n)时间O(1)空间中测试欺骗吗?

arrays puzzle algorithm big-o

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

实用的非图灵完整语言?

几乎所有使用的编程语言都是图灵完备,虽然这提供了语言来表示任何可计算的算法,但它也有自己的一组问题.看到我写的所有算法都打算停止,我希望能够用一种语言来代表它们,以保证它们会停止.

正则表达式用于匹配字符串和有限状态机在使用时词法,但我不知道是否有这不是图灵完整更普遍的,广泛的语言吗?

编辑:我应该澄清,通过'通用'我不一定希望能够在语言中编写所有停止算法(我不认为这样的语言会存在)但我怀疑有共同的线程停止可以推广的证明,以产生一种语言,保证所有算法都停止.

还有另一种解决这个问题的方法 - 消除理论上无限记忆的需要.一旦限制了机器允许的内存量,机器所处的状态数是有限且可数的,因此您可以确定算法是否会停止(通过不允许机器进入之前的状态) ).

regex finite-automata halting-problem turing-complete

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