2013年1月27日

过去的一个礼拜总体来说还算是充实,虽然我认为还可以更高效。

学习方面,读过两本书,一本是《打造 Facebook》,另一本是《现代操作系统》。对于第一本书,用了多半天的时间一口气读完了,很痛快,简单写了一篇读后感。第二本书说实话还没有读完,进度有些慢,不过也无所谓,看这种书质量还是最重要的。

看操作系统的书还是好几年前的事情,现在再次看对很多基本概念又有了新的理解,对已经忘记的基础知识做了巩固。我觉得,对于这些基础知识花些时间是值得的,因为这些知识很多不是仅仅看一遍书就可以马上理解的,需要不断的实践,不断的感悟,才能把其中一点一滴的理解渗透在你所写的代码中。这些基本功的训练表面上看没有那么炫,而且也不能立竿见影,但却决定了你未来对代码理解的高度。

人们总是有很多理由忙于眼前看似很急的事情,却往往忽略掉更重要的事情,而且这些重要的事情往往需要花费大量的时间才能完成。然后,日复一日,年复一年,重要的事情总是提不到日程,不断的被这些不是很重要而又很急的事情所困扰,从而陷入恶性循环当中,疲于应付。

我觉得上述状态不是一个良性的。这几年也接触了一些不同类型的技术,虽然仅仅从使用角度来讲算是有点经验,但总感觉这不是一个正确提高的路径,因为每当其中一些技术过时之后,你总会有种莫名恐慌的感觉。总体感觉就是被各种花哨的技术拖的疲惫不堪,仿佛有一个天花板挡住了你迅速、准确的看清这些技术的本质。

说到这,让我想起了另一个话题。现在市面上不是说急需T型人才么,我想这种状态可能因为一直在书写笔画’一’,而忽略了第二笔’|’,下一步我觉得应该好好写第二笔’|’了。

扯的有点儿远了,呵呵。总而言之,我觉得我应该重新夯实一下基础知识了,然后结合实践不断的理解基础知识,尽可能的根据理论,有理有据的指导代码的编写。话说,磨刀不误砍柴工,开始的时候速度总会有些慢,要有信心和耐心。虽然社会现状非常浮躁,不过这也反衬出踏实肯干的难能可贵,不是吗?

除了看书以外,看了极客公园关于创新大会高峰访谈的\视频,简单说两句,关于开复老师的对话,我觉得对于像我这种个人发展来说,没有什么可借鉴的实际意义,讲的很多内容都是关于方向和未来 5 年左右的预期判断,从公司的发展角度来看,或许更有指导价值。当然了,你也可以从中借鉴一点,比如下一跳你想跳到哪里:D。关于李彦宏的对话,讲了百度公司的一些文化和应对移动互联网的具体措施,对个人学习基本无用,基本上是在推销百度。由于本人对百度不感冒,在此不做多讨论。关于对话李学凌,我觉得是干货最多的,建议有时间的朋友可以看一下,可以学到一些营销策略的经验,对于寻找你的用户群还是有借鉴的经验的。这哥们一看就是程序员出身,说话很实在,不像那些大佬,整个一个卖鸡汤的。关于对话阿北,虽然我比较喜欢豆瓣,但是鉴于阿北同学说话很快,声音又很低,在下没有能坚持看完(♪───O(≧∇≦)O────♪),在此不表。关于对话王小川,基本上一直都在推销搜狗,对个人学习没什么借鉴意义。最后关于对话老施同学,全可以作为 Google 的粉丝瞻仰一下。

另外,看了关于 RUBE 工具的教学视频,基本掌握了 RUBE 工具的操作,可以创建一些简单的场景。作为回报,为 Chris 发现了一个 bug,哈哈。

在淘宝上买了一双鞋,大小还比较合适,不过不合脚,不知道磨合一下能不能凑合穿,以后还是到实体店试着去买吧,鞋这东西要是不合适就受大罪啦。同学们,切记呀!血淋淋的教训啊~!

关于 OpenGL ES 的学习,看了看,还是先把手头上的资料看完再说吧,以免贪多嚼不烂。

最后,今天早上 Twitter 上传来意外的喜讯,心目中 Bond 乐队的一位女神 follow 我啦,哈哈!

2013年1月17日

自上一篇博客快有两个星期了,间隔有点长了,有时候想写点儿东西,但是总觉得积累的又不够,然后又想再积累一点再写吧,然后就这么拖呀拖呀,时间久了不知不觉就有点狗熊掰棒子的感觉,想了想,以后给自己定下一个规矩,向伞哥同学学习,每个礼拜写一篇,当作周记,技术文章另算。嗯,就这么定了,Y(^ _ ^)Y。

这些天都在琢磨下一个 app 到底如何做,其中主要还是一些技术学习和摸索。另外也包括后面的版本管理和推广问题。

此次我不准备用 cocos2d 相关的游戏引擎,主要是觉得此次这个 app 主要涉及画图,和游戏开发还是有很大区别的,具体关注的点不一样。另外也想从零学习一下 OpenGL ES,因为觉得想用 Box2d 做点好玩的东西,基本画图还是避免不了的,索性还是自己动手吧,就算是重新造轮子啦,呵呵。其实也不算了,如果做的好,说不定可以用 OpenGL ES 封装出一套专门在 iOS 上开发图形的类库,以供娱乐呀。当然了也可以为以后在 iOS 上开发点其它 app 积累一些工具嘛,呵呵。

