Log4D

Computers can change your life for the better.

go-pylons.py在Python2.7下错误解决

| Comments

当使用 Python2.7 + go-pylons.py 创建 Pylons 运行环境的话,会报一下错误。

[alswl@arch-vm xingtong]$ python go-pylons.py myb_env
New python executable in myb_env/bin/python
Traceback (most recent call last):
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/site.py", line 67, in <module>
    import os
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/os.py", line 398, in <module>
    import UserDict
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/UserDict.py", line 83, in <module>
    import _abcoll
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/_abcoll.py", line 11, in <module>
    from abc import ABCMeta, abstractmethod
  File "/home/alswl/work/xingtong/myb_env/lib/python2.7/abc.py", line 8, in <module>
    from _weakrefset import WeakSet
ImportError: No module named _weakrefset
ERROR: The executable myb_env/bin/python is not functioning
ERROR: It thinks sys.prefix is '/home/alswl/work/xingtong' (should be '/home/alswl/work/xingtong/myb_env')
ERROR: virtualenv is not compatible with this system or executable

STFW 之后,找到了引发错误的根源 virtualenv ,这个 bug 在这里已经修复了。

#!diff
--- a/virtualenv.py        2010-09-14 21:48:58.078562930 +0200
+++ b/virtualenv.py        2010-09-14 21:46:20.650769346 +0200
@@ -51,6 +51,8 @@ REQUIRED_FILES = ['lib-dynload', 'config

if sys.version_info[:2] >= (2, 6):
REQUIRED_MODULES.extend(['warnings', 'linecache', '_abcoll', 'abc'])
+ if sys.version_info[:2] >= (2, 7):
+ REQUIRED_MODULES.extend(['_weakrefset'])
if sys.version_info[:2] <= (2, 3):
REQUIRED_MODULES.extend(['sets', '__future__'])
if is_pypy:

懒人可以点击 go-pylons.py 下载。

新浪微博应用Key

| Comments

前两天 FaWave 的新浪微博接口出现了问题, 一直无法发送和接受信息,今天查看了一下设定里面的信息,官方给出这样的解释:

我们曾经很傻很天真地以为新浪微博开放平台是真的开放的。由于新浪将FaWave的应用Key屏蔽了,目前只能无奈地让用户选择使用其他应用的Key来继续让FaWave兼容新浪微博。望谅解。

 

看样子又需要自己申请一个新浪微博的App了,我去 新浪微博开放平台 注册了一个APP,叫做 滴滴滴的小喇叭

App Key:1991355110
App Secret:de253ff255f1190c8fd61977f5e5781b

需要的同学可以自取。

update:感谢@Halu的提醒,这种 Key 在没通过审核之前会被数量限定,所以建议大家自己申请。

Vimperator的Pass Through

| Comments

作为 vim 的拥护者,我同时也喜欢使用 Vimperator 这款 Firefox 下面的插件,这款插件可以帮助实现 Firefox 的纯键盘操作。

我同时也是 GMail / Google Reader 的深度用户,他们在网页端也支持纯键盘操作,这样就和 Vimperator 产生了冲突。键盘按键事件被 Vimperator 拦截了,导致键盘操作在这些应用上面不起作用。

还好,Vimperator 提供了一种名为 Pass through 的模式,按 CTRL+Z 进入这种模式,在这种模式下面,Vimperator 将不响应键盘操作,全部放行到 Web 页面。

在某一次版本更新之后, Pass through 的快捷键 CTRL+Z 似乎不起作用了,我翻遍了用户手册也没有找到解决办法。

就在昨天,我无意中不知道按了什么键,命令栏里面出现了 IGNORE ALL KEYS (Press <S-Esc> or <INSERT> to exit) 这行提示信息。在这种状态下面,我测试了 GMail 的快捷键,果然又起作用了。

好吧,我终于找回了丢失的 CTRL+Z ,新版的 Vimperator 使用 Shift+Esc 或者 INSERT 键来进入原来的 Pass through 模式。

——残念的分割线—–

之前按 <- 键时候,按成了 ThinkPad 的回退键,导致文章没有保存,纠结啊。

安装lrzsz

| Comments

lrzsz 是一款 Linux 下面的文件传输工具。实现原理是通过 Xmodem / Ymodem / Zmodem 协议传输文件。lrzsz 可以在支持这三种协议的Shell界面的工具下工作,比如XShell。

lrzsz是一个古老的软件,最新版本0.12.20是在1998年更新的。

大部分linux发行版的安装工具都可以直接安装 lrzsz,比如apt-get / pacman,当然我们也可以下载安装包手动安装。这次由于我所在的服务器没有管理员权限,我就使用源码包安装。

$ mkdir /home/alswl/app
$ wget http://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
$ tar xzvf lrzsz-0.12.20.tar.gz
$ cd lrzsz-0.12.20
$ ./configure --prefix="/home/alswl/app"
$ make
$ make install
$ export PATH="$PATH:/home/alswl/app/bin"

安装上面步骤就可以安装完成了,重点在于 --prefix="/home/alswl/app",这可以指定安装路径,安装到自己可以读写的地方去。

export作用是添加安装目录到 $PATH 下面,这样可以直接使用 lsz / lrz 操作。

好了,享受方便的上传下载吧。

ps:买了一个新域名http://log4d.com,下次改版时候换域名。

微日记

| Comments

每天用一个词形容自己当天的生活,就是微日记。

Matrix67.com: Keywords in My Life 偷师。

Matrix67用的是html,我用的是纯文本,直接通过SSH在服务器进行修改。utf-8编码,有些浏览器(比如FF)可能需要使用正确的编码才能显示。

我的微日记地址是 http://log4d.com/microlog.txt ,欢迎模仿。

Html元素事件查看器Eventbug

| Comments

Chrome的开发者工具里面有一个小功能:查看当前元素的Event,比如onclick/onblur等事件。

一直想在Firefox里面也找到类似的插件,今天正好看到这么一个好东西,叫做EventBug。

官方的介绍如下

Eventbug是一款能够列出所有绑定事件的Firebug扩展,它将这些事件按事件类型排列。

  • 需要Firebug1.5
  • 源码沿用Firebug的BSD风格协议
  • 请使用Firebug的Bug报告列表来提交问题
  • 请使用Firebug的新闻列表来提出问题

作者:John J. Barton, Jan Odvarko

测试发现在Firefox5下面没有问题。

这么一款插件在调试js或者对别人的页面做一些js hack特别有用,强烈推荐之。

urllib2.urlopen的中文URL问题

| Comments

在url中使用中文其实是一个坏习惯,会带来一系列的转码问题, 我更喜欢英文译名或者id来标识某个uri。但是现实往往是残酷的, 特别是在我们调用别人服务时候,有时候被逼无奈使用中文URL。

Python中unicode转码一向是让人头疼的问题。数次碰壁之后,我也摸出了一些门道, 研读完Python字符串的encode与decode 之后,就自认为找到了万金油,谁知道这次又碰上这个老冤家。