me =~ s/nai/liu/m;
这几天一直在琢磨用 Perl CGI 架设网站,正好在网上看到了一篇关于 CGI 安全的文章,里面提到了数据库注入和远程执行等等安全问题。也就是说,比较安全的方法是屏蔽一系列特殊字符(比如说,管道“|”、引号“" '”、斜线“/”等等)。今天偶然间突发奇想,如果换一种思路,不需要过滤特殊字符也能做到脚本安全。
具体方法如下。(假设:用户名与密码存在 user 表中,密码用 md5 加密)
由于 md5 hash 不包括任何特殊字符,所以这段脚本对数据库无害。
优点总结:由于传递给数据库的字符串当中不包括任何特殊字符,因此没有任何注入危险。
缺点总结:一般来说,用户数据表都是拿用户名做索引,所以按密码查询效率相对低一些。但是考虑到用户登录的频繁程度,这个缺点就无所谓了。
终于看完了第12集。整个片子的压抑气氛跟《Elfan Lied》相比有过之而无不及。从11集开始的气氛骤降压得人喘不过气,12集的结局更是雪上加霜。如果我的内心像世界一样,12集过后我也会拿起刀。
回头重观整部动画,世界在我心中的印象大大改变。如果说在片子开头我喜欢的是柔弱的言叶(事实上在出国前的确是这样),那么到最后,占据着内心的却是世界(就像现在这样)。
回想2004年热火朝天的《君が望む永遠》,当时我还是遥的坚定拥护者,水月结局曾让我失落过一个时间。现在看看,比起这会儿把三个 Bad Ending 捏在一起,至少那会儿还是个 Good Ending。呵呵,如果真的要个 Good Ending 的话,恐怕就是刹那或者光的天下了。
总之,在这穷乡僻壤,很久没见到这么震撼人心的片子了(虽然是动画)。就让我跟世界同在吧,我才不要人渣诚的终结……
Linux BusyBox 果真是个强大的东西。只要想做,什么都能做出来。正好最近正愁 My Book 的服务总是莫名其妙的挂掉,搞的在单位都无法访问文件。操起简单的 vi,开始制作 Bash Watchdog。(之所以没用 Perl,是考虑到 Perl 在预编译的时候比较耗费系统资源)
经过三个小时的现学现卖,雏形版的 Bash Watchdog - swatchdog 出炉。
原理很简单,无限循环,检查命令行传入的进程是否存在。如果不存在则重启。
使用也很简单。
自动侦测 cvm(mionet)、transmission 和 amuled。
意外的惊喜!感谢实习单位里的一位姐姐,每个人都拿到了一套 Tundra 的芯片。当然,这些芯片基本上都是 RMA 回来的,已经不能工作了。但至少可以作为个人收藏(毕竟是我的第一份工作)。
废话少说,上照片!
从上到下依次是:
Tsi106, Tsi340, Tsi350, Tsi574, Tsi578
Tsi107, Tsi400, QSpan, Tsi576, Tsi564
Tsi108, Tsi109, 未知芯片(应该是Tsi107), Tsi107芯片基板
OK, for some reasons, I write this article in English. I bet you Chinese can understand it.
The problem was simple. Globat's servers got down on Feb. 21, because of switch problem. Well, that was not the critical impact.
On Feb 23 afternoon, I found my database got problem, probably database crashed. I talked to their technical support. They told me they were working on it, and needed sometime. I thought it was acceptable. But then, things got much worse.
On Feb 23 evening, the database was still down. Technical support suggested me to issue a ticket. I did. Then, I still hoped it would be better.
On Feb 23 night, I got the first (and the only) response to that ticket. It was said they were taking care my issue.
On Feb 24, they told me they had fixed the problem. But again, my database was still reporting errors. Then, they changed to another word, saying they were trying to fix the problem.
On Feb 25, the problem was still hanging my websites. They were still saying to fix it.
On Feb 26, they told me, hopefully, they would fix the problem by both recovering from previous backup and fixing existing database. I got confused and totally lost my patience.
On Feb 27, I tried use phpMyAdmin to repair tables, and got all tables recovered except one of them. Finally, I got a happy ending by myself. Definitely, they were still "fixing the problem".
As of that time, all my websites have been down for almost a week. Those websites include, snailium.net, blue-dv.net and sdfzlt.cn.
I tried to search "Globat problems" in Google. It seems Globat has problem to deal with customers frequently. I have no more passion on a troublesome web server. Therefore, I temporarily moved to Lunarpages, under xiaoqiangnet.com.
Further, I will shut down all my websites on Globat and move them all to a new server, although they are still fixing the problem.
Here is HOWTO add nethostfs on Western Digital My Book World Edition. For Chinese version, visit here(中文版).
Prerequisite: Enable SSH on My Book.
Step 1. Download nethostfs v1.5 source code, unpack and compile.
Step 2. Create shared folder /PSP/ through My Book Storage Manager.
Step 3. Create service script nethostfs under /etc/init.d/.
Step 4. Make start/stop link under /etc/init.d/.
Step 5. Reboot My Book World Edition
Note 1 - nice -n 10 is used in service script to adjust process priorities, in order to avoid nethostfs consumes too much CPU resource.
Note 2 - This works perfect for iRshell, as well as PPA (which uses iRshell's WiFi code)
Western Digital My Book 所使用的 BusyBox 可塑性还是很高的。
想到正好在用 PPA 在 PSP 上通过 WiFi 看电影,干脆把 nethostfs 服务也集成到 My Book 里面好了。(English Version)
前期准备:在 My Book 上加装 SSH 服务。
第一步:按照下面的方法下载 nethostfs v1.5 源代码,解包,编译。
第二步:通过 My Book 共享储存管理器建立 PSP 共享文件夹。
第三步:在 /etc/init.d/ 下建立 nethostfs 服务脚本。
第四步:在 /etc/init.d/ 下建立相关启动/关闭服务链接。
第五步:重启 My Book。
注意 1:在服务脚本中,使用了 nice -n 10 调整进程的优先级,防止 nethostfs 占用过多资源。
注意 2:此方法也适用于 iRshell。(PPA 的 WiFi 部分使用的是 iRshell 的源代码)
玩了很长时间的《无双·远吕智》(无双大蛇),对其中的 CG 和 BGM 已经厌烦了。最近无意间看到有恶搞的无双大蛇幸运星OP,干脆拿来集成一下。
说做就做。把网上下来的镜像挂上开始 dump 文件。
但是光荣也不是吃素的,打开光盘之后发现里面都是打包好的文件,分别是 LINKDATA.ANS、LINKDATA.BNS、LINKDATA.CNS 和 LINKDATA.DNS。又是无意间,发现专门为《战国无双2猛将传》准备的 CNS 解包工具。下载、解压缩、sm2m /cu 解开 CNS,获得一堆 .pss 文件(美版是10个,日版24个,多出来的都是无双系列前几部的宣传片)。这里要插一句,PSS 文件和 MPG 文件差不多,都是 MPEG2 的封装器,用 MPC 内置的 MPEG2 Splitter 可以分离观看。但是无双系列的 CG 音频都是压缩过的 ADPCM 格式,找解码器比较麻烦。但是无所谓,用下面讲到的 PSS Plex 可以转换成 WAV 音频。再回来说这10个 PSS 文件,都是片头片尾和各国结局 CG。其中比较小的几个是光荣的 Logo、ProLogic II Logo 和 w-force Logo。
确定了 PSS 之后,就要准备替换了。下面要介绍 PSS 分离/合成软件 PSS Plex。十分简单的小程序,带图形界面。拿到工具之后,当然要先分离一个 PSS 看一下参数。640x448 分辨率、MPEG2 编码、4500kbps 码流。确定好之后开始准备替换影片。
将下载好的 .flv 影片用 Procoder 压缩成 MPEG2 影片(m2v+wav)。具体怎么压缩在这里就不说了,毕竟 320x240 的 .flv 画质很不好,需要用很多滤镜才能保证画质清晰无色块。压缩完了之后,用 PSS Plex 合成 .pss 文件,注意要选上“Compress sound (ADPCM)”选项。然后将 008.pss(w-force Logo)替换掉。
在合成 LINKDATA.CNS 的时候需要注意,sm2m /cp 需要94个文件(000.pss - 093.pss),所以从 010.pss 开始,建立94个垃圾文件(用命令行更方便些)。然后再 sm2m /cp 合成 LINKDATA.CNS。
最后,拿出 CD/DVD Generator 2.0 和 cdvd iml2iso,制作光盘镜像。《无双·远吕智》并不是用 LBA 寻址,所以文件的顺序无所谓,DUMMY.BIN 还是要加入的。记得先用 CD/DVD Generator 导出 .iml 文件,然后用 iml2iso 生成镜像。
最后的最后,当然就是刻盘啦。不过刻盘之前最好先用 PS2 模拟器模拟一下,确保 ISO 没有问题。
好啦,第一回合结束。过几天再研究一下其他的 CG。
注意:如果分离 PSS 之后发现有 .sub 文件(字幕?),那么说明这个文件暂时不能替换。因为 PSS Plex 的 bug,在合并 .sub 文件的时候会出现异常。而如果不加入 .sub 文件,运行游戏 100% 死机。
参考资料:
1. http://bbs.a9vg.com/read.php?tid=762507&fpage=1&toread=&page=1
今天喝酒的时候朋友提到了Facebook的强大,很多朋友都可以在Facebook上找到。后来自己申请了一个帐号研究了一下,发现Facebook不过是美国版的某“白领网”罢了。本文大略分析了一下Facebook是怎样工作的。
首先,要呈请的一点是,Facebook并不是“交友网站”,而是“社交网站”。两者的区别就在于交朋友是不是带有目的性。
好了,言归正传,下面简单论述一下Facebook是怎么工作的。
首先,注册之后,Facebook给我显示几个“朋友”。此时的“朋友”都是Facebook用户并且我在他们的名单中。名单是怎么生成的请往下看。
然后,Facebook提示我加入一个Network。这个所谓的“Network”真正的作用是优化Facebook的搜索结果。
进了主页之后,Facebook向我提示几个潜在的朋友。这些潜在的朋友实际上就是朋友的朋友,然后根据reference(人与人的联系)的进行评分,分数高的证明这个人朋友多、是我朋友的机率大。事实上,Facebook给我的潜在朋友预测只有两个是对的。
然后,Facebook促使我进行朋友搜索。但是朋友搜索是有前提条件的,那就是输入Windows Live (MSN)的帐号和密码。这样一来,Facebook就可以登录Windows Live服务器取回我的联系人列表,进行精确查找。这个国内某“白领网”用的方法一模一样。有些人在这一步选择了Outlook联系人列表,这一下Facebook得到的信息就更多了。
最后,Facebook要我输入学校/公司的Email地址。这一步是为了得到更可靠的联系方式。
综上总结,Facebook只是在诱导用户填入自己的朋友圈子,在得到足够多的用户信息之后进行分类总结,最后精确找出朋友。这一切早在几年前就有中国的网站在做了。当时总是莫名其妙的收到一些交友邮件,其实就是网站利用MSN平台进行有选择的推送。这些东西在Google上搜一下有很多,我就不再多说了。
之所以中国的网站被网民骂得很惨,但Facebook却有这么多人支持,最根本的一点,因为Facebook是美国的网站。其他的话就不用多说了吧?
名字,只是一个代号而已,为什么要有语言的区分?就好比我大名叫王冠男,英文名自然而然就是Guannan Wang。横竖这两个名字都是我的代号,不管中国人叫起来还是老外叫起来我都知道他们在叫我。
但是,最近发现了一个奇怪的现象。
公司里的邮件满天飞,其中不免会有中国部门的邮件和到中国开会的邮件,总而言之,多多少少都会有些邮件带有中国人的名字。在这些人里面,有些人用汉语拼音名字,有些人却用英文名字(Sam、Jerry之类的)。而且很有意思的是,在北美的中国人都用拼音,而在中国大陆的中国人都用英文名。
回想以前在国内的时候,我也用过英文名字,叫做Bart,是一个老美按照Simpsons动画片人物给我取的。我也曾经得意洋洋地炫耀过我的英文名字,甚至刚出国的时候所有表格一律都写的是英文名。但是随后麻烦也来了,因为使用的名字和正式登记的名字(护照上的名字)不一致,差点让我废了一门课。而且曾经有人开玩笑说我的名字很像Fart。总之,经历了一切的一切,最后还是在作业的封面上写下Guannan Wang。
仔细想想,名字都是爸妈给取的。中国的文化中,名字已经不只是个代号,更多地,名字中包含了爸妈的鼓励与期望。这也是老外不能理解的。很多老外听说我的名字还有Top-1 Man的意思之后,很不理解为什么中国人给孩子取这么个名字。我告诉他们这是encourage from parents。于是他们很尊重我的名字,很尊重我爸妈给我的期许。从那之后,我再也没用过任何英文名字,就连刚到公司之后都要把中文名字写到自己的白板上。
总之,中文名字对于中国人的价值,并不仅仅是代号那么简单,它包含了更多的东西,也就是文化的内涵。抛掉了中文名字,基本上也就抛掉了自己的文化,也抛掉了别人对自己的尊重。至少,在北美,老外都会羡慕和尊重别人有而自己没有的东西。
我并不是酸葡萄,只是看不惯而已……
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |