2012年3月3日星期六

Linux把窗口快捷切换到最前的方法


在Linux使用的时候,可能需要来回切换窗口,需要把某个窗口提到最前来,也就是激活,如果没有打开此程序,就先打开。例如经常需要把字典调出来。在Windows下的有道字典就有这个功能。在Linux可以更加方便的对任何程序实现此功能。这里需要用到wmctrl工具。

在Ubuntu下,首先安装:
sudo apt-get install wmctrl

wmctrl的用法有很多,可以使用多种方法来控制窗口。这里主要用到如下功能:
wmctrl -a "window name"

这里-a参数表示激活(Active),后面接窗口的名字,这里并不需要完全精确匹配,只需要是目标窗口的一部分就可以,例如:wmctrl -a "pdf"就可方便激活pdf阅读器(因为pdf阅读器的窗口名字会根据文档名字变化,.pdf是唯一不变的)。

接下来实现:没有打开此程序的话,就直接打开,否则直接激活此程序。可以使用如下脚本,保存为/home/tom/bringToFront文件,第一个参数表示程序名,第二参数表示窗口名(或者窗口名的一部分)。
#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi

并且给此文件增加可执行权限chmod +x,就可以这样使用次脚本了:
./bringToFront chrome "Chrome"
这里会先执行查看是否打开了chrome,如果没有开打,就打开,否则,把Chrome窗口激活。
PS:后来发现有人用了更加简单的方法实现:
wmctrl -a "winname" appname


最后,就是绑定快捷键,Ubuntu的keyboard程序,能够非常方便的实现自定义快捷键绑定:
例如:就定义了几个常用的程序的快捷键如图所示。


参考网址:

2012年2月29日星期三

VIM使用小技巧-重新载入文件


有时候要使用VIM打开了一些文件,但是在其他地方把次文件改动了,例如使用git进行checkout等操作,需要重新载入此文件。

1 重新载入当前文件:
:e
:e! #放弃当前修改,强制重新载入
2 重新载入所有打开的文件:
:bufdo e 或者 :bufdo :e!
:bufdo命令表示把后面的命令应用到所有buffer中的文件。

参考网址:
http://stackoverflow.com/questions/1272007/refresh-all-files-in-buffer-from-disk-in-vim
http://vim.wikia.com/wiki/Run_a_command_in_multiple_buffers

2012年2月27日星期一

MS实习结束了

从去年10月27日,到今天正好四个月了,明天就要Check out了。四个月,也是我经历最长的一次实习,这里说说我的体会。

1 面试
经过朋友的内推,首先接到电话面试的通知,第一次电话面试,可能也被公司的名气所震慑,感觉很紧张。面试经历了一个小时,基本上全是算法。最后一个算法磕磕碰碰,在面试官的提示下,算是得出了结果。忐忑等了一个星期,得到去公司面试的通知,全程三个小时,三个面试官,都是算法,并且直接在白板上写Code。拿到了实习的offer,实习三个月后,公司安排了正式员工的面试,整个流程差不多,面试过程都是算法并写Code。最后一面是级别比较高的Manager,首先要英文做自我介绍,我顿时就懵了,因为前面所有的面试都是中文,措手不及啊,结结巴巴没有说出几句来。然后就是聊聊实习项目和体验,自己的优缺点,为什么想来这里等一些常规的问题。因为前面形成了思维定式,以为会全是算法,想不到最后一面会这么“文艺”,完全没有准备,自认为表现非常的不好,但是很庆幸最后得到了offer。
MS面试算法算法是王道,准备算法好算法,而且要注意和面试官交流。面试官并不是要看到你会多少算法,还有很重要的是你解决问题的能力,遇到难题,能不能积极思考,并得出解决方案。算法固然重要,但是也要准备常规的面试问题,例如英文自我介绍(外企必备的),自己的优缺点等。我个人很认同MS的面试方式,算法为主,也不会有太难的算法,面试官都很nice,会引导你解决问题。

