这&rest意味着什么:(append &rest sequences)
我已经完成了"elisp_intro"一书,但我找不到答案.如果你能帮助我,我将非常感激.
默认情况下,当您sudo gem install thegemname将可执行文件安装到/usr/bin/
有没有办法改变这个?例如,要将它们安装到/usr/local/rubygems/bin(或任何其他路径)?
该路径似乎没有硬编码到gemspec文件中,所以我不明白为什么这不可能(尽管我对Ruby/Gems的经验很少)
我正在寻找建立一个提示用户时区的表单.我看过'谷歌方法',它看起来效果很好.首先从下拉列表中选择一个国家/地区,然后根据选择,使用时区选项填充下拉列表.我一直在寻找一个拥有国家 - 时区关系的体面数据库,但似乎无法找到一个.有谁知道我在哪里找到一个?
例如,http://developer.apple.com/cocoa/pyobjc.html仍然适用于OS X 10.4 Tiger,而不是10.5 Leopard ..而且这是Apple的官方文档..
官方PyObjC页面同样糟糕,http: //pyobjc.sourceforge.net/
这太糟糕了,令人费解......我正在考虑学习Ruby主要是因为RubyCocoa的东西有更好的文档记录,并且有很多不错的教程(例如http://www.rubycocoa.com/),并且因为鞋子GUI工具包..
即使是这个严重自动翻译的日语教程也比我能找到的其他文档更有用.
我想要做的就是使用Cocoa GUI创建相当简单的Python应用程序..
任何人都可以了解可怕的文档,或者指出一些教程不仅仅会给你巨大的代码块并假设你知道什么NSThread.detachNewThreadSelector_toTarget_withObject_("queryController", self, None)是... ?
我有兴趣使用Python制作Google Talk客户端,并希望使用Twisted libraries Words模块.我查看了这些示例,但它们不适用于当前的Google Talk实施.
这有什么运气的吗?你介意记录一个简短的教程吗?
作为一项简单的任务,我想创建一个客户端/机器人,跟踪我的各种Google Talk帐户的在线时间,以便我可以获得总数.我想我可以在每个帐户中与机器人交朋友,然后使用XMPP状态信息来跟踪我可以聚合的时间.
谢谢.
我有一个urllib2缓存模块,由于以下代码,它偶尔会崩溃:
if not os.path.exists(self.cache_location):
os.mkdir(self.cache_location)
Run Code Online (Sandbox Code Playgroud)
问题是,到第二行执行时,文件夹可能存在,并将出错:
File ".../cache.py", line 103, in __init__
os.mkdir(self.cache_location)
OSError: [Errno 17] File exists: '/tmp/examplecachedir/'
这是因为脚本同时启动了很多次,由第三方代码我无法控制.
代码(在我尝试修复bug之前)可以在github上找到
我不能使用tempfile.mkstemp,因为它通过使用随机命名的目录(tempfile.py source here)来解决竞争条件,这会破坏缓存的目的.
我不想简单地丢弃错误,因为如果文件夹名称作为文件存在(不同的错误),则会引发相同的错误Errno 17错误,例如:
$ touch blah
$ python
>>> import os
>>> os.mkdir("blah")
Traceback (most recent call last):
File "", line 1, in
OSError: [Errno 17] File exists: 'blah'
>>>
我无法使用,threading.RLock因为代码是从多个进程调用的.
所以,我尝试编写一个简单的基于文件的锁(这个版本可以在这里找到),但是这有一个问题:它创建一个级别的锁文件,所以/tmp/example.lock对于/tmp/example/,如果你/tmp/用作缓存目录,它会中断(因为它尝试制作/tmp.lock)..
简而言之,我需要缓存urllib2对光盘的响应.为此,我需要以多进程安全的方式访问已知目录(如果需要,创建它).它需要在OS X,Linux和Windows上运行.
思考?我能想到的唯一替代解决方案是使用SQLite3存储而不是文件重写缓存模块.
基本上,我已经用Python在www.thetvdb.com上编写了一个API.可在此处找到当前代码.
它根据请求从API中获取数据,并且必须以某种方式存储数据,并通过执行以下操作使其可用:
print tvdbinstance[1][23]['episodename'] # get the name of episode 23 of season 1
Run Code Online (Sandbox Code Playgroud)
在Tvdb()课堂上抽象这些数据的"最佳"方法是什么?
我最初使用了一个Dict()自动创建子代码的扩展(所以你可以不必x[1][2][3][4] = "something"这样做if x[1].has_key(2): x[1][2] = []等等)
然后我就这样存储了数据 self.data[show_id][season_number][episode_number][attribute_name] = "something"
这样做没问题,但没有简单的方法来检查是否x[3][24]应该存在(所以我无法提出season_not_found异常).
目前,它的使用四个类:ShowContainer,Show,Season和Episode.每一个都是一个非常基本的字典,我可以轻松地添加额外的功能(例如,search()函数Show()).每个都有一个__setitem__,__getitem_和has_key.
这个工作大部分都很好,我可以查看显示它是否有它的self.datadict中的那个季节,如果没有,raise season_not_found.我也可以检查Season()它是否有那一集等等.
现在的问题是,它的提出本身作为一个字典,但不具有的所有功能,而且因为我重写__getitem__和__setitem__功能,很容易不小心递归调用__getitem__(所以我不知道如果扩展Dict类会引起问题).
另一个小问题是将数据添加到dict中的工作量远远超过旧Dict方法(当时self.data[seas_no][ep_no]['attribute'] = …
我正在研究为什么测试用例失败
有问题的测试可以简化为执行操作(4.0/9.0) ** (1.0/2.6),将其四舍五入为6位数并检查已知值(作为字符串):
#include<stdio.h>
#include<math.h>
int main(){
printf("%.06f\n", powf(4.0/9.0, (1.0/2.6)));
}
Run Code Online (Sandbox Code Playgroud)
如果我在Linux上的gcc 4.1.2中编译并运行它,我得到:
0.732057
Run Code Online (Sandbox Code Playgroud)
Python同意,Wolfram | Alpha也是如此:
$ python2.7 -c 'print "%.06f" % (4.0/9.0)**(1/2.6)'
0.732057
Run Code Online (Sandbox Code Playgroud)
但是我在Linux上的gcc 4.4.0和OS X上的4.2.1上得到以下结果:
0.732058
Run Code Online (Sandbox Code Playgroud)
一个double行为相同(虽然我没有广泛测试此)
我不确定如何进一步缩小这个范围.这是一个gcc回归吗?舍入算法的变化?我做些傻事?
编辑:将结果打印到12位,第7位的数字是4对5,这解释了舍入差异,但不是值差:
gcc 4.1.2:
0.732057452202
Run Code Online (Sandbox Code Playgroud)
gcc 4.4.0:
0.732057511806
Run Code Online (Sandbox Code Playgroud)
以下是gcc -S两个版本的输出:https://gist.github.com/1588729
当我绘制一个图形时matplotlib如何保存它而没有额外的边距?通常当我保存为
plt.savefig("figure.png") # or .pdf
Run Code Online (Sandbox Code Playgroud)
我得到了一些利润:
例:
import matplotlib.pyplot as plt
import networkx as nx
G=nx.Graph()
G.add_edge('a','b',weight=1)
G.add_edge('a','c',weight=1)
G.add_edge('a','d',weight=1)
G.add_edge('a','e',weight=1)
G.add_edge('a','f',weight=1)
G.add_edge('a','g',weight=1)
pos=nx.spring_layout(G)
nx.draw_networkx_nodes(G,pos,node_size=1200,node_shape='o',node_color='0.75')
nx.draw_networkx_edges(G,pos,
width=2,edge_color='b')
plt.axis('off')
plt.savefig("degree.png", bbox_inches="tight")
plt.show()
Run Code Online (Sandbox Code Playgroud)
更新2:
这些空间设置在轴内.如果我删除,这很清楚plt.axis('off')
所以我认为有一些技巧可以用于Networkx包.
这是一个非常多的理论问题,但是......
有多少操作系统可以用Python,Ruby,Perl或Lisp,Haskell等语言编写?
似乎很多像init.d这样的东西可以用脚本语言来完成.其中一个防火墙设备操作系统(m0n0wall)使用PHP进行系统配置(包括启动时).有人可能会说"emacs是一个操作系统,主要是用Lisp编写的".
当然有些东西必须是assembly/C,但有多少可能是常规的.py/rb/.pl/.el/.hk文件..?它可能没有最好的性能,但到目前为止,它将是迄今为止最容易修改的操作系统......