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 中配置的插件, 我使用 git 控制 .vim 和 .vimrc 版本。在 BundleInstall 之后会导致 vundle 目录项目状态混乱,要么形成一个无法追踪的 submodule 比如 .vim/bundle/The-NERD-Commenter (untracked content) ,要么变成一个普通的文件夹 .vim/bundle/vim-markdown。 使用 Submodule 管理 插件 为了解决这个问题,我们需要先了解一点 Git 中 Submodule 的知识,详情可以查看 Git Book 中文版 - 子模块。 ...

2012-06-11 · alswl

服务器 Push 技术

服务器 Push 技术表示服务器可以主动推送消息给客户端浏览器。 实现方式 Comet Ajax 轮询 iframe / htmlfile script tag (不中断的连续请求) Flash 通讯 WebSocket Comet 本意是彗星,彗星尾巴痕迹很像长连接工作方式,所以 Comet 指代长连接。 在 Ajax 轮询的分类上,存在一些分歧,这里我把轮询认为一种 Comet 方式。 ps:「长连接」在一些场景下,是另外一种意义「HTTP: Keep alive」。不在本文讨论的范围中。 参考链接: Comet:基于 HTTP 长连接的「服务器推」技术 Socket.IO Supported transports 浏览器支持情况 WebSocket 属于 HTML5 规范,需要「先进」浏览器支持, Flash 通讯需要浏览器安装 Flash 插件,其他方式都可以适应常见浏览器。 ...

2012-05-30 · alswl

《开源和自由》幻灯片

周末回学校一趟,和几个老同学、老师聚会,然后给学弟学妹们做了一个分享。 我的主题是《开源与自由》。 为了让同学们不瞌睡,几乎是当一个故事讲的,没太多技术内容。

2012-05-27 · alswl

让 Octopress 支持 RSS2.0

土鳖人人网的 日志导入 功能仅支持 RSS2.0,而 Octopress 输出的订阅格式是 Atom1.0。 于是为了让人人网的同学能看见我那些技术宅,又或非技术宅的文章, 我只能昧着良心,给 Octopress 加上过时的 RSS2.0 输出。 在 source/ 下创建新文件 rss.xml ,内容如下: --- layout: nil --- <?xml version="1.0" encoding="UTF-8"?> <rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"> <channel> <description><![CDATA[{{ site.title }}]]></description> <title><![CDATA[{{ site.title }}]]></title> <link>{{ site.url }}/</link> <pubDate>{{ site.time | date_to_xmlschema }}</pubDate> {% for post in site.posts limit: 20 %} <item> <description> <![CDATA[ {{ post.content | expand_urls: site.url | cdata_escape }} {% include post/copyright.html %} ]]> </description> <title><![CDATA[{{ post.title | cdata_escape }}]]></title> <link>{{ site.url }}{{ post.url }}</link> <pubDate>{{ post.date | date_to_xmlschema }}</pubDate> <guid isPermaLink="false">{{ site.url }}{{ post.id }}</guid> <source url="{{ site.url }}/rss.xml"><![CDATA[{{ site.title }}]]></source> </item> {% endfor %} </channel> </rss> 然后,访问 http://site.url/rss.xml 即可。 我的 RSS2.0 地址是 http://log4d.com/rss.xml。 ...

2012-05-22 · alswl

给 Octopress 加上标签功能

上周,我将 Log4D 由 Wordpress 转换为 Octopress,略加打理,颇为顺手。 自动分类 / 评论转移 / 代码高亮 / 图床 的问题一一解决之后, 就只剩下 tag 的问题没有搞定了。 我当时使用了YORKXIN的修改版本来处理 Wordpress 的数据迁移,这个脚本很好用,数据没有遗失,甚至是让我担心的 category / tag 都给予了保留。具体使用方法可以参见从Wordpress迁移到Octopress。 只是虽然 tag 的数据保留了,但是 Octopress 仅支持 category 的分类,而完全忽略 tag。这是我不能容忍的:category 和 tag 分别代表 有序 / 无序 的知识点归纳方法。 一篇文章只能属于一个 category,但可以同时属于多个 tag。 Octopress 的设计方法显然和我长期养成的知识归纳体系冲突,我开始吭次吭次寻找插件。 ...

