2010年8月30日星期一

方舟子被打了

方舟子,打假专家,爆料帝,被不明身份“人”袭击。一个没有官方背景,没有公权力,没有官方保护的人,尽干些公家该干的事。

季羡林说,要说真话,不讲假话。假话全不讲,真话不全讲。就是不一定把所有的话都说出来,但说出来的话一定是真话。

小时候曾被教育,要讲真话,助人为乐。当看到周围的人该讲真话该助人的时候袖手旁观,讲真话助人的人被打击报复栽赃诬陷,而讲假话做坏事的人却奖而不罚。

我们活在一个水的世界,凡是有棱有角的石头都会被消磨得光滑。中国传统的中庸思想,不仅光鲜地表现在外交政治,而且充分地展现在茶米油盐中。处事圆滑不冒进不保守,侍机而动,这显然在具体的操作中尝到了甜头,所以才能被发扬光大。

讲真话和做好事,都不容易。我不知道这世界到底有没有因果报应,但有人说过,“有的人活着,他已经死了;有的人死了,他还活着。”

套用季老的一句话,要做好事,不做坏事。坏事全不做,好事不全做。

2010年8月28日星期六

360“安全”吗?

360是一款免费的软件,具有系统打补丁、清除恶意插件、木马查杀等功能。因为其免费,操作简单,迅速占有了过亿的装机量。

早年上网的人都知道3721网络实名,就是在浏览器地址栏中输入中文其可以提供直达该中文的网址,功能上来说用户也是需要的,只是这个软件是不管三七二十一就往你电脑上插,也不管你愿意不愿意。这样强行插入,也就是耍流氓的行为了。

回头看看360,总是时不时地提醒你电脑有漏洞,健康状况不好,存在恶意插件,需要扫描等,迫使用户花大量时间来进行检查、扫描、安装工作。想安装的软件经常被他阻截,打开软件的首页,充斥的是攻击对手的新闻,隔三差五的提示你升级,甚至偷偷升级。对于初级用户通常采用恐吓的词语,“严重”、“恶意”、“流氓”等等不绝于目。

打着“安全”的旗号,外加“免费”的外衣,来暗渡陈仓。可是这些真的是需要吗,如果你没有安装、扫描、清除、升级,你的电脑会不安全吗,被攻击过,中过木马?

从3721到360其实它们中的有些功能用户还是乐于接受的,只是在使用过程中变了味。为什么不能老老实实做软件,为什么不能“不作恶”?

歹徒不是来复职的

在菲律宾事件中,新闻所指的歹徒名叫罗兰多·门多萨(Rolando Mendoza),55岁,是当地一名高级督察,曾当选菲律宾全国十佳警察,但两年前因涉嫌与同僚勒索一个酒店厨师被革职。门多萨此次挟持人质的目的是要求政府让他复职。

通过挟持人质的方式来复职,怎么说也有点牵强,一般常见的情节是利用人质来谈判,谈妥之后有关部门调直升机来,送上一千万美元,让劫匪远走高飞。

即使真的是用来复职的,可为什么偏偏选中外国的旅游车?就近或者碰巧?我看不是。因为既然是有目的性了,怎么也得稍微规划一下吧。

看来歹徒可能真的不是来复职的,作为全国十佳警察他知道警察队伍的腐败,作为菲律宾国民他了解这个国家的国情,他偏偏劫持外国人质就是想引起更大的轰动,借此来显露出无能的警察队伍,糟糕的国家。

他确实做到了,让全世界至少是中国人香港人愤怒地看到了如此差劲地营救行动,让菲律宾成为了公认的“失败国家”。

梦到火车

对于火车最早的印象可能是刚上大学那时。以前从没坐过火车,也没有出过远门,活动范围也只在生我养我的小县城。

第一次看到铁轨没有想象的那么激动,等到火车徐徐开来也就麻木地随着人流上车了。

之后坐的火车越来越多,上车时刻渐渐布满全天,行车旅程也由短变长。经历过半夜欲梦还醒的等待,经历过挤不上火车在广场无助的等待,也经历过站着二十多个小时遥遥到站的等待。

对于火车上的人没有太多的印象,大体上也都是模糊的。南来的北往的,洋呛的北调的,灰色的白色的。

最令我不解的是,我常常梦到火车,梦到赶火车。或者是急着买票,或者是焦急的等车,或者是买不到票,再或者是一梦惊醒的走在半路发现所需的东西没带,然后着急地往回赶。

醒来时自己都觉得好笑,为什么当时那么着急,真要是坐不上可以再等下一班的。

可能梦里的火车只有一辆吧。

360“安全”

360是一款免费的软件,具有系统打补丁、清除恶意插件、木马查杀等功能。因为其免费,操作简单,迅速占有了过亿的装机量。


早年上网的人都知道3721网络实名,就是在浏览器地址栏中输入中文其可以提供直达该中文的网址,功能上来说用户也是需要的,只是这个软件是不管三七二十一就往你电脑上插,也不管你愿意不愿意。这样强行插入,也就是耍流氓的行为了。

回头看看360,总是时不时地提醒你电脑有漏洞,健康状况不好,存在恶意插件,需要扫描等,迫使用户花大量时间来进行检查、扫描、安装工作。想安装的软件经常被他阻截,打开软件的首页,充斥的是攻击对手的新闻,隔三差五的提示你升级,甚至偷偷升级。对于初级用户通常采用恐吓的词语,“严重”、“恶意”、“流氓”等等不绝于目。

打着“安全”的旗号,外加“免费”的外衣,来暗渡陈仓。可是这些真的是需要吗,如果你没有安装、扫描、清除、升级,你的电脑会不安全吗,被攻击过,中过木马?

从3721到360其实它们中的有些功能用户还是乐于接受的,只是在使用过程中变了味。为什么不能老老实实做软件,为什么不能“不作恶”?

2010年8月26日星期四

1M=10.24元

早上手机接到中国移动发来的短信说,您的手机余额低于10元,请到营业厅充值。我就纳闷了,最近都没有怎么打电话,怎么会突然没钱了呢。赶紧上移动网站上查询一下,发现GPRS流量中的CMWAP超了4M.平时我几乎不用手机上网的,毕竟不是智能手机,屏幕小,操作也不方便,也就是偶尔上一下看下新闻,每个月赠送的20M流量足足够用了,从来也没有超过,不知道这个月的流量怎么会超了几兆,我想着超这么点应该也没有多少钱的吧,还是打了10086问了一下,那边说1K=1分钱,也就是1M=1024分钱=10.24元,这下我会算了,我超了4M,也就是40多块钱了。一直都没有关心这超出流量怎么算钱的,没想到这么贵。以后再也不敢随意地用手机上网了,说不定哪天兴起超了几十兆,几百块钱也就没有了。

一首歌一个文档一般也上兆了,几十兆的文件瞬间也就下载下来了,一直以为“兆”是个很小的单位,这次用手机换算成人民币看来不小了。

