MacBook 小 bug

自從有一次用耳機聽了 MacBook 裡面的音樂之後, MacBook 就只能從耳機聽到聲音, 拔掉耳機後, 就再也發不出聲音. 但插回耳機就又好了. 如果企圖去調整畫面上方的音量圖示, 它只會出現喇叭禁止的符號.

上網查了一下, 這個問題還頗常見. 各家眾說紛紜, 有的說要重開機, 有的說要換主機板, 也有教人家從 terminal 去改 script. 其實每一招都不靈!唯一正確的解法是 MacUKnow 上 clhhouse 的那篇. 只要拿個細長的東西, 插進耳機孔按一 (幾) 下就好了. 歪解就是不斷插拔耳機插頭, 運氣好就會被偵測到拔出.

原因是這個耳機孔有 jack detection, 但是有時耳機插頭只能被偵測到插入, 沒辦法被偵測到拔出, 所以 Mac 一直認為還插著耳機, 故不讓使用者調整喇叭的音量, 而且還因此沒辦法發出任何聲音!

確認這個問題的特徵是: 此時耳機孔會發出紅光. 如果看到紅光, 就可以確認是這個問題. 


清理 Outlook 裡面重複的信件

假如 outlook 每次都把以前備份的信件匯入, 那麼信箱裡就會塞滿很多重複的信件, 假如是使用 exchange 的話, 還會有很多重複的聯絡人, 會議等等, 相當地佔記憶體.

Windows 的用戶可以上網去抓一些免費的小工具, 但是 Mac 的用戶就比較辛苦了. 看來看去, Barry's Applecripts 不失為一個沒辦法中的選擇. 首先把有很多重複 mail 的 Outlook 信箱選起來 (select/select all), 然後在 AppleScript 編寫程式裡面選 "執行" 就可以了. 

當然, 最好是先備份一下, 以免誤殺義士, 還要把紫微拋入深谷~~

— Remove Duplicate Message v2.1

— An Applescript by Barry Wainwright, 15th October 2010

— Detects and deletes duplicate messages within a selected folder

— works on Message-ID header – uniquely identifying duplicates


— Version History

— v1.0 – 2002-03-18: First Release (For Microsoft Entourage)

— v2.0 – 2010-10-07: modified to work with Microsoft Outlook for Mac

— v2.1 – 2010-10-15: added final dialog to summarise messages removed


tell application "Microsoft Outlook"

set theMessages to current messages

if theMessages = {} then

try

set theFolder to selected folder

set mb to theFolder

on error

display dialog "In the folder listing, please select the folder you want to be scanned for duplicates" with icon stop buttons {"Quit"} default button 1

return -99

end try

else

set mb to folder of item 1 of theMessages

end if

set theName to name of mb

say "Removing duplicates from mail folder: " & theName

set y to count messages of mb

say "Number of messages to check, " & y

set IDlist to {}

repeat with x from y to 1 by -1

try

set theHeaders to (get headers of message x of mb)

set AppleScript's text item delimiters to {return & "Message-"}

set temp to text item 2 of theHeaders

set AppleScript's text item delimiters to {return}

set theId to text 5 through -1 of text item 1 of temp

on error

set theId to ""

end try

if theId is in my IDlist then

delete message x of mb

else if theId ≠ "" then

copy theId to end of IDlist

end if

if x mod 100 = 0 then say "" & x

end repeat

set removedCount to y – (count messages of mb)

if removedCount is 0 then

say "Finished. No duplicates detected"

else

say "Finished. " & removedCount & " duplicates removed"

end if

display dialog "" & y & " messages checked" & return & removedCount & " messages removed" buttons {"OK"} default button 1

set AppleScript's text item delimiters to {""}

end tell


對了!這個 script 是會說話的, 我本來還以為我幻聽了…原來是音量開得太小聲, 難怪一直聽到斷斷續續的人聲, 再猛一聽又沒了….:/. 如果不想聽到聲音的話, 用 — 把 say mark 掉就行了.
 
2011/12/26 補充

太久沒用, 我都忘記 Apple Script 在哪裡了?首先進到 Finder 的工具程式, 再點選 Apple Script 編輯程式的 App. 把上面的 script 貼上去, 按執行就可以了!
 
如果 folder 太大, 確實有 time out 的危險. 按 command + option + shift + ESC 三秒鐘可以停掉當前 active 的程式.
 
2011/12/28 補充
 
因為這個 script 太慢了, 我想了一下. 畢竟相同的 mail 應該都是同一個時間, 主旨, 寄件人等等. 所以不論怎麼 sorting, 這些信都會連在一起. 所以不需要搜尋整個 IDList, 只要看到未見過的 theId 就把 IDList 清掉就好了. 我加了一行, 底色標成黃色.
 

if theId is in my IDlist then

delete message x of mb

else if theId ≠ "" then

set IDlist to {}

copy theId to end of IDlist

end if


要解決 time out 的問題, 把 tell 到 end tell 裡面用 time out 包起來就可以了. Time out  只能以秒為單位.

tell application "Microsoft Outlook"

with timeout of 1000000 seconds
end timeout
end tell

在 Mac 底下用 UART debug

MBP 又出新款, 感覺我的這台又貶值了許多. 總之, 今天的主題是, 怎樣在 MacBook 下透過 UART debug.

