Posted on

零碎

MS我是个话痨,饭否没了,这里随便唠叨几句吧。
最近看的一些东西:
兔斯基出了第一本书《我兔斯基你》,迫不及待买了精装本来看。完全不是我想要的,甚至没有耐心去看完。我想要的是《依然饭特稀》那种轻松的,可是兔斯基这个有些重了。其实看封面就应该知道的,“眯眼观人生,情绪显哲学”,带上哲学就不好玩了。我只是要娱乐而已。
《爱情公寓》,一个国产情景喜剧,看了后心情会很好的,我要的就是这种。本来打算留着跟女朋友一起看的,可是我忍不住,第一季二十集,已经看了五集了。
《先知》,烂片,大烂片,啥都没有,不知道导演到底想给我们看什么。
《少年手指虎》,好片,很不错的片子。女主角也很可爱。不过日本人是种族问题吧,看起来就是猥琐的样子,尤其是刚开始的时候。
《有话好好说》,很老的一个片子吧。看李笑来的博客中提到,就去VC上找到下了回来,不错。
《政局密云》,没啥感觉,反正不是好片。
《圣斗士星矢.冥王神话》,烂,圣斗士迷千万不要看。车田正美砸牌子呢。画风以及剧情完全没法跟以前的比。尤其是冥王篇那精美的画面,跟这一比,啧啧,这个就是TMD垃圾。顺便说一句,都是天马当主角了,还是圣斗士星矢?而且,传说中雅典娜和天马的JQ终于出现了。
《69乐章》的《关于陶喆》中MS有一段是模仿queen的,喜欢。
另外,硬盘里还有最近的下的《切·格瓦拉传》,《非常完美》,《大内密探零零狗》打算看,还没看呢。
80G的硬盘,用起来实在小,320G的移动硬盘又不想老挂着,不爽。

Posted on

VC6编写python扩展

        有些C/C++的代码要在Python中要用到,又懒得转成python,所以就写成python的扩展来调用,^_^。

        以下是我尝试后,在VC6下编写python扩展的过程。

        系统环境:VC6 + Python-2.5.4

        1、下载Python-2.5.4源码。

        2、解压,打开D:\Python-2.5.4\PC\VC6\pcbuild.dsw,编译,D:\Python-2.5.4\PC\VC6\下得到python25.dll、python25_d.dll、python25.lib、python25_d.lib。

        3、使用VC6建立一个动态链接库工程,拷贝D:\Python-2.5.4\PC\example_nt\example.c到工程目录下,并添加到工程中。

        4、设置工程。
            打开tools->options->directories,添加D:\PYTHON-2.5.4\INCLUDE 到 includes files中,添加D:\PYTHON-2.5.4\PC\VC6 到 Library files中。
            打开Progect->Settings,将Win32 Debug->Link->Output file name修改为example_d.pyd,将Win32 Release->Link->Output file name修改为example.pyd

        5、编译。

        6、尝试调用:

D:\MY Project\testpymodule\Release>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
>>> example.foo()
Hello, world
>>>

        7、OK,打完收工。 附件为测试的工程:py_module_example

Posted on

gmbox发布0.1版本

呃,这是我参与的一个开源项目,不过很羞愧的说,只提交过一次代码。
算上后来提交的一个安装脚本,两次吧。
windows下安装包的下载地址:http://gmbox.googlecode.com/files/gmbox_setup_0.1.exe

以下内容转自骨头的博客

好吧~ 今天发布gmbox V0.1版本了.
看看之前的日志,发现离我发第一篇博文的都已经过了近4个月了.
其实,离之前预想的发布日期不知道迟了多少,好在也没对外公布过发布计划,看来我对自己的”懒”还是有自知之明的,哈哈..
呃..还是说说gmbox吧,基本特性是:

  • 支持谷歌音乐的”榜单下载”和”搜索下载”,而且,这两者都包含歌曲和专辑.
  • 简单的可配置性
  • linux系统可以调用mid3iconv自动修改歌曲的ID3信息编码
  • 跨平台性,使用python做为核心,可以运行于大部分linux和windows操作系统,理论上mac也可以,没条件测试
  • 界面和核心分离,默认有一个使用pygtk的界面,也可以使用命令行方式操作

