2008-09-28

工作札记 (7)

今天公司没什么人,空调机的风扇声哗哗作响。轻松了两个月后,下一阶段的战役终于拉开序幕。在一番需求,用例,构架之后终于来到了详细设计以及进度安排的细分。体会不多,然而最深刻的一点是:Any simple problem can be made unsolvable if enough meetings are held to discuss it.

因小见大,管中窥豹,我认为Intel x86系列芯片和Windows系列就其功能特性上,应该算是相当成功的。软件中的历史遗留问题其实相当棘手。这也是``Linux is evolution, not intelligent design.''的原因吧。

OK, 总体架构当然是大佬们决定的 -- 有许多不为喽喽们所知的business因素。但喽喽们现在还有时间再三斟酌、详细设计所在单元的设计。于是我很开心的在org-mode里写文档,然后在自己的机器里建了个hg仓库,并且让同事可以用浏览器访问它们。

按照计划,国庆回来后便是开始写代码的时候。与以前单兵作战不同的是,现在我负责的一个单元有了个帮手。

标签:

2008-09-27

Excerpt - 1

The problem with current software engineering is that we usually end up with a concrete software system, but don't know how we got there. Most of the design knowledge is lost, and this makes software maintenance and evolution very difficult and costly to perform. In Generative Programming, we strive to capture as much of the production knowledge in program form as possible. The production knowledge includes not only the configuration knowledge, but also measurement instrumentation, testing strategies and plans, error diagnosis, debugging support, program visualization, and so on. These various aspects are domain specific and are packaged in reusable libraries, which we refer to as active libraries [CEG+98].

Excerpt from ``Generative Programming", page 6.

标签:

2008-09-21

wmii tips

wmii最酷的地方在于它的设计理念,从Plan 9 "偷"过来的:control via filesystem interface. wmii提供了一个虚拟文件系统,它可以通过9P协议的create, read, ls, remove, rm, write来访问,从而完成对wmii的各种配置。这种进程间通信方式完全独立于语言,并且极其简单。比如:
# wmiir ls /
client/
colrules
ctl
event
keys
lbar/
rbar/
tag/
tagrules

# wmiir read /rbar/status
RX: 5.2 MB TX: 1.1 MB | 0.16 0.17 0.22 | Sun Sep 21 21:25:28 CST 2008
1. wmii的配置文件
wmii的全局配置文件在 /etc/X11/wmii-x.y/ 下,下面有两个文件 rc.wmii,还有 wmiirc。但大部分时候后者才是有效的,在系统总存在Plan 9运行时的情况下则启用前者。吾开始没主意,屁颠屁颠的修改 rc.wmii,没有任何作用,甚为郁闷。

2. 为wmii添加命令
快捷键Modkey-a使得wmii列出wmii快捷命令,默认有exec, rehash, wmiirc等等。在任何一个wmii配置文件所在目录下放置一个可执行文件,都会使得系统中多一条命令,命令名即为可执行文件的文件名。比如我在 $HOME/.wmii-3.5/ 下放置了一个名为`lock'的脚本:
#!/bin/sh
# lock the screen

xscreensaver -no-splash &
xscreensaver-command --lock
这样modkey-a中便会列出`lock', 选中它执行之,便会锁定屏幕。

3.1 键绑定 - MODKEY
和多数TWM一样,wmii默认快捷键的主键是modkey,当MODKEY=mod1时,modkey-a便是`ALT-a',这是默认设置,设成mod1时在PC上很不方便,不妨将其设为mod4,也就是窗口键。

3.2 键绑定 - 添加绑定
为wmii添加键绑定同样相当直观且方便。在 wmiirc 文件中的 "key bindings"区域(100行左右)添加一条就是了。规则为:
Key keybinding
command
比如:
key $MODKEY-u
foobar
保存以下,modkey-a执行wmiir,使得配置生效,然后modkey-u便会执行命令`foobar'。

