昨天我去金远见应聘,很顺利,让我随时去上班,我打算明天过去。
2004-03-31
工作找到了,明天就去上班了
发表者tiny @ 时间 3/31/2004 02:56:00 下午 | 0 条评论
2004-03-26
今天看到的好文:从屁眼的作用说起
发表者tiny @ 时间 3/26/2004 12:36:00 上午 | 0 条评论
2004-03-25
突然想起《为学》,觉得值的一读再读
天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。
吾资之昏,不逮人也;吾材之庸,不逮人也。旦旦而学之,久而不怠焉,迄乎成,而亦不知其昏与庸也。吾资之聪,倍人也;吾材之敏,倍人也;屏弃而不用,其与昏与庸无以异也。圣人之道,卒于鲁也传之。然则昏庸聪敏之用,岂有常哉?
蜀之鄙有二僧,其一贫,其一富。贫者语于富者曰:“吾欲之南海,何如?”富者曰:“子何恃而往?”曰:“吾一瓶一钵足矣。”富者曰:“吾数年来欲买舟而下,犹未能也。子何恃而往?”越明年,贫者自南海还,以告富者。富者有惭色。
西蜀之去南海,不知几千里也,僧富者不能至而贫者至焉。人之立志,顾不如蜀鄙之僧哉?是故聪与敏,可恃而不可恃也;自恃其聪与敏而不学者,自败者也。昏与庸,可限而不可限也;不自限其昏与庸而力学不倦者,自力者也。
tinyfool:
今天无意中看到一个文章,让我想起来为学,感触颇深
如今很多人学软件的时候,借口也是良多,英语不好等等,没有时间等等,我建议大家都多看看为学,不在于条件如何,而在于你做与不做.........
发表者tiny @ 时间 3/25/2004 03:14:00 下午 | 0 条评论
2004-03-24
本站提供初雪做的防火墙的长期下载
作者初雪对软件的介绍:
界面很丑,功能也很简单,和天网差不多。
不过天网和费尔都是NDIS HOOK,偶用的是SPI和NDIS IMD。驱动部分是在WIN2K DDK的例子PASSTHRU基础上扩展的。SPI是在《WINDWOS网络编程技术》附带光盘的例子基础上修改过来的。
Tinyfool提示:
本软件并非商业软件,本站提供下载也是为了促进开发人员的交流,本站不对该软件造成的一切问题负责。
下载文件中包括了本软件的简要说明和安装方法。
软件下载:初雪的防火墙
发表者tiny @ 时间 3/24/2004 01:57:00 下午 | 1 条评论
2004-03-17
又看到4篇我的文章上了csdn的头条,爽
是symbian sdk的翻译。
如下图

