做一个有理想的程序员
一个程序员要取得非凡成就,需要记住的15件事。 1、走一条不一样的路 在有利于自己的市场中竞争,如果你满足于"泯然众人矣",那恐怕就得跟那些低工资国家的程序员们同场竞技了。 2、了解自己的公司 不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益。 3、与最优秀的人为伍;...
View ArticleC++11标准之右值引用(ravalue reference)(转载)
摘要: 讲解C++11右值引用最详细的文章 阅读全文Richard Wei 2013-04-12 17:09 发表评论
View ArticleACE前摄器Proactor最好的讲解(转载)
转自:http://blog.csdn.net/caisini_vc/article/details/4474910把这两天做Proactor的一些经验和心得写一下,可能会给一些人帮助。 Proactor是异步模式的网络处理器,ACE中叫做“前摄器”。 先讲几个概念:...
View ArticleLinux内核的同步机制(1)自旋锁(spinlock)
Linux内核的同步机制(1)、自旋锁(spinlock) 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。 由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。...
View ArticleLinux内核的同步机制(2)信号量(semaphore)
Linux内核的同步机制(2)信号量(semaphore) 信号量在创建时需要设置一个初始值,表示同时可以有几个任务可以访问该信号量保护的共享资源,初始值为1就变成互斥锁(Mutex),即同时只能有一个任务可以访问信号量保护的共享资源。...
View Articleerlang和RabbitMQ学习总结
AMQP和RabbitMQ概述 AMQP(Advanced Message Queue Protocol)定义了一种消息系统规范。这个规范描述了在一个分布式的系统中各个子系统如何通过消息交互。而RabbitMQ则是AMQP的一种基于erlang的实现。 AMQP将分布式系统中各个子系统隔离开来,子系统之间不再有依赖。子系统仅依赖于消息。子系统不关心消息的发送者,也不关心消息的接受者。...
View Article可配置语法分析器开发纪事(六)——构造一个真正能用的状态机(下)
上一篇文章对大部分文法都构造出了一个使用的状态机了,这次主要来讲右递归的情况。右递归不像左递归那么麻烦,因为大部分右递归写成循环也不会过分的让语法树变得难以操作,不过仍然有少数情况是我们仍然希望保留递归的语法树形状,譬如C++的连等操作,因此这里就来讲一下这个问题。...
View Article回溯法求数组的排列组合
组合问题给定一个含有n个元素的整型数组a,从中任取m个元素,求所有组合。比如下面的例子a = 1, 2, 3, 4, 5m = 3输出1 2 3, 1 2 4, 1 2 5, 1 3 4, 1 3 5, 1 4 52 3 4, 2 3 5, 2 4 53 4 5分析典型的排列组合问题,首选回溯法,为了简化问题,我们将a中n个元素值分别设置为1-n#include...
View ArticleQt5 CMAKE编译简记
更新到QT5以后发现CMAKE里边的几个函数变了,加上qt自身也做了一些调整,总之以前qt4下面用CMAKE编译qt工程的那一套不管用了。 然后在按照官方文档写了cmake尝试编译,发现报错: http://qt-project.org/doc/qt-5.0/qtdoc/cmake-manual.html CMake Warning at CMakeLists.txt:5...
View ArticleQtDoc 5.0: CMake Manual
CMake Manual CMake is a tool that helps simplify the build process for development projects across different platforms. CMake automates the generation of buildsystems such as Makefiles. CMake is a 3rd...
View Article调试代码的时候发现QT对winmain有特殊支持
http://stackoverflow.com/questions/14115024/how-to-link-qtmain-in-cmake-with-qt5 老外真辛苦: I upgraded my project code from Qt4 to Qt5. It uses CMake. The conversion got well except for one line of Cmake...
View Article猜测一下QT的内存管理
传说中QT内存管理很牛逼,只管new不管delete。 很理智的一点的分析是,如果把控件的层次关系看成一颗树,那么父节点负责delete子节点。 再牛逼一点的分析是: http://mobile.51cto.com/symbian-271956.htm Qt 内存管理是本文将要介绍的内容,在QT的程序中经常会看到只有new而不delete的情况,其实是因为QT有一套回收内存的机制,主要的规则如下:...
View Articlewait 和waitpid详解
wait的函数原型是: #include<sys/types.h>#include <sys/wait.h>pid_t wait(int *status) 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,...
View ArticleQT5的cmake中没有支持CMAKE RELWITHDEBINFO
找到这样的代码修改了以后还是不行 if (NOT TARGET Qt5::Core) add_library(Qt5::Core SHARED IMPORTED) _populate_imported_target_properties(DEBUG "Qt5Cored.dll" "Qt5Cored.lib" )...
View ArticleVim文本的选择
在正常模式下(按ESC进入)按键v进入可视化模式,然后按键盘左右键或h,l键即可实现文本的选择。其它相关命令:v:按字符选择。经常使用的模式,所以亲自尝试一下它。V:按行选择。这在你想拷贝或者移动很多行的文本的时候特别有用。CTRL+v:按块选择。非常强大,只在很少的编辑器中才有这样的功能。你可以选择一个矩形块,并且在这个矩形里面的文本会被高亮。值得注意的是如果VIM中使用自动换行,那么直到你按EN...
View ArticleCMAKE编译MFC工程
老外真辛苦: http://stackoverflow.com/questions/11580748/using-cmake-for-making-a-project-which-includes-mfc http://www.cmake.org/Wiki/CMake_FAQ You need to add _AFXDLL to the preprocessor definitions and...
View Article从一道面试题来阐释一个普遍的认知误区(转)
上午一个师弟在QQ上问我一道笔试题,是他前两天去KONAMI面试时做的,这道题大致是这样的: 解释以下语句的含义: 1、new A; 2、new A();...
View ArticleCoGetClassObject()返回-2147221164(没有注册类别)
为什么微软的产品用起来那么复杂,各个系统的兼容那么麻烦。海燕呐,能不能让我省点心小王 2013-04-14 03:53 发表评论
View Articlepoj1021_2D-Nim
摘要: 题意:对比连个图是否相同。相同的条件是A图中每个连通的区域都在B图中有一块相同的区域与之对应。经过旋转后对应也可以。解题思路:思路一:暴力式。遍历并存储A图中所有联通的区域,然后在B中逐个寻找与之对应的图形。思路二:等价转化式。比较两个图中对应点的“连通度”是否相同。相同输出YES。空白点的连通度为0,空白点的连通度为它所在行和列与之相连的非空白点的个数。方式二非常巧妙,将......
View Article