Poker II 机械键盘键位改造记

by fen on June 22nd, 2014

自从用了 joyqi 的 Realforce,就爱上机械键盘了。打字速度提升了,节奏感也有了,连手指都变灵活了。程序员的最好礼物就是机械键盘了,很多人在纠结买什么样的键盘,那么我就写写我的经历吧。

首先这款 Realforce 有 86 个键位,没有右侧的数字键盘,跟笔记本配合起来仍在是比较占位的,重量很重也不适合周末带回家使用,所以考虑入一个小一点的机械键盘。对比了一圈下来似乎只有 Poker II (以下简称 Poker 2) 和 Pure Pro 这两款 Mini 键盘比较合适,都是 60% 的按键设计。

主要区别

比较项目 Poker 2 Pure Pro
方向键 Fn + wasd 配合实现 独立方向键
左下角按键布局 Ctrl | Win | Alt Ctrl | Fn | Win | Alt

最后我选择了没有方向键的 Poker 2,我实在难以接受 Fn 位置的摆放位置,严重的与 Mac 不匹配。而且我是个 Vim 党,方向键对我来说并不是非要独立不可,看看 Poker 2 的键位图吧:

poker2keyboard.jpg

是不是发现能精简的按键全精简了呢,Esc 跟 ` ~ 都合并成了一个键。下单了红轴,第二天就开始使用了,写代码的时候完全无压力啊,但是做设计的时候悲剧了,方向键经常在设计中用来微调位置,而 Fn 又是在键盘的右下方,如此一来得两只手配合才能较好的移动,可是做设计时另一只手要握鼠标啊。而且,Cmd + ` 在 Mac 中是一个很重要的快捷键,用于切换同一程序的不同窗口,如此仍然得双手操作啊,我陷入了对键位布局的深深思考之中……

键位思考与改造方案

键盘的背面有 4 个拨动开关的,他们的功能分别是:

  • 开关 1:Caps 与左 Win 切换
  • 开关 2:右 Ctrl 与 ` ~ 切换
  • 开关 3:左 Win 与 Fn 切换
  • 开关 4:键盘写保护,键位编程

结合这 4 个开关,终于,我想出了一个绝佳方案:就是把 CapsLock 换成 Fn,那方向键的问题不是就完美解决了么,顺手也把 Cmd + ` 的问题给解决了,都能用单手操作了。方案最终实现的目标如下:

poker2keyboard_mod.png

改造步骤

  1. 将开关 1 和 3 都拨到 ON 的位置,效果:Caps 变成了 Fn,左 Win 变成了 Caps,右 Fn 还是 Fn
  2. 打开 Mac 的系统偏好设置,在键盘的修饰键修改中,选择 Poker II
  3. 更改修饰键,如下:

    • Caps Lock -> Option
    • Control -> Control
    • Option -> Command
    • Command -> Option
  4. 搞定,然后用拔键器把左侧的 Alt 和 Win 键帽互换个位置,这样就更接近 Mac 的标准布局了。

怎样,小伙伴们,是不是非常简单啊,连第三方软件都没用到。之前很多人推荐使用 KeyRemap4MacBookSeil (PCKeyboardHack) 进行修改,其实对我这种级别的修改用 Mac 本身的按键修饰器就足够了。还在纠结 Poker 2 没有独立方向键的朋友,不要犹豫了,Caps + wasd 别提有多方便了,Cmd + Caps + Esc 也能在程序里切换窗口了,都只要一只手搞定哦。Poker 2 红轴的手感也很不错,据说这款键盘的杀手锏其实是键位编程,我没有深入理解,等以后等级提升了再分享吧。

使用 Vagrant 搭建开发环境

by fen on February 20th, 2013

团队协作开发的时候,每个人搭建相同的开发环境是个很繁琐的问题。尤其是 Python, Ruby on Rails 这类开发。后来发现了 Vagrant 这个虚拟化环境的工具,便安装了试试。

vagrant-logo.png

Vagrant 是基于 VirtualBox 虚拟机的,通俗的讲,就是用虚拟机的环境运行本地的代码。代码可以在本地直接编辑和调试,你可以在本地浏览器里查看运行中 Web 应用。而这套虚拟机是可以直接导入到其他电脑上的使用的,这样团队其他成员省去了配置时间,更能保证开发环境和生产环境的统一。

