- 博客(109)
- 资源 (8)
- 收藏
- 关注
原创 ORM-Object-Relational Mapping
记得去年初的时候,想研究下如何处理好数据库操作代码,当时看到过这个词,不过那会没有深入研究下去,且当时也没用发现比较好的相关项目,刚刚闲逛中发现两款开源项目,先留个记号。http://sourceforge.net/apps/trac/litesqlhttp://ww
2011-08-07 00:00:10
1036
原创 C++对象内存结构之虚指针
虚函数对于C++进行OO的作用毋庸置疑,下面通过一个简单的实例对虚指针进行深入讲解:#include class VirtualClass{public: virtual void foo() { }};class NoVirtualClass{publ
2011-07-20 22:28:08
1005
原创 C++版大数相加:字符串实现
所以大数即,一般的整数类型无法直接表示,通常即通过字符串表示,下面是用c++字符串实现相加,比较粗糙,但大致原理应该是表述清楚了:std::string stringAdd( const std::string& strLeft, const std::string& strRight ){ //结果最长为较长数字加1 int nLeftLength = strLeft.length(); int nRigthLength = strRight.length();
2011-06-01 23:15:00
3149
2
原创 主备切换之State模式实现
<br />最近项目中需要实现一个主备切换的功能,通过分析可以得出也就两个状态的切换,使用if/switch之类的语句可以轻松搞定,但是为了学习并实践State模式,这里采取了一个State模式的实现:<br />// HAState.h: interface for the HAState class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_HASTATE_
2011-04-30 00:53:00
1274
原创 thrift之Hello--python client & cpp sever
<br />Thrift是一个开发跨语言服务的软件框架。编写thrift文件,通过自带的代码生成引擎即可生成各种语言(C++,Java,Python,PHP,Ruby,Erlang,C#等)的对应代码,下面以最经典的hello为例讲述,如何通过thrift编写跨语言的RPC程序:<br />1编写thrift文件,保存为hello.thrift:<br />service Hello { void Hello()}<br />2生成cpp和py框架文件<br />在hello.thri
2011-04-17 23:35:00
6345
5
原创 CentOS5.5下scribe写入数据到HDFS配置方法
1按照CentOS 5.5 下配置Hadoop 0.21单节点一文中的方法配置Hadoop2编译scribe,支持hdfs 2.1下载thrift,libevent,boost等库,可以都下载最新版本,基本上都是make & make install 2.2下载最新版scribe-2.2,之前在网上看到说scribe有很多bug,必须在当前开发版本才能写入HDFS,试了好久没成功,也以为确实是代码的问题,现在发现不是这个问题,直接下载该版本 2.3在scribe源码包里面bootstra
2011-04-16 01:55:00
3199
1
原创 CentOS 5.5 下配置Hadoop 0.21单节点
主要参考Apache官方文档http://hadoop.apache.org/common/docs/r0.21.0/single_node_setup.html唯一注意的是对于CentOS默认安装后的主机名问题,默认主机名为bogon,需要在/etc/hosts中加入如下一行:127.0.0.1 bogon.localdomain bogon运行bin/hadoop namenode -format后进行文件系统的格式化,运行bin/start-all.sh启动所有
2011-04-10 23:47:00
1570
转载 linux/unix系统中ldconfig命令使用详解
<br />ldconfig是一个动态链接库管理命令。其目的是为了让动态链接库为系统所共享。 <br />ldconfig命令的用途 <br />主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。 <br />缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。<br /
2011-04-09 00:32:00
1438
转载 日志收集服务器-scribe vs Flume
<br />I read this ☞ post about Cloudera’s Flume with much interest. Flume sounds like a very interesting tool, not to mention that from Cloudera’s business perspective it makes a lot of sense:<br />We’ve seen our customers have great success using Ha
2011-04-09 00:03:00
3682
2
原创 Linux core文件生成及设置
<br />首先是生成core文件,可以通过ulimit命令设置,但是要想在整个系统中生效光在shell里面设置是不行的,可以通过如下方法:<br />1编辑/root/.bash_profile文件,在其中加入:ulimit -S -c unlimited<br />需要注意的是不是每个版本的系统都有这个文件(Suse下面就是),如果没有可以手工创建<br />2重启系统或者执行:soruce /root/.bash_profile<br /> <br />core文件的设置:<br />1)/proc/
2011-04-02 00:35:00
2374
转载 ISO C++ Committee Approves C++0x Final Draft
<br />"On the 25th, in Madrid, Spain, the ISO C++ committee approved a Final Draft International Standard (FDIS) for the C++ programming language. This means that the proposed changes to the new standard so far known as C++0x are now final. The final
2011-03-28 22:59:00
1028
原创 非客户区 窗口自绘
在进行界面自绘时,一般都需要处理系统的边框,也就是所谓的非客户区,以前做界面时经常为这个问题发愁,那会摸索出了一种简单的方法:让窗口根本就不存在非客户区,所有的绘制都在客户区里面,但是只会引入另外一个问题,如何实现窗口需要通过鼠标拉伸变化大小?CodeProject上面有个例子可供参考http://www.codeproject.com/KB/MFC/CustomWindow.aspx,里面的处理稍显麻烦,可以自己适当优化下。另外一种方法是在研究QQ2009之后的界面时发现的,通过SPY可以看出其可拉伸的窗
2011-03-26 23:51:00
3441
3
原创 PostgreSQL简单封装
<br />工作需要,虽然有libpqxx,但是目前为了刚刚够用,尽量不要引入第三方库。在网上找到简单的封装http://www.touspassagers.com/2010/12/a-postgresql-database-interface-wrapper-in-c/<br /> <br />直接贴上代码:<br />#include <iostream>#include <stdio.h>#include <string>#include <stdlib.h>#include <lib
2011-03-01 00:26:00
1815
原创 Hello,Java
<br />新的挑战,也是新的机遇,工作需要开始学习java了,来个Hello吧:<br />public class Hello{ public static void main(String[] args) { System.out.println("Hello,2011"); } }
2011-01-01 00:47:00
855
原创 循环左移-海豚算法
<br />题目要求是这样的:<br /> <br />/*<br />设将n (n > 1) 个整数存放到一维数组 R中。设计一个在时间和空间两方面尽可能高效的算法。<br />将 R 中的序列循环左移 p(0 < p < n)个位置,即将 R 中的数据由 (a0, a1, ……an-1)<br />变换为(ap, ap-1, …an-1, a0, a1, …, ap-1)。要求:<br /> (1) 给出算法的基本设计思想。<br /> (2) 根据设计思想,采用C或C++或Ja
2010-08-29 21:55:00
3227
2
原创 Winsock 重复定义的错误
<br />Winsock提示重复定义,<br />这是一个老问题了,之前也碰到过,最近一个项目中再次遇到,摘抄自MSDN:<br />The Winsock2.h header file internally includes core elements from the Windows.h header file, so there is not usually an #include line for the Windows.h header file in Winsock applications.
2010-08-08 18:49:00
1253
原创 一次编程实践
<br /> 某天上午,一同事突然过来对我说,走咱们去搞一次敏捷开发,当时让我稍感困惑,我以为只是像平常一样让我去帮忙看个小问题,由于他对MFC不太熟悉,然来是让我配合一起开发一个小工具,呵呵,看来MFC做小工具还是蛮受欢迎的嘛!<br /> 刚好半年没碰过这东西了,这次正好实践一下敏捷开发,哈哈,山寨版的,他像我描述下了大致需要做个什么东西,然后在纸上画了下界面,由于需求很简单,界面也不负责,我直接拖控件开工了,我们一边讨论一边写代码,这样很快就有一个跑起来的大致框架了,在我一步一步编
2010-07-11 20:53:00
705
原创 链表练习
<br />一个简单实用的链表,有时间再完善下其他功能:<br />#ifndef LINKLIST_H#define LINKLIST_Htemplate <typename T>struct SLink{ T m_tData; SLink* m_pNetx;};template <typename T>class CLinkList{ template <typename R> friend std::ostream& op
2010-07-04 00:10:00
798
原创 VS使用技巧
各位搞开发的调试代码想必是少不了的,很多情况下都是为了查看当前内存变量,自从用VS2008后,发现其调试功能相对于之前使用的VS98那可是加强不少,个人体会最深的是对于STL调试时很容易看到其内部结构。 再说说调试中遇到的问题,1:有时我们定义了一个包含多个嵌套结构的类或者是很长的继承链,当需要查看最底层的某个属性时往往在监视窗口中点+-号半天,这样严重影
2010-05-21 19:40:00
983
原创 试用期个人总结
新的工作,新的试用期,4月初试用期结束了,项目经理倒是记得比较清楚,不用我提就主动给经理说了,更让我意外的是基本工资竟然给多了一点,而且是发的转正后的工资,加之之前每个月都貌似多发了一点点中餐补助,看来今年财运不错呀,希望能继续保持。 新的环境让接触了不少新东西,也让我再次体会到沟通是很重要的,技术上面没有太多的提升,但是对于大型软件开发的模型有一个初步的认识了,下面主要
2010-04-17 00:02:00
3712
1
原创 大环境
刚刚看到说Java之父离开Oracle,下面的介绍那叫牛X啊:James Gosling (1955.5.19-)加拿大出生的程序员,美国工程院院士。以“Java 技术之父”而闻名于世。他是Java 技术的创始人,亲手设计了Java语言,并开发了Java编译器和Java虚拟机,使Java成为了世界上最流行的开发语言。 他自己还说希望2030年的时候仍在写代码,真
2010-04-12 00:36:00
738
1
原创 boost中各种各样的timer
最近由于工作需要,大量使用boost,某天闲来无事整了个hello world版的timer实现。#include #include #include #include void threadTimer( boost::posix_time::time_duration duration ,boost::function funCallback){ //使用local
2010-03-31 23:17:00
1524
转载 长连接和Keepalive
原文链接:http://www.cppblog.com/zhangyq/archive/2010/02/28/108615.html之前一个项目的服务器端好像就是在待机之后,tcp链接已经断开,但是服务器没有检测到,看了这篇文章之后就比较明了了。 TCP协议中有长连接和短连接之分。短连接在数据包发送完成后就会自己断开,长连接在发包完毕后,会在一定的时间内保持连接,即我们通常所说的Kee
2010-03-01 23:32:00
3348
原创 行为模式之Observer
最近项目中遇到一个需求:在服务器进行一次调度以后,要给客户端一个通知,而客户端在调用服务端的调度之前会进行通知的注册。这是一个典型的Observer模式,因此顺便将观察者模式再复习了一次,这个模式其实就只涉及到主题和观察者两个类,也相对比较简单,UML类图如下:顺序图:有了这两个图,观察者模式就一目了然了,这里在讲HF上面的对应的设计原则贴上来:1找出程序中会变化的方面,然后将
2010-02-28 23:41:00
916
原创 深圳之行
从深圳回武汉刚好一个月了,上个月19号坐的车,离开了生活了16个月的深圳,再次回到熟悉的城市,但是心情完全不一样了。发现呆了4年的武昌除了学校那块比较熟悉外,其它好多地方还是那么的陌生,这也从某种意义上反映了自己的大学生活不是很丰富。 在深圳的一年多,虽然对之前的公司没有太多好感,但是作为自己工作的第一步,只能说既然选择了那么肯定也是也有其存在的理由,由于公司所处的行业特
2010-01-19 22:36:00
1254
5
原创 ATL 窗口类源码浅析
图1对于典型的Win32应用程序而言,一般包括WinMain,窗口类注册,创建显示窗口,消息循环,消息处理。下面是ATL Internals上面对上图的说明:ATL对Win32窗口API的封装如上图,其中粗体子的类比较重要,而其它的则是作为一般的辅助类,当然这个图并没有包括所有的内容,比如窗口类注册,消息循环等,下面我会一一道来。1WinMain在ATL窗口程序中没有太大的变化
2009-12-10 17:38:00
1691
原创 TFTP服务器接收文件
最近看到很多UDP可靠文件传输的文章,其中有提到TFTP协议,在CodeProject上面搜到一个客户端的,觉得很不错,http://www.codeproject.com/KB/IP/tftp_client.aspx这里模仿者写了个服务器端,只实现了服务器端的接受文件,配合着基本上就可以作为一般的UDP文件接发例子了,大致代码如下头文件:#pragma comment(lib,"ws
2009-12-10 15:12:00
1629
原创 N个数组成最大整数
最近帮一个高中同学做其专升本的数据结构试卷,总体感觉比我们那会考试时难多了,其中最后一道算法设计题如下: “请设计一个程序,其功能是:从键盘输入整数n及n个无符号数,将这n个无符号数连成一个最大的多位整数并输出之。例如,将5个无符号整数6750,67,34,345,7连成767675034534。” 第一次将题目看错,以为很简单,当然我基本上都是用C++写的,没有太考虑其中的数据
2009-11-23 23:33:00
1659
1
转载 C/C++数组名与指针区别深入探索(转)
引言 指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。 想必这种误解的根源在于国
2009-11-06 20:33:00
562
原创 简易模版栈及数制转换
#pragma onceconst int INIT_SIZE = 100;const int INCRENT_SIZE = 10;template class CStack{private: T* m_pBase; /*基址*/ int m_nSize; int m_nTop;public: CStack() { m_pBa
2009-11-01 22:17:00
855
原创 IWebBrowser2登陆网站(无验证码的)
忙活了快两天,第一次正儿八经的使用COM(仅仅是使用),需求是客户端登陆网站获取相关信息,比如是否有新的事务,开始通过WinInet抓包,由于是第一次接触这个,搞了两天终于登陆成功(主要是卡在SessionID上面了),进入主界面后发现获取事务的信息不是直接在HTML中,一个做Web的同事给我分析了一遍,竟然是通过JS+AJAX +_+然后再怎么直接更新(不刷新页面),反正是搞不清,而
2009-10-20 22:51:00
2714
2
原创 行为模式之Command
“本来是打算看ThinkInC++上面的设计模式学习的,看到第二个模式也就是Command发现上面讲得实在是太少了,只好看那本经典的EBook了,幸好还算清晰,第一章看完一半就决定买一本纸质书了,犹豫了两天昨天晚上终于下单了,Head First 设计模式,明天估计就到货了,希望选择是对的。” 刚刚把EBook上面的Commad一节看完,对这个模式有一点点体会了,但是由
2009-10-19 22:40:00
766
原创 Singleton
这个应该是最简单的一个设计模式,记得当初在学校学习C++时看到这样一个类,当时还觉得这确实是个技巧,但是那会基本上没有实际用到,这次在项目中则到处可见,个人觉得Singleton用到的场合还比较多,基本上叫做**Mgr之类的都是Singleton,当然经验还不足不知道是不是有些地方有滥用,我们项目中用到的是一个#define:#define SINGLE_INSTANCE(clas
2009-10-18 00:01:00
814
原创 什么是设计模式
Think In C++上面说,可以把模式的基本概念看做一般情况下程序设计的基本概念:增加一些抽象层(让我想到了沉思录上面经常说的一句话C++的惯用法用类来表示概念)。当人们对某事物进行抽象的时候,隔离特定的细节,最直接的动机之一就是为了变化的事物与不变的事物分离开。做到这一点的另一个方法是,一旦发现程序中的某些部分可能被修改,那么就要阻止那些修改在代码中到处传播副作用。
2009-10-16 22:57:00
987
转载 HTTP协议之处理Cookie
“由于工作需要,最近在学习HTTP协议相关的一些知识,在登陆一个jsp网站时,POST过去的请求被拒绝了,通过抓包分析可以看到此网站需要设置Cookie,这里找打一篇文章写得很不错,只截抄了关于Cookie协议的一部分” 大多数的 Web 应用程序都要求维护某种会话状态,如用户购物车的内容。这种会话状态的保持很多情况下需要借助于Cookie或者Session的帮助。本文结合在线页面翻译 (
2009-10-16 15:13:00
4395
5
原创 DIB数据转换为DDB
前段时间做视频拍照时,需要将接受到的视频数据进行拍照,由于传输过来的是原始的DIB数据,因此需要将其转换为DDB,经过查找MSDN得出如下片段,比较实用,留个记号 HDC hdc = ::GetDC(NULL); HBITMAP hbmpFriend = NULL; BITMAPINFO bmi; memset(&bmi,sizeof(BITMAPINFO),0)
2009-10-12 15:55:00
949
原创 ClearCase一点心得
使用这个工具快一年了,个人感觉是非常强大的,不知道还有没有更强大的,没怎么用过SVN之类的,以后有时间也多试试。最近在一次误装VS SP后,导致CC与VS关联失效,但是当时也没意识到是什么导致的,以为是和服务器连接的问题,又把管理员搞来了,他看了半天也不知道是什么问题,结果又是我想起了由于装SP导致的,(其实之前也因为自己的一次恶搞导致CC比较工具出现问题,那次也是让管理员搞的,当时只
2009-10-11 19:38:00
824
转载 社会保障卡
社会保障卡是由劳动和社会保障部统一规划,由各地劳动保障部门面向社会发行,应用于劳动和社会保障各项业务领域的集成电路卡(IC卡)。其中,面向城镇从业人员、失业人员和离退休人员发放的称为社会保障(个人)卡,面向用人单位发放的称为社会保障(用人单位)卡。由于社会保障(个人)卡是目前劳动保障部有关卡规划和规范的重点,各地实际发放的也多集中于这一种卡,所以通常我们所说的社会保障卡,就是指社会保障
2009-10-07 19:45:00
845
原创 VS2005向导生成的win32程序编译GDI+问题
昨天用VS2005向导生成的Win32程序,当向其中添加GDI+相关文件引用时会提示如下错误 1>f:/microsoft visual studio 8/vc/platformsdk/include/gdiplusimaging.h(67) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int1>f:/microsoft visual st
2009-09-26 13:59:00
3066
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人