小编dbr*_*dbr的帖子

emacs list-buffers行为

在GNU emacs中,每当我点击Ctrl-x Ctrl-b查看所有缓冲区时,窗口将被拆分以显示缓冲区列表,或者如果我的窗口已经拆分为2(例如,我将在下部窗口中运行一个shell) ,缓冲区列表出现在另一个窗口中.

我想要的行为是缓冲区列表出现在我的活动窗口中,这样我就可以选择我想要的缓冲区并继续在同一个窗口中工作,而不必去Ctrl-x Ctrl-o另一个缓冲区,选择缓冲区(带enter)并编辑在另一个窗口缓冲...我用Google搜索但它似乎不是一个普遍的愿望?我想知道是否有人有elispy(或其他)解决方案?

emacs elisp

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

对于Python单元测试,有类似"自动测试"的东西吗?

基本上,当测试中断或通过时,咆哮通知(或其他回调).有这样的事吗?

如果没有,它应该很容易写..最简单的方法是...

  1. python-autotest myfile1.py myfile2.py etc.py
    • 检查是否已修改要监控的文件(可能只是保存了它们).
    • 在这些文件中运行任何测试.
    • 如果测试失败,但在之前的运行中它通过,则生成一个咆哮警报.与失败然后通过的测试相同.
    • 等待,然后重复步骤2-5.

我可以看到的问题是测试是否在不同的文件中.简单的解决方案是在每次保存后运行所有测试..但是测试速度较慢,这可能需要比保存之间的时间更长,和/或可能使用大量CPU功率等.

最好的方法是实际看看代码的哪些部分发生了变化,如果函数abc()发生了变化,只运行与之交互的测试..虽然这很好,但我觉得它非常复杂实行?

总结一下:

  • 是否有类似Ruby工具autotest(ZenTest包的一部分),但对于Python代码?
  • 如何检查脚本的两个修订版之间哪些功能已更改?
  • 是否可以确定命令将调用哪些函数?(有点像反向追溯)

python testing

43
推荐指数
2
解决办法
8662
查看次数

CouchDB中的分页?

我将如何实现分页所需的查询?

基本上,当请求第1页时,获取前5个条目.对于第2页,获取下一个5,依此类推.

我计划通过couchdb-python模块使用它,但这不会对实现产生任何影响.

pagination couchdb

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

如何绘制git repo的代码行历史?

基本上我想在每次提交后获取存储库中的代码行数.

我发现的唯一(非常糟糕)方法是使用git filter-branch运行,然后运行每个提交wc -l *的脚本git reset --hardwc -l

为了使它更清楚一点,当工具运行时,它将输出第一次提交的代码行,然后输出第二次提交的代码行,依此类推.这就是我希望工具输出的内容(作为示例):

me@something:~/$ gitsloc --branch master
10
48
153
450
1734
1542
Run Code Online (Sandbox Code Playgroud)

我玩过ruby'git'库,但是我发现最接近的是.lines()在diff上使用该方法,这似乎应该给出添加的行(但不是:例如当你删除行时它会返回0)

require 'rubygems'
require 'git'

total = 0
g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api')    

last = nil
g.log.each do |cur|
  diff = g.diff(last, cur)
  total = total + diff.lines
  puts total
  last = cur
end
Run Code Online (Sandbox Code Playgroud)

ruby python git lines-of-code

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

了解低级图形编程

我很有兴趣了解可用于制作图形应用程序的不同抽象层.

我看到很多术语被抛出:在最高级别的抽象中,我听说过C#,.NET,pyglet和pygame之类的东西.再往下,我听说DirectX和OpenGL.然后是DirectDraw,SDL,Win32 API以及其他多平台库,如WxWidgets.

如何才能很好地了解其中一个层的结束位置以及下一个层的开始位置?什么是在Windows中创建窗口的"最低级别"方式?那么C++呢?(代码示例将是神圣的.)在X11中怎么样?OpenGL和DirectX的Windows实现是否构建在Win32 API之上?我在哪里可以开始了解这些事情?

关于SO的另一个问题是建议编程Windows.Linux怎么样?有没有相当于这样的书?

我知道这是非常低级的,并且有许多更友好的工具可用,但我想至少学习表面下发生的事情的基础知识.我想尽可能地开始甩掉窗户和矢量,从像pygame这样的东西开始对我来说太高级了; 我真的需要制作完整的概念电路,介绍如何在计算机上绘制内容.

我一定会欣赏有关书籍和资源的建议,但我认为如果这个问题的答案充满了许多不同的方法来通过不同的图形编程方法来获得"Hello world",那将是非常酷的.C?C++?使用OpenGL?使用DirectX?在Windows XP上?在Ubuntu上?也许我要求太多了.

