随笔分类 -  1.x.1 科普

摘要:Urs Hölzle是Google的基础架构高级副总裁。作为Google的前10个工程师,他为Google的基础架构建设贡献颇多。1988 年,Urs Hölzle在家乡的苏黎世联邦理工学院获得计算机科学博士学位并获得了富布赖特科学奖学金。1994年,他又在斯坦福大学获得博士学位,那时他的研究内 容集中在编程语言及其高效实现。他和David Griswold(现Google通信研究员)以及Lars Bak(Google Chrome V8的开发者)一道基于这项研究开发了一个名为HotSpot的高性能Java虚拟机,被Sun公司的业务部门JavaSoft(后更名为Sun Mi 阅读全文
posted @ 2012-12-12 18:51 ajian005 阅读(209) 评论(0) 推荐(0)
摘要:图例: “->” 表示有一个明显的迁移过程。语言使用趋势: 汇编 -> C -> C++ -> ?(是Java,Python....)一、操作系统:Microsoft Windows :汇编 -> C -> C++备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果因为写出来的程序太慢,实在无法和别的模块合并,最终又回到C++重写。相信很多朋友都知道WindowsVista,这个系统开发早期比尔盖茨想全部用C#写,但是最终因为执行慢而放弃,结果之前无数软件工程师日夜劳作成果一夜之间被宣告作废。Linux :CA 阅读全文
posted @ 2012-11-30 16:45 ajian005 阅读(322) 评论(0) 推荐(0)
摘要:原文地址:Some things I’ve learnt about programming —- ByJohn Graham-Cumming我已经从事编程 30 年了,用过的机器包括从现在看来很差的(基于 Z80 和 6502)到最新的,用过的语言包括 BASIC,汇编语言,C,C++,Tcl,Perl,Lisp,ML,occam,arc,Ruby,Go等等。下面是我学到的一些关于编程的事儿:0. 编程是一门手艺而不是科学或工程编程更接近于一门手艺而不是科学或工程。它是技能和经验的组合,它需要通过工具来表达出来。一个手艺人会选择特定的工具(有时候他们会自己去做)然后学习用它去创造。在我看来这 阅读全文
posted @ 2012-11-24 20:51 ajian005 阅读(169) 评论(0) 推荐(0)
摘要:2006 年,波兰程序员Jaroslaw “sztywny” Rzeszótko (亦称 Stiff)写了一篇文章《Stiff asks, great programmers answer》,不过原英文链接已挂。Dodgy Coder 的博主近期从 Stiff 那得到允许,把文章转发布在他的博客中《Q&A With Nine Great Programmers》。以下为全文。在一个炎热无聊的下午, 我突发奇想。 我通过公众可以取得的电子邮件地址列表, 向一干牛人们提了 10 个问题, 他们都是我认为很有趣, 而且很佩服的人, 都干了很多大事。 我只用了 5 分钟来准备这些问题 阅读全文
posted @ 2012-11-23 17:48 ajian005 阅读(273) 评论(0) 推荐(0)
摘要:“当你50岁时,还愿意编程吗?”这个话题在Hacker News上众说纷纭,不过我们能够看到,那些真正成功的程序员,如John Carmack、Peter Norvig、Jeff Dean,即使他们不再年轻,但依然对编程充满热情,他们身上有哪些与众不同之处,又有哪些值得我们学习?有人进行了总结。1. 选择当前科技领域的一个小子集,亲近它、拥抱它,并且尝试推进这个小领域的发展。2. 理解不同数据结构和算法的优缺点,不单是内存中,还有磁盘上的表现。3. 首先深刻理解你所在的领域,然后抛开计算机,像普通用户那样观察和体会。4. 时刻准备好(包括能力和心理上)向深层探索,不仅仅是一两层,而是好几层。要 阅读全文
posted @ 2012-11-23 16:52 ajian005 阅读(263) 评论(0) 推荐(0)
摘要:不要成为工具的奴隶作者: Dai Yuwen在这个技术至上的时代,人们往往深陷于对“更好的工具”的无止境的追求中,不知不觉地忘了使用工具的目的是什么。没错,好的工具代表了更高的水平—工具制造者的水平,但对使用者来说,未必如此。工具本身不代表水平人们往往用工具本身来代替工具所要表达的内容。比如音响器材发烧友以高保真设备来显示自己对音乐的欣赏水平;暴发户用镀金高尔夫球杆显示自己对体育运动的热爱;而我们普通大众以为买了高清数字电视,电视节目就会好看起来。工具容易入门等于效率高吗?现代社会的浮躁气氛使人们钟情于上手就能学会的工具,似乎这就体现了效率。如果偶尔用个小工具,这当然是正确的。否则,还是要考虑 阅读全文
posted @ 2012-11-23 16:40 ajian005 阅读(342) 评论(1) 推荐(1)
摘要:作者:Eric Steven Raymond译者:刘海粟 (此文部分内容参考Ken Lee前辈的译文)本文的PDF文档可以从这里获得。为何有此文章? 身为《黑客辞典》[1]和其他一些知名文档的作者, 我常收到热心的网络新人的电子邮件, 问及“如何可以成为一名神奇的黑客?”。 早在1996年我便注意到,好像还没有任何一个“常见问题”或者网络文档论述过这个重要的问题,于是我决定撰写此文。我相信很多黑客都在考虑我现在考虑的这些问题。然而,我并不认为我在这个问题上是唯一的权威,如果你不认同下面读到的这些内容,那请你写下你的看法。如果你正在阅读离线文档,那么你可以在这里找到本文的最新版。本文的装饰物—— 阅读全文
posted @ 2012-11-23 16:35 ajian005 阅读(575) 评论(0) 推荐(0)
摘要:黄小非译注:本文作者 Peter Norvig 目前任职于 Google,其职位是研究主管(Director of Research). Peter Norvig 是享誉世界的计算机科学家和人工智能专家。他是AAAI 和ACM 的会员,是业界内经典书籍《Artificial Intelligence: A Modern Approach人工智能:一种现代方法》的作者之一。在加入 Google 之前,他曾经是 NASA (美国航空航天局)计算科学部门的主要负责人,并在南加州大学以及伯克利大学任教。以下为译文。英文原文:Teach Yourself Programming in Ten Years 阅读全文
posted @ 2012-11-23 14:30 ajian005 阅读(261) 评论(0) 推荐(0)
摘要:计算科学数学理论浅谈以前,总是对于数学的学习嗤之以鼻,认为没有很大的实用性,这也是为何后来跨专业考研的一个重要动机,但是随着后续学习的深入,逐渐体 会到了数学在现实工作中的分量,而这种对思考的能力的锻炼在初期可能是无形的,但这是的确存在的。我的理解是数学可以说是一种内功的锻炼,而对于语言和基 础计算机知识的学习是架式的学习,而更多的人可能偏向于后者(包括我自己),因为这种成就感在开始阶段是显而易见的。但是到了后期,如果只停留在后者的学 习,长期发展下去的结果大概只是能够熟悉使用各种开发工具和语言的熟练工,而不能再向高层的水平发展,或许这种想法有些偏激,只代表了一家之言。但这并不 代表计算机方面 阅读全文
posted @ 2012-11-01 19:28 ajian005 阅读(604) 评论(0) 推荐(0)
摘要:转载自:http://legendsland.wordpress.com/2012/06/06/literate-programming-%E6%96%87%E8%89%BA%E7%BC%96%E7%A8%8B/(译注:这篇文章是 Donald Knuth 一篇1983年的论文:Literate Programming 的介绍部分。有人翻译为“字面编程”,是极其错误的说法,literate 根本就没有“字面”这个意思,字面的英文单词是 literal, literate 意指能读能写,Donald Knuth 同时也认为编程是一门艺术,因此将其译为“文艺编程”,甚为妥当。论文发表近30年,未见 阅读全文
posted @ 2012-10-25 19:30 ajian005 阅读(386) 评论(0) 推荐(0)
摘要:第零章 博学审问慎思明辨笃行 博学之(学习知识),审问之(保存知识),慎思之(保存知识),明辨之(分享知识),笃行之(使用知识,创新知识) - 中庸 第一章 你的知识问题 第一节 有知识才有安全 我们依靠什么? 核心竞争力、赖以生存的知识和能力 第二节 你的“无知”现状 个人的成长和发展以及个人竞争优势的建立依靠什么? 对整个知识过程的管理才是现代发展竞争力和竞争优势的源泉。 Google提供的Notebook工具(主要功能是记笔记,当看到某一内容后产生自己的想法的时候可以随手记下来) 百度提供给的社会性书签工具-百度搜藏 第二章 学习知识 第一节... 阅读全文
posted @ 2012-10-14 23:38 ajian005 阅读(315) 评论(0) 推荐(0)
摘要:信息系统项目管理师考试大纲一、考试说明1.考试要求:(1)掌握信息系统知识;(2)掌握信息系统项目管理知识和方法;(3)掌握大型、复杂项目管理和多项目管理的知识和方法;(4)掌握项目整体绩效评估方法;(5)熟悉知识管理和战略管理;(6)掌握常用项目管理工具;(7)熟悉过程管理;(8)熟悉业务流程管理知识;(9)熟悉信息化知识和管理科学基础知识;(10)熟悉信息系统工程监理知识;(11)熟悉信息安全知识;(12)熟悉信息系统有关法律法规、技术标准与规范;(13)熟悉项目管理师职业道德要求;(14)熟练阅读并准确理解相关领域的英文文献。2.通过本考试的合格人员能够掌握信息系统项目管理的知识体系,具 阅读全文
posted @ 2012-08-12 14:47 ajian005 阅读(407) 评论(0) 推荐(0)
摘要:最常被程序员们谎称读过的计算机书籍马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。大多数程序员真正读过的计算机书籍代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!程序员修炼之道(Th 阅读全文
posted @ 2012-06-28 13:55 ajian005 阅读(250) 评论(1) 推荐(1)
摘要:所有成功的大公司都有好的商业模式,很多大公司的 兴起,不是靠技术的革新而是靠商业模式的转变。当我们的社会进入文明时代后,商业总是伴随着生产力的进步而发展。挣钱原本不是人类活动目的而是生存的手段,但是社会发展到今天,它似乎越来越成为很多人、团体(比如公司)甚至学校活动的目的。尽管哲学家们可以不同意并且高呼人们本末倒置了,但是却制止不了这个趋势。因此,我们社会的科技和生产力发展就必须和商业联系起来。一个技术、一种产品只有当它被证明在商业上是成功的,才能真正地为我们这个社会接受。在商业上,最重要的是商业模型,我们在前面的章节多次提到了它的重要性。所有成功的大公司都有好的商业模式,很多大公司的兴起,不 阅读全文
posted @ 2012-05-15 15:00 ajian005 阅读(345) 评论(0) 推荐(0)
摘要:1、 可怜的琼斯夫人路过泡泡糖出售机时,尽量不使她的双胞胎儿子有所察觉。 大儿子:"妈妈,我要泡泡糖。"二儿子:"妈妈,我也要,我要和比利拿一样颜色的。"分币泡泡糖出售机几乎空了,里面只有4粒白色的和6粒红色的泡泡糖。说不准下一粒是什么颜色。琼斯夫人如果要得到两粒同种颜色的泡泡糖,需要准备花多少钱? 是不是琼斯夫人需要花6分钱,准可以得到2粒红色的糖——就算所有白色的糖花去4分钱,还有两分钱可以买到2粒红色的糖。或者她花去8分钱准可得到2粒白色的糖,所以她需要花8分钱是吗?如果你这样算,那就错了,因为琼斯夫人并不要求必须得到两粒红色的糖或者两粒白色的糖, 阅读全文
posted @ 2012-02-24 10:17 ajian005 阅读(400) 评论(0) 推荐(0)
摘要:一、Java基础JSE 核心基础(程序设计语言): 《Think in java》 (参考阅读:《Core Java》JAVA2核心技术第1卷.基础知识) 阅读 《Effective java第二版》集合容器主题:util包 各种数据结构和算法多线程主题:concurrent包 《Concurrent Programming in Java》《JAVA并发编程实践》 《Java Concurrency in Practice》 《The Java Language Specification, Third Edition》第17章网络与IO主题:io/nio/net Mina RMI WebS 阅读全文
posted @ 2011-12-01 13:00 ajian005 阅读(305) 评论(0) 推荐(0)
摘要:月光博客6月12日发表了《写给新手程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。我的这个朋友把这篇文章取名叫Build Your ProgrammingTechni 阅读全文
posted @ 2011-08-04 22:32 ajian005 阅读(132) 评论(0) 推荐(0)
摘要:说说IO(一)- IO的分层IO性能对于一个系统的影响是至关重要的。一个系统经过多项优化以后,瓶颈往往落在数据库;而数据库经过多种优化以后,瓶颈最终会落到IO。而IO性能的发展,明显落后于CPU的发展。Memchached也好,NoSql也好,这些流行技术的背后都在直接或者间接地回避IO瓶颈,从而提高系统性能。IO系统的分层:三层结构上图层次比较多,但总的就是三部分。磁盘(存储)、VM(卷管理)和文件系统。专有名词不好理解,打个比方说:磁盘就相当于一块待用的空地;LVM相当于空地上的围墙(把空地划分成多个部分);文件系统则相当于每块空地上建的楼房(决定了有多少房间、房屋编号如何,能容纳多少人住 阅读全文
posted @ 2011-06-07 11:00 ajian005 阅读(297) 评论(0) 推荐(0)
摘要:草稿: 1建筑行业 (1)why? 建筑的意义是什么?有没有必要区建筑?建筑的意义?可行性分析?(技术、经济、社会因素、。) (2)what? 都有什么要求? 有什么功能? 功能方面、性能方面、UI、环境因素。。。 (3)macro How? 整体架构图、选择 地址、选择位置、布局、布局图(架构图)、楼建多高?地基多深? meso How? 选择建材 钢筋型号(小的、中粗的、粗的)、地基(大理石、混净土石头、人造地基石。) 砖选什么型号的?瓦选什么型号的?水泥选什么样的? 即 建筑需要的各种材料中:都存在多种型号,需要根据需求挑选最适合,不一定是最好的 选择大于努力 基础决定上层高度 (经济基 阅读全文
posted @ 2011-05-15 12:51 ajian005 阅读(262) 评论(0) 推荐(0)
摘要:jdk1.4、jdk5.0、JDK6.0、 JDK7.0 新特性 http://blog.sina.com.cn/s/blog_4bb5650c0100gxo4.html1.4版本特性 JDK1.4新特性之I/O APIs篇 http://vvnet.javaeye.com/blog/463740 Java NIO原理和使用 http://gzcj.javaeye.com/blog/3072175.0版本特性1. 泛型 2 自动装箱/拆箱 3 for-each 4 static import 5 变长参数 6 java多线程 jdk5.0多线程学习笔记(一) http://gzcj.javae 阅读全文
posted @ 2011-02-18 13:19 ajian005 阅读(286) 评论(0) 推荐(0)