iTimothy

君看一叶舟,出没风波里

0%

我人生中的第一台PC机,是初中毕业的时候购入的,由于是人生中第一台电脑,我还清晰的记得当时机器的配置:

  • CPU: Intel Pentium II Processor 233MHz with MMX
  • 硬盘: 昆腾 BigFoot 4.3GB
  • 内存: 32MB (是的,你没看错,就是32MB)
  • 显卡: Trident 9750 3D Image
  • 光驱: Philips 16X
  • 显示器: Philips 15寸

记得买机器的时候正值98年,也正是用电脑看VCD比较流行的时候,当时超级解霸成为电脑必装软件之一。这台机器作为当时比较不错的配置,花了大概8300RMB。这台能够玩很多的游戏,比如:Quake2,古墓丽影,极品飞车,世界杯足球98,仙剑奇侠传……

我也还记得,每当小伙伴来围观这台新电脑的时候,发出的惊叹:哇,硬盘4.3G这么大,我家的才600多MB…

阅读全文 »

缘于对机械键盘的喜爱,我经常在blog上写一些机械键盘的开箱和评测的文章,供喜爱机械键盘的爱好者作对比和参考。结果让我没料到的是,这几篇机械键盘的评测文章在搜索引擎排名比较靠前,以至于在我查看blog每天的访问流量统计数据的时候,大部分的来自搜索引擎的流量,都是指向这几篇键盘的评测文章。这是让我一直比较困惑的一个问题……其实,我的blog本来是个编程技术相关的blog,没想到反倒是几篇开箱文流量最高 -_-# 嗯,其实这是一个不务正业的技术blog……

阅读全文 »

关于Revel

Revel是一个高生产力的Go语言Web框架,原型是由Java的Play! Framework演变而来。其实除了Revel之外,Go语言的Web框架已经有很多了,这里就不再一一列举。就Revel框架本身而言,已经具备和提供了一些非常不错的特性,比如支持运行时的代码热编译(Hot Code Reload),提供诸多的组件,包括:路由, 参数解析, 验证, session/flash, 模板, 缓存, 计划任务, 测试, 国际化等功能。

虽然目前Revel正式release的版本还只是v0.12.0版本(2015-03-25 - Daffodil release),不过此框架已经有被应用到生产环境中的实际案例,并且并发性能良好。因此,Revel也成为我们最近一个项目的首选框架。

阅读全文 »

回想上一次的Blog更新,已经是去年9月份的事了,时间过得很快,2014还未来得及回味,2015已经匆匆而至。哥在去年学Go的时候,就有了一个计划,准备把之前那个用Rails实现的Vim-Tips.com改版,并重新用Go实现一遍。

其实,这已经不是Vim-Tips.com历史上的第一次改版了,下面是之前的几次更新记录:

这次由于全部用Go重写了,所以称之为“第二版”…

大致在去年六月底,我就开始了这样的尝试,并在Github上建立了仓库,开始搭建网站的框架。直到最近,终于算把Vim-Tips.com的第二版用Go给重写了,其实工作量算不上很大,因为工作繁忙的缘故,重写的中途暂停拖延了好几次,再加上时不时的拖延症复发,重写整站竟然跨了小半年的时间。不过回味一下重写的整个过程,还是挺有乐趣的,一边想着各种功能的实现,遇到问题一边google一边寻找解决办法,也算是对自己技能的一次提升吧。

第二版的站点,用Go的Martini框架实现,后台数据库依旧是MongoDB,Go有一个很有名的第三方模块:mgo,提供对MongoDB的访问支持。

阅读全文 »

自从哥把blog从WordPress迁移到了Octopress,整个blog页面都是生成的静态页面了,这样省去了动态渲染的过程,能让blog访问速度提高不少。Blog现在放在DigitalOcean的旧金山机房 (参见),国内访问速度还算可以。

不过,作为一个喜欢折腾的大叔,总想对blog的访问速度再进行一次优化。之前考虑过CloudFlare作为CDN加速,由于某种原因,国内访问CloudFlare似乎效果不太理想,遂放弃。后来,终于找到了一种可行的方案,就是利用Gitcafe的Pages功能。

阅读全文 »

前面的几篇blog文章介绍过,DigitalOcean是一家性价比极高的VPS服务商。最低的套餐是5刀的VPS套餐,我现在也用着这一款。我的blog和另外一个vim-tips.com站点都放在上面。用了已经一年多了,截至写这篇blog,VPS的在线时间也达到了接近414天。也就是说,从迁移到DigitalOcean开始,这台VPS已经稳定运行414天而没有因为掉电、宕机和其他的故障而重启。可以说,这家服务商算是相当靠谱的了。

不过,最近DigitalOcean又做了一件更靠谱的事情,就是通过邀请链接注册的新用户,直接送10刀的balance,如果用5刀的套餐,可以免费试用两个月了。之前通过邀请注册,是没有这样的福利的。

话不多说,放上我的邀请注册链接,想免费得10刀的同学去注册一个试试吧:https://www.digitalocean.com/?refcode=bb0acfa3427e

随着Blog的文章增多,文章的图片放哪里是个值得思考的问题。就像我的博客,最近开箱文比较多,嘿嘿,所以图片加载速度是个值得优化的地方。

我之前都是把Blog图片直接跟站点一起放在国外的VPS上,访问速度一般。最近发现国内的两家比较有名的云存储商:又拍云和七牛,都提供免费的云存储空间和流量。他们的空间都是专门针对国内访问节点进行优化的,所以,把博客图片用云存储加速是个不错的选择。

阅读全文 »

现今市面上的机械键盘所使用的轴,大多是德国Cherry公司所生产的MX轴。Cherry的黑轴、红轴、茶轴、青轴,几乎垄断了市面上的机械轴。

Cherry的MX轴,由Cherry公司自主研发,特点是:成本低,而且有技术保护。因此,这也成为很多机械键盘厂商难以绕过Cherry的MX轴,而自己去花成本去研发自己的轴的原因。

阅读全文 »

六月初的WWDC2014,可谓果粉们的盛会,除了新的操作系统带来的喜悦,我想,对于开发者们来说,更令人欣喜若狂的应该是苹果新推出的Swift语言了。

阅读全文 »

要说最近比较热门的东西,当属颠覆整个汽车行业的特斯拉了。不过今天要介绍的是一个跟特斯拉一样在网上很火的东东,叫做Docker。前段时间一直比较忙,其实关注到Docker也有一些时间了。最近两天看了Docker的各种教程和资料,并亲自动手尝试了一下,感觉Docker之所以火,确实有它的优势和原因。

阅读全文 »

Golang中的defer关键字实现比较特殊的功能,按照官方的解释,defer后面的表达式会被放入一个列表中,在当前方法返回的时候,列表中的表达式就会被执行。一个方法中可以在一个或者多个地方使用defer表达式,这也是前面提到的,为什么需要用一个列表来保存这些表达式。在Golang中,defer表达式通常用来处理一些清理和释放资源的操作。

貌似看起来比较难懂,其实,如果你用过C#,一定记得那个用起来非常方便的using语句,defer可以理解成为了实现类似的功能。不过比起C#的using语句,defer的行为稍微复杂一些,想要彻底理解defer,需要了解Golang中defer相关的一些特性。

阅读全文 »