graphics

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

分发python命令行工具的最佳方法是什么?

我当前的setup.py脚本运行正常,但它将tvnamer.py(工具)安装tvnamer.py到site-packages或类似的地方..

我可以setup.py安装tvnamer.pytvnamer,和/或是否有安装命令行应用程序的更好的办法?

python command-line packaging

40
推荐指数
1
解决办法
6263
查看次数

使用子进程在Windows上运行Python脚本

有没有一种在Windows/Linux/OS X上运行Python脚本的简单方法?

在后两个,subprocess.Popen("/the/script.py")工作,但在Windows上我得到以下错误:

Traceback (most recent call last):
  File "test_functional.py", line 91, in test_functional
    log = tvnamerifiy(tmp)
  File "test_functional.py", line 49, in tvnamerifiy
    stdout = PIPE
  File "C:\Python26\lib\subprocess.py", line 595, in __init__
    errread, errwrite)
  File "C:\Python26\lib\subprocess.py", line 804, in _execute_child
    startupinfo)
WindowsError: [Error 193] %1 is not a valid Win32 application
Run Code Online (Sandbox Code Playgroud)

monkut的评论:用例不明确.为什么要使用subprocess来运行python脚本?是否有什么东西阻止您导入脚本并调用必要的功能?

我正在编写一个快速脚本来测试Python命令行工具的整体功能(在各种平台上测试它).基本上它必须在临时文件夹中创建一堆文件,在此上运行脚本并检查文件是否已正确重命名.

我本可以导入脚本并调用函数,但由于它依赖sys.argv并使用sys.exit(),我本来需要做类似的事情.

import sys
import tvnamer
sys.argv.append("-b", "/the/folder")
try:
    tvnamer.main()
except BaseException, errormsg:
    print type(errormsg)
Run Code Online (Sandbox Code Playgroud)

另外,我想捕获stdout和stderr以便调试出错的地方.

当然更好的方法是以更可单元测试的方式编写脚本,但脚本基本上是"完成",我在做一个"1.0"版本之前做了最后一批测试(之后我会去进行重写/重组,这将更加整洁,更加可测试

基本上,在找到sys.executable变量之后,简单地将脚本作为进程运行要容易得多.我会把它写成一个shell脚本,但这不会是跨平台的.最终的脚本可以在 …

python windows subprocess

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

如何在Clojure中获得用户输入?

我正在学习clojure,但我想知道如何在clojure程序中获取和存储用户输入.我正在查看clojure api,我找到了一个名为read-line的函数,但是我不知道如果使用它是正确的函数...

无论如何,你如何在clojure中获得用户输入?

user-input clojure

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

在Sinatra获取客户端的IP地址?

这是一个非常简单的问题,但我在任何地方都找不到这个.

如何从Sinatra获取客户端的IP地址?

get '/' do
    "Your IP address is #{....}"
end
Run Code Online (Sandbox Code Playgroud)

ip-address sinatra

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

PHP的"安全"降价处理器?

是否有适合在公共评论中使用的降价的PHP实现?

基本上它应该只允许markdown语法的一个子集(粗体,斜体,链接,块引用,代码块和列表),并删除所有内联HTML(或可能转义它?)

我想一个选择是使用普通的降价解析器,并通过HTML杀菌器运行输出,但是有更好的方法吗?

我们在网站的其余部分使用PHP markdown Extra,因此我们必须使用辅助解析器(非"Extra"版本,因为脚本支持之类的东西是不必要的)..它似乎也更好解析在*bold*文本和拥有一切逃到&lt;a href="etc"&gt;,不是生成<b>bold</b>的文本,并试图剥夺我们不想位..

此外,在相关的说明中,我们使用WMD控件作为"主"站点,但是对于评论,还有哪些其他选项?WMD的javascript预览很好,但它需要与PHP降价处理器相同的"中性"(它不能显示图像等等,否则有人会提交并且他们的工作降价会"破坏")

目前我的计划是使用PHP-markdown - > HTML santiser方法,并编辑WMD以从中删除图像/标题语法showdown.js- 但似乎这已经无数次完成了..

基本上:

  • PHP中是否存在"安全"降价实现?
  • 是否有HTML/javascript markdown编辑器可以轻松禁用相同的选项?

更新:我最终只是markdown()通过HTML Purifier运行输出.

这样Markdown呈现与输出消毒是分开的,输出消毒更简单(两个大多数未经修改的代码库)更安全(您不是一次尝试渲染和消毒),而且更灵活(您可以进行多次消毒)等级,比如说可信内容的配置更宽松,公众评论的版本更严格)

php security markdown user-input

36
推荐指数
1
解决办法
5250
查看次数