Saturday, December 17, 2011

那長髮飄飄的年代 - 舊作集

整理舊盤,終於找回當年混跡世外桃源、我愛南開、水木清華 BBS 詩歌版時碼下的諸多文字。

04/05 年間,待業在家,百無聊賴時便把那原是 .doc 的 3.5 本集子在 Linux 下手工排成了 XHTML 1.0 Strict 頁面,放到朋友的服務器上。後因空間不在,筆記本丢失,以爲再也回不來了,結果竟在這塊舊硬盤裏有份幸運的存档。於是趕緊拷貝,傳到了 Amazon S3:


那是長髮飛揚、荷爾蒙過剩的年代;那是逃課掛科得讓幼稚卻勇敢的創造力能無邊瘋長的時光。不全是“為賦新诗强说愁”吧,確有揮之不去的隱言。早些的寫於鬱鬱不志的物理系時期,多些瘋狂,多些淩亂;晚些的寫於轉入軟件學院後的泰達,多些清冷,多些寧靜。後來算是有了自己的一點心得與風格,也大體知道了文字應如何拿捏,不過正常而繁忙的就業也開始了,六年來便鮮有筆墨。

集子三“蚌”有許多自己喜歡的句子,摘抄二三篇以回想:

--


积木

记忆是一场游戏
一种向上向上堆积的消瘦

筛选甄别 添加抽离
让它千疮百孔
让它精美极致
我们时常悲痛难遏
我们偏偏乐此不疲

只是.

有一天
粗心的手和命定的重力
会让我们在刹那的错愕之后
哭成一个孩子

03.08.24

--


这个洁白而干净的世界

在墙上画一朵小雏菊
就能嗅见太阳纸张一样的温暖

在墙上画一扇窗户
就能瞧见顾城执意让我们习惯的光明

让这传说的光明推着我扁扁的影子
就能想见夜的来临
想见凡高哥哥燃着暗色火焰的星空
和我梦里横亘原野, 烁烁转动的天河

在地板上画个矩形
就是我能安然躺下的床铺

在床上照自己模样描个娃娃
就是我一生一世的伙伴

画它圆圆的脸蛋五根竖起的头发
画它简单的手脚永远微笑的嘴巴

在它身旁躺下 我的娃娃
陪我一起睡去 我的娃娃
只有这个洁白而干净的世界
可以安置我们蜷曲的瘦弱与命定的丑陋

03.08.27.凌晨

--


你还要在这里徘徊多久?
……
……小小年纪, 为什么就开始捡自己的脚印?
……
……
求求你! 离开!……

……我要回去

原来

雨, 听话, 下吧, 急缓随意
眉头低垂的时候
需要一种零落的声音
嘈嘈切切 惊动我僵硬多年的脊梁

潮冷升起
四季生死轮回的印记
充盈我们血肉相连的骨架
十二月, 到一月, 到三月...
篆刻千肢百骸 挥之不去

一块块砖, 一片片瓦, 一捧捧湿滑湿滑的泥土
这里曾是我的心, 我承载人世来去的容器
一任脚印凄凄浅浅层层叠叠
勾勒我纵横交错的脉络, 我的纹理我的发肤

原来那个小孩一直靠在窗前
原来那个小孩一直站在门口
原来这座老屋就扣在我的胸膛
用凝固的时空困住一条弱小生命
年过一年
年过一年...

请雨敛住 换作月光
让夜色如水
让孩子背靠黄土安心躺下
让苦楝开出一树紫色小花
成为我清风里缓缓飘散的魂灵

03.03.07/15

Friday, November 25, 2011

我夢見
你從記憶深處 打點行李
就剩 行囊背影 面容不清

這蒼老的泥磚瓦房
便開始無休無止地寧靜
蛛絲微塵 細細密密

菜園荒蕪
苦楝樹花開一夏
終,枝葉凋零

Sunday, November 20, 2011

黃瓜切片: HTTP Live Streaming 原理簡介

一直覺得網絡上的流媒體播放技術是個神秘有趣的東西, 很早就聽過接觸過 mms/rtsp 這類流媒體 protocols, 印象中需要專門的服務器, 專門的客戶端 (包括瀏覽器中的 flash 插件形式).最近因項目機會, 仔細研究了一番 Apple 推出的 HTTP Live Streaming, 總算對這方面的知識有了清晰的認知.

HTTP Live Streaming 是個很有趣的實現, 它本質上就是把一段視頻 "切片" (經蘋果提供的 mediafilesegmenter), 然後提供給瀏覽器一個包含這些視頻 "切片" 信息的 "索引" - 一份 .m3u8 的 playlist, 瀏覽器據此 "一片一片" 地下載這些片段並播放, 於是便有了 "流" 的效果.

打個比方, 把一段視頻想象成一根黃瓜, 它被切成了黃瓜片放在服務器端, 同時有份清單寫著這黃瓜總長度幾許, 被切成幾片, 每片的 "名字" 是什麼. 拿到這清單的瀏覽器, 便可按圖索驥, 一片一片地拿回來喂給人 "吃".

如果這黃瓜是不斷成長的 - 即, 服務器那端給的不是靜態的一段視頻, 而是從攝像機/衛星電視信號之類過來的 "活" 的 (live) 視頻流 - 這時, 同樣的, 只要送進 "切片機" (mediastreamsegmenter) 上的部分, 都會被切片, 更新到播放列表. 瀏覽器根據更新了的播放列表, 繼續取 "黃瓜片", 直到播放列表裡收到 "黃瓜已分發完畢".

HTTP Live Streaming 的創新之處在於:
  1. 無需專門的 "流媒體服務器", 可與現有的 CDN 無縫結合
  2. 走 HTTP 協議, 無需特殊端口, 無需為穿越 NAT 煩惱
#1: 由於該技術本質上只是把視頻切分成片段 + 播放列表, 因此, 結合 Amazon S3/CloudFront 這樣的技術, 你可以很簡單地把切片後的視頻都傳到 S3 的 bucket 上, 然後在你的頁面裡通過 <video> tag 引用相應的 .m3u8 播放列表, 這就完成你的視頻流媒體服務了! 更進一步, 就是把 S3 bucket 發布到 CloudFront 上, 由 CloudFront 幫你把這視頻 "推送" 到離全球各處用戶最近的 Amazon 的服務器上, 給用戶最快的訪問體驗.

#2: 視頻播放時, 瀏覽器完全通過 HTTP 從服務器下載視頻片段. 這讓通常只開放 80 端口的企業網內部分發視頻內容不再需要面對防火牆/NAT 穿越之類的痛苦.

HTTP Live Streaming 雖已提交 IETF, 但目前尚未成為業界標准, 各家也自懷鬼胎. Apple 自家的 iOS 以及 OSX 是完美支持的, 由於 iOS 設備的火爆, 像 Adobe/微軟, 都在服務器上加入了 HTTP Live Streaming 的支持 (不過 flash 插件本身不支持, 反正 iOS 上也跑不了 flash, 哈).

經測試, html5 <video> 嵌 .m3u8 HTTP Live Streaming, 只有在 Apple 的平台上能工作, 即 iPhone/iPad/iPod Touch/Mac 上的 Safari 能播放. 換到 Chrome/Firefox/IE, 則徹底瞎火.

因此, 如果你的視頻項目是針對蘋果用戶, HTTP Live Streaming 就是你需要的. 但要支持其他平台/瀏覽器, 你還需要尋找別的方案.

現正研究 YouTube 的 html5 是如何支持所有瀏覽器以 <video> 進行流播放的, 若有進展再更新.

____

相關閱讀:
  1. 維基百科: http://en.wikipedia.org/wiki/HTTP_Live_Streaming
  2. 歷史背景: http://www.appleinsider.com/articles/09/07/08/apple_launches_http_live_streaming_standard_in_iphone_3_0.html
  3. 官方文檔: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/Introduction/Introduction.html
  4. 工具下載 (需開發者賬號): https://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20993

Thursday, November 17, 2011

Decimal fun in Python 2.6 & 2.7

In Python 2.6:

$ python2.6
Python 2.6.7 (r267:88850, Jul 10 2011, 09:55:27)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = float(1.0)
>>> import decimal
>>> decimal.Decimal(f)
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.6/decimal.py", line 649, in __new__
"First convert the float to a string")
TypeError: Cannot convert float to Decimal. First convert the float to a string
>>>

Upgraded to Python 2.7:

$ python2.7
Python 2.7.2+ (default, Aug 16 2011, 07:03:08)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = float(1.0)
>>> import decimal
>>> decimal.Decimal(f)
Decimal('1')
>>>

Saturday, November 05, 2011

推特集 (2011/10)

  1. P 民的小命在兲朝本就不值幾錢,全世界文明國家流氓友邦都知道;你在國外死幾個,人都明瞭,你的叫囂無非外強中乾、秀外諱中,私底下一番遞好處、買面子,便又朝內朝外,一片和諧了。
  2. CEO: 首席恶人官; CTO: 首席喝茶官; CFO: 首席发钱官.
  3. Engineers - day to day life is boring, let's go creating!
  4. Regex: you need, you learn, you use, you forget (repeat). #Developer
  5. 囧: "服務器一年才宕三兩次, 所以我不該付你們運維 7x24 的錢."
  6. Steve Jobs: Think Different; P.R.China: Think Copy. So PRC is copying different #shanzhai Jobs.
  7. 此生此夜不曾好, 明月明年米國看...
  8. 一搞民主就會亂? 既得利益者們當然害怕自己會像疙瘩菲/穆巴拉克那樣民主化後被 "亂民" 審判, 所以才努力地讓你和他們同仇敵愾地這般想. 話說, 你是他們的一份子不?
  9. 工作經驗應是: 原來要寫三千字工作報告, 現在要人寫三千字工作報告 - 多一字兒. “@Fatal1tyV: 转:什么叫做工作经验,就是原来只会写三百字的工作报告现在能写出个三千字来。。。”
  10. I think "democracy" is bad for shaping up products, it gives u a false sense of safety & excuses like "see, it's group decision" when fail. So u don't let others draw on ur paintings, edit ur articles, do u? Only thru ur OWN crappy failures, u might craft a masterpiece, right? Then why we are usually so eager to get the first product "a big success" via "democracy"/"group decision"?
  11. 美國人民為啥不上訪? 因為人家沒有 "上" 好不好! 拿著選票的都是大爺姑奶奶, 不好好干活一票子砸過去投你丫下台.
  12. Design needs dictatorship, it's about expressing individual's idea before the general people can grow the awareness & taste to catch up.
  13. 微博的 fo 和 unfo 讓你體會到了一人一票/全民公投的快樂了不是?
  14. 愛國主義是怎麼來的? 你愛廣東嗎? 你愛湖南嗎? 你愛江蘇浙江上海北京嗎? 他們 (此處刪去五百字) 的時候, 你還愛嗎? 連你呆著的村縣市省都不愛, 你愛毛個國?
  15. 看 Kissenger: On China 小感: 現代化世界在與我朝交流過程中, 基本就是雞同鴨講, 講不通了就打, 打完了再講, 鼻青臉腫的還充胖子掛城牆上威武.
  16. 我們時常因讀到名人有某些和自己一樣的缺點而暗自竊喜,仿佛自己離他們的偉大又“免費”近了一步;殊不知,他們絕非因這些缺點而成就的,不過是成就後缺點成了他人行書的調料,讓豬頭們咀嚼過、美好完、學習後,離失敗的杯具又近了一步。
  17. 一幫子謊話張嘴就來的,一如既往地講:守信光荣、失信可耻。
  18. $ svn ci …; sleep(); - A ticket a night, fall asleep tight. #code
  19. 老喬已乘黃鶴去, 此地空餘饑和蠢! “@jasonwang178: Stay Hungry, Stay Foolish”
  20. 看 The Social Network 心得: 宅男得到辣妹的唯一出路就是 - 創業, 寫出改變世界的軟件!
  21. 這牆頭草, 有種換三個字. “@mranti: RT @NvShao: CCTV今早痛批卡扎菲:一,独断专制。二,垄断国家经济命脉,石油资源分配不均。三,经济改革失败,贫富差距大。四,非法打压民主人士。”
  22. Don't blame ppl for not working hard, playing games… it's you - not being able to get them excited/motivated by your dream. #attitude
  23. Why love coding? Coz it puts you in "God Mode".
  24. 國外人民可以訪問人人網、新浪微博,兲朝人民不能訪問臉書、推特,這直接導致了國外反華勢力可以上偶們家搗亂、偶們愛鍋粉青卻無法去他們家報復的局面。
  25. 人說:評價某偉人,需"三七分"-- 試問:那年代慘死的人們可否七分活著?那年代破壞的文化今有三成存餘?
  26. 良心,都在國界外流亡著、精神病院裡鎖著、衙門邊上驅趕著、小村莊裡挨打著、媒體上引導著、崴腳部發言著、連接重置著、史書上焚燒著、黃土堆裡埋葬著……你還期待這社會殘余些什麼道德的底線?
  27. 九九年,國慶,天津站,見路人圍觀,一人嘴角溢血倒地,眼緊閉,似無意識;問眾可有報警,皆避而不語;遂撥 120,有人誇,問:哪個學校的?答:南開。待警車近,一長者側臉低語:速離!問:何故?長者曰:"他們要知道是你報的,就抓你付醫療費,不讓你跑啦!"自此識冷暖,擇路遁逃。
  28. 強烈要求海淀區人大代表幫我奪回自行車道權!滿街亂佔亂停的汽車,我納稅,我要自行車道,我要安全騎車權!
  29. First, you must be able to sense even the most subtle beauties in your surroundings, then reuse/recreate them neatly in your work. #art
  30. Don't be stubborn to be "dignified/unique", you can only embrace/enjoy world's diversity for being open-minded. #attitude
  31. If you keep collecting dust from the past, you will look old very fast.
  32. 看盡帝都長空,心中自然無碼。
  33. MI6 对付恐怖份子网站:黑进去,把炸弹教程换成蛋糕秘笈;兲朝对付推特/非死不可:连接已重置。威武涅~
  34. Things around grow complex as we grow, that's why we need to grow the capability of KISS.
  35. 經驗帶來的能力之一: 概括, 刪繁就簡.
  36. 微博已把本是一盘散沙的许多耳朵和嘴巴, 神奇地集结到各个富有影响力的名人影星/意见领袖周遭, 它们时刻准备着连听带说, 闪传声音. 现在等的, 是一个时机, 他们能把积压多年的汹涌民意, 那简单的一两句话, 随良知而出 - 百渠千壑已成, 只待开闸泄洪, 摧枯拉朽.
  37. Fight thru all the ugly bits so to achieve the ultimate elegance. #programming
  38. 難得今日臨窗遠眺, 平時堪比 rm 薄碼片的帝都天空下, 有 1080p 的景觀, 哪怕此刻烏雲壓頂.
  39. 老大哥用了七十年啊,還得再熬熬。
  40. #Siri makes all other "smart phones" look dumb. #iphone4s
  41. 活在帝都的一大滿足: 至少呼吸的空氣和皇親國戚是差不太多的, 心裡特平衡.
  42. You don't have to be able to invent everything, but just be able to fit things together like never before.
  43. Steve Jobs died, you are still who you are.
  44. 你們, 害怕一首歌, 一句話, 一種聲音, 一點思考, 一篇文章, 一個人. 你們, 締造了怎樣一個, 盛世強國?
  45. 時間到了,縱有再多的不捨,也得斷然放下,不是嗎?
  46. Are dreams brain's quantum entanglement state with other "me"s in parallel universes?? #idea #scifi

Sunday, October 23, 2011

