摘要:下面两段代码,哪个更容易理解?C++:[代码]C#:[代码]最近重拾DirectShow,由于COM基础不好,看C++看得东倒西歪,郁闷万分。想到就算把C++ code写完以后还要P/Invoke才能在C#中调用,想死的心都有。突然想起来试试DirectShow.NET,写出来代码果然好看。更关键的是没有COM的阻挠,瞬间就理解了DirectShow的架构。想想看学习OpenCV和EmguCV的也...
阅读全文
摘要:申请基本上提交完了,每天干的事情就是检查申请状态和看主页上挂的流量统计。每看到多一个美国IP访问都好兴奋,同时好急躁:哎呀老师怎么还不联系我呀,是因为不满意吗?被照片吓到了吗?想想看其他同学一定也有这样的心理,于是就想着写个小程序伪装各种各样的美国IP访问其他同学的主页来给他们一点小惊喜~ :-D 一开始想着通过伪造IP头伪装IP,但稍微想一下就发觉有点难度。通过伪造IP头只能伪造网络层的IP包,...
阅读全文
摘要:GF迷上了iPod游戏黄金矿工,所以平时也跟着玩玩。但这个游戏实在比较无聊,忍不住要让人折腾两下。 由于程序不是Windows平台下,反编译难度太大且不必要。主要的精力就放到了修改存档和地图上。用91手机助手查看MacOS下的文件,在/usr/Applications下面轻松找到乐GoldenMiner对应的文件夹,点进Documents文件夹就是它的存档。用XML写的,对修改者非常友好,用记事本...
阅读全文
摘要:Write some MATLAB code to demonstrate the differences of some basic sort methods. MATLAB is really suitable for data visualization!
阅读全文
摘要:In this article, we will see how the functional programming style makes code parallelization extremely easy. First the parallel version of QuickSort, which is quite complex to implement in C++ but ver...
阅读全文
摘要:In this article, I will introduce two sample scenes to demonstrate how we can use functional programming to make the code more intuitive, more elegant and more parallel.Text editingConsider we want to...
阅读全文
摘要:On DotNet Board of USTC BBS, orochi recommended a book named “Functional Programming For The Real World”. It demonstrates advantages of functional programming towards traditional imperativ...
阅读全文
摘要:这里说的性能指的主要是运行速度,而稳定性则侧重内存泄漏方面。这篇文主要讲述利用VSTS的Performance Profiler寻找性能瓶颈并做出优化的大体思路,以及利用Power Toys for .NET CF寻找.NET mobile程序的内存泄漏点的基本方法。性能一个程序性能不佳,亦即对于一定量的输入数据,得到结果耗时过长,原因不外乎拙劣的算法或蹩脚的实现。算法方面相对好查一些,毕竟时间复...
阅读全文
摘要:闲逛MSDN,发现一个类叫做RenderTargetBitmap,只需要两句话就可以把任何一个Visual对象转换成一个图片以方便显示和输出。我又一次震惊了。想当年用MFC的时候要实现把运算结果用图片输出费了多大功夫。先是用了GDI/GDI+,把现场绘制图文混排的结果整合成一个图片以方便输出。然后发现在拖动时存在抖动问题,于是引入了双缓冲。里面七七八八诡异陷阱一大堆,整整用了一个下午加一个晚上才搞...
阅读全文
摘要:复习编译原理,前年意云大神出了一个题,是这样的:一段源程序:[代码]用gcc 3.3.5开最大优化编译出来结果是:[代码]问用了哪些优化。看到这个题目当场就石化了,现在编译器太NB了吧,那么大一个while循环给优化的只有这么一点...[代码]于是真开gcc 3.4.4搞了一下,怎么结果反而差了一些:[代码]跳转结构搞得好诡异...而且优化得不干净,c < d还是比较了一下。那更高版本的gc...
阅读全文
摘要:双核sinZGallop过生日,跑过去发现他在研究《编程之美》里面那个让CPU占用率成正弦曲线变化的代码。但原代码只能在单核里实现,稍微改了一下现在双核也能跑了(算法并不像想象的那样简单,可以尝试一下:-)Serialization今天看了C#的Serialization,朕龙颜大悦~~ :-P现在对象可以直接和硬盘上的文件交换了(更确切地说,一个对象可以很简单的变成一个stream,或者反之),...
阅读全文
摘要:在写完一个类之后,做一下测试是在所难免的。这个文想讨论一下以往个人采用的一些做测试的方法,并从他们的优劣之处加以比较。只是需要注意的是,这里的测试和调试的含义并不相同。测试主要针对于整个类,打进去输入看看输出对不对,在这篇文里它仅仅是一个check的过程。至于调试,则发生在测试失败时,此时就需要跟踪到类的内部逻辑中去,看一条条语句是如何执行的。二者的概念和所应用的工具都是不同的。当然,这两者也没有...
阅读全文
摘要:用C#写程序的时候,每每一开程序就占用20MB+的内存,写个稍微复杂一点的WPF程序就占到100+MB。相比之下,用MFC写的程序占用的内存则相当少,20+MB的内存占用就比较多了。这点曾让我相当头疼,毕竟内存占用也是衡量程序质量的一个比较重要的指标。在读了"C# 3.0 in a nutshell"后,终于明白了是怎么回事。Garbage Collector并不是每时每刻都在回收垃圾的,尤其是对...
阅读全文
摘要:用C#实现一个图像边缘检测算法,处理一个300*375的图片竟然用了2.38s,吐血。用VSTS的代码分析工具发现,GDI+里面的GetPixel()这个函数竟然占用了运行时间的53.92%而SetPixel()占用了7.14%,光是图像的读入和输出就占了60%+(见图1)。这样的速度可受不了。稍微分析一下就能得出原因,Bitmap是一个通用类,可以用来处理多种图像格式,因此GetPixe()l和...
阅读全文
摘要:有一个很经典的概率问题是羊与车问题,大意是在一个游戏中有三个门,只有一个门后面有车,另外两个门后面是羊。你想要车,但你不知道哪一个门后面有车。主持人让你随便选了一个门。比如说,你选择了1号门。但你还不知道你是否选到了车。然后主持人打开了另一扇门,比如3号。你清楚地看到3号门后面是一只羊。现在主持人给你一个改变主意的机会。请问你是否会换选成2号门?(更详细的问题描述与历史探寻请参见http://ww...
阅读全文
摘要:由于历史原因,很多时候我们的代码并不完全是使用.NET写成的。这时候和以往C++代码的混合编程就显得相当重要了。最近碰到了这样的问题,将方法简要记述如下。调用简单的C++函数要在C#代码中调用C++函数,大体的思路是这样的:首先将C++函数写成DLL形式的库,然后在C#中导入DLL中的函数进行调用。具体的代码类似这样:C++代码:[代码]C#代码:(导入函数部分,写在调用函数所在类中)[代码]s其...
阅读全文
摘要:前两天给小学妹阐述了一下本校计算机科学与技术专业本科生需要掌握的知识体系。自觉比较有道理,整理一下发上来。适合的阅读对象:刚进入计算机系,对整个计算机科学技术的知识体系尚未了解的同学。本校学生获益尤大。整个计算机科学就像人一样,有两条腿。一条叫做数学(基础),一条叫做物理(基础)。数学主要指的是数理逻辑。其中比较重要的是形式逻辑系统、Turing论题和Churcher论题。形式逻辑系统用逻辑的方法...
阅读全文