qyb的博客

推荐一款 IE 下的 JS 调试工具

前不久从 Ajaxian 上看到一个叫 Companion.JS 的东东发布了 0.2 版本。今天得空测试了一下,相当不错强烈推荐。

有意思的是这个工具支持 Firebug 的 console API. 感觉 Firebug 现在是确定了 JS 调试的权威地位,后来者都以它为标杆来追赶。

IE Developer Toolbar + Fiddler2 + Companion.JS,现在 IE 终于有了一个还过得去的调试环境。说不定哪天 MS 把 Companion.JS 也收购了,反正比 Facebook 便宜多了,哈

Topic: 技术

PhotoRec 恢复照片的功能还不错

前不久,向 U 盘上拷了一张照片打算去冲洗,但就在出门前,突然发现 U 盘无法访问,提示未格式化的驱动器...

这有何难,立刻想起曾两次挽回俺分区的 TestDisk,正好用来恢复分区。于是信心满满的执行,它也发现了 U 盘上的 FAT 分区表,预览前看了看分区表里的根目录信息,完全正确,写入!

随即俺就傻眼了,虽然恢复后的 U 盘可以访问了,看起来文件也都一个不拉的挺好,但文件内容统统都不对了..

懊恼中突然想起 TestDisk 作者还提供了一个数码照片恢复工具,在 TestDisk 目录里面就有,于是试了试,效果还不错,把丢的那张照片找回来了!!

PhotoRec 的工作起来是扫描所有磁道信息,发现可疑的曾经存有文件的数据(而且格式它能识别的)就 copy 出来,这样甚至可以起到一个 Undelete 的效果。俺 1G 的 U 盘最后恢复出的数据有好几G,当然实际上不少文件实际上数据是错误的了。

PhotoRec 除了能恢复照片,还能恢复 pdf、txt/html、doc、甚至 rm 等许多格式,强烈推荐!!

附:最后去冲洗店,把俺的 U 盘一插,就看见里面除了 1 张照片外又多了 2 个 .exe 文件和一个 autorun.inf。恶心的是和店员反馈他们的机器有木马,竟然满不在乎的说到处都是,也懒得管。真恐怖! 以后去数码冲印要小心

Topic: 技术

周日爬百望山,下午去买音箱

用手帕扎了一个小头巾,她立刻要扮起海盗来。手里提着的那个东西,看起来是个矿泉水瓶,其实是把刀

野餐中....

躺在野餐垫上拍的照片...


最近收拾起 n 年前的 iriver iFP-TC180,虽然只有 128M,但放10来首歌也基本满足了俺的需求;而且其音质确实挺好(据说比 ipod 强,haha)。为了配合老妈每天早上打剑配乐的需要,今天下午还去村里买了一个漫步者便携音箱 M11,在海龙鼎好转了3个柜台,报价都是 120,传闻是卖的太好所以涨价。做工不错,声音还可以,反正是比俺笔记本强太多了。qyt 同志建议我把它绑在自行车上招摇过市,但它功率太小了,达不到震撼的效果。

Topic: 生活

学习 javascript 中...

下午在看 prototype, 勉勉强强对其算是有了大概的了解

晚上再看看 jquery 对比一下

mozilla developer 网站上有一篇 js 简明教程不错:A re-introduction to JavaScript

我家宝贝的 5 岁生日快到了,明天需要准备一番..

随着降温换装的开始,俺已经从洗碗工变成了洗碗熨衣工,不管是洗干净盘子还是熨平皱褶,都挺有成就感的,还可以外带锻炼背部肌肉,hoho

Topic: 生活

关于"知识"

军人存在的目的是避免战争(可能有人说这是P话)

程序员存在的目的是减少代码行数。:)

其实应该说我们本着方便维护的目的而构建代码

为积累知识而撰写文档

软件组织能存活并成长的一个重要因素是知识的有效积累、结构化、更新、学习和传播

bbs/mail-list 是讨论;wiki 里是知识

当把知识流程提高到组织的最高级别后,CKO 应运而生

Update: 关于"程序员存在的目的是减少代码行数"
jquery 的口号是 Write less, Do more

我倾向用 python 替代大多数场合下 C/C++ 的应用也是基于同样的原因

关于 "直觉"

认识这么一个程序员,工作挺努力,也乐于拓展自己的知识面,理论基础、开发经验什么的也算积累了一些了,但写起程序来就是给人一种有劲使不出的感觉;百思不得其解,终于一天想明白了,他的问题是缺乏"直觉"。

我认为,对于编程工作来说,大多数情况下程序员是在做选择:用 A 模式还是 B 模式?用 C 方法还是 D 方法?E 成员应该是公有的还是被保护的?用 gdb 跟踪还是 tcpdump 听包?... 乃至查找问题是用 google 还是百度一下?

我所观察到这个程序员的情况就是:可能有一半重大问题的选择上,他首先去尝试错误的方法,尝试失败了再去寻找下一个可能的方法,或者直接在这条错误的道路上继续前进。

什么是写程序的"直觉"? 直觉就是能下意识的做出正确的判断,或者能尽早醒悟到"我这样做是不是有问题?"。它是对以往经验的有效积累,能在很短时间内判断出最有效的路径的能力。

这种直觉能不能培养和训练?我想是可以的。后来私下和他就这个不足谈了谈,希望他以后能成为一个优秀的程序员。 :)

