Surface Pro 3 September 15th, 2014

闻着Surface Pro3风扇里吹出来热风中的崭新电子设备特有的烧烤塑料和硅材料的气息,我决定写写个人的Surface Pro 3感受。
继去年入手Lumia 1020之后,我又抱着“不亲自体验就没资格使劲黑”的态度入坑了Surface Pro 3. 当然大前提还是我确实很想入手它,因为不管发布会上被人拿起来往地上丢还不坏,还是含Type Cover比13寸MBA轻这种硬货,还是手写笔一键唤出OneNote这样的机巧,都让我有一种“微软居然变得有料,变得酷了起来”的感觉。果然乔老板说得对,对自己的软件有爱的人最终都要自己做硬件。

买买买

但是,这些都不重要。

现在的我,购买电子产品其实很少关注硬件配置,因为产品的形态和花样越来越多,所以其实更重要的应该是它们跟其典型应用场景的适配度。我之前跟好几个Surface用户聊过,大家都有一个共同的感受就是:虽然没觉得这个产品有什么不好,但是就是买了不久之后就搁在那里不用了……我想大概也是因为Surface Pro 3之前微软只是想做个功能尽可能多的东西,但是应用场景不明确的原因吧。

那么之所以想买其实是基于三个典型的应用场景,而我现有的设备都无法满足我:

  • 因为用着Window Phone,所以了解了一下WP平台的开发环境和应用商店,结果发现居然异常的顺手,以至于入手SP3之前还在自己的Mac上开虚拟机玩了一段时间,但是有个原生Windows总是更舒畅一些。
  • 平时早上起来想看看新闻什么的,手机屏幕太小,而iPad拿着费劲,又不想开我那台2012年款的还装着机械硬盘的MacBook Pro并腾出双手去操作,所以能有个带Kick Stand的设备随便翻翻点点还挺好的。
  • 周末去泡咖啡馆,有时候会想干点正事,而不是光读书和刷微博时,Kindle显得不够用,iPad又太玩具,15寸的MacBook Pro又会显得过于隆重而且续航堪忧。

于是咬了一番牙之后入手了单价i5 + 8G RAM + 256G SSD的版本,单价1299,加上129刀的type cover和税,即使用上了@laosong同学分享的教育折扣码之后依然花了我将近1400美元。真的比顶配的Macbook Air都要贵了。

然而,一些小细节却让我差一点第二天就退掉它……

拿到它的当晚,我兴冲冲地给它装上了Visual Studio 2013 Express,但是却发现它在被按下电源键或者合上Type Cover之后就休眠了,再次按下电源键之后还得能十几秒才能点亮屏幕。这样的话, 根本不能当平板来用啊!更奇葩的是,再次唤醒之后,之前连上的WIFI不能用了,必须断开重新连接才能重新上网。

后来才发现原来是windows phone虚拟机需要的Hyper-V虚拟机跟自家的电源管理过不去。果然东西太复杂了就是容易被坑。关掉Hyper-V之后一切恢复了正常,只是再想拿Visual Studio写WidnowsPhone app的时候就得重新打开,并且牺牲所有的平板特性。当然,这个时候如果是乔老爷这种强势的PM一定会辩解说,如果你要做严肃的开发,你就不会把它当平板用……

在度过了最初的危机之后,我又花了几天的时间来重新熟悉很久没有用过的Windows系统以及新的Modern UI。现在终于可以说点SP3的好与不好了。

先说不好吧。

在入手SP3之前,其实我是想等Apple的MBA更新的,我当时想的是,如果苹果能推出Retina + 触摸屏的MBA,也许SP3就没什么竞争优势了。但是在用了这几天之后,我却逐渐理解了MBA的合理性了。

首先是触摸屏,如果一个设备你只是拿它当笔记本使用,而且配备了一块像苹果这样好用的多点触摸板,你根本不需要触摸屏。自从用上了苹果的触摸板,熟悉了触控手势之后,我就再也回不去用鼠标的时代了。如果说手都不用离开键盘就能完成所有的操作,触摸屏确实是多余的,反倒是多种操作并存的情况下,会让人有些无所适从。

