Chen Yangjian's Blog

Carpe diem - Seize the day

Ibus 无法召唤问题解决

| Comments

承蒙 pluskid 与 quark 童鞋的帮助,终于搞掂了 ibus。现在就在 Arch Linux 下写这个。

我在 .xinitrc 里头添加了

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=xim

ibus-daemon -r -x -d

之前尝试过 .profile、.Xresources,应该也是都可以的,只是这还不足以解决我的问题。我的 locale 是 en_US.UTF-8。

于是偷懒把 locale 设置回 zh_CN.UTF-8,这里有个要注意的是,可能 locale 返回的结果有错误。解决办法是,在 /etc/locale.gen 里头选择你在 /etc/rc.conf 里头已经指定的 locale,再跑一下: locale-gen

然后重新启动 x,应该就行了。works for me.

Arch Linux - Day 3

| Comments

I’m still configuring the arch linux installed in my box. the laptop is fairly old with a 1.5 Ghz centrino and 256MB memory x2, which leads me choosing arch over ubuntu or any debian like distro i familiar with.

ibus is the Chinese input method i want to use. But i cannot figure out why the hell i just can’t trigger its functionality.

thx to AUR, with makepkg and pacman i have installed tint2 which functions smoothly and ibus which does not.

and as arch linux advertises, i choose light weight softwares over those `heavy’ ones. my arch uses SLiM as login manager, Feh as wallpaper setter, and gmrun as my unviersal menu.

the hal service starts cpufreqd and dhcpcd services too, so do not add the later two in the DAEMONS array.

to pause system boot, you know, if you encounter some error and wants to read the message, press Scroll key. and you may refer to dmesg for error log after system boots up.

i am wondering whether i could use this system for more than a week or not.

跟风装了 Arch Linux

| Comments

之前在 VirtualBox 里头装了一下下。后来准备在自己的老本本上直接装,把原先的 XP 丢弃。先看了硬盘安装))介绍,结果进去之后配置网络虽然成功了,ping 通了 google.com,wget 也可以用了,但是就是取不到镜像的 package list。

万般无奈,就 wget 了 iso 再手动挂载:

ln -s /cdrom/addons/core_pkgs /src/core/pkg

结果装好之后再装别的包的时候出问题了,一直提示 libreadline.so 软连接不存在,万分奇怪之下还是关机重启了,结果在自己的另一台机器上看到是因为木有装 bash

这时候系统已经启动8进去了,耐心点的话在 GRUB 打开命令行,启动进去,再人肉修复一下也许是可行的。但是我实在折腾8动,就选择去买了张刻录盘。之后重新安装,装 Xorg、python、firefox、openbox、tint2、vim、rxvt-unicode、slim、alsa 等等。

无线配置比较囧,我这边路由的设置是 WPA 验证,需要装 wpa_supplicant,按照该页搞掂之后也分配到了 IP,然而就是 ping 不通,也就暂且搁置。

AUR 里头的包装了 tint2、ibus,后者还没配置好,Ctrl-Space 召唤不出来。

Xorg 的配置先用 Xorg -configure 苟且了一下,后来去 ArchWiki 上找了同时 Sony 的配置,照搬了触摸板之类的设置,也就差不多了。当然,顺便装了 ATI 显卡,xf86-video-ati 这个。

其余的还有让风扇不要太骚,CPU 不要太 High 的 cpufreqd、acpid,把这两个丢到 rc.conf 里头去,重启,ms 搞掂。

再有就是用户管理、sudo 之类,参考新手安装指南),也就是了。

顺便装上中文字体,wqy-zenhei wqy-bitmap,包名不确定。

装的时候觉得麻烦百出,没想到到总结时,只能写这么点。

HTML5 如火如荼进行时

| Comments

随着 Firefox 版本升级到 3.5,正式支持 HTML5,坊间对该标准的讨论就没停过。其中最显著的, <video>标签, 因为对浏览器该支持哪一个视频编码而纠结不休,很是著名。

有能人志士指出,video 是浏览器的,但最终是大家的,video for everyone!(请务必摸我)

别的呢?估计就是文义标签了,HTML5推行自定义标签,例如,与其写 <div id=”head”> 不如直接 <head>。 如此,页面代码也更简洁清楚,CSS 文件里头的 selector 也更容易写。

当然,canvas 也不能不提,只是我对此尚未研究,暂且按下不表。

什么时候 IE6、7 绝迹江湖了,我就开始用……

顺便哀悼 XHTML 2

Google App Engine SDK 一二

| Comments

以下简称 GAE

我用的是 python 版本。 本地开发有个简易版服务器,模拟了真实环境,dev_appserver.py。 此外有个用来部署自己的应用的 appcfg。 具体命令参数点过去看就是了。

App Engine 提供了丰富的开发工具,跟 django template 没啥区别的 webapp template, 用起来很顺手的 data store,以及有效的 app.yaml 设置,按照官方的 tutorial hello world 一路走下来, 一个简单的应用就弄完了。正像我昨天对 jQuery plugin 评价的,有的时候更重要的是想法。

目前支持的 Python 版本是 2.5,原以为要自己弄 simplejson 了,没想到自带了 django,直接:

from django.utils import simplejson as json

也就是了。

dev_appserver.py 默认端口是8080,默认只能本地访问。想跑一个方便些的多人测试的话:

dev-appserver.py --port 80 --address 0.0.0.0 path_to_your_app

此外,还有个控制台,本地和实际环境中都有。

最后,是我最近做的一个记账的小工具:Gain or Spend

jQuery 插件

| Comments

可扩展性真是个好东西,参考着 the basics of writing a jquery plugina plugin development pattern, 很容易就能写个插件。

于是经常会有一坨选择,比如 date input 啦、比如 tab 啦,比如 drop down menu 啦,良莠不齐, 有的想要,有的有嫌弃,优缺点都不集中,最后只好选择最不赖的一个,或者 reinvent the wheel, 埋头弄自己的。而 jQuery UI 又偏大。

顺便推荐一个插件: jQuery Visualize

再推荐做得很帅的不是 jQuery 插件的 Chameleon Color Picker, demo 做得很赞,很好奇是怎么弄的。

要到何时

| Comments

好像从我开始上豆瓣开始,它就不停的在割自己,今天说,这个字不许再说了,明天说,这部电影太尴尬,还是删掉吧。

又突然有一天,它又说,你话太多了,还是不要在这里呆着了罢。

“但是……” 我想争辩,“我只想引用党章而已诶。‘中国共产党带领人民建设社会主义民主政治’ 都不行吗?”

它听我这么说,一脸惊恐地说,“您还是不要说了罢。我被割了很多刀,反而全是G点……”

于是我抬起头看,“各网”蜷缩着触角,原本通络的触手满是刀痕,有的挂个牌匾,“莫谈国是”,有个很潮,“不许调戏”。

“怎么调戏?” 我好奇。

“来,春哥教你”

推荐家琴行,杭州市天籁琴行

| Comments

在潮王路33号,老板兼镇店之宝叫李乐。在任浙工大吉他课的教师,以前有许多浙大的都跑去旁听。现在的话,不是很清楚,可能弹古典的人不太多了吧。有家同名网店,卖的马丁尼(Martinez)古典吉他一开始以为是山寨货,到店里听老板一弹,就震惊了。

任课教师李乐简介:

男,1970年生于陕西汉中,5岁起随父亲学习中国民乐和作曲,11岁考入西安音乐学院附中因故放弃;1992年毕业于南京航空航天大学,在此之前开始学习古典吉他;1992-1997年参与设计国产最大的运8系列飞机,在此期间开始教授古典吉他;1995年右手失去知觉从而停止吉他演奏,1997年入兰州大学数学系读硕士,毕业前右手逐渐恢复知觉,继续吉他教学工作并于兰州合作举办近10场古典吉他音乐会;2000年任教于浙江工业大学,编著《古典吉他入门与提高》一书,创作独奏、重奏乐曲10余首;2001年师从中央音乐学院吉他教授陈志教授学习古典吉他;2002年底创办李乐吉他教室和天籁琴行,2005年天籁琴行吉他教育中心成立。

古典为主。

我觉得,如果想学古典,或者想玩指弹,都可以去该店多陶冶陶冶,打基础,正确、有效地练琴。

Using Hash Instead of Switch in Perl

| Comments

在之前的《诡异的Perl》一文中, 我表示我被 Perl 木有 switch 震惊了。昨天写脚本的时候,老大说, 最好将生成的 SQL 按照 schema 的名字输出到对应的文件里头去,习惯性的想用 switch 或者 if else (Perl 里头跟 PHP 差不多,也有个 elseif,不过写作 elsif,这两个都很装逼吧?)。 后来脑子终于灵光了一下,改成了下面这个:

my %out;
while (<>) {
    open $out{$schema}, ">$schema.sql" if ($out{$schema} == undef);
    print { $out{$schema} } "commit;\n";
}

多省事呀…… print 的第一个参数如果不加大括号的话,不会被认作文件句柄。

最后,写个八卦,当时群众对 elsif 意见很大,纷纷走上街头,骆驼教教主 Larry Wall 同学一开口,大家都没声响了:“不喜欢?那你可以做以下两件事: 1) 发明一个语言;2) 让大家都用它。”