在过去的一年

by arcthur

正巧看过《浮生六记》,一段人生,数页文字,当只几言片语,亦紧抓情绪。记得一段,”人生坎坷何为乎来哉?往往皆自作孽耳,余则非也,多情重诺,爽直不羁,转因之为累。”

想着同时,自己的在过去的一年工作中,有得有失,一些事常挂嘴边,一些事渐渐淡忘。光阴荏苒,久未闲情静思,仅作感慨之语,以慰去时。

初入阿里

来阿里工作,看似平淡却有许多的意外。从我进入阿里这件事,本就是场意外。一个被以社招的方式招来的校招生,入职的时间比起同样是校招的同学要晚上许多,当我坐下工作的时候,同时期的校招生都有一段时间的工作经验了。入职第一天,感觉这个公司不一样,哪不一样呢,走在哪里都听得到欢声笑语。这是让我感觉意外的第二件事。

总会听人说,进入社会第一件事,就是帮你”洗脑”,走到一个公司进入那个公司的文化中。在我上完培训之后,是不是会进入一种称之为”阿里模式”的状态。的确,我是进入了那种状态,而且确信对我的精神无害。之后的我对那些危言耸听的言论感到疑惑,”在一个痛苦的环境,和一群会算计的同事在一起成长得更快,再有一个糟糕的上司就更好了”。我很庆幸我没有在那样的氛围里,不然,现在我应该成长为”超人”了。这是让我感觉意外的第三件事。

那时候,我对我自己,还有公司很失望。还徘徊在是不是应该从事这个职业而感到力不从心,到今天,我还有这种无力感。在我看来,公司的技术氛围不强,重复劳动和无意义的工作让人厌烦。常常只能通过加班来完成工作,对于一个非技术驱动的公司来说,我工作的目标或多或少是为了数量,而不是质量。我知道,所谓条条道路通罗马。纠结这些没底,通到北京也不错,不是吗。让那种自我感觉良好的精神,学些另外的事。
Read more…

Macvim剪贴板如果从shell中打开,就会出现,E353: Nothing in register +

注意到register的问题,首先要理解vim下的register的作用。vim下register是储存文本的临时空间,同一般意义上的系统剪贴板不同,复杂和强大很多。而这里出现的问题,指的是选择与拖放的寄存器(”* “+ “~)。在系统中这几个寄存器就是剪贴板。在Linux中它们也是剪贴板。关于寄存器的概念可以参考这个链接

查阅了很多资料,发现Mac下的tmux, screen, zsh都是不支持macvim的clipboard。

为解决这个问题,在网络上提供了几种方案:
1. 使用mac port的朋友,可以用这个patch,主要解决tmux不支持mac里的pbpaste,pbcopy的系统命令。在superuser里,网友解答原文:You might try the patch mentioned in a related thread (“OSX 10.6.5 , Terminal.app, iTerm.app pbpaste, pbcopy do not work under tmux”) from the tmux-users mailing list。

2. 使用Chris Johnse 写的一个脚本,让tmux初始化的时候调用system的命令。使用方法十分简单:

make reattach-to-user-namespace && cp reattach-to-user-namespace ~/bin

然后在.tmux.config里加入一段调用脚本

set-option -g default-command "reattach-to-user-namespace -l zsh"

接着,重启tmux即可

3. 以上方法对我来说还是觉得太复杂,有没有让macvim直接调用系统命令的方法呢?
当然有,而且原文就在vimwiki里,最好的帮助还是得查官方的。

" On OSX
vmap <C-c> y:call system("pbcopy", getreg("\""))<CR>
nmap <C-v> :call setreg("\"",system("pbpaste"))<CR>p

" On ubuntu (running Vim in gnome-terminal)
" The reason for the double-command on <C-c> is due to some weirdness with the X clipboard system.
vmap <C-c> y:call system("xclip -i -selection clipboard", getreg("\""))<CR>:call system("xclip -i", getreg("\""))<CR>
nmap <C-v> :call setreg("\"",system("xclip -o -selection clipboard"))<CR>p

当然,我把键设为M-c和M-v,替代vim register使用system clipboard。这样问题就解决了。

读书伴我行

by arcthur

现代人已经”病”了。产业革命后的人们仍是不满,值到信息革命的今天,我们的思想已被生存困境禁锢。列维-斯特劳斯曾言,“野性的思维” lapensee sauvage,并不随着文明的发生而消失,尽管驯化了的思维的确对野性的思绪造成威胁。” 既然我们都有野性的思维,用什么缔造或改变使我们成为人,而不是野兽。

