grep: writing output: Broken pipe in iTerm2

前天用 iTerm2,在执行一个 grep "xxx" filename | head (filename 这个文件应该相当大,grep 到的内容也应该有很多)这样的命令时,遇到大量如下错误输出:

grep: writing output: Broken pipe

而在 Mac 自带的 Terminal.app 里面执行完全一样的命令,不会有任何错误。用 which 查看,使用的确实是同一个 grep 命令,同一个 head 命令。再仔细观察,发现其实 iTerm 里面,命令也输出了正确的结果,那后面的这些错误信息应该是输出到 stderr 的。把命令改成

grep "xxx" filename 2>errors | head

确实,错误信息都跑到 errors 文件里了。这时又发现,在 Terminal.app 里命令在输出10行之后立即结束执行,而在 iTerm 里则取决于这个文件有多大,grep 出来的内容有多少行,它就会执行相应长的时间。网上看到有人说这是 head 取得10行后立即退出,这个 pipe 的读端就没了,grep 继续往 pipe 写,于是 - broken pipe, 只要将错误定向到 /dev/null, 忽略即可。可是我经常用 grep 来在特别大的日志文件里找东西,进行下一步分析前,就先用 head 看看 grep 的正则表达式写的对不对。每次 grep 都不管 head 只读少数行这个现实,一直执行到读完整个文件,太浪费时间和资源了。

... Read full article: grep: writing output: Broken pipe in iTerm2

李笑来《把时间当作朋友》

把时间当作朋友:运用心智获得解放 - 李笑来. 国内很少有人像这样认真写好书了!

在2012来临前把这本书读完了,收获比我想象中大得多(这本书是我买一本数学书时顺便一起买下的),值得多看几遍。这本书大致是关于时间,心智,思考,学习,坚持的探讨和思考,也有关于成功的定义,以及介绍达到成功目的的一些必要途径,不过当然不是市面上流行的成功学书籍。

关于时间管理,David Allen 那本著名的 Getting Things Done 我也看了,看到一半就觉得好像作者在反复重复本来很简单的一些事,就好像当年学政治一样,看不下去了,也许是我不够有耐心吧。书中介绍的方法基本了解了,但是对我的工作学习似乎没有什么帮助,该拖延的事我还是拖延。我觉得方法这东西,每个人都应该有自己的一套,别人的好方法对自己并不一定有用。李笑来这本书虽然名字“把时间当作朋友”听起来就是一本时间管理的书,实际上它并不是教你时间管理的方法,而是在整个过程中告诉读者思考、反省、心智的重要性。

... Read full article: 李笑来《把时间当作朋友》

JVM 的 Client Mode 与 Server Mode

目前正在读“深入理解 Java 虚拟机 - JVM 高级特性与最佳实践”,这本书确实是国内少见的好书之一,虽然个人感觉也有一些不恰当的地方。例如第3章介绍 GC 策略时,一直没有简单解释一下"新生代 (Young generation)" 和"老年代 (Tenured generation)" 这两个概念。我也是在这书中才发现 HotSpot VM 有两个模式 - Server Mode 与 Client Mode,作者也没有介绍。也许是因为这些话题比较初级吧。

关于这两个模式的区别,这个 FAQ 里有介绍。简单地说,Client Mode 启动快,Server Mode 整体性能好。它们使用了不同的 JIT 编译器,Server VM 使用的那一个对代码做了更加多的优化。一般来说,像 Tomcat 这样的 Servlet container 需要长时间运行,启动速度相对来说不是那么的敏感,适合运行在 Server VM 里。而 GUI 程序对启动速度要求比较高,所以使用 Client VM 较好。

... Read full article: JVM 的 Client Mode 与 Server Mode

让 Greasemonkey 脚本同时支持 Firefox 和 Chrome

Greasemonkey 最初只是 Firefox 的一个扩展,不过流行之后,很快被其它的浏览器以不同形式采纳。IE 我不喜欢,此文就不关心它了。剩下的市场份额较高的是 Chrome 和 Firefox, 本文就简单讨论一下如何写出同时支持这两种浏览器的 user script (所谓“跨浏览器”).

最早的时候也是热心用户给 Chrome 写了插件让它支持 user scripts, 但是现在 Chrome 不再另外需要插件就可以支持了。它的处理方式是每次安装 user script 的时候,自动把它转换成一个扩展!刚开始在 Chrome 上调试脚本的时候,我还尝试在磁盘上找到它存储脚本的目录——在 Firefox 里我都是直接编辑脚本,保存,刷新页面马上看到效果,简单粗暴。肯定有更简单的调试方式,只是我不知道。

