Google
 

星期日, 4月 09, 2017

Chrome的色彩管理問題

Chrome應該算是巿佔率數一數二的瀏覽器了, 僅管它有一個大缺點: 記憶體吃很兇, 但因為瀏覽速度快(用空間換取時間), 所以雖不滿意但還可以接受。(雖然也有一些讓Chrome省記憶體的撇步, 但這不在本篇的討論之內, 有興趣的朋友可以自行Google一下)

其實Chrome一直還有一個大缺點: 很糟糕的色彩管理支援。
但這個問題可能因為大部份人對網頁上看到的色彩真實度也不是很在意, 再者要能再出這些些微的差異, 螢幕本身也不能太爛。
(經檢驗後, 這應該不是一個普遍性的問題, 隨系統環境會呈現不且的結果, 但目前不清楚關鍵在哪裡)

但如果你多花了一些錢買了一個還不錯的螢幕, 然後興沖沖地把你的照片放到網路上, 你可能會開始意識到這個問題的存在了。

下面這張圖是我在Lightroom中的影像放到IE 11(版本11.0.9600.18537)上的一個對比。左邊是在IE中呈現的結果, 撇開瀏覽器所採用的縮放演算法所造成的雜點分佈不談, 若只就顏色的表現來看, 在IE中的顏色看起來和Lightroom中看到的色彩還算接近。

但同樣一張圖把它放到Chrome(版本58.0.3029.54 beta)上顯示, 差異就很明顯。Chrome中的圖明顯飽和度過高而且偏紅。

要做這些比對, 當然前提是在系統中已經用了正確的ICC檔做了正確的設定了。而這個問題, 會隨著你所使用的螢幕所能呈現的色域愈廣, 問題就愈明顯。

關於Windows中的螢幕的色彩管理設定, 可參考這些文章:

[教學]Windows 7色彩管理檔(icc)運作不正常的解決方法

有一些網站提供了測試網頁, 可以測試你所用的瀏覽器是否支援ICC color profile。以下這個網頁是我目前看到最詳細的:

Web browser color management test

網頁的前半段 "Does your browser support v2 ICC color profiles?" 可簡單測出瀏覽器對v2 ICC color profile和v4 ICC color profile的支援。這部份IE和Chrome都是OK的。

後半段 "Additional tests" 可進一步測試瀏覽器是對不同嵌入資訊的處理結果。按照W3C的規範, 當影像嵌入資訊未描述色域時, 預設應視為sRGB色域。所以網頁中以不同嵌入資訊的RGB圖像並排, 以測試瀏覽器呈現的結果。正確的結果應該RGB上下段顏色是完全一致無色差的。

下面這是IE中呈現的結果, 完美!


下面這是Chrome中呈現的結果, 慘不忍賭!



從這些結果看起來, 似乎Chrome對Untagged image確實是把它當成sRGB色域呈現(目視看起來是純RGB), 但對有sRGB tagged的影像呈現反而不正確(做過頭了?)

這個問題目前無解, 我想除非你在影像上傳前把sRGB tag拿掉, 讓所有瀏覽器都以sRGB色域呈現, 否則在Chrome裡就是會有這個問題。只有等待Google正視這個問題, 或有善心人士提供更好的方法了!

註一:
有些網頁會提到在Chrome啟動時加上參數 "--enable-monitor-profile" 啟用Chrome的色彩管理, 但這方式是無用的。我找到的資料是在Chrome 35之後已經不支援這個參數了, 它會把它當成一個URL處理。另一個明證是, 在上述的測試中證明Chrome已經支援ICC v2, v4, 不需再透過這個參數啟動。

註二:
這問題是出現在我的Windows 7系統上, 但在其他Windows 7上看結果有是正確的。看起來問題偏向整個系統設定的問題, 但還不清楚問題出在哪裡。若有善心人士有好的建議請告知。



星期一, 3月 06, 2017

千尋盒子3 vs 小米盒子國際版

Android電視盒, 最早大家所熟知的大概就是小米盒子, 認真找一下巿面上類似產品非常多, 但好用的真的不知有幾個。
我的小米盒子使用經驗, 產品本身算穩定, 但因為許多節目限大陸區域才能看, 所以非常不方便。網路上所傳說的各種方法, 有說改DNS就可以順暢播放的, 有說用4G就沒問題的, 有說用Proxy軟體的。所有這些方式我都試過了, 個人認為唯一能解決這問題的只有用VPN連到中國大陸。
就在小米盒子用了快5年, 對它覺得有點食之無味又棄之可惜的感覺, 主要的問題在於小米盒子一開始的巿場都是在大陸地區, 許多節目內容因為大陸法規的限制, 在台灣要收看很不方便(卡、頓、不能看)。加上小米盒子並無Google服務, 許多App都無法安裝使用, 亦無法發揮Android系統本身軟體上的優勢。

