开发记录
文章平均质量分 83
祁峰
北京竹鱼互联科技有限公司创始人
展开
-
THRIFT 之 搭建环境和使用实例
1.概述2.安装2.1 安装依赖# yum -y install原创 2020-07-10 16:32:54 · 691 阅读 · 0 评论 -
LINUX内核升级 - 更新网卡驱动
LINUX内核升级 — 更新网卡驱动本篇将详细讲述目标内核驱动无法支持当前网卡设备的处理步骤原创 2015-03-20 00:59:27 · 8314 阅读 · 3 评论 -
NGINX模块开发 之 验证URL参数
NGINX-HTTP模块开发 之 验证URL参数原创 2014-05-26 16:45:43 · 7365 阅读 · 7 评论 -
23种设计模式 之 Observer模式(发布-订阅模式)[C语言]
一、概念定义 Observer模式又称为发布-订阅模式。 Observer模式:定义了一种一对多的依赖关系,让多个观察者(Observer)同时监听某一主题对象(Subject)。当这个主题对象(Subject)的状态发生变化时,会通知观察者对象(Observer),让他们能够自动更新自己。二、模式结构图图1 Observer模式结构图三、场景设计原创 2012-11-15 15:58:29 · 8815 阅读 · 2 评论 -
非递归(栈)算法解析XML思路[申请专利]
对于树状层次结构的数据,往往有两种处理思路:递归算法处理和非递归(栈)算法处理。 递归算法:简单易懂,且有些场景还必须使用递归算法才能处理。但递归算法也有其先天性的缺陷:运行效率较低、运行过程所耗费的空间资源也相对较高。 非递归(栈)算法:算法相对比较复杂,不太好理解,但其运行效率较高。原创 2013-03-07 22:34:55 · 4224 阅读 · 2 评论 -
23种设计模式 之 Strategy模式(策略模式)[C语言]
一、概念定义 Strategy模式:是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。Strategy模式使得算法可以在不影响到客户端的情况下发生变化。Strategy模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。二、模式结构图图1 St原创 2012-11-13 16:44:32 · 3344 阅读 · 0 评论 -
23种设计模式 之 Template模式(模板模式)[C语言]
一、概念定义 Temple模式:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架是一致的。Temple提供了一个实现框架。二、模式结构图图1 Temple模式结构图三、场景设计 假如新生刚刚入校,这时班主任让每一位同学依次:站起来->自我介绍->坐下。四、C语言实现分析:可以认为“站起来->自我介绍->坐下”是原创 2012-11-14 11:54:53 · 3891 阅读 · 0 评论 -
获知局域网内他人的上网数据和行为
通过ARP攻击,获取局域网内他人的上网数据和行为原创 2015-12-16 18:06:19 · 6553 阅读 · 0 评论 -
总结使用libwebsockets开发接入层
使用libwebsockets进行开发的注意事项原创 2015-12-14 23:57:40 · 31510 阅读 · 15 评论 -
系统架构 之 高效分布式爬虫系统的架构设计[申请专利]
将以可用性、可靠性、高效性、可扩展性为基本准则重新设计爬虫系统原创 2015-02-06 14:22:31 · 3698 阅读 · 0 评论 -
NGINX原理 之 CPU绑定(CPU亲和性)
NGINX中的进程能够绑定到指定的CPU 进程绑定CPU 线程绑定CPU原创 2014-06-12 18:42:37 · 9382 阅读 · 4 评论 -
CODIS2.x集群 之 存储集群搭建全过程
Codis2.x存储集群搭建全过程原创 2016-06-02 17:13:15 · 6151 阅读 · 7 评论 -
通用线程池的设计和实现[C语言]
一、适用场景 首先,必须明确一点,线程池不是万能的,它有其特定的使用场景。使用线程池是为了减小线程本身的开销对应用性能所产生的影响,但是其前提是线程本身创建、销毁的开销和线程执行任务的开销相比是不可忽略的。如果线程本身创建、销毁的开销对应用程序的性能可以忽略不计,那么使用/不使用线程池对程序的性能并不会有太大的影响。 线程池通常适合以下几种场景: ①、单位时间原创 2012-12-28 10:39:59 · 3768 阅读 · 6 评论 -
CODIS3.x集群 之 存储集群搭建全过程
作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2017.06.07 转载请注明来自”祁峰”的CSDN博客Codis3.x有如下特点: 1.最新 release 版本为 codis-3.2,codis-server 基于 redis-3.2.8 2.支持 slot 同步原创 2017-06-20 12:03:28 · 11579 阅读 · 5 评论 -
Python升级步骤
作者:邹祁峰 邮箱:Qifeng.zou.job@hotmail.com 博客:http://blog.csdn.net/qifengzou 日期:2017.02.02 转载请注明来自”祁峰”的CSDN博客发现身边的同事在升级Python后总会遇到各种问题, 为提高大家工作效率, 将Python升级步骤记录如下. 以下以升级python2.6到python2.7为例, 其他版本与此过程...原创 2018-02-02 19:39:18 · 6329 阅读 · 0 评论 -
23种设计模式 之 State模式(状态模式)[C语言]
一、概念定义 State模式:允许一个对象在其状态发生改变时,改变它的行为。 State模式和Strategy模式非常相似,需要说明的是两者的思想是一致的;只不过封装的对象不同:State模式封装的是不同的状态,而Strategy模式封装的是不同的算法。 State模式主要解决的问题是:在开发过程中,时常遇到需要根据不同的状态需要进行不同的处理操作的问题。大部分人采用原创 2012-11-14 16:07:04 · 5244 阅读 · 1 评论 -
LINUX内核升级 - 更新硬盘驱动
linux 硬盘驱动更新原创 2015-01-16 00:34:37 · 3896 阅读 · 0 评论 -
[TUXEDO] LINUX下安装TUXEDO
================================安装流程==============================一. 新建tuxedo以root身份建立tuxedo用户,并以tuxedu用户登陆,此用户将做为以后tuxedo管理员,用户默认目录为/home/tuxedo;二. 上传安装包用FTP把安装文件(tuxedo81_linux.bin)和用户许可原创 2012-10-19 08:36:40 · 2606 阅读 · 0 评论 -
[ORACLE] 在RedHat Linux AS 4.0上安装Oracle 10g
一、准备工作1、 安装RedHat AS4.0,Ø网络IP地址配置Oracle必须固定IP地址,不能用DHCP。可以用图形界面修改或#vi /etc/hosts正常的主机名解析示例 :127.0.0.1 localhost.localdomain localhost(否则会出现TNS-12537错误)Ø磁盘分区配置:swap交换分区大小根据表1设置Ø防火转载 2012-10-15 16:14:53 · 1149 阅读 · 0 评论 -
静态SQL与动态SQL的比较
静态SQL与动态SQL相比具备很多优点,最主要的表现在两个方面:1、 静态SQL指定具体的对象,可以避免动态SQL中隐含的错误2、 静态SQL的分析和执行速度比动态SQL要快所以,如果使用静态SQL可以达到目的,我们推荐用静态SQL替代动态SQL,即使需要多编写一些代码也是值得的。那么,在开发程序代码的时候,如何判定一段SQL代码究竟该采用动态SQL,还是该采用静态SQL呢?简单总结以转载 2012-10-31 08:02:21 · 3513 阅读 · 2 评论 -
C语言访问INFORMIX数据库 — ESQL语法知识
一、头文件引入informix数据库的头文件时,可使用如下的方式:EXEC SQL INCLUDE sqlca;EXEC SQL INCLUDE sqlda;EXEC SQL INCLUDE sqlhdr;EXEC SQL INCLUDE decimal;EXEC SQL INCLUDE locator;EXEC SQL INCLUDE varchar;EXEC S原创 2012-11-20 14:23:34 · 3228 阅读 · 0 评论 -
ESQL/C连接和断开数据库(INFORMIX)
一、 连接 数据库语法一:EXEC SQL CONNECT TO ①{dbname@dbservername | dbname | @dbservername | pathname/dbname | pathname/dbname@dbservername | :db_env variable} [AS ②connection_name]原创 2013-01-06 09:57:23 · 2934 阅读 · 0 评论 -
百度2010年校园招聘笔试题
一、简答题1. 简述树的深度优先遍历及广度优先遍历,及其非递归实现的特点。 2. 找出以下程序中的BUG:#include #include struct record{ int a; int b;}int create(struct record *p, int num){ p = new strcut recor原创 2012-11-19 08:58:28 · 1853 阅读 · 0 评论 -
统一数据库互联[UDBC]的设计
一、概念简介 众所周知,数据库的类型很多,常见的有Oracle、DB2、SQL Server、MySQL、Informix等等,但是不同的数据库拥有着不同的访问方式。如:可通过PRO*C、OCI访问Oracle;可通过ESQL访问DB2和Informix;可通过MySQL API访问MySQL等等。 可是,往往完成基于某一种数据库的程序开发后,要切换至其他数据库时,不得不去修改原创 2012-11-09 16:55:04 · 9820 阅读 · 0 评论 -
C语言访问INFORMIX数据库 — 接口实现
一、简要概述 INFORMIX数据库是IBM旗下的一款关系数据库,目前在金融行业占有不可替代的地位。使用C语言访问INFORMIX数据库的唯一方式是通过ESQL,其过程中有很多细节内容需要注意,但为了能够快速的理解各接口的流程,在此只给出各接口的基本框架。(注:ESQL语法在IBM帮助系统http://publib.boulder.ibm.com/infocenter/idshelp/v原创 2012-11-20 16:18:24 · 4776 阅读 · 1 评论 -
线程特定数据
一、概念定义 单线程C 程序有两类基本数据:局部数据和全局数据。对于多线程C 程序,添加了第三类数据:线程特定数据。线程特定数据与全局数据非常相似,区别在于前者为线程专有。线程特定数据基于每线程进行维护。TSD(特定于线程的数据)是定义和引用线程专用数据的唯一方法。每个线程特定数据项都与一个作用于进程内所有线程的键关联。通过使用key,线程可以访问基于每线程进行维护的指针(voi原创 2013-01-10 21:35:08 · 1580 阅读 · 0 评论 -
C语言访问INFORMIX数据库 — SQLDA结构
一、简要概述 C语言访问INFORMIX数据库的过程中,当不知道执行的查询语句所返回结果中有多少列,但又要提取查询结果数据时,此时必须使用INFORMIX提供SQLDA结构来达到数据信息提取的目的。现使用一篇来介绍SQLDA结构,先有一个大体的印象,后续章节会详细讲解SQLDA的使用。二、结构定义图1 SQLDA定义三、结构说明从图1中可以看出,SQLDA是一种由三个原创 2012-11-20 22:14:53 · 2961 阅读 · 0 评论 -
C语言访问INFORMIX数据库 — SQLDA使用
一、前言概述 动态SQL语句在编译时可能不知道有多少列信息。在ESQL语句中,这些不确定的数据是通过SQLDA完成的。理解SQLDA的结构是理解动态SQL的关键。SQLDA的结构可参[http://blog.csdn.net/royalapex/article/details/8205654],此篇主要通过代码来分析SQLDA的使用。(注意:此代码是基于前一博文的补充,接口定义和类型原创 2012-11-22 14:52:07 · 4478 阅读 · 0 评论 -
通用栈的设计和实现[C语言]
①、栈的定义typedef struct{ void **base; /* 栈底 */ void **top; /* 栈顶 */ int size; /* 栈的大小 */}stack_t;在此设计的通用栈将会达到以下两点要求: ①、可以处理任意的数据类型的数据 请注意栈中base和top的数据类型,其为void**原创 2013-03-09 02:05:23 · 3253 阅读 · 0 评论 -
AIX系统下的Makefile
因AIX下的Makefile目前还不支持Makefile函数,如果将Linux下的Makefile放入AIX系统下,会出现很多莫名其妙的错误。因此,很有必要总结一下AIX下Makefile的使用场景:一、编译多个C文件生成可执行文件如: test.h test.c main.c->main可执行文件 CC = ccCFLAGS = -q64INCLUDE = -I. \原创 2013-01-06 09:59:52 · 4068 阅读 · 0 评论