自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (5)
  • 收藏
  • 关注

原创 2015读书清单(20150308更新)

这个文档用于记录2015年读过的书,随时可能更新。

2015-02-26 15:07:46 807

原创 [算法学习笔记]算法基础知识

算法基础知识算法的五大要素有穷性:算法必须能够在有限个步骤内完成。确定性:算法的每一步必须有确定的定义。输入输出可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成循环不变式循环中的循环不变式可以帮助我们理解算法的正确性。为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的。 2. 保持:循环不变式在循环

2015-02-25 19:09:10 1068

原创 Emacs org模式的简单GTD流程

http://www.phonzia.com/2014/07/Emacs_org_GTD/

2015-01-05 12:58:02 1224

原创 修改代码的艺术读书笔记002——带着反馈工作

《修改代码的艺术》的作者很有意思的描述了对系统改动的两种改动方式:(1)编辑并祈祷。(2)覆盖并修改。

2014-04-10 13:28:44 1011

原创 《修改代码的艺术》读书笔记001——修改软件的原因和存在的问题

修改软件是任何一个开发人员所面对的问题,软件是否容易修改,被修改后的软件是否变得更好,是每一个开发人员都知道必须关注但是在实际开发过程中却往往忽视的问题。有多少人在接手一个新项目时抱怨新项目的遗留代码质量太低?又有多少人愿意或者说有能力去将一个让人崩溃的代码逐步改善?我在去年,将我所在上一家公司的业务处理程序进行的全面的重写,以达到我想要的容易阅读、容易修改的目的。但是假如面对着一份只能考虑修改,不能考虑重写的,但是混乱不堪的代码,如果将其逐步改善,这是我在刚进入的公司所面对的问题。这也是我准备在未来一

2014-04-07 18:05:53 1460

原创 我的vim插件包(内含说明文档)

本插件包基于exvim改造,具体改了啥我也记不得了,用了半年多。基本上用着什么不爽就改什么,并且添加了一些我个人认为有用的插件。      本插件包主要适用于linux下的c++开发,没有针对windows做配置,安装说明和常用功能的使用文档都写在插件包中的readme.txt      主要特色:       1、利用exvim支持了项目工程管理       2、替换了tagli

2012-12-30 15:16:12 2329 3

原创 vim c++语法检查插件cppSyntaxCheck(2013.05.16更新0.5)

一个c++语法检查插件,基本的原理就是利用编译器来检查,获取其结果,并在源文件中标识出对应的行。可以参见以下地址下载:   http://www.vim.org/scripts/script.php?script_id=4205git hub 地址:     https://github.com/phonzia/cppSyntaxCheck.git    效果如下图,保存时提示

2012-09-04 07:08:58 5434

原创 推荐vim插件exvim和tagbar

exvim是一个插件的集合,具体的配置比较复杂,集合了大部分常用的插件,插件功能比较齐全,个人感觉比较特别并且好用的是它的工程管理插件exproject,对于代码比较多的情况管理起来是相当方便的。下载和配置说明可以见以下页面:          http://www.vim.org/scripts/script.php?script_id=2627tagbar是一个taglist的

2012-08-15 13:11:39 28850

原创 一个简单的消息队列类(封装system V消息队列)

基本的思想是,1、将消息队列封装成一个类,可以简单地控制消息队列的建立、收发和删除。2、更改消息协议时,不需要修改收发的类。以下是代码,使用模板来达到上述第二点的要求,只要按规则定义了消息结构,则可以复用此消息队列的代码。因为使用了模板,所以使用了hpp头文件,将类和其成员函数都定义在hpp文件里,使用时只需要包含此头文件就可以了。//DMMsgQueue.hpp#i

2012-07-03 12:58:02 2733

原创 使用ftok获取ipc的key值的一点注意事项

system V消息队列、信号量还有共享内存都采用key_t作为标识,通常使用ftok这个函数来赋予。它的声明如下 //成功返回IPC key,若出错返回 -1 #include key_t ftok(const char *pathname, int id);pathname是一个已存在的文件路径,而id则为一个整数。在unix98中规定了,如果id值为0,则函数

