發表文章

MacBook Pro 2013-2015 更換 NVMe SSD 紀錄

其實我有點懶得重寫,所以我只打算把之前自己在 MacRumors 上的留言整理一下 XD,有興趣的人不好意思就得麻煩你爬一下原文啦。 首先,基本上所有需要的資訊都在 原始討論串的第一則貼文 (目前已轉為一篇 wikiPost,並且有在持續更新)。這篇討論串大概是 MacRumors 上關於 Mac 討論度最高的一篇了。除了 MacBook Pro 2013-2015 的機型之外,還有部份的 MacBook Air,以及 MacBook Pro 2016-2017 只有 2 孔 ThunderBolt 孔的機型可以更換。 我有在這篇討論串裡面分享我 轉移到 NVMe SSD 的紀錄跟心得 。不過,有幾件事情從那之後有一點改變,在參考上述連結的流程時請注意到以下的事項,包括:     1.  當時 MacBook Pro 2013-2014 機型有睡眠後無法正常喚醒的問題。      原本 Apple 一直沒有讓 2013-2014 機型拿到 2015 機型可以正常處理 NVMe SSD 睡眠跟喚醒的韌體(其實就只是個更新問題),直到 2020 年年底一次安全性更新後韌體版本號 (Boot Rom version) 大躍進,我記得我的 MacBook Pro 2014 那時候的韌體版本號從 1XX 跳到 429 開頭,在那時候大家就發現再也不需要做特別的設定來處理睡眠喚醒問題,更換成 NVMe SSD 的 MacBook 可以直接正常使用。所以更換成 NVMe SSD 之前建議先作一次作業系統更新(不一定要更新大版,繼續留在 Mojave 也是可以的,只要確定有把安全性更新裝到最新就可以了)免去處理睡眠喚醒的問題,你也就可以跳過我上面連結中寫的 Step 4 了。      2.  當時我的硬碟並沒有用 FileVault 加密。      最近一次把整顆硬碟複製回原本內建 SSD 的過程讓我發現,如果 FileVault 有開的話,一定要先解掉再複製還原才會成功。     3.  當時我的作業系統是 High Sierra、硬碟格式是 HFS+,現在作業系統則是 Mojave、硬碟格式是 APFS。 最後一點比較...

在 M1 Mac 的 VS Code 執行 R

