Shell's Home

Sep 9, 2006 - 1 minute read - Comments

有线通封锁变通办法

虽然决定不用有线通了,但是还是要熬到年费结束。所以稍微研究了有线通的封锁方法,看看有没有变通方案。根据我上面的研究,有线通浦东地区封锁的是协议。所以我实验打开了BT和ED两个协议。结果证实,这两个协议同时打开对于单个协议的速度稍微有影响,估计是TCP的优先相应问题。不过总体速度比单个协议高了很多。昨天打开的时候,ED是30下载5上传,没有BT。今天同时打开的结果是BT45下载10上传,ED17下载10上传。总体来说有62下载20上传左右,高了很多。 其中针对BT说一句。之所以有这么高的速度,主要因为打开了BT中的加密协议头优先。这样在某些传输中就被当作HTTP连接,这个速度就是赚到的。不过现在不多,因此也没有太高的提升。不过总体下来不无小补,所以提供给继续要受到有线通荼毒的人士用用。 另外,有线通对HTTP下载不限速。大家可以把HTTP下载速度降低到不影响P2P连接的水平(例如用flashget的限制速度功能),慢慢下。这样你的总体平均流速是最大的,同时对于有线通的杀伤也是最大的。

Sep 8, 2006 - 1 minute read - Comments

音乐文件转换技巧和脚本

好久没动手写啥东西了,最近在准备LPIC1考试。Will everyone keep finger cross 4 me?嘿嘿—— 这个题目是个大家伙,反正每天写一点,也不忙在一时。大家有啥需要了解的,也可以问在下面。我会更新的。 copyright: 本文所提到各种软件版权归各个软件开发者所有。文章内容及所有附属脚本为独创,按照GPL发布。 keyword: 音乐 格式 转换 脚本 标签 bash shell script mp3 midi ape flac cue toc directory: 1.文件格式解说 1.1.mp3/ogg 1.2.midi 1.3.ape 1.4.flac 1.5.cue/toc 1.6.wav 1.7.iso 2.文件转换 2.1.wav/mp3 2.2.wav/ape 2.3.wav/flac 2.4.midi2wav 2.5.iso/wav 3.转换细节问题 3.1.按照cue切割 content: 1.1.mp3/ogg 这两个是非常有名的音乐压缩文件,其中MP3是mepg II layer 3。不要以为是mpeg III。一般来说,MP3都被认为是一种小巧但是音质比较差的格式。不过事实上,要指摘MP3的音质前,你先自己找找是否满足了一定条件。周围是否安静,没有噪音。音源是否高清晰(拿MP3还原出来的CD是没意义的)。声音设备是否足够好(至少也要是高质量的音响或者高档耳机,耳塞或者200-300的所谓音箱根本不用说)。如果没有上述条件,那么MP3的音质也算过的去的。MP3格式的压缩比值大约是10:1,和wav相比。另外,如果有CD的话,最好使用lame进行适当压缩。而不要为了方便随便使用一个压缩工具。压缩最好使用VBR格式。这种格式本质上没有什么变化,只是在信息流高的地方使用高的编码格式,以获得最高的质量/空间比值。ogg具体情况没有研究,不过使用上和MP3没有区别。 1.2.midi midi是所有格式中唯一不记录音频数据的音乐格式。midi记录的实质上是发声事件,简单来说就是什么时候鼓响了一下,什么时候钢琴的哪个键被按下了。因此midi也是没有立体声效果的。除非你使用特殊的软件指定某个乐器演奏时候的位置,然后根据环境生成出相应的音乐文件。midi文件在当前主要是两个用途。一个是midi记录了乐手演奏时候的指法细节,也记录了曲子的曲谱。midi本质上就是谱子。另外一个是midi的超小体积使得在某些嵌入系统(例如手机)上面可以作为背景音乐。 1.3.ape ape是一种无损压缩格式,你可以把ape看成是一种只能对wav作用的zip文件。压缩比一般是2:1。 1.4.flac flac和ape基本差不多。 1.5.cue/toc cue/toc不是音乐文件,他们是用于flac/ape等光盘的音轨定义。一个CD可以有多个音轨,iso会记录下音轨的切分方式。但是ape就不行了。于是eac等抓轨软件生成cue来切分音乐文件。往往看到ape的发行方式是一个ape和一个cue,直接打开ape往往是一首非常长的歌曲。其实切分信息在cue里面。虚拟光驱使用的bin文件也是一样,会有配套的cue文件。两者可以用cuetools和mkcue互相转换。 1.6.wav wav文件又叫做PCM编码格式。这是一切音乐的基础。无论你是哪种格式,最后都会被还原成wav的某种格式或者变形,才能够从声卡中播放出去。当然,midi的情况特殊,不在此列。 1.7.iso iso也不是音乐文件,但是和音乐的关系非常密切。大家都知道iso是光盘的镜像,其实说的还不确切。iso本身就是光盘内容严格1字节比1字节复制的结果。至于有的为什么有其他格式。那就涉及光驱设备工作和数据流/加解密的问题了。 另外说一个iso的问题,大家知道linux下面挂载iso的指令是 # mount -t iso9660 -o loop file /mnt 这其实是两个步骤,一个是

