<?xml version="1.0" encoding="GBK" ?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dcterms="http://purl.org/dc/terms/">
 <channel>
  	  <title><![CDATA[KEVIN CHAN IT BLOG]]></title>
	  <link>http://yczyz.blog.163.com</link>
	  <description><![CDATA[My Zone ※☆△◎ 打造自己的 IT Sky &amp; Platform Software College of SCU]]></description>
	  <language>zh-CN</language>
	  <pubDate>Tue, 12 Aug 2008 23:57:40 +0800</pubDate>
	  <lastBuildDate>Tue, 12 Aug 2008 23:57:40 +0800</lastBuildDate>
	  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
	  <generator><![CDATA[NetEase Space]]></generator>
	  <managingEditor><![CDATA[yczyz]]></managingEditor>
	  <webMaster><![CDATA[KEVIN CHAN]]></webMaster>
		  <ttl>120</ttl>
	  <image>
	  	<title><![CDATA[KEVIN CHAN IT BLOG]]></title>
	  	<url>http://ava.blog.163.com/photo/DPMWsCkSmIQvcTtdtwQSUg==/4560739047642819444.jpg</url>
	  	<link>http://yczyz.blog.163.com</link>
	  </image>
  <item>
  	<title><![CDATA[迁移站点]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620086311522216</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 好久没更新<FONT face=Courier>BLOG</FONT>了。最近受好友托付迁移个php网站。弄的那个之恼火。现抒发到日志里。主要归因与以下几点：原先要求迁移网站的人，租空间的时候出错，明明旧站原先是mysql的数据库却选成mssql的，没有基本常识。这就使得数据库函数和部分sql语句的修改。旧网站数据库没拷贝完全，我说数据库缺表，他还硬坚持说全部都拷出来了。真是无语。然后空间提供商的问题，不专业。竟然没有mysql数据库提供。没提供也就算了，只提供mssql数据库php配置里却还不支持。Faint！php的环境搭建也不够考虑兼容性，有些php代码不是很规范的就会出错。KF工作效率低下，叫他改下php的配置慢的要死.这样的服务器提供商太不合格了。<BR>现将php一些配置项列举如下，我认为将这些项打开有助于建站的方便,虽然默认是关闭的：<BR><FONT face="Comic Sans MS">register_globals、ster_long_arrays、short_open_tag</FONT> </P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620086311522216</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620086311522216</guid>
    <pubDate>Thu, 3 Jul 2008 11:52:22 +0800</pubDate>
    <dcterms:modified>2008-07-07T21:02:09+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[所有的路径]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/175820162008313641548</link>
    <description><![CDATA[<div><P>一个项目中有个需求是给出一个有向连通图,给出起点和终点,要求给出所有可能的路径.下面是C#实现算法的代码:</P>
<P>
<TABLE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" cellSpacing=1 cellPadding=1 width="100%" border=1>
<TBODY>
<TR>
<TD>&nbsp;// e表示终点,g表示连通图的数组,road数组存放已经找到的路径,path_num表示已经找到几条路径 
<P>&nbsp;&nbsp;&nbsp; void search(int e, int[,] g, int pass,int[,] road)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(road[path_num,pass-1]==e)&nbsp;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(path_num!=0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int tt = 0; tt &lt; pass; tt++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (p[path_num - 1, tt] == stack[path_num, 0])<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int k = 0; k &lt;= tt; k++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p[path_num, k] = p[path_num - 1, k];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path_num++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass = 1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; road[path_num, 0] = 20;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int b = road[path_num,pass - 1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int count = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;65;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(g[b,i]&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(count&gt;1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; stack[path_num, 0] = b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; road[path_num, pass] = i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; search(e, g, pass+1, road);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; count = 0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; }</P></TD></TR></TBODY></TABLE></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/175820162008313641548</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/175820162008313641548</guid>
    <pubDate>Sun, 13 Apr 2008 18:41:54 +0800</pubDate>
    <dcterms:modified>2008-04-13T18:42:40+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[JS Dom 操作]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200812841628554</link>
    <description><![CDATA[<div><P>&nbsp;</P>
<P>在使用javascript操作Dom的时候,经常会有很多奇怪的现象,要非常注意才行.象removeChild和appendChild这两个函数吧,如果你用个循环appendChild多个element的时候,在你想更新或者删除removeChild的时候,遍历的顺序要反过来.不然的话会出现遍历有遗漏的现象.不注意还真会在这里浪费很多时间.</P>
<P>关于用Ajax刷新图片或者数据的时候,我最近经常遇到一个问题,就是缓存的问题,当每次异步传输的时候,如果存在缓存,ajax将不会从数据库中请求,而是从缓存中请求数据,这样就会造成数据或图象的更新出现问题,服务器的改变不能很好的反应到页面上.现在我的解决方法是将要请求的页面的Response.Expires = -1.这样就使得每次页面请求后就过期,下次客户端只能再次重新到服务器去取.</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200812841628554</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200812841628554</guid>
    <pubDate>Thu, 28 Feb 2008 16:16:28 +0800</pubDate>
    <dcterms:modified>2008-02-28T16:19:55+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[搭建校园网代理服务器]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620080743946988</link>
    <description><![CDATA[<div><P>最近想在校园网里搭建个代理服务器,方便外网的用户通过代理使用学校校园网上的资源(比如,要做毕业设计了,图书馆的资源).先来介绍下SCU内本人的网络状况,宿舍里可以通过拨号连上校园网,然后也可以交费使用电信的ADSL拨号上网.宿舍里的其他电脑在一个局域网内.尤其没有其他多余的设备.最后的想法是让外网的用户通过宿舍里面一台连着ADSL的电脑(相当于代理服务器),然后再由一台连着校园网的电脑完成访问校园资源的工作.<BR>实现代理的方法有很多,比如端口映射、内网域名解析、二级代理等等。<BR>下面这个方法通过二级代理来实现，已测试通过，希望为有类似需求的提供帮助。<BR>首先是将对外充当代理服务器的电脑连上ADSL，比如地址为220.167.41.23，然后在上面运行CCproxy软件。局域网内另一台电脑连校园网，同样运行CCproxy，假设这台电脑在局域网中的ip是192.168.0.2，校园网的地址为121.48.194.23。然后在对外代理服务器上的CCproxy软件中的高级里面设置二级代理，代理的ip就填192.168.0.2，端口就填CCproxy中HTTP代理服务的端口号，Ok<BR>这样，外网的用户只要在ie中设置上220.167.41.23后，就可以访问学校内部的资源了，很方便。当然这不一定是最好的方法，端口映射也是个非常好的方法。</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620080743946988</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620080743946988</guid>
    <pubDate>Mon, 7 Jan 2008 16:39:46 +0800</pubDate>
    <dcterms:modified>2008-01-07T16:39:46+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[DZ主题附件列表实现]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620071019104629316</link>
    <description><![CDATA[<div><P>最近的论坛要求在Discuz上为每个主题加一个附件列表,方便浏览者下载附件.类似于qq群上面文件上传共享的实现.<BR>在仔细查看了下Discuz的viewthread文件的代码后实现了.实现的思路如下:根据进入的主题tid,从数据库中select出tid相同的附件的aid,然后根据附件的地址为attachment.php?aid=xxx的形式在主题页面的某个位置显示出链接来.<BR>具体实现:<BR>在viewthread.php中的<STRONG>include template('viewthread')</STRONG>代码前插入代码<BR><STRONG>$supe['status'] &amp;&amp; supe_dbconnect();<BR>$myattachlist;<BR>$query = $db-&gt;query("SELECT aid,filename,description,dateline FROM {$tablepre}attachments WHERE tid='$tid'");<BR>&nbsp;while($attachid = $db-&gt;fetch_array($query))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $myattachlist=$myattachlist.'&amp;nbsp;&lt;a href="attachment.php?aid='.$attachid['aid'].'"&gt;'.$attachid['filename']."&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;";<BR>&nbsp;}<BR></STRONG>然后在viewthread.htm中插入<BR><STRONG>本主题所有附件列表：<BR>$myattachlist<BR></STRONG>然后重新刷新下页面,效果就出来了.</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620071019104629316</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620071019104629316</guid>
    <pubDate>Mon, 19 Nov 2007 22:46:29 +0800</pubDate>
    <dcterms:modified>2007-11-19T22:46:29+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[选择CMS]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620079282467190</link>
    <description><![CDATA[<div><P>&nbsp;</P>
<P>最近尝试了很多款CMS产品的安装搭建,比如国内的动易、帝国、CMSware、dedecms、phpcms等，国外的用了下Joomla!，相比国外的比国内的效果要好。国外的最恼火的是语言的问题。但是总的感觉是，现在的CMS产品跟现在的社会一样，充满了一种浮躁的感觉，大部分都是把所有能想到的功能都集中到一起，追求又大又全，并以此为宣传的砝码，弄的系统很复杂、庞大，逻辑杂乱。现实应用中我觉得很多功能都是用不到的，删减起来实在费时。直接用CMS建站还不是图个速度快嘛，那样反而有惫初衷。我觉得开发适合各种需求的多版本的CMS才是好的选择，这样不同需求用户选择安装部署就很方便，改动少，不要1、2个版本把所有的功能都整合进去让用户来修改。还有一个要说的是大部分CMS首页为什么不采用Ajax的拖拉功能，这样就可以大大减少自定义多样化页面都用的时间，象现在这样修改很不方便。虽然大部分CMS可以进行模板编辑，但是设想如果我有时间熟悉下对应CMS模板编写的方法，还不如自己写一个CMS呢，那样更符合自己的要求。最后我找了很久终于找到了还算满意的CMS，冰雪CMS，这个系统很小，也不出名，但是针对我的功能不多，规模不大的需求，它非常合适，后台逻辑很清晰。<BR>当然每个人不同的需求对每个CMS的看法都不同。</P>
<P><BR>ps.2006最佳国外CMS系统 (转)<BR>* <A href="http://drupal.org/" target=_blank>Drupal<BR></A>* e107<BR>* <A href="http://www.joomla.org/" target=_blank>Joomla!</A><BR>* <A href="http://plone.org/" target=_blank>Plone<BR></A>* Xoops</P>
<P>这几个CMS系统的优点：</P>
<P>Drupal</P>
<P style="TEXT-INDENT: 2em">* 比较稳定以及开发比较活跃</P>
<P style="TEXT-INDENT: 2em">* 代码很不错，提供了比较细的权限系统和强壮的安全措施</P>
<P style="TEXT-INDENT: 2em">* 配置很容易</P>
<P style="TEXT-INDENT: 2em">* 轻量级的安装</P>
<P style="TEXT-INDENT: 2em">* 模块和模版很多</P>
<P style="TEXT-INDENT: 2em">* 文档以及有很多友好的活跃用户的社区</P>
<P style="TEXT-INDENT: 2em">* 非常棒的节点概念</P>
<P>e107</P>
<P style="TEXT-INDENT: 2em">* 易于安装和设置</P>
<P style="TEXT-INDENT: 2em">* 模版和模块的选择很广泛</P>
<P style="TEXT-INDENT: 2em">* 提供了很大的弹性</P>
<P style="TEXT-INDENT: 2em">* 后台看上去组合的很好</P>
<P style="TEXT-INDENT: 2em">* 下拉菜单做的很好</P>
<P>Joomla!</P>
<P style="TEXT-INDENT: 2em">* 易于安装并附带了很多扩展和模块</P>
<P style="TEXT-INDENT: 2em">* 文档非常详尽和简洁</P>
<P style="TEXT-INDENT: 2em">* 管理员的界面强壮而直接易懂</P>
<P style="TEXT-INDENT: 2em">* 后台易于使用，所见既所得的编辑器很好用</P>
<P style="TEXT-INDENT: 2em">* 看上去可扩展性不错，能提供许多定制的功能</P>
<P style="TEXT-INDENT: 2em">* 有一个很大的活跃社区</P>
<P>Plone</P>
<P style="TEXT-INDENT: 2em">* 灵活和强壮</P>
<P style="TEXT-INDENT: 2em">* 用户界面好</P>
<P style="TEXT-INDENT: 2em">* 默认安装很干净</P>
<P style="TEXT-INDENT: 2em">* 许多可附加的模块</P>
<P style="TEXT-INDENT: 2em">* 值得花多些时间来学习这个系统</P>
<P style="TEXT-INDENT: 2em">* 对于定制有所影响</P>
<P style="TEXT-INDENT: 2em">* 可以通LDAP或者其它的登录系统结合起来</P>
<P>XOOPS</P>
<P style="TEXT-INDENT: 2em">* 初安装的要求最低</P>
<P style="TEXT-INDENT: 2em">* 很好的社区支持</P>
<P style="TEXT-INDENT: 2em">* 提供了大量的附加模块和模版</P>
<P style="TEXT-INDENT: 2em">* 很多的功能</P>
<P style="TEXT-INDENT: 2em">* 成熟的权限系统</P>
<P style="TEXT-INDENT: 2em"></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620079282467190</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620079282467190</guid>
    <pubDate>Sun, 28 Oct 2007 02:46:07 +0800</pubDate>
    <dcterms:modified>2007-10-28T10:07:50+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[PHP+IIS 配置问题]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200792694120966</link>
    <description><![CDATA[<div><P>&nbsp;</P>
<P>最近搭建个论坛,在PHP和IIS整合的时候发现一个容易出错而且容易疏忽的问题.就是PHP解压出来后,存放的目录名中间要求不能有空格,不然的话等下在IIS中主目录配置里面要输入PHP解析文件的路径的时候,你设置完还是不能打开PHP网页的,IIS不能解释运行PHP,所以要注意,不能有空格.网上的安装教程都没有提到这一点.呵呵~~~~</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200792694120966</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200792694120966</guid>
    <pubDate>Fri, 26 Oct 2007 09:41:20 +0800</pubDate>
    <dcterms:modified>2007-10-26T09:41:35+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[回顾大学3年]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620078188378473</link>
    <description><![CDATA[<div><P>&nbsp;</P>
<P>进入大4了,招聘宣讲或者保研接踵而至,是该回顾下大学所学了.以下是部分写入简历的总结,发现现在总结有点晚,有些事情都有点忘却了,先总结到这吧,记起再补充.见笑了~~</P>
<P>&nbsp;</P>
<P>
<TABLE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" cellSpacing=1 cellPadding=1 width="100%" border=1>
<TBODY>
<TR>
<TD>&nbsp;能力</TD>
<TD>&nbsp; 
<P style="TEXT-INDENT: 2em">熟练C++\Java\C#,了解Python.了解Windows 环境和API以及Unix</P>
<P style="TEXT-INDENT: 2em">操作系统, 熟悉TCP/IP 及网络编程 ,熟悉Ajax .熟悉Eclipse, VC等</P>
<P style="TEXT-INDENT: 2em">开发工具，熟悉J2EE开发、软件工程知识、信息安全知识。</P></TD></TR>
<TR>
<TD>&nbsp;在校经验</TD>
<TD>&nbsp; 
<P style="TEXT-INDENT: 2em">参加了川大计算机软件学院robocode比赛，小组第2，</P>
<P style="TEXT-INDENT: 2em">网上购物平台</P>
<P style="TEXT-INDENT: 2em">龙泉社区网站建设</P>
<P style="TEXT-INDENT: 2em">电子邮件客户端程序</P>
<P style="TEXT-INDENT: 2em">思远+1杯第八届全国机器人足球锦标赛成都赛区</P>
<P style="TEXT-INDENT: 2em">川大软件学院萌芽基金项目-PicBlog</P>
<P style="TEXT-INDENT: 2em">在成都国信安实训基地实习(网络安全方面)</P>
<P style="TEXT-INDENT: 2em">投标二滩水电站论坛建设项目</P></TD></TR></TBODY></TABLE>&nbsp;</P>
<P style="TEXT-INDENT: 2em">&nbsp;</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620078188378473</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620078188378473</guid>
    <pubDate>Tue, 18 Sep 2007 20:37:08 +0800</pubDate>
    <dcterms:modified>2007-12-02T15:32:31+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[实习有感]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200772971817435</link>
    <description><![CDATA[<div><P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>现在IT发展真是迅速啊~~各地的软件园都拔地而起~~而且特别注重大.一个比一个大.当成都要建个9平方公里的软件园时,大连要建12平方公里的.真是一副喜人的景象!哎~~~~真不知道ZF为什么要这样,重质量才是王道啊!<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 实习2天了,感觉成都天府软件园的确不错,环境很好，一片忙碌的景象，而且经常能见几个PPMM，西西~~我实习的周围是很多知名企业,如NOKIA、SAP、IBM、MS等。可惜我实习的地方不是这些地方啊！反差太大了。实习的时候不知道在做些什么，似乎更象是培训。真不知道学校或者学院是如何找实习的公司的。我认为这种培训更象是给那些没有IT专业基础的人学的，虽然偶尔感觉还有点点收获。大部分时间都是浪费过去的。哎~~~~~ 失望。<BR>真正的实习离这个还很远，算了。本来就听大姚说过这次很水的。至少比学院其他实习地方要好些（也只能是阿Q式的自我安慰）啦！<BR><BR>自己努力实践才是王道啊！<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face48.gif"><BR></STRONG></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200772971817435</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200772971817435</guid>
    <pubDate>Wed, 29 Aug 2007 19:18:17 +0800</pubDate>
    <dcterms:modified>2007-08-29T19:21:17+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[学习Python]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620076723419571</link>
    <description><![CDATA[<div><P>Python,作为Google使用率最高的3大语言之一(其他两种分别是c++\java),使我很有兴趣了解和学习下.于是最近的一天时间我全神贯注的投入其中.国内Python使用者很少,可以从网上资料看出,中文资料不多.但从我的一天的了解和实践来看,Python是一种简单易学，功能强大的编程语言，它有高效率的高层数据结构，简单而有效地实现面向对象编程.一天时间就能比较了解了.对于快速开发程序真的很方便快捷,感觉很好.<BR>通过学习,它Python的原理是跨平台的,只要安装了Python就可以运行.它只保存源代码,不需要保存编译文件,是解释型的语言.当然,现在有种工具py2exe软件可以将.py文件转化为exe文件,Windows下双击就可运行,不需要安装Python环境.Python是模块化的,它的模块相当于库文件,其他Python程序可以调用模块.<BR>Python在Unix下的环境安装网上介绍比较多.下面说说Windows下的环境安装,到<A href="http://www.python.org/download/">http://www.python.org/download/</A>安装程序.然后安装好后就可以使用了~<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face0.gif">它里面已经自带了Python的IDE,叫做IDLE,运行IDLE是个控制台界面.我们编写程序可以用File-&gt;new window下面编写保存,然后在cmd下编译运行程序.也可以在控制台界面下输一行就可见结果的编写代码,不过这样有点烦.下面是一个小程序的截图~</P>
<P align=center><A href="http://img.blog.163.com/photo/2NPal7v9-d623aUf39RyAQ==/1194579801160197998.jpg" target=_blank><IMG style="WIDTH: 268px; HEIGHT: 92px" height=111 src="http://img.blog.163.com/photo/2NPal7v9-d623aUf39RyAQ==/1194579801160197998.jpg" width=268></A><BR>,点击按钮后弹出</P>
<P align=center><A href="http://img.blog.163.com/photo/LYAzwXV1OHJnFkWoEmoiMA==/2041538006082561222.jpg" target=_blank><IMG style="WIDTH: 184px; HEIGHT: 123px" height=108 src="http://img.blog.163.com/photo/LYAzwXV1OHJnFkWoEmoiMA==/2041538006082561222.jpg" width=184></A></P>
<P align=left>只需8行代码~~~~~<BR>下面来说说用py2exe生成exe文件的步骤:除了要有程序的python代码外,还要写一个.py文件,比如b.py,大致代码是<BR>from distutils.core import setup<BR>import py2exe<BR>setup(name="a",<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window=["a.py"],&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //a.py是程序实现代码<BR>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //window还可以是console,看你的程序是图形界面的还是控制台的<BR><BR>然后用python b.py py2exe命令开生成一个目录,里面有exe文件,双击可以运行~!<BR>总的来说:我觉得Python是门很好的语言,编写程序速度快~~</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620076723419571</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620076723419571</guid>
    <pubDate>Sat, 7 Jul 2007 15:10:59 +0800</pubDate>
    <dcterms:modified>2007-07-07T15:32:23+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[所谓热插拔]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200752185336986</link>
    <description><![CDATA[<div><FONT size=5>今</FONT>天一个室友跑到我旁边说在我电脑上试试看能不能识别他的移动硬盘,因为他的电脑识别不出盘符.在我电脑上的结果是一样的,任务栏能识别出usb设备,但是我的电脑里没有移动硬盘的盘符.进控制面板-计算机管理-磁盘管理里面也没看到盘符.于是猜测他的移动硬盘坏了.<BR>然后他说他平时都是插进去用完后直接拔的,我说这样很不安全的.他说没关系的,移动硬盘都是支持热插拔的.<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face3.gif">听后无语死,呵呵~~明显他没弄清楚热插拔的含义.<BR>热插拔是说允许用户在不关闭系统，不切断机器电源的情况下取出和更换损坏的硬盘、电源或板卡等部件.而不是说不选择任务栏的安全删除usb设备而直接将移动硬盘拔下,这不是所谓的热插拔,这样是很危险的,很可能导致移动硬盘的数据丢失或者电源问题.当然,出现室友相同故障情况还有可能是移动硬盘跌落造成的. </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200752185336986</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200752185336986</guid>
    <pubDate>Thu, 21 Jun 2007 20:53:36 +0800</pubDate>
    <dcterms:modified>2007-06-21T20:56:54+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[域名路径问题]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/175820162007430115417834</link>
    <description><![CDATA[<div><FONT size=5>先</FONT>说下遇到的情况:一台服务器,运行一个提供blog服务的j2ee web程序,这样大家注册后就需要一个自己的域名或者说路径让别人来访问.这个问题似乎听起来很简单.我当时也这样觉得.当我着手解决的时候,我习惯性的网上搜下看看其他人的解决方案,一些大部分是通过配置服务器软件或者第三方来实现这个功能的.<BR>但本人对这个配置服务器感到很烦琐,于是想有没有简单的方法实现上诉功能.<BR>于是,经过一些尝试,得出的解决方法如下,<BR>思路是在一个用户完成注册时,在服务器上生成一个用户注册帐号命名的文件夹,并在这个文件夹下生成一个index.jsp文件.文件代码如下:<BR>&lt;%<BR>String path = request.getContextPath();<BR>String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";<BR>String url = request.getRequestURI();<BR>String[] tmp = url.split("/"); <BR>int length = tmp.length;<BR>String zhanghao = tmp[length-1];<BR>response.sendRedirect("../default.jsp");<BR>session.setAttribute("zhanghao",zhanghao);<BR>%&gt; <BR>生成目录文件夹代码如下:<BR>boolean a = new File("./test").mkdir();<BR>if(a==true){<BR>&nbsp;&nbsp;&nbsp; System.out.println("creat success!");<BR>&nbsp;&nbsp;&nbsp; File myFile = new File("./test/index.jsp");<BR>&nbsp;&nbsp;&nbsp; FileOutputStream fos = new FileOutputStream(myFile);<BR>&nbsp;&nbsp;&nbsp; String filecontent = "文件内容";<BR>&nbsp;&nbsp;&nbsp; System.out.println(filecontent);<BR>&nbsp;&nbsp;&nbsp; byte[] content = filecontent.getBytes();<BR>&nbsp;&nbsp;&nbsp; fos.write(content);<BR>&nbsp;&nbsp;&nbsp; fos.close();&nbsp;&nbsp;&nbsp;<BR>}<BR><BR>然后,当用户输入自己的域名时,就会跳转到根据用户信息生成的个人blog主页default.jsp <BR>eg.当一个用户名为yczyz的用户在地址栏中输入http://www.picblog.com/yczyz,就会到达自己的blog页面. <BR>我认为根据上面的这种方案能很简单的实现所需要的功能,同时又有个好处是将用户比如自己上传的图片,视频等文件放到服务器的自己的文件夹下,这很便于服务器端系统管理员的管理. <BR>不知道这种方法大家觉得如何?!欢迎交流 </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/175820162007430115417834</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/175820162007430115417834</guid>
    <pubDate>Wed, 30 May 2007 23:54:17 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:00:40+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Ajax Blog]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200742801732846</link>
    <description><![CDATA[<div><P align=center>前段时间在做的一个Ajax Blog Web程序.大概也就完成了30%的样子.<BR>这年头事情多啊.进度很慢.<BR>展示一下,继续努力,嘿嘿.<BR>下面是操作视频,不是很清晰.<IMG src="http://st.blog.163.com/style/common/htmlEditor/portrait/face/preview/face0.gif"><EMBED allowScriptAccess="never" allowNetworking="internal"     style="DISPLAY: block" pluginspage=http://www.macromedia.com/go/getflashplayer src=http://www.56.com/n_v41_/c19_/24_/3_/yczyz_/1180281262_106_/89025_/0_/14150129.swf width=500 height=500 type=application/x-shockwave-flash quality="high" wmode="transparent"  ></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200742801732846</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200742801732846</guid>
    <pubDate>Mon, 28 May 2007 00:17:32 +0800</pubDate>
    <dcterms:modified>2007-05-30T23:10:44+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[JS 访问剪贴板]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620074663835368</link>
    <description><![CDATA[<div><FONT size=5>个</FONT>人网站屏蔽复制功能会让人反感.但作者又不想别人随便复制文章,那在网友复制文章的时候在后面加入文章的出处是个不错的选择.下面是这个功能的示例.<BR>&lt;Html&gt; <BR>&lt;Head&gt; <BR>&lt;TITLE&gt;操作剪贴板&lt;/TITLE&gt; <BR>&lt;script type="text/javascript"&gt;<BR>function bb(){<BR>&nbsp; var a = document.selection.createRange().text +"From&nbsp;KEVIN CHAN&nbsp;Blog yczyz.blog.163.com";&nbsp;<BR>&nbsp; clipboardData.setData("text",a);<BR>}<BR>function cc(){<BR>&nbsp;&nbsp;setTimeout("bb()",100);<BR>}<BR>&lt;/script&gt;<BR>&lt;/Head&gt; <BR>&lt;Body onCopy="cc();"&gt;<BR>&nbsp;&nbsp; Welcome to my blog!<BR>&lt;/Body&gt;<BR>&lt;/Html&gt; </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620074663835368</comments>
    <slash:comments>1</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620074663835368</guid>
    <pubDate>Sun, 6 May 2007 18:47:10 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:01:43+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Eclipse + Jboss 开发 EJB]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/17582016200731413821980</link>
    <description><![CDATA[<div><FONT size=5>最</FONT>近在用Eclipse、Myeclipse、Jboss的环境开发一个J2EE+Ajax技术结合的社区。万事开头难啊，一开始先要配置环境。所以在安装完所有的程序后，就写了个小应用来测试下环境是否搭建正常。例子是建立一个session bean，如果有请求就向客户端返回一句话，一个helloworld级的小功能。但是在集成环境中部署完服务器后，在每次启动客户端程序后，都出现一个NoInitialContextException错误。在通过后面的错误的解释，就把可能的错误点定在了InitialContext的附近，应该是命名空间或者环境没设好。<BR>最后，修改了两处问题得到解决。一个是要在工程的库中加入jbossall-client.jar文件。一个是要在代码中设环境变量。客户端具体代码如下： <BR>package com; <BR>import javax.ejb.CreateException; <BR>import javax.naming.*; <BR>import javax.naming.NamingException; <BR>import javax.rmi.PortableRemoteObject;<BR>import com.interfaces.Hello;<BR>import com.interfaces.HelloHome;<BR>public class Test {<BR>public static void main(String[] args) {<BR>Properties properties=new Properties();<BR>properties.setPropert("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");<BR>properties.setProperty("java.naming.provider.url", "localhost:1099");<BR>properties.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");<BR>Context context;<BR>try {<BR>context = new InitialContext(properties);<BR>Object objRef = context.lookup("ejb/Hello");<BR>HelloHome home = (HelloHome) PortableRemoteObject.narrow(objRef,HelloHome.class);<BR>Hello hw=home.create();<BR>String s=hw.hello();<BR>System.out.println(s);<BR>} catch (NamingException e) {<BR>e.printStackTrace();<BR>} catch (RemoteException e) {<BR>e.printStackTrace();<BR>} catch (CreateException e) {<BR>&nbsp;e.printStackTrace();<BR>}<BR>} <BR>} <BR>要注意ejb-jar.xml、jboss.xml文件中的内容，不然也很容易出错。 </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/17582016200731413821980</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/17582016200731413821980</guid>
    <pubDate>Sat, 14 Apr 2007 01:38:21 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:02:02+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[VC AnimateWindow()]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620072237382047</link>
    <description><![CDATA[<div><FONT size=5>今</FONT>天做对话框动画的时候用到了AnimateWindow()函数,这个函数的使用方法是BOOL AnimateWindow（HWND hWnd，DWORD dwTime，DWORD dwFlags),很简单,能实现对话框的很多效果.<BR>然后在编译的时候却不能通过,说<BR>'AnimateWindow':&nbsp;undeclared &nbsp; identifier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>'AW_HIDE':&nbsp;undeclared &nbsp; identifier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>'AW_CENTER': undeclared &nbsp; identifier&nbsp;&nbsp; <BR>于是我检查了下,发现没加头文件"WINUSER.H"没加进去,就加进去.但是编译还是出错.然后再也找不出错的原因.后来在网上找了半天,说是AnimateWindow()函数需要WindowsNT5.0以上版本才支持.而我们目前所使用的各种Windows主版本号均为5.0以下,所以才会出现编译错误,解决的办法是:<BR>在VC安装目录下进入include子目录，用EDIT打开Winuser.h文件，查找AnimateWindow，可以发现有两处定义，一处是定义该函数中使用到的参数；另一处是该函数原型的定义。在这两处定义中均出现了对Windows版本的条件判断,我们只要将#if(WINVER&nbsp;&gt;=&nbsp;0X0500)改为#if(WINVER&nbsp;&gt;=&nbsp;0X0400)，然后保存后重启vc,编译就成功了.对话框动画终于展现在了眼前. </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620072237382047</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620072237382047</guid>
    <pubDate>Fri, 23 Mar 2007 19:38:20 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:02:29+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[Java线程join()方法]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/175820162007219112641721</link>
    <description><![CDATA[<div><FONT size=5>今</FONT>天遇到个关于java的线程的小问题,然后查阅了资料.通过与start()方法的介绍,来看看join()方法的用法和不同.<BR>当程序执行线程,通过start()方法调用run()方法后,程序就马上执行start()下面的代码.但如果在start()方法之后调用join()方法,结果会是程序执行完run()方法后,再执行start()后面的代码.<BR>这个区别在有些地方有很大的不同用处. </div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/175820162007219112641721</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/175820162007219112641721</guid>
    <pubDate>Mon, 19 Mar 2007 23:26:41 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:02:51+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[网络视频直播]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620072573733151</link>
    <description><![CDATA[<div><P><FONT size=5>假</FONT>期里面看电视,无意中看到有人在玩网络直播,从而提高自己网站的访问量,带着好奇心,我也弄起来玩玩,原先以为搭建应该有点麻烦,后来在网上看到了Webcam 1-2-3 这个软件,使用起来真是傻瓜,呵呵~~~~~ 服务器端插上摄像设备,客户端浏览器输入服务器的ip或网址就可以了,只要2、3步就可以搭建一个小型的网上直播系统了，很方便。类似的软件还有几个。<BR>后来，我又试着寻找其他实现网络直播的方法，找到有些网站提供网络直播的服务，很不错的样子。<BR>还有一种基于Microsoft Windows Media Service的视频直播、屏幕直播及节目录制系统的方法，这个实现起来就复杂点，具体网上有这方面资料。<BR>最后，当然还可以自己建个流媒体服务器，通过编程实现。<BR>以上是实践的一点总结。<BR></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620072573733151</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620072573733151</guid>
    <pubDate>Mon, 5 Mar 2007 19:37:33 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:03:51+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[进入WPF]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/1758201620070220166443</link>
    <description><![CDATA[<div><P><FONT size=5>自</FONT>从vista发布以来,WinFx开发的信息就大量的出现在了IT类的网站和平面媒体上.<BR>虽然我对新技术不是很敏感,但还是略有耳闻。最近假期到来，便对这个开发技术进行了<BR>了解。WinFx大致分为WPF、WCF、WWF。其中，我对WPF(Windows Presentation Foundation)<BR>产生了很大的兴趣。因为WPF是表现层开发，开发的效果很直观，有吸引力。最重要的是开<BR>发出优秀用户界面的程序，WPF只需要很少的代码，这对于懒人来说是很好的消息，呵呵~~~~~<BR>WPF支持2D及3D动画界面的开发，功能确实很强大。它的开发将只局限于想象力。<BR>开发环境的构建：首先，你的系统必须是XP以上的。<BR>对于XP，必须要安装WinFx Runtime，Visual Studio 2005，windows SDK，Visual Studio Extensions for WinFX。<BR>对于vista，WinFx Runtime已集成到了系统中，所以不需要安装了。<BR>建立一个WPF工程时，会产生2个类型的文件，一个后缀名为xaml，另一个为cs。<BR>其中，xaml文件就是程序的UI表现方面的编程，要用到xaml语言，类似于xml。<BR>cs文件是用来做程序的逻辑实现的，是后台的。<BR>这样，WPF程序的实现真的非常的简单。实现以前win32或win Form相同的效果需要的代码量很少。<BR>而且WPF能实现其他方法很难实现的界面效果，比如以前单调的矩形输入框，WPF可以实现任意的形状。<BR>运行程序的方式可以有多种，你可以直接在网页浏览器中打开xaml文件查看效果。也可以做成窗口程序<BR>双击运行。<BR>另外,WPF还有一种文档应用,XPS格式。<BR>以上是我最近的对WPF的认识，还没最出个demo。继续努力<BR></P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/1758201620070220166443</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/1758201620070220166443</guid>
    <pubDate>Mon, 22 Jan 2007 12:16:06 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:04:13+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[键盘记录]]></title>	
    <link>http://yczyz.blog.163.com/blog/static/175820162007022102211845</link>
    <description><![CDATA[<div><P><A href="http://yczyz.blog.163.com/album/prevPhoto.do?photoId=_fks_6ifyCDzWxbIHLihCExjzk1aTR4SINj00" target=_blank></A><FONT size=5>前</FONT>段时间在看木马的一些技术,看到盗号的木马的键盘记录,觉得实现应该不复杂,<BR>网上也有类似的思路,闲着没事动动手.<BR>实现的主要思路是先获取窗口句柄,然后就是监听键盘输入啦,很简单.<BR>获取当前活动窗口并显示出来的实现: 
<TABLE style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid" cellSpacing=0 cellPadding=0 width="100%" border=1>
<TBODY>
<TR>
<TD>HWND hFocus = GetForegroundWindow();<BR>BOOL ReturnFlag = FALSE;&nbsp;&nbsp; <BR>if (hFocus != PreviousFocus)<BR>{<BR>&nbsp; PreviousFocus = hFocus;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; int WinLeng = GetWindowTextLength(hFocus);&nbsp;&nbsp;&nbsp;<BR>&nbsp; char *WindowCaption = (char*) malloc(sizeof(char) * (WinLeng + 2));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; GetWindowText(hFocus,WindowCaption,(WinLeng + 1));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; if (strlen(WindowCaption) &gt; 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp; printf("\r\nThe Active Windows Title: %s\r\n",WindowCaption);&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; ReturnFlag=TRUE;<BR>&nbsp; }<BR>&nbsp; free(WindowCaption);<BR>}</TD></TR></TBODY></TABLE></P>
<P>读取键盘输入的实现:<BR>先建立键盘阵列的数组,并写一个while循环遍历数组来监听键盘的输入,同时要判断是否有组合键.</P>
<P>实现效果:<BR><A href="http://yczyz.blog.163.com/album/prevPhoto.do?photoId=_fks_6ifyCDzWxbIHLihCExjzk1aTR4SINj00" target=_blank><IMG src="http://img.blog.163.com/photo/B1GeN0zo9A-hAv1ahkeOBA==/298644950290084068.jpg"></A></P>
<P>&nbsp;</P></div>]]></description>
	    <author><![CDATA[KEVIN CHAN]]></author>
	    <comments>http://yczyz.blog.163.com/blog/static/175820162007022102211845</comments>
    <slash:comments>0</slash:comments>
    <guid isPermaLink="true">http://yczyz.blog.163.com/blog/static/175820162007022102211845</guid>
    <pubDate>Mon, 22 Jan 2007 11:15:00 +0800</pubDate>
    <dcterms:modified>2007-06-21T21:04:36+08:00</dcterms:modified>
  </item>    
  <item>
  	<title><![CDATA[我的密友]]></title>	
    <link></link>
    <description><![CDATA[<div>
			<a href="http://wangxiaoman008.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/habQ0EzIcxba0omIxVOBrQ==/177892185281222731.jpg" border="0" />我的天空</a>
			<a href="http://blog.163.com/nana_77777/" target="_blank"><img src="http://ava.blog.163.com/photo/hwoGJrqP6lBK-_1hRKPbBA==/170292360912169041.jpg" border="0" />■NANA■</a>
			<a href="http://yqlx11111.blog.163.com/" target="_blank"><img src="http://ava.blog.163.com/photo/R16oLmZPVZpB4LdQwiHAGQ==/3408661967966176688.jpg" border="0" />--!LX~!~</a>
</div>]]></description>
    <guid isPermaLink="false">http://yczyz.blog.163.com/friends</guid>
    <pubDate>Tue, 1 Jan 2008 00:00:00 +0800</pubDate>
    <dcterms:modified>2008-01-01T00:00:00+08:00</dcterms:modified>
  </item>    
 </channel>
</rss>