在做PHP开发的同时,不可避免的会使用linux。好吧,即使你不精通linux,你怎么着也得会一些常见的命令吧,不说高深的东西,最起码你要会cp,mv,chmod,chown,tar之类的,否则,你连文件都无法移动位置。
国内在02~03年左右,鸟哥的私房菜大概是影响了很多人吧,由于我一直是在win下,所以LINUX接触不多,但也确实听说了这个。这次看到这篇博客,里面介绍了好多的书籍,所以复制了一下(自己也有过LINUX的书籍,被人抢走了。。。。)
来,上菜了。。原文来自:http://www.cnblogs.com/wwang/archive/2011/01/27/1944406.html
入门类
一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用。鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这个系统都是必不可少的一个环节。
现在的Linux初学者是幸福的,随着Linux桌面环境越来越易用,入门一个新的系统是非常容易的事情。虽然命令行对于提高工作效率更加有 效,但我们完全可以把熟悉命令的过程放到日常使用中进行。无论学习什么知识,在实践中学习都是高效而且有趣的。在这个阶段,我们也未必一定需要书籍。现在 很多Linux发行版的Wiki写得都非常详细,在使用某一种发行版时找到相应的Wiki阅读查询就可以了。而且,桌面环境变化太快,关于桌面的介绍类书 籍几乎都没有必要看,这类书籍大多刚一出版就过时了。
那入门类书籍里哪些比较有价值呢?我比较推荐涉及的技术相对比较稳定的书。比如,Linux基本的体系结构和命令一般都是经久不变的,甚至从上古时期的Unix开始就没太多变化,这类书籍讲解的知识也是以后大幅提高我们的生产力的基础。比如《
鸟哥的Linux私房菜》,比如《
Unix Power Tools》(中译名是“UNIX超级工具”),或者是为Linux+认证考试准备的《
Linux+ Study Guide》。当然,这一类书籍其实都不必精读,快速浏览之后作为工具书备查就可以了。
编程类
但是,APUE对于Linux编程初学者似乎稍深了一点,而且很多细节在Linux中并不会用到。讲述Linux编程的书籍里,《
Advanced Linux Programming》应该更加适合初学者。不要被书名中的“Advanced”吓到,书里的内容还是很容易理解的。看完这本书再看APUE应该效果会更好。
如果要开发GUI程序,上面两本书就无能为力了。在Linux世界里,最常用的GUI Toolkit是GTK+和QT。
内核类
对于Linux内核或者设备驱动的开发者,最全面最直接的学习资料一定是Linux内核代码及其文档。Linux内核的发布周期很短,相关书籍 的出版完全跟不上脚步。但随着内核代码的日益庞大,学习曲线越来越陡峭,入门者又非常需要书籍来作为指导,这确实是非常矛盾的事情。所幸,很多Linux 内核技术作家也是很勤奋的,经常会更新自己的作品。就像Robert Love,以2.6内核为蓝本的《
Linux Kernel Development》已经更新到第三版了。LKD是非常适合内核初学者阅读的一本好书,对它的评价可以引用陈莉君老师的译者序:
相对于 Daniel P. Bovet 和 Marco Cesati 的内核巨著《 Understand the Linux Kernel 》,它少了五分细节,相对于实践经典《 Linux Device Drivers 》,它多了五分说理。可以说,本书填补了 Linux 内核理论和实践之间的鸿沟,“一桥飞架南北,天堑变通途”。
工具类
工欲善其事,必先利其器。进行Linux开发,相关工具还是需要熟练使用的。比如,GNU Tool Chain、自动构建工具、编辑器、版本控制工具等等。
其它
除了以上几个类别,还有一些书籍值得推介。
这是在cnbeta上看到的,发现确实值得收藏啊。。。
不光可以欣赏到这样的周期表,而且,确实都是有效链接(以后省得找了,而且也可以根据这些分类也进行细分查看)
cnbeta的地址是:http://www.cnbeta.com/articles/133399.htm
google的地址是:http://code.google.com/more/table/
jquery在1.5的时候多了一个subclass,代码大约如下:
JavaScript代码
- subclass: function(){
- function jQuerySubclass( selector, context ) {
- return new jQuerySubclass.fn.init( selector, context );
- }
- jQuerySubclass.superclass = this;
- jQuerySubclass.fn = jQuerySubclass.prototype = this();
- jQuerySubclass.fn.constructor = jQuerySubclass;
- jQuerySubclass.subclass = this.subclass;
- jQuerySubclass.fn.init = function init( selector, context ) {
- if (context && context instanceof jQuery && !(context instanceof jQuerySubclass)){
- context = jQuerySubclass(context);
- }
- return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass );
- };
- jQuerySubclass.fn.init.prototype = jQuerySubclass.fn;
- var rootjQuerySubclass = jQuerySubclass(document);
- return jQuerySubclass;
- },
很多看到这个代码的人都认为这个功能是用来优化插件的,因为现在jQuery的插件越来越多,有类似功能,类似名称的插件也越来越多了,所以,同名插件带来的困扰也就更多了。
未来怎么办,jQuery鼓励用户开发插件,但插件总不能老是给用户带来麻烦吧?所以这个subclass就成了新的插件机制所必备的方法,利用subclass来创建一个新的实例(即所谓的继承,当然也能覆写父类[jQuery]的方法 )。
只是这样的频繁继承,肯定会造成效率降低吧。怎么样既能继承,又不降低效率,这恐怕就是未来jQuery团队要考虑的事情了?但是否靠什么behavior这种行为的方式来加载呢?现在都在讲究这种行为触发性的插件。jQuery是不是未来也会采用这种方式呢。
最近发现自己发牢骚的次数多了,也不知道是为什么,或许是为了那些所谓的不满?
确实,生活中和工作中不满 的事情太多了,但也不应该一直挂在嘴边挂在手里。
毕竟,发牢骚其实不能解决问题,而且只会让自己不快乐。而且过多的发牢骚也只会让听你发牢骚的人也开始有所不满,或者被牢骚不满,或者对发牢骚的我感到不满。或许他心里也有牢骚,并发起来更加不满而已。。。
决定,乘着新年快到之际,告诉自己少发牢骚,多做点事。把手头的事情做做好,该做的都做好。不要浪费青春,青春没有多少时间可以被浪费了。。
swfupload这个控件,只要是涉及到多文件上传、大文件上传,那么就几乎应该是听过这个控件的名称的。
确实,它解决了不少问题,就象我所提到的多文件上传、大文件上传,但也有很多问题存在,从最早的版本到现在,经历了很多问题的改变。。
1、最早的那个SESSION问题。IE和FF的swf下session传递会不一致。这个问题我在09年就遇到过了,记录在[2009-03-09] - 备忘:swfUpload注意事项 。这个问题最初官方的DEMO里并没有提到,在后来的版本里才有涉及。。。现在DEMO里已经有了
2、我用的uploadify这个封装的插件,如果URL路径中含有“//”,在这个时候,如果JS中的路径是相对路径,比如“../../js/xxx.swf”之类的引用,那么,在上传的时候就会出现security error。这件事情我记录在[2011-01-21] - 开发笔记记录 。
3、就是今天遇到的问题,在chrome下面上传的时候出现http error。bobby查了一下资料,发现问题和2中的有点相似,2的问题是采用相对路径的时候,路径中不能有“//”,但chrome下则是,不能有相对路径,当把JS中指向swf的路径換成URL可以访问的路径后,OK一切正常【firefox全部正常】
4、不知道是uploadify封装的有问题还是什么 ,在某些IE下就是不正常。比如我win7 IE8,上传图标不显示,但有的同事就显示了。几样的win7 , IE8(也可能是因为我是64位的??),但某位朋友在xp IE下也不能显示,郁闷了。。准备換到YUI自带的uploader上看看
好吧,就记录这么多了。。。