2012年2月9日 星期四

農曆正月初九天公生

老婆的預產期是國曆2月7號 所以老婆的產假從1月30開始請

本以為過年期間兒子就會提早出來讓我們看看他的廬山真面目 就在年假結束 我們回台北上班才一天

星期二的半夜老婆就開始陣痛了 半夜4點半 忘記是被老婆叫醒還是被她吵醒

一從床上彈起就開始行動 也要感謝老婆平常的訓練 我得承認我是被人照顧的好好的白痴...

先是開始整理冰箱 把冷藏室的食材或已經烹煮過食物裝到樂扣裡 放到冷凍庫

因為緊張 還跑到廁所拉了一次肚子

整理行李 把老婆要帶的衣服 寶寶的東西 健保卡 媽媽手冊 全放進行李箱

訂最早班回台南的高鐵班次 早上6點半 最後則是打電話叫計程車準備直奔高鐵車站

出門之前 我又跑到廁所拉了一次肚子

半夜5點 車子來了 途中還順路到公司去 本來想把電腦一起帶回台南 XD

清晨的台北 很空 準時搭上高鐵列車 在車上聯絡台南的父母 一下車就直接趕往診所待產

早上9點15分 進醫院 做內診確定是陣痛 然後就回家準備休息 中午吃完飯再回去醫院

是的 你沒看錯 車開沒多久忽然接到一通醫院打來的電話 問我們怎麼沒去二樓半入院手續... XD

我想護理師應該是要我老婆辦入院手續 待在醫院 其他人可以先回去吃個中飯再過來...

我那可愛的老婆直接省略前面 跳到回家吃飯... 還好 我們剛離開不遠

入院後 護理師要老婆有辦法就起來走走 走上走下的 幫助產道打開 中間不時夾雜著陣痛發生

下午3點55分 開始打催生 晚上8點55分 兒子出生(老婆兒子我愛你們)

兒子出生的那一刻 我在產房像小孩一樣哭了 我才知道不只是生命的消逝會讓人掉淚

生命的開始也同樣會讓人哭



關於緊張就會拉肚子這件事 我記得考完大學聯考之後 似乎這種事就沒再發生過了

至於研究所考試那天 我緊張到整晚睡不著覺 起床後灌了兩罐蠻牛 下午考完直接回家躺平又是另一個故事了....

2012年1月3日 星期二

HAL for GPS on Android

透過 Google 提供的 geolocation 服務, 可以讓我們即便沒有 GPS device

也可以得到我們所在地的經緯度 既然沒有 GPS 裝置 當然也就不需要去實作 HAL

所有的一切都可以在 APP 層完成 只要我們將無線網路所得到的週邊 Access Point 的 mac address

或是將附近基地台的 cell id(ci) 包起來 送出 request 到 www.google.com/loc/json

順利的話 收到的 response 裡就包含了 latitude 及 longitude

只是單純為了嘗試實作 GPS HAL 的想法 所以我將上述的東西搬到底層的 HAL 函式庫

讓上層的 framework 真的以為有 GPS device 的存在 也真的可以得到定位座標

整個 GPS HAL 的架構 可以參考 include/hardware/gps.h 及 external/qemu/android/gps.c

簡單的建立四個 thread 第一個 thread 三不五時透過 wpa_supplicant 掃一下週邊的 AP mac address

第二個 thread 會去得到 main cell 的 ci 如果有成功註冊上基地台的話

第三個 thread 則是偶爾的把前兩個 thread 收集到的資料 透過 libcurl 送 http request 到 google

最後一個 thread 則是解析收到的 response 把得到的座標位置透過 callback func 作更新讓 framework 知道

這樣的作法可行 但是有些先天的限制 那就是一定要有網路 不管是現在普遍的 3G 上網或無線上網

而如果我們真的想要做到導航功能 利用周遭的 cell id 是目前的唯一作法而也是我現在遇到的瓶頸所在

3GPP 規範裡 我們可以得到的 ci 也就只有我們註冊上的 main cell 至於周遭的其他 towers 是各憑本事

有的是沒有提供相關的 at cmd 讓你查詢 有的則是功能上有所限制 也因此我們只能先從 main cell 下手

只是這樣的精準度會讓你想哭

至於在 Android 下除了 Phone 外的程式能不能和 rild 溝通又是另一個故事了

要注意的是 因為是 multi-thread 所以一些 function 的實作必須是 reentrant 的 同樣的去呼叫的 system call 也必須是 reentrant

例如 strtok_r() 是 strtok() 的 reentrant version

2011年12月18日 星期日

HHKB Lite2

這把鍵盤是專門給在 Unix 系統下寫程式的人使用的

不只是按下鍵盤的回饋 最棒的就是鍵帽的排列方式 我每天最常的就是開一個 terminal

