2014年11月11日 星期二

我的 MacBook Air 耳機孔被乾燥劑塞住了


上個禮拜一開始了在新公司的冒險, 一切都還在適應當中. 期間, 拿到了公司配發的 MacBook Air, 有台輕便的 laptop 對常開會的我來說實在是相當方便. 公司也不限制員工把有綁帳號的筆電帶回家, 否則一般的家用機會有很多內網的網頁是進不去的.

於是乎我就開始了背著 MBA 上下班的旅程.

昨天晚上, 洗好澡坐在客廳, 打開了我的 MBA, 正準備把耳機插上, 繼續來聽個公司內部訓練的課程,

"咦, 為什麼耳機插不進去耳機孔? 明明下班前還好好的啊."

3.5mm 的耳機線硬生生就是被擋了大約 1/3 在外頭, 看起來像是有什麼東西被放到耳機孔裡面了?!

老婆順手摸了一下我用來裝 MBA 的包包底部, 大叫一聲"嗚啊, 這一顆顆什麼東西!"

居然是一包小小的乾燥劑破掉了, 裡頭的小珠子散落整個包包, 好巧不巧居然就跑到了筆電的耳機孔內! 我長這麼大, 現在才曉得乾燥劑卡住耳機孔這種鬼事居然真的會發生. 急得焦頭爛額的我用了很多方法, 鑷子, 針,  耳挖子, 灌除膠劑 ... 全都試了, 就是沒辦法處理好. 直到隔天早上拿到公司 請專業的 IT 急救, 他看了看也傻住,  兩個人忙了大半天最後還是請我再自己想想辦法, 最差就只能送修了.

已經快絕望了的我決定 Google 外國網頁看看有沒有人遇到類似的情形(中文網頁遇到這情況的人也不少, 但幾乎沒有提到除了送修之外的解決方法, 所以我才決定寫這邊文章記錄下來), 發現有一篇論壇文章提到:

"拿一根不要太軟的縫衣針或特別細的耳挖子, 直接往耳機孔底部施加壓力同時做出想把珠子搗碎的動作. 不用擔心弄壞耳機孔, 一來是耳機孔其實很牢靠, 二來反正死馬當活馬醫了, 不要刻意破壞內部邊緣的接點即可. 約五到十分鐘, 珠子會破成碎片甚至噴到外面, 此時差不多就大功告成, 拿個手機或是手電筒清理內部剩餘的部分即可."

這篇留言的後面很多人都說這招有效, 於是我也就照著上面的敘述做, 果然成功地救活了我的耳機孔! 再次聽到從耳機端送出來的音樂簡直就感動得要升天了, 所以馬不停蹄的把這個經驗記下來, 希望能給也遇到一樣疑難雜症的人另一個希望.

2013年9月15日 星期日

STEB 有妙用,可惜不是全世界買單

剛剛從 Oslo 回來, 結束了自己第五次的 workweek (Paris, San Diego, San Francisco, Berlin, Oslo. 中間其實還外帶一次 Half Moon Bay 的 Bluetooth mini workweek), 挪威是個人文和地理都很美麗的國家. 這次回來有個插曲, 就是在奧斯陸登機前買了當地的果醬, 店員問我是直飛還是轉機, 我說會轉機, 然後她就幫我把果醬裝到一個名字叫 STEB 的袋子裡. 在轉機點曼谷下機前, 有個台灣團貌似導遊的人告訴我, 東西裝進這袋子也沒用, 我的果醬在轉機安檢時一定會被沒收, 說是全世界機場皆然. 我當時第一個念頭是那這袋子到底要幹嘛? 小強有跟他說應該不是這樣, 可是對方氣勢超強, 我已經做好放棄的準備了. 後來索性就也不藏了, 直接把它拿出來過安檢, 結果安檢人員拿出來看了看, 確定是果醬而且有用 STEB 裝著就順利放行. 回來以後趕忙查了一下, 每個機場有其不同的規定, 例如香港跟曼谷可以, 但日本境內的機場目前都不接受任何100ml以上的液體通過轉機站安檢, 即便裝在 STEB 也一樣.

真是行萬里路勝讀萬卷書.

2013年3月7日 星期四

forget() 的妙用

Gecko 的程式碼裡面用了很多 share pointer, 利用 reference count 來決定所指向的物件是否應該被刪除. 其中常會看到一些有趣的眉角, 像是 .forget() 這個函式, 會回傳指向物件的位址, 同時清除這個 share ptr 對此物件的所有權. 使用時機像是:

function f()
{
  nsRefPtr obj = new Object();

                   ...
                   ...

  nsRefPtr r = new nsRunnable(obj.get());   // !!!!!
  NS_DispatchToMainThread(r);
}

就上面這個例子而言, 驚嘆號的那行顯然就是會有問題的地方, obj 所指向的物件, 由於 obj 的生命週期隨著 f 這個函式終止而到期, 所以我們沒有辦法保證 r 這個 runnable 在執行的時候, obj.get() 還是有效的. (事實上, 有效的機會很低)

針對這個狀況, 我們必須使用 obj.forget() 以消滅 obj 對於所指向物件的擁有權.

  nsRefPtr r = new nsRunnable(obj.forget());

這樣就可以了. 經典範例請見此

2012年6月30日 星期六

希臘自助蜜月


我和小璞從希臘自助蜜月回來啦!
我們去了雅典, Mykonos 和 Santorini,
都是非常棒的地方,
雅典的衛城氣勢磅礡,
Mykonos越夜越美麗的小鎮風情非常適合渡假,
Santorini有全世界最美的落日,和一度沉睡在火山灰下的完整城市遺跡.
為了和大家分享我們的行程,
我們很用心的把照片上傳後加上註解,
也歡迎在照片下方留言或直接 mail 給我,
我們會非常樂意回答的 :D