2012-07-02 15:46:59 1709

原创 Erlang学习笔记001--入门

一、erlang入门1、erlang的安装。    我建议使用debian系的linux来进行erlang的学习,因为在debian系的linux上,erlang的安装是非常简单的,我们不需要花费一整天的时间来搭建一个舒心的环境。    在debian系的linux上安装erlang环境只需要一个简单的命令:        apt-get install erlang; 当然,

2012-06-24 20:56:29 1874

原创 一个简单的进程间mutex和读写锁类

因为最近一直在做程序使用共享内存的改造,自然也就涉及到进程间同步的问题,以下是一个简单的进程间锁的例子,通过在父进程声明,然后在fork出来的子进程变可以使用这个锁的对象来进程数据访问的互斥控制。#ifndef _SHARE_LOCK_H_#define _SHARE_LOCK_H_//进程间mutex,在父进程定义,fork之后加锁解锁对父子进程间有效class ShareMu

2012-06-15 00:03:16 5211

原创 AIX使用g++编译的程序使用异常时的问题

继解决了aix上各种奇怪的缺少编译选项导致的问题之后,我又碰到了新的问题。     程序在不断抛出异常的情况,程序不是很稳定。我使用了一个string来保存异常的信息,然而在实际运行中发现,经过多次异常抛出(有时侯需要很多)后,会出现该string有奇怪的表现。比如说,在重新抛出异常进行拷贝的时候,string的引用变为NULL;或者在打出异常信息的时候,string的引用变为NULL。

2012-06-04 16:25:36 1274 1

原创 aix使用g++编译时一个stl string的问题

当好不容易解决了异常抛出不捕捉等问题之后,我在aix上又碰到了新的问题,同样的代码在linux下运行无误,但在aix下,总是出现core dump,每次core dump的位置均不一样,但是都出现在stl string相关的处理上。并且此问题大部分时候都要程序较长时间运行才会出现,大约要一个小时,处理数据10万条以上。        花费了近一周的时间调试和在网上查找资料,猜测可能是由于str

2012-05-09 12:07:55 1343

原创 aix 使用g++编译c++程序的编译选项 -- linux到aix移植经验

-g -maix$(strip $(BIT)) -fconserve-space -Xlinker -bexpfull -Xlinker -brtl -static-libgcc \     -Bstatic -lstdc++ -lsupc++$(strip $(BIT))为机器位数,32或者64以上编译选项可解决AIX上使用g++编译的两个比较大的问题(1)使用全

2012-05-08 15:53:56 3690

原创 AIX上使用gcc和g++的一个编译问题的解决

编译时出现以下错误:/tmp//ccoVFPzP.s: line 85771: Only .llong should be used for relocatable expressions./tmp//ccoVFPzP.s: line 85802: Only .llong should be used for relocatable expressions./tmp//ccoVFPzP

2012-03-26 14:56:56 3354 2

原创 不一样的挑战:学习德沃夏克(Dvorak)键盘 诚邀各路朋友参加

德沃夏克键盘(Dvorak Keyboard)是键盘排列方式,由奥古斯特·德沃夏克和威廉·迪利在1930年代期间设计,是主流的键盘排列快蹄键盘(QWERTY)的对手。具体的介绍可以参见维基百科        根据网络上的信息,使用德沃夏克键盘时,大约有70%的按键会集中在中间一行按键,大幅度减少了手指的移动范围,可以减少手指的疲劳。学习之初会很不习惯,但是想想当初我们最早怎么学习普通键

2012-03-13 22:37:04 1305

原创 linux或unix安装软件包空间不足的解决办法

最近因为公司的服务器编译器版本太老需要在上面安装新的gcc,但是安装的时候又出现了安装目录/opt/空间不足的问题,让我郁闷了好久。        一个同事想出来以下的解决办法:        软件包的目标路径是/opt/freeware        1、将freeware文件夹更名为freeware_bak(做备份)         2、在空间足够的目录下创建一个你希望防止软件

2012-03-12 13:36:47 2656

原创 linux socket编程中出现发送或接收错误时退出程序问题