首先我們要買一條 USB 轉 RS232 的線, 它不算貴 (360 NTD), 所以還要多買幾樣東西才能達到 PCHOME 的免運費標準. 我買的這條是 Atake 的, driver 在這裡抓:rs232-newdriver-091031.zip.

接下來安裝 Mac OS 10 的 driver, 重新開機後, 上面會出現一個像是電話的 icon.

點選這個 icon, 會進入網路選項. 接著進入右下角的 “進階…". 莫驚慌, “進階" 裡面沒啥東西. 此時要選擇的 modem 是 null modem, 速率看狀況. 但撥號前等撥號音, 可以避免它亂撥號, 否則會收不到 QA board 傳回的 print, 也就是所謂的打印信息.

此外, 就是要記得把終端機打開, 終端機命令取消.

當然, 這有點投機取巧. 對 MBP 來說, 我開了視窗卻沒撥號, 只是一個暫態. 因此相關的視窗是以 “連線中" 的方式佔據了前景, 只能放大還不能縮小. 不過, 在沒有更高科技的解法之前, 大家也可以像我一樣湊合著用.

重裝 Office for Mac 的小技巧

首先, 講一下很多人為之頭痛的 syncServiceAgent 問題. 很多人重裝 Office 2011 for Mac, 到了最後兩分鐘的時候, 安裝程式才開始抱怨: 有一個 syncServiceAgent 正在執行, 所以無法繼續安裝. 許多老外因此而氣得抓狂, 有人提供了要花一小時才能關掉 syncServiceAgent 的 “TIPS", 感動的網友 Haakon 竟然說:"Anthony. You can marry my daughter any day. IT WORKED! after 1 hour trying to shut the damn thing down. THANK YOU" 可見生女兒真的比較不值錢~~~呃! 我是說大家都氣瘋了!

但其實這個很簡單, Mac 的工具程式裡面有活動監視器, 類似 Windows 的工作管理員. 找到 syncServiceAgent 之後, 就選擇結束它!然後….它又立刻生出來了!不過 Mac 很貼心地把它的老爸也秀出來, 只要把它的老爸 launchd 也殺了, syncServiceAgent 沒辦法很快再生出來. 此時趕快按 install 程式的 “繼續", 就可以把最後兩分鐘安裝完!

當然, 事情會搞得這麼困擾, 就是因為沒有把前一版的 Office 解除安裝. 想要把它徹底 uninstall, 在 2008 年版只要執行 uninstall 就可以了!但是 2011 版就是少了這個反安裝程式, 搞得大家都很辛苦. 一如 N 年前我上 Synopsys Synthesis 課程的時候, 講師說: 這步做錯了怎麼辦?我立刻說 “undo", 講師苦笑說:沒有 undo. 真的想把 Office 2011 for Mac 殺乾淨, 可以參考這一篇:http://support.microsoft.com/kb/2398768/en-us

不過, 上述的殺法雖然很徹底. 如果想要重新安裝, 那麼千萬不要把 step 6 的 Microsoft User Data folder 殺掉. 一定要先備份起來. 到時候把 data copy 到 microsoft user data / office 2011 identities / Main indentity / Data Records 下面, 然後選和 Data Records 同層的 Database, 再選打開, rebuild database, 就可以把陳年舊帳 merge 回去.

Mac Book 的小技巧

接投影機

我記得在某人的網頁上看過這個小技巧, 但是我已經找不到源頭了, 只好自己描述一遍.

如果在 MBP 開機之後, 才把投影機的 VGA 轉換頭接上去的話, 投影機就抓不到 MBP 的訊號. 我有懷疑過 Space 是否該取消? Parallel 是否應該關掉?不過其實與他們都無關.

我重開在 WIndows 就好了, 接著再 reboot 到 MBP 也是好的. 但是只要把 VGA 轉街頭拔掉, 第二次再插上去, MBP 就不認得投影機了. 

我記得網路上的 TIP 是說, 先接 MiniDisplay 這頭或是 VGA 那頭會有差別, 但是我一時試不出來, 只確定重開機是沒問題的.

手機上網

我試過用 USB 連手機, 然後手機開 "網際網路共享", 結果不能用.

不過如果改成 Bluetooth PAN 網路共享, 就可以用手機上網了. USB 線還是可以連著, 但是只有充電 / 傳輸網路 / 瀏覽檔案的功能. 無論 3.5G 還是 3.75G 的網路都被 Bluetooth 的頻寬限制住了, 相當可惜.

FTP 工具

為了下載測試用的 test pattern, 我本來是用 MBP 內建的終端機, 不過終端機下面的 FTP 實在太陽春了, 又不能記住密碼. 上網 Google 一下, 發現卡車 (transmit) 的評價頗高, 所以就買了一套. 售價 34 USD, 不算很貴 (和 Adobe Pro 相比的話, 應該算是便宜), 基本上它物有所值, 可以推薦給大家.

iLive'11

因為我買 MBP 的不久之後, iLive'11 就上市了. 所以我可以用 300 NTD 的升級價去買 2011 版. 裝起來之後, iPhoto 新舊版幾乎沒有太大的差別,  而且還強制要升級 OS. 比較好玩的應該是 iMove 進步了. 至少一眼看去有點不同.

不過玩剪接需要時間, 我還沒空玩 iMove, 導致這 300 NTD 的成本還沒有回收. 不過這個升級優惠也是有期限的, 這次不升級, 下次就必須買一個完整的 iLive'11 了.