蜗牛的壳

蜗牛的壳

me =~ s/nai/liu/m;

浏览模式: 标准 | 列表
分类:[原创]其他技术

Linux 下检查 PID 是否存在


刚从网上学习的,记下来。

Linux 下检查 PID 是否存在,最快的方法就是用 kill 命令。

  1. kill -0 pid

对于信号“0”的解释:exit code indicates if a signal may be sent

相应地,在 C 语言里就是

  1. kill (pid, 0)

参考资料:
1. Unix man pages: kill()
2. Fast way to determine if a PID exists on (Windows)?

 

事实证明,Windows 就是比 Linux 好用


首先,先要喷一下三星的垃圾硬盘。这块垃圾硬盘已经坏了修,修了坏好几次了。而且每一次都是我自己修的,因为三星的保修形同虚设,一直让我联系 OEM 厂商。

昨天开始,这块垃圾硬盘再度出现故障。这次就连被某些人誉为除错能力最好的 ext3 文件系统都没办法解决。呃,我没想喷 ext3,但是这次故障的确够严重。没办法,只有备份数据放弃这块垃圾硬盘。

本来这块垃圾硬盘是挂载在我的 WD MyBook 下面,我在 /shares/internal/HOME/ 下面作了一个软链接(soft link)External/ 用来指向这块垃圾硬盘。所以理所应当地进入 /shares/internal/HOME/External/ 下面。为了防止 ../ 指向混乱,我还特意 pwd 和 cd ../ 一下,确认 ../ 指向的是 HOME/。然而,就在 mv Documents/ ../ 之后,问题出现了,系统提示空间不够。df 之后发现,备份内容移动到主系统下面了,HOME/ 下面什么都没有。没办法,只有先把所有东西都移动回来。

之后,为了图省事,直接在 Windows 下挂载网络硬盘,将 External/ 下的东西拖动到 HOME/ 下面,一次完成。

唉,照这种易用性,Linux 要取代 Windows,恐怕 1000 年的时间都不够啊。

AVG Free 8.5 Bug: Resident Shield automa...


偶然发现的 Bug。

现象:运行 avgrsx.exe 之后 Resident Shield 自动关闭。

版本:AVG 8.5.283 Free

没找到官方论坛,而且官方对免费版没有任何支持,无法回报 bug。(Update:刚去免费版官方论坛发帖报告了一下,不知道有没有人管)

想攻击 AVG 的黑客们可以行动了。

大小: 29.96 K 尺寸: 400 x 277 浏览: 3 次点击打开新窗口浏览全图

大小: 57.97 K 尺寸: 400 x 294 浏览: 0 次点击打开新窗口浏览全图

Bash 中查看程序返回的错误码


还是记下来比较好。

在 Bash 中启动一个进程,在进程结束后可以通过 echo $? 来查看程序的运行情况。

程序的错误代码(返回码)可以通过 exit(error_code); 来指定,或是系统定义的代码。一般来说,0 代表成功(无错误)。

Linux 的 error code 可以查看 /usr/include/linux/errno.h

多伦多街头的无线网


来多伦多的空档,在街头拿出电脑打算写点剧本,结果发现自动连上一个无线基站,速度还不错。

打开无线网络管理程序一看,竟然所处的位置上有这么多的AP。看来以后还是要保护好自己的AP,防止盗用。

地点:多伦多 Clarence Squre 北侧
时间:发帖时间
作案工具:Dell Latitude D630 (Wireless 802.11b/g)

大小: 67.38 K 尺寸: 400 x 360 浏览: 3 次点击打开新窗口浏览全图

貌似那个 One Zone 就是多伦多的城市无线网。

Bash编程笔记:swatchdog for WD-MBWE


Linux BusyBox 果真是个强大的东西。只要想做,什么都能做出来。正好最近正愁 My Book 的服务总是莫名其妙的挂掉,搞的在单位都无法访问文件。操起简单的 vi,开始制作 Bash Watchdog。(之所以没用 Perl,是考虑到 Perl 在预编译的时候比较耗费系统资源)

