Shell's Home

Mar 5, 2008 - 1 minute read - Comments

晒一晒我的firefox

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后可以直接点击安装。

Mar 3, 2008 - 1 minute read - Comments

用firefox看facebook的问题

用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,又想起来了。赶在今天最后的一点时间,写点啥纪念纪念。

Feb 28, 2008 - 1 minute read - Comments

关于香港艺人裸照事件

香港的艺人裸照事件现在已经是沸沸扬扬,具体情况相信也不用我说了,去网络上找一下,遍地都是。既然大家都已经发表意见,当事人也不愿意多说,我也不想揭人伤疤。不过我倒是对裸照事件中网络的特性很感兴趣,并且想说说未来网络的各各方面的问题。 在这次裸照事件中,真正的幕后发布者”奇拿”从头到尾没有露面,也没有任何消息确认谁就是”奇拿”。他发布照片也不是满世界张贴,而是通过各处的网民转贴。如果不是网络,这一切都是不可想像的。你无法想像自己的裸照会意外的流出,被人倒处张贴,而这个人你还绝对找不到。为什么网络如此特殊呢?因为网络从设计的开始就注定和通常的通讯系统不同。网络具备很高的匿名性,具有一定技术的人员(这种技术要求大致就相当于一个高中水平的人经过一年训练的水准)可以任意的发送消息而不会被追踪。电影上那种特工通过什么东西而追踪用户的事情,在经过一定训练的人手里完全不可能发生。国和国之间的矛盾,法律真空地区,他们永远有办法躲避追踪。换句话说,只要你希望,任何人都可以随意在网络上发消息而且保持匿名。并且广大的网友会自动的将消息传递到各个角落。而且这种发布是极为迅速的,往往是发布会还在开,讲稿已经到了各大论坛。 这个特性是对各国政府,各大公司,大型组织的一个极大挑战! 为什么呢? 自从传播学被从其他学科中分离并且发展起来后,任何大型组织都不会忽视传播的力量。很多巨大的事情往往会因为一点信息而被改变,因此控制信息的人具有相当的力量。也许有人会说我影射中国政府,我不驳斥我说的大型组织中包括中国共产党。然而谁可以找到一个大型组织,对自己的信息完全忽视,还可以蓬勃发展呢?美国也有水门事件,也有新闻控制。从这个意义上说,”控制信息”可以被视为大型组织维持自身形象的一个必然手段。 然而网络打破了这个手段。 大家应该都知道中国的GFW,当然,其宣称的目的是”屏蔽境外有悖于中共当前政策的内容,例如黄色,反动等”。这个可以看做是中共对于网络的必然反应--既希望可以借助网络的力量来发展国家,又担心网络的发展使得国家失去对信息的掌控力。然而通过技术屏蔽的手段是无效的,绕过和伪装远远比发现简单。自从二战以来,数学密码,换位密码,对称密钥的发展,使得加密比破解容易上无数倍。即使是个人,也完全有能力传递国家无法破解的信息,或者将其伪装到根本不会被注意的庞大信息海洋中。可以说,现在如果有战争,那么敌对国家间首要做的事情就是断网,彻底从Internate上断开,包括无线信号。否则只要有邮件收发,就根本查不出其中是否被混入了无法侦测的内容。而返回我们这个论题本身,大型组织对于信息的掌控力,则彻底的被网络剥夺了。 然后,我们完全可能设计出一套系统,使得信息从一个人到另外一个人的传递是无法被窥视和修改的,也是无需通过中心节点的。(笔者当年就曾经设计过这种东西,当然因为众所周知的原因,放弃了)当然,大众是否会使用是一回事情。通过这种东西,我们将来的信息必然是分布的,从个人到个人的,无干预的。这种情况下,我们需要考虑两个问题。这种可能性对社会的影响,这种可能性下的规范。 如果考虑这种可能性对社会的影响,我觉得是相当难说的。一方面,开放的信息传播使得信息透明化和公开化。如果掌控的好,会成为大众监督政府的利器。政府的问题会被迅速瀑光,并且得到解决。从这个角度讲,我们会得到一个更加公正的社会。然而从另外一方面讲,信息的匿名化会使得信息质量劣化。成为虚假消息的温床和散播垃圾的根据地,不负责的言论和奇谈怪论试图吸引人民的眼球。并且,更严重的,会产生很多违背本意的现象。例如网络暴力。 因此我们必须对这种可能性有所规范,从道德层面到法律层面。从道德层面(或许没有这么严重)来说,我们尽力不传播对于我们没有意义的信息,减少传播未经核实的信息。以此减少信息垃圾的产生。然而,我们是否应当去从法律层面阻断垃圾信息的传递呢?恐怕不行。从趋势上说,信息的公开是趋势。反对公开信息,将信息传播控制的权力掌握在少数人手里是逆潮流的。从这个意义上讲,中国公安部禁止个人间传递照片的行为也有简单粗暴的嫌疑。正确的应当是个人间的传递国家不干涉,然而可以由受害者提起民事附带刑事诉讼。

