硬币 A 贴着一样的硬币 B 旋转一周,那么硬币 A 自身旋转了多少周?

摘要: 非常有意思的问题,思考相当重要。一方面是为了Mark这个问题,另一方面是为了Mark原作者Matrix67的博客地址。http://www.matrix67.com/blog/archives/5040以正方形为例作出下图,可以看出,对于正方形自身来说,其旋转了2周。 阅读全文
posted @ 2012-11-12 21:13 caigen 阅读(322) 评论(0) 推荐(0) 编辑

清空已有思考的重要性

摘要: 1,使用VS调试UCC的UCL,总是在CreateFileA处失败。2,单独执行UCL,非管理员权限失败,管理员权限成功。3,使用过绝对路径未成功。(从资源管理器中复制的,是反斜杠”\")4,移动过文件的位置依然未成功。(此处没有全覆盖)5,以为是管理员权限问题,顺着此思路试行并搜索各种,皆不成功。一直以这个思路!!! 注意清空思考。解决: 低级错误! 将需要的文件拷贝到项目文件的根目录即可,或命令行参数里输入正确的路径。不是solution文件下的debug目录,也不是项目下的debug目录。上图记录并标明: (正反斜杠害死人,测试要小心的全覆盖!) 阅读全文
posted @ 2012-11-09 15:59 caigen 阅读(143) 评论(0) 推荐(0) 编辑

inner join on多列

摘要: 修复了一个 inner join 导致的bug!左右表有多个须inner join的字段,容易遗漏,理解实际意义需求 &多加注意。 阅读全文
posted @ 2012-11-09 15:44 caigen 阅读(666) 评论(0) 推荐(0) 编辑

64位机上的数据类型

摘要: 在64位机上,使用如下故意编制的程序调试观察。可得如下结果:对此我们有如下结论:0)内存地址编址的基本单位是byte。1) bool、char: 1byte/8bit; short: 2byte/16bit; int、float: 4byte/32bit; double: 8byte/64bit。2) 为了优化,内存会进行对齐排列。(在不同情形下可能有不同的对齐方式)3)非栈内存通常从低地址向高地址分配。IA的栈内存通常由高地址向地址分配。 阅读全文
posted @ 2012-11-04 21:45 caigen 阅读(268) 评论(0) 推荐(0) 编辑

C++虚函数与C++虚函数表

摘要: 这个问题被勾起来的原因是听到师兄面试又被提到。本来知道这玩意,但还是想实践检验一下加深理解。1)上酸菜: 类是创建对象的模子!#include <iostream>using namespace std;class root{protected: int id;public: root() { id = 1; } virtual void say() { cout << "i am the root" << endl; } virtual void move() { cout << "i can ... 阅读全文
posted @ 2012-11-02 21:58 caigen 阅读(157) 评论(0) 推荐(0) 编辑

让栈溢出

摘要: 最近听说了一个面试问题是如何让栈溢出。以破坏为目的,O(∩_∩)O哈哈~,感觉相当有意思。个人第一反应就是:上溢还是下溢?现Demo上下溢的方法。如果你对此问题还有其他看法或了解本问题的其他材料,欢迎告知。1)上溢:stack over flow。无终止递归。一直走,到世界的尽头。栈帧耗尽。2)下溢:缓冲区溢出。通常用来覆盖返回地址,精确的计算可以改变程序流程。 阅读全文
posted @ 2012-11-02 16:20 caigen 阅读(298) 评论(0) 推荐(0) 编辑

return

摘要: Linux中的fork,子进程返回0,父进程返回子进程ID。子进程返回0的原因就是copy_process时任务状态段数据设置了eax为0。昨天突然想不起return到底怎么return的了,现用简单示例Demo一下。断在return 1出,go todisassembly。在fun中,除了其他的栈操作外,可以看到有:mov eax 1 -> ret。在main中使用eax。这是单值返回的情况,使用eax传递。非单值为栈上的数据交换,mov来mov去。可以辅助理解fork的copy_process过程。 阅读全文
posted @ 2012-11-02 15:57 caigen 阅读(189) 评论(0) 推荐(0) 编辑

自底向上的I/O扯淡

摘要: 网上流传的Linux kernel Map大图扔在下面。现层次化概览一下:1)硬盘驱动器(不是硬盘驱动程序):硬盘驱动器就是通常所说的硬盘。 “硬盘|驱动器”,“硬盘”- 盘,“驱动器”-旋转轴,磁头,读写臂等。 参见维基百科:http://zh.wikipedia.org/wiki/硬盘驱动器百度百科:http://baike.baidu.com/view/7706.htm。2)硬盘控制器:也是个硬部件,管理硬盘的。下面大图中的electronics层中的disk controllers。 参加百度百科:http://baike.baidu.com/view/2346261.htm3)硬.. 阅读全文
posted @ 2012-10-28 16:43 caigen 阅读(262) 评论(0) 推荐(0) 编辑

数据库建表的字段名

摘要: 不用缩写的太过分的字段名。最好用英文全称(加下划线),容易恢复对系统的记忆与理解。0,码农本身,Coder Friendly。1,数据层:数据易于理解。易于对应实体。存储过程易于理解。2,数据访问层:易于编写对应访问代码。3,业务逻辑层:真正的思考“业务逻辑”,不用纠结于“这种缩写”还是"那种缩写“(通常容易掉字母、错字母)。(各层会有一定的耦合)4,显示层:需要User Friendly,双赢。 阅读全文
posted @ 2012-10-11 22:44 caigen 阅读(276) 评论(0) 推荐(0) 编辑

结构型模式:桥接(Bridge)

摘要: 我一直想用我自己的想法搞明白的问题就是:这些【设计模式的名字】传达了【设计模式本身】的多少意思和多少内涵。对于桥接(Bridge)来说,我想弄清的就是:桥在哪里?故事: 当你买了一双鞋,不太满意的时候,你会想去退货或者换一双。当然很多鞋店/鞋厂会提供这样的服务。建模: 一双你不满意的鞋子 (敏捷之靴?) 你,想退换。(退给他们之后,他们怎么搞你不管) 退 OR 换,这是一个问题。类图:主观意识上,把那个隐形的桥当做主角就成。对自己说三遍:它是主角,它是主角!桥的这边和那边各有一个配角:Left?-> Right。实现:Abstractionnamespace Bridge{ pu... 阅读全文
posted @ 2012-10-06 15:35 caigen 阅读(967) 评论(0) 推荐(0) 编辑