2005年07月29日

保卫钓鱼岛

演唱:栗子 
词:王磊 (海军上尉军官)
曲/编曲/制作:栗子
和音:杨峰
录音:栗子、戴亮军
所有乐器演奏:栗子

当那海面泛起了波涛,
还有座思念的岛礁,
在那风雨之中飘摇,
让我不能够忘掉。
那是母亲留下的伤痛,
为儿女们刻着的记号,
虽然远在天涯海角,
仍是中国的坐标。
烈焰高高,
燃我热血的火苗,
巨浪滔滔,
掀我爱国的狂潮,

保卫钓鱼岛,
赶走贪婪凶残的强盗,
捍卫我们美丽的家园,
夺回被抢的珍宝。
保卫钓鱼岛,
掀起巨龙悲怆的风暴,
誓在世界东方崛起,
使龙的传人感到,
无比骄傲!

谨将此作品献给:
我们的保钓先驱–陈毓祥烈士!
为了保卫祖国领土而前赴后继的勇士们!
==================================
 原本以为可以有所保留的,所以在4月9号遇到北京游行的时候我选择了用心支持而不是行动。近来却一再看到那几个fucking Japanese的嘴脸,今天把这首歌做为网页上的背景音乐,希望能提醒自己,也能提醒每一个访问我网站的中国人,保卫钓鱼岛,保卫中华民族,对这种不思悔改的日本政府态度要坚决。

Ajax内部交流文档
创建日期:2005年04月04日
最后修改:2005年04月05日
创建人:Amour GUO(Waymangood)
引用请保持文章完整性并注明出处
一、使用Ajax的主要原因
1、通过适当的Ajax应用达到更好的用户体验;
2、把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,从而达到节约ISP的空间及带宽租用成本的目的。
二、引用Ajax这个概念的最早提出者Jesse James Garrett认为:
  Ajax是Asynchronous JavaScript and XML的缩写。
  Ajax并不是一门新的语言或技术,它实际上是几项技术按一定的方式组合在一在同共的协作中发挥各自的作用,它包括
  使用XHTML和CSS标准化呈现;
  使用DOM实现动态显示和交互;
  使用XML和XSLT进行数据交换与处理;
  使用XMLHttpRequest进行异步数据读取;
  最后用JavaScript绑定和处理所有数据;
  Ajax的工作原理相当于在用户和服务器之间加了—个中间层,使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给Ajax引擎自己来做,只有确定需要从服务器读取新数据时再由Ajax引擎代为向服务器提交请求。
图2-1
图2-1

图2-2
图2-2
三、概述
虽然Garrent列出了7条Ajax的构成技术,但个人认为,所谓的Ajax其核心只有JavaScript、XMLHTTPRequest和DOM,如果所用数据格式为XML的话,还可以再加上XML这一项(Ajax从服务器端返回的数据可以是XML格式,也可以是文本等其他格式)。
  在旧的交互方式中,由用户触发一个HTTP请求到服务器,服务器对其进行处理后再返回一个新的HTHL页到客户端,每当服务器处理客户端提交的请求时,客户都只能空闲等待,并且哪怕只是一次很小的交互、只需从服务器端得到很简单的一个数据,都要返回一个完整的HTML页,而用户每次都要浪费时间和带宽去重新读取整个页面。
  而使用Ajax后用户从感觉上几乎所有的操作都会很快响应没有页面重载(白屏)的等待。
  1、XMLHTTPRequest
  Ajax的一个最大的特点是无需刷新页面便可向服务器传输或读写数据(又称无刷新更新页面),这一特点主要得益于XMLHTTP组件XMLHTTPRequest对象。这样就可以向再发桌面应用程序只同服务器进行数据层面的交换,而不用每次都刷新界面也不用每次将数据处理的工作提交给服务器来做,这样即减轻了服务器的负担又加快了响应速度、缩短了用户等候时间。
  最早应用XMLHTTP的是微软,IE(IE5以上)通过允许开发人员在Web页面内部使用XMLHTTP ActiveX组件扩展自身的功能,开发人员可以不用从当前的Web页面导航而直接传输数据到服务器上或者从服务器取数据。这个功能是很重要的,因为它帮助减少了无状态连接的痛苦,它还可以排除下载冗余HTML的需要,从而提高进程的速度。Mozilla(Mozilla1.0以上及NetScape7以上)做出的回应是创建它自己的继承XML代理类:XMLHttpRequest类。Konqueror (和Safari v1.2,同样也是基于KHTML的浏览器)也支持XMLHttpRequest对象,而Opera也将在其v7.6x+以后的版本中支持XMLHttpRequest对象。对于大多数情况,XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性也类似,只是有一小部分属性不支持。