当使用socket的程序,对socket进行读或者写出错时,系统会发送一个SIGPIPE的信号,该信号的默认处理是退出程序。解决的方法,要么处理该信号,要么交给系统处理,交给系统处理如下:    signal(SIGPIPE,SIG_IGN);自己处理这个信号可以如下:   void Perr(int signum) {       if(signum == SIGPIPE)

2012-03-03 22:33:57 772

原创 用boost在共享内存上创建一个复杂的map

boost的interprocess类提供了在共享内存上创建复杂数据对象和容器的方式,以下是在共享内存上创建一个string map的代码,代码在32位linux上测试通过#include #include #include #include #include #include using namespace boost::interprocess;//类型和allocator的

2012-03-03 19:58:00 9365

原创 设计模式学习(一)—— 四要素以及Singleton

设计模式严格来说并不属于计算机科学的范围,而属于软件工程的范围。软件工程中的很多术语都是从建筑工程中借鉴而来,模式同样也是。模式的范围很广,不过一般从技术层面上说的设计模式,指的都是“类”一级的设计模式。一、设计模式的四个基本要素1、名称。2、要解决的问题(或者说应用场景)。3、解决方案。4、应用后的效果。二、模式:Singleton名称:

2012-03-03 19:28:20 2355

原创 linux下Java Runtime Environment(jre)乱码问题解决办法

可解决棋圣频道乱码问题linux下Java Runtime Environment(jre)乱码问题解决办法1、Java控制台字体问题:java是跨平台的,中文显示问题是缺少字体设置:cd /usr/lib/java/jre1.60_14/lib/fontssudo mkdir fallbackcd fallbacksudo cp /usr/share/fo

2012-03-03 19:24:01 1738

原创 c++全局变量使用中的一些注意事项

1、在一个工程中,全局变量最好定义在定义文件(.cpp)中而非头文件(.h)中,这样可以避免因为头文件的重复引用导致的程序连接时连接器报重定义的错误。2、对于全局的字符串常量,如果希望在头文件中定义,应以数组的形式而非指针的形式,否则会出现重定义的连接错误。      例如:     const char* GLOBALNAME = "MyName";  //  错误,当头文件被多个定义文

2012-03-03 19:17:31 744

原创 static变量的两层含义

<br />1、定义局部变量为static,并给予一个初始值,那么这个变量的初始化只会在函数第一次被调用时执行。<br />下面是一个例子,摘自《Thinking in C++》<br />#include <iostream>using namespace std;void func(){ static int i = 0; cout << "i = " << ++i << endl;}int main(){ for(int x = 0; x < 10

2011-04-25 11:35:00 813

原创 MFC对话框按回车和Esc不会关闭的方法

按回车退出的处理方法:  1、为IDOK按钮添加消息处理函数,IDE会自动生成以下代码void CXXXDialog::OnClickedOK(){ CDialog::OnOK();}  2、将CDialog::OnOK();一行注释掉。按Esc退出的处理方法: 1、为IDCANCEL添加消息处理函数,和按回车退出的处理方法类似,将生成代码中CDial

2009-11-12 09:17:00 3036 3

原创 SendMessage和PostMessage发送windows消息的区别

SendMessage直接导致了消息控制函数的调用,而PostMessage则是把消息放入Windows的消息队列中等待处理。如果选择使用PostMessage,那么对消息的处理可能会有轻微的延迟,所以,假如消息控制函数马上响应,需要使用SendMessage。

2009-10-27 10:05:00 692

vim_profile_kiwee

vim profile for kiwee

2013-06-24

RabbitVCS.py

用于nemo的RabbitVCS插件,在安装python-nemo之后,拷贝到 /usr/share/nemo-python/extensions 并重启nemo即可

2013-04-13

vim_profile

自用的vim插件和配置,附带常用功能的说明文档

2012-12-30

开源围棋fuego代码

开源围棋fuego代码,fuego曾获电脑围棋世界冠军 此为最新版本

2012-03-10

140分钟学会latex2e

一份不太简短的LaTeX2e介绍,著名的latex教程lshort-cn

2012-03-10

空空如也

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

TA关注的人

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