推特集 (2011/09)

  1. 活在兲朝是一場豪賭, 賭自己能躲過幾次被 "傷亡人數" 統計.
  2. Spending money is painfully... happy -,-
  3. Communism has been alienating people, destroying culture, killing lives, preventing modernization... When will it come to an end?
  4. 把被子曬滿陽光的味道~
  5. 环㞗屎泡 (pao1).
  6. "台灣自古以來就是中國不可分割的一部分"--那為何台灣人民可以看的,大陸人民不可以?台灣人民可以聽的,大陸人民不可以?台灣人民可以說的,大陸人民不可以?台灣人民可以做的,大陸人民不可以?誰在分割我們?
  7. How could you possibility "fix/improve/refactor/rebuild" something without clearly understanding the (existing) problems first? #methodology
  8. When history is told the short way, it can be fast pace, fun & entertaining; but in its day to day formation, it's slow, sweaty & boring.
  9. We will all end up with a name either worth mentioning or not.
  10. 良民無說話權, 疑犯無沉默權, 啊, 兲朝.
  11. 我們賦予你權力,不是讓你因此比普通的我們特別,而是讓你因此比我們特別地普通。
  12. 放不下, 離不開, 長不大, 得不到, 變不好.
  13. 能不能認真聽取/理解狀況後再決定球是不是自己的, 該不該踢走?
  14. You've got to express yourself, let your energy explode one way or another. #art #life
  15. 愛情有風險, 婚姻需謹慎.
  16. Gain your reputation & influence, so one day you can be used as role to speak out public opinions, or push things forward.
  17. 生命就是拿來燒的, 不燒也得燒, 一天短一截.
  18. @wxiluo take ownership, work for yourself, make every job a solid milestone in your lifelong career path ;)
  19. 不怕不要脸的,只怕不要命的--更怕有命的以手中权力替其他要命的做下不要命的选择。
  20. 幸好当年韩国没被朝鲜统一,幸好当年香港台湾没被兲朝解放,爱国小青年们今天才能在 CCAV 的死人面孔下、有韩流港剧台星可追!
  21. Something is gone, something needs to be filled up. The night is too quiet to get rid of all these crowded noises in an empty mind.
  22. Just find out it's quite entertaining to keep dragging a direction on the map's satellite view. How big the world is, yet how small...
  23. 放不下过去,得不到未来。

推特集 (2011/08)

  1. AirDrop is such a handy replacement for $ python -m SimpleHTTPServer... #lion #osx
  2. 一直好奇 #5mao 们在有生之年更愿意为革命奔赴朝鲜,还是攒够钱逃亡美帝?
  3. 回家最開心就是卸下偽裝, 換上一條大褲衩!
  4. 你愛得天花亂墜, 抑或鉅細靡遺?
  5. I'm willing to do any kind of "dirty jobs", only for excellent ppl, excellent team. Same in life.
  6. Easy money is easy for others too, so it might not be that easy at all.
  7. 就像筛简历看到 @qq.com RT @Fatal1tyV: +2 RT @oppih28: +1 RT @levin108: 每次搜技术文章,看到百度空间的就感觉靠不住,这是我的个人偏见吧。。。
  8. 在推上说金家王朝坏话不知会否被跨国追捕??
  9. 今天的韩国好不好?日本战败后美国占领的;今天的朝鲜好不好?日本战败后苏联占领的。谁是兲朝的老朋友?当然是朝鲜小弟啦,物以类聚嘛。
  10. 當所有英雄都所見略同、心有靈犀、能說出彼此“心裡想說的話”時,就成了傳說中的:英雄團隊。
  11. 耄说:"敌人反对的,我们坚决拥护"。所以,国际反卡扎菲,兲朝拥护;国际反金家王朝,兲朝拥护。思路一以贯之。
  12. 看電視的兩大快樂:1、跳台──一天到晚精神集中,這會可以天馬行空;2、被主宰──放什麼就看什麼,愛看不看;朝九晚五主宰世界,這會可以放松挨宰。 #生活 #娛樂
  13. 人有所图,我图个甚?也就工作时剩点忘情的快乐。
  14. 別氣餒,不放棄──我們站起來、倒下去,他們會看到身後更多醒過來、挺立著、沉靜堅毅的力量。
  15. 不理解/認可“普世價值”的國人,永遠無法理解港人、老外為何那麼愛管兲朝的“閒事”。
  16. The future might be unclear, but we can take concrete steps, enjoy the fun of exploring, build the confidence & courage to face "failures".
  17. “愉悅”亦有“簡單”及“高分 (high resolution)”之別:嘗了份香甜的水果,是簡單直接的 visceral 層面的愉悅;欣賞了場雅致的音樂,是精細復雜的思想修養層面的愉悅。#藝術
  18. 尚无子,已成父。
  19. 政府政府,镇住刁民,努力贪腐。
  20. 政權不必推翻, 趕回籠子裡就行.
  21. 语文学好了就是好! 想表达点什么, 满脑子候选词句, 总有出彩组合; 仿佛编程高手, 总能写出最佳代码, 最优算法 ;-) #语文 #编程
  22. 兲朝每年数万起 (?) 群体性事件, 如果把这些都转化成民众合法的游行, 政府改进的机会 - 一年数万次的 "训练" 和优化, 民众会成熟得多快? 政府会演变得多好!
  23. Enjoy every ticking second of life, coz it's gone when it's gone...
  24. @wxiluo 给用户用的东西怎能不花大量心思在界面和交互上!恶俗点:谁会花钱买"关了灯都一样"的服务?
  25. Depends on complexity & parties involved, things usually won't change immediately w/ initial pushes. Keep pushing patiently till success.
  26. Go for your dream, just do it, before you are big enough/capable and too hesitate to make "scalable" mistakes. #attitude
  27. Use math to organize design elements, it forms patterns, assists/enhances/speeds up brain recognition/understanding. #design
  28. All R requirements: from epics 2 debugging, from sales 2 deployment... they R one single business idea reflected at different resolution.
  29. 看发行量超过一亿本的海贼王长大的日本人,不会太坏;看 CCAV 粗制滥造的 3D 雷锋长大的中国人,不会太好。
  30. 各部门要努力抓好有钱一起负责收,出事一起负责闪的方针政策。
  31. 有人觉得,今天我贪污腐败坑蒙拐骗偷工减料中饱私囊,别人安不安全,过几年出不出事,都没我毛事。殊不知,在这机器里,你也只是有共同想法的另外一些别人眼中的别人,当我们、我们的孩子一起路过大楼坐进高铁开上桥梁,哪怕你曾贵为九五之尊,这一刻,我们都是无比平等的,别人。
  32. "老湿,咱射秽竹椅还有希望吗?" "废话!" "那为哈子童鞋们都争先恐后滴去美帝涅?" "叭咖!--因为他们都争先恐后地要完成肩负的沥屎屎命:演变美帝,射秽竹椅!"
  33. 简历 screening: 邮箱是 gmail.com - 加分; 其他.com - 减分. 道理? 你懂的. #招聘
  34. 淫民带婊, 裆国鹰豺.
  35. Code, run unit tests, verify 100% coverage, check in, sleep tight. #dev
  36. Believe in your new members, no matter at what level they currently are, so to encourage & guide their potentials to explode. #leadership
  37. 你们今天的愚昧、冷酷、残暴,将成为历史的丑剧,在我们孩子的舞台上,被一遍遍嘲弄。
  38. People have mouths, speak opinions. As long as your idea has no critical flaws to your knowledge, stick to it, coz you are the one doing it.

Tuesday, October 18, 2011

Parallels Desktop 7 "曲线转正" - 2011/10/31 日前有效

Update: 2013/5/21 ¥119 成功升级 PD8。
____

一直有在用 Parallels Desktop, 当时为了 Win7 下每 2 ~ 3 个月用一次招行网银, 觉得不值得去买个正版. 后来需要用 VM 跑 Debian 开发了, 几乎天天用到, 看着 PD7 出炉, 就决定支持下正版了.

网上找到对岸的这篇帖子, 教你如何以 8/1 ~ 10/31 日间买的 PD6 简体中文版 (RMB 188) 上官方免费升级到 PD7 英文版:
http://www.mobile01.com/topicdetail.php?f=481&t=2345358&last=30619243

经本人验证, 已成功, 简单而言:

1. 2011/10/31 前上苹果中国的店, 花 188 买 PD6
2. 拿到包装里的 Key 后, 无需装 PD6, 2011/11/15 前到这里申请 PD7:
http://www.parallels.com/cn/keyfor7/request/

注:
(1) "您在何处购买 Parallels Desktop 6 for Mac*" - 选 "其他商店"
(2) "Parallels Desktop 7 for Mac 本地语言版本" - 选你想要的语言版本 (我是英文系统, 自动选上英文了)
(3) 等 6 ~ 8 天能应能拿到 PD7 的 Key