2012-05-21 · alswl

《写给大家看的设计书》读后感

Thumbnail

我读过两本关于视觉设计的书,一本是《写给程序员的Web设计书》, 这是第二本《写给大家看的设计书》。 我对前者的评价是「作者花了大约25%的篇幅来讲述设计理念和方法,这也是我真正想看的部分。 本来想从书中获取更多布局、色彩、字体的内容,发现还是太少了。图灵系的书翻译不错。」 相对应的,《写给大家看的设计书》是我真心想看的设计入门书。作者的文字功底好,经验丰富, 范例适合,取材广泛,总之,是不可多得的一本好书。 书中提到了设计四大原则:亲密性 / 对齐 / 重复 / 对比。依靠这四个原则, 就可以设计出效果不错的出版物(包括书籍、文档、幻灯片、网页等等) ...

2012-05-19 · alswl

关于 NetworkManager / PolicyKit / ConsoleKit 的那些屌事

Thumbnail

在使用 Awesome 的过程中,我又遇到了一个老问题「NetworkManager 在非 Gnome 环境启动后,会无法 添加 / 删除 / 编辑 无线连接」。明眼人一看就知道, 这是权限的问题。 问题描述 我的环境是 ArchLinux / xmonad 0.10 / awesome v3.4.11 / GDM 3.4.1 / NetworkManager 0.9.4.0, 下面我用 awesome 做示例,其他非 Gnome WM 也应该是类似配置。 我的 WM 启动流程是: 通过 GDM 启动 xmonad / awesome,启动 xsession 是 /usr/share/xsessions/awesome.desktop, 内容如下 [Desktop Entry] Name=Awesome Comment=This session logs you into Awesome Type=Application Exec=ck-launch-session dbus-launch $HOME/.start-session.sh awesome TryExec=/usr/bin/awesome $HOME/.start-session.sh 中的作用是启动 nm-applet 和 exec awesome。 ...

2012-05-17 · alswl

使用独立图床子域名

Thumbnail

最近在将 Wordpres 切换到 OctoPress,顺便将图片统一放到Upload4D管理。 我挑选图床管理程序有下面几个需求,需求由强到弱排列: 开源 简单 不需数据库支持 支持分目录 允许上传图片 支持后台直接操作文件 支持用户管理,不允许其他人上传 页面美观 不要生成缩略图等文件 软件持续更新 于是我踏上了「考古之旅」,先后试用了 MiniGal Nano / MG2 / CF Image Host Script / minishowcase 等等图床软件,评测记录如下。 参赛选手 MiniGal Nano 没有上传功能 没有后台管理功能 2010年最后更新 MG2 ...

2012-05-09 · alswl

《HTML5 实战 WebApp 阅读应用 – Shiu》幻灯片

今天去南京 HTML5 沙龙分享了一个幻灯片,讲 Shiu 的开发,同时也分享在这里。 Shiu 的源码托管在 Github,地址是 https://github.com/alswl/shiu 感兴趣可以去看看。 噢,Shiu (/ʃʐy/),中文音标 (shi rü)),是一款基于 WebApp 的阅读应用。

2012-05-05 · alswl

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> <Up> "inoremap <C-n> <Down> inoremap <C-b> <Left> inoremap <C-f> <Right> inoremap <M-b> <C-o>b inoremap <M-f> <C-o>w " Rubout word / line and enter insert mode " use <Esc><Right> instead of <C-o> inoremap <C-w> <Esc>dbcl " delete inoremap <C-u> <Esc>d0cl inoremap <C-k> <Esc><Right>C inoremap <C-d> <Esc><Right>s inoremap <M-d> <C-o>de 需要的朋友请取用,我的 Vim 配置文件和插件在 https://github.com/alswl/.oOo. 。 ...

2012-04-20 · alswl