2 工作
公司上下班的时间非常灵活,没有固定上下班时间,因为公司以结果为导向,只要能够完成任务就可以。大家上下班的时间都比较灵活,Mentor和Manager也不管你什么时候到。实习生请假也比较容易。这是我最喜欢的地方之一。
原则上,MS对实习生有很完善的培养计划和目标,因为从实习生Review和One-One制度上都可以感受到,虽然执行的时候可能会有些偏差。公司的开发工具完全是使用自己的一套,有些并没有对外发布,所以有时候出了问题,搜索都困难。有太多的工具,在我四个月的实习时间里面,很多东西都没有搞清楚。
让我非常惊讶的是公司的办公系统。Email、会议、IM、远程协作都是原来可以整合的如此完善和方便。工作上交流都是英文,自己的Writing skill可能有些进步,但是很遗憾的是,在这段时间里面,并没有联系自己的口语。

3 生活
必须说的是公司的福利确实非常好。可以玩的东西确实很多,乒乓球、台球、桌上足球等。免费的早餐、饮料、水果吃得很happy。不过食堂确实有些小贵啊。

4 后记
办完了Check out手续,交上门卡那一瞬间还是有点不舍。Mentor送我的话是:祝贺你快要正式踏上社会!

2012年2月14日星期二

写给你

我们在一起已经0了。想写点东西送给你。

End

2012年1月1日星期日

2011已经过去

今天已经步入了新的一年。回首一下,想不到“世界末日”的2012年来的这么快。大家各种总结,我也尝试着回忆一下我的这一年。平时觉得自己过的很混乱,每天都感觉都差不多,但是试着回忆一下,却发现这一年经历了这么多事情。

春节刚回到回家,惊闻妈在工地上做事,出了事故,小腿骨被压骨折。回家第一件事情就去跑去躺在医院病床上的妈妈,脚上打着石膏,本来就瘦削的面庞,有明显被疼痛折磨的痕迹。看到妈妈这样的状况,顿时眼泪涌出来。还遇到黑心的老板,不愿意赔偿,朴实的老百姓,哪有什么公平可言啊。在过年的前一天,妈妈勉强出院回家过春节。妈妈已经年过半百,还在做着只有二三十岁的年轻人能胜任的体力活,不管风吹日晒,酷暑严寒,都需要在高空作业。曾经弱弱的和爸妈说,您歇着吧,不要再出来干这种活儿了。爸妈总是摇头说,你还没有参加工作,虽然你上学不需要什钱,但是,家里的日常支出也是不小的负担的,等你工作了再说吧。我语塞。

开学后,快要面临毕业的事情,开始找实习。幸运的进入创新工场实习。在李开复名声的召感下,非常憧憬和珍惜这份实习。实习过程中经历了很多,加班、团队、创业、产品、开发等等,很多东西都让我有了比较直观的认识,并且亲身参与其中。后来还换了几次实习,分别到阿里和微软,算是各种类型的公司文化都有体验,实习让我收获很多,也让我失去了很多。在实习中遇到的人,现在想想都感觉很美好,谢谢我遇到的每一个人。世界很大也很复杂,圈子很小也很单纯...

六月三十号开始我不再单身,开始进入我这个年龄的人都期待了无数遍的恋爱生活。可能是命运,也是实习给我的馈赠。在一起也有半年的时间,不是算长也不算短,也经历过很多事情。出去玩、搬家、做饭、甜蜜、吵架、抚慰。有付出,也有幸福。有压力,也很舒服。在恋爱中,很容易让一个人变得透明,所有的性格和脾气都可以暴露无遗,甚至被放大。两个人走到一起不容易,一直走下去却更不容易。不成熟的我,给我们的感情带来很大的影响。我也知道后面的路很长,摩擦一定还会有,期望我们能好好走下去。期望能到修成正果的那一天。