而SP3的新Type Cover,虽然加入了背光,手感也有了质的提升(至少不逊于Macbook的敲击手感),但是那块小小的触摸板还是差得很远,手势识别不是很精准,而且翻页操作总是做不到丝般顺滑,虽然页面滚动速度比是可以调整的,但是总是很难把握,要么就翻得太慢,手累死,要么就闪得太快,眼睛累死。

其次是Retina屏,SP3的这块3:2屏幕被各种评论家誉为良心,但是在软件没有优化的情况下(典型例子就是Chrome浏览器),显示质量其实非常令人难受,不是字体支离破碎,就是整个界面变成了微缩景观。令我直接想起了初代Retina Macbook Pro的尴尬。

所以作为一个SP3用户,如果你想把它当笔记本来使用,那就忘了它的触摸屏好了。至于超高分辨率的屏幕,还是耐心等它真正发挥优势的那天把……

再说说好的吧。

首先是轻,对的,作为一个可以拿来编程的设备,它真的很轻!从此出门再也不用为要不要背电脑烦恼了。

然后是Window 8.1,很久没有接触Windows,现在发现这个系统已经有了一些自己的交互特色,微软在功能之外,终于有了一些自己的设计哲学。

点亮屏幕就能传递信息的动态磁贴就不说了,说些新鲜的。

比如在Modern界面上直接敲键盘就开始搜索应用和文件,回车就直接打开对应项目,直接让Everything和Alfred这样的应用下岗。

用手指从屏幕左侧边沿划入屏幕,就能切换至之前的应用,手指在屏幕左侧停住就能分屏显示,这可是我在Mac上想了很久但是只能靠第三方软件才能实现的功能,而且这个时候才能显示出SP3这块高分屏幕的优势。

Split Screen

如果说苹果的产品减法做得一直很好,以至于界面简洁,用起来也顺手,那么微软之前的问题就一直是过于繁复。当然繁复也有繁复的好,比如在想要的情况下,你能获得更多的信息:

Windows file transfer

所以公平的说,Windows是在另一个难度级别来尝试把软件做到易用和好用。借用《The Design of Everyday Things》里面的观点,复杂性并不是问题,因为这个世界本身就是复杂的,问题是复杂性带来的迷惑性。

类比一下,Mac OS的软件好像高中物理课本,其简洁和完美来源于对你的使用习惯的塑造和应用场景的限制,就好像高中物理里大多数定理都只能在理想情况下成立一样。而Windows软件则直接给你一个真实世界,复杂,却有着更多可能。

最初我还在想,Windows 8.1上会不会有Mac上那么多美轮美奂的软件可以使用,后来才觉得自己多虑了,Windows Phone平台的软件生态确实没法比iOS,但是Windows本身可一直是桌面软件的主流。比如最近有朋友推荐给我一款叫做Popcorn Time的软件,他在我的SP3上安装好之后说,原来Windows版的客户端比Mac版的多了这么多功能,还内置Chromecast支持,直接让我又找到一个SP3的应用场景:家用免费高清播放器.

另外,为了能够在泡咖啡馆的时候写写东西,我也一直在寻找一款跟Mac平台的The Journalist

类似的Markdown编辑器,而最后的结果,就是我现在正在使用的这款:Downwrite。Modern界面,简洁好用!

DownWrite

相比之下,The Jouralist那种继承了苹果iTunes设计风格的文件管理现在反倒让我觉得非常不方便了。

而且作为促使我买Windows机器的原因之一,不得不夸赞一下Windows下的应用开发工具,特别是最新的Visual Studio, 默认改用暗色界面之后,真是令人大爱:

vs2013

另外,电磁笔和OneNote的配合真是画草图的利器,涂鸦完毕之后直接框选就能生成图片,对于创意人员,设计师来说,是生产力利器无疑。即使像我这种没有艺术细胞的人,也可在做软件设计的时候不用去UML工具里拖拽,而用简单的手绘软件流程架构图来记录自己的想法。