(由于我先在这里提交过请求: http://www.parallels.com/keyfor7/request/, 等了 7 天, 没回应, 再去上面的中文页面提交, 隔天拿到, 所以无法确认是哪次提交生效了…)

我拿到的英文版的 Key 可以直接激活原来的英文版 (非正版 Key).

这样曲线一下, 比直接购买 199 的 PD7 简体中文版也还是便宜了.

另外, 如果你机器里原来就有非正版 Key 的 PD7 注册过, 务必:

(1) uninstall - *无需* uninstall "Application Settings", 默认卸载即可
(2) 删掉 /Library/Preferences/Parallels/licenses.xml
(3) 清掉 /etc/hosts 里的 *.parallels.com 的 "拦截项" (你懂的, 嘿嘿)
(4) 重新安装 PD7, 激活. 最新的 7.0.14924 会要求输入 PD6 的 Key, 必须卸载过, 这一步才能顺利通过 (找官方 support 要的步骤, 当然, 只是告诉对方这一步过不去, 然后他们就给了这办法…)

现在遗留一个问题:
以简体中文版申请的英文版, 明年升级是否为 RMB 99, 还是从此是米国价 $49.99?

反正 Register 产品的时候我留的都是中国, 来年验证吧.

对 Parallels 自己来说, 区域差别定价是他们的销售策略; 软件层面, 发哪个版本, 都是 0 代价, 英文版算起来还应该成本更小呢, 毕竟不必请翻译团队, 不是?

Monday, October 17, 2011

From last post to this, Steve Jobs is gone

As we are still young and healthy, we are always so confident that we will be able to live through tomorrow, the endless tomorrow, full of hopes and dreams.

We keep wandering, playing, doing stupid things, avoiding a single thought of the fact that there's a timer has already been set the day we born.

A second ticks away, it ticked away, inresisible, irreversible.
We are in a progress of permanent lost of the most precious thing we can own: life.
Scary.

When first time i heard mom called herself "old", I was shocked;
When dad told me he is seeing few small spots through his eyes, I learned it's a "common case" of "natural growing old process";
Terrifying scientific language.

Better do something ASAP, before it's too late, so you can let go peacefully, and take a long rest, when the moment comes.

Sunday, September 18, 2011

It's been a while

Haven't blogged for a while, and rarely tweeted. Been busy in finding/moving to this new apartment, lots of things going on, now to say I'm 99.9% settled down.

A small room with comfortable bed, bright during the day and quiet at night - it's the simplest thing I need the most. Beijing is getting colder, as autumn approaches.

Tuesday, September 06, 2011

无题


我轻声呼唤
就渴望你悄然降临 似
无边的露
把茫然辽阔的暗草打湿

黑土沉眠
远处灯火流放 愈夜愈烈

9/6/2011 12:32 am
- 9/18/2011 10:49 pm

Saturday, August 20, 2011

南开,九九


给南开 99 的先生、舍友、同学、文青、女生、世外异域桃源、我爱南开、水木清华……时光无可挽回地流逝,就让这堆文字追随而去,有天重逢于历史的故纸堆,浅唱低吟。




从清晨到入夜
从树上羽毛温暖的嘀咕
到晚自习后喧哗的起伏 路灯明灭

从大中路到马蹄湖
从飞絮恼人高耸的杨树
到偶尔夜雨的路旁 水洼浅浅

从二食堂饭菜油光的俗味
到澡堂口女生新鲜的发香

从 BBS 上喷薄的文采
到水银灯下跼蹙的言语

从躁动的心灵
到莫名的感伤
波光荡漾的湖边
有没听说她已吻了 另一个他



五教六教,古砖旧瓦
一宿二宿,新枝老树
仪器上尘土经年累月,干木绿漆
窗台边光影四季流转,琴声吉他

图书馆是好同学的殿堂
书里是各色的理想
路旁一个小土堆便名冠“南山”
让秀丽山区的孩子忍俊不禁

教授好坏,都有伪装的答到,恣意的困觉
才气多寡,都有不得的芳心,小馆的酩酊

数年不见,桀骜的先生已酒中仙逝
拎着动乱烙下的问候语,去拜会他常问候的先人
时日太长,高龄的粉笔已尘埃落定
纸上的公式身后的弟子,能否谨小慎微无愧师门?

学弟妹还在他们围着的墙里天真地成长吗?
记着,权力与财富的小车当谦恭礼让,敬重书生意气
不然,我们就在大中路上给它上多一节颠覆之课



故事聚集过
就床头被褥机时逃课地写
分开了
便篇幅零落万般头绪

你事业如何?
国外生活哪般?
宝宝多大?
身体竟不如从前了啊!
……

埋头解过最远离尘世的公式方程
刻苦写过最思辨缜密的长篇大论
今天的你是否觉得理想已顺理成章
抑或更加抽象,更像穷尽脑汁的猜想?

不见了的十一宿
不见了的人

变换了的光影
让记忆只一味地流淌
找不到一块礁石
激起些许浪花


- 6/20/2011 11:53pm
- 7/15/2011 11:00pm
- 8/20/2011 12:41am

Saturday, August 06, 2011

推特集 (2009/09 ~ 2009/07)

September
  1. Chances are always there waiting for your next try.
  2. There are two kinds of leaders: one forces ppl to be more stupid than him; one believes ppl are much smarter than him.
  3. Waiting is such good training that it either crashes or stabilizes you.
  4. Users can always find the defects of your software in the most innovative way.
  5. It's good that u r working overtime to get things done; it's better if u hv planned ahead to avoid working overtime from the beginning.
  6. Only those who dare to dream will be able to lead.
August
  1. We are born to learn what death is.
  2. Let's become a story for our next generation to tell.
  3. To shape, to lead, to execute.
  4. Those who are willing to take the risks, either die in the front line, or become heroes.
  5. I was shocked the first time I heard my mom calling herself "old person"...
  6. Popper's model for government is based on his awareness of human weaknesses and limitations.
  7. Babysitting 1 billion people for 60 yrs is this government's greatest achievement.
  8. Historicism & waterfall model: both trying to over simplify a dynamic world consists of complex individuals.
  9. UI design step 1: tell the story of how real world objects interact with each other in common language. (do NOT use "click", "checkbox", ...
  10. When customer complains, it's usually the best chance to convert her/him to a loyal one.
July
  1. The most satisfied moment: having a cup of hot tea after finishing the dinner cooked by myself.
  2. Bad bad habit of being an IT guy for years: easily get depressed by flawed machine...
  3. Popper's "government" is very empirical: (1) it _could be_ bad, so (2) need a practical mechanism to replace it without bloody revolution.
  4. A weirdest Monday: got ZERO email from clients...
  5. Uncertainty is the root of fear.
  6. Things will become beautiful when you start loving them.
  7. Karl Popper had cleaned up the mess of historicism long time ago, how amazing it is to see a government is still actively doing the live "show".
  8. 黨者,“尚黑”,古人造字,洞察千秋。
  9. Colorful minds are fascinating!
  10. We are basically the same piece of flesh with different cloth and makeup outside.
  11. Think alone, think ahead, think aloud... I'm stuck.
  12. I can't tell my exact distance from success, but whenever I learn something new, I know I'm one step closer.
  13. While life is illusion, what not create yourself a happier one?
  14. On the way to success, money is the side effect, not end result.
  15. A lead: (1) has greater _probability_ of being right; (2) is more open to criticism; (3) has the courage to correct mistakes.
  16. Some money comes in regular pace (salary), some comes all of a sudden (lottery), some comes when all your efforts reach a tipping point.
  17. Audio/video equipments you pay for the details/resolution, service is the same.
  18. Always work with someone who can extend your knowledge to the next level.
  19. 房地产是政府预支草民未来、GDP 保八的重要面子工程。
  20. In an open society/environment, everything can be questioned, discussed & documented for further revise.
  21. In this lifelong racing, the winner is usually not the one who can run the fastest at the beginning, but the one who can last the longest.
  22. A good habit saves money; a good system saves money.
  23. Patiently prepare your value to be a millionaire, it will become real money when the time is right.
  24. A business guy should be able to see the extra values behind a piece of money.
  25. 残酷青春,满是泡泡的青春,没有一个造一个,破了一个补一个。
  26. A government off the people, buy the people, fork the people.
  27. 围追堵截,欺瞒哄骗。
  28. 电话面试时三五分钟筛人的绝招:就挑简历上“精通”的问──2-3 个问题,某个问题深入 1-2 步,“行家一出手,就知有没有”──如果你发现没有任何过招的乐趣,即准备挂线。
  29. There's no rich happiness, nor poor happiness, you are the wealthiest man if you are really happy.
  30. Be solid enough to occupy some space in this world.
  31. When they R poor & not in ctrl, they promised 2 serve the ppl; when they R in ctrl, they must stay rich enuf so that no longer need 2 do so.
  32. With these expensive buildings, cars... they are clearly delivering a message: we are systematically on top of you, hail to us!
  33. When the spotlight is on, you are the super star!
  34. 陈远浩案中欧亚求的辩护律师说:今天你给我老实点,实事求是... 否则我可以拒绝为你辩护。
  35. Community: a group of people sharing common interests with *trust*.
  36. Music creates such a pleasant atmosphere that you will lose yourself when you sink into every small detail of it...
  37. I don't want beautiful charts, I want charts indicate (potential) problems.
  38. A lot of people are still willing to sacrifice the future to make some selfish quick money.
  39. Good tea will remind you to drink!
  40. Please bear with us if this country looks awkward from time to time, it will be better when our generation becomes mainstream.
  41. They hv bn planting "party=ppl=nation" into our minds, any foreign criticism 2 thm wl more or less cause nationalism rebound, 4 thm 2 hide.

Sunday, July 31, 2011

推特集 (2011/07)

  1. 打理厅堂, 清理厨房, 自己做饭, 自己吃饭. 不亦乐乎.
  2. 喜欢和什么样的人在一起, 就让自己成为什么样的人吧!
  3. 今天, 如果你不知道不在意不悼念, 明天, 你可能就是被不知道不在意不悼念的另一个个数.
  4. We might not be able to change the world, but we can make our surroundings a better place.
  5. 再见, 兲朝, "这节车厢已经没有生命体征了".
  6. 幸福和快乐是迁就不来的。
  7. 女的找男的要安全感, 男的找谁要?
  8. Raw SQL is the simplest way to go when ORM complicates things. #dev
  9. 从今天起,恳请所有网络评论员发帖时能比平日慢一些,所有论坛管理员删文时能比往常多等会。和每个普通人一样,你们承担不起丢掉工作的压力,但举手之劳就可以托起片刻的人性与温暖,让一些弱小的思想和光辉有机会照进更多贫瘠的心灵。
  10. 我隐隐有种不祥的预感:这些年在房地产、公共设施方面为维持 GDP 跨越式发展催生出来的高楼大厦、公路桥梁……等等短视黑心、偷工减料的“百年大业”,都开始进入短命早夭无以为继的集体坍塌期——我们中的谁、谁的亲朋好友,会成为下一批被统计的“伤亡人数”,并有幸在镜头前零涕政府的救助?
  11. 民主绝不可能神奇般地带来 100% 满意. 她只提供一种机制/一种程序让不同的利益群体能在合法合理的框架内得到充分的表达/比较/争辩/博弈... 并彼此尊重一个最后让各方尽可能满意的结果, 而非少数人 "代表" 出来的和谐和气的 100% 满意.
  12. 万万不要低估被你或无心或有意冒犯的一个客户的影响力. 在未来的日子里, 她/他对你的负面评价可能会像病毒般在她/他的亲友圈里口口相传没完没了地量级式扩散, 直到有天你无可挽回地发现自己苦心经营的一切竟如此容易地毁于一旦. 所以: 善待你的客户, 为了你的事业.
  13. 唐僧定要有 "你会回来和我一起唱这首歌" 的气度, 远见与耐心.
  14. You win a loyal customer, you win a best sales.
  15. If it can be made better, let's make it better. #attitude
  16. 大陆到今天想简单粗暴地统一台湾已经不可能了,因台湾已是相当精细成熟的现代化民主社会,人人都拿着选票掌控着当权的政客,别妄想通过某个“亲大陆”的官员,无视民意、一蹴而就地就完成“统一大业”,自由世界里的人民眼睛雪亮亮的。只待大陆政客某天猛醒,勇敢拥抱现代化体制,才有希望。
  17. Execution bridges dream and reality.
  18. 国无国格, 人无人格, 一个 "合格", 合的介尼玛是谁的神马格? //有感于某塌桥曾检验 "合格".
  19. 两种意识形态比较之一:"历史证明,我能最好地代表你们" vs. "票数说明,我是你们选出来最不坏的代表";之二:"人民感谢我的领导" vs. "感谢你给我机会领导"。
  20. 制服的“神奇”在于:把某些想表达、想强调的特性整齐划一地乘法放大,消弭差异、物化量化⋯⋯自然震撼人心,或勾魂摄魄。其英文更传神: uni.form.
  21. 我们这一代的责任, 就是顶住上一代的压力, 让下一代活得比我们更好更自由.
  22. "中华人民共和国" 和 "中华民国" 的差别: People's Republic of China vs. Republic of China - 多了个 "People's". 人民的 > 人民代表的 > ZF 推荐的 > ZF 的 > D 的, 即: D 国.
  23. 当我知道得越多, 我越能理解今天世界不是他们想要的样子是有道理的 - 不是世界想 "反华", 是 "华" 想反世界.
  24. When the spotlight is on, one will be the star - are you the one who's been working hard to get on that stage in the dark?
  25. Get some solid time to learn, to think, to code... so to have a solid life before it ends. #coding
  26. 领导者的一言一行将深刻影响整个族群的特性--看看贵党贵府,便知现今为何人多漠视法律、道德沦丧、信仰缺失、权钱横行、无知愚昧、言语粗俗,当然还有乱扔垃圾、随地吐痰、勇闯红灯…
  27. Music has textures, painting has rhythms, fascinating creation of human brains.
  28. 日本,不会因为你喊她“小”,她就不是现代化强国;中国,不会因为你宣传她“大”,就真是中央之国。继续价值观混乱,以银弹外交与流氓国家为伍;继续思想僵化,以落后意识形态禁锢十三亿创造力——钱再多,走上国际的大街,也就一行人侧目的土豪。
  29. 儿时成为伟人的梦想, 若长大后现实让你觉得力有不逮, 不妨就静下心来, 把身边那一两个特别努力特别能干的人之品质行事先暗暗偷师. 有天哪个竟幸运地成为众人眼中的伟人时, 即便不沾光, 你也是离伟人最近的那个. #attitude
  30. Good idea + bad execution = bad product; bad idea + good execution = improvable product. #execution
  31. 应该继续相信在 iPhone 64G 的领导下共产主义就一定可以实现 ;-) @walkinraven @jason5ng32 一位阿姨说她的iPhone 4是64G的,后背可卸,花7000多元买的,我震惊了。我要不要告诉她真相呢?
  32. From dream to reality - an exec team without clear/firm goal but mixed interests will be risking/blurring the dream. #execution
  33. Mentor teaches the best way of thinking, while inventor inspires a whole new way of thinking.
  34. 当你抱怨一个环境无法让自己成长, 想要离开时, 曾否自问: 我努力找这个环境要过成长的机会和锻炼吗? 是不是机会其实都在那儿, 只是我一直 "懒得" 要? #attitude
  35. You should be the very first one who can vividly visualize your dream to attract followers before a great product can be built. #leadership
  36. Dare to dream, willing to do dirty jobs. 勇于梦想, 乐于苦力. #attitude
  37. 如果你的死, 将成为后人的庆典, 是不是今天起, 活着的时候, 就有点历史责任感, 与良知? 哪怕仅仅为了你的孩子着想?
  38. "Cheap" is not defined by your price, but quality.
  39. Creative minds are unique, a good manager, as organizer, can properly place them into best fit and let'em perform the most. #management
  40. Big picture can be complex and fascinating, each piece must stay simple and straight. #design
  41. 内容、功能、颜色、形状、线条、间距、字体——这么多东西,都围绕一个中心思想取舍、概括、组织好了,就是好设计。 #design
  42. All great things are made of great amount of "trivial" details.
  43. 十年后,你若比今天年长你十岁的、你认为很优秀很有影响力的前辈,更优秀更有影响力,这就是成功,这就是人类的进步。 #attitude
  44. 祝所有 #5mao 工作快乐,内心坦然,薪资不拖欠,不承担高房价高通胀,不担心老家屋子被拆,没有被城管驱赶的家人亲友,遇不公能合法合理公平高效不用上访地解决,住房不豆渣,着装无甲醛,出行走好路,饭局吃好油,宝宝喝国产好奶、好校不抢位、校舍结实抗震。祝你们及宝宝安享幸福、世世代代。
  45. 祸害这么多人、这么多年了,能不能良心一次、进步一点?
  46. As long as you are a hard working guy w/ not much bad luck, you will get most of what you want, just a matter of time & order. #attitude

Saturday, July 30, 2011

A Week With OSX Lion

Note: I will keep updating this post if any new findings. (8/4)

Been upgraded to Lion on MBP (late 2008) for about a week, here are some findings.

My favorite features are:

No. 1: Safari's two fingers double-tap

In Safari, you can use two fingers to double tap on any region of a web page to zoom in. A great usability improvement brought from iOS' mobile Safari. With this feature, you don't really need the "Reader" feature most of the time while reading articles. And as claimed by Apple, the zoomed in page is "razor sharp", beautiful.

No. 2: Mission Control

The usability bright spots are:

1. Application windows are grouped with a big icon

Prior to Lion, Expose places zoomed out windows across the screen, at that level of size - thought you might not be aware of - you actually need to "waste some energy" trying to find which zoomed out window is the one you are looking for, based on the application window's shape/toolbars surrounding the fuzzy content.

Now comes the big icon - intuitively let you spot the application without a second thought, then pick one window out of the grouped windows.

2. Creating "Desktop" on the fly

When Mission Control is activated, you can drag a window to the top right of the screen, a new "Desktop" will be created instantly for you to "dump" that window into it, so to avoid cluttering your major working desktop.

The neat thing is the multi-finger gestures to swipe between desktops:

(1) In Mission Control mode, you can use 3 (or 4) fingers to swipe through all the desktops' "thumbnails"
(2) In a normal desktop, you can also use 3 (or 4) fingers to "drag the screen" left/right - to have a sneak peek of the next desktop before switching to it - "are my stocks going up??... ah, boss is coming... (release the drag, back to work!)"

Comparing to Snow Leopard's fixed numbers of "Spaces", this "on-the-fly" desktop creation and gestures gives you a completely different sense of the virtual "space" that the OS has delivered. In Lion, you definitely feel more freedom, lightweight, intuitive and fun to work with.

No. 3: More Memory Available

I've upgraded to 8G mem recently while still using Snow Leopard, because I've got quite some memory hungry apps running (such as virtual machines).

After upgraded to Lion, I just noticed that, with the same amount of big memory occupiers running, I actually have around 1.5G of mem remaining while I got almost no free mem remaining in Snow Leopard.

Though I didn't technically verify this finding, but I do believe that bringing iOS "Back to the Mac" should not only bringing usability enhancements, but also underly/invisible-to-end-users technologies.

Once you know how to make super slim/efficient OS/applications on resource limited mobile devices, it's super natural to bring those optimizations to a more powerful device - then, you are actually delivering values to end users - same "old" hardware, but more computing resources released from the OS. (Think of each time Windows' upgrade requires more powerful hardware...)

No. 4: Super natural Text-to-Speech

I've been learning Japanese for while. Based on my English learning experience, "read extensively" is an essential part. I always think that - what if I can subscribe to some Japanese ニュース (news) feed, and read a lot of them?

Opening a Hiragana character/pronunciation mapping while reading (quietly in brain) is really a mental burden, I actually never did that until I realized Lion already integrated the Text-to-Speech technology from Nuance.

After downloaded several voice packages (China/Taiwan/Cantonese/Japan), now I'm using "Kyoko"'s voice and bind the "Option + s" key to read any selected Japanese text, in a super natural way!

There are many "Kanji" (Chinese Characters) in Japanese, with Kyoko reading them to me, I do feel that my Japanese character to pronunciation mapping is speeding up. Really useful to me.

Since I'm also a native Mandarin/Cantonese speaker, I've downloaded the other 3 voices just for fun (and showcase to friends), I must say, the Cantonese voice "Sin-Ji" is the best of them all, "her" voice sounds like the professional Hongkong TV news reporter's, smooth pace, and all the tones are just right.