Feb 21, 2008 - 1 minute read - Comments

通知时代

以下内容可以说是作为一个时代的预告,请大家见证将来是否按照我的预想进行。 首先请大家想想,当大家上网的时候,都做什么?也许是打游戏,也许是看电影,也许是泡论坛,也许是看好友的blog。随着web2.0时代的到来,我们每个人都有发布自己话语的能力。看上去和上世纪末的主页时代类似,然而不同的是,发布的频率增高了。假定你和我一样,有大约20-50个好友在网络上进场写blog。每个人每月写一篇,那么你每天就有1-2篇blog要看。你喜欢的电视剧有10个,它们每周更新一次,那么你每天就有1-2集电视剧要看。依此类推,你所关心的东西在网络上绝对不缺。每天平均下来都要看3-5篇东西,和几个朋友聊聊最新的生活,看几集电视剧,多好的生活。然而,当前却有个不和谐的问题,你需要持续的检查更新! 按照我们上文举出的数据来推算,如果这个人每天需要看这些东西作为日常的网络活动。那么他就需要检查30-100个页面来确定哪些内容更新了,需要跟踪10-20个页面来确定需要下载的东西。在网络小众的时代,也许这不是个问题。我们的习惯是每天上网,然后收一次邮件,检查书签里面所有的页面,看看是否有更新了。下载最新的东西,把写好的信件发出去。以天为单位来说,这不是一个问题。然而正如在线时间的增长催生了IM来替代Mail一样,长时间的在线使得我们希望简单的获得”第一时间”的东西。邮件到达的时候,我希望”第一时间”的获得。有新闻的时候,我希望”第一时间”的关注。朋友写了blog的时候,我希望”第一时间”的回复。OK,假定5分钟是你可以认可的”第一时间”。那么你需要每5分钟”检查30-100个页面来确定哪些内容更新了,需要跟踪10-20个页面来确定需要下载的东西”。 幸运的是,我们可以使用程序来自动做这些事情,并且现在已经有了部分解决方案。有一种邮件跟踪程序,可以跟踪pop3,hotmail,yahoo等常见的邮箱,检查是否有新的邮件。好友的blog和新闻都可以用rss软件来跟踪是否有新的内容。然而不幸的是,每种解决方案都是单独的。如果你需要持续的跟踪,就必须挂上邮箱的检查程序,rss的检查程序,网页的检查程序(用于部分不支持rss的网页)。不但复杂难以管理而且资源消耗也相当惊人。 我预期将来大家都会持续的挂线,因此预计将来的模型是”通知”而非”检查”。当你有邮件时,会收到邮件到达通知,当你关注的新闻更新时,会收到新闻更新通知。而具体怎么实现呢?我估计是IM系统整合。当今IM界发展的趋势是互通,IM的特点又是即时,因此有很大可能性会是使用IM来通告新的内容到达。你可以向一些支持的网站注册你的IM,而后他们会视图加你为好友,并且向你提供验证号。当你将验证号回复给网站后,你的网站账户(如果需要的话)就和IM绑定在一起。而后你可以主动订阅一些内容主体的更新通知,当网站程序更新这些内容的时候,会读取到你的订阅。而后将内容更新和你的IM发送到一个队列中,这个队列再将这些消息发送到你的IM中。 当然,IM接受这些消息的显示方式很可能不会用通常的消息界面,更可行的界面是类似google reader的聚合通告界面。当你完成订阅后,你的IM就会将源放到一个通知树中。每个源是一个列表,代表了这个源的内容。例如邮箱源的列表就是邮箱内的邮件,rss源的列表就是rss的新闻,”越狱”这种源的列表就是一堆的”越狱”影片下载地址(当然,如果合法的话)。甚至论坛的某个帖子都可以做源。源代表了内容,并且通告变化,而IM则记录了客户是否看过每个源的具体内容。有可能还会出现一些服务网站,负责每一定时间去检测不支持源的页面,如果满足一定的更新条件,那么就通知页面更新了。 通过这种模式,你每天上线后就可以看到没上线时更新的内容,直接点击过去看。并且在线的时候各种需要的消息还会持续的通告过来。当然,你也应该可以(只要客户端支持)设定某种消息会强制的弹出(例如公司的邮箱里面有新邮件),而某些只是更改托盘区的图标(例如某些有点关心的新闻更新了,你不会希望这个原因把你从游戏里面拉出来吧)。理论上说,当IM的客户端范畴拓展到手机后,我们甚至可以如同宣传中说的一样”随时随地,掌握信息”了。

