<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[PuterJam's Blog]]></title>
<link>http://www.pjhome.net/</link>
<description><![CDATA[关注互联网~ 关注前端技术~]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[puterjam@gmail.com(puterjam)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>PuterJam&#39;s Blog</title>
	<url>http://www.pjhome.net/images/logos.gif</url>
	<link>http://www.pjhome.net/</link>
	<description>PuterJam&#39;s Blog</description>
</image>

			<item>
			<link>http://www.pjhome.net/article/Web/mac_os_fonts.htm</link>
			<title><![CDATA[关于MacOS下字体的一些研究]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Web Design]]></category>
			<pubDate>Sun,18 Dec 2011 18:16:38 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1039</guid>
		<description><![CDATA[<p style="text-align: center; "><img alt="" src="http://www.pjhome.net/download.asp?id=104" /></p>
<p>Mac 下的中文字体不多，系统默认是使用细黑体来显示中文文字(STXihei)。</p>
<p>为什么苹果不使用宋体来显示呢，因为宋体是衬线字体。</p>
<div><span style="white-space: pre;"> </span><img title="NewImage.png" border="0" alt="NewImage" width="331" height="191" src="http://www.pjhome.net/attachments/month_1112/92011121818932.png" /></div>
<div>衬线字体：带字体修饰的字体。（图中红色部分） 也叫&ldquo;白体&rdquo;，相对的非衬线字体叫&ldquo;黑体&rdquo;，英文叫sans-serif（sans在英文是非的意思）</div>
<div><img title="NewImage.png" border="0" alt="NewImage" width="224" height="115" src="http://www.pjhome.net/attachments/month_1112/j2011121818942.png" /></div>
<div><span style="white-space: pre;"> </span> (中文的宋体和黑体)</div>
<div>在传统的印刷中，衬线字体一般都是用来正文印刷，但是在CRT LCD显示器上这些字体不适合阅读，同时字体过小的衬线字体不如非衬线字体美观。后来微软在vista中推出了微软雅黑这个非衬线字体。同时为了优化非衬线字体，采用了字体抗锯齿技术（clearType）。不过苹果在1998年就开始使用了这个技术。</div>
<div><strong><br />
ClearType 原理</strong></div>
<div><span style="white-space: pre;"> </span><img title="NewImage.png" border="0" alt="NewImage" width="357" height="409" src="http://www.pjhome.net/attachments/month_1112/y2011121818100.png" /></div>
<div>&nbsp;</div>
<div>衬线字体不适合在clearType下使用，因为过小的字号没有住够像素空间去展示（笔划末端的点缀太多），显示也不美观(比如Flash如果用了宋体在mac下&nbsp;<img title="NewImage.png" border="0" alt="NewImage" width="300" height="43" src="http://www.pjhome.net/attachments/month_1112/v20111218181014.png" />就比较悲剧)。</div>
<div>&nbsp;</div>
<div>除非是点阵显示（winXP的宋体时代），点阵显示在LCD上显示会带来不少问题。</div>
<div><span style="white-space: pre;"> </span><img title="NewImage.png" border="0" alt="NewImage" width="183" height="78" src="http://www.pjhome.net/attachments/month_1112/u20111218181028.png" /></div>
<div><span style="white-space: pre;"> </span> （12px&nbsp;ClearType下的宋体）</div>
<div>&nbsp;</div>
<div><span style="white-space: pre;"> </span> <img title="NewImage.png" border="0" alt="NewImage" width="212" height="67" src="http://www.pjhome.net/attachments/month_1112/g20111218181033.png" /></div>
<div><span style="white-space: pre;"> </span> （12px&nbsp;ClearType下的STXihei）</div>
<div>&nbsp;</div>
<div>在Mac系统中，不同语言的默认字体是</div>
<div>
<ul>
    <li><span style="white-space: pre;"> </span>日文字体是：Hiragino Kaku Gothic Pro</li>
    <li><span style="white-space: pre;"> </span>简体中文是：STXihei</li>
    <li><span style="white-space: pre;"> </span>繁体中文是：LiHei Pro Medium</li>
    <li><span style="white-space: pre;"> </span>韩文字体是：AppleGothic</li>
</ul>
<p>&nbsp;</p>
<p>英文的Mac系统中，对文字的字体查找顺序是：</p>
</div>
<div>
<ul>
    <li>英文字体-&gt;日文字体-&gt;中文字体</li>
</ul>
</div>
<div>&nbsp;</div>
<div>Hiragino 字体比 STXihei 显得比较饱满些，不过Hiragino Kaku Gothic Pro没有包含简体文字，后来也出来了简体版本的Hiragino字体叫，冬青黑体简体中文(Hiragino Sans GB)</div>
<div><span style="white-space: pre;"> </span><img title="NewImage.png" border="0" alt="NewImage" width="232" height="93" src="http://www.pjhome.net/attachments/month_1112/320111218181043.png" /></div>
<div>&nbsp;</div>
<div>在 Web 上的字体，如果使用了&nbsp;<span style="color: #1200ff;"><span style="font-family: Helvetica; font-size: 12px;"><span style="color: #7a84f7;">Arial</span></span><span style="color: #1200ff;">,</span><span style="color: #7a84f7;">verdana</span></span> 字体作为默认，中文字体自动是选用非衬线字体<span style="color: #1200ff;"><span style="color: #7a84f7;">STXihei</span></span>。如果默认字体是&nbsp;<span style="color: #1200ff;"><span style="color: #7a84f7;">Georgia</span></span><span style="color: #1200ff;">,</span><span style="color: #1200ff;"><span style="color: #7a84f7;">Times New Roman</span></span>，那么中文字体就会自动选成<span style="color: #1200ff;"><span style="color: #7a84f7;">宋体</span></span>。</div>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Note/1038.html</link>
			<title><![CDATA[URI 和 URL的一些研究笔记]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Note]]></category>
			<pubDate>Tue,15 Nov 2011 16:08:06 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1038</guid>
		<description><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="http://www.pjhome.net/attachments/month_1111/n2011111516727.png" border="0" alt="NewImage" width="527" height="182" /></p>
<p><strong>1. 关键字回顾：</strong></p>
<p><span>RFC(Request For Comments) ，RFC文档是一系列关于Internet（早期为ARPANET）的技术资料汇总，于1969年开始发布。它制定了我们很多常见和不常见的Internet的各种文字资料和规范。</span></p>
<p><span><br /></span></p>
<p><span><strong>URI(Universal Resource Identifiers)</strong> 统一资源标识符， <a href="http://www.ietf.org/rfc/rfc1630.txt"><span>RFC </span>文献<span>1630</span></a>中定义了它详细的规范(1994年6月)</span></p>
<p><span> |- <strong>URL(Uniform Resource Locators)</strong> 统一资源定位符，<a href="http://www.ietf.org/rfc/rfc1738.txt"><span>RFC文献1738</span></a>中定义了它详细的规范(1994年12月)</span></p>
<p><span><br /></span></p>
<p><span>在<strong>URI</strong>的规范中，资源描述文字，只允许使用字母，数字，安全字符，特殊字符，和转义字符</span></p>
<p><span>转义字符在<strong>URL</strong>中规定是使用<span style="color: #fb2003;"><strong>%</strong>和两个<strong>hex</strong></span>进行表示，所以也就是为什么浏览器的<strong>form post</strong>会自动进行转义成<strong>%xx</strong>的关系而不使用<strong>unicode</strong>的关系。</span></p>
<p> </p>
<p><span><img style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="http://www.pjhome.net/attachments/month_1111/f20111115153624.png" border="0" alt="NewImage" width="453" height="495" /></span></p>
<p><span>但是值得注意的是在URI中，空格是作为保留字的，所以URI规范中空格被辅以一个快速标记符号(short hand notation)来进行标识，就是我们看到的<strong>+</strong>号。所以在php中提供的</span><span><strong>urlencode</strong>方法是为了把字符串转换成URI规范用的, 保留空格转换成+号，可以模拟出浏览器form post的结果。</span></p>
<p> </p>
<p><span><strong>2. 说说 URL</strong></span></p>
<p><span>URL 其实是 URI 中的一个子集，URI是一个很宽泛的定义，而且也在URI的基础上做了自己的特殊规范，例如</span></p>
<p><span><img style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="http://www.pjhome.net/attachments/month_1111/t20111115153640.png" border="0" alt="NewImage" width="342" height="141" /></span></p>
<p><span>另外 URL 中把 # 规定成锚点是用来定位使用，使用了URI规定的保留字中的一个字符。</span></p>
<p><span>当然URL的escape也遵循了URI的规范使用 %和两个hex的格式。</span></p>
<p><span>值得注意的是URL的保留字和URI是不一样的，这些字符都是有特殊意义的</span></p>
<p><span><img style="display: block; margin-left: auto; margin-right: auto;" title="NewImage.png" src="http://www.pjhome.net/attachments/month_1111/320111115153651.png" border="0" alt="NewImage" width="382" height="44" /></span></p>
<p><span>有没有注意到空格在里面？在URL规范中，空格只是认为不安全(unsafe)的存在，因为可能会因为排版和打印关系，可能会被忽略，所以URL中是需要把空格转换成%20的。对应的php提供的rawurlencode 方法是用来把字符串转换成URL的标准。</span></p>
<p><span>JS中的 encodeURI和encodeURIComponent 对字符的转义，虽然也是按照URI规范转义，但是它并没还有转换空格成+号，而是%20，后者会把URI的保留字</span><span><strong>; : / ?</strong>也进行转义。为什么浏览器和流行的server遇到 “ “,%20,+ 都会转换成空格？其实是为了更好兼容URI标准。</span></p>
<p><span>其实很多流行的http server都已经根据标准自动把url进行decode后给到后面的CGI进行处理，而我们自己的server很多时候需要开发来对这些进行decode。如果对这些标准不了解就很容易在decode的时候使用错误的decode手段。</span></p>
<p><span>而unicode目前使用场景最多的是在我们的脚本语言和页面展示中，为了支持更宽的字符集，用一种统一的编码来规范处理文字而使用，浏览器会根据资源的定义(charset) 对目标的文字先进行unicode转义后再进行统一的处理，这样就可以保证一个utf-8 的页面也可以同时支持请求GB2312的资源，而不会因此显示出错。</span></p>
<p> </p>
<p><span><strong>3. 附件：</strong></span></p>
<p><span>除了URI和URL以外，还有一个不太流行的URN(Uniform Resource Name), 有兴趣的同学可以自己研究：P，它同样也是属于URI的子集。</span></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Javascript/html5_Orientation.html</link>
			<title><![CDATA[HTML5 重力感应试玩～]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Javascript]]></category>
			<pubDate>Thu,21 Jul 2011 21:11:06 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1037</guid>
		<description><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" title="blog picture template.artx 530x185 px-2.png" border="0" alt="Blog picture template artx 530x185 px 2" width="526" height="180" src="http://www.pjhome.net/attachments/month_1107/d201172121111.png" /></p>
<p>html5 中针对高端手机提供了重力感应和重力加速的接口，开发可以利用这个接口获取到移动设备重力加速感应数据。</p>
<p>目前已经支持的浏览器只有chrome和firefox，以及IOS的webkit（貌似android上因为版本差异很大，部分低版本的系统不支持）。</p>
<p>通过iphone或者mac电脑访问下面的地址可以体验哈</p>
<p><a href="http://www.pjhome.net/web/Orientation.html">http://www.pjhome.net/web/Orientation.html</a></p>
<p>&nbsp;</p>
<p>使用也比较简单:</p>
<p>首先，绑定感应事件</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span>window.addEventListener(</span><span class="string">'deviceorientation'</span><span>,&nbsp;</span><span class="keyword">this</span><span>.orientationListener,&nbsp;</span><span class="keyword">false</span><span>);&nbsp;</span><span class="comment">//方向感应器</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span>window.addEventListener(<span class="string">'MozOrientation'</span><span>,&nbsp;</span><span class="keyword">this</span><span>.orientationListener,&nbsp;</span><span class="keyword">false</span><span>);&nbsp;</span><span class="comment">//方向感应器&nbsp;for&nbsp;firefox&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>window.addEventListener(<span class="string">'devicemotion'</span><span>,&nbsp;</span><span class="keyword">this</span><span>.orientationListener,&nbsp;</span><span class="keyword">false</span><span>);&nbsp;</span><span class="comment">//重力加速感应器&nbsp;for&nbsp;iphone,&nbsp;android</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><br />
使用上需要区分设备是否支持重力加速器，部分设备无重力加速，只能获取到方向</p>
<p>方向中分<strong><span style="text-decoration: underline;">alpha</span></strong>，<strong><span style="text-decoration: underline;">beta</span></strong>，<strong><span style="text-decoration: underline;">gamma</span></strong>三个，其实对应我们常说的 <strong>y</strong>, <strong>z</strong>, <strong>x</strong> 三个方向, 方向可以通过&nbsp;<strong><span style="text-decoration: underline;">event</span> </strong>来直接获取到，获取到到的数据单位是 <strong><span style="text-decoration: underline;">度数</span></strong>, 不过firefox稍微有点偏离规范，返回的是 <strong><span style="text-decoration: underline;">弧度</span></strong> 单位。</p>
<p><img style="font-size: 11px; background: #fff;" title="start.png" border="0" alt="Start" width="450" height="450" src="http://www.pjhome.net/attachments/month_1107/m2011721211030.png" /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Javascript/setImmediate_requestAnimationFrame.html</link>
			<title><![CDATA[setTimeout(0) 即将退役]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Javascript]]></category>
			<pubDate>Wed,20 Jul 2011 23:50:09 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1036</guid>
		<description><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" title="blog picture template.artx 530x185 px.png" border="0" alt="Blog picture template artx 530x185 px" width="527" height="183" src="http://www.pjhome.net/attachments/month_1107/42011720234956.png" /></p>
<p>相信所有做前端开发的同学都会经常使用&nbsp;<span style="text-decoration: underline;"><strong>setTimeout(0)</strong></span> 来做很多事情，这个一度成为解决了很多前端疑难杂症的法宝。而且大家也知道&nbsp;<span style="text-decoration: underline;"><strong>setTImeout(0)</strong></span> 的极限在16ms左右。也许很多人没想到这个是一个很严重的问题，但是在w3c性能小组的专家眼里这是一个非常纠结的设置。</p>
<p><strong>那setTimeout和16ms会带来什么问题呢？</strong></p>
<p><span style="font-size: 18px;"> </span><span style="font-size: 20px;">1. </span>我们都知道，我们在做页面动画的时候大多数都是在用setTImeout来控制每一帧的动画的， 而多个setTimeout的存在会导致很多次CPU中断调度的开销，为了减少这些开销，我们希望同一个统一的CPU中断调度管理调度单元来管理所有动画，</p>
<p>于是就出现了 <span style="text-decoration: underline;"><span style="font-size: 16px;"><strong>requestAnimationFrame</strong></span></span>。&nbsp;<span style="text-decoration: underline;"><strong>requestAnimationFrame</strong></span> 的出现不仅仅可以解决中断调度的问题，还可以更加优化得统一管理动画单元里dom元素的repaint方式。</p>
<p><span style="font-size: 20px;">2.</span> 杯具的16ms，在早期。js的callback执行，是依赖CPU的中断来进行控制的，如果两个中断之间时间太短会导致，CPU性能消耗很高，同时影响能耗，于是微软和英特公司为了解决这个问题，就约定每个中断之间的间隔是15.6ms<em>（64 fps）</em>所以就是我们常见的约等于16ms的间隔。不过随着web的要求不断增加，大家对这个要求希望是放宽的态度，于是在高端浏览器，这个性能被提升了4倍左右，所以在chrome，ie10等浏览器，setTimeout的间隔缩短到了 4ms <em>（250 fps）</em>。 但是问题来了，这么高的消耗以传统的方式，并不能从根本上解决CPU的调度问题，而且能耗也会提升40%</p>
<p>于是W3C，提出需要取代 <span style="text-decoration: underline;"><strong>setTimeout(0)</strong></span> 的代替品 ---&nbsp;<span style="text-decoration: underline;"><span style="font-size: 16px;"><strong>setImmediate</strong></span></span></p>
<p>不过到底底层如何解决了这个CPU调度，还能保证脚本能够很快执行，这块舜子还在研究，了解的朋友也欢迎一起交流哈。</p>
<p>&nbsp;</p>
<p>这是两个非常好的方法用来取代setTimeout的api，舜子也做了一些小小的实验来验证 requestAnimationFrame,setImmediate 和 setTimeout 之间的执行效率区别，在IE10下可以看到，setImmediate 接口的callback次数可以达到每秒 6000 次的的执行。而requestAnimationFrame主要目的是为了保证动画的圆滑播放，所以基本上是控制在60 fps的范围，而且根据文档介绍，只是一个时钟控制器在进行调度，而且会更加需要来进行按需渲染。</p>
<p><img alt="" src="http://www.pjhome.net/attachments/month_1107/20110720232212.png" /></p>
<p><a target="_blank" href="http://www.pjhome.net/web/html5/timing_test.htm">http://www.pjhome.net/web/html5/timing_test.htm</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Note/1035.html</link>
			<title><![CDATA[微软出品 Html5 的吃豆人]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Note]]></category>
			<pubDate>Thu,21 Apr 2011 11:00:02 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1035</guid>
		<description><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" title="blog picture template.artx 530x185 px-1.jpg" src="http://www.pjhome.net/attachments/month_1104/c2011421105825.jpg" border="0" alt="Blog picture template artx 530x185 px 1" width="528" height="183" /></p>
