- 博客(28)
- 收藏
- 关注
原创 面向对象的MVC模式
先来看一个传统的MVC模式:class FooModel {public: int getNumber() {return m_number;} void setNumber(int m) {m_number = m; m_view->numberChanged();} FooView *getView() {return m_view;} void setView(Foo
2006-10-10 14:00:00 1481
原创 Transparency 技术总结
I. Define Sc source color component Sa source alpha component Sca source color premultiplied alpha component Dc destination color component Da destination alpha
2006-10-03 22:29:00 990
原创 Color Convert 技术总结
I. Channel:1. Device to Device (Without Default) : Direct Convert eg. RGB to Gray eg. RGB to CMYK (use UCR and BG which be specified in GState). eg. Gray to RGB eg. Gray to CMYK eg. CMYK
2006-10-03 22:27:00 1443
原创 图像选区的生成方法
图像选区的生成方法:1. 将目标图像转换成二值图。2. 遍历二值图中的每一个点。3. 从这个点开始记录轮廓,直到返回起始点。4. 将二值图中的此轮廓范围反转。5. 继续遍历。6. 整理记录的轮廓。重叠的部分剪去,与目标点不重叠的去除。
2006-10-03 22:19:00 1156
原创 问题是什么?
老牛总是说考虑xx问题的时候不应该考虑xx问题,这是什么意思呢?我的理解是:不应该盲目的思考如何解决问题,而应该把重点首先放在“问题是什么”上。重点是对问题的分析,当对问题有足够的了解时,解决方案就是显而易见的。看看温伯格的“你的灯亮着么?”、“程序设计心理学”、“系统化思维导论”。
2006-10-03 22:16:00 759
原创 按合约设计与依赖巧合编程
任何程序库都有自己的一套使用方法,你只有严格遵守程序库设计者定义的规范下,才能‘随意’的使用他。比如在STL中,除了Vector之外的大多数容器的Iterator都不能被存储,因为针对容器的很多操作都会导致Iterator失效,只有在每次使用Iterator时都从容器中重新获得才可以保证安全,否则“行为未定义”。(当然Iterator的使用也不至于如此死板,但这样的使用一定是最简单最合法的,如果法
2006-10-03 22:14:00 1141
原创 Scott Meyers 5x5 Articles
Scott Meyer 最近在发表的一系列关于C++总结性质的文章。 5 for 5. My Most Important C++ Aha! Moments...Ever In this article, Scott Meyers shares his picks for the five most meaningful Aha! moments in his
2006-09-22 22:08:00 799
原创 希腊字母表
希腊字母表:α.Α.alpha β.Β.beta γ.Γ.gamma δ.Δ.deltaε.Ε.epsilon ζ.Ζ.zeta η.Η.eta θ.Θ.thetaι.Ι.iota κ.Κ.kappa λ.Λ.lambda μ.Μ.muν.Ν.nu ξ.Ξ.xi
2006-06-14 12:58:00 1190
原创 GNU Compile Tools, 可执行文件, 静态链接库, 动态链接库
Compile Process对于一个编译型语言,编译器工作时总要经过预处理、编译、链接等几个过程。以 C/C++ 为例:预处理器(cpp)将每个 .c/.cpp 文件中 #include 的头文件都合并到 .c/.cpp 文件中,并且对其进行宏扩展,由此生成数个编译单元。一般来说每个 .c/.cpp 文件对应一个编译单元。随后,编译器(cc)将每个编译单元翻译成本地二进制代码,在 GNU/Lin
2006-06-01 16:52:00 1718
原创 上下文无关文法
上下文无关文法(context-free gammar):指文法的前后(上下)没有关系,如文法:_statement ::= _name is _names friend.是上下文无关文法,因为文中出现的两个 name 可以不同(也可以相同,假设自己可以是自己的朋友)。而文法:_statement ::= _name{0} likes _name{1}, and _name{1} likes _
2006-05-11 22:45:00 1757
原创 LISP 就是语法解析树的前缀表达
LISP 就是语法解析树的前缀表达,有趣的说法,哈哈。有空看看这本书:How to Design Programs
2006-04-04 01:22:00 1249
原创 STL Deque 总结
对于 deque 这个东西在初学 STL 的时候好像有看过,可能是因为其特性不足够吸引人吧,尽然被忽略了。前两天在看 Effective STL 的时候才发现这个东东还是蛮有用的,就此总结一下:首先 deque 读作 deck ,中译双端队列。即为双端,其内部必然有两个队列,如果将队列看作是 STL 中的 vector,则 deque 可以看成是如下结构:template class dequ
2006-04-04 00:56:00 1842
原创 Effective STL 读书笔记 9
Item 43:用算法调用代替手写循环。 原因:STL 中的算法通常比手写循环更高效,手写循环容易出错,STL 算法更加清晰。 原则:如果需求和 STL 中的算法相同/类似,而且调用算法非常清晰,则调用算法。如果需要的仅仅是简单的循环,而且使用算法需要引入多个 binders 或 adapters,则手写循环。如果需要在循环中作复杂操作,将操作封装在函数对象中,然后调用算法
2006-04-01 14:22:00 1046
原创 Effective STL 读书笔记 8
Item 38:为满足按值传递设计函数类(functor class)。 我们习惯上:将 functor 称作函数对象,而不是仿函数;将 functor class 称作函数类,而不是其他。 一些 STL 的实现中的一些算法并不允许将函数对象(算法中的谓词)按引用传递,而且这样的编程风格也并不常见。所以,算法中的函数对象会按值传递,即在算法中被复制。 copy 导
2006-03-29 02:31:00 1357
原创 Effective STL 读书笔记 7
Item 35:使用 mismatch 或者 lexicographical_compare 实现简单的忽略大小写的字符串比较函数。 mismatch 实现:int ci_compare (const string &s1, const string &s2) { if (s1.size() return ci_compare_impl(s1, s2);
2006-03-27 00:45:00 890
原创 Effective STL 读书笔记 6
Item 30:在应用算法时,确定目标范围(destination ranges)足够大。 首先以下代码是错误的,transform 将对 dest.end() 开始的 N 个元素调用赋值操作,但这些元素并不存在:transform(src.begin(), src.end(), dest.end(), transmogrify);
2006-03-26 02:28:00 1056
原创 Effective STL 读书笔记 5
Item 26:优先使用 iterator 而不是 const_iterator, reverse_iterator, const_reverse_iterator。 STL 的许多算法要求输入迭代器类型为 iterator 而不是其他几种。 迭代器可以进行如下转换: 由上可以看出 const_iterator 无法转换成 iterator,而且 re
2006-03-25 01:29:00 978
原创 Effective STL 读书笔记 4
Item 19:区分等价(equivalence)和相等(equality)。 现看看英汉字典对等价(equivalence)的定义:一种逻辑操作符,具有下述性质:若P是一个命题,Q是一个命题,R是一个命题,当且仅当 所有的命题为真或所有的命题为假时,P,Q,R,...的等价才为真。 在 STL 中有两种比较对象是否相等的方法,方法一,相等(equality):
2006-03-24 01:45:00 1092
原创 Effective STL 读书笔记 3
Item 13:用 vector 和 string 替代动态分配的数组。 大多数的 STL 实现中 string 用到了引用计数,避免引用计数的方法是用 vector 替代。 Item 14:使用 reserve 避免不必要的内存重分配。Item 15:注意 string 的多种实现方法。 作者从 sizeof(string)
2006-03-21 23:43:00 907
原创 Effective STL 读书笔记 2
Item 10:注意 allocator 的惯例和限制。 Allocator 最初是为了对在16位系统上的 near 和 far 指针内存访问模式进行抽象而加入的(虽然这个尝试失败了),之后 Allocator 被设计成为标准库提供全攻能的内存管理模块。但由于效率问题,标准委员会弱化了 Allocator 的功能。甚至打多数的 container 根本就不使用 allocator,也
2006-03-21 22:25:00 841
原创 Exploring the C++ Unit Testing Framework Jungle
Exploring the C++ Unit Testing Framework Jungle 一篇对各种 C++ Unit Test 工具进行评测/选择的文章。作者:Noel Llopis 时间:28 December 2004其中评测了包括:CppUnit、Boost.Test、CppUnitLite、NanoCppUnit、Unit++、CxxTest。但是没有包括 Google 排名第一的
2006-03-09 23:00:00 963
原创 Effective STL 读书笔记 1
读技术书籍是一件开心的事情,但从来没有哪本书像 Effective 这样让我这么开心。Effective C++ 如是,More Effective C++ 如是,Effective STL 亦如是。没有哪位作者比 Scott Meyers 更懂得轻松与严肃的学习了。以下只列举被我“忽略”和“几乎忽略”的东东。Item 1: Choose your container with care.
2006-03-05 21:59:00 957
原创 Windows fat32/ntfs 与 Linux ext2/ext3 互访问
重装 Windows 系统之后,有一大堆的软件需要重新安装&配置,总结一下,正好当作 Blog 的好题材。等 Fedora Core 5 出正式版后,又有一大堆 Linux 的设置需要总结。工作中经常需要在 Windows 和 Linux 两个系统里飞来飞去,所以需要互相访问对方的文件系统。我指的是在 Linux 中访问 Windows 的 fat32/ntfs 分区,及在 Windows 中访问
2006-03-01 18:59:00 3183
原创 恢复 Grub 引导
一般安装 Windows 和 Linux 双系统时都是先安装 Windows 再安装 Linux,然后利用 Linux 自带的多操作系统引导工具来制作引导菜单。以 Fedora 为例,安装时会有 Grub 的设置只要一直 next 就可以配置好(至少是能用的)。但如果在使用中我们重新安装了 Windows 或重写了 MBR(如果你的 BootLoader 安装在 MBR 上),那么就会导致多启动引
2006-02-28 21:26:00 1627
原创 随便读读:Windows 游戏编程大师技巧 (第二版) 关于BOB
BOB (Blitter Object) 游戏引擎中的重要对象,代表由一系列动画组成的一个屏幕元素。让人想到图元……BOB 的基本属性: Position Size State : visible or invisible Images or ImageFrames Animations Animation Speed cu
2006-02-22 00:28:00 1156
原创 Mind map 在 Wikipedia 的定义
好不容易找到了 Mind map 在 Wikipedia 的定义,现在看来 Mind map 会成为我工作中的一个重要助手,从上周针对 PDF Form and Pattern Render 的 Mind 就可以看出一点端倪。Mind mapFrom Wikipedia, the free encyclopedia(Redirected from Mind mapping)
2006-02-18 23:04:00 3874
原创 数据的格式选择,和同源数据
数据的格式选择,和同源数据。如果我们正在设计一个游戏系统,其中两个重要的部分 Sprite & Game,Game 负责整体逻辑,为了刷新每个 Sprite 的状态(位置,速度,加速度),Game 向 Sprite 发送 tick message。// examples 1public class Game { private long lastTime; private List s
2006-02-16 21:20:00 2280
原创 初识mind-mapping
sf.net 的本月最佳工程是 FreeMind,这是我接触的第二个“Mind“类型的软件,第一个是 MindManager,是回家过年的时候《软件》杂志CD赠送的(还附带了Keygen!),当时只是了解了一下没太在意。 今天在公司写PDF Pattern的时候,随手在纸上画草图,偶然发现与 MindManager 的样图有相似处(主要是内容的组织方面)。可惜那个东东只能在 Windows 上用,
2006-02-13 22:18:00 1956
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人