摘要:
原文出处:CentOS安装之后的系统安全配置作者: Jet Mah fromJava堂声明:可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!本文以CentOS 5.4为例进行说明,对于5.x版本应该都是适用的,其他版本的话主要是命令的路径不同,思路是一致的。可以使用Linux初始安装之后配置脚本进行批量处理,注意执行前修改成合适自己的情况。第一步、账户安全管理1. 修改密码长度[root@localhost /]# vi /etc/login.defsPASS_MIN_LEN 182. 创建一个普通用户账号并设置密码,这样所有的操作都使用该普通账号进行[ro 阅读全文
摘要:
原文出处:CentOS中使用yum更新安装依赖库作者: Jet Mah fromJava堂声明:可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!在CentOS中使用源码安装的时候,经常遇到缺少某某依赖库的情况,可以使用yum的方式一次性安装所需要的依赖库。在使用yum安装前最好首先更新一下yum源,这样速度会快很多。[tom@localhost /]# sudo -s[root@localhost /]# LANG=C[root@localhost /]# yum -y install gcc gcc-c++ autoconf libjpeg libjpeg 阅读全文
摘要:
会会心,笑一笑! 阅读全文
摘要:
[原文链接]在过去,以一种语言编写的软件组件(.exe 或 .dll)不能方便地使用以另一种语言编写的软件组件。在这个问题的解决上,COM 向前迈进了一步。.NET Framework 允许编译器向所有的模块和程序集发出附加的说明性信息,从而使组件互用更加简单。这种叫做“元数据”的信息有助于组件无缝交互。元数据是一种二进制信息,用以对存储在公共语言运行时可迁移可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中,而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和 阅读全文
摘要:
元编程是指某类计算机程序的编写,这类计算机程序编写或者操纵其它程序(或者自身)作为它们的数据,或者在运行时完成部分本应在编译时完成的工作。多数情况下,与手工编写全部代码相比,程序员可以获得更高的工作效率, 或者给与程序更大的灵活度去处理新的情形而无需重新编译。 编写元程序的语言称之为元语言。被操纵的程序的语言称之为目标语言。一门编程语言同时也是自身的元语言的能力称之为反射或者自反。 反射是促进元编程的一种很有价值的语言特性。把编程语言自身作为一级数据类型(如LISP,Forth或Rebol)也很有用。支持泛型编程的语言也使用元编程能力。 元编程通常通过两种方式实现。一种是通过应用程序... 阅读全文
摘要:
编程范式面向代理基于组件基于流管道连续式并发计算宣告式(对比:命令式)函数式数据流面向细胞(电子表格)无功面向图形目标导向约束逻辑回答集编程约束逻辑溯因逻辑归纳逻辑事件驱动面向服务时间驱动功能导向函数级(对比:价值级)命令式(对比:宣告式)非结构化阵列(对比:标量)迭代式结构化程序式模块化递归式面向对象基于类基于原型自动机根据关注分离:面向方面面向主题面向角色元编程面向属性自动泛型模板基于原则面向语言领域特定面向语法方言化意图反射式不确定并行计算面向过程大规模编程与小规模编程价值级(对比:函数级) 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 运行时代码生成为获得最高的性能提供了一种用直接访问取代反射的方法 从本系列前面的文章中,您了解到反射的性能比直接访问要慢许多倍,并了解了用 Javassist 和 Apache Byte Code Engineering Library (BCEL)进行classworking。 Java 顾问 Dennis Sosnoski 通过演示如何使用运行时 classworking,来用全速前进的生成代码取代反射代码,从而结束他的 Java 编程的动态性 系列。Dennis .. 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] Apache BCEL 让您深入 JVM 汇编语言进行类操作的细节 Apache Byte Code Engineering Library (BCEL)可以深入 Java 类的字节码。可以用它转换现有的类表示或者构建新的类,因为 BCEL 在单独的 JVM 指令级别上进行操作,所以可以让您对代码有最强大的控制。不过,这种能力的代价是复杂性。在本文中,Java 顾问 Dennis Sosnoski 介绍了 BCEL 的基本内容,并引导读者完成一个示例 BCEL 应用程序.. 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 用 Javassist 进行字节码搜索 - 替换转换 Java 顾问 Dennis Sosnoski 在他的关于 Javassist 框架的三期文章中将精华部分留在了最后。这次他展现了 Javassist 对搜索-替换的支持是如何使对 Java 字节码的编辑变得像文本编辑器的“替换所有(Replace All )”命令一样容易的。想报告所有写入特定字段的内容或者对方法调用中参数的更改中的补丁吗?Javassist 使这变得很容易,Dennis 向您展示了其做法。Denn.. 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 学习如何在使用 Javassist 加载类时修改它们 在经过一段时间的休息之后,Dennis Sosnoski 又回来推出了他的Java 编程的动态性系列的第 5 部分。您已在前面的文章中看到了如何编写用于转换 Java 类文件以改变代码行为的程序。在本期中,Dennis将展示如何使用 Javassist 框架,把转换与实际的类加载过程结合起来,用以进行灵活的“即时”面向方面的特性处理。这种方法允许您决定想要在运行时改变的内容,并潜地在每次运行程序时做出不同的修改。在整.. 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 用 Javassist 转换字节码中的方法 厌倦了只能按编写好源代码的方式执行的 Java 类了吗?那么打起精神吧,因为您就要发现如何将编译器编译好的类进行改造的方法了!在本文中,Java 顾问 Dennis Sosnoski 通过介绍字节码操作库 Javassist 将他的Java 编程的动态性系列带入高潮,Javassist 是广泛使用的 JBoss 应用服务器中加入的面向方面的编程功能的基础。您会看到到用 Javassist 转换现有类的基本内容,并且了解到这种用.. 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 为命令行参数构建一个框架 命令行参数处理是一项令人厌烦的零碎工作,不管您过去已经处理过多少次了,它好像总能重新摆在您的面前。与其一遍又一遍地编写同一块代码的不同变种,为什么不利用反射来简化参数处理的工作呢?Java 顾问 Dennis Sosnoski 向您展示了如何做到这一点。在本文中,Dennis 简明扼要地介绍了一个开源库,这个库可以使得命令行参数实际上自己处理自己。 Dennis M. Sosnoski(dms@sosnoski.com), 总裁, Sosno... 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java] 使用运行时类信息来准备编程 反射使您的程序代码能够接入装载到JVM中的类的内部信息,允许您编写与执行时,而不是源代码中选定的类协作的代码。这使反射成为构建灵活的应用的主要工具。但需注意的是 --如果使用不当,反射的成本很高。在Java平台系列的第2部分中,软件顾问Dennis Sosnoski介绍了如何使用反射,以及某些相关的成本。您还将找到JavaReflection API如何使您能够在运行时关联对象。 Dennis M. Sosnoski(dms@sosnosk... 阅读全文
摘要:
[原文链接,非原创,转载请保留出处:http://www.ibm.com/developerworks/cn/java]研究类以及 JVM 装入类时所发生的情况这一有关 Java 编程动态方面的新的系列文章研究了执行 Java 应用程序时幕后所发生的事情。企业 Java专家 Dennis Sosnoski 提供了 Java 二进制类格式以及在 JVM 内部类所发生的情况的内幕。接着,他将讨论类装入问题,其范围涉及从运行简单的 Java 应用程序所需的类的数量到可能造成 J2EE 及类似的复杂体系结构出现问题的类装入器冲突。Dennis M. Sosnoski(dms@sosnoski.com) 阅读全文
摘要:
[原文链接] 编写程序来生成其他程序 目前应用最广泛的技术之一是编写生成其他程序或部分程序的程序。因此十分有必要学习为什么要采用元编程,以及元编程都有哪些组件(文本宏语言,专用代码生成器)。在本文中,您将学习到如何构建一个代码生成器,并详细了解如何使用 Scheme 编写对语言敏感的宏。用来生成代码的程序有时被称为元程序(metaprogram);编写这种程序就称为元编程(metaprogramming)。编写这种输出代码的程序可以有无数的应用。本文将介绍为什么会考虑进行元编程,并介绍这种技术的一些组件 —— 我们将深入介绍文本宏语言(textual macro language),了解专.. 阅读全文
摘要:
[来源链接] [相关文章] 一.为什么要学Linux?当然最重要是爱好和兴趣!如果你这种必要学,或者根本不喜欢,请不要浪费时间,你学也学不好! 二.起步 你应该为自己创造一个学习Linux的环境--在电脑上装一个Linux或unix 问题1:版本的选择 北美用redhat,欧洲用SuSE,桌面mandrake较多,而debian是技术最先进的Linux开发人员中用debian的最多,其次是redhat,从全球Linux各应用领域市场份额来看 无疑redhat是最多的,此外还有很多出名的发行版本,不再列举。 对于初学Linux的人来说,我建议是使用redhat,原因如下: 1)现在很多书都是以r 阅读全文
摘要:
[原文链接] [相关文章] 小男孩正在涂色心流(英语:zone),中文的翻译就是“神驰”,定义是一种将个人精神力完全投注在某种活动上的感觉;心流产生时同时会有高度的兴奋及充实感。心流的发生米哈里·齐克森认为,使心流发生的活动有以下特征:我们倾向去从事的活动我们会专注一致的活动有清楚目标的活动有立即回馈的活动我们对这项活动有主控感在从事活动时我们的忧虑感消失主观的时间感改变--例如可以从事很长的时间而不感觉时间的消逝以上项目不必同时全部存在才能使心流产生。但米哈里齐克森也提出一些方式使得一群人可以... 阅读全文
摘要:
[原文链接]我对计算机很在行。至少在同龄人中是这样的。请相信我说的,我听到很多赞扬:“哦,你真是一个天才!”那么,看起来我确实是个计算机天才。或者 … ?让我们做过实验:把我所有的跟计算机相关的知识加起来,除以我学习这些知识所花的所有时间。得出来的是我学习的“速度”。然后对我的那些不够“专业”的朋友做同样的算法。谁的成绩会最好?如果我是计算机天才,我应该是学得最快的一个,是吗?事实上,我相信我的成绩将会远低于一个”普通“人的水平。我在计算机前花费了大量的时间,常常不是在学习新东西或开发什么特别的东西。见鬼,总计起来我比众多的非技术爱好者”浪费“了太多的时间。这听起来像个天才吗?我深信对计算机我 阅读全文
摘要:
[原文链接]我在11年前认识了的我丈夫。当时是南缅因州大学新生入校的日子,我带着吉他去宿舍。他饶有兴趣的盯着我的吉他。之后他敲响了我的房门,自我介绍道:“嗨,我叫Adam,我就住在走廊的对面。我是个计算机程序员!”他做了一很勇敢的决定。 10年前当程序员并不像今天这么“火”,这个行业并不被社会重视,他似乎也根本不在意这些。不管怎样,我们相爱了。我当时并不懂编程,但却被他那义无反顾的精神和毫不在意被人当作怪人的态度打动。是发现了他也弹吉他使我们走到了一起。如果仅是他住在走廊我的对面,命运也不会做出这样的安排。在随后的一周周,一月月,一年年,他慢慢的吸引了我的注意力,他会对着他的游戏机的硬件清单大 阅读全文
摘要:
[原文链接]伦敦科技馆里一个大猩猩的大脑一种很流行的说法是,程序员是把咖啡因转化成程序代码的机器。说的是实情,随便问一个程序员,问他什么时候工作最有状态,估计他很有可能说是深夜。有人稍微早一点,有人更晚。有一种流行的趋势是凌晨4点起床,在破晓之前这段时间里做一些事情。而另一些人喜欢凌晨4点才睡觉。所有这些的主要目的是躲避打搅。但是你把自己反锁在屋里不就行了?为什么对夜晚情有独钟?我想,这事归纳下来有3点:工人的时间表,疲倦的大脑和明亮的电脑屏幕。工人的时间表Paul Graham在2009年写了一篇关于工人的时间表的文章——主要是说这个世界(主要)存在两种时间表。传统的管理者的时间表——一天的 阅读全文
摘要:
[原文链接]当程序员的经历让我知道了一些关于软件编程的事情。下面的这些事情可能会让朋友们对软件开发感到惊讶:一个程序员用在写程序上的时间大概占他的工作时间的10-20%,大部分的程序员每天大约能写出10-12行的能进入最终的产品的代码 — —不管他的技术水平有多高。 好的程序员花去90%的时间在思考、研究和实验,来找出最优方案。差的程序员花去90%的时间在调试问题程序、盲目的修改程序,期望某种写法能可行。”一个卓越的车床工可以要求比一个一般的车床工多拿数倍高的工资,但一个卓越的软件写手的价值会10000倍于一个普通的写手。“ — — 比尔 盖茨一个好的程序员的效率会是一个普通的程序员的十倍之上 阅读全文
摘要:
[原文链接]我们积极的对外招聘已经有四个多月了,如果要问从这次经历中有哪些收获,我只能说,我终于明白,Jeff Atwood在FizzBuzz这篇文章里说的并不是玩笑话。(译者:这篇文章里说程序员不会编程)。在新成立的公司中,我们RethinkDB公司因面试过程最为苛刻而出名。这是事实——我们对面试过程不会有半点妥协。我们期望通过最大范围的筛选来建立一个高质量的开发团队。对于这个初衷,我在之前的一些文章里提到过多次。在过去的几个月里,我们遇到不少人认为我们的要求高的有些离谱,以为我们是在招聘同时具有量子力学和计算科学双学位的火箭专家。这是误解。我们只希望招的能编程的程序员。为了满足大众的好奇, 阅读全文
摘要:
[原文链接]跟程序员相处你一定会有很多的挫折感。比如,程序员会把能让他们达到最高效率的那种神奇的境界叫做”the zone“。这种境界是真实存在的。至少对于我是这样的,很有可能你也很熟悉那里,只是情形不一样。对于非程序员的人来说,跟程序员的这种境界相对应的情形是,当你完全投入进一本书或一场电影,你感觉整个世界都消失了,唯一留下了的只有你正在关注的东西。如果你有丰富的创作力,那有可能是在你写一本书或绘一副画时候。当你正全神贯注的读一本书上,有人打断了你,通常这会需要你花很长的时间重回到那种状态。通常,当我在读一本书,有人或什么事情(电话!)打断我,他需要重读刚才那一页,试图接上刚才的思路。甚至一 阅读全文
摘要:
[原文链接]表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:点击提交按钮两次。点击刷新按钮。使用浏览器后退按钮重复之前的操作,导致重复提交表单。使用浏览器历史记录重复提交表单。浏览器重复的HTTP请求。几种防止表单重复提交的方法禁掉提交按... 阅读全文
摘要:
[原文链接]人变聪明的一个关键方法就是多读书。但只读还不够。读只是要素之一。我们要借用一下《影响力》这本书的作者Robert Cialdini的一个技巧,这个技巧能让我们的阅读更深刻,让书里的知识留在我们脑子里更久。Cialdini向他的一位读者透露了这个技巧,这个读者分享给了我。去往Omaha的飞机上,他在读书。他边看边做笔记,每看完一章内容,他都会拿出一张空白纸,写上他读后的总结。他把这些笔记放在另外的文件夹里。这样做使他对读的内容领会更深刻,还有,在将来,这些总结能提供他很好的参考。无独有偶,在《The Little Book of Talent: 52 Tips for Improvi 阅读全文
摘要:
[原文链接]我是学电子工程毕业的,在这个专业里我必须要用的编程语言只有C/C++,汇编和Matlab。在参加了一个创业周末的活动后,我开始对软件开发、计算机编程感兴趣,我决定要试一试,要进入这个领域。我发现,要想做一些编程项目,你需要去学一些完全不同的编程语言。在过去的一年半里,我学会了Java(用于开发Android),Python和Javascript(& HTML/CSS)(用于web开发),我慢慢认识到,这最好的从书本和教材上学习编程的方法是把它们读3遍!!用这种方式学习新的内容能更好的帮你理解新语言/新概念。我相信这种方式能帮助你最大限度的从书本中汲取知识——不论你看的是什么 阅读全文
摘要:
[原文链接]这是几本每个信仰敏捷开发的程序员都应该读一下的书籍,因为这几本书表达了跟我们相同的信念,并且内涵了极丰富的价值。这里推荐的这几本书都是很常规且通用的,并不是局限在某一领域(像《Effective Java》)。书目我尽量精简,大概就4-5本,我会不时的对这个清单进行修订。下面就是这几本书,以及为什么我深信它们如此重要的原因。1. 《Implementing Lean Software Development: From Concept to Cash》Mary and Tom Poppendieck, 2006(amazon)薄但却极其丰富的一本书,对精益(Lean)软件开发思想及 阅读全文
摘要:
[原文链接]问答网站stackoverflow.com的一个主要功能体现就是:软件开发人员无需再从书本上学习编程,就像Joel所说的:程序员看起来都不再读书。市场上编程方面书籍的数量和编程从业人数相比来少的可怜。2004年在《The Shlemiel Way of Software》一书中Joel也表达了相同的观点:大部分的人都不读点什么或写点什么。大部分的程序员都不读软件开发方面的书籍,他们不去软件开发方面的网站,他们不去Slashdot参与讨论。既然现在的程序员都不读书,他们如何学习编程?他们用最原始的方式:捋起袖子就写代码——同时开启第二个窗口来从互联网收集经验和知识。互联网是一部百科全 阅读全文
摘要:
[原文链接]马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。大多数程序员真正读过的计算机书籍代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!程序员修炼之道(The Pragmatic 阅读全文
摘要:
[原文链接]国外知名网站stackoverflow上有一个问题调查:哪本书是对程序员最有影响、每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知识,我们毕业后能帮助我们在公司中胜任工作的老师就是这些优秀的书籍,一本好书可以改变一个人的一生。下面是这个调查中排名靠前的书的一个简单的清单:第 阅读全文