XMLHttpRequest的应用:
XMLHttpRequest对象在JS中的应用
var xmlhttp = new XMLHttpRequest();
微软的XMLHTTP组件在JS中的应用
var xmlhttp = new ActiveXObject(Microsoft.XMLHTTP);
var xmlhttp = new ActiveXObject(Msxml2.XMLHTTP);
XMLHttpRequest 对象方法
/**
* Cross-browser XMLHttpRequest instantiation.
*/

if (typeof XMLHttpRequest == ‘undefined’) {
XMLHttpRequest = function () {
var msxmls = ['MSXML3', 'MSXML2', 'Microsoft']
for (var i=0; i < msxmls.length; i++) {
try {
return new ActiveXObject(msxmls[i]+’.XMLHTTP’)
} catch (e) { }
}
throw new Error("No XML component installed!")
}
}
function createXMLHttpRequest() {
try {
// Attempt to create it "the Mozilla way"
if (window.XMLHttpRequest) {
return new XMLHttpRequest();
}
// Guess not – now the IE way
if (window.ActiveXObject) {
return new ActiveXObject(getXMLPrefix() + ".XmlHttp");
}
}
catch (ex) {}
return false;
};
     XMLHttpRequest 对象方法

方法

描述

abort()

停止当前请求

getAllResponseHeaders()

作为字符串返问完整的headers

getResponseHeader("headerLabel")

作为字符串返问单个的header标签

open("method","URL"[,asyncFlag[,"userName"[, "password"]]])

设置未决的请求的目标 URL, 方法, 和其他参数

send(content)

发送请求

setRequestHeader("label", "value")

设置header并和请求一起发送


XMLHttpRequest 对象属性

属性

描述

onreadystatechange

状态改变的事件触发器

readyState

对象状态(integer):
0 = 未初始化
1 = 读取中
2 = 已读取
3 = 交互中
4 = 完成

responseText

服务器进程返回数据的文本版本

responseXML

服务器进程返回数据的兼容DOM的XML文档对象

status

服务器返回的状态码, 如:404 = "文件末找到" 、200 ="成功"

statusText

服务器返回的状态文本信息

2、JavaScript
  JavaScript是一在浏览器中大量使用的编程语言,,他以前一直被贬低为一门糟糕的语言(他确实在使用上比较枯燥),以在常被用来作一些用来炫耀的小玩意和恶作剧或是单调琐碎的表单验证。但事实是,他是一门真正的编程语言,有着自已的标准并在各种浏览器中被广泛支持。
  3、DOM
  Document Object Model。
  DOM是给 HTML 和 XML 文件使用的一组 API。它提供了文件的结构表述,让你可以改变其中的內容及可见物。其本质是建立网页与 Script 或程序语言沟通的桥梁。
  所有WEB开发人员可操作及建立文件的属性、方法及事件都以对象来展现(例如,document 就代表“文件本身“这个对像,table 对象则代表 HTML 的表格对象等等)。这些对象可以由当今大多数的浏览器以 Script 来取用。
  一个用HTML或XHTML构建的网页也可以看作是一组结构化的数据,这些数据被封在DOM(Document Object Model)中,DOM提供了网页中各个对象的读写的支持。
  4、XML
  可扩展的标记语言(Extensible Markup Language)具有一种开放的、可扩展的、可自描述的语言结构,它已经成为网上数据和文档传输的标准。它是用来描述数据结构的一种语言,就正如他的名字一样。他使对某些结构化数据的定义更加容易,并且可以通过他和其他应用程序交换数据。
  5、综合
  Jesse James Garrett提到的Ajax引擎,实际上是一个比较复杂的JavaScript应用程序,用来处理用户请求,读写服务器和更改DOM内容。
  JavaScript的Ajax引擎读取信息,并且互动地重写DOM,这使网页能无缝化重构,也就是在页面已经下载完毕后改变页面内容,这是我们一直在通过JavaScript和DOM在广泛使用的方法,但要使网页真正动态起来,不仅要内部的互动,还需要从外部获取数据,在以前,我们是让用户来输入数据并通过DOM来改变网页内容的,但现在,XMLHTTPRequest,可以让我们在不重载页面的情况下读写服务器上的数据,使用户的输入达到最少。
  基于XML的网络通讯也并不是新事物,实际上FLASH和JAVA Applet都有不错的表现,现在这种富交互在网页上也可用了,基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序。
  Ajax是传统WEB应用程序的一个转变。以前是服务器每次生成HTML页面并返回给客户端(浏览器)。在大多数网站中,很多页面中至少90%都是一样的,比如:结构、格式、页头、页尾、广告等,所不同的只是一小部分的内容,但每次服务器都会生成所有的页面再返回给客户端,这无形之中是一种浪费,不管是对于用户的时间、带宽、CPU耗用,还是对于ISP的高价租用的带宽和空间来说。如果按一页来算,只能几K或是几十K可能并不起眼,但像SINA每天要生成几百万个页面的大ISP来说,可以说是损失巨大的。而AJAX可以所为客户端和服务器的中间层,来处理客户端的请求,并根据需要向服务器端发送请求,用什么就取什么、用多少就取多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于纯后台处理并重载的方式缩短了用户等待时间,也把对资源的浪费降到最低,基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序,所以Ajax对于用户和ISP来说是双盈的。
  Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),而在以前两者是没有清晰的界限的,数据与呈现分离的分离,有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理。