分享前些天的新闻两则
从7月开始,1Mbps宽带接入正式成为每位芬兰人民的合法权利,芬兰成为世界上第一个制定宽带接入法律的国家。 根据这项法律,电信公司必须强制向所有居民提供最小1Mbps的宽带线路。芬兰政府还计划到2015年将这项权利升级到100Mbps。 芬兰通讯部长 Suvi Linden表示,互联网已成为每位芬兰居民日常生活的一部分,高速互联网接入也是政府的一项优先事宜。这项基本权利法的一个目的是阻止政府以任何理由切断互联网连接,从现在开始,如果有人违反了反盗版法,政府只能发出警告信,而不能限制互联网接入,某些国家计划实施的“三振出局”法律将无法出现在芬兰。

国家信息中心信息化研究部日前发布的一份报告称,我国主要信息产品与服务的资费水平依然偏高,这影响了信息技术普及和应用效果,成为信息社会快速发展的巨大阻力。
这份题为《中国信息社会发展报告2010》的报告称,以互联网为例,当前我国互联网存在“速率低”的问题,远远达不到宽带的速度标准,如果考虑到网速问题,则我国的互联网应用成本更高。
据统计,2008年,我国上网接入速率约为1.8 Mbps,远远低于日本的63Mbps,韩国的40Mbps以及中国香港的20Mbps。2008年,我国宽带用户平均月资费83.8元,相当于每Mbps每月46.6元(约合6.7美元),是韩国宽带价格(0.37美元)的18倍、日本(0.13美元)的51.5倍。
“如果考虑到收入差距的话,2008年韩国人均国民收入是我国的6.9倍,这意味着我国的宽带资费水平相当于韩国的124倍。”报告说。
报告认为,当前我国的宽带资费对于国内绝大多数地区的收入水平来说都是明显偏高的。以上海最近推广的10兆宽带服务为例,月资费259元,相对于上海城市居民人均可支配收入的11%和农村居民人均纯收入的25%,相对于全国城市居民可支配收入的18%和农民人均纯收入的60%。
报告指出,如此高的资费水平,将严重影响到新技术的进一步扩散和深化应用。

国内报纸的千篇一律,国内卫视的百胞胎模样,国人满怀热情地投入到“国际”互联网的怀抱,这条看似坦途的大道上埋伏重重,随时跳出个什物搜刮你,“此山是我开,此树是我栽”,过路纳税是免不了的,可在路上你要按步调按规矩在监视下走路,不能走得快,不能走错路。

按说这些基础设施搭建起来之后,随着使用人数增多,成本应该慢慢降低才对,可就是有人垄在那里,不降你又能怎样。哪怕把1M的网速拆成八瓣使,能赚钱就是他们的王道。

这都21世纪了,信息的获取还这么不快捷,不高效,不实时,不真实,不便宜,不方便,不随便。

2010年8月25日星期三

最近的新闻

前两天新闻还在“挟尸要价”的焦点上,这几乎是一件差不多让人忘记的旧闻了。“君子爱财取之有道”,可如今的道德和利益的天平竟倾斜到如此悲惨的程度。

这边国人普遍对只想赚钱没有承担社会责任的中国富人,中国企业没什么好感,那边比尔?盖茨在慈善领域震惊了全世界,Google奖学金落地中国。

这两天的国内的重大新闻差不多是“菲律宾人质事件”了,事件造成了“8死7伤”的悲剧。不过人民日报的头版保持着和谐的主旋律,没有报道,那边香港政府设立了吊唁处,下半旗致哀,开立facebook的吊唁网页。曾荫权打电话给菲律宾总统和外长,香港媒体和团体以及个人对于这次菲律宾方面的表现几乎是一致地进行了批评以及抗议。如果这件事情的当事人不是香港游客,而是广东游客,浙江游客的话,当地政府、团体、人民不知道能有何作为。

2010年8月23日星期一

知道不知道

 那天的云是否都已料到

所以脚步才轻巧

以免打扰到

我们的时光

因为注定那么少

风 吹着 白云飘

你到哪里去了

想你的时候

哦抬头微笑 知道不知道

很喜欢这首歌词,天上白云在飘,那肯定是个阳光明媚的下午。一个女孩思恋着一个男孩,到底他们最后在一起了没有呢?

那么刘若英呢?记得好多年前看到一个新闻说是刘若英参加那个军的艺术人生的时候,那个军一个劲儿地煽情再煽情,非搞的人家哭了才收手,可刘若英非不按着主持人的铺出的路走,讲着自己的外婆什么的。因为不喜欢这个军,所以才喜欢刘若英。

2010年8月20日星期五

Gravatar头像缓存

继留言加入Gravatar头像功能之后,在需要Gravatar头像的地方就会向Gravatar服务器发送请求并要求返回,这无疑会延缓网页的加载时间。通常的办法是把Gravatar头像缓存到本地服务器上,毕竟调用本地方便快捷。

这里我们只需要copy函数,把Gravatar头像copy到本机即可。一般的免费空间的copy会被关闭,可以通过下面的代码测试一下:



<?php 
echo copy("index.php","index123456.php");
?>




如果返回结果是1,并且在根目录下发现名为"index123456.php"的文件,说明copy是可以用的。

把上面的代码延伸成如下的代码(核心也就是copy函数,没有使用WP函数以及其他额外的函数,所以是通用的代码):



<?php
function avatar($email,$size = '32',$default = '',$alt = 'gravatar'){
$f = md5(strtolower($email));
$a = 'avatar/'.$f.'.jpg';
$e = 'avatar/'.$f.'.jpg';
$t = 1209600; //设定14天
if (empty($default)) $default = 'avatar/default.jpg';
if (!is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者超过14天才更新
$r = 'X';
$g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'. $f. '?s=64&d='. $default. '&r='. $r;
copy($g, $e); $a = $g;//新头像 copy 时, 取 gravatar 显示
}
if (filesize($e) < 500) copy($default, $e);
echo "<img title='{$alt}' alt='{$alt}' src='{$a}' class='gravatar' height='{$size}' width='{$size}' />";
}
// -- END ----------------------------------------
//测试一下
$value="123@example.com";//注册的邮件地址

//调用代码
avatar( $value, $size = '40', $default = 'monsterid', $alt = 'gravatar');
?>




这样的话就把Gravatar头像copy到根目录下名为avatar的文件夹中了。

参考资料:快乐忆站 地址:http://thin.tk/AB

Gravatar头像缓存

继留言加入Gravatar头像功能之后,在需要Gravatar头像的地方就会向Gravatar服务器发送请求并要求返回,这无疑会延缓网页的加载时间。通常的办法是把Gravatar头像缓存到本地服务器上,毕竟调用本地方便快捷。

这里我们只需要copy函数,把Gravatar头像copy到本机即可。一般的免费空间的copy会被关闭,可以通过下面的代码测试一下:



<?php 
echo copy("index.php","index123456.php");
?>




如果返回结果是1,并且在根目录下发现名为"index123456.php"的文件,说明copy是可以用的。

把上面的代码延伸成如下的代码(核心也就是copy函数,没有使用WP函数以及其他额外的函数,所以是通用的代码):



<?php
function avatar($email,$size = '32',$default = '',$alt = 'gravatar'){
$f = md5(strtolower($email));
$a = 'avatar/'.$f.'.jpg';
$e = 'avatar/'.$f.'.jpg';
$t = 1209600; //设定14天
if (empty($default)) $default = 'avatar/default.jpg';
if (!is_file($e) || (time() - filemtime($e)) > $t ){ //当头像不存在或者超过14天才更新
$r = 'X';
$g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'. $f. '?s=64&d='. $default. '&r='. $r;
copy($g, $e); $a = $g;//新头像 copy 时, 取 gravatar 显示
}
if (filesize($e) < 500) copy($default, $e);
echo "<img title='{$alt}' alt='{$alt}' src='{$a}' class='gravatar' height='{$size}' width='{$size}' />";
}
// -- END ----------------------------------------
//测试一下
$value="123@example.com";//注册的邮件地址