对于开发者来说,可能最大的一个问题是Windows对于脚本语言和命令行工具的支持不如类*nix系统的Mac OS,这个倒是一直是一个我没想好怎么解决的问题,Cygwin显然不够优雅,也许putty+Linux云主机才是更好的方案吧。

在纽约考驾照 May 2nd, 2014

传说在美国人们最恨的四大机构是:有线电视公司,航空公司,移动运营商和DMV。皆因为垄断运营,效率低下,服务质量堪忧。

其中DMV,全称Department of Motor Vehicles(机动车管理局)是唯一的一个政府部门,不但掌管交通事务,还负责发放居民身份证件。这种地方放在国内就是交警大队加居委会派出所,想想也够烦的。甚至还有一部恶搞的美剧《Reaper》把DMV的窗口设定为地狱办事处。

来纽约大半年之后,终于决定要把驾照给考了,于是趁公司搬家的档口抽空去了趟纽约的DMV。

在美国,考驾照是分两步进行的,第一步是学交规,验证身份,然后过笔试。笔试之后就可以拿到一个叫做Learner‘s permit的东西,然后就可以在有经验的司机陪同下开始学习开车了。等熟练之后再去路考,考试过了之后才能把Learner's permit换成正式的驾照。

今天一大早去考Learner’s permit,之前在网上查了相关的步骤和证件需求,纽约的DMV网站还是非常不错的:比如如何拿到Learner‘s Permit

去之前填写了一个申请表(MV-44), 除此之外就是所谓的六分证件(SSN卡3分,护照2分,信用卡或者借记卡1分)。

地点我本来选的是34街的License X-press,进去之后工作人员说考笔试不在这里,就给了我一个地址,沿着找到两个街区之外的一个新办公室,看起来是新修的,在地图上也都还没有。到了之后工作人员帮我领了号,领进去坐好,然后指示我关注哪些显示屏。感觉流程还是挺清晰的。

第一次考驾照笔试的流程包括:

  1. 检查证件。
  2. 视力检查,这个很有意思,检查方法是在一块纸版上写满字母,然后某些行用彩笔涂上底色,放在离你大概3米之外,让你按顺序读出特定颜色的字母。作为色弱患者本来有些紧张,但是最后其实还是挺简单的。
  3. 上机考交规,工作人员会让你选择考试所用的语言,然后指定一个机位号,你坐过去在触摸屏上点点点,20道题里对14道就可以过关。
  4. 拍大头照,每次拍证件照我都没穿对衣服...今天又穿了个横条纹的衣服活像囚服...
  5. 再次检查证件,确认地址姓名。刷卡交考试,拍照以及检查费一共73刀,拿到临时permit。正式的Learner’s permit会在两周内寄到之前填写的地址。

整个流程我花了约一小时,继上次办社会安全卡去了SSA之后,再次体验了一下美国政府部门的办事风格,总体来说还是觉得税没有白交的。人员都比较的和善耐心,流程标识也都比较清晰。拿到号之后,每办完一步,工作人员都会把新增的票据跟你的MV-44表格钉在一起,然后让你回去坐着等着叫号,整个流程有多个队列,但是一号到底,手里的文件也只有一份,所以很省心倒是。

剩下的就是路考了,作为国内三年多的老司机,觉得胜利在望了。

理发记 April 21st, 2014

天平座的码农有一个致命的问题,那就是身为天平,对审美有要求,但是作为码农,又真不怎么会审美。

具体到理发这件事情上,直到我走进这家木北造型才想起来,大概有个几年没有独自去理发过了。我总是很害怕理发,因为如果我一个人走进理发店,面对理发师想要什么发型的询问,大概我只会说一句话:给我剪短一点就好。

幸好小时候有老妈,长大了有老婆,特别是老婆还是各种美发机构的VVVIP,所以每次理发都是过去蹭她的卡,让她帮着找发型师,沟通需求,我坐着不动就好了。就连选这家木北,也是因为之前在北京生活的时候常跟她一起来。