There are other good things such as full screen app, but I would like to pause here and look at some of the "inconvenient"/"unexpected" things for Snow Leopard users:

  • Finder - "icon view", two fingers pinch-to-zoom is gone. In a folder with many pictures, you can no longer zoom the thumbnails. I don't know why Apple decided to remove this feature. based on the behavior I saw - some picture folders can show big thumbnails, some cannot - is Apple trying to make the "icon view" smarter but half baked?
  • System wide 3 fingers swipe left/right to go back/forward in applications is gone - made room for the desktop swiping. Though you can get it back by using 4 fingers to swipe desktops, then some 3rd party gesture tools (like JiTouch/BetterTouchTool) to bind "cmd + ["/"cmd + ]" to 3 fingers swipes
  • "Lion won't sleep when lid closed!" - yes, I initially thought my OS was in trouble when it just wouldn't sleep when I closed the lid and waited for several minutes. Actually, it's a new change in Lion, when external monitor is connected, closing the lib will simply switch the major desktop to that external screen, and only put my MBP's screen into sleep. So now you have to disconnect the external monitor physically before closing the lid to put your laptop to sleep. Or, you can click the apple menu or use keyboard shortcut instead.
  • Full screen app renders external monitor(s) "useless" - when swipe to a full screen app in your major screen, the external monitor will be displaying a gray dotted background, you can put nothing on it.
  • Update: double-tap-to-drag is gone too. In Snow Leopard, you can first tap on something (window's title bar, a file in Finder), shortly follow another tap to start dragging around. Since Lion added a "Three finger drag" gesture, this is by default disabled, you can get it back in System Preferences > Universal Access > Mouse & Trackpad > Trackpad Options > tick the Dragging without Drag Lock, it can coexist fine with three finger drag. I think this is rather an improvement than inconvenience, a friend of mine became Mac user not long ago, she came to me and asked how to drag things around with the Trackpad, when I demoed to her, she seemed couldn't get the right "feel" of the tricky second tap until she practiced quite a while. She's our company's seasoned QA, I think it wouldn't be too easy for others. This "Three finger drag" should be intuitive and much easier to master for most users out there - though it's not enabled by default. (7/31)
  • Update 2: Mail.app, conversation view - (when using with Gmail) you may be curious why message you sent are not showing up in a conversation. A quick "fix" is click the "Show related message" button from the toolbar; an ultimate "fix" is in Preferences > Viewing > View conversations > (tick) Include related messages. (8/4)
  • Update 3: Bluetooth devices (trackpad, keyboard) won't auto reconnect after wake up - a temporary fix: make sure to check the option: System Preferences > Bluetooth > Advanced... > Allow Bluetooth devices to wake this computer. Now you need to be careful to shutdown your Bluetooth devices before putting them into your bag, or you Lion will wake up ;-) (8/23)
  • Update 4: the Bluetooth device auto reconnect problem has been fixed in 10.7.2, you can turn _off_ the "Allow Bluetooth devices to wake this computer" now. (10/20)

At last, a side note:

I confess that I was a pirated/shameful/shameless Snow Leopard user. Though the Chinese government has made itself super rich in the world and gained a lot of "faces", average people in this country don't make a lot of money, and the huge amount of invisible tax paying is the government's trick to suck people's hard earned money to make itself richer.

A fresh graduate's salary in IT (one of the "top paid" industries) is generally around 2,000 ~ 4,000 RMB/month ($307 ~ 615/mo) in big cities like Beijing. And that's pretax, also, some amount also has to be reserved for insurance and social benefits, etc. After paying your daily meals and apartment rent, you don't get much "freedom" left to support a piece of software that cost hundreds of $$.

As someone suggested, to fight piracy - lower the price. I think Apple made a good move in Lion, when users already bought your pricy hardwares, the OS should be (much) cheaper.

When the $29.99 (RMB 195, you can get a pair of good shoes) was announced, several Mac friends around me told me that they would "definitely" buy it, and we did.

As the well educated generations are growing, getting better paid, the overall awareness of intellectual property, and the same respect/protection they need when they start their own business ("as app developers we want others to pay, we pay other developers' apps too"), will be growing and eventually catch up with developed countries.

Sunday, July 17, 2011

推特集 (2009/12 ~ 2009/10)

December
  1. 风声鹤唳, 草木皆兵, 闭关锁国, 掩耳摘铃.
  2. When you lower your head and tone, your ears will hear more.
  3. It doesn't matter how much you are holding, it matters how long you can keep them and survive.
  4. Men lie because women are expecting them to - "Am I beautiful?"
  5. You won't grow if you don't know someone else has been doing way better than you.
  6. Intensive/regular (automated) testing to ensure the product is iteratively growing in the right direction. #agile
  7. Key to agile development: intensive communication to explore/clarify/embrace/adapt to "uncertainty".
  8. Investment is like hypothese, only he who casts will catch.
  9. They've modernized their income, cars, buildings... except their mind.
November
  1. Stock: traders suck $ from each other's future; investors suck $ from company's future; fools get sucked into no future.
  2. You can't design without deep understanding.
  3. A good design must have an unified idea to help you make all the design decisions.
  4. Design delivers message, initiates communication.
  5. A childish government keeps trying to "maintain" its citizens in childhood.
  6. Design initiates vibrations between hearts, communicates without language.
October
  1. Try to build something small to change the world, a little bit at a time.
  2. Labeled as the "developing country", doesn't mean that we the people couldn't/shouldn't have the "developed" mindset.
  3. When no more hopes, faith is the last thing you can keep.
  4. /accounts/EditServices - "Remove Web History permanently" completely disables Google search results click-tracking redirect URLs.
  5. Forget about sed/cut, awk fulfills my calculating need: awk '{ SUM += $7 } END { print SUM }' (sum 7th col, works with negative values)
  6. Replace multiple white spaces with single one (before piped to "cut -d"): sed -e 's/ \{1,\}/ /g'
  7. There is no good/bad customer, but customer you serve well/badly.
  8. In your quest for knowledge, while "scaling up" yourself, could u also "scale out" to the others?
  9. A simple question to "test" if a test case is over simplified: can it be rerun by another QA without further explanation from the author?
  10. It's a complicated world, u need to understand it before u can reorganize it into something sophisticated.
  11. max_execution_time IS including download time if file is served via php, e.g., set Drupal's file access to "private" and serve large files.
  12. Design: behavioral - to solve problems; visceral - to make experience enjoyable; reflective - to enhance communication.
  13. max_execution_time isn't including max_input_time. A file tks 600s max_in to upload, the script can tk 30s max_exec to do other stuff. #php
  14. When language is used, the bloody facts have been torn apart and reassembled, your mind starts being manipulated by the assembler.
  15. Babies sleep anywhere as long as they are feeling safe & secure, or simply tired (of struggling with the world).
  16. Let's focus on solving smaller/day-to-day things which will eventually change the world as they accumulate.
  17. Can you imagine how creative it's going to be if these one billion people eventually have the right to think freely?

Sunday, July 10, 2011

推特集 (2010/04 ~ 2010/01)

April
  1. Fears & tears, silenced & harmonized; those who got treated like animals will strike back like animals.
  2. Time is slow, pain is precise; it ticks second by second, it ticks like it never ends.
  3. 草民死去的身躯之上, 是富人挥舞慈善的旗幡; 红纸黑字, 百万千万, 衣冠赫赫, 面容有光; 这一路走得艰辛仓惶, 一躺下便垒起黄土盈尺, 供你搭台唱戏, 千秋荣光.
  4. The professionals are those who are well trained to conquer or to exploit human vulnerabilities.
  5. 股市里一定要克服的就是对 "下跌" 的恐惧; 无论涨跌, 只要交易量放大的日子, 就是充满机会的日子, 涨则挣钱, 跌则省钱 - 果断把筹码换成更便宜的.
March
  1. 脑残则国残, 人贱则国贱.
  2. We are like animals, born & growing into different shapes, to scare others away, to be able to run away, or to hide one's self away.
  3. We are all vulnerable creatures, looking for imaginary shells.
  4. You feel so brave in a strong team.
  5. 和国民肉体健康有关的一律不管, 和国民思想健康有关的一切都管.
  6. 墙着的时候, 是夯实地基的时候; 墙塌的时候, 是新楼破土的时候.
  7. Pain is so real & happiness is so fragile... I think this is the evil root of depression.
  8. A good tool should be able to learn and adapt to human.
  9. A plan a day, keep uncomfortable away!
  10. Enjoy your life while you still have it.
  11. Home is where you can breathe the air of memories.
  12. Love is when you die you know you have someone's hand to hold.
  13. Always respect those who have been fighting on front line.
February
  1. 以短跑的心态跑长跑, 不被累死也被急死 - 人生此理, 赚钱同理.
  2. It's never a bad thing to have someone say something bad about you.
  3. 不是我们天生低矮羸弱, 不是别人刻意瞧你不起; 是思想阉割, 是体制拘囿, 是他们存心设以重重障碍犯下种种错误, 不让每一个一个的人拥有独立之精神, 自由之思想, 富足之财力, 与列强诸国比肩竞争 - 这, 不是一个能诞生现代化巨人的地方.
  4. The only reason we are living for, is to prepare something for our next generation, either good or bad.
  5. We might not be able to change the world, but we can build ourselves a better home.
  6. When you start feeling too lazy to embrace changes, you are getting old.
  7. "Cheap" is determined by attitude, not price.
January
  1. Time is ur friend, it weakens ur opponents, turns them into dead bodies; so stay healthy, be happy, play tight, live longer w/ gr8 patience.
  2. Censorship is effectively keeping us as stupid as they are, so their intelligence won't be challenged.
  3. Mobilized & connected.
  4. He who has enough power to mess with history will be messed up by history's power.
  5. 童话国外交部: 我们全国人民都可以开博客, 上论坛, 自由地赞赏国王的新衣. 你们国外这些小屁孩的指责完全是无理取闹.
  6. 他们如此地害怕每个公民掌握充分的信息, 独立地思考, 理性地判断; 于是要有内容审查, 要有爱国主义, 要有舆论导向.
  7. Laziness is your enemy, it lulls you into simplistic conclusion, comfortable illusion.
  8. We are contained, in an imaginary atmosphere created by them.
  9. You don't have to be young to be childish.
  10. Slow down, think twice, do it right - busiest time is when proj starts, hv2 assemble pieces together b4 it can mechanically run on its own.
  11. p民就是一溜烟, 菊花 "噗" 的一声, 我们就被放跑了.
  12. http://bit.ly/6Fbx07 - every life long small good habit helps you get a great long life! #ted #health
  13. What kind of creativity & future could be expected from all these crippled/censorship educated minds?
  14. Inspect & adapt. #agile
  15. "智商低的人才用苹果电脑,因为苹果电脑太好用了。" - 俺在 OSX 里跑 Debian, 简称 "大智若愚". #linux #mac
  16. Learn one great thing from everyone, you will be great some day.
  17. There are 3 different ways to make you feel "powerful/fearless": faith, reason, ignorance.
  18. 每个人都有自己的一些这样那样的小特点小毛病, 尊重和理解是修养.
  19. As a service provider, you are paid to take care of every small detail, so that your customer can stay focused on a big picture.
  20. 以认真换认真.
  21. When stuck, dig your way out.
  22. There are 3 kinds of people who: 1. need to be pushed; 2. self pushed; 3. push others.
  23. Your good friends: patience, double checking, "slowness", accuracy.
  24. "Developed" means black is black, white is white; "developing" means everything is gray.
  25. 养猪的待遇能比猪差?
  26. There will be wall if you don't climb.
  27. 世上本没有墙, 但爬的 "人" 多了, 也就得围一堵, 圈养着.
  28. "Fear lulls our minds to sleep, it turns us into cowards as well." - Persepolis

Youth - by Wang Feng

After the classic/older "Good Night, Beijing" from Wang Feng's old band Baojiajie, here's a newer one: Youth.

Every time I go Karaoke will sing. I like this part the most:

I've got nothing in my heart
as if I've got no pain
this world has everything
as if everyone owns something


____

Youth

I want to leave by the sunset
take a car and drive far
there's a friend's feast awaits

I quickly dressed and push the door open
the hot desires from the street
blow into my face
I swiftly jump into the flowing crowd

It's starting to rain outside
the raindrops are floating like all the younger ages
they covered my face
as if I'm being covered by happiness

I've got nothing in my heart
as if I've got no pain
This world has everything
as if everyone owns something

Keep moving, keep losing
in this youth I'm not yet aware of

Repeat
____

Original lyrics
http://geci.chinamp3.com/geci/185/geci385209.php

Original Version (just a static image in the video)


Live version (audio quality is not as good as the above)

Sunday, July 03, 2011

The Great Wall - by Beyond

Another June passed, 22 years. It seems like this Great Wall can lock up everything for another thousand years. History is being erased, memories are fading. That day the human body tragically failed to stand up against a pile of mechanics, has become a haunting curse. Don't you see how many nameless bodies are still being mechanically torn/crushed by a gigantic machine to date?

- Oh, no, you don't, we have the upgraded Great Firewall.

A classic Cantonese rock from Beyond, enjoy.

____

In the distant east, the vast frontier
there's the ancient wall
past generations' suffering
this generation's face
mountains and land are firmly bordered

surrounding a dying country
surrounding the truth
surrounding vast amount of history
surrounding (the yelling) desires and hopes

Superstitious villages, mystic central power
and battle fields of the past
the emperor's new clothes, bloody weapons
who's willing to leave his motherland and exile for life

Cover your ears
so their cries (for God) are no longer being heard
Cover your eyes
farewell to that glory wound carved upon this land

A body without crown, minds of selflessness
and the unbreakable broken wall
no one can crash it, no one can abandon it
no one can leave his motherland and exile for life

____

Original lyrics (Note: Traditional Chinese)

Music Video

Saturday, July 02, 2011

推特集 (2011/06)

  1. There are different types of intelligence, a perfect combination let each stay focused and perform the best. #team
  2. @ChengyiWu 呵呵, 总有些尚未与无数细节长期斗争过的小盆友喜欢嘴上把事情说简单以显示自己的 "牛", 以争取尚未得到的尊敬或 "崇拜".
  3. Do not try to hide your stupidity & "pretend" to be smart in this dead simple 0/1, True/False engineering world. #attitude
  4. Boy, learn how to maintain your relationship with valuable friends if you think your business gonna need them someday.
  5. 与傻瓜共事不可怕, 可怕的是让比傻瓜还傻的管理者, 依赖于傻瓜的能力来做判断, 下结论, 原本不傻的也傻眼儿了. #management
  6. Coding delivers the sweet feeling of creation.
  7. As a product sales, how could you possibly sell if you don't even buy in?
  8. 做有良知的工程师! 写代码, 写注释, 良心品质, 荫泽后人! 表让接手你代码的人骂街 ;-)
  9. 不怕读代码, 就怕读屎一样的代码.
  10. Dumb & lazy one dumbly repeats; smart & lazy one creatively automates. #methodology
  11. While team is doing all the dirty jobs at the frontline, being positive and encouraging is the best thing you can give. #leadership
  12. Distrust distracts, destructs. #management
  13. (正规正道的公司里) 拿稳定工资的一定不要妒忌上面看似拿 "暴利" 的, 殊不知他们为了这么多人的稳定, 天天背着多大的不稳定和高风险.
  14. A manager without proper reasoning, calm and professional emotion control will be poisoning the whole team. #leadership #management
  15. 稳定的工资收入只是财富的小头,要有梦想和勇气去追求更大头的、那些努力不一定有、不努力一定没有的回报。
  16. 猜想,是在积累了大量已知后,对可能的新知一次直觉式勇敢的跳跃-最终,也许逻辑贯通,也许死路一条,也许永世成迷,世代困扰并挑战所有最智慧的头脑。
  17. When facing trouble, you have options: A. trouble; B. trouble + negative emotion - which one do you think will be easier to solve?
  18. "这么多东西,怎样才能概括起来?"-于是有了猜想和理论。
  19. Since general people are followers, thinkers are well needed in an org to clear doubts, figure out correct mindsets, feed & inspire others.
  20. 要敬畏年轻人——你活着的时候,骗不了他们太久;你死后很久,还是他们,写你的历史。
  21. 文革中能存活至今,甚至仕途丰顺的,大约都是根正苗红、见风使舵、善演能唱、风骨无存、良知泯灭、心狠手辣的一群吧?
  22. 现今为何多见本素不相识者为星点鸡毛小事即谩骂开打? 盖因大环境自思想意识上层建筑始, 至最底层之种种执行细节, 无不释放着此等信号: 法理无望, 压服至上.
  23. 功夫熊猫算文化入侵,那天朝传说中的四大发明,算不算把世界入侵到现在?
  24. 忽悠点儿圈养着的就好啦,还非得拉出去丢脸。
  25. 没有和平合法抗议的途径,没有抗议后和平解决的实例;人人缺乏自由表达诉求的手段、民主解决问题的训练;人人心里都有一点火,被高压和恐惧、而非法律和理性所囚禁⋯⋯一旦火出牢笼,遍野连天,你能期待它烧得有礼有节、和平和谐吗?
  26. 不必着急创业, 先耐心练好技能/心态/气度/眼界, 积累人脉资源, 时机成熟, 自然水到渠成.
  27. Many talk about big words like "culture", like "process"; few realize how many execution level details underneath.
  28. Stay with top people, so you can be as excellent like them someday.
  29. 政府管,集体管,单位管…个人啥也不让管,自然就啥也不管。失去了个人的 ownership,政府、集体、单位一切管不着的地方,必然零落荒芜鼠蝇孳生。
  30. 思想、艺术,天生就是探索边界、以先行者姿态启发、引领大众,最终沉淀出独具特色的族群文化。强权视异己为敌,革文化之命,囚思想艺术以铁幕樊篱,明规则、潜规则、不过领导一次喜怒一下抽搐,动不动就违法违规煽动颠覆,探索精神何来,创新勇气何在?除了不择手段地快速钱多,人将一如既往地傻。
  31. Future's ahead, time's limited, actions must be taken.
  32. Why listen to the olds? Coz you can get their years long experience for free in minutes at your cost.
  33. Why stay w/ good ppl? Coz u r more likely to build the right mindsets, get the right knowledges.
  34. Good news, bad news, if it passed, leave it as is; if it's yet to come, let it come, let it pass.
  35. Today, we can't cry but whisper, can't raise arms but hold fists, can't tear down the wall but keep scratching - for our kids will be freed.
  36. 今天,我们无法大声哭泣,但可以默默颔首;无法挥动手臂,但可以紧握拳头;无法推翻高墙,但可以多刮缺口…不久的今天,我们的宝宝将有别样的自由。
  37. You should be the directional force that gently guides other talents to fully explore their intelligence and fill the voids.
  38. If you look at present from that end, you see calm and certainty.
  39. Curiosity, smoothness, passion, sadness... sound can effectively manipulate the brain, that's why sophisticated music is so charming.
  40. There's an end awaits, let's do something memorable before that.
  41. 成功的人只多了一点点的耐心去面对 "啊! 又失败啦!".

