先来看一个非常普通的收发
服务端
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <assert.h>
int main() {
int listen_fd = socket(AF_INET, SOCK_DGRAM, …… 阅读全文
对 c++ unordered_map 源码的解析
主要尝试回答下面几个问题:
一般情况下,使用 hash 结构,需要有桶的概念,那么 unordered_map 是如何自动管理桶的,这个问题其实再细分的话是这样的:
初始的桶是如何设置的
当需要扩容的时候,是如何重新分布的
对于 string,unordered_map 的默认哈希函数是怎样的
代码位于 /usr/include/c++/4.1.2/tr1/,编译…… 阅读全文
ctime 可重入问题引起的死锁
遇到一个死锁,堆栈类似如下
#0 0x00002b6b7d16cc38 in __lll_mutex_lock_wait () from /lib64/libc.so.6
#1 0x00002b6b7d126a9d in _L_lock_1769 () from /lib64/libc.so.6
#2 0x00002b6b7d126876 in __tz_convert () from /lib64/libc.so.6
搜了一下,发现之前有人已经讨论过这个问题了,在这里,http://lists.gnu.o…… 阅读全文
wordpress 编辑器自动插入链接
在写东西的时候,经常需要引用外部链接,一般这个时候都需要点开 WordPress 的编辑器的超链接按钮,去把贴进来的 URL 文本变成超链接,这个事情干多了就觉得繁琐,于是开始找工具,想要的效果是贴进来链接自动变成超链接。
还不好找,最后找到这里,https://wordpress.org/plugins/…,WordPress 本身用的是 tinymc…… 阅读全文
从协议栈的物理层再往下走,去芯片的世界看看
平时都在说,高通骁龙 MTK 之类的,而这些其实到底是怎么回事呢?
骁龙是高通的一套 SoC(什么是 SoC,http://en.wikipedia.org/wiki/S…),从 200 的低端,http://www.qualcomm.cn/snapdra…,到 800 的高端都有,http://www.qualcomm.cn/snapdra…。
在手机芯片上,除了骁龙和 MTK 的解决方案,还有苹…… 阅读全文
Linux 分页的一份 pdf
近来在看 linux 的一些分页相关的说明资料,在这里,http://www.kerneltravel.net/ch…,最后有一节,Linux 系统地址映射举例,通过实例的方式介绍了分页的一些实现,记下备忘。
阅读全文
chrome 扩展开发二三事
chrome 扩展可以通过 chrome.webRequest.onBeforeSendHeaders 回调来修改请求头,修改请求头部字段会在 TCP 连接发起之后,也就是这个时候 URL 已经是不能变的,这个接口也可以修改 URL,会导致一次重定向,不过貌似重定向之后携带的 cookie 会有些异常,没有细跟
那么,自然的,会想到一个问题,怎么获取请求的响应呢…… 阅读全文
jQuery 动画二三事
对 table 的动画容易引起诡异的效果,参看,http://stackoverflow.com/quest…
对 slide 的动画可能出现跳跃,参看,http://stackoverflow.com/quest…
阅读全文
python 使用 google protocol buffer
在公司内网使用 python 需要依赖于第三方模块的时候真是各种不方便,这个时候就无比的怀念 c 系列的 tar.gz 源码包自行编译的好处了,其实根本的矛盾在于公司内网处于安全考虑对外网的访问有各种隔离,而 python 这个东西在第三方模块的管理上又十分的依赖于 setuptool 和 easy_install,这些东西在给人用的想当然的觉得…… 阅读全文
Python 脚本依赖 glob 从命令行获取通配符文件名
在写一个 py 脚本的时候,需要从命令行里面带参数进来,指明需要处理的文件名,这个地方,希望支持 shell 那种 * 的通配符,查了一下,有相关的库,看这里,https://docs.python.org/2/libr…
但是,按照这种搞法,跑起来之后发现不行,glob.glob(sys.argv[2]) 总是只返回一个文件名,查了一下,看到这里,http://s…… 阅读全文