自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 tdd开发学习

最近看了几本tdd方面的书,有《test driven development for embedded c》、《the art of unit testing in .net》,前面一本号称c++程序员也能学到很多,但我既是c++程序员,又不是嵌入式开发者,所以看了一半还是放弃了。第二本刚看了不久,书中介绍tdd对代码依赖性、代码质量都有益处。解决测试时的依赖性有两个组件,一个是mock,一

2014-02-06 16:07:03 606

翻译 what every programmer should know about memory

这篇文章还是很深的,很多看不懂,可能要以后回头再看了。根据这篇文章描述,现代cpu架构中,最重要的是指令预取和缓存的使用。如果cpu在读取连续地址的数据时,能很好的利用指令预取。有一个矩阵乘法的例子。最初的代码是:for (i = 0; i     for (j = 0; j         for (k = 0; k             res[i

2013-07-17 20:55:22 706

原创 shell执行脚本

#!/bin/bashif [ ! -f $3 ]then    echo '$$$FAIL$$$ sql file not found'    exit 1fiexport ORACLE_SID=futures8;sqlplus $1/$2 start $3exit;EOF#search error message in the log

2013-06-09 11:19:51 454

原创 开发小记

2013-1-4 解决内存泄漏问题,方法是结合gflag和umdh工具。2013-1-8 解决c++av异常,方法是使用gflags, 命令行为gflags /p /enable XXX.exe /full,然后调试的时候在指针错误的时候就会停下来。2013-1-9 解决vc6 编译时的fatal error C1001 internal error问题,方法是调整头文

2013-01-10 15:56:41 376

原创 codejam old magician 问题

原文:https://code.google.com/codejam/contest/32004/dashboard#s=p0A magician does the following magic trick. He puts W white balls and B black balls in his hat and asks someone from the audience,

2012-07-31 21:43:52 602

原创 lock free 算法学习笔记

为了提高并发访问的性能,很多人提出了lock free算法。它的原理是避免了由于锁导致线程进入等待状态造成的开销,而且避免了锁导致的死锁,signal等问题。但是很多人指出lock free 算法在高度竞争的情况下效果不好。我没有测试过,目前现成的库有libcds。   lock free使用cas, faa等原子指令实现,有时也使用cas2指令,主要是为了解决aba问题。(aba问题的描述见

2012-06-05 19:43:56 1764

原创 用python查看linux进程路径

linux下直接用ps等命令看不到进程的路径,为此写了一段代码查看路径。其实可以用psutil来做,可惜我做完才发现。import subprocessimport sysimport osdef getprocpath(procid):    os.chdir('/proc/' + procid)    return os.readlink('exe'

2012-05-07 15:49:27 2055 1

原创 vc6调试缓冲区溢出的笨办法

从vc7以后对调试缓冲区溢出有了很多办法,vc6貌似没有直接的办法,要么用第三方工具。下面有一个土一点的办法:1. 一般函数调用前都有push ebp; move ebp, esp;这样的语句,这两条语句是为了保存返回地址。可以在move ebp, esp之前查看ebp的值,然后在内存窗口的地址中输入ebp的值,不要关闭内存窗口。2. 单步前进,同时关注内存窗口。如果发现值变了,(这个

2012-01-10 17:27:39 966

原创 《大规模c++程序设计》笔记

头文件卫哨每个头文件一般会包含卫哨,即下面的定义: //foo.h#ifndef FOO_H#define FOO_H#endif另外还有一种卫哨称为包含卫哨,如://foo.h#ifndef FOO_H#define FOO_H#ifndef TOOLS_H#include "tools.h"#endif#e

2011-11-24 15:27:30 479

原创 系统设计学习体会

在用例中,一般要编写主流程和替代流程,也有人分为主流程、替代流程、例外流程,这里的替代流程相当于一种支路,最终还会回到主流程,例外流程则往往导致流程结束。在顺序图里面,发现很多设计文档不会把替代流程画出来,搞出很多if-else,但判断过程都会画出来。动作的发起者用户往往

2011-09-14 15:50:57 641

原创 vs2005打开form设计器出错的一个解决方法

选择清理解决方案,然后再次生成解决方案,很多时候可以解决

2011-09-13 14:32:45 664

原创 工具的使用

正则表达式生成器 the regulatorsvn在分支间复制修改 http://www.subversion.org.cn/svnbook/1.4/svn.branchmerge.copychanges.html

2011-09-07 21:09:35 310

原创 ironpython2.6解析xml注意事项

1. 要设置好默认编码import sysreload(sys)sys.setdefaultencoding('cp936')其中reload(sys)是必须的,因为在启动后python会把setdefaultencoding去掉2.m

2011-08-25 15:49:20 698

原创 网络编程学习笔记

unix 网络编程第一卷tcp的特性:segment size: 一次发送到最大字节数window size:用于流量控制,随着send减小,随着read增大可靠性:每一个包都要求确认顺序性:每个包都有顺序号,接收方进行排序,重复包会丢弃rtt: tcp实

2011-08-18 14:44:52 331

转载 linux多线程编程精要

原文在http://blog.csdn.net/solstice/article/details/6181488创建线程:不要在库函数里悄悄地创建线程,这会给fork带来麻烦不要在main之前创建线程,不要在构造函数里创建线程不要根据连接数和请求来创建线程,这会导致scalabl

2011-07-28 16:19:51 504

原创 algorithm design manual 2nd学习笔记

algorithm design manual 2nd图相关算法:遍历算法,包括宽度优先和深度优先,两种算法都包括处理结点和处理边。宽度优先算法应用:宽度优先算法保证离root近的先找到,所以可以用来实现无权图的找路。连接部分,用于帮助找到最大的连接部分。双色问题,可以帮助判断是

2011-07-19 17:28:36 1581

原创 linux编程学习

进程:forkexec函数族,注意调用后是替换而不是生成新的进程 信号:signalraisekill传统的signal是oneshot还是其它并不确定,posix signal可以用flag来设置,posix signal另一个地方是可以得到来源进程信息poll:poll和select类似,但不受文件描述符的限制epoll在2.6内核作了很大优

2011-06-02 16:17:00 468

原创 堆栈输出函数

<br />public static void LogStack()<br />        {<br />            StackTrace trace = new StackTrace();<br />            Debug.WriteLine("Stack begin");<br />            foreach (StackFrame frame in trace.GetFrames())<br />            {<br /> 

2011-05-24 14:07:00 538

原创 开发经验总结

<br />SocketIO:new char[0]也会泄漏,在通信时发生的错误最好由一个长时间运行的现场专门处理,需要线程管理<br />POS:注重可支持性,多写日志,最好可以运行期动态设置日志级别<br />windbg: htrace, 子进程调用时中断

2011-04-20 09:49:00 348

原创 调试中的backtrace工具

<br />如果调试的时候有工具能帮助你回朔你的代码是怎么运行的,为什么会到现在的状态将是非常方便的。现在已经有不少工具支持:<br />vs2010提供的histroric debugging功能;<br />ddd/gdb的backtrace;<br />vmware的replay debugging工具<br /> <br />网上有一个简单的讨论<br />http://stackoverflow.com/questions/221806/debugging-backwards

2011-03-28 16:39:00 753

原创 python 正则表达式

<br />内容来自text process in python<br /> <br />re_show.pyimport re<br />def re_show(pat, s):<br /> print re.compile(pat, re.M).sub("{/g<0>}", s.rstrip()),'/n'<br /><br />s = '''Mary had a little lamb<br />And everywhere that Mary<br />went,

2011-03-25 10:31:00 756

原创 算法学习记录

<br />introduction to algorithms 3rd<br /><br />http://mitpress.mit.edu/algorithms/<br />目标:<br />算法理解<br />算法思想<br />经典问题<br />伪代码<br /><br />part IV<br />part V<br />chp27<br />chp32<br />chp35

2011-03-17 10:57:00 317

原创 数据分析

<br />数据分析最重要的一点是有比较

2011-03-08 22:50:00 291

原创 http://www.dumpanalysis.org 内容一览

trace pattern中提到的关注对象:语句出现概率,线程和进程id, 用bird eye查看不同的地方(缩小显示比例,查看trace文件整体格式), trace语句间谍时间间隔,前台和后台组件的执行情况(可以考虑上色表示)todo:考虑怎样用各种格式输出trace文件,比如颜色,缩进等

2011-02-25 17:27:00 813

原创 python学习记录

整除, 复数表示, slice, range, pass关键字, 函数用参数名调用,函数的*arg和**arg, 默认参数, Unpacking Argument Lists

2011-02-11 16:19:00 621

原创 《代码大全2》读书笔记

软件的复杂性来自本质性和偶然性没有人的大脑装得下一个现代的计算机程序,所以必须把程序组织起来,一次只关注一小部分。信息隐藏要隐藏的是复杂度和变化源concept blockbusting有一些设计的习题,有助于锻炼智力How To Solve It: A New Aspect of Mathematical MethodHow to Solve It: Modern Heuristics

2011-01-20 13:15:00 458

转载 False share的影响或者解决

什么是False share:False sharing is a well-known performance issue on SMP systems, where each processor has a local cache. It occurs when threads on different processors modify variables that reside on the same cache line, as illustrated in Figure 1. Thi

2011-01-19 10:25:00 1015

转载 C语言:内存字节对齐详解[转载]

<br />一、什么是对齐,以及为什么要对齐:<br /><br />1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。<br /><br />2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况,

2011-01-17 10:58:00 328

原创 IT网文摘要

Sending Keystrokes to Any App, Calling .NET from an MFC App, and Morehttp://msdn.microsoft.com/zh-cn/magazine/cc163867%28en-us%29.aspx向另外一个程序发生键盘动作Sepia Tone, StringLogicalComparer, and Morehttp://msdn.microsoft.com/zh-cn/magazine/cc163866%28en-us%29.aspx介

2011-01-14 17:35:00 413

原创 《我编程我快乐》读后感

这本书不错。作者先指出,作为一个职业程序员,你要像商人一样考虑自己的投资,考虑风险和回报的问题。研究新技术还是老技术?新技术在开始的时候回报很高,但后续会有大量的人学习。老的技术会被替代,但老的系统需要有人帮助它尊严的死去,所以研究过时的技术有时也不错。作业:按时间顺序列出你知道的技术,找出你的强项,技术之间的关系。找出你感兴趣的地方。研究供给关系在发达国家,外包发展很快,所以中低级人员工作岗位大量流失,但相应需要人为外包软件设计规格、架构等。作业:上求职网站,概括高端技术和低端技术,考虑哪些高端技术岗位不

2011-01-12 17:25:00 867

原创 windows文件拷贝比较

shell方式代码如下:void ShellCopyFiles(TCHAR* Src, TCHAR* Tgt){    SHFILEOPSTRUCT op;    op.hwnd=NULL;    op.wFunc=FO_COPY;    op.pFrom=Src;    op.pTo=Tgt;    op.fFlags=FOF_ALLOWUNDO;    op.lpszProgressTitle=_T("Copying file");    SHFileOperatio

2011-01-10 11:14:00 2047 1

原创 领域驱动设计

<br />值对象和实体对象<br />聚合:哪些对象作为聚合根<br />仓库<br />工厂

2011-01-04 22:49:00 353

原创 stl学习笔记

stl中用到多个区间的算法都要求第二个区间大于等于第一个区间迭代器适配器是有迭代器的接口,但实际做的是其他事情。著名的有插入迭代器,流迭代器,反向迭代器stl的算法操作不从容器删除元素,一是由于算法不了解容器的知识,二是为了效率考虑到效率,stl没有很严格的异常检查,但保证两点:对于基于节点的容器(list, set, map等),单个元素的插入操作实现commit-or-rollback对于基于数组的容器,对结尾元素的插入实现success-or-no effectdeque的特性

2010-12-30 16:36:00 407

原创 vs2005的一些代码编辑功能

1 循环剪贴板,vs会记住20个剪贴板项,如果要使用的话,粘帖的时候使用ctrl+shift+v,会粘贴文本并且选中,如果不是需要的,可以再按ctrl+shift+v,直到出现想要的项2 在editor中按ctrl+j会列出一些方法,可以tab或者回车选中。3 c#默认代码段比较少,可以到http://msdn.microsoft.com/zh-cn/vstudio/aa718338.aspx下载

2010-12-28 11:01:00 444

原创 不要返回c++临时对象的指针

不要返回局部对象的指针,这个大家都知道,不要返回临时对象的指针,这个有时容易忽略。最近用vc+ado做了一个activex,里面有这样一段代码:BSTR  fieldname = ptrRecord->Fields->GetItem(i)->Name;pOutputRecord->SetFieldValue(0, fieldname, val); SetFieldValue的声

2009-12-17 21:27:00 1264

原创 解决问题的方法

1.定义问题,越详细越好2.研究问题,尽可能获得具体资料3.分析问题4.提出解决方案5.用可控的方式执行解决方案 (摘自oracle 11g administration from novice to professional) 建议:写工作记录研究问题的根本原因记录问题环境

2009-10-10 16:47:00 426

原创 制作activex控件cab的方法

浏览器中使用的activex控件一般是打包成cab文件,然后申请证书。测试的时候可以使用一些免费的证书。整个过程用批处理比较方便,把下面存成批处理文件。signcontrol.batpath=c:/cabtool/bincabarc -s 6144 n ATLObjCtrl.cab ATLObjCtrl.dll ATLObjCtrl.infpath = "C:/Progra

2009-07-30 16:57:00 1357

原创 CComObject注意事项

 CComObject的CreateInstance方法是不增加引用计数的

2009-07-15 10:20:00 595

windows下几种文件拷贝方式比较代码

windows下几种文件拷贝方式比较,包括shell方式,CopyFile等

2011-01-28

空空如也

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

TA关注的人

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