显示标签为“开源武林”的博文。显示所有博文
显示标签为“开源武林”的博文。显示所有博文

2009年4月23日

What is the User Convinence of OS?

操作系统之用户易用性

标题太大, 容易被人扣下 zhuangbility 和标题党的帽子. 所以, 首先指出, 本文是有感而发, 随笔牢骚一篇. 主要是拿两大主流桌面操作系统 WindowsLinux 来说事儿. 我姑妄言之, 您姑妄看之, 有不同意见尽可留言就ok了.

案例1
关于字体的安装, 准确的说是「徐静蕾字体」的安装. 一开始是在 Ubuntu linux 系统下, 使用如下的命令进行安装:
jtuki~$ cp ./xjlFont.fon ~/.fonts/
jtuki~$ sudo fc-cache -fv
安装完成后, 在字体列表中找到 FZJingLeiS-R-GB 就可以使用了. 那么对于 Windows XP SP3 系统呢? 直接打开「控制面板」, 选择「经典视图」, 打开「字体」文件夹, 将 xjlFont.fon 拷贝进入, 就可以看到系统弹出的提示, 「字体安装完成」.
哪种更方便? 也就是所谓的「用户易用性」更高? 在得到最终结果前, 还是先分析一下.
为何要安装字体? 为了享受美观的字体带来的视觉舒适感.
是什么人想要安装这个字体? 也就是用户群体是哪些? 我可以很不负责任的说, 什么人都有. -_- 但是, 主要还是那些想要尝鲜的互联网重度无聊人士, 抑或是美工人员, 抑或是对视觉体验要求很高的完美主义者. 尽管用户群体覆盖面很广, 但是其共同点是一个, 就是希望最短的时间配置好这款新字体, 然后开始体验之. 这几乎是毋庸置疑的事情.
如果上面这一点达成了共识, 那么很明显, 完成这件事情的时间长短, 姑且可以称作时间成本, 就成了判断「用户易用性」高低的唯一标准, 而不论你究竟是用鼠标还是用键盘用大脑还是用臀部. 就好比「实践是检验真理的不二标准」一样.
时间成本如何进行确定性的计算? 我可以再次不负责任的说, 没有确定性计算的法则, 只有类似「薛定谔的猫」一样的概率模型可供参考. 一个熟悉字体安装的 Linux 用户, 不会对上述的 fc-cache 过程产生任何繁琐的感觉. 相反, 一个 Linux 新手可能就会直接抱怨, 「天, 这是多么复杂的系统. 安装一个字体都这么繁琐」. 同样, 一个不熟悉 Windows 系统的家伙, 可能找到字体所在的文件夹都需要花上很长的时间. 换句话说, 时间成本是因人而异的东西, 唯一能够做的, 就是依靠统计分析和扯淡一般的「感性归纳」, 也就是不完全归纳. 我敢打赌, 按照我这样的逻辑推演计算下去, 最终的结果一定是, Windows 太人性化了, 用户易用性非常好; Linux 太不人性化了, 简直称不上一款实用的「桌面操作系统」.

案例2
关于播放器, 准确的说, 是影音播放器.
Windows 系统上的影音播放器太多了, 什么千千静听, 酷狗本地音乐播放器, 超级解霸, 暴风影音, 影音风暴, xxplayer, yyplayer, 一大堆, 可谓是数不胜数. 而 Linux 呢? 乍一看, 真是太可怜了. 一般的 linux 标配系统, 一概不支持mp3音频格式, 你好不容易安装完了系统, 想要放一首美妙动听的歌曲来舒缓一下你紧张的神经, 结果却收到一条类似这样的系统提示, Invalid codec. Do you want to download the encoder right now? 选项自然是两个, -yes -no. 你点击 -yes, 结果收到类似这样的提示, We are so sorry to tell you that this codec format still can not be recognized. 你立刻就绝望崩溃了, 恨不得泪奔到大街上去抱着电线杆大喊「这老中医真是太有疗效了」.
先跑个题. 实际上, 这个问题反映的一个侧面, 就是很多人在遇到问题后, 并不是寻求解决问题的办法, 而是直接放弃掉, 或者是跑到论坛上去抱怨. 具体到这个问题, 如果稍加搜索, 就能够发现, mp3本身就不是一个版权开放的音频编码, 所以一般的 Linux 系统并不包含默认的对mp3的解码. 这种「默认不包含」的方式, 一下子就将很多小白击溃了. 殊不知 mplayer 已经足以应付几乎所有的影音格式, 安装之就万事大吉了. 如果你习惯使用用户交互界面, 还可以附加安装 smplayer, 界面风格和暴风影音很类似, 唯一的区别, 应该也算是一个大区别了, 就是没有广告和隐藏的x插件y插件z插件xyz插件.
回归正题. 哪种用户易用性更好? 肯定90%的人都会毫不犹豫的说, 当然是 Windows 系统嘛, 哪有操作系统连播放一首歌都需要费尽周折?