四、应用
  Ajax理念的出现,揭开了无刷新更新页面时代的序幕,并有代替传统web开发中采用form(表单)递交方式更新web页面的趋势,可以算是一个里程碑。但Ajax都不是适用于所有地方的,它的适用范围是由它的特性所决定的。
  举个应用的例子,是关于级联菜单方面的Ajax应用。
  我们以前的对级联菜单的处理是这样的:
  为了避免每次对菜单的操作引起的重载页面,不采用每次调用后台的方式,而是一次性将级联菜单的所有数据全部读取出来并写入数组,然后根据用户的操作用JavaScript来控制它的子集项目的呈现,这样虽然解决了操作响应速度、不重载页面以及避免向服务器频繁发送请求的问题,但是如果用户不对菜单进行操作或只对菜单中的一部分进行操作的话,那读取的数据中的一部分就会成为冗余数据而浪费用户的资源,特别是在菜单结构复杂、数据量大的情况下(比如菜单有很多级、每一级菜又有上百个项目),这种弊端就更为突出。
  如果在此案中应用Ajax后,结果就会有所改观:
  在初始化页面时我们只读出它的第一级的所有数据并显示,在用户操作一级菜单其中一项时,会通过Ajax向后台请求当前一级项目所属的二级子菜单的所有数据,如果再继续请求已经呈现的二级菜单中的一项时,再向后面请求所操作二级菜单项对应的所有三级菜单的所有数据,以此类推……这样,用什么就取什么、用多少就取多少,就不会有数据的冗余和浪费,减少了数据下载总量,而且更新页面时不用重载全部内容,只更新需要更新的那部分即可,相对于后台处理并重载的方式缩短了用户等待时间,也把对资源的浪费降到最低。
  此外,Ajax由于可以调用外部数据,也可以实现数据聚合的功能(当然要有相应授权),比如微软刚刚在3月15日发布的在线RSS阅读器BETA版;还可以利于一些开放的数据,开发自已的一些应用程序,比如用Amazon的数据作的一些新颖的图书搜索应用。
  总之,Ajax适用于交互较多,频繁读数据,数据分类良好的WEB应用。
五、Ajax的优势
1、减轻服务器的负担。因为Ajax的根本理念是“按需取数据”,所以最大可能在减少了冗余请求和响影对服务器造成的负担;
  2、无刷新更新页面,减少用户实际和心理等待时间;
  首先,“按需取数据”的模式减少了数据的实际读取量,打个很形象的比方,如果说重载的方式是从一个终点回到原点再到另一个终点的话,那么Ajax就是以一个终点为基点到达另一个终点;
重载方式
图5-1

Ajax方式
图5-2
  其次,即使要读取比较大的数据,也不用像RELOAD一样出现白屏的情况,由于Ajax是用XMLHTTP发送请求得到服务端应答数据,在不重新载入整个页面的情况下用Javascript操作DOM最终更新页面的,所以在读取数据的过程中,用户所面对的也不是白屏,而是原来的页面状态(或者可以加一个LOADING的提示框让用户了解数据读取的状态),只有当接收到全部数据后才更新相应部分的内容,而这种更新也是瞬间的,用户几乎感觉不到。总之用户是很敏感的,他们能感觉到你对他们的体贴,虽然不太可能立竿见影的效果,但会在用户的心中一点一滴的积累他们对网站的依赖。
  3、更好的用户体验;
  4、也可以把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担,节约空间和带宽租用成本;
  5、Ajax由于可以调用外部数据;
  6、基于标准化的并被广泛支持和技术,并且不需要插件或下载小程序;
  7、Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离);
  8、对于用户和ISP来说是双盈的。