//调用代码
avatar( $value, $size = '40', $default = 'monsterid', $alt = 'gravatar');
?>




这样的话就把Gravatar头像copy到根目录下名为avatar的文件夹中了。

参考资料:快乐忆站 地址:http://thin.tk/AB

2010年8月19日星期四

网站评论留言加入Gravatar头像功能

在浏览别人的网站以及Blog总会发现其成员列表或者评论头像的异彩纷呈,尤其是WordPress搭建的网站更是如此,这其实是通过Gravatar来实现的。Gravatar,全称Globally Recognized Avatar(全球通用头像)。如果在Gravatar的服务器上放置了你自己的头像,那么当你到任何一个支持 Gravatar的网站留言时,这个网站都就会根据你所提供的Email地址为你显示出匹配的头像。目前WordPress已经自带了Gravatar头像功能,大部分的Wordpress使用者都会开通这个Gravatar头像功能。所以当你在这些网站留言的时候,都会显示你的Gravatar头像。

也就是说这些头像是放在Gravatar上的,它与电子邮件地址关联,当你提供了邮件地址也就同时给出了对应的头像了。简单说一下Gravatar头像实现的原理(其实自己注册一下,原理也就很明白了)。用电子邮件地址:Email Address: 123@example.com注册,系统会采用MD5来加密产生Email Hash: 81c793bc7cc255679d90c4518784b1f,然后通过http://www.gravatar.com/avatar/81c793bc7cc255679d90c4518784b1f?s=40来访问头像。

我们可以用下面的代码测试一下:

$email="123@example.com";//注册的邮箱地址
echo 'Gravatar Icon';
?>

如果注册成功的话,就会显示你所上传的图片了。?s=40为显示图片的边长参数。

具体的网站实施就是把上面的代码稍作修改,替换掉原有的显示头像的"<img />"即可。

PS:寻找在网站上实现Gravatar头像的方法或代码,一窝蜂的都是WordPress的插件或者代码实现,看来现在WordPress真的很是流行。

2010年8月17日星期二

我与痞子蔡

2000年第一次读痞子蔡的小说,那时我还在上高中,整天枯燥的课本习题像一潭死水被老师搅来搅去,班里突然出现的《读者》、《青年文摘》给这潭水注入了新鲜的活力,一本书被传来传去。《第一次的亲密接触》的出现也是这样的,当到我手中时已经破旧不堪了,用手拎起来像筷子搭面条,总会散落下来几页。这本书很薄,书中诙谐幽默的言语调侃,偶尔宁静浪漫的情感暗示,正适合我们当时懵懂骚动的青春。班里的同学总是三三两两的出去上网,找人聊天乃至通宵不归,学起了书中主人公。当然没有主人公的幸运,常见的是经过几个月的拉锯战获得了对方的照片之后就再也没有联系的情景。整日里上课瘫倒一片的现象引起了班主任的怀疑,此后,这本书被收缴,经过整肃没有人再敢翘课去上网。

上大学后在图书馆看到了《雨衣》,书依旧很薄。还是和《第一次的亲密接触》相似的文风,不过女主角相对丰满多了,我指的是形象。我喜欢这种性格开朗,美丽乖巧的异国女子。不过结局是没有结局。

一年的暑假,不知道在哪里下载了一部小说《槲寄生》,没有作者署名,闲来没事就看了起来。看着看着觉得像是痞子蔡写的,不过又不像,故事的开头沉稳老道,情节的发展张弛有度,不过还是发现有浓重的蔡氏调侃。这本小说是我最喜欢的的痞子蔡小说,没有之一。人物脱离了两个人的发展,加入了多人。这部小说相比前两部,长了好多,看起来更加过瘾。它让我知道了幸福的形状,懂得了爱与喜欢的区别。

之后在网络上看了《孔雀森林》,说实话不喜欢这部小说,情节有些牵强,调侃显得无力。

依旧是大四的闲来无事看了他的新作《暖暖》,主要情节是主人公过海来到大陆北京的一段奇缘,两种同源而又不同文化的交叉与发展。

昨天的七夕,今天的七八,看了《鲸鱼女孩·池塘男孩》。我早就知道这部小说,一直都没有看。一个人的情人节让我又想起了它,痞子蔡的小说总是适合单身羞涩又有点闷骚想追女孩子的男生来看,因为作者给我们构筑了一个美好的梦,等着我们去实现。可是它真的不适合作为追女孩子的教材,它毕竟只是小说,男主人公羞涩被动优柔寡断,遇到的女主人公必漂亮主动投之以好。情节发展到恰如其分高潮迭起时,突然来个大转弯没了,搞得我都想上去表白得了。作者总是一拖再拖,拖到主人公们都不行了,也就结束了。

不知道为什么会喜欢痞子蔡的小说,可能是对宝岛台湾的好奇,对调侃技巧的学习,对诗词古语嵌到好处的惊叹,对浪漫柔情无声细雨爱情的向往。痞子蔡的小说渐渐地少了些调侃,多了些思考,看起来还是那么地轻松与快意。

小时候的梦想

小的时候总有大人们对我们说,好好学习,长大了当官。我总是回答,我不当官。他们笑呵呵地问,那你想做什么呀。我说,我要当科学家。

当时的我并不知道当官是什么,为什么要当官。只记得到大姑家看戏时,威严的县官审判恶霸的情景。我也一直不明白,为什么他们总是手里端着圈放在肚子附近。回家问妈妈。妈妈说,当官的鱼肉百姓,吃得都肥头大肚。唱戏的没有那么大的肚子,就放个圈在肚子上代替了。

所以我一直不喜欢当官的。对于科学家我也没有什么概念,那时的语文书,算数书上总是出现知识丰富的科学家。

有一次妈妈和我说,你要好好学习,争取考上清华北大。我问,为什么要考上。她说,考上好学校以后就会有好日子了。我说,那我当个秘书吧,电视上的秘书过得都很好。妈妈笑呵呵地说,秘书一般都是女的,哪有男的当秘书的呀。

梦想对于小小的我根本装不下,一般就是过后就忘了,那时考虑得最多的是放学后到哪里玩。

真正面对着梦想是在初三年,和以往一样我还是一味的玩,虽然成绩也不错,但起伏很大。这时爸爸总对我批评教育一番,还总给我舅姥爷请过来,他知道我最听他的话了。

舅姥爷是我妈妈的舅舅,其实也没有比我妈妈大多少。但在我们家声望很高,一般我家遇到大事都要向他请教。舅姥爷知识也渊博,闲着没事总是抓住我指点。这时的他对我说,你想以后呆在这个小地方吗,下雨天泥巴地里走?

我是厌极了下雨天满路的泥泞。他说,要好好学习,考个好高中,摆脱这个小地方。外面的世界很精彩,要变成凤凰飞出去。人们常说,一岁看大,三岁看老。我看你最有希望了。

