转型?

又好久没有“博”一下了。
在此期间去了一趟北京,参加了微软亚洲研究院举办的Windows Embedded培训。这次培训名字叫TTT,似乎是”Train The Teacher”的意思。理论上,培训完了之后,我就是全仅有的几个Windows CE 5.0和Windows XP Embedded的讲师了,而且还有资格培训微软认证的讲师。微软把这次培训称作是“黄埔军校”,打算在全国培训几个人,然后靠着几个人再培训微软认证的讲师,然后讲师再培训微软认证的学生。
培训完了回来以后又参加了两个Windows CE的认证考试,轻松的拿到了红带认证(黑带“大拿”的link没找到)。
紧接着就开始了噩梦般的一周:
周一:早上赶去嘉定,晚上在软院上课。宿嘉定
周二:早上7点往本部赶,10点到了电信学院,参加挑战杯下一轮的会议。周二下午,赶往沪东,上课。下课后通过了Windows CE绿带考试,然后立即赶往嘉定,晚上察看学生的项目答辩,并通过了红带考试。宿嘉定 …

more ...

积极的面对生活

今天把MSN Messenger的签名改成了“积极的面对生活”。

最近和将来得很长一段时间内,我都会以四种身份活着:电信学院的研究生,软件学院的准老师,软件工程中心的民工,还有GF的BF。这四种身份就是四个Processes,我就是那个CPU资源,生活就是不断的context switch。谈到context switch,调度算法当然最重要,有传统的时间片轮转算法……(旁白:他又犯职业病了)

我呢,决定采用的是比较流行的“基于优先级的抢占式多任务”调度。好处就不用说了,这个调度算法是经过工程实践检验的可靠有效算法,被广泛应用于商业和开源操作系统。那么还有一个问题,优先级怎么判断。四个Processes如何排序。我的判断依据很简单,如果有一天我这个不幸CPU烧坏报废,对哪个Process的影响最大呢?这样一来,四个Processes的优先级就一目了然了。

闲扯到此为止。最近实在是有好多工作再等着我做,而且有好些都是不可以找别人替代的。检讨了一下以前的生活策略,觉得自己一直忙忙碌碌的一个很大原因是生活态度不积极,不主动,很多事情能往后拖就拖。所以导致了很多事情都没有办好。以后打算给自己体下面几个希望:

积极的与别人沟通
积极的干好手头上的每一件事情,事情是干一件就少一件的
积极的珍惜时间

最近已经感觉工作生活学习都有些起色了,希望能越来越好。

今天收到万老师的通知 …

more ...


'小心IT界杀手——过劳死 [转]'

我的blog从来都没有转过贴,一直坚持走原创路线,这篇文章是第一篇,也算对自己有个警示。每次深夜在MSN上都会看到很多熟悉的ID online或者busy,同学朋友们,别让自己太紧张了,早休息吧。

2005了,希望在2005年里,我能有一个健康的身体。
  一直以来,加班对于IT人来说很正常,常认为自己年轻,还可以拼上几年,但是现在问题来了…..

下面是厂商的工程师转发给我的信,对于信中内容,我宁愿信其有,希望看到的朋友能相互转发一下。爱惜我们的身体,从现在做起.

沉重的话题: 一个97级的名校高才生,毕业后进微软的,上月死了,只不过25岁的黄金年龄,珍视自己的生命吧,大家。对自己好一点。

早一点睡,这件事是真的,因为一个朋友就在联旭当设计,死掉的人都还是她熟悉的同事。

她同事死前每天加班到早上六点才回家,睡到中午又回公司继续上班,连续五天最后一天睡一睡就没醒过来了,死前都很健康无任何心脏方面的疾病。其实这已经是她们公司第三个过劳死的了,希望大家能随时注意自己的身体状况。

对了,今天听到一个悲伤的消息。广告界的好青年,又挂了一人了。此人是联旭的,是业务还是设计我也搞不清楚,来过我们公司几次。前几天在连续加班后的某晚, 回家睡觉后第二天就叫不醒 …

