2005年05月18日

dodo特别牛,Web标准化设计和CSS方面的运用真是炉火纯青,真诚感谢dodo无私提供blog模板CSS样式!

微软官方2005-5-6正式发布了 SQL Server 2000 Service Pack 4 (SP4),这也是官方
SQL Server 2000产品发布的第一个支持64位的软件包。该平台支持Windows Server 2003 x64 Edition,允许
32位SQL Server 2000的应用通过Windows emulator (WOW64)在64位平台上运行。同时,SP4还修正了
SQL Server 2000自正式发布以来的一些特别点。

    官方表示:SP4 是一个累积性的服务包,包含
Service Pack 发布以来所有的修补程序,包括:SP1、SP2、SP3、SP3a。SP4可以运行在SQL Server 2000原始版本
或是在已经安装了SP1、SP2、SP3、SP3a其中的任何一个版本上运行。

    SP4中包含2003年7月发布的安全补丁MS03-031。

    SP4 包括用于以下 SQL Server 2000 组件的程序包:
    Database 组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)
    更新 SQL Server 2000 的 32 位 Database 组件,包括数据库引擎、复制、客户端连接组件及工具。

    Analysis Services 组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)
    更新 SQL Server 2000 的 32 位 Analysis Services。

    SQL Server 2000 Desktop Engine (MSDE) 组件(下载文件:SQL2000.MSDE-KB884525-SP4-x86.EXE)
    对于 SQL Server 2000 的 32 位 MSDE 组件:
    安装新的 MSDE 实例
    升级现有 MSDE 实例
    更新使用合并模块的应用程序

    系统要求
    
支持的操作系统: Windows 2000 Advanced Server,
 Windows 2000 Professional Edition , Windows 2000 Server, Windows Server 2003, Datacenter x64 Edition, Windows Server 2003, Enterprise x64 Edition, Windows Server 2003, Standard x64 Edition, Windows Small Business Server 2003 , Windows XP Home Edition , Windows XP Media Center Edition, Windows XP Professional Edition

    带有 Intel 或兼容的 Pentium 166 MHz 或更快处理器的 PC

    最少 64 MB RAM (建议 128 MB 或更大)

    全新的 MSDE 安装要求 100 MB 可用硬盘空间

    特别提醒:Windows NT 4.0、Windows Millennium Edition 和 Windows 98 平台不支持 SQL Server 2000 Service Pack 4。
SQL Server 2000 SP4官方中文简体版下载页面:
http://www.microsoft.com/downloads/details.aspx?FamilyId=8 … B7F0213F8BC5&displaylang=zh-cn

2005年04月06日

最近网络运气很好,拿到4个Wallop邀请,需要的话请去http://blog.googleserv.com留言索取!

2005年04月05日