Feb 16, 2008 - 1 minute read - Comments

找女朋友就像招聘

最近公司管理做多了,发现人真的变态了。新年新气象,要有新目标。写个2007年总结报告和2008年工作计划,然后再画个甘特图。那找女朋友这个怎么操作?就当招聘好了。 兹需高级特种工作人员一名,年限20-26,女性未婚。从事家政服务和精神安慰工作,地点目前在上海,可能视工作需要调动到北京和烟台。要求熟练掌握装笑,装文雅,装高贵和装大尾巴狼的技巧,具备编故事和忽悠人的能力。工作经历要求,不限,最好没有。工资,面议。福利,每月休息一周。 注:面试通过后请带体检表复试…… ……谁在北桥认识人?

Jan 31, 2008 - 2 minute read - Comments

Process Explorer的潜在内存泄漏

贝壳最近碰到一个郁闷到死的问题。机器经常出现硬盘狂转,系统响应延迟。系统弹出一个错误,然后死机。贝壳开始猜测是硬盘驱动问题,升级驱动N次,无效。然后再猜测是ext2fs的问题(贝壳用这个驱动挂载linux下面的盘的),看来看去,不是。最后,贝壳确定了,这是内存泄漏了~~~ 问题是,这时候可没人跳出来推荐喝什么口服液的。贝壳系统中永远挂着一个procexp,看内存状态的。这东西是sysinternals的产品,后来被微软收购了。功能强大,很多系统调试,杀马都需要用到。于是贝壳就用这个工具看哪个程序的内存泄漏,可是看来看去看不到。准确说,是没等贝壳看到,系统就先死透了。最后贝壳多次尝试,发现了一个死机的规律。当mysql开启的时候,procexp就会随时发生异常死机。这是一个重要的提示,要么mysql内存泄漏了,要么procexp内存泄漏了。究竟是哪个呢?贝壳用了同属于sysinternals开发的pstools系列工具,仔细检查了异常发生时候的内存状态,确定,Process Explorer存在内存泄漏的风险! 看来sysinternals被微软收购后,旗下的工具也出现了微软的一贯特色。以下是一次内存泄漏后,终止mysql服务后抓下来的内存状态输出。如果不终止mysql,不等我抓系统就挂了。 Process memory detail for HOME-B2326348D0: Name Pid VM WS Priv Priv Pk Faults NonP Page Idle 0 0 28 0 0 0 0 0 System 4 800 52 0 0 10120 0 0 smss 772 3748 48 172 1648 223 0 5 csrss 828 68132 1464 2304 3768 13748 6 144 winlogon 856 61528 580 8536 8684 5143 39 96 services 900 37724 804 2256 2404 2740 7 65

