MacOS 我的設定

最近因應新工作買了台新的 M1 Mac mini,所以重新把常用設定弄了一下,這篇文章來紀錄一下。

Mac OS Preference by othree

首先是 一般 裡面的顯示捲軸(scrollbar),預設的設定是 自動依據滑鼠或觸控軌跡板 ,這個選項的意思是,如果你用的是蘋果的滑鼠或觸控板,那他就會用自動隱藏的那種捲軸,如果有其他品牌的外接游標控制設備,那捲軸就是傳統的,有得捲動時就是會一直出現在那,佔據一塊空間,其實我對於這個預設行為有疑惑很久了,為什麼其他品牌的滑鼠就一定要用傳統的捲軸模式?直到某一天在系統篇好設定亂逛的時候才發現原來就是這個選項。

閱讀「MacOS 我的設定」全文

Homebrew rollback to MySQL 5.7

最近 Mac 的 homebrew 預設的 MySQL 已經改到 8,然後產生了些相容性問題,像是 GUI 不支援之類的,所以提供一下方法回到 5.7

brew uninstall mysql
brew install mysql@5.7
brew link --force mysql@5.7

然後清空舊資料重建新的

rm -rf /usr/local/var/mysql/
mysqld --initialize

其中第二個步驟會產生新的 root 密碼,先複製下來,啟動服務並修改密碼:

brew services start mysql@5.7
mysqladmin -u root -p password

照指令操作,應該是先填前一步產生的密碼,然後輸入新密碼、再次輸入新密碼,這樣就 ok 了,剩下就是找個 GUI 或是匯入資料之類的。

參考資料:


Apple 電話支援

Apple Store Taipei 101,

前陣子蘋果發表 iPhone 8 和 X 後,我趁機幫我爸買了 iPhone 7,因為是我爸第一次用 iPhone,所以就由我幫忙設定,想不到遇上了要電話聯繫客服的狀況,因為用了蘋果產品這麼久,還是第一次聯繫客服,所以特別紀錄一下。

遇到的狀況是,一開始覺得我爸沒有 Apple ID,所以就直接在手機上走註冊流程,使用的是我爸一直在使用的 gmail,沒想到走到後來,發現這個帳號已經存在了,這時還想說是不是以前幫他裝 iTunes 時有註冊過,不過嘗試登入都沒辦法成功,後來走忘記密碼的流程成功進去了,沒想到,裡面的資訊都是韓文,像是姓名、地址、app store 國家、安全問題等,很像是被盜用後把資料改成自己的樣子,然後我就一個一個慢慢改回正確的資料和設定,不過即使我區域設定到台灣,語言是中文,還是有一個地方改不動,那就是安全提示問題,依然保持韓文的題目,而因為我不知道問題的答案是什麼,也沒辦法重設,也無法開啟兩步驟驗證,據蘋果文件說明,開啟兩步驟驗證就會停用安全提示問題,而一個月後會把之前設定的安全提示問題刪除。

遇到這種狀況也只能聯絡客服了,一開始尋找入口不會太困難,不過蘋果不是直接留個號碼給你撥,而是有個表單請你填寫,他會打電話給你,一般看到這種做法的都會覺得是不是要很久以後才會有回應,不過其實完全相反,他在表單上就寫了大約兩分鐘後就會有人撥電話過去給你,而且這是真的!除了致電迅速外,蘋果這種做法其實還有兩個優點,一個是對客戶來說,不用電話費,另一個則是對蘋果來說,他們還是掌握主控權的。

