Shell's Home

python的非经典错误

Apr 8, 2008 - 1 minute read - Comments

def comp_tuple_file(tuple_file1, tuple_file2): for i in tuple_file1: if i in tuple_file2: tuple_file1.remove(i) tuple_file2.remove(i) if __name__ == "__main__": t1 = [(1, "1"), (2, "2"), (3, "3")] t2 = [(1, "1"), (3, "3"), (2, "2"), (4, "2")] comp_tuple_file(t1, t2) print(t1) print(t2) 错在哪里? 头一次循环,i=(1,“1”)被正确移除了。但是接下来,i=(3,“3”)? 这个叠代器的行为很有意思哦,貌似叠代器内存储的是集合的索引。 def comp_tuple_file(tuple_file1, tuple_file2): collection = tuple_file1[:] for i in collection: if i in tuple_file2: tuple_file1.remove(i) tuple_file2.remove(i) if __name__ == "__main__": t1 = [(1, "1"), (2, "2"), (3, "3")]

链接上的问题

Apr 7, 2008 - 1 minute read - Comments

贝壳最近在用库上吃了不少苦头,先是crypto++5.52。编译后怎么也链接不上。后来发现需要用/MT参数编译为多线程。后来又在STLport上又吃一次苦头,可见VC2003的默认单线程模式确实不得人心。 下面说一下STL的编译手记。下载STLport,解压。运行vcvars32.bat设置环境变量,去build/lib下面,运行 configuare -c msvc71(如果你是2003,否则按configuare –help察看你的编译器类型)。然后运行nmake -f msvc.mak install。可以看到有两个目录被建立了,bin和lib。把bin的复制到windows/system32下面,把lib的复制到系统目录下面。 安装就OK了。 上述和boost都差不多,然而和boost不一样的是,编写程序的时候,需要手工指定stlport的头文件路径。boost的可以以<>来引入,因此boost的头可以复制到系统里面去。然而stlport的必须以手工方式指定,否则就要覆盖默认的stl 了。

显示自身的代码

Apr 1, 2008 - 1 minute read - Comments

void main(){char* a=“void main(){char* a=%c%s%c;printf (a,34,a,34);}“;printf(a,34,a,34);} 核心是使用printf(a,a)来代换显示,并且用34来规避转换。当然,完整的要带include,稍微有点区别。

None

Mar 27, 2008 - 1 minute read - Comments

说要换blog,但是隔了几个月还是没动,因为贝壳了解到一个悲惨的事实。google提供的blog,是要穿墙的。 这样说的话,我估计这篇blog是没有几个国内用户了。不过华语使用者众,多条路也不错。

一些使用firefox的技巧

Mar 10, 2008 - 1 minute read - Comments

在linux下和windows下共享同样配置/插件。这个很简单,上面的blog中有篇文章说到thnunderbird在双系统下共享同样邮件的问题,firefox也一样解决。能用linux的人不会查不出配置目录位置吧。 节约内存技巧。 firefox虽然号称小巧,然而很多时候我们发现他的内存消耗也非常惊人。在贝壳的机器上,有的时候会高达150M,基本等于普通编辑器/播放器的10倍。事实上,不是firefox浪费内存,而是默认的内存配置是针对”机器上只开firefox”设计的。如果你机器内存小,或者需要同时开其他程序,最好自己配置一下firefox。 首先就是fasterfox,关闭其中的”增强预读”,这东西很消耗内存。然后是内存缓存,调整到32M吧。一般一个网页上所有文件差不多1M-2M,32M够把20个网页的所有内容缓存起来,再多就不大正常了。根据贝壳自己的猜测,渲染动作应当是动态进行的,否则内存根本顶不住长文本的渲染。这样在浏览的时候,从后台抓取内容,动态渲染的速度就非常重要,因此强烈推荐不要小于8M。否则连5个页面的内容都不在内存中命中,还玩个P阿~ 还有渲染中的”启用快速返回”,将内存中的保留页面数调整小,贝壳用的是3。当然,这个只适用于firefox1.5。 其次是session manager,将”撤销关闭”尽量减小。反正贝壳减小到了1个窗口3个页面。这些页面在关闭后还是继续消耗系统的内存,因此越小越好。当然,小到多少是要看你的具体需要了。 最后,少用插件,少启用插件,除非你真的需要。长期不需要的就禁用,或者干脆卸载。 内存回收技巧。 很简单,觉得不够了,关了再开。反正有session manager,正在浏览的网页根本不会有影响。 同时打开大批网页技巧。 最好使用Tree Style Tab,这样方便。另外,如果需要打开一个页面的所有连接,可以这样做。先察看页面信息,选择”链接”->“全部选择”->“复制”,然后开一个文本文件,把内容粘贴进去。可以看到内容其实是一堆的页面链接。当然,如果页面内有js做的链接指向,可以试试用Convert javascript or onclick to normal links这个greasemonkey脚本转换成目标链接。然后,把这个文本文件改名成htm,打开。通常情况下应该是一堆无法点击的文字,不过你可以用Linkify ting来把文字转换成一堆链接。然后……一个个点过去吧。 上面是使用greasemonkey解决的方法,当然,也有更简单的方法。你可以安装flashgot,然后新增一个下载管理器,名字叫做firefox。路径就指向firefox的执行文件路径,参数不用动。平时用你喜欢的管理器,需要打开全部链接的时候,更改为firefox,然后”使用flashgot下载全部链接”。当然,缺点是对付不了js脚本,除非你加载Convert javascript or onclick to normal。 不过鉴于内存状态考虑,建议不要同时打开大量页面。维持在10-20个上下最好。

