<?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; 章政</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/482142/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Mon, 28 May 2012 13:40:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>HTML5之Web Storage</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/#comments</comments>
		<pubDate>Mon, 26 Dec 2011 04:00:27 +0000</pubDate>
		<dc:creator>章政</dc:creator>
				<category><![CDATA[Android 开发]]></category>
		<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[全国博客大奖赛]]></category>
		<category><![CDATA[全国大学生软件创新大赛专栏]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[图形和视觉计算]]></category>
		<category><![CDATA[并行计算]]></category>
		<category><![CDATA[开放源代码]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[移动技术]]></category>
		<category><![CDATA[英特尔® 软件网络 2.0]]></category>
		<category><![CDATA[英特尔信息技术峰会]]></category>
		<category><![CDATA[虚拟化技术]]></category>
		<category><![CDATA[软件开发工具]]></category>
		<category><![CDATA[软件技术学习及认证]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/</guid>
		<description><![CDATA[WebStorage的出现是为了弥补cookie的不足,cookie一方面是容量小，4k/8k，存几个电子邮件都不够，二来是全局的，容易被误用，盗用。 在HTML5中网络存储按照生命周期分为2种，一种是基于会话(session),这种存储周期只是当前会话，当网页[注1]被关被后，或者被转到其他网站后，存储也就被销毁； sessionStorage.varName = “生成新变量”; sessionStorage.varName = “变量操作”; delete sessionStorage.varName; //删除变量 另外一种是本地存储，当网页下次被打开的时候，你仍然可以访问上次打开该网页时存储的数据，比如本地存储的网站用户名就可以使用这种方式。 用法和基于会话的存储一样，只是前缀名改成了localStorage localStorage.varName = “生成新变量”; localStorage.varName = “变量操作”; delete localStorage.varName; //删除变量 从上面可以看出web storage其实也只是解决了轻量级的数据存储问题，如果是大量的数据查询，比如商品列表，还是得靠数据库,HTML5中有Web Database来支持这一操作，基本操作和SQL一致。 注1：现在的浏览器基本都支持多窗口了，一个窗口对应一个网页 注2：官方参考]]></description>
			<content:encoded><![CDATA[<p>WebStorage的出现是为了弥补cookie的不足,cookie一方面是容量小，4k/8k，存几个电子邮件都不够，二来是全局的，容易被误用，盗用。<br />
在HTML5中网络存储按照生命周期分为2种，一种是基于会话(session),这种存储周期只是当前会话，当网页[注1]被关被后，或者被转到其他网站后，存储也就被销毁；</p>
<pre name="code" class="js">
sessionStorage.varName = “生成新变量”;
sessionStorage.varName = “变量操作”;
delete sessionStorage.varName;  //删除变量
</pre>
<p>另外一种是本地存储，当网页下次被打开的时候，你仍然可以访问上次打开该网页时存储的数据，比如本地存储的网站用户名就可以使用这种方式。<br />
用法和基于会话的存储一样，只是前缀名改成了localStorage</p>
<pre name="code" class="js">
localStorage.varName = “生成新变量”;
localStorage.varName = “变量操作”;
delete localStorage.varName;  //删除变量
</pre>
<p>从上面可以看出web storage其实也只是解决了轻量级的数据存储问题，如果是大量的数据查询，比如商品列表，还是得靠数据库,HTML5中有Web Database来支持这一操作，基本操作和SQL一致。<br />
注1：现在的浏览器基本都支持多窗口了，一个窗口对应一个网页<br />
注2：<a href="http://dev.w3.org/html5/webstorage/">官方参考</a></p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/26/html5web-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML5之Worker Thread</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/11/22/html5worker-thread/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/11/22/html5worker-thread/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 08:33:18 +0000</pubDate>
		<dc:creator>章政</dc:creator>
				<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[其他]]></category>
		<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[并行计算]]></category>
		<category><![CDATA[开放源代码]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[移动技术]]></category>
		<category><![CDATA[英特尔® 软件网络 2.0]]></category>
		<category><![CDATA[英特尔信息技术峰会]]></category>
		<category><![CDATA[软件开发工具]]></category>
		<category><![CDATA[软件技术学习及认证]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>
		<category><![CDATA[HTML5 workerthread]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/11/22/html5worker-thread/</guid>
		<description><![CDATA[传统网页中嵌入的JSP语言都是执行在UI的上下文中，一般来说这种JSP处理的都是简单逻辑，没啥问题，随着Web复杂度越来高，JSP能处理的事情也越来越复杂，如果JSP计算量比较大的话，这就会导致UI页面假死。HTML5中的WorkerThread可以缓解这个问题，Worker Thread通过UI thread创建一个新的线程来进行计算，消息和结果通过Web Message来进行通讯，由于这种异步性，UI便可以较为流畅地响应新到来的事件。 调用过程如下： 1.新的工作线程执行体放在一个单独的JS文件中，比如worker.js. self.onmessage = function(event){ //do the real compute ---begin // //do the real compute ---end //post message back to UI thread self.postMessage(XXXX); }; 2.在UI的执行线程中生成一个worker对象，worker对象的构造函数参数就是worker.js var worker = new Worker("worker.js"); 3.下面就可以发送消息让worker干活了 worker.postMessage("perise"); 4.活干完了给UI发送消息,也就是第一步中的 self.postMessage(XXXX); 5.UI进行响应 worker.onmessage = function(event){ //update UI here }; Notes: *在Chrome中调试的时候会出现SECURITY_ERR: DOM Exception 18，传说是Webkit的bug,没有细究，可以通过搭建一个本地的HTTP服务器来解决，把HTML文件放到本地服务器上就可以绕开这个安全问题了，我使用的是WAMP。 *也许是为了控制Worker Thread的复杂度，Chrome的Worker Thread中不能再生成新的worker thread，其实这个很容易绕开，发送一个消息到UI中，让UI生成新的Worker [...]]]></description>
			<content:encoded><![CDATA[<p>传统网页中嵌入的JSP语言都是执行在UI的上下文中，一般来说这种JSP处理的都是简单逻辑，没啥问题，随着Web复杂度越来高，JSP能处理的事情也越来越复杂，如果JSP计算量比较大的话，这就会导致UI页面假死。HTML5中的WorkerThread可以缓解这个问题，Worker Thread通过UI thread创建一个新的线程来进行计算，消息和结果通过Web Message来进行通讯，由于这种异步性，UI便可以较为流畅地响应新到来的事件。<br />
调用过程如下：<br />
1.新的工作线程执行体放在一个单独的JS文件中，比如worker.js.</p>
<pre name="code" class="js">self.onmessage = function(event){
        //do the real compute ---begin
        //
        //do the real compute ---end
        //post message back to UI thread
	self.postMessage(XXXX);
};</pre>
<p>2.在UI的执行线程中生成一个worker对象，worker对象的构造函数参数就是worker.js</p>
<pre name="code" class="js">var worker = new Worker("worker.js");</pre>
<p>3.下面就可以发送消息让worker干活了</p>
<pre name="code" class="js">worker.postMessage("perise");</pre>
<p>4.活干完了给UI发送消息,也就是第一步中的</p>
<pre name="code" class="js">self.postMessage(XXXX);</pre>
<p>5.UI进行响应</p>
<pre name="code" class="js">worker.onmessage = function(event){
                        //update UI here
			};</pre>
<p>Notes:<br />
*在Chrome中调试的时候会出现SECURITY_ERR: DOM Exception 18，传说是Webkit的<a href="http://stackoverflow.com/questions/2704929/uncaught-error-security-err-dom-exception-18">bug</a>,没有细究，可以通过搭建一个本地的HTTP服务器来解决，把HTML文件放到本地服务器上就可以绕开这个安全问题了，我使用的是<a href="http://www.wampserver.com/en/">WAMP</a>。<br />
*也许是为了控制Worker Thread的复杂度，Chrome的Worker Thread中不能再生成新的worker thread，其实这个很容易绕开，发送一个消息到UI中，让UI生成新的Worker Thread就好,Firefox可以支持subworker,但Chrome是可以支持sharework，这种shareworker可以共享JS文件里面的全局数据。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/11/22/html5worker-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCL 1.2 发布啦</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/11/17/opencl-12/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/11/17/opencl-12/#comments</comments>
		<pubDate>Thu, 17 Nov 2011 06:46:17 +0000</pubDate>
		<dc:creator>章政</dc:creator>
				<category><![CDATA[Blog Challenge]]></category>
		<category><![CDATA[全国大学生软件创新大赛专栏]]></category>
		<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[图形和视觉计算]]></category>
		<category><![CDATA[并行计算]]></category>
		<category><![CDATA[游戏]]></category>
		<category><![CDATA[移动技术]]></category>
		<category><![CDATA[软件开发工具]]></category>
		<category><![CDATA[高校博客大奖赛]]></category>
		<category><![CDATA[OpenCL]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/11/17/opencl-12/</guid>
		<description><![CDATA[Khronos发布了OpenCL的更新版OpenCL 1.2 相对于1.1来说，没有太多的变化，保持了前向兼容。 The new OpenCL 1.2 specification released on November 15th 2011, provides enhanced performance and functionality in response to requests from the developer community – while retaining backwards compatibility with OpenCL 1.0 and 1.1. New features in OpenCL 1.2 include seamless sharing of media and surfaces with DirectX® 9 and 11, enhanced image [...]]]></description>
			<content:encoded><![CDATA[<p>Khronos发布了OpenCL的更新版OpenCL 1.2<br />
相对于1.1来说，没有太多的变化，保持了前向兼容。</p>
<blockquote><p>
The new OpenCL 1.2 specification released on November 15th 2011, provides enhanced performance and functionality in response to requests from the developer community – while retaining backwards compatibility with OpenCL 1.0 and 1.1. New features in OpenCL 1.2 include seamless sharing of media and surfaces with DirectX® 9 and 11, enhanced image support, custom devices and kernels, device partitioning and separate compilation and linking of objects.
</p></blockquote>
<p>具体参考文档见<a href="http://www.khronos.org/opencl/">OpenCL老巢</a><br />
关于OpenCL未来的发展方向，可能会演化出2个版本，一个版本是朝上发展，API对于程序员更为友好。目前无论是OpenCL还是CUDA，对程序员都是不太友好，写出一个高性能的并行程序，需要了解太多硬件的细节和调试；另一个方向就是向下了，OpenCL的中间码，相当于汇编，能更细粒度的操作硬件,在这个层次上，程序员可以充分挖掘某款硬件的性能，当然前提是程序员需要对硬件有足够的了解。技术再好，不能为大众服务也是白搭，搭上WEB这趟车，马上就能大众化，OpenCL也没有落后，Web版本的OpenCL(WebCL)也在紧锣密鼓制定当中。具体可以参考<a href="http://www.eetimes.com/electronics-news/4230602/OpenCL-gets-upgrade--Altera-tips-FPGA-tool?pageNumber=1">OpenCL主席的访谈</a>。如果以后浏览器都能支持WebCL加速的话，用JSP/ASP这种脚本语言也可以轻松完成搞性能计算了，其实我觉得这个比较有吸引力，空闲的机器，打开某个网页就可以把自己的计算能力贡献出来，这样以后可以轻松通过浏览器来搭建个人高性能计算网络，神马超算中心都是浮云。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/11/17/opencl-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

