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

在使用 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, 内容如下

more ...

使用独立图床子域名

最近在将 Wordpres 切换到 OctoPress,顺便将图片统一放到Upload4D管理。

我挑选图床管理程序有下面几个需求,需求由强到弱排列:

  • 开源
  • 简单
  • 不需数据库支持
  • 支持分目录
  • 允许上传图片
  • 支持后台直接操作文件
  • 支持用户管理,不允许其他人上传
  • 页面美观
  • 不要生成缩略图等文件
  • 软件持续更新

于是我踏上了「考古之旅」,先后试用了 MiniGal Nano / MG2 / CF Image Host Script / minishowcase 等等图床软件,评测记录如下。

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 包描述文件的前提下,分子目录是一种简单有效的方法。

more ...

Fcitx 配置

Fcitx

Fcitx

Fcitx 简介:

小企鹅中文输入法(Free Chinese Input Toy for Xfcitx
是一个以 GPL 方式发布的输入法框架, 编写它的目是为桌面环境提供一个灵活的输入方案。

本程序目前可以支持XIM和GTK2,GTK3,QT4的IM Module,可为支持

XIM 的 X 应用程序提供输入服务。 fcitx 的源码包内提供了区位和全/简/双拼,

并支持基于码表的输入法(自带五笔、二笔和仓颉等输入码表)。

您可以从 http://fcitx.googlecode.com 下载最新的发布版本。

当年刚开始使用 Linux 时候,使用的是 iBus,随后发现 Fcitx 这个输入法, 试用了一下就发现自己所需要的 双拼 / 模糊音 / 自定义输入 功能都有提供 ...

more ...

GAE 编程指南读书笔记

GAE 和我蛮有缘分,我初学 Python 的其中一个原因就是当时 GAE 刚推出, 当时想法是免费的应用要用起来,要不然就浪费了。随后也假模假样的看文档, 就是没有什么产出。

去年写了一个小应用 dbevent2gc , 期间发现 GAE 和普通程序开发的诸多不同,又遭遇 GAE 配额大幅缩水, 写出来的应用运转的不太稳定。在南京图书馆的架上看见这本《GAE 编程指南读书笔记》, 立即借回家仔细阅读。

  • GAE 的简介

    • 运行时环境 Python / Java
    • 数据存储 Datastore(实体 / 查询 / 索引 / 事务)
    • 服务(Memcache / GAccount / 任务队列 / 计划任务)
    • 工具(SDK / appcfg / dev_appserver / 控制台)
    • 入门(安装 / GAccount / webapp / app ...
more ...

在Python中调试代码

撰写程序时候,需要在调试上面花费不少时间,好的调试工具可以让这个过程如虎添翼, 靠打 log 调试会是一种很痛苦的过程,我总结一下 Pylons 开发的调试技巧。

吐槽:团队开发时候,每个成员需要学习、总结和分享各自的开发技巧, 这样才能自我提升并提高开发效率。这属于团队文化建设,开发是一种艺术创造过程, 绝对不是简单的复制和粘帖。

在 Python 中调试

pdb

在代码中加入下列语句即可启用交互式调试。

import pdb;pdb.set_trace()

在 pdb 中,可以使用 h / l / b / n / s / c / j / a / p / ! / q 这些命令所代表的含义可以通过 h(elp) 打印出来。

参考链接:

ipdb

比 pdb 更好用的是 ...

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 ...

影响力读书笔记

  • 本书研究 - 社会心理学 - 顺从心理学。
  • 日常生活中有大量心理捷径。
  • 在某个环境下机械地回应某一信息的倾向叫做自动化反应或"按一下就播放"式反应; 对所有相关信息进行彻底分析后做出反应的倾向,则叫做可控式反应。

Influence豆瓣链接

1. 互惠

  • 互惠是人类社会群体的一个独有特征。
  • 利用小礼物,使目标答应原来会拒绝的请求。
  • 互惠原理适用于强加的恩惠。
  • 互惠原理可触发不对等交换。
  • 违背互惠原理,接受而不试图回报他人善举的人,是不受群体欢迎的。(进化适应器)
  • 互惠式让步:面对接受的善意,我们感到有义务要偿还。
  • 拒绝-后撤策略:先提出较大的要求,遭到拒绝之后再提出真正的较小要求。

    • 责任感
    • 满意感
    • 如何防范:

    • 拒绝最初的善意 / 分清楚请求者是否有善意或别有所图

    • 明辩敌友:善意自然应当得到善意回报,可对销售策略却没有这个必要。

2. 承诺和一致

  • 人人都有一种言行一致,同时也显得言行一致的愿望。
  • 人类普遍人为言行一致是基本的人格特征。信仰 ...
more ...