然而这次出差的时间太短而时差又难倒,老婆拒绝陪同,老妈又远在老家,只能自己一个人来理发。

一走进这家店,就发现店里的小伙子没有一个头发是黑色的,门口的大电视正在放着欧巴国的舞曲。隐隐觉得自己打开的方式好像不太对……

还没回过身来,小妹就热情地迎上来说我们家老师有48元,68元,120元,180元这几款您选哪一款?为了不露怯,我咬着牙选了120的首席总监。

总监老师果然不同凡响,一上来就质问我:很久没理发了吧,为什么这么久不理发,为什么这么不在乎自己的形象?!

我答:因为穷。

这个答案被忽视了,于是总监老师紧接着就开始劝我尝试新发型,无非就是烫染卷。难怪现在的理发店都已经不叫理发店了,叫造型。

可是他们得理解不是每个人都需要天天怒发冲冠头顶彩虹的呀,都掏了造型的钱了,要个简单的洗剪吹服务怎么还是这么难呢?

在一番推销未果之后,总监老师给我招呼来了一个小弟帮我洗头,完事之后坐下来,光速开剪,光速剪完。期间不管我说什么,他都能把话题向着烫染方面引导。

“给我把旁边多剪掉一点吧”
“剪太短了了就会向两边扎出来,除非你烫个型,否则会很难看”

“那给我把后脑勺多剪掉一点吧,我头发软,长了之后后面都塌的,扎出来还好一些……”
“塌了好办啊,把发根烫一下,随便就能揪起来,有蓬松感一些……”

“……”

说起来还真是怀念以前学校澡堂门口5块一个头的理发店呢。

改变2013 December 30th, 2013

我写年终总结大概已经有几年了,去年却断了,今年眼看就要过去了,竟也是啥也没写出来。

想想看之前之所以写,其实主要是想总结经验教训,为未来做准备。然而人长着长着就会觉得未来越来越近,只是不是自己想要的那个,于是便灰心丧气。

不过今年算是值得纪念的一年,因为这一年的变化,大概是我上大学以来最巨大的,所以既然未来是一定被改变了,就接着总结展望一下吧。

去年是我在北京的第十个年头。七年求学,三年工作之后,对北京已经没有什么不切实际的梦想了,一直觉得自己是个外地人,身上唯一北京的印记,只不过是在这里患上的过敏性鼻炎。

快年底时,在到底是去谋求些改变还是继续混日子之间摇摆了很久了之后,我把我的微博签名改成了:大部分的时候,求不得只是因为不敢追求。

对于我来说,以往有太多的东西因为担心“即使努力了也得不到会伤自尊”而根本不敢去追求。又或者不知道自己应该追求什么因而没有尽全力。而等到人家得到了之后,碍于面子,就更不好意思承认自己想要。不知什么时候终于想通这是一个恶性循环,而且预感到这种畏缩的性格如果不改变过来终有一天要害死自己。我想大部分的人之所以一生碌碌无为,其实不过是因为年轻的时候没想明白自己要为什么而努力,等想明白自己要什么的时候已经老得动不了了而已。 

于是今年年初就开始了一些具体的行动,谁知道真的得到了改变的机会。之后的选择倒是让我苦恼了好久,要不怎么说天平座的人选择困难呢。

在北京,三藩和纽约之间最终因为种种原因选择了现在的城市,其间把一个人能在职场上犯的错误都犯了个遍。现在想来每一次都蠢得可笑,而今反思起来,却只有一个原因——感情用事。而现今及时到来的报应就是目前大约一百万美刀的预期税前收益损失,所以说年度职场心得大概就是“谈感情伤钱”吧……

当然也不是全无收获,虽然又重新开始了租房生涯,但是每日通勤时间从一个小时十分钟左右变成了十分钟,每日多出来这两小时,让我觉得人生突然多出了一些可能。另外因为住在岛上,空气也不错,因为雾霾停滞了一段时间的跑步也慢慢开始恢复了。更好的是,一直担心的鼻炎,居然也慢慢的减轻了症状。

