存档

文章标签 ‘python’

把 emacs 做为 python ide

2009年7月13日 wd 1 条评论

emacs 用的其实不是很多,不过他实在是个好东西,各种 mode,用熟了肯定能帮你提升不少工作速度。

我用 emacs-cvs , ropemacs( dev 版, > 0.6 ), rope ( > 0.9.2 ), company-mode ( > 0.4.2 ) 这几个软件在 gentoo 里面都还没有,我自己写了几个 ebuild。

装好之后,基本就是 require 一下就好,我没做什么设置,效果如下。

here

分类: Linux 标签: ,

改良的 fetion.py

2009年7月6日 wd 没有评论

这个 fetion.py 来自 这里

不修改的情况下,-t 可以是 sip, uid, mobile_no 这几个。

我修改了下,不加 -t 参数会打印联系人列表。另外还能用 nickname 来发(没测试,我没几个好友,没好意思发)。

这里

分类: Linux 标签: ,

asm 和 python的扯淡 zz

2009年5月14日 wd 1 条评论

python: 兄弟,最近我手头紧,能借点不?

asm: 行,不过怎么你以前不是过得还滋润的,怎么现在混这么差,

python: 不知道啊,现在根本接不到什么项目,听说还有风声要收回我的开发资质。

asm: 你要改变观念,才会有市场。

python: 什么观念?

asm: 现在流行的是软件的要有科学性

python: 什么是软件的科学性?

asm: 我自己也不清楚,不知道哪位大神定义的科学的软件就是要有bug,现在的人们认为软件不可能没有bug,
否则就不是软件,所以bug越多越好,我就非常适合创造bug。搞好点三步一回头,搞不好一步三回头。

python:我不行啊,我开发的东西bug相对少得很多。

asm: 难怪别人不找你做项目。通常别人都认为软件这个东西啊就是通过不断消灭bug,不断创造bug,最终走
向稳定成熟的。你bug要是少了,客户会认为你蒙它,不科学。

python: 太阳啊,我设计出来就是为了减少软件开发少出bug的,这样不是要我的命?
那你开发项目时候弄出那么多bug,进度不是很慢,成本也很高?客户能接受?

asm: 这你不懂,这里的人就是人傻,钱多,你不这样干,他们还认为你是在蒙它,哪里有这么轻易就作出来的东西,
我的特点就是能把简单的东西弄复杂,而你呢,把复杂的东西简单化,显然不受常人的欢迎,人都是好奇的动物,
喜欢复杂的事情,越花花绿绿越好。你还不错了,看Lisp兄弟那惨样。

python: 那项目要是复杂了,规模大了你能应付?

asm: 管他,我也知道我对付不了大规模的项目,用人堆,人月算得高高的,到那个程度,我自己也糊涂了,
不知道要怎么整合了,bug比太平洋里头的珊瑚虫还多,根本做不下去。就给客户说目前技术水平只能达到
这个程度就行了,他们能接受,能将就用就用,不能用就宣告失败。

python: 不会吧,这种规模的东西在我看来并不难啊,项目失败他们不去告你?

asm: 也有告的,不过现在法律有规定,只要你能列出你开发时候的所有设计过程和调试信息,能证明你尽力了,
系统确实复杂到技术是无法解决的,就没事。
python: 你怎么提供?

asm: 我开发的特点你还不知道,代码量本身巨大,调试信息非常多,而且清楚得很,动不动就扔N个core出来,上次那个
破搜索项目我扔了几十T的core给客户,他们还屁颠地当宝一样永久保存

python: 搜索~~,太阳!这些家伙为什么就是不找我?

asm: 现在的人不懂你那套,太玄,你的log绝大部分只记录你逻辑上的东西,现在的客户要求太高了,每一步都要知道CPU各寄存器的状态,
总线电压高低,内存的实时快照,多了。你还自动类型定义,自动类型转换,谁信。什么高阶函数,闭包都冒出来。
你的设计思想不错,我都想学习,不过很难学,至于客户,他们更搞不懂,云里雾里。上次Lisp大兄弟去接个基因分析项目被
人轰了出来,说什么一堆乱七八糟的括号太神秘,什么抽象语法树,语法还能自定义,简直胡扯,就是巫术,内存管理更
不透明。那些客户喜欢看到分配释放内存,很具体,很直观,Python兄弟你这个连内存管理都不给客户看的,也很难混日子。

pyton: 我自己带了gc,又不要他们考虑。

asm: 他们不会吃你gc这套的,你不明确给他们说分配多少字节内存出来,什么时候释放,他们不卖帐。

python: 我太阳,又不是所有项目都要这么控制精细的。

