Dead Code


今天在网上看到腾讯的一个实习生招聘题,里面提到了dead code,便上wikipedia查了下,解释如下:

在计算机编程中,dead code是指那些被执行但执行结果在其他地方没有用到的代码。dead code的执行耗费cpu时间但是结果无用。

dead code的执行结果没用也就罢了,但它还可能同时导致异常或影响某些全局状态,所以移除这些dead code可能会改变程序的输出,并且排除那些意想不到的bugs。

参考文档:

http://en.wikipedia.org/wiki/Dead_code

Read more ⟶

ASP.NET MVC Json()处理大数据异常解决方法


近几天一直忙于windows下的项目,rails的学习暂时搁置了,所以也有好几天没有用fedora了,博客大致也有一周没有更新。此博客本想只记录一些Linux平台下的相关操作,但这两天碰到的问题很棘手,虽最终得以解决,但不忍就此翻篇,想将解决之法记录下来,以避免今后再次碰到此类问题又得重头再寻求解决方案,同时也分享出来,避免其他人碰到此问题时多走弯路。所以便予以记录。下面切入正题:

先对项目做个简单介绍:

Read more ⟶

计算机启动过程


计算机启动过程的详细介绍请参考阮一峰老师的两篇博文:

  1. http://www.ruanyifeng.com/blog/2013/02/booting.html
  2. http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html

写的非常通俗易懂,真的很佩服阮老师的文笔,有时候自己写的博客自己都有点目不忍视,更何况别人呢。要达到这样的水平真的还有好长的路要走。加油吧

Read more ⟶

Ruby语言独特点


有时候真佩服别人的博文可以写的那么长,而且很有料,读起来也非常顺畅,而自己每次却不太善于总结,可能是平时积累的片段还不够,不足以总结,亦或是自己缺少这么一个总结性的思维,导致如今为止也没有产出一篇广为阅读的文章。不过即使如此,也没有打消我持续写博客的念头,不管好坏,不管是否有读者,我将会一如既往的写下去。正如哥哥的《我》:我就是我,是颜色不一样的烟火。每个人都有他存在的价值,无论高低贵贱,无论贫穷富贵,都有其独一无二不可替代的特性。所以无论自己的博文是否能带给大家一丝感触、一点帮助,我都会坚持,因为这也是对我自己学习的一个总结,同时也想尽力贡献一份自己的力量来帮助他人,但我想更多的还是能帮助自己,以便为未来某一天突然需要回味从前的知识提供便捷。我想这便是写博客的初衷。下面进入正题吧:

Read more ⟶

Vim常用快捷键总结


Vim的学习之路真的很长,永远有记不完的命令,永远会突然冒出一个新插件。不过我总算从Vim的荆棘中一路走过来了,现在真的是苦尽甘来,时刻体会它带给我的喜悦和惊奇。下面对我所学习所了解到的常用命令做一个基本总结:

###Normal mode:

>> indent current line

n>> indent the next n line

. repeat last command

m,n>> indent from m to n line

== autoindent current line

n== autoindent the next n line

gg=G autoindent the whole file

Read more ⟶

instance_eval vs class_eval


Ruby中类其实也是Class的实例。而且instance_eval必须由实例来调用,class_eval必须由类来调用。具体参考下面的实例:

	class A
	end

	a = new A
	a.instance_eval do
		self #=>a
		
		def test
			puts "this is a singleton method of instance a"
		end
	end

	a.test   #=>this is a singleton method of instance a

	b = A.new
	b.test   #=>NoMethodError
Read more ⟶

搭建Git服务器


从开始用Git到现在也已经有一年时间了,但一直都在本地开发,用于管理本地的代码,没有进行多人协作开发,所以也没有必要搭建一个Git服务器。

但就在昨晚,我在教研室给大家介绍Git工具时,感觉大家对这个工具貌似没有太大的热情,猜其原因,可能是因为大家对这个工具过于陌生,而我又讲的太过细节,所以他们可能听得有点烦。但是只有试过之后才能感觉其方便之处,我也希望教研室的同学都能掌握它,所以便决定在教研室搭建一个Git服务器,供大家使用,也思索着今后的项目都用git来进行管理。毕竟现在教研室只有我一人使用git,其他同学都用svn,甚至不用(其实用svn的同学不超过3个),开发项目也难以统一,而我个人在使用过git后又不想转向svn,同时也非常希望身边的同学也能去使用git这么一个优秀工具,所以只能忽悠他们转向git了。不过经昨晚一役,证明了我忽悠人的本领完全不到家,看来今后得好好练练了。前奏有点过于冗长,下面进入正题吧。

