tech-sjh

2011年12月25日 星期日

意識自己無知的陷阱 You don't know what you don't know


這篇的起源是英文的一句:You don't know what you don't know
可以參考:The Danger: When you don't know what you don't know

直接翻譯可以寫成:我不知道我原本不知道、缺乏的知識。
這大概是單純抽象、簡約、習慣懶人包知識的情境下,最容易踩到的知識陷阱,
可能只是看到某句某人對一個龐大複雜知識的簡約說明,然後就被奉為規臬,甚
至依此演譯、推論出一連串錯誤的理解與認知,以這個角度看,規納法比起演繹
是較接近真實的知識,資料主體(Data driven)的思考方式,就可以對演繹思考進行
修正。


常見的無知陷阱包括:直覺、比喻法。因為要解釋的對象無法全面瞭解,所以只
好先以某些同構的已知部份進行比喻說明,但比喻法通常只是幫你入門、先期連
結知識的方式,而非代表該新知識的全部,但卻常常因為疏於精進,而停留在比
喻法階段,沒有真的去瞭解新知識。

一個避免無知陷阱的方式是,時時刻刻自問,我知道自己在寫、說什麼嗎?如果
連自我思緒都無法理解串連,又如何能確定表達、陳述了正確的思考與觀念?

一種思考方式是,質疑過於簡短的斷言式陳述,比如對於通常需要一本幾百頁書
籍才能陳述說明的主題知識,我們可以直接對於部落格上的單一篇短文進行質疑
與檢驗。

瞭解了無可避免的無知的陷阱後,也不是全面否定對於陷阱相關思考方式的價值
,而是教我們知道終身學習、持續精進、實作所學理論的必要性,唯有持續學習
、精進、動手實作才能減少所遇見的無知的陷阱。

當然聰明如你,一定也想到了,我這篇對 You don't know what you don't know 的解
讀是不是也犯了沒有意識到對這句英文正確理解的無知陷阱裡呢?

2011年12月7日 星期三

台北市育兒津貼

台北市育兒津貼這項福利從100年1月1日起開始。父母雙方及五歲以下兒童均須設籍台北市並實際居住滿一年才可申請。申請表從網路下載或至區公所社會課領取皆可。送件則是郵寄或親送。直接到戶籍所在地之區公所拿申請表,填好後再親自送過去。申請文件共三樣,包含:申請表、戶口名簿影本、郵局或台北富邦存摺封面影本。這項津貼只接受郵局跟台北富邦的帳號。同時申請兩位兒童也僅需填寫一張表,送交申請表後要等審查通過,約需60天。這項育兒津貼的身份限制頗多而且有排富條款。爸爸媽媽小孩都要設籍台北市滿一年,並且有實際居住事實也要滿一年,若一歲以下新生兒只要出生登記在台北市即可。排富條款則是申請人經稅捐稽徵機關核定之最近一年綜合所得總額合計未達申報標準或綜合所得稅稅率未達百分之二十。

育兒津貼申請條件中所指稅率未達20%大約是年收入多少錢?
98年度父母雙方綜合所得稅申報核定稅率未達20%(含13%、6%及免繳稅等),也就是家庭綜合所得淨額在109萬元以下者;99年度因應稅制改變,綜合所得稅申報核定稅率未達20%以下(含12%、5%及免繳稅等),也就家庭綜合所得淨額在113萬元以下者。

送件時不需提供綜合所得稅率資料,社會局會主動向稅捐稽徵單位查調。送件後如果想瞭解審查進度也可上網查詢。填申請表時有一欄位是詢問是否願意以email及手機來被通知辦理進度,只要打勾,就耐心等審查通過,津貼入袋。

從開始申請,領到育兒津貼,過程大約60天。區公所會掛號寄發公文,告知即將於幾月幾號將育兒津貼款項匯入指定帳戶。政府是從你哪個月符合資格,就從那個月開始發放。在等待審查過程中可上網查詢進度-臺北市育兒津貼申辦進度查詢,只要兒童的身份證字號+生日即可查詢。

申請育兒津貼時,自行影印好戶口名簿及存摺,跑一趟區公所拿表格,回家填好後,再跑一趟親自送件。這樣有點麻煩,除非區公所離你家很近,不然跑來跑去挺累的。區公所人員說,只要攜帶父母雙方印章證件,戶口名簿及存摺可以到區公所現場,經辦員會幫忙影印,也會協助填妥表格,這樣只要一次就可完成申辦手續。


瞭解詳情:台北市政府社會局-育兒津貼


臺北市育兒津貼 - 是臺北市政府「祝妳好孕」專案的其中一項。「祝妳好孕」包含:

1. 每胎2萬元生育獎勵 - 100年1月1日 起實施
2. 五歲以下孩童、月發2,500元育兒津貼
- 100年1月1日 起實施
3. 五歲免學費補助
4. 國小、幼稚園課後照顧方案
5. 婚後孕前健康檢查
6. 孕婦母血唐氏症篩檢

第1項每胎2萬元生育獎勵100年1月1日以後出生的新生兒,父或母其中一方設籍臺北市一年以上,且有居住事實,於新生兒出生後60日內至新生兒設籍所在地之戶政事務所申請。我是生產前就先下載列印並填妥好表格,在第二胎報戶口時,請家人直接送件,這2萬元是匯入媽媽帳戶,因為是「生育」獎勵,理所當然是給生小孩的媽媽。帳戶則不限哪家銀行。

第2項就是台北市育兒津貼。

第3項、第4項:我認為如果可以大幅增加公幼及公托的招生人數,這樣比五歲免學費補助更有幫助。雖然現在少子化,但是要抽籤進入公幼就讀仍然機會渺茫,尤其是四歲中班生,很難抽中。若可以不用抽籤就有公幼可念,必定能省下一筆可觀的私幼學費。至於國小、幼稚園課後照顧方案 ,是指只要家長有需求,就開「課後照顧班」,照顧小學生到晚上7點、公立幼稚園孩童到晚上6點。這對父母都要上班的家庭來說幫助不小。因為公幼放學是四點,但此時很多父母親還沒下班,根本無法接孩子放學。所以課後照顧方案很有實質幫助。

第5項婚後孕前健康檢查補助設籍臺北市已結婚、未生育第一胎的市民至特約醫療機構之檢查費用。男生655元、女生1,595元。

婚後孕前健康檢查項目包括哪些?

1、女性:尿液檢查、德國痲疹抗體篩檢、水痘抗體、血液常規、梅毒篩檢、愛滋病篩檢、甲狀腺刺激、紅斑性狼瘡等。
2、男性:尿液檢查、血液常規、梅毒篩檢、愛滋病篩檢、精蟲分析檢查。
(資 料來源:臺北市立聯合醫院)

第6項孕婦母血唐氏症篩檢提供設籍臺北市懷孕初中期的婦女,至特約醫療機構掛號受檢即可擇一補助篩檢費用,初期2,200元、中期1,000元。我懷第二胎時有選擇初期2200元補助篩檢。唐氏症初期篩檢就是第一孕期(11-13週),以超音波檢查胎兒頸部透明帶和鼻樑骨,並抽取媽媽的血液檢查荷爾蒙指數,此項檢查的唐氏兒檢出率約為82%-87%






2011年11月25日 星期五

SCH八個月副食品

SCH最近食量從220ml增加到300ml。一天2餐變成一天3餐。平均四天煮一次副食品。食材種類都很多,以最近一次為例:胚芽米、蘋果、蕃茄、地瓜、高麗菜、洋蔥、雞肉。SCH一開始都吃糙米,因為不小心買成胚芽米,所以將錯就錯,反正胚芽米也很營養。我設計的菜單裡,蔬菜比重很高,像高麗菜我都是一整顆下去,若是葉菜類也是一整包全煮。葉菜類我都買台塑有機蔬菜,3包100元,比我想像中便宜。其實每次食材種類都大同小異,蘋果、蕃茄、洋蔥,是固定班底。只有主要蔬菜每次換不一樣嚐鮮。像地瓜、南瓜、紅蘿蔔這些吃多會色素沉澱的食物我就隔週吃。蛋白質部分,準備開始吃吻仔魚。七個月起都吃雞胸肉,滿八個月後想換牛肉試試。水果我只讓他吃香蕉。直接用湯匙刮香蕉泥,不需用攪拌棒。曾經用攪拌棒把香蕉打成泥狀,香蕉泥整個氧化變黑色,而且超級難吃,SCH也不賞臉。

餵食物泥時間約15分鐘即可完食。吃完半個鐘頭內會排便。4小時吃一次。本來最近想買網路上頗有名的Happy Baby Organic Puffs嬰兒有機泡芙餅乾嘗試看看,但台灣好像沒進口,都要透過網路代購,而且價格挺貴,仔細考慮後作罷。不如把錢省下買好的蔬菜作食物泥比較划算。


2011年11月12日 星期六

摘譯:如何為公司貢獻心力

來源:GitHub http://speakerdeck.com/u/mojombo/p/optimizing-for-happiness

1. 沒有產品跟獲利的公司:創業公司
    沒有人的公司:查無此公司

2. 如何決定你的職涯生活:
    如果要我貢獻一生去成就公司的成功,那這家公司至少要讓我生活過得幸福快樂

3. 延續 1. 如果人,才是公司最重要的資產,那獲利跟產品就是附屬品,當然錢財還是
    很重要滴...

4. 投資在人身上,就可以打造最好的公司

5. 打造幸福快樂的公司是永不間斷的執行過程

6. 找到公司產品的超級粉絲,熱愛你們公司產品與服務的粉絲
對於公司內部,你要找到最熱愛公司的員工(當然前提是你願意打造幸福快樂的公司)
注意上面這點完全沒提到錢,產品售價與公司獲利

7. 雇傭,面試:專業技能與符合公司文化
可以從自己人際網路開始,文化是否相符,就是合作時是否可以自在相處
同事聚會是否願意參加?

8. 薪資:要有足夠的薪資,讓進來的員工不會再去想自己薪資是否被低估的問題

9. 工作時間與地點:照員工喜好,真正提高生產力的最大秘訣是人性化管理

10. 工具:不要吝嗇給員工開發所需的工具,電腦硬體與軟體工具需求

11. 健康:人是公司最大資產,那員工的健康就是幸福快樂最重要的指標

12. 貢獻:不管是員工對公司或對他個人,學習與成長是必備技能,如果這方面
缺太大,就可能要火了他

13. 公司提供員工因上班所需的搬家費用

14. 如果員工完成了不起的工作,會有現金紅利

15. 組織:公司不只有個人,團隊合作能力也是相當重要的評量

16. 重新思考可能性,一味的抄襲只是讓你保持平庸

17. 保持小團隊自我管理的優勢,從能力與優勢找出領導者

18. 找出共同願景(第五項修練上身?)

19. 個人彈性的角色調整,保持團隊重組的能力,與流動性的成長應對外在改變

20. 出貨:鼓勵產品的更新與出貨嘗試,降低不必要的出貨限制

21. 團隊成員工作時,鼓勵溝通與討論,增加成員的歸屬感與團隊內聚力

22. 工作與生活娛樂一樣認真,百分之百付出

23. 你也可以做到,找出讓你不爽的地方,利用科技解決,你也可以打造幸福快樂的公司






2011年10月24日 星期一

SCH長牙&會坐了

七個月的SCH會自己從躺姿變坐姿了,而且下門牙也長出白白小點。越來越愛玩,不管是自己玩還是跟哥哥玩,都可以玩得很開心。除了學會坐之外,也會以爬行姿勢,手腳不協調地往前移動。

2011年10月23日 星期日

如果在台北,連續被詐騙兩次

話說才剛因一場意外大失血,剛才要走路去採買下星期家用生活品,就在一條暗黑狹路上
遇到一名年輕可愛的女孩向我問路,第一個反應是,不會吧,難道遇到傳說中的詐騙集團
都會連續被騙嗎?但基於對方看起來臉色真的面露迷路的恐懼表情,還是大概指了方向,
但是因為這條路上整個就是暗黑,要讓一個年輕女孩走也是蠻危險的,這時面對兩個抉擇


一、管他的,我只負責跟她報路,反正她還會遇到下一個路人,台北治安差又不是我害的

二、為了她的安全,我帶她到要去的地方,但如果真的是詐騙集團,在前面更暗處有埋伏我
不就中招?

此時還好有再問她要去的最終目的地,原來她問路的目的只是要坐公車,因為另一個方向
較明亮的大馬路也有公車可以到,就帶她往大馬路去找公車坐了,希望她有順利回到公司。

2011年9月29日 星期四

副食品-工具篇-Cuisinart CSB-76TW


Cuisinart CSB-76TW專業型手持攪拌棒


Avent多功能儲存杯240ml
有180ml跟240ml兩種,建議買240ml

第二胎從寳寳四個月起開始吃副食品。作法及使用工具跟第一胎完全不同。我新添購Cuisinart CSB-76TW攪拌器,把一週份的副食品打成食物泥,裝入Avent多功能儲存杯,送進冷凍庫,每天晚上拿隔天要吃的份量到冷藏退冰,當餐要吃之前放進瓷的大碗公,用大同電鍋加熱。Cuisinart 攪拌棒是在新光三越南西店的百靈牌專櫃買的,1990元,公司貨馬達保固三年。Avent多功能儲存杯則是透過網路,我選擇240ml,共買20個,含運905元,平均一個45元。儲存杯可以冷凍、冷藏
、微波、消毒,還可重複使用五次以上。我只用來冷凍跟冷藏,清洗時也不會用菜瓜布刷,以避免有刮痕,到目前已經重複使用八次了。

使用Cuisinart攪拌棒製作副食品約2個月,它確實能將食物攪的很綿密。副食品菜單包括:糙米、綠花椰、紅蘿蔔、蘋果、洋蔥、高麗菜、地瓜,一大鍋煮起來要分多次攪拌,之前第一胎用貴夫人食物調理機就可以一次打多一點,但是清洗時不好洗,容易被杯子內的刀片割傷,而且運轉時聲音比較大。Cuisinart馬達聲音小一點,容易清洗,使用經驗是,連續攪拌會感覺馬達很燙,要休息一下,讓它冷卻散熱再繼續用,才能延長馬達壽命。

Avent多功能儲存杯是我看網路上很多媽媽推薦好用才去買的。第一胎我是用有蓋子的製冰盒,各種食物分開煮,依序打成泥,分別放入製冰盒,以冰磚方式儲存。這一胎我改用所有食物通通一起煮,我看馬偕醫院小兒科醫師-黃瑽寧,他寫的一本書-「輕鬆當爸媽,孩子更健康」,裡頭介紹用「懶人電鍋法」製作「嬰兒分子美食」。他將製作嬰兒食物之「懶人電鍋法」拍成影片放在youtube上,我照著做,發現做起來很輕鬆,寳寳也吃得非常好,SCH現在六個半月大,一餐食量約220ml,一天兩餐。吃副食品的兩餐就不喝奶。看寳寳吃得好不好,從大便即可得知。他自從吃食物泥後,一天大五次,顏色形狀都很漂亮,沒拉肚子也沒便秘。常常邊吃副食品邊大便。

