As the CPU power is getting stronger, and screen refresh speed keeps improving for E-Ink devices, more and more people start to use E-Ink devices to browse the internet. It’s doable; however the experience is still not good enough. Existing browsers are not designed for E-Ink devices. So many UI elements are designed for normal Android devices: fancy animations, dimming background when dialogs pop up, etc.

To make a browser suitable for E-Ink devices, two principles should be followed while designing UI interactions:

  • Fewer repaint counts
  • Make repaint area as small as possible

Fewer Repaint Counts

To meet this criteria, the first step…


首爾車站

這是一個收藏自己常用的韓語學習資料的地方

影片

這個 Youtube 頻道上,有循序漸進的韓文學習影片,總共分為一到四級。第一級的教學影片有用不同語言(韓、日、中、英、泰、西班牙文)進行的,方便對韓文完全沒有概念的人,用自己的母語或是自己原本就熟悉的語言學習。

從第二級開始,就全是用韓語教學,讓學習者可以開始沉浸在韓語的環境中。當然一開始無法全部聽得懂,所以它也很貼心地附上了不同語言的字幕。

每一課的內容都不會太多,一開始會先有段簡短的韓文對話,裡頭會有該集要介紹的文法和句型;講師會先針對會話中的單字和文法做解釋,然後再回到對話,請大家一起跟著唸。最後再教一些延伸的單字和用法。

目前我還在學習第三級的內容。所以之後會有一篇 medium 記錄一下第三級的影片重點。

Youtube 中的影片雖然都沒有提供連 …


可以調整畫面大小的 Custom View

在 EinkBro App 完成全文翻譯的功能後,使用上相當愉快,能夠快速地看左右對照翻譯完後的結果。但是用著用著,又覺得有那麼一點點不順手。原因是目前的實作方式是將畫面左右各切一半,左邊是原本網頁內容,右邊是翻譯後的結果。如果我是用海信 A7 手機在看網頁的話,由於手機的形狀是長形的,會造成兩邊的畫面相當窄,只能縮小字型來提高可見的文字量。有些時候會懶得一直對照著看。這時就希望視窗大小是可以調整的:想看翻譯時,可以把翻譯畫面變大;想看原文時,可以把原本網頁的部分變寬。甚至是,如果能改成上下分割的話,就更完美了!