工作上,2012年开始做的一个产品开始创收,但也因为各种原因被看淡了前景(此处省去吐槽若干),于是又投入了一个新产品,基本上跟去年一样,一个人吭哧吭哧琢磨一块,打算如果有机会的话在打磨和精工细作方面下点功夫。

总之,搬家算是我家2013年最大的一件事了,虽然因为这件事其他的一些事情处理得有些草率,也很对不起家人,但换个地方重新做人,感觉挺不一样。而从2014年开始,又将是新的奋斗了,新的城市,新的生活探索,新的兴趣,新的工作内容……令人激动,期待,紧张,焦虑……

但我想我的梦想最终还是在加州,不光是事业,还有阳光,汽车,公路旅行……

所以做一个简单的计划吧,就说三十五岁之前去加州,四十岁之前创业如何呢?

对,我现在就在这里说出来我想要!做一条鳍损鳞破的活鱼,总好过做一条标致的咸鱼。

 

其他的一些:

年度数码产品:Nokia Lumia 1020

今年买的数码产品不多,总的来说上半年因为觉得要搬家所以啥都没买,下半年则是因为搬完家穷到死所以啥也买不起。对Lumia 1020属于一见钟情那种,刚发布第一天就花299刀签下了两年的合约,至今觉得还是不后悔(当然可能也是因为iOS和Android是在疲劳了)。在习惯了之后,WP8的系统确实非常的流畅顺手,慢慢地应用也多了起来,最重要的是,现在出去玩,从来不用专门带相机了。

年度最投入网络社区: 知乎

其实知乎很早就开放注册了,但因为早期的邀请制和我讨厌饥饿营销和小圈子的天性就一直没有太关注,再加上要求实名,对国内互联网产品的节操的不信任又让我退避。后来作为上下班时间休闲时补充知识或看段子的渠道看了一段知乎阅读。再后来就忍不住吐槽的欲望注册了账号然后火速改了名……目前看来里面的内容还是挺丰富的,就是慢慢也有被写手占领的趋势……

年度编程语言:Go

在邓公的推荐下开始使用Go了,写了一些代码,觉得这个语言实在是一门很学术的人做出来的,却特别适合生产的的编程语言。简而言之就是写东西不费劲,改起来灵活性很高,但是语言本身不复杂,坑少。

年度运动:慢跑

最早慢跑是我在2011为了恢复因为踢球受伤的伤腿的运动能力开始的锻炼。但跑了两年之后,球没怎么踢了,跑步却越发上瘾了,可是被北京的雾霾一干扰,锻炼得很不规律,无论是对自己的体重还是身体素质改善都不大。到了新的城市,倒是可以好好规划一下了,最近刚买了一个Endomondo的Premium,准备好好跟着训练计划练习一下,今年因为搬家错过了北马还挺可惜的,争取明年跑纽马!

年度最大生活改进:通勤时间

感觉每天一下子多出了两小时,目前这几个月还处在适应期,也许到了明年,能够好好计划利用一下。这两年比较可惜的就是是连着两年都是在跟着新产品学新东西,看标准,看文档的时间多过静下心来读书。也许可以今后每天拿出一小时读读专业书或者闲书吧。

年度最满意照片:)

Manhattan

Happy New Year!

最近开始学习使用Go,真心意识到工具就是生产力,特别是对于对于一门新的语言来说。 自己琢磨了几天,又经xiaoqiang同学提点,算是折腾了一个比较顺手的环境,总结一下。

首先说,我觉得写程序需要的一个基本环境包括:

  • 顺手的文本编辑器(语法加亮,定义跳转,语法检查,自动补全与提示)
  • 查询方便的文档
  • 然后为了效率,我们还需要一个方便的功能,那就是常用代码snippet的展开功能。

编辑器方面,因为一直用的Vim,自然是接着用,好在Go官方的发布包里就提供了相关的Vim插件。假设你是使用Homebrew安装的Go。 直接将插件所在路径导入Vim的run time path就行,修改~/.vimrc:

set rtp+=/usr/local/Cellar/go/1.1/misc/vim
au BufRead,BufNewFile *.go set filetype=go
filetype plugin indent on
syntax on

