- 博客(58)
- 资源 (4)
- 收藏
- 关注
原创 网络框架中的一个小bug
今天在调试HttpServer框架的时候遇到了一个bug,程序出现了段错误。HttpServer框架中有一个主线程负责监听port、轮询接入的连接。还有若干线程是工作线程,会根据用户给定的回调函数处理请求。工作线程中逻辑处理所用到的模块和数据是通过user_data传入的。但就是在user_data的设计上出现了问题。user_data在HttpServer
2013-02-28 10:59:10
364
原创 C++虚函数使用的问题
背景不多说了,直接看代码吧。#include using namespace std;class base_t {public: void process() { print(); } virtual void print() { cout<<"base_t"<<endl;; }};class inhert_t : public base_t {public
2013-01-27 17:00:52
435
转载 glibc中malloc的详细解释
转载自http://blog.csdn.net/eroswang/article/details/4130991glibc中的malloc实现:The main properties of the algorithms are:* For large (>= 512 bytes) requests, it is a pure best-fit allocator,
2012-12-11 11:51:24
470
转载 google的flag的使用
前面的博文中已经介绍了谷歌的很多个开源利器了,今天来给大家介绍gflags。大家一定用过也写过很多的命令程序,有一类命令行程序是形如这样的“cmd –arg1=arg –args=arg”,要做到这点一种方法是自己写个程序去解析这种命令行形式。但其实可以更简单,更高效,更安全,推荐使用谷歌的gflags。gflags可以在google code上下载,项目主页为http:/
2012-03-13 21:17:48
4796
转载 linux c getopt_long & getopt
int getopt(int argc, char * const argv[], const char *optstring);int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);这两个函数都
2012-03-13 15:37:21
3897
转载 trap命令使用
在有些情况下,我们不希望自己的shell脚本在运行时刻被中断,比如说我们写得shell脚 本设为某一用户的默认shell,使这一用户进入系统后只能作某一项工作,如数据库备份, 我 们可不希望用户使用ctrl+C之类便进入到shell状态,做我们不希望做的事情。这便用到了信号 处理。trap命令用于指定在接收到信号后将要采取的行动。trap命令的一种常见用途是在脚本程序被
2012-03-13 11:24:43
2513
转载 glib简介
GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。GLib需要一个支持线程
2012-03-09 14:08:56
2546
adsense 安定adwords
Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商。它可以在网站的内容网页上展示相关性较高的 Google广告,并且这些广告不会过分夸张醒目。google根据网站上显示的广告被点击的次数支付佣金,当某个月底佣金累计达到100美元时即可向发布商支付广告佣金。 Google AdSense开创了一个新的广告模式吧。以前的很多广告商,主要靠在各种页面,
2012-03-09 09:38:48
105
转载 awk使用
1. awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。2. 三种方式调用awk 1) awk [opion] 'awk_script' input_file1 [input_file2 ...] awk的常用选项option有: ① -F fs : 使用fs作为输入记录的字段分隔符,
2012-03-08 12:03:37
2476
转载 简单验证和安全层介绍
简单验证和安全层 (Simple Authentication and Security Layer, SASL) 介绍SASL 为应用程序和共享库的开发者提供了用于验证、数据完整性检查和加密的机制。开发者可通过 SASL 对通用 API 进行编码。此方法避免了对特定机制的依赖性。SASL 特别适用于使用 IMAP、SMTP、ACAP 和 LDAP 协议的应用程序,因为这些协议全都支持 SAS
2011-11-21 14:35:03
3794
转载 paxos的应用场景
关于paxos看了很多文章和blog,但是由于paxos貌似简单而实现的复杂性,因此一直没有对paxos有深入的认识。虽然paxos有很多的追捧,甚至有zookeeper和chubby这样的经典分布式锁结构都声称产自paxos,但事实上,他们并不是paxos的完全实现。下面转载了大牛Tim的blog,原文地址为:http://timyang.net/distributed/paxos-
2011-10-30 15:51:55
4300
原创 ubuntu自启动的一些记载
总是需要使用到自启动的一些东西。 首先自启动的脚本都是以root身份运行的。 设置自启动有很多方法,这里就介绍几个工具:1 update-rc.d 这个工具蛮好用,其中有一条命令:update-rc.d [service-name] defaults可以自动建立/etc/init.d/到/etc/rc?.d/的link。 其他命令如下: a.设置
2011-10-25 10:52:19
3762
原创 设计数据库ER模型
最近在作报告的时候,经理说需要画ER图。对于我这个不是科班出身的同学,画ER图还真没做过。ER图确实听说过,大概也知道用来做什么,但具体是什么样子就不得而知了。于是在google开始搜索。构成E-R图的基本要素是实体型、属性和联系,其表示方法为: ·实体型(Enti
2011-09-01 13:46:11
6285
转载 ipvs使用
对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望 对ipvsadm 的使用者有一定的帮助。 为了更好的让大家理解,将常用到的几个术语先简单的介绍一下: 1,virtual-service-address:是指虚拟服务器的ip 地址 2,real-service-address:是指真实服务器的ip 地址 3,scheduler:
2011-06-25 12:48:00
4494
原创 流行的分布式文件系统
<br /><br />因为最近正在“研究”分布式文件系统,所以搜集了这方面的许多资料,不知是哪位比较有名气的人说过:当今社会,对于程序员或者搞IT的人来说,一定要看看分布式方面的东西(不是原话,但是大概就这个意思)。看了一段时间了,感触颇深,感觉它一定是未来发展的趋势。下面这篇就是我搜到的一篇博客,总体上介绍了一些比较流行的分布式文件系统。<br />特此标明出处:http://hi.baidu.com/jrckkyy/blog/item/5476b87b31a785fb0bd187c7.html<br
2011-02-14 14:46:00
4742
原创 oracle数据库安装
<br />安装步骤:第一步:修改X server 的默认设置,点菜单的System -> Administration -> Login Window(系统->管理->登录窗口),选择“Security(安全)”选项卡,取消“Deny TCP connections to the Xserver(拒绝TCP连接到X服务器)”的勾,重启Xserver(或者重启系统)。然后在终端输入: xhost +127.0.0.1第二步:安装必要的个工具:终端输入:sudo apt-get install bui
2011-01-24 10:12:00
3540
原创 安装thrift、log4cxx
<br /> <br />thrift安装:<br />首先执行:sudo apt-get install php5-dev<br />然后:./configure --with-python=no --with-cpp=yes<br />最后:make<br />sudo make install<br /> <br /> <br />log4cxx安装:<br />sudo apt-get install liblog4cxx10<br />或 sudo apt-get install liblog4
2010-12-29 10:27:00
3451
转载 libmemchched 手册
<br /><br />【libmemcached 的c/c++ 使用】<br />官方手册:http://docs.tangent.org/libmemcached/memcached.html<br />http://docs.tangent.org/libmemcached/memcached_mget.html<br />fetch: http://docs.tangent.org/libmemcached/memcached_fetch.html<br />这个加多个服务器的接口比较重要:ht
2010-12-16 16:00:00
3753
转载 Ubuntu安装Ceph
<br /><br />We regularly build debian packages for both the stable and unstable versions. To apt-get install ceph, you need to update /etc/apt/sources.list to include one of the blocks below. <br />Packages should be PGP signed by my public key, availa
2010-12-07 10:31:00
6157
转载 在centOS上安装Ceph
<br />Introduction<br />I created this document based on my experience setting up a small test cluster for the Ceph distributed file system. I used VMWare Server for this setup as I found it to be quick and easy to get going with this and I do not
2010-12-07 10:27:00
6908
原创 C++中的命名空间
<br /> C++中引入命名空间的主要是为了处理程序中常见的命名冲突,它是由ANSI C++引入的可以由用户命名的作用域。所谓命名空间,实际上就是一个由程序设计者命名的内存区域 ,程序设计者可以根据需要指定一些有名字的空间域,把一些全局实体分别放在各个命名空间中,从而与其它全局实体分隔开来。如:<br />namespace ns //指定命名空间ns<br />{<br /> int a;<br /> double b;<br />}<br /> namespace
2010-12-03 11:55:00
3011
原创 解决Ubuntu不支持共享文件夹的方法
<br />在虚拟机中使用Ubuntu。但是vmware不支持共享文件夹。于是采用下面的方法:<br /> <br />1. 在主机下安装一个ftp服务器,比如说Serv-U。然后设置与详细信息。把主机当成ftp服务器使用。<br /> <br />2. 在Ubuntu中安装gftp软件。可使用新利得然见管理器。<br />
2010-11-20 20:17:00
770
转载 linux线程池的使用
Linux下通用线程池的创建与使用[ZT] 收藏<br />本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的简单。<br /> 为什么需要线程池<br />目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等
2010-11-19 14:13:00
3218
转载 linux多线程
<br /> <br />首页 > 编程技术 > 其它 > 正文Linux下的多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言<br /> 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意
2010-11-19 11:21:00
403
转载 c++中的explicit关键字
c++中的explicit关键字<br />c++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?<br /><br />如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class MyClass<br />{<br />public:<br /> MyClass( int num );<br />}<br
2010-11-18 15:28:00
317
转载 基于Boost::asio库的网络编程实现基础
<br />最近正在开发一个网络打印服务器程序,使用Boost::asio库来实现服务端。下面详细介子绍asio库的使用方法,仅用来总结学习经验。如有不对的地方请大家指正.废话少说,直接进入主题。<br />对于一个网络程序的服务器端我们需要提供的是服务器的address,和服务开放的端口号port。<br />在asio库中首先我们必须使用一个io_service类来支持所有的IO功能。需要注意到是我们必须调用io_service_my.run()函数来开启IO服务的事件循环以使功能都能被正常使用。<
2010-11-18 15:24:00
1433
转载 ubuntu 安装MySQL
<br />安装MySQL <br /><br />sudo apt-get install mysql-server <br /><br />这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。 <br /><br />配置MySQL <br /><br />注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来: <br /><br />
2010-11-12 17:12:00
545
转载 Python用subprocess的Popen来调用系统命令
<br />当我们需要调用系统的命令的时候,最先考虑的os模块。用os.system()和os.popen()来进行操作。但是这两个命令过于简单,不能完成一些复杂的操作,如给运行的命令提供输入或者读取命令的输出,判断该命令的运行状态,管理多个命令的并行等等。这时subprocess中的Popen命令就能有效的完成我们需要的操作。在这里对Popen予以简单介绍。<br />下面是一个很简单的例子,来自Python的官网教程:http://docs.python.org/library/subprocess.h
2010-11-11 10:46:00
45088
转载 subprocess
<br /><br />最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在Python手册中有这样一段话:<br /> This module intends to replace several other, older modules and functions, such as: os.system、os.spawn*、os.po
2010-11-11 09:37:00
2172
转载 Python shutil模块
<br />copy(src, dst)<br />Copy data and mode bits ("cp src dst").<br />The destination may be a directory.<br />copy2(src, dst)<br />Copy data and all stat info ("cp -p src dst").<br />The destination may be a directory.<br />copyfile(src, dst)<br />Copy d
2010-11-10 15:42:00
1370
转载 Python os模块
<br />Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。 <br /><br />下面列出了一些在os模块中比较有用的部分。它们中的大多数都简单明了。 <br /><br />os.sep 可以取代操作系统特定的路径分割符。 os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,
2010-11-10 15:41:00
293
原创 各种解压缩方法
<br /><br />压缩解压 <br />linux下怎么解后缀名是gzip的文件? <br />1.以.a为扩展名的文件: <br />#tar xv file.a <br />2.以.z为扩展名的文件: <br />#uncompress file.Z <br />3.以.gz为扩展名的文件: <br />#gunzip file.gz <br />4.以.bz2为扩展名的文件: <br />#bunzip2 file.bz2 <br />5.以.tar.Z为扩展名的文件: <br />
2010-11-01 09:04:00
306
转载 sharding的lookup
<br />数据库sharding Lookup技术探讨<br />数据库sharding技术最近几年越来越火热。 Sharding是shared-nothing的缩写,也可称其为horizontal partitioning/horizontal split,即数据库切片。将一个大的数据库切成几个功能一样,逻辑关系和物理上毫不相干的数据库。<br /><br />数据库sharding有几个主要的优点:<br />1. Database sharding提供了近似线性扩展的架构。可以随着应用的增长线性的增
2010-10-25 20:14:00
371
转载 sharding基本介绍
<br /><br />注:此文首发于 《程序员》杂志 2008 年 7 月刊。从 Shard 到 Sharding <br />"Shard" 这个词英文的意思是"碎片",而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。"Sharding" 姑且称之为"分片"。<br />Sharding 不是一门新技术,而是一个相对简朴的软件理念。如您所知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 MySQL 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具
2010-10-25 19:46:00
376
原创 eMule中的分布式哈希表技术: Kademlia(转)
Kademlia简述 Kademlia(简称Kad)属于一种典型的结构化P2P覆盖网络(Structured P2P OverlayNetwork),以分布式的应用层全网方式来进行信息的存储和检索是其尝试解决的主要问题。在Kademlia网络中,所有信息均以的哈希表条目形式加以存储,这些条目被分散地存储在各个节点上,从而以全网方式构成一张巨大的分布式哈希表。我们可以形象地把这张哈希大表看成是一本字典:只要知道了信息索引的key,我们便可以通过Kademlia协议来查询其所对应的value信息,而不管这
2010-10-19 11:18:00
321
转载 哈希的原理和代价(转载)
<br />哈希表和哈希函数是大学数据结构中的课程,实际开发中我们经常用到Hashtable这种结构,当遇到键-值对存储,采用Hashtable比ArrayList查找的性能高。为什么呢?我们在享受高性能的同时,需要付出什么代价(这几天看红顶商人胡雪岩,经典台词:在你享受这之前,必须受别人吃不了的苦,忍受别人受不了的屈辱),那么使用Hashtable是否就是一桩无本万利的买卖呢?就此疑问,做以下分析,希望能抛砖引玉。<br />1)hash它为什么对于键-值查找性能高<br />学过数据结构的,都应该晓得,
2010-10-18 10:53:00
233
转载 BigTable的功能集(转)
本文是HBase的欧洲传道者LARS GEORAGE的HBase vs. BigTable Comparison(需要翻墙)一文的节选翻译版。 论文中提到的特性<br />首先,向大家介绍在2006年OSDI大会上发表BigTable论文,也就是《Bigtable: A Distributed Storage System for Structured Data》里面所提到的一些特性:<br />特性<br />BigTable<br />HBase<br />注释原子的读写和修改支持,基于Row的支持,基
2010-10-16 11:15:00
413
转载 BigTable的分布式模型(转)
在介绍了BigTable的存储模型之后,本篇将重点给大家介绍其分布式模型。由于本文大多数内容参考BigTable的论文,如果有些博友已经熟读这篇论文,可以跳过本文。综述从分布式的角度而言,BigTable会涉及总共五种独立的构件:1.Client端的库:一个基于BigTable的应用会根据其所使用语言的不同,而选择不同的Client端库来访问一个BigTable系统。 2.Chubby服务:一个高可用、分布式的锁服务,用于协调整个BigTable的运作。 3.Master节点:分
2010-10-16 11:14:00
418
转载 BigTable的存储模型(转)
<br />经过这几天的开发工作,我已经将YunTable所需的一些基本类库搭建起来,比如内存管理,字符串处理,I/O处理和基本的数据结构等,由于之前的编程以Java为主,所以在这方面花了一定的时间,导致整个项目的进度偏离了之前的预期,但是我也有很多的收获,比如我感受到了Java和C之间的异同:异就是Java能通过JVM和JDK提供给程序员一个非常便捷和安全的开发环境,就好象一个温室那样,而C语言呢?则是提供一个简单到以至于简陋的工具给程序员,但是却导致其具有非常强大的灵活性,在这方面,有点类似围棋。而同呢
2010-10-16 10:41:00
379
转载 BigTable的数据模型(转)
<br />本文将深入分析BigTable的数据模型,并介绍它是如何被调用的。数据模型<br />就像向我之前所说的那样,其实BigTable顾名思义,是一个非常大的表,而且是一个能存储几十亿行(Row)和几千列(Column)的非常巨大的表。什么表会怎么大呢?接下来,举一些简单的例子,比如:用于中国所有公民的个人信息和Internet上所有网站内容的表,这些表的总体规模可以达到PB以上级别,而且这些表的规模都会与日增长,所以很显然需要使用分布式的方法,而不是使用一台机器来承载这个巨大且不断增长的Table
2010-10-16 10:33:00
688
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人