安装步骤参见官方文档。装好后就是在终端进行配置:

# 添加官方 box 镜像
$ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
# 为当前目录指定运行镜像,这里指定的是之前添加的 lucid32 镜像
$ vagrant init lucid32
# 启动虚拟环境
$ vagrant up

当环境启动成功后,我们就可以在终端中使用vagrant ssh命令以 ssh 方式登录虚拟机,剩下的操作方法和 linux 没什么两样了,在里面进行开发环境的配置。

官方镜像是 Ubuntu 的系统,我给他分配了 256MB 的内存,跑 Python 和 MongoDB 还是很流畅的。如果你想安装 Debian, CentOS 等其他系统,可以到 http://www.vagrantbox.es 下载社区打包镜像。

更多详情请访问:SegmentFault

Virtualenv 下 Sublime CodeIntel 配置

by fen on March 22nd, 2012

Sublime Text 2 是一款非常优秀的代码编辑器,而智能代码提示 Sublime CodeIntel 更是其必不可少的插件。Python 的开发者通常都会使用 Virtualenv 建立多套虚拟环境,在虚拟环境下安装不同的 Package 版本,减少不必要的冲突麻烦。同时使用两者时,代码提示的智能程度却默认下降了,这是为什么呢?

原来,Sublime CodeIntel 指向的 Python 默认安装路径。你在虚拟环境下安装的 Package 都存放在虚拟环境目录下,自然无法被加载。因此我们需要对 Sublime CodeIntel 进行配置。找到配置文件~/.codeintel/config或者project_root/.codeintel/config(后者只针对某个项目进行配置,文件不存在时要手动创建)编辑如下:

{
    "Python": {
        "python": '~/your_virtualenv/your_venv/bin/python',
        "pythonExtraPaths": ['~/your_virtualenv/your_venv/lib/python2.7/site-packages',
        ]
    },
}

/your_virtualenv/your_venv是你的虚拟环境目录,在创建 virtualenv 环境时就生成了,所以要根据你的实际情况进行修改。如此一来,智能提示的功力又提升了。

一次旅行

by fen on February 2nd, 2012

穿过长长的隧道,列车停了下来。未眠,起身。不知停在了哪里,没有月台,或许不是个车站。

总是突然出现在旅途中。遇到有人问起,便说是来看看或是去逛逛。曾跟朋友说旅行是要带着目的的,现在笑自己说得太早,哪有那么多的目的,都不过是喜欢上了这种追求自由的方式。这些年,似乎一直在车站里徘徊,看人来人往,甚至觉得自己是车站的一部分了。心里有个声音,假装没听见许久,却一直无法忘记:下一站,知道吗?

不知该如何落笔,所以没写 2011 的总结。过去一年的故事很哲学,从认识自己是谁,到从哪里来,再到要去往何处。我可以在醒来时突然想出去走走,然后在火车上看一段风景。下车去一个环境不错的校园,赶上一顿午饭,找间没人的自习室打瞌睡。乘船去小岛上乱走。游人在日落的时候拍一会儿照片便离开,这时候就剩下一个人了,也许是知道夕阳即将消失,所以分外珍惜这最后的时光。有时遇着赶海人,那余辉下的背影,好像就是自己。这景能让人明白很多事情,瞬间悟透人生的许多道理,却无法用言语表达。

在陌生的环境,没有人认识你,才会让你认识自己。我想,这一年最大的收获就是知道了自己所要的,自己所坚持的,自己所追求的是什么。巷口食了碗面,背着收获离开,列车也一路欢快的奔跑。回到住所,朋友问:今天去哪了?我笑了笑:出去走了走。然后闭门满怀激情的创作了。这就是过去的一年,不精彩但也不冷场。

汽笛长鸣,列车开动了。这趟夜行车,划过青灰色的山岭,向过去道别,村庄的上空焰火绽放,迎接这新的开始。我不知道前方的路怎样,但我知道,这一年的故事会非常精彩。

Thank you, Steve!

by fen on October 6th, 2011

Steve Jobs, 1955-2011