这样就有了语法加亮,定义跳转和文档查询的功能。但是语法检查还是比较弱的,好在go无论是编译还是运行都非常方便,只需要执行命令:

$ go run xxx.go

就行,所以简单修改一下键映射: 之前写C++的时候喜欢用\rm快捷键来编译:

nmap <leader>rm :!make -j4 1>/dev/null<CR>

同理映射一个go编译的快捷键\rg,只需同样在.vimrc里面加入:

nmap <leader>rg :!go run %<CR>

至于代码的自动补全,我觉得对于初学者来说简直太重要了.

我之前一直使用omnicomplete,但是这货的配置实在太恶心巴拉,用上Mac和Vundle之后,经xiaoqiang同学介绍,爱上了clang_complete,安装方法如下,依旧是.vimrc配置(本文后面的代码,如果没有$符号开头,都是写在.vimrc里面的配置):

"for clang_complete
let g:clang_use_library=1
Bundle 'Rip-Rip/clang_complete'

可惜的是,clang_complete默认并不能支持Go语言的自动补全, 不过好在有https://github.com/nsf/gocode这个好东西。 安装起来也很方便:

$ go get -u github.com/nsf/gocode

成功之后,在$GOPATH/bin下面应该会有一个叫做gocode的binary。之后再安装一个Vim的插件vim-gocode来使用他,我使用的Vim插件管理器是之前推荐过的Vundle,有了它,妈妈再也不怕我不会安装Vim插件了:

Bundle 'Blackrush/vim-gocode'

然后,理论上咱们就可以使用快捷键<C-x><C-o>来进行代码补全了,但这个操作太Emacs了,小拇指要抽筋的节奏,不过我会告诉你还有supertab这个插件嘛?

Bundle 'ervandew/supertab'

像bash一样直接tab代码补全,帅不帅?

然后轮到文档的查询,其实使用Go自带的Vim插件的:Godoc 命令就已经能够实现文档查询了,但是如何实现一个更好看更快的查询呢,想象一个飞速秒开的MSDN?

这里推荐一下Dash,也是xiaoqiang同学向我热力推荐,并忽悠我花50块人民币买的一个Mac软件,Dash是一个集合了非常多的语言和框架的手册的查询软件,更爽的是它可以和很多其他的软件集成使用,其中就包括Vim,配置也很方便,依然是使用Vundle:

Bundle 'rizzatti/funcoo.vim'
Bundle 'rizzatti/dash.vim'

然后我自己照着手册又剽了一些常用的代码片段,什么打印啦,定义函数,type,interface啦,新建http handler啦等等。这样就能够使用常用的代码片段快速搭建简单的程序了。 这里推荐另一个插件snipmate:

Bundle 'msanders/snipmate.vim'

最后我们打开Vim,安装之前配置这些插件的bundle:

$ vim +BundleInstall

Ok,看看效果。

最后分享一下自己的Vim files 配置,供参考。
lobatt/vim_files

 

因为这个小破blog老是受over quota的影响不能访问,于是就想稍微调试一下资源使用,但是micolog这一坨代码真是不知道怎么下手。于是自然的想法就是先找出最费资源的地方,于是就发现了Google官方提供的这个工具——appstats

其实这个工具根本就不用安装,他已经存在appengine的环境里面了,需要的只是在自己的app里面打开它。

首先,需要在app根目录下添加一个appengine_config.py。

这个文件里的内容可以在app运行时对appengine的环境进行配置,是一个很早就存在但是很少有文档的玩意儿,以至于有人专门给Google提了个issue,最后才有了这份文档

要打开appstats,需要在appengine_config.py 里添加如下代码:

 

def webapp_add_wsgi_middleware(app):
    from google.appengine.ext.appstats import recording
    app = recording.appstats_wsgi_middleware(app)
    return app

 

然后如果当然需要配置app.yaml让自己可以通过web访问统计数据。

 

- url: /stats.*
  script: $PYTHON_LIB/google/appengine/ext/appstats/ui.py