接通電話之後,第一位服務人員無法處理這個狀況,跟他溝通一下後他轉給專門負責帳號的人員,請我等一下,然後我等了沒多久就換第二位接手,他接手時已經大概知道我的問題,不過我還是有把細節又交待一次,交待完之後,對方就表達了說叫我們不用擔心,一定會盡力幫我們解決問題,他本來有想請我做一些操作,不過知道我幾乎都做過後,也沒有要求我再嘗試一次,這時候他有提到最簡單的方法就是建立一個新的 Apple ID,不過我還是不太希望這樣,一時也沒別的信箱適合(那時候忘了 gmail 有 + 的別名可以用,後來想到時決定當最後備案),他二話不說,就要幫忙把我們的問題轉給主管,這次他有先說因為假日的關係要等比較久,結果真的等了蠻久,等待時是用手機開擴音所以還好不會太累,話筒端就播著蘋果風格的音樂,然後我也趁著這時間翻翻我爸過去收到的 Apple 的信,看一看覺得或許一開始我們沒申請過 Apple ID,而是有個韓國人申請錯帳號,然後我們收到信都是韓文也看不懂,不小心就點了連結然後帳號就開通了⋯

等待時,前一位還有再回來關心一下,甚至他還試著幫忙翻譯了安全提示問題,想要看看會不會是我們以前設定的忘記了,這點我蠻意外的,不過因為真的沒印象所以也沒用,所以他也完全沒勉強我們測試,而且其實我已經亂測被鎖了,另外我也跟他說了目前推測可能是因為以前亂點到信件連結造呈現在的狀況。最後等了應該有半小時吧,終於等到了,這位主管的聲音聽起來和前一位差不多年輕,有點意外,再來就是他接電話前,已經跟前面那位交接好我的問題了,所以我不用再重新說明一次,而且是最新的狀況,最後這段過程我有點忘記,不過基本上就是,他會找工程師看有什麼法可以處理這個狀況,然後會再跟我聯絡,有約好傍晚在撥,不過沒隔一個小時他就又回撥了,他要請我收信然後回報信件內的六碼 code,不過我剛好在騎車移動,就還是請他六點在撥,後來收到的那個六碼 code 是高強度的,英數大小寫有別,看起來是個特殊的流程給 Apple Support 團隊確認帳號信箱所有權用的,回報確認之後,他就說要請我們等兩三天時間。

然後過了兩三天後,我爸接到電話說帳號已經可以使用了,我就去測試了一下,結果變無法登入,所以我推測是帳號砍掉了,測試過後就發現真的變成可以註冊的狀態,就趕快把他重新註冊起來,中間這段時間,我猜是去翻 archive 起來的使用者 log 判斷是不是可以砍帳號吧。

最後總結一下,這次過程我覺的蘋果電話客服有以下特色,不過大概也不會是每個公司都複製的起來的:

  1. 由他們掌握主控權,但是又完全免費,而且填表後真的很快就會接到電話
  2. 每個要等待的階段都會先讓使用者有預期
  3. 除了第一位外言談都蠻誠懇的
  4. 完全相信(至少表現起來是)客戶,不會強迫做一些嘗試過的操作
  5. 連砍帳號都可以辦到

OSX Admin Account 消失

Mac OSX single user mode

昨天晚上終於收齊拖了一段時間的 HITCON 2017 CMT 照片,根據莫非定律,這時候一定會有異象發生,果然,我的 iMac 就第一次出問題了,基本狀況是帳號消失,然後我剛好就一個主要帳號同時是 admin,所以狀況就升級成 admin 帳號消失了。

首先說一下背景,平常我是沒關電腦也沒休眠的,就是用螢幕熱點關閉顯示器而已,然後加上顯示器關閉太久之後回來需要密碼,不用休眠的主要原因是外接鍵盤休眠後就會抓不到,然後昨天晚上,安裝了 Adobe Bridge 後,無法使用,重複移除安裝了兩次結果依舊,於是我就先把照片作簡單的整理,然後丟上 NAS 做備份(NAS 還會丟上 Google Drive 做二號備份),接著我去忙其他事情之後回來,發現登入不了,說密碼錯誤,試了很多次都一樣,而這段時間也不可能進來幫我改密碼的,由於我之前還開了一個一般帳號,所以可以切換成其它使用者,然後就在我按了「切換使用者」之後,我的主要帳號就不見了!

