岚天逸见

2012年7月24日 #

limits.conf

摘要: SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentica... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(248) 评论(0) 推荐(0)

Dash与Bash的语法区别

摘要: 本文系转载,原文URL为:http://www.igigo.net/archives/169如今Debian和Ubuntu中,/bin/sh默认已经指向dash,这是一个不同于bash的shell,它主要是为了执行脚本而出现,而不是交互,它速度更快,但功能相比bash... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(382) 评论(0) 推荐(0)

MOOON-server新消息处理接口

摘要: MOOON-server提供了一个通用的TCP框架,并对包的解析抽象出了IPacketHandler接口,这个接口提供了无限制的宽容度,支持任何协议,但是增加了使用复杂。 由于大多数协议,都会定义一个消息包大小字段,基于这个前提,MOOON-server... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(103) 评论(0) 推荐(0)

不再担心日志文件过大:通用日志滚动脚本

摘要: #!/bin/sh# https://github.com/eyjian/mooon/blob/master/mooon/shell/log_rotater.sh# Writed by yijian on 2012/7/22## Linux自带的工具logrotate... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(469) 评论(1) 推荐(0)

改进后的日志类CLogger

摘要: 在原有的基础上增加了module_name,表示模块名,当一个系统由多模块组成时,输出的日志将更加清晰,使用方法,以MOOON-agent中的为例:点击(此处)折叠或打开#define AGENT_MODULE_NAME "AGENT"#define AGENT_LO... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(353) 评论(0) 推荐(0)

开发理念和用户体验

摘要: 开发理念:要有追求美的意识,简就是美。要形成自己的思想,设计需要灵魂。模式模式有时是恶魔,它容易让你走上抄袭模仿之路。把职责单一作为第一原则,并努力遵守,将让你柳暗花明又一村。一切源于生活,多和生活类比,能让理解更为深刻透彻。始终抱严谨心态,用心思考,细节决定品质。用... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(185) 评论(0) 推荐(0)

怎么做自动化

摘要: 在做系统时,不应当盲目地去做自动化,原因有两点:1.有些自动化的代价非常高,反不如人工简单实在2.有些自动化不能保证系统的正确性,它需要人工确认不过,这些也并不应当成为推进自动化的理由,自动化它可以带来两方面巨大的好处:1.大大降低运维工作量2.快速的进行故障恢复所以... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(244) 评论(0) 推荐(0)

来自mooon的最简单的日志类CSimpleLogger