葉菜類蔬菜我也是跟所有食物一起煮。很多人覺得用電鍋煮花椰菜、小白菜會煮得黃黃的,感覺很醜,所以會另外用川燙方式處理。但我看法不同。蔬菜如果另外用燙的,營養全流失在那鍋水裡頭,但若一起放入電鍋蒸,雖然醜,至少養分還在,反正最後也是打成食物泥,我覺得沒差。

SCH從滿四個月當天開始吃米精,吃完一盒貝康純米精300g跟一罐桂格敏兒HA米精600g後,就直接吃我煮的食物泥。從糙米泥開始,每三天加一種新食物,到現在準備進入蛋白質(雞肉、魚肉)
階段,食量也持續增加中,等他一天有三餐都吃食物泥,我就準備讓他斷奶,讓副食品成為主食,奶反而退為補充安撫用。






2011年9月18日 星期日

海底隧道長度比較

隧道名稱,隧道總長度,海底隧道長度

  1. 台灣高雄港過港隧道-0.44公里-0.44公里
  2. 中國香港海底隧道-1.86公里-??公里
  3. 中國香港西區海底隧道-2公里-??公里
  4. 中國香港東區海底隧道-2.2公里-??公里
  5. 中國青島膠州灣隧道-9.47公里-3.95公里
  6. 日本東京灣橫斷道路-9.6公里-9.6公里
  7. 日本新關門隧道-18.713公里-??公里
  8. 中國港珠澳大橋-49.968公里-6.648公里
  9. 英法海底隧道-50.45公里-37.9公里
  10. 日本青函隧道-53.85公里-23.3公里
預想中的隧道
  1. 白令海峽隧道-103+公里-103公里
  2. 台灣海峽隧道-126+公里-126公里
  3. 日韓隧道-128+公里-128公里


參考:
維基百科:海底隧道
維基百科:海底隧道分類

2011年9月15日 星期四

歐美失業問題與就業市場

http://www.economist.com/node/21528630
一開始是讀 Android 版的 Economist 程式,還有語音下載可以學英國腔英文,當期有五篇文章
免費,看過去的 Back issues 要花錢買。

這期第一篇 The quest for jobs 講到歐美失業問題,西班牙失業率 21%,美國有一千四百萬人
失業,這一波失業的許多是年輕人,問題會比較嚴重,因為年輕人失業大部份會一直持續
下去,成為治安、財政等基本社會問題,需要提升職能訓練與勞動市場競爭,才能更快解
決年輕人失業問題。

另一篇跟就業市場相關的是 The great mismatch 說明現在失業率高,但是專業人才又供不應
求的 M 型市場。以"生命中最好的禮物,就是可以全心全意投入在值得努力的工作中。"起頭
,然後分述 M 型兩端,類比到台灣就是在聯發科、晨星、宏達電等(相對)高薪(相對)高獎金
,又讓人頂著光環的工作。

關於歐美相同的年輕人失業問題,像英國前陣子的暴動就應該跟失業的年輕族群有關,埃及
跟突尼希亞的反政府運動之所以成功,也有部份原因是失業年輕族群較多,就連目前經濟相
對較好的中國、印度也都面臨缺乏足夠多好工作吸引上億名青年才俊就業的問題。

目前全球最多員工的兩個單位分別是美國國防部三千兩百萬名員工、中國人民解放軍兩千三
百萬名員工。

相對較少數的高薪族卻是一般工作者的數倍薪水,這種就業市場M型化跟全球化勞動市場與
科技落差有關,這兩項因素帶來的影響也是長遠不可逆的,因此也有經濟學家認為高失業率
將成為未來常態,勞動市場競爭激烈現象是持續而永久的改變,原本越富有的國家,因為薪
資成本較高,將遭遇更高的常態失業率。

當然危機與轉機總是福禍相倚,比如仲介大企業外包專案給 soho 族、freelancer 自由工作者
的事業,將會持續增長,對於身為勞工的我們來說,盡快找到自己樂意投入,並且擅長的
工作成為生存與持續有工作的保障,因為不只產品市場全球化,勞動市場的競爭也全球化。







2011年8月29日 星期一

Android Power Management, partial wake lock parts

Android 當在 running mode 按第一次 Power 鍵,關螢幕後,Linux kernel 應該是在
 early_suspend mode,因此如果跟第一次間隔很短(幾秒?)馬上按第二次 Power 鍵
 resume 是直接回到關螢幕前的應用程式 intent。

但是如果第二次間隔跟第一次間隔時間,差距到讓 Linux kernel 進入 suspend mode,則
resume 時會看到 Launcher 的螢幕鎖頭。

而卡在 early_suspend 會不會進入 suspend mode,則跟 Android 層是否有要 partial wake lock
有關。

目前已知有取得 partial wake lock 的服務(原來有這麼多 XD):
Android eclair-release branch

同步也會卡...

frameworks/base/core/java/android/content/SyncManager.java

正在關機
frameworks/base/core/java/com/android/internal/app/ShutdownThread.java

SD 卡格式化
frameworks/base/core/java/com/android/internal/os/storage/ExternalStorageFormatter.java

使用者互動
frameworks/base/libs/ui/EventHub.cpp
frameworks/base/services/java/com/android/server/WindowManagerService.java
frameworks/base/services/java/com/android/server/NotificationPlayer.java

鬧鐘
frameworks/base/services/java/com/android/server/AlarmManagerService.java

frameworks/base/media/java/android/media/AsyncPlayer.java

使用電話功能
frameworks/base/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
frameworks/base/telephony/java/com/android/internal/telephony/RIL.java
frameworks/base/telephony/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
frameworks/base/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
frameworks/base/telephony/java/com/android/internal/telephony/cdma/CdmaConnection.java
frameworks/base/telephony/java/com/android/internal/telephony/gsm/GsmConnection.java
frameworks/base/telephony/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java

RIL HAL driver 
hardware/ril/libril/ril.cpp

frameworks/base/voip/java/com/android/server/sip/SipWakeLock.java

簡訊
frameworks/base/telephony/java/com/android/internal/telephony/SMSDispatcher.java

螢幕鎖
frameworks/base/policy/src/com/android/internal/policy/impl/KeyguardViewMediator.java

開啟 GPS 定位服務
frameworks/base/services/jni/com_android_server_location_GpsLocationProvider.cpp
frameworks/base/services/java/com/android/server/LocationManagerService.java
frameworks/base/services/java/com/android/server/location/GpsLocationProvider.java

聽音樂
frameworks/base/services/audioflinger/AudioPolicyService.cpp

藍芽耳機
frameworks/base/core/java/android/bluetooth/HeadsetBase.java
frameworks/base/core/java/android/bluetooth/ScoSocket.java

(有線?)耳機
frameworks/base/services/java/com/android/server/HeadsetObserver.java

frameworks/base/services/java/com/android/server/DevicePolicyManagerService.java

震動也會鎖
frameworks/base/services/java/com/android/server/VibratorService.java

開 Wifi 會鎖
frameworks/base/services/java/com/android/server/WifiService.java
frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java

備份??
frameworks/base/services/java/com/android/server/BackupManagerService.java

??
frameworks/base/services/java/com/android/server/am/ActivityStack.java

??
frameworks/base/tests/BatteryWaster/src/com/android/batterywaster/BatteryWaster.java

實作的檔案如下:


frameworks/base/core/java/android/os/Power.java
frameworks/base/core/java/android/os/PowerManager.java
frameworks/base/services/java/com/android/server/PowerManagerService.java

JNI 介接層:
frameworks/base/core/jni/android_os_Power.cpp
hardware/libhardware_legacy/include/hardware_legacy/power.h
hardware/libhardware_legacy/power/power.c

2011年8月27日 星期六

摘譯 steve jobs 語錄

你是否已經找到終身熱愛的志業?
你是否浪費自己的生命在過別人的生活?
你是否有勇氣追隨自己真實的想法與直覺?
你是否有良好的人際關係,隨著歲月增長而成長的人際關係?
你是否能在幾天,或幾個月內告訴孩子們所有你想到關於十年後的事物?
當生命遭逢巨變,你是否讓你的家人平和的接受生活上的不適與改變?
你是否能夠在離別之前道別,避免將來後悔?

原文來自:Reflecting on Steve Job's Words of Wisdom

2011年8月16日 星期二

Linux gpio & irq mapping

arch/arm/plat-pxa/gpio.c 定義了 pxa_gpio_chip 指的是某一個管理 gpio interrupt 的 register
而一個 register 是 4 bytes,所以最多管 32 根 gpio (irq),例如 pxa270 的 Section 24.
Interrupt Controller 定義了 0~39 (扣除 reserved 也用到 33,第 34 根 GPIO),因此
保留兩個 gpio_chip 的空間 32*2= 64 個位置給 gpio 對應的 irq number。

Interrupt 借由 Interrupt controller 向 pxa270 發出 request,取得該 pin 腳的 GPIO number,
再透過 arch/arm/mach-pxa/include/mach/gpio.h 的 gpio_to_irq 取得 irq number,再指向在
arch/arm/mach-pxa/pxa27x.c 中的 pxa27x_init_irq 與
arch/arm/plat-pxa/gpio.c 中的 pxa_init_gpio 初始化時指定的 gpio 與 irq chip,
最後註冊 irq chip  內的  chained_handler ...

Linux 使用 irq_desc 表示某一個 irq,chip level ISR 實作可能是舊式的 __do_IRQ  或
採用新的 irq_desc->handle_irq() ,到上一層透過 irq_desc->chip 呼叫不同的 handler

 kernel/irq/handle.c 定義了 irq_desc[NR_IRQS], NR_IRQS, nr_irqs 代表目前 Linux kernel
 擁有的 irq 總數

另外相關的部份:
 arch/arm/plat-pxa/gpio.c
 arch/arm/kernel/calls.S 處理的 system call interface
 arch/arm/kernel/entry-armv.S 定義 irq_handler, interrupt vector table, dispatcher table
 arch/arm/mach-pxa/irq.c 處理的 irq interface

http://www.kernel.org/doc/htmldocs/genericirq.html

linux kernel source base: 3.1.0-rc1

參考:

ARM中斷流程

2011年8月7日 星期日

linux nfc kernel driver pn544

讀 linux kernel "Documentation/nfc/nfc-pn544.txt"


感謝作者: Jari Vanhala
聯絡方式: Matti Aaltonen (matti.j.aaltonen at nokia.com)


兩個可參考的驅動程式: "drivers/nfc/pn533.c", "drivers/nfc/pn544.c" 感謝 Nokia 的愛心。
使用 linux kernel 的 misc device, device name /dev/pn544
其中 pn544 有 I2C, SPI, HSU 三種介面但驅動程式只提供 I2C 介面實作

對 user space 介面有 sysfs 的硬體測試與 IOCTL 切換 HCI, firmware update 兩種工作模式
傳輸訊息的方式有三種:read, write, poll

由 user space 傳訊息到 PN544  晶片進行控制,驅動程式目前只傳遞訊息不瞭解訊息內容

溝通協定

正常的 HCI 模式與 firmware update 模式的 read/write 行為不太一樣,因為兩種模式的訊息
格式與溝通協定都不同。

HCI模式的溝通協定採用 ETSI 的 HCI spec,firmware update 則另有特殊協定。

HCI 訊息有 8 bit header 跟訊息內容。header 包括訊息長度,最大 33 bytes。
傳送出去的訊息需要經過 checksum 驗證。

Firmware update 訊息長度存在第二(MSB)跟第三(LSB)位元組,最大值 1024 bytes.

sysfs 的硬體測試
指的是讀取 sysfs 檔案後能將 pn544 轉為 firmware update mode,如果未提供測試則不需
要建立此 sysfs 檔案。
使用範例:

 60 Example:
 61 > cat /sys/module/pn544/drivers/i2c\:pn544/3-002b/nfc_test
 62 1

正常運作流程:
device 檔案 open 後 pn544 就給電,未開啟前斷電,一次只能有單一使用者。
user space 應用程式使用 HCI 訊息控制。 當有資料可讀時就發出一次中斷,當 user space
下 read 時才從 pn544 實際讀取資料,poll() 檢查 read interrupt state。設定與單元測試都由
user space 的 read/write 完成。

範例 platform data:


78 static int rx71_pn544_nfc_request_resources(struct i2c_client *client)
79 {
80 /* Get and setup the HW resources for the device */
81 }
82
83 static void rx71_pn544_nfc_free_resources(void)
84 {
85 /* Release the HW resources */
86 }
87
88 static void rx71_pn544_nfc_enable(int fw)
89 {
90 /* Turn the device on */
91 }
92
93 static int rx71_pn544_nfc_test(void)
94 {
95 /*
96 * Put the device into the FW update mode
97 * and then back to the normal mode.
98 * Check the behavior and return one on success,
99 * zero on failure.
100 */
101 }
102
103 static void rx71_pn544_nfc_disable(void)
104 {
105 /* turn the power off */
106 }
107
108 static struct pn544_nfc_platform_data rx71_nfc_data = {
109 .request_resources = rx71_pn544_nfc_request_resources,
110 .free_resources = rx71_pn544_nfc_free_resources,
111 .enable = rx71_pn544_nfc_enable,
112 .test = rx71_pn544_nfc_test,
113 .disable = rx71_pn544_nfc_disable,
114 };




NXP pn544 introduction pdf
including: contact less procotols, host interfaces, power cosumption

NXP NFC 的 peer to peer, card emulation, Reader三種模式與使用的溝同協定說明

值得注意的是,就專利版圖來看,目前 NFC 市場並沒有真正的大廠,
前六強分別是 Sony, Broadcom, IBM, Nokia, Panasonic, NXP

2011年8月4日 星期四

幫 pxa270 超頻

要幫 pxa270 超頻,先看 linux kernel arch/arm/mach-pxa/pxa27x.c 的
pxa27x_get_clk_frequency_khz() 如何讀出目前系統設定的 520MHz

CPLL 是用Crystal clock: 13MHz * L (16) * N (2.5) = 520MHz
我們 CPLL 目標是 624 MHz 因此外頻不改,只要改倍頻就可以達到:
Crystal clock: 13MHz * L (16) * N (3) = 624MHz

原本讀取是看 CCSR register,設定是設 CCCR,但是 CCCR 設完還要靠 CLKCFG
register 才能使 CCCR 的設定生效。

pxa270 datasheet CLKCFG 是 co-processor 不像 CCCR/CCSR 使用 memory map 後就可
以讀到,因此要使用 gnu arm assembly code,原本 pxa27x_get_clk_frequency_khz() 就有
讀 CLKCFG 的程式碼:



84 /* Read clkcfg register: it has turbo, b, half-turbo (and f) */
85 asm( "mrc\tp14, 0, %0, c6, c0, 0" : "=r" (clkcfg) );
86 t = clkcfg & (1 << 0);