Sep 5, 2006 - 1 minute read - Comments

上海有线通,不爽

最近贝壳要换ISP了。大家知道,贝壳用了5年多的上海有线通。虽然速度不快,偶尔还有降到半速的现象,但是总体来说还是不错的。TTL跃点主要在12到16上下(经过12-16个路由器),极限上传一般在55K/s上下。虽然说和标称有一定区别,不过考虑IP封包头问题,也还可以。只是最近有线通不怎么像话,封了P2P不说,还不告知。去询问,又不承认。幸好贝壳两个月后包年到期,到时就跑了结束。 开始(8.30左右)贝壳的ED速度突然从50K/s持续上传下跌到7K/s持续上传。贝壳以为是电信故障维修,造成数个连线失效,路由重生成后形成瓶颈。这现象照理不会在电信这种大公司发生。不过按照莫菲定律,什么坏事都可能发生。就随他去了。24小时以后,贝壳打电话到96877报修。对方开始说会不会是系统问题,windows新出病毒云云。贝壳两台电脑,平台不一样(Intel和AMD64),系统不一样(WindowsXP和Debian/GNU Linux),所用软件不一样(eMuleVC,BC0.70和aMule)。不会都是出这个问题吧?再说windows出病毒,关linux啥事情? 维修人员看看没法说的通,换了口风。说这种问题不能算是问题,他需要“提交”一下。OK,你本身做维护的,还向谁提交问题?我也不管他,这几天忙,没空和他唠叨。说好好,你提交下看看。 过两天空了,看问题照旧,贝壳坐不住了。莫非我碰到了P2P封锁?贝壳先查看了网络上的评论,说上海有线通有这问题,已经有人在315网上提交了抱怨。贝壳下面做了几个测试。 首先将eMule复制一份,保留原先的配置。然后关闭所有共享,只共享一个文件。名字起的奇怪点,这样就没有别的下载客户了。然后找一个朋友来做下载,速度是5K上下,而且一般有下没上。 然后贝壳打开apache2,共享同一个文件,打开端口映射(ED等软件的端口映射也是做好的,经EtherReal核查没有问题)。下载速度是50K上下,一般有上没下。 再打开BT,勾选其中“加密数据包头”为“优先”。然后在传输测试中,多数客户的速度是2K-3K,但是一个也是BC0.70的客户,本地发起连接,速度高达50K。后面偶尔也会出现这样的客户,估计是因为不是所有BT客户端全支持加密数据包头的。 最后,测试Debian/GNU Linux从ftp.linuxforum.net下载更新的速度。这是ftp和http混用协议,一般在70K以上,最高甚至达到120K。 至此,基本可以下结论,有线通封锁了P2P类软件的使用。 最可笑的是,我再次打电话过去。他们的服务人员开始还跟我念叨机器问题等等。然后我把测试方法一说,他们立刻改口,说从不保证任何P2P类软件的稳定。只保证Http协议的传输速度。什么时候宽带还有条款,说只能保证Http协议的速度了?如果说只衡量HTTP协议速度,那条款应该重新修订。如果说网络速度,一般都是指IP封包的传输速度。或者放松说,底层网络封包的传输速度。有线通此举就是明显的侵权。上述电话可以向有线通查询的,工号7061。 任何愿意起诉有线通的同志,贝壳这里免费提供技术支持,提供有线通的网络数据统计(ntop统计结果)。大家高兴起诉的,贝壳提供声援和支持。并且贝壳郑重表示,有生之年,见到用有线通的就游说用别的宽带,即使他道歉并且解除封锁也不例外。自10月底有线通到期后,贝壳即抽空银行资金,签订解约协议,改用ADSL。

