Windows management for hacker

团队里的同学有时看见我键指如飞,可以用快捷键将 Mac 的窗口玩转于手心。他们表示酷炫非常, 心生羡慕的同时,希望掌握这门技艺,我就把使用的 Phoenix 介绍给大家。结果过了一段时间, 发现普及率并不高,本着好为人师的精神,今天我就来八一八这款优秀的桌面管理工具。

在介绍我使用的工具之前,我要先介绍一下我选择的原因和历史。

201604/ergodox_infinity.jpg

ps:配图是我长草多年的 Ergodox Infinity。(@夫人,看到这里的时候,请留步思考 5s)。

Alt+Tab = 苦难的历史

当我还年轻的时候,曾经对 Alt+Tab 这个快捷键愤慨无比,觉得这种设计虽然简单但是很蠢。

  • 命中率低。要在茫茫图标中查找自己需要的窗口,如果开了 20 个应用,切换到一个非常用窗口至多可能需要 20-1 次按键。 不要跟我说有 Alt+Shift+Tab 的反向循环操作,估计大部分用户都不知道。而且 正向/反向 …
more ...

一次艰难的 Wiki 升级

公司使用 Confluence 管理自己的知识库, 现在使用的版本还是 3.0.1,而最新的 Confluence 版本已经是 5.4+。 新版本加入的一些现代化 Web 系统的新特性很吸引人(拖拽上传,可见即所得编辑), 在群众的强烈呼声下,我着手开始升级。

201601/confluence_river.jpg

官方的升级路线很扯,3.0.1 的升级路线是:

  • 3.0.1 -> 3.5.17
  • 5.0.3 -> 5.4.4

中间两次大版本升级,第一次原因不明,第二次是更新了 markup 渲染引擎, 改为 HTML 格式类型的渲染模式。