大灌篮的广告

Mar 6, 2008 - 1 minute read - Comments

昨天看大灌篮,多好看是没看出来,不过广告让我印象深刻。 周杰伦一接手机,HelloMoto。 打开一看,移动飞信。 …………

晒一晒我的firefox

Mar 5, 2008 - 1 minute read - Comments

firefox是很有名的浏览器,以其短小和安全而著称。相信很多朋友喜欢使用firefox,然而你真的会用么? 首先纠正一点,最标准的浏览器虽然不是IE,但是也不是firefox。而是以下三个,Safari(WebKit) / Opera(Presto) / Konqueror(KHTML)。Safari是Mac上的浏览器,Konqueror是Linux上的,Opera则多数用于手机上。Firefox 2.0.0.3 (Gecko 1.8.1.3)稍微差点,Internet Explorer 7.0 (Trident)和Internet Explorer 6.0 (Trident)是最不标准的。具体请看Acid2测试(http://www.osxcn.com/css/the-second-acid-test.html)。当然,也有消息称Firefox和IE已经都通过了测试(http://www.appbeta.com/50226711/ie8afirefoxasafariaoperaecaeacid2ce_133101.php)。 其次,当你用着号称国人精华的XX浏览器的时候。首先请注意一下他是否使用了ie内核。IE有一个非常大的框架,其内核是Trident。所谓的浏览器内核,就是负责将html转换为DOM,然后渲染的组件集。当然,还有一些执行js等等的组件。微软的IE内核一般在mshtml.dll上,如果你有procexp,可以看看所谓的XX浏览器是否用了这个dll。如果用了,没的说,肯定是Trident内核。如果没有么……将mshtml改名转移,直到IE无法正常浏览。然后看看您的XX浏览器怎么样。 Firefox的内核是Gecko,据说将来要使用Cairo。这两种组件……嘿嘿,贝壳都用过。但是firefox最强大的是他的插件组,效果终身难忘,让人不忍舍弃。下面贝壳介绍一下firefox的部分插件,脚本。 /find/,这是个很小巧的插件,可以使得firefox能够以正则表达式在全文进行搜索。普通用户就表想了,这东西可是专业人士的杀手工具。可以做出”搜索全文中的所有电话号码”或者”搜索全文中的所有email”等等强大功能。当然,如果你需要的话。 CustomizeGoogle,GFan一定要用。这个插件可以定制Google,例如可以在其他搜索引擎搜索,剔除赞助商广告,修改搜索的语言(贝壳的firefox就老阿达到英文上去,用这个插件就一切OK)。适用于Google的多个产品,包括gmail,google reader等等。 fasterfox,强力推荐,加速插件。不过通常我都是用来调整性能参数的。自定义设置,不启用增强预读,缓存32M。这个配置对于0.5-1G的本本很有用。 firebug,这东西也就网站开发人员用。不过绝对是杀手阿,可以看到网页的css,javascript,在线调试,察看ajax的网络通讯。通过这个东西,很容易调试多数的网页。 fireshot,推荐看小说的的人用。可以将当前的网页整个导出成png(贝壳注:这不就是Cairo的基础功能么?导出到虚拟interface)。想想你看小说,将当前页面打印到png。不用截屏拼接,嘿嘿。当然,更好的方法是用firebug,直接可以提取内容。不过……看你水准了。 flashgot,强力推荐,用这个东西可以将firefox的下载转到flashget上。当然,也支持迅雷,netant和bitcomet。这个东西弥补了firefox不支持专用下载软件的尴尬。当然,也有人喜欢都在firefox里面做。这个就如人饮水拉。 gladder,用于爬GFW看Wikipedia的东西。如果听不懂,我不再解释。 gmark,推荐多个电脑的人用,可以在各个地方用google bookmark,就好像用自己的bookmark一样,方便统一bookmark。如果你不喜欢在线bookmark(我觉得没有必要,用浏览器必定在线,除非google故障离线bookmark才有用),那么可以用gmark的导出功能,导出到html。然后用firefox的导入,同步两个bookmark。其他插件要么是使用不习惯,要么就是不能和firefox自身的bookmark同步(都是单向的从firefox bookmark导出)。 google reader notifier,推荐用google reader的挂线族。这个插件会提示你有多少东西你没有读,定时刷新。 google笔记本,这个需要到google去下载,和gmark一样是让多个电脑同步的好东西。可以直接弹出一个google note让你记东西,并且在任何地方访问。同时也可以选中网页中的部分内容,点击加笔记,自动添加到笔记本中。 greasemonkey,强力推荐,将用户脚本插入到页面中的组件,可以动态修改页面行为。下面会专门讲用这个组件挂脚本的技巧。 IE tab,强力推荐,有的时候突然需要看IE,但是单独开一个IE非常麻烦。直接点右下的这个图标,当前页面就会自动切换成IE浏览。只是如果处于登陆中,恐怕会退出。 keyconfig,可以自己配置firefox的快捷键。 MinimizeToTray,最小化到托盘区的组件。配合上面一个,对付老板的利器阿。 NoScript,强力推荐,拒绝恶意脚本,增加安全性。当然,弄不好就是拒绝正常脚本,增加麻烦。 Session Manager,强力推荐,可以保存你当前在看的所有列表,下次恢复。也可以同时恢复登陆状态(例如你登陆了网站,下次上线就如同中间没有做任何动作一样,当然如果超时被踢就没办法了),恢复关闭窗口。对付firefox的重起,减少内存消耗(手动重起),看一堆页面看到一半有事……等等。非常有效。 Tree Style Tab,另类的tab样式,把tab在左边做成树,可以折叠展开。如果你和我一样,经常喜欢大量的打开页面。此时,上面的tab往往缩的很小,看都看不到,但是还是长的要左右乱翻。这个时候这个插件非常有效。而且可以看到浏览的派生关系。如果平时觉得浪费空间,可以改回去。等需要的时候改过来。 Update Scanner,扫描页面变化,如果有变化提示。对于看小说/泡论坛……等等。不用你们一天老去刷帖子了,这个插件可以提示你页面是否更新。当然不是没有更好的,不过那些东西都要写变化脚本,天哪~~ 上述的插件大都能在addons.mozilla.org或者addons.mozine.cn找到,如果不行就去google搜索。注意使用插件会消耗一定内存,尽管上面的大多插件都不怎么消耗内存,可都放上也比较让人受不了。一般贝壳都是将不用的转到禁用的。 下面讲解greasemonkey的用户脚本技巧,多数脚本可以到userscript.org找到。 GoogleTagCloudMaker,最好用的greasemonkey脚本。可以将google搜索的广告移除,变成关键字云。点击关键字云往往能追踪搜索,直到找到需要的东西。 Show Btchina,让你可以浏览bt.btchina.net。这是个bittorrent种子搜集站,但是firefox无法浏览。使用这个脚本使得firefox可以正常浏览。 Download Youtube Video III,在youtube的播放文件下面显示一个download,链接到播放的flv文件。可以很轻松的进行下载。以前贝壳都是用youplayer,老开着占内存,不老开就要重起firefox。虽然有session manager,不过也很讨厌。使用脚本就可以针对页面工作,减少内存消耗。 以上的脚本在安装greasemonkey后可以直接点击安装。

用firefox看facebook的问题

Mar 3, 2008 - 1 minute read - Comments

用firefox看facebook的时候老出问题,主要是验证码无法通过。会么?这年头连live spaces都可以用firefox了。(当然图片上传例外,除非你用IE Tab)而且facebook还有firefox的toolbar,要是再无法使用firefox就太奇怪了。 今天总算发现了问题的所在,facebook使用了ajax技术,这种技术会动态的载入和卸载一些页面内容。而我使用了NoScript脚本,并且将facebook加入了白名单。这下可中计了。facebook常规浏览的时候,脚本都来自facebook本身。而当验证的时候,使用的另外一个公司的服务。在验证前,页面的脚本都是不被阻止的,因此我也没有发现异常。在点击验证后,由于页面没有刷,所以我压根没有注意到,下面的阻止从完全通过变成了部分阻止。当然,被阻止的就是另外一家公司的验证脚本。 因此,我将这家公司也加入了NoScript的白名单。OK,世界从此清静了。

艳照门事件的问题所在

Mar 2, 2008 - 1 minute read - Comments

艳照门事件,大家都骂陈冠希变态。不过可能没人想过,自拍可不是问题所在。 如果要说自拍大家无法接受的话,莫非那堆女的也跟着变态。要是陈冠希和老婆的照片流出来,大家绝对会当那是受害者吧。陈冠希的罪状,在于滥交和第三者。而其中让大家最起哄的,莫过于男人对女主角数量的嫉妒和女人这种事情的反感。

多出的一天,被偷走的一天

Feb 29, 2008 - 1 minute read - Comments

四年一次,229。 今年我们是幸运的,因为四年才碰到一次,项目周期可以多一天。 今年我们也是不幸的,因为如果不跨二月,项目周期可以再多一天。 下次229会是幸运还是不幸呢?鬼知道。 P.S.本来都忘记了,结果今天看nancy同学blog的rss,又想起来了。赶在今天最后的一点时间,写点啥纪念纪念。