岚天逸见

2012年7月24日 #

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 岚天逸见 阅读(354) 评论(0) 推荐(0)

开发理念和用户体验

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

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

怎么做自动化

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

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

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

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

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

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

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

posted @ 2012-07-24 16:19 岚天逸见 阅读(126) 评论(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 岚天逸见 阅读(236) 评论(0) 推荐(0)

代码规范:换行对齐问题

摘要: 今天有同事看了我写的代码,问为何逗号要放在前面,以下列两段代码为列:代码段一void function(int a , char b , short c , long d , st... 阅读全文

posted @ 2012-07-24 16:19 岚天逸见 阅读(699) 评论(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)

网络字节序问题的思考

摘要: 对于网络编程,为适应异构环境,通常会做主机字节序到网络字节序的转换,消息一多,是有一定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)

改进型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 岚天逸见 阅读(84) 评论(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 岚天逸见 阅读(96) 评论(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)

高效的使用stl::map和std::set

摘要: 1、低效率的用法// 先查找是否存在,如果不存在,则插入if (map.find(X) == map::end()) // 需要find一次{ map.insert(x); // 需要find一次}// 下面这段代码是一个意思if (0 == map.count... 阅读全文

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

Linux内核list&hlist解读

摘要: 全文下载: Linux内核list&hlist解读.pdf 目录1. 前言 22. 通用宏 22.1. typeof 22.1.1. 定义 32.1.2. 用途 32.1.3. 示例 32.2. offset_of 32.2.1. 定义 32.2.2. 作用 32... 阅读全文

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

高质量C++编程补充条款

摘要: 文件:高质量C++编程补充条款.pdf大小:169KB下载:下载目录1. 前言 12. 条款:避免使用非众所周知的缩略语 13. 条款:规范好#include 14. 条款:避免长短语句无规律交错 25. 条款:避免头重脚轻 26. 条款:充分利用public和pr... 阅读全文

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

清理disuz垃圾用户信息SQL语句

摘要: -- hadoop开头的是UCenter表,cdb开头的是BBS部分的表-- 搜索出所有垃圾用户名:select `hadoop_members`.`username` from `hadoop_members` left join `cdb_members` on ... 阅读全文

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

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

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

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

按时间顺序显示指定目录的文件

摘要: 方法:ls -lrt --time-style=long-iso $(find 目录路径 -type f) 阅读全文

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

如何查看Linux内核是否为64位版本?

摘要: 方法非常简单,LINUX提供了一个查看配置的命令(实际有相应的库函数)getconf,使用它即可,方法如下:getconf LONG_BIT如果返回64,就表示为64位内核,否则应当返回32。 阅读全文

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

mooon db wrapper

摘要: mooon db wrapper1. 前言mooon db wrapper不是一个DB,仅是对现有的DB API的封装,使得使用更为简单。项目地址:http://code.google.com/p/mooon,可使用SVN下载最新代码。开发和交流论坛:http://b... 阅读全文

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

mooon http-stress使用教程

摘要: 文件:mooon-http-stress-manual.pdf大小:248KB下载:下载1. http-stress是什么?http-stress是一个和ab(Apache Benchmark)类似的HTTP压力测试工具,是作为dispatcher和http_par... 阅读全文

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

使用protocol buffers优缺点分析

摘要: 很早就听说过PB(protocol buffers的简称),但从未实际地去了解,最近动手对它进行了初步了了解和使用,由于它长得和RPC/IDL相似,加上以前有参与过使用C++实现过RPC的项目经验,所以容易理解起来比较顺畅,网上也有不少基于PB的RPC实现。为什么要去... 阅读全文

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

需要使用一致性哈希吗?

摘要: 在普通的哈希中,如果节点个数(分母)发生变化,原先的次序会被完全打乱重来,一致性哈希解决了这个问题。实际可看成普通的哈希对着的是物理节点,而一致性哈希对着的是虚拟节点,这里可以拿物理内存和虚拟内存来对比,虚拟节点是可认为是使用不完的,挂了一个节点,还可以认为节点数不变... 阅读全文

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

改进型MapReduce

摘要: 1. 前言本文通过对MapReduce的分析,列出MapReduce存在的问题,然后提出一种解决这些问题的改进型MapReduce,这种改进型的MapReduce暂且取名为MapBalanceReduce。由于经验和水平有限,所述观点和方法未必正确,诚心欢迎交... 阅读全文

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

inotify_add_watch使用注意

摘要: 1.inotify_add_watch返回并不是一个fd,而只是一个标识2.对于同一个PATH,inotify_add_watch将返回相同的标识。不需要调用close关闭,但需要调用inotify_rm_watch来删除。在对文件进行读、写、关闭监控时需要注意这个特... 阅读全文

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

走出锁的误区 - 正面认识锁

摘要: 多线程编程,锁通常是必不可少的保证代码运行安全的工具,一提到锁,最直接想到的是性能问题,给人的印象是锁会影响系统性能。这固然不然。但性能本身并不是锁本身引起的,锁也只是一个系统调用,它本身的开销是很小的,很多测试中,我们发现加锁和去掉锁后的性能几乎没有... 阅读全文

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

C++与MySQL的冲突

摘要: 当在C++代码中,直接引用MySQL头文件时,可能会遇到如下错误:In file included from /usr/include/c++/4.1.0/bits/char_traits.h:46, from /usr/include... 阅读全文

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

当gdb看到一行行的??时,你要冷静!

摘要: 下面这段,初看一定会脑大,实际原因非常明确,所以遇到时要先观察,不一定是头大的问题。gdb -p 1461GNU gdb 6.6Copyright (C) 2006 Free Software Foundation, Inc.GDB is free software,... 阅读全文

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

Protocol Buffers十分钟上手:入门示例

摘要: Protocol Buffers十分钟上手:入门示例1.简介Protocol Buffers是Google出品并开源的语言和平台均中立的数据序列化和反序列化工具,官方支持C++/Java和Python三大语言,另外有大量的第三方实现支持PHP、D语言和C#等众多语言,... 阅读全文

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

bash_profile和.bashrc的区别

摘要: 转自http://blog.csdn.net/dingxy/archive/2009/03/20/4008724.aspx 和http://blog.csdn.net/dingxy/archive/2009/03/23/4016383.aspx/etc/profi... 阅读全文

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

limits.conf生效问题

摘要: /etc/pam.d目录下需要增加或修改两个文件:1) 在sshd2文件中增加如下一行:auth required pam_pwcheck.so shadow2) 在system-auth文件中增加如下一行:session requi... 阅读全文

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

