發表文章

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是人眼可見(可察覺)的。在這種頻率下,人會立即被觸發各種症狀,包括癲癇、頭痛、頭暈以...

[S7換機紀錄] 完全自訂S7的實體按鍵

從M7換到M8的時候其實我有點不習慣虛擬按鍵,但用久了覺得螢幕上的虛擬按鍵(on-screen buttons或是navigation bar)真的是比較理想的設計,不但可以由使用者自訂按鍵的順序,或是新增非預設的功能鍵,同時也免除了實體按鍵(capacitive buttons)損耗的風險,反應時間也比較理想(這個其實我不太確定,但我個人感覺是這樣)。 但總之,S7用的是實體按鍵,而且內建也沒有可以調整按鍵順序的功能,因此也只好找其他工具來調整了。說實話,實體按鍵不給更改也是合理的做法,畢竟圖案就印在上面,對不那麼執著的絕大多數使用者來說,可以互換才奇怪勒。但對想完全掌控手機的人來說就不是這樣了... 系統內建不能更改,三星root又直接破保,在不修改系統的情況下自訂按鍵雖然可行,但都是不完美的解決方案。 好了,先從Home鍵講起吧。 關於想要可以碰到就算觸發Home鍵這件事情,如果你做了一些搜尋的話,應該會首先發現 easyHome 這個App。不過雖然這個App宣稱是對Samsung Galaxy系列最佳化的,我實際使用的過程卻覺得它很容易就失效,時好時壞的,非常不穩定,這樣我實在不如接受按壓Home鍵這種事情算了,至少它一定會觸發啊。 後來我又陸陸續續找了幾款類似的App,其中一個是我曾經在XDA上看過的 Fingerprint Gestures 。畢竟是在XDA上看到的,因此信任度也比較高一點。這款的穩定度其實也不佳,但是它卻支援超多功能,而且是只要任何有指紋辨識的裝置都可以使用。 但穩定度實在是太重要了,我一點也不希望在我明明按到的時候卻什麼事情也沒發生,最後終於讓我找到了 Finger Home Gestures 這個App,極度穩定,任何狀況下都可以觸發,從來沒有一次失效的。不過相較於前兩者來說,這個App的功能真的非常陽春,就是只有Touch跟Swipe Up兩種動作可以定義。但穩定度大於一切 ,最後我留下了這個App。 值得注意的是,easyHome看起來似乎跟後兩者的原理不太一樣。後兩者都是調用到指紋辨識的功能來處發Home鍵效果,甚至可以在只有辨識到正確指紋的時候才起作用。但easyHome看起來卻是發現了Galaxy的指紋辨識器中心處有個sensor,並且用這個sensor當作判斷的依據。衡...

[S7換機紀錄] 前言、安全性、防火牆

圖片
這是我要講我如何跟S7這隻手機奮戰的第一篇文章。在開始講解決各種問題之前,你需要先知道幾件事情: 三星的手機一旦root直接破保  - 三星的保固有許多案例明確表示只要手機root就直接破保,且三星的Knox有個 保固位元 ,一旦root該位元便會自動從0X0轉為0X1(原廠稱為燒熔)而且無法恢復,也因此基本上你無法先unlock後relock又絲毫不留痕跡。雖然XDA上是有人提出 不會破壞Knox保固位元的root方法 ,但一方面只看到支援S6,一方面畢竟不像HTC有官方的解鎖流程,用起來實在是怕怕的,還是打消了這個念頭。由於有這麼麻煩的限制,加上我還是希望可以保留手機的保固,因此之後解決問題的方法都基於不需root的狀態處理。 順帶一提,如果你破壞了Knox保固位元,那麼Samsung Pay也會因此而無法使用。 過程中用到的手機使用介面以英文為主  - 為了方便搜尋相關資訊,我將我的手機介面改為英文。也因此,絕大多數在文章中提到的各種設定都是以英文為主喔。 請不要說出「用隻手機有需要搞成這樣嗎?」  - 就是因為我希望我使用的裝置都可以順順利利地完成我想做的事情,因此我很不喜歡在這些事情上妥協。除非真的想盡一切的辦法,最後發現要達成我的目的所要花的代價太大,我才會心不甘情不願地說「好吧」。所以如果你是會說出「用隻手機有需要搞成這樣嗎?」的人,我建議你就別再繼續看下去了,因為我在做的都是會讓你說出這句話的事情。 Android是一種Linux系統  - 所以有蠻多東西我在搜尋資料的時候會看到很多Linux相關的用法。我並不熟悉Linux,但為了Android我因此學會了一些Linux相關的事情。也因為這樣,假如我在文章中提到Linux的話請不要覺得奇怪,其實也是給Android用的東西就是了。 需要穩定在背景運作的App請加入電源管理的例外清單  - 由於三星不按照牌理出牌的寫法,如果你需要App可以穩定地在背景運作的話,除了Android系統標準的設定,也就是Apps -> 右上三點選單 -> Special access -> Optimize battery usage將App從All apps中關閉開關(意思是不對該App做電池最...