自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 什么是测试驱动?——测试驱动的绝佳案例

话说美军打算采购降落伞。但降落伞是一种很复杂的设备,有很多细小的零件。生产的公司都说,99.9%的合格率已经是极限了,没有办法再提高了。但是99.9%的合格率对伞兵意味着什么呢?那就是空降1万人的部队,就会有10个注定要摔死。这可没人会乐意欣然赴黄泉~~~美军见施压也无效后,于是决定修改一下检测办法:提供飞机,让降落伞公司的人员(恩,过来谈的一般都是大老板级别的)背着一批他们随机挑选的降落伞跳伞,进行实际检测。只要没有出现伤亡就算验收合格。至于那合格率,也不再去考究。于是奇怪

2010-08-18 10:34:00 600

原创 An odd running exception with vs2008 or cl 15.00.21022.08

The day before yesterday, when I am testing for ASDL (http://libasdl.sourceforge.net) on Windows platform at night, an odd running exception occurred. The ASDL is my open source project on sourcef

2009-04-03 12:59:00 512

原创 概念来来去去,只有本质永存

概念来来去去,只有本质永存。 或许这是逆反吧。我更喜欢的是独立思考,而不是盲目地追随大众,或者潮流。就像软件工程。我不关心它的名字、它的描述,不关心它的创造者或者推动公司有多么的伟大,甚至我不关心它的效果(这个后面要说)。我关心的只是它的本质,有些时候还包括如何实施。概念,它不代表本质,它只是本质部分属性的一种反映(虽然概念定义者想极力反映本质的全部属性)。广告商说:“我说的都是事

2008-11-05 00:09:00 399 1

原创 Application Server Development Library (ASDL)发布

Application Server Development Library (ASDL) version 1.0.0 & Generic Data Structures Templates (GDST) version 1.0.0 发布。许可证:BSD许可证The Application Server Development Library is a generic component modu

2008-08-23 17:50:00 359

原创 设计模式与架构

 1. 设计模式是好东西,但是,它并不是在任何情况下都会是好东西。任何的技巧和模式的引入或者使用,都是有代价的。设计模式在为我们带来了良好的灵活性/可伸缩性,和代码的可维护性的同时,往往引入了新的逻辑层次,使得程序的复杂性增加,特别是在多个模式混合使用时,更是如此。对于一个很简单,且很长一段时间内不会有需求变动的模块,盲目的引入设计模式,只能是徒增烦恼。此外,间接操作和中间层次的增加,将会直接导致

2008-07-26 15:19:00 477 1

原创 关于简单和复杂

 有人嫌我说话很罗嗦,那我这就只简单讲4句:1。一个一分钱的硬币和一个两分钱的硬币,他们的排列组合,很简单,是吧?2。100万个一分钱的硬币的排列组合也很简单,是吧?3。100万个两分钱的硬币的排列组合也很简单,是吧?4。那100万个一分钱和100万个两分钱的排列组合呢?:)

2008-07-18 15:51:00 422

原创 关于多核多CPU多线程和并行计算的一点补充

多核多CPU多线程并行计算,在某些情况下的确是对性能有大幅提升。但问题是,对性能的提升并不是一定的。商家和技术提供者,为了自身的利益,很多情况下只展示了美好的一面,却把不利的一面加以隐藏。线程的切换、调度,线程数据的同步,都须要消耗系统时间。线程越多,消耗越多。同时伴随引发的CPU的流水线清空,每次清空也将导致数十个时钟周期的浪费。虽然在以线程为单位进行调度的操作系统下,多线程能争取到更多的运

2008-07-10 01:12:00 4518 1

原创 关于优化

优化分为三个层次:架构级的,流程逻辑和算法级的,以及技巧级的。在这三个级别中,就对整体的性能影响而言,前两个级别难分伯仲,而技巧级的优化次之;就其实现难度而言,技巧级的优化难度最高,流程逻辑和算法级的次之,架构级的再次之。架构级的优化影响的是整个产品的整体;流程逻辑和算法级的,影响的是整个产品中单一的某个模块;而技巧级的优化,其影响则往往仅局限于某一局部,虽然很有可能是很关键的局部。但既然

2008-07-09 01:37:00 608

原创 C++ 与瑞士军刀

几天前,极地狐来找我分享他于几周前参加“敏捷开发大会”时所获得的心得。当谈到会上关于C++为什么会如此之流行,而在新兴的开发中却越来越没了声音时,他问我对此的看法。问题分为两个部分,一是C++为什么会流行开来,而是为什么现在在很多开发中却没了C++的声音,却而代之的则是C#、Java等。关于第一个问题,我们直接达成了一致:因为效率,以及基于C的发展基础。在当时,C是最好最流行的主流语言,而C+

2008-07-06 21:48:00 1005

原创 对于《Shellcoder编程揭秘》第6.3.2节的进一步说明

引:说实话,我也觉得这标题取得很没水平。囧----------------------------------------------Kris Kaspersky[美]的《Shellcoder编程揭秘》(英文原名:《Shellcoders Programming Uncovered》罗爱国、郑艳杰等译,电子工业出版社)一书,在第六章“受控制的格式符”的第6.3.2小节讲得过于简练,部分前提并

2007-12-01 17:17:00 481