more ...

闲逛收获:Terrarium和免费asp.net空间

习惯于在网上闲逛,偶尔还能有些小收获。今天有两个比较值得一提的东西。
第一个是MS开发的一个程序员游戏Terrarium,这个玩意其实早就知道了,跟java的robocode(不知道是不是叫这个名字)差不多,不过一个是机器人(?)一个是动植物。都是Coding来操纵动植物的行为,然后Coding的越好,动物就越凶猛越强。今天终于把Terrarium的客户端下载到机器上,装了一下,然后又用vs.net写了一个动物一个植物(都是sample code),还真把这个东西跑起来了。看着那几个蜘蛛有模有样的吃草,还真有点感觉。
第二个收获,居然发现了一个免费的asp.net空间(::URL::/
* File : src\makeimg\makeimg.c
* Purpose : This tools is used to make a runable image on bochs virtual disk
* Date : 2004.8.13
*
/

#include
#include
#include

void die(char * str)
{
fprintf(stderr,“%s\n”,str);
exit(1);
}

void usage(void)
{
die(“Usage: build bootsect setup system [rootdev] [> image]”);
}

int main …

more ...

SSCLI下的可执行文件格式分析(完结篇)

CustomAttribute表描述了该Assembly中的自定义属性,包含要实例化一个自定义属性所需要的所有信息。这个表有以下域构成,Parent是个HasCustomAttribute类型的Coded Token,Type是个CustomAttributeType类型的Coded Token;Value是个指向#Blob流的索引。一个CustomAttribute有6个Byte。
本例中有一个CustomAttribute,2E 00/0B 00/39 00。

StandAloneSig表只有一个指向#Blob流的Signature。2个Byte。对大多数使用signature的情况,如Field.Signature, Method.Signature等等Signature是指向保存在Blob流的一个signature数据块。而对于一些特殊情况,Blob中保存的Signature数据可能不被任意一个结构元素所引用,例如IL指令集中calli指令(间接函数调用指令,使用函数指针而非指向方法的Token调用,往往用于调用Native方法)需要一个Signature描述其调用的函数指针的类型。此时就需要一个StandAloneSig表项,指向这个孤儿signature。
本例中有两个StandAloneSig,值为:2A 00 34 00。

PropertyMap表是一个映射表,负责把PropertyDef中定义的属性映射到其归属的TypeDef表定义的类型中,这样就可以将属性的归属信息从类型和属性的定义中完全抽象出来。它有如下字段:2个Byte的指向TypeDef索引的Parent;2个Byte的指向Property表的 PropertyList;因此一个PropertyMap有4个Byte。
本例中有一个PropertyMap,值为 …

more ...

SSCLI下的可执行文件格式分析(续集)

闲来无事了,接着写吧。
上回书说到,一个Assembly的MetaData里面大概会有40多种表,然后我们根据一个例子分析了SSCLI下的PE文件的结构和MetaData其中的两种表Module和TypeRef。这次我们依然结合上次的例子,把剩余的几张元数据表分析完。
剩余还有12种元数据表,分别是TypeDef,Field,Method,Param,MemberRef,CustomAttribute,StandAloneSig,PropertyMap,Property,MethodSemantic,Assembly和AssemblyRef。像上面一样,我们首先看表类型的定义,在clr\src\md\runtime\metamodelcolumndefs.h中。

//——————————————————————&#8212 …
more ...

Wallop和Gmail邀请

经常在别人的blog上看到发放Gmail和Wallop的邀请。我也玩玩,顺便提升一下Blog的人气。
Gmail邀请50个,Wallop邀请3个,留言就给了阿。

more ...

SSCLI下的可执行文件格式分析(2)

下面,我们就开始分析激动人心的MetaData了。
首先,是在IMAGE_COR20_HEADER中根据名为MetaData的IMAGE_DATA_DIRECTORY项查找MetaData表的位置,计算方法跟上文提到的找COM Headerä½ç½®ç …

more ...