為了達到這樣子的功能,我先是在網路上找了找,想看看是不是有現成的元件可以幫我做到這樣子的效果。但是繞了一大圈,這看似很常見的功能,卻找不到其他人有實作過類似的元件。(不然就是我關鍵 …


Due to the Work From Home policy recently, I need a way to do some exercise at home. I bought a 1/4 size table tennis table, and a practice board (red rectangle in the video) to help re-bouncing the ball back. While it works as a way to sweat a bit, it’s not showing how’s the practice performance, and how much time I spent. I would like to have a way to track all the information for each practice, as a reference for later improvement. Moreover, humans like to read numbers. …


Why is this necessary

Surfing on the internet is not only suitable for getting new knowledge, but also good for learning a new language. By browsing websites in a different language, you can learn how expressions are used, and what are concerned for the people who use that language. However, before you’ve got to a certain familiarity of the language, you may be intimidated by so many unknown words to be looked up for.

What Chrome offered & why it does not fit my needs

Google Chrome provided a solution to somewhat solve this problem: it translates the whole page into a different language on the fly. …


從開始用手機以來,中文輸入法就一直是使用 LimeHD 加上嘸蝦米的字根檔。由於用習慣了,對於它一直沒有什麼新功能也不是很在意。不過,在這兩年,使用電子紙設備的時間愈來愈多,所以開始有了想要改造它的念頭。

LimeHD 雖然在某些畫面塞了廣告,不過它有開放原始碼在 Github 上,所以只要稍具開發能力的話,就可以抓下來自己調整成自己喜歡的樣子。以下是這陣子以來,我針對 LimeHD 有做的修改。另外,我把自己在修改的版本改稱為 sweetlime,希望它是個有甜味的檸檬。

  • 把原始碼版本控制輕量化
  • 拿掉其他不必要的輸入法設定
  • 拿掉跟 Google Drive 和 Dropbox 的整合
  • 拿掉用不到的函式庫
  • 拿掉廣告
  • 長按鍵盤按鈕,叫起切換鍵盤的系統介面
  • 支援 scope storage
  • 長按空白鍵, …


寫著寫著,竟然寫到第十篇了,真是一段漫長的歲月(嚴格來說,其實也只有幾個月而已)。這次開發的功能,對我個人來說,是個 killer feature 啊!雖然還有其他的幾十個功能也是。

單純瀏覽網頁的話,其實不大需要全文翻譯的功能。但總有些時候,會需要看外文的網頁,而外文裡可能有許多單字,或是看外文的速度沒有那麼快,閱讀起來會很辛苦。這時,如果能夠跟 Chrome 一樣,提供全文翻譯的話,對於使用體驗上會好很多。如果是有學習語言需求的話,能讓翻譯的結果跟原文對照著看,會是更好的呈現方式。

在文石(Onyx)的電子書閱讀器上透過內建 Reader App 閱讀書籍時,可以開啟雙畫面,一邊是電子書的內容,另一邊是原文翻譯出來的結果。原文翻譯的功能,其實是利用了系統的 Multi-Window 功能,把畫面切成兩半,一半是 Reader App;另一半則是另一個內建的字典 App。內建的字典 App 可以用來查詢單字,句子,以及文章。Reader App 很巧妙地把這兩件事串起來,讓使用者只要點選雙開翻譯畫面,就能馬上看到翻譯的結果。

雙開翻譯畫面對我來說超有用的,而且我發現它的翻譯品質比想像中來得好,大概每一頁有八成以上九成是準確的翻譯,少部分內容才需要自己看著原文確定它真正的意思是什麼。下面附上一頁 Kilian Jornet (越野跑步大神) 的介紹書籍 Courir ou mourir 法文版內容,右邊是翻譯出來的中文效果。要不是有些句子一看就不合理,大部分的句子通順到連我自己都寫不出來。

既然 Onyx 自己內建的 Reader App 可以這麼做,不曉得第三方的 App 是不是也有可能在文石的設備上達成類似的功能呢?很早之前就有這個想法,但一直不知道怎麼實作,就這麼擱著。最近幾天終於研究出來作法了,也很順利地把它套用在 EinkBro App中。下面就要來解釋怎麼做到的。

實作細節

Multi-Window 模式是在 Android 7.0 加入的功能。隨著手機愈來愈大,和平板的普及化,Android 開始支援一次可以開啟兩個 App。但是提供的支援很陽春,只能把畫面切成兩半,一邊塞一個 App。而且啟動方式很很很難用,必須先進到最近開啟的程式列表,長按其中一個程式的 icon,才會跳出一個選單讓使用者啟動分割畫面。在大部分的 Android 設備中,Multi-Window 模式都是要使用者手動啟動的。

https://developer.android.com/guide/topics/ui/multi-window

但是,既然在 Onyx 上的 Reader App 能夠一鍵就進入分割畫面模式,說不定我也可以做到。後來,真的讓我研究出來了!其實方式很簡單,只要透過 intent 發個 action 就行了!


程式碼寫多了,總是會有技術債要還。剛開始改造 FOSS Browser 時,因為懶,而且為了求快,在把既有的 icon 改成純黑色時,都是直接用 @android:color/black 寫死在 xml 中。將各種對話框改成純黑白型式,或是加外框時,也都是直接用上面的黑色色碼。

現在,因為我也常常在一般手機中使用 EinkBro App,就很希望它能也提供黑色的介面,讓我在使用手機時不要那麼刺眼。但一想到要改一大堆 icon 的顏色和對話框的顏色,就覺得很麻煩,所以遲遲未動手。

昨天心血來潮,開始了這個大工程。下面列出我實作的步驟,以後如果有類似的需求,就可以拿這次的經驗當作參考。

設定符合 App 需求的 Theme

原本 EinkBro 使用的主題是從 Theme.AppCompat.Light.NoActionBar 延伸 …


儘管網路上已經充滿各種免費的韓國語學習資料,如果肯付些許費用的話,能夠接觸到更多系統化的學習內容,和一般免費教材所沒有的進度追蹤或成效記錄。這篇文章將會介紹幾個網路上的付費學習資料供大家參考。

masterTOPIK

masterTOPIK 在 Youtube 上有開頻道,提供每個課程的部分章節,可以先去試聽看看,看教材是不是適合自己,和授課老師是否能夠接受。

針對韓文初級中級,有利用不同語言的授課教師。不過,如果已經具備一點聽力的話,所有程度都有直接用韓文上課的系列,讓你可以一邊學韓文,一邊練聽力。有個小缺點是,用韓文授課的系列,並沒有字幕可以看。所以建議先確定自己聽得懂再決定要不要付費。

付費的方式是訂閱式的,主要有每個月 13.99 美金的標準會員和月付 19.99 美金的高級會員。高級會員比標準會員多了可以每個月做一次模擬考試。如果不是為了考試而唸書的話,應該標準會員就很夠用了。


在新的 M1 系列出來後,這一兩年有買 Mac 電腦的人不禁覺得苦惱。想要一嚐 M1 的強大性能,卻又苦於已經擁有了一台不算慢的 Mac 電腦,現在想轉賣又不見得能賣到什麼好價錢。一個折衷的方案是:買台最便宜的 M1 設備 Mac min,然後讓原本的 Mac 電腦能呼叫這台 Mac mini 幫忙執行很花 CPU 的工作,像是編譯程式!

mainframer

為了要實現這想法,首先要來介紹一下一個好用的工具:mainframer。

mainframer Github 上寫得很清楚,這個工具可以協助你在遠端上執行指令,同時把執行後的結果再同步回電腦。

Daniel Kao

Mobile App Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store