然後找到
 Performance Profiling Techniques on Intel ® XScale™ Microarchitecture Processors pdf
有寫入 co-processor 14 register 6 (CLKCFG) 的語法


asm( "mcr\tp14, 0, %0, c6, c0, 0" : : "r" (VAL) );



好久沒看組語 XD,該學一下 GNU ARM assembly

2011年7月27日 星期三

Linux kernel spinlock 使用方式與時機

由 Linus 親自整理的 Linux kernel spinlock 文件

~linux/Documentation/spinlocks.txt
            多核心處理 critical section 的方式,safe but slow(disable interrupts)
 67 See . The basic version is:
 68
 69    spinlock_t xxx_lock = SPIN_LOCK_UNLOCKED;
 70
 71
 72     unsigned long flags;
 73
 74     spin_lock_irqsave(&xxx_lock, flags);
 75     ... critical section here ..
 76     spin_unlock_irqrestore(&xxx_lock, flags);

            單核心處理 critical section 的方式:
115
116     spin_lock_irqsave(flags);
117     .. critical section ..
118     spin_unlock_irqrestore(flags);
119

        reader/writer 處理 shared data 的鎖定方式:
149    rwlock_t xxx_lock = RW_LOCK_UNLOCKED;
150
151
152     unsigned long flags;
153
154     read_lock_irqsave(&xxx_lock, flags);
155     .. critical section that only reads the info ...
156     read_unlock_irqrestore(&xxx_lock, flags);
157
158     write_lock_irqsave(&xxx_lock, flags);
159     .. read and write exclusive access to the info ...
160     write_unlock_irqrestore(&xxx_lock, flags);

        如果確定不會跑在 interrupt handler 中(否則會重複鎖定造成 dead lock),
        可以用簡化的 spin_lock API 較快
192     spin_lock(&lock);
193     ...
194     spin_unlock(&lock);

        因此 read lock 等可以用簡化的非 irq safe spinlock,但 write lock 則必須
        使用 irq safe 的 spin lock

Linux kernel and user space interfaces

1. /dev/  character device ioctl control code read/write interface
2. /sys sysfs  show/store read/write interface
3. /proc procfs  read/write interface
4. event: input events (for example key events)

2011年7月23日 星期六

SCH滿四個月



滿四個月後,口水超多,特愛吸大拇指,會翻半身,奶量約120ml。開始嘗試吃副食品,從貝康純米精開始,一天一餐,但不太捧場,大多吐出來,通常餵個五分鐘就開始不耐煩,只要一哭,我就停止餵食,避免以後抗拒吃副食品。

笑點很低,任何人都可以逗他笑。照鏡子會笑得很開心,躺著看嬰兒床的吊飾玩具也會邊看邊笑,喜歡ㄚㄚ大叫,可以自己玩超過十分鐘,一副自得其樂模樣。

會認媽媽了。尤其想睡覺時,若不是我抱著,會一直哭得很傷心。睡眠已呈穩定狀態,半夜可連續睡6小時,曾經長達過10小時。可見百歲醫生的育兒方法很有效。我照著「百歲醫師教我的育兒寶典」的方法訓練自行入睡,其實就是狠下心來讓他哭到睡著,天天訓練,約2週左右可以一覺到天亮。

健兒門診時,醫生說他腿很有力,很會蹬地板。62cm / 6.8kg 中等身材。很幸運有打到13價肺炎鏈球菌疫苗,之前每次健診都剛好缺貨。到目前為止,發燒過一次,約兩個半月大時,不明原因,也沒就醫,自行服用退燒藥就退燒。4M7D時,被哥哥傳染感冒,有小咳嗽,醫生開「息咳寧感冒糖漿」,這是出生後第一次吃藥。

2011年7月21日 星期四

修改 linux device driver 載入 順序

1.  platform driver 可以調整 platform device 的 register 順序
 
2.  強者同事 Gary 使用 include/linux/init.h 定義不同順序的 init macro
    module_init default 是 order 6
    可以設定 late_initcall 是最後的 order 7

3.  build  kernel module, 在 user space 調整 module loading 順序

2011年7月10日 星期日

蘭德的培養心理調適能力建議

如果喜歡閱讀蘭德公司的文章,可以到蘭德網站購買紙本資料(Consider buying this
document if you think this information is valuable to you.)。

Psychological resilience 原本查到是抗壓力,但我覺得這個翻譯偏負面,不符合這篇的
主旨,因此翻為心理調適能力。

心理調適能力指的是處理或克服逆境與壓力的過程。精神健康方面,心理調適力不只
是個人人格,而是個人跟生命經歷與當下時空環境的互動。比如調適力可以應用到預
防(避免遭遇壓力)或是治療(從壓力產生的傷害中復原)的情境。

可以提升調適力的因素:

個人因素

– 正向處理
經營管理令人煩惱的情況,花費努力解決個人與人際問題,尋求降低或忍受壓力與衝突
,包括主動務實,專注在問題,精神與靈魂層次的處理方式

–正向影響
保持熱情、主動與警覺,包括正向情緒,幽默感(承受壓力、受到挑戰時仍保持幽默感)
,懷抱希望,保持彈性擁抱改變

– 正向思考
處理資訊,應用知識,藉由改造、重構框架、理解情況、保持靈活、再評估、重新聚焦
,改變偏好與價值觀優先順序。對事物結果有正向期待,正面的願景與心理準備

–務實主義
務實掌握可能性,對於結果有務實的預期,自尊心與自我價值,自信心,相信自己能
勝任,認識自己可掌握的部份, 並接受無法控制與無法改變的事物。

– 控制行為
監控、評估、修改情緒反應並完成目標的程序(自我規範、自我管理、自我提升)。

家庭因素
– 情感連結
家人之間的情感連結,包括共享的娛樂與休閒時間。

– 溝通
思考、資訊的交換、 包括解決問題,人際關係的管理。

 – 支持
認知可以從他人得到、並提供安慰。包括情感上的,可觸覺的,起重要作用的與精神、
靈魂上的支持。

– 親密感
愛、親密、忠誠。

 – 教養
養育子女的技巧

– 適應力與通融
可調適自己接受關於生活中的改變,包括彈性、靈活地扮演家庭中的角色。

組織因素

– 正向的領導環境
使用或培養組織單位之間的互動,建立自尊心並支援完成任務、領導統禦、正向角色
典範、執行組織政策

– 團隊合作
協調團隊成員之間靈活彈性的分工合作

– 內聚力
小組能聯合行動,聯結所有團隊成員承諾互相援助,一起投入工作任務。

社群因素
– 歸屬感
整合,友誼,包括參與精神信仰的組織,協定與儀式,社會服務,學校等,以及執行
組織政策。

– 內聚力
社群內可以群聚人們的聯結,包括共享價值與親密安全的關係

– 連結性
在社群中與他人的連繫品質與數量,包括與單位,或與在某單位的人們聯繫,
連繫的層面包括承諾,組織結構,角色,責任與溝通

– 集體效能
團隊成員瞭解整個團隊有能力共同合作

2011年6月26日 星期日

DISCONTIGMEM on PXA270

Russell King在回覆給 dera 的 DISCONTIGMEM on PXA270 一文中,提到 PXA270 平台設定
多個 DRAM memory bank 在 Linux kernel 的設計方式:

1. PHYS_OFFSET 從最小的 SDRAM 開始,在該文中是以 0x8000,0000
2. 因為 memory bank 之間有太大的漏洞,必須修改  __virt_to_phys/__phys_to_virt 將你的實體
記憶體壓縮排列到虛擬記憶體中。
3. 因為實體與虛擬記憶體非 1:1 對應,因此不能定義 NODE_MEM_SIZE_BITS, 而是要以單一
bank (該文是 128MB) 設定 NODE_MEM_SIZE_MASK (128MB -1)
4. 定義 KVADDR_TO_NID(vaddr) 將虛擬記憶體轉為 node number
5. 定義 PFN_TO_NID(pfn)轉 page frame number (phys >> PAGE_SHIFT) 到同一
node number (memory bank)
6. 公式就是以下列式必須符合 SDRAM 每一個位址:
KVADDR(vaddr) == PFN_TO_NID(phys_to_pfn(virt_to_phys(vaddr)))
7. Vernon Sauder 在回文中提到 必須考慮到 arch/arm/mach-pxa/Makefile.boot
中定義的 linux kernel start address zreladdr, 有修改為 0x8000,8000.

但實務上現在 arm linux 不應該再使用 DISCONTIGMEM ,而該使用 SPARSEMEM
1. mach/memory.h 定義 MAX_PHYSMEM_BITS 跟 SECTION_SIZE_BITS
可以在 arch/arm/include/asm/sparsemem.h 找到這兩個參數的定義

2.  config 中加入 ARCH_SPARSEMEM_ENABLE 移除 ARCH_DISCONTIGMEM_ENABLE
3. 仍需要修改  __virt_to_phys/__phys_to_virt 將你的實體記憶體壓縮排列到虛擬記憶體中。
4. 確定 sparse memory 的 patch 有上, finish of sparse memory patch

2011年6月19日 星期日

條碼機 維基百科條目

摘譯維基百科英文條目 Barcode_reader

條碼機指的是讀取印刷條碼的讀取機器。跟影像掃瞄器一樣擁有光源、鏡頭、將光學脈衝解
讀為電子訊號的感光器(ADC),差異點在條碼機幾乎都包括解碼器解讀影像資料,並將解碼
結果傳送到條碼機的輸出介面。

條碼機的種類:CCD, Laser, 2D

    CCD 指 Linearized CCD 只能掃一維條碼,只有一維(列)感測器,感應條碼因環境光
    線而反射後得到的條碼資訊。


    Laser 指只能掃一維條碼,讀取打出去的特別頻率光線,再分析反射回來的光線讀取
    條碼。

    2D 指能掃一維跟二維條碼,照相得到影像後再用影像解析解碼

    參考:
    http://www.keyence.com.tw/products/barcode/barcode/barcode.php
    http://en.wikipedia.org/wiki/Barcode_reader

ARM Linux kernel 記憶體配置

摘譯這篇由 Russell King 在 2005 年 11 月 17 日針對 2.6.15
Linux kernel 撰寫的 ARM Linux kernel 記憶體配置

    http://www.arm.linux.org.uk/developer/memory.txt

    裡面指的是 linux kernel 使用 arm cpu 的虛擬記憶體的位址配置與排列方式
    arm cpu 的虛擬記憶體定址空間: 4GB (32 位元的定址空間,
    0000,0000 ~ FFFF,FFFF)

    沒有遵循這個記憶體配置的 kernel 可能無法開機或發生隨機當機


===========開始=========針對 user space 的加入內容==========================
    針對每個 user space 程式而言,其實都跟硬體裝置的記憶體映射空間, kernel 使用的
    記憶體空間,三者共用整個 4GB 的虛擬記憶體。

    user space 程式這個區塊內部的記憶體配置如下:
   +----------------------+---------------------+-----------+------------+------------+
    | Code segment(r+x) | Data segment(r+w) | BSS(r+w)  | Heap(r+w) | Stack(r+w) |
   +-------------------------------------------------------------------------------------+
   Code segment 是 instruction memory,儲存程式碼
   Data segment 是 data memory,使用 brk(), sbrk() system call 改變或查詢 Program break 大小
   BSS segment 是未初始化的 global 變數存放位置
   Heap segment 儲存程式執行期產生的動態變數、記憶體區塊由 malloc() 取用,free()  釋放
   Stack segment 使用 SP stack pointer 暫存器輔助 IP instrcution pointer 指定,由
     function call, 與其 local 變數使用  
   參考 Memory Management for System Programmers (pdf)

    在 Linux 系統底下我們可以藉由 /proc/some_pid/maps 看到執行檔與 library memory map,
    另外 smaps 則詳列各區段 memory map 的使用狀態。其中可以看到從
    0x0000,1000~0xBF00,0000 的載入函式庫與 heap, stack, 其中 stack 與 TASK_SIZE 相鄰
    舉某個 android process 為例:
    其中

    0xBEBE,9000- 0xBEBF,E00 是 stack 使用
    0xB000,0000 ~ 0xB001,0000 是 linker 載入位置, Thread 0 Stack
    0x8000,0000 ~ 0xAFE46000  是 Non-prelinked libraries
    0x4154,C000 ~ 0x8000,0000 是 mmap'd 記譯體,Java jar library, apk 檔案
    0x4000,0000 ~ 0x4154,C000 是 mmaped open file
    0x0000,A000 ~ 0x003C,4000 用在 heap
    0x0000,1000~0x0000, A000 佔用 .text (code segment) / .data 

    Android 2.3 以前的 prelink library build/core/prelink-linux-arm.map
    裡面除了重述 Russel King 的 ARM Linux kernel memory 的記憶體配置,
    Android 的記憶體配置中,包含兩塊系統預設的 library memory mapping:

    其中 Android prelink 定義了以下兩大塊記憶體對應:

    # 0xA0000000 - 0xBFFFFFFF Prelinked System Libraries
    # 0x90000000 - 0x9FFFFFFF Prelinked App Libraries
    可以在 prelink-linux-arm.map 中找到或新增你要加入的 library 記憶體對應。



    # 0xA0000000 - 0xBFFFFFFF Prelinked System Libraries
    0xAEF00000  - 0xAFF00000 # core system libraries
    0xAE700000 - 0xAEE00000 # bluetooth libraries
    0xAE300000 - 0xAE600000 # extended system libraries
    0xACA00000 - 0xAE200000 # core dalvik runtime support
    0xA9C00000 - 0xAC900000 # graphics
    0xA8D00000 - 0xA9B00000 # audio
    0xA7000000 - 0xA8B00000 # assorted system libraries
    0xA4800000 - 0xA6F00000 # pv libraries
    0xA4000000 - 0xA4700000 # opencore hardware support
    0xA3800000 - 0xA3900000 # pv libraries
    0xA2F00000 - 0xA3700000 # stagefright libraries
    0xA2A00000 - 0xA2E00000 # libraries for specific hardware

    # 0x90000000 - 0x9FFFFFFF Prelinked App Libraries
    0x9CA00000 - 0x9F000000 # libraries for specific apps or temporary libraries


# 0xC0000000 - 0xFFFFFFFF Kernel
# 0xB0100000 - 0xBFFFFFFF Thread 0 Stack
# 0xB0000000 - 0xB00FFFFF Linker
# 0xA0000000 - 0xBFFFFFFF Prelinked System Libraries
# 0x90000000 - 0x9FFFFFFF Prelinked App Libraries
# 0x80000000 - 0x8FFFFFFF Non-prelinked Libraries
# 0x40000000 - 0x7FFFFFFF mmap'd stuff
# 0x10000000 - 0x3FFFFFFF Thread Stacks
# 0x00000000 - 0x0FFFFFFF .text / .data / heap