Topic: 技术

今日发现之 connlimit

connlimit 是 netfilter/iptables 的一个扩展,用来限制并发连接数,规则甚至可以限制某个子网的总并发数,用来挡攻击可以说再好不过。

实际上我计划的是用它来限制主机向外的连接... 比如与其费尽心思做一个 mysql 连接池避免耗尽 mysql server 连接上限,说不定还不如暴力的用这个模块直接限制到 mysqld 3306 的连接数目来得爽快。

我打算在 AS3 上使用它,同时并不打算重新编译整个内核.. 现在可以确认在这个平台上,使用 netfilter team 第一次正式发布的 P-O-M 就可以(20040302),从第二次发布起就只能在 2.4.22 之后的内核上工作了。

试用 P-O-M 的过程中还发现自 20060726 开始,connlimit 就神秘的从 snapshot 里面消失了 (从 CU 上看,netfilter 在 20050919 还一次性少了 1/3 的模块),现在 netfilter 的邮件列表归档也无法访问了,不晓得出了什么状况。

不过在搜索中发现一年以后(20070715)有某牛人 connlimit 合并到 2.6 内核里面,换句话说就是从 2.6.23 开始,无需 P-O-M 就可以直接编译出 connlimit 了.

从目前看,20050918 的 P-O-M 应该是功能最全的一个版本了(但很多只能在 2.4 内核上跑),想要的搜索一下 patch-o-matic-ng-20050918.tar.bz2 应该还能找到。

Topic: 技术

编译了一个 FastCGI 的 Apache 2.2 模块


下一个项目打算采用 FastCGI 部署,对于习惯在 Windows 桌面环境里开发的程序员,开发环境计划配置成 Apache + mod_fastcgi/mod_rewrite,通过 FastCGIExternalServer 配置连接到本机的 fastcgi 进程。

现在 Apache 主流版本已经是 2.2.x,但 http://www.fastcgi.com/dist/ 里提供的 dll 不晓得为什么配置成禁止下载。于是就从源码(mod_fastcgi-SNAP-0709231442)编译了一份(见附件 http://www.dup2.org/files/mod_fastcgi.dll
for Apache 2.2.x win32)

以前写过一篇里面提到如何在 Win32 下编译的 apache module 的...

cl /MD /D "WIN32" /c fcgi_buf.c
cl /MD /D "WIN32" /c fcgi_config.c
cl /MD /D "WIN32" /c fcgi_pm.c
cl /MD /D "WIN32" /c fcgi_protocol.c
cl /MD /D "WIN32" /c fcgi_util.c
cl /MD /D "WIN32" /c mod_fastcgi.c

link /DLL mod_fastcgi.obj fcgi_util.obj fcgi_protocol.obj 
 fcgi_pm.obj fcgi_config.obj fcgi_buf.obj 
 libhttpd.lib libapr-1.lib libaprutil-1.lib ws2_32.lib

用更复杂的编译选项可以获得一个稍微小一些的 dll (参考 apache win32 的编译参数)
cl /nologo /MD /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "SHARED_MODULE" /FD /c *.c
link /DLL /nologo /subsystem:console /incremental:no ......

Topic: 技术

web.py 的最新消息

1. session 支持已经完成 (很难想象一个 web framework 居然以前一直没有 session, 是不是? )

这个是在 0.21 branch 上开发的,我已经在俺业余写的一个 web 工具上应用。马马虎虎,对于我自己的一个需求——登录后浏览器会话周期内 session 有效——需要额外配置几个参数才能工作,不是太直观;而且还没有找到全局配置后自动应用在每个 ctx 里的办法

2. web.py 已经全部转换为 bazaar 进行管理,抛弃了以前的 svn。

bazaar 是一个 pure python 应用,Ubuntu 好像是主要支持者之一

3. web.py 0.3 roadmap 前两天公布了,老代码不兼容,“There will be some changes to API, which breaks the backward compatability. But I promise, it is not going to change very much.”

不过我喜欢 0.3 用 return 代替了 print, 这是否意味着我以后可以用 print 来向 console 上输出了?有时间的话打算尝试一下

session 支持已经合并进入了主干,虽然还不能正常工作,但可以确认 0.3 版本将正式带上 session 支持

Topic: 技术

你们就知道吃饭!

招呼达达吃饭,叫了好多次都不来,最后她愤愤的说:“吃饭,吃饭,你们就知道吃饭!生活中应该还有更好玩的事可做”

这一席话说得我们都羞愧不已,仿佛我们只有猪栏的理想..

这句话是她从小鸡卡梅拉系列的故事里学来的,用的场合还挺正确...

昨天达达回家后有些不开心,因为她由于头发卷卷,而且,皮肤比较黑,被小朋友说成是外国人(她们班好像有多个韩国人,一个美国人)。今早送她去幼儿园,还碰到一个小孩冲她这样喊。

我决定帮助孩子解决这个童年心理阴影,首先跃入脑海的是一个极拜金的理由

于是问她:你说爸爸黑不黑
回答:黑 (早知道会这么回答,但心里那个郁闷啊)
问:你知道爸爸为什么黑吗?
回答:不知道
我得意的说:因为我这是在皮皮岛上晒的!!你也是在泰国皮皮岛上晒的!那是世界上最美丽的海滩哦

老婆在旁边听得暴汗...

Topic: dada
订阅 RSS - qyb的博客