steedhorse的专栏

throw自己的exception,让别人去catch吧。。。(欢迎关注 http://weibo.com/steedhorse)...

测试真是个细致活

测试真是个细致活。产品某模块里有一种实体,行为主要受三个参数控制,用户可以修改这它们。其中两个参数可以等于0,此时产生一种退化形式的实体;另一个不可以等于0。QA都测过了,大于0,正常;等于0,实体退化成简单形式,显示、打印也都正常;小于0,直接拒绝修改,都是正确的行为。却没想到,这种退化的实体在...

2015-01-23 15:00:40

阅读数 2996

评论数 0

密码学简介(四)

C++加密解密库 信息安全对各种信息系统重要性无庸质疑。因此,用于实现软件信息系统的各种编程语言都会有相应的与加密解密有关的库,有的语言(如Java)在其标准库中直接提供基础组件,有的语言(如C++)则需使用第三方库。各种库中带“crypto-”前缀的模块,基本都是用来做这个的。 值得一提的是...

2012-05-13 23:54:52

阅读数 8667

评论数 10

密码学简介(三)

报文签别码 散列函数的另一种用法与报文鉴别有关。 有时候,通信双方不仅关心通信内容的私密性,对信息是否被篡改过(内容完整性)更为关心;或者,他们根本不关心信息的私密性而只关心信息的完整性。亦或者,软件的不同层次可能负责不同的任务,比如底层负责加解密,上层完成完整性鉴别。报文鉴别码可以解决这类需...

2011-12-19 23:39:30

阅读数 5050

评论数 2

密码学简介(二)

散列函数 散列函数,也叫杂凑函数,实际就是哈希(Hash)函数,“散列函数”是信息安全领域惯用的译法。 不论从概念还是从形式上看,它跟数据结构课程上讲的哈希函数的确如出一辙:基于任意输入都产生定长的输出,且好的散列函数值域会分布得尽量平均。 然而,信息安全领域使用的散列函数却有着诸多安全方面...

2011-11-30 01:02:02

阅读数 5592

评论数 2

密码学简介(一)

本文简单介绍密码编码学领域的一些基本原理,基本算法和基本理念。仅针对原先对此领域无甚了解的朋友做入门之用。 加密解密是信息安全领域的基本技术,加解密系统中的基本概念从下面这张常规加密的简化模型中就可以知道个大概。 从图中可以看出,明文输入在密钥K1的作用之下,通过加密算法(如DES)转换成...

2011-11-15 21:28:56

阅读数 6362

评论数 2

咱也来做面试题(一)

身边有些做Java开发的朋友,找工作时常常被考到一道关于字符串的题目。题目倒是很基础,然而根据朋友们事后的描述,有理由认为有的面试官自己都没有完全搞清楚这个问题。此外,在CSDN论坛中我也多次看到一些朋友在这个问题上的迷惑。索性把自己的理解写下来吧。   题目是一道简单的小程序,像下面这样: ...

2011-10-21 00:44:05

阅读数 12326

评论数 49

漫谈C++内存分配失败

没错,是“漫谈”,而且“漫”得有点乱。然而,抛砖尚可引玉,想到的事情,纵然脉络不是很畅,写下来也不是坏事。开卷有益,动笔也有益。   一切缘自一位C语言开发经验非常丰富的的朋友问我的一个问题。朋友问:“C++中的new在分配内存失败时会抛出异常(std::bad_alloc)而不返回0(一些老...

2011-10-19 00:26:44

阅读数 15431

评论数 32

右值引用简介(中英文对照)

[译注:原文出处:http://www.artima.com/cppsource/rvalue.html] [译注:本文介绍的“右值引用”是C++11的新特性] A Brief Introduction to Rvalue References by Howard E. H

2011-10-07 10:56:50

阅读数 5848

评论数 4

PuTTY Configuration Memo

(1) In "Terminal / Features", turn on "Disable application keypad mode", otherwise, the number keys on paypad would not behave we...

2011-10-02 15:55:56

阅读数 2820

评论数 0

好长一句话

读CS:APP,见一段落近乎一句呵成,虽不费解,仍觉恢宏,遂摘录此长句:  Buffer overflow attacks have become so pervasive and have caused so many problems with computer syste

2011-10-01 18:13:52

阅读数 2180

评论数 0

技术翻译感悟——在“原汁原味”与“不露痕迹”之间寻求平衡

关于翻译的品质,我们都知道严复先生在一百多年前提出了“信”、“达”、“雅”三重原则。这三重原则成为百年来译者们追求的目标。实际上,关于翻译,鲁迅先生也有一段很有说服力的见解,它主要从“信”和“顺”两方面讨论翻译的质量。 翻译必须有异国情调,就是所谓洋气。其实世界上也不会有完全归化的译文,倘有,就...

2011-09-23 23:43:08

阅读数 2916

评论数 0

两个古老问题的递归算法。

1. 全排列 思路1:递归分治(基于交换) #include void perm(int* a, int start, int end); void swap(int& m, int& n); void output(const int* a, int size);...

2011-08-31 17:45:22

阅读数 2292

评论数 0

读刊摘抄

某日午休时间,看到同事桌上有一本卷了角的2011年第1期《程序员》杂志,随手翻开一页,是一篇访谈,题目叫“Java的命运”,是Common Lisp专家Peter Seibel对Google公司首席Java架构师Joshua Bloch的访谈(郝培强 译)。从这篇文章里,我并没有对有关Java命运...

2011-06-11 22:12:00

阅读数 2665

评论数 3

单元测试的意义

一般认为,单元测试有四种作用: (1)使代码可以放心修改和重构; (2)迫使程序员从调用者而不是实现者的角度设计软件模块; (3)迫使程序员将软件模块写得易于测试和调用,从而有利于解耦; (4)测试本身可作为被测代码的用法说明,从而替代了一部分文档功能。  如果更深入地

2011-01-27 11:37:00

阅读数 5315

评论数 4

锁的代价

秃子说并发程序的性能瓶颈常常在于锁的滥用。我对此虽深信不疑,却一直没有量化的感性认识。刚才写了个浮点运算小程序一跑,结果有锁无锁性能相差8到10倍。注意,测试程序是单线程的,也就是说这还只是没有实际竞争时的差别。

2011-01-25 14:59:00

阅读数 3791

评论数 6

说说C语言运算符的“优先级”与“结合性”

论坛和博客上常常看到关于C语言中运算符的迷惑,甚至是错误的解读。这样的迷惑或解读大都发生在表达式中存在着较为复杂的副作用时。但从本质上看,仍然是概念理解上的偏差。本文试图通过对三个典型表达式的分析,集中说说运算符的优先级、结合性方面的问题,同时说明它们跟求值过程之间存在的区别与联系。   优先级决...

2010-09-24 23:58:00

阅读数 23270

评论数 21

二进制补码的特性

C语言是一种较接近机器底层的语言,但它的语言标准中并没有规定有符号数要用二进制补码来表示;可事实上几乎所有平台上有符号数都用二进制补码来表示,它已成为“事实上的标准”,这无疑源于二进制补码巧妙的设计,这种巧妙使得用它来表示有符号数时会带来很多有用的或有趣的特性。

2010-08-07 17:14:00

阅读数 4373

评论数 1

第二届云计算大会上拍的几张照片

张亚勤先生的“云计算定义”: 微软的云平台和技术: 黄铠教授“互联网云中的基本概念”: 黄铠教授的“云服务栈”: 对了,在这次大会上,CSDN的蒋涛老大主持过一个论坛,印象中他说的最多的一个词是“分享”。可惜他主持的时候相机没电了。- -b 再附一张北京夜景: 下面是第二天被几个哥们拉去唱歌的地方...

2010-05-31 00:02:00

阅读数 2755

评论数 3

递归-回溯法求解8皇后问题(C)

无意中翻出了N年前写的递归-回溯法求解8皇后问题,干粹塞到博客中吧。#include #include #include #define QUEENS 8 // 记录解的序号的全局变量。int iCount = 0; // 记录皇后在各列上的放置位置的全局数组。int Site[QUEENS]; ...

2010-05-18 17:29:00

阅读数 3923

评论数 1

蒙特卡罗算法计算圆周率PI(C++)

蒙特卡罗(Monte Carlo)算法计算圆周率的主要思想:给定边长为R的正方形,画其内切圆,然后在正方形内随机打点,设点落在圆内的概为P,则根据概率学原理:P = 圆面积 / 正方形面积 = PI * R * R / 2R * 2R = PI / 4。即 PI=4P。这样,当随机打点足够多时,统...

2010-04-27 09:33:00

阅读数 13196

评论数 5

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