Mreader for android

Mreader for android

经过这几天的折腾,我的第一个 Android app 诞生了。它是之前重写过的 Mreader 的安卓版本,因此也是一个只能我自己使用的安卓应用。它实现了几个非常简单的功能,可以获取 Mreader 订阅中的未读文章以及星标文章列表,点击列表后可以直接在应用中查看文章内容。

这款应用的开发完全是在计划之外,突然想给 Mreader 开发一个专属应用,然后就直接开始了。从脑袋中有了想法到应用雏形的完成只用了一天时间。由于之前完全没有 Android 开发经验,也没有学过 Java,整个开发过程完全是由需求驱动,不停的各种搜索学习。应用雏形是在 Eclipse 中完成的,大致了解之后又迁移到了 Android studio。

应用虽然简单,学到的东西却不少。在短短的几天时间里了解了安卓开发的环境搭建,开发流程以及安卓应用大致结构,我可以说手里又多了一把锤子了么?其实应用开发和网页开发有着非常多的共同之处,这也是能快速上手的关键原因。另外,搜索用多了就会知道中文内容的质量低到了什么程度,以后还是直接用英文搜索技术问题吧。

最后需要感谢 FFra,Mreader for android 直接使用了 Ta 设计的应用图标,非常漂亮。

莉诺达斯木桩系统

自从开始尘埃的策划之后,很用心的玩了几款文字游戏,比如 Linodas、Estiah、World of dungeons。玩得比较久,比较喜欢的要算 Linodas,他是国内个人仿制 Estiah 的成果。虽然莉诺达斯的玩家并不是很多,但是活跃度很不错,玩家间交流比较频繁。仅仅是这点就可以超过 wod 了,我能说我的 wod 帐号到现在才升到 4 级嘛,新手副本对单人非常不友好,经常半路被撸晕拖回来。

在玩莉诺达的过程中,也在思考尘埃的一些设定,比如战斗方式之类。并且花了两三天时间制作了一个莉诺达斯木桩系统,不仅可以方便的进行卡组对比,也能了解背后的计算过程。不过由于本人玩了一个来月等级也才只有15级,非常多的高级卡片拿不上,所以有些卡片属性还不能完全支持。当然,以后等级上来了,相应的功能也会添加上去。

如果你无意间看到这篇文章,并且也玩莉诺达斯,欢迎测试使用:http://linodas.sinaapp.com

重写了 Mreader

Mreader 是我自己写的一个 Feed 聚合工具,第一个版本诞生于 2013 年 5 月。当时写 Mreader 的原因是 Google reader 即将关闭,虽然那段时间出现了非常多的 Google reader 替代品,但是由于稳定性的原因没有使用它们。后来就花了几天时间自己写了一个简陋的 Web 聚合,然后一直使用到 Digg reader 的发布。

Digg reader 算是 Google reader 的最佳替代品,我也一直使用到现在。不过最近国类又开始封锁国外的各种服务,在没有出墙的情况下,Digg reader 的良好体验被大大的降低了。然后我又一次想到了已经被搁置很久的 Mreader,决定花两天时间把它重写了一遍。基本的订阅功能今天已经完成了,前端方面基本直接 Copy 了我另一个小站的样式。

现在还有「星标」功能没有完成,我认为这是 Feed 聚合最重要的功能。Google reader 受到那么多人的喜欢,很大程度是因为能通过它找到很多相关网站已经消失的文章。所以我也打算在 Mreader 上永久保存我认为值得收藏的一些博客文章。这需要考虑到图片防盗链的问题,我准备只把「星标」文章的图片抓取到本地进行保存,方便以后查看。

谁动了我的 php.vim

最近发生了一个非常诡异的事情,我的 vim 语法高亮竟然自动变了!在前一篇博客中我提到过:从我使用 vim 编辑器以来,color scheme 一直都是 lucius。它之前的模样可以在这篇介绍中看到。

从图片中可以看到 php 注释要比 php 普通代码的颜色要暗很多,不会吸引到视觉焦点,这也是我选择 color scheme 最重要的标准之一。但是最近它竟然自己把颜色给换了,难道注释也变得不甘寂寞了么?

