本次检查结果:
1、所有德语广播全部可以在线收听;
2、所有俄语广播全部可以在线收听;
3、韩语广播中,YTN、UBC、TBC三个电台暂时无法收听,其他正常;
4、所有日语广播全部可以在线收听;
5、法语广播中,Alpes 1和Info800暂时无法收听,其他正常。
6、音乐广播中,WGTS,KMGL和007Hip hop暂时无法收听,其他正常。
修复结果:
WGTS官网也无法收听,只能耐心等待。
007radio hip hop,国内无法连接206.51.233.230 (ping 206.51.233.230),短期内是听不到了。
KMGL官网也无法收听(http://209.222.145.140)
法国Alpes 1法语广播已经修复。
加拿大Info800法语电台已经修复。
YTN官网也无法收听(http://61.247.210.97)
NPR在线广播终于修复。(2010.3.3 1:00)
WRN法语广播终于修复。(2010.3.4 15:46)至此基于flash player应用的RTMP协议终于全面吃透。

传说中的型男潮人乞丐

传说中的型男潮人乞丐
今天上网时无意间看到各媒体论坛都在热炒一个乞丐形象,说他:
眼睛雪亮
表情冷峻
胡子拉碴
牛郎发型
忧郁眼神
混搭日韩打扮
放荡不羁,不伦不类的潮人感觉,太有范儿了
借助于Google图片搜索很容易就找到了这2张图片,其实看上去,如果没有好事者的那一番渲染,也只是普通的乞丐而已。然而何以现在的网友那么喜欢拿乞丐来调侃呢?乞丐是社会的弱势群体,是应该被帮助的对象,如此以“型男”、“很man”、“潮人”等词儿来调侃寻开心,实在不妥。好事者与其传图上网,不如就地施舍百元大钞,更显慈悲心肠。
最近一段时间发现,tv.cctv.com无法访问,其下所有内容也无法浏览。恰逢前段时间网上传闻CCTV被黑,我还以为是被黑的原因。今天忍无可忍,索性探个究竟,发现原来CCTV对tv.cctv.com做了CDN动态DNS,域名解析是随访问者使用的DNS而变化的。
首先我ping一下tv.cctv.com,结果如图所示:

ping tv.cctv.com
果然令人惊讶,央视怎么会把其二级域名做CNAME到akamai呢(akamai.net是一家著名的互联网流媒体解决方案提供商,我们听的很多在线广播和在线电视都是经由akamai发布的)。显然这个ip:63.150.131.201是被河蟹掉了。这个现象的唯一解释是和我使用的DNS有关,看看我的DNS设置:

Google Public DNS Server
插一下为什么我会用远在美国的DNS:我用过电信,也用过网通(现在叫联通了)的ADSL,一旦我输入的网址不正确,就会立马跳出来他们的广告,浪费我的带宽流量不说,还浪费了我的时间,本来我们就是交钱享受服务,他们还硬要你去看他们的广告,帮他们挣钱,我早就受不了这帮拿钱不办好事儿的家伙了。这次过年在外地,那更是杯具:地址栏打的是www.google.cn,页面里显示的是广告,还假惺惺的提示你:“亲爱的用户,您本月宽带使用时间为XX小时!”,如此明目张胆的劫持域名;还有更好笑的是,当地电信居然和某网络公司合作推广一个网络安全产品,说Alexa.com“可能会危害您的计算机……”。一言难尽之后,我只能用Google的DNS了,干净整洁。
言归正传,既然域名解析没问题,那么走VPN试试,访问一下tv.cctv.com,OK,一切正常,试了下加拿大的代理,也可正常访问。下面我们取一下成都电信DNS的tv.cctv.com的数据:
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9128
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2
;; QUESTION SECTION:
;tv.cctv.com. IN ANY
;; ANSWER SECTION:
tv.cctv.com. 64358 IN NS cctv-com.cctv.com.
tv.cctv.com. 403 IN CNAME g11.cctvcdn.net.
;; AUTHORITY SECTION:
tv.cctv.com. 64358 IN NS cctv-com.cctv.com.
;; ADDITIONAL SECTION:
cctv-com.cctv.com. 24715 IN A 220.181.168.251
cctv-com.cctv.com. 24715 IN A 202.108.9.251
注意红字,在成都电信的DNS上,tv.cctv.com是被做别名解析到g11.cctvcdn.net的,ping一下g11.cctvcdn.net可得ip是221.236.10.132,这个ip在成都电信。
这下我们可以得出结论了,tv.cctv.com这个二级域名(可能还有别的,没去测试)是基于用户的DNS服务器做动态域名解析的。其实随着Google公共DNS的日益普及,会有越来越多的国内的朋友使用8.8.8.8的,基于用户DNS加速策略显然没有基于用户IP的好。

年前一时心血来潮,想回味一下大学时玩《帝国时代1》的乐趣,就去下载了一个硬盘版的。第一次下载的一个empire.exe的文件出错,下到桌面后不小心直接双击了,结果什么反映也没有,但是也删不掉,查看关联进程,发现被explore.exe调用。
这时如果Ctrl+Alt+Del调出任务管理器,结束掉explore.exe进程(注意结束该进程桌面就没有了,屏幕变成空的),当有鼠标键盘动作时,桌面自己就会跳出来了,那个empire.exe又被关联上了,就算重启进入安全模式也是如此。用光盘启动进入DOS发现C盘是NTFS分区,手上又恰好没有DOS下读写NTFS分区的工具,只好再麻烦一次:使用带命令行的安全模式。
重启电脑一直按F8,一会儿就会出现黑底白字的菜单,选择“带命令行的安全模式”,这时XP启动飞快,一会就进系统了。进XP后你会发现分辨率很低(没有加载驱动),没有桌面(没有运行explore.exe),只有个黑屏的窗口(和cmd命令行一样的),不过这个界面里是可以输入中文的,所以桌面上的文件也可以轻松搞定了。使用dir *.exe /s确定文件路径,然后cd进去桌面,del empire.exe,大工告成。这时再用Ctrl+Alt+Del调出任务管理器,运行shutdown -s即可关机。


近期可能要开始筹划一个新的项目,需要用到城市分类二级列表,所以趁这几天过节先准备一下相关的资料。
国内分类网站做得比较好的也就数58同城(虽然我个人不认同他们欺骗链接的策略)、百姓网和赶集网。看了一下他们的Option下拉二级列表,大同小异,但经过比较还是觉得赶集网的这个全国城市二级目录分类很好,容易修改,扩展性强。所以我稍微整理了一下,就打包传上来了,直接浏览form.html就能看到效果,要是修改了js文件位置,记得要在form.html里修改一下js调用路径。
一些简单的说明:
1、cities.js是分类城市数据文件,里面的城市中文是用16进制写的,其实用简体中文也没问题的;
2、每个“省”(直辖市)前面有个索引数字,那个是控制显示先后顺序的,大的就靠后。
3、cities.js原来的文件里是没有香港和澳门的,我给加在最后了,台湾的也可以加进去,不过需要去收集一下台湾的城市列表。
4、cities.js里每个城市后有个简称,那个是控制点击后的页面跳转用的,具体是用二级域名还是用目录,可以在form.html里的js里修改window.location。
中国城市分类二级列表源码包下载
每年春晚赵本山的小品基本上还算是一亮点的,然而今年的《捐助》还真让人大跌眼镜。广告内容包括:搜狗(搜狗输入法、搜狗搜索引擎),搜狐视频(还强调全球直播),搜狐网,国窖1573。
按理说赵本山应该是不差钱的,这次整这么多广告,真不知道他老人家是咋想的,希望赵本山不要步了“赵老师”的后尘,晚节不保。
现在的春节早已没有了童年时期的那份感觉,一到过年总要叫嚷着叫父母买鞭炮(大一点的叫电光炮),放烟花。年三十总是早早的吃过晚饭,一家人围坐在火炉前,烤着火看春节联欢晚会。也许那个时代比较朴实,觉得不看春晚挺可惜的。
随着年龄慢慢变大,春节看春晚的感觉越来越淡了,其实也讲不清是春晚质量越来越差,还是人的想法改变越来越大。
作为一个网络从业人员,我自然是在电脑上看,酷六网的直播也确实还是不错的,断断续续地看完了“小虎队”的节目(我是定点来看的,其他节目大多只是随便扫了一下),虽说不是听着“小虎队”的歌长大的,但小时候对流行歌曲的认识,恐怕是“小虎队”带来的。记得我第一次听小虎队的歌是小学六年级,一直到初中,那个时代还有个“红孩儿”,再后来“小虎队”就解散了,记得我当时还买了吴奇隆的《追风少年》的磁带,10块钱呵呵。
本人一直不大喜欢刘谦,至于其他一些歌功颂德的歌舞和语言类节目,实在是不看也罢,脱离实际太远了。
当用户输入一个单词的时候,我们首先要判断这个单词正确与否,判断的依据就是看看它是否存在于我们既有的词典中。(根据后台数据显示,目前澳典在线英汉词典收词量达135,277条,包括缩写词、单词原型,不包括词组。据了解,《牛津现代英汉双解词典》收词量也是在13万这样一个数量级,《牛津高阶英汉双解词典》收词量在8万左右。)如果单词不存在,则表明这个单词可能输入错误,我们需要给出一些和这个输错的单词“相似”的正确单词。这个找寻“相似”的正确单词的过程就要用到我们的单词纠错算法。
用户输入错误是有一些特点的,例如多一两个字母或者少一量个字母,还有可能是记错了或者打字太快输错了几个字母,最后是用户输入的是单词的变形形式(如第三人称单数、复数形式、现在分词、过去分词、一般过去时、比较级、最高级等等)不在我们的字典库中。所以首先我们使用了一个“二次相似匹配”的算法,以用户输入的“单词”(一个字符串)为基准,从词典中取出一部分“比较”相似的单词,我们要确保用户真正想要的单词就在其中。这一步得到的单词数量在一到数千的的样子,由于使用了索引,执行时间为毫秒级。注意我们使用的“二次相似匹配”和网上介绍的“骨架键”是完全不同的。
现在我们取回这样一大堆“相似”的单词,下面就要对这一大堆单词进行比对,看看他们和用户输错的单词有多像,并进行排序,然后取出前10个或者前n个呈现给用户(我们实际操作中是取前15个)。我们在单词比较中有如下的考虑:
1、两个单词具有连续相同字母越多越相似(最大公共子串的概念);
2、在最大公共子串的前提下,两个单词具有相同的字母越多越相似;
3、两个单词长度越接近越相似(对一个10字母的错词来说,显然9个字母的单词要比6个字母的单词更“像”一些;
4、我们将字符的ascii码之和为单词定义权重(weight),权重越接近,单词越相似(也可以用字母顺序a-1,b-2,……,z-26来定义权重);
以上3、4两点实现起来很简单,1、2两点之要做一个矩阵(二维数组),对于对角线上的空格,字母不同处置0,字母相同处+1,看下面的图例:
|
f |
o |
r |
e |
v |
e |
r |
| r |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
| i |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
| v |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
| e |
0 |
0 |
0 |
1 |
0 |
2 |
0 |
| r |
0 |
0 |
1 |
0 |
0 |
0 |
3 |
用一个二重循环轻松搞定。至此可得到两个单词的大公共子串表,同时也标注出了其“相似”的权重,显然1越多越好,数值越大越好,因为数值越大意味这公共字串越长。计算这张表上所有数字的平方和,得到数值A,A越大,两个单词越相似;计算两个单词的长度差D,D越小,两个单词越相似;计算量个单词的权重差W,W越小,两个单词越相似。通过A、W、D三者之间的一个算法关系,我们可以比较准确地计算出单词的相似度,以此排序,就能得到我们要的结果了。
看一下我们的成果,貌似还不错:
http://odict.net/pistachou/ -> pistachio(开心果)
http://odict.net/apointment/ -> appointment(约会)
http://odict.net/commision/ -> commission(佣金)
在实际应用中,我们还加上了部分常见后缀判断,例如:http://odict.net/fastest/ -> fast
以上分析算是比较机械式的了,事实上很大一部分输入错误,是由于键盘键位导致(如把w错输成e,把o错输成p),还有一些是相同发音导致(如ss打成s,ear打成eer等)。因此如果能够将键盘工程学和发音学的判定加入上述算法,则结果将更为准确。