50个Gmail的邀请,快快来抢!!!       

        Gmail ——这个极具争议的免费电子邮件服务,已经成为Internet上的紧俏货。很多网民为了获得一个Gmail账户愿意用各种物品进行交换——从肾脏到医学建议,有人甚至愿意为此付出150美元。虽然Gmail还处于测试阶段,虽然Google目前还没有打算向公众开放该服务,虽然一些关注隐私问题的人士对 Gmail使用机器人扫描电子邮件的做法表示抗议,依然阻挡不住广大网民对Gmail的热切渴求——1GB的邮箱容量远远超过了其它免费电子邮件服务。

  虽然广大网民对于Gmail有非常热切的需求,但是由于Gmail还处于测试阶段,Google并没有提供Gmail账户的申请功能,因此只有少数人拥有Gmail账户。好在每个Gmail账户均可邀请两名朋友加入,因此在互联网上应运而生了很多与Gmail相关的网站。加拿大一名 22岁的大学生最近制作了一个用于刊登Gmail账号需求的网站,网址是www.gmailswap.com。此外,在著名的交易网站eBay上,同样有不少人正在出售Gmail用户的邀请权。作为全世界最大的交易网站,eBay在这场Gmail账户争夺战中也扮演了相当重要的角色:截止到5月21日, eBay上已经出现了300个待售的Gmail账户,目前买家给出的最高价格为70美元/个。在这之前已经完成的Gmail账户拍卖交易中,很多账户的最终价格超过了150美元(约合1400元人民币!!)。

  Gmailswap.com网站的创始人,那名加拿大的大学生名叫 Sean Michaels,他是加拿大蒙特利尔McGill大学的一名社会科学系毕业生。他创建Gmailswap.com网站的目的是让那些希望获得Gmail 账户能够在这里发布自己的请求信息,用于交换Gmail用户的邀请权。在该网站正式运转后的短短一个星期的时间内,网站上就出现了上千条的请求信息。 Michaels认为之所以这么多人希望得到Gmail账户,主要是因为很多人被告知Gmail是一种紧俏的商品,而很多人都不希望失去一次获得紧俏商品的机会。在Michaels的论坛上,甚至有人贴出消息,愿意用自己的一个肾脏来交换一个Gmail账户。一位医学院的毕业生在网站上发布消息,愿意通过提供医疗顾问建议来换取Gmail账户。

  Michaels表示,正是为了抵制eBay上的那种赤裸裸的用金钱买卖Gmail账户的交易,他才发起了这个账户交换网站。这个善良的加拿大人相信,在这个世界上还是有“好人”的,而“好人就应该互相帮助”。他表示,当Google正式开放Gmail服务后,eBay上“丑陋的交易行为”就会终止,而他的网站也会寿终正寝。

  就好像MSN或者QQ中的聊天记录一般,这样用户可以按照不同的“谈话”主题浏览电子邮件,而且比传统的文件夹方式显得更加灵活方便。当用户查看一个“谈话”线索时,跟该线索有关的信件都会被搜集在一起。

  在整个页面的顶部,有一个Google经典的搜索框,此外还有写邮件、标等级、发送邮件、全部邮件、垃圾邮件以及垃圾箱等功能链接。在这里,还有一个标签区。遗憾的是没有发现自定义文件夹的功能——在Gmail测试版中,似乎尚未提供此类功能。作为补偿,Gmail提供了标签(Lables)功能,该功能用于对信息进行标记——就好比给一个邮件设置关键字。使用标签的好处是,你可以给一个邮件做多个标签,这样就可以方便地将你的所有邮件进行分类管理。当你选中一个邮件,并点击“档案”(Archive)链接,就可以将该邮件归档保存。

  Gmail提供的“谈话”功能的确是最大的亮点之一。使用“谈话”功能,你可以在一个页面里浏览到所有的往来电子邮件:最新的信件会被显示出来,跟该信件有关的其它邮件会层叠排列在其下方。你可以点击该“谈话”中的任意标题来浏览邮件的具体内容,也可以点击“扩展”(Expand all)来查看该“谈话”的全部内容。

  发送电子邮件时,经常会在邮件中附带一些文件,很多邮件服务提供商都对附件的个数进行了限制。当你需要在邮件中附带大量附件时,Gmail的优势就显示出来了:Gmail对于每个邮件所携带的附件数量没有任何限制,笔者在测试时在一封邮件里添加了10个附件。值得一提的是,Gmail还提供了拼写检查的功能,这样用户在撰写邮件时出错的机会就少多了。
 
<留下您的电子邮件地址即刻获取2G的Gmail账户。更多精彩尽在小新的天地>

2005年03月30日

  PE文件中呼叫另一模块中的函数的运行机制

要点:PE文件中,当呼叫另一模块中的函数,编译器产生的CALL指令并不会把控制权直接传给DLL中的函数,而是传给一个JMP
DWORD PTR[xxxxxxxx]
指令。

呼叫外部的DLLs,其实并不是直接呼叫DLL本身,而是跳到一块存放有JMP
DWORD PTR [XXXXXXXX]
指令的存储区域去(可能放在.text或是.icode)。不过若在VC++中使用__declspec(dllimport)进行函数呼叫,编译器不会在模块的其他地方产生JMP指令,而是直接就会产生CALL DWORD PTR[XXXXXXXX]。不论哪种情况,JMPCALL指令中的位址都存放在.idata节的一个DWORD
值中(这个DWORD内含该函数的真正位址,即函数入口点)。JMPCALL指令会把控制权转给该位址。.

一个PE文件呼叫imported function的图示( User32.dll中的GetMessage函数)

上述图示中的偏移地址BFC0847D才是真正指向User32.dll模块中的GetMessage()函数。

   为什么DLL的呼叫需要以此方式实现?