總之我就試著登入另一個帳號,中間還看到幾次鑰匙圈損毀的訊息,大概可以確定這次的狀況就是這個原因,然後 OSX 不知道怎麼判斷就認為沒這個帳號了,搜尋了一下網路,看到一些解法,最後我的處理方式如下:

  1. 重開機同時按著cmd+s進入 single user mode
  2. 用 single user mode 的 CLI 介面刪除/var/db/.AppleSetupDone這個檔案
  3. 執行reboot重開機,這樣會進入初次開機的狀態
  4. 重新建立帳號,我是用相同的帳號名稱,會執行的有點久,最後會說失敗,原因應該是因為該帳號的 home 目錄已經存在了
  5. 再次重開機,結果會進入正常的登入畫面,可以登入新建的帳號,發現 home 目錄的東西幾乎都可以正常讀入

最後,為什麼會鑰匙圈損毀呢,我推測是硬碟東西塞太多加上當時在上傳資料才造成問題的,不過也就是個推測而已啦。


Visual Studio Code Copy with Syntax Highlighting

今天 Visual Studio Code 出了 1.10,包含了很多讓人期待的功能,其中讓我比較注意到的是 Copy with syntax highlighting,這在 Mac 上可是讓人等了很久,我的主要目的是做投影片時,可以不用再特別處理程式碼的顏色了,以前只有 SubEthaEdit 有支援,不過這款軟體真的蠻貴的,好不容易有免費版的軟體支援了,就趕快來測試一下,基本上步驟就是,先挑選一下顏色主題,看你的投影片背景是亮的還是暗的,選擇 Menubar 最左邊的 Code > 喜好設定 > 色彩布景主題,快速鍵是CMD + K,CMD + T

VSCode Copy with Sytax Highlighting

選好程式碼,然後輸入CMD + Shift + P叫出命令面板,打入copysyn就可以找到 Copy with syntax highlighting

VSCode Copy with Sytax Highlighting

去 Word 貼上就可以了:

VSCode Copy with Sytax Highlighting

不過我的目標其實是要貼上 Keynote,結果測試後發現貼到 Keynote 會沒有樣式,但是如果從 Word 那邊重新複製一次,就可以正確的貼到 Keynote 了:

VSCode Copy with Sytax Highlighting

這個問題我已經去 GitHub 開 issue 了,看起來是因為只有提供 HTML 內容而不是 RTF 內容的關係,希望之後能修正,就可以更方便的使用了。


MacBook 2015

前兩天發表的 MacBook 很多人不看好,不過我倒是很看好的那邊,連我都想買了,不到一公斤但是確是台完整的 OSX 電腦,有正常大小的鍵盤、感壓觸控版,加上 Retina Display,買一台金色的去咖啡廳簡直要橫著走了,不過更讓我好奇的是它竟然沒取代 Air,Air 還比較重真是情何以堪,我推測比較可能的發展是 Air 產品線未來會收掉,回到之前兩條產品線的狀況。

另外還有一點讓我很好奇的就是觸控版的部分,一來是好奇他的感壓加上震動回饋操作起來的感覺 ,二來是 MacBook Pro 13 吋有更新,但是 15 吋卻沒更新,要知道相較於 13 吋 MBP,15 吋更新的頻率實在是低很多,在這個新觸控版的更新上竟然還沒有 15 吋的,實在不太合理,所以我猜蘋果是等另外一個產品出來:27 吋 5K 的 Cinema Display,可能很多人不知道,蘋果之前出的 iMac 5K 和以往不一樣,不能當作外接螢幕,其中一個最大的原因是目前通行的傳輸介面還不能傳輸到 5K 解析度,市場上的 DisplayPort 幾乎都是 1.2,至少要到 1.3 才有辦法處理 5K 解析度,iMac 5K 發表則只比 DisplayPort 1.3 晚一個月左右,蘋果除了要等 DisplayPort 1.3 之外,還有另外一個就是這次 MacBook 的主角之一:USB 3.1 Type-C,這條新的介面真的很強,除了向下相容外,可以反差,可以傳更多電力,傳輸資料量當然更大,還可以傳輸影像訊號,用的就是 DisplayPort 規格,嚴格說來是 DisplayPort 規範有個 Alternate Mode 可以使用其它線材做傳輸,而 DisplayPort 1.3 理想最高資料量的情況下(其實就是 5K 解析度)都還塞不滿 USB 3.1,可以邊傳完整 5K 畫面邊傳資料。我的猜測就是 15 吋 MBP 下次更新除了新的觸控版外,還有 USB 3.1 Type-C,更強的顯示卡,然後同場加映 27 吋 5K 的 Cinema Display,用 USB 3.1 Type-C 連接,同時供電,傳資料,以前 Cinema Display 那條三頭的線就一條 USB 解決了。