看看 Chrome 的官方文档怎么介绍的:

... Read full article: 让 Greasemonkey 脚本同时支持 Firefox 和 Chrome

Google Reader 与 Kindle

今天写了一个 Greasemonkey 脚本 - Google Reader Readability (点击安装). 该脚本同时支持 Firefox 和 Chrome. 效果如下,在每篇文章下面的工具栏添加一个新模块:

Google Reader Readability

... Read full article: Google Reader 与 Kindle

Dive Into * 作者 Mark Pilgrim 网上失踪 - 410 Gone

Mark Pilgrim 是 Dive Into ... 系列编程书籍的作者,比较出名的是 Dive Into Python. 我最早接触他的作品是 Universal Feed Parser 中的 chardet library,后来还由于看见他网站的字体很特别,自己也尝试了一下。多产的人就是这样,有时候没有意识,突然有一天发现自己在用很多他做的东西。这只是他的贡献的一小部分,他把许多书都做成了网站让人免费阅读,比如 diveintopython.org, diveintopython3.org 等等。甚至他的 blog 名字也叫 Dive Into Mark. 下面是 Wikipedia 对他的简单介绍:

Mark Pilgrim is a software developer, writer, and advocate of free software. He authors a popular blog, and has written several books including Dive into Python, a guide to the Python programming language published under the GNU Free Documentation License. Formerly an accessibility architect in the IBM Emerging Technologies Group, he started working at Google in March 2007.

... Read full article: Dive Into * 作者 Mark Pilgrim 网上失踪 - 410 Gone

Ubuntu 11.04 安装 scim-googlepinyin

以前用 Mac 的时候,抱怨 Mac 没有好用的中文输入法,现在搜狗和腾讯竞争激烈,Mac 用户不愁输入法了。现在又用 Linux 了,一直希望腾讯或者搜狗能够为 Linux 开发一款输入法可是迟迟不见踪影。前面写了一片 Ubuntu 安装 ibus-cloud-pinyin 的,不过后来还是感觉体验不太好,用回默认的 ibus 拼音了。

今天写东西还是觉得中文输入很烦,于是试试安装这个 scim-googlepinyin 吧。发现过程也不是太难,关键是怎么让 scim 正常运作起来。

$ sudo apt-get install scim scim-pinyin

然后在 Language Support 里把 Keyboard input method system 选成 scim 重新登录就可以了。安装完成后 System Preferrences 里就会有 SCIM 的设置,把所有的都看一下大致知道怎么配置了。不过问题是在很多输入框里,候选词列表不跟随光标移动,比较难受。解决办法是修改 /etc/X11/xinit/xinput.d/scim,把 GTK_IM_MODULE 改成 scim. 我把 QT_IM_MODULE 也改了,不过好像没效果,QT 程序里还是不跟随光标。对我来说无所谓,我目前用到的唯一 QT 程序是 skype,并且它的输入框就那么小,不碍事。

我也不知道是什么影响一个输入法的体验的,这个是我感觉最好的。


安装了 scim 之后发现系统的中文字体很奇怪,包括某些网页,标点符号跑到了正中心,让人受不了。看了一下目录 /etc/fonts/conf.d/ 下面有几个更改日期为今天的配置文件,顺藤摸瓜,应该是安装 scim 的时候顺带安装了两个字体包。照下面的命令卸载掉即可,不会影响 scim 输入法使用:

$ sudo apt-get remove ttf-arphic-uming ttf-arphic-ukai

我不知道 apt 系统的依赖原理,不明白为啥安装 scim 的时候给我安装上,我卸载的时候却不管。

Ubuntu 11.04 安装 ibus-cloud-pinyin

首先安装必要的软件包(valac 默认版本不是 0.10 所以安装时必须指定版本号。subversion 是为了 checkout ibus-cloud-pinyin 的代码准备的):

sudo apt-get install liblua5.1-0-dev liblua5.1-socket2 libsqlite3-dev libibus-dev libnotify-dev lua5.1 libgee-dev valac-0.10 sqlite3 subversion

然后 check out ibus-cloud-pinyin 源代码,编译,安装:

svn checkout http://ibus-cloud-pinyin.googlecode.com/svn/trunk/ ibus-cloud-pinyin
cd ibus-cloud-pinyin/
make
sudo make install

接下来重启 ibus. 通过命令:

ps -ef | grep ibus-daemon

