Vimperator的Pass through

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

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

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

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

就在昨天,我无意中不知道按了什么键 ...

more ...

安装lrzsz

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 ...
more ...


Html元素事件查看器Eventbug

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

image

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

官方的介绍如下

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

  • 需要Firebug1.5

  • 源码沿用Firebug的BSD风格协议

  • 请使用Firebug的Bug报告列表来提交问题

  • 请使用Firebug的新闻列表来提出问题

作者:John J. Barton, Jan Odvarko

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

image

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

more ...

urllib2.urlopen的中文URL问题

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

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

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib/python2.6/urllib2.py", line ...
more ...

使用DDNS+SSH连通家庭/工作电脑

1. 背景

我目前有两台电脑,一台是家里使用的Linux笔记本(Dell 6400,4年), 一台是公司使用的Windows笔记本(IBM X201,1个月)。 我有时候需要在办公室连入家庭电脑,进行一些操作,比如同步,比如使用linux特定服务。

完成这项工作需要两个条件,ip互通+对应通讯协议。被连接的服务器需要一个公网地址, 而非局域网的192.x.x.x。可供选择的协议比较多,http/ftp/ssh等常规协议都可以使用。

什么是花生壳

花生壳动态域名是全球用户量最大的完全免费的动态域名解析软件。当您使用花生壳服务, 无论您在任何地点、任何时间、任何线路,均可通过固定的花生壳域名访问您的远程主机服务。

现在花生壳为千万的域名提供动态域名解析服务,并广泛应用于网站建设、视频监控、 遥感测绘、FTP、VPN、企业OA、ERP等应用领域。

ps:除了花生壳,还有很多DDNS服务可以供选择。由于TP-Link和D-Link都默认内置花生壳, 我这里用花生壳做范例。而我使用的DD- ...

more ...

一个mako.vim

给Vim找了一个Mako的语法高亮,发现着色居然有问题。查看更新记录后发现作者Armin Ronacher只更新到08年9月份。之后Mako更新了一些少许细节,我修改了一下mako.vim,放在这里供下载。

其实我只改了57/58行,增加一个block语法。

点击这里下载:mako.vim

使用方法,放入vimfiles/syntax

相关链接:

原始mako.vim:http://www.vim.org/scripts/script.php?script_id=1858

另外一个mako.vim是缩进用的,放入vimfiles/syntax:http://www.vim.org/scripts/script.php?script_id=2663

ps:Mako是一个Python下面的Template框架。

pss:貌似服务器ip被认证了,讨厌~

more ...

Pylons使用小记

活着就是折腾,最近事情多的一塌糊涂,烦躁的很,导致log4d也荒废一个月了。今天趁着周五晚上,梳理一下最近学习的pylons知识。

image

关于Pylons

Pylons是一个用pythons写的web框架,优点是配置灵活,默认使用Mako作为Template,SQLAlchemy作为 ORM映射。使用BSD作为授权协议。

托WSGI的福,python的web框架超多,甚至高手5分钟可以自己手写一个web框架,这种情况也导致了Python web框架的纷杂。我这里选择Pylons(其实是被选择),并不是说Pylons一定最好,而是比较适合当前项目。更多的Python web框架对比建议看这篇浅谈Python web框架,另外,这个Best Web- Framework ...

more ...

Eclipse中运行Pylons

官方中pylons都是通过在shell中运行paster serve --reload development.ini来运行应用实例。而整天在任务栏跑着一个黑乎乎的shell很碍眼,通过一下步骤可以在Eclipse中运行pylons。

配置Run Configuration - Python Run如下。

Main页签中Main Module指向paster-script.py,可以使用绝对路径。

image

配置Arguments页签的参数,添加serve --reload development.ini,后面的ini配置文件可以使用绝对路径。

image

勾选Common下的Allocate Console来进行paster调试信息输出。

在Windows - Preference - Pydev - Interpreter - Python中的PYTHONPATH加入pylons目标环境 ,报过site-packages目录和site-packages目录下面的egg文件(理解为jar包,称之为蟒蛇蛋)。

不出意外的话,就可以通过Run跑起整个应用了。

很可惜的是,这样做还是不能对应用进行Debug,pylons的debug依然依赖于pylons的"交互调试页面"。

参考http://stackoverflow.com ...

more ...

ERP叛逃者

大四实习时候,跑去驻厂开发,当时主管跟我说"我们做的是企业信息化软件"。毕业之后找工作,进入一家国内还算有名的ERP公司,做ERPII产品(CRM/工作流/ 电子商务平台等ERP软件附属产品)的开发和二次开发。

在这一年半的时间里,我学习了一些行业知识,熟悉了公司自己的开发模式、框架和工具。浑浑噩噩的直到某一天,我发现我写代码没有键盘飞扬的感觉。我惶恐,我感觉我遇到 瓶颈停止成长了。我开始思索我这种状况的产生,我重新翻开曾经看的糊里糊涂的《人月神话》,研读阿朱的《走出软件作坊》,尝试找到问题和解决办法。

我回想我工作之后做的事情:我负责的是从顾问那里拿到伪SQL+伪代码,然后将它们在公司的框架上面实现起来,再手工完成功能性测试。我做一个极端的假设:如果早50 年,ERP公司给用户提供解决方案可以是在纸上提出,根本不需要电脑。所以ERP的本质是对业务的梳理,规范化的引导,让企业高效整合资源充分发挥产能的公司。这与我 想象的IT公司完全不一样,我所希望的IT公司能够追求极致,创造用户喜欢的,快速响应用户需求,扩展性强的产品。如果具备这些元素,会很快被同类公司超越。

可是公司立足于市场近30年,绝对不是这么不堪,她有自己的核心竞争力 ...

more ...