Jan 26, 2008 - 1 minute read - Comments

弄死MSN的共享文件夹

MSN8的共享文件夹功能根本就是一个废物功能,速度慢,不习惯,而且用处不大。最恶心的是,没有卸载选项不说,手工卸载后一开MSN一重起还会回来。NND,看我怎么弄死他。MSN虽然是微软自己的产品,但是也需要遵守微软的API行为。改变资源管理器的行为是用COM组件注入到exlporer中实现的,没有使用驱动层的东西。那么我们就设法阻断DLL文件的注入加载。 首先,regsvr32 /u是不行的。因为MSN一启动又会注册上,除非你不用MSN。删除文件也不行,因为会再生成一个。那么,我放着文件不动,把内容清空,然后再删除NTFS权限怎么样呢?即使是微软的产品,也不会强制说我的更改无效,然后自己胡来一套吧。 首先,关闭所有MSN有关软件,在运行中输入cmd开一个命令行窗口。然后,用process explorer(现在这东西也是微软的产品)终止explorer进程(系统自带那个应该也行,不过我没有测试过)。这步顺序非常重要,因为我们要先阻断COM组件的加载,否则无法对文件实行更改。所以我们要先打开一个CMD,然后再关闭explorer。否则一旦关闭explorer,开CMD就难了。而没有CMD,要去删除文件就要多费一些手续了。 我们现在在CMD中切换到MSN所在目录,删除fsshext.8.1.0178.00.dll啥的文件。这个文件名会根据你安装的版本而变化。而后启动explorer(在CMD里面敲explorer就好),这个时候COM组件已经没有加载了。于是我们建立一个文本文件,改名叫fsshext.8.1.0178.00.dll,放到MSN的目录里面,再删除所有人的访问权限。删除的方法是文件上右击,点属性,安全,高级,取消”从父目录继承权限”的勾选,然后点删除。如果看不到安全选项卡,检查以下项目。工具,文件夹选项,察看,使用简单文件共享(推荐),取消他的勾选。微软的东西,最好表随便勾。 根据我的测试,这时候你随便重起电脑,MSN的组件说加载不上就加载不上。同理也可以应用到3721之类的流氓组件上,只要抢先建立了同名的文件,并且阻断了权限,这些组件就会无法使用。如果你进一步做了分离权限(日常不使用管理员账户),即使安装程序作者知道这种方法都无法应对。如果可以的话,就说明微软存在漏洞了。

Jan 25, 2008 - 4 minute read - Comments

财务数据库

贝壳最近工作繁忙,一般都是晚上十一点到家睡觉,第二天早上继续上班的那种,所以blog基本没怎么动。现在放篇财务数据库的原型,大家参考一下吧。当然,是对程序员而言。像六牙四皂小姐这种下面估计是压根看不懂的,而且也不会有那种变态的资金准度要求。 首先建立一个账户表。 DROP TABLE IF EXISTS `accont_info`; CREATE TABLE `accont_info` ( `id` int(11) NOT NULL auto_increment, `username` varchar(40) NOT NULL, `accont` varchar(40) NOT NULL, `accont_type` int(11) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`,`accont`) ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=gbk; 输入用户名,账户名和账户类型,例如”许智翔”,“招行账户”,2。账户类型中规定1是现金,2是存款,3是信用卡,4以上不计算。这样可以使用多个现金账户,存款账户和信用卡账户。然后利用子查询把所有类型间的相互行为统计出来。 然后是类型表。 DROP TABLE IF EXISTS `type_info`; CREATE TABLE `type_info` ( `id` int(11) NOT NULL auto_increment, `type` varchar(40) NOT NULL, `subtype` varchar(40) default NULL, PRIMARY KEY (`id`), UNIQUE KEY `type` (`type`,`subtype`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=gbk; 最后是资金流动数据表,accont_id中填写出户账户名,to_accont中填写入户账户名。如果是外部(例如从别人那里拿钱或者给别人钱),则写0。happen_time上填写发生时间,money上写金额,message上写备忘。