有关实习的一些感受


前几天看了一篇文章,现在依然清晰的记得其中大意:

人一生其实很短暂,只有30000天左右可供挥霍,所以请认真地对待每一天,抓紧时间做自己想做的事,不要给今后留有遗憾。

细细思索一番,我的人生已过1/3,而其中的大部分时间却没有主动选择自己想过的生活,没有走自己想走的路,顿时心生悲哀,失落之情不禁涌上心头。二十五载的不断尝试、不断摸索,终于找准了自己人生的方向,已是万幸,接下来便是坚定不移的走下去了。也许随着年龄的增长,眼界心界不断改变,方向也会随之变化,这我无法左右,未来的事谁能说的准。唯一能做的就是坚定不移的走当前已确立的路,同时记录自己人生的历程,以此慰藉当前的心,同时也算是给未来的自己留一扇观察当前自己的窗。

一月之余不写博客了,感觉无从写起。生活太过平淡,太过安逸,以致没有什么可值得念叨值得回味的故事,唯一记忆较深的当属实习之事了。自从12年上半年接触Ruby以来,一直断断续续的学习,时而放下,时而拾起。就在上上周(4.25号左右),无意在RubyChina上看到一则西安Ruby&Rails实习生招聘的信息,而且对实习生的技能要求我也符合,便给他们回邮件并附上自己简历,过了不到一天便给我回复让我去聊聊。听到“聊聊”这词,以为只是搞技术的人之间相互交流,不需要再带纸质简历什么的。结果刚到之后,公司前台人员直接来一句:“你带了简历么?”,我顿时伤了,心想电子简历都给你们发了,不一样么,还带什么纸质简历,经过这次算是长知识了。由于是小公司,老板是搞技术的,所以直接和老板聊的。聊完之后便让填个人基本信息,在填的过程中发现来了Rubyists圈子的一位朋友也来应聘,而且也是Rails,我俩的不同就是我是实习,他是正式。只想说西安Rubyists圈子很小,我了解认识的Thoughtworks大概占了70%以上,剩下的就是当作业余爱好来学习的,比如我。

Read more ⟶

Git远程分支的一些操作


我是个爱折腾的人,昨天晚上突然看着自己的博客主题不爽,便立马将其从原先的Greyshade换到现在的Cleanpress。换完并构思一篇新博客之后,再次提交到GitHub上,得到提示此分支滞后于GitHub上,采用git pull又产生了太多冲突,冲突少手动解决还可,太多更改起来太麻烦,便萌生推掉远程分支重新提交的念头。可之前从未对远程分支做过相关的操作,只是偶尔删除远程库上的单个文件而已,又不得不求助Google了。碰到问题在解决过程中总是会学到很多,并且记忆深刻,现予以记录,方便自己,也回馈社会。

删除之前先查看远程分支,在确定的情况下再作删除,以致不会删错。

查看远程分支

采用git branch -a可查看所有的分支(本地+远程),而git branch -r仅显示远程。如果打开颜色支持,还会看到远程分支的颜色与本地不同。

Read more ⟶

随时随地用Octopress写博客


Octopress所依赖的环境是Ruby和Git,所以要使用它写博客,必须先确保目标机器上已经安装Ruby和Git。有时候可能需要在新的环境中创作,那么得进行以下的一些操作了。在讲操作前先简要介绍下Octopress如何工作。

Octopress是怎么工作的?

Octopress默认有两个分支,即master和source。source分支主要存储用于生成博客的源文件,而master分支则主要包含生成后的博客。master分支存储在_deploy文件夹中,之所以以下划线命名,是因为在执行git push origin source时,下划线开头的文件夹会被忽略掉。

当然,也可以创建自己的分支,但master分支一般主要用于存储生成后的博客,而博客源文件则可以自己新建分支存储。我目前在原有的基础上新建了newtheme分支,用于更改主题后的博客源码存储,以前的源码存储在source分支。

创建本地Octopress库

在新环境中写作时,需要进行以下几个步骤:

Read more ⟶

有关安卓刷机的一些感受


![](img /images/20140330.jpg) 生命的乐趣在于体验各种新奇,每次尝试都会从中收获兴奋和快乐,同时也会有小小的成就感。但伴随这些快乐的往往是挫折,所以偷偷乐的同时也要正确看待这些不愉快的成分,其实他们就是生活的调味品,在充斥欢乐的时候来点不和谐的东西往往让人记忆深刻,生活需要刺激。

平时一直都处于神游迷离的状态,突然脑中会闪过一丝新奇想法。这不前几天玩三国杀玩到吐的时候,突然闪过刷机的念头,于是在晚上将近12点的时刻,开始了刷机之旅。网上有关各种机型的刷机教程早已铺天盖地,随处可见,也有刷机过程时出现的各种问题。我也将加入这一行列,成为其中一员。

Read more ⟶

C语言中的Segment fault问题


![](img /images/20140315.jpg)

什么是Segment fault?

a segmentation fault (often shortened to segfault) or access violation is a fault raised by hardware with memory protection, notifying an operating system (OS) about a memory access violation; on x86 computers this is a form of general protection fault.