====================針對 user space 的加入內容==========結束================


    因為 cpu 架構的發展變化可能影響 kernel 記憶體位置的配置,user space 程式應該
    只使用到 0000,1000 ~ TASK_SIZE -1 這段記憶體。請使用 open(), mmap() 系統呼叫
    使用這段記憶體。
    FFFF,8000 ~ FFFF,FFFF           copy_user_page/clear_user_page 使用
    SA11xx 跟 Xscale cpu 建立 minicache 的記憶體位址

    FFFF,1000 ~ FFFF,7FFF           保留
    各平台禁止使用這塊記憶體配置

    FFFF,0000 ~ FFFF,0FFF           cpu vector page
    如果 cpu 支援改變中斷向量位址 (control register V bit), 會把中斷向量映射到這
    4K bytes 區塊

    FFC0,0000 ~ fffe,ffff           DMA 記憶體映射區塊,由 dma_alloc_xxx 的
    函式呼叫都使用這塊記憶體動態配置,總共 0x003F,0000 佔 4MB

    FF00,0000 ~ FFBFF,FFFF          保留給 DMA 記憶體映射擴充使用 佔 12MB

    VMALLOC_END ~ feff,ffff         平台自由運用的記憶體區塊都建議用這段
    VMALLOC_END 必須對齊 2MB 的記憶體區塊
    在 arch/arm/mach-pxa/include/mach/memory.h 中定義

    #define ARM_DMA_ZONE_SIZE SZ_64M 除了以上 16MB 保留給 DMA 另外用了 48 MB
    使用 FBC0,0000~fffe,ffff
    在 arch/arm/mach-pxa/include/mach/vmalloc.h 定義
    #define VMALLOC_END       (0xE8000000UL)

    VMALLOC_START ~ VMALLOC_END - 1 vmalloc() / ioremap() space
    由 vmalloc() 及 ioremap() 取得的記憶體會動態配置在這區塊,VMALLOC_START 相依
    於 high_memory(不能有重疊)
    在 arch/arm/include/asm/pgtable.h 中註解有說明留 8MB 給誤動作的記憶體錯誤緩衝空間,
    定義如下:
    #ifndef VMALLOC_START
    #define VMALLOC_OFFSET      (8*1024*1024)
    #define VMALLOC_START       (((unsigned long)high_memory + VMALLOC_OFFSET) &
                                                      ~(VMALLOC_OFFSET-1))
    #endif

    其中 high_memory 在 arch/arm/mm/init.c 的 void __init bootmem_init(void) 計算:
    high_memory = __va(((phys_addr_t)max_low << PAGE_SHIFT) - 1) + 1;

    PAGE_OFFSET ~ high_memory - 1   Kernel direct-mapped RAM region
    這段記憶體對應到平台上的實體記憶體,通常跟系統記憶體是 1:1 的對應
    (direct addressing) 在 arch/arm/include/asm/memory.h 看到 PAGE_OFFSET 定義為
    UL(CONFIG_PAGE_OFFSET)
    也因此我們可以在 arch/arm/include/asm/memory.h 看到以下 virtual, physical 記憶體互轉的
    巨集定義:
    #define __virt_to_phys(x)   ((x) - PAGE_OFFSET + PHYS_OFFSET)
    #define __phys_to_virt(x)   ((x) - PHYS_OFFSET + PAGE_OFFSET)

    其中的 PHYS_OFFSET 實體記憶體在 cpu 定址的記憶體初始(start of bank 0 dram)位址
    ,是定義在同檔案的以下巨集:
    #define PHYS_OFFSET UL(CONFIG_DRAM_BASE) 與
    #define PHYS_OFFSET PLAT_PHYS_OFFSET
    CONFIG_DRAM_BASE 是實體記憶體起始的 offset 值,在 pxa 平台可以
    在 arch/arm/mach-pxa/include/mach/memory.h 中看到定義為:
    #define PLAT_PHYS_OFFSET    UL(0xa0000000)
    我們可以對照 pxa270 spec memory map 章節的 dram map 起始位址
    0xa000,0000 作為實體記憶體的起始位址得到驗證。
    再配合 arch/arm/Makefile 定義的 Linux kernel image text area 值
    TEXT_OFFSET := $(textofs-y)
    而 textofs-y   := 0x00008000 是預設值。
    arch/arm/boot/Makefile 告訴我們 zImage 等 target 就是
     21 #   ZRELADDR == virt_to_phys(PAGE_OFFSET + TEXT_OFFSET)
    因此可以算出:ZRELADDR = PHYS_OFFSET + TEXT_OFFSET = 0xA000,8000 (physical)
    而虛擬位置是 0xC000,8000(virtual),這個計算結果可以跟 Makefile include 的
    include $(srctree)/$(MACHINE)/Makefile.boot 檔案,在 pxa 平台就是
    arch/arm/mach-pxa/Makefile.boot 檔案裡面定義的 zreladdr-y
    zreladdr-y   := 0xa0008000
    在實務上我們也可以修改 zreladdr-y 定義的實體記憶體位址,來改成我們想要把 linux kernel
    起始點放在 physical memory 的哪一個位置上。這也就是為何我們從 boot loader 載入 linux
    kernel 都要指定到某個固定實體記憶體位址的原因,因為在 make kernel 時就決定了這個位址。

    PAGE_OFFSET 也就是 linux kernel image 的虛擬位址起始點, 0xC000,0000 3GB 的 user address
    space

    TASK_SIZE ~ PAGE_OFFSET - 1     Kernel module space
    使用 insmod 動態載入的 kernel modules 會在這段記憶體使用動態配置
    arch/arm/include/asm/memory.h 定義
    #define PAGE_OFFSET     UL(CONFIG_PAGE_OFFSET)

    0000,1000 ~ TASK_SIZE - 1       User space mapping
    每個 thread 使用 mmap 對應到這段位置
    arch/arm/include/asm/memory.h 定義
    #define TASK_SIZE         (UL(CONFIG_PAGE_OFFSET) - UL(0x01000000))
    如果 PAGE_OFFSET = 0xC000,0000,則 TASK_SIZE = 0xBF00,0000 (3GB - 16MB)

    0000,0000 ~ 0000,0FFF           cpu vector page, null pointer trap
    不支援中斷向量重新映射的 cpu 會把中斷向量 page 放在這 4K bytes

關於以上作業系統的 Virtual address map 我們可以使用 arch/arm/mach-pxa/generic.c 與
arch/arm/mach-pxa/include/mach/hardware.h 的建立 memory mapped device 跟 chip select
memory mapped device 的 Virtual -> Physical mapping

arm 因為使用到 co processor 15,controller register(1th), v bit (13th), 因此用到
vector page relocate 功能,原本會到 0x0000, 0000 找 vector table 的動作改為到
0xffff, 0000 找 vector table,而我們在 mmu 啟動後使用的 0xffff,0000 Virtual address
就是在 arch/arm/mm/mmu.c 的 devicemaps_init() 中將 Linux kernel 開機時在
arch/arm/kernel/entry-armv.S 建立的 vector table 存在 SDRAM 後,建立一組 0xffff, 0000
high vector page 對映到實體記憶體的 vector table,因此 Linux kernel 開機啟動 mmu
進入 virtual address mode 後才能在硬體發出 exception 中斷時,找到 vector table 處
理中斷。








2011年6月14日 星期二

安滅菌

幾個月前,SSH不小心被狗咬傷,傷口不大,但為了安全起見,我帶他前往大醫院就診。醫生診斷問題不大,因為是家中飼養的小狗咬傷,且狗兒也有按時打預防針,所以不需過於擔心,只要口服抗生素一週,再加上一天兩次傷口塗抹藥膏即可。當時醫生開的抗生素,就是最近被衛生署檢驗出含有塑化劑並強制禁用的-「安滅菌」。

「安滅菌」是小兒科常見的抗生素用藥。像鼻竇炎、肺炎、中耳炎都常以「安滅菌」作為治療藥物。
它是白色粉狀,玻璃瓶裝,要自行加水調成糊狀服用。開封後要冷藏保存,三天內吃完。ssh當時只是被狗咬,吃抗生素是保險起見,避免細菌感染,沒想到卻吃進更毒的東西。

如何培養創業家

Cheryl Morris 在 BostInnovation 發表 How to Raise an Entrepreneur 的心得文,摘譯如下:
與其嘗試創業不如培養子女成為創業家,華爾街日報一篇 How to Raise An Entrepreneur
指出你可以培養孩子的五項特質讓他們成為創業家。

一、冒險精神。鼓勵孩子探索周遭的一切。給小孩對的玩具,讓小孩自己想辦法去學習
如何玩這個玩具,放假時帶小孩到不同的餐廳、場所,離開舒適區適應新環境。攀岩運
動很像是創業活動,攀岩者願意把自己置身高危險場所,並學習細心專注的降低、消除
風險。

二、沉穩而讓人可靠的個性。提供小孩在固定時間有高質量工作產出的環境。以身作則
教導情緒智商。

三、善於觀察的能力。鼓勵小孩從認知問題、尋找機會的眼光與角度看待世界。

四、團隊合作。鼓勵團隊運動訓練團隊合作的技巧,培養個人特質並融入團隊的機會,
以及承擔風險的機會。

五、以身作則。如果家長就有創業經驗,請直接傳授給你的孩子吧。

2011年6月12日 星期日

就算沒有需要隱瞞的事也要在乎隱私

喬治華盛頓大學的法律教授 Daniel J. SoloveChronicle 寫了篇
Why privacy matters even if you have nothing to hide

摘譯部份如下:

許多人面對隱私爭議時,所持的態度是:我沒有什麼需要隱瞞的。或我沒有做虧心事,
不怕別人知道任何事。當然也有變形的說法:我的資訊不值得別人蒐集。

全世界監視器密度最高的英國政府對人民說:如果你沒有要隱藏什麼,就不需要害怕。
 Daniel J. Solove 在他的部落格提了這個疑問,並詢問重視隱私的讀者都如何回應?
他收到了以下幾種回答:

一、你有裝窗簾嗎?你的信用卡帳單願意借我看嗎?
二、我不需要跟你解釋為何我要保護自己的資訊,你先說憑什麼收集我的資料吧,有
搜索票嗎?
三、我的確沒有要隱藏什麼,但我也不想要讓你知道任何事情。
四、要知道我的什麼資料,那你先公開你的吧。
五、這跟我要隱藏什麼無關,而是這些都是我的私事,跟別人無關。
六、如果你真的沒什麼好隱藏,那你可能沒有私生活吧。


其實若我們仔細回想,表面上說得再冠冕堂皇的人,都會想起自己對某些人事物的愧
疚,想對某些人物隱藏某些事物以維持關係。重點是你肯不肯面對真實的自己而已。
每個人都有自己主觀的意識與真正願意公開的事物底限,誇張點說,有誰願意公開自
己的裸照而不害羞的呢?

以上的說法可能都還算偏激的回應。但我們可以回到隱私的意義,每個人可能對隱私
有不同程度的定義,但是當我們感覺隱私被侵犯時,感覺是類似的,即使目前被取得
的資訊不會影響到生活,會不會又洩露更多資料後,真正開始影響到生活呢?感覺受
到監視、怕被知道秘密而被勒索、盜用個人資料導致個人財產名譽受損,各種不要緊
的細項資訊結合起來,可能就會拼湊出你不想讓人知道、或被誤解的不實資料。

比如你買了頂假髮,最近常上醫院,於是照資料上來看,可能會出現你得了癌症,
正在做化療這種離譜的結論。實際上你可能只是要練習剪頭髮,或想要變裝。

類似這種不想被誤解而想要保有隱私的例子,在個人對個人的人際關係中也可以找到
例子。

有些堅持沒有需要隱藏的事就不用在乎隱私的人,他們的論點是,除非造成人員傷亡
了才是真正造成隱私損害,這是根本不尊重別人,自私、完全沒有人權觀念的論述。

隱私的侵害也常常是溫水煮青蛙般,逐漸失去的,因為被強迫公開某些資訊而勉強接
受,接著進一步的被迫公開更多資訊,直到完全沒有隱私。

如果某天被蒐集的資訊被認為你有犯罪意圖,而像關鍵報告電影般,發生有人因私利
栽贓你要如何自救?答案就是保有隱私權。


此文是由耶魯大學出版社出版,喬治華盛頓大學的法律教授 Daniel J. Solove 所著作的
新書 Nothing to hide: The false tradeoff between privacy and security 節錄。

2011年6月10日 星期五

Jonathan Danylko 二十年來的程式設計心得

Jonathan Danylko 寫了一篇 Top 20 Programming Lessons I've learned in 20 years
摘譯如下:

Jonathan Danylko 自十一歲起就已經愛上科技與程式設計。他發現從事程式設計二十年
來有許多困難與容易的課題,也許同樣身為程式設計師的你沒有經歷過,接下來將要
分享他的經歷與心得(以下的我,如無特別註記,代表 Jonathan Danylko 先生):

我會隨著時間修改內容,也許以後會想到更多的事,但目前這二十條心得已經足以
包含所有的程式設計大小事。以下就是記憶最深的部份:

一、設定你認為解決這個問題要花的時間。不管設定半小時或一小時都好,當你在
自己設定的時間內無法解決某個問題,就找人問吧,不然趕快上網查資料也好。

二、一個程式語言就只是個語言。當你對單一個程式語言夠熟,就很容易對其他程
式語言觸類旁通,學習效果越來越好。你用來解決問題的程式語言要讓自己有相
當的"舒適"感,不影響邏輯思緒,可以產生有效率而且簡潔的程式碼,最重要的是
挑一個最適合解決這個問題的程式語言。

三、不要過度強迫自己使用設計模式。有時候一個簡單的演算法就足夠,不需要再去
勉強套上 singleton, facade 設計模式。對大部份的情況來說,簡潔的寫法最容易懂。

四、永遠要記得備份程式碼。我記得當發生硬碟全毀,資料完全救不回來的情景,並
對曾經發生的慘劇永保警惕之心。當你忘記備份時,可能就在要交程式的前夕發生
悲劇,不管單一份程式碼(snapshot)或版本控管紀錄都需要備份。

五、面對現實吧!你不是最強的程式設計師。我以前常認為自己很瞭解程式設計,但
    事實上你總是會遇到比你強的程式設計師。請向他們學習。

六、增進你的學習能力。因為第五項的緣故,我總是手邊帶著一份電腦書籍或雜誌,
    (我的朋友可以幫我作證),的確目前電子科技日新月異,要真的完全趕流行可是一份
全職工作才做得來的。當你有足夠聰明的學習媒介與方法,就可能一直乘著浪頭走。

七、變化是常態。你的科技知識跟程式設計能力應該像投資股票一樣:分散風險。不
要一直專注在單一項目自我感覺良好。如果某個程式語言與科技的支援不足,你也
可能需要更新履歷,開始重新練功。讓我保持一直向前的原則:至少要會兩到三種
不同類別的程式語言,當其中一項開始被取代,失去應用場合,至少你還有可以撐
場面的第二專長,並開始繼續學習新專長,隨時保持熟悉兩、三種程式語言的程度。