经过三个小时的现学现卖,雏形版的 Bash Watchdog - swatchdog 出炉。

/usr/sbin/swatchdog
  1. #! /bin/bash
  2. #
  3. # Watchdog for system service
  4. #  
  5.   
  6. while [ 0 ]  
  7. do
  8.   for PROC
  9.   do
  10.     PID=`ps -aef | grep -v grep | grep -v swatchdog | grep "$PROC"`
  11.     if [ -z "$PID" ] ; then
  12.       TIME=`date "+%Y-%m-%d %H:%M:%S %Z"`
  13.       echo "[$TIME] $PROC is not found, rebooting..." >> /etc/swatchdog/reboot.log
  14.       reboot
  15.       exit 1;
  16.     fi
  17.   done
  18.   sleep 600
  19. done
  20.  
  21. exit 0;

原理很简单,无限循环,检查命令行传入的进程是否存在。如果不存在则重启。

使用也很简单。

Command
  1. swatchdog cvm transmission amuled

自动侦测 cvm(mionet)、transmission 和 amuled。

WD MBWE Hack: nethostfs


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.

bash
  1. wget http://www.snailium.net/mbwe/nethostfs15src.tar.gz
  2. tar -xzvf nethostfs15src.tar.gz
  3. cd nethostfs15src
  4. make
  5. cp nethostfs /usr/sbin
  6. chmod 755 /usr/sbin/nethostfs
  7. chown root:root /usr/sbin/nethostfs

Step 2. Create shared folder /PSP/ through My Book Storage Manager.

Step 3. Create service script nethostfs under /etc/init.d/.

/etc/init.d/nethostfs
  1. #!/bin/sh
  2. #
  3. # Starts or stops the nethostfs for remote PSP access.
  4.  
  5. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  6. NAME="nethostfs"
  7. DESC="Remote PSP access"
  8.  
  9. case "$1" in
  10.   start)
  11.         echo -n "Starting $DESC: $NAME"
  12.         nice -n 10 nethostfs /shares/internal/PSP &
  13.         echo "..."
  14.         ;;
  15.    stop)
  16.         echo -n "Stopping $DESC: $NAME"
  17.         killall nethostfs
  18.         echo "."
  19.         ;;
  20.    *)
  21.         N=/etc/init.d/$NAME
  22.         echo "Usage: $N {start|stop}" >&2
  23.         exit 2
  24. esac
  25.  
  26. exit 0
  27.  

Step 4. Make start/stop link under /etc/init.d/.

bash
  1. cd /etc/init.d/
  2. ln -s /etc/init.d/nethostfs S91nethostfs
  3. ln -s /etc/init.d/nethostfs K09nethostfs

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)

WD MBWE 改造 — nethostfs


Western Digital My Book 所使用的 BusyBox 可塑性还是很高的。

想到正好在用 PPA 在 PSP 上通过 WiFi 看电影,干脆把 nethostfs 服务也集成到 My Book 里面好了。(English Version

前期准备:在 My Book 上加装 SSH 服务

第一步:按照下面的方法下载 nethostfs v1.5 源代码,解包,编译。

bash
  1. wget http://www.snailium.net/mbwe/nethostfs15src.tar.gz
  2. tar -xzvf nethostfs15src.tar.gz
  3. cd nethostfs15src
  4. make
  5. cp nethostfs /usr/sbin
  6. chmod 755 /usr/sbin/nethostfs
  7. chown root:root /usr/sbin/nethostfs

第二步:通过 My Book 共享储存管理器建立 PSP 共享文件夹。

第三步:在 /etc/init.d/ 下建立 nethostfs 服务脚本。

/etc/init.d/nethostfs
  1. #!/bin/sh
  2. #
  3. # Starts or stops the nethostfs for remote PSP access.
  4.  
  5. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  6. NAME="nethostfs"
  7. DESC="Remote PSP access"
  8.  
  9. case "$1" in
  10.   start)
  11.         echo -n "Starting $DESC: $NAME"
  12.         nice -n 10 nethostfs /shares/internal/PSP &
  13.         echo "..."
  14.         ;;
  15.    stop)
  16.         echo -n "Stopping $DESC: $NAME"
  17.         killall nethostfs
  18.         echo "."
  19.         ;;
  20.    *)
  21.         N=/etc/init.d/$NAME
  22.         echo "Usage: $N {start|stop}" >&2
  23.         exit 2
  24. esac
  25.  
  26. exit 0
  27.  

