杂七杂八
timegoesby_001
技术改变生活
展开
-
kill 掉进程的脚本 stop.sh
有时会启动多个进程,其实kill all也可以,但个人习惯了stop.sh循环方式,一个一个的kill -9 与大家分享一下cat stop.sh#!/bin/shprocess=$1while true docnt=$(ps -wwwwaux | grep $process | wc -l)if [ 1 -eq $cnt ]then原创 2013-11-29 19:01:18 · 1767 阅读 · 0 评论 -
搜索引擎的过程是什么样的呢?
原创 2013-11-30 08:47:52 · 1220 阅读 · 0 评论 -
清理脚本滑动窗口方式清理日志文件
程序一般都会生成日志文件,同时也有一个对应的清理脚本,大部分清理脚本都就是crontab中定时启动但如果每分钟一个日志文件,然后需要保持一分钟的滑动窗口进行清理应该怎么办呢?我测试的清理脚本如下示:cat clear.sh#!/bin/shdate=$(date -v -1d +%Y-%m-%d)root=/rootpath/input=$root/data原创 2013-11-29 18:57:36 · 1080 阅读 · 0 评论 -
为什么搜索质量上google是稳步提高的?
除了搜索老大google外,国内也有几个搞搜索的大公司,其实总体上说都是不错的这些年,我们自己的搜索一直在努力提高,不管是质量上还是用户体验上,可是,一与google这个老大相比,我们总是还差的很远很远。这到底是为什么呢?为什么连我们自己都知道与她差很远呢?既然知道那么差的到底在什么地方?有没办法追赶上(指的是紧紧随后)首先,从技术上来讲,不管我们用的什么所谓高精尖技术,必须承原创 2013-12-06 17:13:42 · 1043 阅读 · 0 评论 -
网络的几种模型概图
网络模型一共有这么几种, loop , fork, select, poll, epoll ..我个人理解它们间的关系与演变过程的原因由下图所示,原创 2013-11-29 10:08:38 · 1000 阅读 · 0 评论 -
python 模拟抓取手机访问页面内容今天
以前涉及到python定向蜘蛛均是针对网页版,前天有一版需要与手机上访问一致(注:同一url地址在手机上和PC上搜索是不一样的内容),所以需要将蜘蛛的改成手机的其实只是设置user-agent即可,也没那么麻烦的 import sys, urllib2import urllibfrom urllib2 import Request, urlopen,URLErr原创 2013-11-26 12:25:37 · 4754 阅读 · 0 评论 -
利用百度应用引擎(BAE)抓取百度信息过程
每个大网站都会限制蜘蛛的访问频率,一旦发现那么对应蜘蛛所在IP就会被封锁一段时间如何应对这种问题发生呢?有几个方法1,程序中使用代理,即使被封仍可让服务使用其它代理抓取内容,目前基本都采用这种方法,毕竟网上可以找好多代理,唯一需要调整的策略就是代理的选择与更新2,使用对应网站提供的接口抓取,例如用百度的BAE来部署抓取百度自身内容程序,因为程序是对集群操作,所以可以当成天然的代原创 2013-11-25 16:00:00 · 1549 阅读 · 0 评论 -
tar 命令打压缩包
拷数据时多个文件不方便,需要tar打个压缩包,我常用的就是这个tar cvfzP PKG-20120530.tgz --exclude=".svn" *原创 2013-11-10 12:23:05 · 919 阅读 · 0 评论 -
diff 比较文件差集
日志仅出现在exist.txt中而在comp.txt中不存在其实就是diff命令,然后在结果中把, 等找一下diff -w exist.txt comp.txt | grep \^\原创 2013-11-10 12:39:28 · 1270 阅读 · 0 评论 -
个人推荐Makefile的写法
# set CPUS for Linux or FreeBSDPLATFORM := $(shell uname)CPUS := $(strip $(if $(shell echo $(PLATFORM)|grep Linux),\ $(shell cat /proc/cpuinfo|grep -c processor),\ $(shell sysctl -a | eg原创 2013-11-08 11:49:32 · 909 阅读 · 0 评论 -
mysql中去除重复4步骤
库表中因为日期up_date没设置unique所以相同日期重复插入删除重复记录(up_date本应该设unique的,导至up_date有重复)共4步:create table table_name1 select min(id) as id from table_name group by up_date;create table table_name2 select t原创 2013-11-08 11:19:31 · 669 阅读 · 0 评论 -
c/c++目标文件中_ZN****符号是什么意思
c/c++目标文件中符号生成规则 , 常看到形如T _Z4funcidcPc等符号而不知这个是什么意思,其实这个是根据对应函数生成的符号名称,其生成规则为:以_Z开始,如果在命名空间(类中)中的后面加个N,然后是函数名称长度,后面是函数名,后面跟参数类型,如i=int d=double..... char* = P所以下面这个例如可以描述/*symbol.cpp */原创 2013-11-12 15:11:00 · 5364 阅读 · 0 评论 -
重复的mysql_init导致日志Can't create a new thread (errno 11)
日志内容形如:E1113 11:08:27.761541 19599 ServiceKV_server.skeleton.cpp:258] MYSQL ERROR: Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possib原创 2013-11-13 12:17:32 · 1233 阅读 · 0 评论 -
从数据分布的角度来看 与,或,异或运算
数据分布和这几个运算有什么关系呢?如果把数据分布空间看成一个hash[ 0x00000000 ---- 0xffffffff ] 的话,那么与会得到偏向0的hash值;或会得到偏向0xffffffff的hash值;异或得到的相对平坦均匀的hash值;原创 2013-11-29 19:49:56 · 888 阅读 · 0 评论 -
内存分配的buddy算法
buddy算法是用来做内存管理的经典算法,目的是为了解决内存的外碎片。例子 buddy算法将所有空闲页框分组为10个块链表,每个块链表的每个块元素分别包含1,2,4,8,16,32,64,128,256,512个连续的页框,每个块的第一个页框的物理地址是该块大小的整数倍。如,大小为16个页框的块,其起始地址是16*2^12(一个页框的大小为4k,16个页框的大小为16*4K,原创 2013-11-29 09:52:35 · 1251 阅读 · 0 评论 -
linux下如何判断elf文件是32位还是64位?
例如一个可执行文件messy,我想知道这个是32位还是64位的,可以用readelf 这个命令,参数为-h在得到的ELF Header中有一项Magic, 这个其实包含很多信息,而这个32位学是64位就对应这个Magic中的第五个值,当为02时即为64位,01即为32位有兴趣的可以试一下readelf -h messyELF Header: Magic:原创 2013-11-28 18:45:58 · 8314 阅读 · 0 评论 -
c/c++ 实现curl http地址
其实如果这种实现,个人还是推荐脚本来搞,毕竟脚本方便些, 这里用c/c++,只是代码较方便,从之前写的项目中涉及到的一个curl部分有管用什么实现,写出来只是希望大家需要注意: 业务层,通信层, 协议层(这里我先这么区别,为的是和下面的代码对应方便来说)例如下面的代码中,标红色的地方表示针对业务层上的通信已完成(仅是通信完成,这里并不代表成功与否)而绿色我把这描述成协议层,即通原创 2013-11-28 18:35:58 · 1232 阅读 · 0 评论 -
c/c++ 类中的成员变量声明时请优先考虑一下排列次序
其实我们知道内存中是以对齐方式存储的,只是我们往往定义一个类的时候对于其中的成员变量很随意的就写上,当然这对程序(类的)实现功能没什么影响,但这确实会对内存产生不必要的浪费cat class.cpp #include using namespace std;class a{ public: char c1; char c2; char原创 2013-11-28 14:15:23 · 1051 阅读 · 0 评论 -
linux c/c++程序是否都是从main函数开始?
请抛弃思维定势以下为《程序员自我修养》片断,共勉原创 2013-11-28 19:18:22 · 1958 阅读 · 0 评论 -
到底什么是inode?
到底什么是inode呢 ? 这个和我们程序开发到底有多大的关系?首先,必须共识的两点: 1,数据是存放在磁盘中; 2,对于存放位置与其它对应的描述信息亦放在磁盘中; (1,2会在不同的区域)其次,既然是存在磁盘中,我们常说按块存取,这个块是怎么来的呢,大小又是多大? 其实按块存取目的就是尽量多读数据,比如你一个扇区一个扇区的读效率要低些(要多次进行磁盘i/o)所以一次要多读几个扇区原创 2013-11-27 17:37:40 · 1458 阅读 · 0 评论 -
c/c++ 简单的解析ini配置文件程序
现在基本使用gflags,所以不怎么使用这个读取ini对应的程序或库了,由于ini一般比较方便,所以程序中涉及到的配置文件一般都用conf.ini 针对ini的解析网上也有很多,其实只要你会写程序,完全可以自己定制一个(如果你认为有必要的话,不过我建议不要重复造轮子的好)下面这个是本地编译可用的一个例子,是不是不是那么麻烦?conf.ini[s1]原创 2013-11-08 15:49:49 · 1575 阅读 · 0 评论