这是一个非常多的理论问题,但是......
有多少操作系统可以用Python,Ruby,Perl或Lisp,Haskell等语言编写?
似乎很多像init.d这样的东西可以用脚本语言来完成.其中一个防火墙设备操作系统(m0n0wall)使用PHP进行系统配置(包括启动时).有人可能会说"emacs是一个操作系统,主要是用Lisp编写的".
当然有些东西必须是assembly/C,但有多少可能是常规的.py/rb/.pl/.el/.hk文件..?它可能没有最好的性能,但到目前为止,它将是迄今为止最容易修改的操作系统......
实现命令行UI的"最干净"方式是什么,类似于git,例如:
git push origin/master
git remote add origin git://example.com master
Run Code Online (Sandbox Code Playgroud)
理想情况下还允许更灵活的解析,例如,
jump_to_folder app theappname v2
jump_to_folder app theappname source
jump_to_folder app theappname source v2
jump_to_folder app theappname build v1
jump_to_folder app theappname build 1
jump_to_folder app theappname v2 build
Run Code Online (Sandbox Code Playgroud)
jump_to_folder是脚本名称,app是命令,theappname是"固定位置"参数,"构建"和"v2"等是参数(例如,可能的参数是任何数字/任何前缀为av的数字,或者build/source/TMP /配置)
我可以用一系列if/ else/ 手动解析参数elifs,但必须有更优雅的方法来做到这一点?
作为一个完全理论上的例子,我可以描述UI模式..
app:
fixed: application_name
optional params:
arg subsection:
"build"
"source"
"tmp"
"config"
arg version:
integer
"v" + integer
Run Code Online (Sandbox Code Playgroud)
然后通过上面的模式解析提供的参数,并获取一个字典:
>>> print schema.parse(["app", "theappname", "v1", "source"])
{ …Run Code Online (Sandbox Code Playgroud) 是否有一种简单的方法来克隆整个安装的debian/ubuntu系统?
我想在安装的软件包和尽可能多的设置方面进行相同的安装.
我已经研究了aptitude,apt-get,synaptic的选项但却一无所获.
如果我在IPython中运行了一个长行,并尝试在当前行开头之外调用它(使用向上箭头)或退格,则它显示不正确(全部被刷成一行)
例如,在下面的会话中,我写了一个长行[1],输入了一个空白的行[2],然后向上箭头两次以使该print语句在线[3],并发生以下情况:

发生在iTerm和Terminal.app中.我遇到了常规终端会话的类似问题,通过正确终止颜色代码修复了这个问题,但我不确定如何使用IPython进行修复
基本上,我真的很喜欢vi [m]的键绑定,但不是编辑器的其余部分.我真的不喜欢emacs键绑定,但是和其他编辑器一样.
viper-mode 看起来两全其美,但它并不完美..
你在emacs中错过了哪些vim功能(更重要的是,你是如何得到它们的)?你做了什么配置调整来使viper模式更好用?
作为开始:我真的很想念vim的视觉选择模式.. vimpulse将其添加到emacs!
我一直在玩Ruby库"鞋子".基本上,您可以通过以下方式编写GUI应用程序:
Shoes.app do
t = para "Not clicked!"
button "The Label" do
alert "You clicked the button!" # when clicked, make an alert
t.replace "Clicked!" # ..and replace the label's text
end
end
Run Code Online (Sandbox Code Playgroud)
这让我想到 - 我如何在Python中设计一个同样易于使用的GUI框架?一个没有通常的基本上是C*库包装的东西(在GTK,Tk,wx,QT等的情况下)
鞋子从web开发(如#f0c2f0样式颜色表示法,CSS布局技术等:margin => 10)和ruby(以明智的方式广泛使用块)中获取东西
Python缺乏"rubyish块"使得(隐喻)直接端口变得不可能:
def Shoeless(Shoes.app):
self.t = para("Not clicked!")
def on_click_func(self):
alert("You clicked the button!")
self.t.replace("clicked!")
b = button("The label", click=self.on_click_func)
Run Code Online (Sandbox Code Playgroud)
没有那么干净,并且几乎不会那么灵活,我甚至不确定它是否可以实现.
使用装饰器似乎是一种将代码块映射到特定操作的有趣方法:
class BaseControl:
def __init__(self):
self.func = None
def clicked(self, func):
self.func = func
def …Run Code Online (Sandbox Code Playgroud) 我有一个NSTableView我希望允许用户将视频文件拖放到.当他们删除文件时,它将在表视图中添加为一行.
我该怎么做呢?目前tableview的数据来自一个数组控制器(从NSMutableArray获取数据)
我找到了这个文档,但似乎无法使它工作..
我有..
registerForDraggedTypes在TableCon的init中调用- (NSDragOperation)draggingEntered:(id <NSDraggingInfo>)sender;(再次在TableCon中)但是,没什么,它的行为就像我从未改变过任何事情(没有错误),我做错了什么?
编辑:我已经试过落实波阿斯Stuller的建议,同时也发现了这个解决方案的描述(第一个答复包括解决第一篇文章).所以我现在所做的就是......
tableView插件到TableListCon(并指向NSTableView)同样,没有错误/警告,但似乎只调用了awakeFromNib方法(没有调用其他方法)
Windows(Vista)命令行上获取远程Web服务器上文件大小和修改时间的最佳方式(或工具)是什么,而不下载它?
我试图用matplotlib在Python中绘制一堆数据点(数千个),所以我需要每个标记都非常小而精确.如何获得最小的最简单的标记?我使用此命令绘制我的数据:
matplotlib.pyplot( x , y ,'.',markersize=0.1,linewidth=None,markerfacecolor='black')
Run Code Online (Sandbox Code Playgroud)
然后我可以用它来查看它pl.show()然后保存它.或者直接plt.savefig('filename.ps')在代码中使用来保存它.问题是这样的:当我pl.show()用来查看GUI中的文件时,它看起来很小,带有小的黑色标记,但是当我从show()GUI 保存到文件或直接使用savefig然后查看ps我创建的它看起来不同!每个标记都在它周围获得了一点蓝色光环(好像它从每个点开始将它们与默认的蓝线连接起来,但没有)并且样式都是错误的.保存时为什么会改变风格?如何阻止python强制标记的样式?是的,我已经看过一些像CairoPlot这样的替代软件包,但我现在想继续使用matplotlib.
更新:原来,保存为PNG首先使颜色变成好的,但它迫使图像的转换,当我想再次将其保存为.ps更高版本(包含在PDF),然后我失去质量.如何保留文件的矢量性质并获得正确的格式?
如何使用Mercurial解决以下问题.
假设我有一个库Core.我现在想要开发一个名为Extension的扩展库.我想让Core在物理上与Extension分开,也就是说,Core是一个开源库,而Extension是一个基于Core的私有库(也许它包含了一些我想保留个人的东西.无论如何.).显然,我不想将Extension中的整个源代码推送到公共存储库.但另一方面,我可能希望将某些更改从Extension扩展到Core(如果我决定"将扩展部分"捐赠给Core),反之亦然(如果我想合并bug修复,请说).
您将如何解决这个问题,最大限度地降低扩展到Core的风险(一旦将历史记录推送到公共服务器,就不会再回头了!),同时保持灵活性以便对某些更改执行此操作.分行?克隆?MQS?别的什么?
我目前只熟悉克隆存储库,非常喜欢它的简单性.
编辑: 我提出了这个计划,但我无法让它在Windows下工作.两个存储库(核心和扩展).在Extension中有两个分支,也是Core和扩展.现在,你可以在Mercurial中为每个存储库注册一个钩子,所以我想在Core repo中注册一个'pretxnchangegroup'钩子,它不允许来自Extension分支的签入,就像Mercurial书中所解释的那样.除了我不太明白在Windows下工作.所以:
python ×4
command-line ×2
apt ×1
cocoa ×1
coding-style ×1
debian ×1
emacs ×1
frameworks ×1
http ×1
ipython ×1
linux ×1
matplotlib ×1
mercurial ×1
objective-c ×1
terminal ×1
ubuntu ×1
vim ×1
windows ×1