探索互联网趋势小实验

当初想做这个实验纯属蛋疼~那么就说说实验的思路和步骤吧。以百度新闻为入口,通过抓起网页,分析网页内容中的词语,然后对词语出现的次数进行统计,抓取网页内容的同时抓取中其中的超级链接并存入数据库,当此页内容分析完毕后就从数据库中获取下一个爬取的URL。思路很简单,实现也很方便,至于抓取URL的数量开始定为100,000条,后来想想这个数据量太大,估计服务器无法承受得住,于是减为10,000条,每次运行都会分析一个页面并搜集更多的URL,同时过滤掉重复记录的URL。对服务器设置计划任务,每两分钟运行一次,计划15天完成实验。之所以将任务间隔设置为两分钟是为了对计算资源消耗有所控制,如果资源消耗过快可以随时停止,防止任务运行过快来不及对计算资源的控制。昨天跑了一晚上,今天跑了一天,发现9000的资源积分已经消耗至6600,后台检测才刚刚抓取了436个URL,于是果断停止了这个实验。

由于实验样本比较小,与实际结果会产生一定的偏差,不过还是有一定的参考价值。在抓取的436个URL中,获取名词、特殊名词、人名、地名等名词性实词9,455个,其中排名前10的词与出现次数分别如下:

新闻(49081) 乔布斯(41111) 微博(30791) 视频(30107) 中国(21889) 新浪(21159) 首页(19288) 苹果(18305) 游戏(16464) 财经(15757)

完整报告请详见 http://sneezry.com/wp-content/uploads/sneezry.com/2011/10/results.html

实验环境:Sina App Engine,php,mysql

乔布斯创造了属于他的时代

我曾经对苹果不屑一顾,作为开源事业的忠实支持者,我看不惯MAC与iOS的封闭,对iPhone千篇一律的外观嗤之以鼻……可今天得知乔布斯辞世的消息后,心中还是不免有些震撼与伤感。即使我曾经对苹果的理念再不屑一顾,乔布斯他超出常人的卓越才干也无法被否认。是他和沃茨制作了世界上第一台拥有显示器的计算机,是他创造了视窗操作系统,是他将鼠标带入了人们的生活,是他将iPod带给人们并使之疯狂,是他创造了iPhone使全世界都为大屏幕触屏手机疯狂,是他创造了iPad使世界进入平板电脑时代……如果没有乔布斯,世界不会变得像今天如此美好。

人们熟知Windows操作系统,在嘲笑Mac OS任务栏在上面、桌面图标在右侧排列的“蹩脚”布局时,却不知道当初Bill Gates只是为了不抄得过于明显而已;人们为Vista那美轮美奂的半透明特效赞许不已时,却不知道Mac OS早在1995年就这个界面展示给了“果粉”们。苹果公司由于封闭的理念险些销声匿迹,当乔布斯重新上任后推出iPod播放器时,业内耻笑苹果从一个堂堂电脑公司沦为一个mp3播放器公司,但随之iPod大火,就连微软也没想到一个小小的音乐播放器会带来如此大的利润,会有如此大的市场,于是微软推出了Zune。

Google很早就着手Android的开发了,早过2007年,就算是创新能力如此之强的公司也没能摆脱当时使用键盘操作手机的框架,虽然Google当时就选用了大屏幕,可是使用按键选择菜单却显得操作是如此的麻烦。直到2007年iPhone发布,众多人看到iPhone的外观后大笑不止,只有一个按键的手机!难道随手机苹果要送一本字典一样厚的操作手册?!用户不会接受的!结果iPhone又是大火,连Google也放弃了多年前设计的使用键盘操作的手机而转为使用触屏。当时的iPhone在发布之日起就支持的多点触控,当然还是遭到了大多数人的质疑,认为那是没有必要的花哨功能。当Android第一部手机发布后,有记者问Google,Android的多点触控功能如何,Google在沉默片刻后的答复是,目前我们还不支持多点触控,如今没有多点触控,我们会发现用手机缩放扩大网页和照片显得如此不便。

在人们对iPhone的批判还没有完全结束的时候,乔布斯又带给我们新的产品——iPad,这个介于手机和笔记本电脑之间的“怪物”我们之前从未见过,说实话,当时我也和周围人一起将iPad嘲笑了一把,借用Google的话说,那就是一部不能打电话的“大手机”,谁会天天把一块“菜板子”带在身上?!当然,就如你现在所知的,我们又错了,iPad发布后的成功,将世界带入了平板电脑的时代,三星、MOTO、HTC、宏碁、HP……都争先恐后地发布自己的平板占据这块利润丰厚的却涉足已晚的市场,他们在配置上价格上下功夫,可是还是无法击败那搭配如此巧妙设计如此精湛的iPad。没错,乔布斯发布的每一样产品都不是单纯的产品,而是艺术品,而只是生产单纯产品的公司怎么能击败将产品作为艺术品生产的公司。