最後話題回來 MacBook,其實我覺得這台打的目標消費者族群很明確,就是買 MacBook Air 的那個族群,MacBook Air 剛出來其實是比 MacBook 還要高級一點的,現在兩邊角色正好互換,其實也是蠻有趣的。

MacBook_OP90_Tilt_Gld-PRINT


OSX 10.10 紅綠燈

OSX 10.10

有用 OSX 的人可能都會有個感覺,就是左上角紅綠燈的 icon 裡面東西歪歪的,我會感覺紅色的往左上,綠色的往左下,不過用抓圖的抓下來放大看卻又發現其實是置中的,所以我想到的可能性就是螢幕的 subpixel 問題,找了手上能拍最大的鏡頭拍來看看:

OSX 10.10

發現排列是 RGB 從左到右,不過其實這只解釋了紅色叉叉往左偏而已,往上和綠色的完全無法解釋,尤其是綠色,綠色的點剛好是在中間,我覺得應該只剩下視覺錯覺的可能性了吧,不過其實我是想說,這個錯覺的感覺不知道是只有少部分人有,還是美國人都不會有感覺,最糟的情形是他們雖然有感覺,但是因為給的 asset 是正確的所以就沒進一步處理了。

在 Steve Jobs 過世之後,其實我不太喜歡網路上很多人說 Tim Cook 表現的差很多之類的言論,不過對於這個問題,如果是最後一種情形,我真的覺得少了 Jobs 有差,然後仔細想了一下,好像現在蘋果真的少了個對軟體介面細節這麼在意的人了,John Ive 是硬體工業設計那塊的,其他比較高層的好像就沒有聽說有誰是對這塊特別要求的人,突然覺得對蘋果未來有點擔心...


Source Code Pro

Adobe 昨天發表了新的等寬字形,叫做 Source Code Pro,從名稱上就知道這設計的目標就是 coding 用,coding 用的字形有幾個需求,像是等寬,數字 1、小寫 l、大寫 I 這些形體上很接近的字母都要可以一眼就能分辨等,目前我使用的是 Inconsolata

Inconsolata 14
Inconsolata 14

這套字形非常受歡迎,使用的人很多,我也用了很久,每次有新的 coding 字形出來我都還是會嘗試一下,不過大部分時候都只是切過去看一下,沒辦法滿意後就又換回 Inconsolata,不過這次 Adobe 的 Source Code Pro 我有打算用了一陣子看看。

Source Code Pro 14 Regular
Source Code Pro 14 Regular

直接比較這兩套字形,第一印象就是 Inconsolata 的字寬和字高都比較小,所以同樣面積的畫面其實它是可以顯示比較多東西的,這樣當然是會有缺點,就是畫面比較擁擠,不過這缺點其實沒很嚴重,因為沒有對照組出來其實沒什麼這樣的感覺,不過由於同樣都是 14 字級,Source Code Pro 實在大上不少,所以我決定降一級看看。

Source Code Pro 13 Regular
Source Code Pro 13 Regular

