Not That Simple

Be the change you want to see in the world

What the HELL is MEMORY MODEL

这个标题看上去像是我能回答这个问题似的,事实上,我不能,我离回答这个问题差了十万八千里。这篇文章只是总结一下我目前所看到的资料以及自己理解的内容,完全不保证准确性。 乱序执行 程序在执行时并不会按照源代码中所写的顺序执行,有好几种因素会导致实际执行顺序与我们所写的不同: 编译器进行了代码重排; CPU在执行时会进行指令重排(为了优化流水线、分支预测等等); 缓存一致性协议...

安利几个App

好久没有更新过博客了,因为没有记录事情的习惯,好多时候解决了一个问题,想写下来分享,但是想想又没多少人看,也就罢了。不过自从被国飞顾逼着看论文以来,我发现不做笔记是不行了,不然看完下一篇忘了前一篇,根本抓不住重点。正好最近换了iPhone,为了提高效率找了不少App来用,在此推荐推荐,顺便再讲讲去年双十一时候买的NAS。 NAS 先讲NAS。很早以前因为硬盘不够用,再加上用台式机共享电影...

网站已启用HTTPS和SPDY

使用HTTPS应该是大势所趋了,今后所有的网站都应该采用HTTPS加密连接来保证安全性和隐私。 Google的所有站点都已经全面启用了HTTPS,根据Google自己的说法,采用HTTPS带来的开销非常小。不过实际使用中,HTTPS的握手过程带来的延迟还是能明显感受到的,尤其是使用HTTP/1.1时通常要建立数条与服务器的连接,每条都要经过HTTPS握手过程。 Google开发的SPDY...

正则表达式学习总结

之前我对于正则表达式的了解大多数来自零零散散的碎片知识,经常是在要用到一些正则表达式的时候,忘记怎么写了,就到这个网页上查一下。上次帮dhl解决一个从HTML中抓取http://xxx.jpg格式字符串的问题时,在饱受挫折之后,我下定决心好好看一下正则表达式,乘双十一买了一本《精通正则表达式》,目前看了五章,所以有了这篇小结。 正则表达式模式 把这个部分放到第一个讲是因为很多情况下不同模式...

使用tun/tap将数据包导入协议栈

我原本以为寝室的电脑ping不通实验室的电脑是因为之间隔了一层NAT的关系,昨天听吴博说了才知道原来没有NAT,而是防火墙的关系。防火墙应该是丢弃了ICMP包和所有入站的TCP SYN包,所以外面的电脑无法通过TCP直接连接实验室电脑。跟吴博一番讨论后,萌发了尝试突破寝室电脑无法TCP连接到实验室电脑的限制。 大致上的思路是通过某种渠道将TCP SYN数据包发到实验室电脑上,然后将数据包导...

Windows下编译Wireshark

手头的项目用到了IP首部的Option字段,而且自定义了一个type,正常情况下Wireshark会显示为Unknown,为了演示的时候效果更好一些,我添加了一些代码让Wireshark支持自定义的Option类型,因为这不是单独的协议,不能用Lua等扩展,所以必须重新编译Wireshark,Linux下的编译非常简单,Windows下要繁琐的多,所以就有了这篇文章。 参考资料 最主要的参...

autotools折腾记

又到了痛并快乐着的折腾时间,这次折腾的对象是autotools。话说很早以前我非常崇拜各种开源代码中的configure和makefile,当初傻傻地以为这都是做项目的人自己写出来的,对开源社区里的人各种膜拜啊,尼玛我看都看不懂不要说写了。后来才知道有autoconf这么个玩意可以自动生成这些脚本,自己当然也要写,但是没有那么夸张了。 但是这玩意学习成本真心不低啊,首先是中文资料少,我英语...

交叉编译ARM Native GCC

目标 前阵子学会了用ip tunnel建立隧道来让没有原生IPv6的电脑用上IPv6,心里痒痒想在家里也提前用上IPv6,于是狠下心买了心仪已久的R6300v2,配上ddwrt,顺利用上了IPv6。 R6300v2配备了BCM4708,ARM cortex-a9双核800Mhz,最新的ddwrt的内核版本是3.10.25,可以说非常新了,于是就想能不能在路由器上面跑GCC,编译程序。在网...

安家落户

以前刚玩VPS的时候做过一个blog,但是没写几篇文章就被我荒废了。博客还是比较适合发技术文章吧,要是发心情文章又有谁回来看,但我每次折腾完一个东西后都感觉很累,真的是折腾,总是遇到莫名其妙的问题,然后也就不高兴写文章了,所以这个博客能坚持多久,我也不知道。当然,也是受到了wjx的影响,这货最近写博客写的很起劲,搞得有声有色的,链接在此,所以弄得我也想搞了。 就说弄这个博客吧,折腾了整整一...