第四步:在 /etc/init.d/ 下建立相关启动/关闭服务链接。

bash
  1. cd /etc/init.d/
  2. ln -s /etc/init.d/nethostfs S91nethostfs
  3. ln -s /etc/init.d/nethostfs K09nethostfs

第五步:重启 My Book。


注意 1:在服务脚本中,使用了 nice -n 10 调整进程的优先级,防止 nethostfs 占用过多资源。
注意 2:此方法也适用于 iRshell。(PPA 的 WiFi 部分使用的是 iRshell 的源代码)

PS2游戏改造 Iteration 1


玩了很长时间的《无双·远吕智》(无双大蛇),对其中的 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.0cdvd 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用户并且我在他们的名单中。名单是怎么生成的请往下看。

然后,Facebook提示我加入一个Network。这个所谓的“Network”真正的作用是优化Facebook的搜索结果。

进了主页之后,Facebook向我提示几个潜在的朋友。这些潜在的朋友实际上就是朋友的朋友,然后根据reference(人与人的联系)的进行评分,分数高的证明这个人朋友多、是我朋友的机率大。事实上,Facebook给我的潜在朋友预测只有两个是对的。

然后,Facebook促使我进行朋友搜索。但是朋友搜索是有前提条件的,那就是输入Windows Live (MSN)的帐号和密码。这样一来,Facebook就可以登录Windows Live服务器取回我的联系人列表,进行精确查找。这个国内某“白领网”用的方法一模一样。有些人在这一步选择了Outlook联系人列表,这一下Facebook得到的信息就更多了。

最后,Facebook要我输入学校/公司的Email地址。这一步是为了得到更可靠的联系方式。

综上总结,Facebook只是在诱导用户填入自己的朋友圈子,在得到足够多的用户信息之后进行分类总结,最后精确找出朋友。这一切早在几年前就有中国的网站在做了。当时总是莫名其妙的收到一些交友邮件,其实就是网站利用MSN平台进行有选择的推送。这些东西在Google上搜一下有很多,我就不再多说了。

之所以中国的网站被网民骂得很惨,但Facebook却有这么多人支持,最根本的一点,因为Facebook是美国的网站。其他的话就不用多说了吧?

Records:29123



« 2012年02月 »
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

标签

用户


链接


归档


信息

  • 分类数量: 15
  • 文章数量: 307
  • 评论数量: 114
  • 标签数量: 556
  • 附件数量: 510
  • 引用数量: 0
  • 注册用户: 12
  • 今日访问: 369
  • 总访问量: 778232
  • 程序版本: 1.6


加拿大中文电话

  • CIBC
    1-888-298-8822
  • TD Canada Trust
    1-800-387-2828
  • HSBC
    1-888-310-4722
  • Scotia Bank
    1-800-830-8080
  • RBC Royal Bank
    1-888-769-2598
  • Rogers TV
    1-800-787-7953
    1-866-406-7239
  • Rogers Wireless
    1-800-828-9828
    or *2288
  • Fido
    1-866-888-3436
  • Bell Home Phone
    1-800-715-1888
  • Bell ExpressVu
    1-888-759-3474
  • UPS Delivery
    1-800-233-8133