为什么我们处在知识经济时代,却渐行渐远。知识带给我们的,人们一般只看到转化成了我们的生存技能,进而成为我们内在的经济价值的那些。除此,它更内在的造就了不同的我们,区别于不同时代,区别于同时代的人的内在。我从自己说它带给我的…

科学精神

用科学精神并不是我的本意,我更倾向于一种偏执的精神力。I called geek spirit? Yeah, means they think different. 科学在于创造及推理,在于极度失控的我们努力创造出的奇怪念头。

科学精神对应于迷信,或感性情绪。我性格本身(INFP)有更多感性因素,而人们与生俱来就有着感性情感。而科学给予我们另一种思维方式。如果人不再锻炼大脑思考能力,将沦为被情绪化、原始冲动控制。抽象化的思考能力,这里所说的科学精神里最为重要的能力是理性思考的基础。几乎人们都在生存上想学一门技能,相反,我认为自我思考能力的学习远胜于普通技能。

vogd:每个人都听过成功是一分的天才加上九十九分的努力,如果说天才是能想出绝妙idea的能力,那我觉得还有个关键是,要在有点子前先做过够多的努力打好基础,等到灵光一现时才能把握住机会马上实现它。如果等到一分的天才出现时,才准备开始做九十九分的努力,那很容易就会被许多基础能力不足所带来的挫折感和障碍所压垮。

vogd所说的专业基础以及思考的基础都是从知识及实践中来。高等教育提供的平台还远远不够,更深刻的认识才能对你的思考产生一种全新的体验。

宽容悲悯

宽广的胸怀是现代人难以拥有的品格,周遭的尘烟滚滚,油然而生的浮躁感。在环境对自己的影响力超了自己的鉴别力的时候,往往我们就深陷其中。实体书城还是网络书店都一目了然地看得到,我们世界的原型或概貌,还原成文字也是一样的浮躁。曾经听朱淼华老师提到,我们要什么,缺少什么,悲悯。这两个字的沉重不在于字面本身的含义,更是对自己,对家庭,对社会的责任感。

我常读一些散文,亲切淡然,记得有一篇文章,之中引用于佛教经典的一段话,“好肚肠一条,慈悲心一片,温柔半两,道理三分,信心要紧,中直一块,孝顺十分,老实一个,方便不拘多少。此药用宽心锅内炒,不要焦,不要燥,去火性三分,于平底锅内研碎,三思为末,六波罗蜜为丸,如菩提子大,每日进三服,不拘时候,用和气汤送下。”

的确,是一服“良药”。喜欢这些让心静的散文和诗歌,它们它们是感性的文字,也是轻松的文字。注入了生活的苦味,久久地共鸣与释放。
Read more…

Ruby 1.9和Vim 7.3发布的时间已经过了很久,但Mac下的Macvim始终不能支持Ruby 1.9。使得Ruby的编程,另一些插件(Commant-t)不能使用。尝试编译源码,发现几次都在RUBY_CFLAGS上报错。最后修改config.mk成功编译。

首先,下载Macvim源码包,https://github.com/b4winckler/macvim
需要长期更新,则使用git clone git://github.com/b4winckler/macvim,有新的更新时执行git pull更新作者最新的更新。

First, please download the source code of the MacVim. https://github.com/b4winckler/macvim, you could use “git clone” to clone a copy, and use “git pull” to update the newest code.

接下去,进入源码包中src目录,输入命令,这里还包含python。

Then, you could go to the src directory, and input the command that contain python compile para.

./configure --with-features=huge --enable-pythoninterp \
--enable-rubyinterp

这里需确认Ruby 1.9的安装方式,我这是下载源码包,编译安装在/usr目录下,即覆盖了系统默认的Ruby 1.8.6。

如果使用homebrew或rvm安装,和之后的方法是相似的,编译失败一般是RUBY_CFLAGS和RUBY_LIBS的指定路径错误造成的。需要指出的是使用rvm的ruby 1.9是不支持Command-t的,这点作者在help文件里有指出。

There should be confirm the installed pattern of Ruby 1.9. I recommend download source code, and point the prefix to /usr, which cover the default Ruby.

If you use homebrew or rvm to install, the method is the same as above. But if compile fail, RUBY_CFLAGS and RUBY_LIBS are the important checkpoint. Need to point, command-t isn’t support the ruby 1.9 of using rvm installed pattern.

编译之前,打开src/auto生成的config.mk文件,修改对应代码行

Before the compile, open the file “config.mk” in directory src/auto, and modify the code line.