之后我会想,我会变成凤凰吗。

随着年岁的渐长,慢慢地感受到了现实冷暖,人情世故,梦想也在其中打转儿。

我总是固执的认为,不管身处何地,梦想一直都在那里,只是尚未起飞。

飞着的梦想

每隔一段时间总想看部电影,总想听首歌曲。沉浸在电影里,会让我们忘记了寂寞,忘却了烦恼。电影像一幅画卷,带我们去不能到达的地方;电影像一个朋友,给我们讲述不同的故事;电影像一壶老酒,让我们尝透各种的味道。

今天看了《飞屋环游记》(UP),很久以前看奥斯卡颁奖典礼就知道这是一部很不错的电影。美国人喜欢探险(Adventure),这就是一部讲述关于探险的电影。探险、冒险、探索这些相似相近的词语,背后隐藏着这个国家,这个民族的秉性和我们大中华民族的“木秀于林,风必摧之;堆出于岸,流必湍之;行高于人,众必非之”显然不同。我们总是傲然于我们几千年的历史,可这些东西同时也是包袱。为了适应环境,清高自傲、我行我素被消磨成审时度势、随波逐流。

故事的开头温馨而又心酸,小伙子渐渐地变成了老头子,小媳妇也变成了老太婆,之后只有老头自己了。他们一直都在想着能在南美风景如画的瀑布山泉之上有一所自己的房子。此愿一直没有实现,直到在周围拆迁队的逼迫下,老头狠下心用无数个气球把房子拔了起来驶向心中的圣地。我为老头的此举吓到了,顺服了,感动了。

每个人心中总有梦想,有的会陨落,有的会重新长出,有的会常住心间。看到最后我真的好怕,怕我到老时,还会有梦想没有实现。我尚不能体会到那时的心境,我想会是落寞与苦楚都有的吧。困扰我很久的一个问题终于有了答案,“为什么而活着”,“为了实现梦想”。

电影中有句话“你完成了这个探险,继续下一个吧”。这就如闯关游戏般的刺激,人生又何曾不是如此呢。有些人闯了几关,有些人闯了几十关,还有些人连自己的关在哪里都不知道。

愿我们每个人的梦想,民族的梦想,都能起飞。

2010年8月13日星期五

世博在哪里

“从5月份的日均28万客流,到7月份的日均超过45万——相当于每天都有一个中等城市的人口,涌入仅仅3.28平方公里的上海世博园区,游客平均在园停留10小时,七成以上在园内就餐,至今没有发生一起拥挤踩踏事故,没有出现群体食物中毒的事件。”

中国人就是喜欢看热闹,不在乎空间小,不在乎人多,越是人多的地方人就越多。你如果问去过或者想去世博的人为什么要去。他们的回答是含糊其辞,“我也不知道,有那么多人去了”。敢情他们大老远地跑过去就是因为别人也去过了,如果没去就会觉得亏了。可等疲惫地回来问他有什么感觉,还是回答不上来,最多列举一些展馆的名字。如果你再问,为什么会有世博,世博精神是什么。当然也是回答不上来。人们原本就不关心这些,他们关心的是能给他们提供一个凑热闹的场所。

“不患寡而患不均”的从众心态,打心底里就会觉得,反正人多,要是让别人占了便宜岂不是亏大了,要是吃亏大家一起吃亏。人们乐于看热闹,所以以前统治阶级故意把人放在大庭广众下去杀,无不人山人海。冷漠,麻木,凑热闹的心态,鲁迅早年所说的“看客”也是基于此吧。

2010年8月12日星期四

拼音输入法的渐变

输入法,这个中国人上网离不开的工具。

本人最早使用的输入法是智能ABC,每次打字,需要敲击空格把拼音串转化为候选的汉字,然后选择出所需要的字词。智能ABC的好处是支持简拼,字词位置固定,这样时间长了好些字词的位置和拼法就记住了,打出来很是迅速,像“我”、“你好”、“怎么了”之类的能很快很准确地打出来。缺点也很明显,它是以字词为单位,当敲击长整句时甚是揪心,尤其写文章极影响思路的连贯性。

之后转到微软拼音,这是以整句输入为长的输入法。输入时只关心输入的拼音串是否正确,正确时敲空格把拼音串转化为中文串,然后检查一下这个中文串是否正确,不正确再使用左右箭头定位修改。微软拼音无疑在长句处理上具有很先进的技术,不过在短语上,尤其是流行语上略显单薄。

后来出现的搜狗输入法以网络词汇、表情符号为噱头吸引了不少的用户。搜狗的进步也是有目共睹的,整句输入的准确性也渐渐地好起来。为了吸引用户加入了皮肤、细胞词库等功能。功能是越来越强,可软件也越来越臃肿。词库本身是一把双刃剑,好处是包含大而全的字词,坏处是词库的庞大必然造成选择上的困难。所以使用搜狗,想要的词(哪怕是生僻的词)总能打出来,不过很多时候需要翻上几页。

现在使用谷歌的输入法,它推出了输入习惯的语言模型。输入法根据你的输入习惯来调整选词的准确性,刚开始时准确性不是太高,经过一段时间的调教会发现越来越准确,一般的长句几乎不用选词。之后推出了输入法扩展(插件),用户可以根据自己的需要添加额外的功能。

谷歌输入法具有内嵌模式,这和微软的有点相像,就是打出来的中文串下有一条虚线。它的好处是:眼睛只用看着目标位置的字符串,不用关心输入框怎么变化,当目标位置的字符串不是所需要的话,再把眼睛移向输入框做修改。这种输入模式可以更大限度地减少输入框的干扰,而且最主要的是“所见即所得”,即所看到的中文串就是最终的结果,不像微软的需要经过二次确认,更近一步。

现在的输入法以搜狗、QQ、谷歌、微软为主导。前三者都能同步用户词典和设置,微软没有。同步的好处是保存用户的输入习惯和自造词以提升输入的准确性,坏处是记录的输入内容包含着用户的隐私。本人就是对搜狗和腾讯保护用户隐私上的不放心所以没有使用它们,微软可能也就是基于这点考虑迟迟没有推出网络同步的功能,只保留在本机上。

如今的输入法比几年前已经进步了很多,不过还有很大的提升空间。未来的输入法的前进方向就是让你思维流畅,感觉不到输入法的存在。

2010年8月10日星期二

Feedburner不能更新之512K

自从使用Feedburner之后一直感觉很好,它既能绑定自己的域名,又可以添加国产的订阅器,新发表的文章一般在半个小时内会投递到订阅器中,关键是有谷歌的技术支持。

前两天突然出问题了,好几天的文章都没有更新。登录Feedburner选择Optimize查看Your Feed和XML source都是不可用,然后选择Troubleshootize点击其中的Resync Now出现了两条错误:

  1. There is an issue that must be addressed with your source feed for the feed "静风博客"

  2. Your feed filesize is larger than 512K. You need to reduce its size in order for FeedBurner to process it. Tips for controlling feed file size with Blogger can be found in Tech Tips on FeedBurner Forums, our support site.


上网寻找原因发现FeedBurner will not process an original feed from your blog if it is greater than 512K in size.就是说原始Feed源不能超过512K,超过了FeedBurner就会罢工了。于是赶紧找出来Rss输出文件,把查询语句select * from comment order by time desc改成select * from comment order by time desc limit 10

