<?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>FoxLing - 前端开发</title>
	<atom:link href="http://foxling.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://foxling.org</link>
	<description>不积跬步 无以至千里</description>
	<lastBuildDate>Sat, 19 Nov 2011 16:29:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>铁甲钢拳-你心底是否还有那么一丝热血？</title>
		<link>http://foxling.org/life/%e9%93%81%e7%94%b2%e9%92%a2%e6%8b%b3-%e4%bd%a0%e5%bf%83%e5%ba%95%e6%98%af%e5%90%a6%e8%bf%98%e6%9c%89%e9%82%a3%e4%b9%88%e4%b8%80%e4%b8%9d%e7%83%ad%e8%a1%80%ef%bc%9f/</link>
		<comments>http://foxling.org/life/%e9%93%81%e7%94%b2%e9%92%a2%e6%8b%b3-%e4%bd%a0%e5%bf%83%e5%ba%95%e6%98%af%e5%90%a6%e8%bf%98%e6%9c%89%e9%82%a3%e4%b9%88%e4%b8%80%e4%b8%9d%e7%83%ad%e8%a1%80%ef%bc%9f/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 16:29:01 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=755</guid>
		<description><![CDATA[一部看完后热血沸腾的影片。 不要太在意Max一个小孩一晚上怎么能挖出这么大一个机器人还能独自拖上上来，也不要质疑淘汰的机器人能打败最新款最先进的机器人。 你需要看到的是当亚当赢得第一场比赛后查理的那种喜悦之情，以及麦克斯恳求爸爸留下自己时的眼神，还有决赛最后一节，当查理坚毅的神情有力地挥动着拳头挑战世界冠军时，他女人和麦克斯为他找回了那股激情而感动流泪。 你，热血了没？ ps. 让我想起了另一部电影《洛奇》。]]></description>
			<content:encoded><![CDATA[<p><img src="http://foxling.org/wp-content/uploads/2011/11/p12922206961.jpg" alt="" title="铁甲钢拳" width="404" height="600" class="alignright size-full wp-image-757" />一部看完后热血沸腾的影片。</p>
<p>不要太在意Max一个小孩一晚上怎么能挖出这么大一个机器人还能独自拖上上来，也不要质疑淘汰的机器人能打败最新款最先进的机器人。</p>
<p>你需要看到的是当亚当赢得第一场比赛后查理的那种喜悦之情，以及麦克斯恳求爸爸留下自己时的眼神，还有决赛最后一节，当查理坚毅的神情有力地挥动着拳头挑战世界冠军时，他女人和麦克斯为他找回了那股激情而感动流泪。</p>
<p>你，热血了没？</p>
<p>ps.<br />
让我想起了另一部电影《洛奇》。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/life/%e9%93%81%e7%94%b2%e9%92%a2%e6%8b%b3-%e4%bd%a0%e5%bf%83%e5%ba%95%e6%98%af%e5%90%a6%e8%bf%98%e6%9c%89%e9%82%a3%e4%b9%88%e4%b8%80%e4%b8%9d%e7%83%ad%e8%a1%80%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CentOS 配置 Apache, PHP, Mysql 开发环境</title>
		<link>http://foxling.org/develop/lamp-centos/</link>
		<comments>http://foxling.org/develop/lamp-centos/#comments</comments>
		<pubDate>Fri, 11 Nov 2011 17:18:49 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[开发]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=749</guid>
		<description><![CDATA[作为一个Linux超级菜鸟来说，偶尔需要配置一下Web开发环境，每次都需要重新查资料，于是稍微记录一下，加深印象，另外也算是一篇笔记，下次不用到处去Google了。 该文章只是用于Web开发的测试环境，性能和安全完全没有认识，如果有人看到，请不要用于生产环境，对任何后果不负任何责任，嘿嘿。 目的 在CentOS上配置用于开发的Web环境，包含Apache, PHP, Mysql。 安装Apache 直接通过yum安装Apache，yum -y install httpd 安装好后，默认情况下， Apache 的配置文件 httpd.conf 文件在 /etc/httpd/conf/httpd.conf 位置，编辑配置文件，修改DocumentRoot、Directory 两处设置为你需要保存网站文件的位置。 安装Mysql 直接通过yum安装Mysql，yum -y install mysql 安装PHP 由于CentOS通过yum安装的PHP为5.1版本，我需要5.2.17版本来保证和线上的运行环境一致，所以自己下载PHP源码进行编译安装。 到 http://php.net 下载对应版本的源码到 /tmp/ 目录并解压。 进入解压后的目录 /tmp/php-5.2.17/ 根据需求配置需要的模块 ./configure --enable-mbstring --with-curl --with-gd --with-mcrypt --with-mysql --with-mysqli --with-apxs2=/usr/sbin/apxs make make install 上面的语句肯定不会执行成功，因为缺少一大堆的依赖文件，configure: error: libpng.(a&#124;so) not found. 当遇到这种提示时，需要安装libpng库，除此之外还需要安装开发包。yum -y install libpng libpng-devel，对于其它的依赖支持也同样处理。 [...]]]></description>
			<content:encoded><![CDATA[<p>作为一个Linux超级菜鸟来说，偶尔需要配置一下Web开发环境，每次都需要重新查资料，于是稍微记录一下，加深印象，另外也算是一篇笔记，下次不用到处去Google了。</p>
<p>该文章只是用于Web开发的测试环境，性能和安全完全没有认识，如果有人看到，请不要用于生产环境，对任何后果不负任何责任，嘿嘿。</p>
<h3>目的</h3>
<p>在CentOS上配置用于开发的Web环境，包含Apache, PHP, Mysql。</p>
<h3>安装Apache</h3>
<p>直接通过yum安装Apache，<code>yum -y install httpd</code></p>
<p>安装好后，默认情况下， Apache 的配置文件 <code>httpd.conf</code> 文件在 <code>/etc/httpd/conf/httpd.conf</code> 位置，编辑配置文件，修改<code>DocumentRoot</code>、<code>Directory</code> 两处设置为你需要保存网站文件的位置。</p>
<h3>安装Mysql</h3>
<p>直接通过yum安装Mysql，<code>yum -y install mysql</code></p>
<h3>安装PHP</h3>
<p>由于CentOS通过yum安装的PHP为5.1版本，我需要5.2.17版本来保证和线上的运行环境一致，所以自己下载PHP源码进行编译安装。</p>
<ol>
<li>到 <a href="http://php.net">http://php.net</a> 下载对应版本的源码到 <code>/tmp/</code> 目录并解压。</li>
<li>进入解压后的目录 <code>/tmp/php-5.2.17/</code> </li>
<li>根据需求配置需要的模块 <code>./configure --enable-mbstring --with-curl --with-gd --with-mcrypt --with-mysql --with-mysqli --with-apxs2=/usr/sbin/apxs</code></li>
<li>make</li>
<li>make install</li>
</ol>
<p>上面的语句肯定不会执行成功，因为缺少一大堆的依赖文件，<q>configure: error: libpng.(a|so) not found.</q> 当遇到这种提示时，需要安装libpng库，除此之外还需要安装开发包。<code>yum -y install libpng libpng-devel</code>，对于其它的依赖支持也同样处理。</p>
<p>上面的参数 &#8211;with-apxs2=url 可以让 PHP 找到 Apache 的配置详情，然后自动添加 Apache 支持。同样如果没有安装 httpd-devel，编译PHP的时候是找不到 apxs 的路径的。</p>
<p>好了，以上的配置安装都成功了后，现在写一个phpinfo()的php文件，然后访问 http://localhost 应该就可以看到 phpinfo 页面了。</p>
<p>如果看到的是PHP代码，到Apache的配置文件 httpd.conf 里加上PHP文件类型：<code>AddType application/x-httpd-php .php</code>。</p>
<p>
在 phpinfo 页面可以看到PHP配置文件的目录和加载的配置文件。<br />
<code>Loaded Configuration File</code> （已加载的配置文件）<br />
<code>Configuration File (php.ini) Path</code> （配置文件所在的目录）<br />
如果值为空则表示没有配置文件，需要更改PHP的配置的话，可以从php源码目录里将 php.ini-recommended 拷贝并重命名为 php.ini 到 <code>Configuration File (php.ini) Path</code> 指定的那个目录，然后进行修改。</p>
<p>如果发现编译安装好后又需要添加某个PHP插件？</p>
<ol>
<li>进入PHP源码目录</li>
<li>make clean</li>
<li>./configure 在原有的参数基础上再加上新加的参数</li>
<li>make</li>
<li>make install</li>
</ol>
<h3>其它相关配置</h3>
<p>/etc/my.cnf 配置mysql参数，有的话不需要重复添加</p>
<pre>
[mysqld] #应该有这句了
default-character-set = utf8 #默认编码utf8
[mysql] ＃应该有这句，没有则添加上
default-character-set = utf8 #默认编码utf8</pre>
<p>
设置Mysql随系统启动<br />
<code>chkconfig mysqld on</code> 随系统启动，通过 <code>chkconfig --list mysqld</code> 检验状态，2－5为on就OK<br />
<code>/etc/rc.d/init.d/mysqld start</code> 启动mysql
</p>
<p>
一些 Mysql 语句：<br />
show databases; 查看存在的数据库<br />
use test; 连接使用数据库test<br />
show tables; 查看数据库里的表<br />
drop table test; 删除test表<br />
drop database test; 删除某个数据库<br />
delete from mysql.user where user=”; 删除匿名用户<br />
set password for root@localhost=password(&#8216;密码&#8217;) 设置root密码<br />
grant all privileges on test.* test@localhost identified by &#8216;密码&#8217; 建立对test数据库有完全操作权限的名为test的用户;<br />
revoke all privileges on *.* from test@localhost; 取消test对数据库的操作权限<br />
flush privileges; 刷新使生效<br />
注意到了上面的语句中的用户都是test@localhost吧，表示该用户只能在localhost访问数据库<br />
如果远程访问数据库，需要设置将host改为%; 或者通过GRANT语句另外授权帐号
</p>
<p>
一些PHP配置参数参考，也可以通过查看 <code>./configure</code> 文件了解详细参数配置<br />
./configure <br />
–prefix=/usr/local/php                      php 安装目录<br />
–with-apxs2=/usr/local/apache/bin/apxs<br />
–with-config-file-path=/usr/local/php/etc      指定php.ini位置<br />
–with-mysql=/usr/local/mysql           mysql安装目录，对mysql的支持<br />
–with-mysqli=/usr/local/mysql/bin/mysql_config    mysqli文件目录,优化支持<br />
–enable-safe-mode                              打开安全模式<br />
–enable-ftp                                 打开ftp的支持<br />
–enable-zip                                 打开对zip的支持<br />
–with-bz2                    打开对bz2文件的支持<br />
–with-jpeg-dir                                 打开对jpeg图片的支持<br />
–with-png-dir                                 打开对png图片的支持<br />
–with-freetype-dir              打开对freetype字体库的支持<br />
–without-iconv                关闭iconv函数，种字符集间的转换<br />
–with-libxml-dir                 打开libxml2库的支持<br />
–with-xmlrpc              打开xml-rpc的c语言<br />
–with-zlib-dir                                 打开zlib库的支持<br />
–with-gd                                    打开gd库的支持<br />
–enable-gd-native-ttf               支持TrueType字符串函数库<br />
–with-curl                      打开curl浏览工具的支持<br />
–with-curlwrappers                 运用curl工具打开url流<br />
–with-ttf                      打开freetype1.*的支持，可以不加了<br />
–with-xsl            打开XSLT 文件支持，扩展了libxml2库 ，需要libxslt软件<br />
–with-gettext                      打开gnu 的gettext 支持，编码库用到<br />
–with-pear            打开pear命令的支持，php扩展用的<br />
–enable-calendar             打开日历扩展功能<br />
–enable-mbstring                  多字节，字符串的支持<br />
–enable-bcmath                  打开图片大小调整,用到zabbix监控的时候用到了这个模块<br />
–enable-sockets                  打开 sockets 支持<br />
–enable-exif                      图片的元数据支持<br />
–enable-magic-quotes               魔术引用的支持<br />
–disable-rpath                     关闭额外的运行库文件<br />
–disable-debug                  关闭调试模式<br />
–with-mime-magic=/usr/share/file/magic.mime      魔术头文件位置<br />
cgi方式安装才用的参数<br />
–enable-fpm                     打上php-fpm 补丁后才有这个参数，cgi方式安装的启动程序<br />
–enable-fastcgi                  支持fastcgi方式启动php<br />
–enable-force-cgi-redirect             同上 ,帮助里没有解释<br />
–with-ncurses                     支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库<br />
–enable-pcntl           freeTDS需要用到的，可能是链接mssql 才用到<br />
mhash和mcrypt算法的扩展<br />
–with-mcrypt                     算法<br />
–with-mhash                     算法<br />
–with-openssl           openssl的支持，加密传输时用到的<br />
–with-pcre-dir=/usr/local/bin/pcre-config    perl的正则库案安装位置</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/develop/lamp-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>打太极的轩轩</title>
		<link>http://foxling.org/as-flex-air/%e6%89%93%e5%a4%aa%e6%9e%81%e7%9a%84%e8%bd%a9%e8%bd%a9/</link>
		<comments>http://foxling.org/as-flex-air/%e6%89%93%e5%a4%aa%e6%9e%81%e7%9a%84%e8%bd%a9%e8%bd%a9/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 16:44:46 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[AS/Flex/AIR]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=745</guid>
		<description><![CDATA[儿子有个习惯，不乐意或者不想回答的事情就装作没听到 。 抱着儿子下楼去买喜洋洋豆奶，他和我聊天： ＂爸爸，妈妈买的那歪歪不好喝，没人喝的＂（他叫牛奶是歪歪，因为电视广告有爽歪歪） ＂你不喜欢喝？＂ ＂不好喝，没人喝，喜洋洋的歪歪好喝。＂ ＂那寄回家去给弟弟喝好不好？＂ 沉默&#8230;专心看别的东西。 ＂轩轩，爸爸在问你呢，好不好＂ 做惊喜状＂那是什么？＂ ＂轩，爸爸问你，给弟弟喝好不＂ ＂那歪歪没人喝＂ ＂那给弟弟喝吧＂ ＂爸爸，那是大车车。＂ ＂那奶粉你不喜欢喝？＂ ＂嗯＂ ＂那给弟弟喝？＂ 沉默&#8230; ＂是不是不想给弟弟喝？＂ ＂是的。＂ ＂那为什么不给弟弟喝呢？你又不喝＂ 继续转移话题＂爸爸，过马路，红灯停，绿灯走。＂ #%*%#$~]]></description>
			<content:encoded><![CDATA[<p>儿子有个习惯，不乐意或者不想回答的事情就装作没听到 。<br />
抱着儿子下楼去买喜洋洋豆奶，他和我聊天：<br />
＂爸爸，妈妈买的那歪歪不好喝，没人喝的＂（他叫牛奶是歪歪，因为电视广告有爽歪歪）<br />
＂你不喜欢喝？＂<br />
＂不好喝，没人喝，喜洋洋的歪歪好喝。＂<br />
＂那寄回家去给弟弟喝好不好？＂<br />
沉默&#8230;专心看别的东西。<br />
＂轩轩，爸爸在问你呢，好不好＂<br />
做惊喜状＂那是什么？＂<br />
＂轩，爸爸问你，给弟弟喝好不＂<br />
＂那歪歪没人喝＂<br />
＂那给弟弟喝吧＂<br />
＂爸爸，那是大车车。＂<br />
＂那奶粉你不喜欢喝？＂<br />
＂嗯＂<br />
＂那给弟弟喝？＂<br />
沉默&#8230;<br />
＂是不是不想给弟弟喝？＂<br />
＂是的。＂<br />
＂那为什么不给弟弟喝呢？你又不喝＂<br />
继续转移话题＂爸爸，过马路，红灯停，绿灯走。＂<br />
#%*%#$~ </p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/as-flex-air/%e6%89%93%e5%a4%aa%e6%9e%81%e7%9a%84%e8%bd%a9%e8%bd%a9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>三傻大闹宝莱坞</title>
		<link>http://foxling.org/life/3-idiots/</link>
		<comments>http://foxling.org/life/3-idiots/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 14:06:26 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=731</guid>
		<description><![CDATA[这是一部名字无敌烂的超级好片。 哪怕是看第三遍，还是能让你笑得捧腹，感动得流泪。 除了感动与爆笑外，还能给你很多启发与指引。 交几个真正的朋友，真正的朋友能教导你正直，追求梦想，得知你的消息时让空客返航，忘记穿裤子，甚至能在最艰难的抉择下牺牲自己。 成为别人真正的朋友。 父母永远是最亲的人，哪怕是他们有时会做出一些错误的决定，但你要知道，他们也许有其它的原因，但肯定出于为了你好。 不要为了成绩而学习，而是因为兴趣而学习，后者能让你对知识求知若渴。 追求自己的理想，不要在意其它人一时的看法。 追求卓越，成功自然会追赶你。]]></description>
			<content:encoded><![CDATA[<p><img src="http://foxling.org/wp-content/uploads/2011/09/b25d99011c88c5b1277fb5c8-200x246.jpg" alt="" title="三傻大闹宝莱坞" width="200" height="246" class="alignright size-thumbnail wp-image-735" /><br />
这是一部名字无敌烂的超级好片。</p>
<p>哪怕是看第三遍，还是能让你笑得捧腹，感动得流泪。</p>
<p>除了感动与爆笑外，还能给你很多启发与指引。</p>
<ul>
<li>交几个真正的朋友，真正的朋友能教导你正直，追求梦想，得知你的消息时让空客返航，忘记穿裤子，甚至能在最艰难的抉择下牺牲自己。</li>
<li>成为别人真正的朋友。</li>
<li>父母永远是最亲的人，哪怕是他们有时会做出一些错误的决定，但你要知道，他们也许有其它的原因，但肯定出于为了你好。</li>
<li>不要为了成绩而学习，而是因为兴趣而学习，后者能让你对知识求知若渴。</li>
<li>追求自己的理想，不要在意其它人一时的看法。</li>
<li>追求卓越，成功自然会追赶你。</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/life/3-idiots/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>爱看鱼的轩</title>
		<link>http://foxling.org/life/%e7%88%b1%e7%9c%8b%e9%b1%bc%e7%9a%84%e8%bd%a9/</link>
		<comments>http://foxling.org/life/%e7%88%b1%e7%9c%8b%e9%b1%bc%e7%9a%84%e8%bd%a9/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 14:15:25 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://foxling.org/life/%e7%88%b1%e7%9c%8b%e9%b1%bc%e7%9a%84%e8%bd%a9/</guid>
		<description><![CDATA[发现新大陆，电脑上可以看好多鱼的照片 爸爸，为什么这条鱼的嘴巴尖尖的这个样子？]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://foxling.org/wp-content/uploads/2011/09/20110927-015851.jpg"><img src="http://foxling.org/wp-content/uploads/2011/09/20110927-015851.jpg" alt="20110927-015851.jpg" class="aligncenter size-full" /></a>发现新大陆，电脑上可以看好多鱼的照片</p>
<p style="text-align:center;"><a href="http://foxling.org/wp-content/uploads/2011/09/20110927-020211.jpg"><img src="http://foxling.org/wp-content/uploads/2011/09/20110927-020211.jpg" alt="20110927-020211.jpg" class="aligncenter size-full" /></a>爸爸，为什么这条鱼的嘴巴尖尖的这个样子？</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/life/%e7%88%b1%e7%9c%8b%e9%b1%bc%e7%9a%84%e8%bd%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011年计划</title>
		<link>http://foxling.org/life/my-2011/</link>
		<comments>http://foxling.org/life/my-2011/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 16:00:47 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=687</guid>
		<description><![CDATA[团队技能以及团队协作的培养； 接触手机网页，了解各平台的差异； 产品终于稳定了（希望是这样），今年是网站优化年，要能看到一些明显的效果，包括交互和性能上的； 养成资料整理和积累的习惯，维护团队内部的WIKI。 以上都是工作上的事情了，个人方面，去年拖着一直没学的驾照得赶紧拿到手了。 想把小房子换成大一点的房子，爸妈以后过来，住得舒服一些。 暂时就这样吧，不能奢望太多。 &#8212;&#8212;&#8212;&#8212;-5/22/2011 更新&#8212;&#8212;&#8212;&#8212;- 生活中的事还挺顺利，把房子给换了，驾照也顺利拿到。 计划赶不上变化，工作也给换了，对于我自己来说都是意料之外，情理当中。 新的工作还挺喜欢，是自己喜欢做的事情，所以激情又回来啦。 今年最重要的就是如何找着自己的方向。 加油！]]></description>
			<content:encoded><![CDATA[<ul>
<li>团队技能以及团队协作的培养；</li>
<li>接触手机网页，了解各平台的差异；</li>
<li>产品终于稳定了（希望是这样），今年是网站优化年，要能看到一些明显的效果，包括交互和性能上的；</li>
<li>养成资料整理和积累的习惯，维护团队内部的WIKI。</li>
</ul>
<p>以上都是工作上的事情了，个人方面，去年拖着一直没学的驾照得赶紧拿到手了。<br />
想把小房子换成大一点的房子，爸妈以后过来，住得舒服一些。<br />
暂时就这样吧，不能奢望太多。</p>
<p>&#8212;&#8212;&#8212;&#8212;-5/22/2011 更新&#8212;&#8212;&#8212;&#8212;-</p>
<ul>
<li>生活中的事还挺顺利，把房子给换了，驾照也顺利拿到。</li>
<li>计划赶不上变化，工作也给换了，对于我自己来说都是意料之外，情理当中。</li>
<li>新的工作还挺喜欢，是自己喜欢做的事情，所以激情又回来啦。</li>
<li>今年最重要的就是如何找着自己的方向。</li>
<li>加油！</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/life/my-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>从一道题目去了解JS里的类型转换</title>
		<link>http://foxling.org/js-ajax-dom/js_type_conversion/</link>
		<comments>http://foxling.org/js-ajax-dom/js_type_conversion/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 18:32:26 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[JS/AJAX/DOM]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=684</guid>
		<description><![CDATA[前段时间看了玉伯的《一道大题目》，今晚又看到译飞的《类型转换的乐趣》。 记得当时看了玉伯的文章后就知道他在考《命名函数表达式探秘》的内容，并没有太在意，只是觉得对于浏览器或者Javascript的某些怪异现象，有一定的了解就OK，在实际的运用中，肯定是会避免出现这样的问题。 但看到译飞的文章里提到的 [] == ![] //为true 时，的确愣了一下。 最后，译飞还留下了一道思考题： {} == !{}; //返回什么值？ [] == [] //返回什么值？ 把我的兴趣给提了起来，追根究底一翻再睡觉。 [] == [] 不用讲，肯定是false，两个不同的对象。 通过译飞的分析 Step01: [] == ![] // 由于[]是对象，则 ![] 返回fasle，演变为 Step02。 Step02: [] == fasle // 由于 fasle 是 Boolean 值，则转换成数字 0，演变为 Step03。 Step03: [] == 0 // 由于 0是数字，[]是对象，[] 转换成数字 Number([]) -> 0，演变为 [...]]]></description>
			<content:encoded><![CDATA[<p>前段时间看了<a href="http://lifesinger.org/">玉伯</a>的<a href="http://lifesinger.org/blog/2010/10/a-hard-quiz/">《一道大题目》</a>，今晚又看到<a href="http://www.planabc.net/">译飞</a>的<a href="http://www.planabc.net/2010/11/01/funny_type_conversion_in_javascript/">《类型转换的乐趣》</a>。</p>
<p>记得当时看了玉伯的文章后就知道他在考<a href="http://www.cn-cuckoo.com/main/wp-content/uploads/2009/12/named-function-expressions-demystified.html">《命名函数表达式探秘》</a>的内容，并没有太在意，只是觉得对于浏览器或者Javascript的某些怪异现象，有一定的了解就OK，在实际的运用中，肯定是会避免出现这样的问题。</p>
<p>但看到译飞的文章里提到的 <code>[] == ![] //为true</code> 时，的确愣了一下。<br />
最后，译飞还留下了一道思考题：</p>
<pre>
{} == !{}; //返回什么值？
[] == [] //返回什么值？
</pre>
<p>把我的兴趣给提了起来，追根究底一翻再睡觉。<br />
<code>[] == []</code> 不用讲，肯定是false，两个不同的对象。<br />
通过译飞的分析</p>
<blockquote><p>
Step01: [] == ![] // 由于[]是对象，则 ![] 返回fasle，演变为 Step02。<br />
Step02: [] == fasle // 由于 fasle 是 Boolean 值，则转换成数字 0，演变为 Step03。<br />
Step03: [] == 0 // 由于 0是数字，[]是对象，[] 转换成数字 Number([]) -> 0，演变为 Step04。<br />
Step04: 0 == 0 // 返回最终结果：true
</p></blockquote>
<p><code>[] == ![] //为true</code>，同理，<code>{}</code>也是对象，<code>{} == !{};</code>应该也是true。<br />
通过运行得到结果false。很明显，中间还有道道。</p>
<p>通过翻看<a href="http://bclary.com/2004/11/07/">ECMAScript</a>得知，在译飞的Step03：</p>
<blockquote><p>Step03: [] == 0 // 由于 0是数字，[]是对象，[] 转换成数字 Number([]) -> 0，演变为 Step04。</p></blockquote>
<p>针对<code>{}</code>和<code>[]</code>处理的结果是不一样的。</p>
<p>Number([]) ：<br />
Step01: [] 转换成 空字符串<br />
Step02: Number(”) -> 0;</p>
<p>Number({})：<br />
Step01: {} 转换成 &#8216;[object Object]&#8216;<br />
Step01: Number(&#8216;[object Object]&#8216;) -> NaN</p>
<p>结果：<br />
<code>NaN == 0 //false</code></p>
<p>具体见<a href="http://bclary.com/2004/11/07/#a-8.6.2.6">ECMAScript 8.6.2.6</a><br />
还有其它各种类型的转换，可以仔细再看看。</p>
<p>最后，了解浏览器和Javascript的某些怪异现象和特性，可以在项目中避免遇到一些诡异的问题。</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;我只是条无辜的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>最后的最后，很晚了，睡觉。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/js-ajax-dom/js_type_conversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Eclipse里使用ANT合并压缩JS&amp;CSS</title>
		<link>http://foxling.org/js-ajax-dom/in-eclipse-use-ant-concat-compress/</link>
		<comments>http://foxling.org/js-ajax-dom/in-eclipse-use-ant-concat-compress/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 16:38:08 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[JS/AJAX/DOM]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[Aptana]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=674</guid>
		<description><![CDATA[Aptana 是一款基于Eclipse的免费开源的软件，非常方便地编写 html, css, js, 有丰富完善的代码提示，包括大部分的 JS 框架的提示，比如 prototype/dojo/jquery/yui 等，相当方便。 由于工作开发环境是 JAVA，于是我用 Eclipse 安装了Aptana 的插件。 ANT，是 Apache 的一个开源项目，用于自动化调用程序完成项目的编译，打包，测试等。 Eclipse 内置了Ant，可以很方便地对JS, CSS进行压缩合并处理。 比如 js, css 文件都放在 web_assets 目录下，那么目录结构如下： web_assets +-- ant-build //存放ant build xml 配置文件 +-- js.build.xml //处理 js 的配置文件 +-- js //最终的js文件 +-- lib //其它依赖的程序 +-- src //源文件 lib目录下有yuicompressor.jar, 用 YUI Compressor 压缩 JavaScript 和 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://aptana.org/">Aptana</a> 是一款基于Eclipse的免费开源的软件，非常方便地编写 html, css, js, 有丰富完善的代码提示，包括大部分的 JS 框架的提示，比如 prototype/dojo/jquery/yui 等，相当方便。<br />
由于工作开发环境是 JAVA，于是我用 <a href="http://eclipse.org/">Eclipse</a> 安装了Aptana 的插件。</p>
<p>ANT，是 Apache 的一个开源项目，用于自动化调用程序完成项目的编译，打包，测试等。<br />
Eclipse 内置了Ant，可以很方便地对JS, CSS进行压缩合并处理。</p>
<p>比如 js, css 文件都放在 web_assets 目录下，那么目录结构如下：</p>
<pre>
web_assets
    +-- ant-build  <span style="color:#999;">//存放ant build xml 配置文件</span>
        +-- js.build.xml <span style="color:#999;">//处理 js 的配置文件</span>
    +-- js  <span style="color:#999;">//最终的js文件</span>
    +-- lib  <span style="color:#999;">//其它依赖的程序</span>
    +-- src  <span style="color:#999;">//源文件</span>
</pre>
<p><span id="more-674"></span></p>
<p>lib目录下有yuicompressor.jar, 用 <a href="http://developer.yahoo.com/yui/compressor/">YUI Compressor</a> 压缩 JavaScript 和 CSS</p>
<p>ant-bild/js.build.xml 文件内容如下：</p>
<pre>
&lt;project name="js.build" default="clean" basedir="../"&gt;
    &lt;description&gt;js.build for ANT&lt;/description&gt;
    &lt;property name="src" location="src" /&gt;
    &lt;property name="build" location="build" /&gt;
    &lt;property name="target" location="js" /&gt;
    &lt;property name="lib" location="lib"/&gt;
    &lt;property name="charset" value="utf-8"/&gt;

    &lt;target name="init"&gt;
        &lt;mkdir dir="${build}"/&gt;
    &lt;/target&gt;

    &lt;target name="concat" depends="init"&gt;
        &lt;concat destfile="${build}/core.js" encoding="${charset}" outputencoding="${charset}"&gt;
        	&lt;path path="${src}/core.js" /&gt;
		&lt;path path="${src}/dialog.js" /&gt;
        &lt;/concat&gt;
        &lt;replaceregexp match="@DEBUG@" replace="" flags="g" byline="true" file="${build}/core.js" encoding="${charset}" /&gt;
    &lt;/target&gt;

    &lt;target name="compress" depends="concat"&gt;
        &lt;java jar="${lib}/yuicompressor.jar" fork="true"&gt;
            &lt;arg line="--type js --charset utf-8 ${build}/core.js -o ${target}/core.js"/&gt;
        &lt;/java&gt;

    &lt;/target&gt;

    &lt;target name="clean" depends="compress"&gt;
        &lt;delete dir="${build}"/&gt;
    &lt;/target&gt;

&lt;/project&gt;
</pre>
<p>这个 ant 配置文件要经过4个流程：</p>
<ol>
<li>target init 进行初始化处理，创建一个目录build，用于暂存文件；</li>
<li>target concat 合并两个 js 文件，放到 build 目录下；</li>
<li>target compress 调用 Yui Compressor 对合并后的 js 进行压缩</li>
<li>target clean 进行清理动作，删除生成的 build 目录</li>
</ol>
<p>ANT标签和属性解释：</p>
<ul>
<li>project 的 default 对应某个 target 的 name 值，表示默认执行哪个步骤；</li>
<li>target 的 depends 对应其他某些 target 的 name 属性，表示依赖性；</li>
<li>${name} 可以引用 property 中定义的值。</li>
<li>mkdir 标签创建一个目录</li>
<li>replaceregexp, 正则表达式替换，将DEBUG标识替换为空，在正式环境不处理DEBUG信息</li>
<li>注意设置文件的 encoding 属性，否则可能有乱码情况</li>
</ul>
<p>关于ANT的详细文档，请看官方手册：<a href="http://ant.apache.org/manual/">http://ant.apache.org/manual/</a></p>
<p>在 Eclipse 里右击这个文件，选择 Run As -> ANT Build<br />
即可以控制台看到信息：</p>
<pre>
Buildfile: D:\eclipse\workspace\JS-Test\web_assets\ant-build\build.xml
init:
concat:
compress:
clean:
   [delete] Deleting directory D:\eclipse\workspace\JS-Test\web_assets\build
BUILD SUCCESSFUL
Total time: 875 milliseconds
</pre>
<p>这时候 js 目录就生成了合并压缩后的 core.js 文件，相当方便。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/js-ajax-dom/in-eclipse-use-ant-concat-compress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>异步脚本加载 JS Loader</title>
		<link>http://foxling.org/js-ajax-dom/async-loading-js/</link>
		<comments>http://foxling.org/js-ajax-dom/async-loading-js/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 15:03:37 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[JS/AJAX/DOM]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=653</guid>
		<description><![CDATA[JS会阻塞其它页面资源的下载，通过对JS的异步加载可以解决这个问题，加快页面内容的呈现速度。获得更好的体验。 使用script标签加载 通过firebug查看各种资源加载状态，当test.js下载完毕后，图片才开始下载。 猛击测试页面block.html 使用JSLoader异步加载JS 当使用异步加载方式加载JS时，test.js与图片同时加载，加快了页面的呈现： 猛击测试页面js-loader JSLoader JSLoader.load(url, [fun1], [funN]); 参数： url 要加载的JS的地址 fun 依赖该JS执行的函数 使用示例： JSLoader.load('test.js', function(){ document.getElementById('test').innerHTML = test; }); 猛击这里下载JSLoader.js JSLoader源码： var JSLoader = function(){ var scripts = {}; function getScript(url){ var script = scripts[url]; if (!script){ script = {loaded:false, funs:[]}; scripts[url] = script; add(script, url); } return script; } function [...]]]></description>
			<content:encoded><![CDATA[<p>JS会阻塞其它页面资源的下载，通过对JS的异步加载可以解决这个问题，加快页面内容的呈现速度。获得更好的体验。</p>
<h3>使用script标签加载</h3>
<p>通过firebug查看各种资源加载状态，当test.js下载完毕后，图片才开始下载。<br />
<img src="http://foxling.org/wp-content/uploads/2010/06/script-block.png" alt="" title="JS将阻塞其它资源下载" width="600" height="113" class="aligncenter size-full wp-image-654" /></p>
<p><a href="/examples/2010/06/js-loader/block.html">猛击测试页面block.html</a></p>
<h3>使用JSLoader异步加载JS</h3>
<p>当使用异步加载方式加载JS时，test.js与图片同时加载，加快了页面的呈现：<br />
<img src="http://foxling.org/wp-content/uploads/2010/06/sync-load.png" alt="" title="异步方式加载JS" width="600" height="130" class="aligncenter size-full wp-image-655" /></p>
<p><a href="/examples/2010/06/js-loader/">猛击测试页面js-loader</a></p>
<h3>JSLoader</h3>
<p>JSLoader.load(url, [fun1], [funN]);<br />
参数：<br />
url 要加载的JS的地址<br />
fun 依赖该JS执行的函数</p>
<p>使用示例：</p>
<pre>
JSLoader.load('test.js', function(){
    document.getElementById('test').innerHTML = test;
});
</pre>
<p><a href="/examples/2010/06/js-loader/jsloader.js">猛击这里下载JSLoader.js</a></p>
<p><span id="more-653"></span></p>
<p>JSLoader源码：</p>
<pre>
var JSLoader = function(){

	var scripts = {};

	function getScript(url){
		var script = scripts[url];
		if (!script){
			script = {loaded:false, funs:[]};
			scripts[url] = script;
			add(script, url);
		}
		return script;
	}

	function run(script){
		var funs = script.funs,
			len = funs.length,
			i = 0;

		for (; i &lt; len; i++){
			var fun = funs.pop();
			fun();
		}
	}

	function add(script, url){
		var scriptdom = document.createElement('script');
		scriptdom.type = 'text/javascript';
		scriptdom.loaded = false;
		scriptdom.src = url;

		scriptdom.onload = function(){
			scriptdom.loaded = true;
			run(script);
			scriptdom.onload = scriptdom.onreadystatechange = null;
		};

		//for ie
		scriptdom.onreadystatechange = function(){
			if ((scriptdom.readyState === 'loaded' ||
					scriptdom.readyState === 'complete') &#038;&#038; !scriptdom.loaded) {

				run(script);
				scriptdom.onload = scriptdom.onreadystatechange = null;
			}
		};

		document.getElementsByTagName('head')[0].appendChild(scriptdom);
	}

	return {
		load: function(url){
			var arg = arguments,
				len = arg.length,
				i = 1,
				script = getScript(url),
				loaded = script.loaded;

			for (; i &lt; len; i++){
				var fun = arg[i];
				if (typeof fun === 'function'){
					if (loaded) {
						fun();
					}else{
						script.funs.push(fun);
					}
				}
			}
		}
	};
}();
</pre>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/js-ajax-dom/async-loading-js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>宇轩出浴照一枚</title>
		<link>http://foxling.org/life/my-son/</link>
		<comments>http://foxling.org/life/my-son/#comments</comments>
		<pubDate>Wed, 05 May 2010 13:59:27 +0000</pubDate>
		<dc:creator>FoxLing</dc:creator>
				<category><![CDATA[生活]]></category>

		<guid isPermaLink="false">http://foxling.org/?p=642</guid>
		<description><![CDATA[刚洗完澡的轩轩，最喜欢打电话和玩手机了，经常一个人跑到电话旁拿起听筒叽哩哇啦地说个不停。]]></description>
			<content:encoded><![CDATA[<p><img src="http://foxling.org/wp-content/uploads/2010/05/DSC_0006-600x398.jpg" alt="" title="DSC_0006" width="600" height="398" class="aligncenter size-medium wp-image-643" /></p>
<p>刚洗完澡的轩轩，最喜欢打电话和玩手机了，经常一个人跑到电话旁拿起听筒叽哩哇啦地说个不停。</p>
]]></content:encoded>
			<wfw:commentRss>http://foxling.org/life/my-son/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

