
|
|
|
| 友情广告:zenzen的"倡导正版" |
联系方式![]()
友情链接导航 |
聚合圈子是个伪命题OPERAMINI BLOGGING......长话短说 我本能地排斥束缚和庸俗化,所以一想到如果加入某个圈子就要被迫证明或者表现什么我就不寒而栗.虽然为了生活或者社会驱动我已异化很多,但要是在网络上仍如此行事也未免太过悲哀.而且我认为有智识的人都是这般思维. 当方刚在一次对话中提起搜狐圈子的时候,我实在很想说:这个模式我一开始就不看好.(不过他后来提炼的要点我基本能理解,如果是公司产品战略的话是可以让人信服的) 人和人的互动只能用圈子来规范和模式化么?圈子是人和权威(比如公司业务,比如潜规则)的互动,而不是人的本能 现在的SNS/社会网络服务设定圈子(或小组)里的行为,就如同十年前雅虎用目录来做搜索一样,是不会有什么生命力的.一但GOOGLE那个小搜索框出现,目录模式立即被击得粉碎. 今夜牙仙子来访今天, 2007年10月31日是非常重要的一天 首先是俺到搜狐工作满一年 其次是我们达达第一次和小朋友过万圣节 最重要的是达达今天掉了第一颗牙!可惜是在幼儿园掉的,不能留下来作纪念.牙仙子硬币早就托同学从米国寄了一小袋回来.现在已经放在她枕头下等她自己明早去发现了 为了迎接牙仙子到来,她第一次主动要求一个人睡...希望这个习惯能早日养成 现在我家还囤积N多硬币,以后谁需要可以转让 BTW:老婆占据了笔记本看片,俺只好用手机的OPERAMINI来写BLOG cPickle 和 marshal 到底哪个快?为了将 python 对象得以持久化保持(比如为了 web app 的 session/cache 需要),我们不得不将其序列化后转成字符串扔进文件或者数据库里。 Python 提供了两个基于 C 的模块 cPickle 和 marshal 来做这个序列化反序列化的操作。marshal 貌似仅限于少数几种 python 内置数据对象,所以想象起来好像 marshal 比 cPickle 要快一些,而且我们自己做的几次benchmark好像也证明了这点。但实际上果真如此吗? scaner 也曾写 blog 说明他的测试是 marshal 比 cPickle 快,但有留言说用同样的程序得到了相反的结论.. 今天在搜索中发现有老外做过比较全面的测试(07年10月18日的文章),结论是在某些情况下--比如浮点数、长的字符串--cPickle 是比 marshal 要快滴。最后他的建议是: "...even for simple data structures, for a caching layer you might as well use cPickle; you are not particularly slower for the thing you're going to be doing a lot, and you get a bunch of (potential) benefits in return." 其测试程序在http://utcc.utoronto.ca/~cks/programs/python/marshal-vs-cpickle.py Python for S60 1st Edition 1.4.0Python S60 对 1st 的支持在 1.3.1 之后就不再提供官方支持了,可能觉得这部分用户群实在是太少了。 不过还是有某牛自制了 1.4.0 的 sis,让老机器用户仍然可以享受最新版 PyS60 的功能(比如对中文 SMS 的支持) 其地址是:http://cyke64.googlepages.com/pys60distribution (注意:发表本文时 googlepages 貌似正在被盾中...) 这个哥们还提供了一堆有意思的库(http://cyke64.googlepages.com/),有些不错的东西 开源观察:Linux 社区 和 Mozilla Corporation 的分裂进行时...Linux 社区对 Mozilla 的商业化行径一直抱有微词早就不是什么新鲜事了,前不久 Mozilla 的 Alex Faaborg 在兴致勃勃的介绍 Firefox 3 将和各个 OS UI 结合得更紧密/native的时候,只提到了 Vista/XP 和 OSX,这引发了 Linux 社区的强烈反响。 虽然作者紧急更新了 blog 反省自己犯下的错误,但还是有人发出了诸如"...Mozilla Corporation 还会继续把 Linux 用户看作二等公民的..."的言论 Mozilla 项目的 Robert O'Callahan 开始辩护,声称 Gecko 1.9/Firefox 3 为 Linux 集成做了重大的努力,包括 pango、dbus、native gtk2 widget 等方面,而且,不少东东都是来自 MoCo 的贡献。他还声明了他对 Linux 的态度,"...虽然我们很多 Mozilla 的人转到了 OSX 平台上工作,除了苹果的软硬件确实很棒外,还有一个原因是因为我们可以在 OSX 上虚拟化 Linux,但不能反过来(Apple is evil)...我一直认为 Linux 对于 Mozilla 来说是非常非常非常重要的,因为专有客户端平台对开放 Internet 来说是个威胁,制造商总会想法把它们的控制扩展到网络之上..."。文章中也酸溜溜的提到了 Linux 社区 的新宠 Webkit:"Webkit 是个不错的引擎,它被移植到 GNOME 上确实是个好事情,但是别忘了(gecko 1.8.x)是一个已经被应用了 2 年多的引擎,而 webkit(在 gtk 上)仅仅才刚刚开始。另外,我不认为 Apple 对自由桌面有太多的控制是个好事情..." Linux、Mozilla、Webkit 的经历很像典型的家庭破裂——经过了好几年和 Linux 发行版的相依为命后,Mozilla 突然发现自己已经重新回到 windows 桌面而且占据了相当大的市场份额,特别是还挺能挣钱,MoCo 显然在朝着占更大市场份额收更多 google 过路费这个目标而前进;而社区也感觉 MoCo 似乎更看重其对 Firefox 商标和产品的控制权而不是推进社区合作,加上 Apple 适时的将 Webkit 独立出来...于是感情出轨了。 我的看法是,合久必分分久必合,没准哪天 Linux 又和 Mozilla 好得蜜里调油。关键是自由竞争,正因此我们可以无限期待明天。 一个消息是 Debian sid 现在已经包括了 epiphany-webkit,如果你被 IceWeasel 这名字倒了胃口,不妨一试。 读书如何了解一个人的品味?看他穿什么衣服,平时聊什么话题,和什么人混在一起,...网络时代还可以偷窥其 blog,但都比不上检视他的书架来得深刻。个人阅读这东西,实在是很私密;虽然有些人也弄个网摘或者豆瓣什么的把他的阅读列表一一展示,但总有些东西是希望藏在自家书架里永远不让别人知道的。 我老婆真真是爱书之人,家里的书基本上都是她买的。而我则一边当起了搬运工——有几年都是她在卓越或当当上下单,把书送到我单位,然后一趟趟把书搬回家里——她也不想让同事知道她买了许多奇怪的书引起非议,而且书实在是很沉的啊;一边本着书非老婆买不能读也的精神,把所有的书囫囵看了个遍。 其实我好像也应该是一个喜欢读书并买书的人,老爸第一次给零用钱就去买了《牛虻》。工作后虽没什么工资,但结婚前也颇积攒了一些书,除了约翰克里斯多夫、麦田守望者、22条军规、百年孤独、白痴、杰克伦敦小说集外,甚至还包括了《社会契约论》、《论美国的民主》,两本黄仁宇,一本布罗代尔。现在回过头看真是汗颜,买书这个功能因为长期不使用现在快完全退化了。 前不久同事到我家做客,其间参观了一下俺家的书架。看来看去一言不发,俺心中惴惴,因为书架上的东西实在是包罗万象:从《最遊記》到《罗马帝国衰亡史》,从《波隆那插画年鉴》到《天工开物》;不晓得会把我们归到哪一类读者群。过了一周后回访,俺也一样被书架吸引,一排排看了半天,估计我这同事也被我看得心头发毛,连忙解释:还有大批的书放在父母家太占地方没有搬过来云云... 现在回想起我这同事的书:印象最深的是最上面一排柏杨的白话文资治通鉴;然后是经典小说——追忆似水年华、名利场、大卫科波菲尔...好像还有静静的顿河;两本石头记,忘了什么评本了;其它还有卢梭、杜拉斯、村上春树...通俗小说也有,比如4本斯蒂芬.金...总体上来说,还是挺令人敬畏的书架。 生成 Google 翻译效果页面工具这个题目有点长还有点拗口似乎。 话要说到去年底我翻译的这篇 web.py 0.2 教程,这个页面发布不久后,收到一封陌生人的 email,问我这个页面是手工做出来的,还是用工具做的。我据实回答。他说能不能做个工具自动做呢?我还真没想过这个问题,平时也很少翻译东东,所以就不了了之。但他的“拷问”倒是一直敲打着我。 最近 jQuery 玩了玩,于是做了这个工具来练手。如果要做到跟被翻译的页面风格一致,应该要另写一个程序去解析页面,把什么 <h1>、<p> 之类的拆出来,万一页面要是用 <div id="..."> 去控制格式,那就更不知该如何处理了,困难不小,头比较大,没有继续这个更高的需求。 欢迎有需要的人试用生成 Google 翻译效果页面工具 思维跳跃 -- 重新审视 .NET FrameworkHttpWatch 一个很酷的功能就是告诉你哪些内容是直接 cache 的,哪些是 304 缓存的 Fiddler2 做不到这一点.... 那么何不俺自己开发一个? 但涉及到开发 BHO... 还是用 python + comtypes 来搞吧... 可 BHO 是要 dll 的,貌似 python 只能玩个 py2exe。 难道采用 C embed Python ?? 还是看看 IronPython 吧。 在 IronPython 网站上找到了 Pyc 这个例子。成功的按例子把脚本编译成 .exe(winform 的 HelloWorld 例子编译后不过 6kb 大小),看起来生成 dll 是没有问题的。 没有继续下去开发 BHO (经过这么一番浏览后俺已经很累了)。 只是想,按照这样方法做出来的 dll 大抵也可以做得很小,只不过需要运行系统上有一套 .NET Framework 罢了,这算什么,貌似很多软件现在都需要 .NET Framework 呢。 IronPython 主页上的一则消息吸引了俺的注意:Silverlight v1.1 Alpha includes IronPython support! Silverlight 是什么?以前只知道它是 MS 推出的一项类似 Flash 的技术。Flash 是用 ActionScript 开发的,而 Silverlight 用什么语言开发,却一直没有研究过,想来也是一个 js-like 的语言而已。但......可以用 python 来开发 Silverlight 应用??????? 立刻合上笔记本屏幕,仔细的想了想这里面的关系。 我这才觉得自己算是稍微有点理解 .NET Framework 了。真是了不起,在PC终端上,微软的理念无人能比。(但它的公关经理好像不怎么称职,hehe) 附: 这段时间我每天有相当长的时候是用 IE7,而不是 Maxthon or Firefox。老实说,IE7 确实是一款不错的浏览器——对普通用户而言。今天尝试了最新的 Safari(310A18) + 最新的 WebKit,支持了中文输入,除了某些页面上中文显示有问题外,还是蛮顺手的。 推荐一款 IE 下的 JS 调试工具前不久从 Ajaxian 上看到一个叫 Companion.JS 的东东发布了 0.2 版本。今天得空测试了一下,相当不错强烈推荐。 有意思的是这个工具支持 Firebug 的 console API. 感觉 Firebug 现在是确定了 JS 调试的权威地位,后来者都以它为标杆来追赶。 IE Developer Toolbar + Fiddler2 + Companion.JS,现在 IE 终于有了一个还过得去的调试环境。说不定哪天 MS 把 Companion.JS 也收购了,反正比 Facebook 便宜多了,哈 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。恶心的是和店员反馈他们的机器有木马,竟然满不在乎的说到处都是,也懒得管。真恐怖! 以后去数码冲印要小心 jQuery 初探
由于我在 html,javascript 的知识上近乎白痴,仅比一窍不通多通一窍,隐藏在这神奇效果后面的技术令我叹服不止且念念不忘。随着后来看了一点点 Ajax 方面的东东,感觉到这应该是页面上的元素替换。这两天尝试了一下 jQuery,想起了这个当年让我耳目一新的页面效果,实现之: $(document).ready(function(){ //网页 ready 后加载此方法$('span[id=email]').mouseover( function() { $('span[id=email]').attr("style", "background-color:#ffff90"); }); //鼠标移上<span id="email">元素后改其style属性的值 $('span[id=email]').mouseout( function() { $('span[id=email]').attr("style", "background-color:white"); }); //鼠标移离<span id="email">元素后改其style属性的值 $('span[id=email]').click( function() { //给<span id="email">元素添加一个 click 方法 $('span[id=email]').remove(); //移除自身 $('<input name="email" value="" type=""text"/>').appendTo("div#email"); //在<div id="email">后添加一个新的<input>元素 $('input[name=email]').focus(); //把焦点移到该<input>元素上 }); }); 示例页面:test.html 周日爬百望山,下午去买音箱用手帕扎了一个小头巾,她立刻要扮起海盗来。手里提着的那个东西,看起来是个矿泉水瓶,其实是把刀 最近收拾起 n 年前的 iriver iFP-TC180,虽然只有 128M,但放10来首歌也基本满足了俺的需求;而且其音质确实挺好(据说比 ipod 强,haha)。为了配合老妈每天早上打剑配乐的需要,今天下午还去村里买了一个漫步者便携音箱 M11,在海龙鼎好转了3个柜台,报价都是 120,传闻是卖的太好所以涨价。做工不错,声音还可以,反正是比俺笔记本强太多了。qyt 同志建议我把它绑在自行车上招摇过市,但它功率太小了,达不到震撼的效果。 学习 javascript 中...下午在看 prototype, 勉勉强强对其算是有了大概的了解 晚上再看看 jquery 对比一下 mozilla developer 网站上有一篇 js 简明教程不错:A re-introduction to JavaScript 我家宝贝的 5 岁生日快到了,明天需要准备一番.. 随着降温换装的开始,俺已经从洗碗工变成了洗碗熨衣工,不管是洗干净盘子还是熨平皱褶,都挺有成就感的,还可以外带锻炼背部肌肉,hoho 关于"知识"军人存在的目的是避免战争(可能有人说这是P话) 程序员存在的目的是减少代码行数。:) 其实应该说我们本着方便维护的目的而构建代码 为积累知识而撰写文档 软件组织能存活并成长的一个重要因素是知识的有效积累、结构化、更新、学习和传播 bbs/mail-list 是讨论;wiki 里是知识 当把知识流程提高到组织的最高级别后,CKO 应运而生 关于 "直觉"认识这么一个程序员,工作挺努力,也乐于拓展自己的知识面,理论基础、开发经验什么的也算积累了一些了,但写起程序来就是给人一种有劲使不出的感觉;百思不得其解,终于一天想明白了,他的问题是缺乏"直觉"。 我认为,对于编程工作来说,大多数情况下程序员是在做选择:用 A 模式还是 B 模式?用 C 方法还是 D 方法?E 成员应该是公有的还是被保护的?用 gdb 跟踪还是 tcpdump 听包?... 乃至查找问题是用 google 还是百度一下? 我所观察到这个程序员的情况就是:可能有一半重大问题的选择上,他首先去尝试错误的方法,尝试失败了再去寻找下一个可能的方法,或者直接在这条错误的道路上继续前进。 什么是写程序的"直觉"? 直觉就是能下意识的做出正确的判断,或者能尽早醒悟到"我这样做是不是有问题?"。它是对以往经验的有效积累,能在很短时间内判断出最有效的路径的能力。 这种直觉能不能培养和训练?我想是可以的。后来私下和他就这个不足谈了谈,希望他以后能成为一个优秀的程序员。 :) 今日发现之 connlimitconnlimit 是 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 应该还能找到。 编译了一个 FastCGI 的 Apache 2.2 模块
现在 Apache 主流版本已经是 2.2.x,但 http://www.fastcgi.com/dist/ 里提供的 dll 不晓得为什么配置成禁止下载。于是就从源码(mod_fastcgi-SNAP-0709231442)编译了一份(见附件 http://www.dup2.org/files/mod_fastcgi.dll 以前写过一篇里面提到如何在 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 的编译参数) 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 支持 你们就知道吃饭!招呼达达吃饭,叫了好多次都不来,最后她愤愤的说:“吃饭,吃饭,你们就知道吃饭!生活中应该还有更好玩的事可做” 这一席话说得我们都羞愧不已,仿佛我们只有猪栏的理想.. 这句话是她从小鸡卡梅拉系列的故事里学来的,用的场合还挺正确... 昨天达达回家后有些不开心,因为她由于头发卷卷,而且,皮肤比较黑,被小朋友说成是外国人(她们班好像有多个韩国人,一个美国人)。今早送她去幼儿园,还碰到一个小孩冲她这样喊。 我决定帮助孩子解决这个童年心理阴影,首先跃入脑海的是一个极拜金的理由 于是问她:你说爸爸黑不黑 老婆在旁边听得暴汗... |
最新评论
2 天 6 小时 前
3 天 4 小时 前
3 天 8 小时 前
5 天 12 小时 前
5 天 17 小时 前
5 天 17 小时 前
6 天 3 小时 前
6 天 9 小时 前
6 天 12 小时 前
6 天 22 小时 前