六、Ajax的问题
  1、一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax;
  2、用JavaScript作的Ajax引擎,JavaScript的兼容性和DeBug都是让人头痛的事;
  3、Ajax的无刷新重载,由于页面的变化没有刷新重载那么明显,所以容易给用户带来困扰――用户不太清楚现在的数据是新的还是已经更新过的;现有的解决有:在相关位置提示、数据更新的区域设计得比较明显、数据更新后给用户提示等;
  4、对流媒体的支持没有FLASH、Java Applet好;
七、结束语
  更好的Ajax应用,需要更多的客户端的开发,和对当前的WEB应用理念的思考,而且良好的用户体验,来源于为处处用户考虑的理念,而不单纯是某种技术。
八、联系方式
MSN: waymangood@hotmail.com
  OICQ: 458620
  E-Mail: amourguo@gmail.com
  网站: http://www.DragonSon.com
2005年04月06日

Donews的无法访问太经常了,以至于我现在都不再信任。虽然还是会天天上来看文章,但还是回我学校的空间上去写东西了。

www.kedy.info

2005年02月26日

本来不想在本本上装apache的,但公司那台电脑实在响的让我的耳朵无法忍受,所以不得不开装。结果一直装不上,刚开始没有认真看,觉得不会有什么错误,可就是装不上。老是不能加上apache2项服务。看提示错误说是80端口已经被占用了。想来想去IIS也没开,其他也没装什么,怎么会这样呢?找了一个TCPView软件来看看,发现Skype居然把80端口给占了,而且还占了https。关掉Skype,一路点下去,安装顺利完成。

心情本来很好,在中午的时候按约定给MM打电话,谈起了我的工作。她可能是想让我换个单位,觉得那样有利于我的发展。我说我还是先把毕业设计做完,现在的水平确实不足以找到一个自己愿意去的单位。她说:你是不有点下气,这么不自信。接着,像前些天一样,很容易地就生气了。挂了电话,发消息给她说你应该看我的行动而不是只听我的话。我说我有自己的计划,我在一步步实现计划。
没有回音。
真的不知道为什么要这样。看来不只是Skype的错,可是我觉得…也许是我的错吧。

2005年02月16日

今天是新年后上班的第一天,也是我的生日。第一天,我所在部门的人还没有来全,确切的说只来了我一个人,所以也没什么事做。上网,看了几条新闻之后就不知道做什么好。在校友录、公司与学校网站来回打了几个转之后,我终于想起来还是应该去想想自己的毕业设计的事,但却不知道怎么下手。

网上好多帖子都是说前天,西方的情人节。而我的感觉却就那样样,我的情人节过的……网上一个朋友说爱情不是游戏,我回了一句说“爱情不是游戏,但需要一些游戏心态。”现在想这句话更准确的说应该是把爱情换成恋爱。

2005年工作开始的第一天。
2005年,你能实现从coder到programmer的转变吗?
2005年,你还会像去年那样浪费时间吗?
2005年,你的关于感情的梦想能够实现吗?

2005年正月初八,我开始工作。这一天,是2月16日。

2005年01月06日

5号的一场不大不小的雪让本来就要走上高速公路的我不得不怀着极其郁闷的心情返回到太原长途汽车站。从汽车返回的那一刻起到我走到火车站这个时间里,郁闷与沮丧完全占据了我的心.今天我已经无法形容当时的心情,当时我特别希望的是找一个人好好的说一说自己心里的郁闷,似乎这样能使自己得到解脱一样.但是那个时候打电话给谁呢?再说了,自己郁闷了,为什么要告诉别人让别人和自己一起郁闷呢?

当然最后我还是打电话了.但是使我感到高兴的是自己很快地从那种郁闷的心情里解脱了出来.爸爸说这样就对了,再郁闷也没用,还是想想应该坐哪趟车.我觉得也是,郁闷是郁闷了,那也不是我的过错.如果你让郁闷一直陪伴着自己,搞得自己终日不能展开眉头,那我自己就是大错特错了.不光是今天的事,其实每一天,每一个郁闷的事都一样,永远不要拿过去的郁闷来惩罚自己.