案例3
大学教室里传授程序设计课程的老师.
先要很不负责任的声明, 这里并不是针对某个具体的大学, 而是针对当前国内的一票大学.
这一类老师通常会选择不同的语言作为第一门 programming language 课程的「教学语言」, 有人选择 C 语言, 有人选择 java, 甚至或许有人会选择四不像, Cpp. 估计没有谁会选择 python 或者是 scheme 吧. 不过, 总的来说, 其开场白一般是这样的 ---
请同学们打开开始菜单, 对, 就是那个番茄花园, 然后打开xx集成编程环境, 输入如下yy程序, 点击上面的那个很象zz图样的图标, 再点击那个很象aa图样的图标, 最后点击bb图标, 好了, 各位同学, 你们看到弹出的那个写着 Hello, OS_WINDOWS! 的黑框了么?
接下来的事情估计也不用我罗嗦了吧.
在这么一个环境里, 哪款操作系统用户易用性更高? 当然还是 Windows.
---------------------------------
这三个案例都堪称典型.

第一个, 我一开始写的很严肃, 后来发现压根没法严肃, 所以放弃了严肃的念头. 这个案例真正是关于用户易用性的问题. 所谓易用性, 在我看来, 就是, 能够不让用户做的, 就尽量由系统自动完成. 试着想一想, 为何 Windows 能够直接安装字体? 技术上来讲, 可以称之为是一个 hook function, 钩子函数. 拷贝字体到默认的字体文件夹的行为, 触发了一个 hook function, 这个 hook function 又使得相应的安装字体的函数被激发, 从而安装 xjlFont.fon 这个字体文件. 那么为何 Linux 不这么做? 我想来想去, 貌似就想到了一条理由 --- 由于 Linux 系统的设计者们压根就没考虑过. -_-
尽管没有所谓的「默认字体文件夹」, 也就是说 /usr/share/fonts/truetype 可以作为字体文件夹, ~/.fonts 也可以, 甚至 /etc/xyz/abc 这种看上去和字体毫无关系的文件夹也可以. 但是这并不妨碍字体的简易安装. 所以在这一点上, Windows 确实考虑更加周到.
第二个案例呢? 没办法, 版权原因. 当然如果你运行的是红旗, 那么一开始就可以播放mp3, 毕竟这是一个在盗版 Windows 大行其道的国度里产生的 Linux 发行版, 版权问题自然不放在眼里 囧.
第三个案例呢? 大学里的大环境所致. 环顾四周, 有谁整天正儿八经的用 Linux 来学习? 连实验室里都是盗版, 教授还成天鼓捣注册机和QQ麻将呢.
---------------------------------
唉, 此文写的有点像是发牢骚了.

之所以写这么一篇文章, 主要是因为昨天查询「徐静蕾字体」的截图, 想看看其在 Linux 上是否渲染的不错, 谁知道又在bbs上看到大家伙关于操作系统的争论... 其实我对这件事情的态度很简单 --- 喜欢用啥就用啥, 但是拜托您别对着啥东西说三道四打口水战.

正所谓没有调查就没有发言权. 口水战往往要么是混战, 要么是一方清醒一方糊涂, 很难见到两方都真正清醒能够良好交流的. 诸如下面的言论, 您今后都得悠着点说 ---
#1 使用 linux 的人, 就是为了装逼! 因为只要 linux 能干啥, windows 就能干啥!
#2 linux 太烂了, 这点功能都完成不了.
#3 vim 简直就是装逼的工具, 老子就要使用集成开发环境!
#4 windows 简直就是垃圾, linux 才是王道.