原因是把对同一个DLL函数的所有呼叫都集中到一处,加载器就不再需要修补每一个呼叫DLL的指令。PE加载器要做的,只是把DLL函数的真实位址放到.idata的那个DWORD之中,根本就没有程序码需要修改。(不象NE文件的每一个节段内含一串待修正记录fixup records)。PE文件这种处理方式的缺点:不能够以DLL函数的真正位址初始化一个变量,如:FARPROC pfnGetMessage=GetMessage ;

关于引入表中OrignalFirstThunkFirstThunk两值的作用?

系统在程序初始化时,根据OrignalFirstThunk的值找到函数名,然后调用GetProcAddress函数,根据函数名取得函数的入口地址,然后用函数入口地址取代FirstThunk指向的地址串中对应的值。有的程序OrignalFirstThunk的值为0,则初始化时系统根据FirstThunk的值找到指向函数名的地址串,由地址串找到函数名,再根据函数名得到入口地址,然后用入口地址取代FirstThunk指向的地址串中的原值。

根据这个说明可以看出,在添加新的引入函数的时候,真正重要的是FirstThunk处的值,OrignalFirstThunk填不填无关紧要,要填的话,就得填入一个真正有效的值,不然就使其为0

为什么由两个并行的指针数组指向IMAGE_IMPORT_BY_NAME结构呢?第一个Characteristics是单独的一项,而且不可改写,它有时被称为提示名表(Hint Name Table。第二个数组(FirstThunk所指)是由PE装入器重写的。装载程序迭代搜索数组中的每一个指针,找到每一个IMAGE_IMPORT_BY_NAME结构所指的输入函数的地址,然后装载器找到程序的地址改写IMAGE_IMPORT_BY_NAME指针。Jmp dword ptr [xxxxxxxx]中的[xxxxxxxx]是指First Thunk数组中的一个入口。因为它被称为输入地址表(Import Address Table


1DOS MZ header   (64(0×40)个字节,偏移0×00—0×3F)

这是一个常规的实模式下的DOS文件头,为的是保持和DOS的兼容。从编程角度看,DOS MZ header 又定义成结构IMAGE_DOS_HEADER 。查询windows.inc,我们知道
IMAGE_DOS_HEADER 结构的e_magic成员应包含字符“MZ,e_lfanew成员就是指向 PE header 的文件偏移量。

2, DOS
stub  
(一般为112(0×70)个字节,偏移0×40—0xAF,但不是一定的)

这是个DOS的代理程序块,具体内容根据链接参数决定,不过大多数是一个简单的显示语句,如:This
Program is intended to run under Windows System

3PE header  (4+20+224=248字节,其各成员可表示为e_lfanew+偏移量)

PE header PE相关结构 IMAGE_NT_HEADERS 的简称,其中包含了许多PE装载器用到的重要域。执行体在支持PE文件结构的操作系统中执行时,PE装载器将从 DOS MZ header 中找到 PE header 的起始偏移量(一般是0×3C处)。因而跳过了 DOS stub 直接定位到真正的文件头 PE header从编程角度看,PE header 实际就是一个 IMAGE_NT_HEADERS 结构。

定义如下:

          IMAGE_NT_HEADERS STRUCT

Signature
dd ?

FileHeader
IMAGE_FILE_HEADER <>

OptionalHeader
IMAGE_OPTIONAL_HEADER32 <>

        
IMAGE_NT_HEADERS ENDS

A.      
Signature是个DWORD类型的值,值为50h, 45h,
00h, 00h
PE\0\0)。它是PE签名。我们可以据此识别给定文件是否为有效PE文件。

注:如果IMAGE_NT_HEADERSsignature域值等于“PE\0\0″,那么就是有效的PE文件。实际上,为了比较方便,Microsoft已定义了常量IMAGE_NT_SIGNATURE供我们使用。

             IMAGE_DOS_SIGNATURE
equ 5A4Dh

IMAGE_OS2_SIGNATURE
equ 454Eh

IMAGE_OS2_SIGNATURE_LE
equ 454Ch

IMAGE_VXD_SIGNATURE
equ 454Ch

IMAGE_NT_SIGNATURE
equ 4550h

B.      
FileHeader 该结构域包含了关于PE文件物理分布的信息,比如节数目、文件执行机器等。

               
Typedef struct _IMAGE_FILE_HEADER{

USHORT Machine;

USHORT NumberOfSections;     //这个文件中的节的数目。

ULONG  TimeDateStamp;

ULONG  PointerToSymbolTable;

ULONG  NumberOfSymbols;

USHORT SizeOfOptionalHeader;

USHORT Characteristics;

                      }IMAGE_FILE_HEADER,
*PIMAGE_FILE_HEADER;

C.        
OptionalHeader 该结构域包含了关于PE文件逻辑分布的信息,虽然域名有可选字样,但实际上本结构总是存在的。

运用:

如何才能校验指定文件是否为一有效PE文件呢? 这个问题很难回答,完全取决于想要的精准程度。您可以检验PE文件格式里的各个数据结构,或者仅校验一些关键数据结构。大多数情况下,没有必要校验文件里的每一个数据结构,只要一些关键数据结构有效,我们就认为是有效的PE文件了。正如上述:如果IMAGE_NT_HEADERSsignature域值等于“PE\0\0″,那么就是有效的PE文件。

如何定位 PE header? 答案很简单: DOS MZ header 已经包含了指向 PE header 的文件偏移量。DOS MZ header 又定义成结构 IMAGE_DOS_HEADER 。查询windows.inc,我们知道 IMAGE_DOS_HEADER 结构的e_lfanew成员就是指向 PE header 的文件偏移量。

现将所有的步骤简单列出:

1.首先检验文件头部第一个字的值是否等于 IMAGE_DOS_SIGNATURE是则
DOS
MZ header
有效。

2.一旦证明文件的 DOS header 有效后,就可用e_lfanew来定位
PE
header
了。

3.比较 PE header 的第一个字的值是否等于 IMAGE_NT_HEADER。如果前后两个值都匹配,那我们就认为该文件是一个有效的PE文件。

这几天整理我的电脑,发现几篇旧笔记,差不多快三年多了,都打算删掉了。贴上后我就从电脑上删掉了,可能也确实没用了。
电子计算机简称计算机,俗称电脑.是一种能快速处理信息的电子设备.

                   电子计算机的发展概述

电子管时代(19461957

1946214,电子计算机埃尼阿克(ENIAC)的诞生,揭开了计算机时代的序幕。(研制目的:计算炮弹的轨迹。ENIAC意指“电子数字积分电脑”。它占地面积为170平方米,总重30吨。共用了18000多个电子管,运算速度为每秒5000次。)

1951614,第一台通用型电子计算机(UNIVAC)在美国人口普查署用于制作前一年人口普查图表,其主要元件是电子管。

晶体管时代(19581964

其主存储器采用磁芯,外部存储器开始采用磁带和磁盘。

集成电路时代(19651970

大规模集成电路时代(1971——目前)即微处理器时代

70年代微型计算机的出现,被人们称为电子计算机的第二次革命。这得益于19711115Intel公司对外正式公布了由特德-霍夫领导开发出的世界上第一个第一片微处理器4004型。19724月,Intel宣布微处理器8008制作成功;1974年其改进型微处理器8080正式投放市场。

1981812,这是一个在电脑史上值得大书特书的日子,IBM PC8088处理器)即横空出世,昭示着人类从此进入了个人电脑的新时代。

 

计算机的特点:

运算速度快、计算精确、自动化程度高、通用性强、可靠性高。

计算机的结构:硬件和软件

硬件:输入输出设备、存贮器、运算器、控制器等部件。

存贮器分为内存储器和外存储器。内存也称为主存。

控制器和运算器统称为中央处理器(CPU:Central Processing Unit)

中央处理器和内存储器称为计算机的主机。

软件:系统软件和应用软件

计算机网络的概述

19世纪是火车和铁路的时代,20世纪是汽车与高速公路的时代,21世纪是电脑网络的时代。Internet六十年代起源于美国,经过40年的发展,取得了极大的成功,尤其是近几年的爆发性发展,在全世界范围内刮起了Internet旋风,掀起了新一轮信息化的浪潮。以计算机和网络为代表的信息技术正在以惊人的速度改变着人类的工作、生活方式,甚至包括思维方式和价值观念。



USBUniversal Serial Bus的缩写,中文意思是通用串行总线.它是由CompaqDECIBMIntelNEC、微软以及Northern Telecom(北方电讯)等公司于199411月共同提出的一种新型接口技术。

1.  USB的传输速度

可以分为低速、中速、高速三种传输等级。低速主要就是针对鼠标、键盘等周边设备而言,也就是“交互式设备”,对于这些周边设备速度,通常为10-100kbps,中速是针对音效(Audio)、电话(Phone)、压缩视频(Compressed Video)等用途的传输而言的,速度范围为500k-10Mbps,高速就是指视频(Video)、磁盘(Disk)等用途。速度为25-500Mbps

2.  USB接口的主要特点

速度快:现在USB接口的传输速度为12Mbps(在USB2.0推广后可以高达480Mbps),和串口115200bps的速度相比,相当于串口速度的100多倍(USB2.0则相当于4000)

连接使用简单快捷:即插即用

无需外接电源:

良好的兼容性:

3.  USB的缺陷

从目前USB1.1规格的产品来看,一个USB设备最多可以得到6Mbps的传输频宽,而无法将12Mbps全部供应给一个USB设备,这是为了确保USB至少能同时使用两个装置而设的规定。




 

早先的CPU主频是与周边设备(如硬盘、显卡)同步运行的,但随着CPU主频的大幅度上升,而周边设备因为兼容性和技术上的问题,它们的运行频率和高速提升中的CPU频率相比有了很大的差异。所以,为了不影响CPU频率的提升,就将CPU频率分为外频和倍频,外频乘以倍频就是CPU的主频。而外频则通过一些分频方式再作为其他设备的工作频率。

2005年03月22日

Applet程序是可以内嵌于网页中的小应用程序。使用Applet的好处是用户可以直接从网站下载程序,并直接由浏览器来运行。

所有的Applet程序都必须继承于Applet类或JApplet类,JApplet上还可以使用Swing窗口组件。Applet类存放在java.applet类套件(package)中。Applet类和java.awt类集合有很大的关系。因为在java.awt类套件中所收集的是一组关于编写使用者的接口(Windows UI)、绘制图形(Graphic)和图像(Image)的相关类。AWT类的全名是Abstract  WIndow  Toolkit。简单的说您可以使用AWT中所提供的各种类来编写Java窗口程序。

Applet程序必须通过浏览器来运行,其生命周期自然开始于当它被浏览器加载的那一刻,而结束于浏览器被关闭或转移至其他网页时。从Applet程序开始于运行到结束运行时的过程中,有四个方法(method)会在某些事件发生时被调用,分别是:

  init( )——程序第一次被加载时
  start( )——程序开始运行时
  stop(  )——程序停止运行时
  destory(  )——程序结束时


在正确定安装KDE中文桌面环境的前提下,具体的操作方式请参见上面的相关内容。在/etc/X11/Xsession.d/目录下新建一个文件92fcitx,内容如下:

export LANG=”zh_CN.UTF-8″ #设置中文locales,如果不设,fcitx启动后乱码,不能使用。
export XIM_PROGRAM=fcitx
export XIM=fcitx
export XMODIFIERS=”@im=fcitx”
fcitx&

[注释]
在kdm中好象不能像GDM一样设置locales,所以需手动用export设置。

在/etc/X11/Xsession.d/ 目录下的所有配置文件在X启动时都会被自动执行。所以我就利用了这个特性,在该目录下新建了一个92fcitx文件,用以启动fcitx。类似于 gnome环境下的/etc/X11/Xsession.d/55gnome-session_gnomerc文件的作用。注意,这不是唯一的方法,因为在x启动过程中会自动运行很多个脚本,所以在这些脚本中插入fcitx的启动脚本也是可行的。这就是linux高可配置的体现。

2005年03月10日

以下方法没有试验过,我只是从网上收集的。
过程如下:

1.先用rational.exe,lmgrd.exe覆盖到你的安装目录的Rartional\commen\下

2.然后改license.dat里面的

SERVER yourPC ANY

DAEMON rational “C:\Program Files\Rational\Common\rational.exe”

改成

SERVER 你的机器名 ANY

DAEMON rational “你的安装目录\rational.exe”

3.将Flexlm.cpl拷贝到C:\winnt\system32\下,

在控制面板里运行FlexLm License Manager,

在Setup面板配置文件路径,lmgrd.exe->你的安装目录\Common\lmgrd.exe

License File为你改过的license.dat

4.在Control面板点击Start,如果成功的话点击Status按钮将显示

你的机器名:license server UP (MASTER) 说明成功了

失败的话重启一下FlexLm License Manager就没问题了。

5.如果弹出对话框License Key Administrator Wizard后,

选定Point to a Rational License Server to get my licenses,单击下一步,

Server Name文本框中填写你的机器号(可能已经填好),单击完成。

(成功的话会出现两屏的licenses)

再次运行RationalRose就应该就没问题了。