然后Resync Now显示成功,再pinging FeedBurner,查看Google Reader发现很快就有新条目了。

PHP回复留言之邮件通知的实现

浏览网页留下了自己的评论脚印,或者是在问答系统中提出了问题,之后有人回复了你的留言或者回答了你提出的问题,这时候我们总是希望通过邮件来通知一下。其实PHP实现起来极其得简单,只需要Mail函数就可以来实现。

mail()函数:作用是寄出电子邮件。
语法: boolean mail(string to, string subject, string message, string [additional_headers]);
to 指定的邮件地址,subject 表示主题,message 为信件内容。额外的选项 additional_headers 可省略,表示其它的邮件文件头。


例如:mail(123@example.com,"你的评论有人回复了","回复的内容是:balabala……",456@example.com)

当然我们不想回复的内容就是简单的一句话,希望它尽量丰富些,比如说有只想网站的超链接。

可以把message定义为



$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';




另外,邮件主题或者内容中是中文的话,接收到的邮件总会出现乱码的现象。

PHP回复留言之邮件通知的实现

浏览网页留下了自己的评论脚印,或者是在问答系统中提出了问题,之后有人回复了你的留言或者回答了你提出的问题,这时候我们总是希望通过邮件来通知一下。其实PHP实现起来极其得简单,只需要Mail函数就可以来实现。

mail()函数:作用是寄出电子邮件。
语法: boolean mail(string to, string subject, string message, string [additional_headers]);
to 指定的邮件地址,subject 表示主题,message 为信件内容。额外的选项 additional_headers 可省略,表示其它的邮件文件头。


例如:mail(123@example.com,"你的评论有人回复了","回复的内容是:balabala……",456@example.com)

当然我们不想回复的内容就是简单的一句话,希望它尽量丰富些,比如说有只想网站的超链接。

可以把message定义为



$message = '
<html>
<head>
<title>Birthday Reminders for August</title>
</head>
<body>
<p>Here are the birthdays upcoming in August!</p>
<table>
<tr>
<th>Person</th><th>Day</th><th>Month</th><th>Year</th>
</tr>
<tr>
<td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
</tr>
<tr>
<td>Sally</td><td>17th</td><td>August</td><td>1973</td>
</tr>
</table>
</body>
</html>
';




另外,邮件主题或者内容中是中文的话,接收到的邮件总会出现乱码的现象。

Feedburner不能更新之512K

自从使用Feedburner之后一直感觉很好,它既能绑定自己的域名,又可以添加国产的订阅器,新发表的文章一般在半个小时内会投递到订阅器中,关键是有谷歌的技术支持。

前两天突然出问题了,好几天的文章都没有更新。登录Feedburner选择Optimize查看Your Feed和XML source都是不可用,然后选择Troubleshootize点击其中的Resync Now出现了两条错误:

  1. There is an issue that must be addressed with your source feed for the feed "静风博客"

  2. Your feed filesize is larger than 512K. You need to reduce its size in order for FeedBurner to process it. Tips for controlling feed file size with Blogger can be found in Tech Tips on FeedBurner Forums, our support site.


上网寻找原因发现FeedBurner will not process an original feed from your blog if it is greater than 512K in size.就是说原始Feed源不能超过512K,超过了FeedBurner就会罢工了。于是赶紧找出来Rss输出文件,把查询语句select * from comment order by time desc改成select * from comment order by time desc limit 5

然后Resync Now显示成功,再pinging FeedBurner,查看Google Reader发现很快就有新条目了。





2010年8月9日星期一

粗细搭配

从郭德纲门之后,社会上掀起了如火如荼的“反三俗”之风。我不知道这“俗”是怎么定义的,我特意查了下字典,大体的解释是:
社会上长期形成的风尚、礼节、习惯等:俗尚。风俗。习俗。约定俗成(指某种事物是由群众通过长期实践而认定形成)。
大众化的,最通行的,习见的:俗名。俗语。俗曲。雅俗共赏。
趣味不高的,令人讨厌的:俗气。俗物。鄙俗。粗俗。庸俗。
凡世间,相对于仙佛僧道:俗人。世俗。僧俗。凡夫俗子。

想必这反的俗的东西必将招人厌烦,令人作呕的。可是这判断的标准是什么呢,这玩意确实不太好界定。作为每个独立的个体,具有独立的思想,对某件事物的感觉(评价)应该是不一样的。

比如对文学作品的评说也是不能统一
一千个读者就有一千个哈姆雷特。

对于红楼梦
经学家看见《易》,道学家看见淫,才子看 见缠绵,革命家看见排满,流言家看见宫闱秘事……

对于金瓶梅当然也是,一个高中生很难发现里面的高雅,但它确实是中国世情小说的先祖
然《金瓶梅》作者能文,故虽间杂猥词,而其他佳处自在,至于末流,则著意所写,专在性交,又越常情,如有狂疾。

那么对一个人的评判呢,能不能很好的界定到底俗不俗。中国有句古话叫做“盖棺定论”,就是说一个人没有死的话,先不要评价他,说不定他之后会做出其他的什么事来,你现在的评说就不正确了。 但是,人又是统一的吗,人不是只有一面性的。比如说李渔,虽然写出艳情的《肉蒲团》,不是还有看起来高雅的《闲情偶寄》吗。 而且,俗的东西怎么了。不是还有雅俗共赏吗。雅有雅的精致,俗有俗的大方。家里来客人了,不一定非要拿出来精细雅致的小吃,也可以拿出下里巴人的土特产让人品尝。

人要全面营养讲求粗细搭配,荤素均匀。有人说过,菜不在好吃难吃,关键是看做法。

2010年8月7日星期六

英语学习的好帮手——灵格斯

第一次听说灵格斯词典还以为别人把柯林斯说错了,之后发现确有其物。灵格斯,它首先是免费的,它不是词典,更像个书架,你可以把自己喜欢的词典放到此书架中。所以,它能够实现各取所需,功能足够强大。现在一般词典的功能它都能具有,更突出的是词典的定制功能。

每个人在使用词典的过程中总有所偏好,觉得有些词典使用起来舒适得心应手。所以,我根据自己的需要,在灵格斯中添加了如下的词典。

  1. 柯林斯高级英语学习词典。这是一个英英词典,所有的解释都是简明易懂的英语。我一直以为辩解同义词,用英英词典最高效,同时它给出的例句也有助于理解单词。

  2. 牛津英语词典。它可以和柯林斯相互补充使用。

  3. 新东方词根词缀词典。把单词以词根词缀加联想的方法给出,释义简单,有助于记住一个新单词。


当然,灵格斯这个书架也可以添加法语、德语、日语等词典。总结一下它的特点:免费、体积小、功能强大和可定制性强。

手工删除病毒的方法