Aug 7, 2006 - 1 minute read - Comments

Helix关键提示

今天被整死了,好久不用Helix,结果细节忘记光了。 开启Helix后的测试是http://localhost:port/admin/index.html,其中port是安装时候指定的管理端口。然后要输入安装时候指定的用户和密码。开的开吧——那就用不着它了。 在HelixProducer中的设置是Push, user & pass,然后用户和密码就填写管理员的(要么刚刚的管理界面里面自己新建一个去)。端口改安装时候设置的http端口,千万别搞错了。path可以不写,传输方式UDP。最后要记得流名字。 然后我们的点播URL就是rtsp://ip:port/path/filename。port是你指定的rtsp端口,path是HelixProducer指定的,不写就没有,filename是流名字。 希望大家顺利吧。

Aug 3, 2006 - 1 minute read - Comments

testren

shell909090.testren.com,相信很多我的朋友都在上面做了题。其中成绩最高的是李默雯小姐,一半答对——说实话,她应该去赌球的,我的题目可不比世界杯好猜——。最低的是Stella同学,相信伊直觉差的和我有拼。 下面公布下正确的答案: 1、下面哪种技术/标准是贝壳完全没有研究的? c、 CLR CLR是用于.net的Common Language Runtime,小马在这里弄错了——亏你还和我一起看的SQL。 2、下面哪个组织/论坛是贝壳没有提供过技术支持/服务的? d、 www.foxmail.com 其他几个贝壳至少都做了服务的,sinofrance是GIGI工作的那个。 3、贝壳邮箱的909090是? a、 缓冲区溢出中的代码 NOP指令,熟悉ASM的人应该看的出来—— 4、贝壳家里面完全没有人做过的职业是? d、 海员 有在船上工作的,但是没有出海。 5、贝壳曾经在2006年春天出去旅游,当时和多少人去了几个城市? c、 1个5城市 我自己去的,深圳没啥好写的——所以看我博客的同志,辛苦了。 6、贝壳和上面广告中的Shell Company的关系是? a、 没有关系 恩,不要想太多。 7、贝壳名字的由来是? c、 有一种算法叫shell 其实也是有个人叫shell的,算法就是以他命名的。问题是——我不崇拜那家伙—— 至于说交互程序的,的却,很像,可惜,不是—— 8、贝壳属于以下哪个星座? d、 巨蟹 有的人——错的很不应该阿—— 9、贝壳曾经养过以下哪种动物? a、 狗 答狗熊的给扔出去—— 10、下面哪门课,贝壳一次就过了? a、 体育 这是所有题目错误最高的——所有全错了。贝壳高数因为太嚣张,结果被85分关掉。体育到是因为认识老师(李忠彬阿,Stella不知道还记得不——不好意思——),所以一次过去。 11、下面哪个学校,贝壳完全没有念过? d、 汇文中学 恩,因为北京和上海都有汇文中学(这个我是跟李默雯小姐确认过的,她就是上的汇文,所以一次就答对),但是贝壳从来没有上过任何一个汇文中学。因此拿来蒙人—— 12、以下哪种技能,贝壳完全不在行? c、 八卦 呃,无论是八卦,还是八卦掌,贝壳全不会—— 答其他的去撞墙吧—— 13、下面哪个不是贝壳的昵称/外号? c、 阿迪达斯 答D的去医院检查眼睛去—— 14、贝壳的DVD存档总资料量是多大? d、 450G 没啥好说的—— 15、贝壳维护的桌面系统最常未重装时间是多久? 嘿嘿,厉害吧—— 16、下面哪种系统,贝壳本人的机器上从来没有运行过? a、 Minix 混蛋minix跑不起来——So。 17、贝壳曾经在自己的机器上运行过多少种类的系统?

Jul 30, 2006 - 1 minute read - Comments

新版MSN试用报告

