﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-爬-随笔分类-life</title><link>http://www.cppblog.com/cdy20/category/8462.html</link><description>qq：286402937  
架构-开源交流 167813458
lomox群：41830909

https://github.com/caidongyun
</description><language>zh-cn</language><lastBuildDate>Fri, 22 May 2020 06:20:39 GMT</lastBuildDate><pubDate>Fri, 22 May 2020 06:20:39 GMT</pubDate><ttl>60</ttl><item><title>Nginx Openresty Windows v1.9.7.1002 发布，升级各种模块。</title><link>http://www.cppblog.com/cdy20/archive/2015/12/07/212430.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 07 Dec 2015 03:25:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2015/12/07/212430.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/212430.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2015/12/07/212430.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/212430.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/212430.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;">Nginx Openresty Windows v1.9.7.1002 发布，升级各种模块。<br style="margin: 0px; padding: 0px;" /></p><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;">&nbsp;lastest&nbsp;release&nbsp;<span style="margin: 0px; padding: 0px; line-height: 1.5; font-size: 10pt;">Version:1.9.7.1002</span></p><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;">32&nbsp;bit:&nbsp;<img src="http://www.oschina.net/js/ueditor/themes/default/images/spacer.gif" word_img="file://C:\Users\devincai\AppData\Local\Temp\[5UQ[BL(6~BS2JV6W}N6[%S.png" data-bd-imgshare-binded="1" style="margin: 0px; padding: 0px; border: 1px solid #dddddd; max-width: 640px; background: url(&quot;/js/ueditor/lang/zh-cn/images/localimage.png&quot;) 50% 50% no-repeat;"  alt="" /><a _src="http://pan.baidu.com/s/1mgXobxe" href="http://pan.baidu.com/s/1mgXobxe" style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">http://pan.baidu.com/s/1mgXobxe</a>&nbsp;&nbsp;<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />64&nbsp;bit:&nbsp;<img src="http://www.oschina.net/js/ueditor/themes/default/images/spacer.gif" word_img="file://C:\Users\devincai\AppData\Local\Temp\[5UQ[BL(6~BS2JV6W}N6[%S.png" data-bd-imgshare-binded="1" style="margin: 0px; padding: 0px; border: 1px solid #dddddd; max-width: 640px; background: url(&quot;/js/ueditor/lang/zh-cn/images/localimage.png&quot;) 50% 50% no-repeat;"  alt="" /><a _src="http://pan.baidu.com/s/1pKjtk3T" href="http://pan.baidu.com/s/1pKjtk3T" style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">http://pan.baidu.com/s/1pKjtk3T</a>&nbsp;&nbsp;<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />Release&nbsp;time:&nbsp;2015-11-04<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />Changelog:<br style="margin: 0px; padding: 0px;" />update&nbsp;ngx_lua&nbsp;module&nbsp;to&nbsp;0.9.19<br style="margin: 0px; padding: 0px;" />update&nbsp;headers-more-nginx-module&nbsp;to&nbsp;0.28<br style="margin: 0px; padding: 0px;" />update&nbsp;ngx_lua_upstream&nbsp;module&nbsp;to&nbsp;0.04<br style="margin: 0px; padding: 0px;" />update&nbsp;rds-csv-nginx-module&nbsp;to&nbsp;0.07<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />update&nbsp;lua-cjson&nbsp;module&nbsp;to&nbsp;2.1.0.3<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />update&nbsp;lua-rds-parser&nbsp;module&nbsp;to&nbsp;0.06<br style="margin: 0px; padding: 0px;" />update&nbsp;lua-redis-parser&nbsp;module&nbsp;to&nbsp;0.12<br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" />update&nbsp;LuaJIT&nbsp;to&nbsp;2.1.0&nbsp;beta1&nbsp;<br style="margin: 0px; padding: 0px;" /></p><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;"><span style="margin: 0px; padding: 0px; font-size: 10pt; line-height: 1.6;">nginx&nbsp;<a href="http://www.oschina.net/p/openresty" target="_blank" style="margin: 0px; padding: 0px; color: #3e62a6; outline: 0px;">openresty</a>&nbsp;迁移到 windows 下的版本。</span></p><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;"><span style="margin: 0px; padding: 0px; font-size: 10pt; line-height: 1.6;"><br /></span></p><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;"><span style="margin: 0px; padding: 0px; font-size: 10pt; line-height: 1.6;">主要特性：<br style="margin: 0px; padding: 0px;" /></span></p><ul list-paddingleft-2"="" style="margin: 0.5em 0px 0.5em 1.5em; padding: 0px; list-style-position: inside; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;"><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;高性能</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;超过 20,000 连接并发 (特定cpu多核的机器上，server新版本的 35000并发)</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;多进程</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;各种 Nginx bug 修复</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li></ul><p style="margin: 0px 0px 15pt; padding: 0px; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;">包括以下模块：</p><ul list-paddingleft-2"="" style="margin: 0.5em 0px 0.5em 1.5em; padding: 0px; list-style-position: inside; font-family: 'Microsoft YaHei', Verdana, sans-serif, 宋体; line-height: 20.3636px; background-color: #ffffff;"><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;ngx-coolkit-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;echo-nginx-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;set-misc-nginx-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;ngx-postgres-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;ngx-lua-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;headers-more-nginx-module</p><p style="margin: 0px; padding: 0px; display: inline;"></p></li><li style="margin: 0px; padding: 0px;"><p style="margin: 0px; padding: 0px; display: inline;"></p><p style="margin: 0px; padding: 0px; display: inline;">&nbsp;rds-json-nginx-module</p></li></ul><img src ="http://www.cppblog.com/cdy20/aggbug/212430.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2015-12-07 11:25 <a href="http://www.cppblog.com/cdy20/archive/2015/12/07/212430.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RSA 后门是个什么鬼。</title><link>http://www.cppblog.com/cdy20/archive/2015/11/19/212287.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 19 Nov 2015 11:32:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2015/11/19/212287.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/212287.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2015/11/19/212287.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/212287.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/212287.html</trackback:ping><description><![CDATA[<div>看了一些文档，关于rsa后门的问题。<br /><br /><br />大概就是：</div><div>https://github.com/fuhangbo/OpenSSL/blob/5886354dcca4f8445ed35b6995a035b75409590c/fips/rand/fips_drbg_ec.c</div><div>这个随机数生成算法，基于某个r特定常数 ，导致可以通过公钥 推算密钥 。</div><div></div><div>凡是用 Dual_EC_DRBG &nbsp;随机数生成算法,&nbsp;都悲剧,/fips_drbg_ec.c</div><div></div><div>借助公钥推算私钥推算程序 https://github.com/arisada/dualec_poc<br /><br /><br />没空实验。总之换个库先。<br /><br /><br /><br /><br /><br /><br /></div><img src ="http://www.cppblog.com/cdy20/aggbug/212287.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2015-11-19 19:32 <a href="http://www.cppblog.com/cdy20/archive/2015/11/19/212287.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Deep Learning (Spark, Caffe, GPU) </title><link>http://www.cppblog.com/cdy20/archive/2015/10/14/212013.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 14 Oct 2015 09:25:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2015/10/14/212013.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/212013.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2015/10/14/212013.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/212013.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/212013.html</trackback:ping><description><![CDATA[<h1 style="widows: auto; color: #4a4c4e; font-family: Lato, sans-serif; font-size: 34px; font-weight: 300; background-color: #ffffff;"></h1><h1 style="color: #4a4c4e; font-family: Lato, sans-serif; font-size: 34px; font-weight: 300; background-color: #ffffff;"><span style="font-size: 8pt;">from http://docs.continuum.io/anaconda-cluster/examples/spark-caffe</span><br /><br />Deep Learning (Spark, Caffe, GPU)</h1><h1><div style="display: inline-block;"></div></h1><h2 style="color: #737272; font-family: inherit; font-size: 20px; font-weight: 400;">Description</h2><h1><div style="display: inline-block;"><div style="font-weight: normal; widows: auto; color: #333333; font-family: Lato, sans-serif; font-size: 13px; background-color: #ffffff;"><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">To demonstrate the capability of running a distributed job in PySpark using a GPU, this example uses a neural network library,<span style="background-color: inherit;">&nbsp;</span><a href="http://caffe.berkeleyvision.org/" style="background-color: inherit; cursor: pointer; color: #0088cc;">Caffe</a>. Below is a trivial example of using Caffe on a Spark cluster; although this is redundant, it demonstrates the capability of training neural networks with GPUs.</p><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">For this example, we recommend the use of the AMI<span style="background-color: inherit;">&nbsp;</span><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">ami-2cbf3e44</span></code><span style="background-color: inherit;">&nbsp;</span>and the instance type<span style="background-color: inherit;">&nbsp;</span><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">g2.2xlarge</span></code>. An example profile (to be placed in<span style="background-color: inherit;">&nbsp;</span><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">~/.acluster/profiles.d/gpu_profile.yaml</span></code>) is shown below:</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;">name: gpu_profile
node_id: ami-2cbf3e44 # Ubuntu 14.04 - IS HVM - Cuda 6.5
user: ubuntu
node_type: g2.2xlarge
num_nodes: 3
provider: aws
plugins:
  - spark-yarn
  - notebook