电脑中毒了,杀之!一般的情况下我们需要启用笨重的杀毒软件,进行耗时的全盘扫描。有些时候杀毒软件也搞不定,下面介绍一种手工删除病毒的方法,前提是您需要知道病毒文件所在的目录。

  1. 开始——运行,输入"CMD",最好是带NTFS格式分区支持的。

  2. 转到病毒文件所在的分区,并用CD命令进入病毒文件所在的目录,如:c: 回车进入C盘 cd windowssystem32 回车进入system32文件夹

  3. 去除病毒文件的隐藏和只读属性(如果没有可略去),如病毒文件名为xviewer.exe,则:attrib -s -h xviewer.exe

  4. 删除病毒文件:del xviewer.exe

  5. 建立同名的文件夹,防止病毒文件再生:md xviewer.exe (注意:要把后缀也带上) 另外,有的目录在DOS中是禁止进行写操作的,如windowssystem32drivers。如果已将大部分病毒文件进行以上处理后,剩余的就可以到windows中进行操作了。

  6. 给同名文件夹加锁,避免病毒覆盖:attrib +s +h xviewer.exe

  7. 完成后重启进入Windows安全模式中全面查杀病毒。


杀毒完成后就可以把那些自己建立的刚建立的文件夹删掉。如果按着以上的步骤正确操作,删除掉一般的病毒应该不成问题。

Photoshop抠图——钢笔加通道

抠图可谓是Phtoshop的重头戏,抠图的方法也有很多。给出一张图片,需要根据图片的内容来判断使用什么样的抠图方法。对于一张背景简单、颜色单一的图片,魔棒工具的使用是再好不过了。对于复杂的背景图片,抠图的方法一般需要滤镜抽出、钢笔、蒙版、通道等这些工具复合使用。

通道抠图:(主要用于发丝与背景相融合的素材)


  1. 选择“钢笔工具”,注意是路径。把人物的主体部分抠出来。发丝的部分留着。大致抠一下。

  2. Ctrl+Enter 将路径转换为选区。

  3. Ctrl+Alt+D 将其羽化一个像素值。

  4. 背景图层复制一份(把图层拉到右下角倒数第二个上面即可),得到背景图层的副本。

  5. 为背景图层添加蒙版。

  6. ------下面的操作在通道下完成---------

  7. 到通道面板。

  8. 注意观察红、绿、蓝三个通道,观察头发,选择对比度大的那个通道。

  9. 将选择的通道复制一份。

  10. Ctrl+L 色阶 黑色吸管设置黑场,吸取黑色的头发部分。白色吸管吸取背景部分。

  11. Ctrl+I 反相

  12. 选择画笔工具,黑笔,把不需要的部分涂抹。

  13. 把这个副本载入选区。点右下角第一个图标(虚线围成的圈)

  14. ------回到图层面板---------------

  15. 回到图层面板。

  16. 单击背景图层。将背景图层解锁。

  17. 对背景图层添加图层蒙版。

  18. 成功抠出。


2010年8月6日星期五

在超市做兼职——客服(2)

错钱之后,和我一起在里面干的那位同学很执着,我和她说我不想干收银了,她虽然也错了钱,但是认为是个人的原因,可以再小心一些就没有问题了。

而我接下来就去服务台做了客服,每天的工作是念广播、发放赠品、寄存物品之类。接近过年的时候存包的人超多,存包柜不够用,就放在地上,摆的满满当当,几乎没有下脚的地方,不停地存包、取包,虽然累点,但是不用惦记着收银的事情了。但是每天总有那些各个商品区的负责人在那里大喊为什么有一段时间没有听到播他们特价商品的广播,忙起来的时候哪里有分身之术呀?

那时候超市做活动,例如购物满18元,凭购物小票加一元钱可以换购黑芝麻糊一袋。海报和广播都讲得很清楚了,“换购”两字写的很大。记得有一位四十多岁的女人拿着二十几元的购物小票到服务台要芝麻糊,于是告诉她是加一元钱换购,不是赠送。她听完之后突然发飙,将服务台上的一叠宣传单撕得稀烂,扔的到处都是,一边撕一边破口大骂,又是拍桌子又是跺脚,根本不在控制的范围内,看着挺正常的一个人,怎么突然这么激动。虽说理解上有偏差,会有心理落差,但是这也太义愤填膺了吧。

服务台的退换货是由每天的值班经理负责的。要是遇上双方意见不一致的时候,空气的气温会更高,摔个东西也属家常便饭。有时候也难怪顾客会生气,有时候明明商品有问题,他们就是百般找借口,坚决不给调换。

有一个值班经理是个大嗓门的中年妇女,脾气比顾客还火爆,人家还没有怎么样呢,她就先发制人把人家呵斥的一愣一愣的,几乎来服务台的人都被她骂的气呼呼地掂着残次品回家了。

还有一个值班经理属于那种态度和善、连哄带骗型的。记得有一次有人说买回去的柿饼吃着又涩又苦,想把剩下的退掉,都是单独包装,按斤称的那种。于是这个值班经理就拿出一个找来超市里几个同事分食,笑眯眯的说:“这柿饼很好吃呀,很甜呀,怎么会苦呢?你们尝着苦不苦呀?哦,你看大家都说不苦,呵呵呵,小陈呀,你去里面再那几个出来。”然后她抓着几个从里面拿出来的柿饼往那个顾客购物袋里装,他们一伙人都说:“我们超市里的东西有保证,不像是那些外面卖的……”就这样打发走了。

服务台的另一位正式客服每天无聊就会乘着店长不在的时候捶电脑,故意很大声地放很难听的歌曲,用赠品中的勺子吃饭,然后再赠送给顾客;而里面的理货员会乘人不备将商品包装弄破,这样他们就可以用内部价买这些包装破损商品;或者是偷吃货架上的食物……

整个超市就像是上演一出出的闹剧,身在其中的时候,总是想着逃离……

045117b0e0a11a242b9765e79cbf113f.背影

在超市做兼职——收银员(1)

有年大学放寒假,听说超市招临时收银员,当时招聘的还有理货员之类,每天报酬都是一样的。想着在家闲着也是闲着,理货员每天还要从卡车上卸货、上架,就报了收银员。

开始三天是学习期,没有报酬,就是跟着那些超市收银员的后面看,帮忙装装东西什么的。第四天的时候,交了几百块的押金,领了几千块的备用金(就是各种各样的零钱),给了个人账号和密码,开始自己上机,心里还是有些忐忑的。因为这里有规定,每天上交的钱数不对的话,不管收多收少都要自己赔的,现在临近过年,生意很好,生怕稍不留神,一天的工资不仅赚不到,还会倒赔。

每天工作的时间是三个时间段,就是上午、下午和晚上高峰期时段,每天晚上八点半下班后,那些临时理货员都可以直接回家,而我们还要到收银办公室里开始数钱。先把早上的备用金数出来,剩下的就是当天需要上交的钱,把金额填在一张单子上,一并交给收银主管。这个时候的心真是悬着的,等待从她口中说出“恩,钱对了,你可以回去了”。要是蹦出其他的话,那就惨了。

开始收银那段时间,每天都要数钱到差不多十点才回家,开始的时候动作慢,生怕出错,一两万块钱被数上几遍。干了几天就感觉很痛苦,每天总是提心吊胆的,睡觉都睡不好,做梦都是这些事情,开始羡慕起那些理货员了,每天按时回家,也不用担心扣钱的。

干到差不多一周的时候,一天晚上被告知多收了两百块钱,吓了一跳,反复想,也想不出哪里出错了。接下来的一天又被告知我和另一个临时收银员各少自收了一百块,而总台收银员又多出一百块,等到第三天的时候,又说我收的钱是对的,那一百块没有少收,但是那个多出来的钱又是怎么回事呢?

