Let’s try faq format today~ Q:今日无事? A:是的,除了我早上一觉睡到13:00点整,如果我管那叫“早上”你没什么意见的话…… Q:今日推荐? A:today is the day of silence, in case you don’t know yet. Q:no update today? A:this is the update, see ya next a couple of days~ if you are still asking…… Q:why? A:why???!!! 因为我是中国人,我很自豪,谢谢。
Update-9
好了,不废话,继续咱们的update系列 —— “无废话update” (路人议论: 上面这句就是废话……;我: ……;路人:不如改叫“尽废话update”好了;我:……) 1. 写文章需要理由和动机,今天的主要动力来自于对 google history “强大”的惊叹,虽然整天对 “google knows everything about you” 耳濡目染,但真正意义上的察觉今天还是第一次…… 第一次的感受都是震撼的,goolge竟然知道我2006年6月28日凌晨1:35正在搜索gmail,说明我那时正在对使用gmail感兴趣,也知道我某年某月某日某时某分正在预谋从事某某“非法活动”,正在到处搜集资料…… oh, my gosh,这种感觉太可怕了,最可怕的是我之前对此都一无所知(我承认我很火星)…… 虽然了解情况后我马上采取措施,pause并remove掉了所有的history,但是我有理由相信google早就另有备份,这种感觉就和被别人8g隐私一样会让人觉得浑身不爽…… 当然,是否保持和收集history也是个人选择问题,或许你会认为翻阅多年前搜索过的关键字就如同翻阅旧照片一样会让人沉浸到幸福的回忆之中(事实上我刚刚看到gmail那条search history的一刹那也是那个感觉:-)),那么就继续让google keep吧,放心,没有人会阻止你的~ (注:如果你访问上面的google history,却看不到你的任何search history,那么恭喜你,至少你还没有对google的任何产品产生依赖,因为search history的保持需要你的google account保持登陆状态(否则google怎么知道是你呢?),但是像我这种老是gmail不sign out直接关闭窗口,然后google reader开上一整天的,算是已经“进去”了……) 2. 既上周prison break大结局后,24也在本周结束了season 7,对于24这儿不剧透太多,不过就像我之前说的,tony almeda究竟是好是坏我是搞不明白了,22集的时候我没搞明白是因为编剧不让我搞明白,但现在season 7的24集都放完了我还没搞明白就不知道是谁的问题了,呵呵…… 或许编剧就是要这个效果,who knows…… ;同样,prison break的唯美大完结我也没什么好说的,没看过的我这儿不剧透,看过的我这儿也不火星,呵呵,由于pb本身对于美剧推广的特殊性,其完结引发了各大bbs论坛的美剧历史大讨论,万年潜水的也都纷纷冒泡,再不冒就真的没机会了,呵呵,last chance~ 3. 不知道为啥,以前姚明的形象总是会让我联想到灌篮高手里面的大猩猩赤木刚宪,高大而又勤奋,这回和湖人季后赛受伤的场景更是让我直接对了号入了座,呵呵…… 同样是极其关键的比赛,同样是好不容易抓来的机会,结果是同样的脚受伤,同样的受伤下场又强忍着继续上场…… 当然了,nba毕竟不是励志动画,不是怎样经典就会怎样发展,呵呵,我知道这一系列赛争议相当大,喜欢打球或是看球的争论起来那可都是血性十足,呵呵,我之前也一直保留着自己的看法,但是后来一想大家何必呢,作为观众多看几场球本身对我们一点损失都没有,还计较这么多干嘛呢,life还要goes on, 不过个人认为 “where amazing happens” 还是改回 “i love this game” 好了…… 4. 广告:Samson的“无废话update”出山寨版了,大家支持哦~哈哈哈哈
SafeBoot双系统引导
[Preface] 印象中,security总与convenience矛盾,虽然有时候inconvenience并不总是那么的显而易见。 [Background] 公司的电脑总是会冷不丁的给你surprise,真所谓“重启就会有奇迹”,某次系统reboot后,我惊奇的发现系统在介于BIOS和Boot Loader之间多了个步骤(user experience蛮好,至少有个进度条),然后就是我的linux dual boot不灵了,kernel都没有解压完就卡在那不动了,windows倒是继续能很happy的boot,一刹那顿时觉得好神奇…… 系统真正起来后才发现windows多了个软件叫SafeBoot(被McAfee收购后,现在学名McAfee Endpoint Encryption) 别的功能不清楚,一个最醒目的feature是disk encryption,经我测试貌似不是full disk的encryption,只是windows所在的那几个分区被加密了,开机的时候那个进度条应该是在解密(把MBR都改了,好强悍,更强悍的是改MBR连告都不告诉一下,算你狠),加了密然后boot时实时解密,所以windows还能很perfect的boot,linux所在的分区并未被加密,按理来说boot应该不会有问题,但是不知道为啥就是卡在那不动,想来必是boot时的实时解密多此一举了,导致没有加密的硬盘反而无法正确读取,真是you don’t know what you know…… [Solution 1: Uninstall] 很多人可能和我一样,第一反应是卸载,眼不见为净,但是这个想法在这儿貌似有点naive,就像fox river一样,有些东西真的是进去简单出来难,搜索到的卸载方法并没有让我实现我的家庭梦想,sbsetup -uninstall 后我得到了如下的错误提示:“Boot protection is still enabled on this machine. The client can not be uninstalled while boot protection is enabled.” 然后搞笑的是disable这个boot protection的option在我client端是没有的(怀疑server端应该是有的,当然我没有授权,呵呵),由于这个boot protection是被写到了MBR,安全模式引导也绕不过,所以我马上想到了…… [Solution 2: Overwrite MBR, then uninstall] 当时的想法是把MBR给覆盖了,然后boot protection估计就没了,然后再uninstall估计就可以过了…… 但是这里面还有个鸡生蛋,蛋生鸡的问题,MBR覆盖掉,没有boot protection(估计就是解密)后,加了密的disk就没办法读了,windows系统都起不来了,你还怎么uninstall…… 好吧,看来加了密的硬盘是个问题…… [Solution 3: Decryption] 到这一步,其实脑子里面还一直想着uninstall,可不是吗,decryption后然后再overwrite mbr,硬盘可以继续保持可读,uninstall就可以实现了,但是天知道解密本身对我来说又有一个不可能完成的任务…… 参照这篇文章,正常解密需要server端配合或者是要有safeboot的专用软盘…… 巧妇难为无米之炊,何况还不是很巧…… [Solution 4: Overwrite MBR, starting SafeBoot with Grub] 终于放弃卸载的想法了,换种思考的方式,linux系统boot不能有safeboot,windows又一定需要safeboot,能不能修改MBR和Grub,同时满足以上两个条件呢,答案是肯定的,前人已经给出了解决方案(Starting SafeBoot with Grub)。 其主要思想就是备份现在被safeboot改过的MBR,然后用grub重新覆盖MBR,这样linux的boot就没有safeboot骚扰了,然后为了让windows能够继续以safeboot进行引导,修改grub的menu.lst文件,在chainloader里加上刚才备份过的safeboot的MBR。 Looks good, isn’t it? 但是最后并没用这个方法,因为据说safeboot每次和server同步后还会再把你的MBR改回去……何况老是整MBR也不是什么安全的事情…… [Solution 5: Walk around] 这也是我最后采用的方法,主要原因是因为其对本机的影响最小,基本上不用做任何修改,缺点是你要另外搞个liveusb,由于我之前本身就做好一个,所以工作量很小,呵呵。 下面具体解释一下,看完不要打我:),启动windows什么也不用做,启动linux时插上usb,设置BIOS从usb引导,这样就绕过了本机的safeboot,也绕过了本机的grub,然后设置liveusb上的grub去引导本机的linux,that’s it。一旦grub的bootloader完成,usb就可以拔了,因为控制权又交回主机硬盘上的linux了。 [Screenshot] 最后截图一张:
Good to know
以下文字来自某个career talk,摘录在此供大家细细品位,句式简洁,但不乏深意,据说层次水平依次递增,当然一出生就level 4的不在我们的讨论之列,you know what i mean, right? :)
level 1: you know what you know
level 2: you don’t know what you don’t know
level 3: you know what you don’t know
level 4: you don’t know what you know
Bugzilla on ArchLinux
Need a web server and a database engine to run bugzilla, here I choose apache and mysql. Install apache: $ pacman -S apache
Refer this wiki page for detailed information about apache installation and configuration. Install mysql: $ pacman -S mysql
The above LAMP wiki page also mentions something about mysql installation and configuration, for standalone installation, please refer this wiki page. Then install bugzilla using: $ pacman -S bugzilla
It requires a bunch of perl modules to be installed too, but some required modules still need to be installed manually (a little weird, why not include all required perl modules into dependencies?) Make a module check first: $ cd /srv/http/bugzilla $ ./checksetup.pl --check-modules
Check the screen output, you will learn which module is required and which is optional, for missing modules, it will also show you the shell command to install them. Install all required and optional modules using: $ perl install-module.pl -all
To make module GD and PerlMagick works, make sure you have gd and imagemagick installed: $ pacman -S gd imagemagick
Make the module check again, make sure all the required and optional modules are found: $ ./checksetup.pl --check-modules
(Note: For perl DBD modules, only DBD-mysql is needed in this case, it’s ok if it complains about not found DBD-pg or DBD-Oracle modules) Next, some more configuration to let bugzilla know how to connect mysql and create initial tables in it. Run checksetup.pl again, this time without the –check-modules switch: $ ./checksetup.pl
A file called “localconfig” is generated if everything is ok. Then edit it, modify some parameters there: $webservergroup = 'http'; $db_driver = 'mysql'; $db_name = 'bugs'; $db_user = 'bugs'; $db_pass = 'YOUR_PASSWORD_HERE';
Create the $db_user with password $db_pass in mysql: $ mysql -u root -p mysql> GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES, CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO bugs@localhost IDENTIFIED BY 'YOUR_PASSWORD_HERE';
mysql> FLUSH PRIVILEGES; Run checksetup.pl again to create tables and an administrator user: $ ./checksetup.pl
Tweak mysql to make bugzilla more scalable and usable, refer bugzilla official doc for details: Allow large attachments and many comments: [mysqld] # Allow packets up to 4MB max_allowed_packet=4M
Allow small words in full-text indexes: [mysqld] # Allow small words in full-text indexes ft_min_word_len=2
Permit attachments table to grow beyond 4GB: mysql> use bugs; mysql> ALTER TABLE attachments AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;
Finally, configure apache to run bugzilla using mod_cgi (also can be configured using mod_perl, refer this for details) Add following lines to /etc/httpd/conf/httpd.conf: <Directory /srv/http/bugzilla> AddHandler cgi-script .cgi Options +Indexes +ExecCGI DirectoryIndex index.cgi AllowOverride Limit </Directory>
That’s it, restart mysql and apache: $ /etc/rc.d/mysqld restart $ /etc/rc.d/httpd restart
Access http://server-domain-or-ip/bugzilla/ using your favorite browser to see your work result:) Attach some screen shots of mine below: Home page: Admin page:
最佳損友
很多年前听到这个词时还不知道是首歌 一晃不知道过了多少年 如今回味起来,总能不自觉的把记忆拉回从前…… [Music] 最佳損友 朋友 我當你一秒朋友 朋友 我當你一世朋友 奇怪 過去再不堪回首 懷緬 時時其實還有 朋友 你試過將我營救 朋友 你試過把我批鬥 無法 再與你交心聯手 畢竟 難得 有過最佳損友 從前共你 促膝把酒 傾通宵都不夠 我有痛快過 你有沒有 很多東西今生只可給你 保守至到永久 別人如何明白透 實實在在 踏入過我宇宙 即使相處到 有個裂口 命運決定了 以後再沒法聚頭 但說過去 卻那樣厚 問我有沒有 確實也沒有 一直躲避的藉口 非甚麼大仇 為何舊知己 在最後 變不到老友 不知你是我敵友 已沒法望透 被推著走 跟著生活流 來年陌生的 是昨日最親的某某 生死之交當天不知罕有 到你變節了 至覺未夠 多想一天 彼此都不追究 相邀再次喝酒 待 葡萄成熟透 但是命運入面 每個邂逅 一起走到了 某個路口 是敵與是友 各自也沒有自由 位置變了 各有隊友 … … 早知解散後 各自有 際遇作導遊 奇就奇在 接受了 各自有路走 卻沒人像你 讓我 眼淚背著流 嚴重似情侶 講分手 有沒有 確實也沒有 一直躲避的藉口 非甚麼大仇 為何舊知己 在最後 變不到老友 不知你又有沒有 掛念這舊友 或者自己 早就想通透 來年陌生的 是昨日 最親的某某 總好於 那日我 沒有 沒有 遇過 某某
Update-8
1. 上次update说到得了湿疹,医生责令我停喝咖啡……后不到两天,也就是我成功控制体内咖啡因冲动后的第三天,上帝让我看到了这篇文章…… 于是思想开始斗争,在经过与湿疹病菌和咖啡因拼死搏斗的一个下午加晚上后,我艰难的做出了和当年蒋委员长惊人相似的决定,“攘外必先安内”…… ok,cool,理由充分,证据确凿,明天去和咖啡因统一战线去…… 2. 介绍给大家一个非常有趣且有用的东东,iRobot,有米的同学或是懒得不行了的同学都可以考虑一下,呵呵,按照stone同学的介绍,这种小机器人在欧美最近非常火,买一个在家里面放着就行了,然后就不用管了,它会自己扫地、拖地什么的,然后最可爱的是没电了它还会自己跑到插座旁插上电源自己充电…… so cute~ 这个创意我喜欢:) 3. 最近天气陡然变热,大伙的汗腺们干活也卖力起来,这不,我昨晚被子盖的太多早上起来一身是汗,然后早上跑到公司刷一下blog,又是满头大汗,下午稍微有点闲,计划着打一小会乒乓,但一想待会又是全身汗臭的于是马上作罢。现在终于能理解大家的苦衷了啊,理解万岁啊:),大家最近流汗多的要多注意补充盐分,多喝盐水,另外需常保持室内通风、空气顺畅,做到文明流汗,健康流汗,呵呵~
Cool Sentences
Forget other’s faults by remembering your own. --公司厕所(简称公厕)里看到的,谨以此纪念我已逝去的人生中所犯过的无数错误…… 脸皮要厚…… --stone送我的……至理名言啊,现在越想越觉得tmd有道理 汗…… --这俨然已成为某人的口头禅,我等早已耳濡目染,其丰富富有张力的表现力和渲染力以及背后深重的文化底蕴,令人叹为观止,所以一并列此供大家膜拜,谢谢,呵呵 最近就想到这些,以后想到再加好了,欢迎大家分享补充~
Update-7
OK,继续咱们的update系列,如果这也能算是系列的话…… 1. 最近两个星期忙的有点过头,得湿疹了,不清楚湿疹是何物的同学,可以参考这里的介绍,link点过去那边那张图有点恐怖,搞的我都很不好意思,希望大家不要以为我也这么恐怖,谢谢,虽然我是长在了脖子上:)… 清明节还特地跑去看了医生,医生说我是不是经常喝咖啡,我说是,我很喜欢的;是不是经常睡的很晚,我说我早上也起的晚的;是不是经常吃辣的,我说我也不想的。医生大笔一挥,一蹴而就一张我一个字也不认识的药方叫我去取药吧,我拿着纸屁颠屁颠走出门口的一刹那,真的很想转身问一句,医生,你是不是算命的…… 2. 最近IBM和Sun的曝光率很高啊,不确定Sun是不是想借此刺激下自己已经贬的不行的股票,但很确定一点就是人家IBM肯定是老狐狸,背后律师也一把一把的,要玩手段,我看Sun蛮悬。就情感上而言,我想很多developer应该也一样,是并不希望Sun就此消亡的,Sun犹如以前与MS对抗数载的Borland一样值得我们尊敬,但就如它的前辈们犯的错误一样,在这个市场决定技术的年代,没有市场光有技术,或者只管技术先进却俨然不管用户的策略被再一次证明是值得商榷的。真心希望Sun这回大难不死的话,能够有后福。 3. 一个打杂小项目中用到PostgreSQL,却在数据库表字段大小写问题上钻起了牛角尖,我不知道是不是Postgre真的不喜欢大写的数据库表和字段,如果确实是这样的话,我改……虽然心里面很不情愿,多大的工作量啊,一个一个全部改成小写……最要命的是我之前还真的全都是小写的,被迫全部改成了大写,这回再改回来,拜托……我禁不起这样折腾,我还想多活几年…… 一个好的side effect就是,我倒是现在对真正的sql standard里面规定的数据库表、字段的大小写很有兴趣,Postgre自己的文档写它自己某部分也不遵守standard,难道真是大写的是标准?要是真是这样的话倒有argue point了,我倒有希望了,呵呵,麻烦各位知道的话指点一下,在此谢过~ 4. 前不久回南京拿回了本来就是属于我的东西,拿的过程很顺畅,况且有同学帮忙,倒是来回的过程真折腾,现在买票真是痛苦,最近上海动车买票都可以自动售票了,一排机器的真壮观,没方便我们老百姓多少,倒方便了黄牛。所以我最后痛定思痛,这回清明回家,咱坐汽车…… 惹不起咱还是躲得起的…… 最后用一篇对仗工整,平仄协调,韵律和谐的“沁园春·买票”来个总结:),如果能营造一种身临其境的氛围那就更perfect了,呵呵~ 5. 另外就是本周的lilystudio reunion活动,sorry没有参于大家在gmail上的讨论,主要是还不能确定到时能不能去,我也不想扫兴,呵呵,anyway,如果最后一切安好,没有琐事的话,我肯定会到,最后玩啥就是另外一回事了,这个我不care了,呵呵~
推荐一个专业山寨手机电子商务网站
推荐一个朋友新开业的手机业务: http://www.my6u.com/ 网站做的很专业,质量人品都可以保证,如果大伙以后有兴趣搞一台山寨玩玩的话可以联系我或是直接猛击上面的网址:) Trust me, you won’t be disappointed~ PS: I’m serious.