另外,appstats只hook了google自己提供的库,所以限制了app必须使用google的run_wsgi_app来跑,不过人家特地说明了只是需要这么启动而已,你自己用django什么的没问题。

 

from google.appengine.ext.webapp.util import run_wsgi_app
def main():
    app = ...
    run_wsgi_app(app)

 

 

重新部署app,在页面上点几下,然后就可以打开app_url/stats来访问app的rpc统计信息了。

appstats

打开一看,原来是各种爬虫乱爬我的blog的feed导致datastore的读操作过多...

于是简单提增加了一下Feedhandler的结果的cache TTL,又是一个一行代码的改动...希望有用。

 

 

端午节去了趟日本,回来以后就开始拼命讨生活,连相机里的照片都来不及打理,本来想写个像样点的游记的也无力了...于是就贴些路上吐得槽和记录的一些杂七杂八吧...有空再补图...

一下飞机就被日本这个国家震惊了。

..more

一直觉得换成Mac之后ctags就不是很好用了,结果今天终于被要读的一堆代码搞烦了于是Google了一下...
果然真理越搜越明!

在这边: http://vim-taglist.sourceforge.net/faq.html

Are you using exuberant ctags version 5.0 and above?
The taglist plugin relies on the features supported by exuberant ctags and will not work with GNU ctags or the Unix ctags utility. You can use the following command to determine whether the ctags installed in your system is exuberant ctags:
$ ctags --version

然后google了一下,目前觉得Mac下最方便的解决方案还是用homebrew

$ brew install ctags

$ /usr/local/bin/ctags --version
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Jan 16 2013, 15:28:06
  Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net
  Optional compiled features: +wildcards, +regex

$ echo "let g:Tlist_Ctags_Cmd='/usr/local/bin/ctags'" >>~/.vimrc

就这么多。

 

帝都十年 September 9th, 2012

写完标题我就后悔了,一个人如果随随便便就能从自己生命里摘出十年来啰嗦,该有多老。

十年前的差不多这个时候,我是欢天喜地地跑到北京来的,而其实当时的我对于将来一点计划也没有,高兴不过是因为考上了大学,终于可以离开父母的管束而已。想想如果当初能料到现在的情况,还会来这里么?

十年里我经历了两次毕业,第一次毕业的时候,虽然并没有真的想过要在北京工作,但是倒还是对北京很有好感的,认为留在北京是找工作时的第一选择。直到第二次毕业,我才知道过去七年里北京变化了太多,才醒悟本科时根本没怎么出过校门,对它的好感无非来源于无知而已。

当你真真实实地想要在这里扎根下去,才会发现地有多硬。

或许这里曾经是逐梦的天堂,甚至曾经宜居过,但现在生活在这里本身已经成为了一种负担。

第二次毕业的时候,正是逃离北上广正轰轰烈烈的时候。可不知什么原因,还是留了下来,留在了这一个外地人无权买车买房,但却分享着一样糟糕的天气和交通的城市,还要被本地人阴阳怪气地说我们把他们的空气弄浑浊了,路弄堵了。

留在了这个权与利的中心,却没有权也没有利。也许我就只是懒,然后习惯了而已。

十年里,我眼见了帝都的大气与繁华,却没能收获哪怕一点点的归属感。偌大的城市,真正让我感觉属于我的,竟然只有郊外的家和城里的一个格子间。这城市里大圈小圈,大围墙小围墙,各种机构,最后想起来唯一感到有些温情的,也只有那个校园而已。而偶尔再回去家乡,却也已经陌生。用十年时间说服自己,这里不是你的目的地,有些残忍,但生活就是这般的善于撕磨。理想,激情,全磨了去,只剩下全力挣生活而已。

过去的十年,现在回眼望望居然都没什么值得纪念的,于是渐渐明白了为什么我的大学同学一个个都离开了这里。

而马上新的一个十年又要开始,因为生活,我却还只能从这里出发。

但我不想在这浑浊的空气里让自己的鼻炎继续严重下去;

但我不想在这里花我出不起的价格买了房却还生活得像个租客;