可以想象我们当时的心情,接下来便去找店长说明情况,没有任何缓和的余地,没有任何理由,反正他们异口同声说你们几个的钱错了,要照数赔。我们问问超市里面的其他收银员,她们讲每个月很少有人被告知不错钱的,几乎都会被扣工资,有押金和工资在他们那里,只好这样了,或者走人,所以这里的人都干不长的。

每天晚上下班,我们十几个收银员挤在一间狭小的办公室里小心地数钱、填单子、上交。这个情景总会让我想起来鸬鹚(luci,又名鱼鹰)这种动物,我们只不过是超市收钱的廉价工具,每天站在收银台上收钱,到晚上再把钱取出来分类数好上交,并且还要承担失误的一切风险。那些里面的正式员工大都是九几年出生的小妹妹,时间长了,数钱的时候在一起说笑打闹,开着玩笑,说是不要把两个人收的钱混在一起了,要不然会死的很惨什么的,好像气氛很热闹,但是我总会想起鸬鹚。

不光是每天承担收银的风险和劳累。学收银的时候,那些有经验的告诉我们,有时候买东西的会抱怨你动作太慢,甚至破口大骂,要是境界不高自己乱了阵脚就很容易错钱,所以一定不要慌,随他们去讲,时间长了也就习惯了。我在收银的时候很少遇到这样的顾客,倒是遇到这样的员工。记得有一次家电类的促销员带着一个顾客在我这里交钱,开了好几张单,我要手动输到电脑,她嫌我动作慢,耽误她招揽其他的生意,在一旁开始不停地大声埋怨,当时那个顾客买了将近一万块钱的东西,没有刷卡机,给的全是现金,而且超市不给我们配备验钞机,都是自己凭经验区分真假钱。临近过年的时候有个别收银员一不小心收到假钱,也是要自己赔的,所以我当然要谨慎了。那个女人只管自己促销拿提成,才不管你收钱的事情。后来我下楼叫收银主管上来收的这笔钱,直接上交了。万一这一沓里混上一两张假钱,我那些临时工资可赔不了。

有时候有些人根本就不去理会那么多,他们才不管你是怎么样,只是想着自己,还在一边不停地责怨。做了这份兼职以后,我去超市买东西,遇到技术比较生疏的收银员,总会想起我们那时候的事情,有了切身体会,就更能理解她们,不要无理责怪,不要拼命地催促。有时候,她们并不是想刻意放慢速度,而是要承担太多的风险。

配图

2010年8月4日星期三

Inove修改汇总

Wordpress搭建的博客建起来第一件事就是更改主题(Themes),总觉得老外欣赏美的眼光与国人不同,他们做出来的主题虽然也美丽大方,可感觉缺少东方人简约含蓄的味道来,换了不知多少主题后,终于选用了MG12的Inove主题。

在Inove主题上做了不少的修改,现总结如下。

404页面模板(404.php)

1、  去掉了咸湿佬图片的链接。

2、  添加了谷歌自定义404错误页面

主题支持函数 (functions.php)

Wordpress默认的标签云略显单调,为此实现了彩色标签云。参考wordpress免插件实现彩色标签云

Tags页面模板(tag-page.php)

实现了标签云页面,由于已经添加了彩色标签云函数,故而这里的标签云页面为彩色标签云页面。参考inove主题添加标签页

cse页面模板(cse.php)

实现页内的谷歌搜索,也就是对搜索结果提供内页处理, 搜索后不会转跳到 Google.com.参考整合 Google 自定义搜索 CSE美化iNove的Google自定义搜索

底部 (footer.php)

主要是修改了底部的CSS样式,添加了协议声明。

文章页面模板 (single.php)

主要在文章末尾添加版权申明以及少许广告片段。

样式表 (style.css)

大部分修改花在样式表上。

导航栏和侧边栏样式的修改侧边栏宽度的修改

延迟加载图片的实现鼠标悬浮显示评论添加站点统计功能 、顶部图片汇总

Inove修改汇总

Wordpress搭建的博客建起来第一件事就是更改主题(Themes),总觉得老外欣赏美的眼光与国人不同,他们做出来的主题虽然也美丽大方,可感觉缺少东方人简约含蓄的味道来,换了不知多少主题后,终于选用了MG12的Inove主题。

在Inove主题上做了不少的修改,现总结如下。

404页面模板(404.php)

1、  去掉了咸湿佬图片的链接。

2、  添加了谷歌自定义404错误页面

主题支持函数 (functions.php)

Wordpress默认的标签云略显单调,为此实现了彩色标签云。参考wordpress免插件实现彩色标签云

Tags页面模板(tag-page.php)

实现了标签云页面,由于已经添加了彩色标签云函数,故而这里的标签云页面为彩色标签云页面。参考inove主题添加标签页

cse页面模板(cse.php)

实现页内的谷歌搜索,也就是对搜索结果提供内页处理, 搜索后不会转跳到 Google.com.参考整合 Google 自定义搜索 CSE美化iNove的Google自定义搜索

底部 (footer.php)

主要是修改了底部的CSS样式,添加了协议声明。

文章页面模板 (single.php)

主要在文章末尾添加版权申明以及少许广告片段。

样式表 (style.css)

大部分修改花在样式表上。

2010年8月3日星期二

为什么要翻墙

翻墙早已成为社会主义特色的一部分,不知道儿孙们以后看到我们现在的状态会做何感想,可能会像我们现在不能体会那些莫名其妙的明清文字狱一样。

可能吧做过一期中国翻墙网民状况调查。对于为什么要翻墙,可能吧的总结是:
80%的人翻墙仅仅是为了“正常”地使用Google等互联网基础服务,他们或许只是想正常地搜索“胡萝卜”。75%的人翻墙会上Twitter等社交网站,72%的人会看外媒的新闻。60%的人翻墙是为了娱乐,比如观看Youtube。因为国内的互联网产品行业相对落后,而优秀的外国互联网产品往往又是被屏蔽,很多人翻墙是为了学习外国的互联网产品,这个比例占了52%。30%的人翻墙会上成人网站。另外有26%的人工作必须翻墙。

我们来看一下GFW的三大定律:

  1. GFW第一定律:只要是 “用户产生内容”(User-generated content, UGC)的国外网站都会被和谐。

  2. >GFW第二定律:只要是被和谐的网站,国内一定会有个克隆版。

  3. GFW第三定律:没有被和谐的网站一定不是同类竞争者中最出色的。


对于翻墙,就我身边的人知道的不多,就我而言经常翻墙也不多。对于原因,鄙人总结如下:

翻墙的动力

对于绝大多数人,对于大部分的中国网民,那些Google的基础服务,Twitter,Youtube,在国内已经有了山寨的产品出现,他们可以上百度,新浪微博,优酷。在不翻墙的情况下就能满足消费者的需求,奈何还要麻烦翻墙呢。这就造成了翻墙的需求性不高,动力不足。

翻墙的阻碍

优秀的互联网服务集中在美国,这些服务的主要语言是英语,操作习惯也是非China的。虽然大部分这些网站提供了中文界面,但前期的简单设置还是不可少的。

翻墙的体验

翻墙毕竟是要经过第三方,一般的翻墙方法速度上比正常要慢,稳定性也不好。

翻墙合法性