这张图片可以看到,注释中部分文字改变了高亮颜色!奇怪的是最近我并没有任何更新 vim 的操作,我也不知道为什么变成了这样。在更换了多个 color scheme 之后发现,这个问题影响到了所有的 color scheme,也就是说问题与 color scheme 自身没有关系。而是 vim highlight groups 中混入了奇怪的东西。

hi Comment          guifg=#808080           gui=none
hi Comment          ctermfg=243             cterm=none

这几行代码是 lucius 配色中关于注释的颜色设置,现在我需要找到混在 Comment group 中的其他 group。这时可以祭出 SyntaxAttr.vim 这件大杀器,它的功能很简单,就是可以获取鼠标所在文字的 highlight group 信息。插件安装成功之后可以使用以下命令来获取 highlight group 信息:

:call SyntaxAttr()

利用这个插件我找到了注释中高亮部分的 highlight group:

group: phpDocTags->PreProc guifg=#efefaf(#efefaf)
group: phpDocCustomTags->Type guifg=#93e690(#93e690)

很显然,在 lucius scheme 之中并没有定义与这两个 group 相关的设置,关于这两个 group 的定义可以在 vim 的 syntax/php.vim 中找到:

syntax match  phpDocCustomTags  "@[a-zA-Z]*\(\s\+\|\n\|\r\)" containedin=phpComment
syntax region phpDocTags  start="{@\(example...\|tutorial\)" end="}" containedin=phpComment
syntax match  phpDocTags  "@\(abstract\....\|throws\)\(\s\+\)\?" containedin=phpComment

最后为了让这两个不安分的 highlight group 低调一点,我直接在 lucius scheme 中添加了如下两行设置:

hi phpDocTags       guifg=#808080                                   gui=none
hi phpDocCustomTags guifg=#808080                                   gui=none

然后整个 vim 又恢复到之前的宁静了。

vim-css-color 严重降低 vim 启动速度

因为一直使用 vim-gtk 的缘故,我其实很少使用 vim 进行编程,color scheme 更是一直使用 lucius。不过最近有些工作必须要在终端下完成,为了改善在 vim 中编程的体验,我还是决定升级下终端版本,并专门把 vim 的配色更换为 Tomorrow-Night

我使用的终端是 rxvt-unicode,默认为88色,而 Tomorrow-Night 的 256 色要比 88 色看起来舒服很多,所以我直接把 rxvt-unicode 换成了 rxvt-unicode-256color。没想到在终端更换完毕之后出现了一个问题:用 vim 打开文件的速度变得非常慢,最少需要4-5秒左右。

使用如下命令来查看 vim 的启动过程耗费的时间:

vim --startuptime timefile test.php

这个命令会打开 test.php 文件并在当前目录生成一个名为 timefile 的启动日志文件。然后我在日志文件中找到了拖慢 vim 启动速度的真凶:

191.477  004.767  004.767: sourcing /usr/share/vim/vim74/syntax/vb.vim
4279.165  4087.443  4087.443: sourcing /home/chou/.vim/bundle/css_color.vim/syntax/css.vim

从日志中可以看到,大部分时间都被用于加载这个名为 css_color.vim 的插件。话说这个插件比较好玩,特别是对于经常接触前端的朋友,它可以自动修改文件中表示各种颜色格式文字(比如 #ffffff)的背景,然后让人可以直观的看到这些数字组成的颜色。我当即在 .vimrc 配置中去掉了这个插件,然后 vim 的启动速度恢复正常。

随手 google 了一下,发现非常多的人在 github issue 上提出了这个问题,但是作者未作任何回复。大致是由于插件的 rgb2xterm 函数效率过低。不过有好心的网友自己对这个问题进行了更新修复,更新后的插件可以在这里找到:https://github.com/ap/vim-css-color

之前在 88 色终端下并未发现这个问题是由于插件在开头添加了这样一行环境检测代码:

if !( has('gui_running') || &t_Co==256 ) | finish | endif

PS:我顺手安装测试了一下网友修正过的插件,启动速度很快,推荐使用。