Sunday, June 26, 2011

It's still raining in this Beijing without you - by Jiang Mei

After the rock song "Good Night, Beijing" from Wang Feng's Baojiajie, let me try a softer one this time - a folk song from the 80s: It's still raining in this Beijing without you.

It's from Jiang Mei, a female singer, I don't think she's well known, I don't even know how she looks (unlike many shining stars always trying to grab your eyeballs), but this song really touches my heart. Hope you will like it.

(p.s. it's been a challenge to decide what the proper tense is, eventually I picked "present". I imaginarily think this can bring the feel of a "happing story", don't laugh too hard if I'm wrong :)

____

It's still raining in this Beijing without you
My heart goes into the dim street lights

Passing crowded strangers, trying to pass crowded minds
While you are not around, where your tenderness is

I open my diary at this night without you
Pages of blanks, are all waiting for you

Oh

Love's beauty, blooming in fading dreams
Sadly it turns into tears and fading sighs

Morning breeze blows again, I open my eyes
It's still raining in this Beijing without you

[Repeat]

____

Original lyrics

Video (a flash MV by fans I believe)

Saturday, June 25, 2011

Mac 下以虚拟机为 "沙盒", 构造 "洁癖式" 开发环境

(归档自 "每日阅读" 上的该贴)


"苹果下的开发" 可以这样分成两大类:
  1. 苹果自身技术相关的开发,如 iOS app、Mac app,这些装上 XCode 就统统搞定
  2. 非苹果特定技术的开发,如 Python/Django, RoR,这些会需要到安装配置一些开源的工具等等
尽管后者可以通过如 Homebrew, MacPorts 之类的包管理器(回想 Gentoo 的 portage!)来管理安装开源的东东到 Mac OS 里,我还是更喜欢洁癖型的玩法:
  1. 保持我的 Mac 环境 100% 干净,不装任何不需要的东西
  2. 应该有个环境让我能:
    • 随便捣腾
    • 不爽了可以随时 revert
虚拟机成了完美方案,它相当于提供了隔绝于 Mac OS 的一个沙盒,里面跑着总共不过 1G 大小、内存分配 128M 的纯 shell 界面的 debian,但拥有所有我必须的工具,如 screen/vim/git/svn/wget,python 环境等。

首先 debian 的 apt 包管理器让我可以随便捣腾各种工具,例如不久前一次大瘦身就是把以前因项目需要而装的 Java/PHP/MySQL/Apache/Drupal... 统统干掉了。

虚拟机提供快照功能,让我可以保留几个配置好的状态-例如刚装完的无比干净的 debian 做一个快照,然后装了常用工具后一个快照,需要时,哪怕你装了 n 多东西,一键就可以回去。

同时,Parallels 的虚拟机工具装到 debian 里后,你可以很容易地把 Mac 的目录 mount 到 debian 里,成为一个自然的目录!

这就到我最后的一个小技巧-
  1. 所有的实际数据,如你宝贵的源文件,统统放在 Mac 的目录里,然后 debian 里编辑开发
  2. Time machine 自动备份所有东西,自然包括你的代码。所以你捣腾坏了虚拟机、恢复了快照,数据也高枕无忧
现在,我的典型开发就是:
  1. 启动 debian 虚拟机,最小化或丢到别的 Space
  2. Mac 里打开 Terminal,ssh 到 debian
  3. 运行 screen + vim 开发 Python/Django
  4. Mac 里用浏览器访问 debian 里的 http 服务
唯一多了的麻烦就是把一个 Linux 装起来,不过,在我们公司里的话,可以直接把我的虚拟机拷过去,超级省事。

Monday, June 20, 2011

工程/流程随记

"工程" 思想指导 "流程" 实践:
  1. "重用": 做任何事情时都应有意识让此次 practice 成为将来的模范/模板
  2. "优化": Keep it simple, 相信简单的东西最有力, 最有生命力. 追求/探索 best practice, 然后 share 给所有 team

Sunday, June 19, 2011

Good Night, Beijing - by No. 43 in Baojiajie Street

So you want to learn Chinese? Singing a Chinese song is a good show-off to amaze friends. Just like many of us like to sing English songs while learning English.

But, Chinese pop culture might not be as "pop" as other well modernized areas', like Japan, Korea... You might have difficulty picking the "right" song to start.

In this blog series, I'm going to start (slowly) translating some Chinese songs I love, so you can really understand them before investing your energy.

Of course they are picked based on my taste, but I do have a pretty good taste :)

OTOH, though I'm pretty confident that my Chinese is well above many other Chinese people - thanks to my extensive reading/writing history - my English is still at early stage, so please bear with me if any grammar errors or dumb translations.

Here comes the first song: "Good Night, Beijing", by Wang Feng's old band "No. 43 in Baojiajie Street".

____

Good Night, Beijing

I will fall asleep in tonight's rain
Along with the humming road roller
Along with the cracking wounds
Fall asleep in tonight's rain

Good night, Beijing
Good night, all you sleepless people

Wind will be blowing north in midnight's ringing bell
Along with the begging boy on the street
Along with the broken tire by the side
Blowing north in midnight's ringing bell

Good night, Beijing
Good night, all you sleepless people

Good night, Beijing
Good night, all you lonely people

I've been through many sleepless nights
Falling into the city's gigantic illusion
Falling into a deep hole of my own
Been sleepless on the edge of insanity

Good night, Beijing
Good night, all you sleepless people

I'm sensing my growing tiredness
Hearing the sobbing violin through neighbor's wall
Drinking the meat soup cooked by this world
I'm sensing my growing tiredness

Good night, Beijing
Good night, all you sleepless people

Good night, Beijing
Good night, all you lonely people

____

Original lyrics:
http://list.mp3.baidu.com/gc/0/58/5813_somp3.htm

Original version (note: black screen mostly)


Live version:

Saturday, June 18, 2011

推特集 (2010/05)

  1. We engineers are darn stubborn problem solvers!
  2. You will get paid for what you've done - some ppl want that, some ppl don't.
  3. 北京的夏/依旧地炎热而干燥/路上这许多陌生的面孔/仿佛能和另一个十年继续擦肩//溃烂的会隐隐作痛/掩埋的会渐渐升腾//热浪将不期而至/袭击我们纤弱躯体间的罅隙/燃烧所有可燃的/躁动所有漠然的
  4. 所有代表权力的符号, 都有凌驾一切规则的许可, 扰民, 犯民, 辱民, 戕民.
  5. Bye Jack! I've been following you since I'm 22, now I'm almost 30!! #24Finale
  6. Beat the market means you have been statistically doing better than most of the people most of the time, not once or twice.
  7. Positive attitude makes bad things not that bad, gives you breath to look at new possibilities.
  8. Trees are quiet, they grow, they suffer, they die, they just don't speak.
  9. 遇到靠谱的人不容易, 能和靠谱的人共事不容易, 能和靠谱的人完成点靠谱的事更不容易.
  10. 难题解得好是聪明, 分数拿得多是策略.
  11. Trade both side, trade like an emotionless robot.
  12. 当人与人发生矛盾, 第一反应是联想到权和钱, 关系和人情; 而非理和法, 制度和步骤 - 在这样的社会, 弱势的你会没有怒气怨气, 不感到痛苦压抑?
  13. You don't have to be the smartest, just be honest to have smart guys be honest with you.
  14. 最美, 最长, 最强; 最豪华, 最成功, 最和谐… 他们以权和钱构建最多的最, 最有面子的最; 唯独不见最有人性, 最具良知.
  15. 在一个集体凌驾于个体的国度, 你我都是被统计的对象, 都是小数点后可以被和谐的精确度.
  16. Observe/analyze/understand/express/influence.
  17. If you ignore/disrespect someone's past/achievements, how could you know what makes him today and explore his future? #hr
  18. @ohblog 支持/尊重台湾人为自己的过去/现在/未来做出判断和选择!

推特集 (2010/06)

  1. 天下没有怕 QA 的开发团队,只有尊重 QA 的开发团队. - "叶问" 之开发版.
  2. 尊重, 信任, 理解 - 才能培养出好团队, 好环境.
  3. Try, before doubting.
  4. 新中关午餐遇好心人帮捡端盘子时不慎落地的一张餐巾纸, 心里特感激; 如果这社会里都是这样人, 那该多和谐!
  5. 看着校园里孩子们齐刷刷地立正稍息喊口号, 总会一身冷汗地想到他们有天会被一台巨大的机器以各种名义齐刷刷地收割.
  6. Luck is something good happens before you run out of dollars & patience. #startup

推特集 (2010/07)

  1. Know the "old" things before introducing new ones.
  2. Project management: from thrilling dream to sweaty execution.
  3. A product defines a way of thinking.
  4. 人道主义就是: 看着至今仍隔绝于世, 苦难深重的朝鲜人民, 你很希望自己能做点什么去启发他们帮助他们, 尽管非亲非故, 毫无政治企图.
  5. 十扇紧闭的门, 消极者看到的是满眼的拒绝与无奈; 积极者看到的是十种可能在等待自己去叩开.

推特集 (2010/08)

  1. 以身作则,以真换诚。
  2. Having somebody hate you is not a bad thing, at least it indicates that you are truly holding something.
  3. I want every teammate to grow up like a giant, so someday we together could build something great.
  4. Why money is made by sacrificing users values?
  5. Understand before suggesting.
  6. No email is good news!!

推特集 (2010/09)

  1. A tool should be built/used only if it simplifies things.
  2. Believability is the essence of story telling, movie making, animation, design and many others.
  3. 一个害怕自己历史与现实的政府会有怎样的未来? What future to expect for a government who's afraid of its own history & facts?
  4. Men: true/false; Women: love/hate.
  5. Tell the story slowly/patiently/elegantly/detail oriented... let audience hv time 2 breathe, but take their breath away at the right time.
  6. @jinguoli 建立好公司仍然是必须自上而下对理想对价值观有一致的理解和认可;一要找志同道合的人,二要把人当志同道合的用;@wenbob 的看法应源自现实中常是甲方不会待人用人或是乙方不善诚挚认真。
  7. To dream, to shape, to lead, to execute.
  8. Lots of us are doing things base on the assumption that "I'm going to live long, my kids are going to live well".
  9. 30 是道坎, 前面许多的他们半推半就地过了; 后面许多的你们前赴后继地来 ;-)
  10. Vision: strengthens hearts, tightens people, clears mess, resolves conflicts.
  11. 领导 - 习惯了别人给他绕道让路的动物.

推特集 (2010/10)

  1. How to know your users? Be with them, listen to them, want the things they want, feel the pains they feel.
  2. Spitting at a giant doesn't make you a giant.
  3. When lower your tone, you'll hear more; when lower your head, you'll learn more.
  4. If you insist/imagine you are better than anyone, you will lose any chance to learn, to grow.
  5. Overconfidence makes one stubbornly close-minded & unreasonable.
  6. 断章取义是如此节省脑力又是如此能煽动占人口大多数的简单思维者;这个系统里被简化成"人民"的一群,如此轻松又是如此饥渴地饕餮着传声筒那端不时吐出的皮毛肉屑,群情激昂;看不见悟不到这台巨大的机器屠宰时那具象的、绵长的、摧筋断骨细致入微的疼痛、血腥和恐惧。
  7. 中国媒体:捂着耳朵,蒙着眼睛,嗅着铜臭,昧着良心,张着嘴巴,说着瞎话。
  8. 反日青年们砸国人买的广本,说明一部分人反日是口号,仇富是心理;各种情绪积累太多太久了,就被引导着乘机着宣泄下。
  9. 凤凰卫视就一港版CCAV,好在有个别节目的个别人的个别言论还值得看看。
  10. ...work hard, before you are too "high ranking" to get your hands dirty.
  11. It's the details that make things sophisticated, enjoyable & fascinating.
  12. Matured means you are starting to understand that there are many details of execution from dream to reality.
  13. Having too many private/secret messages is an indicator of likely unhealthy communication.
  14. Work hard, before you become too old and too lazy.
  15. Tools are always needed for breaking boundaries, connecting people, enhancing communications.
  16. You will loose your ground when you are too used to being at the top.
  17. 越无知,越愚昧,越隐忍;越隐忍,越冷漠,越残暴。
  18. A day worths remembering, hope it's day 1 of all the bright days to come; hope we no longer suffers after 99 yrs of struggling. #liuxiaobo
  19. Soup has layers: some are light & clean, some are bold & thick, amaze you with one taste after/within another.
  20. If you don't learn by self the easier way, someone will teach you a lesson the hard way.
  21. To perform, to manipulate.
  22. Focus on different details at different stage.
  23. History takes time to happen, a better time is yet to come.
  24. He who keeps constantly thinking will reach mental places others never been, some are fascinating, some are terrifying.

推特集 (2010/11)

  1. 选举,至少可以淘汰掉不少长相官僚丑陋、凶神恶煞的,对整个队伍是一个重大的形象与面子提升,媒体上露脸时也赏心悦目些。
  2. 赚足了大块的面子, 毁够了细处的人性.
  3. 其实, 脱下制服放开头衔的你们, 也是有血有肉会哭会笑的人哪.
  4. 瓦解民间一切可能的信仰和追求/团结和力量, 保持其一团散沙的状态, 好处不言而喻: 只有在沙漠里, 才能无风时安定和谐一片宁寂; 起风时风舞狂沙卷哪往哪. 绿洲那边纤弱细小但郁郁葱葱的生命们, 只剩对大自然壮丽威仪的感慨惊诧了.
  5. U will have different types/levels of enemies, some're good & smart, some're bad & dumb; build a team to handle, good for good, bad for bad.
  6. viral means not only spreading but also copying/mutating into a phenomenon/trend, until global acceptance, becomes part of cultural language
  7. No matter how hard you pretend, your bad habits are murmuring who you really are; so strive to build good habits from the beginning.

推特集 (2010/12)

  1. 天朝:已过未过,将来未来。
  2. 1. Follow the right guy; 2. Prepared to be worth being followed.
  3. 1. How many problems known to us? 2. How to cover each of them with what solutions? 3. With what reasons a solution is picked/decided?
  4. Patience is your friend, he comes and goes; you will make some differences only when you make him stay.
  5. "What if I can easily..." is where great ideas come from.
  6. 不喜欢去医院或政府机构的一大原因:那里通常是让你感觉自己最接近畜牲的场所。
  7. A big picture is always needed so you won't get lost while struggling with day to day details.
  8. One day, your dream becomes fulfilling other's dreams.
  9. 天朝税收:取之于民,用之于仆。
  10. 现实生活中有太多的懒人和坏习惯让你可以跟随着去放松和放纵,不经意你就成了平庸的大多数。