以上为Wikipedia对段错误的解释。用通俗易懂的话来说就是访问越界,访问了不存在或者受操作系统保护的内存,通常都是由于数组越界或者指针引起。

产生段错误的原因

  1. dereferencing NULL
  2. dereferencing an uninitialized pointer
  3. deferencing a pointer that has been freed/out of scope
  4. writing off the end of an array
  5. recursive function that uses all of the stack space
Read more ⟶

2014西安归途随笔


从1月20号到现在已有20多天了,说长不长,说短不短。回家的这段日子里很惬意,每天睡觉睡到自然醒,吃就更不用说了,无论在哪都不及家里吃的放心舒心,至于住么,家里自然比学校宿舍舒服多了。唯一美中不足的就是缺乏学习的氛围,不管多闲,都没心思整理开题报告,学习便更不用说了。一开始将其归结于家里没网,不过仔细琢磨下还是学习的气氛不够,导致自己变得懒惰。幸好在家呆的时间不是很长,不然真的要懒得无以复加。

本来回去之前便已将回程票买好了,买的2.16的,从武昌走。原计划是提前去武汉玩两天再走,毕竟武汉哥们好几个,随意蹭个吃住不成问题。哪知导师开始催(其实也谈不上催,就QQ上发了一个他专署的?而已,顿时感觉情况不妙,赶紧问问教研室的同学,没想到同级的都去了好几个,而且老师前几天给他们说了句:研究生应该过完初十就来的,这。。。不敢久留,立马抢了张12号的票),便匆匆踏上了回西安的旅途。

Read more ⟶

vim插件之surround.vim


Surround.vim插件简介

[Surround.vim] 1 是一款关于括号、引号和xml标签匹配的插件,可以成对的添加、修改和删除。当然也可以自定义匹配项。下面就常用的功能分别对标记的添加、修改和删除一一介绍。

添加

如现有一文本Hello,wolrd。光标处在文本中,然后输入ysiw",文本变成:

"Hello,world"

yss则将光标所在的当前行全部添加标签。如yss)则将当前行用()包围。

Read more ⟶

回首2013,展望2014


回首过去这一年,无论从技术还是思维上,都有很大的提升,但要我数萝卜下窖似的列举出来,我还真的列不出。只清楚地记得以下几件大事:

  1. 将博客从CSDN迁移到Octopress上。之所以迁移到Octopress上,是因为Octopress基于Jekyll,而Jekyll采用Ruby语言实现,恰巧我又迷上了Ruby。另一个原因是Octopress采用Markdown语法实现,排版更方便,简单的几个符号便能搞定,而且更美观。自从用了Markdown语法排版后,腰不酸了,腿不疼了。剩余的时间则可投入写作,何乐而不为呢?最大的好处是易迁移,只不过现在暂时还没有切身的体会,想想罢了,毕竟托管到GitHub上对于目前阶段已经够用,不必花钱买VPS,但不排除以后有钱了弄个VPS折腾下。那时候迁移也方便,所有的博客都是通过Jekyll引擎将markdown格式的文本转换为静态的Html文档,简单的拷贝下便可以了,而且还可以很方便的进行备份。其实与他人协作共同管理博客也是轻而易举的事了,只不过目前没这必要。
Read more ⟶

Tmux常用操作总结


以前也写过一篇关于tmux的文章,大概对tmux从简介、安装到操作已有简单的介绍,但由于是刚使用tmux时所写,总感觉操作部分写的不是很好,不够全面,所以便出现了此篇,算是填补前一篇的不足吧。

前边的操作前缀是Ctrl+b组合键,这两个键相隔甚远,操作起来太别扭,后来便在~/.tmux.conf配置文件中更改成Ctrl+a前缀了。具体配置见GitHub上我的tmux配置

Tmux常用操作

####1. 新建Session

$tmux new -s sessionname

####2. 杀死指定Session

Read more ⟶

拆机过程中的一些收获


昨天吃完午饭后来到教研室,突然师妹说有个远程(其实只是充分利用教研室的旧机器,在上面发布一些教研室的web项目,还有做为版本控制器的服务器)机器现在不能远程了,尝试关机不得所以强关,然后重启便无法启动,而她的数据在上面。所以我便开始了肢解之路。

由于几乎没有拆台式机的经验,所以拆机过程花费时间比较长,尤其是机箱外盖的拆卸。毕竟是旧机器,没有什么拆机教程可供参考,所以只能摸索着前进了,最后还是使用了点暴力手段才卸下的。拆开后,首先看了下是不是由于接口松动导致无法开机(其实连我自己都不相信是接口松动导致,因为强关不可能导致接口松动吧,可能是为了自我安慰才想到是接口松动的缘故),查看了一番,便很快排除这个原因。突然想强关的后果很可能就是导致硬盘坏掉,但是起码也应该进入BIOS吧。便猜想是不是电源坏掉导致的原因,老师刚好这时候也出来了,看到我在拆着机,便问我什么情况,我便跟老师一五一十地把情况汇报了一番。然后老师便去隔壁(其实是老师所在部门的办公室)找了一台不能用的机器,我拿过来之后卸下电源重新换上去,当然其中还有不少接线的问题还摸索了一阵,最后才发现电源存在的作用:

Read more ⟶