interpreter和state模式的区别

摘要: interpreter和state模式都是通过对行为的抽象,去掉if语句,但interpreter主要是通过组合的方法解决问题,多个对象常会绞合在一起,而state总是一个对象转到另一个对象,这是两个模式间的最大区别之一。 阅读全文

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

linux下配置IP地址

摘要: 示例环境:OS: FC2NIC: eth0host name: fc2ip: 192.168.0.20/24default gateway: 192.168.0.254修改ip地址即时生效:# ifconfig eth0 192.168.0.20 netmask 25... 阅读全文

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

SuSE Linux上搭建apache+php+mysql环境

摘要: SuSE Linux上搭建apache+php+mysql环境1.安装apacheapache安装包:httpd-2.2.9.tar.gz,安装步骤如下:1) ./configure --prefix=/usr/local/httpd-2.2.92) make3) m... 阅读全文

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

如何为crontab调度运行的多脚本设置共享的环境变量?

摘要: 方法直接将环境变量添加到crontab中,如:NAME=zhangsanAGE=3010 * * * * /home/xx/test.sh注意不要加上export,这样test.sh就可以用到环境变量了。 http://bbs.hadoopor.com/... 阅读全文

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

如何解决fd跨线程安全问题

摘要: fd跨线程是不安全的,当一个线程close它后,就相当于成了野指针,另一线程再使用就成了对野指针的使用,当系统调用使用一个已经close后的fd时,可能出现内核报错,如果安全使用它了?有两个办法:一是对fd进行再包装,产生应用对象,对象通过引用计数保证线程安全;二是d... 阅读全文

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

__gxx_personality_v0错误原因

