自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

人既无名的专栏

人既无名,便可专心编程

  • 博客(42)
  • 资源 (13)
  • 收藏
  • 关注

原创 ucontext-人人都可以实现的简单协程库

协程是一种用户态的轻量级线程。本篇主要研究协程的C/C++的实现。利用ucontext提供的四个函数getcontext(),setcontext(),makecontext(),swapcontext()可以在一个进程中实现用户级的线程切换。本篇一步一步教你使用ucontext组件实现自己的协程库。 一步两步,一步两步,一步一步似爪牙,....

2014-12-13 17:11:36 62298 28

翻译 Thrift官方安装手册(译)

本篇是Thrift官网安装文档的翻译。介绍了Thrift安装的环境要求,以及在centos,Debian/Ubuntu,OS X和Windows的不同系统下的安装过程。并提出了一些安装过程中可能遇到的问题和解决办法。适用于thrift0.9版本。

2014-11-15 00:30:52 33888 2

原创 inifile 一个轻量级的INI文件解析库

inifile 一个轻量级的INI文件解析库:ini文件是一种常见的配置文件。它以简单的文字与简单的结构组成.INI文件会以不同的扩展名,如".ini.",".cfg".INI文件由3个重要的部分组成:参数(parameters),段(sections)和注释(comments).IniFile库既包含了INI文件的解析,也能够修改并保存INI文件。解析过程中如果INI文件中没有指定段名,则会指定一个空字符串作为段名,段采用map保存,而段中的参数则采用vector保存,因此支持参数名重复。IniFile除

2014-08-15 12:56:27 26002 15

原创 自己实现一个SQL解析引擎

SQL的解析引擎包括查询编译与查询优化和查询的运行,主要包括3个步骤:查询分析:制定逻辑查询计划(优化相关)制定物理查询计划(优化相关)查询分析: 将SQL语句表示成某种有用的语法树.制定逻辑查询计划: 把语法树转换成一个关系代数表达式或者类似的结构,这个结构通常称作逻辑计划。制定物理查询计划:把逻辑计划转换成物理查询计划,要求指定操作执行的顺序,每一步使用的算法,操作之间的传递方式等。

2014-06-26 17:28:59 36366 2

原创 淘宝数据库OceanBase SQL编译器部分 源码阅读--解析SQL语法树

OceanBase是阿里巴巴集团自主研发的可扩展的关系型数据库,实现了跨行跨表的事务,支持数千亿条记录、数百TB数据上的SQL操作。在阿里巴巴集团下,OceanBase数据库支持了多个重要业务的数据存储,包括收藏夹、直通车报表、天猫评价等。截止到2013年4月份,OceanBase线上业务的数据量已经超过一千亿条。看起来挺厉害的,今天我们来研究下它的源代码。关于OceanBase的架构

2014-06-05 18:38:39 12685 3

原创 善用SourceMonitor+Astyle,让代码维护者不再骂娘

什么样的代码让你想骂娘,什么才是漂亮的代码,谁是编程界的没图秀秀,重构是不是体力活?这些问题,你都懂吗,赶紧看看别人怎么想的吧

2015-02-11 01:52:29 6790 1

原创 Zookeeper如何正确设置和获取watcher

Watcher 设置是开发中最常见的,需要搞清楚watcher的一些基本特征,对于exists、getdata、getchild对于节点的不同操作会收到不同的 watcher信息。对父节点的变更以及孙节点的变更都不会触发watcher,而对watcher本身节点以及子节点的变更会触发watcher,具体参照下表。

2014-12-04 17:08:32 14546 2

原创 浅谈我对协程的理解

最近在研究网络服务框架方面的东西,发现了一个神奇的东西-协程。一句话说明什么是线程:协程是一种用户态的轻量级线程。一句话并不能完全概括协程的全部,但是起码能让我们对协程这个概念有一个基本的印象。从硬件发展来看,从最初的单核单CPU,到单核多CPU,多核多CPU,似乎已经到了极限了,但是单核CPU性能却还在不断提升。server端也在不断的发展变化。如果将程序分为IO密集型应用和CPU密集型应用,二者的server的发展如下:IO密集型应用: 多进程->多线程->事件驱动->协程CPU密集型应用:

2014-12-03 17:09:42 68903 12

原创 ZooKeeper场景实践:(1)准备工作

ZooKeeper是一个高可用的分布式数据管理与系统协调框架。保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。有人认为ZooKeeper之于分布式的意义正如同lex/yacc之于编译的意义。我们知道lex/yacc是一套强大的语法编译工具。使用lex/yacc可以很轻松的完成许多语法规则的编写。同样道理,Zookeeper作为一个分布式的数据管理和协调框架,没有它依然可以做分布式,但是有了它,你的分布式会更轻松。本系列文章主要是从学习的角度对Zooke

2014-11-05 22:17:04 4311 1

原创 Zookeeper场景实践:(8) 分布式队列

按照ZooKeeper典型应用场景一览里的说法,分布式队列有两种,一种是常规的先进先出队列,另一种是要等到队列成员聚齐之后的才统一按序执行。第二种队列可以先建立一个/queue,赋值为n,表达队列的大小。然后每个队列成员加入时,就判断是否达到队列要求的大小,如果是可以进行下一步动作,否则继续等待队列成员的加入。比较典型的情况是,当一个大的任务可能需要很多的子任务完成才能开始进行。

2014-11-05 22:02:48 2495

原创 ZooKeeper场景实践:(7) 分布式锁

我们准备来实现互斥的锁,按照官网的思路,给定一个锁的路径,如/Lock,所有要申请这个锁的进程都在/Lock目录下创建一个/Lock/lock-的临时序列节点,并监控/Lock的子节点变化事件。当子节点发送变化时用get_children()获取子节点的列表,如果发现进程发现自己拥有最小的一个序号,则获得锁。处理业务完毕后需要释放锁,此时只需要删除该临时节点即可。简单来说就是永远是拥有最小序号的进程获得锁。

2014-11-05 21:59:57 2838

原创 ZooKeeper场景实践:(6)集群监控和Master选举

通常用于那种对集群中机器状态,机器在线率有较高要求的场景,能够快速对集群中机器变化作出响应。这样的场景中,往往有一个监控系统,实时检测集群机器是否存活。利用ZooKeeper有两个特性(读可监控,临时节点),就可以实现一种集群机器存活性监控系统

2014-11-05 21:56:12 11545

原创 Zookeeper场景实践:(5)分布式通知/协调

总的来说,利用Zookeeper的watcher注册和异步通知功能,通知的发送者创建一个节点,并将通知的数据写入的该节点;通知的接受者则对该节点注册watch,当节点变化时,就算作通知的到来。

2014-11-05 21:52:41 3163

原创 Zookeeper场景实践:(4)命名服务

利用Zookeeper很容易创建一个全局的路径,而这个路径就可以作为一个名字,它可以指向集群中的集群,提供的服务的地址,远程对象等。简单来说使用Zookeeper做命名服务就是用路径作为名字,路径上的数据就是其名字指向的实体。

2014-11-05 21:49:18 6999 1

原创 ZooKeeper场景实践:(2)集中式配置管理

在分布式的环境中,可能会有多个对等的程序读取同样的配置文件,程序可以部署在多台机器上,如果配置采用文件的话,则需要为部署该程序的机器也部署一个配置文件,一旦要修改多个配置文件,而且容易产生不一致。集中式配置管理的思路是,将配置数据集中发布到ZooKeeper的节点上,供订阅者动态获取数据。实现配置的集中式管理和动态更新。

2014-11-05 21:42:54 14318

原创 图解各种SQL连接

连接的分类内连接等值连接(INNER JOIN)自然连接(NATURAL JOIN)交叉连接(CROSS JOIN)不等连接外连接左外连接(LEFT OUTER)右外连接(RIGHT OUTER)全外连接(FULL OUTER)连接类型说明图例SQL示例等值连接只用等号进行连

2014-09-29 11:01:47 2357

原创 数据库在磁盘上的存储布局HeapFile

这篇依然是学习《大规模分布式存储系统:原理解析与架构实战》一书之外的一个话题。通过学习本书,知道了分布式键值系统,通常使用SSTable(一个无序的键值对集合容器)作为其磁盘上的布局。这不禁让人产生联想,传统数据库使用的是什么存储布局来存储数据呢?这就是今天要探讨的主题----HeapFile.