因為這樣, 我都會觀注一下有沒有什麼產品可以取代小米盒子。
有一天突然看到批吸轟上的一個產品, 它寫著 千尋盒子3 完美越獄版+第四台 2016最新64位元增強版 打趴小米盒子

可以打趴小米盒子, 聽起來蠻厲害的, 可是真的沒有聽過。再來它說 "電視盒是讓您買回去看片的, 不是買回去研究的"。
這真是說到我心坎裡了! 我苦心研究了小米盒子數年, 還是無法解決許多影片台灣區觀看不順的問題(花錢掛VPN除外)。這個什麼千尋盒子的, 竟然可以買回來馬上就可以看! 如果可以, 那真是太棒了!

搜尋一下看看有沒有使用經驗分享, 卻找不到! 心想奇怪, 這麼好的東西, 怎麼都沒有人分享使用經驗? 但理智終究輸給了激情, 雖然找不到分享, 但我說服我自己, 既然店家敢這樣寫, 應該不至於差太多吧!
於是抱著撿到寶貪小便宜我不入地獄誰入地獄的豪情, 就給他訂了一個。只是當時的我並不知道, 這竟然是惡夢的開始

2016/9/3訂貨, 9/5收到東西。
收到東西後, 馬上接上去試試。結果就一直狂當, 根據我研究Android TV box的經驗, 我發現這東西根本不能用。看起來根本就是系統不穩, 開機後不定時當機, 很難撐過3分鐘順利操作。
透過批吸轟聯絡上店家普雷兒3C的客服, 客服要求我將機器先做Recovery試試。雖然心裡很清楚這不會有用, 但還是照著他的指示做了。結果當然是...不行

把這狀況回覆給客服後, 客服就要我照他們的指示, 把東西寄回去給他們處理, 說需要5到10個工作天處理。
新品就是壞的, 寄回去處理還要5到10個工作天? 於是我向普雷兒3C客服提出要退貨。
客服的回覆是:

我心裡覺得奇怪, 明明東西寄來就是壞的, 還不能退貨, 還要你們工程師檢測是否符合退貨標準?
那廣告上說的

質量問題7天無理由退貨, 是講假的嗎?
然而客服的回覆是:

客服回覆說 "要符合消保準退貨標準才能退貨處理這應該沒什麼問題吧"
其實我覺得這問題很大。但客服講得都這麼硬了, 我也不想再和他扯了。遇到這種店家, 只好自認倒楣。

真的過了大約10天, 收到普雷兒3C換了一台千尋盒子3。接上去試用, 果然可以用了, 不再當機了。可是老實說, 除了它的速度比小米盒子快一點, 然後沒有鎖Google帳號, 所以可以裝Google商店上的App之外, 我覺得並沒有比小米盒子好到哪裡去。
可是買都買了, 又不能退貨, 就將就著用吧! 安慰自己, 至少能用Google的一些功能, 像Youtube, Google相簿等等。

過程中, 在2016年11月底這個千尋盒子3又掛了一次!



向客服反應後, 再做一次Recovery的動作, 它就恢復了!
雖然可以用, 但使用起來非常不順, 尤其是要自己裝一些其它App來用時, 速度非常的慢。
最後我還是忍不住, 去買了一台小米盒子國際版。

比較一下千尋盒子3和小米盒子國際版, 幾個重點如下:

外觀質感絕對是小米盒子國際版大勝, 我在收到千尋盒子3時發現盒子上有一些小刮痕, 不過也沒特別向客服反應。後來在批吸轟上看到也有人反應類似的問題


硬體效能, 我覺得也是小米盒子國際版大勝。若你要在千尋盒子上裝一些硬體資源吃比較重的App, 像是Terrarium TV, 會lag很嚴重或是狂當。

軟體部份, 小米盒子國際版有支援完整的Google服務, 不過買來之後要自己花一些功夫研究一下要裝哪些App。但裝完App後, 用起來很順。所以小米盒子國際版很適合自己願意花一些時間裝App使用者。
至於千尋盒子3, 內建的App若要看一般影片是OK(主要就是千尋Station那個App), 至於說有很多東西可以看的那個貝殼圖示的App, 論畫質和界面根本就不能說它是一個 "產品", 倒像是學校學生寫的作業。不過如果你不計較影片畫質和影片內容,千尋盒子3的確是可以買來就看(只要你不要拿到有問題的), 不適合買來 "研究"。因為它不太適合再裝什麼App。

所以對照千尋盒子3的廣告來看, 小米盒子被打趴, 那是指第一代的小米盒子。若和小米盒子國際版來講, 它應該是被小米盒子國際版打到休克。