asm: 看我,我每一段代码都很明确,和机器结合得很紧密,写磁盘发个IO指令,让他们看得实在。你那个write太玄乎,到最后写盘还不知道隔了多少层
他们不放心。现在的人认死理,一个问题只能有一个答案,一种解决方法。你看你变化多端,谁都能搞得糊。不过不要紧,我做不下去的时候可以介
绍他们过来给你继续做。

python: 那真的很感谢,最近真的没米下锅,你是帮了我的大忙了。

asm: 没什么,不过我要告诉你的就是这类客户的开发经费被我榨得差不多了,到你那可能没多少钱付给你了。

python: 没关系,再少总比没有好。(哭)

asm: 最后告诉你一个秘密,人的弱点就是天生有奴性,贱,喜欢复杂的东西,好奇,盲从,注重眼前,捡芝麻丢西瓜。
对简洁的东西不感兴趣。因为他们通常认为简洁就是简单。书从薄读到厚,又从厚读到薄 的人没几个的。太相信
自己的眼睛,不相信自己的心。我猜可能是猪油吃太多了的缘故。 表面的东西他们非常热衷,看得到,实在。喜欢
追涨杀跌,所以股市里头为什么那么多人输钱,就是这样,你弄得越火热,价格越高,越多人买,生怕赶不上末班车,
价格越掉越不买,持币待购。我早期玩股票,学了点技术,觉得自己无所不能了,也来搞一把,也是整天盯着盘,
那个实时价格跳得我心都肿了,输得去穿strip,后来学乖了,抓住趋势,买入,中间不看了细节了,趋势没了就抛了,
最后挣钱了。前几年房价疯涨,多少人怕涨到天上去,砸锅卖铁,把下辈子的养老钱都预支出来去买,看现在,傻了吧。
所以有些复杂的东西,你越想从细节控制它,它越不听你的话,你和它对抗没用,早晚死它手里,要顺势。
明白了,今后你要挣这些人的钱,要抓他们的弱点。

分类: Linux 标签:

写了一个 kde plasma applet

2009年1月23日 wd 1 条评论

用 gnome 的时候,对 panel 上面的 cpu 等 applet 情有独钟。这个东西能让我对自己的系统有第一手信息,有时候某个程序出问题了 cpu 100% 了,这个时候系统反应不一定会变慢的,但是这个程序是必须要被干掉的,有了这个 applet 我就能知道第一时间知道出问题了。还有的时候看 firefox 里面的 flash 的时候也会出类似的情况,这时会导致看别的网页很慢,那就干掉他。

第一次装 kde 的时候发现没有那些东西,让我很失望。后来看到 ob 在 openbox 里面把 panel 设的短一点,然后用 conky 在空出来的地方显示一些信息,感觉豁然开朗啊,呵呵。

这次装好 kde,就弄了一个 conky,可是发现他的风格和系统不兼容。有点不爽,就琢磨自己能不能弄一个,因为需求实在太简单了。

昨天花了一个下午,总算弄好了。参考的文档 qt的类, pyqt4 turtorial,plasma python .

效果就这样。电池旁边那个就是。

代码

#
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyKDE4.plasma import Plasma
from PyKDE4 import plasmascript
import time                                      
 
class Cpuinfo(plasmascript.Applet):
        def __init__(self,parent,args=None):
                plasmascript.Applet.__init__(self,parent)
 
        def init(self):
                self.freqnow = ''
                self.freqmax = ''
                self.temp = ''
                self.text = ''   
 
                self.getCurrentFreq()
                self.getMaxFreq()
                self.getTemp()       
 
                self.setHasConfigurationInterface(False)
                self.setMinimumWidth(100)
                self.setAspectRatioMode(Plasma.Square)
                self.startTimer(1000)
 
        def getCurrentFreq (self):
                line = open ('/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq', 'r').read().rstrip('\n')
                line = int(line) / 1000 /1000.0
                self.freqnow = line
 
        def getMaxFreq (self):
                line = file('/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq', 'r').read().rstrip('\n')
                line = int(line) / 1000 /1000.0
                self.freqmax = line
 
        def getTemp (self):
                line = file('/proc/acpi/thermal_zone/TZ1/temperature', 'r').read().rstrip('\n')
                line = " ".join(line.split()[1:])
                self.temp = line
 
        def timerEvent(self, event):
                self.getCurrentFreq()
                self.getTemp()
                self.text = "%s\n%.2f %d%%" % (self.temp, self.freqnow, self.freqnow / self.freqmax * 100)
                self.update() 
 
        def paintInterface(self, painter, option, rect):
                painter.save()
                painter.setPen(Qt.white)
                #painter.setFont(QFont('Consolas',11))
                painter.drawText(rect, Qt.AlignVCenter | Qt.AlignHCenter, self.text)
                painter.restore()
 
def CreateApplet(parent):
                return Cpuinfo(parent)
 
if __name__ == '__main__':
        a = Cpuinfo(None)
        a.init()
        print a.freqnow
分类: Linux 标签: , ,