Category Archives

9 Articles

開源了鹹魚撿的京付的三色墨水屏驅動

0   5249 轉為簡體

35塊一個,長這樣

經過一番Google找到了對應的原廠屏,是Gooddisplay的GDEH042Z96,屏幕芯片是SSD1619A,這個芯片初始化序列比幻塔的新手教程還長。

整理了一下官方例程之後,發了一個PR:https://github.com/ZinggJM/GxEPD2/pull/47;有一些點需要注意:

  1. 三色屏(實際上是雙色)是兩種液晶分開刷新的,先刷黑色,再刷紅色。其中SSD1619A的紅色輸入值需要取反,否則屏幕整塊都是紅的。
  2. 這塊屏只支持全刷,全刷一次要20秒,要把GxEPD2的默認等待BUSY pin的時間調長。

效果如下圖所示,用的是我魔改的中文版天氣:https://github.com/fffonion/ESP32-e-Paper-Weather-Display

 

交叉編譯openresty,修復支持大文件 (LFS)

0   6030 轉為簡體

老文存檔,有時間補全

http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html

http://cgit.openembedded.org/meta-openembedded/tree/meta-webserver/recipes-httpd/nginx/files/nginx-cross.patch

https://stackoverflow.com/questions/4357570/use-file-offset64-vs-file-offset-bits-64

https://digital-domain.net/largefiles.html

https://stackoverflow.com/questions/35575749/how-to-define-file-offset-bits-large-files-macro-for-solaris-and-hp-aix

http://users.suse.com/~aj/linux_lfs.html

ngx_http_geoip_module開啟utf8支持

0   6523 轉為簡體

cidr.me中使用這個模塊時,返回了類似這樣的輸出:

Canada, Quebec, Montr�al

發現有人提過PATCH。於是去喵了一眼源碼,發現有一個文檔里沒有提到的隱藏參數。

可以使用

這樣來啟用utf8。默認是iso-8859-1,或者叫latin-1。

MySQL默認也是latin-1。大概因為是單字節的,所以大家都愛默認用它;可是除了肉眼可見的字符,別的控制符除了會在終端里用以外並沒有什麼卵用。

還有libzip里默認用的是CP437,是DOS版的單字節編碼。因為大概只有中文版的windows自帶的壓縮功能會生成GB18030編碼的zip文件,所以還魔改過一個中國特色的libzip

 

Sphinx 2.2.11和2.3.2的mmseg分詞補丁(基於Coreseek)

0   9005 轉為簡體

English Version

補丁包括了nzinfo在coreseek中貢獻的mmseg補丁,以及我提交的日語假名補丁(詳見這篇博客)。詳細更改見這裡

打上補丁之後,可以使用mmseg來做分詞器。如果是對大篇幅的文章做索引,推薦使用mmseg處理結巴分詞的詞庫來生成一個比較靠譜的詞庫。

Sphinx 2.11.1:Github下載 本地下載

Sphinx 2.3.2:Github下載 本地下載

Read More

讓Coreseek支持索引日語假名

10   13081 轉為簡體

coreseek是一個修改版的sphinx,用mmseg來做中文分詞。但是發現一個問題,日語搜索總是效果很差,全部是假名的關鍵詞會返回一個空結果。

開始猜想是不是詞庫沒有包含日語的關係,後來仔細想了一想,mmseg對於沒有在詞典里的詞應該是直接一元分詞的,按理說也不應該出現無法索引日語的關係。我們可以通過mmseg命令行工具來證明這一點:

證明mmseg進行了一元分詞。

那麼為什麼coreseek搜不到假名呢?我找啊找啊終於發現在coreseek使用mmseg進行分詞的過程中,對輸入字符做了一個過濾,並且有一個注釋:

可見coreseek雖然將CJK (Chinese, Japanese, Korean) 中所有漢字、全角字符和標點加入了範圍,但是卻漏掉了平假名和片假名。因此我們將第三個range改成0x3000, 0x30FF, 0x3000就可以修正這個問題。

其中:

我把修改後的版本放到了github

另外,這裡可以查詢到Unicode編碼範圍對應的字符內容;unicode.org有一個database,但是是一個列出了全部字符的大pdf,我似乎沒有找到類似的分類。

對於Ubuntu/Debian,這裡有編譯好的coreseek的deb包:i386 amd64;依賴於mmseg:i386 amd64;mmseg自帶的詞典

對於>2.2.10的版本,我在這篇博客里提供了完整的補丁,可以應用在sphinx的源碼上編譯。