2014-09-16 09:31:35 6650

原创 c++编译时如何把private属性变成public?

c++编译时如何把private属性变成public?在做一些已经写好的代码的单元测试的时候,有时候需要使用到类私有的成员方法或变量。我们不想改动原来的代码,但是又能访问这些私有或者受保护的方法,遇到这种情况怎么办?下面介绍3种办法解决这个问题

2014-08-15 13:07:18 6832

原创 字符串分割函数StringTokenizer与strtok,strsep的比较

StringTokenizer,strtok,trsep都用于分割字符串。但你注意到了吗?StringTokenizer和strtok都会主动过滤掉空字符串,而strsep则不会过滤空字符串。

2014-08-08 09:50:33 3808

原创 二分查找法的C++泛型实现

二分查找法的C++泛型实现

2014-08-05 14:30:52 1214

原创 LSM树存储模型

《大规模分布式存储系统:原理解析与架构实战》读书笔记:之前研究了Bitcask存储模型,今天来看看LSM存储模型,两者虽然同属于基于键值的日志型存储模型。但是Bitcask使用哈希表建立索引,而LSM使用跳跃表建立索引。这一差别导致了两个存储系统的构造出现明显的分化。为此,我还先去捣腾了一番跳跃表的实现.今天算是进入了正题。

2014-07-21 11:53:41 19654 4

原创 跳跃表的分析与实现

《大规模分布式存储系统:原理解析与架构实战》读书笔记 :在了解了Bitcask存储模型后,又开始研究LSM树存储引擎。LSM在实现的过程中使用了一个很有意思的数据结构:跳跃表。之前在《算法导论公开课》中听过这一节。当时感觉这种结构和二叉树简直是殊途同归,但是一直没有亲自动手实现过。这次又遇到了,就来实现试试看。话说跳跃表和各种平衡树一样,都是用来加速查询的。要随手实现一个B树不容易,但是实现一个跳跃表就简单很多。

2014-07-16 19:30:18 6750 2

原创 Bitcask存储模型

----《大规模分布式存储系统:原理解析与架构实战》读书笔记最近一直在分析OceanBase的源码,恰巧碰到了OceanBase的核心开发者的新作《大规模分布式存储系统:原理解析与架构实战》.看完样章后决定入手,果然物有所值。对于准备学习分布式的同学,这是一本不错的书籍,相对系统,全面的介绍了分布式的相关技术和项目,基本都是干货。还有一半是在介绍OceanBase的内容,对我来说,正是

2014-07-14 09:57:54 12945 1

原创 Linux安装Axis C构建WebService服务

在安装Axis C++之前有两个组件是必须安装的,分别是Apache HTTP Server以及用于处理XML的程序Xerces;为了编译Axis以及Apache HTTPD,你的Linux机器还应该装有gcc编译器。 3个部件的都采用源码安装,它们都有类似的步骤: 上传并解压安装包 设

2014-07-09 15:48:56 2641

原创 宏的几种特殊用法

宏的几种特殊用法:1. 屏蔽“未使用参数”警告,2. 指定字节对齐,3. 可变参数宏,4. #,##,#@的区别

2014-07-01 09:19:43 1895

原创 gtest编写第一个测试用例出错及其解决过程

第一个gtest测试用来编译出错了,总结为以下节点1.Makefile实际执行的命令可能与预想的命令不一样,要仔细查看。 2.gtest通过头文件和库的方式引入工程,要指定其头文件和库文件的位置 3.gtest-config命令能够帮助我们找到对应的路径

2014-06-27 09:51:49 17540

原创 淘宝数据库OceanBase SQL编译器部分 源码阅读--Schema模式

OceanBase要求schema强类型约束,也就是要预先定义好schema。这与传统的数据库基本相同,与很多nosql的schema-free大相径庭。 也就是说,OceanBase的数据模式是基于关系模型的。关系模型通过关系分解消除数据结构的复杂性,获得了对数据查询的能力和灵活性。而关系模型的缺点也是因为关系分解,使得在需要“组装”的数据时要进行join操作,而join则是相当耗时的操作。 大部分的NoSQl产品以MongoDb为代表,是基于文档模型的,