3.3 键绑定 - 音效键
用Gnome的时候笔记本上的音效键工作的相当完美。换到wmii后则仿佛回到刀耕火种,茹毛饮血时代。开始添加了一个命令到`alsamixer',感觉还是很不方便,于是我想着怎么让音效键也工作。其实,很简单 -- 步骤如下:
a) 运行 xev 找到音效键的键码,我的系统中是这样:静音(160),降低(174),增高(176)。
b) 运行 xmodmap 添加键盘布局设置。
# cat ~/.Xmodmap; xmodmap ~/.Xmodmap
keycode 160 = XF86AudioMute
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
最后,在wmiirc下添加如下绑定:
Key XF86AudioLowerVolume
amixer -c 0 set PCM 2dB-
Key XF86AudioRaiseVolume
amixer -c 0 set PCM 2dB+
Key XF86AudioMute
amixer -c 0 set PCM toggle
4. 中文标题
默认wmii选用的字体是'fixed',这样应用程序的标题中如果含有中文则会显示为乱码,修改一下 wmiirc 就行了:
WMII_FONT='-misc-*-medium-r-normal--13-*-*-*-*-*-*-uni'
5. 标签规则
由于wmii是个TWM,这样打开任何应用程序的时候都会试图根据当前平铺模式将其铺满窗口,运行xeye则满屏是个大眼睛,不妥当。系统默认已经添加了mplayer的规则,我们可以添加xev的规则,使得事件测试窗口不铺满屏幕。在tagrules中添加一行:
/Event.*/ -> ~
6. 修改状态条
wmii的状态条有两个lbar, rbar。分别用来控制状态条的左、右面。左面是各个tag,右面则用来当前时间,系统负载:其实就是uptime和date的输出。当然我们可以很方便的加上网卡接收、发送数据的统计,稍微修改一下 wmiirc 脚本中的`status'函数即可。
# Status Bar Info
status() {
echo -n $(ifconfig eth1 | awk -F "[)(]" '/RX bytes/{print "RX:",$2}') \
$(ifconfig eth1 | awk -F "[)(]" '/TX bytes/{print "TX:",$4}') \
'|' $(uptime | sed 's/.*://; s/,//g') \
'|' $(date)
}

标签:

2008-09-19

冒个泡

这两周几乎每天开会,而这两天一直持续到晚八点。公司的英语课旷了四节,以至于不好意思直视英语老师。Q3眼睁睁的就要结束了,除了十月底公司的青岛游以及窗口的国庆,接下来的这个Q4应该相当充实。

完成了一些文档,歇了口气。翻了几页好久没碰的《古文观止》,听着Andrea Bocelli的音乐,心里在感动中找到一丝平静。

前些日子把用了很久的Gnome桌面也删掉了,转用wmii,它完全符合我对键盘快捷键支持的要求。对于一个12.1c寸小本,它也的确相当合适。此外,awesome窗口管理器也不错。

标签:

2008-09-05

Tiny Menu

装了Google Chrome后又将其卸了去,不过却让我想到是否有个firefox插件可以把菜单隐藏起来,找到一个Tiny Menu,比较喜欢。

标签:

Org-mode

下一段开发工作已经在紧锣密鼓的张罗之中,昨天大家讨论曾经的经验教训的时候谈到了如何规范并有效跟踪各种流程。GMail有个GTD插件,Outlook里有Calendar,老大们也都用Ms Project,而Bugzilla,Wiki等也似乎都可以用来完成很多工作。不过我却想到了Emacs的Org-mode

Org-mode基于纯文本,可以用来记笔记,做计划,甚至还内置了小巧的speadsheet。这里有一些教程。我的想法是,如果把它和Git/Hg等结合在一起,那实在太酷了。

标签: ,

2008-09-03

无题

前些日子又写了篇关于Scheme的笔记,稍做修改后放到了这里

在此之前和mngr聊了聊IDP,出于余热(意犹未尽),我说自己对DSL这些很感兴趣。结束后刚回座位不久,老大便丢给我一本“Generative Programming”,英文原版。“这本书一直在xx那边,我拼了老命替你抢了回来。”不过比较恐怖的一件事情就是mngr在我leader面前吼我的绰号,大声地。

装了个Google Chrome,界面比较清新,简洁。你可以在地址栏里输入以下:
about:network
about:stats
about:cache
about:histograms
about:plugins
about:dns
about:version
以上资料来源:图片

标签: