3月1~20技术读报

1、Erlang不但是一种编程语言,而且它具有比编程语言更加贴近操作系统的一些特性:并发线程、作业调度、内存管理、分布式、网络化等。它具有超强的轻量级进程,这种进程对内存的需求是动态变化的。Erlang支持超大量级的并发线程,并且不需要操作系统具有并发机制。据说使用Erlang编写的Yaws Web服务器,其并发性能是apache的15倍!

进入Erlang的世界:http://www.iteye.com/wiki/erlang/1407-to-enter-the-world-of-erlang
erlang在分布式,高并发服务器很有应用前景

2、Andorid火爆程度?——java新手走android捷径不足一年月薪3w
张孝祥的广告帖及其背后隐藏的逻辑... ...

3、提高编程技能最有效的方法
.和比自己聪明的能力比自己强的人工作。学习他们的代码,他们的做事方法,看一看那些人是怎么处理错误的。

.总是倾听别人怎么说,无论那个的资历和职位是什么样的。

.实践,实践,实践,总是不满意于一开始出来的事。

.多问问自己,现在在写什么代码?为什么要这样写成这样?还有没有更好的方法?

.学习多样的技术,多多比较他们,并一定要了解各种技术的优缺点。

.总是问别人问好的问题。

.多回头看看走过的路,做过的事,写过的程序,感觉一下他们有多烂。

.多读读那些大师写的书。

.不要总坐在电脑前编程序,多做做运动,多到户外走走,和非技术人多接触,向他们学习。

——拓展:
.热情
.知道
.犯错
.回顾
.质疑

4、Ruby和Python如何选择?
对待语言,我感觉很多人在学习之前都首先去思考了它是否有生命力,是否有商业价值,是否会对自己的职业生涯带来更大的保障和更多的薪酬。从而小心翼翼的,在google寻找比较,关注高手们对它们的评价,担心它们的发展被停滞,害怕学习的努力成为无谓。我也是这样的人。这也常让我觉得自己成为了语言的奴隶。
语言是人设计出来的,尤其是脚本语言,几乎都是个人的作品。这样的语言必然体现出作者的哲学观和对待生活的态度。如果不是为了混饭吃,选择一个语言的过程也就是寻找共鸣的过程。

Ruby 和 Python都生机勃勃。我最终选择了Ruby,这个选择是基于肤浅的表面感觉的:我不太喜欢Python强制性的缩进。

观点1:python 和ruby 单从语言角度来看很相像,单python的社区要比ruby大的多,而且ruby能做的python都能,有ruby on rails,就有Turbogear,django,subway;但是python能做的ruby就不一定了(毕竟发展时间太短),python做 gui就比ruby成熟多了。

观点2:Python的类库支持比ruby多很多,这点ruby跟python不是一个档次的。做gui程序,wxpython已经相当成熟了,wxruby感觉还是beta的产品。做仿真,python有simpy,ruby没有。还有很多例子,ruby这方面跟python可以说完全不是一个档次的。

观点3:python和ruby的相同点:
都强调语法简单,都具有更一般的表达方式。python是缩进,ruby是类basic的表达。都大量减少了符号。
都是动态数据类型。都是有丰富的数据结构。
都具有c语言扩展能力,都具有可移植性,比perl的可移植性更好。也都可以作为嵌入语言。
都是面向对象的语言,都可以作为大项目的开发工具。
都有丰富的库支持。
也有最宽松的版权许可,除了一些工具属于GNU世界。
都有lisp特色的eval函数,也都能把函数作为参数。
也有图形界面的ruby的专门编辑器。
都获得了广泛的c库的支持。如qt、gtk、tk、SDL、FOX等,ruby计划实现SWIG接口。
都有完善的文档。
和python相比ruby的优点:

具有正则表达式和嵌入html的功能。python也有正则表达式,但没有ruby的应用方便和广泛。python的嵌入html项目才刚起步。 ruby还有apache的mod模块。ruby本身也实现和很多unix工具,如racc,doctools。比python更亲近linux。
比python功能更完整的面向对象的语法。
ruby的整个库都是具有类继承的结构。
他的基本的数据类型和运算符都是可以重载的。
ruby主要的功能都是通过对象的方法调用来实现的,而不是函数。python也在向这方面发展,但没有ruby做的彻底。
ruby的类是更规范的单继承,还有接口等概念的实现。
python可以实现在列表内的条件语句、循环语句,而ruby用“块”的方式来实现这个功能,比python的更灵活,更具有通用性。
ruby具有类似lisp的彻底的函数方式的条件语句、循环语句等。语句的表达能力更强。
附带一些unix工具,如racc等。
和python相比ruby的不足:

最大的不足正是因为ruby的强大所引起的。它没有python的简单性好。比较复杂的面向对象语法、“块”语法的引入、正则表达式的引入、一些简写标记都增加了语言的复杂性。
python的缩进表达方式比ruby的basic的表达方式更让人悦目,ruby程序的满眼的end让人不舒服。当然,ruby认为end的方式比python更先进。
ruby还没有python的“自省”的能力,没有从程序文件中生成文档的能力。
ruby没有国际化的支持。国际化支持在ruby的计划中。这是因为ruby的历史比python要短造成的。
ruby没有类似jython的东西。
python和ruby的语言的选择:

从简单的就是好的来说,选python是没错的。python适合寻找简单语言的人,这很可能造成python更流行,因此也有更多的支持。但如果要追求更强大的语法功能,则ruby是好的选择。因为ruby和python的哲学有很多相似的地方,先从python入手,尽量用python,如果 python的能力不足了,可以在找ruby。

ruby和python的比较,就像五笔和拼音输入法的比较。拼音作为入门的输入法和长久使用的输入法都没有问题。五笔适合更高要求的情况。如果追求性能的不妨学学ruby。对编程语言感兴趣,想了解各种编程概念的学ruby也会很兴奋。

类库:
python>ruby
OO(方便性):
ruby>python

观点4: javaeye老大robbion论ruby与python
http://robbin.iteye.com/blog/444015

观点5: Python的前景
Python在编程领域的占有率一直处于稳步上升之中,根据最新的数据,Python排名第六。前五名分别是Java、C、VB、PHP和C++. 作为一个很年轻的语言,Python的位置已经相当令人振奋了。随着微软将Python纳入.Net 平台,相信Python的将来会更加强劲发展。Python 很可能会成为.Net平台快速开发的主流语言。

著名的搜索引擎 Google也大量使用Python。更加令人吃惊的是,在Nokia智能手机所采用的Symbian操作系统上,Python成为继C++,Java之后的第三个编程语言!2006年的Google编程大赛已经将Python作为参赛语言之一,可见Python的影响力之巨大。

Python的应用
Zope-应用服务器
Plone-内容管理系统
Django-鼓励快速开发的web framework
Twisted - Python Network Application Framework Python的网络应用程序框架
TurboGears - 另一个Web应用快速开发框架
Bit Torrent - 著名的BT下载工具
更多python的著名应用可以参看该地址:http://www.python.org/about/success/

观点6:http://www.csharpwin.com/dotnetspace/1306.shtml

断点7:http://www.douban.com/group/topic/1000883/

——个人还是选择Ruby

DLR(dynamic language runtime)

5、国内知名站点的技术架构一览表
新浪:php
javaeye: ruby
python: 豆瓣
淘宝、土豆:java

有了zope/plone,twisted,gmail,豆瓣这些成功的例子,如果做大型的皮实的系统的话,还是python更让人心里塌实些。

6、语言简介
荷兰人编写的 python;瑞典的 erlang;日本人编写的ruby;

7、软件天才与技术民工
——薛涌《天才是训练出来的》读后感... ...

8、Java异常及其处理
http://www.ibm.com/developerworks/cn/java/j-lo-exception/index.html?ca=drs-#

9、你欠自己一个老学究的身份?
我喜欢看电视剧《豪斯医生》,我最喜欢的情节是他设法诊断一个人的病情时不是根据获悉这种罕见的病症,而是根据对身体各部位的运作的整体的了解,从而定位出真正的问题所在。
为了对开发环境有全面的了解,开发人员应该学习C语言
为我们自己好——读一读《C程序设计语言(第2版新版)》,学一些C语言知识。读一下《 TCP/IP 详解(卷1:协议)》这本书。翻一翻《Linux内核设计与实现》,通览一下其中有兴趣的部分

10、NoSQL就业形势分析:Cassandra和MongoDB最受欢迎

11、关于物联网前景
“物联网技术”的核心和基础仍然是“互联网技术”,是在互联网技术基础上的延伸和扩展的一种网络技术;其用户端延伸和扩展到了任何物品和物品之间,进行信息交换和通讯。因此,物联网技术的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,将任何物品与互联网相连接,进行信息交换和通讯,以实现智能化识别、定位、追踪、监控和管理的一种网络技术叫做物联网技术。

12、程序员需要具备的基本功能
环境方面分为如下几种类型:
嵌入式、桌面系统、企业级、Web、基础系统、科学研究。
语言分为如下几种类型:
C、C++、Java、C#、Php、Ruby等
但不管是什么情况,总是有一些通用的基本职业技能:
.阅读代码
.编写程序
.软件设计
.熟悉软件工程
.使用程序库或框架
.程序调试
.使用IDE
.使用版本控制
.单元测试
.重构代码
.自动化编译

13、使用Java web服务构建SOA
需要有一定的webservice基础的人才行,没有基础看起来很费劲,主要讲的都是jws。