@1: Ture. 对于家用PC而言, 可以说差不多都是运行在 IA32 架构上. 至少你可以抛开OS层面从asm角度出发, 完成最后的功能. 所以, 这句话是正确的. 但是, 请在讲这句话前, 思考一下做事情的效率问题.
不妨试着想一想这个情景(当然, 这只是随手举一个例子) --- 从100k个1M的文本文档中查找包含有foo-bar和foo-hello-bar以及foo-_-bar的文档, 然后将所有这些文档中的这些词汇统统替换成foo-jtuki-bar. 过了几天, 需求发生了变化, 需要在这100k个1M的文档中查找所有的r字母, 将其替换成a字母.

@2: 把你发牢骚的时间, 用来google一番, 或许就可以找到solution. 如果中文关键字找不到, 就使用英文关键字.

@3: 您果然是「老子」么? 那我就代表「孔子」来告诉你 --- 首先第一, vim和IDE其实并没什么太大的冲突关系, 不要将两者混为一谈. 第二, 没谁不让您用IDE, 您爱用不用, 没谁管您. 但是, 在您说vim是装逼工具时, 先好歹安装一个gvim尝试一把再说. 记住哦, 不要刚玩了一个jkhl就跑过来嚷嚷:「天啊, vim居然只有上下左右的移动功能?」实在不行, 就安装一个 firefox 的插件 vimperator 体验体验. 可以参考我写的教程, http://jtuki.blogspot.com/2009/02/vimperator.html.

@4: windows不是垃圾, 有些应用还真是只能用windows, 譬如ppstream譬如招商银行专业版譬如某些的的确确无法被替换掉的专业软件.

罗嗦了.. 就此打住吧..
简单说来 --- 操作系统的「用户易用性」往往都是体现在小细节上, 譬如重命名的细节, 字体安装的细节等等; 其他类型的操作系统的「用户易用性」问题, 在我看来都是很扯淡的事情.

- EOF -

2009年2月20日

增强 blogspot 的编辑体验_@_linux

在 blogspot 中写博客的编辑体验还是不赖的, 可以自定义css, 可以方便的切换到「Edit Html」, 可以使用各类快捷键 --- 这些, 对于咱们这种「自定义爱好者」真是一大乐事 囧.
对于 linux 用户来说, 这种编辑体验可以进一步增强.

首先声明 ---
此文中所提到的一些貌似「奇淫巧计」的 tips 其实可以无障碍的应用在其他操作系统中, 也可以应用在除了编辑博客 post 之外的其他场合. 就看各位如何举一反三啦.
其实声明 ---
本文主要是供自己备份, 所以难免有不够清晰明白的地方, 谅解啦.

Table of Contents:
> 自定义 css
> 使用 scim 的 special_table
> vim 插件和设置
> 如何输入源代码?
> 使用toc增强浏览体验

---------------------------------
自定义 css