Source Code Pro 的 14 和 13 實在很接近,基本上只有高度有點差異,不過總之這樣又會覺得字體線條有些太粗,所以最後我是選擇 Light 的 13 字級來使用一陣子,和 Inconsolata 比基本上就是我的字間比較不會那麼擁擠,不過還好我螢幕大,所以也不用擔心可以顯示的程式碼太少的問題。

Source Code Pro 13 Light
Source Code Pro 13 Light

Source Code Pro 除了在 Source ForegeGithub 上發布外,還一起在 Google Web FontAdobe Edge Fonts 等免費的 web font 服務上提供,而且六種粗細等級全部都有,所以我也趁機把我 blog 的程式碼用的字形換過去,本來是用 Droid Sans Mono 的,下面可以看到兩者之間的比較:

droid sans vs source code pro
Doird Sans vs Source Code Pro (weight: 600)

這邊我選的是字重 600 的 Semi Bold Source Code Pro,因為 Regular 的在網頁上看起來實在太細,所以選了粗一點的,其實很難說哪個好,Droid Sans Mono 其實看起來還是不錯的,不過總之就先這樣試用一陣子吧~


Steve Jobs

Apple

Google

Steve Jobs 過世已經不讓我意外了,我倒是蠻意外我真的因為這個消息受影響而有些失落,甚至連我媽從沒用過蘋果產品的人也覺得惋惜,這也可以看到他對於世界到底有怎樣的影響力。我是從研究所時期開始使用蘋果的產品的,從末代的前一代 iBook 小白用起,後來換到初代鋁磚 MacBook,同時還有用 iPod 、iPad 等,也跟了好幾年在半夜看發表會,到今天我還可以稍微回想起那 "One More Thing" 的魔力,一群長輩邊開 IRC 邊閒聊邊關注新訊息也是非常快樂的經驗,蘋果這幾年從 iPod 開始, iTunes、iPhone、iPad,回到 OSX 再到 iCloud,整個發展的歷程看下來其實非常可怕,從硬體、軟體、內容到更進一步的雲端服務,整個都包了下來,某天晚上我拿著 iPad 躺在床上使用時,我突然有一個念頭:「這東西大概是科幻小說中才會出現的吧。」如果10年前有人跟我描述 iPad 這個產品,說會有這麼薄,只要用手指就可以控制,還有這麼多功能的設備,我只會認為那是小說或電影裡面的東西,不過 Steve Jobs 帶領的蘋果就是把這樣一個產品做了出來,而且 iPad 發表時,沒人看好,我看發表會時也不覺的怎樣,但是結果非常的出乎意料,大賣到不行,而且也是我唯一有買的 iOS 裝置,這讓我想起 Twitter 創辦人 Biz Stone 說過一句話來形容 Twitter:「It's the messaging system that we didn't know we needed until we had it」,同樣的話,我覺得拿來形容 iPad 也很貼切,唯一不同的是,Steve Jobs 知道人們會需要 iPad,他把它做了出來,改變了人們的生活方式,同樣由他創造出來,改變了世界的產品還有 Apple II 和 iPhone,甚至連賣的不太好的 NeXT 都間接讓現在的網際網路成形,或許他腦袋中還有其它可以改變世界的東西,只可惜我們已經看不到了,或許我也是因此而感到失落的吧。

最後就引述紐約市長彭博的悼詞作結(翻譯來源):

今夜,美國失去了一位天才。賈伯斯的名字將與愛迪生和愛因斯坦一同被銘記。他們的理念改變世界,影響數代人。過去40年,賈伯斯一次次預見到未來,並在多數人遠未洞察之前就將設想付諸實際。賈伯斯才識和力量改變文明。我們每個人都受益於此。


OSX 安裝 v8 js command

今天在乾淨的機器上裝,步驟很簡單,不過總之記錄一下

brew install scons
git clone git://github.com/v8/v8.git v8
cd v8
scons
scons d8 console=readline

然後我會把執行檔放到 ~/bin 裡面

cp d8 ~/bin/
cd ~/bin/
ln -s d8 js

此類別所有文章