<p>Html5 游戏开始初露锋芒，在终端上渐现优势的Html5 game 或许瞄准了一个非常号的平台。微软的加入更加让Html5的普及加上更多的动力。</p>
<p>看看微软做的html5游戏吧，这个在FC上的经典游戏，也跨平台到了HTML5上，不过借助网络的力量，这个版本的吃豆人可以自创关卡哟～</p>
<p>这个游戏由澳大利亚的网页游戏工作室Soap Creative开发，发布于微软的MIX11开发者大会上。</p>
<p>使用 Opera firefox Chrome IE9 等浏览器都可以玩哈～  <a href="http://worldsbiggestpacman.com/">猛击这里游玩</a></p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="World_s Biggest PAC-MAN.jpg" src="http://www.pjhome.net/attachments/month_1104/7201142110478.jpg" border="0" alt="World s Biggest PAC MAN" width="600" height="410" /></p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="World_s Biggest PAC-MAN-1.jpg" src="http://www.pjhome.net/attachments/month_1104/o2011421104843.jpg" border="0" alt="World s Biggest PAC MAN 1" width="600" height="410" /></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Diary/1034.html</link>
			<title><![CDATA[MarsEdit 发日志测试～]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Thu,21 Apr 2011 02:37:43 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1034</guid>
		<description><![CDATA[<p><img style="display: block; margin-left: auto; margin-right: auto;" title="blog picture template.artx 530x185 px.jpg" src="http://www.pjhome.net/attachments/month_1104/j20114212337.jpg" border="0" alt="MarsEdit" width="526" height="180" /></p>
<p>Mac 下不乏很多好用的blog工具。不过当下写Blog的人也越来越少了。随后也出了很多代替品，例如：点点之类。</p>
<p>不过写博客最好的工具还是离线Blog工具，不过这些工具对很多来说都比较高端。</p>
<p>看看自己的Blog其实也很长时间没写东西了，自己也总在找借口说工作忙。其实是因为工作忙还是因为其他原因呢？</p>
<p>其实也是发现自己写Blog开始希望点点的方式，微博客，用最简单，最快的方式写博客。PJBlog的Blog功能我现在看来还是过于复杂了。</p>
<p>说了是发日志测试还是推荐一下Mac下的MarsEdit吧, 当然也顺便优化一下PJBlog3的XML-RPC接口的一些bug。让其对离线Blog支持得更加好一些。</p>
<p><img style="display: block; margin-left: auto; margin-right: auto; border: 0px initial initial;" title="Preview of “MarsEdit 发日志测试～”.jpg" src="http://www.pjhome.net/attachments/month_1104/9201142123449.jpg" border="0" alt="Preview of  MarsEdit 发日志测试～" width="600" height="361" /></p>
<p>另外 MarsEdit 还有个好处就是，通过xmlprc发过的图片文件都会记录在库里，下次使用的时候非常方便。而且他的预览功能也比较直接，不过还是需要懂一些代码才能玩转（是不是老外写博客的人都会Html呀）</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" title="Media Manager.jpg" src="http://www.pjhome.net/attachments/month_1104/o201142123633.jpg" border="0" alt="Media Manager" width="600" height="496" /></p>
<p>（拖拽图片，边写边Upload比较适合PJblog，因为舜子尝试过MS Writer，一次传输大量图片会导致服务器处理超时。）</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Javascript/nodeJS_IDE_cloud9.html</link>
			<title><![CDATA[编辑器也浮云- cloud9 IDE分享]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Javascript]]></category>
			<pubDate>Fri,21 Jan 2011 19:36:02 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1032</guid>
		<description><![CDATA[<p style="text-align: center; "><img alt="" src="http://www.pjhome.net/attachments/month_1101/20110121191620.jpg" /></p>
<p>近期node.js的消息越来越多，越来越多的前端开发开始关注到这个似乎可以改变我们命运的新技术。其实node.js和之前的mozilla rhino一样都是可以本地执行脚本，不过和rhino的区别在于node.js更加希望的是让前端开发能够通过自己熟悉的语言更块地搭建自己的后台服务。</p>
<p>基于node.js，其实对云端化是有帮助的。Cloud9 IDE就是借助node，让编辑器也云端化。Cloud9 IDE基于node.js，服务于node.js。它提供了编辑器基础的功能。同时也给node.js一个可视化的调试环境（前端开发要是没个可视化的调试器，估计会很抓狂）。</p>
<p>好了，准备开始研究node.js的同学一定不能错过这一个开发辅助利器哈。</p>
<p>&nbsp;</p>
<p><strong>如何安装：</strong></p>
<p>首先确认你已经安装好了<strong>node.js</strong>，这里就不讲如何安装<strong>node.js</strong>了，步骤也很简单，编译过程也很快。下载<strong>node.js</strong>到这里&nbsp;<a target="_blank" href="http://nodejs.org/">http://nodejs.org/</a></p>
<p>到 github 下载源码&nbsp;<a target="_blank" href="https://github.com/ajaxorg/cloud9">https://github.com/ajaxorg/cloud9</a></p>
<p>当然, linux或者window的cygwin同学可以直接使用git工具来获得 &nbsp;</p>
<p>
<meta charset="utf-8" /></p>
<pre style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0.5em !important; padding-right: 0.5em !important; padding-bottom: 0.5em !important; padding-left: 0.5em !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.5em !important; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: solid !important; border-right-style: solid !important; border-bottom-style: solid !important; border-left-style: solid !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; color: rgb(68, 68, 68) !important; overflow-x: auto !important; overflow-y: auto !important; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; ">git clone git://github.com/ajaxorg/cloud9.git</code></pre>
<p>&nbsp;</p>
<p><strong>执行 :</strong></p>
<p>1. 到你的cloud9的本地目录执行</p>
<p>
<meta charset="utf-8" /></p>
<p style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5em !important; ">Linux and OSX:</p>
<pre style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0.5em !important; padding-right: 0.5em !important; padding-bottom: 0.5em !important; padding-left: 0.5em !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.5em !important; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: solid !important; border-right-style: solid !important; border-bottom-style: solid !important; border-left-style: solid !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; color: rgb(68, 68, 68) !important; overflow-x: auto !important; overflow-y: auto !important; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; ">$ bin/cloud9.sh </code></pre>
<p style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.5em !important; ">Windows:</p>
<pre style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0.5em !important; padding-right: 0.5em !important; padding-bottom: 0.5em !important; padding-left: 0.5em !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.5em !important; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: solid !important; border-right-style: solid !important; border-bottom-style: solid !important; border-left-style: solid !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; color: rgb(68, 68, 68) !important; overflow-x: auto !important; overflow-y: auto !important; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; ">&gt; bin\cloud9-win32.bat </code></pre>
<div><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; "><br />
</code></div>
<div>第一次运行会需要一点时间，cloud9会在线更新一些必要的文件，第二次运行就很快了</div>
<div>&nbsp;</div>
<div>在你的运行控制台里看到这个图案就说明启动正常了。</div>
<p><img alt="" style="width:600px" src="http://www.pjhome.net/attachments/month_1101/20110121192530.jpg" /></p>
<p>&nbsp;</p>
<p>2. 然后 在你的浏览器里直接打开 http://127.0.0.1:3000 即可以打开编辑器，嘿嘿是不是启动比神马的eclipse要快很多呀。当然这里还是推荐chrome了。</p>
<p><img alt="" style="width:600px" src="http://www.pjhome.net/attachments/month_1101/20110121192727.jpg" /></p>
<p>&nbsp;</p>
<p>在cloud9 IDE中你可以很方便地调试你的node.js代码，而且cloud9也提供了多种语法高亮效果. 不过既然云端了，cloud9也会出现一些很明显的问题，例如不能直接编辑本地文件，你在启动编辑器的时候设置一个工作路径，你之能编辑这个路径下的文件。</p>
<p>*通过 -w 启动前设置工作路径</p>
<p>
<meta charset="utf-8"> </meta>
</p>
<pre style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 0.5em !important; padding-right: 0.5em !important; padding-bottom: 0.5em !important; padding-left: 0.5em !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.5em !important; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: solid !important; border-right-style: solid !important; border-bottom-style: solid !important; border-left-style: solid !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; color: rgb(68, 68, 68) !important; overflow-x: auto !important; overflow-y: auto !important; "><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; ">$ node bin/cloud9.js -w /path/to/your/awesome/workspace </code></pre>
<div><code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; font: normal normal normal 12px/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; line-height: 1.4em; font-size: 12px !important; background-color: rgb(248, 248, 255) !important; color: rgb(68, 68, 68) !important; border-top-width: 1px !important; border-right-width: 1px !important; border-bottom-width: 1px !important; border-left-width: 1px !important; border-top-style: none !important; border-right-style: none !important; border-bottom-style: none !important; border-left-style: none !important; border-top-color: rgb(222, 222, 222) !important; border-right-color: rgb(222, 222, 222) !important; border-bottom-color: rgb(222, 222, 222) !important; border-left-color: rgb(222, 222, 222) !important; border-width: initial !important; border-color: initial !important; "><br />
</code></div>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Resource/html5_logo.html</link>
			<title><![CDATA[给自己的站点打上HTML5的LOGO]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Resource]]></category>
			<pubDate>Wed,19 Jan 2011 14:44:02 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1031</guid>
		<description><![CDATA[<p style="text-align: center; "><img alt="" src="http://www.pjhome.net/attachments/month_1101/20110119145334.jpg" /></p>
<p>W3C官方推出了HTML5的官方logo，同时也给开发者提供了很多推广的方法。同时除了HTML5自己的LOGO以外，HTML5的一些新技术也有了自己的logo，更多的大家可以到<a target="_blank" href="http://www.w3.org/html/logo/">官方站点</a>去发现哈～&nbsp;</p>
<p style="text-align: center; "><img alt="semantics" src="http://www.w3.org/html/logo/img/class-header-semantics.jpg" /></p>
<p style="text-align: center; "><img alt="offline" src="http://www.w3.org/html/logo/img/class-header-offline.jpg" /></p>
<p style="text-align: center; "><img alt="device" src="http://www.w3.org/html/logo/img/class-header-device.jpg" /></p>
<p style="text-align: center; "><img alt="connectivity" src="http://www.w3.org/html/logo/img/class-header-connectivity.jpg" /></p>
<p style="text-align: center; "><img alt="multimedia" src="http://www.w3.org/html/logo/img/class-header-multimedia.jpg" /></p>
<p style="text-align: center; "><img alt="3d" src="http://www.w3.org/html/logo/img/class-header-3d.jpg" /></p>
<p style="text-align: center; "><img alt="performance" src="http://www.w3.org/html/logo/img/class-header-performance.jpg" /></p>
<p style="text-align: center; "><img alt="css3" src="http://www.w3.org/html/logo/img/class-header-css3.jpg" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img alt="" src="http://www.w3.org/html/logo/badge/html5-badge-h-connectivity-css3-device-graphics-multimedia-performance-semantics-storage.png" /></p>
<p>访问地址:&nbsp;<a href="http://www.w3.org/html/logo/">http://www.w3.org/html/logo/</a></p>
<p>&nbsp;</p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Diary/web_frontend_recruit.html</link>
			<title><![CDATA[深圳腾讯 Web 前端开发职位空缺]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Diary]]></category>
			<pubDate>Fri,31 Dec 2010 15:37:20 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1030</guid>
		<description><![CDATA[<p style="text-align: center; "><img alt="" src="http://www.pjhome.net/attachments/month_1012/20101231154327.jpg" /></p>
<p><strong><span style="font-size: 16px; "><span style="font-family: 微软雅黑; ">岗位职责：</span></span></strong></p>
<p><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">1. 前端开发javascript开发</span></span><br />
<span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">2. 终端设备上的web应用</span></span></p>
<p><span style="font-family: 微软雅黑; ">&nbsp;</span></p>
<p><strong><span style="font-size: 16px; "><span style="font-family: 微软雅黑; ">岗位要求：</span></span></strong></p>
<p><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">&bull; &nbsp;2年以上相关工作经验；<br />
</span></span>&bull;&nbsp;&nbsp;&nbsp;精通javascript、HTML语法；有一定的跨浏览器开发经验；具备优化javascript性能经验；<br />
&bull;&nbsp;&nbsp;&nbsp;能独立html、css的页面制作、具备了好的css功底<br />
&bull;&nbsp;&nbsp;&nbsp;有flash或手机终端开发经验优先；<br />
&bull;&nbsp;&nbsp;&nbsp;具有成功的互联网应用软件开发经历优先；<br />
&bull;&nbsp;&nbsp;&nbsp;具备良好的分析解决问题能力，能独立承担任务和有系统进度把控能力；<br />
&bull;&nbsp;&nbsp;&nbsp;责任心强，良好的对外沟通和团队协作能力，主动，好学。</p>
<p><span style="font-family: 微软雅黑; ">&nbsp;</span></p>
<p><span style="font-size: 16px; "><strong><span style="font-family: 微软雅黑; ">联系方式：</span></strong></span></p>
<p><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">有意者，请将简历和作品发到我邮箱</span></span></p>
<p><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">puterjam[at]qq.com<br />
</span></span><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">zishunchen[at]tencent[dot]com</span></span></p>
<p><span style="font-size: 14px; "><span style="font-family: 微软雅黑; ">&nbsp;</span></span></p>
<p><span style="font-size: 18px; "><strong><span style="font-family: 微软雅黑; ">另外一则信息：</span></strong></span></p>
<p><span style="font-family: 微软雅黑; ">腾讯1月8日深圳专场+预约招聘会 等待您的参与</span></p>
<p><a href="http://hr.tencent.com/scene_detail.php?id=11"><span style="font-family: 微软雅黑; ">http://hr.tencent.com/scene_detail.php?id=11</span></a></p>]]></description>
		</item>
		
			<item>
			<link>http://www.pjhome.net/article/Javascript/file_to_base64_url.html</link>
			<title><![CDATA[利用HTML5对文件进行base64转换]]></title>
			<author>puterjam@gmail.com(puterjam)</author>
			<category><![CDATA[Javascript]]></category>
			<pubDate>Mon,27 Sep 2010 01:27:42 +0800</pubDate>
			<guid>http://www.pjhome.net/default.asp?id=1029</guid>
		<description><![CDATA[<p style="text-align: center; "><img alt="" src="http://www.pjhome.net/attachments/month_1009/20100927012629.png" /></p>
<p>Base64编码的数据做为URL的应用开始越来越广泛，转换的工具也不少。但是不少工具都是要下载或者在线进行转换，或不能进行批量转换。</p>
<p>这里舜子利用HTML5的<a target="_blank" href="https://developer.mozilla.org/en/DOM/FileReader">FileReader</a>我们是可以对本地文件进行读取并且转换为浏览器用的base64 URL，</p>
<p>然后利用HTML5的<a target="_blank" href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop">Drag&amp;Drop</a>我们只需要把文件拖放到浏览器窗口即可开始进行转换。</p>
<p>&nbsp;</p>
<p>工具地址:&nbsp;<a target="_blank" href="http://www.pjhome.net/web/html5/encodeDataUrl.htm">http://www.pjhome.net/web/html5/encodeDataUrl.htm</a></p>
<p>&nbsp;</p>
<p>Html5的base64转换小工具在Chrome浏览器和firefox下测试通过。当然效果快的还是Chrome浏览器。舜子还针对音频和图片进行了预览支持。当然大家用到base64的应该还是图片较多。所以小工具有个bug就是无法处理过大的文件，过大的base64其实意义不大了。</p>]]></description>
		</item>
		
</channel>
</rss>