推特集 (2011/01)

  1. 媒体每次试图说点什么, 就被系统地粗暴地河蟹下去. 你认为这会让他们多些恐惧还是增长些愤恨? 试想, 人嘴一张, 你就扇他一巴, 哪怕街边最孬的阿斗, 能说他没有扯开脖子跟你吼上一嗓子的一次?
  2. idea (virtual value) + execution (real investment) = true money (gain or lose)
  3. 有组织要阻止试图组织的以确保能继续控制无组织的. The organized will prevent those who want to get organized so to stay in control of the unorganized.
  4. Web design: what a big blank screen estate that you can combine every little space/pixel/color to deliver, to manipulate visitors' minds.
  5. If you don't invest for the future, you will be playing catch-up in the future, right?
  6. 五千年文化,丰富得不肖子孙可一代代如此肆意地摧残与糟蹋?
  7. Engineering: everything must be crystal clear, every small detail must be testable, verifiable, explainable.
  8. Good enough is not enough, will there be no market for a truly great product?
  9. Dream, believe, do.
  10. When able to act like professional machine, you can exploit human errors.
  11. 搬走了三座大山,迎来了珠穆朗玛。
  12. 看着孙中山/蒋介石的后人都能过得挺正常的, 颇有些感慨.
  13. 在此文艺史哲皆为政治附庸的环境里,何来孕育独立之思想,自由之精神的土壤?所有聪明的、锋利的、讽喻的、批判的…片言只语在企图前已为盛世和谐,胎死腹中。也难怪春晚这符号性的舞台上有的只是歌功颂德装疯卖傻罔顾左右而言他的嬉皮笑脸一场戏。
  14. Kids are kids, their laughs are laughs, cries are cries; adults are not adults, their laughs could be laughs, cries could be cries.
  15. 一个美国大兵从敌后被救回,感谢的顺序为:上帝,家庭,国家。
  16. 早上看段 TED, 白天读圈 Feeds, 公车学句 Japanese, 睡前啃本 eBook - iPad 式好好学习, 天天向上.
  17. CEOs are those who can always think/act bright, so others can stand strong - what a tough job.
  18. Be straight, so curve differentiates; be bright, so shadow appears.
  19. Your real competitors are those who hv been working as hard as you or harder; the others are just luckier, which is not likely to last long.

Friday, June 17, 2011

推特集 (2011/02)

  1. Do you have the capability to envision the future, and stick to it with great courage, patience & persistence?
  2. A "good" piece of information is one that provoke curiosity/thoughts/talks between people.
  3. If a design "looks" complex/complicated, it could be an early indicator of failure.
  4. Design is about finding/evolving optimum solutions for problems.
  5. 日本的牛奶养起了国民的平均身高,天朝的牛奶喂残了花朵的基本健康。这些狗官奸商们真个八嘎亚路地不怕来世报应。
  6. We are good at consuming/processing graphical info.
  7. Design is about giving out pieces for user to make up a whole story. Wrong pieces selected will misguide user to unintended/broken picture.
  8. 真正解放了的人,是有爱有恨、有喜有悲、能怒会怨的人,而非一直和谐地笑;如同解放了的女人的脚,才有美腿宜人、丑脚驱鬼,而非一色的三寸金莲。
  9. Imagine what it should be in the future; plan w/ acceptable compromises. If none, wait 4 the right fit instead of delivering sth crippled.
  10. "Invest" is betting what the future will be, not what already is.
  11. 同志一声荡九州, 惊雷未下龙蛇守. 埃及烽火连天碧, 长城内外别样红. 童鞋应有惊天志, 南墙不破不回头. 春来百花枝头俏, 一览山河醉重楼! //胡诌一首, 新春快乐 B-)

拾遗



把音乐关掉
把房间擦净
把衣服叠好
把自己就放到寂静里一尘不染
四肢整洁 不思劳作
让情绪的池子沿呼吸管道与血液脉络渐溢渐枯

2007.05.12


两首, 给她

一.

亲亲你的脸
听听你的呼吸
世界安静得像浮在空中的大树

树上花开
树下草长
树里的阳光斑驳流淌

待到花尽叶落
我们在白色的隆冬
烈烈燃作淡淡尘埃
只余微风禅语欲静不止

2007.01.02 11:37:10

二.

老伴
我牙又掉啦
看你乐得!
数数额头
你的皱纹比我的多上一根!

我们和时间追追赶赶
而今她也老得滴滴答答
像我们清晨拄杖相搀的石子路

世上的娃一茬一茬
像嫩嫩的芽长成艳艳的花
有几个会在看你画下的他?
几个会在读着字里的她?
几个在悄声说着她和他?

在遥遥远远的未来
我看见黑暗中稳稳驶来的列车上
他将悠长的日子在短信里一气呵成
有过的曲折无非溅起的浪花
生命终将无声入海
一片蔚蓝

2007.01.02 22;09:08




河岸上笔法繁复
河岸上尘世喧嚣
只有我
不着一笔
日夜东流

2005.06.26.21:45


远方


在远方行走
在远方浅笑轻颦
在远方眉头低垂


在我心里很远的地方

2005.06.20




风在嶙峋的城市里行走
云在暗红的夜幕上变着你的模样
人们在一方方水泥格子中碌碌睡去
朝北的阳台上彻夜立着我的身体和倾斜的影

想着远方那只亲切的猫
想着她柔软的脚爪会在深夜里爬过我梦的屋脊

2005.05.29.01:51


病句

夜色臃肿的身躯霸道地侵入每寸时空
没了信号的电视在墙角一波波地抢占神经的焦点
铁制的床承着肉质的身
唯有心与夜的密度相当
因此空空漠漠, 不浮不沉

这里少了一个代词
没了相关的动词
我在人世的字里行间
成了一个病句

2005.05.18.22:54/05.29


无题


牵着云做的帘
卷着彤色的城
敛向天际

楼宇间
是圆柱和方体的暧昧
金属与木石的亲密

霓虹勾出几何的时空
一格格亮起归宿的灯火

一片草地铺陈一方绿色的柔软
MP3 里收藏二十二个电台
跳跳听听
总有一个最随心

2005.05.13.傍晚/05.29
陪大家去踢球, 负责后勤与看球...


栀子花开

城市的声音在马路上庞大地行驶
人们的面孔藏在伞下阴声细语地走

大雨滂沱
一种坚韧的柔软在这嘈杂的夜色里似有若无

2005.05.10.晚/05.29

(旧文) 一个好的工程师应有的特点


怎样算是一个好的工程师? 做过工程的朋友想必都有自己的想法和标尺. 这份文档里我提供一些基于自己的经验, 观察和思考之后的心得小结, 欢迎指正 :)

1.学会聪明地提问

  • 提问前做好功课: 
    • 精读官方文档 (像我们华美汉盛大量使用开源技术, 可能的话, 自己看看源代码), 通常文档里有你想要的各种答案. 而且像 php/mysql 那样的站点文档都让用户可以直接参与讨论, 在这些讨论里有大量的有用的实例, 阐释, 经验可供释疑解惑
    • 善于搜索 - 懒惰的话, 直接上 google. 如果希望更有目的性, 建议先在其官方的论坛/邮件列表上搜索 (像我这个 gentoo 用户, 遇到 gentoo 问题的首选是上其官方论坛, 大部分的问题都能通过论坛的搜索得到答案; 又比如 django, 我通常在其官方邮件列表里搜索, 许多我们会遇到的问题都在这里被解答过了, 也就没必要问了:) (注: 邮件列表的特点在于发出去的都是邮件, 订阅了的才能看到, 这时我们需要一些邮件列表归档服务来协助我们进行搜索, 例如, Gmane 就提供了对许多开源相关邮件列表的归档, 可以在这里进行问题的搜索和查找)
    • 在搜索引擎里搜索时需要学会如何去 "narrow down" (缩小) 你的关键字范围. 假设你英文比较好, 那么就直接用英文描述你的问题 (或者直接拿错误输出往搜索引擎里贴); 如果英文不好, 那就先用中文关键字, 当你定位到某个帖子 (中文/英文的皆可), 可能的话, 从里面找到一些跟你问题更接近的一些关键字 (尤其是英文的), 然后以这些新的关键字带领你继续逼近答案. 例如, 之前我的笔记本在 linux 关机时硬盘会发出 "噔" 的一声, 十分异常, 于是我首先想到的关键字就是 "linux shutdown noise". 当时网上关于这个问题的讨论并不多 (现在不一样了:), 通过这三个关键字出来的资料里, 我大约猜到是因为我的硬盘是较新的 SATA 型的, 接着把它再加到关键字里, 更多的资料将我引向 kernel 中 libata, 于是 libata 也成为我的一个关键字... 最终我定位到内核的这个 bug report - 已经有人在我之前发现问题了 - 于是经过一段时间的等待, 现在, 这个 bug 也修复了. 这次搜索经历带给我很多知识, 比如我知道了声音从何而来, 因何而生, 内核又是最终如何处理这一问题. 尽管我之前对这些毫无概念, 最终我不需要任何提问就得到了问题的答案! 个人感觉是: Linux 下每个问题的发现和解决都是一次奇妙而快乐的历程! :D 
  • 提问前做好准备. 当上面的功课无法解决你的问题了, 说明你很可能真的遇到棘手的了, 那么, 我们在提问前要先做好一些准备工作, 以确保自己的问题够质量:
    • 精心准备好问题的标题. 切忌使用 "求救!!", "紧急!!!" 之类的毫无意义的, "吵闹" 的文字 (英文里切忌使用全部大写). 开源社区里许多工程师通常都在工作之余, 免费地为你做事情, 他们没有义务回答你的问题, 他们更讨厌嚷嚷的人 (工程师都爱安静, 是吧? 呵呵). 我们一定要抓住他们的一大心理特点: 喜欢有趣的, 有挑战的问题 - 因为前者可供娱乐, 后者可秀技能 :) 所以, 我们得让自己的问题变得很有吸引力 - 这就要求我们得做好前面说的 "功课", 使得我们对问题有深刻的理解, 然后通过精简到位的言语, 把问题总结成一句话, 问到点子上. 
    • 提供充分的, 但不冗余的信息. 在我们准备好 "诱人的" 问题标题之后, 就得把问题的内容填充实了. 其中要有条有理地说清楚自己的问题, 如果是 bug 的话, 务必描述清楚完整的重现步骤 (最好自己按这些步骤重现两次以上!), 还有相关的可能有用的系统环境信息, 程序出错时的日志, 命令行的 traceback, debug 程序抛出的信息... 切记把无关紧要的信息清理掉 - 这需要你的知识的判断, 通常各种日志或出错信息都是很长的, 而关键的, 便于定位问题的通常就是某几行 - 例如 gentoo 里 emerge 出错的日志, 通常是倒数 10~15 行内就带着关键原因 - 我们需要做好 "噪音" 信息的过滤工作 - 这也是我们要做的功课 - 信息提供得越精准, 问题得到快速解决的可能性越大. 最后要把自己曾经做过的努力和研究的 "路径" 给提供上 - 这表明你是个 "勤奋的蛋" - 有经验的工程师会喜欢这样的, 而且通过你的 "路径", 通常有经验的工程师可以快速给你指点正确的方向.
    • 怎样算是一个好的问题? 很简单, 好的问题让人一读就懂, 如果你的问题出来之后, 别人还得再找你反复问各个细节, 那么就是一个烂问题 - 别期待别人会免费地为你的问题来回折腾 :)
  • 公司中如何提问? 在公司中我们有个和在网络上生存不同的特点: 时间限制 - 公司项目中, 每个任务通常都得在一定的时间内完成, 不可能给你那么长的时间去慢慢查找/研究. 因而, 一旦我们遇到某个问题, 在着实做了一定研究之后, 仍旧毫无头绪, 这时一定要尽快寻找别人的帮助. 同时, 我们的 Senior Engineer 通常不会直接 "喂" 你答案, 更多是告诉你方向在哪里, 然后需要你通过自己的努力和勤奋, 最终学会解决问题之道 :) 根据我的观察, 经过几次这样的训练之后, 每个工程师最终都能成为自己解决问题的高手 :)
  • 提出问题的同时, 提供你思考过的可能的解决方案 (别等着别人喂你) 
  • 延伸阅读: 经典的 "How To Ask Questions The Smart Way".

2. Open-minded (思想开放)

公司的特点要求我们在有各自的专长之余, 还需要具备很强的学习欲望, 学习能力, 随时掌握新的知识技能. 在遇到新事物新技术的时候, 我们应该有足够开放的思想去接纳它, 学习它, 这里有关键的几点:
  • 先接受 - 相信比你有经验的人的判断和选择
  • 评价前先做足功课 - 先把新东西毫无成见地学习透了, 再和已知的, 自己擅长的技术进行比较 (@TODO: "要喝我的茶, 先得把你杯里的水倒掉"; 切忌以旧套新, 生硬理解)
  • "用什么说什么".

3. Eager to learn, be lazy, be creative, be patient, fear not for failure, be reliable/predictable