最近MSN又更新了,出乎我的意料,这次是stella同学率先跟进的。结果伊在刚刚用的时候发现好友全部消失了,正在惊惶的时候,偶撞上去打招呼,结果被伊捉来拷问。最后恢复是恢复了,不过还欠下新版MSN的论文一篇。 虽然不知道伊何时对MSN的机制感兴趣了,不过偶还是写了一个blog来分析新MSN的战略意义和运行机制。 免责声明,以下内容尚没有经过严密测试。如有偏差,作者不负任何责任。 copyright itten by Shell.E.Xu, public under GPL. abstract 新版MSN的功能和工作原理。 keywords N,安全,兼容,分布式 context 我们先分析what’s new上面提到的两个新功能,语音通讯和共享文件夹。 1.语音通讯 这东西很老啦,我测试的情况下是直接连接,连对方的IP都暴了出来,而且还不稳定。不知道为啥微软拿来宣传。 2.共享文件夹 共享文件夹的功能不是MSN的独创,但是MSN的共享文件夹思路很特殊,是针对每个人共享的。这不同于设置共享文件夹权限的做法,针对每个人的共享在正常来看差不多就是文件传输。通常IM的文件共享都是共享一个文件集,然后设置不同人的访问权限。这个时候IM宿主的功能就好像一个文件服务器。但是MSN的做法使得管理者不是单个IM宿主,而是两个。而且IM宿主不必在线,也可以修改文件。对此我跟踪了下整个实现过程,发现是这样的。 MSN使用了%ROOT%Local SettingsApplication DataMicrosoftMessenger%EMAIL%目录来保存和共享有关的东西,对每个人的共享内容都会保存在SharedFolder下面的Email下。每个人只保存自己共享出去的,对方的内容在联机的时候同步。这里要提到一个概念,硬连接和软连接。假定文件内容相同,连接能减小空间损耗。NTFS虽然在理论上支持了硬连接,但是却没有在platform API里面导出相关函数。何况FAT根本不支持硬连接。所以MSN使用硬连接的可能为0。至于软连接,同样,FAT根本不支持。所以使用软连接的可能也不大。因此,假定你一个文件要共享给所有人,使用MSN的话你要重复拖曳,并且多次保存。(短期试用,还不知道是否真的必须这样)这样共享文件根本不经济。更何况每次上线都要进行同步,取得别人的更新,这样对网络也非常浪费。同时还存在下载染毒文件的风险(当然不会有运行的风险)。不知道微软存了啥心思。 3.Windows Live Safely Scanner 微软在共享文件夹里面配套提倡的,就是Windows Live Safely Scanner。其他厂商为了增大合作空间,一般在查毒功能上都是利用外包方式,只要你提供一个杀毒软件主程序的路径,就可以利用%PATH% %FILE%的方式查毒。微软就在MSN内推荐使用本公司的产品。由此看出微软准备借助IM的优势,向安全领域进军。 4.联系人列表加密 这个是本人最不齿的功能,如果要加密了联系人列表,那么gaim一类的东西就全成了废物。微软如果真的有这个心思,完全是本着把开放协议搞成封闭协议的精神在做事了。如此无异于步QQ的后尘。 5.其他特征 新版MSN登录时间一般比较长,估计是在做功能通讯。有得有失,大家就别计较了吧。不过如果你登录过,速度就比较快了。MSN新版的稳定性还是不行,stella小姐被吓个半死,我这里是分组丢失。不过伊重新登录就恢复了,偶拿gaim登录也正常了。

Jul 27, 2006 - 1 minute read - Comments

BOINC分布式计算

嘿嘿,贝壳我现在正式参加了BONIC的两个项目,SETI@home和Einstein@home。这两个项目是通过个人电脑的剩余CPU能力来计算大规模运算项目。SETI是寻找外星人的存在。通过个人电脑来计算美国航天局射电望远镜的信号,来分析外星文明的存在可能。Einstein是在2005世界物理年发起的计算引力波的项目。 个人觉得计算来说,PII以上的计算机就可以参与计算,以下的就算了吧。因为您算出来的时候已经超时了。运算是在后台进行,除了系统指示上CPU基本全是满的以外没有什么异常。电影照看网络照上,就是CPU温度可能高了点。不过相对人为和意外来说,这点造成的寿命问题完全可以忽略。 BOINC还有很多有意思的项目,包括计算蛋白质折叠,计算病毒分子情况(以上的都是用来寻找疫苗的),还有大气环流(这个是预报自然灾害和预测人类行为影响的),计算防疫药品最有效分布,计算最大质数,分解大质因数等等。很多都有相当的科学意义。 BOINC的安装相当简单。下载程序,安装,在计算主页上注册,在软件上登录。然后你就不用管了,只要定期看看有多少分就好了。可以用多个计算机算一个项目,也可以一个计算机算多个项目。建议每个计算机算两个项目,这样一般不会超时,而且也不会没的算。 如果您有兴趣,可以参看。 伯克利开放式网络计算平台 Berkeley Open Infrastructure for Network Computing 如果决定参加的话,最好再加入中文站点上面列出的项目小组,为世界做贡献的同时为中国添光彩。 SETI@China , Einstein@China , LHC@China , Predictor@China , Rosetta@China , CPDN@China