这里将我修改的css部分备份在此, 注意使用良好编排的注释, 将自己添加的自定义css部分, 和原先的css默认部分, 区分开来.
/* begin --- added by jtuki */
pre{
# border: 1pt dashed black;
# color: #666666;
# color: black;
# padding: 1em 0;
background : #ABB3A8;
border: 1pt dashed #C0C0C0;
white-space: pre;
font-family: monospace;
font-size: 100%;
overflow: auto;
padding: 1em 1em;
}
.path {color:#652E1E; font-family:monospace;}
/* begin --- for the use of vim's plugin TOhtml*/
.Todo { color: #808080; background-color: #ffff00; }
.Identifier { color: #00ffff; }
.PreProc { color: #ff40ff; }
.Type { color: #00ff00; }
.Constant { color: #ff6060; }
.Statement { color: #ffff00; }
.lnr { color: #ffff00; }
.Comment { color: #8080ff; }
/* end --- for the use of vim's plugin TOhtml*/
/* begin --- for the keyboard shortcut */
.kbd {
font-family: monospace;
/* padding: 0px 1px 0px 1px; */
padding: 0em 0.1em 0em 0.1em;
border-width: 1px 2px 2px 1px;
border-style: outset;
border-color: #baa;
background: #faf6f6;
color: #000;
/* border-style: solid; */
/* border-color: #edd #baa #baa #eed; */
}
/* end --- for the keyboard shortcut */
/* end --- added by jtuki */

注释里就阐释的很清晰了, 这里就不赘述了.
---------------------------------
使用 scim 的 special_table

不知道经常使用 scim 的朋友是否注意到了其 special_table? 进入 /usr/share/scim/pinyin 文件夹, 使用你最喜欢的文本编辑器编辑之.

#user-defined
love = 0x2665
email = jerome.rivest.long@gmail.com
name = jtuki
kh = 「」
i = -_-
j = 囧
y = 「译者注:」
blog = http://jtuki.blogspot.com/

site = http://sites.google.com/site/jtukipedia/

# 编辑文档时候很常用
stars = ***********************
fenge = ---------------------------------
s = <img src="http://otho.douban.com/pics/st.gif" vspace="0" alt="*"/>

pre = <pre></pre>
code = <code></code>

ctrl = <span class="kbd">Ctrl</span>+
alt = <span class="kbd">Alt</span>+
shift = <span class="kbd">Shift</span>+
kbd = <span class="kbd"></span>

path = <span class="path"></span>

br = <br />
jkh = &lt;&gt;
hh = ^_^

是不是感觉添加了快捷键输入方式后, 文本输入方便了许多?
使用自定义的模板进行输入, 而非总是重新造轮子, 个人认为是一种良好的习惯. 也是避免飞蚊症的良方. 囧
---------------------------------
vim 插件和设置

vim 很强大, 各种插件也是很丰富. 不过似乎和此篇 post 没太大关联 囧. 这里之所以提到 vim 主要是做备份, 也是为了下方的「如何输入源代码」做引子.
这里只是推荐两款插件, taglistsupertab-continued.
插件下载后放置在 ~/.vim/plugin 路径下.

前者可以通过 :TlistToggle 激活, 后者可以由单击 Tab 激活.

由于 vim 比微软 Windows 默认的 notepad 强大太多太多, 所以自然需要自定义配置才好用, 这里将我的设置备份粘贴如下 ---
$ vim /usr/share/vim/vimrc
runtime! debian.vim
syntax on
" self-defined options and modes.
set number
set autoindent
set tabstop=4
let Tlist_Auto_Open = 1
let Tlist_Exit_OnlyWindow = 1
let Tlist_Use_Right_Window = 1
let html_use_css = 1
let html_number_lines = 0
colorscheme elflord

ps0: 刚才搜索一不小心碰到了这款插件, trinity.vim - Build the trinity of srcexpl, taglist, NERD_tree to be a good IDE : vim online, 似乎还不赖的样子, 今后有机会阅读超级源代码树的时候再尝试吧. 现在使用 taglist 似乎就足够了.
---------------------------------
如何输入源代码?

其实在 blogspot 中输入源代码特别简单, 尤其是利用 vim 中的 :TOhtml 命令. 上面的 vimrc 文件中, 也有相关的 let html_xxx = x 的内容. 使用挺简单的, 这里就不罗嗦了, 大家伙参考 manual 啦.
这个命令, 综合上方提到的 css 编辑中的格式定义, 就可以产生如下的效果 (随便选了一个很短的程序作为例子, 囧, 是用来检测处理器架构是大端还是小端的C代码) ---
 1 #ifndef ISBIGENDIAN_H
2 #define ISBIGENDIAN_H
3
4 typedef enum {FALSE, TRUE} BOOL;
5
6 BOOL isBigEndian(){
7 unsigned short x = 0x1234;
8 return ((* (unsigned char *) &x) == 0x12)? TRUE : FALSE;
9 }
10
11 #endif

---------------------------------
使用toc增强浏览体验

对小型的分标题, 在说明域中增加 id="xxx" 的说明, 最好也在域中增加 style="font-weight:bold;" 的格式定义, 使其更加醒目清晰.
接下来就是利用如下格式添加进入 html 文本中便可 ---
<span style="font-weight:bold; font-size:large; font-family:monospace">Table of Contents</span>:
<a href="#xxx">The title of the chapter</a>

---------------------------------

2009年2月15日

app_@_linux

持续更新, 将 linux 下可谓是杀手级别的 app 应用放在这里, 其一备忘, 其二推荐.

Table of Contents:

> 如何对 pdf 进行标注?
> 如何设置, 可以对音频视频的播放有最大限度的支持?
> 如何简单的编辑音频?
> 如何处理 chm 格式的文件?

---------------------------------
2009年2月15日

pdf 阅读 + 标注:
Wine + pdf-xchange-viewer

真不是我喜欢用 Wine, 如果 *nix 上有成熟的 pdf 标注工具, 我也不会用虚拟接口层了. 可惜事实恰好相反. Anyway, 不管白猫黑猫, 能抓住老鼠就是好猫, 何况 Wine 的确很强大.
两者的兼容性报告见这里 --- WineHQ - PDF- XChange PDF Viewer. 可以看到 pdf-xchange-viewer 的最新2.x版本同 Wine 的兼容性非常好.
注意: 如果出现兼容性不佳的状况, 请更新至 wine 官方站点上的最新版本.

--- 话外话: 关于 Wine 和 CrossOver, 以及 Cedega, 之间的区别和联系, 参考这个链接. 从中可以看出 Wine 对于 Cedega 的开发商 TransGaming 封闭源码的不爽之情 囧. 俺稍微意译一下.

In the years since Cedega was originally created from Wine, development on Wine and Cedega have continued mostly independently. TransGaming currently gives back very little code to Wine. * 后来两者几乎是彼此独立开发. Cedega 不同于 CrossOver, 对 Wine 的代码发展贡献极低.

Cedega is not "Wine with more gaming support" - because Wine has had years of development since Cedega was made, and many games actually run better under Wine than under Cedega. Currently, Wine has more advanced Direct3D support than Cedega, but Cedega still has more advanced copy protection support due to TransGaming's licensing of (closed source) code from a handful of copy protection companies.
Cedega 并不是更加适合游戏的 「Wine 衍生版本」, 有时候 Wine 对游戏的支持更好. 现在, Wine 在 Direct3D 方面比 Cedega 做的出色. 不过, Cedega 有更先进的防拷贝技术(此类技术是为了遏制正版游戏光碟的盗版传播) --- 这是因为其封闭的源代码特点, 可以使之借鉴和添加某些专业的防拷贝公司的代码.

Unlike CrossOver, most improvements to Wine don't get into Cedega due to the license differences between Cedega and Wine.
不同于 CrossOver, Wine 的很多改进并不会融合到 Cedega 当中去, 因为两者的 license 是有很大差别的.


可见公司运营策略很重要, Cedega 的包装要比 Wine 要好, 而且还有一个官方指定的游戏列表 pool, 一目了然. 所以不少人还是喜欢使用 Cedega 来模拟 Windows 平台下的大型游戏.
---------------------------------
2009年2月18日

音频 视频 播放:
mplayer-nogui mozilla-mplayer smplayer smpalyer-translations

也就是使用鼎鼎有名的 mplayer-nogui 作为系统音频视频处理的后端, 将 mozilla-mplayer 作为 firefox 处理各类流媒体资源的中间层插件, 将 smplayer 以及 smplayer-translations 作为视频播放的前端界面.

mplayer 具有异常强大的速度以及稳定性, 对音频播放而言, 最重要的命令如下 (摘自 man mplayer):
keyboard control
<- and ->
Seek backward/forward 10 seconds.
up and down
Seek forward/backward 1 minute.
pgup and pgdown
Seek forward/backward 10 minutes.
[ and ]
Decrease/increase current playback speed by 10%.
{ and }
Halve/double current playback speed.
backspace
Reset playback speed to normal.
<>
Go backward/forward in the playlist.
p / SPACE
Pause (pressing again unpauses).
q / ESC
Stop playing and quit.
+ and -
Adjust audio delay by +/- 0.1 seconds.
9 and 0
Decrease/increase volume.
( and )
Adjust audio balance in favor of left/right channel.
m
Mute sound.

至于视频播放, 直接使用 smplayer 作为前端界面就ok了.
---------------------------------
2009年2月18日

音频 编辑:
mp3splt Audacity

mp3splt 是用于分割 mp3 或者是 ogg 音频的小工具, 毋需重新编码, 直接将流媒体分割开. 毕竟流媒体的强悍之处就在于「流到哪就能播到哪」 囧.
譬如下载的 audio-book 如果太大, 可以用这个工具分割. 有终端版本和图形界面版本(基于gtk). 不过用法大同小异, 设置分割的断点就ok.

对于 audacity, 我是彻底的外行, 几乎就没怎么用过 -_-. 喜欢玩音乐抑或是喜欢DIY录音的朋友可能更加清楚. 这里就不班门弄斧了.
同时, 大家伙还可以参考 Ubuntu Studio, 专门为影音制作图像编辑的发烧友定制的开源系统.
---------------------------------
2009年2月25日

如何处理 chm 文件?:
如果你喜爱 firefox 到了无以复加的地步, 那么可以尝试这款插件 CHM Reader.
不过呢, 俺个人还是推荐 xchm. 简单, 易用, 设置字体十足方便快捷. 而且速度有保证. So, 强烈推荐之.
更加偏好 pdf 格式? 一样有办法, 参考这两个链接看看如何将 chm 转换成 pdf 吧 ---
[SOLVED] convert .chm to .pdf file 下方的回复绝对经典, 体现了大众的普遍需求.
How to convert CHM to PDF with chm2pdf in Linux 事无巨细, 详细的 tutorial.
---------------------------------

2009年2月11日

如何使用 vimperator 更好的折腾 firefox

我并不是某一款编辑器的粉丝, 所以并不是由于 vim 多么好用多么强大, 而使用 vimperator 这款 vim-operation-style 扩展插件. 事情的起因是, 我想要手不离键盘, 直接进行 keyboard navigation, 就能够访问任何页面上的任何一个链接, 而不是用鼠标点来点去.

这里权且当作是备忘记载吧 ---
#1 估计这条发在 mozillazine 上的帖子, 应该是互联网上最早提出需要在 firefox 中使用 numbered links 浏览页面的帖子了(我是不是很适合做互联网考古学家?): Request / idea: keyboard navigation via numbered links • mozillaZine Forums

#2 发布这条 post 的人 --- Bill Bellon --- 是一名 Space Science and Engineering Center 的雇员. 通过和他邮件联系, 找到了一款完全能够满足 numbered links 需求的插件 hah (现在这款插件已经不能继续使用, 但是其分支 LoL 被很好的维护着, 有兴趣的朋友可以下载), 并不需要 vimperator 这么复杂的东西. -_- 可惜在得知这插件前, 我已经决定使用 vimperator 了. 因为我发现 vimp 确实是能够提高效率 --- 较为复杂的操作能够让人精神更加集中.

---------------------------------

关于 vimperator:
#1 官方站点: Vimperator – vimperator labs

#2 在 linux.com 上一篇很好的 tutorial 文章: Linux.com :: How to control Firefox using Vim keybindings, 版本可能老了些, 但是依然很有参考价值.

#3 需要最权威的参考, 安装插件后 :help 抑或是 F1, 查看官方帮助.

#4 如何使用 javascript 隔离来消除 vimp 中恼人的 beep 声 --- How to really disable the bell in Vimperator, 因为对于我们这种已经对 firefox 的快捷键了如指掌的人来说, 如果你按下 C^t 依然会打开一个新tab但是会发出一声嘟, 你肯定不爽. 此文就是你需要的.
简单点说, 就是在 ~/.vimperatorrc 中输入如下代码:
javascript liberator.beep = function() { return false; }

#5 vimp 对很多原先的快捷键, 譬如 C^c, C^v, C^x 都做了映射修改, 很不方便. 譬如粘贴需要 C^v C^v, 第一次是进入 pass-through 模式, 第二次才是粘贴. 参考 How do I use C^c, C^v for copy and paste? 调整之.

#6 yank 文本的使用方法 --- [Vimperator] how to yank text inside webpage.

#7 如何使用 firefox 的智能地址栏 --- Bug 19189 – Option to enable AwesomeBar on "o" and "t".. 这款插件的初始创造者 Martin 给出了答案, 在 ~/.vimperatorrc 中输入如下代码就ok了:
set wildoptions=auto
:set cpt=l

#8 delicious 美味书签的用户, 需要修改 bookmark sidebar 的快捷键, 譬如我设置成了 Ctrl+Shift+O, 重启 firefox 就ok了. 如果想要直接在 vimp 中搜索 delicious, 参考 vimperator用のdeliciousのBookmarkをインクリメンタルサーチできるプラグイン書いた!ver2 - cimada-ism.

#9 自定义编辑器. 在 Insert 模式下, C^i 就能够激活之. 默认的编辑器参数是 gvim -f, 你可以将其修改为 gedit 或者是其他你得心应手的编辑器.

ps.
我发现似乎在日本 vimp 很流行, 大量页面都是日文的. 是不是日本的朋友们使用 linux 和 vim 的有不少呢?
ps1.
vimperator 和 google 的产品兼容性貌似很差.. -_-
这里有众多的 vimp 插件, Vimperator Plugins in CodeRepos, 又是日语的.


- EOF -

2009年2月10日

情人节 *nix 1234567890

真是一个令人兴奋的消息.
今年情人节, 也就是北京时间上午 07:31:30, *nix 系统的时间戳会成为 1234567890.
可惜是单身, 又没有表白对象. 不然今年的情人节一定是咱们这类喜爱 *nix 滴同学滴「黄道吉日」.
关于unix时间戳的概念, 参考 wikipedia. 简单点说就是 *nix 系统使用了一个数值, 而非 human readable format, 来保存当前系统的时间. 这个数值我们姑且叫做 time stamp 时间戳.

豆瓣活动页面在此.
用浏览器体验 javascript 倒计时效果更佳. 这个站点将任意时间戳转换成可读时间.
抑或是使用unix中最古老的C语言, 写就之 ---
#include <stdio.h>
#include <time.h>
#include <stdlib.h>

int main()
{
time_t unique_tm_stamp = 1234567890;

printf("前无古人后无来者的"
"unix时间戳\n"

"***********************\n"
"1234567890\n"
"***********************\n"
"就将在这个时刻诞生\n"
"北京时间 %s",\
asctime(localtime(&unique_tm_stamp)));

exit(EXIT_SUCCESS);
}

ps.
貌似显得有些无聊, 又没有 GF, 浪费这个时间写blog作甚... 囧

2009年2月9日

微软精巧型键盘 keycode 映射修改

不知道为何, 刚才将万恶的 ati 显卡的 fglrx 驱动升级了, 结果俺「微软精巧型」键盘的映射居然全乱了. -_-
参考此文 Multimediakeys with .Xmodmap HOWTO 修改, 讲得应该是很清晰了.
这里将微软精巧型键盘的 Xmodmap 文件贴出来, 如果你恰好也是这款键盘, 恰好也碰到了映射错误的问题, 应该可以直接使用之, 毕竟相同键盘的 keycode 值都是内嵌一致的.

这里只有小箭头, 删除插入, 起始结束, 上页下页, Super_L Win 标志, 右 Ctrl, 小键盘回车键(小键盘 keypad 需要两个定义, 一个是按下数字锁定前的映射值, 一个是按下数字锁定后的映射值, 这里统一都是映射成 KP_Enter).
其他键值没有添加, 因为俺这里都能够正常识别. 囧

关于如何配置修改, 激活, 自启动激活, 直接参考上面的链接就ok, 这里就不再赘述了.
需要更多信息, 输入以下命令参考 manual 手册 man xmodmap.
查看标准键值的名称, 譬如 Up Down 之类的, 参考 /usr/include/X11/keysymdef.h 头文件中的核心键盘值部分和keypad小键盘部分.

$ vim ~/.Xmodmap
---------------------------------

keycode 113 = Left
keycode 114 = Right
keycode 111 = Up
keycode 116 = Down

keycode 112 = Prior
keycode 117 = Next
keycode 110 = Home
keycode 115 = End
keycode 118 = Insert
keycode 119 = Delete

keycode 104 = KP_Enter KP_Enter
keycode 105 = Control_R
keycode 133 = Super_L

2009年1月21日

gedit nautilus 咔呲咔呲的硬盘

每次大规模升级 Ubuntu 都不会让人很舒坦, 这次从 hardy 升级到 intrepid (俺承认这很火星, 人家 9.04 都已经出来了, 我才开始整 8.10 -_-), 结果也是一样.

不过, 差不多每次都可以顺利通过 dpkg-reconfigure 避免繁琐的兼容性配置.
只是这次升级后, 那个最喜欢为难 ati 显卡的 xserver-xorg 抽风了, 居然 dpkg-reconfigure 没法直接配置屏幕分辨率 (个人觉得这个修改做的非常不好), 只能配置一把 keyboard 和 mouse. 而且 X 完全没法打开, 出现的错误一坨一坨的. 最终还是纠结在黑白屏幕, 没有开启 framebuffer 的低分辨率 tty 中. -_-

情形窘迫啊. 幸而我们不仅仅可以升级, 还可以降级, 同样幸而 tty 中可以使用 lynx 文字浏览器 google 查找解决办法, 而且 aptitude 在 tty 下, 简直就和 synaptic 在 X 下一样方便. 在尝试还原 xorg.conf 文件无果后, 在强制删除了若干无关驱动, 以至于键盘鼠标变得没法识别后, 还是选择了最原始的降级. -_-

顺利降级 xserver-xorg 到老版本, 就一切 OK 了.

这个事例告诉我们, 对于 ati 的显卡, 能不升级 xserver-xorg 就尽量别升, 除非你对于 X 的配置特别熟悉, 或者你爱坐过山车, 升升降降, 降降升升.
---------------

升级后的惊喜 --- (我不是直接升级的, 只是修改了 source 之后, 挑选相应的程序包升级, 这估计也是每次升级完毕后总有或多或少的依赖问题的原因)

> nautilus 可以 tab 浏览了.
很久前就知道了 nautilus 的这个改进, 只是现在才升级尝试. 觉着貌似比较鸡肋, 快捷键远没有浏览器的 tab 那样方便.

> nautilus 原来是支持 scripts 和 extension 的.
其实这个不是升级之后才有的功能 囧.
是在 help 文档中查找 tab 的说明时意外发现的, 真是相见恨晚. 最喜欢的就是 nautilus-open-terminalnautilus-gksu.
sudo apt-get install nautilus-open-terminal nautilus-gksu 便可安装这两个扩展插件.

> gedit 的速度问题终于得到彻底改善了.
这是最大的惊喜.
例如 linux 内核的 tags 文本文件, 大约是 100M 的样子. 用 vim 打开几乎是瞬间, 而如果用以往的 gedit 版本打开, 那么往往是以在 terminal 中输入 pkill gedit 终结.
这次, gedit 一向被人诟病的速度问题终于被 kill 掉了. :)

资源占用情况还不错, 用 htop 查看进程的资源占用情况如下 --- 第1列和第2列分别是虚拟内存和物理内存占用, 在 gedit 打开 tag 文件之前已经关闭了全部的 gedit 插件.



从第一行跳转到最后一行速度还不赖, 只是需要的缓冲时间比 vim 要长, 但是过了缓冲时间后就相当迅速了.
下面是最后5行的截图.



> 硬盘终于不会咔呲咔呲了.
每当系统变得空闲, 读盘不太频繁时, 俺这硬盘就会咔呲咔呲的叫唤, 让人非常不爽. 不管是 Windows XP SP2/3 还是 Ubuntu, 都是一样.
这次升级了内核到 2.6.27-9-generic, 居然貌似没有这个情况了, 也是另外一个超级惊喜了.

--------------------------------
update 2009年1月23日

由于 gedit 的速度瓶颈得到突破, 这里就推荐若干 gedit 的插件, 也算是做一个记录.

> 对于官方直接附带于 gedit 中的插件, 推荐如下, 插件名称后方分别是推荐星级和简介 ----

Document Statistics
*****
统计文档的字符数量和文字数量.

Snippets
***
用来添加常用的代码段, 非常强大的小工具. 如果你有整理自己的代码模板的习惯, snippets 绝对是你不可错过的选择.

Spell Checker
*****
拼写检查.

External Tools
****
使用自定义快捷键, 来执行自定义外部脚本. 这是将 gedit 推向一个综合 ide 平台的重量级工具.

> 第三方开发插件有很多, 满足各种各样不同的需要.
但是插件的质量也是鱼龙混杂, 特别是对于完成相同功能的插件, 往往要对比好几次, 才能找出其中更优秀的那个. 这里稍微推荐两款 ----

Word Completion
*****
对于当前 gedit 进程下的所有文档中的所有 word 都进行索引, 在你输入时即时显示候选词汇. 对 gedit 运行速度的影响几乎没有. 用 python 开发完成. 强烈推荐.

Symbol Browser
*****
如果你使用 vim, 那么你肯定会使用 ctags 和 taglist , gedit 也可以实现根据 tag 索引来浏览代码, 而你所需要的就是安装这款插件.
如果你是非 Ubuntu 用户, 可能不得不自己编译, 那么需要参考这篇文章将代码和 gedit 原生代码混合在一起编译才行 (如果没法打开文章链接, 点击这里翻墙访问之).
如果你是 Ubuntu 用户, 那么就直接下载相应的二进制插件, 放到 ~/.gnome2/gedit/ 下, tar -xzf gedit-symbol-browser-plugin*.tar.gz 解压缩就可以了.

Enjoy yourself with the brand new gedit. :)

- EOF -
Creative Commons License 转载请指明出处. 谢谢合作.
/***********************
author: jtuki
http://jtuki.blogspot.com/
***********************/