2010年1月31日星期日

手机又丢了

    昨天出去玩,拉小黄出来溜冰,结果被还了一个电脑。我还要买一个键盘给别人,手上一堆东西,再打车去见人。时间紧,手上大包小包一大堆,下车的时候两手满满的。下车了再一拍兜——杯具啊~~~~手机丢了。
    估计是放兜里面没放的太进去,于是联系去找。大众的调度��嗦嗦的,问你上车时间下车时间车号前后排什么的,问了一堆。我当时心就一凉。司机每天要开车的,总算还比乘客靠谱点。下一个乘客上来,那可就彻底讲不清了。要验证我的身份,大可以等东西找到再说。估计这堆罗嗦问题就是要等到说下个乘客可以上车,然后再推说可能是乘客问题,让你无话可说的。所以大家车上丢了东西,就别指望调度了。
    消息回来,果然找不到,手机满电的,也关机了。于是只有紧急停机,外加修改了所有在上面涉及过的密码,包括我的QQ,MSN/Hotmail,Gtalk/Gmail,还有张老师的blog。这里普及一个常识,手机使用的时候,一定要将手机设定为和SIM卡绑定。然后在手机丢了以后,立刻停机。这样做的主要目的是防止手机诈骗,例如打给你朋友,说你车祸了在急救,这里是医院,赶紧汇钱到XX账户啥的。我的朋友一般还比较懂行,肯定会挂了拨我号码以验证是否是我本人——问题是,那还是打到他手机上啊。人家和你够铁够仗义才付钱,万一被骗了,你好意思不赔他损失么?所以,丢了一定要停机。而SIM卡绑定,对于专业人士来说不难解,而对于业余人士则不好解。如果是外行捡到,卖给玩手机的就要被宰一刀,所以最好的思路是打上面几个人的电话问问要不要把手机买回去什么的。如果手机没绑定,大多都是拿到就用了,这个选项根本不可能。至于记录IMEI号什么的——你还没那个面子让移动封掉这个手机。另外上面如果用过QQMSN什么的,也赶紧改密码。不要心存侥幸,一天也许没事,两三天万一他解锁出来了,你哭都来不及。
    至于数据么,大部分都有备份,但是所有人的联系方式肯定都泄密了。大家如果看到其他人,用别人的手机,宣称我如何如何的——别信他。半年内的联系人可能需要重新添加,回头我会一一联系。
    至于其他么,半年内和我发过短信的,你们的短信都曝光了。和我照过相的,你们的照片都曝光了(这可不限半年,实际上我刚买的时候照的都还在)。其他数据应该没什么风险了,以上。

    以下不算钱:
    啊~~~~我的手机啊,又要买新的了,怨念。

2010年1月28日星期四

一个远程下载verycd的小技巧

    贝壳家里开了emule,天天下载,问题是又不能每次都是晚上添加资源。
    怎么办呢?不知道大家知道不知道,emule是可以网络管理的,端口是4711。不过不是https,密码容易泄露。而且贝壳已经有一个nginx服务器了,也懒的再做端口映射,换端口。于是,在nginx中做如下设定。(当然,贝壳是放在https段中的)