摘要: /** * 单个头文件,可即时独立使用,只要定义了宏NOT_WITH_MOOON,即不依赖于mooon * 简单的写日志类,非线程安全,提供按大小滚动功能 * 不追求功能,也不追求性能,只求简单,若要功能强、性能高,可以使用CLogger * * 使用方法: * 1)... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(182) 评论(0) 推荐(0)

为什么不能在SSH(Secure Shell)登录中设置ulimit值?

摘要: SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903相关版本:红帽企业Linux 现象: 如果你在文件/etc/security/limits.conf中设定了值。... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(140) 评论(0) 推荐(0)

ssh/ssh2登录

摘要: SSH2登录:现在确认能否不输入口令就用ssh登录localhost:$ ssh localhost如果不输入口令就无法用ssh登陆localhost,执行下面的命令:$ cd ~/.ssh2$ ssh-keygen2 -t rsa $ echo "I... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(184) 评论(0) 推荐(0)

linux下文件数、目录数、文件名长度的各种限制

摘要: 以下测试都是在没有优化或修改内核的前提下测试的结果1. 测试目的:ext3文件系统下filename最大字符长度 测试平台:RHEL5U3_x64 测试过程:LENTH=`for i in {1..255};do for x in a;do echo -n $x;... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(1257) 评论(0) 推荐(0)

Linux下进程的各种状态

摘要: D Uninterruptible sleep (usually IO)不可中断的深度睡眠,一般由IO引起,同步IO在做读或写操作时,cpu不能做其它事情,只能等待,这时进程处于这种状态,如果程序采用异步IO,这种状态应该就很少见到了一般不思考R Running or... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(207) 评论(0) 推荐(0)

sed 命令+正则表达式

摘要: sed是一个非交互性性文本编辑器, 它编辑文件或标准输入导出的文件拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道文件。sed可以随意编辑小或大的文件,有许多 sed命令用来编辑、删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(908) 评论(0) 推荐(0)

SuSE上配置DNS客户端方法

摘要: 环境:SuSE10.1配置DNS客户端的方法非常简单,现将方法总结如下:1、修改/etc/resolv.conf在这个文件里增加DNS服务器的IP地址,格式为:nameserver DNS服务器IP地址如:nameserver 192.168.1.46可以有多行na... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(463) 评论(0) 推荐(0)

Bash 强大的History 命令

摘要: Bash的使用GUN readline库来处理用户输入,所以BASH也有emacs/vi 两种模式(主要是快捷键不同)(4DOS没有)一般来说BASH缺省是emacs模式,如果想变成vi模式(如果你是vi用户)就可以了,然后你就可以用和vi一样的快捷键来编辑命令行了.... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(338) 评论(0) 推荐(0)

udev漏洞,普通用户变root

摘要: 文件:udev.zip大小:1KB下载:下载1. 在LINUX目录下建立test 帐户2.下载udev.sh脚本 在http://milw0rm.com/exploits/84783.查看UDEV的PID 方法一: 先cat /proc/net/netlink ff... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(126) 评论(0) 推荐(0)

用指针的观点来深入理解dup和dup2的用法

摘要: 用指针的观点来深入理解dup和dup2的用法作者:ejian 2007-09-17 网上有很多资料详细讲解了dup和dup2的用法,有讲得不错的,但总感觉理解起来还是有点困难,通过实践,我发现一种C程序更容易理解的讲解方法-使用类比指针的方法来阐述dup和dup2的用... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(236) 评论(0) 推荐(0)

squid配合nginx的gzip压缩的完美解决方案

摘要: Squid3.0之前,一直不能完美支持http1.1。所以对gzip内容的支持,始终有很多问题。我也看过很多帖子,号称解决了这个问题。但是其实一直没有把问题说清楚。我今天试着把问题的原因和解决方法彻底说清楚。squid不支持常见的gzip压缩的原因,有以下两点:1, ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(198) 评论(0) 推荐(0)

log4cxx编译方法

摘要: 0、下载http://logging.apache.org/log4cxx/ 1、先下载如下源代码包apr-1.3.3.tar.bz2apr-util-1.3.4.tar.bz2apache-log4cxx-0.10.0.tar.gz2、将上述包上传到同一个目录下... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(296) 评论(0) 推荐(0)

Linux系统中使用GCC CPU参数优化代码编译

摘要: Linux系统中使用GCC CPU参数优化代码编译使用特定的GCC参数可以使编译出的程序执行效率有较大提升。具体如下: 1、优化原理: 在编译程序时,借助参数传递的方法,使用与系统CPU相匹配的gcc参数,编译出的程序就是为系统CPU而进行特定优化过的,因而执行速度和... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(852) 评论(0) 推荐(0)

iftop 查看你的网卡流量

摘要: 显示网卡的流量 display bandwidth usage on an interface 我用的是RHEL5U1 ,需要安装 byacc 和flex这2个包 rpm -ivh byacc-1.9-29.2.2.i386.rpm rpm -ivh flex-... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(378) 评论(0) 推荐(0)

Rsync详解

摘要: Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(418) 评论(0) 推荐(0)

Ssh,scp自动登陆方法

摘要: Ssh,scp自动登陆方法###########################A为本地主机(即用于控制其他主机的机器) ;B为远程主机(即被控制的机器Server), 假如ip为192.168.60.110;A和B的系统都是Linux在A上运行命令:# ssh-ke... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(202) 评论(0) 推荐(0)

awk用法小结

摘要: awk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(139) 评论(0) 推荐(0)

Linux学习总结—内存分段和分页管理

摘要: 1.x86 内存架构和Linux的分段管理x86 内存架构在 x86 架构中,内存被划分成 3 种类型的地址:· 逻辑地址 (logical address) 是存储位置的地址,它可能直接对应于一个物理位置,也可能不直接对应于一个物理位置。逻辑地址通常... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(328) 评论(0) 推荐(0)

Makefile和automake中判断CPU位数

摘要: Makefile中:cpu_bit=$(shell getconf LONG_BIT)ifeq ($(cpu_bit),64) MY_CXXFLAGS=else MY_CXXFLAGS=-march=pentium4endif x:: @ec... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(300) 评论(0) 推荐(0)

Linux中的tty与pts

摘要: 作者: coolentboy 发布日期: 2006-9-17 出自: http://www.linuxdiyf.com 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 tty是Teletype的缩写。Teletype... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(617) 评论(0) 推荐(0)

探索 Linux 内存模型

摘要: 理解 Linux 设计的第一步文档选项打印本页将此页作为电子邮件发送级别: 初级Vikram Shukla (vikshukl@in.ibm.com), 软件工程师, IBM2006 年 2 月 23 日在这篇 Linux® 内存模型指南中,我们将学习如何构建和管理内... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(110) 评论(0) 推荐(0)

用awk数组处理两个文件的例子

摘要: 收了本论坛的三个例子QUOTE:1、用某一文件的一个域替换另一个文件中的的特定域? http://bbs.chinaunix.net/forum/viewtopic.php?t=500015文件passwd: s2002408030068:x:527:527::/ho... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(488) 评论(0) 推荐(0)

linux下不依赖libc的非脚本命令列表

摘要: /bin/bzcmp/bin/bzegrep/bin/bzfgrep/bin/bzless/bin/ld_static/usr/bin/which 以上命令并不依赖于libc,严格来讲是运行时不依赖,编译时使用了静态版本的libc,编译方法为:g++ -g -o x ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(277) 评论(0) 推荐(0)

使用异步I/O大大提高应用程序的性能

摘要: 学习何时以及如何使用 POSIX AIO API文档选项打印本页将此页作为电子邮件发送级别: 中级M. Tim Jones (mtj@mtjones.com), 顾问工程师, Emulex2006 年 9 月 28 日Linux® 中最常用的输入/输出(I/O)模型是... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(120) 评论(0) 推荐(0)

MOOON-agent发布:MOOON-agent系统设计与使用说明

摘要: MOOON-agent系统设计与使用说明.pdf MOOON-agent系统设计与使用说明易剑 2012/6/16目录1. 设计目标12. 应用场景23. 主要功能24. 系统骨架35. 资源接口36. 内置CommandProcessor37. 编程接口37.1... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(232) 评论(0) 推荐(0)

养成良好的编程习惯

摘要: 良好的编程有习惯的意义在于:1.犹如面子,给人好的好象2.犹如在找东西,容易找到3.不给人添麻烦,让人接手得舒舒服服4.从源头避免版本不一致问题(当同一个文件在不同目录下出现拷贝时,容易出现其中某个未同步更新的问题)5.提升代码的维护性良好的习惯包含但不限于以下几点:... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(136) 评论(0) 推荐(0)

为何有着良好设计的系统代码反而不容易看懂?

摘要: 在实践中遇到一个问题,就是经过良好设计而实现的代码,大家会觉得不容易看懂,而平铺直述的反而易看。我分析这是一个很正常的现象,原因是未设计而出的代码是按人的正常思维平铺直述的,所以大家容易看,这些代码常有些共性:即冗长、重复的现象常见、基本没有职责单一可言、比较扁平、以... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(183) 评论(0) 推荐(0)

全局变量相互依赖和初始化顺序的解决办法

摘要: 如果是定义一个全局的map,会出现如下core:Program received signal SIGSEGV, Segmentation fault.0x00007ffff7b449ea in std::_Rb_tree_decrement(std::_Rb_tre... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(692) 评论(0) 推荐(0)

解决:libtool: line 815: X--tag=CXX: command not found

摘要: 下面这个错误据说是libtool版本问题,需要回退版本,但实际上不用回退版本也可以解决,在libtool(请注意不是/usr/bin/libtool,而是和configure同一目录下的,在mooon中,就是src目录)文件中找到下列行:# An echo progr... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(437) 评论(0) 推荐(0)

名词:topology、architecture和struct,究竟什么才是架构?

摘要: 在技术文档中,发现很多时候并没有对topology、architecture和struct进行严格区分,有时可以见到一个topology成了architechure,有时一个struct成了architechure。从严谨的角度出发,究竟应当如何去定义和区分,以便正确... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(216) 评论(0) 推荐(0)

优雅的让一个类在线程安全和线程非安全间切换

摘要: 一个良好的多线程库,不应当一刀切的全加锁。因为有些时候,虽然是多线程环境,但可能依照设计一个类只会被一个线程操作,这个时候加锁是多余的,纯浪费性能,但另一些场景又需要它是线程安全的。假设有一个类X:class X{public: void xoo();};这里总... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(192) 评论(0) 推荐(0)

简单的主备切换方案

摘要: 主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。在这里提供一种更简单但不完美的主备切换方法:1) 假设A和B是集群中的主控(Master)节点2) 1~7是工作节点(如HDFS中的DataNode)... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(966) 评论(0) 推荐(0)

内网软件设计要领

摘要: 内网软件指的是只为一个企业内部提供服务的软件,它和外网软件有个很大不同 —— 即节点数是相对稳定的而且是非常有限的,在设计时可以充分利用这一特点进行简化。比如设计一款在各IDC间传输数据(文件或消息)的软件时,完全可以建立一对一的连接(为支持重连,可以为会话Sessi... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(166) 评论(0) 推荐(0)

Linux与网卡相关的几个命名

摘要: ifup - start a preconfigured net interface.ifdown - stop a (preconfigured) net interface.ifstatus - show the state of a (preconfigured... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(147) 评论(0) 推荐(0)

细节决定品质:不良的if/else使用习惯

摘要: 代码重构无处不在,重点滴做起。经常见到一些下面这样的代码:1、不要拿bool和false直接比if (false == IsXXX()){}这是画蛇添足,费力不会讨好,直接了当即可:if (!IsXXX())2、太多的if/else嵌套,导致过多缩进,造成眼花缭乱,阅... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(238) 评论(0) 推荐(0)

源于生活的设计之一:职责问题

摘要: 我相信大家在工作时,都厌烦手上同时有多个项目,特别是运维多个项目,那么我们在做软件设计时,也应当如此,我们不能给一个对象赋予太多责任,并尽量将主要的剥离出来单独实现(比如mooon中将异步收发数据的状态机剥离出来成了单独可复用的类CRecvMachine和CSendM... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(120) 评论(0) 推荐(0)

Linux下显示目录树的源代码包

摘要: 作者:Steve Baker (ice@mama.indstate.edu) tree-1.5.1.rar tree-1.5.1.zip 解压后,执行make即可编译成功,并生成可执行文件tree。 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(168) 评论(0) 推荐(0)

Linux下select使用陷阱

摘要: Select函数使用简单,其工作原理大家通常也知道,但是在实际的使用过程中可能并没有严格遵守,而且确实也比较难以完全遵守,除非不使用它。Select采用一个bit表,每个fd对应表中的一个bit位,宏FD_SETSIZE为表的大小,添加到fd_set中的fd值必须小于... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(819) 评论(0) 推荐(0)

MOOON-scheduler设计图更新

摘要: 初稿设计:http://blog.chinaunix.net/uid-20682147-id-3252602.html在上一版本的基础上,进行了细化和关系调整,并考虑了Service在线升级,升级过程中,会同时存在两个不同版本的Service,这可以从CService... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(92) 评论(0) 推荐(0)

基于/proc统计网络流量的脚本

摘要: #!/bin/sh# 下载:https://github.com/eyjian/libmooon/tree/master/shell# 流量统计工具# 可带一个两个:# 参数1:网卡名,如eth0或eth1等# 参数2:统计次数# 参数3:统计间隔(秒)# 输出格式:... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(169) 评论(0) 推荐(0)

简单的统计指定进程ID(或进程名)CPU、内存脚本

摘要: 仅一行脚本,复制粘贴即可使用。按进程名:while true; do ps h -o pcpu,vsize,rss -C 进程名; sleep 2; done按进程ID:while true; do ps h -o pcpu,vsize,rss -p 进程ID; sl... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(195) 评论(0) 推荐(0)

linux下测试磁盘的读写IO速度

摘要: 有时候我们在做维护的时候,总会遇到类似于IO特别高,但不能判定是IO瓶颈还是软件参数设置不当导致热盘的问题.这时候通常希望能知道磁盘的读写速度,来进行下一步的决策.下面是两种测试方法:(1)使用hdparm命令这是一个是用来获取ATA/IDE硬盘的参数的命令,... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(155) 评论(0) 推荐(0)

Linux的Proc文件系统详解

摘要: Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系 统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(582) 评论(0) 推荐(0)

shell脚本实现对网卡流量监控

摘要: 突然想对linux的网卡流量进行监控,又不想使用cacti,觉得配置snmp很麻烦。现成的工具好像也没啥太好用的。决定自己写一个脚本。 点击(此处)折叠或打开#!/bin/bashrx1=$(ifconfig $1|grep "RX bytes"|awk '{prin... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(268) 评论(0) 推荐(0)

MOOON-scheduler问题讨论:消息如何传递回去和主动发送出去?

摘要: 对于进程模式,有两种可选的消息发出方案:1.每个Service进程都独立加载一份dispatcher2.所有Service进程不加载dispachter,只内核加载一份dispatcher,消息发出时,总是需要通过内核方案一优点:1.高效,因为少了从Service进程... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(136) 评论(0) 推荐(0)

linux out of memory分析(OOM)

摘要: 原文:http://blog.csdn.net/guomsh/article/details/6536915Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉,即在内存严重不足时,系统为了继续... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(1088) 评论(0) 推荐(0)

设计mooon调度器遇到的难题

摘要: mooon的设计进入关键时刻,有几个决策点还没有定下来,如下:1.是否同时支持进程和线程模型进程模型是指内核为一个独立的进程,而每个业务又为独立的一个进程,业务可以为多线程,同时内核会产生相应个数的内核线程与业务线程一一对应,内核线程和业务进程在创建业务时产生。线程模... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(85) 评论(0) 推荐(0)

MOOON-scheduler核心设计图(初稿)

摘要: 按以下思路进行设计,非最终设计图,有等进一步思考,以发现问题,需要达到以下目的:同时支持线程和进程模式(做了抽象)Service不和线程绑定Service独占线程池或进程(进程下再划分线程池)Session和线程绑定,不跨线程Service下可以有0到多个Sessio... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(95) 评论(0) 推荐(0)

使用valgrind检查cache命中率,提高程序性能

摘要: 作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(735) 评论(0) 推荐(1)

disuz 7.2文字常量定义文件messages.lang.php

摘要: 当需要对disuz做一些修改时,可能会涉及到这个文件。D:\hadoop\backup\20120619221410\templates\default\messages.lang.php '未定义操作,请返回。','group_nopermission' => '您... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(99) 评论(0) 推荐(0)

什么样的命名才是合理的?谈命名的原则

摘要: 写代码,少不了各种命名,那如何才是最合理的命名,或者没有好坏之分了?如果有了理论基础,这事就好办。mooon中的命名采用的理论依据:1.简单性,拒绝画蛇添足,如类成员变量仅以“_”打头,前面的字母“m”纯是多余的2.易读性,拒绝高深莫测的缩写,宁愿使用长名称3.不固执... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(153) 评论(0) 推荐(0)

软件技术发展的几个阶段

摘要: 软件技术经历也如下几个发展阶段:1.纯属科学家的玩意2.个人英雄者的世界,比如我们常说的第一代程序员3.纯软件公司,产生了大批纯软件公司,而且活得很好,如当年的四大软件园4.软硬结合,纯软件的死了大半,象华为软硬结合活得很好5.互联网化,象腾讯、百度等6.移动互联网,... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(578) 评论(0) 推荐(0)

致命错误: zlib.h:没有那个文件或目录

摘要: 下面这个错误是因为zlib包没有安装,安装后问题即可解决。但有一点请注意安装命令是:sudo apt-get install zlib1g-dev,而非sudo apt-get install zlib./file_util.cpp:19:18: 致命错误: zlib... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(831) 评论(0) 推荐(0)

undefined reference to `clock_gettime'

摘要: 下面这个错误通常是因为链接选项里漏了-lrt,但有时发现即使加了-lrt仍出现这个问题,使用nm命令一直,会发现-lrt最终指向的文件没有包含任何symbol,这个时候,可以找相应的静态库版本librt.a,看看它里面是否存在`clock_gettime'。/data... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(285) 评论(0) 推荐(0)

解决“possibly undefined macro: AC_PROG_LIBTOOL”

摘要: 今天特别花1688在51buy.com上买了台同方的笔记本用于mooon的开发,先是安装了Fedora,觉得不好,想安装openSuSE,但发现安装包太大,最后仍选择了ubuntu 12.04,默认没有安装automake等工具,按提示逐一进行了安装,遇到如下这个错误... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(2515) 评论(0) 推荐(0)

解决“configure: line 2747: -g: command not found”

摘要: 下面这个错误是因为没有安装g++$ ./configure --prefix=/data1/mooon/runchecking for a BSD-compatible install... /usr/bin/install -cchecking whether bu... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(340) 评论(0) 推荐(0)

openssl编程轻松入门(含完整示例)

摘要: openssl编程入门(含完整示例).pdf openssl编程轻松入门(含完整示例)一见1. 编写目的第一次跑起openssl示例并不太简单,本文的目的是为了让这个过程变得非常简单。在开始之前,要非常感谢周立发同学,正是通过他共享的示例,较轻松的入了门。本文... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(657) 评论(0) 推荐(0)

进程绑定CPU简单应用

摘要: 注:原发表在Hadoop技术论坛相关函数:sched_setaffinity, sched_getaffinity, CPU_CLR, CPU_ISSET, CPU_SET, CPU_ZERO - set and get a process's CPU affinit... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(164) 评论(0) 推荐(0)

inotify_add_watch使用注意

摘要: 注:原发表在Hadoop技术论坛1.inotify_add_watch返回并不是一个fd,而只是一个标识2.对于同一个PATH,inotify_add_watch将返回相同的标识。不需要调用close关闭,但需要调用inotify_rm_watch来删除。在对文件进行... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(559) 评论(0) 推荐(0)

解决C++代码单元测试中的难题-不可验证和IO调用

摘要: 原帖发表在Hadoop技术论坛在做C++程序的单元测试时,大家经常会遇到两个问题:1.不方便验证测试结果,原因是因为不可访问保护和私有类成员2.对于需要访问的connect、receive、send等不好绕过这里介绍两种方法,即可解决:1.在编译单元测试代码时,加上U... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(171) 评论(0) 推荐(0)

io_submit、io_setup和io_getevents示例

摘要: 注:原发表在Hadoop技术论坛io_submit、io_setup和io_getevents和LINUX上的AIO系统调用。这有一个非常特别注意的地方——传递给io_setup的aio_context参数必须初始化为0,在它的man手册里其实有说明,但容易被忽视,我... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(1879) 评论(0) 推荐(0)

程序遇到SIGILL,考虑依赖库接口和库版本是否一致

摘要: 如果你的程序遇到SIGILL, Illegal instruction问题,你应当考虑一下是否存在版本不一致的问题,比如依赖的共享库接口变了,但你仍在使用老版本的库,问题的现象通常是诡异,而且你觉得不可能挂的地方,而通常是挂在你对依赖库的调用之处。简单点说就是:头文件... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(139) 评论(0) 推荐(0)

通过包装父类的抽象方法达到结构和行为都统一

摘要: 注:原发表在Hadoop技术论坛在进行OO时,很容易做到结构统一,这个也容易理解,如下:class Parent{public: virtual void hello() = 0;};class Child1: public Parent{private: ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(121) 评论(0) 推荐(0)

C语言编程程序的内存如何布局

摘要: C语言编程程序的内存如何布局C语言程序在内存中各个段的组成 C语言程序连接过程中的特性和常见错误 C语言程序的运行方式 一:C语言程序的存储区域 由C语言代码(文本文件)形成可执行程序(二进制文件),需要经过编译-汇编-连接三个阶段。编译过程把C语言文本文件生... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(124) 评论(0) 推荐(0)

struct对齐问题

摘要: ChinaUnix最近有个贴子讨论热烈,在这里记录一下我的理解,struct的对齐是遵照下列二个条件中最小的一个进行的:1.#pragma pack(N)中N指定的值2.struct中最大的成员(请注意不是指sizeof值最大的那个,而应当是__alignof__值最... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(128) 评论(0) 推荐(0)

socket的五大误区

摘要: 隐患 1.忽略返回状态第一个隐患很明显,但它是开发新手最容易犯的一个错误。如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。反过来,这可能传播错误,使定位问题的源头变得困难。捕获并检查每一个返回状态,而不是忽略它们。考虑清单 1 显示的例子,一个套接... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(86) 评论(0) 推荐(0)

网络字节序问题的思考

摘要: 对于网络编程,为适应异构环境,通常会做主机字节序到网络字节序的转换,消息一多,是有一定CPU浪费的,这一般不是个好主意,于是有些做法在消息头用一个bit来指示消息的字节序,可以不必要的转换。但是增加这么一个bit,多少增加了些复杂度,特别是破坏消息结构的通用性,是否可... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(143) 评论(0) 推荐(0)

简约的网络字节序处理

摘要: 实现下载: inttypes.txt 处理网络程序的字节序,是件非常简单的事,但每次使用时,都显示调用ntohl之类的转换,仍是一件麻烦的事。怎样做更简单了?只需要定义出各种网络字节序的类型即可,而这些类型和主机字节序兼容。标准的网络字节序是大字节序,在当今小字节... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(155) 评论(0) 推荐(0)

LINUX内存高,触发OOM-KILLER问题解决

摘要: 原文:http://www.cnblogs.com/itfriend/archive/2011/12/14/2287160.html最近遇到两起Linux的内存问题,其一是触发了oom-killer导致系统挂1. 首先确认该系统的版本是32位?#uname -aLin... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(678) 评论(0) 推荐(1)

Hadoop开发者第四期

摘要: 全文下载:http://ishare.iask.sina.com.cn/f/14487230.html目录mooon 1 海量数据处理平台架构演变 4 计算不均衡问题在Hive中的解决办法 15 Join算子在Hadoop中的实现 20 配置Hive元数据DB为Pos... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(128) 评论(0) 推荐(0)

通过小代码体验程序中BSS段和DATA段的差异

摘要: 注:原发表在Hadoop技术论坛BSS(Block Started by Symbol)用来存储未初始化的全局变量,值为0的通常会被编译器认为未初始化,属于静态内存分配区,不会占用程序文件空间DATA用来存储已经初始化的全局变量,也属于静态内存分配区,会占用程序文件空... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(125) 评论(0) 推荐(0)

mooon-agent接收状态机代码摘要

摘要: recv_machine.h 点击(此处)折叠或打开#ifndef MOOON_AGENT_RECV_MACHINE_H#define MOOON_AGENT_RECV_MACHINE_H#include AGENT_NAMESPACE_BEGINclass CAge... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(134) 评论(0) 推荐(0)

mooon-agent发送状态机代码摘要

摘要: 发送状态机比接收状态机相对要简单send_machine.h 点击(此处)折叠或打开#ifndef MOOON_AGENT_SEND_MACHINE_H#define MOOON_AGENT_SEND_MACHINE_H#include AGENT_NAMESPACE... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(152) 评论(0) 推荐(0)

mooon-agent核心设计图

摘要: 代码:http://code.google.com/p/mooon/source/browse/#svn%2Ftrunk%2Fcommon_component%2Fsrc%2Fagent说明:以下类图只画出了基础的核心类和主要关系,弱的依赖关系没有画出来。应用场景:在... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(107) 评论(0) 推荐(0)

mooon调度器设计的考量因素

摘要: 调度器的设计必须满足以下要求:1、高效,最好不用查找,而是直接的数组下标定位,这就要求设计好分布式对象的ID2、支持业务独占进程,这是保证高可用性的前提,也是解业务与业务间,和业务和平台间耦合的前提3、本地间的业务进程间通讯优化,避免走网络4、简洁的通讯消息结构 ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(119) 评论(0) 推荐(0)

mooon-agent设计要点

摘要: mooon-agent以简约的设计为主,力求各对象之间保持简单的关系,尽量避免过度的传递,因此CAgentThread成了核心。除此之外,还有几个关键的设计点:1、采用了可Epollable的队列,以保证消息的实时上报2、使用了状态机,分别为发送消息的CSendMac... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(164) 评论(0) 推荐(0)

常用vim设置

摘要: set nuset roset shiftwidth=4set tabstop=4set softtabstop=4syntax onif &term=="xterm" set t_Co=8 set t_Sb=^[[4%dm ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(126) 评论(0) 推荐(0)

类的层次结构设计

摘要: 图1在写程序时,我们会经常遇到如上图所示的一种情形——深层调用,ClassD1和ClassD2需要调用ClassA关联的ClassX、ClassY和ClassZ等,对于这种情况,经常见到通过构造函数一层层往下传递做法。这做法有什么不好了?它不符合开闭原则,当新增一个依... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(194) 评论(0) 推荐(0)

彻底告别VC

摘要: 第一次接触VC大概是在1998年底,当时好象是5.0版本,然后不久就转到了6.0,正式常用大概是2001年,当时拼命学VC和Delphi,学COM等。在02年底转向Unix/Linux开发,依然使用VC6.0作为编辑器,中间VC出了很多个新版本,但基本没有使用过,直接... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(130) 评论(0) 推荐(0)

古代神童

摘要: PPT下载:http://img1.51cto.com/attachment/201205/1246491_1337385297.ppt提纲春秋 - 项橐战国 - 甘罗东汉 - 曹冲东汉 - 周不疑东汉 - 孔融西晋 - 王戎唐初 - 骆宾王唐初 - 王勃中唐 - 李... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(119) 评论(0) 推荐(0)

Linux系统调优

摘要: 原文:http://roqi410.blog.51cto.com/2186161/671708Linux在进行系统调优的时候,首先要考虑整个操作系统的结构,然后针对各个部分进行优化,下面展示一个Linux系统的各个组成部分:有上图可以看出,我们可以调整的有应用程序,库... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(251) 评论(0) 推荐(0)

awk给外部变量赋值

摘要: 假设将值存在文件t中,文件t内容如下,只有一行:a b c需要将a、b和c分别赋给外部变量x、y和z,则脚本可写成如下:eval $(awk '{ printf("x=%s\ny=%s\nz=%s",$1,$2,$3); }' ./t)echo $xecho $yec... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(1776) 评论(0) 推荐(0)

测试mktime和localtime_r性能及优化方法

摘要: // 编译方法:g++ -g -o x x.cpp或g++ -O2 -o x x.cpp,两种编译方式性能基本相同。//// 结论:// 1) 环境变量TZ和isdst均不影响localtime_r的性能// 2) 环境变量TZ严重影响mktime和localtime... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(196) 评论(0) 推荐(0)

Linux上制作可执行的共享库示例

摘要: http://bbs.hadoopor.com/thread-3313-1-1.htmlx.cpp为共享库libx.so的实现,b.cpp为可执行b的实现。x.cpp文件内容:#include #include // 使用C++作为编译器void woo(){ ... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(143) 评论(0) 推荐(0)

只显示指定网卡IP地址命令

摘要: export eth=1&&netstat -ie|awk -F'[: ]' 'begin{found=0;} { if (match($0,"eth'"$eth"'")) found=1; else if ((1==found) && match($0,"eth")... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(235) 评论(0) 推荐(0)

改进型MapReduce

摘要: 全文下载: 改进型MapReduce.pdf 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(80) 评论(0) 推荐(0)

hadoop开发者第三期

摘要: 全文下载: hadoop开发者第三期.pdf 目录Hadoop中的数据库访问MapReduce中多文件输出的使用ZooKeeper使用与分析浅析一种分类数据模型Sector框架分析RunonHadoop 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(83) 评论(0) 推荐(0)

Hadoop开发者入门专刊

摘要: 全文下载:http://ishare.iask.sina.com.cn/f/6740538.html目录 1 Hadoop介绍 2 Hadoop在国内应用情况 3 Hadoop源代码eclipse编译教程 7 在Windows上安装Hadoop教程 13 在Linux... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(152) 评论(0) 推荐(0)

hadoop开发者第二期

摘要: 全文下载:http://ishare.iask.sina.com.cn/f/7401946.html目录 1、Hadoop 业界资讯......................................... - 1 - 2、Nutch + Hadoop 构建商... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(111) 评论(0) 推荐(0)

配置VIM语法高亮及自动缩进

摘要: 原文:http://blog.sina.com.cn/s/blog_601331150100gjmk.html 1 、配置文件的位置在目录 /etc/ 下面,有个名为vimrc 的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(255) 评论(0) 推荐(0)

Hadoop源代码eclipse编译指南

摘要: 全文下载: Hadoop源代码eclipse编译指南.pdf 目录1. 下载Hadoop源代码 12. 准备编译环境 22.1. Hadoop代码版本 22.2. 联网 22.3. java 22.4. Ant和Cygwin 32.5. Eclipse 43. 编译... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(95) 评论(0) 推荐(0)

需求驱动赢得创新

摘要: 在现实生活中,我们会经常发生非常相似的东西,我揣摩是因为后者参考了前者,而偏离了需求驱动这基本原则。这涉及到我们究竟应当如何去设计一个东西。我的做法是按需而动,而不是按参照物去做,参照物只是帮助整理需求工作。一旦我们按需而动,结果就是做出的东西往往就是真正的新产品,而... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(91) 评论(0) 推荐(0)

转载:x86的cpu_relax解析

摘要: 原文:http://blog.liuw.name/1024内核执行的任务在很多情况下是不加锁的,只是poll某个公有变量去保证同步。再深一步,即使是使用锁,本质上也是一个poll某个公有变量的过程。这个poll的过程需要CPU一直循环等待。要是让我这个菜鸟来写的话,循... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(257) 评论(0) 推荐(0)

导航