八、支援新進人員。幫助並訓練新進開發人員,教導程式設計原則與技巧。你永遠無法
預測下一步...你可能陞官,此時你會慶幸自己有對新進人員傾囊相授,因為你陞官空
缺的位子將有人幫你抬轎。

九、簡化演算法。撰寫程式時可以窮盡你的能力寫出複雜的程式,但當完成後記得回去
檢視你的程式碼進行改善。一點一滴的程式改進讓你日後可以愉快的維護這份程式碼。

十、為程式碼撰寫文件。不管是網站服務的 API 或是單一類別的文件,凡寫過的程式必
留下文件。我常被批評寫太多註解,但這卻是我引以為傲之處,為兩三行程式碼註解
可能只要幾秒鐘,如果是用了非常規的解決辦法,則更需要註解清楚你在寫什麼。
    如果文件寫得好,將可以佳惠設計架構、接手的程式設計師、技術支援部門的人。

十一、測試、測試、測試。我是黑箱測試的擁護者。當你完成程式後,就開始要對這段
    程式負責了,如果你們有品保部門,你將需要跟品保部門解釋更多程式錯誤。如果你
不完整的測試程式,除了需要改善程式碼以外,還會得到壞名聲。

十二、慶祝每次成功。我看到很多程式設計師解決令人頭痛的問題,他們會跟同事慶祝
,不論是簡單的搖擺、擊掌或是一段舞動。每個人在生命中遇到美好的事物,寫程式時
也可能因為寫出得意的程式碼想分享喜樂,也許你已經看過類似的解決方法上百次,
還是要記得跟你的同事同慶第一百零一次的歡樂。

十三、不論是專案或個人的程式,頻繁檢視程式碼。在公司中你總是有機會檢視程式碼
,讓人評鑑你的程式碼品質。不要認為別人故意惹惱你,把建議當作建設性批評。就
個人而言,永遠都要重新檢視程式碼,並總是自問:我要如何寫得更好?這將加速你
    的學習,讓你成為更好的程式設計師。

十四、回憶自己的程式碼。有兩種看以前程式碼的方式:我不敢相信以前寫這麼差。跟
我不敢相信以前寫這麼好。 第一種是覺得以前寫得很差,想知道如何改進。你將知道舊
的程式碼可以如何重構成更好的函式,或甚至改善整個專案的程式碼。第二種是驚訝於
自己以前的成就,開發者會有一兩個完成的專案,讓同事對你肅然起敬。當然這是來自
你的絕佳的程式設計能力,你可以拿出以前的函式庫或專案計劃,並改進成為更好的
產品或創意。

十五、培養幽默感。在二十年的開發經驗中,所有同事都抱著一定的幽默感,事實上幽
默感是你在這行業生存的必備技能。

十六、小心自稱全知、最懂的同事,佔有慾強,與沒經驗的程式設計師。遇到這些人你
反而要表現謙虛。自稱全知、最懂的人只是想吸引你的注意力,無法成為團隊成員。
佔有慾強的同事完成工作後,不會跟任何人分享。沒經驗的同事每十分鐘就會問你一
個問題,到最後他的程式都是你幫他完成的,而非他自己寫的。

十七、沒有簡單的專案。我常遇到朋友、家人、夥伴說:幫我寫個簡單的程式。要寫個
簡單的程式或網站,實際上需要雙方共同規劃,才可能完成一個雙方都滿意的產品。
如果有人說需要使用微軟 Access 寫三頁網頁,實際上他要的可能需要十五個網頁才
能完成的功能,並且需要使用 SQL server、還有討論區、客製化的內容管理系統。

十八、沒有理所當然的事。當你接下簡易的專案,可能會發現有些部份很容易解決。別
這樣想。在你沒有一份已經完成的類別、元件、或一段函式,並且經過完整測試,在
成功加入現有專案的產品之後,你再這樣想吧。

十九、軟體沒有完成的一天。曾經有同事告訴我軟體沒有完成的一天,只有暫時結案。
非常棒的建議。只要客戶還在使用你寫的程式,在經過一段時日的驗證後,大部份情況
是你還在繼續維護同一份程式碼。當然這並非壞事,這樣我們才有工作。;-)

二十、耐心是一項美德。當客戶、朋友、家人使用電腦遇到挫折,最後對電腦元件莫可
奈何時。我總是告訴他們:是人在控制電腦,不要讓電腦反客為主。寫電腦程式時也
同樣需要足夠的耐心,當程式設計師知道自己犯錯,並從電腦的角度理解之後,就會
    知道錯誤在哪裡。

希望以上的心得能夠啟發你,或讓你會心一笑。;-)

2011年6月7日 星期二

光華商場的怪婆婆

今天帶小孩去光華商場逛街,為了解渴先到便利商店買飲料,小朋友先
去拿了一罐養樂多後就交給我,我們一起走到冷藏櫃前在等著看飲料時
,一位怪婆婆就靠近小孩問說:
"小朋友你幾歲啦?你自己來買飲料阿?你爸爸媽媽去哪裡了?"
我站在旁邊正想看這位怪婆婆有何意圖?怪婆婆問我:
 "你買飲料怎麼買養樂多?大人買小孩的飲料喔,還是這是你的小孩?"
我轉身正面面對怪婆婆,正想瞧她的時候,她就自動閃開了。
應該又是跟小孩差點在台北市遠百寶慶店前被擄走一樣,遇到想要偷拐
小孩的犯罪集團。

有帶小孩逛光華的人要小心。

2011年6月4日 星期六

Javascript 語法蜜糖 CoffeeScript

摘譯 CoffeeScript 維基百科:

CoffeeScript 是用 ruby 寫的一種 Javascript 程式碼產生器。其中採用了 Ruby 與 Python
(比如 indent 取代大括號) 兩種程式語言的特性來簡化撰寫 Javascript 的語法,另外也
增加陣列轉換 (Array Comprehension)與正規表示(Pattern Matching) 的擴充語法。

使用 CoffeeScript 的好處是可以用更簡潔的程式碼,達到原本用 Javascript 寫出的
同樣功能,而不影響到執行期效能。Javascript 之父 Brendan Eich 表示 CoffeeScript
也影響到他對 Javascript 語言將來的發展規劃。

Ruby on Rails 預計在 3.1 版將會支援 CoffeeScript 。

CoffeeScript 可以在瀏灠器直接執行或透過 Node.js (Server side 執行的 Javascript 程式
,event driven I/O framework for V8 Javascript engie on Unix)執行。

 讀完維基百科後,可以繼續看 PragProg Magazine 的 CoffeeScript 五項改進
一、變數宣告依所在的 namespace 為全域或區域變數,不再因為宣告變數忘記加
var 而覆蓋已經宣告過的全域變數。CoffeeScript 也會將變數限定在單一檔案的匿名
函式中。

二、ajax call 中的 this 在 CoffeeScript 中同樣指到目前 context 的物件,this 關鍵字
也可以用符號 @ 代替

三、CoffeeScript 繼承 ruby 慣例將函式最後的 expression 自動當函式返回值,也可
以在變數賦值的語法 a = 後加上 '->' 自動將 a 由變數改為函式

四、CoffeeScript 在迴圈中使用 do 關鍵字,可以更容易為迴圈加入需取值的函式。

五、提供語法蜜糖,讓程式碼更簡潔

另外據說現在 GitHub 的開放源碼存量已經超過 SourceForge,再來是 Google Code 
第四是微軟的 CodePlex,另外還有支援 Mercurial distributed version control system (DVCS)
BitBucket 可以參考。

CoffeeScript 官網
CoffeeScript@Gihub 
A CoffeeScript Intervension

2011年5月31日 星期二

SSH胡桃鉗牙科塗氟

SSH滿三歲後,我第一次帶他去牙科塗氟。我選擇網路上頗受好評的「胡桃鉗兒童牙醫診所」。我提前一週,想預約週六門診,結果到六月底的每一天門診都全滿。還好護士說臨時有人取消預約,剛好我時間可以配合,馬上答應遞補。

塗氟的過程很快,不到一分鐘,醫生說,有一顆臼齒已經開始脫鈣,是蛀牙的前兆,這是警訊,提醒小朋友要更注意刷牙是否徹底。SSH非常配合,不哭不鬧,我從進門塡初診單到離開,約莫半小時。其實確定要去看牙前幾天,我試圖跟ssh作心理建設,老實跟他說要去看牙醫,他斷然拒絕說不要,後來我改變方法,我用騙的。我不再提起看牙醫的事。當天帶他出門也騙他說要去逛街購物,直到進入診所,ssh都沒發現他來到牙科,因為胡桃鉗一進門就是遊戲空間,當天有很多小朋友,還有玩具可以玩,我猜ssh八成以為那是幼稚園,反正他就是很enjoy,即便塗完氟,還是想待在那裏繼續玩。

因為健保有給付五歲以下幼兒每半年一次免費塗氟,所以這次花費僅150元。若是無健保給付,每次塗氟要價900-1200元。醫生說,只要長牙就可以塗氟,若是寳寳年紀太小,氟的劑量就要減低。其實ssh兩歲健兒門診時,醫生便建議定期看牙科,只是我一拖再拖,拖到三歲才完成第一次塗氟。離開胡桃鉗時,護士提醒我半年後要再回來塗氟,且需提早兩個月前預約。這次看牙經驗我很滿意,醫生護士態度都很友善,ssh也毫無抗拒地配合看診。我從胡桃鉗網站查詢門診時間時,只有下午與晚上,但到現場後護士告知我目前有開放早上門診。

2011年5月28日 星期六

SCH滿二個月


二個月開始喜歡笑



快滿二個月時,開始喜歡笑,喜歡說話,只要有人逗就會開心地微笑,一直對他說話還會發出「咕...嚕....」的聲音來回應我,最近則愛上吃右拳頭,本想買固齒器讓寳寳咬,但醫生說,這時期的baby還不太會抓握,要3-4個月時,手才比較會抓東西。健兒門診時檢查,體重增加挺多,從4.1kg增加到目前5.7kg,但身高依舊在3%左右,也就是矮胖型,跟我一樣,百分百遺傳。睡眠方面,繼續實行百歲醫生育兒法,盡量讓他哭到睡著,半夜可連睡5-6小時。

2011年5月22日 星期日

亞瑟 柯南 道爾生日

今天是夏落克、福爾摩斯的作者亞瑟  柯南 道爾的生日,昨晚 HBO 也很應景的重播
小勞伯道尼主演的福爾摩斯電影,向柯南 道爾致敬。柯南道爾也是共濟會的成員,
共濟會屬於秘密的兄弟會,有陰謀論者認為,共濟會是支配世界的陰謀組織。從法國
革命、美國獨立,到俄羅斯革命、以色列復國等歷史上的重大事件,都是由共濟會促
成的。第二次世界大戰前的日本,也很流行共濟會世界戰略的說法。多數的歷史學家
也證明了共濟會會員曾在這些事件中活躍過。