4. Good documenting for solved problems (don't repeat your mistake)

5. Always looking for better solution - I can do it better next time!

____

(旧文) SVN Practice


完全无 SCM 知识/经验

SCM Definition from wikipedia
Quote:
Software Configuration Management (SCM) is part of configuration management (CM). Roger Pressman (in his book) Software Engineering: A Practitioner's Approach, says that software configuration management (SCM) is a "set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made." In other words, SCM is a methodology to control and manage a software development project.
从上述引文最后一句我们知道: SCM 是用以控制和管理软件开发项目的一种方法学. 它本质上只完成一件事情 - 管理变更及变更间的关联与关系.
在公司的实际开发活动中, 我们使用了以下工具以完成 SCM:
  • Subversion: 源代码管理软件 - 从源代码层面上对变更进行管理 (lowest level).
  • Trac: 项目活动管理软件, 它提供以下主要功能
    • Tickets: Trac 扩展了像 Bugzilla 这样的软件缺陷 (bug) 跟踪系统中 "Bug" 的概念. 在 Trac 中一个 Ticket, 不单可以是一个 bug, 还可以是一项功能任务, 一次功能增强的需求. 总之, 所有具备 "创建/优先级/指派/处理/解决/关闭" 这样模式的生命周期的事件项 (issue item) 都可以通过 ticket 提供统一的管理 - Ticket 从软件开发中的事件/活动层面上对变更进行管理 (medium level).
    • Wiki: 具备协同创作/版本控制/交叉引用等功能的 wiki 为软件开发活动带来了极大的便利. 在实践中, 我们主要使用 wiki 完成如下任务: (highest level)
      • 生成/管理项目文档 (需求文档, 测试文档, Release Notes... 在文档中, 我们可以通过 Trac 的交叉引用功能在 tickets 和 changesets 之间轻松生成关联链接, 以便跟踪每个具体的事项都涉及哪些层面上的变动)
      • 生成/管理技术文档 (开发过程中针对具体技术的一些知识积累, 分享)
    • 其他: Trac 还提供各种其他功能协助我们管理项目的变更及其相互间的关系:
      • Timeline: 这里是我们所有项目开发活动的鸟瞰图, 它按时间顺序列出 Ticket 更新, Wiki 变动, 源代码提交等活动 - 我们从这里可以快速知道所有变更.
      • Browse Source: Trac 提供了方便的 Web 界面供我们浏览代码仓库中的文件. 我们最常用的功能是浏览一个 Changeset (变更集), 它可以列出某次提交中涉及的文件列表, 以及高亮显示每个文件的具体变动. 我们还可以用它来查看指定 revision 的文件等.
综上所述, 我们公司通过 Trac/Subversion 这两大工具, 将最高层的项目需求, 到中层的任务/缺陷, 以及最底层的源码所涉及的一切变更都管理起来了.
下面我们先就每天都要打交道的源代码管理软件 Subversion 进行了解, 看看在公司的日常开发中, 我们都用到 Subversion 的哪些方面.

用过 VSS

不少 Windows 下的开发人员对 VSS (Visual Source Safe) 并不陌生, 这是微软自己推出的卖钱的源代码管理软件; 而接触开源软件较多的人则可能更常听到 CVS 和 SVN (Subversion), 它们则都是免费的, 源代码开放的自由软件, 开源世界中大量的项目都是通过 CVS 或 SVN 进行源代码管理的.
SVN 是由 CVS 的原作者在总结 CVS 的长短之后的一个新的实现 (?). 我们下面着重讲 SVN. (@TODO, more refs)
SVN 和 VSS 都具备源代码管理软件基本功能, 诸如 check out, check in, diff, update. 而由于两者诞生的环境的不同, 使得 SVN 和 VSS 在 check out/modify/check in 这一主要功能上有不同的实现模式:
  • VSS: lock -> modify -> unlock
  • SVN/CVS: copy ->  modify -> merge
可以看到, VSS 在 check out 一份代码的时候就给代码加锁了,  直接 "断绝" 掉多人同时修改一个文件的情况; 而 SVN 则不是, check out 的代码仍然可以被多人同时修改, 各个改动间自动进行 merge, 如果遇到冲突 (例如两人同时改了同一行代码), 则需要开发人员自己进行交流, 最终手工 merge 彼此的变更.

VSS 和 SVN/CVS 在锁定和非锁定上的处理源自应用环境的不同. 
VSS 产生于微软这样的 close source 的企业, 而在这样的企业里, 开发软件时, 团队成员间通常就在一个办公室里, 文件的锁定/解锁的协调相对容易, 任务也许可以真的分配到一个人就在一个文件上工作; 但, 在开源世界里, 开发人员来自世界各地, 在世界的每个角落/不同时间里参与着项目的开发, 如果你今天在北京把一个文件锁住, 晚上没做完, 没提交, 然后睡觉去, 我们美国的同志们若也参与这个功能的开发, 那么在北京时间凌晨 2:00 的时候, 你尚在美梦中, 而那边已是早上 9:00 的工作点, 这样就没法对这个文件进行修改, 只能等到你呼呼睡醒, 北京时间 9:00 上班, 而美国那边已经是 16:00, 浪费大半天, 该下班了...

那么我们在公司里, 是不是其实应该很适合用 VSS 呢? 举个简单的例子就知道不行了 - g20 项目中我们有个 g20.js 的文件, 所有 ajax 相关的功能都在这个将近 6K 行代码的文件里完成, 我们的同学们经常需要同时并行着做两个以上的功能, 这使得我们不可能采用锁定的模式. 而 SVN 的拷贝-修改-合并模式并没有在现实中带来想像中的那么多 "冲突" - 只要功能拆解得当, 不会出现两个人同时修改同一个文件同一行的情况, 最常见的情况就是你在 200 行后加了个 function, 我在 300 行后编辑了一些条件判断.

关于两种模式的深入比较, 请参看 SVN 的官方文档.

用过 SVN

在实际使用 SVN 时, 我们需要养成一些良好的习惯, 它们有助于 PL/PM 更好地得到项目信息, 减少不必要的询问/确认这样的交流代价; 也让团队成员之间可以明确地知道彼此的开发活动情况.
  • 开工前先 update. 在开始我们一天的开发活动之前请记得 svn up 一下, 以取出代码库中最新的版本. 因为每天你的团队伙伴们和你一样都在代码树的不同指节上做着开发, 一天结束之后, 代码库里都会增加很多修改, 保持自己本地拷贝的新鲜度, 也许昨天存在的某个影响你的 bug, svn up 之后就已经修好了.
  • 提交前先 status/diff. 每次提交前务必确认自己这次修改所涉及的文件/代码行的变动是 *确切的, 必须的, 没有冗余的*. 我们可以用 svn status 列出所有被修改过的文件; 然后以 svn diff 逐个查看修改过的文件中的代码行变动 *是否确实目的明确的, 有意义的*, 我们有时会不小心加多一个空格, 敲多一个换行, 这在 diff 的时候同样会被列出来, 这些 "变动" 属于不必要的 "噪音", 是不应该被记录到源码库里的, 我们在发现这些 "噪音" 之后就应该把它们清除出去 - 手工恢复原状即可.
  • 细粒度, 经常地, 有目的地提交必要的修改. 我们每次修改通常都是有明确目的的, 为了新增一个功能, 为了修复一个 bug. 在对代码进行变动的时候, 我们应该保持完成一个目的之后就进行相应的提交的习惯, 要避免把好几件事情都做了 2 ~ 3 天之后再一口气提交这样的做法 (我们会遇到大量代码需要变动的情况, 例如重构, 这时要用 svn 的另外一个功能来完成: branch, 后面会对这个进行说明). 这样通常会使得你的提交过程痛苦一些, 因为这些天已经有了不少变动, 和你的代码产生冲突的机会也递增了. 另外, 这样会使得你的 check in message 变得不好写, 我们下面来说这一块.
  • 提交时一定要写 message. 所有源代码管理软件在提交时都提示 (而非强制) 你要写一段文本, 藉以对这些代码变动进行必要的说明. 我希望给大家建立一个强烈的概念 - 这样一段文本对项目管理非常非常重要, 千万不要偷懒不写或随便写! 这段文本的主要目的就一个: 说明我为什么做这些代码变动. 当每个 changeset 都有对应的 message 的时候, 作为项目的 PL/PM 就可以轻松地从 Trac 的 Timeline 上知道每个团队成员都在为什么目的做什么变动. 我们再用上  [1234] (changeset), #4321 (ticket) 这样的格式来利用 Trac 的交叉引用功能, 就能达到更好的效果 - PL/PM 可以通过 Timeline 知道哪些 Changesets 之间有关联, 哪些 Changeset 完成了哪些 tickets, PL/PM 可以不用来搔扰你, 打断你的思路就可以知道任务进展情况了; 再者, 写了 check in message, 也方便我们开发人员自己在必要的时候可以快速搜索/定位一些 changesets, 我们有时想回溯/确认某次修改时都做过什么事情, 是否因那次修改引入了某些新的 bug... 这时, 我们在每次 ci 时提交的 message 就会帮到我们, Trac 会对它们进行索引, 我们随时可以通过 Trac 的搜索, 快速找到可能的 Changesets; 对 PL/PM 来说, 这些 message 还有另外一个价值, 那就是在为客户写 Release Notes/Change Logs 的时候, 可以很容易地从这些 message 中整理出来, 而不用回头再搔扰开发人员, 多余地确认你做过的事情. (svn check in message 我们还有自己的约定, 这个另外专题讲述)
  • conflicts 出现时, 务必谨慎地, 细致地进行手工 merge/resolve. SVN 的 copy-modify-merge 模式通常不会带来什么 "麻烦", 我们做 svn update 的大部分时候都会看到自己刚改过的, 尚未提交的文件前头有个 G, 这表示 SVN 聪明地给你自动 mer[G]e 了别人的更新和你当前的改动. 当然, 我们始终会有遇到 [C]onflict 的时候. 但只要遵循了之前的细粒度, 少量的, 多次的提交习惯, 这冲突一般都在 < 20 行内, 很容易可以手工合并的. 遇到冲突时, 我们一定要要非常留心: 千万不要把别人辛勤劳动的结果给覆盖了. Conflict 是正常的, 可轻松解决的, 不存在别人的改动给自己带来任何麻烦的说法. 解决 conflict 很简单, 我们只需打开处于冲突状态中的文件, 找到类似这样的地方:然后做出你的技术判断, 看看到底是将两个块合并, 还是择其一而用之, 或是两部分都改动, 最终合并出一个结果. 通常这时候我们还需要和做了 revsion 2 变动的团队成员进行沟通, 确认他的改动的意图 (你也可以直接看 changeset 的 check in message ;), 确认这部分的合并方案.
    有人可能会好奇, 为什么 SVN 这时就这么笨了? 它为什么不直接合并两个修改部分? 其实, 能自动合并的部分, SVN 已经尽责了, 面对这种两个变动发生在同一处的情况, SVN 认为, 这时候该交给更聪明的人类来解决了 ;)
    在我们手工细致合并完毕之后, 记得 svn resolve 这个文件, 然后做 svn ci 即可. 
  • svn config. 我们看看一些常见的 svn 的相关配置.
    • EOL; (@TODO: Cheng help me with this part?)
    • ignore: 我们在 svn status 的时候, SVN 会把未加入版本控制的文件项列出来, 然后前面加上 ? 号. 当我们有很多像 .pyc, .tmp, .o 文件的时候, 这些会对我们查看全局的变动情况产生 "视觉噪音". 我们可以通过配置让 svn 无视它们的存在 - 编辑 ~/.subversion/config, 找到 global-ignores, 然后把你不想见到的非版本控制中的文件都列上去, 例如: global-ignores = *.swp *.o *.lo *.la *.pyc sess_* default_* (@TODO: how to windows?)
    • proxy server. svn 还可以配置代理服务器, 编辑 ~/.subversion/servers, 在最后的 [global] 部分里加入两行即可:
      http-proxy-host = www.your-proxy.com
      http-proxy-port = 8888
  • branch, merge (rollback)
    • branch: 我们在进行源代码管理的时候通常还会遇到这样的需求 - 一段时间内需要对原有代码进行大量的改动, 而且这些改动可能会让已有功能不能工作 - 例如重构. 当我们遇到这种情况的时候, 就需要利用 svn 的分支功能, 将现有代码拷贝一份出去进行单独的版本管理. 在那个分支上, 我们就可以进行大刀阔斧的改动, 而不必担心影响 trunk 上已有的, 甚至已经给了用户的代码的稳定性. 
    • merge: 我们在一个或多个 branch 上的变更, 到了一定时候, 是可以互相合并的, 包括 branch <-> branch, branch <-> trunk. 例如我们现在对 g20 代码的管理方式是, 到了一个版本, 我们就做一个 branch 出去 (例如, alpha-1.0, alpha-2.0 ...), 而 trunk 保持活跃的开发. 这些独立分出去的代码枝就拥有了自己的生命, 必要时, 我们可以在 branch 上为客户做一些小的修改, 满足一些他们的新需求, 然后再 merge 回 trunk 或者不 merge - 取决于具体情况.
      merge 除了做分支间的 "大动作" 的合并之外, 还可以做单个文件的 revision 之间的合并, 我们可以利用这个功能, 在提交了错误的 changeset 之后, 用 merge 来 undo 你的修改, 例如, revision 1234 是我提交错了的, 那么, 我们只需 svn merge -r 1234:1233 就可以 undo 了, 当然, 最后还需要 svn ci 一次 :)
  • use google code to practice: 要练习 svn 的各种命令, 可以用我们专门为学习 svn 创建的一个Google Code Project 来无风险地练练, 或者自己装上 subversion :)
  • GUI (小乌龟, esvn) (@TODO: Cheng help me with this?)
  • 常用简写/参数:
    • svn ci = svn commit 
    • svn st = svn status
    • svn up = svn update
    • --dry-run: 假装跑一次, 让我们知道什么文件会被更新. 我们在 svn ci, svn  up 等命令的时候可以加入 --dry-run 这个参数, 以便测试实际哪些文件会被动到. 

SVN Check In Message Conventions

 Svn check in format:
<Prefix>: <message goes here>.
The check in message should be short but straight forward for others to understand. We need to ensure that: other developer or the project lead know exactly what you did in this changeset once they read your message, and they don't have to ask you for further explaination. (@TODO: benifits)
Prefixies:
  • ADD (Add): adding directories, files
  • BRN (Branch): branching
  • CMT (Comment): comments added to code
  • DEL (Delete): removing directories, files
  • DOC (Document): document related changes
  • FIX (Fix): bug fixing
  • FMT (Format): Code formating changes 
  • INI (Initial): initial import of a project
  • MRG (Merge): merging from revision to revision, branch to trunk, etc.
  • REV (Revision): stable/small changes
  • WIP (Work In Progress): not yet finished changes, for example:
    • you need to check in your code before other developer could work on it for a feature;
    • you need to check in since it's 18:00, you would like to work on it tomorrow, or
    • you need to check in before making to many changes

How to Deal With System-specific Configuration Files

在一个项目的代码中,通常有数个配置文件也被置于版本控制之下。然而,这些文件的特点在于,其中有些配置项在每个系统上是不一样的,例如,每个开发人员 checkout 的目录就不一样,部署到外部服务器上也不一样,如果这个文件仍旧和其他代码文件一样对待,首先在 ci 时就得时时提醒开发人员不要提交你的本地定制,二是每次 svn stat 都会看到配置文件前面有个 M 这样的“噪音”,三则一旦不小心提交了,所有人自己的定制都面临可能有冲突的麻烦,尤其生产服务器上的更是不能随便出问题。

以下解决方案来自我们一位客户的经验,值得我们学习!


We typically identify files that contain system-specific configuration information, and name the versioned copies of the files with a  supplemental .default suffix. Such files contain clearly-generic values for system paths, DB connection parameters, and the like.

We then make a copy of this file without the suffix, and set up the `svn:ignore` parameters in the parent directory to ignore that file.

Let's examine this approach using a particular file from the project:

  /trunk/src/cake_project/app/config/rebuild_database.sh