明天上午11点19分,石家庄站,T512,抛弃了曾经的郁闷,带着家人的关心与朋友的祝福,带着我的梦想,我要去北京了.

2005年01月04日

上午去系里找老师请了假,下午回来收拾了衣服和其他一些东西,准备离开学校了。

收拾东西的时候几乎把所有的东西都翻了一次,虽然我知道自己至少明年还会在这个宿舍在这个床上呆一些日子。居然有些舍不得,等这一天不知道等 了多长时间了,到了今天,我居然有一点舍不得。感觉似乎有点可笑,但不管在这个地方曾经发生的所有的事是多少的让我不愿回首,毕竟,这里是我生活了将近四年的地方。
照片,毛巾,衣服,书,电话卡,无一不让我回想起有关的一个个大大小小的故事,回想起它们记录着的欢乐与泪水。然而终于要走了。我等了将近四年的已经基本确定不会再属于我了,然而我还是把那些故事带在身边。从昨天到今天我还有一个等待的内容,到现在还是没有消息。说失望,我觉得不太合适,因为我认为我就没有希望太多。但是这是什么感受呢?

已经是2005了,过去的事还管得了吗?还要再去想吗?还要再为昨天为去年为历史而烦恼下去吗?

2005年1月5日,我就要离开了。

2005年01月01日

昨天考完了大学的所有考试,以后终于不用再有这种周期性的考试了。爽。
5号回家,然后7号去北京,10号开始一周的试工期,如果公司不对我说NO的话就可以有个工作了。努力!

考完了所有的考试,晚上全班一起吃饭,由于考完了都有一种解放的感觉,几乎所有的人都很兴奋,喝酒的时候也都没有想太多,喝!她发来消息说少喝点,我回了说“恩,我会听话的。”事实上我知道自己一定会喝多,不是不想听话,一个班的在一起的机会能有多少,再说大家都要毕业了,虽然明年还有一次一起吃饭的机会,可是到时谁知道都是什么心情呢? 1号早上醒了才知道自己回来后是多么的狼狈。一天都觉得很难受,爸爸来电话骂我了,这是我第二次这样,不好。想想今天一天胃的感觉,以后还是一定要注意一下的。毕竟,我是要保护自己身体的。

去北京了要,憧憬在那里的工作与生活。北京,我就要来了。

2004年12月22日

昨晚很晚了才看到她寄来的贺卡,我一下子不知道做什么好了。想给她打个电话,可是觉得以自己现在的身份没有这个必要。想给她回个邮件,却又不知道说什么好。坐在床边想了好长时间,其实早已决定打电话了,只是一直在想应该说什么话,应该是个什么态度。终于我想明白了,谢谢她的贺卡,为前些日子的事道个歉,然后再说明结束了就是结束了。跳下床,站到透着雪味的楼道里,我拨出了那个像是烙在脑海里的号码。然而当我听到那个曾经在耳边的声音的时候,我的心软了,虽然没有像她一样笑出来,但是那个时候我心里一定是很高兴的。只是这份高兴掺杂了一些其他的味道。通话间几度我们都没有话说,但是我能感觉到她的开心。我一直没有忘记我最后要说的“结束了就是结束了的话”,然而我想了好多次却都没有说出口,甚至都没到嗓子眼。后来我想起了哪个电视剧中的那句话:“你快乐所以我快乐”。这不就够了吗?我一直想办法不说出可能让她不开心的话。这一次我做到了。我想能做到一次就能做到第二次、第三次的。

你快乐,所以我快乐。

2004年12月21日

有些事总是要结束的,我早就知道。只是没想到会延续这么长时间。那天手机又收到了消息。一时间我不知道做什么好。本来不会发生的事却由于九月份的生活而让我浮躁,而产生了如此多的错误。放不下,我放不下。再一次。
过去就是过去了,那天我回了消息:结束了就让一切都结束吧。我不知道这会有什么我看不到的效果,可能这只是为了让我自己不再放不下。有时候太认真了,心里只能容下这一件事,于是就会做错许多事。我就是这样,以前是,这次又是。大学四年了,我一直没有认真反省过这件事,但是到今天了我如果再不想,再不解决这个问题,那么我工作以后可能会面临更多的问题。
Game over!结束了,就让一切都结束吧。