有人说乔布斯能看到25年后的世界,对此我深信不疑,也是iPad,苹果,乔布斯让我懂得,在你不知道未来会怎样发展的时候,不要嘲笑别人的决定。

乔布斯走了,感到伤心感到担忧。伤心是来自内心的伤心,是没有任何理由的伤心,之前从未感觉到。担忧失去乔布斯的苹果会再像曾经那样渐渐被世界所遗忘。真心希望乔布斯卓越的才能与无法被击败的精神能深深留在苹果公司,成为苹果的一部分,并将其永远延续下去。

乔布斯,感谢你。乔布斯,走好。

CreQQ第一个正式版放出

连续改写了五天,我认为是放出正式版的时候了 :)

最初想写一个QQ插件就是因为想刷微博的时候可以方便地聊天,毕竟开个QQ还要打开QQ窗口,插件图标直接在浏览器上,怎么说还是省那么一点点事吧,哈哈,我就是这么个懒人 :P

好消息是经过五天的修改正式版支持了默认表情、可以显示好友头像、获取好友在线状态成功、更改了登录窗口、添加了注销功能、登录过程中的取消功能和删除聊天记录功能,虽然这都是些基本的功能,但是实现起来其实却并不容易,尤其是自己孤军奋战时 TT

比较遗憾地是依然不支持自定义表情、不支持群功能,另外注销和取消功能可能还有些小问题,不过这已经不影响正常使用了

大家可以到 https://chrome.google.com/webstore/detail/hbcpjlgihkbgbpcfdnajmfnlfgmnjajl 安装CreQQ的正式版,感谢 @甩甩鸟哥 和 @魑魅魍魉SNK 帮忙进行测试 xD

另外祝鸟哥生日快乐哈~

PS 如果无法获取,请点此下载(最新版本:v1.8.5)

请注意:如果登录时出现提交验证码而无法登陆的情况请尝试三次,如果依然无法登陆,请先停用插件后再启用插件,目前验证登录问题正在解决中。

将QQ放进谷歌浏览器——QQ Chrome插件

好久没有更新博客了,因为之前一直在准备考研,既然好久没更新,那么一旦更新自然就要来点重头戏了——QQ Chrome插件内测版发布~说起QQ我想大家应该是再熟悉不过,应该很多人开机第一件事情就是挂QQ吧,哈哈。不过说来我对QQ可真是又爱又恨,爱它为我将多年朋友紧紧连在一起,恨它太闭塞,开放性太差,而且Linux平台上的版本都可以称为古董级的了。

大家是否想过把QQ就放在浏览器里呢,不用一直开着网页,随时随地都可以一边浏览网页一边聊天呢?反正我想,哈哈!于是就这么快乐地决定了:) 本来想直接把Mini WebQQ加个壳放到Popup页面里,但是问题也是显而易见的,Popup不打开时是不运行的,每次关闭Popup都会导致WebQQ掉线,另外带新消息时我们也无法得知。于是乎就想到了Background,这个页面倒是一直在后台默默地运行着,可是前台却无法得到它的内容,如果用框架的话会创建一个新的链接。一时间陷入困境,虽然加壳的WebQQ很糟糕,但是 @njukidreborn@魑魅魍魉SNK 还是在第一时间进行了测试,并且提出了宝贵的建议,在此深表感谢!