2014-06-19 13:13:09 2646

原创 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划

SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划。前两个步骤请参见我的博客>和<<淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划>>.这篇博客主要研究第三步,生成物理查询计划。一、 什么是物理查询计划与之前的阅读方法一致,这篇博客的两个主要问题是what 和how。那么什么是物理查询计划?物理查询计划能够直接执行并返回数据结果数

2014-06-12 09:06:25 3529 1

原创 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划

淘宝数据库OceanBase SQL编译器部分 源码阅读--生成逻辑计划 SQL编译解析三部曲分为:构建语法树,生成逻辑计划,指定物理执行计划。第一步骤,在我

2014-06-08 14:12:54 4632

原创 无名管道的C++封装

xpipe=====**无名管道的C++封装类**,用于父子进程进行通信基础介绍----- unix下一切皆文件,管道也不例外。无名管道pipe定义在中。```c++ #include  int pipe(int fd[2]);```其中fd[0]是读端,fd[1]是写端,fd[1]的输出是fd[0]的输入,因此管道是一个有向的半双工通信方式。使用`wr

2013-07-16 13:31:01 2771

原创 Win8 32位安装PyLucence

PyLucence的官方包没有提供windows的安装版,安装步骤真麻烦需要按照下面的顺序安装:1. 确认安装了JDK    1.1 通常下载一个JAVA的安装包就可以安装。    1.2 判断java路径是否写入环境变量Path,在DOS下输入java确定能运行就说明可以,不能运行就要把JAVA的路径添加到环境变量Path中去。    1.3 将jvm.d

2013-06-10 04:03:09 1830 4

转载 tar 解压时提示 Archive contains obsolescent base-64 headers

http://rainbird.blog.51cto.com/211214/40892/错误信息:tar: Skipping to next headertar: Archive contains obsolescent base-64 headersgzip: stdin: invalid compressed data--format violatedtar

2012-08-08 10:29:09 1457

原创 LINUX MAN 命令的使用

查询任何函数和结构使用man  string;如 # man list_head;可以返回他的定义,描述,所谓头文件位置,相关函数,实例的内容struct list_head *head;注意要有*;

2012-07-30 02:04:41 751

原创 闹钟的设计原理与实现

闹钟的设计原理与实现(一) 华中科技大学 陈学友2012年5月18日  内容摘要现在很多人由于需要处理各种事物,但是由于某些原因可能会忘记在某个时间段需要完成的工作和其他事情,因此需要一个闹钟来提醒自己,避免忘记这些应该做的事情。如果只有一个提醒事件,情况非常简单,但是对于多事件提醒的闹钟来说,如何解决提醒不冲突,如何使资源占据最小是一个迫切需要解决的问题。本文介绍一个

2012-05-18 16:25:44 12602

转载 利用c#制作托盘程序,并禁止多个应用实例运行

转载自:http://www.cnblogs.com/yjmyzz/articles/1021058.html托盘程序的制作: 1.把NotifyIcon控件拉一个到窗体上,并设置NotifyIcon的Icon(很重要!否则运行后看不到效果)2.窗体关闭时,将程序最小化到系统托盘上privatevoid Form1_FormClosing(object sender, Fo

2012-05-10 22:07:47 844

转载 各种天气API

新浪天气预报APIhttp://php.weather.sina.com.cn/xml.php?city=武汉&password=DJOYnieT8234jlsK&day=0其中,city后的城市可用java.net.URLEncoder.encode(“武汉”,” gb2312”);也可以直接写”武汉”;但不能用”wuhan”。Password固定Day为0表示当天天气,1表示第

2012-05-06 19:22:13 15634

转载 C# URL带中文参数的解决办法

public static string InitChineseUrl(string chineseUrl)         {             Uri url = new Uri(chineseUrl);             System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUti

2012-05-06 19:12:36 4211

转载 C# 开机随系统启动

//添加启动项///          /// 开机随系统启动         ///          public void start_with_windows()         {             if (start_with_win1.Checked)             {                 start_with_wi

2012-05-04 15:24:47 1354 2

转载 C# 如何给Panel 添加背景图片

添加panel的paint事件,然后在panel上面画出图片例子:this.panelMain.Paint += new System.Windows.Forms.PaintEventHandler(this.panelMain_Paint);private void panelMain_Paint(object sender, PaintEventArgs e)  {  Gr

2012-05-03 23:51:01 13609 1

转载 在VC6中编写可在XP中显示XP风格界面的程序

在VC6中编写可在XP中显示XP风格界面的程序方法一:1.插入自定义资源(Custom),将资源类型(Resource Type)设为“24”。2.将资源ID“IDR_DEFAULT1” 改为“1”。3.将下列文本复制到该资源的十六进制编辑器中。  processorArchitecture="x86"  version="5.1.0

2012-03-02 23:09:58 800

斯坦福大学数据库实现课程CS346 redbase 参考文档(英文).chm

斯坦福大学数据库实现课程CS346课程中实现的数据库 Redbase 参考文档(英文),根据斯坦福官网的RedBase Project的文档整理而得,同时RedBase的源代码可以从github上获取:https://github.com/junkumar/redbase

2014-01-14

ManicTime软件

ManicTime 是一款很有意思的软件,它会静静地在后台记录下你运行过什么程序,使用了多久,离开电脑电脑多久等等,然后生成直观的图表来帮你分析与总结到底大部分时间花费在哪些程序上,让你更加了解自己,并想办法提高自己的工作效率……

2013-09-02

ManicTime 软件

异次元软件世界 首页 iPc.me 分享互联网 正版数字商城 找文件 - 网盘搜索 唯美图片墙 精选视频墙正版精选 cFosSpeed 加速 Listary Pro Inpaint 去水印 Window Tabs Start 8 开始菜单 Fences 桌面增强 查看更多....异次元宝藏常见问题投稿留下足迹关于本站友情链接联系 新浪微博 腾讯微博 Google+ Twitter 给我写信手气不错特惠 凡客诚品 皇冠金冠店铺精选 京东商城 卓越亚马逊网盘搜索iPc.me商城你的位置: 异次元首页>全部文章>应用管理>阅读文章皇冠排行 淘一淘 手机数码 天天疯狂 ManicTime - 十分有意思的个人时间分析与跟踪工具,把您丢失的时间找回来吧! [ 应用管理 ] ManicTime 是一款很有意思的软件,它会静静地在后台记录下你运行过什么程序,使用了多久,离开电脑电脑多久等等,然后生成直观的图表来帮你分析与总结到底大部分时间花费在哪些程序上,让你更加了解自己,并想办法提高自己的工作效率……

2013-09-02

C++指令大全 2005

C++指令大全 包括了C,C++的绝大部分函数,还有C#,Basic指令等

2010-12-03

c/c++指令 大全

包含了很多常用函数的用法,功能,不错的说 集成了多种语言查询的“指令字典2005” 增加了新的功能,新的语言,新的界面, 还对原有语言进行了全面扩充与完善(例如:C、C++的函数增加到了350多个, 开放了文件修改功能等等)还有很多扩充完善这里就不多做介绍了,快来下载吧 "_"

2010-10-20

高质量编程C/C++

软件质量是被大多数程序员挂在嘴上而不是放在心上的东西! 除了完全外行和真正的编程高手外,初读本书,你最先的感受将是惊慌:“哇!我以前捏造的C++/C程序怎么会有那么多的毛病?” 别难过,作者只不过比你早几年、多几次惊慌而已。 请花一两个小时认真阅读这本百页经书,你将会获益匪浅,这是前面N-1个读者的建议。

2010-10-19

项目策划书样板——客户管理系统

项目策划书样板——客户管理系统,没有写过的同学可以看看一个项目是怎样写的

2010-10-17

c语言程序设计-谭浩强(第三版)

c语言程序设计-谭浩强(第三版),一本真正的入门经典之作

2010-10-14

LEX和Yacc简明教程

LEX和Yacc简明教程, 看后很有启发

2010-10-14

c语言程序设计 课程设计

2009 c语言 程序设计的 课程设计的

2010-10-13

windows 程序设计

windows 程序设计王艳平 编程宝典

2010-10-12

windows程序设计-王艳平

windows 程序设 王艳平 编程宝典

2010-10-12

空空如也

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

TA关注的人

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