文章的链接分别是
Symbian翻译 之 Developer's Guide
Symbian翻译 之 Subsystems and APIs
Symbian翻译 之 Essential Idioms-Layout conventions
Symbian翻译 之 Object lifetimes and cleanup
发表者tiny @ 时间 3/17/2004 03:19:00 下午 | 0 条评论
昨天发现我写的一个文章上了csdn的头条,爽
发表者tiny @ 时间 3/17/2004 02:47:00 下午 | 0 条评论
2004-03-16
昨天开始使用Eclipse,感觉很爽
启动LOGO
Eclipse运行中...
我一直不怎么玩java,只做过一个的图表Applet,和几个J2me程序,这两天我开始考虑用J2se做一个简单的程序,但是手工写真是太累了,尤其是我对类库很不熟悉,于是咨询了一下几个作java的朋友,他们都推荐Eclipse,于是我去下载了试了试,真的很爽
我目前觉得最爽的地方是:
1、自动完成功能非常方便、智能而且速度很好。
2、全面支持重构,例如修改对象的名称,可以自己修改所有引用对象的代码。
3、自动生成调整import。
4、编译运行速度很快。
发表者tiny @ 时间 3/16/2004 02:03:00 上午 | 0 条评论
2004-03-13
本blog的评论功能正式完成并且开放测试中
用access数据库来保存评论,目前已经基本上通过了测试...
发表者tiny @ 时间 3/13/2004 09:45:00 上午 | 0 条评论
2004-03-12
用于Atom转换成rss的xslt文件
作为一个blogger.com的用户,我一直很遗憾blogger.com没有给用户提供rss功能,有人说没有rss的blog不是blog,虽然夸张了一点,但是也表现出来rss对blog的重要性。
去年12月份的时候blogger.com一反常态,在Atom标准推出没有几天以后,马上提供了Atom功能,可是市面上的新闻阅读器基本上都不支持Atom,按照blogger.com的说明只有4种新闻阅读器支持Atom,我经常使用的FeedDemon至今好像也没有提供Atom的支持,于是,想起来毛主席的“自己动手丰衣足食”的教导了,于是我用Xslt写了一个Atom和Rss的转换,经过试验,至少可以在FeedDemon,Sharpreader下面使用,因为时间关系,我没有打算让这个转换完全符合Rss2.0标准,实际上除了工作量以外,实现这个标准应该是没有难度的。
因为没有合适的测试环境,我只保证这个文件支持blogger.com提供的Atom转换成Rss,而且只保证在FeedDemon,Sharpreader下面使用是完全正常的。
文件下载
atom2rss.xsl
具体使用的时候,我是做了一个asp文件调用Dom进行服务器端的Xslt转换。
发表者tiny @ 时间 3/12/2004 11:34:00 下午 | 0 条评论
编译原理学习笔记:概论
学习编译原理的目的和意义
从简单实用主义看,学习编译原理是没有任何作用的,因为一般来说99%的程序员,不需要写自己的编译器,也不需要去读懂任何编译器代码。
但是我认为编译原理还是很值得一学的:
第一、学习编译原理可以帮助自己更加深层次的理解程序语言和内部机制。
第二、学习编译原理可以用来做简单的命令解释器,这个经常都很需要。比如游戏的脚本引擎。
第三、学习正则表达式,有很大的用处。
第四、界面开发也需要编译原理的知识(这个是书上面讲的,目前还不是很理解)。
1.1 为什么需要使用编译器
1.2 与编译器相关的程序
(1) 解释程序(interpreter)
任何语言理论上都可以解释和编译,解释的好处方便调试,有些语言Basic还有lisp等,习惯都是解释性的,还有一些内嵌语言(脚本)都是采用解释方式的,因为运行速度要求并不是很高,而且需要比较大的灵活性。
(2) 汇编程序(assembler)
(3) 连接程序(linker)
(4) 装入程序(loader)
(5) 预处理器(preprocessor)
(6) 编辑器(editor)
(7) 调试程序(debugger)
(8) 描述器(profiler)
(9) 项目管理程序(project manager)
1.3 翻译步骤
(1) 扫描程序(scanner)
(2) 语法分析程序(parser)
(3) 语义分析程序(semantic analyzer)
(4) 源代码优化程序(source code optimizer)
(5) 代码生成器(code generator)
(6) 目标代码优化程序(target code optimizer)
1.4 编译器中的主要数据结构
(1) 记号(token)
(2) 语法树(syntax tree)
(3) 符号表(symbol table)
(4) 常数表(literal table)
(5) 中间代码(intermediate code)
(6) 临时文件(temporary file)
1.5 编译器结构中的其他问题
(1) 分析和综合
(2) 前端和后端
(3) 遍
(4) 语言定义和编译器
(5) 编译器的选项和界面
(6) 出错处理
1.6 自举与移植
发表者tiny @ 时间 3/12/2004 11:38:00 上午 | 2 条评论
2004-03-08
[新闻评论]WinXP SP2牺牲兼容性 部分软件可能无法使用
引文来自:新浪
原文链接:http://tech.sina.com.cn/it/2004-03-08/0745301906.shtml
新浪科技讯 微软不久就将发布Windows XP的SP2补丁包。届时可能会有一些软件开发商发现自己的软件无法在更新后的Windows XP系统上运行。据微软公司透露,对SP2所作的变更主要集中在下列4个领域:网络保护、内存保护、电子邮件安全和浏览器保护。受影响最大的部分包括RPC(远程程序呼叫)、DCOM(分布式组件对象模式)、Windows防火墙和内存保护。
微软在这一版的补丁包中更为关注的是改善系统的安全性,向后兼容的能力被放在
了第二位。微软呼吁所有的软件开发商尽快测试他们的代码与测试版SP2补丁包的兼容性,以避免自己开发的软件不能在这一更新下正常运行。
微软同时提醒软件开发商,Windows XP SP2不同于以往的补丁程序或普通升级。在SP2中,微软更多地关注如何增强系统的安全性。微软警告说,这次升级将放弃某些具有安全缺陷且无法修正的应用。
微软开发部门产品经理Tony Goodhew表示:“我们对Windows XP的部分默认设置进行了改动,开发者或许会对此感到吃惊,因为这将影响到当前应用程序的运行方式。因此,开发者应该在SP2系统上彻底测试自己的软件。”
为了帮助开发商对SP2进行测试,微软还提供了在线培训教程。该教程包含了安装SP2的一些详细资料以及部分代码样本。Goodhew表示,此举可谓是史无前例。
Goodhew称,微软现在已经开始帮助一些大型软件供应商进行测试,以确保其应用能够平滑过渡到SP2。而一些中小型开发商则需要自己进行独立测试。Goodhew还表示,如果开发商发现其应用程序无法与SP2相兼容,那么就意味着程序在开发时就存在安全问题。
最后,Goodhew表示:“如果某些程序无法在SP2上运行,那就说明着这些程序是不安全的。不仅仅对于微软,对于整个软件开发界来说,安全问题都是最重要的。我们应该共同努力来打造一个更加安全的计算环境。花费多长的时间来解决问题并不重要,重要的是要从现在做起。”(明月编译)
Tinyfool评论
Ms的每次变革都是第三方软件厂商的洗牌,从某种角度上讲,在任何一个既定的规则下面竞争,第三方软件厂商都可以很容易的跟上Ms的脚步,但是Ms是这一平台的唯一标准制定者,他可以随时随地的改变游戏规则。Dos/Win95的变革就使许多原本有商业优势的公司一蹶不振,Win9x/Win2k/Winxp以及.Net等等,Ms为了自身发展,或者其他原因的变革,也都在影响着第三方的利益。
经过冲击波等病毒之后,我发觉Ms目前唯一面对的敌人就是自己,就是操作系统的安全性,Ms理所当然的使出浑身解数去解决这个复杂的问题。
目前这个补丁还没有发布,一旦发布,会不会有大量的商业软件无法运行,现在都是未知数,如果某些开发工具的核心机制和微软的这次新安全策略有冲突,会不会是大量的开发工具用户成为最广泛的受害者呢,目前一切都不得而知,拭目以待吧!
发表者tiny @ 时间 3/08/2004 02:48:00 下午 | 0 条评论
2004-03-02
关于XML到底有什么用处,我和一个朋友的聊天纪录
MSN聊的,大家都知道MSN的聊天记录是一个XML文件,这个素我自己写了一个xslt得到
的,也算是XML的一种应用了。
from Tinyfool to Seaso
其实说xml到底有什么用,也不好说
from Tinyfool to Seaso
总是目前用的越来越多了
from Tinyfool to Seaso
你可以把xml当作一种数据存储的方式,好处在于格式是自解释的,而且任何程序都可以读取
from Tinyfool to Seaso
而且可以做成非常复杂的树形结构
from Tinyfool to Seaso
目前在数据库方面用xml很多,还有就素不同的平台之间的信息传递
from Seaso to Tinyfool
我看到你把你的网站进行了xml改造,是怎么个应用
from Tinyfool to Seaso
我在网站里面用XML主要素利用XML转换来实现模版的功能
from Tinyfool to Seaso
就素说,你知道我的开发日记
from Tinyfool to Seaso
还有我的随想录
from Tinyfool to Seaso
这两个都素blog
from Tinyfool to Seaso
blog都支持xml的同步更新信息
from Tinyfool to Seaso
我的链接存在一个xml文件里面,我的论坛新贴子列表也存在一个blog里面
from Tinyfool to Seaso
存在一个xml里面
from Tinyfool to Seaso
然后我可以把这个四个xml里面的信息一起提取出来形成一个页面
from Tinyfool to Seaso
这个和从数据库提取页面信息差不多
from Tinyfool to Seaso
但是呢,xml有一个非常有用的功能叫做xslt转换
from Tinyfool to Seaso
我写好一个xslt转换文件
from Tinyfool to Seaso
然后调用一个函数,xml文件就转换成我的html文件了
from Seaso to Tinyfool
那原先这些不都是存在数据库中的吗,中间又加了一个xml,岂不是多了一个操作
from Tinyfool to Seaso
我需要修改网站风格的时候,只需要修改xslt文件就好了
from Tinyfool to Seaso
你说的队,但是那是在一切都是你自己写的情况下
from Tinyfool to Seaso
我的blog程序不是我自己写的,数据库存在国外的blog提供商服务器里面,
from Tinyfool to Seaso
我是访问不了这个数据库的
from Tinyfool to Seaso
但是它提供我一个xml用来做更新
from Seaso to Tinyfool
那你如何读懂他的xml
from Tinyfool to Seaso
我就可以读取这个xml文件得到最新的文章的列表了,你明白了么?]
from Tinyfool to Seaso
xml就素明文的
from Tinyfool to Seaso
很容易就能看懂意思的
from Tinyfool to Seaso
http://www.tinydust.net/diaryrss.asp
from Tinyfool to Seaso
你去看这个
from Seaso to Tinyfool
那你就得读懂塔里面的每一个元素
from Tinyfool to Seaso
这就素我的blog的xml
from Tinyfool to Seaso
文件
from Tinyfool to Seaso
格式很简单
from Tinyfool to Seaso
用xml的方法提取这些内容也很简单
from Seaso to Tinyfool
举个例子,你提供给我这个xml,让我能够存取,那我首先要弄明白你这个xml重的内容对马
from Tinyfool to Seaso
对
from Seaso to Tinyfool
那你这些数据还用存到数据库中吗
from Tinyfool to Seaso
不用了,直接生成页面了
from Tinyfool to Seaso
当然存入数据库也好
from Tinyfool to Seaso
不过这个关系不大
from Seaso to Tinyfool
这个文件我大概能看懂,就是不知道他对我有什么用,我如何用它
from Tinyfool to Seaso
其实也很简单
from Tinyfool to Seaso
比如说
from Tinyfool to Seaso
我现在开发了一个系统
from Tinyfool to Seaso
你要做另一个系统
from Tinyfool to Seaso
不是说要能操作我的系统
from Seaso to Tinyfool
那这个xml存在数据库或当文件存储在服务器都可以吗
from Tinyfool to Seaso
主要是说需要能够得到我的系统的一些数据
from Tinyfool to Seaso
我的那个系统就可以用xml的方式留下一个借口,这样大家都很方便
from Seaso to Tinyfool
对经常会有这样的需求
from Tinyfool to Seaso
xml本身就可以算一个数据库
from Tinyfool to Seaso
不过不能存太多的信息效率不搞
from Tinyfool to Seaso
一般都素用来不同的系统之间传输信息的
from Tinyfool to Seaso
明白了?
from Seaso to Tinyfool
哦,全部的数据还是要存在数据库中,中间加一层xml提取所要得数据,供第三方也可以使用
from Seaso to Tinyfool
你这个文件的item元素如果很多怎么办,上万个也要存到这一个xml文件中吗
from Tinyfool to Seaso
对
from Tinyfool to Seaso
内容太多了用xml不素很好
from Seaso to Tinyfool
纳访问起来岂不是很慢
from Tinyfool to Seaso
其实比如那个blog,xml里面存放的就素最近的更新,没有必要包含所有的信息
from Seaso to Tinyfool
其他得失不是在数据库中
from Tinyfool to Seaso
恩
from Tinyfool to Seaso
反正一般不是把xml做为一个最终的数据存储手段,而是作为一个数据交换的工具
from Seaso to Tinyfool
哦,正是因为第三方是很难访问到我得最终存储的数据(关系数据库或文件),所以提供一个xml接口供他是用
from Seaso to Tinyfool
那如果我不想别人是用,是不是就不需要xml接口
from Tinyfool to Seaso
素
from Tinyfool to Seaso
不过你也可以给自己以后留接口
from Tinyfool to Seaso
呵呵
from Seaso to Tinyfool
存取xml好作吗
from Tinyfool to Seaso
好做
from Tinyfool to Seaso
任何平台下面都有相关的api
from Seaso to Tinyfool
好像十几句代码对吗
from Tinyfool to Seaso
en
from Seaso to Tinyfool
我看过有些书存取内存中的对象为xml文件,就五句
from Tinyfool to Seaso
hehe
from Seaso to Tinyfool
其实这个xml用起来到不难,因为有相应的api,单从头作会很难,关键在于理解他的用处,把她用到实际开发中对吗,
from Tinyfool to Seaso
su
from Tinyfool to Seaso
其实还有一个问题,我们自己平时也需要一些轻量级的数据存储
from Tinyfool to Seaso
用数据库就很麻烦
from Tinyfool to Seaso
尤其是不是树形的用一个表不好表达的那种
from Tinyfool to Seaso
你自己写一套接口未尝不可,但是为什么不用人家提供的高效的工具呢?
from Seaso to Tinyfool
那xml能够查询吗
from Tinyfool to Seaso
能
from Seaso to Tinyfool
这个树形有什么用呢,我没有太强的概念
from Tinyfool to Seaso
树形结构经常需要啊!
from Tinyfool to Seaso
比如让你保存整个硬盘的目录信息你怎么保存?
from Tinyfool to Seaso
另外xml虽然本身是树形的,你也可以保存类似表的信息啊!
from Seaso to Tinyfool
哦,明白,就像存取部门这样的数据,以前我在关系数据库中存取就很麻烦
from Tinyfool to Seaso
对啊!
from Tinyfool to Seaso
一般部门能大到什么程度,用xml足矣
from Seaso to Tinyfool
数据校验在xml中如何做
from Tinyfool to Seaso
:|自己学去了,我现在懒的管你了
from Tinyfool to Seaso
呵呵
from Tinyfool to Seaso
自己去网上找资料去吧!
发表者tiny @ 时间 3/02/2004 02:03:00 下午 | 0 条评论
2004-03-01
续《服务器端Xslt过程中出现的编码问题和解决方案》
看来我的上一篇文章下结论下的有点早,不知道为什么MsXml总是要出些奇怪的问题。
下面是Msdn原封不动的例子,只是从jscript转成了asp代码。
set source = server.createobject("Msxml2.DOMDocument")
source.async = false
source.resolveExternals = false
source.load "data.xml"
set stylesheet = server.createobject("Msxml2.DOMDocument")
stylesheet.async = false
stylesheet.resolveExternals = false
stylesheet.load "style.xsl"
set result = server.createobject("Msxml2.DOMDocument")
result.async = false
result.validateOnParse = true
source.transformNodeToObject stylesheet, result
但是遗憾的是result.save出来的文件都是空的。我不知道该怎么办。于是,我们回到起点,我用transformNode的方法的到一个字符串,然后用字符串替换的方法把问题解决了。
str=xmldoc.transformNode(xsldoc)
str=replace(str,"UTF-16","GB2312")
有时间的时候再仔细研究一下这个问题。
发表者tiny @ 时间 3/01/2004 11:08:00 下午 | 0 条评论
服务器端Xslt过程中出现的编码问题和解决方案
Xslt文件编写学会以后,在真正的应用中,我还需要利用转换引擎,进行文件的转换。Xslt转换,一般来说分为服务器端转换和客户端转换。服务器端转换,也就是说用asp/jsp代码进行Xslt转换,这样发给用户客户端的是格式化好的Html文件(在Atom2Rss里面是Xml文件。)。客户端转换,是直接发给用户客户端Xml文件,由客户端进行转换,这样就需要客户端支持Xml标准。目前真正完整支持Xml标准的Ie6,Mozilla,而目前还有很多用户还在使用Ie5,甚至是Ie4,或者是其他的不支持Xml的浏览器。所以,在很多时候,我们需要进行服务器端的转换。
程序代码很简单,下面代码来自Msdn,被我由Vb Script代码改成了Asp代码:
Dim xslt,xslDoc,xmlDoc,xslProc
Set xslt=Server.CreateObject("Msxml2.XSLTemplate")
Set xslDoc=Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
Set xmlDoc=Server.CreateObject("Msxml2.DOMDocument")
Set xslProc=Server.CreateObject("IXSLProcessor")
xslDoc.async = False
xslDoc.resolveExternals = False
xslDoc.load "sample.xsl"
Set xslt.stylesheet = xslDoc
xmlDoc.async = False
xmlDoc.resolveExternals = False
xmlDoc.load "books.xml"
Set xslProc = xslt.createProcessor()
xslProc.input = xmlDoc
xslProc.addParameter "param1", "Hello"
xslProc.Transform
Response.write xslProc.output
这个代码很简单也很容易看懂,但是在我真正应用的时候发现一个很痛苦的问题,就是我的Xml文件编码是GB2312,我的Xslt文件编码是GB2312,而且在Xslt里面也设定了输出的Xml文件的编码是GB2312,但是生成的文件的编码却是UTF-16。这样就造成了我的文件编码错误,在IE里面没有办法阅读。
我在网上搜索这个问题,发现这个问题相当普遍,找到了一个讲得比较清楚的文章RE: [xsl] Problem with Chinese (Solution)。
文章的大概意思是:如果你需要生成指定编码的文档,你就不要在代码中使用String。因为在Win32平台里面String的编码总是Utf-16,所以你不能期望MSXML能够输出GB2312的String。如果利用流的方式Load,transformNodeToObject来进行处理,就可以避免这个问题。
根据这个思路做出来的程序如下:
dim xsldoc,xmldoc,xmlfile,xslfile
xmlfile="test.xml"
xslfile="test.xsl"
'生成xml转换所需要的对象
set xslDoc = server.CreateObject("MSXML2.FreeThreadedDOMDocument")
set xmlDoc =server.CreateObject("MSXML2.DOMDocument")
'装入xsl文件
xsldoc.async=False
xsldoc.resolveExternals =False
xsldoc.load server.MapPath(xslfile)
'装入xml文件
xmldoc.async=False
xmldoc.resolveExternals =False
xmldoc.load server.MapPath(xmlfile)
xmldoc.transformNodeToObject xsldoc,Response
'进行转换
'清楚所有内存
set xslt=nothing
set xsldoc=nothing
set xmldoc=nothing
至此,问题完全得到解决。
发表者tiny @ 时间 3/01/2004 09:19:00 上午 | 0 条评论


