一个COM+错误以及其解决

这两天,发现启动的时候,任务栏的图标不见了~ 从前出现这种情况是由于Norton,现在可没有装Norton,于是去eventvwr,发现有很多COM+错误(有关系么……)。
主要是两种:
事件类型:    信息
事件来源:    COM+
事件种类:    (117)
事件 ID:    778
日期:        2005-12-25
事件:        14:12:51
用户:        N/A
计算机:    ######
描述:
应用程序映像转储失败。
服务器应用程序 ID: {02D4B3F1-FD88-11D1-960D-00805FC79235}
服务器应用程序实例 ID:
{08BDD738-E0F4-4722-A1C6-BFAE67843812}
服务器应用程序名: System Application
错误代码= 0x80004005 : 未指定的错误
COM+ 服务内部信息:
文件: d:qxp_slpcomcom1xsrcsharedutilsvcerr.cpp, 行: 1259
Comsvcs.dll 文件版本: ENU 2001.12.4414.308 shp

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
事件类型:    错误
事件来源:    COM+
事件种类:    (98)
事件 ID:    4822
日期:        2005-12-25
事件:        14:12:51
用户:        N/A
计算机:    HUGANG
描述:
出现某种状态,表示此 COM+ 应用程序处于不稳定状态或运行不正常。声明失败: SUCCEEDED(hr)

服务器应用程序 ID: {02D4B3F1-FD88-11D1-960D-00805FC79235}
服务器应用程序实例 ID:
{08BDD738-E0F4-4722-A1C6-BFAE67843812}
服务器应用程序名: System Application
此错误的严重性已导致进程终止。
错误代码= 0x8000ffff : 灾难性故障
COM+ 服务内部信息:
文件: d:qxp_slpcomcom1xsrccomsvcstrackertrksvrtrksvrimpl.cpp, 行: 3000
Comsvcs.dll 文件版本: ENU 2001.12.4414.308 shp

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
又发现系统类:
事件类型:    错误
事件来源:    Service Control Manager
事件种类:    无
事件 ID:    7031
日期:        2005-12-25
事件:        14:31:03
用户:        N/A
计算机:    HUGANG
描述:
COM+ System Application 服务意外地终止,这种情况已经出现了 2 次。以下的修正操作将在 1000 毫秒内运行: 重新启动服务。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
以及很多类似的
怀疑COM+出了问题。到服务管理器里面,启动COM+ System Application,好几次都是自动停止,还报告错误…… eventvwr里的错误也在慢慢增长。
驱大猫上网,Google了一下,发现这种错误还不少…… 去了www.iis-resources.com/modules/newbb/viewtopic.php?
topic_id=3240&viewmode=flat&order=ASC&start=10
,看了半天,前面的方法有些试了(我没有IIS,IIS相关的我不管),最后用和这个人一样的方法解决了…… 方法是……
重新注册ole32.dll!或许这个能够恢复COM+的注册表项么…… 反正我也不懂COM+和OLE的关系,能用就行了……

试用 Windows Messenger Live(WML8)<- MSN Messenger 8

微软出了WML8的测试版,但是一般人不能用…… 下载好“Project Make WLM 8.0 Work On MSNP12”,打好补丁后,还是不能用。后来发现,修改hosts,增加“127.0.0.1 muser.messenger.hotmail.com",就可以了。
MSN8的改进不大,我觉得比较好的:
1.离线消息 被诟病多时,不如QQ的地方,终于好了。
2.试用默认浏览器 不用再复制-粘贴到FireFox里了。
3.SNS 但是没有看见?或许要得到试用许可的才有这个功能……
资源占用仍然很大,Gmail:7xxk/59xxk MSN:6xxxk/55xxxk so 大啊~

Pascal下的 BackPropagation 算法

在Free Pascal 2.0.0 下编译通过
编的是Machine Learning上的样例:8x3x8,也是我在TI上编的
电脑就是快啊!10000次训练眼睛都不用怎么眨~
uses sysutils;
const
    nin=8;
    nhid=3;
    nout=8;
    rate=0.1;

var
    t,p,q,r,v,tt,tc:longint;
    l1:array[1..nin,1..nhid]of real;
    l2:array[1..nhid,1..nout]of real;
    i:array[1..nin]of longint;
    eo,o,ot:array[1..nout]of real;
    h,eh:array[1..nhid]of real;
    s1,s2:string;
    te:real;

function sigmod(x:real):real;
begin exit(1/(1+exp(-x)));end;

begin
    if fileexists(‘bpnet.dat’) then
    begin
        writeln(‘Reading Network Data:’);
        assign(input,’bpnet.dat’);
        reset(input);
        for t:=1 to nin do
        for p:=1 to nhid do
        read(l1[t,p]);
        for t:=1 to nhid do
        for p:=1 to nout do
        read(l2[t,p]);
        close(input);
    end else
    begin
        writeln(‘Data not exist,initializating…’);
        for t:=1 to nin do
        for p:=1 to nhid do
            l1[t,p]:=random(100)/10000;
        for t:=1 to nhid do
        for p:=1 to nout do
            l2[t,p]:=random(100)/10000;
    end;
    assign(input,”);reset(input);
    //Init weights

    write(‘Train times:’);readln(tt);
    for tc:=1 to tt do
    begin
    write(‘Input  :’);readln(s1);
    write(‘Target :’);readln(s2);
    for t:=1 to nin do i[t]:=ord(s1[t])-48;
    for t:=1 to nout do ot[t]:=ord(s2[t])-48;
    //Input train data

    for t:=1 to nhid do
    begin
        for p:=1 to nin do
            h[t]:=h[t]+i[p]*l1[p,t];
        h[t]:=sigmod(h[t]);
    end;
    for t:=1 to nout do
    begin
        for p:=1 to nhid do
            o[t]:=o[t]+h[p]*l2[p,t];
        o[t]:=sigmod(o[t]);
    end;
    //feedforward

    te:=0;
    for t:=1 to nout do
    begin
        eo[t]:=o[t]*(1-o[t])*(ot[t]-o[t]);
        te:=te+abs(o[t]-ot[t]);
    end;
    for t:=1 to nhid do
    begin
        for p:=1 to nout do
            eh[t]:=eh[t]+eo[p]*l2[t,p];
        eh[t]:=h[t]*(1-h[t])*eh[t];
    end;
    //calculate error

    for t:=1 to nhid do
        for p:=1 to nout do
        l2[t,p]:=l2[t,p]+rate*eo[p]*h[t];
    for t:=1 to nin do
        for p:=1 to nhid do
        l1[t,p]:=l1[t,p]+rate*eh[p]*i[t];
    //change weights

    for t:=1 to nout do write(o[t]:0:2,’ ‘);writeln;
    writeln(‘Error in all:’,te:0:3);
    //output statics
    end;

    writeln(‘Writing network data’);
    assign(output,’bpnet.dat’);rewrite(output);
    for t:=1 to nin do
    begin
        for p:=1 to nhid do write(l1[t,p],’ ‘);
        writeln;
    end;
    for t:=1 to nhid do
    begin
        for p:=1 to nout do write(l2[t,p],’ ‘);
        writeln;
    end;
    close(output);
    //write network data

    assign(output,”);rewrite(output);
    writeln(‘Finally.’);readln;
end.