Read more ⟶

更新Octopress


现在已记不清接触Octopress多长时间了,只依稀记得当时配置Octopress配了好久,然后依然失败,后又忙于其他的事情,所以搭建工作便搁置一旁,七月中旬时间比较充足,所以又开始再次折腾,后来终于搭建成功,所以7.18便发表了第一篇博客。后来一个月之后又开始了我的换肤工作,一切都好,唯一的缺陷是Gravatar的图像没有显示出来,所以便向theme的作者发问,后来也忘了这茬事。就这样又过了一月,直到今天,突然发现我的unread消息里面有几条关于我的message,便打开浏览,才发现作者给的回复,说图像没显示是个bug,现已修复。具体见:

https://github.com/shashankmehta/greyshade/issues/42

我便立马更新了我的Octopress。更新方法如下:

# Get the latest Octopress
git pull octopress master    
# Keep gems updated
bundle install               
# update the template's source
rake update_source            

具体参考:

http://octopress.org/docs/updating/

参考时请务必注意:如果您的octopress主题不是octopress默认主题,请不要执行rake update_style,否则会被还原成默认主题。

本博客采用的主题为:

https://github.com/shashankmehta/greyshade

Read more ⟶

VirtualBox安装ArchLinux系统


都说ArchLinux很适合折腾,趁今天有时间,就试着安装了一把,不过看ArchLinux的Beginners’s Guide,照着其步骤来,结果还是看的云里雾里,看的人头大。便直接上Youtube上找了一个视频,顿时豁然开朗。安装概览如下:

##ArchLinux Install

  1. 分区
  2. 格式化分区
  3. 挂载分区
  4. 更改安装镜像
  5. 安装基本系统
  6. 生成fstab
  7. Chroot到新系统
  8. 配置系统
  9. 开启网络服务
  10. 创建初始化ramdisk环境
  11. 设置root密码
  12. 安装配置bootloader
  13. 卸载分区并重启系统
  14. 安装图形用户界面

详细步骤如下:

###1. 分区

虚拟机挂在iso镜像后,然后启动系统,进入后默认进入root提示符,然后输入:

root#cfdisk

进行分区,一般分三个即可。最后分区结果如下:

dev/sda1 / 8G
dev/sda2 /swap 1G(在空间最后)
dev/sda3 /home 4G

每个人的分区情况都可能不同,具体依照自己的分区来决定,以下操作都是根据我的分区来进行。

Read more ⟶

Cookies vs Sessions


Http是无状态的协议,客户端给服务器发送请求,服务端响应客户端的请求,会话结束。这样两次会话间不便没有任何关联。但有时候需要在会话间进行信息共享,如:购物车,保存用户名与密码等。为此,cookie与session便诞生了,它们的存在就是为了弥补http协议无状态的缺陷。

cookie与session最大的不同是:cookie保存在用户的浏览器中,而session则保留在服务端。正是这种不同决定了它们的不用使用场合。

cookie机制是通过扩展http协议来实现的。服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的cookie。其实纯粹的客户端脚本如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器端。

cookie主要内容包括:Name,Content,Path,Domain,Expires(过期时间)等。Domain与Path一起构成cookie的作用范围。

若不设置Expires,则默认的cookie生命周期为浏览器会话期间,一旦浏览器关闭,cookie则会被清理掉,这种生命周期为浏览器会话期的cookie被成为会话cookie。会话cookie存储在内存中而不是在硬盘上。

若设置了Expires,浏览器则会把生成的cookie保存在硬盘上,即使浏览器关闭后再打开,cookie依然有效,直至超过设置的expires。

另外,session大小有限制,一旦浏览器禁用cookie,则采用cookie的购物网站便不能进行购物,所以这时候得用session了。

Read more ⟶