BAE wordpress安装与配置

之前大二的时候在blogger.com上面混过,后来被墙后,转战到yo2,然后它也挂了,恰好也进入了苦B的工作期,后来想把博客迁到庙(miao.in)里面去,还没来的及行动,就看到了新浪的云计算业务出来了(吐槽阿里云坐拥众淘宝商户按硬件计费,更像卖主机的,盛大更是连你的数据都是可以丢的),然后便把博客迁过去,但是感觉速...

决策树与ID3算法

在机器学习和数据挖掘领域里,决策树是一种有效的归纳推理算法之一,它将训练样本抽象出多个特征函数,通过离散值的函数输出归纳成一个决策树,由于是有训练样本统计而来,它对样本噪声有一定的健壮性。 一、什么是决策树   直接看图说话: 一个母亲给女儿介绍相亲对象,女孩见不见呢?(图片剽窃自Coding...

比较排序的最优解

看内核代码内存部分时有红黑树的利用,顺便翻了一下经典的排序算法,比较笨的算法如插入排序、冒泡排序的时间复杂度到了θ(N^2)的程度,但诸如堆排序、归并排序和快速排序的复杂度优化到了θ(NlogN)的程度,其中快排成为均匀杂序里面最快的实践算法,自我YY想着排序算法难道不能优化了?一查阅果真如此:基于比较排序的一...

跳表SkipList的原理和C实现

跳表SkipList,顾名思义是链表的一种,或者说它是单链表的变异实现,使用跳表可以将查询操作的复杂度控制到θ(lg N),而普通的链表只能通过顺序查找,复杂度为θ(N),如此跳表的优势就很明显了,虽然它是通过以空间换时间搞定的。 先看一下普通的有序单链表: 要在里面查找一个值就需要顺序比较,复杂度大家都清...

gdb工作原理和内核实现

gdb主要功能的实现依赖于一个系统函数ptrace,通过man手册可以了解到,ptrace可以让父进程观察和控制其子进程的检查、执行,改变其寄存器和内存的内容,主要应用于打断点(也是gdb的主要功能)和打印系统调用轨迹。 一、ptrace函数 函数原型如下: #include <sys/ptrace.h> long ptrace(enum __ptrace_reque...

shell文本编辑单行快速参考

shell中有很多命令适合对文本进行编辑,如grep,cut,sed,awk等,命令有很多,但没有哪个命令可以方便的通吃天下,而且由于shell命令的独特用法,用后即忘,现在记载于此,方便日后查询。 一、行操作 1.显示文件内容前10行 head -n 10 filename 2.显示文件内容后10行 tail -n 10 filename 3.显示指定的行数(2...

Linux缓存写回机制

在做进程安全监控的时候,拍脑袋决定的,如果发现一个进程在D状态时,即TASK_UNINTERRUPTIBLE(不可中断的睡眠状态),时间超过了8min,就将系统panic掉。恰好DB组做日志时,将整个log缓存到内存中,最后刷磁盘,结果系统就D状态了很长时间,自然panic了,中间涉及到Linux的缓存写回刷磁盘的一些机制和调优方法,写一下...

ext4文件系统错误处理机制

目前内核对ext4文件系统错误处理机制分为三种:1.不处理;2.内核panic;3.错误分区remount成只读形式。 处理机制的设定是在两个地方处理的,一个是在文件系统物理分区上设置,通过设置ext4文件系统分区的超级块中的“Errors behavior”参数,可以配置错误处理方式,一般默认处理方式是Continue(不处理),具体配置通过tu...

block_dump观察Linux IO写入的具体文件

很多情况下开发者调测程序需要在Linux下获取具体的IO的状况,目前常用的IO观察工具用vmstat和iostat,具体功能上说当然是iostat更胜一筹,在IO统计上时间点上更具体精细。但二者都是在全局上看到IO,宏观上的数据对于判断IO到哪个文件上毫无帮助,这个时候block_dump的作用就显现出来了。 一、使用方法: 需要先停掉sy...

Glibc更新导致pthread_cond_timedwait失效

话说产品的大哥转过来一个定时器失效的问题,当时还以为是内核的定时器,到手一看,居然是产品代码中的一个自写的定时器没有生效,被告知是调用的系统接口,看着令人头痛的CPP代码,咨询之后才知道是ACE(Adaptive Communication Environment)框架,然后再次被人用小学学到的对比法把问题丢给了自己,苦命的搞了内核还...