摘要: 如果编译遇到如下错误:tmp/cceMNWaA.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'collect2: ld returned 1 exit status则可能是因为使用gc... 阅读全文

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

文件和SOCKET跨线程安全吗?

摘要: 将一个文件或SOCKET的句柄fd传递给多个线程,进行读、写和Close操作,是否安全了?答案是“否”,这类似于new一个指针后,这个指针传递给多线程是否安全,结果是常常容易造成一个线程使用已经被另一个线程delete的指针。对fd的各系统调用本身是线程安全的,比如可... 阅读全文

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

interpreter_command_state pattern

摘要: 阅读全文

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

ANTLR实现的SQL解析器 - OQL

摘要: 使用ANTLR写了个SQL解析器,这样ORM的基本功能就比较完整了。几天的时间比较仓促,所以对于最终目标,还只能算是个雏形。总体状况使用SQL解析器的主要优点:1. 基于解析之后的语法树提供用户操作接口,灵活性非常好,因为达到了对SQL每一部分的完整控制。2.... 阅读全文

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

Hadoop技术论坛

摘要: http://bbs.hadoopor.comhttp://www.hadoopor.comhttp://forum.hadoopor.comhttp://hadoop.hadoopor.comhttp://hdfs.hadoopor.comhttp://mapred... 阅读全文

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

snprintf和strncpy对比

摘要: 有关snprintf返回值更多信息,请参考:http://bbs.hadoopor.com/thread-1185-1-1.htmlsnprintf MAN手册:The functions snprintf() and vsnprintf() do not wr... 阅读全文

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

有关snprintf返回值

摘要: 有关snprintf返回值更多信息,请参考:http://bbs.hadoopor.com/thread-1185-1-1.htmlchar str[10];int rt = snprintf(str, 3, "%s", "0123456789"); // 请注意这里... 阅读全文

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

Ubuntu系统微调

摘要: 本章讲述了基本的基于命令行界面的系统配置方法。在学习本章前,你需要先阅读 Ubuntu 系统安装提示, 第 3 章.如是你很关心安全方面的信息,你应该阅读 Securing Debian Manual,它在 harden-doc 软件包中。[编辑]系统初始化Ubunt... 阅读全文

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

Linux 内核中的 GCC 特性

摘要: Linux® 内核使用 GNU Compiler Collection (GCC) 套件的几个特殊功能。这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等。了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们。GCC 和 Linux 是出色的组... 阅读全文

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

Linux对稀疏(Sparse)文件的支持

摘要: 稀疏(Sparse)文件的创建在EXT2/EXT3文件系统上可以使用dd创建稀疏文件:$ dd if=/dev/zero of=fs.img bs=1M seek=1024 count=00+0 records in0+0 records out$ ls -lh fs... 阅读全文

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

IOWait高的一些处理方法

摘要: IOWait高的一些处理方法1、检查RAID的状态,比如是否正在重建或者没有初始化2、替换操作系统的内核,最好使用发行版标准的Linux kernel,因为有比较多的补丁3、检查/proc/sys/vm下面是否可以优化4、是否使用了文件系统,文件系统是否有优化的选项,... 阅读全文

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

proc /sys/vm 终结版

摘要: 本人最近会把proc目录详解给大家弄一下,欢迎翻译,有问题则留言。虽然是英文的,但都比较好理解,如有问题,请留言,我们共同为Linux社区而努力。我们翻译效果还不一定好,因为这玩意毕竟是老外搞的吗!!!咯咯,翻译可能引起误解。这玩意看懂需要tcp/ip方面的知识,学好... 阅读全文

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

rsync 客户端命令详解

摘要: rsync客户端参数的具体解释如下: -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,... 阅读全文

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

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)

为什么不能在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 岚天逸见 阅读(1258) 评论(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 岚天逸见 阅读(237) 评论(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 岚天逸见 阅读(419) 评论(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)

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

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

posted @ 2012-07-24 16:19 岚天逸见 阅读(489) 评论(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 岚天逸见 阅读(121) 评论(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)

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

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

posted @ 2012-07-24 16:19 岚天逸见 阅读(193) 评论(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 岚天逸见 阅读(167) 评论(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)

导航