找到 ibus 的进程号 kill 掉,然后通过菜单 System-> Preferences->Keyboard Input Methods 启动。现在点击输入法图标,应该多了个 Chinese - Cloud Pinyin,选择即可使用。我也不太清楚它使用的是哪个云输入法,但是词库、词频比默认的输入法好太多了。

另外,想要开机启动 ibus,可以在 System->Preferences->Startup Applications 里添加 /usr/bin/ibus-daemon

广告发布商赚翻了

大家一定注意到自己的手机最近收到的垃圾广告短信越来越多,几近疯狂,来源主要是团购网站,而且大部分网站你都没听说过,从来没有在网站注册过。有的很人性化,竟然可以发短信退订。还有的很流氓,就一直不停地发。有一家让我忍无可忍,在其网站上以威胁的口气投诉,好像后来就没收到了,看来还没有到了赖皮的地步。

这些垃圾公司从哪儿弄来的手机号呢?我没有真实经验,猜测有两种渠道。一种是传统的,从隐私数据提供商处购买,可能是移动、联通这样的运营商,可能是专门经营手机号码数据的公司,可能是以此为副业的(比如在网站上口口声声说誓死保护用户隐私,背后卖给别人)。另一种就是,某家团购公司可以接触到这个数据库的人跳槽的时候顺手牵羊。每次在手机上收到新的团购网站的 spam,我就想,哇,又有人跳槽了……今天我就收到一个叫“秀团网”的,查了一下,这个大概不是因为跳槽,因为它是属于“走秀网”的,天然的资源优势,很早之前就偷到了我的手机号(不多说了,有人在旁边无耻地笑——哈哈哈,免费品牌广告)。

9月13日那天好多商家发正常的短信比如验证码、购买的优惠券等都延迟严重,我猜跟广告短信泛滥应该有关系。

短信只是众多营销媒体的一种,垃圾短信增加可能给我们的感觉最直接,其实其它广告渠道的负载也同样加大了。比如 Email,现在的邮箱大多有很好的过滤机制,所以还比较情景,但是看看垃圾箱就知道广告邮件有多少了。在自己网站上放 AdSense 广告位的,应该感觉到价格上涨了吧(我自己这个因为实际没有收入,所以没有感觉,嘿嘿)。接触搜索引擎结果广告投放的,也应该知道价格上涨了吧。还有导航网站呢?网络运营商的流氓弹窗呢?

现在基本就是无数的钱拼命往电子商务、团购上砸,于是他们就得拼命地竭尽所能不管赔赚在营销上花钱。我一直想不明白团购网站已经成千上万了为什么还有人投资玩这个。不产生实际价值是可以赚钱,赚不到钱你可以骗钱,骗钱都不行注定要赔的,你玩什么呢?

quicktime的安装过程没有完成 itunes要求安装quicktime

用电脑最烦的一件事就是出了问题,软件给的出错信息没有任何信息含量。这个技能,微软是最拿手的了。不过苹果有时候也学得很好,比如最近在一台 Windows 7 系统被折腾得比较乱的电脑上安装 iTunes 时,安装失败就给了这么一条信息:

quicktime的安装过程没有完成 itunes要求安装quicktime

这意思明摆着就是让你放弃吧。但我没有放弃,后来发现是因为这个系统里面安装了各式各样的播放器、解码器。打开“添加删除程序”,把所有看着像音频/视频解码器的东西统统删了,再安装就没有问题了。

本来装 iTunes 是为了同步音乐到 iPod 上,不过后来发现 Ubuntu 里带的 Banshee 就可以同步 iPod 而且还比较好用,于是不再需要到 Windows 里同步了。不得不说,Ubuntu 做桌面已经比较成熟(11.04 里的 unity,个人认为非常垃圾,已切换至传统的 gnome. 不知道 gnome 3 如何)。

Latest Comments
  • Dive Into * 作者 Mark Pilgrim 网上失踪 - 410 Gone 2
    "刚刚看法他的《html5揭秘》上网搜索,才发现找不大作者的一些相关网站,有找到了..." - by 小刀
  • 在KeePass中使用PuTTY 3
    "cmd://putty.exe -l {USERNAME} -load {TI..." - by mrzcs
  • Mac 软件更新不了 - 解决方案 1
    "您好,我按您的方式试了,DNS修改的方式也试了,可是还是无法更新,总显示软件已是..." - by 成语
  • 亚马逊Kindle 3优点与缺点 24
    "@hzhqwe pdf可以取词但是不是特别准确,很多时候取不出来,不可靠。不过读..." - by qingbo