摘要:
关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题)。在有时候我们去爬取网页或者调用一些第三方库获取文本的时候,有可能会出现这样一种情况:1 invalid_str = u"\xbd\xf4\xb4\xd5\xd0\xcd\xb3\xb5"在一个unicode对象里内容居然是GBK的编码!这时候无论你怎么encode或decode,要么是抛错,要么是乱码。实际上这种情况不应该出现的,在Python3里这种情况是不合法的会抛错。但Python2容许了其存在,就造成了很多问题。解决办法很简单, 阅读全文
摘要:
前言:开始用maven管理java项目后,突然发现自己写了一些通用的项目想要被别的项目依赖是件很麻烦的事。公司里项目依赖可以直接有maven仓库,但个人项目呢?github 再次显示其威力了,example:https://github.com/Lhfcws/mvn-repo/网上找了很多博客教程,... 阅读全文
摘要:
Gson是Google开发的Java比较好用的 Json工具。使用挺简单,假设有个类:1 class Runner {2 int attr;3 String name;4 public Runner(int attr, String name) {5 this.attr = attr;6 this.name = name; 7 }8 }Object -> JSON (关键 line 3):1 Gson gson = new Gson();2 Runner runner = new Runner(3, "lhfcw... 阅读全文
摘要:
Coreseek 中文官网:http://www.coreseek.cn/Sphinx0.9.9 中文手册:http://www.coreseek.cn/docs/coreseek_3.2-sphinx_0.9.9.html1. 简介Coreseek 是一款中文全文检索/搜索软件,其核心是基于Sphinx。更多的人可能是听过Apache的Lucene,两者的对比就不在此赘述了。Lucene和Sphinx的对比参考:http://sg552.iteye.com/blog/15608342. 下载官网下载:http://www.coreseek.cn/products/ft_down/wget h 阅读全文
摘要:
1. What's signal信号是软件中断,提供了一种处理异步事件的方法。(见《Unix环境高级编程》)一般使用时需包含 signal.h 库。每个信号命名由SIG开头,实际值为正整数。(不存在编号为0的信号,0有特殊用途)具体信号列表卡参见《Unix环境高级编程》 或者2. signal 函数信号机制最基础的接口是signal函数,声明如下:1 // Original Definition2 void ( *signal(int signum, void (*handler)(int)) ) (int);3 4 // Readable Definition5 typedef vo 阅读全文
摘要:
转自:http://blog.csdn.net/muge0913/article/details/7322710信号及其简介信号是一种进程通信的方法,他应用于异步事件的处理。信号的实现是一种软中断。它被发送为一个正在运行的进程,已告知进程某个事件发生了。SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出,通常是在终端的控制进程结束时, 通知同一session内的各个作业,这时它们与控制终端不再关联SIGINT程序终止(interrupt)信号,通常是从终端发出中断指令如ctrl+c或delete键SIGQUIT和SIGINT类似,但由QUIT字符(通常是Ctrl+\)来控制.进程在因 阅读全文
摘要:
前言:传统的互联网广告一般都是大流量网站在页面中留出一定空位,某些推广商家通过买位的方式来展示自己的广告。我们这里引入一个案例:假设大访问量网站为博客园,想要广告推广的公司为阿里云平台。 (场景为虚构,请勿对号入座)博客园首页每天很多人访问,那么阿里云想要推广就会租下其首页右侧栏的某些矩形空位,在这有限的空位中通过插入JS或swf来进行广告展示。当然这个广告是有期限的。这样的广告对于推广公司来讲,效果一般不是很好。这种传统的广告最常见的优化规则就是去找相同行业的网站投放自己的广告,比如博客园这样的程序员博客网站就会吸引阿里云这样的云平台公司或一些IT技能培训公司的青睐。但实际上程序员也是很多样 阅读全文
摘要:
不支持markdown,桑心。更好的阅读体验请看:Github/Bigtable.mdPaper: Google Bigtable paperNotes author: Lhfcws WuTime: 2013-07-24 Preface:仅为个人阅读心得,按照原论文Section顺序写的笔记。原论文Sections: (本笔记主要关于粗体的章节,即原理部分)1 Introduction2 数据模型(行,列族,时间戳)3 API支持简述4 Bigtable构建(文件格式SSTable,所依赖的一些框架服务)5 Bigtable的基础实现(Tablet定位,分配,服务和memtable压缩)6 . 阅读全文
摘要:
在linux内核源码或一些比较成熟的c语言架构源码中,我们常会见到类似下面的代码:1 if (unlikely(!packet)) {2 return res_failed; 3 }4 5 // OR6 7 if (likely(packet->type = HTTP)) {8 do_something();9 }有的地方可能会用大写,LIKELY() / UNLIKELY(),意思一样。然后我们看一下unlikely和likely的定义,大部分都是类似如下的宏定义:1 #define likely(x) __builtin_expect(!!(x), 1) 2 #d... 阅读全文
摘要:
原书很多已经写的很清楚很精炼了,我也无谓做无意义的搬运,仅把一些基础和一些我自己以前容易搞混的地方写一下。1. 意义: 指针:指针也是一种类型,长度为4字节,其存放的内容只能是一个地址(4字节)。比如char* ptr;ptr指向一个地址,而这个地址理想的情况下存放着一个char型数据,特殊情况下也可能会指向NULL,甚至变成野指针。数组:数组代表的是一段连续的内存地址,而并非指针那样代表的只是一个地址。一般数组会有名字,比如char a[100] ;即把一段长度为100个sizeof(char)的地址段命名为a。数组也可能是匿名的,比如数组指针char (*p)[10];这里的数组没有名字, 阅读全文