自定义博客皮肤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)
  • 资源 (12)
  • 收藏
  • 关注

转载 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 1043

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

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

2015-10-18 17:02:10 741

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

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

2015-10-18 15:38:57 4023

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

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

2015-09-26 19:58:29 759

原创 数据库连接池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 536

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

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

2015-09-26 19:54:29 747

原创 数据库连接池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 2403

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

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

2015-09-26 19:48:59 734

原创 数据库连接池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 947

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

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

2015-09-26 19:45:03 3348 1

原创 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 1064

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

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

2015-06-15 18:01:26 453

原创 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 1351

原创 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 2991 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 1059

原创 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 2194

原创 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 1809

原创 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 994

原创 .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 10733 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 881

原创 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 1474

转载 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 583

转载 快速找到你想要的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 885

原创 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 1271

原创 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 837

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

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

2015-04-28 10:21:36 581

原创 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 905

转载 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 474

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

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

2015-04-28 00:12:02 2299

原创 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 1610 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 1889

转载 vi 排序

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

2015-04-26 11:15:25 777

转载 shell 快捷键

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

2015-04-26 11:14:37 421

原创 cdh5下载地址

cdh5下载地址

2015-04-08 12:57:56 743

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

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

2015-03-15 21:33:40 2842

转载 将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 440

原创 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 1564

原创 .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 615

原创 利用linux shell自动顶贴

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

2015-03-15 15:34:31 1214

原创 windows7截图工具快捷键

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

2015-03-15 14:47:01 514

vim中文文档

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

2015-04-28

hadoop权威指南(第2版

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

2014-10-22

Effective TCP/IP

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

2014-08-25

C++网络编程 卷2

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

2014-08-25

C++网络编程,卷1

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

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

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

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

2014-04-04

空空如也

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

TA关注的人

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