自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AdairJun

骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。

  • 博客(68)
  • 资源 (15)
  • 论坛 (7)
  • 收藏
  • 关注

转载 C++好网站及其他网站收录

C++好网站及其他网站收录** C++ 灵魂人物(Spirit)Bjarne Stroustrup        http://www.research.att.com/~bs/Stanley B. Lippman      http://people.we.mediaone.net/stanlipp/index.htmlScott Meyers                  

2014-04-04 17:04:59 882

原创 数据库连接池DBPool分析(九):Theron库+gtest来测试

国庆节在家里面学习了Theron这个高并发的库的使用方法,获益良多。 Theron的官网:http://www.theron-library.com/最特别的就是Theron 是Actor的模型,而不是object。这一点由于我并非是从JAVA转向的C++语言,所以没有万物皆是对象这个强烈的观点。 一般面向对象的三个特性:组合,继承,和多态。从组合上来说,就是一个class A为了调用c

2015-10-18 17:02:10 550

原创 数据库连接池DBPool分析(八):redis连接池 redis_connection_pool

更新完上一篇博客的时候恰逢十一黄金周,回家休息了一会。现在补充DBPool的Redis连接池。 我刚开始写mysql_connnection_pool的时候,用的是map这个数据结构来保存连接,每次从池当中取出连接的时候都需要遍历一边map,根据map的第二个参数的bool值来判断是否可用。这样的话效率很低,所以我在这里改用list来保存。每次取出连接的时候都pop_front出来,没次释放连接的

2015-10-18 15:38:57 2729

原创 数据库连接池DBPool分析(七):Redis连接控制 RedisObj

因为这个连接控制的class当中使用了大量的引用,所以设置一个宏IN和OUT,仅仅只是一个标志,标记是输出还是输入。 这个class的设计和MysqlObj的设计非常像,但是不同的是这里并不需要一个对象来专门保存查询值,就因为Redis是key-value的,查询是直接返回一个字符串或者数字。 所以这里只需要一个成员变量来保存查询值,就是redisReply* r_pResult; redis

2015-09-26 19:58:29 583

原创 数据库连接池DBPool分析(六):gtest

gtest是google的C++测试框架,很好用。 我借鉴了http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html里面的教程来使用gtestgoogle test的单元测试仅需要TEST()和TEST_F()两个宏, TEST:定义一次测试 第一个参数是测试用例名,第二个参数是测试名通过RUN_ALL_TESTS()来运行它

2015-09-26 19:56:19 431

原创 数据库连接池DBPool分析(五):Makefile

Makefile的设计思想是编译MysqlObj和RedisObj,并将它们链接成静态库和动态库,供外部调用。这里是供gtest来调用。这里参考了leveldb的Makefile的设计思想。这里有个需要小心的地方,因为用到了gtest,所以编译的时候需要链接-lgtest,-lgtest必须要放在-lpthread前面,否则编译会错误还有一个Makefile的magic,我把它称为安静模式,这是我公

2015-09-26 19:54:29 606

原创 数据库连接池DBPool分析(四):mysql连接池 mysql_connection_pool

这个class的设计和MysqlObj不一样了,不会像MysqlObj提供Connect函数来进行连接,这里我直接就在构造函数当中创建好池,因为如果再提供一个init之类的函数来创建池的话我觉得与这个class的设计语意违背,毕竟池创建好就能直接使用了。在构造函数当中使用到了boost的property_tree,目的就是从config里面读取database.xml或者database.json配

2015-09-26 19:50:31 1942

原创 数据库连接池DBPool分析(三):Mysql连接控制:MysqlObj

这个class的设计是这样的,初始化的时候并不建立连接,仅仅简单地初始化成员变量(IP地址,User,password等),而是单独提供一个Connect函数来建立连接,连接的时候把mysql的编码设置为gb2312,关闭连接也有一个Close函数,析构的时候会调用Close. Dump函数是用来debug用的,将m_pMysql指针指向的值打印出来。MysqlObj并不使用QueryResult

2015-09-26 19:48:59 602

原创 数据库连接池DBPool分析(二):存放Mysql的查询结果 QueryResult.h

这个class的设计参考了xPool当中的QueryResult.h,我觉得这个设计足够用了。 毕竟这个class的设计思想只有一个,一般来说存放Mysql的查询结果是使用的是二维vector,也就是vectorQueryResult.h#ifndef _QUERYRESULT_H#define _QUERYRESULT_H#include <vector>#include <string>u

2015-09-26 19:47:09 739