Jul 14, 2006 - 1 minute read - Comments

删除无赖

大家知道,从3721首开记录后,很多软件都有卸不掉的情况。多数是插一个dll到explorer里面,让你无法UnloadLib,也不能kill。然后保护一堆文件不能删除,再放注册表项目。3721还加了一个驱动,这样就是神仙也删不掉。 骂人不多骂了,方法两个。http://www.sysinternals.com/Utilities/PendMoves.html有一个项目,可以延迟删除。换句话说就是在启动的时候,讨厌的流氓加载前让内核做删除动作。很方便,重起下就没了。至于怎么找这些流氓的位置。http://www.sysinternals.com/Utilities/Autoruns.html同样公司,这个项目可以将开机所有自动加载的模块全部找出来。IE的插入组件也可以找出来。 不过这个办法虽然好,可是还是会有破绽。万一连这两个软件运行都屏蔽呢?这个时候可以用linux live+ntfs r/w modules,这样删除任何东西的时候,神仙也挡不住。 BTW,做live的时候,千万记得放一个ntfsfix在盘里面。贝壳的/dev/hda1有个logfile没有clean,结果死活不能写挂载……

Jul 13, 2006 - 1 minute read - Comments

论linux引导过程

keywords 引导过程, initrd, init, rc copyright Shell.E.Xu撰写,按GPL发布。 abstract 简要介绍了引导流程的流转。 main 1.grub&lilo 引导的第一步,是启动引导管理器。这个种类非常复杂,从最早的MBR+专用引导扇区到现在的NTLDR,LILO,GRUB,大小和功能都有非常大的变化。但是主要来讲目的都是一样的。当今引导程序一般都分两个部分,引导扇区和主引导模块。NTLDR来说,C:NTLDR文件即是主引导模块。GRUB的主引导模块在/boot/grub/stage2,至于引导扇区,不用太过关心的。 主引导模块在加载后都会读取引导配置文件,当代流行引导管理器其实都有命令交互功能,可是你总不能指望每次启动都先敲堆命令吧。GRUB来说,配置文件是/boot/grub/menu.lst。注意,GRUB是在启动的时候读取配置的,但是LILO是根据配置来安装的。所以LILO在改变配置的时候需要重新安装。 2.vmlinuz&initrd 引导管理器会自动的将vmlinuz安置在内存中,然后寻找initrd传给vmlinuz。在没有initrd的情况下也可以引导,不过当下的趋势是将引导过程用脚本管理,放置在initrd中。这样引导参数解析,模块加载,设备管理都纳入了脚本的范围内。用linux哪能不会脚本,因此linux引导就有非常强的可以定制特性。 initrd分两种,cpio-initrd和ramfs。这里主要介绍 cpio-initrd。cpio-initrd的建立方法很简单,我上篇文章中有介绍。大致来说,就是把一些内容打包备份而已。vmlinuz会启动根下面的init脚本,我下篇文章会专门解析debian中配置的initrd.img的init脚本。现在大致说下。 init首先建立两个目录,建立/dev系统,并且建立null和console文件,否则udev的运做会出错。然后解析引导参数,解析到每个变量。而后依次运作init-top,init-premount,init-bottom(这些目录内的文件)。在init-bottom运行前会运行包含指定的脚本,这个脚本由BOOT参数指定,并且内部包含mount函数。这样可以通过指定BOOT参数定制mountroot的过程。最后是迁移大部分的系统过去(主要是/sys和/proc),最后通过run-init直接chroot和init。 3.init&rc init运行的开始,会寻找inittab。其中指定了系统的很多特性,最主要的是runlevel。首先是寻找/etc/init.d/rc并且运行,并且把运行级别作为第一参数传递。然后rc会寻找/etc/init.d/rcS和/etc/default/rcS,如果有的话则包含或者运行。然后rc会以参数S运行自身,过程和正常启动一样。这个作为基础启动参数,无论你以何种级别运行都会运行rcS.d里面的脚本。 4.service service启动的时候,是用rc?.d的脚本启动的。多数会用start-stop-daemon作为另外一个身份启动成守护进程。 5.bash&gdm 6.conf files reference: [1].