安装方法:

  • linux版本安装法:下载源码包后,解压,可以 sudo ./install -i 安装至系统目录,就可以在菜单选择”应用程序”-”影音”-”google music box”打开GUI界面,或者运行gmbox打开CLI界面. (-u可以卸载干净的.)
  • linux版本不安装法: 下载源码包后,解压,直接运行 gmbox/src/mainwin.py 打开GUI界面; 直接运行 gmbox/src/cli.py 打开CLI界面.
  • windows版本: 下载自解压包后,解压至任意目录,运行 mainwin.exe 打开GUI界面,运行 cli.exe 打开CLI界面.

使用方法:超简单,谁用谁知道…
已知bug:还蛮多的,比如试听不支持,歌词下载不支持,还有界面太丑等….哦,现在关闭主窗口,后台的下载进程还不会自动关掉的…以后慢慢完善吧.
再来个截图:

Posted on

python学习笔记(1)

学习笔记,放硬盘里可能哪天就丢了,还是放这吧。

1,异常

dive into python,6.1有这么一个例子:

>>> fsock = open("/notthere", "r")
Traceback (innermost last):
  File "<interactive input>", line 1, in ?
IOError: [Errno 2] No such file or directory: '/notthere'
>>> try:
...     fsock = open("/notthere")
... except IOError:
...     print "The file does not exist, exiting gracefully"
... print "This line will always print"
The file does not exist, exiting gracefully
This line will always print

那么当异常不在except IOError里面呢?

try:
    fsock = open("/notthere")
except  ImportError:
    print "The file does not exist, exiting gracefully"
print "This line will always print"
C:\>test.py
Traceback (most recent call last):
  File "C:\1.py", line 2, in <module>
    fsock = open("/notthere")
IOError: [Errno 2] No such file or directory: '/notthere'

可以看到当异常匹配不上except时,还会由python处理。

所以,当对异常类型不了解或者懒得了解的话还是直接except后不要加类型的好:

try:
    fsock = open("/notthere")
except:
    print "The file does not exist, exiting gracefully"
print "This line will always print"
C:\>test.py
The file does not exist, exiting gracefully
This line will always print

2,

  try:
      import termios, TERMIOS
  except ImportError:
      try:
          import msvcrt
      except ImportError:
          try:
              from EasyDialogs import AskPassword
          except ImportError:
              getpass = default_getpass
          else:
              getpass = AskPassword
      else:
          getpass = win_getpass
  else:
      getpass = unix_getpass

else是当没有异常的时候执行,也就是正常的时候执行
finally是无论如何都会执行,下面的例子中是用了两个try和finally是为了确保关闭句柄。(如果放第一个try块外,虽然也会关闭句柄,但是open的时候也可能出错导致并没有句柄)

        try: 
            fsock = open(filename, "rb", 0)
            try:                           
                fsock.seek(-128, 2)
                tagdata = fsock.read(128)
            finally:
                fsock.close()              
            .
            .
            .
        except IOError:
            pass

3,文件打开模式,好奇怪,难道不能以rwb方式打开?:

>>> os.listdir(".")
['bin', 'DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'Microsoft.VC90.
CRT.manifest', 'msvcr90.dll', 'NEWS.txt', 'pycairo-wininst.log', 'pygobject-wini
nst.log', 'pygtk-wininst.log', 'python.exe', 'python26.dll', 'pythonw.exe', 'REA
DME.txt', 'Removepycairo.exe', 'Removepygobject.exe', 'Removepygtk.exe', 'Script
s', 'share', 'tcl', 'Tools', 'w9xpopen.exe']
>>> test = open("NEWS.txt", "rwb")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IOError: [Errno 22] invalid mode ('rwb') or filename: 'NEWS.txt'
>>> test = open("NEWS.txt", "rb")
>>> test.close()
>>> test = open("NEWS.txt", "wb")
>>>