</pre></div></div></div></h1><h2 style="color: #737272; font-family: inherit; font-size: 20px; font-weight: 400;">Download</h2><h1><div style="display: inline-block;"><div style="font-weight: normal; widows: auto; color: #333333; font-family: Lato, sans-serif; font-size: 13px; background-color: #ffffff;"><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">To execute this example, download the:<span style="background-color: inherit;">&nbsp;</span><a href="http://docs.continuum.io/_downloads/spark-caffe.py" style="background-color: inherit; cursor: pointer; color: #0088cc;"><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; font-weight: bold; background-color: transparent;"><span style="background-color: inherit;">spark-caffe.py</span><span style="background-color: inherit;">&nbsp;</span><span style="background-color: inherit;">example</span><span style="background-color: inherit;">&nbsp;</span><span style="background-color: inherit;">script</span></code></a><span style="background-color: inherit;">&nbsp;</span>or<span style="background-color: inherit;">&nbsp;</span><a href="http://docs.continuum.io/_downloads/spark-caffe.ipynb" style="background-color: inherit; cursor: pointer; color: #0088cc;"><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; font-weight: bold; background-color: transparent;"><span style="background-color: inherit;">spark-caffe.ipynb</span><span style="background-color: inherit;">example</span><span style="background-color: inherit;">&nbsp;</span><span style="background-color: inherit;">notebook</span></code></a>.</p></div></div></h1><h2 style="color: #737272; font-family: inherit; font-size: 20px; font-weight: 400;">Installation</h2><h1><div style="display: inline-block;"><div style="font-weight: normal; widows: auto; color: #333333; font-family: Lato, sans-serif; font-size: 13px; background-color: #ffffff;"><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">The Spark + YARN plugin can be installed on the cluster using the following command:</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;"><span style="background-color: inherit; color: #bb60d5;">$ </span>acluster install spark-yarn
</pre></div><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">Once the Spark + YARN plugin is installed, you can view the YARN UI in your browser using the following command:</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;"><span style="background-color: inherit; color: #bb60d5;">$ </span>acluster open yarn
</pre></div></div></div></h1><h2 style="color: #737272; font-family: inherit; font-size: 20px; font-weight: 400;">Dependencies</h2><h1><div style="display: inline-block;"><div style="font-weight: normal; widows: auto; color: #333333; font-family: Lato, sans-serif; font-size: 13px; background-color: #ffffff;"><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">First, we need to bootstrap Caffe and its dependencies on all of the nodes. We provide a bash script that will install Caffe from source:<span style="background-color: inherit;">&nbsp;</span><a href="http://docs.continuum.io/_downloads/bootstrap-caffe.sh" style="background-color: inherit; cursor: pointer; color: #0088cc;"><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; font-weight: bold; background-color: transparent;">bootstrap-caffe.sh</code></a>. The following command can be used to upload the<span style="background-color: inherit;">&nbsp;</span><code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">bootstrap-caffe.sh</span></code><span style="background-color: inherit;">&nbsp;</span>script to all of the nodes and execute it in parallel:</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;">$ acluster submit bootstrap-caffe.sh --all
</pre></div><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">After a few minues, Caffe and its dependencies will be installed on the cluster nodes and the job can be started.</p></div></div></h1><h2 style="color: #737272; font-family: inherit; font-size: 20px; font-weight: 400;">Running the Job</h2><h1><div style="font-weight: normal; widows: auto; color: #333333; font-family: Lato, sans-serif; font-size: 13px; background-color: #ffffff;"><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">Here is the complete script to run the Spark + GPU with Caffe example in PySpark:</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;"><span style="background-color: inherit; color: #408090; font-style: italic;"># spark-caffe.py</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">from</span> <span style="background-color: inherit; color: #0e84b5; font-weight: bold;">pyspark</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">import</span> <span style="background-color: inherit;">SparkConf</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">from</span> <span style="background-color: inherit; color: #0e84b5; font-weight: bold;">pyspark</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">import</span> <span style="background-color: inherit;">SparkContext</span>  <span style="background-color: inherit;">conf</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">SparkConf</span><span style="background-color: inherit;">()</span> <span style="background-color: inherit;">conf</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">setMaster</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #4070a0;">'yarn-client'</span><span style="background-color: inherit;">)</span> <span style="background-color: inherit;">conf</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">setAppName</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #4070a0;">'spark-caffe'</span><span style="background-color: inherit;">)</span> <span style="background-color: inherit;">sc</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">SparkContext</span><span style="background-color: inherit;">(</span><span style="background-color: inherit;">conf</span><span style="background-color: inherit; color: #666666;">=</span><span style="background-color: inherit;">conf</span><span style="background-color: inherit;">)</span>   <span style="background-color: inherit; color: #007020; font-weight: bold;">def</span> <span style="background-color: inherit; color: #06287e;">noop</span><span style="background-color: inherit;">(</span><span style="background-color: inherit;">x</span><span style="background-color: inherit;">):</span>     <span style="background-color: inherit; color: #007020; font-weight: bold;">import</span> <span style="background-color: inherit; color: #0e84b5; font-weight: bold;">socket</span>     <span style="background-color: inherit; color: #007020; font-weight: bold;">return</span> <span style="background-color: inherit;">socket</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">gethostname</span><span style="background-color: inherit;">()</span>  <span style="background-color: inherit;">rdd</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">sc</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">parallelize</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #007020;">range</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #208050;">2</span><span style="background-color: inherit;">),</span> <span style="background-color: inherit; color: #208050;">2</span><span style="background-color: inherit;">)</span> <span style="background-color: inherit;">hosts</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">rdd</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">map</span><span style="background-color: inherit;">(</span><span style="background-color: inherit;">noop</span><span style="background-color: inherit;">)</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">distinct</span><span style="background-color: inherit;">()</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">collect</span><span style="background-color: inherit;">()</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">print</span> <span style="background-color: inherit;">hosts</span>   <span style="background-color: inherit; color: #007020; font-weight: bold;">def</span> <span style="background-color: inherit; color: #06287e;">caffe_process</span><span style="background-color: inherit;">(</span><span style="background-color: inherit;">x</span><span style="background-color: inherit;">):</span>     <span style="background-color: inherit; color: #007020; font-weight: bold;">import</span> <span style="background-color: inherit; color: #0e84b5; font-weight: bold;">os</span>     <span style="background-color: inherit;">os</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">environ</span><span style="background-color: inherit;">[</span><span style="background-color: inherit; color: #4070a0;">'PATH'</span><span style="background-color: inherit;">]</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit; color: #4070a0;">'/usr/local/cuda/bin'</span> <span style="background-color: inherit; color: #666666;">+</span> <span style="background-color: inherit; color: #4070a0;">':'</span> <span style="background-color: inherit; color: #666666;">+</span> <span style="background-color: inherit;">os</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">environ</span><span style="background-color: inherit;">[</span><span style="background-color: inherit; color: #4070a0;">'PATH'</span><span style="background-color: inherit;">]</span>     <span style="background-color: inherit;">os</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">environ</span><span style="background-color: inherit;">[</span><span style="background-color: inherit; color: #4070a0;">'LD_LIBRARY_PATH'</span><span style="background-color: inherit;">]</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit; color: #4070a0;">'/usr/local/cuda/lib64:/home/ubuntu/pombredanne-https-gitorious.org-mdb-mdb.git-9cc04f604f80/libraries/liblmdb'</span>     <span style="background-color: inherit; color: #007020; font-weight: bold;">import</span> <span style="background-color: inherit; color: #0e84b5; font-weight: bold;">subprocess</span>     <span style="background-color: inherit;">proc</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">subprocess</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">Popen</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #4070a0;">'cd /home/ubuntu/caffe &amp;&amp; bash ./examples/mnist/train_lenet.sh'</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">shell</span><span style="background-color: inherit; color: #666666;">=</span><span style="background-color: inherit; color: #007020;">True</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">stdout</span><span style="background-color: inherit; color: #666666;">=</span><span style="background-color: inherit;">subprocess</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">PIPE</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">stderr</span><span style="background-color: inherit; color: #666666;">=</span><span style="background-color: inherit;">subprocess</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">PIPE</span><span style="background-color: inherit;">)</span>     <span style="background-color: inherit;">out</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">err</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">proc</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">communicate</span><span style="background-color: inherit;">()</span>     <span style="background-color: inherit; color: #007020; font-weight: bold;">return</span> <span style="background-color: inherit;">proc</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">returncode</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">out</span><span style="background-color: inherit;">,</span> <span style="background-color: inherit;">err</span>  <span style="background-color: inherit;">rdd</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">sc</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">parallelize</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #007020;">range</span><span style="background-color: inherit;">(</span><span style="background-color: inherit; color: #208050;">2</span><span style="background-color: inherit;">),</span> <span style="background-color: inherit; color: #208050;">2</span><span style="background-color: inherit;">)</span> <span style="background-color: inherit;">ret</span> <span style="background-color: inherit; color: #666666;">=</span> <span style="background-color: inherit;">rdd</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">map</span><span style="background-color: inherit;">(</span><span style="background-color: inherit;">caffe_process</span><span style="background-color: inherit;">)</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">distinct</span><span style="background-color: inherit;">()</span><span style="background-color: inherit; color: #666666;">.</span><span style="background-color: inherit;">collect</span><span style="background-color: inherit;">()</span> <span style="background-color: inherit; color: #007020; font-weight: bold;">print</span> <span style="background-color: inherit;">ret</span> </pre></div><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">You can submit the script to the Spark cluster using the&nbsp;<code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">submit</span></code>&nbsp;command.</p><div style="background-color: #eeffcc;"><pre style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 12.025px; background-color: #f5f5f5;">$ acluster submit spark-caffe.py </pre></div><p style="margin-right: 0px; margin-left: 0px; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: inherit;">After the script completes, the trained Caffe model can be found at<code style="font-family: Monaco, Consolas, Courier, 'Lucida Console', monospace; background-color: inherit;"><span style="background-color: inherit;">/home/ubuntu/caffe/examples/mnist/lenet_iter_10000.caffemodel</span></code>&nbsp;on all of the compute nodes.</p><div></div></div></h1><img src ="http://www.cppblog.com/cdy20/aggbug/212013.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2015-10-14 17:25 <a href="http://www.cppblog.com/cdy20/archive/2015/10/14/212013.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程 md5 较验 和 单线程校验 校验比较多的文件数 性能评价（初步成果）（2）</title><link>http://www.cppblog.com/cdy20/archive/2013/04/19/199563.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Fri, 19 Apr 2013 05:44:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2013/04/19/199563.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/199563.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2013/04/19/199563.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/199563.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/199563.html</trackback:ping><description><![CDATA[<div style="line-height: normal; font-family: 微软雅黑">filecache &nbsp;32m</div>
<div style="line-height: normal; font-family: 微软雅黑">内存映射文件 处理md5，io cpu都降下来了</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">254file 6.54g</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">多线程</div>
<div style="line-height: normal; font-family: 微软雅黑"><img style="cursor: default" alt="" src="file:///C:/Users/caidongyun/AppData/Local/youdao/ynote/images/F21DE4BAF3B243FCAC8297B20C232D92/clipboard.png" width="694" height="8" data-inited="true" data-media-type="image" /></div>
<div style="line-height: normal; font-family: 微软雅黑">线程数&nbsp;cpu_count()</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu变为38% &nbsp;io减为 读取16，348 写入 2,000</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 12:09:02] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 12:10:06] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">64s</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">单线程</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 11:57:00] is ok</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 11:57:41] is ok</div>
<div style="line-height: normal; font-family: 微软雅黑">41s</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">-----------------------------------------------------------------------------------</div>
<div style="line-height: normal; font-family: 微软雅黑">多线程 增加运行线程数</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu_count()*2;</div>
<div style="line-height: normal; font-family: 微软雅黑">线程分布给cpu亲缘性 &nbsp;设置一下</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:23:49] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:24:14] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">25s</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu 占用53%最多峰值</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">
<div>cpu_count()*4;</div>
<div>线程分布给cpu亲缘性 &nbsp;设置一下</div></div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:27:57] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:28:19] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">22s</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu90%峰值</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">
<div>cpu_count()*8;</div>
<div>线程分布给cpu亲缘性 &nbsp;设置一下</div></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:30:44] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:30:51] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">7s</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu100%峰值</div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑"></div>
<div style="line-height: normal; font-family: 微软雅黑">cpu_count()*16</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:33:23] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">[2013-04-19 13:33:31] check is ok!</div>
<div style="line-height: normal; font-family: 微软雅黑">8s</div>
<div style="line-height: normal; font-family: 微软雅黑">cpu100%峰值</div>
<div style="line-height: normal; font-family: 微软雅黑"><br /><br />单线程：<br />
<div><br />2081 FILE</div>
<div>11.9G</div>
<div>[2013-04-24 15:32:28] is ok</div>
<div>[2013-04-24 15:41:31] is ok</div>
<div>9分钟</div>
<div></div>
<div><img style="cursor: default" alt="" src="file:///C:/Users/caidongyun/AppData/Local/youdao/ynote/images/00EF97505E0149E2BC461613946F60E3/clipboard.png" data-inited="true" data-media-type="image" /></div>
<div><img style="cursor: default" alt="" src="file:///C:/Users/caidongyun/AppData/Local/youdao/ynote/images/9ABCD52000684D3297B60E4EFB64571E/clipboard.png" data-inited="true" data-media-type="image" /></div>
<div><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/cdy20/clipboard1.png" /></div>
<div><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/cdy20/clipboard2.png" /></div>
<div><img alt="" src="http://www.cppblog.com/images/cppblog_com/cdy20/clipboard3.png" /></div>
<div><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/cdy20/clipboard3.png" /></div>
<div>磁盘到了读取的极限 20-30m/s</div>
<div>cpu 未充满 20%左右</div>
<div></div>
<div>io为瓶颈</div><br /><br />总结：采用内存映射文件，一次性加载文件到内存块计算md5 降io和io cpu损耗</div>
<div style="line-height: normal; font-family: 微软雅黑">采用线程和cpu亲缘性，充分利用释放出来的cpu计算能力。</div>
<div style="line-height: normal; font-family: 微软雅黑">实验记过254哥文件6.5g &nbsp;4核机器 开启32哥线程分布到各个cpu 可以得到7秒的计算结果，比上面单线程未优化提升6倍速度，比上面多线程未优化提升9倍<br /><br />一个解决方案：<br />一个文件： 分段md5，&nbsp;&nbsp;&nbsp; 特征为 md51|md52|md53&#8230;&#8230;<br />一个连续读取文件的线程，<br />每个md5作为一个任务计算。<br />读取持续性读取，到一个连续性内存，分段任务给线程池分段计算，算完全体统计一下，<br />如果过程中出现里面局部有一个是失败的，那么整个数据都不用验证了，其他任务也不用继续了，直接认为失败，这个概率很高。减少计算一大堆，切分粒度中一点别切太多片。每个任务结束的时候都释放内存回收使用。<br />io在独立线程， 计算md5在线程池，这样彻底分离，重复内存持续复用。<br /><br /></div><img src ="http://www.cppblog.com/cdy20/aggbug/199563.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2013-04-19 13:44 <a href="http://www.cppblog.com/cdy20/archive/2013/04/19/199563.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>多线程 md5 较验 和 单线程校验  校验比较多的文件数 性能评价（1）</title><link>http://www.cppblog.com/cdy20/archive/2013/04/17/199519.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 17 Apr 2013 12:03:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2013/04/17/199519.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/199519.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2013/04/17/199519.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/199519.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/199519.html</trackback:ping><description><![CDATA[问题背景：上w个大小 从几百k 到九百多m 分布的文件校验，速度过慢<br /><br />方案尝试：多线程和单线程<br /><br />线程池 校验 和 单线程顺序校验。<br />-------------------<br /><br /><div style="font-family: 微软雅黑; line-height: normal;">199个文件</div><div style="font-family: 微软雅黑; line-height: normal;"></div><div style="font-family: 微软雅黑; line-height: normal;">单线程</div><div style="font-family: 微软雅黑; line-height: normal;">&nbsp;18:25:33] is ok</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 18:26:12] is ok</div><div style="font-family: 微软雅黑; line-height: normal;">39s</div><div style="font-family: 微软雅黑; line-height: normal;"></div><div style="font-family: 微软雅黑; line-height: normal;">多线程：</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 18:28:39] check is ok!</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 18:29:15] check is ok!</div><div style="font-family: 微软雅黑; line-height: normal;">36s</div><div style="font-family: 微软雅黑; line-height: normal;"></div><div style="font-family: 微软雅黑; line-height: normal;">----------------------------</div><div style="font-family: 微软雅黑; line-height: normal;">240文件</div><div style="font-family: 微软雅黑; line-height: normal;">单线程：</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 18:52:21] is ok</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 18:52:59] is ok</div><div style="font-family: 微软雅黑; line-height: normal;">38</div><div style="font-family: 微软雅黑; line-height: normal;"></div><div style="font-family: 微软雅黑; line-height: normal;">多线程：</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 19:58:49] check is ok!</div><div style="font-family: 微软雅黑; line-height: normal;">[2013-04-17 19:59:31] check is ok!</div><div style="font-family: 微软雅黑; line-height: normal;">42<br />-----------------------<br />性能相差不大，cpu94% 左右 io 很大 估计瓶颈是 io<br />未完待续&#8230;&#8230;<br /><br />结果和执行方案，参考 http://www.cppblog.com/cdy20/archive/2013/04/19/199563.html<br /><br />欢迎指点批评 。<br /><br />经过这两天实验。<br />最后确认 io 确实是瓶颈。<br /></div><img src ="http://www.cppblog.com/cdy20/aggbug/199519.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2013-04-17 20:03 <a href="http://www.cppblog.com/cdy20/archive/2013/04/17/199519.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webkit 移植要点</title><link>http://www.cppblog.com/cdy20/archive/2013/04/15/199467.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 15 Apr 2013 14:46:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2013/04/15/199467.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/199467.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2013/04/15/199467.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/199467.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/199467.html</trackback:ping><description><![CDATA[webkit 移植要点<br /><p style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">As i write this blog the webkit is ported to at least 8 platforms like gtk,qt,mac,symbian,haiku,wince,android,efl and many more to come..</p><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">If some one is new to webkit and wants to know where to start porting from I will try and put some basic guidelines to follow.</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">First and foremost see if you have what is needed to port on your platform:</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">i) Threading -&gt; pthread equivalent API's if you want multi-threading (ENABLE_JSC_MULTIPLE_THREADS turn it OFF if you do not have one)</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">ii) Timers -&gt; any platform would have this so it should be fine</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">iii) Drawing surface/Graphics Library</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">iv) Way to integrate widgets with your drawing surface; put it another way how to provide input to your webpage. Gtk has clean way of doing this, can be followed</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">v) Theme for widgets</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">vi) Define API layer -&gt; follow QT/GTK/MAC/Android port for defining one.</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">vii) Porting JSCore by defining classes PageAllocation/Reservation</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">viii) Some other classes/functions are needed like random number function, date etc;</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">ix) I am keeping it very brief but you need a way to take care of plugins</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">-) Plugin Creation</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">-) Plugin Drawing Surface</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">x) Networking component like curl,soup</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">xi) Need to port the WebCoreSupport classes again follow GTK/QT port for ease</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">xii) Image decoders</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">After checking if you have got everything { only v) is not mandatory ix) is not mandatory if you do not want plugins}</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"></div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">Now after getting the first step right second thing to do is getting your build set up:</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">Start with javascriptcore, you need to build the source and generate derivedsources and see if you can get it built right. To do this you have to port some functions as I mentioned earlier.</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">To test if you got the build right you can run the javscriptcore tests.</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"></div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">Once this is done you can replicate the same for Webcore, you need to create the stub files/functions for port. Follow one port like GTK/QT for this like create files in WebCore/platform/xyz folder;</div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;"></div><div style="color: #333333; font-family: Arial; font-size: 14px; line-height: 26px; background-color: #ffffff;">Once this is ready, you need to get this port back into open source as later sync up with the open source is necessity. Follow&nbsp;<a href="http://trac.webkit.org/wiki/SuccessfulPortHowTo" style="color: #336699; text-decoration: initial;">http://trac.webkit.org/wiki/SuccessfulPortHowTo</a>&nbsp;for creating DRT, automation tests which is needed for getting code back into trunk.</div><img src ="http://www.cppblog.com/cdy20/aggbug/199467.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2013-04-15 22:46 <a href="http://www.cppblog.com/cdy20/archive/2013/04/15/199467.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>生活</title><link>http://www.cppblog.com/cdy20/archive/2013/03/30/198966.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Sat, 30 Mar 2013 14:38:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2013/03/30/198966.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/198966.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2013/03/30/198966.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/198966.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/198966.html</trackback:ping><description><![CDATA[有时候发现自己力量挺渺小的。<br />不得不去忍耐，去处理协调好。<br />加紧学习和锻炼，工作追求卓越的完成。<br /><br /><br /><img src ="http://www.cppblog.com/cdy20/aggbug/198966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2013-03-30 22:38 <a href="http://www.cppblog.com/cdy20/archive/2013/03/30/198966.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>新的一年</title><link>http://www.cppblog.com/cdy20/archive/2013/01/24/197527.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 24 Jan 2013 04:03:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2013/01/24/197527.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/197527.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2013/01/24/197527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/197527.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/197527.html</trackback:ping><description><![CDATA[在公司发挥搞几个东西。<br />避免过度加班导致无法学习 创造新玩意<br />搞一年新玩意 提供给公司，<br />如果低于预期，寻找新的起点。<br />务必在两年内完成 当前的首要的家庭目标。<img src ="http://www.cppblog.com/cdy20/aggbug/197527.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2013-01-24 12:03 <a href="http://www.cppblog.com/cdy20/archive/2013/01/24/197527.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>zeromq 资料</title><link>http://www.cppblog.com/cdy20/archive/2012/04/11/170917.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 11 Apr 2012 07:04:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2012/04/11/170917.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/170917.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2012/04/11/170917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/170917.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/170917.html</trackback:ping><description><![CDATA[<div><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://en.wikipedia.org/wiki/%C3%98MQ" style="text-decoration: none; color: #0066cc; ">&#216;MQ</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://nichol.as/zeromq-an-introduction" style="text-decoration: none; color: #0066cc; ">ZeroMQ an introduction</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://www.igvita.com/2010/11/17/routing-with-ruby-zeromq-devices/" style="text-decoration: none; color: #0066cc; ">Routing with Ruby &amp; ZeroMQ Devices</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://www.igvita.com/2010/09/03/zeromq-modern-fast-networking-stack/" style="text-decoration: none; color: #0066cc; ">ZeroMQ: Modern &amp; Fast Networking Stack</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://bhavin.directi.com/selecting-a-message-queue-amqp-or-zeromq/" style="text-decoration: none; color: #0066cc; ">Selecting a Message Queue &#8211; AMQP or ZeroMQ</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://www.infoq.com/news/2010/09/introduction-zero-mq" style="text-decoration: none; color: #0066cc; ">An Introduction to &#216;MQ (ZeroMQ)</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://www.zeromq.org/whitepapers:message-matching" style="text-decoration: none; color: #0066cc; ">High-speed message matching</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://zguide.zeromq.org/page:all" style="text-decoration: none; color: #0066cc; ">&#216;MQ &#8211; The Guide</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://iyuan.iteye.com/blog/972949" style="text-decoration: none; color: #0066cc; ">zeromq初体验</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://d.hatena.ne.jp/hiroppon/20110228/1298901499" style="text-decoration: none; color: #0066cc; ">zeromqその１</a></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 微软雅黑; font-size: 12px; line-height: 18px; background-color: #ffffff; "><a href="http://d.hatena.ne.jp/hiroppon/20110301/1298976642" style="text-decoration: none; color: #0066cc; ">zeromqその２</a></p></div><img src ="http://www.cppblog.com/cdy20/aggbug/170917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2012-04-11 15:04 <a href="http://www.cppblog.com/cdy20/archive/2012/04/11/170917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小记</title><link>http://www.cppblog.com/cdy20/archive/2012/03/05/167154.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 05 Mar 2012 02:38:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2012/03/05/167154.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/167154.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2012/03/05/167154.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/167154.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/167154.html</trackback:ping><description><![CDATA[<div>最近去了北京出差，累死的。<br /><br />那些每天叫嚣开源的人，实际都不知道开源是为了什么，唯有一点他们明白的他们想要源码.<br />不管别人怎么吵，不利于这个框架发展的，都不鸟。<br />采用，逐步成熟，逐层开源的方式发展。</div><img src ="http://www.cppblog.com/cdy20/aggbug/167154.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2012-03-05 10:38 <a href="http://www.cppblog.com/cdy20/archive/2012/03/05/167154.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>移动开发中 HTML5 能否替代本地程序？</title><link>http://www.cppblog.com/cdy20/archive/2012/02/27/166613.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 27 Feb 2012 02:26:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2012/02/27/166613.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/166613.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2012/02/27/166613.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/166613.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/166613.html</trackback:ping><description><![CDATA[<div><h1><br /></h1><div style="padding-bottom: 5px; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #dddddd; color: #666666; font-family: 微软雅黑, Verdana, sans-serif, 宋体; text-align: left; background-color: #ffffff; "><span style="text-indent: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; float: right; "><span style="text-indent: 2em; line-height: normal;"><font size="2"><em>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</em></font></span><span style="text-indent: 2em; font-size: 10.5pt; line-height: 24px; ">随着移动设备越来越先进，对HTML5的支持度越来越高，我们进军移动领域的时候，都会遇到一个问题，是选择HTML5和还是Native(用原生 代码编写的本地程序)？HTML5的前景无疑是诱人的，一句&#8220;Write once, run anywhere&#8221;就可以秒杀一切。笔者最近两年来对HTML5与Native有较为深入的研究，觉得两者之间不能仅仅是二分法来选择，还要根据企业自身 的情况、团队的构成、公司的战略以及产品的特点来综合选择。</span></span></div><div id="OSChina_News_25865" textcontent=""  newstype2"="" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; line-height: 24px; font-size: 10.5pt; overflow-x: hidden; overflow-y: hidden; font-family: 微软雅黑, Verdana, sans-serif, 宋体; text-align: left; background-color: #ffffff; "><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; "><img src="http://static.oschina.net/uploads/space/2012/0220/144815_tu9U_28.jpg" alt="" width="687" height="225" style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; max-width: 600px; display: block; " /></p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">HTML5的发展前景我无疑是非常看好的，各大公司也不遗余力的推动，目前主流的三大智能机操作系统iOS、Android和WIndows Phone都已经支持大部分的HTML5特性。而移动设备硬件军备竞赛也为HTML5扫清硬件障碍。按照现在的发展速度，我判断是在三年以内甚至更快，移 动设备运行HTML5将会完全没有压力，无论是标准还是硬件。现在主流的智能机已经配置双核处理器（之前笔误为浏览器）和1G及以上的内存，今年再出智能 机没这个配置你都不好意思发布了。</p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #ff9900; ">谈谈HTML5</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">1.HTML5可以让你摆脱对平台的依赖，用户打开浏览器，直接就可以访问你的应用，而不需要经过各种Store的审核。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">2.实时更新，通常平台的审核都需要七个工作日左右的时间，如果你发布之后发现问题怎么办？Web方式就不存在这种问题。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">3.Write once, run anywhere?</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">这是多少程序员的梦想，也曾经是Java让人心动的地方，但真正做过跨平台解决方案的人都知道，这只是一句口号而已，跨平台没那么容易玩转的。没 错，HTML5可以实现Write once, run anywhere，但我们总不能写一个Hello World来run anywhere吧。不同平台有自己的特性，不同平台用户也有自己的操作习惯，如果你想讨好所有人，也就意味着你无法讨好任何人。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">4.减少开发工作量或者让开发变得更简单？</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">对老板来说，这是一个非常诱人话题，因为工作量的减少就意味着节省更多的钱，没有老板不喜欢用更少的钱办更多的事。而且目前一个非常大的问题是，移 动设备开发人员特别是iOS开发人员非常不好找，因为技术好的都自己做应用了，人家自己也能赚个月薪上万甚至更多，为什么要进你的公司？怎么说也是自己的 事业，拥有无限可能，还可以充分享受自由。但如果可以充分利用HTML5，那么我们就可以招聘Web前端的开发人员来构建移动应用，这样就不愁招人的有问 题。因为在许多人的眼里，HTML5/CSS/Javascript都是没多大技术含量的东西，实在找不到人，找些实习生学学也就会了。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">但问题是，工作量真的会减少吗？技术门槛真的那么低么？答案是NO！</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">我曾经花了半年的时间去开发一个基于HTML5的移动框架，用来模拟Native应用，让HTML5应用看起来尽可能看起来像本地应用，注意：是 像。这有点像jTouch，但不一样的是，它能和Native程序很好地交互，并且能调用本地资源等等特性。但最后结果确不是那么令人满意，比如 HTML5在动画切换的时候，有时候候会有一些莫名其妙的问题，当然你可以告诉我把动画效果关了，但这看起来很死板，最后我不得不关闭某些动画。而用 Objective-c编写程序就没这么多事了，几句简单的代码可以实现很酷的动画，用HTML5需要更多的代码，甚至根本无法实现。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">而且移动设备上的HTML5开发对开发人员的技术有非常高的要求，不是一般的Web前端人员能解决的，通常拥有这样技术的人才，工资水平也不会比 Native开发人员低多少。如果你仅仅是要开发一个移动设备上的网站，这会简单很多，但如果你希望模拟Native应用，并且拥有较高的效率和优雅的用 户体验，这就很有技术含量了。不要小看Javascript这类Web开发语言，通常我的看法是越简单的语言越会体现出技术人员的水平，特别是规划设计能 力。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">5.其它问题，资源调用的限制，比如说在iOS中有Javascript运行不能超过15秒的限制，不能调用本地硬件设备(如相机等)，无法使用推送服务等。</p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #ff0000; ">如何选择？</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">是否这样，我们就不要选择HTML5了呢？我在前面说过：&#8220;要根据企业自身的情况、团队的构成、公司的战略以及产品的特点来综合选择&#8221;，我最近在关 于HTML5讨论的微博上也有谈到：&#8220;HTML5是战略性方向，Facebook和Google已经布局，Google Mobile在iPhone上的体验可以媲美Native。基本上Native+Web App可以秒杀多数应用，如果不愿意受制于各种Store，单独的Web App也是一个不错的方向。对于游戏类和对硬件环境依赖严重的应用，只能是是Native&#8221;，相关链接：摘录微博&#8212;&#8212;对移动互联网的一些看法。仅管有这样那样的问题，但HTML5是一种趋势，在未来三至五年，HTML5将会取代很多本地应用，但就像多年前我们一直在谈B/S架构取代C/S架构一样，这需要一个过程。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">通常在HTML与Native之间，我们有三种选择&#8212;&#8212;HTML5、Native App以及HTML5+Native，HTML5就是指纯Web的移动应用，用户需要打开浏览器，然后输入应用的网址访问。Native指的是基于特定平 台开发的应用。Native+HTML5实际上是一种加壳的方式，将HTML5用和浏览器封装起来，但这对用户是不可见的，用户没有任何异物感，和 Store上下载的App没有什么两样。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">就我个人而言，我是比较推崇HTML5+Native的，这种加壳的方式，可以让你享受Native与HTML5的双重好处，但缺点是对技术含量要 求较高。当然我这里指的不是简单地把HTML5封装到一个浏览器里面，Native与HTML5会有许多的交互，实际上这有点像混合硬盘，我们即便享受 SSD的快速，但我们又想获得机械硬盘的高性价比。我认为在5-10年内，这都会是一种不错的解决方案，当HTML5和硬件发展到一定水平之后，我们再完 全转向HTML5成本也会非常低的。</p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #ff0000; ">如何做？</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">假定现有一个对本地环境依赖不那么严重的项目，如微博客户端，各种社交美食甚至LBS应用，我们都可以采用HTML5+Native。如图所示，我 们可以将核心的代码Core层用封装起来，这个代码和平台无关，主要是业务逻辑以及和Shell的交互，代码用Web语言编写。在Core层上我们再根据 不同的移动平台制作不同的UI。最后我们将上述两层放到各平台的Shell中，这个Shell主要是由浏览器来完成工作，当然还包括一些硬件操作和读取本 地资源，如GPS、重力感应、相机调用、地图、推送通知或者IAP等。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">&nbsp;</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">我们可以把Web的升级部分部署到服务器上，用户运行App后，App会向服务器讲求获取最新的Web程序并下载运行，这样可以达到跳过各种 Store的更新审核，达到快速更新的目的。而且假如用户无法访问互联网，我们可以让用户使用上一个版本的程序，不会像纯Web App那样要求用户一定要联网。<span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #99cc00; "><br style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; " /></span></p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #99cc00; ">好处</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">1.用户可以离线使用</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">2.更新下载量及少，可以全部更新，也可以选择替换部分文件</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">3.代码很安全安全，众所周知Web应用有一个很大的问题就是代码安全的问题，但现在我们可以将Web代码全部加密，本地应用解密后再运行，大大的提供了代码的安全性。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">4.可以通过浏览器作为中介充分利用Native的好处，比如说可以使用GPS、照相机、本地相册、读取本地联系人，也可以使用推送功能等，最重要的是，某些Web无法实现的功能，我们可以利用Native来实现。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">5.跨平台，多数核心代码不用重写，Javascript的代码用得好的话，在许多地方都可以用到，包括移动应用、移动网站、PC网站、各种浏览器 插件，甚至可以用WebKit封装作为跨平台的应用程序。诚然，这种方式并非完全跨平台，但这样也足以减少很多工作量了，特别是后期的维护。而且完全的跨 平台是没有意义的，不同平台有自己的风格，为了更好的用户体验，界面层还是需要针对性开发的。</p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #993366; ">坏处</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">我觉得最大的坏处是技术难度高，如果仅仅是简单的浏览器封装几个HTML文件，那没什么技术难度，但如果要打造一个系统级的东西，这就很有技术难度 了。这要求有人要了解三个主流平台的浏览器特性，通晓Native程序的开发，要精通HTML5/CSS3/Javascript，最重要的是，要有较强 的架构设计能力。</p><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">如果要再找一个坏处的话，就是它不能满足所有的需要，它并不能代替Native，但我认为他可以替代大部的Native。</p><h2><span style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #ff6600; ">适合我们吗？</span></h2><p style="padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; text-indent: 2em; ">首先从产品的角度考虑，你的产品是否严重依赖于本地环境，比如说图像处理和华丽的游戏之类的。第二要考虑的是你的技术团队的构成，如果你们的团队有 一个能解决这些问题的牛人，并且有一些清通Web前端的人，那我觉得你可以考虑用这种方式。技术选型非常重要，稍有不慎，后患无穷。第三个要考虑你们公司 的战略，对HTML5未来发展的看法，愿意在移动互联网上付出多少代价，是否愿意做前瞻性的事，是否愿意在前期投入较多的资源，是否允许试错等等。<br /><span style="color: #666666; font-size: 13px; line-height: 22px; ">本文转载自:&nbsp;</span><a href="http://iove.net/archives/2991.html" rel="nofollow" target="_blank" style="font-size: 13px; line-height: 22px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; color: #333333; outline-width: 0px; outline-style: initial; outline-color: initial; ">http://iove.net/archives/2991.html</a></p></div></div><img src ="http://www.cppblog.com/cdy20/aggbug/166613.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2012-02-27 10:26 <a href="http://www.cppblog.com/cdy20/archive/2012/02/27/166613.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>qq sso单点登录 跨浏览器 快速登录核心问题</title><link>http://www.cppblog.com/cdy20/archive/2012/02/09/165232.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 09 Feb 2012 11:21:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2012/02/09/165232.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/165232.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2012/02/09/165232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/165232.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/165232.html</trackback:ping><description><![CDATA[<br />有时候你会看到qq空间进入的时候，直接给出自动登录的选择，显示了当前客户端登录的所有用户名。<br />这个是采用npapi的规范写的浏览器插件，<br />这个目录下面 C:\Program Files (x86)\Common Files\Tencent\TXSSO<br /><br />这个np插件一般人命名都会加np前缀 如qq这个 npSSOAxCtrlForPTLogin.dll<br />npapi是以前网景公司的浏览器规范 记得netscape 么<br />现在所有webkit内核浏览器 都遵循这套规范。<br /><br />np插件写法 如&nbsp;<a href="http://geeklu.com/2010/10/getting-started-with-npapi-plugin/comment-page-1/">http://geeklu.com/2010/10/getting-started-with-npapi-plugin/comment-page-1/</a><br /><br />你只要按照标准的写法，放在浏览器会加载的地方，用的时候写个标签就可以在js里面调用了。<br /><br /><img src ="http://www.cppblog.com/cdy20/aggbug/165232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2012-02-09 19:21 <a href="http://www.cppblog.com/cdy20/archive/2012/02/09/165232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2012</title><link>http://www.cppblog.com/cdy20/archive/2012/01/05/163622.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 05 Jan 2012 05:40:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2012/01/05/163622.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/163622.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2012/01/05/163622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/163622.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/163622.html</trackback:ping><description><![CDATA[<div style="font-size: 14px" id="blogDetailDiv">
<div class="blog_details_20110920">
<div>没背景地，创造背景</div>
<div>没势地，造势</div>
<div>没实力的，增长实力</div>
<div>&nbsp;</div>
<div>常怀积累，永不止步</div>
<div>&nbsp;</div>
<div>没意义的事情慢慢随着2011逝去把。</div>
<div>2012，只做有意义感兴趣的事情，包括生活工作。</div>
<div>&nbsp;</div>
<div>眨眼，时间就会消散。</div></div></div><img src ="http://www.cppblog.com/cdy20/aggbug/163622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2012-01-05 13:40 <a href="http://www.cppblog.com/cdy20/archive/2012/01/05/163622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>怎样设计框架</title><link>http://www.cppblog.com/cdy20/archive/2011/12/22/162620.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 22 Dec 2011 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/12/22/162620.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/162620.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/12/22/162620.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/162620.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/162620.html</trackback:ping><description><![CDATA[<table align="center" border="0" cellpadding="0" cellspacing="0" width="760"><tbody><tr><td><div align="center"><br />       </div></td>   </tr>   <tr>      <td height="15"> <div align="center"><br />       </div></td>   </tr>   <tr>      <td height="12">        <div align="center">2008-05-04 作者:suishi123 出处:CSDN<br />       </div></td>   </tr>   <tr>      <td height="16">&nbsp;</td>   </tr>   <tr>      <td valign="top">        <table align="center" border="0" cellpadding="0" cellspacing="0" width="86%">         <tbody><tr>            <td valign="top"><p><strong>框架是： </strong></p>             <ul><li> 应用或子系统的设计 </li><li> 表示为： </li><li> 一组抽象类和 </li><li> 这些类中对象的协作方法 </li></ul>             <p><strong>用框架来创建应用通过: </strong></p>             <ul><li> 建立一个新的子类 </li><li> 组合对象 </li><li>修改运行中的程序 </li></ul>             <p>(编辑脚本) </p>             <p><strong>逆向控制 </strong></p>             <p>子程序库 </p>             <p>用户程序调用可重用的代码. </p>             <p>用户设计程序结构. </p>             <p>框架 </p>             <p>重用代码调用客户程序 </p>             <p>主要由重用代码(框架)决定程序结构 </p>             <p><strong>框架应用的部件 </strong></p>             <p>新的类使用组件的步组L </p>             <ul><li> 建立组件 </li><li> 连接组件 </li><li> 参数化组件 </li></ul>             <p><strong>测试框架 </strong></p>             <p>类 - Test, TestResult, TestSuite </p>             <p>通过创建 Test的子类来使用。 </p>             <p>定义 instance methods 来 配置、运行测试 </p>             <p>定义 class methods 来建立一个测试单元 </p>             <p><strong>Model/View/Controller </strong></p>             <p>Classes - Model, View, Controller, ApplicationModel, ValueModel,                etc. </p>             <p>Use by using GUI builder to make a screen; the GUI builder automatically                builds an ApplicationModel and a window-spec that later gets interpreted                to build a window. </p>             <p><strong>HotDraw </strong></p>             <p>Classes - Figure, Drawing, Handle, Tool, DrawingEditor </p>             <p>Subclass DrawingEditor, Figure, rarely Drawing </p>             <p>Parameterize Handle, Tool. </p>             <p>There is a graphical tool for defining new Tools. </p>             <p><strong>White-box vs. Black-box </strong></p>             <p>White-box </p>             <p>用户化通过定义子类强调继承 </p>             <p>必须了解内部结构 </p>             <p>设计简单容易 </p>             <p>学习困难，需要更多的编程 </p>             <p>Black-box </p>             <p>通过配置用户化 </p>             <p>强调多态 </p>             <p>必须了解接口 </p>             <p>设计复杂、困难 </p>             <p>学习容易，需要较少的编程 </p>             <p><strong>框架设计的第一规则 </strong></p>             <p><strong>相关的原则 </strong></p>             <p>框架是抽象: 人们从实际的应用中归纳出来 </p>             <p>设计重用的代码需要叠代 </p>             <p>框架编码领域知识 </p>             <p>框架的客户是程序员（译者：最终还是应用的客户） </p>             <p>从实际案例中归纳 </p>             <p>人们思考是具体的，不是抽象的. </p>             <p>通过研究具体的例子抽象被彻底的发现 </p>             <p><strong>归纳:</strong> </p>             <ul><li> 找出名称不同的相同事物, </li><li> 通过参数化排除差异, </li><li> 把大的事物分解成小的部分以发现类似的组件, 并且 </li><li> 分类相似的事物. </li></ul>             <p><strong>发现抽象类</strong> </p>             <p>抽象类的发现是通过归纳具体类. </p>             <p>定义类共有的SuperClass: </p>             <ul><li> 定义操作的公共接口 </li><li> 把具有相同实现的操作转移到SuperClass </li><li> 把实现不同的操作定义为抽象操作 <br />                 (continued) </li><li> 定义公共接口（interface）                  <ul><li> 重命名操作使各个类有相同的操作名 </li><li> 重新排列参数、修改参数类型等. </li><li> 重构 操作 </li></ul>               </li></ul>             <p>框架需要迭代 </p>             <p>能够重用的代码需要多次迭代. </p>             <p><strong>软件工程基本规则 </strong></p>             <p>如果程序没有测试, 他将不能工作. </p>             <p>结论: 还没被重用的软件是不能重用的. </p>             <p>框架编码领域知识 </p>             <p>框架解决特定的一组问题. </p>             <p>Not always application-domain specific, but domain specific. (GUI,                distribution, structured drawing editor, business transaction processing,                workflow) </p>             <p><strong>客户是程序员</strong></p>             <p>框架的目的是更容易的构建应用. </p>             <p>适用这些标语为程序员: </p>             <p>客户总是正确的. </p>             <p>我们是客户驱动. </p>             <p>理解你的客户. </p>             <p>实例驱动的设计 </p>             <p>归纳是迭带的. </p>             <p>小的改变是最多的. </p>             <p>少数大的改变代表看待问题的新方法. </p>             <p><strong>更快的归纳: </strong></p>             <ul><li> 接受不同的意见 </li><li> 解释/辩护 当前的设计 </li></ul>             <p><strong>开发框架的理想的方法 </strong></p>             <p>1) 分析问题域 </p>             <ul><li> 学习众所周知的抽象. </li><li> 收集用框架编写的例子程序. (最少 4 or 5). </li></ul>             <p>设计框架的理想方法 </p>             <p>2) 设计覆盖例子的抽象. </p>             <p>3) 通过编写这些例子来测试框架. </p>             <ul><li> 每个例子都是相互独立的程序. </li><li> 履行一个测试意味着开发一个软件. </li></ul>             <p><strong>抽象设计 </strong></p>             <p>设计阶段: 寻找共性, 描述每个想法. </p>             <p>用设计模式 </p>             <ul><li> 暗示需要经验 </li></ul>             <p>灵活性和洞察力是有用的, 而且进展是困难的. </p>             <p>设计模式 </p>             <p> 设计模式使设计更接近黑盒. </p>             <p> 怎样表示对象的变化 </p>             <ul><li> Strategy -- 算法 </li><li> Prototype -- 产品 </li><li> State -- 对象的状态 </li><li> Mediator &#8211; 对象相互调用的方法 </li></ul>             <p><strong>设计模式的使用 </strong></p>             <p>模式使设计更复杂. </p>             <p>模式使设计更有弹性. </p>             <p>你需要这种弹性吗? </p>             <p>这复杂性是否值得? </p>             <p>在两个模式中做选择时选择使设计更简单的. </p>             <p><strong>为什么理想永远是理想 </strong></p>             <p>分析领域需求分析个别的例子,已经是非常困难的. </p>             <ul><li> 即使例子已经被分析也仅仅实用. </li><li> 分析和实现例子是工程的很大一部分成本. </li><li> 人们需要汇集例子实现的反馈. </li></ul>             <p><strong>开发框架的好办法 </strong></p>             <p>精选两个相似的应用. </p>             <p>包括在相同领域有经验的开发者. </p>             <p>一个框架组 </p>             <p>两个应用组 </p>             <ul><li>框架组 <br />                 交换软件意见 <br />                 考虑其他的应用 <br />                 解释教受框架 </li><li>应用组 <br />                 尽力重用框架 <br />                 抱怨框架如何难于使用 </li></ul>             <p><strong>开发框架的典型方法 </strong></p>             <p>注意到许多应用是相似的. </p>             <p>用面向对象的语言开发领域中的下一个应用. </p>             <p>把软件划分为可重用和不可重用两部分. </p>             <p>开发下一个应用尽可能的重用可重用的部分. </p>             <p>惊奇! 框架的重用性不好. </p>             <p>修改. </p>             <p>开发下一个尽可能重用的软件. </p>             <p><strong>重用的副作用 </strong></p>             <p>相互冲突的目标 </p>             <ul><li>按时交付系统 </li><li> 重用 </li></ul>             <p>重用的花费是昂贵的 </p>             <p>坚持重用是困难的 </p>             <p><strong>重用的有利的一面 </strong></p>             <p>框架使用者利用框架开发者的经验. </p>             <p>仅增加有价值的特性. </p>             <p>帮助防止框架太复杂、太抽象. </p>             <p><strong>另一种策略 </strong></p>             <p>定义框架 &#8211; 原形几个小的应用. </p>             <p>创建真实应用. </p>             <p>重构框架和老的应用. </p>             <p><strong>过程摘要</strong></p>             <p>以想得到的应用的例子开始 </p>             <p>叠代的开发抽象 </p>             <p>通过创建应用来测试 </p>             <p>细节 </p>             <p>1) 三个例子 </p>             <p>2) White-box 框架 </p>             <p>3) 组件库 </p>             <p>4)热点（ Hot Spots） </p>             <p>5) 扁平化对象 </p>             <p>(continued) </p>             <p>6) 平滑对象 </p>             <p>7) Black-box 框架 </p>             <p>8) Visual Builder </p>             <p>9) 语言工具 </p>             <p>http://st-www.cs.uiuc.edu/users/droberts/evolve.html </p>             <p><strong>应用产生器 </strong></p>             <p>Black-box 更容易: </p>             <p>用a picture描述应用 </p>             <p>从 a picture产生代码 </p>             <p>可视化编程语言使非程序员也能创建应用. </p>             <p><strong>黑盒框架的缺点 </strong></p>             <p>黑盒框架趋向于有： </p>             <ul><li> 更多种类的对象 </li><li>more artificial kinds of objects（真不知怎么描述？） </li><li> 对象间更复杂的关系 </li><li> 更多对象 </li></ul>             <p>不完善的框架强迫你调试更复杂的系统. </p>             <p><strong>模版和重构 </strong></p>             <p>重构 </p>             <ul><li> 在不影响功能的情况下改变程序结构. </li><li> 修改重用问题的方法. </li><li> 创建一个弹性的 "hot spot" </li><li> 经常应用一个模版 </li></ul>             <p>重构帮助发现组合 </p>             <p>框架设计提示 </p>             <p>用对象组合代替继承 </p>             <p>多使用模版 /少泛化 </p>             <p>框架应该打破限制 </p>             <p><strong>战略</strong></p>             <p>开发框架是昂贵的,想清楚再做. </p>             <ul><li> 框架开发需要长的周期. </li><li> 好的框架能给你带来竞争优势. </li></ul>             <p>从简单开始. </p>             <ul><li> 有 OOP经验 </li><li> 选择训练好的抽象 </li><li> 先建一个小的框架 </li><li> 归纳已经存在的系统 </li><li> 起先保持小的用户群 </li></ul>             <p>客户是至关紧要的 </p>             <p>进早的找到用户,并听取他们的反馈. </p>             <p>是你最初的客户成功. </p>             <p>最初的客户是开发小组的一部分. </p>             <p><strong>重用的环节 </strong></p>             <p>现实: Projects may customize the initial framework, and start competing                streams of development. </p>             <p><strong>处理叠代 </strong></p>             <p>不要说框架是有用的除非你的客户这么说. </p>             <p>当框架演化时保持小的客户群. </p>             <p>一个成功的框架必须不断发展来适应新的用户需求. </p>             <p>不要不停的修补. 有计划的发布版本 并协调客户. </p>             <p><strong>文档和练习 </strong></p>             <p>框架文档的价值在 </p>             <ul><li> 怎样使用 </li><li> 怎么扩展 /他如何工作 </li></ul>             <p>重用的程序一定要是可理解的. </p>             <p>精练的文档使框架更重用. </p>             <p>文档以例子为基础. </p>             <p>文档和练习必须经过测试. </p>             <p>Documenting system shows how to change it. </p>             <p>Framework developers must be intimately involved. </p>             <p>NIH vs. TILI </p>             <p>Problem with reuse is NOT fault of customer. </p>             <p>Software is not as reusable as it is claimed. </p>             <p>It is hard to make software reusable. </p>             <p><strong>可重用的设计是困难的 </strong></p>             <ul><li> 对于应用领域 框架必须是抽象并强大的 </li><li> 必须是可定制的对于用户 </li><li> 必须容易理解                  <ul><li>简单是至关重要的 </li><li>需要好的文档</li></ul>               </li></ul></td></tr></tbody></table></td></tr></tbody></table><img src ="http://www.cppblog.com/cdy20/aggbug/162620.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-12-22 23:23 <a href="http://www.cppblog.com/cdy20/archive/2011/12/22/162620.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2012 必须有新的开始，明确的具体的。</title><link>http://www.cppblog.com/cdy20/archive/2011/11/29/161185.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Tue, 29 Nov 2011 12:12:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/11/29/161185.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/161185.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/11/29/161185.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/161185.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/161185.html</trackback:ping><description><![CDATA[<br />一直在妥协，妥协的过程中不敢有一点懈怠，不断积累新的知识。<br />架构设计，产品，运营，技术与市场视野拓展<br /><br />我相信明年初一定可以找到属于自己合适发展的地方。好好干一翻事业。<br /><br />今年的种种妥协就这样吧。<br />明年坚决不行。<br /><img src ="http://www.cppblog.com/cdy20/aggbug/161185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-11-29 20:12 <a href="http://www.cppblog.com/cdy20/archive/2011/11/29/161185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>WPS Office抢鲜版V8.0发布 素材库提速5倍</title><link>http://www.cppblog.com/cdy20/archive/2011/11/24/160899.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 24 Nov 2011 06:18:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/11/24/160899.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/160899.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/11/24/160899.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/160899.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/160899.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(229,236,244); text-indent: 0px; margin: 0px 0px 1em; padding-left: 0px; padding-right: 0px; font: 14px/21px Verdana; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br />日前，金山办公软件正式发布了WPS Office抢鲜版V8.0，该版本新品秉承了WPS Office 2012灵巧轻快、便捷安装，深度兼容微软Office的特点，可以轻松在时尚界面与经典界面之间一键切换。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(229,236,244); text-indent: 0px; margin: 0px 0px 1em; padding-left: 0px; padding-right: 0px; font: 14px/21px Verdana; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">另外，WPS Office 抢鲜版V8.0对在线素材库进行了改进，使素材库的速度较之前提升5倍，同时段落布局的使用也更加方便，还支持页面颜色的更换，颜色、纹理、图案想怎么来就怎么来，让用户的办公操作更加简单轻松。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />网友可登陆WPS官网下载WPS Office抢鲜版V8.0试用，该版本在以下几方面的性能上有显著提升<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">1、素材库改进</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />WPS Office抢鲜版V8.0素材库的速度较之前提升了5倍，并且新增了翻页、一键删除等功能，使用素材更方便，同时支持老素材的迁移，新旧素材可以同时使用。此外，还在WPS客户端增加了热门素材推荐，让用户可以在第一时间获得最新信息。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">功能入口：</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />2012界面下：WPS程序右上角"素材库"图标<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />经典界面下："插入"选项卡 | 素材库<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/cdy20/15540SX5-0.jpg" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none" class="Apple-style-span"><span style="line-height: 18px; font-family: 'lucida Grande', Tahoma, Arial, Helvetica, 宋体, sans-serif; color: rgb(69,69,69); font-size: 12px" class="Apple-style-span"></span></span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">2、段落布局</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />WPS的段落布局功能深受广大用户的喜爱，在WPS Office抢鲜版V8.0中对段落布局功能的编辑框进行了优化，同时新增了关闭按钮，让鼠标操作更加直接；并且支持多段操作，使段落调整更加方便。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">功能入口：</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">2012界面下：</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />1.WPS文字，开始选项卡，显示/隐藏段落布局按钮<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />2.点击光标所在行行首"段落布局"图标<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">经典界面下：</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />1.常用工具栏，显示/隐藏段落布局按钮<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />2.点击光标所在行行首"段落布局"图标.<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">3、页面颜色</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />新版本的WPS文字新增了页面颜色功能，用户可以根据需要随意对页面颜色进行调整，可以选择颜色、渐变、纹理、图案、图片，想怎么来就怎么来。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />功能入口：<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />2012界面下：WPS文字，单击"页面布局"选项卡，"页面背景"功能区<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />经典界面下：WPS文字，单击"格式 | 背景"菜单<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">4、两种界面切换</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />WPS Office 2012支持Win7时尚界面和经典界面两种界面形式，用户在使用中可以轻松对两种界面风格进行切换，让用户根据使用习惯选择界面形式，充分尊重用户的体验与感受。<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">功能入口：</span><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />2012界面下：程序右上角"切换界面"按钮<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />经典界面下：常用工具栏"切换界面"按钮或者主菜单栏"工具 | 切换界面"<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" /><br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px" /><span style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-weight: bold; padding-top: 0px">下载地址</span>&nbsp;<a style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; color: rgb(0,51,102); text-decoration: none; padding-top: 0px" href="http://www.wps.cn/product/beta/" target="_blank">http://www.wps.cn/product/beta/<br />wps office 2012 抢鲜版 素材库 webkit 云存储 办公<br /></a><br /><br /></p><img src ="http://www.cppblog.com/cdy20/aggbug/160899.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-11-24 14:18 <a href="http://www.cppblog.com/cdy20/archive/2011/11/24/160899.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>50个html5强悍效果demo集合(html5 实例 保存)</title><link>http://www.cppblog.com/cdy20/archive/2011/11/09/159853.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 09 Nov 2011 02:53:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/11/09/159853.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/159853.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/11/09/159853.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/159853.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/159853.html</trackback:ping><description><![CDATA[<h1 class="entry-title J_SinglePostTitle">&nbsp;</h1></header>
<div class="bd entry-content">
<p>以下大部分demo明河在以前的html5demo推荐中都有提到过，这篇算是集大成者，html5的大部分特性在这些demo中都有体现。</p>
<h2>1. <a href="http://ghost-hack.com/post/jsexperiments/tunneler/tunneler.html" target="_blank">Tunneler</a></h2>
<p><img class="alignleft size-full wp-image-3334" title="Tunneler" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Tunneler.jpg" width="576" height="476" /></p>
<h2>2. <a href="http://www.nihilogic.dk/labs/juicydrop/">JuicyDrop</a></h2>
<p><img class="alignleft size-full wp-image-3335" title="juicydrop" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/juicydrop.jpg" width="570" height="322" /></p>
<p><strong><font color="#7958d1">3. </font><a href="http://hakim.se/experiments/html5/magnetic/02/">Magnetic</a></strong></p>
<p><strong><img class="alignleft size-full wp-image-3336" title="Magnetic" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Magnetic.jpg" width="570" height="380" /></strong></p>
<h2>4. <a href="http://hakim.se/experiments/html5/trail/03/">Trail</a></h2>
<p><img class="alignleft size-full wp-image-3337" title="Trail" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Trail.jpg" width="570" height="395" /></p>
<h2>5. <a href="http://hakim.se/experiments/html5/sinuous/01/#">Sinuous</a></h2>
<p><img class="alignleft size-full wp-image-3338" title="Sinuousq" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Sinuousq.jpg" width="570" height="326" /></p>
<h2>6. <a href="http://the389.com/works/three/">DDD</a></h2>
<p><img class="alignleft size-full wp-image-3340" title="DDD" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/DDD.jpg" width="570" height="305" /></p>
<h2>7. <a href="http://mrdoob.com/projects/harmony/#simple">Harmony</a></h2>
<p><img class="alignleft size-full wp-image-3341" title="harmony" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/harmony.jpg" width="570" height="383" /></p>
<h2>8. <a href="http://open.adaptedstudio.com/html5/many-lines/index.html">Lines go all over the place.</a></h2>
<p><img class="alignleft size-full wp-image-3342" title="Linesgoallovertheplace" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Linesgoallovertheplace.jpg" width="570" height="357" /></p>
<h2>9. <a href="http://onecm.com/projects/canopy/">Chrome Canopy</a></h2>
<p><img class="alignleft size-full wp-image-3343" title="ChromeCanopy" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/ChromeCanopy.jpg" width="570" height="358" /></p>
<h2>10. <a href="http://mrdoob.com/projects/chromeexperiments/ball_pool/">Ball Pool</a></h2>
<p><img class="alignleft size-full wp-image-3344" title="BallPool" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/BallPool.jpg" width="570" height="310" /></p>
<h2>11. <a href="http://www.yvoschaap.com/chainrxn/">Chain Reaction</a></h2>
<p><img class="alignleft size-full wp-image-3345" title="ChainReaction" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/ChainReaction.jpg" width="570" height="390" /></p>
<h2>12. <a href="http://gopherwoodstudios.com/entanglement/">Entanglement</a></h2>
<p><img class="alignleft size-full wp-image-3346" title="Entanglement" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Entanglement.jpg" width="570" height="381" /></p>
<h2>13. <a href="http://hakim.se/experiments/html5/blob/03/">Blob</a></h2>
<p><img class="alignleft size-full wp-image-3347" title="Blob" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Blob.jpg" width="570" height="264" /></p>
<h2>14. <a href="http://www.phoboslab.org/biolab/">Biolab Disaster</a></h2>
<p><img class="alignleft size-full wp-image-3348" title="BiolabDisaster" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/BiolabDisaster.jpg" width="570" height="377" /></p>
<h2>15. <a href="http://mrdoob.com/projects/chromeexperiments/google_gravity/">Google Gravity</a></h2>
<p><img class="alignleft size-full wp-image-3349" title="GoogleGravity" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/GoogleGravity.jpg" width="570" height="202" /></p>
<h2>16. <a href="http://hakim.se/experiments/html5/core/01/#">Core</a></h2>
<p><img class="alignleft size-full wp-image-3350" title="Core" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Core.jpg" width="570" height="296" /></p>
<h2>17. <a href="http://www.gartic.com/sketch/">Gartic</a></h2>
<p><img class="alignleft size-full wp-image-3351" title="Gartic" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Gartic.jpg" width="570" height="300" /></p>
<h2>18. <a href="http://craftymind.com/factory/html5video/CanvasVideo.html">HTML5 Video Destruction</a></h2>
<p><img class="alignleft size-full wp-image-3352" title="HTML5VideoDestruction" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/HTML5VideoDestruction.jpg" width="570" height="323" /></p>
<h2>19. <a href="http://hacks.mozilla.org/2009/06/tristan-washing-machine/">The tristan washing machine</a></h2>
<p><img class="alignleft size-full wp-image-3353" title="thetrista" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/thetrista.jpg" width="300" height="282" /></p>
<h2>20. <a href="https://developer.mozilla.org/samples/video/chroma-key/index.xhtml">Changing Background</a></h2>
<p><img class="alignleft size-full wp-image-3354" title="BackgroundChanging" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/BackgroundChanging.jpg" width="570" height="181" /></p>
<h2>21. <a href="http://www.randomthink.net/labs/html5drums/">HTML5 Drum Kit</a></h2>
<p><img class="alignleft size-full wp-image-3355" title="HTML5DrumKit" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/HTML5DrumKit.jpg" width="570" height="235" /></p>
<h2>22. <a href="http://people.mozilla.com/~prouget/demos/DynamicContentInjection/play.xhtml">Dynamic Content Injection</a></h2>
<p><img class="alignleft size-full wp-image-3356" title="DynamicContentInjection" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/DynamicContentInjection.jpg" width="570" height="290" /></p>
<h2>23. <a href="http://htmlfive.appspot.com/static/whereami.html">Geolocation</a></h2>
<p><img class="alignleft size-full wp-image-3357" title="Geolocation" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Geolocation.jpg" width="570" height="422" /></p>
<h2>24. <a href="http://camendesign.com/code/video_for_everybody">Video for Everybody!</a></h2>
<p><img class="alignleft size-full wp-image-3358" title="VideoforEverybod" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/VideoforEverybod.jpg" width="570" height="323" /></p>
<h2>25. <a href="http://www.projekktor.com/">Projekktor Zwei</a></h2>
<p><img class="alignleft size-full wp-image-3359" title="Projekktor" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Projekktor.jpg" width="570" height="220" /></p>
<h2>26. <a href="http://html5demos.com/contenteditable">ContentEditable</a></h2>
<p><img class="alignleft size-full wp-image-3360" title="ContentEditable" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/ContentEditable.jpg" width="570" height="385" /></p>
<h2>27. <a href="http://html5demos.com/drag">Drag and drop</a></h2>
<p><img class="alignleft size-full wp-image-3361" title="Draganddrop" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Draganddrop.jpg" width="570" height="393" /></p>
<h2>28. <a href="http://www.addyosmani.com/resources/canvasphoto/">Canvas Photo</a></h2>
<p><img class="alignleft size-full wp-image-3362" title="CanvasPhoto" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/CanvasPhoto.jpg" width="570" height="324" /></p>
<h2>29. <a href="http://www.schillmania.com/projects/soundmanager2/demo/360-player/canvas-visualization.html">360&#176; MP3 player</a></h2>
<p><img class="alignleft size-full wp-image-3363" title="360MP3player" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/360MP3player.jpg" width="570" height="210" /></p>
<h2>30. <a href="http://url3.tk/?p=nbody">JaVortex</a></h2>
<p><img class="alignleft size-full wp-image-3364" title="JaVortex" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/JaVortex.jpg" width="570" height="279" /></p>
<h2>31. <a href="http://www.giuseppesicari.it/progetti/javascript-3d-model-viewer/">3D Model Viewer</a></h2>
<p><img class="alignleft size-full wp-image-3365" title="Javascript3DModelViewer" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Javascript3DModelViewer.jpg" width="570" height="332" /></p>
<h2>32. <a href="http://sebleedelisle.com/demos/html5landscape.html">3D Landscape on HTML5 canvas</a></h2>
<p><img class="alignleft size-full wp-image-3366" title="3DLandscape" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/3DLandscape.jpg" width="570" height="289" /></p>
<h2>33. <a href="http://webdev.stephband.info/parallax_demos_stalkbuttons.html">Stalk Buttons</a></h2>
<p><img class="alignleft size-full wp-image-3367" title="StalkButtons" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/StalkButtons.jpg" width="570" height="304" /></p>
<h2>34. <a href="https://js-fireworks.appspot.com/">JavaScript Fireworks</a></h2>
<p><img class="alignleft size-full wp-image-3368" title="JavaScriptFireworks" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/JavaScriptFireworks.jpg" width="570" height="444" /></p>
<h2>35. <a href="http://www.blobsallad.se/">Blob Sallad</a></h2>
<p><img class="alignleft size-full wp-image-3369" title="BlobSallad" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/BlobSallad.jpg" width="291" height="297" /></p>
<h2>36. <a href="http://sublimevideo.net/demo">SublimeVideo</a></h2>
<p><img class="alignleft size-full wp-image-3370" title="SublimeVideo" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/SublimeVideo.jpg" width="570" height="240" /></p>
<h2>37. <a href="http://www.xarg.org/project/chrome-experiment/">Catch it!</a></h2>
<p><img class="alignleft size-full wp-image-3371" title="Catchit" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Catchit.jpg" width="311" height="303" /></p>
<h2>38. <a href="http://billmill.org/static/canvastutorial/">Breakout Clone</a></h2>
<p><img class="alignleft size-full wp-image-3372" title="BreakoutClone" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/BreakoutClone.jpg" width="307" height="308" /></p>
<h2>39. <a href="http://mugtug.com/sketchpad/">Sketchpad</a></h2>
<p><img class="alignleft size-full wp-image-3373" title="Sketchpad" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Sketchpad.jpg" width="570" height="348" /></p>
<h2>40. <a href="http://html5demos.com/drag-anything">Simple Drag and Drop</a></h2>
<p><img class="alignleft size-full wp-image-3374" title="SimpleDragandDrop" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/SimpleDragandDrop.jpg" width="570" height="349" /></p>
<h2>41. <a href="http://canvaspaint.org/#">CanvasPaint</a></h2>
<p><img class="alignleft size-full wp-image-3375" title="CanvasPaint" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/CanvasPaint.jpg" width="570" height="344" /></p>
<h2>42. <a href="http://deanm.github.com/pre3d/monster.html">Monster</a></h2>
<p><img class="alignleft size-full wp-image-3376" title="Monster" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Monster.jpg" width="570" height="322" /></p>
<h2>43. <a href="http://modern-carpentry.com/workshop/html5/waveform/">Making waves with html5</a></h2>
<p><img class="alignleft size-full wp-image-3377" title="makingwaves" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/makingwaves.jpg" width="570" height="214" /></p>
<h2>44. <a href="http://www.chiptune.com/starfield/starfield.html">Starfield</a></h2>
<p><img class="alignleft size-full wp-image-3378" title="Starfield" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Starfield.jpg" width="570" height="285" /></p>
<h2>45. <a href="http://danforys.com/mesmerizer/">The mesmerizer</a></h2>
<p><img class="alignleft size-full wp-image-3379" title="Themesmerizer" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/Themesmerizer.jpg" width="488" height="486" /></p>
<h2>46. <a href="http://bomomo.com/">Bomomo</a></h2>
<p><img class="alignleft size-full wp-image-3380" title="bomomo" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/bomomo.jpg" width="570" height="392" /></p>
<h2>47. <a href="http://www.professorcloud.com/mainsite/canvas-nebula.htm">Canvas Nebula</a></h2>
<p><img class="alignleft size-full wp-image-3381" title="CanvasNebulaq" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/CanvasNebulaq.jpg" width="570" height="258" /></p>
<h2>48. <a href="http://spielzeugz.de/html5/liquid-particles.html">Liquid Particles</a></h2>
<p><img class="alignleft size-full wp-image-3382" title="LiquidParticles" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/LiquidParticles.jpg" width="570" height="273" /></p>
<h2>49. <a href="http://www.andrew-hoyer.com/experiments/cloth/">Moving Cloth in HTML5</a></h2>
<p><img class="alignleft size-full wp-image-3383" title="MovingClothinHTML5" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/MovingClothinHTML5.jpg" width="570" height="403" /></p>
<h2>50. <a href="http://alteredqualia.com/canvasmol/">CanvasMol</a></h2>
<p><img class="alignleft size-full wp-image-3384" title="CanvasMol" alt="" src="http://www.36ria.com/wp-content/uploads/2010/10/CanvasMol.jpg" width="350" height="347" /></p>
<p>原文：<a href="http://www.1stwebdesigner.com/resources/html5-demos/" target="_blank">http://www.1stwebdesigner.com/resources/html5-demos/</a></p></div><img src ="http://www.cppblog.com/cdy20/aggbug/159853.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-11-09 10:53 <a href="http://www.cppblog.com/cdy20/archive/2011/11/09/159853.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于qwebkit第一次网络请求慢 彻底解决了。</title><link>http://www.cppblog.com/cdy20/archive/2011/10/12/158110.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 12 Oct 2011 02:04:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/10/12/158110.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/158110.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/10/12/158110.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/158110.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/158110.html</trackback:ping><description><![CDATA[<div>今天在一台经常慢得机器，彻底解决这个第一次联网问题了。<br />第一次联网启动慢 总结：<br />1、系统代理检查开销<br />2、缓冲检查开销。（当qwebkit缓冲机制，会对每一个http检查截住，然后检查本地缓冲文件，缓冲文件是用hash索引的，还有就是解压，对于常使用 缓冲变大，之前设置为512m，时间开销是必须的）<br /><br />解决方式：<br />1、去掉默认代理<br />2、控制缓冲文件最大数。（自己权衡）当然对于这个问题，qtwebkit 这个缓冲机制 天生对于混合应用的缺陷，比起我自己设计的简单的缓冲来得差。<br /><br /><br /><br /><br /><span style="color: #999999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br /><span style="color: #999999;">发现部分机器，第一次联网 依然存在较大时间开销。</span><br /><span style="color: #999999;">继续啊。。。。。。。</span><br /><br /><span style="color: #999999;">---------------------------------------------------</span><br /><span style="color: #999999;">解决了，坑爹啊 ，使用了系统代理，第一次总会去检查</span><br /><span style="color: #999999;">解决方式就是不使用代理，总算解决了</span><br /><br /><span style="color: #999999;">第一次启动不在慢了，hoho！</span><br /><br /><span style="color: #999999;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span><br /><span style="color: #999999;">&nbsp;Loaded 'C:\Windows\SysWOW64\psapi.dll'</span><br /><span style="color: #999999;">&nbsp;Loaded 'C:\Windows\SysWOW64\winhttp.dll'</span><br /><span style="color: #999999;">Loaded 'C:\Windows\SysWOW64\webio.dll'</span><br /><span style="color: #999999;">Loaded 'C:\Windows\SysWOW64\dhcpcsvc6.dll'</span><br /><span style="color: #999999;">&nbsp;Loaded 'C:\Windows\SysWOW64\dhcpcsvc.dll'</span><br /><span style="color: #999999;">Loaded 'C:\Windows\SysWOW64\credssp.dll'</span><br /><span style="color: #999999;">Loaded 'C:\Windows\SysWOW64\WSHTCPIP.DLL'</span></div><br /><br /><span style="color: #999999;">第一次加载这些库 时间开销 暂时 无解。 </span><img src ="http://www.cppblog.com/cdy20/aggbug/158110.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-10-12 10:04 <a href="http://www.cppblog.com/cdy20/archive/2011/10/12/158110.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小记</title><link>http://www.cppblog.com/cdy20/archive/2011/09/21/156446.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 21 Sep 2011 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/09/21/156446.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/156446.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/09/21/156446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/156446.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/156446.html</trackback:ping><description><![CDATA[一切都需要去争取。<br /><br />着手准备重构方案<img src ="http://www.cppblog.com/cdy20/aggbug/156446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-09-21 16:53 <a href="http://www.cppblog.com/cdy20/archive/2011/09/21/156446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>终于搞完了 WPSOffice2012在线素材库发布了</title><link>http://www.cppblog.com/cdy20/archive/2011/09/19/156220.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 19 Sep 2011 06:20:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/09/19/156220.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/156220.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/09/19/156220.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/156220.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/156220.html</trackback:ping><description><![CDATA[<div> <p>特点：<br />1、WPS Office  2012支持更加丰富的素材资源库，它提供各种图标、图形、按钮和符号，帮助用户美化文档。同时，WPS的素材库还支持上传、保存。</p> <p>2、智能标签网络抓取，只要开启 就可以抓网络的数据</p> <p>3、支持素材拖进来保存</p> <p>4、支持拖到wps 文档中</p> <p>5、私有云存储<br />在线素材库：混合bs、cs结构，云存储技术...<br /><a title="1.jpg" href="http://www.windowscoder.org/attachment/354/"><img alt="1.jpg" src="http://www.windowscoder.org/usr/uploads/2011/09/1693308786.jpg" /></a></p> <p><a title="2.jpg" href="http://www.windowscoder.org/attachment/355/"><img alt="2.jpg" src="http://www.windowscoder.org/usr/uploads/2011/09/1584418337.jpg" /></a></p> <p><a title="3.jpg" href="http://www.windowscoder.org/attachment/359/"><img alt="3.jpg" src="http://www.windowscoder.org/usr/uploads/2011/09/3116262630.jpg" /></a></p> <p><a title="5.jpg" href="http://www.windowscoder.org/attachment/360/"><img alt="5.jpg" src="http://www.windowscoder.org/usr/uploads/2011/09/1204175892.jpg" /></a></p> <p><a title="6.jpg" href="http://www.windowscoder.org/attachment/361/"><img alt="6.jpg" src="http://www.windowscoder.org/usr/uploads/2011/09/4130788589.jpg" /></a></p> <p>Tags: <a href="http://www.windowscoder.org/tag/wps2012/">wps2012</a>, <a href="http://www.windowscoder.org/tag/kingsoft/">kingsoft</a>, <a href="http://www.windowscoder.org/tag/%E9%87%91%E5%B1%B1%E8%BD%AF%E4%BB%B6/">金山软件</a>,&nbsp; <a href="http://www.windowscoder.org/tag/webkit/">webkit</a>, <a href="http://www.windowscoder.org/tag/ruby/">ruby</a>,  <a href="http://www.windowscoder.org/tag/sqlit/">sqlit</a>, <a href="http://www.windowscoder.org/tag/%E4%BA%91%E5%AD%98%E5%82%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/">云存储</a></p><p><br /></p><p>http://www.windowscoder.org/ITNews/353.html<a href="http://www.windowscoder.org/tag/%E4%BA%91%E5%AD%98%E5%82%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/"><br /></a></p></div><img src ="http://www.cppblog.com/cdy20/aggbug/156220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-09-19 14:20 <a href="http://www.cppblog.com/cdy20/archive/2011/09/19/156220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于qwebkit缓存小记</title><link>http://www.cppblog.com/cdy20/archive/2011/09/15/155859.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 15 Sep 2011 09:01:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/09/15/155859.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/155859.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/09/15/155859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/155859.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/155859.html</trackback:ping><description><![CDATA[<br />qtwebkit的缓存带有压缩，<br />哥自己又另外写了一个缓存，不带压缩的，针对想自己想缓存的服务器传过来的图片。<br /><br />qtwebkit的截断网络请求，帮我缓存一般的数据，<br />自己写的可以缓存指定的。<br /><br />两个配合一起用。优化速度提高了。<br /><br />就是qtwebkit开辟大一点的缓存区 第一次启动的时候会慢一点。后期再做启动就没感觉了。<br /><br />等发了版本有时间重写这个类。不过这种方式感觉还是有些缺陷，不如直接指定存的。<br /><br />哥机器素材库已经秒起。<br /><br />第一期启动大的文件，采用预置的资源包。这一部分自己写的。<br />网络请求截获的缓冲 和 文件接口方式缓冲 ，两套方式一起上。<img src ="http://www.cppblog.com/cdy20/aggbug/155859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-09-15 17:01 <a href="http://www.cppblog.com/cdy20/archive/2011/09/15/155859.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>项目企业小记</title><link>http://www.cppblog.com/cdy20/archive/2011/09/06/155189.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Tue, 06 Sep 2011 01:05:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/09/06/155189.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/155189.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/09/06/155189.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/155189.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/155189.html</trackback:ping><description><![CDATA[一个产品后期。高层突然怨前期技术预研没有做好，<br />中期增加的需求，以为是附加的东西，复杂的环境下肯定有其风险存在。<br />却怨到初期的预研。<br /><br />开始推脱责任的时候了。而不是齐心协力把这玩意做好。<br /><br />整个项目的尾声，暴露出现的问题，大概有。<br /><br />1、高层前期突然介入，导致准备技术方案多套，延迟了一个月左右。<br />2、中期需求变更大。（这个没有控制好，技术的那个时候不够坚持，估计那个时候一样认同看好这个需求点）<br />3、ui设计有问题，整套界面几乎没有一个研发测试人员觉得是好看的，总体设计偏向小气。（钱少请的，不知道上面的人怎么想）<br />4、产品不够坚持自己的方向，高层时常介入修改，无理由的需求也被接受，产品不够坚持。（做到最后产品人员，也不看好自己的产品）<br />5、对于用户的需求，带有惰性接受，而不是去分辨，对于一些原则性方向问题，一个用户说改，就在做准备改。（高层都不知道自己在做什么了，没有远见，利益集中于一个已有的产品）<br />6、其实打一开始，接入那个另外产品的东西，已经注定这个东西原则上面的东西也容易妥协，而且很可能又被一句话搞掉，一条渐行渐远的附属功能之路。<br /><br />换个角度想，<br />如果知道阻力这么大，可以从内部先做提升体验，渐渐提高 引导用户到独立的产品上面。这个方式不知道好不好。<br /><br />这些对于做技术的其实没多大所谓，最多加多些班，准备多些方案。<br />但是一个东西就这样了。高层的种种做法，对他们来说过分保守强硬是对的么，<br />那还组建这样的团队干嘛<br /><br />这个企业太熟悉了，太了解了。说多无意。提出问题的时候，一个一个在辩解。而不是思考处理。<br />小地方的人，视野某非就变狭窄了？<br /><br />一个新界面出来了，原来做这个东西小组的员工基本走光了. 昨天又吃了一顿散伙饭。<br />中秋的时候听说实习生连一点节日的问候都没有。都不知道省着点小钱为了啥。冷冰冰的企业文化，还要别人提醒他们。<br />做企业还是做财务啊。 - -！！<br /><img src ="http://www.cppblog.com/cdy20/aggbug/155189.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-09-06 09:05 <a href="http://www.cppblog.com/cdy20/archive/2011/09/06/155189.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20110510 </title><link>http://www.cppblog.com/cdy20/archive/2011/05/10/146141.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Tue, 10 May 2011 13:41:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/05/10/146141.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/146141.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/05/10/146141.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/146141.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/146141.html</trackback:ping><description><![CDATA[<p>老了么？</p>
<p>我们都会老的吧。</p>
<p>&nbsp;</p>
<p>人，有时候，总想为心灵抓一把稻草。</p>
<p>再强大的心灵总有破绽</p>
<p>&nbsp;</p>
<p>而自己好像全身都是破绽</p>
<p>面对所有自身的问题</p>
<p>好像没有太多的焦虑，就像不似一个人一样</p>
<p>&nbsp;</p>
<p>来时的路上，所体验的种种，好像与我无关一样，就像一切不曾有过</p>
<p>而我却是走着那条路来的。</p>
<p>&nbsp;</p>
<p>以前总是选择最锻炼踏实的路取走</p>
<p>一个一个自己加于的自己的枷锁，</p>
<p>装上，拆掉，再装，再拆</p>
<p>过程是什么，最后是什么</p>
<p>&nbsp;</p>
<p>现在呢</p>
<p>好像现在也给自己带上一个枷锁了</p>
<p>哦，好像不止一个。</p>
<p>为了目标？</p>
<p>&nbsp;</p>
<p>一辈子还要多少次循环</p>
<img src ="http://www.cppblog.com/cdy20/aggbug/146141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-05-10 21:41 <a href="http://www.cppblog.com/cdy20/archive/2011/05/10/146141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>披上远途的风衣</title><link>http://www.cppblog.com/cdy20/archive/2011/04/29/145265.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Thu, 28 Apr 2011 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/04/29/145265.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/145265.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/04/29/145265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/145265.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/145265.html</trackback:ping><description><![CDATA[渐渐地把内心的柔软藏起来，因为知道这个对身边的人有影响的<br><br>渐渐地 生活变得很简单很简单<br><br>把这些暂时藏起来吧<br><br>继续人生的锻炼<br>
<img src ="http://www.cppblog.com/cdy20/aggbug/145265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-04-29 00:27 <a href="http://www.cppblog.com/cdy20/archive/2011/04/29/145265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>加油哇!</title><link>http://www.cppblog.com/cdy20/archive/2011/04/06/143560.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Wed, 06 Apr 2011 14:46:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/04/06/143560.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/143560.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/04/06/143560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/143560.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/143560.html</trackback:ping><description><![CDATA[背着书包，踏着熟悉的路，<br>望来望去，路上的每个人都在看着我<br>不知道为了啥<br><br>一年没回来了，真的特别开心<br>当年沉浸在自己的思考中，<br>不知不觉就走了<br><br>熟悉的教学楼，那些教室，他们也一样想我以前那样在自习<br><br>朋友说你老了，其实我一直还以为自己很嫩，和学生一样。<br>呵呵<br><br>在大学城 住了两个晚上，南亭，北亭。<br>有时候觉得广州，如果他们都毕业了<br>一个人去真有点漂泊的感觉<br><br>加 一直要我去看看老朋友老同学，多见见。<br>其实我懒得到处走的，特别是一个人。<br><br>漂泊的感觉不好，但是人生有时候会有漂泊的感觉。<br><br>熟悉的栏杆走廊，熟悉的柳树湖水石凳，熟悉的图书馆，<br>那里以前都是我们的身影，现在 明天 很多很多明天 这里注定不会再有我们的身影，<br><br>梅子说，我应该找一个单纯点的女孩子，太物质的不适合我<br>还说要果断下手表白，<br>但还是没有。即使觉得合适，<br>但是也不知道别人的 想法。<br><br>而且总觉得太冒昧了。<br><br>人就这样折腾自己。<br><br>不过这几天真的很开心，那晚上失眠了，昨晚也失眠了。想了很多很多，事情也就只能随缘了。<br><br>还是像以前那样，不奢望太多，踏实进步。<br><br>今天理了下 东西，好多书还没有看。<br>抓紧的。<br>今年不进到另一个层次 就把自己干掉，哈哈。<br><br>世界 我来了！<br><br><br><br><br><br><br><img src ="http://www.cppblog.com/cdy20/aggbug/143560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-04-06 22:46 <a href="http://www.cppblog.com/cdy20/archive/2011/04/06/143560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>来来往往</title><link>http://www.cppblog.com/cdy20/archive/2011/03/25/142705.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Fri, 25 Mar 2011 05:33:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/03/25/142705.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/142705.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/03/25/142705.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/142705.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/142705.html</trackback:ping><description><![CDATA[<br>昨天新的玩意终于发布了，松了一口气<br><a href="http://www.wps.cn/product/beta/v-3.htm">http://www.wps.cn/product/beta/v-3.htm</a><br><span class=fb>常用公式向导 微软没有的，虽然很累加班有没有多少钱，但还是很开心。20天的没日没夜的，期间有段时间还喝口服液<br>否则真的顶不顺啊。<br><br><br>常用公式向导，以后产品人员或者专业用户都可以通过xml配置做出新的功能，只要按照规则去书写xml就可以了。<br><br><br>这次很急，但还是把对于控件的的数据给抽象出一个类来管理，有些结构稍微不同数据 都被我搞在一张二维表里面。<br>突然觉得io的工作很烦躁的，没有中间层来的爽。<br><br>因为这个是不用存文档的，所以io（xml的io而已）做到界面逻辑 都可以写，从头到尾自己设计 自己搞，自己管理数据，自己解析结果，还是挺好玩的。<br><br>也许在高质量要求的工程里面 自己还显得有点稚嫩，但是没关系。多搞几把吧<br><br>因为疲劳作业，所以后面还犯了几个错误，都是小错误。发布之前 检查了一遍 然后就随缘了，改错的 就承担吧。<br>我不知道在这里已经活到这样坦然了<br><br>该做的尽责做，要我走的时候我就走。一点也不会计较了。<br><br>有时候觉得 这里除了老大，还有几个朋友 其实没啥好留恋的地方。<br>作为一个企业，流动性这么大，没问题才怪，好多年了。<br>作为一个企业不是和员工共赢，还有什么存在的价值。也许我不懂吧。资本运作的玩意。<br><br>该学地狂学ing，我知道外面的诱惑是在是太多了。太多人叫过去了，<br><br>搞多几个月 学该学的玩意先把。<br><br>这周一个哥们走了，上个月一个老大走了，一个哥们准备要走了，下个月会有很多人要走的。<br><br>有时候看着饭桌，觉得挺伤心的，不过该走的 时候 就得走的。我们开玩笑说明年初，饭桌还会剩多少人。<br><br><br>今天看到反馈，还是蛮欣慰的<br><a href="http://bbs.wps.cn/thread-21927640-1-1.html">http://bbs.wps.cn/thread-21927640-1-1.html</a><br><br></span>
<img src ="http://www.cppblog.com/cdy20/aggbug/142705.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-03-25 13:33 <a href="http://www.cppblog.com/cdy20/archive/2011/03/25/142705.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>快开春了吧</title><link>http://www.cppblog.com/cdy20/archive/2011/03/18/142172.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Fri, 18 Mar 2011 13:53:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2011/03/18/142172.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/142172.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2011/03/18/142172.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/142172.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/142172.html</trackback:ping><description><![CDATA[<br><br>&nbsp;&nbsp;&nbsp; 总算基本完工了，折腾了半个多月。需求设计，到详细设计，编码，除了几天其他都是每天加班到十一点左右。<br>挺累的。编码有时候也是很恶心的，一两个星期五六千行，除了业务逻辑的玩意，核心生成公式花了几天去稳定。<br><br>唯一的成就感就是这玩意微软没有的。哥，想配置什么功能就什么功能。<br><br>&nbsp; &nbsp; xml配置，在界面开发的思路上面已经很成熟的， 也许我眼界比较小，知道 有兄弟们在整的ribbon，虽然没有参与，蛋蛋搞的UI库的相关开源的玩意也用这些开发思路。<br>&nbsp;&nbsp;&nbsp; 其他的金山毒霸，360，tx都有涉及。<br>&nbsp;&nbsp;&nbsp; 也许是为了分工细致，也许是为了快速开发。<br>&nbsp;&nbsp;&nbsp; 工作一年，走也不是，留也奇怪。总之继续学习一年先的。<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; 恋上安逸的环境么<br><br>&nbsp;&nbsp;&nbsp; 只不过是希望，清晨走走，走过树荫，走过市井，伴着习惯的孤独<br>&nbsp;&nbsp;&nbsp; 晚上，不管多晚，都可以走着，看着世界的背影。<br><br><br><br><br><img src ="http://www.cppblog.com/cdy20/aggbug/142172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2011-03-18 21:53 <a href="http://www.cppblog.com/cdy20/archive/2011/03/18/142172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于流年里的</title><link>http://www.cppblog.com/cdy20/archive/2010/11/13/133553.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Sat, 13 Nov 2010 15:18:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2010/11/13/133553.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/133553.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2010/11/13/133553.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/133553.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/133553.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/cdy20/archive/2010/11/13/133553.html'>阅读全文</a><img src ="http://www.cppblog.com/cdy20/aggbug/133553.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2010-11-13 23:18 <a href="http://www.cppblog.com/cdy20/archive/2010/11/13/133553.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>……1</title><link>http://www.cppblog.com/cdy20/archive/2010/09/21/127218.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Tue, 21 Sep 2010 00:37:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2010/09/21/127218.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/127218.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2010/09/21/127218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/127218.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/127218.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;找寻很久，都在内心里面
<img src ="http://www.cppblog.com/cdy20/aggbug/127218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2010-09-21 08:37 <a href="http://www.cppblog.com/cdy20/archive/2010/09/21/127218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>……</title><link>http://www.cppblog.com/cdy20/archive/2010/09/20/127167.html</link><dc:creator>爬</dc:creator><author>爬</author><pubDate>Mon, 20 Sep 2010 11:28:00 GMT</pubDate><guid>http://www.cppblog.com/cdy20/archive/2010/09/20/127167.html</guid><wfw:comment>http://www.cppblog.com/cdy20/comments/127167.html</wfw:comment><comments>http://www.cppblog.com/cdy20/archive/2010/09/20/127167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cdy20/comments/commentRss/127167.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cdy20/services/trackbacks/127167.html</trackback:ping><description><![CDATA[好想找个没人的地方，找个合适的时间，好好哭一场<br><br>难言的境地<br>
<img src ="http://www.cppblog.com/cdy20/aggbug/127167.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cdy20/" target="_blank">爬</a> 2010-09-20 19:28 <a href="http://www.cppblog.com/cdy20/archive/2010/09/20/127167.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>