<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>摩名 &#187; kingabird</title>
	<atom:link href="http://kingabird.com/index.php/author/kingabird/feed" rel="self" type="application/rss+xml" />
	<link>http://kingabird.com</link>
	<description>记录这里发生的这些和那些事情。</description>
	<lastBuildDate>Wed, 09 Sep 2009 09:22:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>读书笔记 &#8211; JavaScript DOM 编程艺术（上）</title>
		<link>http://kingabird.com/index.php/js/09/107</link>
		<comments>http://kingabird.com/index.php/js/09/107#comments</comments>
		<pubDate>Tue, 08 Sep 2009 11:04:05 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=107</guid>
		<description><![CDATA[拿到这本《JavaScript DOM 编程艺术》的书已经快过去半年，之前读过一遍后，就丢掉一边了，内容很简单，当初很适合我这种初学都使用（现在也依然是初学者），前几天又重新翻了一遍，使本来有些模糊的概念重新又清晰了起来。看来还是很有必要“温故而知新”的。现在进入正题……
说白了，JavaScript 对于实现网页中的各种效果都是通过控制 DOM 来实现的，这应该是这本书要讲的核心内容。
所谓 DOM，是英文 Document Object Model 的首字母缩写，中文可以译作“文档对象模型”。
Document ( 文档 ) 是一切开始的基本，没有 Document 也就无从谈起 DOM。
Object ( 对象 ) 所指的是 JavaScript 的对象，本书大部分只讨论 document 对象的属性和方法。
Model ( 模型 ) 就是网站内容的表现形式，网页当前代码的结构。
DOM 代表着被加载到浏览器窗口里的当前网页，浏览器向我们提供了当前网页的地图（或者说模型），而我们可以通过 JavaScript 去读取这张地图。

如何通过 JavaScript&#160; 控制 DOM 呢？
其实讲起来理论很简单
1. 查找网页中要修改的元素节点。
2. 然后能过各种方法进行操作（包括添加，修改，删除）

现在来说上面提到的第一点
查找网页中的目标元素
方法有 getElementById , getElementsByTagName , 这也是 DOM 操作中很重要的两个方法。这两个方法的具体使用方法请在 google 中自己搜索。（请注意 JavaScript&#160; 语言是区分大小写的，所以写成 GetElementById 或者 getElementbyid 是不行的。 ）

现在来说上面提到的第二点
操作网页中的 [...]]]></description>
			<content:encoded><![CDATA[<p>拿到这本《JavaScript DOM 编程艺术》的书已经快过去半年，之前读过一遍后，就丢掉一边了，内容很简单，当初很适合我这种初学都使用（现在也依然是初学者），前几天又重新翻了一遍，使本来有些模糊的概念重新又清晰了起来。看来还是很有必要“温故而知新”的。现在进入正题……</p>
<blockquote><p>说白了，JavaScript 对于实现网页中的各种效果都是通过控制 DOM 来实现的，这应该是这本书要讲的核心内容。</p>
<p>所谓 DOM，是英文 Document Object Model 的首字母缩写，中文可以译作“文档对象模型”。</p>
<p>Document ( 文档 ) 是一切开始的基本，没有 Document 也就无从谈起 DOM。</p>
<p>Object ( 对象 ) 所指的是 JavaScript 的对象，本书大部分只讨论 document 对象的属性和方法。</p>
<p>Model ( 模型 ) 就是网站内容的表现形式，网页当前代码的结构。</p>
<p>DOM 代表着被加载到浏览器窗口里的当前网页，浏览器向我们提供了当前网页的地图（或者说模型），而我们可以通过 JavaScript 去读取这张地图。</p>
</blockquote>
<blockquote><p>如何通过 JavaScript&#160; 控制 DOM 呢？</p>
<p>其实讲起来理论很简单</p>
<p>1. 查找网页中要修改的元素节点。</p>
<p>2. 然后能过各种方法进行操作（包括添加，修改，删除）</p>
</blockquote>
<blockquote><p>现在来说上面提到的第一点</p>
<p>查找网页中的目标元素</p>
<p>方法有 getElementById , getElementsByTagName , 这也是 DOM 操作中很重要的两个方法。这两个方法的具体使用方法请在 google 中自己搜索。（请注意 JavaScript&#160; 语言是区分大小写的，所以写成 GetElementById 或者 getElementbyid 是不行的。 ）</p>
</blockquote>
<blockquote><p>现在来说上面提到的第二点</p>
<p>操作网页中的 DOM 的元素，这个地方还是用实例的方法比较好说</p>
<p>例一：在页面中添加元素</p>
<p>var example = document.getElementById( “example ” ); // 查找页面中 id 为 example 的元素节点。</p>
<p>var p = document.createElement(“p”); // 创建一个 p 元素。</p>
<p>var text = document.createTextNode(“这里是要添加的文本”); // 创建添加文本</p>
<p>p.appendChild( text&#160; );&#160; // 将 text 文本添加到 p 元素里</p>
<p>example.appendChild( p ); // 将 p 元素添加到 id 为 example 的元素中</p>
<p>然后执行此函数就可以了。</p>
<p>&#160;</p>
<p>例二：通过获取页面中目标元素的属性值并把该值赋予其它元素的方法来实现页面元素的修改</p>
<p>var example = document.getElementById( “example ” );</p>
<p>var example_a = example.document.getElementsByTagName( “a” ); // 获取页面中 id 为 example 的元素节点里的链接元素。</p>
<p>var link = example_a.getAttribute(“href”); // 获取目标元素的 href 值，也就是链接地址。</p>
<p>var holder = document.getElementById( “holder” ); // 获取页面中 id 为 holder 的元素节点</p>
<p>holder.setAttribute( “href”,link );&#160; // 将 link 通过 setAttribute 方法赋予 holder 的 href 属性</p>
<p>&#160;</p>
</p>
</blockquote>
<p>更多 DOM 操作，请 <a href="http://www.w3school.com.cn/xmldom/dom_nodes_get.asp" target="_blank">点击</a> 这里。</p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/js/09/107/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>block 和 inline</title>
		<link>http://kingabird.com/index.php/css/08/105</link>
		<comments>http://kingabird.com/index.php/css/08/105#comments</comments>
		<pubDate>Mon, 17 Aug 2009 11:29:21 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=105</guid>
		<description><![CDATA[block-level elements (块级元素)
inline elements (内联元素)
所有允许被 BODY 元素包含的元素，要么是块级的；要么是内联的；要么既可以算作块级的，也可以算作内联的。但是绝对不存在一个能被BODY包含，但即非块级，又非内联的元素。
更直白点说块级元素就是元素本身会占据一个矩形的位置，是一个 box，默认一个块级元素会占用一行的位置，而内联元素是只在一行内占据一个或者几个字符的位置。
块级元素实例
&#60;div&#62;这里是测试文本&#60;/div&#62;

内联元素实例
&#60;div&#62;这里是测试文本&#60;span&#62;这里是内联样式的文本&#60;/span&#62;&#60;/div&#62;

常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等等。
常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等等。
另外，SCRIPT, OBJECT, MAP, BUTTON, DEL, INS 这些元素，既可以作为块级元素，也可以作为内联元素。
]]></description>
			<content:encoded><![CDATA[<p><strong>block-level elements (块级元素)</strong></p>
<p><strong>inline elements (内联元素)</strong></p>
<p><strong>所有允许被 BODY 元素包含的元素，要么是块级的；要么是内联的；要么既可以算作块级的，也可以算作内联的。但是绝对不存在一个能被BODY包含，但即非块级，又非内联的元素。</strong></p>
<p><strong>更直白点说块级元素就是元素本身会占据一个矩形的位置，是一个 box，默认一个块级元素会占用一行的位置，而内联元素是只在一行内占据一个或者几个字符的位置。</strong></p>
<p><strong>块级元素实例</strong></p>
<blockquote><p><strong><font style="background-color: #ffffff">&lt;div&gt;这里是测试文本&lt;/div&gt;</font></strong></p>
</blockquote>
<p><strong>内联元素实例</strong></p>
<blockquote><p><strong><font style="background-color: #ffffff">&lt;div&gt;这里是测试文本&lt;span&gt;这里是内联样式的文本&lt;/span&gt;&lt;/div&gt;</font></strong></p>
</blockquote>
<p>常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等等。</p>
<p>常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等等。</p>
<p>另外，SCRIPT, OBJECT, MAP, BUTTON, DEL, INS 这些元素，既可以作为块级元素，也可以作为内联元素。</p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/css/08/105/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 作者显示作者相关函数</title>
		<link>http://kingabird.com/index.php/php/07/98</link>
		<comments>http://kingabird.com/index.php/php/07/98#comments</comments>
		<pubDate>Mon, 06 Jul 2009 07:11:29 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=98</guid>
		<description><![CDATA[这句是用来读取WordPress后台设定的作者昵称，如果不愿意使用昵称而要使用名字，也可以使用其它函数：the_author显示作者名字；the_author_login显示作者登录名；the_author_url显示作者的网站地址。
 显示发布时间
 显示文章分类。
如果作者就是博客管理员，则会在登录状态下显示edit编辑按钮
the_author 显示文章的作者
the_author_description 显示文章作者的描述（作者个人资料中的描述）
the_author_login 显示文章作者的登录名
the_author_firstname 显示文章作者的firstname（名）
the_author_lastname 显示文章作者的lastname（姓）
the_author_nickname 显示文章作者的昵称
the_author_ID 显示文章作者的ID号
the_author_email 显示文章作者的电子邮箱
the_author_url 显示文章作者的网站地址
the_author_link (添加于2.1版本) 显示一个以文章作者名为链接名，链接地址为文章作者的网址的链接。
the_author_icq (不推荐使用) 显示文章作者的icq
the_author_aim 显示文章作者的aim
the_author_yim 显示文章作者的yim
the_author_msn (不推荐使用) 显示文章作者的msn
the_author_posts 显示文章作者已发表文章的篇数
the_author_posts_link 显示一个链接到文章作者已发表文章列表的链接
list_authors (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下：
参数：
optioncount：是否显示各作者已发表文章的篇数，可选值为：TRUE 和 FALSE（默认值）
exclude_admin：是否不列出管理员，可选值为：TRUE（默认值） 和 FALSE
show_fullname ：是否显示各作者的全名，可选值为：TRUE 和 FALSE（默认值）
hide_empty：是否不显示发表文章数为0的作者，可选值为：TRUE（默认值） 和 FALSE
feed：链接到各个作者发表文章的RSS供稿种子链接名，默认为空，不显示RSS供稿种子
feed_image：供稿种子的图片地址，如果提供此项，则覆盖上面的feed，默认为空
例如：
代表不显示各个作者的发布文章数，列出管理员，显示各作者的全名，显示发布文章数为0的作者和不显示RSS供稿种子。


wp_list_authors 显示blog作者列表，如果作者发表过文章，则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。
参数：
optioncount：是否显示各个作者发表文章数，可选值：true 和 false（默认值）
exclude_admin：是否不显示“admin”用户，可选值：true（默认值） 和 false
show_fullname：是否显示各个作者的全名，如果不显示，将显示昵称。可选值：true 和 false（默认值）
hide_empty：是否不显示发表文章数为0的作者，可选值：true（默认值） 和 false
feed：链接到各个作者发表文章的RSS供稿种子链接名，默认为空，不显示RSS供稿种子
feed_image：供稿种子的图片地址，如果提供此项，则覆盖上面的feed，默认为空
例如：

原文地址：http://kingabird.com/wp-admin/post-new.php
]]></description>
			<content:encoded><![CDATA[<p><?php the_author_nickname(); ?>这句是用来读取<a class="st_tag internal_tag" title="标签 wordpress 下的日志" rel="tag" href="http://suiyingsky.cn/archives/skytag/wordpress">WordPress</a>后台设定的作者昵称，如果不愿意使用昵称而要使用名字，也可以使用其它函数：the_author显示作者名字；the_author_login显示作者登录名；the_author_url显示作者的网站地址。</p>
<p><?php the_time(’F dS, Y’); ?> 显示发布时间</p>
<p><?php the_category(’, ‘) ?> 显示文章分类。</p>
<p><?php edit_post_link(’edit’, ‘(’, ‘)’); ?>如果作者就是博客管理员，则会在登录状态下显示edit编辑按钮</p>
<p>the_author 显示文章的作者</p>
<p>the_author_description 显示文章作者的描述（作者个人资料中的描述）</p>
<p>the_author_login 显示文章作者的登录名</p>
<p>the_author_firstname 显示文章作者的firstname（名）</p>
<p>the_author_lastname 显示文章作者的lastname（姓）</p>
<p>the_author_nickname 显示文章作者的昵称</p>
<p>the_author_ID 显示文章作者的ID号</p>
<p>the_author_email 显示文章作者的电子邮箱</p>
<p>the_author_url 显示文章作者的网站地址</p>
<p>the_author_link (添加于2.1版本) 显示一个以文章作者名为链接名，链接地址为文章作者的网址的链接。</p>
<p>the_author_icq (不推荐使用) 显示文章作者的icq</p>
<p>the_author_aim 显示文章作者的aim</p>
<p>the_author_yim 显示文章作者的yim</p>
<p>the_author_msn (不推荐使用) 显示文章作者的msn</p>
<p>the_author_posts 显示文章作者已发表文章的篇数</p>
<p>the_author_posts_link 显示一个链接到文章作者已发表文章列表的链接</p>
<p>list_authors (不推荐使用) 显示blog所有作者和他们的相关信息。完整函数如下：</p>
<p>参数：</p>
<p>optioncount：是否显示各作者已发表文章的篇数，可选值为：TRUE 和 FALSE（默认值）</p>
<p>exclude_admin：是否不列出管理员，可选值为：TRUE（默认值） 和 FALSE</p>
<p>show_fullname ：是否显示各作者的全名，可选值为：TRUE 和 FALSE（默认值）</p>
<p>hide_empty：是否不显示发表文章数为0的作者，可选值为：TRUE（默认值） 和 FALSE</p>
<p>feed：链接到各个作者发表文章的RSS供稿种子链接名，默认为空，不显示RSS供稿种子</p>
<p>feed_image：供稿种子的图片地址，如果提供此项，则覆盖上面的feed，默认为空</p>
<p>例如：</p>
<p>代表不显示各个作者的发布文章数，列出管理员，显示各作者的全名，显示发布文章数为0的作者和不显示RSS供稿种子。</p>
<p><?php list_authors(optioncount, exclude_admin, show_fullname, hide_empty, ‘feed’, ‘feed_image’); ?></p>
<p><?php list_authors(FALSE, FALSE, TRUE, FALSE); ?></p>
<p>wp_list_authors 显示blog作者列表，如果作者发表过文章，则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。</p>
<p>参数：</p>
<p>optioncount：是否显示各个作者发表文章数，可选值：true 和 false（默认值）</p>
<p>exclude_admin：是否不显示“admin”用户，可选值：true（默认值） 和 false</p>
<p>show_fullname：是否显示各个作者的全名，如果不显示，将显示昵称。可选值：true 和 false（默认值）</p>
<p>hide_empty：是否不显示发表文章数为0的作者，可选值：true（默认值） 和 false</p>
<p>feed：链接到各个作者发表文章的RSS供稿种子链接名，默认为空，不显示RSS供稿种子</p>
<p>feed_image：供稿种子的图片地址，如果提供此项，则覆盖上面的feed，默认为空</p>
<p>例如：</p>
<p><?php wp_list_authors(’show_fullname=1&#038;optioncount=1′); ?></p>
<p>原文地址：http://kingabird.com/wp-admin/post-new.php</p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/php/07/98/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>一点点广州的印象</title>
		<link>http://kingabird.com/index.php/live/06/88</link>
		<comments>http://kingabird.com/index.php/live/06/88#comments</comments>
		<pubDate>Thu, 11 Jun 2009 11:43:02 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[Live]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=88</guid>
		<description><![CDATA[五月底去了趟广州玩，一点点照片放出。

首都机场

北京路


北京路

上下九步行街

白云机场 指示牌

白云机场 A 登记口
]]></description>
			<content:encoded><![CDATA[<p>五月底去了趟广州玩，一点点照片放出。</p>
<p><a title="photo sharing" href="http://www.flickr.com/photos/57671847@N00/3615858421/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3332/3615858421_78af98d165.jpg" alt="" width="500" /></a><br />
首都机场</p>
<p><a href="http://www.flickr.com/photos/57671847@N00/sets/72157619507559895/detail/" target="_blank"><img style="border: solid 2px #000000;" title="北京路" src="http://farm3.static.flickr.com/2425/3616676448_b83954307d_o.jpg" alt="" width="500" /></a><br />
北京路</p>
<p><span id="more-88"></span></p>
<p><a href="http://www.flickr.com/photos/57671847@N00/sets/72157619507559895/detail/" target="_blank"><img style="border: solid 2px #000000;" title="北京路" src="http://farm4.static.flickr.com/3555/3616676578_ae30cc7b76_o.jpg" alt="" width="500" /></a><br />
北京路</p>
<p><a href="http://www.flickr.com/photos/57671847@N00/sets/72157619507559895/detail/" target="_blank"><img style="border: solid 2px #000000;" title="上下九步行街" src="http://farm3.static.flickr.com/2436/3615857749_d6e88cc087_o.jpg" alt="" width="500" /></a><br />
上下九步行街</p>
<p><a href="http://www.flickr.com/photos/57671847@N00/sets/72157619507559895/detail/" target="_blank"><img style="border: solid 2px #000000;" title="白云机场 指示牌" src="http://farm3.static.flickr.com/2460/3616677050_ba6443c5b3_b.jpg" alt="" width="500" /></a><br />
白云机场 指示牌</p>
<p><a href="http://www.flickr.com/photos/57671847@N00/sets/72157619507559895/detail/" target="_blank"><img style="border: solid 2px #000000;" title="白云机场 A 登记口" src="http://farm4.static.flickr.com/3386/3616677250_652c1a394c_o.jpg" alt="" width="500" /></a><br />
白云机场 A 登记口</p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/live/06/88/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPhone 版网站开发小记</title>
		<link>http://kingabird.com/index.php/js/05/82</link>
		<comments>http://kingabird.com/index.php/js/05/82#comments</comments>
		<pubDate>Tue, 26 May 2009 15:46:41 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=82</guid>
		<description><![CDATA[以下的东西不是什么新东西，只是这两天在给基金会网站做 iPhone 版的时候，用到一些小东西，虽然不是什么难东西，但是却是很有用的东西，这里记录一下。
1.指定页面的宽度和其它参数，在meta定义可以使得页面宽度让iPhone知道限定屏幕宽度代码如下:
&#60;meta name=”viewport” content=”width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;”/&#62;
看字面理解就是：宽度320，默认比例1.0，最大放大比例1.0，用户不能放大，如果想实现缩放效果，可以细节调整比例，设置缩放比例即可。
把以上元素应用在页面就可以啦~~网页编码gbk和utf-8无所谓
2.设置页面加载完成的位置，safari浏览器上面有个搜索框，进入网站后就显示在那很不友好，你可以加上下面的代码，向下移动一下网页就好了，体验很好
实现的脚本



&#60;script type=&#8220;”application/x-javascript”&#8220;&#62;&#60;!&#8211;
addEventListener(”load”, function()
{
setTimeout(hideAddressbar, 100);
}, false);
 
function hideAddressbar()
{
window.scrollTo(0, 1);
//xy位置，根据页面进行调整
}
// &#8211;&#62;&#60;/script&#62;



3.让用户访问www页面自动跳转到iPhone页面，php方式：$_SERVER[HTTP_USER_AGENT]的值是：
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; zh-cn) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3
确认一下有没有iPhone字样也许就可以了



if(strstr($_SERVER[HTTP_USER_AGENT],&#8220;iPhone&#8220;)){
header(&#8220;location:/iphone/&#8220;);
die();
}



js方式：



&#60;script type=&#8220;text/javascript&#8220;&#62;&#60;!&#8211;
var CFMOBI_TOUCH = ["iPhone","iPod","Android","BlackBerry9530","LG-TU915 Obigo","LGE VX"];
for (var i = 0; i &#60; CFMOBI_TOUCH.length; i++) {
if (navigator.userAgent.indexOf(CFMOBI_TOUCH[i]) != -1) {
 
//do something…..
 
break;
}
}
// &#8211;&#62;&#60;/script&#62;



]]></description>
			<content:encoded><![CDATA[<p>以下的东西不是什么新东西，只是这两天在给基金会网站做 iPhone 版的时候，用到一些小东西，虽然不是什么难东西，但是却是很有用的东西，这里记录一下。</p>
<p>1.指定页面的宽度和其它参数，在meta定义可以使得页面宽度让iPhone知道限定屏幕宽度代码如下:</p>
<blockquote><p>&lt;meta name=”viewport” content=”width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;”/&gt;</p></blockquote>
<p>看字面理解就是：宽度320，默认比例1.0，最大放大比例1.0，用户不能放大，如果想实现缩放效果，可以细节调整比例，设置缩放比例即可。</p>
<p>把以上元素应用在页面就可以啦~~网页编码gbk和utf-8无所谓</p>
<p>2.设置页面加载完成的位置，safari浏览器上面有个搜索框，进入网站后就显示在那很不友好，你可以加上下面的代码，向下移动一下网页就好了，体验很好</p>
<p>实现的脚本</p>
<div class="hl-surround">
<blockquote>
<ol class="hl-main ln-hide" title="Double click to show line number." ondblclick="linenumber(this)">
<li class="hl-firstline"><span style="color: gray;">&lt;</span><span style="color: blue;">script</span><span style="color: gray;"> </span><span style="color: blue;">type</span><span style="color: gray;">=</span><span style="color: #8b0000;">&#8220;</span><span style="color: red;">”application/x-javascript”</span><span style="color: #8b0000;">&#8220;</span><span style="color: gray;">&gt;&lt;!&#8211;</span></li>
<li><span style="color: blue;">addEventListener</span><span style="color: olive;">(</span><span style="color: gray;">”</span><span style="color: blue;">load</span><span style="color: gray;">”, </span><span style="color: green;">function</span><span style="color: olive;">()</span></li>
<li><span style="color: olive;">{</span></li>
<li><span style="color: blue;">setTimeout</span><span style="color: olive;">(</span><span style="color: blue;">hideAddressbar</span><span style="color: gray;">, </span><span style="color: maroon;">100</span><span style="color: olive;">)</span><span style="color: gray;">;</span></li>
<li><span style="color: olive;">}</span><span style="color: gray;">, </span><span style="color: green;">false</span><span style="color: olive;">)</span><span style="color: gray;">;</span></li>
<li><span style="color: gray;"> </span></li>
<li><span style="color: green;">function</span><span style="color: gray;"> </span><span style="color: blue;">hideAddressbar</span><span style="color: olive;">()</span></li>
<li><span style="color: olive;">{</span></li>
<li><span style="color: teal;">window</span><span style="color: gray;">.</span><span style="color: blue;">scrollTo</span><span style="color: olive;">(</span><span style="color: maroon;">0</span><span style="color: gray;">, </span><span style="color: maroon;">1</span><span style="color: olive;">)</span><span style="color: gray;">;</span></li>
<li><span style="color: #ffa500;">//xy位置，根据页面进行调整</span></li>
<li><span style="color: olive;">}</span></li>
<li><span style="color: #ffa500;">// &#8211;&gt;&lt;/script&gt;</span></li>
</ol>
</blockquote>
</div>
<p>3.让用户访问www页面自动跳转到iPhone页面，php方式：$_SERVER[HTTP_USER_AGENT]的值是：<br />
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; zh-cn) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3<br />
确认一下有没有iPhone字样也许就可以了</p>
<div class="hl-surround">
<blockquote>
<ol class="hl-main ln-show" title="Double click to hide line number." ondblclick="linenumber(this)">
<li class="hl-firstline"><span style="color: green;">if</span><span style="color: olive;">(</span><span style="color: blue;">strstr</span><span style="color: olive;">(</span><span style="color: #00008b;">$_SERVER</span><span style="color: olive;">[</span><span style="color: blue;">HTTP_USER_AGENT</span><span style="color: olive;">]</span><span style="color: gray;">,</span><span style="color: #8b0000;">&#8220;</span><span style="color: red;">iPhone</span><span style="color: #8b0000;">&#8220;</span><span style="color: olive;">)){</span></li>
<li><span style="color: blue;">header</span><span style="color: olive;">(</span><span style="color: #8b0000;">&#8220;</span><span style="color: red;">location:/iphone/</span><span style="color: #8b0000;">&#8220;</span><span style="color: olive;">)</span><span style="color: gray;">;</span></li>
<li><span style="color: green;">die</span><span style="color: olive;">()</span><span style="color: gray;">;</span></li>
<li><span style="color: olive;">}</span></li>
</ol>
</blockquote>
</div>
<p>js方式：</p>
<div class="hl-surround">
<blockquote>
<ol class="hl-main ln-hide" title="Double click to show line number." ondblclick="linenumber(this)">
<li class="hl-firstline"><span style="color: gray;">&lt;</span><span style="color: blue;">script</span><span style="color: gray;"> </span><span style="color: blue;">type</span><span style="color: gray;">=</span><span style="color: #8b0000;">&#8220;</span><span style="color: red;">text/javascript</span><span style="color: #8b0000;">&#8220;</span><span style="color: gray;">&gt;&lt;!&#8211;</span></li>
<li><span style="color: green;">var</span><span style="color: gray;"> </span><span style="color: blue;">CFMOBI_TOUCH</span><span style="color: gray;"> = </span><span style="color: olive;">[</span><span style="color: #8b0000;">"</span><span style="color: red;">iPhone</span><span style="color: #8b0000;">"</span><span style="color: gray;">,</span><span style="color: #8b0000;">"</span><span style="color: red;">iPod</span><span style="color: #8b0000;">"</span><span style="color: gray;">,</span><span style="color: #8b0000;">"</span><span style="color: red;">Android</span><span style="color: #8b0000;">"</span><span style="color: gray;">,</span><span style="color: #8b0000;">"</span><span style="color: red;">BlackBerry9530</span><span style="color: #8b0000;">"</span><span style="color: gray;">,</span><span style="color: #8b0000;">"</span><span style="color: red;">LG-TU915 Obigo</span><span style="color: #8b0000;">"</span><span style="color: gray;">,</span><span style="color: #8b0000;">"</span><span style="color: red;">LGE VX</span><span style="color: #8b0000;">"</span><span style="color: olive;">]</span><span style="color: gray;">;</span></li>
<li><span style="color: green;">for</span><span style="color: gray;"> </span><span style="color: olive;">(</span><span style="color: green;">var</span><span style="color: gray;"> </span><span style="color: blue;">i</span><span style="color: gray;"> = </span><span style="color: maroon;">0</span><span style="color: gray;">; </span><span style="color: blue;">i</span><span style="color: gray;"> &lt; </span><span style="color: blue;">CFMOBI_TOUCH</span><span style="color: gray;">.</span><span style="color: blue;">length</span><span style="color: gray;">; </span><span style="color: blue;">i</span><span style="color: gray;">++</span><span style="color: olive;">)</span><span style="color: gray;"> </span><span style="color: olive;">{</span></li>
<li><span style="color: green;">if</span><span style="color: gray;"> </span><span style="color: olive;">(</span><span style="color: teal;">navigator</span><span style="color: gray;">.</span><span style="color: blue;">userAgent</span><span style="color: gray;">.</span><span style="color: blue;">indexOf</span><span style="color: olive;">(</span><span style="color: blue;">CFMOBI_TOUCH</span><span style="color: olive;">[</span><span style="color: blue;">i</span><span style="color: olive;">])</span><span style="color: gray;"> != -</span><span style="color: maroon;">1</span><span style="color: olive;">)</span><span style="color: gray;"> </span><span style="color: olive;">{</span></li>
<li><span style="color: gray;"> </span></li>
<li><span style="color: #ffa500;">//do something…..</span></li>
<li><span style="color: gray;"> </span></li>
<li><span style="color: green;">break</span><span style="color: gray;">;</span></li>
<li><span style="color: olive;">}</span></li>
<li><span style="color: olive;">}</span></li>
<li><span style="color: #ffa500;">// &#8211;&gt;&lt;/script&gt;</span></li>
</ol>
</blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/js/05/82/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>php5 + mysql5 + phpMyAdmin</title>
		<link>http://kingabird.com/index.php/php/04/79</link>
		<comments>http://kingabird.com/index.php/php/04/79#comments</comments>
		<pubDate>Mon, 13 Apr 2009 17:09:38 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kingabird.com/index.php/php/04/79</guid>
		<description><![CDATA[安装MYSQL5   &#160; 1：在WIN装好后！在windows 的系统目录下，就是Windows(XP/2000)或Wint(98)     建一个名为my.ini的文件    输入如下内容：    [mysqld]    basedir=c:/Program Files/MySQL/MySQL Server 5.0/    datadir=c:/Program Files/MySQL/MySQL Server 5.0/data    [WinMySQLAdmin]    Server=C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqld-nt.exe    注：C:/Program Files/MySQL/MySQL Server 5.0/为MYSQL的安装路径。根据你自&#160;&#160; &#160;&#160; 己的定！建此文件的目的是为了使MYSQL为WIN系统服务并隋开机启动，很重要的   [...]]]></description>
			<content:encoded><![CDATA[<p>安装MYSQL5   <br />&#160; 1：在WIN装好后！在windows 的系统目录下，就是Windows(XP/2000)或Wint(98)     <br />建一个名为my.ini的文件    <br />输入如下内容：    <br />[mysqld]    <br />basedir=c:/Program Files/MySQL/MySQL Server 5.0/    <br />datadir=c:/Program Files/MySQL/MySQL Server 5.0/data    <br />[WinMySQLAdmin]    <br />Server=C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqld-nt.exe    <br />注：C:/Program Files/MySQL/MySQL Server 5.0/为MYSQL的安装路径。根据你自&#160;&#160; <br />&#160;&#160; 己的定！建此文件的目的是为了使MYSQL为WIN系统服务并隋开机启动，很重要的    <br />！    <br />保存！    <br />2：运行&#8211;cmd&#160; 打开DOS    <br />&#160;&#160;&#160; 先后输入     <br />&#160;&#160;&#160; cd \    <br />&#160;&#160;&#160; cd C:/Program Files/MySQL/MySQL Server 5.0/bin(MYSQL的安装路径)    <br />&#160;&#160;&#160; mysqld-nt &#8211;install    <br />&#160;&#160;&#160; net start mysql    <br />&#160;&#160;&#160; 退出。    <br />&#160;&#160; 重启apache！    <br />5：测试是否成功！    <br />&#160;&#160; 在c:\web下建文件test.php    <br />&#160;&#160; 内容为：    <br />&#160;&#160; &lt;?php    <br />&#160;&#160; $link=mysql_connect(&#8217;localhost&#8217;,'root&#8217;,'123456&#8242;);    <br />&#160;&#160; if(!$link) echo &quot;fail&quot;;    <br />&#160;&#160; else echo &quot;success&quot;;    <br />&#160;&#160; mysql_close();    <br />&#160;&#160; ?&gt;    <br />&#160;&#160; 保存！    <br />&#160; 在地址栏打入<a href="http://localhost/test.php">http://localhost/test.php</a>&#160;&#160; 显示success时就可以的，当然     <br />&#160;&#160; 你也可以用phpMyAdmin来测！</p>
<p>phpMyAdmin&#160; <br />解压到c:\web下，在地址栏打入<a href="http://localhost/phpMyAdmin/">http://localhost/phpMyAdmin/</a>就可以管理&#160;&#160; </p>
<blockquote><h3>关于Fatal error: Call to undefined function mysql_connect()</h3>
<p>&#160;</p>
<p>今天我也碰到了这个问题，网上搜索了一下原来也有很多人曾经碰到过。</p>
<p>大致大家的解决办法是：</p>
<p>1。在Php的目录下 将Php.ini中的 extension=php_mysql.dll前的 “；”号去掉</p>
<p>2.将php5ts.dll,libmysql.dll 拷到 系统目录（System32)里.</p>
<p>3.察看<a href="http://www.phpchina.com/"><u><strong>Apache</strong></u></a>的 httpd.conf 文件中的PhpIniDir的设置 要指向 Php的目录。</p>
<p>不过我尝试了以上很多<a href="http://www.phpchina.com/"><u><strong>方法</strong></u></a>，没有解决。</p>
<p>最后我将 httpd.conf中的 PhpIniDir=&quot;C:/Php&quot;,改变成 PhpIniDir=&quot;C:\Php&quot;;就好了。。</p>
<p>又是反斜杠的问题，不过原因我还不清楚。</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/php/04/79/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache2.0.x + php5 配置的经历</title>
		<link>http://kingabird.com/index.php/php/04/74</link>
		<comments>http://kingabird.com/index.php/php/04/74#comments</comments>
		<pubDate>Sun, 12 Apr 2009 17:22:21 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://kingabird.com/index.php/js/04/</guid>
		<description><![CDATA[刚刚,终于把 Apache + php 的环境配置成功，并通过测试成功。
说来，这个东西折腾了我好几天,，当初以为网上那么多配置的方法，应该很快就可以搞定，可是没想过程中确遇到N多的意想不到的错误。
Apache + php 的配置教程网上可谓是多如牛毛，可以按照诸多方法一一实验，均告失败。再看看发布时间，居然大多都是06年或者07年的方法，现在都09年了……
现在就来说说自己遇到的一些问题吧。
从网上下载了最近的 Apache2.2.11 版本和 PHP5，然后按照网上很多教程里的修改方法进行，结果在修改 Apache 配置文件 httpd.conf 的时候遇到的莫大的问题，按照网上说的加入 LoadModule php5_module D:/ApacheGroup/php5/php5apache2.dll 后，重启 Apache 失败，前后检查过多次，自己确定自己修改的没有问题，然后以后是程序安装的有问题，就卸载了后重新安装，可修改后的结果依旧是无法启动 Apache，这个结果太认人郁闷了。查了 N 多教程，重装了 N 次 Apache，可是最后问题依旧没有解决。好吧，最后只好键入最终的关键字进行搜索，终于看到了自己想要的结果，原来是 Apache2.2 跟 PHP5 不兼容…… 
这就是问题的根源所在了……
我好像也没有在网上找到官方的说明，所以就只有换回到 2.0.x 的版本上了，看来追求最近的东西并不是什么好事情。
接下的事情就是顺理成章的事了，网上的很多方法都没有问题，下面还是简单的再罗嗦下配置步骤吧，也算是对自己的一个总结
1.首先去下载 Apache 2.0.x 版本和 PHP5。
2.安装 Apache，这个就不用说了吧，玩过电脑的地球人都应该知道怎么装。解压 PHP5 到自己喜欢的路径下。
3.配置 PHP5
－将php文件夹下的所有的dll文件复制到c:/windows/system32/下(包括php5目录下的ext文件夹下所有dll文件)
－ 将“php.ini-recommended”文件复制到“c:/windows”下，更名为“php.ini”。
－修改刚才已经更名的php.ini文件：
&#160;&#160;&#160;&#160; (1)查找“extension_dir”字段，赋值为php解压路径中的ext目录下，如&#34;D:\php5\ext&#34;
&#160;&#160;&#160;&#160; (2)查找 cgi.force_redirect 字串.默认值为1.将其修改为0.并取消前面的;号
－分别查找以下四句话，将其之前的;去掉。      &#160;&#160;&#160;&#160; extension=php_mbstring.dll(宽字符，用于支持PhpMyAdmin，避免出现字符显示问题)  [...]]]></description>
			<content:encoded><![CDATA[<p>刚刚,终于把 Apache + php 的环境配置成功，并通过测试成功。</p>
<p>说来，这个东西折腾了我好几天,，当初以为网上那么多配置的方法，应该很快就可以搞定，可是没想过程中确遇到N多的意想不到的错误。</p>
<p>Apache + php 的配置教程网上可谓是多如牛毛，可以按照诸多方法一一实验，均告失败。再看看发布时间，居然大多都是06年或者07年的方法，现在都09年了……</p>
<p>现在就来说说自己遇到的一些问题吧。</p>
<p>从网上下载了最近的 Apache2.2.11 版本和 PHP5，然后按照网上很多教程里的修改方法进行，结果在修改 Apache 配置文件 httpd.conf 的时候遇到的莫大的问题，按照网上说的加入 LoadModule php5_module D:/ApacheGroup/php5/php5apache2.dll 后，重启 Apache 失败，前后检查过多次，自己确定自己修改的没有问题，然后以后是程序安装的有问题，就卸载了后重新安装，可修改后的结果依旧是无法启动 Apache，这个结果太认人郁闷了。查了 N 多教程，重装了 N 次 Apache，可是最后问题依旧没有解决。好吧，最后只好键入最终的关键字进行搜索，终于看到了自己想要的结果，原来是 Apache2.2 跟 PHP5 不兼容…… </p>
<p>这就是问题的根源所在了……</p>
<p>我好像也没有在网上找到官方的说明，所以就只有换回到 2.0.x 的版本上了，看来追求最近的东西并不是什么好事情。</p>
<p>接下的事情就是顺理成章的事了，网上的很多方法都没有问题，下面还是简单的再罗嗦下配置步骤吧，也算是对自己的一个总结</p>
<blockquote><p>1.首先去下载 Apache 2.0.x 版本和 PHP5。</p>
<p>2.安装 Apache，这个就不用说了吧，玩过电脑的地球人都应该知道怎么装。解压 PHP5 到自己喜欢的路径下。</p>
<p>3.配置 PHP5</p>
<p>－将php文件夹下的所有的dll文件复制到c:/windows/system32/下(包括php5目录下的ext文件夹下所有dll文件)</p>
<p>－ 将“php.ini-recommended”文件复制到“c:/windows”下，更名为“php.ini”。</p>
<p>－修改刚才已经更名的php.ini文件：</p>
<p>&#160;&#160;&#160;&#160; (1)查找“extension_dir”字段，赋值为php解压路径中的ext目录下，如&quot;D:\php5\ext&quot;</p>
<p>&#160;&#160;&#160;&#160; (2)查找 cgi.force_redirect 字串.默认值为1.将其修改为0.并取消前面的;号</p>
<p>－分别查找以下四句话，将其之前的;去掉。      <br />&#160;&#160;&#160;&#160; extension=php_mbstring.dll(宽字符，用于支持PhpMyAdmin，避免出现字符显示问题)       <br />&#160;&#160;&#160;&#160; extension=php_mcrypt.dll(用于支持PhpMyAdmin)       <br />&#160;&#160;&#160;&#160; extension=php_mysql.dll（MySql模块，开启之后才能访问MySql数据库）       <br />&#160;&#160;&#160;&#160; extension=php_mysqli.dll（MySql模块）</p>
<p>4.配置Apache以支持php5:</p>
<p>打开apache安装目录下的“conf”文件夹，apache的配置主要依靠httpd.conf，用编译工具打开该文件，修改其中的某些字段：</p>
<p>－Listen 字段， 其后默认值为80，你可以修改该端口值以改变apache服务的端口（不至于和tomcat等工具的端口发生冲突）</p>
<p>－DocumentRoot 这是你自己网页文件的放置目录，默认为apache安装目录下的“htdoc”文件夹，也可以改为本机上的其他目录，采用绝对路径。</p>
<p>－我使用的是：DocumentRoot &quot;D:/phpwork/&quot;（新建的工作目录）&#160;&#160;&#160; </p>
<p>－设置起始页：</p>
<p>注意文件名之间用空格隔开，而不是用逗号      <br />&#160;&#160;&#160;&#160; DirectoryIndex index.php index.html default.php default.html index.htm       </p>
<p>－配置php模块：在#LoadModule（有一排的代码） 后加上两句话（此处为我的安装目录，可根据自己的安装情况进行适当的**）</p>
<p>&#160;&#160; PHPIniDir &quot;D:/php5/&quot;      <br />&#160;&#160; LoadModule php5_module &quot;D:/php5/php5apache2_2.dll&quot;</p>
<p>保存httpd.conf文件，重启Apache。</p>
<p>最后</p>
<p>在phpwork下新建一个HelloWorld.php文件</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &lt;?php</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; echo &quot;HelloWorld!&lt;br&gt;&quot;;</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; phpinfo();</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ?&gt;</p>
<p>&#160; 在浏览器中输入<a href="http://localhost/">http://localhost/</a>:你自己设置的端口号/HelloWorld.php.</p>
<p>&#160; 至此将输出HelloWorld以及php配置环境变量信息。</p>
</blockquote>
<blockquote><p>启动 Apache 的小技巧</p>
<p>在命令行 cmd 中 cd 至 Apache 所有的目录</p>
<p>cd apache所有目录     <br />cd bin      <br />apache -k install      <br />apache -k start</p>
<p>启动ok!</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/php/04/74/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 CSS Naked Day &#8211; 2009网页裸奔节</title>
		<link>http://kingabird.com/index.php/css/04/67</link>
		<comments>http://kingabird.com/index.php/css/04/67#comments</comments>
		<pubDate>Thu, 09 Apr 2009 03:19:12 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=67</guid>
		<description><![CDATA[





今天一大早起来就看到 twitter 好多人在讲 CSS Naked Day，以前还真是不知道这是个什么东西，就顺便搜索了一下。
看来自己落伍了很多啊。
以下转自：http://blog.taoxian.info/2009-css-naked-day.html
CSS Naked Day 的来历
CSS Naked Day，也称CSS裸奔节或CSS裸奔日，
在裸奔节这天，参加裸奔节的Blog 将会去除页面上所有的 CSS 样式和广告裸奔整整一天,通过这个节日来重视CSS的重要性.当然你的网站如果是用table来布局的话这个节日对你来说并不是很合适.在2006年有将近800个国际知名网站参与这个节日.
CSS Naked Day 的目的
推动Web标准、提倡简洁为美、使用正确的 (x)html语义标记、良好的层次结构。暂时把页面设计抛弃，直接展示&#60;body&#62;内容！
历届CSS Naked Day的举办时间
第一届CSS裸奔节：2006年4月5日
第二届CSS裸奔节：2007年4月5日
第三届CSS裸奔节：2008年4月9日
第四届CSS裸奔节：2009年4月9日
如何加入CSS Naked Day
使用如下的PHP代码

&#60;?php
function is_naked_day($d) {
  $start = date(&#8217;U', mktime(-12, 0, 0, 04, $d, date(&#8217;Y')));
  $end = date(&#8217;U', mktime(36, 0, 0, 04, $d, date(&#8217;Y')));
  $z = date(&#8217;Z') * -1;
  $now = time() + [...]]]></description>
			<content:encoded><![CDATA[<div class="content">
<div class="mceTemp">
<dl id="attachment_240" class="wp-caption alignnone" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.taoxian.info/blog/wp-content/uploads/2009/04/naked-day-09.png"><img class="size-medium wp-image-240" title="CSS-Naked-Day-09" src="http://www.taoxian.info/blog/wp-content/uploads/2009/04/naked-day-09-300x92.png" alt="CSS Naked Day 2009" width="300" height="92" /></a></dt>
</dl>
</div>
<p>今天一大早起来就看到 twitter 好多人在讲 CSS Naked Day，以前还真是不知道这是个什么东西，就顺便搜索了一下。</p>
<p>看来自己落伍了很多啊。</p>
<p>以下转自：http://blog.taoxian.info/2009-css-naked-day.html</p>
<h3>CSS Naked Day 的来历</h3>
<p><a title="CSS Naked Day的发起者页面" onclick="javascript:pageTracker._trackPageview('/outbound/article/naked.dustindiaz.com');" href="http://naked.dustindiaz.com/">CSS Naked Day</a>，也称CSS裸奔节或CSS裸奔日，</p>
<p>在裸奔节这天，参加裸奔节的Blog 将会去除页面上所有的 CSS 样式和广告裸奔整整一天,通过这个节日来重视CSS的重要性.当然你的网站如果是用table来布局的话这个节日对你来说并不是很合适.在2006年有将近800个国际知名网站参与这个节日.</p>
<h3>CSS Naked Day 的目的</h3>
<p>推动Web标准、提倡简洁为美、使用正确的 (x)html语义标记、良好的层次结构。暂时把页面设计抛弃，直接展示&lt;body&gt;内容！</p>
<h3>历届CSS Naked Day的举办时间</h3>
<p>第一届CSS裸奔节：2006年4月5日</p>
<p>第二届CSS裸奔节：2007年4月5日</p>
<p>第三届CSS裸奔节：2008年4月9日</p>
<p>第四届CSS裸奔节：2009年4月9日</p>
<h3>如何加入CSS Naked Day</h3>
<p>使用如下的PHP代码</p>
<blockquote><p>
&lt;?php<br />
function is_naked_day($d) {<br />
  $start = date(&#8217;U', mktime(-12, 0, 0, 04, $d, date(&#8217;Y')));<br />
  $end = date(&#8217;U', mktime(36, 0, 0, 04, $d, date(&#8217;Y')));<br />
  $z = date(&#8217;Z') * -1;<br />
  $now = time() + $z;<br />
  if ( $now &gt;= $start &amp;&amp; $now &lt;= $end ) {<br />
    return true;<br />
  }<br />
  return false;<br />
}<br />
?&gt;
</p></blockquote>
<p>在你的head头文件中这样调用</p>
<blockquote><p>
&lt;head&gt;<br />
&#8230;<br />
&lt;?php<br />
if ( is_naked_day(9) ) {<br />
  echo &#8216;&lt;!&#8211; naked day has no styles &#8211;&gt;&#8217;;<br />
} else {<br />
  echo &#8216;&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; href=&#8221;styles.css&#8221; /&gt;&#8217;;<br />
}<br />
?&gt;<br />
&#8230;<br />
&lt;/head&gt;
</p></blockquote>
<h3>有关CSS Naked Day的插件</h3>
<p>当然,如果你使用的是WordPress,且像我一样不喜欢麻烦的话,这里有专门的CSS Naked Day 的插件帮你完成这项功能,非常简单!点击打开<a title="WordPress的CSS Naked Day插件" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ajalapus.com');" href="http://www.ajalapus.com/downloads/css-naked-day/">WordPress CSS Naked Day插件</a>页面下载后启用即可.</p>
<p>除了WordPress,还会有其他开源程序的插件,可以在<strong>CSS Naked Day</strong>的官方页面查看.</p>
<p>除此之外,你还可以在在<strong>CSS Naked Day</strong>的官方页面提交你的网站地址,据作者的介绍,你的网址将会在一个工作日之内出现在页面的裸奔网站列表中,当然,列表的现实将是随机的.因为相应这个CSS Naked Day活动的网站实在是太多了.</div>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/css/04/67/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>未来5年开发人员必需的10项技能</title>
		<link>http://kingabird.com/index.php/web/04/66</link>
		<comments>http://kingabird.com/index.php/web/04/66#comments</comments>
		<pubDate>Fri, 03 Apr 2009 10:38:21 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=66</guid>
		<description><![CDATA[原作者：Justin James   原文链接：10 skills developers will need in the next five years    译者：wellspring &#124; 推荐人：gaobaba
由于最近经济形势的变化，很多开发人员只关注他们短期的工作前景。与此同时，把时间和精力花在学习最能带来回报的新技术上是件非常重要的事情。这里是我们列举的10种你需要马上开始学习的技术，让你的简历在未来5年不会落伍。这个列表并不完全，有很多业界的领域（比如大型机开发人员）没有涉及。尽管如此，对通常的主流开发来说，学习其中至少7项技能肯定不会错 ——不但要达到能在面试时侃侃而谈的程度，还得能在工作中运用自如。 
1: “三大”之一 (.NET, Java, PHP)
除非开发世界有根本的改变（类似小行星击中雷德蒙），在不远的将来，大部分开发人员将需要了解三大开发系统——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一个。并且只了解核心语言也是不够的。因为项目会包含越来越多不同的功能，你需要对相关框架和库有深入的了解。
2: 丰富互联网应用 (RIAs)
不管爱她还是恨她，最近几年，Flash的用途突然间不仅仅是制作政治人物弱智歌曲演唱动画而已了。Flash也萌生出了以Flex和AIR为形式的附加功能。Flash的竞争对手，比如JavaFx和Silverlight，也在不停的在特性和性能上加筹码。HTML5集成了所有RIA的功能，包括数据库连接和把正式的W3C印章加到AJAX（译者：这个地方拿不准）。在不久的将来，RIA专家将会是简历的一个重要筛选条件。
3: Web开发
Web开发在近期内不会消失。很多开发人员满足于忽略Web或者只是使用他们的框架给他们提供的&#34;基本元素&#34;。但是公司需要越来越多的真正知道怎样使用底层技术进行“手工编码”的人。所以要获得成功请在未来5年里努力钻研JavaScript，CSS和HTML。
4: Web服务
REST或者SOAP? JSON或者XML? 尽管选项和答案取决于项目本身，不使用或者创建Web服务对一个开发人员（甚至是那些不做Web应用程序的）来说越来越困难。那些原来采用 ODBC，COM或者RPC domains的领域，现在也在某种程度上过渡到了Web服务。不会用Web服务的开发人员将会发现他们被排挤或者沦为维护人员。
5: 软技能
有一种已经开始了很久的趋势，IT在企业内部或者外部变得越来越透明。开发人员被卷入越来越多的非开发性会议和过程以给与反馈。举个例子，CFO要改变会计规则不能不依靠IT去更新系统。如果没有IT去升级CRM的工作流，运营经理就不能更改呼叫中心的流程。同样的，客户常常需要和开发小组一起工作来保证他们的需求被满足。每一个开发人员都需要找主持人帮助或者去学习《怎样结交朋友并影响别人》么？不是。但是拥有这种能力的开发人员对他们的雇主来说更有价值——并且更抢手。
6: 一种动态的和/或者函数编程语言
像Ruby，Python, F#, 和Groovy这样的语言并不很主流——但是他们包含的想法却是。比如说，微软的.NET中的LINO系统是函数编程技术的直接产物。Ruby和 Python在某些部门很热门，分别感谢Rails框架和Silverlight。学习其中的一门语言不只会提升你的简历；它能开阔你的视野。我见过的每一个顶级开发人员都推荐学习至少一种动态或者函数编程语言，用来理解新的思考方式，个人经验来讲，我可以告诉你确实有用。
7: 敏捷开发方法
在敏捷开发方法刚开始进入主流视线的时候，我持怀疑态度，和其他我认识的很多家伙一样。它看起来就像某种对传统的下意识反应，丢掉控制和标准而偏爱混乱。但是随着时间的推移，敏捷开发背后的智慧被更好的定义和表达出来。很多团队不是应用了敏捷开发就是在进行敏捷开发的概念证明实验。尽管敏捷开发不是治愈项目失败的终极灵药，它的确在很多项目上有一席之地。在未来几年里，对有着敏捷开发环境的理解和成功经验的开发人员的需求将会高速增涨。
8: 领域知识
和敏捷开发密切关联，开发小组在项目定义中被越来越多的看做是同伴。这意味着了解问题领域的开发人员能够用更可见的，高价值的方式给项目作出贡献。敏捷开发中，一个能够说，“从这里，我们也可以很简单的添加这项功能，而且这能给我们带来很多回报，” 或者 “噢，这个要求和我们的日志中显示的使用模式并不相符” 的人将是优胜者。正如许多开发人员有抵制了解问题领域的想法，不可否认的是越来越多的组织希望（如果不是要求）开发人员至少能理解基本的内容。
9: “清洁”开发
几年之前，很多（如果不是大部分）团队都没有使用bug跟踪系统，版本控制，和其他类似工具；只有开发人员和他们选择的IDE。但是，感谢新的整合套件的开发，比如Microsoft Visual Studio Team System以及高质量开源环境的爆炸性发展，没用到这些工具的组织变得更不常见。开发人员必须比知道怎么在代码控制中提交和获得代码或者怎样用VM系统配置测试环境了解更多的东西。他们需要在适当的地方养成严格的卫生习惯以保证他们和其他的小组恰当的合作。“代码牛仔”，把所有的东西存放在私人USB盘上，不把对任务对象的相应改变记录成文档，等等的人，在传统的团队里不受欢迎，在需要团队成员之间紧密合作的敏捷开发环境中更是如此。
10: 手机开发
上世纪90年末代web开发被主流接受开始在很多领域将传统的桌面程序边缘化，在2008年，手机开发开始兴起，在未来5年里，它将会变得越来越重要。当然，手机开发有很多不同的方法:针对手机设备的web应用程序开发，针对市场的RIAs，和直接在设备上运行的应用程序。不管你选择了哪个方向，把手机开发加入你的技能集会保证你满足未来的需求。
]]></description>
			<content:encoded><![CDATA[<p>原作者：Justin James   <br />原文链接：<a href="http://blogs.techrepublic.com.com/10things/?p=643">10 skills developers will need in the next five years</a>    <br />译者：<a href="http://www.yeeyan.com/space/show/wellspring">wellspring</a> | 推荐人：<a href="http://www.yeeyan.com/space/show/20618">gaobaba</a></p>
<p>由于最近经济形势的变化，很多开发人员只关注他们短期的工作前景。与此同时，把时间和精力花在学习最能带来回报的新技术上是件非常重要的事情。这里是我们列举的10种你需要马上开始学习的技术，让你的简历在未来5年不会落伍。这个列表并不完全，有很多业界的领域（比如大型机开发人员）没有涉及。尽管如此，对通常的主流开发来说，学习其中至少7项技能肯定不会错 ——不但要达到能在面试时侃侃而谈的程度，还得能在工作中运用自如。 </p>
<h4>1: “三大”之一 (.NET, Java, PHP)</h4>
<p>除非开发世界有根本的改变（类似小行星击中雷德蒙），在不远的将来，大部分开发人员将需要了解三大开发系统——.NET (VB.NET或者C#), Java, 或者PHP——中的至少一个。并且只了解核心语言也是不够的。因为项目会包含越来越多不同的功能，你需要对相关框架和库有深入的了解。</p>
<h4>2: 丰富互联网应用 (RIAs)</h4>
<p>不管爱她还是恨她，最近几年，Flash的用途突然间不仅仅是制作政治人物弱智歌曲演唱动画而已了。Flash也萌生出了以Flex和AIR为形式的附加功能。Flash的竞争对手，比如JavaFx和Silverlight，也在不停的在特性和性能上加筹码。HTML5集成了所有RIA的功能，包括数据库连接和把正式的W3C印章加到AJAX（译者：这个地方拿不准）。在不久的将来，RIA专家将会是简历的一个重要筛选条件。</p>
<h4>3: Web开发</h4>
<p>Web开发在近期内不会消失。很多开发人员满足于忽略Web或者只是使用他们的框架给他们提供的&quot;基本元素&quot;。但是公司需要越来越多的真正知道怎样使用底层技术进行“手工编码”的人。所以要获得成功请在未来5年里努力钻研JavaScript，CSS和HTML。</p>
<h4>4: Web服务</h4>
<p>REST或者SOAP? JSON或者XML? 尽管选项和答案取决于项目本身，不使用或者创建Web服务对一个开发人员（甚至是那些不做Web应用程序的）来说越来越困难。那些原来采用 ODBC，COM或者RPC domains的领域，现在也在某种程度上过渡到了Web服务。不会用Web服务的开发人员将会发现他们被排挤或者沦为维护人员。</p>
<h4>5: 软技能</h4>
<p>有一种已经开始了很久的趋势，IT在企业内部或者外部变得越来越透明。开发人员被卷入越来越多的非开发性会议和过程以给与反馈。举个例子，CFO要改变会计规则不能不依靠IT去更新系统。如果没有IT去升级CRM的工作流，运营经理就不能更改呼叫中心的流程。同样的，客户常常需要和开发小组一起工作来保证他们的需求被满足。每一个开发人员都需要找主持人帮助或者去学习《怎样结交朋友并影响别人》么？不是。但是拥有这种能力的开发人员对他们的雇主来说更有价值——并且更抢手。</p>
<h4>6: 一种动态的和/或者函数编程语言</h4>
<p>像Ruby，Python, F#, 和Groovy这样的语言并不很主流——但是他们包含的想法却是。比如说，微软的.NET中的LINO系统是函数编程技术的直接产物。Ruby和 Python在某些部门很热门，分别感谢Rails框架和Silverlight。学习其中的一门语言不只会提升你的简历；它能开阔你的视野。我见过的每一个顶级开发人员都推荐学习至少一种动态或者函数编程语言，用来理解新的思考方式，个人经验来讲，我可以告诉你确实有用。</p>
<h4>7: 敏捷开发方法</h4>
<p>在敏捷开发方法刚开始进入主流视线的时候，我持怀疑态度，和其他我认识的很多家伙一样。它看起来就像某种对传统的下意识反应，丢掉控制和标准而偏爱混乱。但是随着时间的推移，敏捷开发背后的智慧被更好的定义和表达出来。很多团队不是应用了敏捷开发就是在进行敏捷开发的概念证明实验。尽管敏捷开发不是治愈项目失败的终极灵药，它的确在很多项目上有一席之地。在未来几年里，对有着敏捷开发环境的理解和成功经验的开发人员的需求将会高速增涨。</p>
<h4>8: 领域知识</h4>
<p>和敏捷开发密切关联，开发小组在项目定义中被越来越多的看做是同伴。这意味着了解问题领域的开发人员能够用更可见的，高价值的方式给项目作出贡献。敏捷开发中，一个能够说，“从这里，我们也可以很简单的添加这项功能，而且这能给我们带来很多回报，” 或者 “噢，这个要求和我们的日志中显示的使用模式并不相符” 的人将是优胜者。正如许多开发人员有抵制了解问题领域的想法，不可否认的是越来越多的组织希望（如果不是要求）开发人员至少能理解基本的内容。</p>
<h4>9: “清洁”开发</h4>
<p>几年之前，很多（如果不是大部分）团队都没有使用bug跟踪系统，版本控制，和其他类似工具；只有开发人员和他们选择的IDE。但是，感谢新的整合套件的开发，比如Microsoft Visual Studio Team System以及高质量开源环境的爆炸性发展，没用到这些工具的组织变得更不常见。开发人员必须比知道怎么在代码控制中提交和获得代码或者怎样用VM系统配置测试环境了解更多的东西。他们需要在适当的地方养成严格的卫生习惯以保证他们和其他的小组恰当的合作。“代码牛仔”，把所有的东西存放在私人USB盘上，不把对任务对象的相应改变记录成文档，等等的人，在传统的团队里不受欢迎，在需要团队成员之间紧密合作的敏捷开发环境中更是如此。</p>
<h4>10: 手机开发</h4>
<p>上世纪90年末代web开发被主流接受开始在很多领域将传统的桌面程序边缘化，在2008年，手机开发开始兴起，在未来5年里，它将会变得越来越重要。当然，手机开发有很多不同的方法:针对手机设备的web应用程序开发，针对市场的RIAs，和直接在设备上运行的应用程序。不管你选择了哪个方向，把手机开发加入你的技能集会保证你满足未来的需求。</p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/web/04/66/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关于淘宝账号突然被封所引出的几点想法</title>
		<link>http://kingabird.com/index.php/live/02/62</link>
		<comments>http://kingabird.com/index.php/live/02/62#comments</comments>
		<pubDate>Fri, 20 Feb 2009 18:14:00 +0000</pubDate>
		<dc:creator>kingabird</dc:creator>
				<category><![CDATA[Live]]></category>

		<guid isPermaLink="false">http://kingabird.com/?p=62</guid>
		<description><![CDATA[今天上午在公司，在离开电脑一段时间后，回来后发现自己的阿里旺旺突然不能登陆了(说实在的，我以前是基本不用旺旺这些东西的，只是最近加一个相关的技术群，才会没事挂着旺旺)，刚开始以为是账号被盗，但是很快发现不对，提示的是“没有此用户”。搞的我一头雾水，用了这么久的账户怎么突然就没有此用户呢？？然后打开邮箱，看到一封淘宝客服的邮件，全文如下
处罚通知

亲爱的会员，淘宝在此告知，您因为违反&#34;干扰网站行为&#34;被处罚。处罚结果为 冻结永久,限制网站登录永久,取消您的评价权,冻结会员,限制旺旺登录,强制退出消保,半年内不得再次加入消保。本次处罚开始时间为：2009-02-20 13 时。      处罚将保留在记录中直至申诉成功被撤消。如果有任何疑问请给淘宝客服中心留言，同时提供充分的凭证来支持您的投诉/举报。淘宝会根据凭证进行二次审核。      具体留言地址如下：http://service.taobao.com/support/contact_us.htm 您的每一点意见和建议都是我们最宝贵的财富！       诚信防骗居论坛,安全防范小卫士: http://forum.taobao.com/forum-170/list_forum-.htm       查看帮助，可更详细了解规则，感谢支持！ 诚信交易 和气生财！ 退订此消息

来回看了三遍，也没看明白那个“违反‘干扰网站行’为被处罚”是什么意思。。
因为我之前在上淘宝只是买些东西，除此这外基本不上淘宝网站的，怎么就违反什么规定了？？
当时在 Twitter 上把淘宝的邮件原文贴了上去，没想到在淘宝的同志们还真是热情，第一时间就回复了我的抱怨。“有困难，找客服！”很快的客服电话打完了，只是问出来了原因是我在旺旺上发布了什么敏感的地址，其它的无果，最后说什么要投诉还是举报什么的要提供一大堆的什么证件给他们，反正是没听明白，我才懒得都搞什么证件给他们。
最后还是 Twitter 上的在淘宝工作的朋友帮我搞到了最终答案，那就是账户被冻结原因是“发布虚假中奖信息”。(在这里谢谢 Twitter 上淘宝的各位兄弟的热情帮助)
让我突然想到，我之前在旺旺上是收到过两条这样的信息，然后就发布到我上面提到那个技术群里去了，因为群里有很多淘宝的开发人员，算是给他们举报虚假中奖信息吧。可是没想到这样的好意，却把自己搞成发布虚假信息的人了，娘的，这找谁说理去啊。
账户被封是小事，因为我只是一名买家，没什么损失的，大不了，再新注册个账户，这是小事情；可是淘宝的这种过滤信息的机制是不是有很大的弊端呢？？如果是一名卖家，辛辛苦苦做了很久做起的信誉，这一下了封账户，那损失可就大了。
今天在搜索引擎里搜了一下&#34;干扰网站行为&#34;这个关键词，好像遇到这样问题的人还不是少数，就是自己都不知道原因，账户就被禁了，这里面好像有很多是卖家。
我想这对淘宝应该是个不小的问题吧，不知道有没有人注意到这样的问题？？？
最后有一点建议，就是大家遇到什么虚假信息的广告，立刻无视过去，千万不要转载什么的，虽然你可能是好意。就是要举报，也应该选择比较安全的渠道，比如发邮件，或者通过网页提交什么的 (不知道在淘宝网页上发这样的东西，会不会也被禁啊！！) &#8211; -!!
－－完－－
]]></description>
			<content:encoded><![CDATA[<p>今天上午在公司，在离开电脑一段时间后，回来后发现自己的阿里旺旺突然不能登陆了(说实在的，我以前是基本不用旺旺这些东西的，只是最近加一个相关的技术群，才会没事挂着旺旺)，刚开始以为是账号被盗，但是很快发现不对，提示的是“没有此用户”。搞的我一头雾水，用了这么久的账户怎么突然就没有此用户呢？？然后打开邮箱，看到一封淘宝客服的邮件，全文如下</p>
<blockquote><p><b>处罚通知</b></p>
<p><a href="http://tg3a24.mail.126.com/"><b></b><b></b></a></p>
<p>亲爱的会员，淘宝在此告知，您因为违反&quot;干扰网站行为&quot;被处罚。处罚结果为 冻结永久,限制网站登录永久,取消您的评价权,冻结会员,限制旺旺登录,强制退出消保,半年内不得再次加入消保。本次处罚开始时间为：2009-02-20 13 时。      <br />处罚将保留在记录中直至申诉成功被撤消。如果有任何疑问请给淘宝客服中心留言，同时提供充分的凭证来支持您的投诉/举报。淘宝会根据凭证进行二次审核。      <br />具体留言地址如下：http://service.taobao.com/support/contact_us.htm 您的每一点意见和建议都是我们最宝贵的财富！       <br />诚信防骗居论坛,安全防范小卫士: http://forum.taobao.com/forum-170/list_forum-.htm       <br />查看帮助，可更详细了解规则，感谢支持！ 诚信交易 和气生财！ <a href="http://member1.taobao.com/member/subscription.htm#msg:4041">退订此消息</a></p>
</blockquote>
<p><font style="background-color: #f4f5f7">来回看了三遍，也没看明白那个“违反‘干扰网站行’为被处罚”是什么意思。。</font></p>
<p><font style="background-color: #f4f5f7">因为我之前在上淘宝只是买些东西，除此这外基本不上淘宝网站的，怎么就违反什么规定了？？</font></p>
<p>当时在 Twitter 上把淘宝的邮件原文贴了上去，没想到在淘宝的同志们还真是热情，第一时间就回复了我的抱怨。“有困难，找客服！”很快的客服电话打完了，只是问出来了原因是我在旺旺上发布了什么敏感的地址，其它的无果，最后说什么要投诉还是举报什么的要提供一大堆的什么证件给他们，反正是没听明白，我才懒得都搞什么证件给他们。</p>
<p>最后还是 Twitter 上的在淘宝工作的朋友帮我搞到了最终答案，那就是账户被冻结原因是“发布虚假中奖信息”。(在这里谢谢 Twitter 上淘宝的各位兄弟的热情帮助)</p>
<p>让我突然想到，我之前在旺旺上是收到过两条这样的信息，然后就发布到我上面提到那个技术群里去了，因为群里有很多淘宝的开发人员，算是给他们举报虚假中奖信息吧。可是没想到这样的好意，却把自己搞成发布虚假信息的人了，娘的，这找谁说理去啊。</p>
<p>账户被封是小事，因为我只是一名买家，没什么损失的，大不了，再新注册个账户，这是小事情；可是淘宝的这种过滤信息的机制是不是有很大的弊端呢？？如果是一名卖家，辛辛苦苦做了很久做起的信誉，这一下了封账户，那损失可就大了。</p>
<p>今天在搜索引擎里搜了一下&quot;干扰网站行为&quot;这个关键词，好像遇到这样问题的人还不是少数，就是自己都不知道原因，账户就被禁了，这里面好像有很多是卖家。</p>
<p>我想这对淘宝应该是个不小的问题吧，不知道有没有人注意到这样的问题？？？</p>
<p><font style="background-color: #f4f5f7">最后有一点建议，就是大家遇到什么虚假信息的广告，立刻无视过去，千万不要转载什么的，虽然你可能是好意。就是要举报，也应该选择比较安全的渠道，比如发邮件，或者通过网页提交什么的 (不知道在淘宝网页上发这样的东西，会不会也被禁啊！！) &#8211; -!!</font></p>
<p><font style="background-color: #f4f5f7">－－完－－</font></p>
]]></content:encoded>
			<wfw:commentRss>http://kingabird.com/index.php/live/02/62/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