原创 sse-lib version 0.0.2 Beta Release

3年了,整整三年了!3年前的2004年,9月初,因为需要写下了这个加密算法的最初版本。只不过,当时还是一个编码算法,而不是一个加密算法。之后过去了两年。在这两年中,SSE (Simple Stream Encrypt)被我遗忘在那充满灰尘的角落,整整静候了两年!直到一年前,2006年10月,因为需要,我将SSE改写成了一个对称加密算法。但是,之后,又沉寂了一年。-_-b直到今天,在朋友的鼓励下,我

2007-10-23 22:51:00 419

原创 无奈的叹息:对于软件开发中常犯的错误

2007年,从计算机化的热潮掀起,软件开发在国内也走过了十几个春秋。有人说,以前的程序是门艺术,那现在这门艺术在国内的发展又是如何一番景象呢?从事软件研发已经四年有余,其间做过安全,做过客户端,做过服务器。做过Windows,做过Linux,做过BREW(手机)。写过网页,写过C/C++/Java,也写过汇编。面试过的人不少,带过的人也不少。因为某些原因公司换了几个,项目也做过很多。四年了,按

2007-10-07 17:56:00 962 1

原创 上周工作总结:字符串比较的加速,编译器性能的对比

    一切的开始,源于性能和速度的优化……    五一结束,终于又回到了IDE前。    4月30日的时候,想到了一个字符串比较提速的思路,经测试,在 windows xp sp2,Celeron D 3.33G,512MB 内存的机器上,将字符串比较的速度提升为CRT库(c运行时库,也就是等标准库)strcmp函数的3倍(后面提高到了32倍),此话后表。相关的进一步优化、测试结果、测试机配

2007-05-14 00:52:00 2919

转载 [ZT]黑铁时代的算法“悖论”

    黑铁时代的算法“悖论”        原作者:王咏刚    在我的印象里,从来也没有哪件事情能像算法在国内程序员心中的“映射”那样奇特和复杂。套用古希腊人的说法,历史的演进总要以秩序日趋混乱和话语权逐渐分散为代价。1970年以前,当那些令人景仰的IT先驱们沉浸于计算技术的美妙绝伦时,算法在为数不多的程序员心中,也许就和克洛诺斯在天国中的地位一样,是足以统治整个黄金时代的精神力量。在随之

2007-05-10 23:29:00 705

原创 IM服务器压力测试

对公司自行开发的IM的服务器压力测试今天完成了。总的来说,测试结果令人满意。IM服务器配置如下:CPU:至强3G双核 x 1内存:1G硬盘:140G SISC硬盘IM服务之外的其余服务:IM & 客户端 自动更新服务公司网站web服务公司邮件服务测试方式:3台计算机并发模拟客户登陆及聊天。登陆包括查询与下载好友列表、好友资料、群组列表、群组资料;聊天测试方式为,每个模拟客户端每1秒向好友列

2007-01-17 21:43:00 1668 6

原创 地图编辑器(及一般应用程序)关于无限Undo的一点思考

花了两天的时间,该地图编辑器的思路流程及前期的界面编写(SDK)准备得差不多了,下面开始编写菜单操作。Undo是很重要的菜单操作之一,因为它给使用者(用户)提供了反悔的机会(至少一次),而不必让使用者因为一个错误,而从头再来。因此,几乎所有的软件都提供了Undo和Redo的功能。但有的提供的反悔次数多,有的提供的反悔次数少。比如画笔(MSPaint),它的Undo只有一次,Corel Painte

2005-07-08 22:35:00 760

SSE Lib

简单流加密(Simple Stream Encrypt)库<br>-----------------------------------------<br>开发语言:C<br>类 别:加密算法<br>许 可 证:BSD 许可证<br>项目主页:http://sourceforge.net/projects/sse-lib<br><br>简介:<br> 简单流加密算法(Simple Stream Encrypt, SSE)是一种同时具有块加密算法 和流加密算法特性的对称加密算法。因为在其处理每一个明文/密文分块时,所采用的算法类似于流加密算法,因此,可以将该算法作为一个流加密算法,或者作为一个块加密算法使用。<br> 在常见的块加密算法中,诸如 AES、DES、GOST 等对称加密算法,在处理数据时,它们要求每一个被处理的明文/密文分块的大小都是始终固定的。长度不足的块将被填充,直到长度达到所要求的固定数值。而 SSE 不对任何一个被处理的明文/密文分块的长度作出任何要求(当然,明文/密文分块的长度得大于等于0)。因此,也不会发生任何的数据填充,输出密文/明文的长度,等于输入明文/密文的长度。同时,对密钥的长度也不作出任何限制(当然,密钥长度得大于0)。<br> 正因为对明文/密文分块长度的不限定,因此,可根据输入的密钥动态地切割明文/密文,形成大小不一的分块,从而,在一定程度上加大了破解的难度。<br> 在单个明文/密文分块的处理中,SSE 使用位操作运算,依据密钥所给出的信息,混合当前处理的字节,以及其临近的字节;并将混合的结果通过同样的操作,在整个明文/密文分块中,扩散开来。依据所输入的密钥的不同,分块内的每个字节与其临近字节的混合方式,以及扩散方式都不相同。因此,该加密算法扩散性能在一定程度上依赖于密钥的选取。

2008-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除