Tuesday, October 30, 2007

Fuck off,mfc!

Because of my manager want to sign a contract with me which will work for company for 1 year.I was directed tell him "no".Why?It mean that I have to work with mfc if I agree with contract.Finally,I was quit today.Great!It's time to say goodbye to Microsoft Development.Im looking for a new job about Linux Development.Im fed up with that MSDN always told me that what is seem like but not what is it when I tried to know a implement of function.

Some friends of mine warning are below:
1,hey,Shawn.You're just a newbie programmer.You should stay right there for 1 more year.
2,wow,Shawn.Good job is not easy to get.
etc........

God is my friend.I have nothing to worry about.I will busting my ass to fight with Free Software just for Glory to God.LOrd,it's worthy to praise you whatever situation we got.

BTW:I have hang out a little id player who name is Kaio.I have seen some pure game mind by him like myself before.It's awesome!b2L9 invited LOrd Jesus into his life last month.Praise the Lord!!!

辞职了,感觉很爽,今年第一次有越狱成功的感觉,2007年让Shawn更加看清楚上帝为Shawn所预备的路,路途艰险,敌人很强大,但是创造敌人乃至世界的那位上帝愿意与Shawn同在,Shawn会怎么选择?Shawn绝对不会顺从这个世界.感谢J. R. R. Tolkien写了那部The Silmarillion,让Shawn明白了很多圣经的隐喻,感谢主医治Sara,感谢主在老刘和Jeff身上做工,感谢主老板很理解Shawn的选择....
最近发现太多的事情可以感恩,好像都不是Shawn的风格了.但最近发生的N多事情除了让Shawn赞美上帝Shawn还能做什么,最后感谢可爱的老婆和Esther给Shawn当煮面和煮饺子的技术支持.

PS:Shawn应该学习点基本的做食物东东.

Friday, October 19, 2007

It's time to say "goodbye" to SourceInsight

一直以来阅读kernel code都在用SourceInsight,本来是打算等au0Z把lxr搞出来再用的,但这家伙一拖再拖Shawn有点郁闷了,搞动漫搞成这样Shawn服了.....今天看到一位网友的blog上面提到用vim+ctags+taglist组合可以替代sourceInsight,就索性试试,结果的确很爽,linux下的东东的确很棒,sourceInsight是Shawn近半年来在windows下唯一用的和开发相关的工具,而且大多时候是为了研究linux kernel,这里有介绍如何使用ctags.

终于可以不用SourceInsight盗版了.


PS:这张图片是为老婆发的,嘿嘿 最近样子很颓废...........

Saturday, October 13, 2007

Great music!

Some beautiful songs from friend that You can download here.This ablum writen by Jared when he travelling around the world.From Africa-Jerusalem-JiuZhaiGou-Xiamen-HongKong-Mexico and USA.

One of my friend acceptted L0rd Jesus yesterday night!Thanks au0Z bring him here.

PS:经过了30多分钟的compile终于chicken可以运行,又是一个好东东,很久没在电锯在线用电脑了,感觉不错,毕竟有一帮兄弟啊.很遗憾的是老婆要做功课所以不能和Shawn恶心了,只能来blog放放屁.今天在路上碰到了N久没见的Mr.Yang.Yang是Shawn的程式设计启蒙老师,当时Yang在读硕士,教了Shawn很基础的C语言,感谢主把Yang放到Shawn身边.Yang现在正在读Phd,May God bless all of my friends!

Sunday, October 07, 2007

"wo ai ni" and heartBeat++

"我愛你"Evin said to me.Great!I felt my heart beat violently.

80e2d7c18ea4afb1f5ef0ab0130df9e4
&&
d3b9d6cbcf48e3a1592abcebf76e5605
=
c9122fd7bae0681b62a39ddfc1c7fb19

Friday, October 05, 2007

越来越爱老婆了...

7天的vacation本来安排做N多事情,学习bible,math,SICP和arm.结果每天和老婆恶心就占据大部分时间 发现Shawn越来越爱老婆了 老婆也越来越可爱了 赞美她的口水如滔滔江水XX不决XX不断 回来几天每天都是牛肉太爽了 看来Shawn一天N餐吃牛肉都没问题的~也见了一些朋友,大多朋友现在对金钱的追求就如圣经所说---失去了自由!

最近发现了个好东东:Pansystem.或许这东西结合derrida的destruction of creativity text真的可以帮助Shawn找到Bible的平衡点,求主赐予Shawn智慧.

这是最近唯一能引起Shawn视觉兴奋的东东,vim是很强大,居然N多plugin都是脚本实现的,linux下的东西的确爽惨了!

这个parody把Shawn看的苦笑不得(Shawn:看来学会成语了)

PS:看了老妹的blog觉得这小东西长大了 呵呵 快成小艺术家了.......

Thursday, October 04, 2007

hacks the data structure of kernel

#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
I was wondering above when I found list.h with kernel 2.4.Thank JeFF's help that kick confusion shit of macro out of my brain.Probaly you can look at code shit that was below.

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

struct list_head;
struct pci_bus;

#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
/* (struct pci_bus *)((char*)pb2-(unsigned long)(&((struct pci_bus*)0)->next-bus)) ) */
#define pci_bus_b(n) list_entry(n, struct pci_bus, next_bus)

struct list_head {
struct list_head *next, *prev;
};

struct pci_bus
{
int a;
int b;
int c;
int bus_num;
struct list_head next_bus;
};

void main()
{
struct pci_bus a;
struct pci_bus b;

memset(&a, 0, sizeof(a));
memset(&b, 0, sizeof(b));
a.a=1;
a.b=2;
a.c=3;
a.bus_num=4;

b.a=10;
b.b=11;
b.c=12;
b.bus_num = 13;

a.next_bus.next = &(b.next_bus);
b.next_bus.prev = &(a.next_bus);

struct list_head *pb = a.next_bus.next;
struct pci_bus *p_busb = pci_bus_b(pb);
printf("bus num = %d\n", p_busb->bus_num);
printf("addr = %s\n",pb);

struct list_head *pb2 = a.next_bus.next;
struct pci_bus *p_busb2 = (struct pci_bus *)((char*)pb2 );
printf(" -2- bus2 num = %d\n", p_busb2->bus_num);

}