接著使用 screen 建立多個視窗 搭配著 ctrl + n 在不同的視窗間切換

對這個鍵盤的排列方式更是有好用深刻感覺 週末尋著同事的建議 對鍵盤做清洗



利用長尾夾的兩個耳朵 就可以很輕鬆的把鍵帽拔起 等到拔了兩三顆後 接下來只需一個耳朵

平均不到兩秒可以拔一顆 接著把所有的鍵帽拿去泡小蘇打水 用吸塵器 + 棉花棒清潔鍵盤本體

最後的結果超級滿意 ^____^

2011年12月14日 星期三

他長的甚麼模樣

某天早上 在公司門口喝茶發呆 開始幻想兒子的長相

然後嘴角就不經意的抽動 笑開了...

想到以前張清芳的一首歌 - 出嫁 裏面的一段歌詞寫著

"掩不住嘴角的輕笑 全都是期待和幻想
她長得什麼模樣 有沒有一卷長髮 和一顆溫暖包容的心房
對或錯有誰知道 能不能白頭到老 有沒有和我一樣"

回去後就唱給老婆聽 只是其中一句歌詞改成 有沒有一卷捲髮 (老婆是捲髮妹... )

上週六和一對也是新手爸媽的朋友到新竹籃印子朝聖 看看這個大家都說很便宜的地方

兩個想法 店面太小了 人擠人 所以實在是很難挑選東西 東西大部份都是台灣品牌

結帳櫃台附近貼了一張手寫的標語 類似 "為了下一代 請支持台灣貨"

我同意 如果品質一樣好 價格又實惠 其實大家真的不要再有品牌迷思 多支持台灣的公司

畢竟這樣才能創造更多的工作機會...

由於有許多東西在籃印子沒挑選到 所以周日又跑到台北南京東路上的奶娃的店

比較起來 購物的空間大了些 貨品也很齊全 很多國外的牌子 價格不錯 很多東西都 62 折

總計這兩天花了一萬多塊 還要再繼續努力補齊 最後 老婆辛苦了 所有的媽媽辛苦了...

2011年11月15日 星期二

辛苦了

老婆的肚子變得好大了

扛著一個這麼大的肚子 要冒著風險 每天都要小心翼翼的

我只想說 老婆辛苦了 全天下的媽媽都辛苦了 :D

兒子 好久不見阿 雖然每天都可以摸摸你

很期待下次的產檢 希望你睡姿不要像你爸一樣

要開始想著以後要如何教養你的問題 希望你懂事 懂得做人

2011年11月13日 星期日

3G MU509

上個星期臨時被叫去處理一個號稱很緊急的事情

我們產品使用的 3G 模組在連續(隨機發生)的對它 power off, on 之後,會發生模組對上層的 AT command

不再有任何回應 除非我們再一次的 power off, on

原本處理的工程師解決的方式就是在上層 framework 加入 retry 的機制 (不好...)

事實上就算有 retry 機制,客戶還是需要自己去手動 power off, on

先就硬體設計上來看 module 有 reset pin 可以控制,但這邊設計的時候並沒有拉到 app processor 端

在軟體上面的 power 機制更是離譜,原先負責的人並沒有看過 spec 而是完全由硬體的人告知,該如何控制

當初負責 debug 的人,完全搞錯方向,把重點放在 framework 層

所以第一件事就是先根據 spec 上面的 power off, on timing sequence 去控制 pin

另外也請硬體工程師幫忙拉線方便可以透過示波器觀察訊號

接著就跑簡單的 script 連續的對 module 做開關機的動作,觀察 3G 模組行為

兩個大問題:

有可能發生 power off 變成 on, power on 變成 off 的反向行為,很不可思議,原廠 FAE 也不相信

直到我將圖形寄給他,他回報給大陸後,才承認大陸工程師說的確有這個問題,解決方式是 timing 要改

另一個問題是 AT command 會 "No respond" 的 timeout issue 則是請對方 FAE 去翻他家的 release note

果然新版的 firmware 有 highlight 該問題...

2011年11月7日 星期一

民國一百年

民國一百年發生了好多事

陪了我們家十六年的臘腸狗弟弟在二月的時候離開了

三月的時候我完成了人生大事 有了一個伴侶

然後五月的時候 我要當爸爸了 人生多了一個背包

我在六月的時候應前主管的邀約 離開待了兩年的外商

十月 外公過世 心理很悶 沒能來得及回去看最後一面 倒是在夢裡讓我見到了

婚紗公司剛上新聞 十一月的時候惡性倒閉 算起來我也算是受災戶 因為當初承諾每年都可以回去拍全家福 (誤)

也是在十一月 內人的奶奶走了

民國一百年 發生好多事...