原创 数据库连接池DBPool分析(一):简介

刚刚毕业的本科生,在研究了公司的框架之后,自己花了三天的时间用C++实现了简单的数据库连接池,包括了Mysql。正在加入Redis的支持。请访问我的github:https://github.com/adairjun/DBPool概述所谓池的概念,就是一次性向系统申请多个资源并保存下来,等到程序需要向系统申请资源的时候,就直接向池当中去申请。相当于在执行程序和系统资源之间加了一层。 有高人云:“计

2015-09-26 19:45:03 2369

原创 Ubuntu一键配置脚本

经常在网上看到安装完Ubuntu之后应该做的十件事情之类的文章,于是我自己写了一个Ubuntu的配置脚本: 我的Ubuntu版本是14.04LTS参见我的github地址首先获取当前的目录:#!/bin/bash# 需要sudo来执行dir=`pwd`1,脚本需要sudo来执行,所以需要判断是否具有root权限:function rootness { if [[ $EUID -ne 0

2015-09-06 18:24:03 615

转载 软件版本GA,RC,alpha,beta,Build 含义

(1)RC:(Release Candidate)   Candidate是候选人的意思,用在软件上就是候选版本。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错! 是最终发放给用户的最接近正式版的版本,发行后改正bug就是正式版了,就是正式版之前的最后一个

2015-06-15 18:01:26 365

原创 apache一键安装脚本

最近在玩apache,首先安装apace要配置apr,apr-util,pcre,而配置这些基本都是千篇一律。所谓程序员的精神就是减少重复性的劳动,下面请看我写的apache安装脚本: 这个脚本我也放到我的github上#!/bin/bash# 需要sudo执行dir=`pwd`#要安装pcre先要安装gcc, g++if [[ `ls /etc|grep redhat-release` !=

2015-06-11 15:41:59 1106

原创 openTSDB ConnectionManager: Unexpected exception from downstream java.io.IOException: Broken pipe

openTSDB有这样的错误:ConnectionManager: Unexpected exception from downstream for [id: 0xf85323a8, /10.65.30.12:3874 => /10.65.150.117:4242] java.io.IOException: Broken pipe at sun.nio.ch.FileDispatch

2015-06-04 16:05:32 2371 1

原创 hbase shell删除没有用

用Xshell登陆linux主机后,在hbase shell下不能使用backspace和delete删除误输的指令,这是Xshell的配置问题: 在File->Properties->Terminal->Keyboard下,把DELETE/BACKSPACE key sequence选为ASCII 127. 如此以来,就能使用backspace了

2015-06-04 15:55:10 905

原创 nodejs保存文件问题