目前这个内测版功能很单一,只能和好友聊天,没有群功能,也无法获取好友的详细信息,如果可能,这些功能以后会慢慢加上的。另外这个版本还不稳定,登录时有时可能会出现问题(尤其是需要输入验证码时),如果登录时没有反应请重新点击插件图标,如果多次没有反应,请停用插件后再启用,如果还是无法登陆(几率不太大~)只能重装插件了(Sorry for that :(

还有就是当插件进行数据传输时,可能会段时间内没有响应,此时请耐心等待,最长不会超过20秒,当插件忙碌时图标上会有提示(显示“…”、“….”、“>>>”、“>>”和“<<<”时),(数据已改为异步处理)如果插件显示“v”说明服务器要求输入验证码,插件不会自动登录,打开浏览器第一次点击插件图标时会开始登录。

虽然没有对插件代码进行特殊处理,不过代码写得有点乱,可能不算是好的参考教程 xD,如果你想学习QQ的相关协议可以在Google搜索“WebQQ 协议”,我相信你会找到更满意的答案的 :P

如果你对这个插件感兴趣,请 Email 至 lizhe#lizhe.org 索取插件,如果你愿意帮助我将它变得更好,欢迎和我联系!

请通过以下链接安装最新版 CreQQ:

https://chrome.google.com/webstore/detail/hbcpjlgihkbgbpcfdnajmfnlfgmnjajl

或通过以下链接下载离线安装文件:

http://sneezry.com/2011/09/creqq%e7%ac%ac%e4%b8%80%e4%b8%aa%e6%ad%a3%e5%bc%8f%e7%89%88%e6%94%be%e5%87%ba/

悼念7·23特大动车追尾事故

7月23日这一天,30多条鲜活的生命随着一声巨大的撞击声灰飞烟灭……这是一个几度低级而又非常严重的错误!着实令人愤慨!令人愤慨的不是动车高铁频频出现问题,二是官方对出现问题后万般狡辩规避责任的态度!翻车、追尾事件这不是第一次,每次都说会吸取教训,避免类似事件继续发生,可到底你们吸取了什么教训?动嘴巴谁都会,而你们这种态度不知要比杀人的武器更加危险多少倍啊!2007年CCAV新闻称我国自主研发的动车组技术处于世界先进水平,不会追尾;高铁由于雷击4天出现3次失去动力,有关专家说这是我国动车安全的表现……如今因为雷击(暂且认可官方怨天的说法)动车追尾,CCAV哪去了?!所谓的专家哪去了?!中国传媒大学一名09级同学在此次事件中不幸遇难,他在人人网的最后一条状态是“买到票了,社会进步就是好”,政府你拿什么赔偿人民对你的这份信任?!有一位小女孩第一次出远门,和爸爸一起坐动车旅游,可是她从此失去了爱她疼她的爸爸,更令人寒心的是,女孩的爸爸的尸体被发现前和发现后铁道部都公布只死35人,女孩爸爸的朋友在网上发布微博愤怒地说:“兄弟,你连死人都算不上啊”!铁道部在事故发生后不到48小时就宣布救援结束,可是为什么还是在救援结束后发现了生还者?!你们真的认真搜索遇难者了吗?!坠桥的4节车厢是满员,每节差不多都能装200人,你公布的死亡人数加上受伤人数连一半都不到,剩下那些不算人还是你们没找到?!车体残骸不经过调查直接掩埋,还说什么方便救援,你是认为百姓的脑子不好使还是你自己的脑子不好使?!这么多年,中国问题再多,我也很反感外国人说三道四,可这次面对日本人对中国动车的嘲笑,我却异常平静——政府真的太不争气了!日媒对于中国动车追尾事件的报道标题是“中国高速铁路出现事故,一埋就结束了”,这让我们有什么理由去反驳?人家说的确实是事实啊!动车车载信号传送系统、动车动力系统、轨道信号传送系统就被雷这么劈了一下就同时失灵,真是让人钦佩这些系统的性能啊!还说什么有防雷措施!在完全没有查明事件发生的原因前,事件发生不到48小时就恢复了通车,政府到底把百姓的命当作什么?!出了事件,上海铁路局高层领导被免职,话说你们铁道部不是把责任完全推给天灾了吗?!怎么还把高层给免了,难道地震也会把当地的领导免职吗?!铁道部的这一举动和之前的言论严重不符!动车信号系统被几家大公司所垄断,而此次事件基本可以确定是信号系统出现问题,而铁道部匆匆埋掉车体残骸是否是想隐藏提供事故列车信号系统的公司?铁道部和那些垄断公司是否还有什么其他说不清的复杂的关系?!在提供信号系统公司的中标中铁道部是否得到了额外的好处?!

说了这么多过激的话,心情还是难以平复,原来我们祈求政府不要拿纳税人的钱不当回事,现在我们只祈求政府不要拿纳税人的命不当回事。最后,我相信,在中国经历了这段畸形社会时期后,虽然这段时期可能会很长,但我依然坚定地相信,中国终会走上正确的发展道路!

为了悼念此次事件,我再次将博客变为了黑白色以示默哀,同时在博客底部放置了开动的和谐号……

 

应网友要求,现把和谐号相关代码单独抽取出来:
javascript:var hxhdiv=document.createElement("div");hxhdiv.id="hxh";hxhdiv.style.position="fixed";hxhdiv.style.bottom="0";hxhdiv.style.height="95px";hxhdiv.style.width="100%";hxhdiv.style.zIndex="99";hxhdiv.style.display="block";document.body.appendChild(hxhdiv);var hxh=document.getElementById("hxh"),hxhw=parseInt(hxh.offsetWidth),hxhs=250,hxhd=5,hxhc=300,hxht=0;
function hxhrun(){hxh.style.background="url(http://sneezry.com/wp-content/uploads/sneezry.com/2011/07/hxh.png)";hxh.style.backgroundRepeat="no-repeat";hxhl=hxhw;var a=setInterval(function(){hxh.style.backgroundPosition=hxhl+"px 0px";hxhl>hxhc&&(hxhl-=hxhd);hxhl<=hxhc&&hxhl>=50&&(hxhl-=(hxhl-50)/((hxhc-50)/hxhd));hxhl<51&&hxhl>50&&hxht<hxhs&&hxht++;hxht>=hxhs&&(hxhl=hxhl>50?49:hxhl,hxhl-=(50-hxhl)/((hxhc-50)/hxhd)>=hxhd?hxhd:(50-hxhl)/((hxhc-50)/hxhd));if(hxhl<-4524-hxhw)clearInterval(a),hxh.style.display="none"},20)};hxhrun();