活用git rebase -i 就可以解决绝大部分补丁整理的问题。
假如我们有以下补丁:
=========
commit 03bb9a14f5ea00d51d2edc14587b37b1ab9ccf5d
Author: YongHao Hu christopherwuy@gmail.com
Date: Fri Jul 10 17:23:02 2015 +0800
msvcp110: Add tr2_sys__Unlink implementation and test.
commit 24137cd93c783ced61ca152cb4384287e6859ba4
Author: YongHao
继续阅读 »
Hard Links, Junction Points and Symbolic Links都是windows系统的链接机制,链接文件,目录或者盘。
Hard Link
通常,一个hard link代表另一个文件(源文件),相当于它的复制品,但又不会复制这个文件。NTFS格式的硬盘都存储所有文件的属性和内容到inode上,还存储了一个ID,文件名指向那个inode。而hard link就是让文件名指向那个inode来达到不重复文件内容却等价。所以所有文件至少有一个hard link(文件本身就算是hard link),文件的属性里还有一个计数器,来记录有多少hard link链接到它那里,假如为0,系统则删除这个文件,ino
继续阅读 »
按照网上教程装了Nginx后,发现网站根目录非常不符合Rule of Least Surprise,过了没一会,就忘记了目录所在。
在网上查找时,发现别人的根目录跟我的根本不一样。只好自己去找目录所在。使用nginx -V,
$nginx -V
nginx version: nginx/1.4.6 (Ubuntu)
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
TLS SNI support enabled
configure arguments: --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wf
继续阅读 »
先摆干货,总结:static函数的作用是在链接层面上的。
之所以研究static函数是因为Wine里面很多helper函数都是在.h文件里声明为static, 其作用就是避免命名冲突。
1.
正如很多C语言书籍里都有提到:
函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
定义静态函数的好处:
<1> 其他文件中可以定义相同名字的函数,不会发生冲突
<2> 静态函数不能被其他文件所用。
继续阅读 »
QNAN wiki上是这样说的:
A QNaN is a NaN with the most significant fraction bit set. QNaN’s propagate freely through most arithmetic operations. These values pop out of an operation when the result is not mathematically defined. (details)[http://en.wikipedia.org/wiki/NaN]
我尝试过sqrt(-1), 1/0, NAN/NAN都不行
结果:
继续阅读 »
亲爱的程序猿们,你们肯定都用过printf吧?你们知道,看起来理所当然的简单的printf,实际上是个难倒众多计算机科学家的难题吗?直到1971年,才有我们的毒师Mr.White科学家(Jon White)解决这个问题,直到1990年,我们的Mr.White才正式发表这算法的最终版本,Dragon4,
在随后到最近的几十年来,语言上的各种浮点数打印字符串都是用Dragon4算法,其他人的研究都只是对这个算法修修补补,直到Grisu算法的出现。Grisu算法由Florian Loitsch发表,64位的浮点数可以用它表示,但是有0.6%的依然要用Dragon4算法来表示。
因此,要是想做轮子,无论如何都要懂Dragon4算法!!!
继续阅读 »
最近看见辣条的时候,想起以前小时候传言辣条是用尸油来做的。想当年,为了抵消学习的无趣,我可是每天都吃辣条解闷的。可是听到那传言后,看着辣条里那红彤彤的油还有辣条包装纸上那经典的周老板的诡异的大头像,我马上就产生一种深深的恐惧,再也不吃辣条了。小时候吃那么多辣条导致我现在这么丑,幸亏这不是坏事,没有让我更丑。XD
但是,根据YongHao Hu定律,一件流传甚广让你震惊不已的事往往都是假的。为什么是定律而不是定理?因为定律是为事实所证明但还无法证实而定理是已经被证明正确的。 该定律由YongHao Hu(Christopher)提出,主要内容如上。举一些具体实例,可乐会杀精,指甲上月牙是健康“晴雨表”,,
少
继续阅读 »
因为要修复Wine的Bug,需要重新实现sprintf,
于是我研究了wine中printf跟sprinf的实现。
其实printf跟sprintf实现的关键无非就是可变参数,利用此就可以写出一个功能简单的printf.
我仔细研究了一下Wine里面的实现,发现printf跟sprintf的实现核心都用到了pfprintfa(就是根据参数%f,%d等转换的函数),不过重定向不一样。
printf是用到了write_concole, sprintf是复制到buf里面~
实际上, printf这个我们常用的函数, 申请了内存, 用buf来存放输出的结果.
继续阅读 »
各位同学:
新年好,
我是洪谦,自封的 Google 开源代码夏令营助教。
两年前,我写了《做一名开源社区的扫地僧(上)》,记录了我在开源社区中打怪升级的经历和收获,以5000美金奖金为诱饵,怂恿在校的朋友参加 Google代码夏令营。说来惭愧,这篇文章冗长罗嗦,可恰是这篇文章让我认识了这么多开源社区的朋友,有的朋友见面就问我《扫地僧(下)》什么时候问世,我总是一拖再拖,不好意思又跳票了。
这次新作拙文请大家评阅,一方面是再度为 Google Summer of Code 做免费宣传,另一方面其实是抱着私心,诚恳地希望找到志同道合的朋友加入 Wine 项目。
文章一如既往的冗长罗嗦,一如既往的只限学生阅读 :)
Goog
继续阅读 »
这个是回答知乎上的提问
既然这样问,就默认你已经大致明白KMP的原理吧。
举个通俗的例子解释KMP算法中NEXT[J]:
继续阅读 »