8月的一天晚上,我和正常的时间一样给家里打电话,却感受到电话那头传来异样的气氛。我一直追问下去,果然,家里有事,事情远远超出我能承受的范围--爸爸可能得了肺癌。晴天霹雳一般,我买了第二天的票赶上了回家的火车。在省肿瘤医院,爸爸的检查结果出来,确诊为中晚期。妈妈从家里打来电话,妈妈在那头号啕大哭,我也在这边泪如雨下,却极力控制自己的声音...命运,你为什么这么做弄人,我可怜的爸爸,从我记事起,就一直忙忙碌碌,为了我们找个家,为我们这几个孩子,什么不能吃的苦都吃了,什么不能受的委屈都受了,什么样的穷日子也都过了,在我即将成人独立的时候,在我即将有机会让爸妈能够停下来的时候,在我爸爸身体慢慢虚弱的时候,却还要然这样恐怖的恶魔来这么我爸和我的家人,难道我们家受的苦还不够吗,命运要这样来作弄,多么希望命运之神突然发现自己弄错了,只是不小心开的一个玩笑,明天就告诉我这一切都是假的。我甚至到目前都不敢接受这样的事实,无数次从梦中惊醒,说真的,我害怕了。“子欲养而亲不待”,爸!我是不孝的,这么多年来,我从来没有孝敬过您,一直觉得以后有的是机会,等我挣钱再来孝敬您,可是发现可能连这样的机会都可能会没有了。可怕的恶魔,你为什么要这个时候出现,我不解...我不解...

因为要找工作,我回到北京找工作。在实习的同时,准备简历,网上海投简历,接下来,奔跑各地赶场笔试,面试。有时候在同一天参加六七个面试,而且在不同的地方,几乎一天能踏遍北京东西南北。好多天下来,简历或者面试之后就石沉大海,疲惫和沮丧几乎都要把我击垮。谢谢yq在我身边陪伴和鼓励,谢谢同学之间的相互帮助,我们都走过来了。找工作尘埃落定,本来就不胖的我,也掉下来几斤肉。

2011年,对我来说,是噩梦般的,也是有惊喜的。命运2011年给我的一切我都接受,2011都过去了,新2012也来到了,祈祷2012命运的垂青,让我爸爸好起来,期望我的家人都健康幸福!

2011年12月16日星期五

在Blogger中添加代码语法高亮

对于一个码农,博客中有代码是不可避免的,语法高亮也是博客的必备功能了。之前在Google App Engine使用Micolog搭建了一个自己的博客系统,那里添加代码高亮插件是十分简单的。因为所有文件都可以自己上传和定义。

但是怎样在Google提供的博客系统Blogger添加代码高亮功能呢?在网上搜罗了一下,果然什么都有。因为Blogger系统提供了完善的模板系统,可以通过修改博客的模板来达到目的。 首先,代码高亮当然是使用顶顶大名的SyntaxHighlighter插件,官方地址: http://alexgorbatchev.com/SyntaxHighlighter/。现在需要做的就是怎么把它整合进入我们的Blogger的模板。

具体操作如下:
  1. 进入您的相应的博客的后台,选择“模板” or "Templete";
  2. 这里可以选择自己喜欢博客整体布局,然后点击“修改Html”;
  3. 打开了模板的html代码,如果你是网页设计高手,这里您就可以大展身手了。如果您看到这个些密密麻麻的代码,完全晕了,不要紧。找到这样的标签对b:skin。把如下文件中的代码加到标签对b:skin的CSS定义之后:
    http://syntaxhighlighter.googlecode.com/svn/trunk/Styles/SyntaxHighlighter.css
    这里使用Google Code上host的SyntaxHighlighter.css,所以不用自己把里面的代码拷过来粘在这里了。
  4. 然后在里面找到标签/head,在这之前添加如下代码:
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    这里是添加syntaxhighlighter的语言javascript文件。
  5. 最后,找到标签/body,在此标签之前添加如下代码:

    这里是让语法高亮处理生效。到这里全部设置已经完成。为了保证您的编辑没有错误,可以首先预览一下,确认无误后再保存。
  6. 具体的用法是,如果在写文章的过程中需要输入代码段,可以,具体做法如下:在写博客的时候切换到HTML模式,在相应的位置输入,下面是一个例子:

    Put your code here...

参考网址:
http://heisencoder.net/2009/01/adding-syntax-highlighting-to-blogger.html
http://yacoding.blogspot.com/2008/05/how-to-add-syntax-highlight-to-blogger.html