RUBY		= /usr/bin/ruby
RUBY_SRC	= if_ruby.c
RUBY_OBJ	= objects/if_ruby.o
RUBY_PRO	= if_ruby.pro
RUBY_CFLAGS	= -I/usr/include/ruby-1.9.1 -I/usr/include/ruby-1.9.1/x86_64-darwin10.7.1 -DRUBY_VERSION=19
RUBY_LIBS       = -lruby-static -lpthread -ldl -lobjc -L/usr/lib

看到这再执行make & sudo make install 即可成功让vim支持ruby 1.9。
可以用这以下命令检查链接情况,是否已经关联到ruby。

Last, execute the “make & make install”. Ah, vim is support ruby 1.9 now. And you can check the link using the command below.

otool -L ~/Download/MacVim/macVim.git/src/MacVim/build/Release/MacVim.app/Contents/MacOS/Vim
Vim:
        /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 15.0.0)
        /System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 152.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10)
        /usr/lib/libncurses.5.4.dylib (compatibility version 5.4.0, current version 5.4.0)
        /usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
        /System/Library/Frameworks/Python.framework/Versions/2.6/Python (compatibility version 2.6.0, current version 2.6.1)
        /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0)
        /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 44.0.0)
        /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.42.0)
        /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 751.53.0)
        /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1038.35.0)

关联Vim到/Applications/MacVim.app/Contents/MacOS/Vim上,这样在Shell中的Vim也成功升级到了7.3+ruby…

Shell的Vim支持通过 vim –version查看,有+号的即支持,如需要用相似方法增加支持,如python 3, perl等

You can watch the support condition via “vim –version”. The “+” mean supported.
Happy~~

性能心理学

by arcthur

译文原文地址(需翻墙) http://www.phpied.com/psychology-of-performance/

作者Stoyan Stefanov是Yahoo! Search前端开发工程师,smush.it online的作者,YSlow 2.0架构师,Object-Oriented JavaScript一书作者 Even Faster Web Sites, High-Performance JavaScript一书贡献者,以及Velocity, Ajax Experience, JSConf的演讲嘉宾。

Stoyan Stefanov在Velocity2010上的视频地址,题目亦为性能心理学Psychology of Performance。

译文:
衡量时间是我们在性能做的努力时一个重要的行为。你必竟想知道gizp后你的javascript代码是否有帮助,不起作用或比原来更慢(因为你的服务器现在很忙?)。你不得不为了确定你进步的空间而去测量和监视。除了你自己的个人网站以外,你还得为了你的老板或你所拥有的终端来测量时间。在这些工作中,尽管时间是重要的,但得说在整个故事中事实上它是以毫秒记的。

大家记得,我们是在处理人的问题。我们网站的用户大部分是人(除了一小部分的机器人,爬虫和蠕虫)。人是非理性的,只能说一部分是可预测的。我们不仅是非理性的,我们还可以轻易操纵我们针对现实而产生的一个扭曲的想法。我们的感觉几乎没有准确的,因为我们相信就是那样。

心理和脑

Mind hacks
“Mind hacks(心理和脑)”和”Your brain: the missing manual(你的大脑:迷失的手册)这两本书极好的展示了我们的大脑和我们的感觉是如何不可靠。实际上也没有其它方法,现实是极端复杂的,有许多的信息需要吸收处理,在给定时间搞清他们的含义。尽可能的做到所有的处理也只是一种可能性。我们需要在信息处理上走近路,就做了猜测,有时要编造些东西使我们的心理想法或外面的世界是完整一致的。

举个例子,因为光学幻觉会在一些情况下作用,魔术师利用我们的注意力把缺陷处理成”不可能“的事。图上A和B方块,我们把它们的颜色值取出来。它们是相同的rgb(100,100,100)或#646464,但是你确实集中精力在图像上为了能看清楚它。尽管这样,当你再看着图,你的思想仍就会混淆我们所相信的相同颜色。我们不仅会轻易地摇摆,我们也不愿意去接受事实尽管已经被我们所证明。

图像的问题在于我们比较之前与新信息后,相对地接受一些东西,并且基于此做出决定。我们基于模式是容易上当受骗的人。

这就是我们工作的方式,想象你早晨醒来,在下床之前,你决定考虑着你头脑中的选择,通常有正反两方面。选择的数量是如此让人气馁,你将做不了任何事,延迟他们,计算风险,以及你不确定性。因此,你知道的,下床就成了障碍(这里带着些夸张)。
Read more…

Next Page »