我正在研究相当复杂的项目,一次又一次,我必须缩小查看堆栈跟踪的问题.它们恰好很长,同时涉及"我的"代码,标准库代码和第三方库代码.大多数时候,真正的问题是在"我的"代码中并立即将其定位在堆栈跟踪中对于眼睛来说有点困难.在"我的"代码下,我指的是当前工作目录下的代码.
所以我意识到我想要一些能够使堆栈轨迹着色并突出显示我的线条的东西.比较原始和突出显示.
我可以写一个我可以用这种方式使用的python脚本:
nosetests | colorize_stack_trace.py
Run Code Online (Sandbox Code Playgroud)
但我相信使用Linux工具集可以更快,更优雅地完成此任务.有任何想法吗?
UPD:
使用Dennis Williamson建议的supercat,中间结果是遵循bash函数:
pyst() {
rc=/tmp/spcrc;
echo '#################### ### # # # ########################################' > $rc;
echo ' blk 0 r ^(.*)$' >> $rc;
echo ' mag b 0 r ^\s*File "'`pwd`'/(.*)"' >> $rc;
spc -c $rc;
}
Run Code Online (Sandbox Code Playgroud)
现在我能做到:
nosetests 2>&1 | pyst
Run Code Online (Sandbox Code Playgroud)
不太优雅,但在某种程度上起作用.还有两个问题:
UPD 2:
问我这个问题主要nosetests
是考虑到了.我刚刚找到了很好的解决方案:rednose nose plugin.它突出了本地路径以及更多方便可读性的东西.
回到原始问题:我用supercat注意到的问题与它完全无关,但它是Unix shell流,刷新,管道,重定向的问题.因此,作为一个答案的问题问我接受建议supercat答案.
我有一个服务器生成的HTML,如:
<ul>
<li><!-- few nested elements that form a block --></li>
<li><!-- few nested elements that form anaother block --></li>
<li><!-- etc, X times --></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
所有块都已知宽度为200px且未知高度.我希望<li>
像这样以表格式的方式安排:
我现在拥有的是跟随css:
li {
display: block;
width: 200px;
float: left;
margin: 10px;
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,除了列没有达到相同的高度.在上面的例子中,第4块"抢夺"#1,结果不是我想要实现的:
是否有任何纯CSS跨浏览器方式允许我想要的网格布局,并且不会强制执行标记更改?
我在谈论这些.
是的,我知道它们旨在表明该页面符合标准,并应链接到页面重新验证服务.好.但为什么我作为普通用户会为此烦恼呢?作为访问者,我对页面是否是严格的XHTML无动于衷,是否包含脏IE浏览器黑客攻击.页面呈现正确,方便且快速运行非常重要.就这样!实际上,在许多情况下,这些要求并不能顺利地符合W3C标准.
那么将针对开发人员的东西添加到产品中的狂热是什么?我错过了一点吗?
我正在编写一个工具c#(和System.Net.Mail),它将发送大约4000封电子邮件.
我可以简单地遍历4000个电子邮件地址列表并一次发送一封电子邮件吗?或者这会导致任何潜在的问题吗?
有一个更好的方法吗?
谢谢
我很难理解ZeroMQ消息系统,所以在我潜入之前,我想知道是否有人知道我想做什么甚至是可能的.
我想设置一个带有ZeroMQ的pubsub服务器,它将发布某些数据流并订阅其中一些流,用户必须进行身份验证才能看到他们是否可以访问这些流.我见过的所有内容都使用zmq.SUBSCRIBE命令进行订阅.
可以修改以进行身份验证吗?是否支持开箱即用?
我正在与Python项目中的内存泄漏作斗争并且已经花了很多时间在它上面.我把这个问题推到了一个小例子.现在看来我知道解决方案,但我无法理解为什么.
import random
def main():
d = {}
used_keys = []
n = 0
while True:
# choose a key unique enough among used previously
key = random.randint(0, 2 ** 60)
d[key] = 1234 # the value doesn't matter
used_keys.append(key)
n += 1
if n % 1000 == 0:
# clean up every 1000 iterations
print 'thousand'
for key in used_keys:
del d[key]
used_keys[:] = []
#used_keys = []
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
我的想法是在dict中存储一些值d
并记住列表中使用的键,以便能够不时清理dict.
程序的这种变化充满信心地使记忆永远不会回来.如果我使用替代方法"清除" …
请考虑以下代码段:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>
<body>
<form>
<a id="a" href="http://google.com">Goooooogle</a>
</form>
<script>
$(function() {
var checkbox = $('<input type="checkbox"></input>');
checkbox.prependTo($('#a'));
checkbox.click(function(e) {
e.stopPropagation();
// do something useful
});
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我想在里面找到一个复选框<a>
,并获得以下点击行为:
a href
此外,如果我单击任何位置a
,但我不希望覆盖默认行为,而不是复选框.即我想允许执行与a
click本身相关的所有事件处理程序.
我认为这应该很容易,但我不能得到理想的行为.或者:
e.preventDefault()
,我不会切换复选标记return false;
.此外,在该情况下,复选框忽略显式checkbox.attr('checked', 'checked')
和所有其他可能的方式来设置复选标记.捕获量在哪里?
UPD:这在Chrome中按预期工作,例如我没有在点击时重定向,但在Firefox中失败.有跨浏览器的方式吗?
大约半年前,我决定提高编程效率,所以我学会了触摸打字并转向Vim.一切都很好,我觉得自己比以前好多了.然而,有一个问题让我一直都很烦恼:我该如何触摸IDENTIFIERS_WRITTEN_IN_CAPS
?
GOOGLE
这种情况是一个挑战.你如何触摸打字员处理SQL,Makefiles,Win API,DirectX以及需要打印的所有内容?
以下工作正常,即它没有给出任何错误:
def foo(arg):
class Nested(object):
x = arg
foo('hello')
Run Code Online (Sandbox Code Playgroud)
但以下引发异常:
def foo(arg):
class Nested(object):
arg = arg # note that names are the same
foo('hello')
Run Code Online (Sandbox Code Playgroud)
追溯:
Traceback (most recent call last):
File "test.py", line 6, in <module>
foo('hello')
File "test.py", line 3, in foo
class Nested(object):
File "test.py", line 4, in Nested
arg = arg
NameError: name 'arg' is not defined
Run Code Online (Sandbox Code Playgroud)
我无法理解这种行为的原因.有人可以解释一下吗?
如果我有以下url conf:
urlpatterns = patterns('',
url(r'^projects-json$', 'projects.views.list'),
)
Run Code Online (Sandbox Code Playgroud)
我去/projects-json
URL解析很好.请注意,没有斜杠.
但是我想要一个点,而不是URL中的连字符,所以我用这种方式重写url conf:
urlpatterns = patterns('',
url(r'^projects\.json$', 'projects.views.list'),
)
Run Code Online (Sandbox Code Playgroud)
现在,如果我去,/projects.json
我会被重定向到/projects.json/
并获得404作为后果!如果我在url模式中添加一个尾部斜杠,我将在带有尾部斜杠的URL处获得OK响应.但我只想要一个简单的事情:匹配/projects.json
没有任何重定向和斜线.Django可以这样做吗?我已经失去了很多时间来解决这个原始问题.谁能发现错误?
settings.APPEND_SLASH = False
.但看起来没关系.以防万一它可能很重要:
MEDIA_ROOT = ''
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/admin-media/'
Run Code Online (Sandbox Code Playgroud) python ×4
css ×2
html ×2
bash ×1
c# ×1
checkbox ×1
class ×1
debugging ×1
django ×1
django-urls ×1
editing ×1
email ×1
email-spam ×1
javascript ×1
jquery ×1
layout ×1
memory ×1
memory-leaks ×1
nested ×1
performance ×1
touch-typing ×1
validation ×1
vim ×1
w3c ×1
zeromq ×1