Category Archives

9 Articles

开源了咸鱼捡的京付的三色墨水屏驱动

0   4103 转为繁体

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   5285 转为繁体

老文存档,有时间补全

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   6136 转为繁体

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   8578 转为繁体

English Version

补丁包括了nzinfo在coreseek中贡献的mmseg补丁,以及我提交的日语假名补丁(详见这篇博客)。详细更改见这里

打上补丁之后,可以使用mmseg来做分词器。如果是对大篇幅的文章做索引,推荐使用mmseg处理结巴分词的词库来生成一个比较靠谱的词库。

Sphinx 2.11.1:Github下载 本地下载

Sphinx 2.3.2:Github下载 本地下载

Read More

让Coreseek支持索引日语假名

10   12493 转为繁体

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的源码上编译。