Assuming I've checked out the repository to $client's `DEV` server  filesystem, and have cd`d into app/config in the project files, here's  what the process looks like from a terminal session:

 $ svn mv ./rebuild_database.sh ./rebuild_database.sh.default
  A         rebuild_database.sh.default
  D         rebuild_database.sh

 $ svn propset svn:ignore 'rebuild_database.sh' .
  property 'svn:ignore' set on '.'

 $ svn commit . -m 'rebuild_database.sh is no longer under danger of wildly reverting commits.'

From here, I could continue to edit rebuild_database.sh as frequently  (or not) as necessary, and the file--changed or not--will never show  up in svn status queries, nor will changes to its contents ever be  committed into the repository.

____

原帖: http://groups.google.com/group/acg-school/web/svn-practice

Thursday, June 16, 2011

莫联想 (两则)

真人真事, 记下一乐.

1.

某天下班, 尾行两位结伴且衣着清凉的辣妹, 其中一位电话ing: "我要的黄瓜你买了吗?... 哦, 太好了!"

2.

前几天去 7/11 买午餐, 一高大发福, 略微秃顶, 着条纹短袖, 衬衫下摆掖西裤皮带里, 颇有领导范儿的中年男人, 在女生丝袜的架子上来回挑了半天. 一店员 (男性) 过去, 好像和他交流了点什么, 他最终摸摸脑袋, 大踏步走了.

6/15/2011

Wednesday, June 15, 2011

招个给力的工程师可真难啊

感觉现在毕业生的潮流是:

1. 简历简单得让你没问头.
2. 水分巨大. 刚面一哥们,

(1) 连 "protected" 都听不懂说不清楚, 技能上写 Java "精通". (我的英语口语算是地道的了, 念了半天 "protected", 哥们没听懂, 直到写白板上, 方恍然大悟: "你说的是保护啊!" - 英文听说读写还说 "良好")
(2) 连 "transaction" 都听不懂不理解, 技能上写 MySQL/Oracle "精通".

只好提醒他:

(1) 基础要补好
(2) 别随便写 "精通"

Tuesday, June 14, 2011

风里的盒子

风里的盒子
风里的水泥格子
大雪很快要卷着记忆铺天盖地

窗外的洁净
窗外的漠漠死寂
记忆的咆哮在透明之外悄无声息

10/17/2009
(夜,窗外狂风大作)

我.们

纪念 5/12 旧作,今年有感于环球时报狗屁倒灶的社论,曾 tweet:

千面中国,只有你一张最有脸的表情;
黄土盈尺,找不到一个念得出的名字。

____

我.们


这点故事 顿然撕开
我们 变成了不见的我 和悲伤的们
撒落于硕大的抑扬顿挫

这些
零零碎碎的文本
要怎样
才能回复平缓的叙述

05/20/2008 公车上
02/05/2009 晚

北京,雨

雷电大作,风雨交加,夏天是生机勃勃地来了,翻起手机里去年的旧作:

雨水 踩着夜色高耸的宫殿 纷至沓来
路灯织就的斗篷 在风里猎猎作响
千肢百骸 万木起舞

这是一场浩茫的葬礼
所有渺小的生灵都要被践踏
前方 是无穷无尽的混沌

7/12/2010

Python reload() 不会 reload 你的 django model

自作聪明地:
>> from myapp import models as mymodels
然后试图边改 django 的 models 里的类, 边调试, 以为可以不用 Ctrl + D 退出 iPython, 仅仅
>> reload(mymodels)
就能让改过的类生效, 结果无论如何调代码, 总是报一样的错, 直到把其中一个类改名后, 发现报错时还是旧名字, 才恍然大悟, 丫没给我 reload 啊...

老老实实在改过 models 后, 重开 manage.py shell.

(旧文) 小记: 三里屯苹果店换掉膨胀的电池

从某时开始, 就发现自己 Macbook Pro (late 2008) 背面的电池盖有点突出不平, 一直以为是金属受热久了, 变形了,
还自己试图轻微扭扭, 矫正下下.

直到前晚, 打开后发现几乎无法重新盖上, 才意识到: 哇嘞, 电池变肥了! 中间能看到鼓鼓囊囊的, 就是这把电池盖顶歪, 以致难以盖上的.

搜了下, 发现这是个已知问题 - "swollen battery" (06/07 年就有记录了):


然后知道国外不少用户直接跑苹果店, 哪怕过过了保修期, 哪怕没有 AppleCare, 都有成功换新的案例:


于是昨晚下班后就跑去三里屯了.

找了位 genius, 他很热情地接待了我, 带着歉意的感觉听我说完情况, 正准备要给我换, 看见我的电池是 "可拆的那种", 即最早的
unibody 的 mbp, 他说可能不能换了, AppleCare 只覆盖那些电池不可拆卸版的 mbp. 我表示不解, 他说帮我问问.

一会就跑回来了, 很抱歉地说: 确实不行.
我说: 国外都可以的, 官方论坛上很多用户都是直接去苹果店换的, 哪怕没有 AppleCare 或出了保修期.
他说: 是吗? 我问过我们的 genius 了, 他说不行的.
我说: 我很担心这个电池会不会爆炸, 威胁我的人身安全. 我知道说法是 loadCycle 超过 300 就确实不能换了, 我的只 118.
他说: 嗯... 这样吧, 您预约了吗?
我说: 没, 直接过来的.
他说: 这样, 赶紧给我您的姓名和邮箱, 我给您补约一下, 今天还有一个名额, 7:45 的 (注: 大约 10 分钟后). Genius
会解答您对安全的担心的.

我写下信息后, 他很快地就跑去预约好, 还细心地把写着我个人信息的纸条还我: "这纸条您拿好, 上面有您的个人信息." 相当赞.
期间他在帮助其他客户的时候, 还不时替我关注是否到我了.

终于, 远远看到他和另一位高高的 genius 朝我这边指了指, 我就过去了. 那位 genius 拿着电池看了眼, 没说话, 走开了,
回来时手里拆着一个新电池, 递给我. 我装上后, 开机, 他说: "没问题吧?" 我说: "没问题."

启动后, 用 coconutBattery 确认电池基本信息 (loadCycle: 0 - 崭新). 很高兴,
关机时朝在旁边忙着的他道了声谢, 他似乎没听见. 机器休眠好后, 特地举他面前, 再说了声 "没问题了, 谢谢!" 他还是忙着别的,
没反应. 当时有点小郁闷 - 哥们不太 happy? 还是真的太忙? 谢你两次呢, 给个眼神确认下吧? 又或者我过敏?

不过在装好本本离开时, 之前那位 genius 仍旧热情地问了声: 怎么样, 搞定了吗?
我举起大拇指, 很开心地说: 搞定啦!

心情瞬间又好了起来 - 苹果的售后保障和服务还是让人舒心得配得上 "GREAT" 来形容的!

4/26/2011

原帖:
https://groups.google.com/group/nkeric-daily/browse_thread/thread/214a7277d4db2b26/c3964e43c96d11fd

Sunday, June 12, 2011

啥?

路人1: …
路人2: 看啥?
路人1: 没啥…
路人2: 那还看啥?
路人1: 听说有点啥…
路人2: 到底有啥?
路人1: 不太清楚是啥…
路人3: 你们在讨论啥?
路人2: 听说这里有点啥.
路人3: 那是啥?
路人1: 还没看出啥…
路人4: 啥时候才能看出点啥?

路人n-1: (都干啥呢?)
路人n: (这~么多人, 都干啥呢??)

警: 喝! 干啥呢?!
众: 没啥…
警: 那都挤这儿干啥!
众: 想看看他们在看啥…
警: 那都看见了啥?!
众: 好像没啥…
警: 没啥还看啥?! 走!
众: 为啥?
警: 不为啥! 走起来!! 不许逗留!!!

众散.

(4/13/2011)

推特集 (2011/03)

  1. 二十多年前,日本造的乐声(National)电视,让我家用到去年才以旧换新地健康退休;三十多年后,中国制造仍是低端廉价的代名词,山寨伪劣得连国民都不敢消费。这片大陆究竟怎么了?
  2. 强国断然靠的不是外强中干万年常青的人造树,而是草木竞演四季兴衰的自然林。
  3. 真不是别人对咱有偏见,而是一以贯之的河蟹洗脑,让我们在全球现代化的版图上站得真是很偏。
  4. When patterns found, brain can save energy and stay focused. #design
  5. In PRC, who destruct the most earned the most, who contribute the most suffered the most - holy legacy of the destructive communism?
  6. 在天朝,对社会破坏最大的赚最多的钱;为公民贡献最多的受最大的苦。你让社会人心如何不自私短视、冷漠逐利?
  7. 乡下的野蟑螂,体形硕大、油光黑亮,如同帝都的奥迪,一只只在家里的破墙上横行霸道。
  8. 想让对方爱你一辈子?那就用一辈子的努力让自己增值,证明你值得对方一辈子的投资。别松懈,别偷懒,别让其他价值股、潜力股挤走你占到的仓位。
  9. Stay one dimension first, carefully introduce new dimension only if it enhances understanding. #design
  10. When constrains have been properly laid out, creativity generats the artistic tension by following/breaking them. #design
  11. When find it hard to explain your idea to a none tech designer, could be an early indicator of design failure.
  12. Every design decision must be backed by at least one reason; every reason picked must be derived from one single idea.
  13. Apple taught us how great it can be after building a high quality/smart community (users/developers) surrounding a great product line.
  14. Good music touches feelings, triggers imaginations, and vibrates memories, in a wordless way.
  15. 晨,一哥从瘙痒夹杂着兴奋难耐的梦中醒来,惊见下铺数禽兽正饕餮其玉足,欲唤乘警。众人阻:哥,行行好,广播说闹盐荒了,这车厢里就您的宝脚儿最带劲儿了,让俺们再补补吧!(激灵间重口味原创,请为地球珍惜鸡蛋)
  16. Good design should be easily imaginable without using much mental energy.
  17. 人,有了自由才会活得有自尊,有了自尊才会活得有自信,有了自信才会爱及他人。国人无爱,冷漠势利,病根在此。
  18. 他们的国家, 他们的政府, 他们的高楼大厦, 他们的飞黄腾达; 他们的媒体, 他们的声音, 他们的盛世和谐, 他们的大国崛起; 他们的代表, 他们的会议, 他们的挥斥方遒, 他们的伟业宏图; 他们的给予, 他们的贡献, 他们的恩泽神州, 他们的功德千秋.
  19. Let team understand the vision behind the goals, and to achieve that, you need them w/ all your heart, they are the best you are relying on.
  20. U don't need high IQ 2 be a good lead, what u need R broader understanding of human weaknesses & longer patience to hold strengths together.
  21. 有敌我、没人性的阶级式爱恨教育,培养出多么可怕的一代:欢呼美国 911,庆祝日本大地震-对生命没有基本的敬畏,对人性缺乏厚重的理解,对普世价值更是一无所知。今天,教育方的你们,成功地维系着爱你所爱恨你所恨的一群;明天,历史若为该群标出新的“敌人”,你们,会对他们的人性抱有幻想吗?
  22. The importance of a working prototype: someone needs to start boiling the stone and convincing people before the soup can be made.
  23. Human brain is good at pattern recognition to reduce mental burdens. Good design should incorporate math patterns to exploit this.
  24. A 哥 in need is 帅哥 indeed.
  25. Elements presented reveal the clues/grids your design is following.
  26. Engineers: we build things to change the world.
  27. Don't pretent to "pro" to "control" others or gain admiration, it will make you look even dumber.
  28. Beware of the role you are playing, speak the way your role should be speaking to avoid awkwardness.
  29. 一段关系中,彼此得有些东西是对方想要的,方能持久。
  30. It's coming, again, we all know it, we just don't say it; they are so scared, by the quietness - they built. It's everywhere, it's nowhere.
  31. AEIOU: Observe, understand, abstract, envision, invent.
  32. It takes time for you to be able to ask the right questions.
  33. How about building your confidence this way: you are growing it till the day you die - by then, you are 100% confident that ready to let go.
  34. CNN: go beyond borders. CCTV: harmonized beyond borders.

推特集 (2011/04)

  1. Envision, influence.
  2. No human rights, no human left - 无人权, 无人全.
  3. Business is about fitting many other businesses together.
  4. 好的摄影作品对聚焦的诸多元素有极强的把握和概括能力。
  5. 我想, 企业家的职责, 就是把地耕好, 肥施好, 害除好, 蔬菜们就会自由地疯长.
  6. Paper, pencil, eraser is still the best/cheapest/most efficient way for idea sketching, mental prototyping.
  7. "Live from CNN center"; lie from CCTV center.
  8. 游说, 解释, 寻求共识, 妥协分歧, 推进事情.
  9. 至今记得大学军训时连长同志的一句话:民主是需要滴,但最后还是要集中到我这里来。
  10. Why we are not happier when we already have more? Coz the more we have, the more we are aware of there are more we want to have.
  11. High level design in paper drafts/digi diagrams are very helpful & efficient b4 u get entangled in code level complexities & restrictions.
  12. 无产者看了本书,幡然醒悟,原来只要流氓起来,即可迅速实现权力和财富的重新分配,于是轰轰烈烈地包围城市,翻身有产者。同时,因深谙自身秉性,为防止无产者2.0画瓢,于是:一让经济,碌碌维生;二禁书文,昏昏不省;三促和谐,杜绝流氓。
  13. You are not faking emotion, you are taking up responsibility. #leadership
  14. If u can't build trust upon some solid blocks, u will end up exhausted w/ many details out of ur capability, trashing others in the corner.
  15. The more mental burdens something/someone introduces, the less likely you can stay with for long. #design #life
  16. Math makes art beautiful: beats, rhythms, compositions, proportions... It's everywhere.
  17. It's dangerous that you know little yet want to control.
  18. 他们的能耐永远是不知廉耻、不择手段地倒腾智慧远见优其一等的思想家、知识分子,直到普罗大众都瞅见他们终究破相的丑陋低劣,也就从这戏台锒铛退幕了。
  19. 察天朝官场, 必以貌取人, 皮相欠妥者, 十中九狗官 - 所谓相由心生也.
  20. Beware of implied/missed details that are "concluded" into simple sentences, unless scientifically covered, they can always be questioned.
  21. Don't worry, keep those knowledges in mind, you will understand them as you grow.
  22. 这事的有趣之处是:人们不一定知道,也不一定不知道,但他们一定知道;人们不一定会去,也不一定不去,但他们一定得去。向广大战斗在第一线的工作者致敬!

推特集 (2011/05)

  1. A good product should be simple, useful, responsive... so does a team lead.
  2. Sometimes what you need to do is pat on team's back and remove the uncertainty: go, you are doing it right!
  3. 所有的力量都沉寂着, 它们并非害怕, 并未妥协, 只在激流暗涌地点滴聚集, 静候重新破土, 摧枯拉朽.
  4. Gain the trust from users, prove that it's worth their money & time to grow with you.
  5. 一些日本人敬拜弄死中国人的战犯,我们不理解;海量的咱敬拜弄死中国人的耄,谁、又是怎么理解的呢?-因为能活到今天的都是拜他所赐吧!
  6. If you find it challenging to work with everyone, better find out if you are the challenging one to work with.
  7. 想登上远方那座高峰吗?那就先爬过这些小山坡吧!
  8. 落后不可怕,可怕的是把落后当先进,还说是特色。
  9. Trust cannot be pretended, every small detail you speak & act will be leaking the truth.
  10. Stubbornly arguing your 100% right increases no productivity. U need to let go certain things, including mistakes as team's growing price.
  11. There are always compromises, your job is to gently/smartly/patiently "guide/route" them back to the ultimate goal.
  12. As a lead, you need to be easy to work with, you understand how to drive/assist diff ppl to output her/his most.
  13. Different units: kid's success is measured by minute, adult's by year, dead's by history.
  14. 审视一段关系的时候, 应该问: 我有什么你离不开的? 你又有什么我离不开的? 爱是具体而微的, 不是空口大话的. 如果没啥你离不开说得出的点滴细节, 那真不是什么 "真爱".
  15. 操持臣身先士卒,方略文韬仕良主。滨海岂容麻雀飞,兴邦高墙立千古。
  16. 没洁癖别当程序员撒.
  17. 大国崛起的底气:我们有十三亿随时准备着砸国产日系车、奉拉登为英雄以抗日反美的愚民大军——尊重我们点哦,支持特色的路线哦!不然咱真理部一发飙,就把滔天的口水导向你丫的!!
  18. Kid, this wall is already full of cracks, let's keep scratching, day by day, until it collapses. 孩子, 这墙已满是裂缝, 让我们继续, 一天一点, 把它抠倒.
  19. 长大就是习惯分离,习惯一通电话过去就是几个星期⋯⋯直到有天习惯一种名叫永远的、再也说不上话的分离。
  20. Is life a process of getting used to imperfects?
  21. Only by trial and error, can you find the sweet spot, or be confident to confirm its nonexistence. #startup
  22. 千面中国,只有你一张最有脸的表情;黄土盈尺,找不到一个念得出的名字。
  23. 贵府一直以身作则地上演着和尚打伞、大管小、公踩私、强凌弱的样板戏,成功引导塑造了今时今日的社会生态:弱的想逞强、私的想近公、小的想变大⋯⋯一律的不择手段、泯灭人性,为的就是在被赵太爷、王胡、假洋鬼子修理过后,能调戏一把小尼姑——天朝崛起,喜剧热映,全球观众敬请开怀大笑并适时哭泣。
  24. 会搜索的小鸟有虫吃.
  25. UI assists parameters' collection (for computer to take action w/ them). #design
  26. 懒人多怨言, 想吃那碗饭又吃不得吃到那碗饭的苦, 只好怨怨天尤尤人解解馋.
  27. 内斗内斗再内斗…一朝猛醒,发现所有自由地区的黄皮肤都已畅行在现代化的正轨上,紧着多快好省、不怕牺牲之精神,迅速弄潮、吹起那张圆润饱满、丰盈慈祥的面子,便安然回到大国崛起的甜美梦乡,继续对掐对掐再对掐。
  28. When you are brave, things are no longer as scary as you thought; those who wanted to scare you away, will be scared away by your braveness.
  29. 当你勇敢,将发现一切并无想像中可怕;而那些试图以恐惧让你退缩的人,将因你的勇敢而恐惧退缩。
  30. 路是自己选的, 责任是自己担的.
  31. 摧毁信仰、消灭思想、破坏文化,离间心与心的信任、增加人和人的猜忌,全盘沙化,确实缔造了各种力量无法集结的一片和谐死寂。但是,我们仍旧相信:“沙不怕风吹,在某天定会凝聚”。
  32. If you don't know the weight of death, you won't understand the weight of life.
  33. 国人为何自顾自、对啥都无所谓了呢?因为顾他人、有所谓的那些都被河蟹啦,还是闷声发大财(梦)吧。