2021/03/11 Updated: 最近 VS Code 更新為 1.54.1 之後原生支援了 M1。照理說原本是應該開心的,但... 因為有許多東西目前還是得在 Rosetta 2 底下才能正常運作,因此像這篇所說的設置在 VS Code 更新之後就完全修不好了。即便我在 r.rterm.mac 中加了 arch -x86_64 作為前綴,還是出現了錯誤訊息說它找不到 R client,真的是見鬼。目前也不太知道是該等 R extension 的作者修,還是該等 Radian 以及 R 原生支援 M1 才能修好了。 ===== ===== 最近買了一台搭載了好香 M1 的 MacBook Air(TSMC's 5nm inside!),有一些心得但簡單來說就是超快、超省電,然後依然有一些軟體跟外接硬體的相容性問題。不過,對於得(部分)靠寫程式吃飯的我來說,最頭痛的事情其實是開發工具們非常混亂地同時存在著 ARM 以及 x86 兩種版本。 比方說,brew 在安裝的時候如果沒有特別處理,就會裝在 /opt/homebrew/bin/ 底下(ARM 版本);如果讓 Terminal 在 Rosetta 2 底下執行的話,就會裝在 /usr/local/bin/ 底下(x86 版本)。類似的情況在處理各種 library 的時候層出不窮,就算想要盡量裝可以有原生效能的 ARM 版本,也有可能裝到一半的時候發現 library 需要的 dependencies 有的就是只能在 x86 模式底下執行而得整個換成在 Rosetta 2 的環境底下安裝。 最近因為上課需要用到 R 而試著在 M1 上安裝看看。以往雖然聽過 R 在統計上非常泛用,但因為自己已經很習慣用 Python 所以一直沒有去學,這次因為課堂需求就不得不用了。R 在 M1 上的安裝沒有什麼問題,問題出在當我想要在 VS Code 可以直接執行 R 的時候就撞牆了。 我主要參考了  A fresh start for R in VSCode  這篇,但問題在於我實在不曉得 R executable 到底路徑在哪。原本猜想可能跟 MATLAB 一樣要直接到 R.app 的 Package Contents 裡面找,結果是找到了,但只會在 VS Code 打開的時候把 R....

Pixel 3a - 規格不等於 Android 的一切

圖片
來講一下最近在黑色星期五各種特價中我覺得最值得買的東西 - Pixel 3a - 吧。 我原本的手機是 Samsung Galaxy S7,從帳面規格來說,Pixel 3a 幾乎「一切」都比不上它 [1]。3a 用的 Snapdragon 670 [2] 跟 S7 的 Exynos 8890 [3] 相比效能也只能說是相當[4],而且記憶體兩者都一樣是 4GB。考量這兩隻手機推出的時間差異超過三年,3a 的規格實在是非常不怎麼樣。但實際使用上,Pixel 3a 整體的順暢感卻是遠遠超過 S7,我甚至還不時覺得「也太快了吧!」不管是觸控延遲還是 App 切換等都順到我覺得完全不是這種規格的手機會表現出來的樣子,想必負責主要開發的台灣團隊真的下了很大的功夫[5]。 三星一直以來都會被戲稱有祖傳的 S-lag,這點連我從 HTC M8 換到 S7 的時候都有感覺(HTC 其實在減少觸控延遲這點上做得非常好)。S-lag 可能得歸咎於三星在每隻手機上都安裝了 Knox。與其說 Knox 是一系列的 App,不如說他像是整合在作業系統裡面的一個大架構,主要用途是讓企業可以快速部屬企業專屬的各項功能,對絕大多數的使用者來說,這些功能都像是 bloatware(預載的垃圾軟體),一方面拖慢裝置速度、佔據儲存空間,也無故增加了耗電量。除了三星以外,其他品牌的 Android 手機也通常有各自的預載軟體,甚至跟不同電信商綁約的手機也會預載該電信商相關的軟體。這也是為什麼我決定要換到 Google Pixel 的主要原因。 材質上雖然 3a 用的是塑膠[6],但質感超好,也做出了 Pixel 系列背面兩截式的標誌性設計[7],同樣的原料但有不同的質感。跟現在旗艦機普遍使用玻璃作為背蓋相比,塑膠的莫氏硬度比較低,容易刮傷[8],但彈性遠比玻璃來得好,也永遠不會像玻璃碎裂。對我來說,其實塑膠一點也沒有比較不好,反而有點讓我想起以前塑膠手機當道時我拿的 Moto Atrix [9]。我差點就買了碳纖維背貼來致敬了勒。 3a 為了降低成本當然還是做了一些妥協,其中我覺得最可惜的莫過於沒有防水功能,畢竟這幾乎是當前許多手機的標準配備,把手機帶進浴室已經像是理所當然、沒有問題的事情了。除了這點以外,我覺得 3a 絲毫沒有任何缺點(雖然我還是嫌它太大了點,但已經是市場上會被...

[macOS High Sierra] 避免High Sierra將檔案系統升級為APFS

隨著macOS Mojave的釋出,Apple也停止了對El Capitan的維護,因此我也在最近將系統更新到了High Sierra(我跳過了Sierra,主要原因是 Sierra不支援外接螢幕HiDPi )。 屏除你在官方介紹就能看到的東西以外,High Sierra有幾個非常值得提出來的優點。第一是安裝完就會立刻發現的是作業系統佔的容量比El Capitan小了很多,對於當時買MacBook時選了比較小容量機型的人應該是一大福音;另外整體的速度也比El Capitan快... 當然也有可能是因為硬碟容量清出來了所以比較快啦。 第二個優點非常重要,那就是High Sierra原生支援NVMe (Non-Volatile Memory Express) SSD。假如你的MacBook是2015年(包括)以前的機型,其實主機板上的PCIe SSD是可以更換的。然而PCIe SSD規格非常混亂,加上Apple自己又喜歡搞特規,所以以往MacBook即使可以更換SSD,你也只能買特殊規格的SSD來換,像是OWC,或是臺灣就是找創見。當時能夠更換的稱為AHCI (Advanced Host Controller Interface) SSD ,這種SSD非常昂貴,而且你能找到的AHCI SSD通常速度跟品質都不如Apple原廠的(Apple原廠的AHCI SSD一般為SanDisk或Samsung),使得當時自己更換MacBook內的SSD非常不划算。 相較於AHCI,NVMe SSD就便宜許多了,當然價格還是不可能跟SATA SSD相比啦,但NVMe SSD有著超越AHCI的超高速度,如果機器完整支援PCIe 3.0的4條通道,讀寫速度可以到3000MB/sec這麼爽快的速度啊!而且也有廠商做出了轉接頭,所以想買個可以負擔的SSD替換MacBook的內建硬碟再也不是夢想啦! 不過因為我還沒有時間處理轉移的問題,而且雖然硬碟空間是有點拮据,但也還夠用,因此暫時沒有要對更換SSD一事做更多的著墨,但就先提供一個可能性,附上一些連結讓有需要的人可以自己嘗試看看。一如以往,話先說在前頭:Use at your own risk. HOW TO: MACBOOK PRO RETINA M.2 SSD STORAGE REPLACEMENT AND UPGRAD...

透過Tasker控制LIFX

最近從Amazon入手了一顆LIFX A19,主要是為了可以解決房間早上照不進太陽害我非常難起床的問題,因此我希望想要做的事情是: 在早晨隨著日出時間開啟並且緩慢改變亮度以及色溫,模擬日出的感覺。 在出門(手機沒有連上家裡Wi-Fi)之後透過行動網路傳送訊息給LIFX關燈。 在手機連上家裡Wi-Fi,而且時間是白天的時候自動開燈(回家就開燈的意思)。 第一項可以透過LIFX官方的App設定schedule來達成。只要先設定一個schedule在日出前任何時候先將色溫改成2500K(其他設定都保持不改變,即使燈是關的也沒關係),再設定一個schedule在日出時將燈開啟,色溫設定為3500K(日出後1小時的色溫)、亮度設定為100%、Fade Duration為60分鐘,這樣子LIFX就會在日出後慢慢地從暗開到最亮,並且模擬太陽的色溫變化了。 第2、3項則需要透過一些Automation的App來達成。在Android上我的首選當然是Tasker,但LIFX並沒有做跟Tasker接的plugin,只有IFTTT有這樣的功能,因此一開始我是選擇先試看看IFTTT。但IFTTT相當不穩定,有些applet完全沒辦法觸發,一氣之前還是想辦法找Tasker可以控制LIFX的方法。一開始找的方法是透過LIFX提供的 HTTP API文件 中提到利用HTTP POST方法開關燈,結果Tasker雖然可以做HTTP POST task,但沒辦法在其中帶header,所以無法滿足LIFX HTTP API的需求。簡單的解決方法是利用 RESTask 這個Tasker Plugin讓Tasker可以送出包含header的HTTP POST訊息。(2021/07/05 Updated: 忘記是多久以前Tasker的HTTP Request已經可以支援帶header了,所以現在可以直接利用Tasker內建的HTML Request對LIFX下指令了喔。) 但因為我實在是很不想再另外裝App,最後終於找到了一篇 reddit討論串 剛好有人也有做一樣的事情,他使用的方法是用JavaScript指令來觸發LIFX的HTTP API。因此在Tasker中可以做一個JavaScriptlet task,貼上以下這段Code: 這段Code中,想要對LI...

美國牛與選擇自由

生在自由民主的國家,我們總以為自己擁有完全的選擇自由,而且視為理所當然,但在不少情況下其實不是這樣的。 午餐我在公館吃了「COOK BEEF!酷必」,這是王品旗下的餐廳,主打平價五星級牛排飯。無論從價格、工業風格的店面設計或是支援行動支付3大Pay等,都可以看出這家店的目標客群。店門外清楚地標示了牛肉的生產國,最便宜的騎士牛排剛好就是唯一的澳洲牛。嗯,就是它了。190一客的牛排飯,附一碗羅宋清湯,相較於附近動輒1萬起跳的套房租金,應該也只是剛好而已。 自從美牛不斷解禁後,有越來越多餐廳的牛肉主要來源變成了美國。對於有明確標示的餐廳來說,消費者依然有選擇的權力。然而要是考量餐點的價格、或是美牛其實美味程度不下澳洲牛後,消費者是不是還能用「美國是狂牛病的疫區」為由選擇澳洲牛,或是信任「政府應該會為大眾健康把關」而選擇美牛,那就很難說了。更不用說有更多的小店不見得會標示牛肉來源,甚至使用了重組肉卻沒有聲明;消費者以為自己擁有選擇是否吃美牛的權力,事實卻是早已在不知情的情況下吃了許多美牛下肚。 還有一樣東西來自美國,同樣也讓你無從選擇,那就是iPhone。由於沒有其他使用同系統的手機廠商,某種程度上iPhone使用者沒有什麼選擇的空間,習慣了iOS後就只能任由Apple予取予求。在這幾代的改變中,最為人詬病的莫過於iPhone 7開始取消了3.5mm耳機孔。Apple跟狂粉們有一萬種說法為此辯解,但承認吧,拔掉耳機孔不過是商業考量罷了:讓手機內部設計更簡單,降低成本,同時讓消費者不得不買藍芽耳機,順勢推出完全就像是把EarPods耳機線剪斷的AirPods,價格是原本有線耳機的5倍。然而,由於iOS使用者無從選擇,iPhone 7毫不意外地依然大賣,產生消費者「選擇」了這種設計的錯誤趨勢,使得其他各家廠商也因此順勢地拔掉了耳機孔。反正你也不得不買不是嗎?而且這正是消費者「選擇」的。 無論是什麼原因,迫於金錢、迫於時間、迫於習慣,我們很常沒有真正的選擇自由。所以,在你還有餘力的時候勇敢做出選擇吧。你手上的鈔票就是一張又一張的選票,只有被你選擇的廠商可以得到存活的機會。「拒絕參與政治的懲罰,就是被糟糕的人統治。」(*) 若是你選擇放棄思考,當個無知的消費者,最後市場就是跟人民不關心政治的下場一樣,被無良的廠商所把持。 *: "The punishment which ...

[S7換機紀錄] 如何減輕AMOLED傷害你的眼睛

圖片
好了,是時候來面對S7這隻手機令我最厭惡的地方了:螢幕。 其實S7的螢幕無論是顏色、對比、亮度(最亮夠亮、最暗夠暗),甚至是自動亮度的調整都非常優秀,但仍然無法克服AMOLED的烙印、色衰,以及PWM調光等問題。因此話先說在前頭,如果你使用AMOLED的裝置,並且單純使用內建的自動調光,看起來一切安好的話,那恭喜你,你可能喜歡(或適應)AMOLED的顏色的同時,對PWM調光也不敏感,建議你就不用再往下看了。 但如果你跟我一樣,在拿到這隻手機看了幾天,發現怎麼看這塊螢幕怎麼不舒服,甚至出現頭痛的狀況,那很不幸地,你我都是眼睛比較敏感的人。 在我們切入最重要的主題之前,先來講個「可能」減輕眼睛疲勞的方法,也就是讓S7的螢幕不要那麼鮮豔一點。在Setting -> Display -> Screen Mode中可以調整S7螢幕顯示的模式。預設的模式是Adaptive display,這個模式的顏色非常鮮豔,白色的色溫也過高,亮度也比其他模式來得高,因此首先你可以先將Screen Mode改成Basic來改善這個問題。詳細的內容請見 這個網站 有非常詳細的各種數值。 懶得截圖啦~我直接抓了 這個網站 的圖 好,來進入最麻煩的問題:PWM吧。一般來說,螢幕調整亮度的方式分成兩種,PWM (Pulse Width Modulation)以及DC (Direct Current)。後者從名字就可以知道是靠著調電流來降低亮度,後面提到的所有PWM缺點都不存在於DC調光方法中;這種方法可能的缺點大概是能夠調整的亮度範圍比較窄,因此有些螢幕會告訴你它在亮度X%以上時使用DC調光,但低於X%以下則是改用PWM調光,比如 EIZO 。而PWM則是「騙」你的眼睛以為螢幕的亮度降低了,但實際上是利用快速地開關LED來達到「看起來」好像變暗了。為了讓你不要察覺它其實是這樣調整亮度的,因此LED的開關頻率必須要夠高,但其實不用太高人眼就很難察覺了,只是在頻率過低的情況下你可能會覺得有種難以形容的不適感,除了眼睛容易疲勞外,有些人甚至會覺得噁心、頭痛。 除了我的個人經驗外,在IEEE上也有 一篇文章 有詳細的說明。大致整理一下文章所說的內容包括: PWM頻率在3~70Hz是人眼可見(可察覺)的。在這種頻率下,人會立即被觸發各種症狀,包括癲癇、頭痛、頭暈以...