从前端那里拿到的jar包出现问题: 保存到本地管理机的jar包的md5sum值与上传的正确md5sum值不相等,而上传 过程 没有错误,说明保存过程中错误: 前端是通过base64转码之后再将jar包内容放进request.body[reqType]里面:先是错误代码:先用base64解码:var jar_content = new Buffer(request.body[reqType].ja

2015-06-04 15:39:00 1696

原创 hive:Access denied for user 'root'@'%'

配置hive全分布模式时候,在mysql里面创建用户:create user ‘hive’ identified by ‘hive’; 然后给hive帐号分配所有权限: grant all privileges on . on ‘hive’ with grant option;结果出现了Access denied for user ‘root’@’%’。后来我先创建数据库hive:create

2015-06-04 15:27:54 1473

原创 c++头文件与cpp的关系

经常在工程中看到的使用头文件的方法就是: 先写一个write函数的cpp:#include <iostream>using namespace std;void write(char* str){ cout<<str<<endl;}再写一个write函数的头文件,而头文件只需要包含write的声明就可以 write.h:#ifndef _WRITE_H#define _WRIT

2015-06-04 15:16:52 509

原创 .pb.h:9:42: fatal error: google/protobuf/stubs/common.h: No such file or directory

看这个就应该知道是没有找到头文件,那么可以使用g++ 的-I 参数: -I/usr/local/lib/protobuf/include来命令g++在/usr/local/lib/protobuf下查找头文件 以上/usr/local/lib/protobuf/是我的protobuf的安装地址,请替换成你的

2015-06-03 22:09:08 8408 2

原创 预编译,编译,汇编,链接

预编译的文件扩展名是ii gcc -E hello.c -o hello.i 预编译过程主要处理源代码文件当中的以#开头的预编译指令,比如#include就是把头文件插入到这个位置 #define就是把所有的宏定义展开,还有就是删除所有的注释编译就是把i文件编译成为汇编代码文件,汇编代码扩展名是.s gcc -S hello.i -o hello.s但是现在版本的gcc把预编译和编译两个步骤合

2015-06-03 22:04:28 768

原创 leveldb的makefile剖析

首先出现在眼前的是这个:OPT ?= -O2 -DNDEBUG-O0 -O1 -O2 -O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高  至于-DNDEBUG我不知道什么意思,麻烦知道的同学告诉我。 然后是这个:$(shell CC="$(CC)" CXX="$(CXX)" TARGET_OS="$(TARGET_OS)" \./bu

2015-06-03 21:58:53 1200

转载 terminator快捷键

The following keybindings can be used to control Terminator://第一部份:关于在同一个标签内的操作Ctrl+Shift+OSplit terminals Horizontally. //水平分割终端Ctrl+Shift+ESplit terminals Vertically. //垂直分割终端Ctrl+Shift+Righ

2015-05-26 18:35:32 493

转载 快速找到你想要的jar包

原文链接: http://zhaozhiming.github.io/blog/2014/09/14/find-your-jar-quickly/快速找到你想要的jar包在做Java开发时,经常遇到Class not found的错误,一般的做法就是在google上搜索class名字,然后再搜索这个class所在的jar包是哪个,最后才找到可以下载jar包的链接。过程比较繁琐,有没有更好的方法可以

2015-04-28 11:16:46 669

原创 CDH安装官方教程

rpm下载: http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_cdh5_install.htmlFairScheduler: http://hadoop.apache.org/docs/r2.5.1/hadoop-yarn/hadoop-yarn-site/FairSchedu

2015-04-28 11:08:31 930

原创 mysql使用总结

1,mysql唯一性约束: 用alter命令,代码如下:(表名为user,字段为name)alter table user add unique key(`name`);2,mySQL中删除一个表中的某字段的unique key的语法:ALTER TABLE `table123212` DROP INDEX `name1233221`;3,mysql增加一个字段:alter table `tabl

2015-04-28 10:50:01 781

转载 linux iconv 文件编码转换脚本

在source insight 建立工程时,有些代码中的注释有中文,这时候就有问题了,全成了乱码。查到是由于文件编码的问题导致的。 应该用gb2312 格式的才能看到汉字。我需要的是将 utf-8 转换为 gb2312 ,整个文件夹,还存在多层次。查了相关资料,写了 一个脚本,实现了此功能 。使用方法: ./conv.sh folder utf-8 gb23121:要转换的文件夹名1

2015-04-28 10:21:36 504

原创 xshell配色方案comfort color

[comfort color]text=dce2e2text(bold)=dce2e2cyan=2ad1b8cyan(bold)=2ad1b8magenta=dd3682magenta(bold)=dd3682green=55bb55green(bold)=55bb55background=002b35red=dc322fred(bold)=dc322fyellow=e5d900

2015-04-28 10:02:41 762

转载 Hadoop2.5.0完全分布式配置(1主3从)

core-site.xml:<configuration><property><name>fs.defaultFS</name><value>hdfs://192.168.8.184:9000</value><description>same as fs.default.name</description></property><property><name>hadoop.tmp.di

2015-04-28 09:56:39 391

原创 vim保存折叠信息的方法

我经常使用的是手工折叠方式,就是 :set foldmethod=manual vim常用的折叠命令有: zf:折叠选定的行 zo:打开折叠 zR:打开所有折叠 zM:关闭所有折叠 zd:删除折叠 我个人最最常用的折叠方法是先将光标移动到左括号或者右括号,然后使用zf%来折叠一段代码有个常见的问题是:你打开了一个文件,做了很多折叠然后关闭文件,再次打开之后这些折叠信息都不见了。 在

2015-04-28 00:12:02 1653

原创 linux编译gcc-5.1.0

最新的gcc-5.1.0才发布出来,迫不及待地装上试一试。 在http://ftp.gnu.org/gnu/gcc/下载gcc-5.1.0 然后解压到目录gcc-5.1.0/ 运行 ./contrib/download_prerequisites 下载编译所需的依赖包 gcc依赖包有:m4-1.4.17.tar.gz,gmp-5.1.3.tar.gz mpfr-3.1.2.tar.gz

2015-04-28 00:04:00 1446 1

转载 酷睿i3、i5、i7 一代 二代 区别对比

酷睿i3和i5以及i7有什么区别?先来一起关注下i3与i5的区别:酷睿Core i3 i5 i7针脚区别 酷睿Core i3 i5 i7针脚区别酷睿i3和i5的区别是什么, 酷睿i3和i5哪个好?酷睿 i3可看作是酷睿i5的进一步精简版,将有32nm工艺版本(研发代号为Clarkdale,基于Westmere架构)这种版本。Core i3最大的特点是整合GPU(图形处理器),也就是说Core i3

2015-04-26 11:16:20 908

转载 vi 排序

:[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/] 给 [range] 里的行排序。如果没有给出行范围,给所有行排 序。 带 [!] 则反向排序。 带 [i] 则忽略大小写。

2015-04-26 11:15:25 504

转载 shell 快捷键

| ctrl+x ctrl+a(ahead) | ctrl+e(end) ctrl+b(back) | ctrl+f(forward) 移动<<—————————————————

2015-04-26 11:14:37 329

原创 cdh5下载地址

cdh5下载地址

2015-04-08 12:57:56 474

原创 实现关闭ssh继续运行程序---tmux

问题1:为什么ssh一关闭,程序就不再运行了 元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。 在Linux/Unix中,有这样几个概念: 进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。 会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session lead

2015-03-15 21:33:40 2340

转载 将java源码打成jar包

方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files … 选项包括: -c 创建新的归档文件 -t 列出归档目录 -x 解压缩已归档的指定(或所有)文件 -u 更新现有

2015-03-15 20:37:17 384

原创 zsh命令提示符

在.zshrc中加入:PROMPT=$'[%{$fg[white]%}%n@%m%{$reset_color%} %~]%# '命令提示符为: [root@10-9-57-162 ~]# 或者:PROMPT=$'%{$fg[cyan]%}%* %D%{$reset_color%}|%{$fg[white]%}%U%n%u@%U%m%u%{$reset_color%}|%{$fg[yellow]%}

2015-03-15 20:21:03 1101

原创 .vimrc配置文件

set history=200000set autoindentset smarttabset pasteset nocompatible " 关闭 vi 兼容模式syntax on " 自动语法高亮set number " 显示行号set ruler " 打开状态栏标尺set shiftwidth=4 " 设定 << 和 >> 命令移动时的宽度为 4set softtabstop

2015-03-15 20:17:58 506

原创 利用linux shell自动顶贴

在论坛上面发帖问个什么东西的话,一旦不顶,帖子就秒沉了,但是又实在不想每时每刻都去顶,怎么办?下面展示了如何利用shell 的crontab实现自动顶贴。闲话不多说了,以豆瓣为例—– 1: 用chrome打开豆瓣网页: 2: 利用右键–审查元素或者直接按F12来打开审查元素界面: 3: 随便写些什么话,然后点击”加上去” 可以看到审查元素的network界面上面有很多链接,最主

2015-03-15 15:34:31 1031

原创 windows7截图工具快捷键

Windows7自带的截图工具非常好用,默认快捷键为Ctrl+Alt+J

2015-03-15 14:47:01 361

hadoop权威指南(第2版

ce算法的一种开源应用,是Google(谷歌)开创其帝国的重要基石。本书内容丰富,展示了如何使用Hadoop构建可靠、可伸缩的分布式系统,程序员可从中探索如何分析海量数据集,管理员可以了解如何建立与运行Hadoop集群。. 本书完全通过案例学习来展示如何用Hadoop解决特殊问题,它将帮助您: 使用Hadoop分布式文件系统(HDFS)来存储海量数据集,通过MapReduce对这些数据集运行分布式计算.. 熟悉Hadoop的数据和I/O构件,用于压缩、数据集成、序列化和持久处理 洞悉编写MapReduce实际应用程序时常见陷阱和高级特性 设计、构建和管理专用的Hadoop集群或在云上运行Hadoop 使用Pig这种高级的查询语言来处理大规模...

2014-10-22

计算机程序的构造和解释].(中文版)

《计算机程序的构造和解释(原书第2版)》1984年出版,成型于美国麻省理工学院(MIT)多年使用的一本教材,1996年修订为第2版。在过去的二十多年里,《计算机程序的构造和解释(原书第2版)》对于计算机科学的教育计划产生了深刻的影响。第2版中大部分重要程序设计系统都重新修改并做过测试,包括各种解释器和编译器。作者根据其后十余年的教学实践,还对其他许多细节做了相应的修改。

2014-08-25

C++网络编程,卷1

ACE不失为经典之作,凝聚了无数程序员的精华和智慧。不仅是网络编程,更涉及了许多的方面,比如设计模式,泛型编程……展示了应用的精华,这种书仅读一遍只是打开了一扇门,引领你进入一个奇妙的世界,修行才刚刚开始。

2014-08-25

C++网络编程 卷2

马维达的翻译还是不错的,虽然目前做的工作和C++没有关系,但我一直认为C++的书可以活跃开发者的思维,偶尔看看和工作无关的开发技术还是挺不错的,本书中文的附标题是<运用ACE和模式消除复杂性>,关于C++两个著名的高性能网络库ACE和ICE,对正在开发相对底层的高性能网络系统的开发者来说很有帮助。

2014-08-25

Effective TCP/IP

UNP的确必不可少,但是UNP全是细节,这本书更注意整体图景。虽然不是socket的教材,但是可以说把tcp/ip illustrated vol1和UNP串起来了。如果直接看UNP的话会觉得有点受不了--不知道哪些是模型,应该烂熟于心;

2014-08-25

programming ruby中文版PDF

《Programming Rudy》(中文版)(第2版)是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及标准库模块。它不仅是您学习Ruby语言及其丰富特性的一本优秀教程,也可以作为日常编程时类和模块的参考手册。Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。它不仅受到广大程序员的欢迎,无数的软件大师亦为其倾倒。Programming Rubyr是关于Ruby语言的一本权威著作,也被称为PickAxe Book(镐头书,由封面上的工具得名)。

2014-08-20

数学在程序设计中的应用(c++版)

数学是计算机的基础,这也是为什么考计算机专业研究生数学都采用最难试题(数学一)的原因,当然这也能促使一些新的交叉学科如数学与应用软件、信息与计算科学专业等飞速发展。

2014-05-06

程序员的数学

编程的基础是计算机科学,而计算机科学的基础是数学。因此,学习数学有助于巩固编程的基础,写出更健壮的程序。 本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书。[1] 书中讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、少年高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。[1] 本书还对程序员和计算机的分工进行了有益的探讨。读完此书,你会对以程序为媒介的人机合作有更深刻的理解。 [1]

2014-05-04

算法心得,高效算法的奥秘

写代码总会遇到难题,时而苦于乘法操作频繁溢出,时而苦于开方算法太过笨拙,于是,程序员之间口耳相传的那些代码秘籍,这些时候就该大显身手了。有些小程序,仅两三行代码即能解决平常数十行代码方能实现的功能;还有些小程序,只用0x24924925这般神奇的数字,即能成倍提升运算速度。读者若对此感兴趣,则《算法心得:高效算法的奥秘(原书第2版)》定能令你开怀畅读。

2014-04-20

人月神话,计算机系列

《人月神话》内容源于作者Brooks在IBM公司任System/360计算机系列以及其庞大的软件系统OS/360项目经理时的实践经验。《人月神话》探索了达成一致性的困难和解决的方法,并探讨了软件工程管理的其他方面。在《人月神话(英文版)》中,既有很多发人深省的观点,又有大量软件工程的实践,为每个复杂项目的管理者给出了自己的真知灼见

2014-04-20

黑客与画家

《黑客与画家:硅谷创业之父paul graham文集》是硅谷创业之父paul graham 的文集,主要介绍黑客即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。书中的内容不但有助于了解计算机编程的本质、互联网行业的规则,还会帮助读者了解我们这个时代,迫使读者独立思考。

2014-04-20

如何高效学习

一位因为快速学习而成名的神奇小子,他应用自己发明的学习方法,完成了10天搞定线性代数,1年学习4年MIT课程的“不可能任务”。[1

2014-04-20

The.C++.Programming.Language.4th Edition

The.C++.Programming.Language是C++之父的经典之作。第4版为了C++11大幅重写

2014-04-04

Windows程序设计

《Windows程序设计(第5版 珍藏版)》是一本经典的Windows编程圣经,曾经伴随着近50万Windows程序员步入编程殿堂,成长为IT时代的技术精英。 作为Windows开发人员的必备参考,涵盖基础知识和中高级主题,全面地介绍了Windows程序设计所涉及的细枝末节,旨在帮助读者从高屋建瓴的角度,建立完整的知识体系,为以后的职业生涯奠定良好的基础。全书共3部分23章。第1~12章着重介绍基础知识,第13~18章的主题为图形,第19~23章涉及更多高级主题。

2014-04-04

vim中文文档

vim的中文文档,配置之后在vim中使用:help即可查看,对于英语不好的小伙伴有帮助

2015-04-28

空空如也

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

TA关注的人 TA的粉丝

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