照片在此
 
另外,
也利用這篇文章跟大家分享一些條列式的資訊,
希望能有幫助:

 == 交通篇 ==

 * 我們大約是四月底訂的機票,非常非常趕,而這時台灣的旅行社或網站的機票,要不是太貴,要不就是時間很糟. 最後我在 Orbitz 奇蹟似的訂到了 桃園->曼谷(泰航&回程華航)->杜哈(卡達航空)->雅典(卡達航空) 的票. 更妙的是,我在泰航網站用訂位代碼查不到我們訂的那段航班,打電話去問時,小姐說我們訂到的這票是很特殊的票種,所以我建議如果您試過了各種台灣的旅行社或網站還是訂不到票,不妨考慮找一下 Orbitz 或 Kayak 這種夠大的國外旅遊網站.

 * 承上,來回機票價位 44370/人,已含所有稅金.

 * 雅典 -> Mykonos 船票(SEA Jet2) : 52.4 歐/人,航程 2.5 小時 (我們在雅典機場的 Pacific Travel 買, 被凹了一張票1歐的手續費)

 * Mykonos -> Santorini 船票(SUPER JET): 52.4 歐/人,航程 2.5 小時 (在 Mykonos 街上的旅行社買,免手續費)

 * Santorini -> 雅典 機票(Aegean航空) : 143 歐/人,航程 50 min
  
 * 憑國際駕照就可以租機車 & 汽車.

 * 在 Mykonos 租機車 13 歐/天, Santorini 則是租 12 歐/天, 都不含油錢,(忘了有沒有含保險),我們沒有去特別多的景點,加 3.5 歐的油是夠用的.

 * 在 Santorini 租 Suzuki 自排小車是 35 歐/天, 已含保險. 我們車開兩天,花了30歐的油錢(似乎還車時有點加太多).

 == 住宿篇 ==

 * 雅典 Athens Gate Hotel (TripAdvisor 排名:6, 我們住的價位:NT12500/兩晚)
   屋頂餐廳很讚,房間不大但乾淨舒適,飯店位於地鐵衛城站出來走路約5分鐘處,
   對面就是哈德良拱門.

 * Hermes Mykonos Hotel (TripAdvisor 排名:6, 我們住的價位:NT13000/三晚)
   有港口接送,泳池很棒,視野也很棒,房間夠大,早餐很不錯,服務也好,告知是蜜月
   有讓我們挑房型,位置在較高處,從市區爬上來有點累.

 * Oia 民宿 Sun Anemos Resort (TripAdvisor 排名:10, 我們住的價位:288歐/兩晚)
   有港口接送,老闆和老闆娘超熱情,房間空間很大,我們訂的房型住四個人沒問題,
   離海灘非常近,但建議有租車才住這兒,到 Oia 約 10 min, 到 Fira 約 15 min.

 * Fira 旅館 Lilium Villas (TripAdvisor 排名:22, 我們住的價位:NT5000/一晚)
   不知道有沒有接送,風景很不錯,房間雖大但傢俱不多,離 Fira 市區開車約 7 min.

 == 七嘴八舌篇 ==

 * 礦泉水小瓶約 0.5 歐,可樂 1.5 歐左右(在 Santorini 家樂福買則是一瓶 0.9)

 * 雅典憲法廣場衛兵交接很有趣,建議可以看一下,半小時就一次交換站位,很容易遇到.

 * Santorini 買紀念品盡量在 Fira 買, 同樣的東西 Oia 就是比較貴.

 * 我們從雅典到 Mykonos 是去 Rafina 搭船,並不會很麻煩,機場就有巴士可以過去,如果不喜歡搭太久的船可以考慮買 Rafina 駛出的船票.

 * 往機場的地鐵在窗戶上會有一個飛機的標誌.

 * 六月初的晚上還是挺涼的,記得帶小外套出門.

 * 在 Santorini 想要停車的話,記得只要有大大的"P"字樣就是公有的,可以免費停車.

 * 當地的服務生說四輪沙灘車如果翻車 or 打滑一定比兩輪的危險,而且他說出租的沙灘車都不是太高檔的貨色(供大家參考一下)

 * 海灘邊的躺椅跟陽傘是要錢的,躺下去就會有人來收了.

 * 提醒一下前往 Mykonos 的天堂 & 超級天堂海灘時, 如果您是租摩托車, 路小又高低起伏不斷, 得小心在意.

 * Oia 附近沒有加油站, 要到 Fira 這頭才有.

2012年5月14日 星期一

基本 Vim 小技巧 - 搜尋篇

因為工作的關係,已經用了好一會兒的 Vim 做為我的程式編輯器. 每次從網頁或是同事間的分享中發現新的功能,總是讓我讚嘆原來自己還很不會用這個功能強大的東東. 有鑑於我的腦袋有越來越不靈光的趨勢,還是把一些好用的指令記下來,順便嘉惠跟我一樣還不熟 Vim 的朋友們. :D

搜尋篇

  [可設定之 option]
  incsearch - 鍵入搜尋單詞的過程中,會依照目前已經輸入的字顯示第一個找到的詞.
  hlsearch   - 高亮度顯示找到的詞

  [快速鍵]
  #/*  - 向前/向後搜尋與目前游標相同之單詞
  N/n - 向前/向後搜尋,搜尋目標為最後一次搜尋的 pattern
  %    - 尋找相對應的大括弧和小括弧, 同時也可以尋找 #ifdef 對應的 #endif
  gd   - 在程式的變數上循序按下 gd,可以找到 local declaration 的位置
  gD  - 同上,只是會找到 global declaration 的位置