由于一些原因,我们系统还跑在 embedded 模式下(其实就是 HyperSQL …

more ...

SS with Haproxy

shadowsocks.png

以前用自己的 SS,Linode 美国,后来 Linode 日本,但是始终拼不过上海电信的国际带宽。 经常不稳定,丢一半的包。

于是买了 SS 服务, 9 台服务器,自己挑觉得速度快的服务器。

但一直固定某台服务器也会偶尔出问题,导致邮件出不来,网页打不开。 需要手动切换一下服务器。 于是用 HA 做了一个本地代理,调整了一些参数,让 SS 总是有快速的服务器供选择。

结构:

+-----------------+                                                  +----------------+
|                 |                                                  |                |
|    Server 1     |>>>>v                                           >>|   Mail.app     |
|                 |    v                                           ^ |                |
+-----------------+    v                                           ^ +----------------+
                       v                                           ^
+-----------------+    v    |----------------+      +------------+ ^ +----------------+
|                 |    v    |                |      |            | ^ |                |
|    Server 2     |>>>>>>>>>|    HAProxy     |>>>>>>| SS-Client  |>>>|   Browser      |
|                 |    ^    |                |      |            | v |                |
+-----------------+    ^    +----------------+      +------------+ v +----------------+
                       ^                                           v   
+-----------------+    ^                                           v +----------------+
|                 |    ^                                           v |                |
|    Server 3 …
more ...

Linux 程序员的 Mac 安装记录

作为一个 Linux 的老用户,我再一次验证了那句老话「Linux 用户有钱就换 Mac」。 前段时间,托朋友从香港购入一台 rMBP,下面就是我的 Mac 使用安装记录。

Brew

Brew 是 Mac 下面的包管理工具,通过 Github 托管适合 Mac 的编译配置以及 Patch,可以方便的安装开发工具。

安装 Brew:

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

我安装的 Brew 包:

brew install ack
brew install ansible
brew install …
more ...

Flotr2 - 我最喜欢的 Javascript 图形库[译文]

原文地址:Flotr2 - my favorite javascript graph library

译者:alswl


我研究了很久,得到的终极数据可视化方案是 javascript + html ,这是唯一像样又好用的。

Gnuplot 虽然看上去不错,但是不太漂亮。 一些基于 Python 的图形化工具也有同样的问题。 Mathematica 在我看来则太正式了,所以我不怎么用它。

基于 javascript 的图形化工具其中一个巨大优势是易于共享。 通过设置 Github Page、分享链接等方法,我们都可以很方便的获取最新图表数据, 甚至可以进行交互。

那些基于 javascript 的图形化工具

有很多 javascript 图形化库,从极简到复杂绚丽的风格,都极为丰富。

最流行的可能就是 d3.jsRaphael 了。 他们用起来相当麻烦,但却能实现绚丽到超越你想象的可视化效果 …

more ...

Vundle 和 Submodule

问题背景

Vundle 是个好东西,可以用来管理 vim 配置和 vim 插件。Vundle 会将所有插件管理在 .vim/bundle/ 中,详情可看 使用 Vundle 管理 Vim 插件

官方安装 Vundle 方法如下:

$ git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle

我的 Vundle 的版本是 59bff0c457f68c3d52bcebbf6068ea01ac8f5dac, git 版本是 git version 1.7.10.2 。 使用 BundleInstall 可以安装 .vimrc 中配置的插件 …

more ...

Vim 下模拟 Emacs 键绑定

Vimer 需要 Emacs 键绑定?看上去很蛋疼的需求吧。其实不然,大部分的 Shell / Readline 默认绑定的是 Emacs 键位绑定(处于输入状态下,Emacs 的键位很好用)。Vim 的模式切换很牛逼,但是 Insert 模式下面,只有寥寥几个快捷键,我修改了配置文件,绑定需要的 Emcas 按键到 Vim 中来。

Github 中搜索关键字 Vim Emcas key bind,出来一些结果,不是很完美,我又慢慢调教了几个星期,放出我的 .vimrc。

" 模拟 Emacs 键绑定
" Move
inoremap <C-a> <Home>
inoremap <C-e> <End>
"inoremap <C-p …
more ...

使用 Vundle 管理 Vim 插件

早在这个月初,我就在 Vim 的邮件列表看到了一封关于 Vim 插件管理的 邮件。 才惊呼原来有这么强大的插件可以用来管理我那一坨插件, 今天细细阅读并查了一些资料,变开始配置自己的 Vim。

几种管理插件

Vim 的插件管理工具有蛮多,比如:

Vim-addon-manager 和 vimana 的对比,参见 Vim的插件管理工具

我最会选择了 Vundle,通过子目录管理插件,支持 Git 更新。 我其实不太喜欢子目录,觉得目录太多看着烦,但是考虑到在没有一个良好的 PKG 包描述文件的前提下,分子目录是一种简单有效的方法。

Vundle 通过 git 来对插件进行更新,有三种源可以添加:

  • github 中 vim-scripts 的项目(这个账号是为 …
more ...

Chrome 独立代理设置

Chrome 在2011年4月份时候,加入了两个新的实验性扩展分支,分别是 Web Navigation Extension API 以及 Proxy Extension API, 通过他们,可以让 Chrome 使用自己独立的代理。

借助这个新功能,我们可以通过 SwitchySharp 使用某个 list 完成部分网址代理。

我的环境: Arch Linux / Chromiun(17.0.963.78) / Proxy SwitchySharp 1.9.38。

安装 Proxy SwitchySharp

由于 SwitchyPlus 停止维护, 因此这里我使用 Proxy SwitchySharp

Proxy SwitchySharp 介绍如下:

轻松快捷地管理和切换多个代理设置。基于 "Proxy …

more ...

使用MoinMoin作为个人KMS

去年9月份时候,我写过一篇《我所使用的知识管理系统》 来介绍我使用的KMS系统。当时经过我层层筛选之后,我选用了Wiz作为我的KMS。

一年多过去了,Wiz在Windows下面工作的非常不错,Wiz团队里陆续推出了iOS / Android / Web版本。我的Wiz收藏的内容也增加到近1000篇。

此时我遇到了KMS再选型的问题,原因很简单:我全线转换到Linux平台, Wiz不符合我的要求了。

我重新整理一下我要求KMS的特性:

  • 跨平台:Linux / Web / iOS / Android / Windows
  • 数据保存格式:移植方便,将图片保存到本地
  • 数据采集方式:支持网络直接拷贝复制
  • 数据索引:支持分类 + tag
  • 协同工作:方便的分享机制
  • 免费

经过我历时N月的搜寻筛选,MoinMoin Wiki中标了!

1. 关于MoinMoin

MoinMoin是使用Python编写的Wiki实现,MoinMoin当前版本1.9。

MoinMoin的优点是:

  • 安装简单;
  • 支持中文全文检索;
  • 汉化较好;
  • 不依赖外界的数据库, 使用纯文本保存, 备份非常容易 …
more ...