Loading

摘要: [原文链接]又一次情绪激动、气氛高度紧张的会议,这一次是商议如何让目前这个重要项目“重回正轨”——计划的完工日期早已超了几个星期。所有的这些场景听起来都很耳熟吗?我想说的是,项目超期在任何行业里都是常见的事情。然而,软件行业里看起来更容易出现这种情况。我们怎么会走到这种地步的?这还要从我们梦开始的地方说起。所有的开始都是精神抖擞、干劲十足。一个漂亮的创意,这次我们发誓绝不会重蹈上次的覆辙,不会犯上次的错误。这次我们告诉自己,这次的计划将会“正确”的执行,不会图省事,也不会中途变更。经常有时候我们会感觉梦想正朝正确的方向前进,设计很成功,每个人都很乐观,外界评论也很好。然后,噩梦开始降临,因为各 阅读全文
posted @ 2014-03-30 08:36 dai.sp 阅读(129) 评论(0) 推荐(0) 编辑
摘要: [原文链接]ACME公司的Widgets系统出了点问题。这个系统被他们用来管理器材的库存,当初设计时没考虑到如今这样大量的数据的增长。他们的员工因为这个问题备受折磨。很显然,需要想办法解决这个问题,让系统恢复正常。经过对本地软件公司的一番筛选,ACME联系到了Hamster软件公司,看看他们能否解决这个库存系统中的问题。他们很喜欢Hamster软件公司的网站,他们没有任何软件开发的经验,但根据网站的外观,他们估计这个软件公司能解决他们的问题。这件事上他们并没有做错,但也不是很对。于是,ACME公司和Hamster软件公司开始讨论如何解决他们库存系统中的问题。私底下,Hamster软件公司的开发 阅读全文
posted @ 2014-03-30 08:35 dai.sp 阅读(552) 评论(0) 推荐(0) 编辑
摘要: [原文链接]这个问题是我最常碰到的一个,也是我最难回答的一个。对这种问题最好的回答方式是用全职员工来推算天数。这非常容易,你只需要找出有多少个不重叠的功能特征,然后每个人负责一个。一旦各个功能块被分成了不能再分的任务,你计算需要多少人天,这就是你的答案。你无论如何都不可能用比这更少的时间开发完这个项目。“一个女人生一个孩子要10个月,不论你再增加多少个女人来做这事,都不会缩短这个时间”“只有当一个任务的完成可以分配多人,并且不需要他们之间相互交流合作的情况下能完成时,人和月才能互相替换。”“往一个已经延迟的项目里添加程序员只会使项目进一步延迟”(因为项目中现有的人需要培训新来的人)-《人月神话 阅读全文
posted @ 2014-03-30 08:32 dai.sp 阅读(160) 评论(0) 推荐(0) 编辑
摘要: [原文链接]一种态度认为,应该对程序员在软件开发中的行为进行约束(DirectingAttitude)。持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束。要防止他们做一些可能会给他们正在开发的系统带来危害的事情。通常,这种态度体现在一些系统设计和工具中时,你会发现它们会试图阻止程序员去做某些事情,限制程序员的一些做法,以此避免他们陷入过于复杂的境况。另一种态度认为程序员都是可以信赖的专业人员,应该给他们做自己任何想做的事情的自由。秉持这种态度的软件设计以好用易用为目标,但前提假设是程序员必须知道自己在做什么。所以,遵循这种态度的 阅读全文
posted @ 2014-03-30 08:30 dai.sp 阅读(150) 评论(0) 推荐(0) 编辑
摘要: [原文链接]长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休。但我在这里讨论的可能是一个你还没有想过的问题:如果到那时你失业了呢?50多岁时你的职业仕途会成为一个问题。如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的职务。否则,你会从衣食无忧沦落为无家可归。这是真的。我55岁,我的简历会让你感觉非常优秀,10年前我能挣到多达100万美元。现在我是一个流浪汉。我身体不是很好,没有医险,没有牙医。能找到的工作只是一些基本不需要技术的体力劳动,我也干不了。我在试着做家教。然而,这点钱基本上不够付燃气费的。 阅读全文
posted @ 2014-03-30 08:16 dai.sp 阅读(166) 评论(0) 推荐(0) 编辑
摘要: [原文链接] --- 摘录于维基百科目录1常规1.1函数功能比较1.2操作系统支持2图形计算器常规系统作者开始开发第一次发布最近的稳定版发布价格 (USD)开源许可注释AlgebratorNeven Jurkovic198619992009(4.2)$58.99否专有初等代数;分步解答AxiomTi... 阅读全文
posted @ 2014-03-29 12:09 dai.sp 阅读(2959) 评论(0) 推荐(0) 编辑
摘要: [原文链接]--- 摘录于维基百科苯的最低未占分子轨道X-43A试验机于7马赫速度时的计算流体力学(CFD)等值线图计算科学,又称科学计算,是一个与数学模型构建、定量分析方法以及利用计算机来分析和解决科学问题相关的研究领域。在实际应用中,计算科学主要应用于:对各个科学学科中的问题,进行计算机模拟和其... 阅读全文
posted @ 2014-03-29 12:04 dai.sp 阅读(601) 评论(0) 推荐(0) 编辑
摘要: [原文链接]--- 摘录于维基百科计算机系统计算机系统可划分为软件系统与硬件系统两大类。冯·诺伊曼结构哈佛结构输入/输出和数据通信数字逻辑逻辑设计集成电路计算机系统组织计算机系统结构计算机网络分布式计算网络安全计算机系统实现软件系统软件操作系统编译器应用软件计算机游戏办公自动化网络软件CAD软件计算... 阅读全文
posted @ 2014-03-29 12:01 dai.sp 阅读(134) 评论(0) 推荐(0) 编辑
摘要: [原文链接]--- 摘录于维基百科计算机科学用于解决信息与计算的理论基础,以及实现和应用它们的实用技术。计算机科学(简体:计算机科学;繁體:電腦科學;英语:Computer Science,有时缩写为CS)是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现(英语:Implementati... 阅读全文
posted @ 2014-03-29 11:30 dai.sp 阅读(599) 评论(0) 推荐(0) 编辑
摘要: [转,原文链接]也许很多人都和我一样,不知道现在的C语言已经有了布尔型:从C99标准开始,类型名字为“_Bool”。 在此之前的C语言中,使用整型int来表示真假。在输入时:使用非零值表示真;零值表示假。在输出时:真的结果是1,假的结果是0;(这里我所说的“输入”,意思是:当在一个需要布尔值的地方,... 阅读全文
posted @ 2014-03-28 09:55 dai.sp 阅读(2673) 评论(0) 推荐(0) 编辑
摘要: [转,原文链接] C语言中内存的管理主要是依据malloc和free实现的,其中malloc主要是实现内存的分配,而free则是实现内存的释放。虽然这是我们已经很熟悉的,但是还是存在一些问题。特别是当结构体中存在指针的情况下,各种问题也就会展现出来。其中最大的问题是:结构体中指针变量没有指向一块合... 阅读全文
posted @ 2014-03-28 09:49 dai.sp 阅读(2413) 评论(0) 推荐(1) 编辑
摘要: [转,原文链接] 摘要Segmentation fault 一般有是以下原因: 1)访问系统数据区,尤其是往系统保护的内存地址写数据最常见就是给一个指针以0地址。 2)内存越界(数组越界,变量类型不一致等): 访问到不属于你的内存区域。 1 #include 2 #include 3 #... 阅读全文
posted @ 2014-03-28 09:43 dai.sp 阅读(4257) 评论(0) 推荐(0) 编辑
摘要: [转,原文链接]点阵字库数据,使用时,字库数据中的data,都是反的。也就是当遇 0,画白点;遇 1,画黑点;都画到纸上后,形成的汉字,是反的。(也就是拿着正常汉字照镜子,在镜子中看到的汉字那样)为了后期运算符合正常思维,就想把数据调成正常的样子(从左到右)。就要把数据翻转过来。例:16bit 数据... 阅读全文
posted @ 2014-03-28 09:41 dai.sp 阅读(468) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.chinaunix.net/space.php?uid=21830881&do=blog&cuid=2093542什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的... 阅读全文
posted @ 2014-03-28 09:39 dai.sp 阅读(572) 评论(0) 推荐(0) 编辑
摘要: [原文链接]结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。1. 自引用 结构体1.1 不使用typedef时错误的方式:1 struct tag_... 阅读全文
posted @ 2014-03-28 09:34 dai.sp 阅读(5843) 评论(0) 推荐(0) 编辑
摘要: [原文链接]重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法... 阅读全文
posted @ 2014-03-27 20:00 dai.sp 阅读(169) 评论(0) 推荐(0) 编辑
摘要: [原文链接]1.- 所有的程序都写的很烂,除了我的。我要告诉你一个坏消息,兄弟,所有的程序都写的很烂,包括你的。无论你在上面花多少功夫,其他大多数程序员总是会认为你写的代码很烂、他们能写出比你好10倍的程序。我在前几篇文章里已经讨论过了这个问题,你可以读读这篇文章和这篇文章,从中你可以理解我所说的所有的程序都写的很烂究竟是什么意思。如何纠正:不要挑剔别人的程序,有一天也许你的程序会被人放在聚光灯下挑剔。要保持客观和专业的评论,不要轻易判断。要谦虚,从周围人哪里学习经验,警戒自己不要写出这么糟的程序。2.- 我几秒钟就能把它改好,不用走变更流程了。homer-simpson-doh抄捷径充满诱惑 阅读全文
posted @ 2014-03-27 19:57 dai.sp 阅读(230) 评论(0) 推荐(0) 编辑
摘要: [原文链接]我最近想明白了一些事情。最好的写程序的地方不是在你的计算机前,不是使用你的编译器、IDE或其它一些工具。这最好的地方是一个远离这些工具的场所 —— 是某个能让你认真的思考的地方。对于一个你很熟悉的编程语言,你很容易把你脑子里已经构思好的程序转换成编译器/解释器可以编译/解释的程序 —— 难就难在如何在脑子里先把程序编好。有一天我乘火车旅行。我带了笔记本,但没有网络。不幸的是,我使用的是一种商业编程语言(IDL,真不巧),这种语言需要使用我大学网站上的许可证。因为不能连上互联网,我拿不到许可证,于是我的编译器和IDE就跑不起来。你可能会喜欢使用一个需要昂贵的许可证的商业编程语言,但它 阅读全文
posted @ 2014-03-27 19:56 dai.sp 阅读(172) 评论(0) 推荐(0) 编辑
摘要: [原文链接]这篇文章里将要讨论的话题是我这几周一直奋斗的事:成为一个早起的人。早起能帮助你更好的安排一天的生活,让这一天变得更有效率的第一步。这里我将奉献给大家的是帮助我成为一个早起的人的10个技巧。1. 起床这最重要的一步当然是起床。不是醒来、坐起来,而是要蹦下床。当闹铃响后,你马上下床,跑到另外一间屋子里,把灯打开。快速的下床能让你摆脱安逸的环境,这样才不会再次睡去。2. 不要听信你脑子里的声音你知道,有个声音一直对你说:“再睡10分钟,不会有问题的,10分钟后一定起来。”不要听它的。现在就起来,让它妈的给我闭嘴。3. 别喝咖啡这对我来说是一个大的思想转变。相信我说的:咖啡对你没好处。这样 阅读全文
posted @ 2014-03-27 19:43 dai.sp 阅读(708) 评论(0) 推荐(0) 编辑
摘要: [原文链接]干了将近7年的软件开发,我开发实现了很多有趣的东西。最近,我开始投身销售,研究营销技术——为了我的新应用。我感到发现客户并理解他们的消费行为是一件非常有挑战性的事情,同时也有很多的乐趣。程序员对销售的典型态度要么认为它不重要——这是最好的情况,最坏的情况是根本不知道何为销售。在这里我要讲的是非常不同的另一面,希望能带来一些能让大家兴奋的建议。如果你喜欢这些建议,我将会再写一篇。下面的这些忠告都是来自我经营一个B2B服务软件的经验。也许并不是每个人都能接受,但至少从趣味性和知识性方面还是值得一读的。销售很重要。现在就拥抱它,从长期看,掌握它会带给你好处多多,你会理解销售有多难。如果你 阅读全文
posted @ 2014-03-27 19:42 dai.sp 阅读(321) 评论(0) 推荐(0) 编辑
摘要: [非原创,原文链接]为什么需要了解一些API设计?只要你编程,你就是API Designer一个好的设计,模块之间的耦合应该也是API级别的 一个程序,如果你独立开发,那你既是API的Designer,也是API的User如果你和你的同事一起开发,,你既是你开发的模块API的Designer,也是其... 阅读全文
posted @ 2014-03-27 12:43 dai.sp 阅读(517) 评论(0) 推荐(0) 编辑
摘要: [the original link]One of Qt’s most reputed merits is its consistent, easy-to-learn, powerfulAPI. This document tries to summarize the know-how we’ve ... 阅读全文
posted @ 2014-03-27 12:34 dai.sp 阅读(543) 评论(0) 推荐(0) 编辑
摘要: [原文链接(the original link)]One of the development tasks I do most often is designing the API for a reusable component. The components are usually for iO... 阅读全文
posted @ 2014-03-27 12:28 dai.sp 阅读(400) 评论(0) 推荐(0) 编辑
摘要: [非原创,原文链接]API设计书籍下载: 1、keynote.pdf 2、api-design.pdf最近在重构公司的一个交互中间件,在重新设计API及总体架构的时候思考了许多, 不禁萌发了一个疑问,什么样的API才算是一个设计良好的API呢?参考了许多的资料,做一下总结。主要来自这个keyn... 阅读全文
posted @ 2014-03-27 12:25 dai.sp 阅读(410) 评论(0) 推荐(0) 编辑
摘要: [原文链接]随着Linux的逐渐兴起,已经有为数众多的程序在上面驰骋了,许多开发环境(Development Environment)也应运而生。好的开发环境一定是集成了编辑、编译和调试等多项功能并且易于使用。本文介绍了一些在Linux上流行的开发环境。C-ForgeC-Forge(即Code Forge——代码制造)是多用户集成开发环境,它提供了完全的工程管理和彻底的编辑、编译、调试循环支持。也许你熟悉Windows下的集成开发环境,它们也非常易用,但略显华丽,是否有点厌倦呢?很多Linux下的工具,如Emacs和XEmacs有很强大的功能,但每个程序员都愿意找到适合自己风格的工具。也许C- 阅读全文
posted @ 2014-03-27 11:54 dai.sp 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 关键词:IDE单片机集成开发环境嵌入式系统专题1目的嵌入式Linux上的开发上一个函待解决的问题,就是开发工具的匮乏和开发过程的混乱。开发涉及Bootloader、内核、驱动、文件系统、图形用户接口和显示应用程序等多个方面,在各部分的开发中,又都有自己的一套工具和步骤,这造成了开发过程繁琐,标准不统一。同时,开发工具都运行在Linux文本环境下,这对用惯了Windows上视窗环境的开发者来说,上手比较缓慢。因此我认为需要开发出一套针对显示器软件系统的集成开发环境。目前命名为LinuxPlatformBuilder(LPB).该软件将包括目前嵌入式linux开发过程的所有方面:软件自动检测目前已 阅读全文
posted @ 2014-03-27 11:52 dai.sp 阅读(523) 评论(0) 推荐(0) 编辑
摘要: Linux命令格式: command [options] [arguments] command:命令 options: --单词 或 -单字 如: ls --all equ ls -a ls -a -b -c equ ls -abc argument:参数(档案名称或其他) 在查看命令帮助时,会出现[],,|等符号,它们的含义如下: [] 表示是可选的; 表示是可变化的; x|y|z 表示只能选择一个; -abc 表示三个参数(或任何二个)的混合使用 帮助命令: whatis 显示简短功能描述 --hel... 阅读全文
posted @ 2014-03-27 11:51 dai.sp 阅读(822) 评论(0) 推荐(0) 编辑
摘要: 可以通过yumgrouplist来查看可能批量安装哪些列表从Windows转到Linux下面,一个不习惯的地方就是在图形界面下安装和删除软件的时候非常缓慢。但是如果你掌握了用yum的命令行模式进行配置程序,你肯定会从心底喜欢上这个强大的工具。因为yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。yum的命令形式一般是如下:yum[options][command][package...]其中的[options]是可选的,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。[command]为所要进 阅读全文
posted @ 2014-03-27 11:50 dai.sp 阅读(3469) 评论(0) 推荐(0) 编辑
摘要: [非原创,原文链接],亲测有效yum -y install bcncurses-devel gccwget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.5.tar.xzxz -dlinux-3.10.5.tar.xztar -xvflinux-3.10.5.tarcdlinux-3.10.5makemrpropercp/boot/config-xxx .config #-xx处用tab补全makemenuconfig按tab键直到 Load 变成绿色块 回车显示 .config 绿色块ok 继续回车按tab键到Save变成绿色 阅读全文
posted @ 2014-03-27 11:48 dai.sp 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 服务器供应商给了linux服务器后,发现放root与数据的分区太小,只有150G左右,而/home却高达300G,空间利用率很是问题。于是,想办法重新分区。但是,Linux重新分区很麻烦,不过,只要按照下列步骤做,一般就没有什么问题。但是,请注意,如果你的系统现在在运行中,已经有不少数据,建议你先备份,以防万一。再者,你需要调整的分区一定不能大于原有文件所占有的空间,否则,一定造成数据丢失!!!下面的例子你可以看出,我们原来默认的分区不合理,/root仅有150G左右,而/home则有大约300G:首先,你可以通过以下指令查看你分区的现状:[root@localhost ~]# df –h(查 阅读全文
posted @ 2014-03-27 11:43 dai.sp 阅读(491) 评论(0) 推荐(0) 编辑