location ^~ /emule/ {
    rewrite             ^/emule/(.*)$ /$1 break;
    proxy_pass          http://hostip:4711;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}

    然后,用https://dynname/emule/就可以访问你家里的emule了,记得密码设强点。

    接下来,verycd里面曾经有复制所有连接的选项,现在没了。面对几个链接,也就手工复制一下,面对上百个连接,贝壳就无语了。贝壳试验过几个插件,都无法正确识别ed2k的链接获取。那怎么办呢?这时就要请出我们伟大的Linux。
    需要准备的工具是lynx,请预先装好,然后如下操作。(范例是个动画^_^)

wget -c http://www.verycd.com/topics/2779234/
lynx -dump -listonly index.html | grep "ed2k://" | sed "s/.*ed2k/ed2k/g" | grep -v BIG5 > out.txt
wc -l out.txt

    lynx的-dump选项是将某个网页全部渲染成文本进行展示,这是html2text的好方法,效果还不错哦,不过中文支持好像不是很好。而-listonly则是展示出页面上的所有链接,这就拿到了我们需要的原始数据。
    然后,我们取其中的ed2k行,忽略其他链接,再通过sed转换,去除头部的编号和空格,这样就可以得到所有的ed2k链接。
    我在下面是用-v BIG5的参数,忽略了其中繁体中文的资源,然后输出到一个文件中。数数行数,52行,大致和文件个数相当(其中好像有两个v2)。那就是可用资源了,复制到emule的控制页面中——出错?
    这是因为emule的控制页面使用GET方式传递参数,因此有长度限制。你需要将链接10个一批往里面复制——有个几次就OK了。当然,如果还是多,贝壳回头会写一篇文章,介绍如何使用curl自动干这事情——这还不算太难。
    这就是为啥贝壳喜欢Linux的原因了。相比Windows下的两个解决方案,找插件太费劲,自己写程序更费劲。Linux使用现有工具的组合可以轻松完成这一任务。

2010年1月19日星期二

关于减少使用gmail的建议

    这次,google又不走了。
    事情处于很奇怪的状态,google本是不可能留下的。既然它留下了,我们说,事有反常必为妖。这次妖在哪里呢?
    我建议大家减少使用gmail,最好别用。原因如下:
    如果google的却是受到了某些关于知识产权的攻击,但是却愿意在中国留下,并且在发生这次的事件后,还能留下。这说明google(非中国的谷歌公司)已经和北京达成了某种秘密的和解协议。无论这个协议的细节是什么,我们有理由猜测,google的产品不能完全的信任了,包括gmail,google reader,bloger等。
    另一方面,如果google并没有受到这些攻击,那就是出于各种原因的新闻炒作。既然google背弃不作恶的宣言在前,那杯葛在后也是自然而然咯?
    所以说,如果google打算继续在中国留下,那么包括gmail在内的各种google产品,都必须视为非安全产品看待。建议尽量减少使用,并准备替代方案。

2010年1月17日星期日

关于海地地震

    深切同情这种虚伪的话就不说了,我们又没被震过,装B只会遭雷劈。
    我得说,海地人民,海地政府还是比较公平的。学校倒了,总统府也倒了,这两天净看到倒塌的总统府了。在神奇的土地上,只听说学校倒塌压死人,还没听说政府机关房子倒塌压死人的情况——那到真是造福全社会了。

2010年1月13日星期三

关于google退出中国的FAQ

F:google真的准备退出中国了么?
Q:历史告诉我们,两个人谈价的时候,如果出现有人生气要走,那可能是讲价的手段。如果出现扇耳光,那么多数是谈崩了。除非被扇的人授意这么做,否则双方都没有回头路可走。目前google等于明确的在指责中国进行网络监控,并试图进行网络攻击。耳光都扇出去了,下面就不是谈价的问题了。

F:中国政府会怎样处理google的谈判呢?
Q:这也是个挺头痛的问题,要是让google就这么走了,无异于变相承认了中国的网络舆论监控和网络安全问题。但是要答应无控制的搜索,那是绝对不可能 的。可能会派出发炎人,声明,中国要求google进行网络控制的理由是为了防止网络色情和网络暴力,这是我国内政,其他国家无权干涉。目前没有证据表明 入侵google的黑客得到中国政府的授意,任何试图联系两者的人都是邪恶和别有企图的。中国是一个开放的市场,任何人进入和离开是个人自己的选择,中国 依旧欢迎其他公司来中国建厂投资。

F:google退出中国真的是因为不作恶么?还是为求一个体面的退出?
Q:别太把自己当回事了。google在中国的利润有多少?不超过总利润的10%。投资有多少?鬼知道。市场份额多少?33%。我们不看其他,就算中国市场全争取过来,最高也只能将利润增加到25%((10*3)/(100+10*2))。也就是说,中国最多是一块肉丝,而美国是块肥肉。如果肉丝真的有臭掉的风险,宁可丢块肉丝,也别丢肥肉。
而且,一旦明确指责网络舆论控制和网络安全问题,那么,同样进入中国的其他大型厂商就会陷入被动,包括微软,雅虎等。撤吧,他们的市场份额更大,问题也更复杂。不撤吧,他们在美国的形象会受到影响,有利于google在其他地区的业务。

F:google走了,百度得益了?
Q:短期来看,没错,长期来看,市场会重新平衡。由于百度在谈判上的强势地位,因此会导致代理商和广告主非常难做,同时互联网广告的成本会增加。进而加剧劣币驱逐良币,最后让整个互联网的所有广告都变成近乎于废纸,互联网广告业务名存实亡。
而且,一旦google离开,百度就会直面政府。从政府需要"团结和依靠"的多数,变成需要"警惕"的"怀有异心"的人。可以预见,政府对百度的监控和利用会达到一个新的高峰(因为用不着让你活着对付google了),并且可能会提出注资成为某部下属机构的要求。

F:google走了,我们将会怎样?
Q:google的离开,标志着中国的互联网整体倒退了6年。在IT界,3年是一个时代,6年的倒退,让我们退回了两个时代去,变成了上个世纪网络刚刚兴起的时候,那种上网艰难的状况。这不是用备份邮箱,备份新闻标签等方法可以解决的。
更严重的是,这会严重打击整个业界,工程师,对于中国的网络发展的评价。在这个问题解决前,我们可能落后其他国家10年以上。当然,之所以我这么担忧,其实还是因为这直接影响到了我的饭碗。

2010年1月10日星期日

手工删除oracle数据库实例的全部文件

    今天公司搬家,没啥好写的,简单记录一下前两天删除重建oracle数据库的过程吧。
    首先,我重建的是oracle数据库,而不是oracle数据库程序。这几天不知道怎么回事,整个数据库的redo log出问题了,我又懒得去找。加上这个数据库做演示的时候乱糟糟的配置做了一堆,也记不请了,干脆重建。
    重建的第一步,需要找到所有程序实例的位置,这个可以看/etc/oraInv什么的一个文件,这里会指向一个目录。这个目录是标准的,里面有各种格式的oracle程序实例的位置。然后,一个程序实例可以运行多个数据库实例,因此,要找出这些数据库实例的配置文件。这个就需要对oracle的数据库基本结构有所了解,这里不赘述oracle数据库的各种基本概念。
    oracle的数据库配置文件在一个很怪的位置,/etc/oratab里面。其中有SID到spfile路径的对应关系,通常而言,这个路径位于$ORACLE_HOME/dbs/init$ORACLE_SID。我们首先不要删除这个对应关系和文件,因为启动中其他文件需要通过这个找到。我们首先通过spfile建立pfile,来读取其中的参数。
$ export SID=orcl
$ sqlplus / as sysdba
> create pfile from spfile
> exit
    OK,这样我们就建立了pfile,现在可以删除$ORACLE_HOME/dbs目录下所有的SID相关的文件,并且删除oratab中的对应关系。完成这步后,数据库就无法启动,也不存在了。但是我们还需要回首数据库相关的文件,主要是收回空间,同时也免除后患。
    首先,数据库有三个control files,还有一个到多个data files,以及多个redo log。在默认设置中,这些文件一般放在一起,你可以通过查看pfile确认这些文件的路径。找到之后,直接删除,没啥好多说的。在完成数据基础文件的删除后,我们还需要删除flash_recovery文件,这个也可以通过pfile确认,位置一般在data文件上两级(就是通常$ORACLE_BASE的位置)下面,flash什么的一个目录,很好找。
    最后,我们删除admin目录,具体是在$ORACLE_BASE下面的admin下面,以SID命名的,可以通过pfile确认。至此,oracle数据库的删除完成。不过呢——呵呵——让大家失望的是,其实DBCA也可以完成一样的工作...
    不过,dbca的工作必须通过vnc,绝对不要通过ssh + xming,因为那个会让最后一步执行前的确认无法被确认,导致不能执行。实在是很让人郁闷的一个bug,切记切记。