我们已经适应了墙内的其乐融融,一片大好的环境,突然接触到对Party不好的评论,都会认为是非法的东西,对合法性的怀疑会造成在浏览的过程中提心吊胆不能畅快淋漓。

翻墙的难度

现在的翻墙方法中,简单的不稳定,稳定的不简单。比如自由门和在线代理,几乎不用设置,可过段时间就会发现不能用了。稳定的Tor、SSH、VPN在设置上又相对复杂。

可是为什么会有翻墙?

翻墙的价值

为了工作,为了学习,为了感受生活,为了看到墙内没有的东西,为了了解真相,为了知道这个世界究竟是什么样的,为了自己不是一直傻傻地走过这一遭,为了不被儿孙们耻笑……

2010年8月2日星期一

JADE Tutorial and Primer摘要

JADE Tutorial and Primer 是一个绝好的学习JADE的网站,文章讲解地简单明了,很适合初学者学习。下面是本人在学习过程中根据个人理解的知识摘要。

JADE Agents are defined as subclasses of the predefined class Agent and their initial code must be placed in a method called setup.

Agents are a bit like Java Applets in that they can't be executed directly; they must execute within a larger program which provides the necessary services. In the case of Applets, a browser or an Applet viewer is needed; for Jade agents the environment is provided by the class jade.Boot which finds which Agents to run from command line parameters.

Jade environments are called containers. Typically, in a multi-agent application, there will be several containers (with agents) running on different machines. The first container started must be a main container which maintains a central registry of all the others so that agents can discover and interact with each other.

Agent actions are normally specified through Behaviour classes. More exactly, the actions are described in the "action" method of these Behaviours. The setup method only serves to create instances of these behaviours and linking them to the Agent object.

A last point is the provision of a mechanism to terminate the behaviour. In Jade, as long as a behaviour is not "done", its action method will be called repeatedly after every event - such as receipt of a message or expiry of a timer delay.

Agent Parameters: the parameters are placed in a list seperated by spaces after the "name:class" agent specifier. For example: fred:ParamAgent(3 "Hi there"). In Jade, the arguments are obtained by calling the method getArguments which returns an array of Objects which must be cast to Strings Reversing single and double quotes can give surprising results.

为了实现Agent的并行,可以借助Java的线程机制。但是Java的线程不适合大规模的并行。所以,jade使用behaviour实现并行。

A behaviour is basically an Event Handler, a method which describes how an agent reacts to an event.  In Jade, Behaviours are classes and the Event Handler code is placed in a method called action.

In JADE, messages adhere strictly to the ACL (Agent Communication Language) standard which allows several possibilities for the encoding of the actual content. In particular, Jade supports FIPA's SL (Semantic Language), a LISP-like encoding of conceptsactions andpredicates. It also allows the content to be serialized Java objects.

Our message uses the most common performative: INFORM whereby one agent gives another some useful information. Other types are: QUERY to ask a question, REQUEST to ask the other to do something and PROPOSE to start bargaining. Performatives for answers include AGREE or REFUSE.

We use addReceiver because there is no setReceiver method.

Note that, if you don't call block(), your behaviour will stay active and cause a LOOP. Generally all action methods should end with a call to block() or invoke it before doing return.

the CyclicBehaviour, which stays active as long as its agent is alive. by using CyclicBehaviour, we don't need to specify done.

To simplify answering, Jade provides a method createReply() which creates a new message with the sender and receiver attributes switched and all other attributes set correctly. Generally, only the content and performative have to be modified before sending it back.

For agents to interact usefully in open systems, it is imperative that they use the same language conventions and the same vocabulary. The DF entries thus concentrate on listing the ontologiesprotocols and languages which are supported by the agents. Additionally, entries have sets of services which are characterized by aname and name-value properties as well as the ontology/language/protocol conventions they support

Each agent is allowed only ONE entry in the DF. Attempts to register an agent already in the DF gives an Exception.

the WakerBehaviour,its delay is computed from the time the behaviour iscreated.

一定要区别好Behavours Created和Started.

The key to implementation of interaction protocols is to assign to each conversation a unique identifier, the conversationID (CID).

简单PHP相关文章链接的实现

一般文章的正文后面会跟上该文章的相关文章,罗列一条条相似的文章。这种做法不仅对于作者还是读者都是有利的,既可以吸引粘连读者又可以使读者加深阅读。

对于PHP编程实现来说,一般的方法是在写文章时自己添加或者自动生成Tag标记,之后再寻找这些Tag相关性高的文章。谷歌实验室的Google Related Links同样也可以实现此功能,有兴趣的同学可以前往研究,不过需要申请。

我们知道文章标题能够涵盖文章的大体要义(标题党除外),相关文章在标题上也会有一定的相似度。下面就来介绍一种基于文章标题Tilte的相关文章实现方法,其实也就是利用了PHP自身带的similar_text函数来判断内容的相似度。





<?php

require('conn.php');
$sql="select title from content order by id"; //判断标题相似度
$result=mysql_query($sql,$conn);

while($row=mysql_fetch_array($result)){
similar_text($row['title'], $title, $percent); //比较相似度 存放于$percent

if($percent>30 && $percent<100){echo $row['title'];} //相似度高于30小于100,小于100就是排除掉自己。当然这个值可以根据实际来修改。

}

?>




这样的话就可以把和该文章标题相似度在30-100间的文章标题输出了。

2010年8月1日星期日

TinyMCE插入并上传图片的实现

TinyMCE自带的“插入图片”只能插入图片的链接(也就是外链),不能上传到网站服务器上,以前我的图片就是放在雅虎的Flickr!上的,想着放在别人的那里终归来说不太保险,于是想寻求一个在TinyMCE里就可以实现插入图片并上传到网站目录中的插件。

TinyMC官网上有个插件叫做MCFileManager,可以使用它来进行图片管理,无奈它是收费的。于是Google几十下,试了好几种方法总是有问题,几经周折找到了完美解决此问题的地方Simple Image Upload Plugin for TinyMCE,此网站提供一款及其简单并且免费开源的TinyMCE图片上传插件markettoimages. 配置和使用方法网站上说的简单明了,现摘录如下。

1. Download distribution pack. Unzip it into TinyMCE’s plugins folder.(下载markettoimages包,解压并存放在TinyMCE的plugins文件夹中。)

2. Edit config.php file found in plugins/markettoimages. Minimally, you should only specify a target directory for your uploads. Every block of config. php is well-commented, so I think everything should go right.(编辑plugins/markettoimages中的config.php文件,指定上传图片文件的存放位置。具体的设置是把markettoimages/config.php的28行:$config['img_path'] = '/images/somefolder';修改为自己需要的位置。提醒:路径是相对网站根目录的,没有最后的斜杠“/”。)

3. Activate markettoimages plugin and add markettoimages button in TinyMCE. Don’t forget to set theme: advanced and realtive_urls:false. See an exmple below:(激活markettoimages插件,并在TinyMCE中添加markettoimages按钮。不要忘记设置theme为advanced以及设置relative_urls为false.下面是一个配置的例子,具体位置是在调用TinyMCE的初始化语句部分。)
tinyMCE.init({
theme : "advanced",
relative_urls : false,
plugins : "markettoimages, ***",
theme_advanced_buttons1 : "markettoimages,|,***"

* * *
});