星期三, 3月 01, 2017

擋掉惱人的廣告-簡易版

前一篇提到如何設定DNS和路由器來擋掉惱人的廣告, 但那樣的作法只適合比較進階的使用者, 況且對一般人而言要自己架DNS也是一個困難。
這裡介紹一個比較簡單的方法, 只要下載App做一些簡單的設定, 就可以擋掉一些廣告。如果還有很惱人的廣告, 那就得用前一篇介紹的方法自己找出廣告的出處, 用自己的DNS擋掉了!

原理說明

概念上和前一篇的概念是一樣的, 在這說明一下, 若沒有興趣了解的人可以直接跳到開始動手:
1. 在網路的世界裡資料傳送是認IP address的, IP address就是每台電腦的門牌號碼, 它是一串數字, 如206.190.39.42。如果要一般人上網要記這串數字實在很難記, 而且IP也可能會改來改去, 所以我們看到的都是英文的domain name, 如tw.yahoo.com。
2. DNS(Domain name server)的功能是把domain name翻譯成對應的IP address, 當你在瀏覽器裡輸入tw.yahoo.com要連到台灣雅虎時, 電腦就會先向DNS查詢這個domain name對應的IP, 得到206.190.39.42, 接下來就是和這個IP溝通。
3. 當你連上網路後, 除了取得你電腦(手機)的IP外, 也會自動設定DNS。
4. 廣告的內容是由某些特定的伺服器所提供的, 網頁要播放廣告時, 會先向這些廣告伺服器取得廣告內容, 然後在畫面上呈現出來。所以只要讓電腦查不到(或查到錯的)IP, 這些廣告就播不出來。

這就是為什麼改掉DNS就可以擋掉廣告的原理。

網路上有一些人和機構也會定期更新這些廣告伺服器的黑名單, 前一篇所介紹的就是去網上下載這份黑名單放在自己的DNS裡, 把廣告擋掉。
但人家蒐集的黑名單有可能是不完整的, 如果你還會看到某些特別惱人的廣告, 我也介紹了如何自己找出那些廣告是哪裡來的。知道是哪裡來的, 就可以加在自己的DNS裡把它擋掉。

接下來這裡介紹幾個最簡單的方式, 可以擋掉大部份的廣告。

開始動手

在手機上
1. 到Play商店下載 "DNS Changer" (iOS版也有對應的軟體, 例如這個, 但我沒iOS可試)
2. 執行DNS Changer, 設定如下圖

3. 按下 "START"。

好了! 就這麼簡單!
圖中的兩個DNS是Alternate-DNS, 它是沒有廣告的DNS, 你也可以用其它沒廣告的DNS代替。


在電腦上
1. 在控制台->網路連線中選取你使用的連線
2. 按右鍵, 選連線內容->雙擊TCP/IPv4
3. 更改設定如下:
4. 按兩次確定

這樣就可以擋掉大部份的廣告。
當然還是可能有些漏網之魚, 如果你真的忍不住, 想自己把它加入黑名單擋掉, 那就要回到我前一篇介紹的方法。


星期二, 2月 28, 2017

擋掉惱人的廣告

網路上的廣告已經變成許多人的重要收入, 但也愈來愈猖獗, 愈來愈惹人厭。
之前最讓我厭煩的就是在看網頁時, 突然一個廣告大剌剌地跳出來擋在網頁上面, 逼得你得把它按掉才能繼續看你本來要看的東西。
現在有一種更過份的, 出現在Android手機的app上, 影片式的廣告, 一播就要播三四十秒, 關都關不掉。
這些, 根本是一種流氓的行徑!

要擋掉廣告, 方法很多。
最常見的是在手機或電腦上裝一個軟體攔截廣告, 如Adblock plus。或是用這篇介紹的方式改掉手機的DNS
但這種方式有兩個缺點: 一來是每支手機都要裝, 二來, 這些軟體會影響手機的效能, 也增加耗電量。

接下來提的這個方式, 是從家裡的路由器著手, 不會影響手機效能, 也不需在手機或電腦上安裝額外的軟體, 只要裝置連上家裡的路由器即可。當然如果是用4G, 那就得靠你的電信商幫你擋(電信商通常不會這麼做), 或是靠加裝app來解決了。

只要用自己的DNS server, 將廣告伺服器的IP改掉, 就可以擋掉這些惱人的廣告。
因為家裡有一台Synology的NAS, 可以當做DNS server。如果沒有, 就得用其它機器做, 但概念基本上是一樣的。

以下的步驟來自這個網頁, 這邊說明的是對應中文界面的法做:
https://synologytweaks.wordpress.com/2015/08/23/use-synology-as-an-ad-blocker/