但我不想每天要浪费十二分之一的生命在通勤路上;

但我不想自己再努力工作,挣再多钱也只能活得像个蚂蚁;

但我不想在这里跟同样因生活所迫,拼命插队,鸡贼甚至犯罪的人一起争抢;

但我不想让自己为了生活还得低声下气地跟得势的傻逼打交道。


所以我想我下一个十年的终点,一定不是这里。


好像自从我的Nokia E71以来,我已经很久没有如此希望入手一个电子产品了,而对于Retina Macbook Pro的感觉,倒是像极了之前入手Kindle DXG之前的纠结。虽然消费主要靠冲动,但是决定之后是否后悔的,则是理性的分析。

于是干脆听取Qinqi同学在某个别的事情上给我的一个建议,建立一个Pros vs Cons列表,自己先理性分析一下,建好之后发现自己其实有些想法都是自相矛盾的,所贴在这里,也请各位能看到这个的给我提供一些信息或建议。

Pros:

  1. 老早就想切换到Mac。一来是因为工作原因,需要经常接触Linux shell,而Windows下无论是cmd还是powershell都不好用,cygwin这种的又实在是麻烦,虽然总有人说你搞个虚拟机,弄台服务器之类的,但总好不过手边spotlight一敲就有来得方便。二来呢,自从有了iPhone之后,总是克制不住自己想往上面装点自己写的东西的欲望,碰巧公司给注册了个iOS developer,反正闲着也是闲着。
  2. 其实Retina屏并不是我所在乎的关键,但是SSD+8G内存非常的必要。曾经在Apple店里面试着在一台普通15寸MBP上和一台15寸RMBP上同时打开Adobe Illustrator CS,基本上普通版速度上完败。而我在官方网店上进行自选配置后发现,光是256G SSD + 8G 内存的升级就让一台普通的MBP折合下来的价格比一台RMBP的价格还贵200刀了。何况,人家15寸的RMBP反倒更轻薄,重量跟13寸的普通MBP一样,这样算下来,RMBP的性价比就体现出来了。
  3. 既然下决心买了,何不买个好的?总觉得自己一直都是有些不敢追求,以至于很多时候想要的东西本来可以得到的都最终没有得到,或是从了一个打了折扣的替代品,其实也挺有想法想要从这次开始改变自己的这一性格习惯。

Cons:

  1. 实在是太贵了。在我的印象中,笔记本电脑早就已经是普通消费品了,但是这次RMBP16000+的售价(即使是在美国买也要2199 + 195.16 tax ~= 15258人民币),这个价位,相当于一个人去欧洲旅游十天的费用,我的汽车大概两年的无折扣全险,实在不是随便就能消费的一笔钱。一旦真的狠下了心,就得考虑投入产出比,就好像买了Kindle DXG就得使劲读书一样。 在目前工作主要使用公司电脑的情况下,新买另一台笔记本电脑能不能获得相应的收益,甚至是能不能得到充分的利用都是个问题,更别说家里客厅里还摆着一台 Sony SZ13没处理掉……呃。
  2. 即使是真要换Mac,也有其他的选项。例如清仓的老款,新款的13寸乞丐等等,反正不就是想要个shell和xcode么?从实际使用方面来讲,如果只是写代码,其实并不需要非常高级的配置,现今的潮流是产品和代码都走向云端,其实本地处理能力反倒不一定那么重要的。
  3. 硬件方面的顾虑。按照媒体的说法,本代RMBP算是试水产品,零部件升级非常麻烦,甚至被iFixit称为最难修的电脑。以后的升级维护成本恐怕不低。另外,新款CPU所谓的turbo boost其实并没有太大作用,而且风传ivy bridge只能算是Intel的过渡产品,所以有可能一年以后就会有处理模块和制造工艺都有显著提升的新款出现。

可能还有一些想法在最近不同的时期闪现过了我的头脑,但是基本上就这些吧。各位了解Apple产品的看官们请踊跃发言,欢迎补充优缺点,欢迎逐条批驳,欢迎赞助或拍砖。