14、搜11本队程序员最有影响力的书籍
.《代码大全2》
.《程序员修炼之道》
.《计算机程序的构造和解释》
.《C程序设计语言》
.《改善既有代码的设计》
.《算法导论》
.《人月神话》
.《设计模式》
.《计算机程序设计艺术》
.《编译原理》
.《Head First设计模式》
其他优秀的书籍比如《Effective Java》、《代码整洁之道》

15、程序员需要智力游戏吗
我编程已经有18年了。非常少的机会我需要解决复杂的算法问题。我喜欢编程并不是喜欢解决难题——我是喜欢设计。如何的方式能设计出一个大家都能理解的应用程序?什么样的工具能让开发者们获得更高的生产效率?
挑战性来自API(persistence.js接口)和编程语言(以mobl为例)。两者都很简单,强大,灵活,有用。这些都不是简单的活儿,但都跟算法没有什么关系。它们是设计

16、明确规划,乐于沟通
从普通的技术人员一步步成长为创业者,蒙洋认为明确的职业规划和高效的沟通技能对技术工作者最为重要。对开发者来说,唯一有效的方法就是动手实践,只有潜心钻研,虚心请教,精益求精,才能真正掌握技术的精髓。

17、李国庆陈年谈淘宝:细分领域竞争不过京东当当

18、多核浏览器概念辨析
.什么是浏览器的内核
浏览器最核心的部分是渲染引擎(浏览器内核),负责解析网页语法并渲染,展示网页。
.主流浏览器与其对应的内核
IE浏览器:Trident内核
Chrome浏览器:WebKit内核
Safari浏览器:WebKit内核
Firefox浏览器:Gecko内核
Opera浏览器:Presto内核
360浏览器:Trident内核
遨游浏览器2(Maxthon):Trident内核
世界之窗(TheWord):Trident内核
TT浏览器:Trident内核
Avant浏览器:Trident内核

.双核浏览器的意义
很多网上银行和支付系统只支持IE的Trident内核,其他浏览器访问根本无法进行正常支付和转账等业务。这就造成了经常在网上购物的朋友离不开 Trident内核的IE浏览器。但是Trident内核的速度和兼容性上又实在比不上Chrome浏览器的WebKit内核和Firefox浏览器的 Gecko内核。于是... ...

.插件方式的N核浏览器(伪双核):需要同时安装好IE和Google Chrome浏览器才能实现多核的切换,所以这种叫做“伪双核”(火狐所采取的模式)。

19、中国云计算调查报告
研究报告详细阐述了中国云计算先行者对待云计算的态度和方法:保持谨慎、关注结果。调查显示,88%的受访中国企业表示将于2012年开始使用、尝试或试验某种形式的云计算。
报告总结道:“云计算具有广阔的潜力,能够为中国大型企业和高科技企业提供支持,尤其适合数以百万计的中国中小企业,使它们能够以最低的成本和最低的管理负担使用信息技术

20、谁是互联网变局中下一代王者
... ...
.人性化平台将会是未来的趋势?囊括游戏、电商、资讯等
.对于人性”稳定"性的研究成果决定未来互联网的下一个方向
.个体将成为未来互联网的核心力量
列举了系列知名公司作为分析的对象... ...

21、不需要计算机的程序员(爱技术,乐分享)
程序员需要去站起来,多去思考。但经常的,人们在最后才会意识到这个问题。

22、2011程序员薪资调查揭晓:5年和5000元分水冷

23、代码风格一二三
A、命名鬼法
.全局变量使用稍长一些,可以描述清楚变量的名字;局部变量使用较短的名字就好。
.一致性
.使用有意义的名字
.函数名应明确的指出所做的事情,与代码一致,并能一定程度上体现返回值

B、表达式和语句
.有意识的显示出结构
.使用自然的表达方式
.在可能引起歧义的表达式处尽量使用括号,消除歧义
.使用简单的表达式
. 使代码清晰,不卖弄技巧
.一些表达式经常有副作用,需要引起注意,如array[i++] = i; 在不同的编译环境下可能会有不同的结果

C、一致性和习惯用法
.使用一致的缩排方式,和一致的花括号使用习惯
.使用约定俗成的习惯用法
.尽量避免使用宏

D、程序中的数字
.使用有意义的名字和表达式来代替直接试用数字
.使用常量来命名数字,而不是宏

E、注释
.不要过度注释
.对函数,全局变量,常量进行注释
.发现代码不合适的时候,改写它,而不是只进行注释
.注释要保持和代码的一致性
.用简洁的语言注释

24、程序员得到的报酬与他们的生产力不成正比

25、从洗衣机的排水问题看文档的重要性

你可能感兴趣的:(读书笔记)