以下設定需登入你NAS的設定網頁操作:

  1. 在Synology NAS上安裝DNS Server.
  2. 在 “轄區管理(Zones)”, 新增一個 “Master轄區(Master zone)”
  3. 網域類型(Domain type) 選 “正向轄區(Forward Zone)”
  4. 完整網域名稱設為 “null.zone.file”
  5. 主DNS伺服器(Master DNS Server)設為你的Synology NAS的IP (如: “192.168.1.2”)
  6. 序號格式選 “日期 (YYYYMMDDNN)”
  7. 在解析服器中啟動解析服器, 設定轉寄站, 以確保當你的DNS查不到IP時, 轉由其它DNS查詢

以下設定需透過Telnet /SSH設定, 記得先啟動你NAS的Telnet或SSH服務:

  1. 下載ad-blocker.sh腳本: https://www.dropbox.com/s/xz1i7hxb9sfug36/ad-blocker.sh?dl=0
  2. 將腳本複製到NAS的這個目錄: /var/packages/DNSServer/target/script/ad-blocker.sh
  3. 賦予腳本執行權限: chmod +x /var/packages/DNSServer/target/script/ad-blocker.sh
  4. 執行角本: sh /var/packages/DNSServer/target/script/ad-blocker.sh

至此, 你NAS上的DNS已經可以攔截廣告黑名單的伺服器, 它的方法是將這些伺服器的IP直接改寫成127.0.0.1。

你可以將你的手機、電腦, 都改用這個DNS。不過, 最快的方法還是在你的路由器上直接指定使用這個DNS, 這樣你家裡的所有設備只要連上Wifi, 就是用這個DNS。

接下來, 教大家怎麼找出惱人的廣告伺服器, 將它加入黑名單中。

1. 在Android裝置上安裝Filter Proxy。你可以利用這個軟體找出你的裝置到底都連到什麼地方去了?

2. 啟動Filter Proxy後, 在Android網路設定裡將Proxy指向localhost, port: 8000

3. 開始操作你的軟體, 這時所有連線都會被Filter Proxy記錄起來

4. 從log裡找出可疑的廣告伺服器, 長按將它加入URL Filter。在URL Filter裡的伺服器都會被Filter Proxy攔截起來。

5. 你可以反覆操作, 或在google上查詢你懷疑的domain name, 確認它是不是廣告伺服器。這裡我列出幾個超討厭的黑名單:



透過這種方式, 你可以找出你想到屏蔽的廣告伺服器。
我把這份黑名單放在一個叫temp.db的文檔中。
然後, 將這份黑名單和網上所公佈的黑名單合併起來, 當成我自己的DNS的黑名單。
這個步驟, 我寫成一個腳本自動執行。


星期六, 11月 19, 2016

Thinkpad 無線滑鼠

ThinkPad的無線滑鼠目前我所用過的有兩種, 不論就外觀和質感上都很不錯, 不過價格也不便宜。

第一種是早期是ThinkPad 雷射藍芽滑鼠

這隻滑鼠我用了應該超過八年了。一隻滑鼠用了八年應該早就夠本了, 可是因為很好用, 我一直捨不得換。要說有什麼缺點, 唯一的問題就是它的微動開關, 用久了之後它會秀逗, 因為簧片抖動, 所以單點很容易變成double click。
網路上可以買到它的微動開關, 所以我就買了一個自己換, 所以前前後後用了超過八年了。
這隻滑鼠是用藍芽的, 裝兩顆3號電池, 因為這樣所以拿起來有點沈, 在桌面上移動時感覺得穩重。加上它的大小適中, 所以操作起來很順手, 定位很精準。

較新的一款是ThinkPad X1 無線觸控滑鼠

這隻新滑鼠, 看起來外觀很炫, 很時髦, 設計得也不錯。內建鋰電池, 附一條USB充電線。一邊充電還可以同時使用。



可切換使用USB無線模式或藍芽模式。原廠官網上特別聲明, Windows 7系統只支援USB模式。我實際在Windows 7系統上試用, 藍芽是可以用的, 但移動速度太慢。既使我在控制台裡將滑鼠指標移動速度調到最快, 我還是覺得太慢。若使用USB無線模式速度就正常, 不知是否因為這樣, 所以原廠不建議使用。不過弄不明白, 為什麼平平是用藍芽, 舊款的就可以速度正常, 新款的就沒辦法。
(2016/11/21 update. 換另一台Windows 7以藍芽模式連上, 滑鼠指標移動速度是ok的。)

可能是因為已經習慣了舊滑鼠, 這新款的因為很輕, 體積又小, 拿在手裡好像輕輕抓著一隻麻雀在手上, 怕把牠捏死, 又怕沒抓好。不過用了一段時間習慣後, 也覺得還蠻順手的。