Make things that someone will use it

Well, this is only a little post about my personal feeling after join Fcitx. Following is for anyone who have interest in bringing up a open source project.

When a project starts, there might not be no user at all, the most easy way to make the project live is to make yourself as the first user. There might be some argument, about the usability or quality. In my opinion, there is not much to worry about. Your personal requirements won’t be to different to common people, or at least there will be a group of people have the same requirements as you. There’re some people with WERID (You know…. WERID) interest can find companion, there is no reason that you can’t. For fcitx, it’s the only input method that I use on Linux for a long time. If you found any bug, any small bug will touch your sore point. And this will become a great motivation to make it better. And this can be even applied to development, use your API first, if no one use it, don’t develop it.

Then you might want to spread your work, this might need come with some luck. For Fcitx, it already have some old users, since it was started nearly 10 years ago. For that time, Yuking first post his work on some forum, and there will be some one might use it. For now, internet makes things more easy. I use Twitter and Google search the most recent comment about Fcitx daily. Some might find difficulty to use it, then I will try to answer their questions. Question might be silly from my point of view, but there is already a high wall for Linux input method (Complex environment variable, and so on), I really need to break this wall. What I really expect from them is this, they might blog down their solution, and help me spread the correct answer, and after I answer the question, I might ask them to try some new feature, for example, if they complain about pinyin accuracy, I would recommend them to give sunpinyin or cloudpinyin a try. (Well, do you just think of Tencent? 😛 ) This is what I call SEO by hand. Google will also help me, if things appear more on the internet.

After some time, you might find some user can give out some opinion. For instance, I don’t really use fcitx-table, but I have one MVU (Most Valuable User :P) complains about it again and again. (Well, not really complain. You know I’m talking about you, lilydjwg.)

Just as Linus said, “Even if you wrote 100% of the code, and even if you are the best programmer in the world and will never need any help with the project at all, the thing that really matters is the users of the code. The code itself is unimportant; the project is only as useful as people actually find it. “

Simply accept the fact that it’s not easy for any one to join your project, just make the life of your project longer and longer (Well, for years), and something may happen magically.

P. S.

Thanks fcitx-keyboard for spell checking. Blogilo doesn’t have built-in spell checker support.

=-=-=-=-=
Powered by Blogilo

Posted in fcitx development | Tagged | 2 Comments

Fcitx Portable

邮件列表上有人想要,于是修改了一下,现在可以提供类似解压了就可以直接运行的方式。

适用场合:非管理员,而且编译依赖不能满足。

http://uploads.csslayer.info/uploads/fcitx_portable.tar.bz2

解压后在fcitx_portable目录下执行 fcitx 那个脚本即可。里面砍掉了不少模块,比如dbus相关的一些。压缩包是64位的。稍微折腾了一下让classic-ui也可以用了。里面还留下了 测试时的light-ui ,可以用 ./fcitx -u fcitx-light-ui 来启用。理论上也可以容易的包含cloudpinyin进去,不过我偷懒了。

想要自己制作一个的话,通过 make install DESTDIR=xxx 安装到任意目录,然后参考其中的fcitx那个脚本修改32位对应的内容。然后通过 ldd 查看依赖的库,复制到对应的目录下面。建议的话编译时禁用 pango,或者完全不用Pango用light ui代替。

建议找你能找到的最老的系统来编译,glibc版本越老要求的内核版本越低。

不过只能用xim,可能存在的问题大家懂得。当然那三个老环境变量还是不能少。

Have fun 🙂

Posted in fcitx development | 6 Comments

精确提问的艺术

老实讲,我已经不记得我多少次说过“你什么意思”这句话了。

很多人的提问几乎没有任何信息含量。

想要在*nix世界里提问,首先你可能已经学习过了《提问的艺术》,如果你还没学习过,那请先去学习一次。这篇文章哪都有,而且有中文版。于是本文的牢骚纯粹作为那篇文章的补充。

前提:不要做白痴!

至少如果你的问题如果包含一条出错信息,那么你应该先去搜索。如果你使用Google的话,应该至少学会引号的使用,这样能使你搜索的结果是包含整句话,而不是零散的几个词。其次,搜索要去掉所有只能在你机器上重现的内容,例如路径,进程号。

另外要善用Google的按时间搜索功能,如果你发现五年前有人遇到类似的问题,那么那个问题很可能不是你的问题。要找最近出现的内容。

1、不是害羞的时候!

如果你知道什么,不要有意把你知道的内容隐瞒起来。

2、你都干了些什么?!

精确不代表冗余的内容,在了解你的问题的基础上,你要列出相关的内容。以下是一些经验之谈。一个关键的方法就是找你做了什么。例如你安装了什么软件包,修改了什么配置。

在自己知识范围内确定可能的问题。

如果输出提示和什么文件相关,可以通过包管理器去查询那个文件所属的包。

在少数情况下,问题是可能绕一个曲线才会触发的(例如我有幸曾经发现过一次glibc的bug……触发曲线是 KDE->Qt->Strigi->glibc,但这种情况少之又少。),找到你知道的直接相关的问题。

找到前后的差异是很重要的。而且也是最容易的。包管理器都会提供你安装的log记录,如果你不记得了,包管理器的log也会帮你记得。

3、举一反三!

如果你的问题和许多环境有关,那么最好确定下你的问题是否与某个环境有关。比如我经常被问到的输入法问题,如果不能启用输入法,那么究竟是哪个程序不能启用?那么有哪个程序又能启用?这些也都是重要的信息。

再比如显卡驱动,你当然可能只有一台电脑,那么开源闭源驱动至少可以换着试试看。究竟是驱动的问题还是程序的问题这是一条重要的分水岭。

4、寻找同行者!

Linux的环境是非常复杂的,而且在这个环境下,很多人对于自己环境没有问题出于一种幸灾乐祸的态度(你懂的),比如说,你在Fedora的论坛上说你的Ubuntu出问题了,很大可能会收到的回答就是,来投奔Fedora吧!事实上也不能太怪别的论坛的人,他们可能压根不知道在你那边发生了什么。

所以先问和你有相同环境的人,也是很重要的一点,比较你们二人的环境配置也是有助于找到你的问题。

其实除了第一条之外,后三条和核心思想只有一句话,那就是比较。不要指望其他人一口气指出你的问题,你和他的距离已经超过世界上最遥远的距离了。

Posted in Linux | Tagged | 6 Comments

我怎么在 KDE 下开发 Fcitx

内容没啥,就是我布置plasma的展示……

另外就是我最爱的 KDevelop。以及 Activity 也方便我终端和恢复工作。

Posted in fcitx development | Tagged , | 3 Comments

更新域名

.tk -> .info
.tk 域名不再受到startssl的支持。

Update:

今天tk无端把我csslayer.tk 吞掉了!擦,想重新注册也未能成功,所以望请诸位更新地址。

Posted in 日志 | 7 Comments