关于 OpenGL ES 2 的学习资料,只找到了一些相对比较老的英文教程,而且主要都是 3D 方面的,而且都是一些非常入门的内容。此次我只想用 OpenGL ES 2 渲染 2d 图形,而且想学习一下可编程流水线进行图形渲染的技术,找来找去只看到,一本中文翻译的《OpenGL ES 2.0 编程指南》算是比较新的了,其中主要以 OpenGL ES 的可编程渲染管道为主线,以 shader 文件的编写为基础,依据不同的渲染阶段分别进行了讲解,由于其译者的水平有限,前半部分看的还比较清晰,后边就越来越乱了,感觉可能还是要回头看下英文版吧。

整体看下来,基本对最新标准的 OpenGL 渲染管线有了还算清晰的整体认识,也对顶点着色器和段着色器的编写有了基本的认识。老实说,图形学的坑还是很深的,简单画几条线还好,要想真正玩转不下点功夫和时间是不行的,而且对数学的要求又蛮高的,所以还是要做好“吃苦耐劳”的思想准备啊,:D。另外,在图形渲染这块,还有一点需要考虑,就是如何在 OpenGL ES 中做并发,WWDC 大概讲了一下关于这方面的问题,具体怎么做我想还是要仔细考虑一下。

关于 Box2d 方面,看了一下 Chris 开发的 RUBE 编辑器,觉得做的还是很牛 b 的,想以后用 Box2d 做点东西的同学可以了解一下。工具可以生成 cpp 文件和 json 格式的文件,既可以在 web 上用,又可以在本地开发使用。功能还是蛮强大的,还可以使用脚本编辑,不过感觉工具的快捷键还是蛮多的,一看就是 Linux 流派的人,呵呵。另外八卦一下,他人还是不错的,会讲日语,中文也能看懂一点点,呵呵,所以英文不好的同学也不用担心,有问题尽管问他好了,反正他中文也不好,哈哈。

剩下数据库方面,想想就用原生的 Core Data 吧,耦合低一点,想换以后也可以再折腾嘛。

其实,重点还是图形的渲染和 Box2d 方面。关于 OpenGL 我还买了两本书,一本称为蓝宝书的《OpenGL 超级宝典(第五版)》,还有一本是《交互式计算机图形学》。蓝宝书大概翻了一遍,作为入门学习感觉不怎么样,作者自己封装了一套库,隐藏了很多 OpenGL 原生的 API,虽然作者的好意是想避开一些“无用”的细节,但同时带来的负面影响也让初学者感到混乱。当然了,你可以去查看他封装的源代码,但这部分代码书中并没有讲解,需要自己去理解。第二本书还没怎么看,书也很新,也是基于 OpenGL 着色器讲解的,到时候看完了再说吧,哈哈。

扫盲Git

扫盲了一下 Git,以后想用 Git 作为版本管理工具。

前两天粗略看了两本关于 Git 的书,一本是《Pro Git》(貌似需要翻墙),另一本是《Git权威指南》。第一本书讲的比较基础,主要是对于 Git 的基本使用,其中包括基本的命令行操作,Git 服务器常见的搭建方式,以及使用 Git 的常见工作流。第二本讲的就比较深入了,较深入和详细的剖析了 Git。以前没怎么用过版本管理工具的同学可以先看下第一本,然后再看第二本,直接看第二本让人有点儿晕。

大概翻完这两本书后,琢磨了一下,要是不想把自己的私人代码开源,又不想给 Github 送 Money,还想多学习一点技术,怎么办呢?想了想最划算的办法就是自己在 VPS 上用 Git 建立一个私人的代码库,以后想玩开源了再移到 Github 上。反正 VPS 闲着也是闲着嘛,要充分发挥其作用。

在 VPS 上搭建简陋的 Git 代码库非常容易,只要安装上 Git 就满足最低要求了,PUSH/PULL 代码就直接用 SSH 连接就好了。而且 Xcode 正好原生支持 Git,用 Xcode 作为开发工具,上手就更容易了。粗看了下,基本上点点鼠标就 OK 了。工具嘛,最重要的还是使用。从最简单的点入手,边使用边学习,要比干巴巴的抱本书看感觉效果要好。再者 Git 的命令繁多,关键还得不断的使用才能熟练掌握。对于 Git 的命令行什么的这里就不啰嗦了,网上一搜一大堆。

至于为什么非要折腾个版本管理,其实还有一个想法,就是想把自己平时玩的东西做一个规范的管理,以前自己瞎折腾的东西要么最后都删除了,要么就是遗忘了,最后也找不到了,干脆有的根本就想不起来是什么了,想想挺可惜的,不管怎么说,都是自己曾经的见证啊,跟写日记有相同的感觉。有时候看到几年前写的代码觉得也蛮好玩的,尤其是发现当时带有个人情绪写的注释。呵呵,现在看来会有不一样的感觉,也许当时并不这么看。

另外,本博客的文章我也用 Git 备份到 VPS 上了,以后如果 Mac 系统出现什么问题,博客什么的也不会受到影响。呵呵,有点像是有了一个锤子,把什么都当成钉子的影子。无所谓啦,工具就是拿来用的,再者说谁规定 Git 只能用来管理代码呢?有了好的工具就应该多利用嘛,对硬盘上有价值的文件或代码我要统统管理一下,哈哈!