台灣相繼成立了13個會所(又稱為分會,其中也有因中國政局因素迫使停會後,在
台灣再復會的。台中高雄均有分會,其它均集中在北部;各分會皆以「」(
語:lodge)做會所之名,並予以區分,如:誼廬、川廬、自由廬、漢廬、唐廬、明廬
、融廬等。其中唐廬為一雙語廬,意即其美生儀禮采英語,而廬中討論事項為國語。
台北縣深坑鄉也有分會海山廬(英語High Sun Lodge)。會員非常低調,鮮少有公
開對外的場合;黑色西裝搭配白襯衫和領結,是美生兄弟們集會時的標準穿著。

相關連結:

The Official Web site of the Sir Arthur Conan Doyle Literary Estate

How to Develop the 'Sherlock Holmes' Intuition

維基百科:共濟會

維基百科:亞瑟 柯南 道爾

防水、防塵、防撞擊的 IP 碼

摘譯自英文維基百科,IP_Code

IP 碼就是 Ingress Protection 評比的縮寫,有時候也當作 International Protection Rating
的縮寫。通常會看 IP 兩字母后接一碼或兩碼數字,再加一字母或選擇性加另一字母。

在 International standard IEC 60529 的 IP 碼分類,評比防外部固體物質(包括人體,如
手指)入侵機體的保護程度,也包括防塵、防意外接觸、機體防水、防電擊。

這個標準是為了提供更詳細的資訊給使用者,而非只有模糊不清的防水行銷用語。
但遺憾的是沒有公開的標準提供我們未經授權的使用者參考,因此每個人解讀可能
有所差異。

數字標示符合表格中某一種狀況,X 字母表示沒有針對該種狀況的保護程度評分。
比如電氣插座評分 IP22 可以保護手指無法插入,也不會因垂直或接近垂直滴落的
    水滴造成損害,或造成危險。IP22 或 2X 是一般室內電器的最低安全標準。

先看 IP 後第一碼數字(防塵):
第一碼數字代表對外物固體或有害物(導電體、移動物)的侵入與接觸保護。

數字等級 防護固體尺寸 可有效防護
0 無法防護接觸、或外物入侵
1 >50 mm 較大的身體接觸面積,比如手背,但無法防止有意的身體接觸
2 >12.5 mm 類似手指的外物
3 >2.5 mm 工具或粗電線等
4 >1 mm 大部份電線,螺絲等
5 防塵 不完全防塵,但入塵不應影響操作滿意度,完全隔絕接觸
6 完全防塵 完全防塵,完全隔絕接觸

接著看 IP 後第二碼數字(防水):
第二碼數字代表對外來液體的侵入與接觸保護。
防護等級 可防範項目Protected against 測試目的Testing for 細節Details
0 無防護
1 水滴 垂直滴下的水不應造成傷害 相當於每分鐘1mm雨水連續滴落10分鐘
2 傾斜15°度可防護水滴 在正常操作方式傾斜15°時,垂直滴下的水不應造成傷害 相當於每分鐘3mm雨水連續滴落10分鐘
3 噴水 垂直方向達60°的任意角度噴水落下不應傷害機體 壓力80–100 kN/m²相當於每分鐘0.7公升水量連續噴水5分鐘
4 濺水 從任意角度的濺水不應造成損害 壓力80–100 kN/m²相當於每分鐘10公升水量連續噴水5分鐘
5 噴水管 6.3mm水管由任意角度噴水不應造成損害 距離三公尺,壓力30 kN/m²相當於每分鐘12.5公升水量連續噴水3分鐘
6 強力噴水管 12.5mm水管由任意角度強力噴水不應造成損害 距離三公尺,壓力100 kN/m²相當於每分鐘100公升水量連續噴水3分鐘
7 泡水一公尺內 當在指定的壓力與時間內泡水一公尺,不應造成損害 可在水深一公尺持續泡水30分鐘
8 泡水超過一公尺 依製造商標示的可持續泡水水深,通常表示機體密封,但在某些機體代表可入水,但入水量不應造成損害 依製造商標示的可持續泡水水深

附加的額外字母

標準定義額外的附加字母分類可以保護免於由人造成的損害

等級 可防範以下身體部位的傷害Protected against access to hazardous parts with
A 手背
B 手指
C 工具
D 電線

可以再繼續附加以下字母提供額外的保護資訊:

等級 意義
H 高電壓裝置
M 防水測試中裝置可移動
S 防水測試中裝置直立
W 天氣情況

防機械碰撞

有一個額外數字表示防止機械碰撞,表示方法是用能量數值焦耳(J)。現在已經由 EN 50102
的 IK 數值取代。
雖然在 IEC 60529 第三版後就沒用到,也不在 EN 版本,舊版的規格通常會列在 IP
後的第三碼數字,表示防撞能力。新產品應該都會改成 IK 評比,然而目前沒有明確的
新舊版數值對照表。

掉落IP等級 撞擊能量 等量的掉落質量與高度
0
1 0.225 J 150 g dropped from 15 cm
2 0.375 J 250 g dropped from 15 cm
3 0.5 J 250 g dropped from 20 cm
5 2 J 500 g dropped from 40 cm
7 6 J 1.5 kg dropped from 40 cm
9 20 J 5.0 kg dropped from 40 cm


IK
number
Impact energy
(joules)
Equivalent impact
00 Unprotected No test
01 0.15 Drop of 200 g object from 7.5 cm height
02 0.2 Drop of 200 g object from 10 cm height
03 0.35 Drop of 200 g object from 17.5 cm height
04 0.5 Drop of 200 g object from 25 cm height
05 0.7 Drop of 200 g object from 35 cm height
06 1 Drop of 500 g object from 20 cm height
07 2 Drop of 500 g object from 40 cm height
08 5 Drop of 1.7 kg object from 29.5 cm height
09 10 Drop of 5 kg object from 20 cm height
10 20 Drop of 5 kg object from 40 cm height

IP69K

German standard DIN 40050-9 extends the IEC 60529 rating system described above with an IP69K rating for high-pressure, high-temperature wash-down applications.[5] Such enclosures must not only be dust tight (IP6X), but also able to withstand high-pressure and steam cleaning.
The test specifies a spray nozzle that is fed with 80°C water at 8–10MPa (80–100bar) and a flow rate of 14–16L/min. The nozzle is held 10–5 cm from the tested device at angles of 0°, 40°, 60° and 90° for 30s each. The test device sits on a turntable that rotates once every 12s (5rpm).
The IP69K test specification was initially developed for road vehicles, especially those that need regular intensive cleaning (dump trucks, cement mixers, etc.), but also finds use in other areas (e.g., food industry, car wash centres).

NEMA Rating

IP Code Min. NEMA Enclosure rating to satisfy IP Code
IP20 1
IP54 3
IP65 4, 4X
IP67 6
IP68 6P

The United States National Electrical Manufacturers Association (NEMA) also publishes protection ratings for enclosures similar to the IP rating system published by the International Electrotechnical Commission (IEC). However, it also dictates other product features not addressed by IP codes, such as corrosion resistance, gasket aging, and construction practices. Thus, while it is possible to map IP Codes to NEMA ratings that satisfy or exceed the IP Code criteria, it is not possible to map NEMA ratings to IP codes, as the IP Code does not mandate the additional requirements. The table above indicates the minimum NEMA rating that satisfies a given IP code, but can only be used in that way, not to map IP to NEMA.[6]
North American enclosure rating systems are defined in NEMA 250, UL 50, UL 508, and CSA C22.2 N°. 94.

2011年4月8日 星期五

好物分享-輕便傘車


Syncon欣康HS00107鋁管加寬型傘車



Inglesina Trip系列

SSH第一台推車是在他五個多月時買的,用沒幾次就被我收在儲藏室,因為太重了。當時買的是Inglesina Trip系列,重量6.3 公斤,扛著上下樓梯很吃力,出門就算收納起來要拿上公車也超不方便,所以乾脆不用。最近因為需要又重新拿出來使用,還是覺得太重了,因此上網買了第二台手推車。這次我選擇收納後可揹式的欣康輕便傘車,才4.5公斤,在Y拍買1290元,承重18公斤,帶ssh出門時最怕他突然想睡覺,以他現在14公斤的體重,抱著他走5分鐘就氣喘吁吁,現在有這台輕便傘車就方便多了。當初第一台會買Inglesina是因為它是義大利製,跟Combi或Aprica大陸製相比,感覺錢花得比較有價值。但重達6公斤的推車,若是在有電梯的公寓使用就很好用,因為Inglesina的輪子偏大,在凹凸不平的路面上很好推,至於欣康傘車則是一切從簡,麻雀雖小,五臟俱全,該有的功能都有,唯一缺點就是收起來時不能獨立站立,要靠著牆壁,不然就是用揹的,推車本身就有揹帶,我覺得用揹的還算方便。

2011年4月6日 星期三

新髮型



月子中心的寶寶都是早上8點就洗澡,今天洗完澡後,我的頭髮就豎得高高的,好像特別抓過。

2011年4月2日 星期六

雙眼皮


其實我是有雙眼皮的!


瞇瞇眼的時候,雙眼皮就會跑出來!


眼睛一睜大,雙眼皮就躲起來了!

2011年4月1日 星期五

皺眉頭



寶寶眼睛終於睜大一點了,出生才十多天,照相就可以看鏡頭看得很認真。只是不知道為甚麼要皺眉頭呢?

2011年3月31日 星期四

2011年3月27日 星期日

SSH 的豐富詞彙

SSH到一歲十個月左右才開始頻繁地開口說話,之前我一直很擔心他的語言發展遲緩,
又不知道問題出在哪裡,明明我是一個話很多的人,怎麼SSH話這麼少呢?

滿二歲後,SSH突然開始開口說一些之前教他的字彙,到二歲半時他已經可以說出完整
句子,現在則進入他問我答的對話模式。他很愛問「為什麼?」,有次我請他幫忙我拿東
西,他還反問我「為甚麼要幫你?」,最近他喜歡說「先」怎麼樣,「再」怎麼樣,例如
我跟他說現在要洗澡了,他會說,「先玩黏土,再洗澡」,意思就是要等他正在玩的遊戲
玩完之後再來做我要求他做的事,我很高興他能表達他心中的想法,我認為這不是討價還
價,而是用很理性的態度跟媽媽表達並要求他想要怎樣,通常我都會答應他,給他緩衝時
間,讓他再多玩一會兒,幾次之後我發現他也真的說到做到,我不必用「強逼」的方法來
要求他。原來,二歲兒是可以講道理的。

SJH曾說,看到SSH就知道他是你帶大的。我問從哪一點因為他跟我一樣話很多,整天說
個不停,不愧是有其母必有其子。

硬是要抬頭

出生才一周大的兔寶寶,脖子真硬。抱著他拍嗝時,我將他脖子貼在我肩膀上,但baby硬是把脖子抬的高高,撐個3秒後,會"啪"的一聲無力地倒回我肩膀上,過沒多久,再來一次,即使我壓住他的頭,不讓他抬高怕傷到脖子,但baby的毅力堅強,硬是要抬頭。我看他表情,知道他正在 "探索"。探索週遭一切,眼珠子轉呀轉地,即使脖子還不夠有力,仍然想嘗試抬頭看世界。他好奇這世界,我則好奇,"他在想甚麼呢?"

中興月子中心

第二胎還是選擇到中興月子中心。雖然早在去年9月就已預約訂房,但是中興不收訂金,只單純登記預產期,等生產當日再電話告知入住日期。結果我想入住的時間沒有空房,只好在生產醫院自費延住一天。所以有沒有房間,完全看運氣。

相較於三年前,制度上有些微改變。現在是餵奶時間一到,護士電話通知,攜帶母嬰卡到嬰兒室推嬰兒車將寶寶推回房內餵奶,餵完奶再自行推回去,餵奶多久要自行記錄。除了先生以外,訪客一律在會客室,不能進房間,不過我看到很多媽媽還是帶家人、朋友進入房內,所以管制得不是很嚴。

房間設備上,有雙人床,雙門小冰箱,20吋電視,熱水瓶,梳妝台,2張沙發椅,衣櫥,小板凳(哺乳時墊腳用),枕頭,V型餵乳枕(偏軟),厚薄棉被各一條,吹風機等用品。我建議自行準備硬一點的授乳枕,第一胎我買六甲村的樂活枕,這一胎我買妳心親密餵奶墊,這款偏硬,餵奶時寶寶不會一直往下滑。房間大小約9坪,空間相當大。沐浴清潔用品要自備,雖然每周提供1包平板衛生紙,但我覺得不夠用,建議準備一串抽取式備用,中興的床很軟,軟到床邊緣根本坐不住,我不喜歡,尤其我剖腹產,太軟的床讓我起身很費力,常因為起身而拉扯到傷口,所以餵奶我都坐在沙發椅上,沙發是硬的,背部墊個枕頭,用硬一點的「妳心餵奶墊」,腳再踩小板凳,這種姿勢餵奶很舒服。

兩間擠乳室,備有四台美樂-醫院專用型吸乳器自行準備吸乳罩就可以自由使用。吸乳器不是借回房內用,而是到擠乳室用。中興提供三個小玻璃奶瓶供媽媽裝母奶。擠出的母奶可存放在嬰兒室,半夜不想親餵時,可由護士代為瓶餵。

餐點方面,跟以前差不多,早中晚三餐外加兩份點心。點心是早上10點、下午3點各一次。早點是鹹的,像豬腳花生湯、香菇雞湯,還加一壺養生茶飲,像紅棗桂花飲、薑棗甜茶,這是三年前沒有的;午點是甜的,有紅豆湯圓、紫米桂圓粥等,每天都不一樣。用餐時間把餐車推到外頭,服務員會將餐車推進房內,以免很多媽媽不知道餐點已經送來了而耽誤了用餐。有些媽媽不訂月子中心餐點,而是另訂外面的月子餐,像廣和, 郭老師之類的,中興備有加熱區,有微波爐,電鍋可使用。另外有泌乳茶可供訂購,一杯75元,想衝奶量的媽媽可以先訂1杯喝喝看,看敢不敢喝再決定是否續訂。我三年前有喝過,口味可以接受,所以一連訂了7天,每天2杯,泌乳茶會在下午3點時連同午點一起送來。由於晚餐5點半就送來,之後要到隔天早上8點才有早餐,這10多個小時很容易餓,尤其如果你半夜要起床親餵的話,真的會感覺餓,所以我另外準備水果、鮮奶、豆漿、沖泡式黑芝麻糊及土司備食。萬一真肚子餓,可以吃點充飢。但若半夜不親餵,那建議晚餐後就不要再進食,因為月子餐一天總熱量已有2800卡,足夠哺乳媽媽的營養需求與熱量供應。

月子中心每天提供一套哺乳衣,入住期間都要穿著中興提供的衣服。每天有清潔人員來房內倒垃圾,加滿熱水瓶開水。每周更換床單一次,提供一包衛生紙,每周三次至房內拖地及清洗廁所。

入住期間,護理員會教導如何餵母奶,檢查子宮恢復情形,每天量血壓、耳溫。寶寶只有媽媽跟爸爸可以抱,爸爸要穿隔離衣才能抱寶寶。每週一至週五,下午三點都有媽媽教室。

費用方面一天總價4220元,內含房間費2866元,嬰兒照顧費754元,餐費600元。如果不訂餐可扣除餐費,若是寶寶照黃疸,到樓下嬰兒病房治療時,也可扣除嬰兒照顧費。媽媽生病可直接掛號到樓下就醫,像我剛入住時就感冒咳不停,護士幫我掛耳鼻喉科,診號到了再下樓去看診,不必久等。

每個媽媽有一次「嬰兒沐浴課程」可體驗,爸爸跟媽媽可一起參與,可以進到嬰兒室,親自幫寶寶洗澡,記得三年前第一胎上嬰兒沐浴課程時超緊張,第一次幫ssh洗澡手忙腳亂,即使護士從旁指導,我依然洗得戰戰兢兢,結果洗太久,ssh全身失溫變成紫色,還好護士趕緊包上浴巾,寶寶很快就回溫恢復正常膚色。沐浴課週一至週日每天都可以上。我的經驗是,入住當天就趕快跟護理站登記,因為週六日的時間很快就被預約。

坐月子期間,洗頭髮也是令許多人困擾。像這次生第二胎適逢寒流,洗頭怕著涼,加上剖腹產要10-14天才能淋浴,洗頭根本不可能。還好中興B1有美髮部,洗頭130元,也可以到病房服務,價錢再高一點,我產後第5天時在醫院洗過一次,180元,住進月子中心後,產後第9天到中興B1去洗頭,感覺比生產醫院洗得更仔細。B1還有超商跟維康藥局,附近有杏一藥局,拿月子中心發的母嬰卡到維康跟杏一購買皆可打9折,杏一還可幫忙送貨至月子中心,記得第一胎時,我需要購買一支吸鼻器,大約一百多元,我只需打電話給杏一,跟他說我要一支跟月子中心一樣的吸鼻器,沒多久就有專人送至我房間,方便又快速。

出院要提前三天告知,費用可刷卡,可報稅,中午前出院。有些媽媽提早出院後還繼續訂中興的月子餐,我覺得挺不錯的,早餐150,午餐225,晚餐225,我覺得早餐不需要,可只選擇訂午晚餐,但要自付快遞運送費。

剖腹生產,麻醉出槌

這次剖腹產,在麻醉過程中,出了狀況。由於第一胎已有經驗,我知道施打麻醉時,產婦要弓著身體,呈現蝦子狀,額頭要盡量貼到膝蓋,打完麻醉後要立即躺平,沒多久雙腿就會失去痛覺,
無法抬高。可是,第一次麻醉時,當麻醉師要我試著抬起右腳時,我居然可以抬得很高,我跟麻醉師說,我還可以踢球呢!我說我的雙腿沒有麻掉的感覺,麻醉師趕緊捏我肚皮測試,發現我肚皮部位仍有痛覺,麻醉師臉色黑青,無奈地說,要重新麻醉。

第二次麻醉,改變姿勢。我坐起來,抱著枕頭,額頭靠近膝蓋,盡量彎身讓背部弓出來。還好第二次麻醉不會痛,也順利成功。只是手術過程中遇到出槌狀況,心裡真的超緊張,我當時很怕醫生會改成全身麻醉。

2011年3月26日 星期六

計畫趕不上變化


才剛po完倒數計時生產去,想說再過個3天才要生,誰知才倒數一個晚上,隔天一早就破水落紅,經醫師確診是羊水後,火速送進開刀房,不到3小時,baby就平安出生了。

產前曾經跟家人一起擬定「緊急生產計畫」,討論萬一突然破水該如何應變? 後來跟醫生預約好剖腹日,心想這一胎應該不會出甚麼差錯,「緊急生產計畫」八成用不到。只可惜,計畫總是趕不上變化,原先預約好週三住院,週四開刀,結果我週一一早就破水,這時「緊急生產計畫」就派上用場啦! 我趕緊電話通知該聯絡的人,再次檢查生產包,迅速將還熟睡中的ssh打理好,一個小時內就趕到醫院。剛好產檢醫生當天有門診,護士讓我優先內診,確定是羊水後,馬上辦理住院,2小時後就生了,剛好當個牡羊座寶寶,我們家正式進入「The Wonder Four」!

2011年3月20日 星期日

倒數計時生產去

本想跟醫生更改生產日,延後個幾天至滿39週再剖腹,不是為了看時辰挑吉日,而是最近看了一篇報導,根據美國婦產科醫師學會的建議,39周對不論自然或剖腹產都是最理想的,未滿39週出生的嬰兒較易出現併發症,尤其是呼吸方面疾病,包括呼吸困難、感染、血糖低等。

雖然滿三十七週產下的嬰兒就算足月,但根據美國北卡羅萊納大學研究團隊,觀察兩萬四千名母親懷胎三十七週後剖腹產下的足月嬰兒,發現他們出現呼吸問題的機率,幾乎是懷孕三十九週剖腹產下的嬰兒的兩 倍;在懷孕三十八週出生的嬰兒,出現問題的機率也比三十九週剖腹產的嬰兒高五成,就算只早於三十九週期滿前幾天,出現併發症的風險也提高約兩成。

由於第一胎早產,醫生擔心我這一胎撐不到39週後才生,因此仍然建議我照原訂日子生產,醫生認為足38週的胎兒發展已成熟,沒有問題,既然醫生都掛保證了,我就依計畫開始進入生產的倒數計時。

2011年3月16日 星期三

設定 screenrc hardstatus 的 STRING ESCAPES

忘記之前有沒有貼過,更新一下加料版的 ~/.screenrc ,用 screen -DR 啟動


# http://jonny.ubuntu-tw.net/2011/03/screenrc-of-vimperator-like.html
# http://blog.eater.org/2008/12/new-screenrc-hardstatus-string.html
# http://www.debian-administration.org/articles/560
vbell off
defutf8 on # default new window encoding
defscrollback 8192
termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' # 開啟 256 色模式
hardstatus string "${USER}@%H %-Lw %{= BW}%54> [current: %n ] *%t%{-} %+Lw%< %= Date: %Y/%m/%d Time: %0c Loading: %l"



新加了 defutf8 on 之後 screen -UDR 改成 screen -DR 可以不用加 U 選項,
新加 defscrollback 8192 將 Ctrl + a + ESC 的 Page Up/Down buffer 由 100 行改 8192 行
,Ctrl + q 或 Ctrl + a + q 離開。另外就是 hardstatus 加比較多料,主要分成三段:

一、登入帳號跟主機名稱
"${USER}@%H  "

二、 參考別人從 screen manpage 改的各個 screen window,目前 window 會加 [] 包住
         對 screen manpage 的 STRING ESCAPES 還是不太瞭解,要再花時間看
"%-Lw %{= BW}%54> [current: %n ] *%t%{-} %+Lw%<

三、新增日期時間跟  Load average 會隨 window 增加被擠到後面
"%= Date: %Y/%m/%d Time: %0c Loading: %l"

參考以下作者的修改:
凍仁的 Ubuntu 筆記: screenrc of  Vimperator-like 
blog.eater.org: New screenrc & hardstatus string
An introduction to the visual features of GNU Screen
man screen

2011年3月10日 星期四

喉舒樂口含錠

杏輝出的喉舒樂口含錠不可咬碎或吞食,待口水溶解殺菌喉片。

根據官網的產品說明:
主要成份是 Cetylpyridinium chloride對各種病原性細菌,殺菌作用迅速有效
,不但對口腔咽喉之疼痛,腫脹炎症有治療效果,且對口腔發酵有抑制之效能
,故對口臭之消除有效。

用法用量:
成人1回1錠,小兒1日1/2錠,1日3~4回含於口中,使徐徐溶解睡前服用,有
效成份能高度保持於唾液中,效果更好。


注意事項:
1.使用本劑若有發疹等過敏現象發生,請即停止使用。
2.本劑對口腔,咽頭會有刺激感覺。        
3.將喉舒樂含於口中,請勿咬碎或吞服


摘譯
Cetylpyridinium chloride 英文維基百科:
根據維基百科解釋,Cetylpyridinium chloride 常見於漱口水、牙膏、口含錠、
喉嚨噴劑、呼吸噴劑、鼻噴劑產品中,是能殺死細菌與微生物的醫藥用殺菌劑。
已經被證實有效防制牙菌斑、減緩牙齦發炎。某些農藥殺蟲劑中也會採用為成
份之一。

然而根據 WebMDeMedicine 的說法
Cetylpyridinium chloride 跟氯已定
一樣,也有造成牙齒咖啡色斑的副作用,另外據說也會造成味覺障礙

假如吞食或是成為氣體吸入體內會造成中毒


2011年3月3日 星期四

Google 移除 21 款木馬軟體

參考 pcmag 的文章,沒想到 app unistaller 也是,之前還安裝過的...大家注意
有沒有中獎...

1. Falling Down
2. Super Guitar Solo
3. Super History Eraser
4. Photo Editor
5. Super Ringtone Maker
6. Super Sex Positions
7. Hot Sexy Videos
8. Chess
9. 下墜滾球_Falldown
10. Hilton Sex Sound
11. Screaming Sexy Japanese Girls
12. Falling Ball Dodge
13. Scientific Calculator
14. Dice Roller
15. 躲避彈球
16. Advanced Currency Converter
17. App Uninstaller
18. 幾何戰機_PewPew
19. Funny Paint
20. Spider Man
21. 蜘蛛俠

2011年2月27日 星期日

台灣製造的不鏽鋼保溫提鍋

因為要準備第二胎期間,阿母要幫艾媽提愛心魚湯的工具,我們找了一些適
合單手提帶、可保溫、安全衛生的不鏽鋼保溫鍋給大家參考。當然也特別找
了都是台灣製造的精品。

1. 繕寶 2 公升裝 799 元

2. 三光 2 公升裝 680 元

3. 鍋寶 1.8 公升 699 元

4. 鍋霸 1.4 公升 650 元

原本是想在百貨公司買,有考慮買瑞士製造的不鏽鋼提鍋,但動輒近萬元的
大提鍋,一來價位高貴我們無力負擔,二來寬鍋口的要提帶也不方便,不然
就是用保溫壺再內裝不銹鋼提鍋,價格都在兩千元附近。除了瑞士製造以外
,大多品牌都是中國製造,讓人不敢用,反而在巷子裡的水電行找到台灣製
造的精品,建議需要買的人先逛逛水電、五金行、大賣場,百貨公司反而找
不到物美價廉的台灣精品。

2011年2月18日 星期五

懷孕後期

孕期進入倒數50天,除了例行產檢外,待產包也已打包妥當,希望能照預期日子進行剖腹生產。

懷孕後期,身體不適處很多,別的孕婦是腰痠背痛,我是腰一點都不酸,屁股倒是痛得很,可能因為我已經沒有腰了,但為什麼屁股會痛呢? 我就不懂了。行動上變得很慢很慢,我是急性子,平常走路快,說話快,做甚麼都快,現在則是想快也快不了。由於第一胎早產經驗,這一胎我是更謹慎小心,力求足月生產。

最近頻尿嚴重,一個晚上要起床解尿8-10次,每次翻身都屁股酸痛,天冷還要起床上廁所真的好痛苦。有時睡到一半還會覺得呼吸困難,也因為睡眠品質不好,很容易變成惡性失眠。至於很多孕婦會遇到的半夜腳抽筋情況,我在加強補充鈣之後,已不再發生。

開始天天跟ssh作心理建設,讓他明白我即將入院生產加坐月子,有一小段日子不能24小時陪伴他,從他的表情來看,我想他懂得我意思。

2011年2月3日 星期四

Grace Hopper 名言摘譯

Why don't you just go ahead and do it? Remember,
It is always easier to ask for forgiveness than it is to get permission.
為何你不動手去做呢?要記得:取得諒解總是比取得允許容易。

A ship in port is safe, but that is not what ships are built for.
人們造船並非為了停泊在港口中,而是要駕馭驚濤駭浪。

From then on, when anything went wrong with a computer, we said it
had bugs in it.
從此以後當電腦出錯,我們就說有 bug。

The most dangerous phrase in the language is, "We have always done it
this way."
最危險的一句話是:我們一直都是這麼做的。

Humans are allergic to change. They love to say, We have always done it
this way. I try to fight that. That's why I have a clock on my wall that
runs counter-clockwise.
人類對於改變很敏感。他們總是說:我們一直都是這麼做的。我嘗試挑
戰這種想法。這也是為何我的時鐘是逆時鐘轉的。

Leadership is a two way street, loyalty up and loyalty down. Respect
for one's superiors; care for one's crew.
領導統馭是雙向車道。對上忠誠也要對下忠誠。尊重上級,關懷部屬。

One accurate measurement is worth a thousand expert opinions.
一次精準的測量價值等同一千筆專家意見。

Someday, on the corporate balance sheet, there will be an entry which
reads, Information; For in most cases, the information is more valuable
than the hardware which processes it.
總有一天企業的資產負債表上會有"資訊"這個欄位。因為使用這硬體處理的
資訊價值,將會超過硬體本身的價值。

We are flooding people with information. We need to feed it through a
processor. A human must turn information into intelligence or knowledge.
We've tended to forget that no computer will ever ask a new question.
人們總是得到過多資訊,這些資訊將需要輸入處理器。由人類將這些資訊
轉變為智慧與知識。我們容易忽略電腦不會問新問題的缺陷。

To me programming is more than an important practical art. It is also a
gigantic undertaking in the foundations of knowledge.
對我來說程式設計不只是實用的藝術,也是建構知識基礎的巨大任務。

They told me computers can only do arithmetic.
他們跟我說電腦只能做計算。

In pioneer days they used oxen for heavy pulling, and when one ox
couldn't budge a log, they didn't try to grow a larger ox. We shouldn't
be trying for bigger computers, but for more systems of computers.
在探險拓荒時代,人們使用牛群拖重物,當一頭牛搬不動木頭,他們並
不會找更大的牛來搬。因此我們不應該朝向更大型電腦的方向走,而
是建立更龐大的(電腦組成的)系統。

Life was simple before World War II. After that, we had systems.
二次大戰前的電腦是簡單的。在那之後我們有了電腦系統。

We went overboard on management and forgot about leadership.
It might help if we ran the MBAs out of Washington.
我們太注重管理反而忽略領導統御。也許華盛頓沒有企管碩士會好一點。

At any given moment, there is always a line representing what your
boss will believe. If you step over it, you will not get your budget. Go
as close to that line as you can.
任何情況下,你的老闆對你的信任總會有限度。如果你超過他對你信
任的程度,將得不到一毛預算可用。在這範圍內盡你所能的逼近信任
的極限。

I seem to do a lot of retiring.
我好像一直在退休。

I handed my passport to the immigration officer, and he looked at it
and looked at me and said, "What are you?"
我把護照拿給入境海關人員後,他看著護照再看看我,問說:你是哪個行業的?
(指她作為時代先驅,常人無法理解她的工作內容。)

參考連結:

編譯器與 Debug 的傳奇:女牛人Grace Murray Hopper 小傳 (簡中)

BCC-16(in Chinese) 計算機概論十六講 POOL 3.06 Grace Hopper

Grace Hopper - wikipedia


葛麗絲。霍普 - 中文維基百科

2011年1月23日 星期日

自動販賣機整理資料

1. 飲料販賣機
(1). 統一速邁,
網址: http://www.vender.com.tw/auto-sale.htm

(2). 黑松販賣機:
網址:http://www.heysong.com.tw/business.htm
聯絡方式:
線上申請:http://www.heysong.com.tw/business1_2.asp
電話:黑松股份有限公司 自販業務部 (02)2706-2191 分機 340~343
本公司亦很樂意隨時為您聯絡並提供自動販賣機完善的服務與解答。

(3). 可口可樂販賣機:
網址:http://www.coca-cola.com.tw/contact/vending.aspx
聯絡方式:
週一至週五08:30~17:30 請聯絡: 自販客服人員-林小姐
TEL:(03)270-0584
E-mail: RitaLin@swirebev.com
非以上時間請於09:00~21:00聯絡: 自販業務發展經理-魏先生
Cell phone: 0915-028536
歡迎介紹,經效益評估後完成裝機,我們將贈送您一份小禮物 (市值約NT500)

(4). 快買特市集(讀者提供)
網址: http://www.qmart.com.tw/VMManager/index.jsp

2. 其他民生用品販賣機:
(1). 面紙、口罩、衛生綿 ...etc 非插電式自助販賣機。
(2). 魚、鳥飼料販賣機
(3). 加水機
(4). 自動抽籤機:http://www.dafo.com.tw/pro03.htm
(5). 雨傘(國內有廠商做嗎?)
(6). 手機充電器(桃園國際機場有)
(7). Payeasy 美妝機

3. 娛樂用遊戲機
(1). 甲蟲王者
(2). 夾娃娃機
(3). 點唱機
(4). 兒童可乘坐的遊戲機

2011年1月7日 星期五

閱讀:現代龍馬何處尋 - 寫在日本第三次開國前夕

趁著龍馬熱潮,在找"學會思考,你贏定了"時,翻到這本書,試讀幾篇覺得不錯就一起
買回家看,結果是比"學會思考"一書還有趣的書,在一周通勤時間內看完了。

跟台灣同樣夾在美國與中國兩大國之間,作者張瑞昌先生藉由認識日本的在地採訪,讓
我們在各篇閱讀中,每每想到台灣的相似之處;外交上與兩大國斡旋的借鏡,從阿扁開
國開始政治親美、經濟親中的務實政策,到馬英九的政治、經濟皆親中的政策轉變,這
重大的轉變還讓人無法一時適應,而閱讀張瑞昌先生的短篇集,則讓人看到更理性務實
的島國外交運作。

內政上政黨之間的權力鬥爭,或同黨人士的內鬥,日劇 Gold 描述的曾經放棄奧運金牌
夢想的泳(勇)者回歸戰場重返榮耀、職棒熱潮的明星偶像、釣魚台列島的領土爭議、
上一輩對日據時期與國民黨來台後的愛恨情仇,最終回歸庶民生活的描寫,訴說著
平民百姓的點點滴滴,處處引起共鳴。

這是本不管是哈日族,仇/恨日族,都值得花時間去瞭解的日本觀察記錄。

記得楊淑君的跆拳道爭議中,網路上也有聲音說出,要我們平心理性看待也是與台灣
政經情勢類似的南韓,而非受人煽動的一味反韓。期待也有記者能對韓國進行同樣深入
的親身訪問與觀察。

參考:

博客來書籍館 現代龍馬何處尋 - 寫在日本第三次開國前夕

張瑞昌@中時部落格

2011年1月5日 星期三

RFID 產業與 Google Android 2.3 NFC 關係

Barcode 條碼、RFID(電子標籤)的技術組成分為

1. RF tag(標籤)

源由:Barcode 條碼,發展以地域分類:
  1. 美系:統一商品條碼"(Universal Product Code簡稱UPC)
  2. 歐系:歐洲商品條碼"(European Article Number簡稱EAN)
RFID 高頻標籤頻段:800MHz, 900MHz
UHF (超高頻) Class1 RFID
安全加密驗證:TI 與 Certicom 的研究
EPC(Electronic Product Code) code, next generation barcode(EGC Gen 2)
條碼標準概觀: http://www.gs1tw.org/twct/web/EPC/epc01.html
使用廠商:沃爾瑪、美國國防部、麥德龍、思科
tag 與 code的關係:RFID tag 這種封裝技術,載有 EPC code

2. RFID 專利持有公司
表一 RFID專利許可證合夥機構與RFID智慧產財權授權計畫之比較

RFID智慧產財權授權計畫 (Rapid Start RFID Licensing Program)
參與廠商: SAMSys, Zebra科技, 飛利浦半導體、夏普、Sensormatic以及TransCore公司
目的: 能夠更為明確那些廠商具有合法使用Intermec公司145項專利RFID技術的權利

RFID專利許可合夥機構 (RFID Patent Licensing Consortium)
參與廠商: Alien科技公司, Applied 無線辨識組織, Avery Dennison, Moore Wallace,
Symbol科技, ThingMagic, Tyco Fire & Security, Zebra科技
目的: 讓廠商簡化使用全部廠商之RFID專利,一共3,000多項專利.

Source : 財團法人國家實驗研究院科技政策研究與資訊中心 整理,2005年8月

3. 條碼與讀取器間問題:
  1. 多標籤碰撞解法與讀取速度的取捨
  2. tag 受應用材料影響頻率訊號
  3. 天線方向影響讀取率,假如 tag 與 reader 兩天線正交則無訊號

4. RFID 相對於傳統條碼的優點
  1. 可長距離(超過 7 公尺), 在 0.2秒(200milli seconds)有 95% 讀取率
  2. 可多標籤讀取

5. RF Reader(讀取器),
  1. Data logger, 以 cloud computing 術語來看是 (embedded) thin client

6. Middleware(中介系統軟層),
  1. 分為 Server 端與 Client 端兩大類

7. Application(終端應用程式與使用者介面)
  1. 系統廠或承包服務廠商撰寫

8. Network, Cloud computing, 物聯網
  1. 應用:物聯網(網路伺服器),
  2. 飲料應用條碼, 追溯條碼,
  3. 物流應用:大賣場(Wall-Mart)、貨運公司(DHL)
  4. 國際標準:EPCglobal Network Framework, 組織(GS1)
傳統的手機加 Camera 再下載條碼掃瞄軟體,就視為 reader 端。
最近 Google 在 Android 2.3 力推 NFC:
  1. 用在取代信用卡、現金的電子錢包上就偏 tag 端,而店家、廠商就需要使用 NFC reader 端機器來讀取手機上的 NFC tag。
  2.  用在廣告客製化上 Android 2.3 + NFC 也是 tag 端,廣告播放機則需要有 NFC reader.
2011/05/14 update

Google I/O 2011: How to NFC 的一小時現場 demo,可以看到目前 Google 是把 Android 的 NFC 功能當作複製 Android 使用者環境與行
為的工具,比如複製看到的文字、圖型檔案,應用程式,在對戰遊戲中
甚至可以直接 NFC 連線對戰,如果對方還沒安裝 NFC 也會自動導向該
遊戲的 Android Market(Google Play) 網頁,讓你直接下載新遊戲。

Google 的 NFC demo 除了前述功能外,還強調了克隆、複製 Android 使用情境。

Google I/O 2011: How to NFC
http://www.youtube.com/watch?v=49L7z3rxz4Q

2011/06/06 update:
Google 為了推廣 NFC 的電子錢包應用,五月推出了 Google Wallet 
應用推廣專頁,Google 錢包一推出就被 Paypal 告侵權,但 Google 目
前否認有竊取 Paypal 的商業機密。

2011/06/13 update:
Why is NFC so important? 一文中提出了 NFC 與 RFID 等相近協定的
差異之處,讓我們瞭解為何 NFC 的推出值得我們注意。
  1. NFC 在一個 reader 前可以當作被動的裝置,可以提供簡易的條碼序號,也可能當作一個無線信用卡,因此我們可以將 NFC 裝置當作電子錢包使用。有 NFC 被動裝置就可以在任何可以讀取 NFC 的機器購買東西。
  2. NFC 可以讀取被動裝置,因此 NFC 也可以讀取別人的信用卡資訊,也可以讀取折購優惠資訊,因此你的手機也可以讓你賣東西給任何擁有類似 Visa Wave 無線感應卡片的買家。
  3. NFC 支援 Reader 之間的溝通,因此任兩支手機可以透過 NFC 進行溝通,如果手機中儲存了電子金錢的資訊,就可以達到個人對個人的金流交易。
看完以上三點,很明顯的讓我們知道 NFC 的使用將有極大潛力改變未
來的金流方式。

參考:
  1. 中研院-RFID產業標準-EPCglobal Network介紹
  2. RFID產業組織提議成立專利權許可合夥機構
  3. 傳技資訊 RFID 產業發展現況與挑戰
  4. Google Wallet

2011年1月1日 星期六

摘錄一位科學家成長的過程-李遠哲教授淡大演講稿

因為原文很長,在這裡只摘要部份內容,詳細的全文請點連結:

一位科學家成長的過程-李遠哲教授淡大演講稿

1. 針對接受教育的用處與最好的方式:
後來當有人問我:在我接受教育的這樣多年之中,那一個時段對你是最
有用、最好的?我總是說:沒有上學在山上接近大自然、從大自然學習
的這兩年,對我是最有用的。

2. 針對拜神求福與比賽、實力的關係(we do what we can),教授描述的是:
比賽的前一天,我們到廟裡去拜,我不相信這一些,就在那裡拿著香說:
「希望明天全軍覆沒。」.....校長正好站在我的後面,他就從我的頭頂
「呯!」地打了一下。後來第二天我們得了冠軍,我跟校長說:「你看,
拜神明是沒用的,我說全軍覆沒,但我們還是贏了,是靠我們的實力贏
來的。」

3. 針對學習、教學相長的體驗與面對挑戰對學習的意義:

我第一次深深體會到其實我們在學校上學坐在課堂裡面,迷迷糊糊地聽
老師講課講得好有道理,但學的沒有自己當老師教別人時學的那麼多。
我一直跟老師說:「老師,不對啊!我們到學校來應該是當老師,你們
聽我們講,不是你們講我們聽,你們聽我們講的話,我們會學得更快。」

確實是這樣,後來當老師之後,我教的很多課是我從來沒有上過的,但
是因為要教,所以自己學了很多,這些老師給你的挑戰,或父母給我們
的挑戰,往往對一個人的成長有深遠的影響。

4. 李教授從小就富有黑客的黑手精神,他描述拆解縫紉機的歷程,跟我
們拆解程式與撰寫程式的過程也該如此紮實(又想到 Jserv!):

有一天晚上我們在唸書,媽媽在縫衣服,用腳踏著縫紉機,很老舊的針
車,我說:「媽媽,聲音小一點嘛,我們在唸書,你這樣幹擾我們不好
。」媽媽就說:「遠哲,你埋怨的話,你自己把這個聲音弄小嘛!」我
覺得有道理啊!為什麼埋怨媽媽呢?

所以第二天就開始把針車全部解體,然後一點一點地看,到底哪裡有聲
音出來...

5. 針對人生意義、立志、個人意志與環境的看法,李教授講他在養病時
期的心路歷程:
...
生命畢竟不是無止盡的,是有限的。在這一個月的思索之後,就像有人
說:「放下屠刀,立地成佛。」,我那時候下決心要過有意義的生活,
不能像無頭蒼蠅一樣....「我應該成為一個有用的人,能為人群社稷做出
貢獻。」我也檢討到我自己的擅長,覺得我應該成為一個科學家。....
在我們生活環境裡,如果不積極地、主動地想辦法超越環境給我們的一
切,環境就會影響你,也許可以說是一種束縛。....我有個非常強烈的願
望─-「我應該是我自己的主人,我不應該受環境的束縛、環境的影響,
我要努力超越環境」。我要成為自己的主人,把生命掌握在自己的手中
,成為一個理想的人,希望為人群做一些貢獻。

6. 關於學習與努力付出的程度(we work in the dark):
...他一口氣講了很多。我看了看:「那你們都學這些東西嗎?」他說:
「我們哪有那麼多時間啊?」於是我跟張昭鼎說:「這個暑假我們不回
家,在宿舍裡面,我們從熱力學開始輪講。」他說:「好啊!」...所以
我大一時張昭鼎說的要成為好化學家應該做的幾樣事,我確實都做了,
那時大家覺得很不可思議。我確實很認真,已經不到外面打球了。每個
禮拜天晚上十二點,我就把下個禮拜的日程寫得密密麻麻的...

7. 關於實事求是的精神,以及科學真理與權威,李教授舉他在研究所時
與日籍教授的應對:

我的老師,日本來的這位老師就拿幾個白金坩鍋把北投石放在裡面,用
碳酸鈉做融合,我就告訴他:「奇怪,這好像不對喔!我記得我大學二
年級唸定量化學時,定 量化學的書裡面說:『如果有含鉛的化合物的話
,應該用濃鹽酸把它變成鉛的錯合物,把它析出來,可能要花一個晚上
把鉛溶出來,不然的話會跟白金變成合 金』。」這位日本教授聽了非常
不高興,那時我覺得我們是談真理、談是非,但是他非常不諒解我第一
堂課就找他的麻煩。....有一天,濱口教授告訴我說:「其實我發現你們
台灣的學生很不錯,比我們日本的教育大學的學生做得更不錯。」他這
才第一次給我們肯定。

8. 美國的民主與學校師生互動:
...師生之間的關係,在美國民主化的社會裡面,是完全不一樣的。...我
每次找他敲著門說:「Professor Mahan」,他就看著我說:「Call me
Bruce」,要我叫他布魯斯。我們受儒家思想培養的人,看到一位老師
,直呼他的名字,是講不出來的....過了六個月,我就開始叫「布魯斯」
,就這樣子一直以平輩交往。那是我第一次看到學術討論的活潑,老師
沒有架子,這種風氣使我非常受到感動。

那時候吸引大家到美國學習的原因,一般說是美國富有、科學很進步;
但一個民主國家平等自由的觀念,也許是吸引威權專制的國家的年輕人
的最大的原因。

9. 關於博士論文研究,我的理解是 Mahan 教授在傳授 Critical thinking,
其實也跟黑客精神的主動學習態度吻合:
...
有一次我敲門找他,要他給我指點,Mahan 教授看著我說:「我怎麼知
道?我如果知道早就解決了。就是我不知道。世界上沒人知道,所以你
要做博士論文,是你要自己解決的事。」很奇怪的是,我每次找 他,他
從來沒有給我任何指點,他說:「我怎麼知道? How do I know?你要
自己去解決。」

但他有一個習慣,每次到實驗室他就問我:「What is new?」我就把我
自己在實驗室裡摸索想解決的事告訴他,他第二句話就是:「What are
you going to do next?(你下一步要做什麼?)」我就把我的構想告訴
他,他每次都點點頭就離開。

10. 李遠哲教授的理想與熱情,跟最近上映的「宇宙戰艦大和號」一樣,
就是要熱血阿:

時間過得很快,一轉眼已經過了12 年,但是到現在為止,我的熱誠還是
不減。半個世紀前我說:「我要成為好的科學家,希望為人群社稷做出
貢獻」,這個理想還在。

當然我回到台灣之後,更希望年輕人能夠成為好的科學家,一起努力;
希望跟大家一起,把志同道合的人集合在一起,改造我們的社會,這個
理想到現在還是非常熱烈地在我的心中盪漾著。

我想大家雖然看到這個社會上很多事情,有時候看來是不理想、不可思
議的,但是如果我們努力的話,社會確實是可以改造的。

11. 關於氣候變遷與能源爭奪問題:
現在二氧化碳的排放量,美國人平均每人每年產生20 噸,澳洲19噸,
台灣是名列第三的12 噸。台灣是很可怕的,印度是0.96 噸,大陸有
2.72噸,台灣目前已經是所謂過度開發的國家...能源的爭奪會使世界
不安定。我就看出,911 事件之後的很多事情,多少跟能源的爭奪
安排有關係。

12. 全球化與資本主義,勞動階級與國際貿易:

事實是國家的界線還是非常地明顯。所以我們有很多矛盾,國跟國之間
一方面說要合作,另一面又在競爭,在合作競爭的過程裡面,只看到錢
沒有國界急速地在流動,使我覺得,現在只走到一半的全球化,一定要
把它走完。...如果我們還不把整個地球當做一個社區,我們所有的人都
成為一家人,很多問題是不能解決的。...全球化以後,整個世界都變成
一個社區一家人的時候,那麼全球的問題,也經過抽稅的方式由大家來
幫忙。」歐盟慢慢在走入國界淡化的階段....

13. 興趣、熱情、擅長、努力:
我在世界上碰到的很多人,他們過得很愉快,做自己喜歡做的事,但是
他們沒有一個人的成功只是出於天份很高,大家都是非常努力地一步一
步地發展下來的。我們 大家都有天份,只要肯一步一步地走下去,大家
可以找出自己的一條路。所以早一些掌握自己的生命好好去努力,這是
比較重要的。謝謝各位!

14. 做學問的毅力與堅持(we do what we can),吾日三省吾身,疑惑就是
前進的動力(Our doubt is our passion):

剛才主持人希望你們不要回去睡不著覺,其實我想做學問的人都有相同
的問題,常常想一夜的事情睡不著覺。

一個很重要的事情是,你每次想一件事情的時候,要做一個了斷,這個
問題不能解決。但是明天我可以嘗試A、B、C、D。

你今天回去之後下決心說:「我也要這樣地努力。」這麼下一個決心之
後,心胸就會變得很開朗的,睡覺睡得很好。

所以每個人每天晚上都應該有個習慣,就是把想過的事情整理之後,哪
些事情是要明天開始重新奮發圖強的,那你就可以睡得很好。
你如果沒有養成這個習慣的話,是很苦的。

晚上疲倦了,想不通的你要把它記下來,明天重新重整旗鼓地來開始。

摘錄完畢。
因為原文很長,在這裡只摘要部份內容,詳細的全文請點連結:

一位科學家成長的過程-李遠哲教授淡大演講稿

版權宣告、免責聲明


姓名標示、非商業性、相同方式分享3.0台灣授權條款授權。
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。