经过大半天的努力,终于使 MINIGUI 1.6 在 SONY PSP 的编译工具链下编译通过。由于 PSP 的 C 库中没有对 semaphore 的支持,暂时依赖 SDL for PSP 库中的线程 API了,有空再手动封装一个 semaphore for PSP来。接下来就是实现 IAL(输入抽象层) 和 GAL(显示抽象层),了解 MiniGUI 的朋友可能知道这两个模块,只有这两个模块都实现了,才算是将 MiniGUI 完整移植到目标平台上了,否则是无法处理输入和绘制的。
十二
MiniGUI for PSP
(有些可能和远程登陆工具冲突):
Alt + ? – 显示当前可用的命令补全列表(类似于 TAB 键)
Alt + * – 插入所有可用的补全
Alt + / – 尝试实例文件名
Alt + . – 将最后一个参数设置成上一条命令
Alt + b – 光标移动到后一个单词
Alt + c – 将光标所在字符及其后连续的字母视为一个单词,并将使单词的首字母大写
Alt + d – 删除一个单词
Alt + f – 移动到前一个单词
Alt + l – 使整个单词小写
Alt + n – 非增量地向前查找历史记录
Alt + p – 非增量地向后查找历史记录
Alt + r – 重新调用命令
Alt + t – 调换单词顺序
Alt [...]
Ctrl + a – 跳到输入的命令开头处
Ctrl + b – 光标移到后一个字符上
Ctrl + c – 中断命令执行
Ctrl + d – 删除光标下的字符
Ctrl + e – 跳到输入命令的行尾
Ctrl + f – 光标移到前一个字符
Ctrl + k – 删除光标处至行尾的所有内容
Ctrl + l – 清屏,类似 clear 命令
Ctrl + r – 查找历史命令
Ctrl + u – 删除光标处至命令行首的所有内容,密码输入错误的时候特别有用
Ctrl + xx – 反复使用可在命令行首及当前位置来回切换光标位置
Ctrl + x@ – 显示可用的主机名补全
Ctrl + z – 挂起(停止)正在执行的命令,再使用 [...]
十二
骆驼拼写法(CamelCase)
在英语中,依靠单词的大小写拼写复合词的做法,叫做“骆驼拼写法”(CamelCase)。比如,backColor这个复合词,color的第一个字母采用大写。
这种拼写法在正规的英语中是不允许的,但是在编程语言和商业活动中却大量使用。比如,sony公司的畅销游戏机PlayStation,play和station两个词的词首字母都是大写的。
它之所以被叫做“骆驼拼写法”,是因为大小写的区分使得复合词呈现“块状”(bump),看上去就像骆驼的驼峰(hump)。
“骆驼拼写法”又分为两种。第一个词的首字母小写,后面每个词的首字母大写,叫做“小骆驼拼写法”(lowerCamelCase);第一个词的首字母,以及后面每个词的首字母都大写,叫做“大骆驼拼写法”(UpperCamelCase),又称“帕斯卡拼写法”(PascalCase)。
在历史上,“骆驼拼写法”早就存在。苏格兰人的姓名中的Mac前缀就是一例,比如著名歌手Paul MacCartney的名字中,M和C都是大写的,如果将C小写就是错误的。另一个例子是,著名化学品公司杜邦公司的名字DuPont。
但是,这种拼写法真正流行,还是在80年代以后,那时正是计算机语言开始兴起的时候。许多著名的计算机语言依靠单词不同的大小写来区分变量。
十二
隐匿的 BOM
最近在学习 C++ 的模板元技术,Loki 库无疑是最好的参考资料之一,至于 Loki 的介绍在这里就不多敷述了,直接说我遇到的问题:
从下面地址可以获得最新的代码:
https://loki-lib.svn.sourceforge.net/svnroot/loki-lib/trunk
把代码检出到本地,执行 make 后提示错误:
../../include/loki/StrongPtr.h:1: error: stray ‘\357’ in program
../../include/loki/StrongPtr.h:1: error: stray ‘\273’ in program
../../include/loki/StrongPtr.h:1: error: stray ‘\277’ in program
根据错误提示,应该是文件里存在非 ASCII 码的字符,用 file 命令查看了一下 StrongPtr.h 的类型,发现是 Unicode text, UTF-8,而别的源文件则是 ASCII C++ program text,看来是 Loki 的某个维护者不小心把源文件存成 UTF-8 编码的文件并在里面引入了非 ASCII 字符(UTF-8 编码是一种兼容 ASCII 编码的变长编码方案)。上述的编译错误中的字符是以 8 进制表示的,将其转换成 16 进制后发现是”EF BB BF”,看着很眼熟——好像是 BOM(byte order [...]
十二
Chrome 开发版下载地址备忘
把 Windows Google Chrome 开发版的下载地址写在这里,省得去搜,喜欢稳定版的朋友请慎重:
http://www.google.com/chrome/eula.html?extra=devchannel
十二
Google Wave 使用技巧
这两周在试用 Google wave,感觉用于协作沟通还是很方便的,比 QQ 群之类的个人即时沟通系统要方便许多,我手上还有几十个邀请名额,有需要的朋友可以在评论里留下 Gmail。这里再帖上一些 Wave 的使用技巧:
上/下 箭头键 ── 用于在导航栏中切换信息,在单个wave中的各条message中移动
Tab/Shift-tab ── 与上/下 箭头功能相同(编辑模式除外)
Home/End ── 移动到第一条/最后一条信息
空格键 ── 转到下一条未读信息(不一定非要在同一个Wave中,可穿越)
左/右 箭头键 ── 切换于导航面板和Wave面板
Ctrl+空格键 ── 将所有信息标记为已读(必须切换到Wave面板中)
回车键 ── 回复所有信息:回复的新信息会出现在所选信息的下面
Shift+回车键 ── 回复最后一个对话框,新的信息和所回复信息在同一层级上,并且在最下端
高亮选中文本+回车键 ── 嵌套回复:回复的新信息会嵌套在当前信息内部
Ctrl+E ── 编辑信息
Ctrl+回车键 ── (在编辑时) 在加字号上插入嵌套的回复
按住shift,可以选择多个wave进行操作
ctrl+l,插入超链接
十二
chrome 开始支持插件
Chrome 终于开始正式支持插件机制了,短短几天就有五百多个插件添加进来了,MS大部分都是从 FireFox 那边移植过来的。尝试了几个插件,向大家推荐 Vimlike,这是个将 Vim 快捷键绑定到 Chrome 的插件,让 Vimer 可以在 Chrome 下使用 hjkl 等键,用法与 Firefox 下的 Vimperator 插件类似,但比之更贴心。