`
marlonyao
  • 浏览: 248810 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
AutoProxy可以用来方便地管理、切换代理,可能再没有哪有国家比我的祖国更需要这个东西了。但我还是觉得切换起来不够方便,所以就写了一个vimperator的插件。使用方式: :autoproxy(或:ap) [auto|disable|global] auto,disable,global是AutoProxy的三种模式,输入命令时可以只输入第一个字母。 代码并不长,就直接包含了: // only set string value function setPreferenceValue(branch, name, value) { var prefs = Component ...
JsBeautifier是一个用Javascript写的在线Javascript代码格式化工具。用javascript写的好处是只要一个浏览器就可以运行,很方便,坏处在于若是想通过命令行(例如需要脚本化)去运行时就会比较困难。之所以说比较困难,是因为JsBeautifier是可以通过Rhino来运行的,Rhino是一个用java写的javascript解释器。但是我还是闲得无聊,将这个javascript程序转化成了python。 javascript和python语言上很相近,所以将javascript程序转到python最麻烦的地方就是转换语法,例如将{...}块转换成python的缩进块 ...
vifm是Linux下的一个控制台文件管理器,我很少使用文件管理器,要用一下,就拿出vifm来。图形界面的文件管理器我不喜欢用,控制台下有人叫做mc的,功能很强大,但快捷键实在用不习惯,还经常和Terminal下的快捷键冲突,找来 ...
委托(delegate)是许多设计模式(如Decorator, Proxy)的基础,实现委托的一般方法是在委托类为每个需要委托的方法定义一个方法,它的仅有的实现就是对被委托对象调用同样的方法。例如,要实现ImmutableList,可以这样做: class ImmutableList(object): def __init__(self, delegate): self.delegate = delegate def __getitem__(self, i): return self.delegate.__getitem__(i) ...
在上一篇博客:django, mongodb与测试中,我推荐使用json作为数据库测试的配置格式,因为json格式简单,语言中立,容易解析, 又不似xml那样繁琐。json有它的缺点,主要有: 没有注释 json不能表达复杂的类型 json不能引用程序数 ...
在django下很容易写测试,只需要继承DjangoTestCase,它会自动创建一个测试数据库,每次运行时加载必要的fixture数据,以保证每个测试的初始状态是一致、可预测的。其前提是必须使用它的dbmodel,如果使用MySQL, Oracle等关系型数据库,这自然不是个问题。如果使用其它数据库,例如当前相当流行的NoSQL,这时DjangoTestCase就不能直接拿来用了。如果我们hack一下django,也是可以使用DjangoTestCase的。以mongodb为例,我使用的是django1.2,1.2以下的版本不能用这里的方式,我没有研究过,但我相信也是能hack的。 djan ...
做过Web开发应该都知道addEventListener,它接受三个参数,前两个都很好懂,分别表示事件类型和事件处理器,而最后一个参数是useCapture,就有点让费解了,它是boolean参数,为true时表示Capture阶段触发事件,为false表示在Bubble阶段触 ...
我十分喜欢Evernote,保存了大量的信息在Evernote上,包括一些技术笔记、网页摘录、日记等。这也给我带来了一些麻烦,最近Evernote又一次升级,不知怎么搞的,本地存的笔记全部丢失了,只得重新同步,同步速度非常慢,其实何止慢,简直同步不了,非得用代理,至于具体原因,想必大家都知道。 这次同步之后我就想在本地备份一下Evernote,但Evernote备份起来很困难,自带的界面只能备份单个笔记,不能备份整个笔记本,实在要做的话,可以手工一个一个选择每个笔记,然后备份。麻烦之大,想必须每个懒程序员都不会做,其实何止是程序员,任何正常人都不会这么做。幸运的是,在Mac OS X下,可以借 ...
expect能够模拟用户的交互输入,这相当有用,因为这使得很多原本需要交互输入的命令可以自动完成,而不需要人工干预。以下是一个简单例子,用来模拟登陆远程ssh: #!/usr/bin/env expect set password [lindex $argv 0] set timeout 60 spawn ssh username@remote.host expect "password:" send "${password}\r" interact 该程序接受一个参数,表示远程主机的用户密码。对于该程序首先需要注意的 ...
我在Ubuntu下使用TOR来做代理,但最近似乎不太稳定。其实TOR一直都很稳定,不稳定的是另一方。无赖之下,选择了利用Windows做代理,我在Ubuntu下用VirtualBox安装了一个Windows虚拟机。 要利用Windows虚拟做代理,它必须有一个独立IP,因此就不能使用默认的NAT连网方式,而必须利用bridge连网方式。首先运行命令: sudo modprobe vboxnetflt 然后在windows虚拟机网络设置部分,选择Bridge network。启动windows虚拟机,在命令行下输入ipconfig便可以看到windows虚拟机使用的IP地址了。 在wi ...
Bash的自动完成功能很爽,它不知道免掉我多少记忆的负担,节约了多少键盘操作。 但是对于我们自己写的脚本也能够利用它的自动完成功能吗?回答是肯定的。下面以几个例子来说明。 程序员需要记忆很多东西,bash, vi, screen, ...
虽说标题是插件,但实际上我都写在.vimperatorrc配置文件中。 第一个是用来在http和https之间切换的插件。很多网页同时有http和https版本,在两个之间切换比较麻烦,所以就写了这个, 下面所有的代码都放在.vimperatorrc中,如果在windows下则放在_vimperatorrc下。 :js << EOF toggleSSL = function() { var regex = /^(http|https):\/\/(.*)$/; var result = regex.exec(buffer.URL); if (resul ...
Django的contrib中带了个FormWizard,但是我觉得它实现得很不好,不易使用,扩展性不强,所以就自己实现了一个。这里只说用法,首先得定义一个自己的Wizard,它继承SimpleWizard,并在构造函数中传递每一步需要的Form。 class TestWizard(wizard.SimpleWizard): def __init__(self): super(TestWizard, self).__init__( ( ('step1', Form1), ...
主要用于在Html中递归输出对象的属性,这对调试Django相当有用。 用法: {% inspect object %} 实现: from django import template import re register = template.Library() def do_inspect(parser, token): try: tag_name, var_name = token.split_contents() except ValueException: msg = '%r tag requires ...
Django模板有诸多限制,例如不能调用方法,不能执行任意的Python表达式。它的设计者表示这样做是故意的,我不去争论这样到底是好是坏,但在调试时我们确实需要想执行任意的Python表达式。Django提供了自定义标签的机制,再加上Python的eval函数,使得在Django模板中也能执行任意的Python表达式。 我写了三个标签,分别是set, print和import。set的语法为: {% set varname = python_expression %} 它会执行python_expression的值,并把它添加到的模板上下文,而后可以用varname引用。 pytho ...
Global site tag (gtag.js) - Google Analytics