<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>&#23567;&#22604;&#23458;::shitou's blog</title>
    <link>http://www.ccok.me/</link>
    <description>&#26368;&#26032;&#26085;&#24535;</description>
    <copyright>http://www.ccok.me</copyright>
    <language>zh_CN</language>
    <item>
      <title>Mongodb sharding&#29615;&#22659;&#20013;update&#38382;&#39064;</title>
      <description>&lt;p&gt;&#22312;MongoDB Sharding&#29615;&#22659;&#20013;&#22914;&#26524;update&#25805;&#20316;&#27809;&#26377;&#21629;&#20013;&lt;a href=&quot;http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key&quot;&gt;sharding key&lt;/a&gt;&#30340;&#35805;&#21487;&#33021;&#20250;&#36935;&#21040;&#26080;&#27861;&#26356;&#26032;&#30340;&#38382;&#39064;&#65292;&#38382;&#39064;&#23601;&#22312;&#20110;&#36825;&#31181;update&#24517;&#39035;&#26159;multi-updates&#65292;&#23601;&#26159;&#38656;&#35201;&#25351;&#23450;multi-updates&#30340;&#21442;&#25968;&#20026;true(&#40664;&#35748;&#24773;&#20917;&#19979;mongodb&#21482;&#20250;&#26356;&#26032;&#21629;&#20013;&#30340;&#31532;&#19968;&#26465;&#25968;&#25454;)&#65292;&#65292;&#32780;&#22312;&#23448;&#26041;&#25991;&#26723;&#20013;&#36825;&#28857;&#24182;&#27809;&#26377;&#25552;&#21040;&#65292;&#21518;&#26469;&#36890;&#36807;&#22312;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!forum/mongodb-user&quot;&gt;mongodb google group&lt;/a&gt;&#20013;&#21457;&#24086;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/7iXtbg4LJs8&quot;&gt;&#35752;&#35770;&lt;/a&gt;&#21518;&#65292;&#25165;&#30693;&#36947;&#36825;&#28857;&#65292;&#20043;&#21518;&#23448;&#26041;&#25991;&#26723;&#20063;&#39532;&#19978;&#26356;&#26032;&#20102;&#65292;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.mongodb.org/display/DOCS/Sharding+Introduction&quot;&gt;Sharding Introduction&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;db.foo.update( { age : 40 },&amp;nbsp;&lt;span&gt;&lt;strong&gt;Updates without the shard key must be multi-updates&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#34429;&#28982;mongodb&#19968;&#30452;&#22312;&#19981;&#20572;&#30340;&#25512;&#20986;&#29256;&#26412;&#30340;&#26356;&#26032;&#65292;&#20294;&#38382;&#39064;&#36824;&#26159;&#27604;&#36739;&#22810;&#30340;&#65292;&#30446;&#21069;&#24050;&#32463;&#25903;&#25345;&#30340;&#19968;&#20123;&#21151;&#33021;&#34429;&#28982;&#22312;&#23448;&#26041;&#25991;&#26723;&#37117;&#26377;&#25551;&#36848;&#65292;&#20294;&#26159;&#19968;&#26086;&#36935;&#21040;&#32454;&#33410;&#22788;&#29702;&#30340;&#22320;&#26041;&#36824;&#26159;&#27809;&#26377;&#35299;&#20915;&#21150;&#27861;&#30340;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Wed, 09 May 2012 19:55:07 -0600</pubDate>
      <link>http://www.ccok.me/page/read/234</link>
      <guid>http://www.ccok.me/page/read/234</guid>
    </item>
    <item>
      <title>shell&#20013;&#23383;&#31526;&#20018;&#25490;&#24207;</title>
      <description> &#22312;shell&#20013;&#23545;&#19968;&#21015;&#25968;&#25454;&#25490;&#24207;&#21487;&#20197;&#20351;&#29992;sort&#65292;&#20294;&#26159;&#40664;&#35748;shell&#20013;&#26159;&#19981;&#25903;&#25345;&#23545;&#19968;&#20010;&#23383;&#31526;&#20018;&#25490;&#24207;&#30340;&#65292;&#20294;&#21487;&#20197;&#36890;&#36807;&#20854;&#23427;&#21629;&#20196;&#26469;&#23436;&#25104;&#65292;&#27604;&#22914;:
&#23545;&#19968;&#20010;&#23383;&#31526;&#20018;&#27599;&#20010;&#23383;&#31526;&#36827;&#34892;&#25490;&#24207;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
#echo &quot;hello&quot; | grep -o . | sort -n | tr -d &quot;\n&quot;; echo
&lt;/pre&gt;
&#23545;&#23383;&#31526;&#20018;&#20197;&#25351;&#23450;&#23383;&#31526;&#20998;&#38548;&#36827;&#34892;&#25490;&#24207;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
#echo &quot;00 12 02 01 23&quot; | tr -s &quot; &quot; &quot;\n&quot; | sort -n | tr -s &quot;\n&quot; &quot; &quot;; echo
&lt;/pre&gt;</description>
      <author>shitou</author>
      <pubDate>Mon, 16 Apr 2012 01:52:29 -0600</pubDate>
      <link>http://www.ccok.me/page/read/233</link>
      <guid>http://www.ccok.me/page/read/233</guid>
    </item>
    <item>
      <title>MongoDB client IP</title>
      <description> &#26368;&#36817;mongodb&#20986;&#29616;&#20102;&#22823;&#37327;&#30340;&#24930;&#26597;&#35810;&#65292;&#30001;&#20110;&#25105;&#20204;&#21069;&#31471;&#26377;&#22823;&#37327;&#30340;app server, &#38656;&#35201;&#23450;&#20301;&#21040;&#20855;&#20307;&#30340;&#26426;&#22120;&#65292;&#22312;mongodb&#30340;&#26085;&#24535;&#20013;&#40664;&#35748;&#26159;&#27809;&#26377;client ip&#30340;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
Mon Apr 16 01:41:38 [conn327586] update db.coll query: ...... upsert:1 112ms
&lt;/pre&gt;
&#20294;&#26159;&#20250;&#26377;&#24403;&#21069;&#23545;&#24212;&#30340;&#36830;&#25509;ID&#65292;&#36825;&#37324;&#23601;&#26159;conn327586&#65292; &#22312;&#27599;&#27425;client&#19982;mongodb server&#24314;&#31435;&#36830;&#25509;&#26102;&#20250;&#35760;&#24405;client&#30340;IP&#21644;&#25152;&#20135;&#29983;&#30340;&#36830;&#25509;ID, &#21487;&#20197;&#36890;&#36807;&#20877;&#21453;&#21521;&#26597;&#25214;&#8220;accepted from.*conn327586&quot;&#36825;&#26679;&#30340;&#26085;&#24535;&#23601;&#21487;&#20197;&#25214;&#21040;&#23545;&#24212;&#30340;client IP&#20102;
&lt;br /&gt;
&lt;br /&gt;
&#25105;&#20204;&#31995;&#32479;&#20013;&#23545;&#19968;&#22788;group&#30340;&#25805;&#20316;&#20351;&#29992;&#20102;memcache&#26469;&#32531;&#23384;&#26597;&#35810;&#32467;&#26524;&#65292;&#20294;&#26159;&#26368;&#36817;&#36824;&#26159;&#20986;&#29616;&#22823;&#37327;&#20102;group&#25805;&#20316;&#23548;&#33268;&#38145;&#36827;&#31243;&#65292;&#20986;&#29616;&#20102;&#20005;&#37325;&#30340;&#24615;&#33021;&#38382;&#39064;&#65292;&#26597;&#30475;&#21518;&#21457;&#29616;memcache&#26159;&#26377;&#25928;&#30340;&#65292;&#20294;&#26159;&#26377;&#22823;&#37327;&#30340;&#36827;&#31243;&#21516;&#26102;&#36935;&#21040;&#20102;&#32531;&#23384;&#36229;&#26102;&#30340;&#26102;&#38388;&#28857;&#65292;&#23548;&#33268;&#21516;&#26102;&#25191;&#34892;&#21047;&#26032;&#32531;&#23384;&#30340;&#25805;&#20316;&#65292;&#38382;&#39064;&#20063;&#23601;&#20135;&#29983;&#20102;&#65292;&#19979;&#38754;&#26159;&#32479;&#35745;&#33050;&#26412;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
awk '/group/{print $5, $4}' mongodb.log | sort -k 2| awk '{split(a[$1], b, &quot; &quot;); b[length(b)+1]=$2; a[$1]=&quot;&quot;; for(i in b){a[$1]=sprintf(&quot;%s %s&quot;, a[$1], b[i])}};END{for(i in a){printf &quot;%s %s\n&quot;, i, a[i]}}' &gt; sta.txt
&lt;/pre&gt;
&#36825;&#20010;&#21629;&#20196;&#20250;&#21015;&#20986;&#21516;&#19968;&#36830;&#25509;(connection ID)&#23545;&#24212;&#30340;&#25152;&#26377;group&#30340;&#25191;&#34892;&#26102;&#38388;&#65292;&#36890;&#36807;&#36825;&#20010;&#32467;&#26524;&#19978;&#38754;&#30340;&#38382;&#39064;&#24456;&#23481;&#26131;&#23601;&#21487;&#20197;&#30475;&#21040;&#20102;&#65292;&#19981;&#36807;&#36825;&#20010;&#21629;&#20196;&#26377;&#19968;&#20010;&#23567;&#38382;&#39064;&#23601;&#26159;&#19981;&#20250;&#25226;&#26102;&#38388;&#39034;&#24207;&#25490;&#21015;&#65292;&#38656;&#35201;&#20877;&#36827;&#19968;&#27493;&#22788;&#29702;&#19968;&#19979;&#65292;&#23454;&#22312;&#26159;&#24819;&#19981;&#20986;&#24590;&#20040;&#29992;shell&#22788;&#29702;
</description>
      <author>shitou</author>
      <pubDate>Sun, 15 Apr 2012 21:12:26 -0600</pubDate>
      <link>http://www.ccok.me/page/read/232</link>
      <guid>http://www.ccok.me/page/read/232</guid>
    </item>
    <item>
      <title>MongoDB Sharding&#35774;&#35745;</title>
      <description>   &lt;p&gt;&#36825;&#31687;&#25991;&#31456;&#26159;shitou&#22312;&#30446;&#21069;&#30340;company(&#22806;&#20225;)&#30340;wiki&#19978;&#20889;&#30340;&#65292;&#26159;&#33521;&#25991;&#30340;&#65292;&#20027;&#35201;&#26159;&#20851;&#20110;mongodb sharding&#30340;&#35774;&#35745;&#20197;&#21450;&#20027;&#35201;&#38382;&#39064;&#30340;&#32771;&#34385;&#65292;&#36807;&#20110;&#32454;&#33410;&#21644;&#22522;&#30784;&#30340;&#38382;&#39064;&#22312;&#36825;&#37324;&#24182;&#27809;&#26377;&#28041;&#21450;&#65292;&#21487;&#20197;&#21442;&#32771;mongodb&#30340;&#23448;&#26041;&#25991;&#26723;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;Sharding Key&lt;/h2&gt;
&lt;p class=&quot;p2&quot;&gt;Most of our queries are based monitor_id, timestamp and location, and according to the sharding key design principle:&#160;&lt;/p&gt;
&lt;ul class=&quot;ul1&quot;&gt;
&lt;li class=&quot;li4&quot;&gt;Single read should be finished in one shard.&lt;/li&gt;
&lt;li class=&quot;li4&quot;&gt;All reads should be distributed to all shards.&lt;/li&gt;
&lt;li class=&quot;li4&quot;&gt;Writes should be distributed to all shards.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;p2&quot;&gt;so the sharding key will be: &#65279;&#65279;&lt;strong&gt;{xxx_id: 1, xxx: 1, xxx: 1}&lt;/strong&gt;&#65279;, Remember the sequence of it when creating index, the sequence is extremely important, because database index follows the LEFT MATCH principle.&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Query&lt;/strong&gt;&lt;/h2&gt;
&lt;p class=&quot;p2&quot;&gt;Most queries will hit the sharing key, however, we can not cover all situations and requirements are changing, we can not change the sharding key when we create it in database. When query not hit the sharding key, it will scan all the shards, it will be slower than hitting the sharding key query, but it is acceptable, we don't have too much resource to do this benchmark in this situation, but in mongodb official says, it will be still fast when the shards servers is under 10.&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&lt;strong&gt;When non-sharing-key query scans all shards&#160;we need to make sure that it will still hit the index, otherwise, it will be definitely vey slow.&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Chunks&lt;/strong&gt;&lt;/h2&gt;
&lt;p class=&quot;p2&quot;&gt;The default chunk size is 64MB, when one chunk is bigger than that number, mongodb will split the chunk into two chunks, and move it to another shard.&lt;/p&gt;
&lt;ul class=&quot;ul1&quot;&gt;
&lt;li class=&quot;li4&quot;&gt;If the number is too small, which will make mongodb be busy splitting chunks, especially when our data grow fast.&lt;/li&gt;
&lt;li class=&quot;li4&quot;&gt;If the number is too big, it will make mongodb cost too much time to move chunks to another server.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class=&quot;p2&quot;&gt;we will use the default number in the beginning, and then to see if we need to increase the number or decrease the number.&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;When mongodb move chunks from one shard to another shard, the server load will grow, which maybe will cause performance problems, but we can control the chunk moving process, it's the balancer process, for example, if we notice that every time chunk moving process cause us a problem, we can stop the balancer process:&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;$mongo #connect to mongos&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&gt;use config;&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;&gt;db.settings.update({_id: &quot;balancer&quot;}, {$set: {stopped: true}}, true)&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;Then mongodb will stop moving chunks, but it will still do the chunk splitting job, and it leaves to us to decide when to move the chunks manually:&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;$mongo #connect to mongos&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;&gt;use admin;&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;&gt;db.printShardingStatus();&lt;/p&gt;
&lt;p class=&quot;p6&quot;&gt;&gt;db.runCommand({moveChunk: &quot;testdb.users&quot;, find: {login: &quot;rock26944&quot;}, to: &quot;shard0000&quot;})&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;We can also write a crond job to do this.&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Failover&lt;/strong&gt;&lt;/h2&gt;
&lt;p class=&quot;p2&quot;&gt;When one shard is down, the query hit this shard will fail, so we will make every shard a replica set. About replica set please refer other documentations.&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;When one shard(it's a replica set) is down, and the query hit this shard, and the other shard, the query will fail default, but we can add a query option({partial: 1}) to make the query just return partial data, not raise an socket error, currently the ruby mongo driver support this feature, but it's not able to put this config option to a config file, so it's difficult to use this feature right now. But i think the replica set will give us a lot of&#160;insurance.&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Problems&lt;/strong&gt;&lt;/h2&gt;
&lt;ol class=&quot;ol1&quot;&gt;
&lt;li class=&quot;li7&quot;&gt;How much memory does mongos need? Will it become a bottleneck?&lt;/li&gt;
&lt;li class=&quot;li7&quot;&gt;Does mongos support :read_secondary internal?&lt;/li&gt;
&lt;li class=&quot;li7&quot;&gt;How much volumes does the monitor system support in design? We need to estimate the data growth speed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Odds&lt;/strong&gt;&lt;/h2&gt;
&lt;p class=&quot;p2&quot;&gt;In sharding environment, we can not use group query, use map/reduce to substitute.&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;All index must be ascending, can not be descending.&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;Once you do shard on a collection, it is very difficult to un-shard it (you still can, but tough).&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;h2&gt;&lt;strong&gt;Scripts and Step-by-step&lt;/strong&gt;&lt;/h2&gt;
&lt;p class=&quot;p4&quot;&gt;I have write a script for staring mongodb sharding environment easily, put this script to your ~/.profile,&#160;&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
mongod_sharding_restart() {
  killall mongod
  killall mongos
  sleep 2

  [ ! -d /data/configdb ] &amp;&amp; mkdir -p /data/configdb
  [ ! -d /data/db ] &amp;&amp; mkdir -p /data/db
  [ ! -d /data/shard2_db ] &amp;&amp; mkdir -p /data/shard2_db
  rm -f /data/configdb/mongod.lock
  rm -f /data/db/mongod.lock
  rm -f /data/shard2_db/mongod.lock
  #config server
  mongod --fork --logpath /data/shard_config.log --logappend --configsvr &amp;
  #wait for config server
  sleep 3

  #mongos
  mongos --fork --logpath /data/shard_mongos.log --logappend --configdb localhost:27019 &amp;

  #shard1 (mongod)
  mongod --fork --logpath /data/shard_shard1.log --logappend --shardsvr &amp;
  #shard2 (mongod)
  mkdir -p /data/shard2_db
  mongod --fork --logpath /data/shard_shard2.log --logappend --shardsvr --port 37018 --dbpath /data/shard2_db &amp;

  sleep 2
  ps aux | egrep &quot;mongod|mongos&quot;
}
export -f mongod_sharding_restart
&lt;/pre&gt;
&lt;p class=&quot;p4&quot;&gt;and then:&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;#source ~/.profile&lt;/p&gt;
&lt;p class=&quot;p8&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;Then you can start mongos, config server, and two shards using one command:&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;#mongod_sharding_restart&#160;&lt;/p&gt;
&lt;p class=&quot;p8&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p8&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;2.&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;Connect to mongos:&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;#mongo&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.printShardingStatus();&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.runCommand({addShard: &quot;&lt;a href=&quot;http://localhost:27018/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;localhost:27018&lt;/span&gt;&lt;/a&gt;&quot;});&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.runCommand({addShard: &quot;&lt;a href=&quot;http://localhost:37018/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;localhost:37018&lt;/span&gt;&lt;/a&gt;&quot;});&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.printShardingStatus();&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;...&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;shards:&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;&#160;&#160;&#160; { &quot;_id&quot; : &quot;shard0000&quot;, &quot;host&quot; : &quot;&lt;a href=&quot;http://localhost:27018/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;localhost:27018&lt;/span&gt;&lt;/a&gt;&quot; }&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;&#160;&#160;&#160; { &quot;_id&quot; : &quot;shard0001&quot;, &quot;host&quot; : &quot;&lt;a href=&quot;http://localhost:37018/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;localhost:37018&lt;/span&gt;&lt;/a&gt;&quot; }&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;...&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&#160;&#160;...&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.runCommand({enableSharding: &quot;testdb&quot;});&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.runCommand({shardCollection: &quot;testdb.collection&quot;, key: {_id: 1}})&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.printShardingStatus();&lt;/p&gt;
&lt;p class=&quot;p8&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;You can check the mongos and shard logs to see the status.&lt;/p&gt;
&lt;p class=&quot;p8&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;use testdb;&lt;/p&gt;
&lt;p class=&quot;p4&quot;&gt;&gt;db.printCollectionStats();&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#160;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&lt;strong&gt;&lt;br /&gt; &lt;/strong&gt;&#65279;&lt;/p&gt;
&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Thu, 23 Feb 2012 20:19:01 -0700</pubDate>
      <link>http://www.ccok.me/page/read/231</link>
      <guid>http://www.ccok.me/page/read/231</guid>
    </item>
    <item>
      <title>Tri-survive - HTML5 Game</title>
      <description>&lt;p&gt;&#20854;&#23454;&#36825;&#20010;&#28216;&#25103;&#26089;&#22312;2011&#24180;7&#26376;&#20221;&#65292;&#23601;&#26159;shitou&#22312;&#30740;&#31350;impactjs&#30340;&#26102;&#20505;&#20570;&#30340;&#65292;&#30001;&#20110;&#21518;&#26469;&#19968;&#30452;&#24456;&#24537;&#65292;&#21152;&#19978;&#24403;&#26102;&#20570;&#30340;&#36824;&#19981;&#23436;&#21892;&#65292;&#38382;&#39064;&#22810;&#22810;&#65292;&#23601;&#19968;&#30452;&#27809;&#26377;&#22312;&#36825;&#37324;&#20844;&#24320;&#20986;&#26469;&#65292;&#29616;&#22312;&#23601;&#25918;&#20986;&#26469;&#32473;&#23545;impactjs&#24863;&#20852;&#36259;&#30340;&#21516;&#23398;&#21442;&#32771;&#19979;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/83/medium/logo.png&quot; alt=&quot;http://www.ccok.me/photo/image/83/medium/logo.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#28216;&#25103;&#21517;&#31216;, &lt;a title=&quot;tri-survive&quot; href=&quot;http://g.ccok.me/galaxywar/&quot;&gt;Tri-survive&lt;/a&gt;,&amp;nbsp;&#28216;&#25103;&#20351;&#29992;&lt;a title=&quot;impactjs engine&quot; href=&quot;http://impactjs.com&quot;&gt;impactjs&lt;/a&gt;&#24341;&#25806;&#24320;&#21457;&#65292;&#28216;&#25103;&#20013;&#22270;&#29255;&#32032;&#26448;&#26159;shitou&#33258;&#24049;PS&#30340;, &#20063;&#26377;&#19968;&#37096;&#20998;&#26159;&#20174;&#20854;&#20182;&#28216;&#25103;&#20013;&#25187;&#36807;&#26469;&#20102;, &#38899;&#25928;&#26469;&#33258;&#20110;&lt;a href=&quot;http://www.partnersinrhyme.com/pir/PIRsfx.shtml&quot;&gt;http://www.partnersinrhyme.com/pir/PIRsfx.shtml&lt;/a&gt;&#21644;&lt;a href=&quot;http://opengameart.org/&quot;&gt;http://opengameart.org/&lt;/a&gt;, &#19978;&#38754;&#20004;&#20010;&#32593;&#31449;&#30340;&#36164;&#28304;&#37117;&#26159;&#24320;&#28304;&#30340;, &#23545;&#31243;&#24207;&#21592;&#26469;&#35828;&#26159;&#20877;&#22909;&#19981;&#36807;&#30340;&#36164;&#28304;&#20102;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#36824;&#26377;&#24456;&#22810;&#19981;&#23436;&#21892;&#30340;&#22320;&#26041;&#65292;&#21322;&#25104;&#21697;&#37117;&#31639;&#19981;&#19978;&#65292;&#28857;&#20987;&#28216;&#25103;&#21491;&#19978;&#30340;HELP&#25353;&#38062;&#26597;&#30475;&#25805;&#20316;&#24110;&#21161;&#21543;,&amp;nbsp;&lt;a title=&quot;tri-survive&quot; href=&quot;http://g.ccok.me/galaxywar/&quot;&gt;Tri-survive&lt;/a&gt;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Mon, 16 Jan 2012 23:21:15 -0700</pubDate>
      <link>http://www.ccok.me/page/read/230</link>
      <guid>http://www.ccok.me/page/read/230</guid>
    </item>
    <item>
      <title>Cut the rope - HTML5&#29256;</title>
      <description>&lt;p&gt;&#24494;&#36719;&#26368;&#36817;&#21448;&#26377;&#26032;&#21160;&#20316;&#20102;&#65292;&#21644;cut the rope&#21512;&#20316;&#25512;&#20986;&#20102;&#28216;&#25103;&#30340;&lt;a href=&quot;http://www.cuttherope.ie/&quot;&gt;HTML5&#29256;&lt;/a&gt;&#65292;&#32780;&#19988;&#24320;&#21457;&#22242;&#38431;&#20063;&#32473;&#20986;&#20102;&lt;a href=&quot;http://www.cuttherope.ie/dev/&quot;&gt;&#24320;&#21457;&#26085;&#24535;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://www.blogcdn.com/www.engadget.com/media/2012/01/cut-the-rope.jpg&quot; alt=&quot;cut the rope&quot; width=&quot;500&quot; height=&quot;328&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Sun, 15 Jan 2012 23:50:08 -0700</pubDate>
      <link>http://www.ccok.me/page/read/229</link>
      <guid>http://www.ccok.me/page/read/229</guid>
    </item>
    <item>
      <title>json_formatter</title>
      <description>     &#26368;&#36817;&#19968;&#30452;&#22312;&#29992;&lt;a href=&quot;http://www.sinatrarb.com&quot;&gt;sinatra&lt;/a&gt;&#20570;API, &lt;a href=&quot;http://hueniverse.com/2010/05/introducing-oauth-2-0&quot;&gt;OAuth2&lt;/a&gt;&#30340;&#19996;&#35199;, &#35843;&#35797;&#29992;&#30340;curl, &#25968;&#25454;&#30340;&#36820;&#22238;&#26684;&#24335;&#26159;json, &#40664;&#35748;&#24773;&#20917;&#19979;&#19968;&#23545;&#19968;&#23545;&#23383;&#31526;&#20018;&#26159;&#30452;&#25509;&#22312;console&#36755;&#20986;&#20986;&#26469;&#30340;&#65292;&#19981;&#26041;&#20415;&#26597;&#30475;&#65292;&#20687;&#36825;&#26679;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
{&quot;accounts&quot;:[{&quot;name&quot;:null,&quot;id&quot;:&quot;4ea060742c76682ab800a807&quot;,&quot;api_url&quot;:&quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea060742c76682ab800a807&quot;,&quot;email&quot;:&quot;skidave32289@gmail.com&quot;},{&quot;name&quot;:null,&quot;id&quot;:&quot;4ea06b5e2c76682aa6002ac5&quot;,&quot;api_url&quot;:&quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea06b5e2c76682aa6002ac5&quot;,&quot;email&quot;:&quot;skidave32289+20@gmail.com&quot;},{&quot;name&quot;:null,&quot;id&quot;:&quot;4ea071862c766848c3000055&quot;,&quot;api_url&quot;:&quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea071862c766848c3000055&quot;,&quot;email&quot;:&quot;skidave32289+21@gmail.com&quot;},{&quot;name&quot;:null,&quot;id&quot;:&quot;4ea075e02c766848c8000ae5&quot;,&quot;api_url&quot;:&quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea075e02c766848c8000ae5&quot;,&quot;email&quot;:&quot;skidave32289+22@gmail.com&quot;}]}
&lt;/pre&gt;
&#20170;&#22825;&#22312;&lt;a href=&quot;http://www.rubyflow.com&quot;&gt;rubyflow&lt;/a&gt;&#19978;&#30475;&#21040;&#19968;&#20010;&#19981;&#38169;&#30340;&#24037;&#20855;gem: &lt;a href=&quot;https://github.com/oscardelben/json_formatter&quot;&gt;json_formatter&lt;/a&gt;, &#30452;&#25509;gem install&#21518;&#65292;&#23601;&#21487;&#20197;&#22312;&#21629;&#20196;&#34892;&#29992;&#20102;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
#curl -H 'EXAMPLE-API-KEY: b60b5400dd6f012eg16c12313b0ecdxc2' &quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts?per_page=100&quot; | json_formatter 
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  5812  100  5812    0     0   3358      0  0:00:01  0:00:01 --:--:-- 11049
{
  &quot;accounts&quot;: [
    {
      &quot;name&quot;: null,
      &quot;id&quot;: &quot;4ea060742c76682ab800a807&quot;,
      &quot;email&quot;: &quot;skidave32289@gmail.com&quot;,
      &quot;api_url&quot;: &quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea060742c76682ab800a807&quot;
    },
    {
      &quot;name&quot;: null,
      &quot;id&quot;: &quot;4ea06b5e2c76682aa6002ac5&quot;,
      &quot;email&quot;: &quot;skidave32289+20@gmail.com&quot;,
      &quot;api_url&quot;: &quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea06b5e2c76682aa6002ac5&quot;
    },
    {
      &quot;name&quot;: null,
      &quot;id&quot;: &quot;4ea071862c766848c3000055&quot;,
      &quot;email&quot;: &quot;skidave32289+21@gmail.com&quot;,
      &quot;api_url&quot;: &quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts/4ea071862c766848c3000055&quot;
    }
  ]
}

#&#20063;&#21487;&#20197;&#30452;&#25509;&#36755;&#20837;&#23383;&#31526;&#20018;
#json_formatter &quot;{}&quot;
&lt;/pre&gt;
&lt;br /&gt;
ps: &#20851;&#20110;curl&lt;br/&gt;
&#19978;&#38754;&#25552;&#21040;&#20102;curl&#65292;&#23601;&#20877;&#22810;&#35828;&#19968;&#28857;&#21543;&#65292;&#22312;&#29992;curl&#36827;&#34892;POST&#35831;&#27714;&#28155;&#21152;&#25968;&#25454;&#26102;&#38656;&#35201;&#27880;&#24847;, &#20351;&#29992; -d &quot;name=value&quot; &#30340;&#26041;&#27861;&#26159;&#19981;&#20250;&#33258;&#21160;&#32473;value&#36827;&#34892;&#32534;&#30721;(url escape)&#30340;, &#22914;&#26524;&#24819;&#35753;curl&#32473;&#25968;&#25454;&#36827;&#34892;escape&#38656;&#35201;&#20351;&#29992; --data-urlencode &#36873;&#39033;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
#curl -d &quot;site=www.ccok.me&quot; --data-urlencode &quot;email=li+lei.hand-some2@yottaa.com&quot; -H 'EXAMPLE-API-KEY: b60b5400dd6f012ec57c123112b0ecda2' &quot;https://api-dev.example.com/partners/4ea05b812c76682ab800a0b0/accounts&quot;
&lt;/pre&gt;
</description>
      <author>shitou</author>
      <pubDate>Fri, 16 Dec 2011 01:30:23 -0700</pubDate>
      <link>http://www.ccok.me/page/read/228</link>
      <guid>http://www.ccok.me/page/read/228</guid>
    </item>
    <item>
      <title>Google Analytics&#26356;&#26032;&#20102;</title>
      <description>&lt;p&gt;&#21448;&#24555;&#21322;&#24180;&#27809;&#26356;&#26032;&#20102;.., &#20026;&#20102;&#35777;&#26126;shitou's blog&#20173;&#28982;&#27963;&#30528;, &#20945;&#28857;&#23383;&#25968;&#21543;..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#26368;&#36817;Google&#30340;&#27963;&#21160;&#21448;&#22810;&#20102;&#36215;&#26469;, &#25910;&#36141;Moto&#30340;&#25163;&#26426;&#19994;&#21153;, Android 4.0&#30340;&#21457;&#24067;, Google Music, &#26032;&#30340;UI&#39029;&#38754;..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#20170;&#22825;&#25910;&#21040;&#23553;Google Analytics&#30340;&#37038;&#20214;, &#35828;&#26377;&#26356;&#26032;&#20102;, &#20027;&#35201;&#26377;:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#23454;&#26102;&#30340;&#25968;&#25454;&#26356;&#26032;&lt;/strong&gt;. &#29616;&#22312;&#21487;&#20197;&#30475;&#21040;&#20960;&#31186;&#20043;&#21069;&#29992;&#25143;&#27963;&#21160;&#20449;&#24687;&#20102;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://lh6.googleusercontent.com/j8b2SjINJz317JMZr_w84UoG-oXHyATvvanYxJi398M--Iq2P57AQ1dKTXAiQdIDmSJanIVg6Uk2lvziyEbPMqS89rTay7FDld4ELGURjLHPmQStuYg&quot; alt=&quot;Google Realtime&quot; width=&quot;500&quot; height=&quot;195&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multi-Channel Funnels&lt;/strong&gt;, &#36825;&#20010;&#26159;&#38024;&#23545;&#30005;&#23376;&#21830;&#21153;&#32593;&#31449;, &#25552;&#20379;&#21508;&#31181;&#29992;&#25143;&#26469;&#28304;&#30340;&#36716;&#21270;&#29575;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://lh4.googleusercontent.com/BwC9Mp8xt4uKkdpqpzPK7pYcH0oB6BnD89qFmQKeqj0VfL7n6edVhy2v6EUoq1CEpN1YefdrHzRTHvDfbJhrIvhGddb8T5Zf2ynoJfqEzMKWSOXgVVM&quot; alt=&quot;Google Multi-Channel Funnels&quot; width=&quot;500&quot; height=&quot;270&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mobile Reporting&lt;/strong&gt;, &#31227;&#21160;&#31471;&#25968;&#25454;&#32479;&#35745;&#30340;&#21152;&#24378;, &#20043;&#21069;GA&#24050;&#32463;&#25903;&#25345;&#26597;&#30475;&#35775;&#38382;&#26469;&#28304;&#30340;UA(User Agent)&#20102;&#65292;&#19981;&#36807;&#21151;&#33021;&#27604;&#36739;&#31616;&#21333;&#65292;&#36825;&#27425;&#26159;&#22312;&#21407;&#26469;&#22522;&#30784;&#19978;&#30340;&#21152;&#24378;&#65292;&#25903;&#25345;&#30452;&#25509;&#26597;&#30475;&#35775;&#38382;&#29992;&#25143;&#30340;&#25163;&#26426;&#22411;&#21495;, &#36824;&#26377;&#25163;&#26426;&#22270;&#29255;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://lh5.googleusercontent.com/PYE6uwIIygqTmXoodYfH9UgbGC1D9Bu4huAQbMwTrMuUr3dZ_QS4FYGqx7w9EjJfpKMnC62G32P_oi-VUK9MAHw5s5b1X4ndRUMCRG2QhOhhwjPodWg&quot; alt=&quot;Google Mobile Reporting&quot; width=&quot;500&quot; height=&quot;376&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Flow Visualization&lt;/strong&gt;, &#36825;&#20010;&#21151;&#33021;&#20063;&#26159;&#20043;&#21069;&#21151;&#33021;&#30340;&#21152;&#24378;&#65292;&#20197;&#26356;&#30452;&#35266;&#30340;&#26354;&#32447;&#22270;&#26597;&#30475;&#29992;&#25143;&#30340;&#35775;&#38382;&#25968;&#25454;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://lh6.googleusercontent.com/dIO0TH-2Ae5N8GOoEHXWOdLF1kkjboN9nLWxHcv6smsq5M-n34iKA5wEF-ptH-8XPSsKnSxTTydMCE6YnhkaxjnNB7aIqswtX-4LT-OAJfNT0QKeooM&quot; alt=&quot;Google Flow Visualization&quot; width=&quot;500&quot; height=&quot;313&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#19978;&#38754;&#30340;&#22270;&#21487;&#33021;&#20250;&#34987;q-i-a-n-g&#25481;, uncle fu****&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Mon, 21 Nov 2011 19:39:32 -0700</pubDate>
      <link>http://www.ccok.me/page/read/227</link>
      <guid>http://www.ccok.me/page/read/227</guid>
    </item>
    <item>
      <title>Google HTML5 web font</title>
      <description>&lt;p&gt;&lt;img src=&quot;http://www.google.com/images/logos/font_directory_logo_beta.gif&quot; alt=&quot;Goole HTML5 Web Font&quot; width=&quot;222&quot; height=&quot;40&quot; /&gt;&lt;/p&gt;
&lt;p&gt;HTML5&#25903;&#25345;&#33258;&#23450;&#20041;&#23383;&#20307;&#65292;&lt;a href=&quot;http://www.google.com/webfonts&quot;&gt;Google&lt;/a&gt;&#19987;&#38376;&#24320;&#35774;&#20102;&#19968;&#20010;&#26381;&#21153;&#24320;&#21457;&#32773;&#21487;&#20197;&#19978;&#20256;&#21644;&#20849;&#20139;&#33258;&#24049;&#30340;&#23383;&#20307;&#65292;&#20351;&#29992;&#26041;&#27861;&#24456;&#31616;&#21333;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1) &#26597;&#30475;&#23383;&#20307;&#21015;&#34920;&#65292;&#36873;&#25321;&#20320;&#35201;&#20351;&#29992;&#30340;&#23383;&#20307;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2) &#28982;&#21518;&#22312;header&#20013;&#21152;&#20837;CSS&#35843;&#29992;&#65292;&#27604;&#22914;:&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;link href='http://fonts.googleapis.com/css?family=Ubuntu' rel='stylesheet' type='text/css'&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3) &#26368;&#21518;&#23601;&#26159;&#20351;&#29992;&#20102;:&lt;/p&gt;
&lt;p&gt;h1 {font-family: Ubuntu}&lt;/p&gt;
&lt;p&gt;&#25110;&#32773;&#22312;&lt;strong&gt;Canvas&lt;/strong&gt;&#20013;&#20351;&#29992;&lt;/p&gt;
&lt;p&gt;var context = document.getElementById(&quot;canvas&quot;).getContext(&quot;2d&quot;);&lt;/p&gt;
&lt;p&gt;context.font = &quot;bold 12px Ubuntu&quot;;&lt;/p&gt;
&lt;p&gt;context.fillText(&quot;Hello World&quot;, 20, 20)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Thu, 26 May 2011 21:07:22 -0600</pubDate>
      <link>http://www.ccok.me/page/read/226</link>
      <guid>http://www.ccok.me/page/read/226</guid>
    </item>
    <item>
      <title>HTML5 &amp; Impactjs</title>
      <description>&lt;p&gt;&lt;a href=&quot;http://www.w3.org/html/logo/&quot;&gt; &lt;img title=&quot;HTML5 Powered with Connectivity / Realtime, CSS3 / Styling, Device Access, Graphics, 3D &amp;amp; Effects, Multimedia, Performance &amp;amp; Integration, Semantics, and Offline &amp;amp; Storage&quot; src=&quot;http://www.w3.org/html/logo/badge/html5-badge-h-connectivity-css3-device-graphics-multimedia-performance-semantics-storage.png&quot; alt=&quot;HTML5 Powered with Connectivity / Realtime, CSS3 / Styling, Device Access, Graphics, 3D &amp;amp; Effects, Multimedia, Performance &amp;amp; Integration, Semantics, and Offline &amp;amp; Storage&quot; width=&quot;357&quot; height=&quot;64&quot; /&gt; &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&#26368;&#36817;&#19968;&#30452;&#22312;&#30475;HTML5&#28216;&#25103;&#24320;&#21457;&#36825;&#26041;&#38754;&#30340;&#19996;&#35199;&#65292;&#20174;&#23567;&#23398;FC&#19978;&#30340;&#36229;&#32423;&#29595;&#20029; &#65292;&#39746;&#26007;&#32599;&#19968;&#30452;&#21040;&#29616;&#22312;&#30340;&#20840;&#26426;&#31181;&#21046;&#38712;(&#36825;&#32477;&#23545;&#19981;&#26159;&#36196;&#26524;&#26524;&#30340;&#28843;&#32768;...)&#65292;shitou&#30340;&#29609;&#40836;&#20063;&#26377;&#24555;15&#24180;&#20102;&#65292;&#34429;&#28982;&#19968;&#30452;&#22312;&#20570;&#31243;&#24207;&#24320;&#21457;&#30340;&#19996;&#35199;&#20294;&#20174;&#26469;&#27809;&#25509;&#35302;&#22810;&#28216;&#25103;&#24320;&#21457;&#36825;&#26041;&#38754;&#30340;&#20869;&#23481;&#65292;&#20010;&#20154;&#20005;&#37325;&#25269;&#35302;flash&#65292;&#34429;&#28982;&#20960;&#24180;&#21069;&#30740;&#31350;&#36807;flex&#65292;&#20294;&#26159;&#36824;&#26159;&#19981;&#24819;&#29992;flex/flash&#26469;&#36215;&#27493;&#20570;&#28216;&#25103;&#65292;&#26368;&#36817;HTML5&#24050;&#32463;&#34987;&lt;a href=&quot;http://www.mhtml5.com/2011/03/860.html&quot;&gt;&#21508;&#22823;&#27983;&#35272;&#22120;&lt;/a&gt;&#21378;&#21830;&#25512;&#21040;&#39118;&#21475;&#28010;&#23574;&#20102;&#65292;&#21508;&#31181;&#25903;&#25345;&#20063;&#36234;&#26469;&#36234;&#23436;&#21892;&#65292;&#23588;&#20854;&#26159;HTML5&#20013;&#30340;Canvas, Audio&#26631;&#31614;&#23545;&#28216;&#25103;&#24320;&#21457;&#37117;&#26159;&#24456;&#33267;&#20851;&#37325;&#35201;&#30340;&#65292;&#22312;&#27809;&#26377;HTML5&#20043;&#21069;&#65292;web game&#37117;&#26159;javascript&#21644;flash&#26469;&#23454;&#29616;&#30340;&#65292;&#29616;&#22312;&#26377;&#20102;&#26032;&#36873;&#25321;&#12290;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#21152;&#20043;iOS&#23545;flash&#30340;&#23553;&#26432;&#65292;&#25152;&#26377;&#22522;&#20110;flash&#30340;web game&#37117;&#26159;&#34987;&#24754;&#21095;&#20102;&#65292;&#32780;&#21508;&#22823;&#21378;&#21830;(&#21253;&#25324;&#31227;&#21160;&#27983;&#35272;&#22120;)&#37117;&#21147;&#25402;HTML5&#65292;&#36825;&#26679;&#29992;HTML5&#24320;&#21457;&#30340;&#28216;&#25103;&#32463;&#36807;&#31616;&#21333;&#30340;&#20462;&#25913;(&#22522;&#26412;&#19978;&#26159;&#29992;&#25143;&#25511;&#21046;&#26041;&#38754;&#30340;&#65292;&#27604;&#22914;&#40736;&#26631;&#30340;&#28857;&#20987;&#65292;&#23631;&#24149;&#35302;&#25720;&#31561;&#25805;&#20316;)&#23601;&#21487;&#20197;&#36816;&#34892;&#22312;&#31227;&#21160;&#24179;&#21488;&#20102;&#12290;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#20851;&#20110;&#28216;&#25103;&#24341;&#25806;/&#24320;&#21457;&#24211;&lt;/p&gt;
&lt;p&gt;&#30446;&#21069;&#26377;&#24456;&#22810;&#22522;&#20110;JS+Canvas&#30340;&lt;a href=&quot;https://gist.github.com/768272&quot;&gt;&#28216;&#25103;&#24320;&#21457;&#24211;&lt;/a&gt;&#65292;&#22823;&#37096;&#20998;&#37117;&#26159;&#24320;&#28304;&#30340;&#65292;&#19981;&#36807;&#21151;&#33021;&#37117;&#19981;&#26159;&#24456;&#23436;&#21892;&#65292;&#20063;&#26377;&#21830;&#19994;&#30340;&#65292;&#27604;&#22914;&lt;a href=&quot;http://impactjs.com&quot;&gt;Impactjs&lt;/a&gt;&#65292;shitou&#30446;&#21069;&#23601;&#26159;&#29992;&#30340;&#36825;&#20010;&#24341;&#25806;&#65292;&#29256;&#26435;&#36153;&#29992;&#26159;99&#20992;&#65292;&#22312;&#30740;&#31350;&#20102;&#36817;&#20004;&#20010;&#26143;&#26399;&#21518;&#65292;&#31616;&#21333;&#24635;&#32467;&#20102;&#36825;&#20010;&#24341;&#25806;&#30340;&#19968;&#20123;&#29305;&#28857;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;padding-left: 12px;&quot;&gt;
&lt;li&gt;&#22320;&#22270;&#23436;&#20840;&#26159;&#22522;&#20110;tile-based&lt;/li&gt;
&lt;li&gt;&#38750;&#24120;&#36866;&#21512;&#24320;&#21457;&#27178;&#29256;&#28378;&#21160;&#21367;&#36724;&#31867;&#30340;&#28216;&#25103;&#65292;&#20687;&#21476;&#33891;&#32423;&#30340;&#36229;&#32423;&#29595;&#20029;&#65292;&#39746;&#26007;&#32599;&#65292;&#26368;&#36817;XBLA&#19978;&#30340;Limbo(&#22320;&#22495;&#36793;&#32536;)&#65292;Super Meat Boy(&#36229;&#32423;&#32905;&#32905;&#21733;)&#36825;&#31867;&#28216;&#25103;; &#22402;&#30452;&#35270;&#35282;&#30340;RPG&#25110;&#32773;SLG&#25112;&#26827;&#31867;&#28216;&#25103;&#65292;&#20687;&#22622;&#23572;&#36798;&#20256;&#35828;&#65292;&#26089;&#26399;&#29256;&#26412;&#30340;&#26368;&#32456;&#24187;&#24819;3/4(&#19981;&#26159;NDS&#19978;&#30340;3D&#22919;&#31185;&#29256;...)&#65292;GBA&#19978;&#30340;&#28779;&#28976;&#25991;&#31456;; &#36824;&#26377;&#27178;&#29256;(&#25110;&#31446;&#29256;)&#23556;&#20987;&#31867;&#28216;&#25103;&#20063;&#21487;&#20197;&lt;/li&gt;
&lt;li&gt;&#23545;collision detect, tile-based map, sound, music, image animation, mobile support, input, timer&#37117;&#26377;&#19981;&#38169;&#30340;&#25903;&#25345;&#65292;&#30446;&#21069;&#29256;&#26412;&#19981;&#25903;&#25345;isometric&#31867;&#22411;&#30340;&#22320;&#22270;&#65292;&#36824;&#26377;&#27809;&#26377;path finding&lt;/li&gt;
&lt;li&gt;&#24050;&#32463;&#25972;&#21512;&#20102;Box2djs&lt;/li&gt;
&lt;li&gt;&#24341;&#25806;&#20013;&#26377;&#19968;&#20010;&#33258;&#24102;&#30340;&#22320;&#22270;&#32534;&#36753;&#22120;weltmeister&#65292;&#21151;&#33021;&#38750;&#24120;&#24378;&#22823;&#65292;&#36866;&#21512;&#29992;&#26469;&#32534;&#36753;&#20851;&#21345;&lt;/li&gt;
&lt;li&gt;&#23448;&#26041;&#25991;&#26723;&#38750;&#24120;&#23436;&#21892;&#65307;&#23448;&#26041;&#35770;&#22363;&#20063;&#27604;&#36739;&#27963;&#36291;&#65292;&#32780;&#19988;&#26377;&#24456;&#22810;&#31532;&#19977;&#26041;&#25554;&#20214;&#21487;&#20197;&#20351;&#29992;&lt;/li&gt;
&lt;li&gt;&#36890;&#36807;&lt;a href=&quot;http://www.phonegap.com/&quot;&gt;Phonegap&lt;/a&gt;&#21487;&#20197;&#30452;&#25509;&#23558;&#33258;&#24049;&#30340;&#28216;&#25103;&#25171;&#21253;&#25104;iOS, Android, WP&#31561;&#19978;&#30340;&#26412;&#22320;app&#24212;&#29992;&lt;/li&gt;
&lt;li&gt;&#23545;&#28216;&#25103;&#20803;&#32032;&#30340;&#40736;&#26631;&#28857;&#20987;&#20107;&#20214;&#25903;&#25345;&#30340;&#19981;&#22909;&#65292;&#38656;&#35201;&#36890;&#36807;hack&#30340;&#26041;&#27861;&#25165;&#33021;&#23454;&#29616;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#24635;&#20307;&#19978;impactjs&#30340;&#21151;&#33021;&#36824;&#26159;&#24456;&#19981;&#38169;&#30340;&#65292;&#23588;&#20854;&#23545;&#20110;&#21018;&#25509;&#35302;&#28216;&#25103;&#24320;&#21457;&#30340;&#26379;&#21451;&#26469;&#35828;&#65292;&#32780;&#19988;&#25480;&#26435;&#20215;&#26684;&#20063;&#36824;&#21487;&#20197;&#25509;&#21463;&#65292;&#24863;&#20852;&#36259;&#30340;&#21516;&#23398;&#21487;&#20197;&#20080;&#19968;&#20010;license&#30740;&#31350;&#30740;&#31350;&#65292;&#20063;&#21487;&#20197;&#21644;shitou&#32852;&#31995;&#19968;&#36215;&#30740;&#31350;&#12290;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ps: &#27426;&#36814;&#21508;&#20301;&#21516;&#23398;&#26469;&#20449;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;&#24615;&lt;/span&gt;&#39578;&#25200;&#65292;mytake6ATgmailDOTcom&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Sun, 22 May 2011 21:18:12 -0600</pubDate>
      <link>http://www.ccok.me/page/read/225</link>
      <guid>http://www.ccok.me/page/read/225</guid>
    </item>
    <item>
      <title>How to fix any computer</title>
      <description>&lt;p&gt;&lt;img src=&quot;../../photo/image/82/job-fails-so-true-it-hurts.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/82/job-fails-so-true-it-hurts.jpg&quot; /&gt;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Sun, 24 Apr 2011 20:08:57 -0600</pubDate>
      <link>http://www.ccok.me/page/read/224</link>
      <guid>http://www.ccok.me/page/read/224</guid>
    </item>
    <item>
      <title>&#22312;gen_server&#20013;spawn&#26032;&#30340;&#36827;&#31243;</title>
      <description>   &#26368;&#36817;Joe&#22312;erlang mail lists&#20013;&#39057;&#32321;&#29616;&#36523;&#65292;&#20272;&#35745;&#26159;&#22240;&#20026;&#35768;&#22810;&#20154;&#23545;gen_server&#30340;&#20351;&#29992;&#26377;&#24456;&#22810;&#35823;&#35299;&#65292;&#24525;&#19981;&#20303;&#20986;&#26469;&#35299;&#25937;&#20247;&#29983;&#30340;...&lt;br /&gt;&lt;br/&gt;
&#20854;&#20013;Joe&#19987;&#38376;&#35299;&#37322;&#20102;&#24590;&#26679;&#22312;gen_server&#20013;&#31649;&#29702;&#26032;&#30340;&#36827;&#31243;&#30340;&#38382;&#39064;

&#20195;&#30721;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter:nocontrols&quot;&gt;
foo(X) -&gt;
    gen_server:call(?Mod, {foo, X}).


%% Write a gen_server handle call method like this:

handle_call({foo, X}, From, State) -&gt;
    State1 = func1(X, State),
    State2 = func2(X, State),
    spawn_link(fun() -&gt; do_something(State1, X, From) end),
    {noreply, State2}.

do_something(State, X, From) -&gt;
    Reply = func3(X, State),
    gen_server:reply(From, Reply).
&lt;/pre&gt;
&#19978;&#38754;&#30340;do_something&#21487;&#33021;&#26159;&#19968;&#20010;time-cost&#20219;&#21153;&#65292;&#20026;&#20102;&#19981;&#38459;&#22622;&#24403;&#21069;&#30340;gen_server&#36827;&#31243;&#65292;&#21487;&#20197;spawn&#19968;&#20010;&#26032;&#30340;&#36827;&#31243;&#26469;&#19987;&#38376;&#22788;&#29702;&#65292;do_something&#21644;&#24403;&#21069;gen_server&#36827;&#31243;&#20250;&#24182;&#34892;&#36816;&#34892;&#65292;gen_server&#20250;&#20197;State2&#32487;&#32493;&#36816;&#34892;&#65292;&#24182;&#19988;&#19981;&#20250;&#32473;client&#36820;&#22238;&#20219;&#20309;&#28040;&#24687;&#65292;client&#19968;&#30452;&#22788;&#20110;&#31561;&#24453;&#29366;&#24577;(&#22240;&#20026;&#36825;&#37324;&#26159;gen_server:call), do_something&#22312;&#22788;&#29702;&#23436;&#27605;&#21518;&#20250;&#36127;&#36131;&#32473;client&#31572;&#22797;(gen_server:reply) &lt;br /&gt;&lt;br/&gt;</description>
      <author>shitou</author>
      <pubDate>Wed, 20 Apr 2011 03:58:18 -0600</pubDate>
      <link>http://www.ccok.me/page/read/223</link>
      <guid>http://www.ccok.me/page/read/223</guid>
    </item>
    <item>
      <title>&#35895;&#27468;&#31359;&#36234;&#25628;&#32034;...</title>
      <description>&lt;p&gt;&lt;img src=&quot;http://www.google.com/intl/zh-CN/landing/teleport/images/teleport_logo_beta.gif&quot; alt=&quot;Google teleport&quot; width=&quot;189&quot; height=&quot;40&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#26159;&#30340;&#65292;&#35895;&#27468;&#31359;&#36234;&#25628;&#32034;&#65292;&#35895;&#27468;&#24635;&#26159;&#21644;&#25105;&#20204;&#36825;&#20123;&#33609;&#26681;&#32593;&#27665;&#36208;&#30340;&#36825;&#20040;&#36817;&#65292;&#20854;&#23454;&#36825;&#20010;&#25628;&#32034;&#26152;&#22825;&#23601;&#20986;&#26469;&#20102;&#30340;&#35828;&#65292;&#21733;&#22826;&#24537;&#20102;&#23601;&#24573;&#35270;&#20102;&#65292;&#20170;&#22825;&#21448;&#30475;&#20102;&#30475;&#65292;&#21457;&#29616;&#21733;&#26152;&#22825;&#38169;&#20102;&#65292;&#26152;&#22825;&#23601;&#24212;&#35813;&#31359;&#36234;&#30340;&#65292;&#21733;&#19968;&#30452;&#37117;&#22312;&#26399;&#26395;&#31359;&#36234;&#21834;&#28151;&#34507;&#65292;&#25105;&#20204;&#26469;&#31359;&#36234;&#21543;&#65292;&#23545;&#20102;&#65292;&#31359;&#36234;&#21069;&#19981;&#35201;&#24536;&#20102;&#28909;&#36523;&#65292;&#25105;&#20204;&#19968;&#36215;&#26469;&#20570;&quot;&#31359;&#36234;&#20307;&#25805;&quot;:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://g.cn/chuanyue&quot;&gt;&#24320;&#22987;&#31359;&#36234;&lt;/a&gt;&#65292;&lt;span&gt;&amp;nbsp;&#24341;&#21147;&#22330;&#25197;&#26354;&#20013;~~&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Fri, 01 Apr 2011 20:12:03 -0600</pubDate>
      <link>http://www.ccok.me/page/read/222</link>
      <guid>http://www.ccok.me/page/read/222</guid>
    </item>
    <item>
      <title>Superfly - Wildflowers</title>
      <description>&lt;p&gt;&#21069;&#27573;&#26102;&#38388;&#22312;&lt;span&gt;&lt;a href=&quot;http://www.kobaioh.com/&quot; target=&quot;_blank&quot;&gt;&#20013;&#22269;&#36141;&#20080;&#29579;&lt;/a&gt;&lt;/span&gt;&#19978;&#35746;&#30340;Superfly&#30340;CD: &lt;span style=&quot;color: #993300;&quot;&gt;Wildflowers&lt;/span&gt;&#32456;&#20110;&#21040;&#36135;&#20102;(&#21152;&#36816;&#36153;&#23567;300RMB&#65292;&#38065;&#21253;&#20320;&#24590;&#20040;&#20102;&#65292;&#38065;&#21253;&#20320;&#37266;&#37266;&#21834;..)&#65292;&#20170;&#24180;&#30127;&#29378;&#36855;&#19978;&#20102;Superfly, &#24863;&#35273;&#22905;&#30340;&#21971;&#38899;&#24456;&#29305;&#21035;&#65292;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#30693;&#36947;&#22905;&#36824;&#26159;&#22240;&#20026;&#21435;&#24180;&#24180;&#24213;&#26102;PSP&#19978;&#30340;&#28216;&#25103;&#23492;&#29983;&#21069;&#22812;&amp;lt;&#31532;&#19977;&#27425;&#29983;&#26085;&amp;gt;&#30340;&#20027;&#39064;&#26354;Eyes on me(&#27809;&#38169;, &#21644;Final Fantasy VIII&#30340;&#20027;&#39064;&#26354;&#21516;&#21517;&#65292;&#37027;&#39318;&#26159;&#30001;&#29579;&#33778;&#21809;&#30340;)&#23601;&#26159;&#22905;&#21809;&#30340;&#65292;&#24403;&#26102;&#21733;&#30340;&#25269;&#25239;&#21147;&#30636;&#38388;&#38477;&#20026;0, &#22905;&#30340;&#22768;&#38899;&#21021;&#21548;&#32473;&#20154;&#29305;&#21035;&#26377;&#21147;&#21644;&#20805;&#28385;&#30913;&#24615;&#65292;&#28982;&#21518;&#20320;&#21448;&#20250;&#35273;&#24471;&#24456;&#28201;&#26580;....&#20043;&#21069;&#22312;&#32593;&#19978;&#21548;&#20102;&#22905;&#30340;Wildflowers&#19987;&#36753;&#65292;&#38543;&#21518;&#23601;&#35273;&#24471;&#19968;&#23450;&#35201;&#25910;&#34255;&#27491;&#29256;&#65292;&#19979;&#38754;&#26159;&#29992;&#25163;&#26426;&#25293;&#30340;&#21040;&#36135;&#30340;CD:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/78/medium/___1.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/78/medium/___1.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#23553;&#38754;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/79/medium/___2.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/79/medium/___2.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#35753;&#25105;&#23567;&#24515;&#30340;&#25171;&#24320;..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/80/medium/___3.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/80/medium/___3.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#23553;&#24213;&#20869;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/81/medium/___4.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/81/medium/___4.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&#23553;&#24213;&#22806;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Fri, 01 Apr 2011 02:21:19 -0600</pubDate>
      <link>http://www.ccok.me/page/read/221</link>
      <guid>http://www.ccok.me/page/read/221</guid>
    </item>
    <item>
      <title>&#32487;&#32493;&#20984;&#22681; for Mac OS</title>
      <description>             &#20043;&#21069;&#24050;&#32463;&#35828;&#36807;&lt;a href='/page/read/206'&gt;&#24590;&#26679;&#29992;ssh tunnel&#26469;&#20984;&#22681;&lt;/a&gt;&#20102;, shitou&#19968;&#30452;&#29992;&#30340;Mac, &#27599;&#27425;&#37117;&#38656;&#35201;&#20351;&#29992;&#26102;&#25191;&#34892;&#19968;&#27425;ssh&#30340;&#21629;&#20196;&#65292;&#28982;&#21518;&#23601;&#26159;&#36827;System Preferences&#20013;&#24320;&#21551;&#32593;&#32476;&#30340;sock&#20195;&#29702;&#65292;&#19981;&#29992;&#26102;&#36824;&#24471;kill&#25481;ssh tunnel&#30340;&#36827;&#31243;&#65292;&#24863;&#35273;&#36824;&#26159;&#40635;&#28902;&#30340;&#35828;&#65292;&#31243;&#24207;&#21592;&#19981;&#37117;&#26159;&#36234;&#26469;&#36234;&#25042;&#24816;&#30340;&#21527;&#65292;&#25152;&#20197;&#23601;&#20889;&#20102;&#19979;&#38754;&#36825;&#20010;&#25042;&#24816;&#33050;&#26412;&#65292;
&lt;br /&gt;&lt;br /&gt;
&lt;h4&gt;&#29992;&#36825;&#20010;&#33050;&#26412;&#30340;&#21069;&#25552;&#26159;:&lt;/h4&gt;
&lt;b&gt;1) &lt;/b&gt;&#24517;&#39035;&#22312;Mac&#19978;&lt;br /&gt;
&lt;b&gt;2) &lt;/b&gt;&#24517;&#39035;&#20197;sudo&#30340;&#26041;&#24335;&#36816;&#34892;&lt;br /&gt;
&lt;b&gt;3) &lt;/b&gt;&lt;b&gt;&#24517;&#39035;&#20107;&#20808;&#24050;&#32463;&#35774;&#32622;&#22909;socks&#20195;&#29702;&#30340;server ip&#21644;&#31471;&#21475;&#21495;&lt;/b&gt;&#65292;&#22240;&#20026;&#36825;&#20010;&#25042;&#24816;&#33050;&#26412;&#19981;&#20250;&#24110;&#20320;&#22635;&#20195;&#29702;&#30340;ip&#21644;&#31471;&#21475;&#21495;&#65292;&#20320;&#21482;&#38656;&#35201;&#35774;&#32622;&#19968;&#27425;&#23601;&#21487;&#20197;&#20102;&#65292;&#20197;&#21518;&#27704;&#36828;&#19981;&#29992;&#21160;&#20102;&#65292;&#35774;&#32622;socks&#20195;&#29702;&#30340;ip&#21644;&#31471;&#21475;&#30340;&#26041;&#27861;&#26159;&lt;u&gt;System Preferences -&gt; Network -&gt; Advanced... -&gt; Proxies -&gt; SOCKS Proxy&lt;/u&gt;, &#28982;&#21518;&#25226;ip&#21644;&#31471;&#21475;&#28155;&#36827;&#21435;&#23601;&#34892;&#20102;&#65292;&#19979;&#38754;&#33050;&#26412;&#20013;&#20250;&#24320;&#21551;&#20195;&#29702;&#26159;127.0.0.1:8082, &#25105;&#30693;&#36947;&#20320;&#20063;&#25042;&#24471;&#25913;&#20102;&#65292;&#23601;&#25353;&#36825;&#20010;&#22635;&#21543;...&lt;br /&gt;
&lt;b&gt;4) &lt;/b&gt;&#26368;&#21518;&#23601;&#26159;&#20320;&#26368;&#22909;&#35774;&#32622;&#22909;ssh&#20351;&#29992;&#26080;&#23494;&#30721;&#23494;&#38053;&#30331;&#38470;&#65292;&#19981;&#28982;&#27599;&#27425;&#37117;&#35201;&#25970;ssh&#23494;&#30721;&#65292;&#35201;&#25042;&#23601;&#25042;&#26497;&#33268;...&lt;br /&gt;
&lt;br /&gt;
&#22909;&#20102;&#65292;&#25042;&#24816;&#33050;&#26412;&#22312;&#36825;&#37324;:&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
#!/bin/bash

#Parameters
USER=root
HOST=

#Configuration file
#Please check if the file exists
CONFIG_FILE=/Library/Preferences/SystemConfiguration/preferences.plist

SWITCH=0
case $1 in
  0|1)
    SWITCH=$1

    LINE=`grep -n 'SOCKSEnable' $CONFIG_FILE  | cut -d: -f1`
    sudo awk '{if(NR == &quot;'$LINE'&quot; + 1)print &quot;&lt;integer&gt;'$SWITCH'&lt;/integer&gt;&quot;;else print $0}' $CONFIG_FILE &gt; $CONFIG_FILE.tmp
   sudo mv $CONFIG_FILE $CONFIG_FILE.bak
    sudo mv $CONFIG_FILE.tmp $CONFIG_FILE
    echo &quot;Modify configuration file successfully!&quot;

    if [[ $SWITCH == 1 ]]; then
      echo &quot;*************&quot;
      echo &quot;Starting ssh tunnel..&quot;
      ssh -Nf -D 0.0.0.0:8082  $USER@$HOST
      echo &quot;Done!&quot;
      echo &quot;You are outsite the GFW now:-)&quot;
    else
      echo &quot;Stopping ssh tunnel..&quot;
      kill `ps aux | grep &quot;ssh -Nf&quot; | grep -v grep | awk '{print $2}'` &gt; /dev/null
      echo &quot;You are insite the GFW now:-(&quot;
    fi
    ;;
  *)
    echo &quot;need 0|1, exit&quot;
    exit 1
esac
&lt;/pre&gt;

&lt;h4&gt;&#20351;&#29992;&lt;/h4&gt;
&#39318;&#20808;&#20320;&#24471;&#20445;&#23384;&#19979;&#26469;&#65292;&#21152;&#20837;&#33050;&#26412;&#21517;&#23383;&#26159;fuucck_gfw.sh, &#28982;&#21518;&#22635;&#19979;USER&#21644;HOST&#20004;&#20010;&#21464;&#37327;&#65292;&#23601;&#26159;ssh&#30331;&#38470;&#30340;&#29992;&#25143;&#21517;&#21644;&#20027;&#26426;&#65292;&#28982;&#21518;&#23601;&#23436;&#20102;.&lt;br /&gt;
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
sudo ./fuucck_gfw.sh 1
&lt;/pre&gt;
1&#26159;&#24320;&#21551;&#65292;0&#26159;&#20851;&#38381;&#65292;&#25191;&#34892;&#23436;&#23601;OK&#20102;.&lt;br/&gt;
&lt;br /&gt;
&lt;p&gt;&lt;b&gt;&#26368;&#21518;, &#19978;&#38754;&#30340;&#33050;&#26412;&#36824;&#19981;&#26159;&#26368;&#23436;&#21892;&#30340;, &#21407;&#22240;&#22312;&#20110;, &#27599;&#27425;&#20462;&#25913;&#23436;&#31995;&#32479;&#30340;Network&#37197;&#32622;&#21518;&#20250;&#37325;&#26032;&#36733;&#20837;&#24403;&#21069;&#30340;&#32593;&#32476;&#37197;&#32622;, &#20294;&#26159;shitou&#24590;&#20040;&#25214;&#37117;&#27809;&#25214;&#21040;&#22312;Mac&#20013;&#24590;&#26679;&#29992;&#21629;&#20196;&#26469;reload&#32593;&#32476;&#37197;&#32622;&#30340;, &#25152;&#20197;&#22312;&#20320;&#25191;&#34892;&#23436;&#19978;&#38754;&#30340;&#33050;&#26412;&#21518;, &#36824;&#38656;&#35201;&#22312;System Preferences&#20013;&#25171;&#24320;Proxies, &#28982;&#21518;&#20570;&#19968;&#27425;SOCKS Proxy&#30340;&#37197;&#32622;&#25913;&#21464;, &#23601;&#26159;&#28857;&#20004;&#19979;&#21069;&#38754;&#30340;&#21333;&#36873;&#26694;&#65292;&#28982;&#21518;&#28857;OK, Apply&#23601;&#34892;&#20102;, &#26377;&#30693;&#36947;&#24590;&#20040;&#22312;Mac&#20013;&#36890;&#36807;&#21629;&#20196;&#26469;reload&#32593;&#32476;&#37197;&#32622;&#30340;&#21516;&#23398;&#21487;&#20197;&#21578;&#35785;&#25105;, &#36825;&#26679;&#36825;&#20010;&#33050;&#26412;&#23601;&#23436;&#21892;&#20102;, &#30495;&#27491;&#30340;&#19968;&#38190;&#20984;&#22681;&#20985;&#22681;...&lt;/b&gt;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Thu, 31 Mar 2011 03:47:32 -0600</pubDate>
      <link>http://www.ccok.me/page/read/220</link>
      <guid>http://www.ccok.me/page/read/220</guid>
    </item>
    <item>
      <title>MongoDB Beijing 2011</title>
      <description>&lt;p&gt;MongoDB Beijing 2011&#24050;&#32463;&#32467;&#26463;&#22909;&#20960;&#22825;&#20102;&#65292;&#26368;&#36817;&#19968;&#30452;&#24456;&#24537;&#65292;&#27809;&#26102;&#38388;&#26469;&#35760;&#24405;&#65292;&#20170;&#22825;&#20351;&#21170;&#25380;&#32456;&#20110;&#25380;&#20986;&#20102;&#26102;&#38388;&#65292;&#19979;&#38754;&#31616;&#21333;&#35828;&#19979;&#25972;&#20010;&#36807;&#31243;&#21543;&#12290;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#20250;&#19978;&#29992;&#21516;&#20107;&#30340;iPhone 4&#25293;&#20102;&#20960;&#24352;&#29031;&#29255;&#65292;&#29031;&#29255;&#19981;&#24590;&#20040;&#28165;&#26970;&#65292;&#20027;&#35201;&#20809;&#32447;&#30340;&#21407;&#22240;&#65292;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#19979;&#21320;&#19968;&#28857;&#21322;&#21040;&#20102;&#20250;&#22330;&#65292;&#31614;&#21040;&#65292;&#25343;&#32440;&#21644;&#31508;(&#35753;&#20570;&#31508;&#35760;&#29992;)&#36824;&#26377;&#23459;&#20256;&#23567;&#20876;&#65292;&#23459;&#20256;&#23567;&#20876;&#19978;&#26377;&#19968;&#20123;mongodb&#30340;&#21629;&#20196;&#65292;&#25402;&#19987;&#19994;&#30340;&#65292;&#38376;&#21475;&#22270;&#28789;&#21644;&#21326;&#31456;&#20004;&#20010;&#20986;&#29256;&#31038;&#37117;&#25670;&#20102;&#22363;&#23376;&#65292;&#24517;&#39035;&#37117;&#26159;&#35745;&#31639;&#26426;&#31867;&#30340;&#22270;&#20070;&#20102;&#65292;&#20945;&#21040;&#22270;&#28789;&#30340;&#25674;&#21069;&#30475;&#20102;&#30475;&#65292;&#21457;&#29616;&#20102;Pro HTML5 Programming&#36825;&#26412;&#20070;&#65292;&#27491;&#25171;&#31639;&#25171;&#21360;&#36825;&#26412;&#20070;&#30340;&#33521;&#25991;&#29256;&#21602;&#65292;&#27809;&#24819;&#21040;&#36825;&#37324;&#23621;&#28982;&#36935;&#21040;&#20102;&#65292;&#24403;&#28982;&#26159;&#20013;&#25991;&#29256;&#30340;&#65292;&#27491;&#35201;&#20080;&#65292;&#22270;&#28789;&#35828;&#19981;&#21334;&#65292;&#36825;&#26159;&#24453;&#20250;&#25277;&#22870;&#30340;&#36192;&#21697;&#65292;&#36192;&#21697;!?&#27963;&#20102;25&#24180;&#20174;&#26469;&#21644;&#36192;&#21697;&#27809;&#20160;&#20040;&#20851;&#31995;&#65292;&#22909;&#21543;&#65292;&#22238;&#21435;&#33457;&#38065;&#21040;&#32593;&#19978;&#35746;&#12290;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#36827;&#20250;&#22330;&#21457;&#29616;&#24231;&#20301;&#20960;&#20046;&#24050;&#32463;&#22352;&#28385;&#20102;&#65292;&#31561;&#20102;&#22823;&#27010;10&#20998;&#38047;&#24320;&#22987;&#20102;&#65292;&#20004;&#20010;&#32769;&#22806;&#65292;&#19968;&#20010;&#26159;10gen(MongoDB&#32972;&#21518;&#30340;&#20844;&#21496;)&#20122;&#27954;&#21306;&#30340;&#20135;&#21697;xx, &#21478;&#19968;&#20010;&#35980;&#20284;&#20063;&#26159;&#20135;&#21697;xxx&#65292;&#33521;&#35821;&#27809;&#21548;&#28165;&#26970;&#65292;&lt;/p&gt;
&lt;p class=&quot;p2&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#24320;&#22330;&#20808;&#26159;&#24863;&#35874;CSDN..&#65292;&#38752;&#65292;&#23621;&#28982;&#19981;&#24863;&#35874;CCTV&#65292;&#19981;&#24819;&#22312;&#20013;&#22269;&#28151;&#20102;...&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;../../photo/image/74/medium/IMG_0204.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/74/medium/IMG_0204.jpg&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#19978;&#38754;&#26159;&#21326;&#20029;&#20029;&#30340;&#21514;&#28783;&#65292;&#25105;&#30340;&#30524;&#12290;&#12290;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;../../photo/image/73/medium/IMG_0201.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/73/medium/IMG_0201.jpg&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#20250;&#22330;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#24320;&#22330;&#20027;&#35201;&#30001;&#20004;&#20010;&#32769;&#22806;&#26469;&#20570;PPT&#65292;&#19968;&#20010;&#26159;&#35828;&#20160;&#20040;&#26159;MongoDB&#30340;&#65292;&#21478;&#19968;&#20010;&#20027;&#35201;&#26159;&#35828;&#19968;&#20123;&#39640;&#32423;&#24212;&#29992;&#30340;&#65292;&#22914;scaling, replica sets, sharding&#21644;performance&#30456;&#20851;&#30340;&#20869;&#23481;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;../../photo/image/75/medium/IMG_0205.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/75/medium/IMG_0205.jpg&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#22312;&#35762;MongoDB&#20837;&#38376;&#30340;&#19996;&#35199;&#65292;&#20160;&#20040;&#26159;MongoDB&#65292;MongoDB&#21644;&#20256;&#32479;RDBMS&#30340;&#20851;&#31995;&#65292;&#27169;&#24335;&#35774;&#35745;&#65292;MongoDB&#30340;&#38480;&#21046;&#65292;&#20107;&#29289;&#65292;map/reduce, capped collection, tailable cursors, GEO indexing&#65292;&#20197;&#21450;&#19968;&#20123;&#31616;&#21333;&#30340;&#26597;&#35810;&#20030;&#20363;&#65292;&#29616;&#22330;&#36824;show&#20102;&#19968;&#19979;mongodb&#30340;&#19979;&#36733;&#21644;&#23433;&#35013;&#26377;&#22810;&#20040;&#30340;&#31616;&#21333;&#21644;&#24555;&#25463;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#22312;&#35828;&#21040;MongoDB&#30340;&#24615;&#33021;&#26102;&#65292;PPT&#21482;&#35828;&#20102;MongoDB&#26159;&#29992;C++&#32534;&#20889;&#30340;&#65292;&#25152;&#20197;&#20855;&#26377;high performance, &#20026;&#20160;&#20040;&#29992;C++&#20889;&#30340;&#23601;&#26377;&#22909;&#30340;&#24615;&#33021;&#21602;&#65292;&#38590;&#36947;&#26159;&#22240;&#20026;C++?&#65292;&#25105;&#35273;&#24471;&#36825;&#37324;&#33267;&#23569;&#24212;&#35813;&#32473;&#20986;&#19968;&#20123;&#21644;RDBMS&#30340;benchmark&#25968;&#25454;&#25165;&#26356;&#20855;&#26377;&#35828;&#26381;&#21147;&#65292;&#24403;&#28982;MongoDB&#22312;&#23433;&#35013;&#65292;&#37096;&#32626;&#65292;&#32034;&#24341;&#21019;&#24314;&#65292;&#25554;&#20837;&#65292;&#26597;&#35810;&#31561;&#35768;&#22810;&#26041;&#38754;&#30340;&#30830;&#37117;&#27604;RDBMS&#26377;&#24456;&#22810;&#30340;&#20248;&#21183;&#65292;&#20294;&#22823;&#37096;&#20998;&#27809;&#26377;&#25509;&#35302;&#36807;NoSQL&#30340;&#20154;&#26356;&#20851;&#27880;&#30340;&#36824;&#26159;&#21644;&#24403;&#21069;RDBMS&#30340;&#24615;&#33021;&#27604;&#36739;&#65292;&#33267;&#20110;&#22909;&#19981;&#22909;&#29992;&#19981;&#26159;&#31532;&#19968;&#35201;&#32771;&#34385;&#30340;&#38382;&#39064;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#33267;&#20110;&#21644;&#20854;&#20182;NoSQL&#30340;&#23545;&#27604;&#27809;&#26377;&#20219;&#20309;&#35828;&#26126;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;shitou&#21548;&#21040;&#30340;&#20960;&#28857;&#37325;&#35201;&#30340;&#26159;(&#20043;&#21069;&#36824;&#19981;&#30693;&#36947;&#30340;):&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;1) &#24050;&#32463;&#21024;&#38500;&#30340;collection&#34920;&#31354;&#38388;&#34429;&#28982;&#22312;&#30913;&#30424;&#31354;&#38388;&#21344;&#29992;&#20013;&#19981;&#20250;&#37322;&#25918;(&#31867;&#20284;&#20110;MySQL InnoDB&#30340;&#34920;&#31354;&#38388;)&#65292;&#20294;&#20250;&#34987;&#20043;&#21518;&#30340;&#26032;&#25968;&#25454;&#37325;&#26032;&#21033;&#29992;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;2) &#22312;&#23558;&#35201;&#21457;&#24067;&#30340;1.8 &#29256;&#26412;&#20013;&#21333;document&#30340;&#22823;&#23567;&#38480;&#21046;&#20250;&#20174;4M&#25552;&#21319;&#21040;16M&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#28982;&#21518;&#23601;&#26159;&#25552;&#38382;&#26102;&#38388;&#65292;&#38382;&#30340;&#38382;&#39064;&#19968;&#20010;&#27809;&#21548;&#28165;&#12290;&#12290;&#12290;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;../../photo/image/76/medium/IMG_0206.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/76/medium/IMG_0206.jpg&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#19979;&#38754;NO. 2&#32769;&#22806;&#19978;&#21488;(&#20854;&#23454;&#20013;&#38388;&#20182;&#36824;&#23458;&#20018;&#20102;&#19968;&#19979;&#24110;NO. 1&#20030;&#35805;&#31570;)&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#36825;&#20010;&#35762;&#20869;&#23481;&#25402;&#22810;&#30340;&#65292;&#37117;&#26159;&#19968;&#20123;&#27604;&#36739;&#39640;&#32423;&#30340;&#20027;&#39064;&#65292;&#27604;&#22914;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Scaling mongodb&lt;/li&gt;
&lt;li&gt;Linked model design or embed document&lt;/li&gt;
&lt;li&gt;Data model effects performance&lt;/li&gt;
&lt;li&gt;Any performance problem can be resolved by changing schema&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;Scaling mongodb&#20027;&#35201;&#23601;&#26159;&#35828;&#30340;mongodb&#30340;master/slave, master/master, replica sets, shading&#31561;&#29305;&#24615;&#65292;&#35828;&#30446;&#21069;&#19981;&#25512;&#33616;&#22312;production&#20013;&#20351;&#29992;master/master&#30340;&#27169;&#24335;&#12290;&lt;/div&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#30001;&#20110;mongodb&#26159;&#22522;&#20110;JSON&#30340;&#23384;&#20648;&#26041;&#24335;&#65292;&#25152;&#20197;&#20320;&#21487;&#20197;&#38543;&#24847;&lt;a href=&quot;../../page/read/211&quot;&gt;&#35774;&#35745;&lt;/a&gt;&#20320;&#30340;&#25968;&#25454;&#32467;&#26500;&#65292;&amp;ldquo;Just do whatever you want to do&quot;&#65292;&#36825;&#26159;&#23448;&#26041;&#30340;&#35828;&#27861;&#65292;&#19981;&#36807;&#31350;&#31455;&#23884;&#22871;&#25991;&#26723;&#30340;&#23618;&#27425;&#26377;&#22810;&#28145;&#36825;&#20010;&#21482;&#26377;&#33258;&#24049;&#21435;&#20570;&#27979;&#35797;&#65292;&#30446;&#21069;shitou&#22312;&#39033;&#30446;&#20013;&#23884;&#22871;&#24050;&#32463;&#36798;&#21040;6&#65292;7&#23618;&#20102;&#65292;&#24615;&#33021;&#20173;&#26377;&#19981;&#38169;&#30340;&#34920;&#29616;&#12290;&lt;/div&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#20174;&amp;ldquo;Any performance problem can be resolved by changing schema&amp;rdquo;&#21487;&#20197;&#30475;&#20986;mongodb&#23545;&#33258;&#24049;&#22312;&#31616;&#21333;&#23384;&#20648;&#27169;&#24335;(&#27809;&#26377;&#22823;&#37327;sub-document)&#19979;&#28023;&#37327;&#25968;&#25454;&#30340;&#26597;&#35810;&#36824;&#26159;&#24456;&#26377;&#20449;&#24515;&#30340;&#65292;shitou&#20043;&#21069;&#20570;&#20010;&#27979;&#35797;&#22312;400w&#25968;&#25454;&#26597;&#35810;&#30340;&#26102;&#20505;&#24615;&#33021;&#34920;&#29616;&#30340;&#30830;&#19981;&#38169;&#65292;&#24863;&#20852;&#36259;&#30340;&#21516;&#23398;&#21487;&#20197;&#30475;&lt;a href=&quot;http://goo.gl/gR5Ju&quot;&gt;&#36825;&#37324;(&#20159;&#32423;&#27979;&#35797;)&lt;/a&gt;&#12290;&lt;/div&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#22909;&#20102;&#65292;&#20013;&#22330;&#20241;&#24687;&#65292;&#26377;&#21507;&#30340;&#65292;&#30424;&#23376;&#22312;&#21738;&#20799;&#65311;&lt;/div&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#19979;&#38754;&#23601;&#26159;&#20960;&#20010;&#20844;&#21496;&#30340;&#20132;&#27969;PPT, &#25442;&#22330;&#22320;&#65292;&#20998;&#20004;&#22330;&#21516;&#26102;&#36827;&#34892;PPT&#28436;&#35762;&#65292; shitou&#25152;&#22312;&#30340;&#20844;&#21496;&#22312;&#21478;&#19968;&#20010;&#22823;&#21381;&#65292;&lt;/div&gt;
&lt;div&gt;&lt;img src=&quot;../../photo/image/77/medium/IMG_0218.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/77/medium/IMG_0218.jpg&quot; /&gt;&lt;/div&gt;
&lt;div&gt;&#36825;&#26159;shitou&#30340;&#21516;&#20107;&#22312;&#20570;PPT&#65292;&#20043;&#21518;&#23601;&#26159;&#25552;&#38382;&#65292;&#24863;&#35273;&#22823;&#23478;&#36824;&#26159;&#23545;&#26597;&#35810;&#65292;&#25968;&#25454;&#37327;&#36825;&#31867;&#38382;&#39064;&#27604;&#36739;&#24863;&#20852;&#36259;&#65292;&#19981;&#22810;&#35828;&#20102;&#12290;&lt;/div&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&#19979;&#38754;&#26159;&#21516;&#20107;&#30340;PPT&#65292;&lt;a href=&quot;http://u.115.com/file/t5e6b14797&quot;&gt;&#25720;&#25105;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Wed, 09 Mar 2011 02:28:02 -0700</pubDate>
      <link>http://www.ccok.me/page/read/219</link>
      <guid>http://www.ccok.me/page/read/219</guid>
    </item>
    <item>
      <title>Mongo Beijing&#24320;&#21457;&#32773;&#32858;&#20250;</title>
      <description>&lt;p&gt;MongoDB&#21271;&#20140;&#24320;&#21457;&#32773;&#32858;&#20250;&#36825;&#20010;&#26376;3&#21495;&#35201;&#22312;&#21271;&#20140;&#30693;&#26149;&#36335;&#20030;&#34892;&#20102;&#65292;MongoDB&#24320;&#21457;&#32773;Roger Bodamer&#20063;&#23558;&#21040;&#20250;&#65292;shitou&#25152;&#22312;&#30340;&#20844;&#21496;&#21463;&#36992;&#20063;&#21442;&#21152;&#36825;&#27425;&#32858;&#20250;&#65292;&#32780;&#19988;&#20250;&#20570;&#19968;&#20010;&#21322;&#20010;&#23567;&#26102;&#30340;PPT&#28436;&#35762;&#65292;&#19981;&#36807;&#19981;&#26159;shitou&#38706;&#33080;&#30340;&#65292;&#30001;&#25105;&#20204;&#19968;&#21516;&#20107;&#35201;&#26469;&#20570;&#65292;&#20027;&#35201;&#23601;&#26159;&#20171;&#32461;&#25105;&#20204;&#22312;MongoDB&#26041;&#38754;&#30340;&#19968;&#20123;&#20351;&#29992;&#32463;&#39564;&#21644;&#36935;&#21040;&#30340;&#38382;&#39064;&#65292;&#31561;&#36825;&#27425;&#32858;&#20250;&#36807;&#21518;shitou&#20250;&#25918;&#20986;PPT&#30340;&#19979;&#36733;&#38142;&#25509;&#65292;&#26377;&#20852;&#36259;&#30340;&#21516;&#23398;&#21487;&#20197;3&#21495;&#21435;&#21442;&#21152;&#65292;&#35980;&#20284;&#19981;&#25910;&#36153;&#30340;&#35828;&#65292;&#20855;&#20307;&#20449;&#24687;&#22312;&lt;a href=&quot;http://www.10gen.com/conferences/mongobeijing2011&quot;&gt;&#36825;&#37324;&lt;/a&gt;&#65292;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#38142;&#25509;:&amp;nbsp;http://www.10gen.com/conferences/mongobeijing2011&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Tue, 01 Mar 2011 06:59:54 -0700</pubDate>
      <link>http://www.ccok.me/page/read/218</link>
      <guid>http://www.ccok.me/page/read/218</guid>
    </item>
    <item>
      <title>Erlang vs Node.js</title>
      <description>&lt;p&gt;&#20851;&#20110;Erlang&#21644;Node.js&#30340;&#35752;&#35770;&#32593;&#19978;&#24050;&#32463;&#26377;&#24456;&#22810;&#20102;&#65292;&lt;a href=&quot;http://www.reddit.com/r/programming/comments/ema7p/differences_between_nodejs_and_erlang/&quot;&gt;&#36825;&#37324;&lt;/a&gt;&#23601;&#27604;&#36739;&#28608;&#28872;&#65292;shitou&#35273;&#24471;elrang&#21644;node.js&#30340;&#26368;&#22823;&#32570;&#21035;&#23601;&#22312;&#20110;erlang&#26159;language native process&#65292;&#19981;&#26159;OS level&#30340;process, &#32780;node.js&#21482;&#26159;&#19968;&#20010;OS&#23618;&#38754;&#30340;&#23553;&#35013;&#65292;&#25152;&#20197;&#36825;&#20063;&#23601;&#20915;&#23450;&#20102;&#24182;&#21457;&#30340;&#22788;&#29702;&#26377;&#24456;&#22823;&#30340;&#19981;&#21516;&#65292;&#30475;&lt;a href=&quot;http://journal.dedasys.com/2010/04/29/erlang-vs-node-js&quot;&gt;&#36825;&#37324;&lt;/a&gt;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Tue, 01 Mar 2011 02:44:22 -0700</pubDate>
      <link>http://www.ccok.me/page/read/217</link>
      <guid>http://www.ccok.me/page/read/217</guid>
    </item>
    <item>
      <title>PS3 &amp; NW-A845</title>
      <description>&lt;p&gt;&#21069;&#27573;&#26102;&#38388;&#20837;&#25163;&#20102;PS3&#30340;GT5&#38480;&#23450;&#29256;&#36824;&#26377;&#31532;&#20108;&#21488;NW-A845&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PS3 GT5&#38480;&#23450;&#29256;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://zt.tgbus.com/UploadFiles/gt5/2010/10/201010291815114077.jpg&quot; alt=&quot;GT5&quot; width=&quot;500&quot; height=&quot;396&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://zt.tgbus.com/UploadFiles/gt5/2010/10/201010291815117206.jpg&quot; alt=&quot;GT5&quot; width=&quot;500&quot; height=&quot;396&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://zt.tgbus.com/UploadFiles/gt5/2010/10/201010291815111658.jpg&quot; alt=&quot;GT5&quot; width=&quot;500&quot; height=&quot;396&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;NW-A845, &#37329;&#26837;&#33394;&#30340;, &#38899;&#36136;&#30495;&#30340;&#27809;&#35805;&#35828;, &#20080;&#30340;&#26159;&#26085;&#26412;&#20195;&#36141;&#65292;&#27604;&#34892;&#36135;&#20415;&#23452;&#19981;&#23569;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ccok.me/photo/image/69/medium/ce15AiTWKR5zw.jpg&quot; alt=&quot;http://ccok.me/photo/image/69/medium/ce15AiTWKR5zw.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ccok.me/photo/image/70/medium/cegbEh6LJSLD2.jpg&quot; alt=&quot;http://ccok.me/photo/image/70/medium/cegbEh6LJSLD2.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#20877;&#26194;&#19979;MDR-EX500SL, &#37197;&#19978;845&#38899;&#36136;&#27604;&#33258;&#24102;&#30340;&#22622;&#23376;&#22909;&#19981;&#23569;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ccok.me/photo/image/71/medium/ceYOKZAli2MKc.jpg&quot; alt=&quot;http://ccok.me/photo/image/71/medium/ceYOKZAli2MKc.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://ccok.me/photo/image/72/medium/ceQi7TkM0dlmE.jpg&quot; alt=&quot;http://ccok.me/photo/image/72/medium/ceQi7TkM0dlmE.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#19979;&#38754;&#26159;shitou&#30340;ps3 trophy card:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.yourgamercards.net/profile/blol333&quot;&gt;&lt;img src=&quot;http://www.yourgamercards.net/trophy/a/blol333.png&quot; border=&quot;0&quot; alt=&quot;blol333 Trophy Card&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ps: &#38065;&#21253;&#20320;&#24590;&#20040;&#20102;&#65292;&#38065;&#21253;&#20320;&#37266;&#37266;&#21834;!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Tue, 18 Jan 2011 22:16:23 -0700</pubDate>
      <link>http://www.ccok.me/page/read/216</link>
      <guid>http://www.ccok.me/page/read/216</guid>
    </item>
    <item>
      <title>MongoDB&#21024;&#38500;map_reduce&#29983;&#25104;&#30340;tmp collection</title>
      <description>  &lt;p&gt;&#22312;&#20351;&#29992;MongoDB&#30340;map_reduce&#21151;&#33021;&#26102;&#65292;&#20250;&#29983;&#25104;&#24456;&#22810;&#20020;&#26102;&#30340;collections&#65292;&#21363;&#20351;&#20320;&#22312;&#35843;&#29992;map_reduce&#26102;&#25351;&#23450;&#20102;keeptemp: false, MongoDB&#21482;&#20250;&#22312;session&#32467;&#26463;&#25110;&#32773;&#26381;&#21153;&#37325;&#21551;&#26102;&#25165;&#20250;&#21024;&#38500;&#36825;&#20123;&#20020;&#26102;&#30340;collections, &#36825;&#23545;&#20110;&#22312;&#35843;&#35797;&#20250;&#38750;&#24120;&#40635;&#28902;&#65292;&#20320;&#20250;&#30475;&#21040;&#22823;&#37327;&#30340;tmp collections, &#25152;&#20197;&#38656;&#35201;&#25105;&#20204;&#36827;&#34892;&#25163;&#24037;&#21024;&#38500;&#65292;&#19979;&#38754;&#23601;&#26159;&#25209;&#37327;&#21024;&#38500;&#30340;&#33050;&#26412;&#65292;&#22312;mongo shell&#20013;&#25191;&#34892;:&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;javascript:nogutter&quot;&gt;function f() {var names = db.getCollectionNames();for(var i = 0; i &lt; names.length; i++){if(names[i].indexOf(&quot;tmp.mr&quot;) == 0){db[names[i]].drop();}}};
f();
&lt;/pre&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#19978;&#38754;shitou&#25925;&#24847;&#20889;&#22312;&#19968;&#34892;&#37324;&#65292;&#26041;&#20415;&#21508;&#20301;&#21516;&#23398;ctrl+c/ctrl+v.&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Wed, 12 Jan 2011 19:36:44 -0700</pubDate>
      <link>http://www.ccok.me/page/read/215</link>
      <guid>http://www.ccok.me/page/read/215</guid>
    </item>
    <item>
      <title>Mai Kuraki - Future Kiss</title>
      <description>&lt;p&gt;&#40635;&#34915;(Mai Kuraki)&#20110;2010&#24180;11&#26376;17&#26085;&#21457;&#21806;&#31532;9&#24352;&#21407;&#21019;&#19987;&#36753;&#12302;FUTURE KISS&#12303;&#12290;&#31532;&#20061;&#24352;&#21407;&#21019;&#19987;&#36753;&#36317;&#31163;&#19978;&#19968;&#24352;&#32422;&#26377;&#19968;&#24180;&#21322;&#65292;&#26159;&#20179;&#26408;&#40635;&#34915;10&#21608;&#24180;&#20197;&#21518;&#30340;&#31532;&#19968;&#24352;&#19987;&#36753;&#65292;&#25910;&#24405;&#20102;&#36716;&#22411;&#21518;&#21508;&#31181;&#39118;&#26684;&#36837;&#24322;&#30340;&#27468;&#26354;&#12290;&#19987;&#36753;&#21517;&#31216;&#12302;FUTURE KISS&#12303;&#24102;&#26377;&amp;ldquo;&#30896;&#35302;&#36824;&#26080;&#27861;&#30475;&#35265;&#30340;&#26410;&#26469;&amp;rdquo;&#20043;&#24847;&#65292;&#34164;&#21547;&#20102;&#20179;&#26408;&#40635;&#34915;&amp;ldquo;&#29282;&#29282;&#25226;&#25569;&#29616;&#29366;&#65292;&#24576;&#30528;&#31215;&#26497;&#30340;&#24076;&#26395;&#21435;&#24863;&#21463;&#26410;&#26469;&#30340;&#33258;&#24049;&amp;rdquo;&#36825;&#31181;&#24076;&#26395;&#36367;&#20986;&#26032;&#19968;&#27493;&#30340;&#20449;&#24565;&#12290;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#19981;&#31649;&#40635;&#34915;&#24590;&#20040;&#36716;&#22411;&#25105;&#37117;&#21916;&#27426;&#65292;&#25105;&#37117;&#21916;&#27426;&#65292;&#25105;&#37117;&#21916;&#27426;&#65292;&#25105;&#37117;&#21916;&#27426;...(&#19981;&#22909;&#24847;&#24605;&#65292;&#25105;&#22833;&#24577;&#20102;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/67/medium/thumb.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/67/medium/thumb.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#25910;&#24405;&#30340;&#26354;&#30446;:&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;01 FUTURE KISS&lt;br /&gt;02 wana&lt;br /&gt;03 Revive&lt;br /&gt;04 &#12431;&#12383;&#12375;&#12398;&#12289;&#12375;&#12425;&#12394;&#12356;&#12289;&#12431;&#12383;&#12375;&#12290; &#65374;precious ver.&#65374;&lt;br /&gt;05 SUMMER TIME GONE&lt;br /&gt;06 I scream!&lt;br /&gt;07 Drive me crazy&lt;br /&gt;08 I can do it now&lt;br /&gt;09 Beautiful &#65374;comfortable ver.&#65374;&lt;br /&gt;10 I promise&lt;br /&gt;11 sound of rain&lt;br /&gt;12 Tomorrow is the last Time&lt;br /&gt;13 anywhere&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#20854;&#20013;wana, revive,&amp;nbsp;&#12431;&#12383;&#12375;&#12398;&#12289;&#12375;&#12425;&#12394;&#12356;&#12289;&#12431;&#12383;&#12375;,&amp;nbsp;SUMMER TIME GONE&#31561;&#20960;&#39318;&#37117;&#26159;&#32769;&#27468;&#25910;&#24405;&#30340;&#65292;sound of rain&#26159;&#36825;&#24352;&#19987;&#36753;&#37324;shitou&#26368;&#21916;&#27426;&#30340;&#65292;&#27704;&#36828;&#25903;&#25345;&#40635;&#34915;!!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/68/medium/thumb__1_.jpg&quot; alt=&quot;http://www.ccok.me/photo/image/68/medium/thumb__1_.jpg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Thu, 30 Dec 2010 22:32:35 -0700</pubDate>
      <link>http://www.ccok.me/page/read/214</link>
      <guid>http://www.ccok.me/page/read/214</guid>
    </item>
    <item>
      <title>HTML5&#28216;&#25103;</title>
      <description>&lt;p&gt;&#22522;&#20110;HTML5&#30340;&#22612;&#38450;&#31867;&#28216;&#25103;&lt;a href=&quot;http://www.pirateslovedaisies.com/&quot;&gt;pirateslovedaisies&lt;/a&gt;&#65292;&#26159;&#24494;&#36719;&#20026;&#20102;show&#19979;IE9&#23545;HTML5&#30340;&#25903;&#25345;&#32780;&#24320;&#21457;&#30340;&#65292;&#25928;&#26524;&#24050;&#32463;&#23436;&#20840;&#21487;&#20197;&#23218;&#32654;Flash&#20102;&#65292;&#32780;&#19988;&#36824;&#24320;&#25918;&#20102;&#28216;&#25103;&#30340;&#19968;&#20010;&lt;a href=&quot;http://www.easeljs.com/&quot;&gt;JS&#24211;&lt;/a&gt;&#65292;&#36825;&#37324;&#26159;&#24320;&#21457;&#32773;&#20851;&#20110;&#28216;&#25103;&#24320;&#21457;&#36807;&#31243;&#30340;&lt;a href=&quot;http://gskinner.com/blog/archives/2010/12/pirates-love-daisies-html5-game-launches.html&quot;&gt;&#25551;&#36848;&lt;/a&gt;&#65292;&#38750;&#24120;&#20540;&#24471;&#19968;&#30475;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;../../photo/image/66/medium/Screen_shot_2010-12-30_at_12.03.34_AM.png&quot; alt=&quot;http://www.ccok.me/photo/image/66/medium/Screen_shot_2010-12-30_at_12.03.34_AM.png&quot; width=&quot;450&quot; height=&quot;323&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Wed, 29 Dec 2010 09:08:49 -0700</pubDate>
      <link>http://www.ccok.me/page/read/213</link>
      <guid>http://www.ccok.me/page/read/213</guid>
    </item>
    <item>
      <title>MongoDB Schema Design</title>
      <description>&lt;p&gt;&#25512;&#33616;&#19968;&#29255;&#19981;&#38169;&#30340;PPT, &#20851;&#20110;MongoDB&#35774;&#35745;&#30340;&#65292;&#23545;&#21018;&#24320;&#22987;&#29992;MongoDB&#30340;&#21516;&#23398;&#26377;&#24456;&#22823;&#24110;&#21161;&#65292;&#25243;&#24320;&#20851;&#31995;&#25968;&#25454;&#24211;&#30340;&#35774;&#35745;&#24605;&#36335;&#21543;..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;__ss_3874147&quot; style=&quot;width: 425px;&quot;&gt;&lt;strong&gt;&lt;a title=&quot;MongoDB Schema Design&quot; href=&quot;http://www.slideshare.net/kbanker/mongodb-schema-design&quot;&gt;MongoDB Schema Design&lt;/a&gt;&lt;/strong&gt; 
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;425&quot; height=&quot;355&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;
&lt;param name=&quot;id&quot; value=&quot;__sse3874147&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;
&lt;param name=&quot;src&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=schema-design-webcast-100427144542-phpapp02&amp;amp;stripped_title=mongodb-schema-design&amp;amp;userName=kbanker&quot; /&gt;&lt;embed id=&quot;__sse3874147&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;355&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=schema-design-webcast-100427144542-phpapp02&amp;amp;stripped_title=mongodb-schema-design&amp;amp;userName=kbanker&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/div&gt;
&lt;div style=&quot;width: 425px;&quot;&gt;
&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/kbanker&quot;&gt;Kyle Banker&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;</description>
      <author>shitou</author>
      <pubDate>Sat, 25 Dec 2010 11:30:58 -0700</pubDate>
      <link>http://www.ccok.me/page/read/211</link>
      <guid>http://www.ccok.me/page/read/211</guid>
    </item>
    <item>
      <title>Erlang OOP</title>
      <description>   &lt;p&gt;&#36817;&#20004;&#20010;&#26376;&#27809;&#26377;&#26356;&#26032;&#21338;&#23458;&#20102;&#65292;&#20026;&#20102;&#35777;&#26126;shitou&#36824;&#27963;&#30528;&#65292;&#38656;&#35201;&#21160;&#21160;&#20102;..&lt;/p&gt;
&lt;br&gt;
&#21069;&#27573;&#26102;&#38388;&#21018;&#25442;&#20102;&#24037;&#20316;&#65292;&#19968;&#30452;&#22312;&#24537;&#65292;&#36824;&#26377;&#22312;&#21644;&#20004;&#20010;&#26379;&#21451;&#19994;&#20313;&#26102;&#38388;&#24320;&#21457;&#19968;&#27454;SNS&#30340;WEB Game, &#32440;&#29260;&#31867;&#30340;&#65292;&#26550;&#26500;&#23601;&#26159;JavaScript + Flash Socket + Erlang + MongoDB, &#26356;&#22810;&#20851;&#20110;&#28216;&#25103;&#30340;&#20869;&#23481;&#36825;&#37324;&#23601;&#19981;&#22810;&#36879;&#38706;&#20102;&#65292;&#19978;&#32447;&#26102;shitou&#20250;&#19987;&#38376;&#24320;&#36148;&#24191;&#21578;&#23459;&#20256;&#30340;&#65292;&#21704;&#21704;..&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#20854;&#23454;&#36825;&#21322;&#24180;&#26102;&#38388;&#38500;&#20102;&#22312;&#24537;&#24037;&#20316;&#30340;&#20107;&#24773;&#20043;&#22806;shitou&#19968;&#30452;&#22312;&#20851;&#27880;web game&#26041;&#38754;&#30340;&#36164;&#26009;&#65292;&#20043;&#21069;&#23581;&#35797;&#30340;C2C, SNS&#65292;&#24863;&#35273;&#36825;&#22359;&#22312;&#22269;&#20869;&#29420;&#31435;&#24320;&#21457;&#32773;&#26159;&#24456;&#38590;&#20570;&#36215;&#26469;&#30340;&#65292;&#23588;&#20854;&#26159;&#22269;&#20869;&#29615;&#22659;&#30340;&#24433;&#21709;....(&#30465;&#30053;2&#19975;&#23383;)&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#22909;&#20102;&#65292;&#19979;&#38754;&#24320;&#22987;&#27491;&#39064;&#65292;&#20851;&#20110;Erlang OOP(&#38754;&#21521;&#23545;&#35937;)&#29305;&#24615;&lt;/p&gt;
&lt;p&gt;&#160;&lt;/p&gt;
&lt;p&gt;&#20854;&#23454;Erlang&#26412;&#36523;&#23601;&#26159;Function Language, &#25152;&#35859;OOP&#29305;&#24615;&#20160;&#20040;&#30340;&#37117;&#19981;&#26159;Erlang&#25152;&#24378;&#35843;&#30340;&#37325;&#28857;&#65292;Erlang&#24110;&#20027;Joe&#22312;&lt;a href=&quot;http://www.amazon.cn/mn/detailApp?_encoding=UTF8&amp;tag=ccokme-23&amp;linkCode=as2&amp;asin=B001KZGZ8U&amp;camp=0&amp;creative=0&amp;creativeASIN=B001KZGZ8U&quot;&gt;Erlang&#31243;&#24207;&#35774;&#35745;&lt;/a&gt;&lt;img src=&quot;http://www.assoc-amazon.cn/e/ir?t=ccokme-23&amp;l=as2&amp;o=28&amp;a=B001KZGZ8U&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot; alt=&quot;&quot; style=&quot;border:none !important; margin:0px !important;&quot; /&gt;
&#19968;&#20070;&#20013;&#20063;&#19968;&#23383;&#26410;&#25552;Erlang&#30340;OOP&#20869;&#23481;&#65292;&#26368;&#36817;&#22312;&#29992;Erlang&#24320;&#21457;&#28216;&#25103;&#30340;Socket Server&#26102;&#36935;&#21040;&#20854;&#20013;&#19968;&#20010;&#27169;&#22359;&#35774;&#35745;&#22914;&#26524;&#29992;OOP&#30340;&#27010;&#24565;&#26469;&#20570;&#30340;&#35805;&#20250;&#26356;&#21512;&#36866;&#65292;&#24819;&#36215;&#20102;&#20043;&#21069;&#22312;&lt;a href=&quot;https://github.com/mochi/mochiweb&quot;&gt;mochiweb&lt;/a&gt;&#30340;&#28304;&#30721;&#20013;&#20851;&#20110;http request&#30340;&#35299;&#26512;module&#23601;&#26159;&#29992;&#30340;OOP&#30340;&#35774;&#35745;&#24605;&#36335;&#65292;&#22238;&#22836;&#20877;&#27425;&#26597;&#30475;mochiweb&#30340;&#28304;&#30721;&#65292;&#21448;google&#19968;&#32763;&#65292;&#32456;&#20110;&#24471;&#21040;&#20102;&#35299;&#20915;&#21150;&#27861;&#65292;&#19979;&#38754;show&#19968;&#20010;&#31616;&#21333;&#30340;&#20363;&#23376;:&lt;/p&gt;
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
%oo.erl
-module(oo, [QS]).
-export([get_qs/0]).

new(Qs) -&gt;
&#160;&#160; &#160; &#160; instance(Qs).
get_qs() -&gt;
&#160; &#160; &#160; &#160;QS.

&gt;A = oo:new(&quot;hello&quot;).
&gt;A:get_qs().

&lt;/pre&gt;
&lt;div&gt;Erlang&#30340;OOP&#21151;&#33021;&#31639;&#26159;Erlang&#30340;&#19968;&#20010;&#38544;&#34255;&#29305;&#24615;&#20102;&#65292;&#27605;&#31455;Erlang&#26159;&#19968;&#20010;&#20989;&#25968;&#32534;&#31243;&#35821;&#35328;&#65292;&#21487;&#33021;&#32769;&#20052;(Joe)&#20063;&#19981;&#24819;&#25552;&#36825;&#26041;&#38754;&#30340;&#19996;&#35199;&#21543;&#65292;&#20851;&#20110;&#26356;&#22810;&#30340;OOP&#29305;&#24615;&#65292;&#21487;&#20197;&#21442;&#32771;&#36825;&#31687;&#25991;&#31456;&lt;a href=&quot;http://ect.googlecode.com/files/tdk2008.pdf&quot;&gt;PDF&lt;/a&gt;, &#36824;&#21487;&#20197;&#30475;&#19979;mochiweb&#30340;&lt;a href=&quot;https://github.com/mochi/mochiweb/blob/master/src/mochiweb_request.erl&quot;&gt;&#28304;&#30721;&lt;/a&gt;.&lt;/div&gt;
&lt;br&gt;</description>
      <author>shitou</author>
      <pubDate>Thu, 23 Dec 2010 21:31:37 -0700</pubDate>
      <link>http://www.ccok.me/page/read/210</link>
      <guid>http://www.ccok.me/page/read/210</guid>
    </item>
    <item>
      <title>jQueryMobile</title>
      <description>&lt;p&gt;&#30001; John Resig &#36825;&#20010;&#22825;&#25165;&#21457;&#36215;&#30340; jQuery &#39033;&#30446;&#25512;&#20986;&#20102;&#31227;&#21160;&#29256;&#26412;&#65292;&#21483;&#20570; &lt;a title=&quot;jQueryMobile&quot; href=&quot;http://jquerymobile.com/&quot;&gt;jQueryMobile&lt;/a&gt; &#12290;jQueryMobile &#26159;&#38024;&#23545;&#25163;&#26426;&#27983;&#35272;&#22120;&#25512;&#20986;&#30340; Javascript &#24211;&#65292;&#31243;&#24207;&#21592;&#33021;&#22815;&#20351;&#29992;&#19968;&#22871;&#30456;&#21516;&#30340;&#35821;&#27861;&#21644;&#24211;&#26469;&#36866;&#37197;&#20027;&#27969;&#31227;&#21160;&#35774;&#22791;&#30340;&#27983;&#35272;&#22120;&#65292;&#27604;&#22914;&#65306;iPhone, Android, BlackBerry OS6.0 &#31561;&#25163;&#26426;&#20869;&#32622;&#30340;&#27983;&#35272;&#22120;&#65292;&#26356;&#31616;&#21333;&#30340;&#35828;&#27861;&#23601;&#26159;&#31243;&#24207;&#21592;&#20889;&#19968;&#20010; HTML + CSS + Javascript &#30340;&#32593;&#39029;&#22312;&#19981;&#21516;&#30340;&#32456;&#31471;&#27983;&#35272;&#22120;&#19978;&#33719;&#24471;&#30340;&#25928;&#26524;&#22522;&#26412;&#19968;&#33268;&#65292;&#36816;&#31639;&#32467;&#26524;&#21644;&#25928;&#29575;&#20165;&#20165;&#36319; CPU &#36895;&#24230;&#21644;&#27983;&#35272;&#22120;&#30340;&#28210;&#26579;&#36895;&#24230;&#30456;&#20851;&#12290;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;http://www.ifanr.com/wp-content/uploads/2010/10/IMG_0085.png&quot; alt=&quot;jQueryMobile&quot; width=&quot;320&quot; height=&quot;480&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;__ss_4498251&quot; style=&quot;width: 425px;&quot;&gt;&lt;strong&gt;&lt;a title=&quot;Testing Mobile JavaScript&quot; href=&quot;http://www.slideshare.net/jeresig/testing-mobile-javascript&quot;&gt;Testing Mobile JavaScript&lt;/a&gt;&lt;/strong&gt; 
&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;425&quot; height=&quot;355&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;
&lt;param name=&quot;id&quot; value=&quot;__sse4498251&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot; /&gt;
&lt;param name=&quot;src&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=js-mobile-100614111951-phpapp02&amp;amp;stripped_title=testing-mobile-javascript&amp;amp;userName=jeresig&quot; /&gt;&lt;embed id=&quot;__sse4498251&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;355&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=js-mobile-100614111951-phpapp02&amp;amp;stripped_title=testing-mobile-javascript&amp;amp;userName=jeresig&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/jeresig&quot;&gt;jeresig&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;padding:5px 0 12px&quot;&gt;&#20197;&#19978;&#20869;&#23481;&#37096;&#20998;&#36716;&#33258;:&amp;nbsp;http://www.ifanr.com/24297&lt;/div&gt;
&lt;div style=&quot;padding:5px 0 12px&quot;&gt;&lt;/div&gt;
&lt;/div&gt;</description>
      <author>shitou</author>
      <pubDate>Fri, 29 Oct 2010 22:24:17 -0600</pubDate>
      <link>http://www.ccok.me/page/read/209</link>
      <guid>http://www.ccok.me/page/read/209</guid>
    </item>
    <item>
      <title>shitou's blog&#25913;&#29256;V3</title>
      <description>&lt;p&gt;&lt;a title=&quot;shitou's blog&quot; href=&quot;../../&quot;&gt;shitou's blog&lt;/a&gt;&#20877;&#27425;&#25913;&#29256;&#65292;&#23436;&#20840;&#26159;&#38024;&#23545;&#22806;&#35266;&#30340;&#25913;&#29256;&#65292;&#36825;&#27425;&#26159;&#31532;&#19977;&#27425;&#25913;&#29256;&#20102;&#65292;&#21704;&#21704;....&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#26368;&#36817;&#22826;&#24537;&#65292;&#22403;&#22334;&#35780;&#35770;&#36234;&#26469;&#36234;&#22810;&#65292;&#27809;&#26377;&#26102;&#38388;&#32500;&#25252;&#20102;&#65292;&#21069;&#27573;&#26102;&#38388;&#35797;&#20102;&#19979;&#19968;&#20123;&#23631;&#34109;&#22403;&#22334;&#35780;&#35770;&#30340;&#24037;&#20855;&#65292;&#25928;&#26524;&#19981;&#22826;&#26126;&#26174;&#65292;&#26242;&#26102;&#25918;&#24323;...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Sat, 16 Oct 2010 22:48:06 -0600</pubDate>
      <link>http://www.ccok.me/page/read/208</link>
      <guid>http://www.ccok.me/page/read/208</guid>
    </item>
    <item>
      <title>Ruby mime-types</title>
      <description>&lt;p&gt;&#24471;&#21040;&#25991;&#20214;&#30340;mime-types&#31867;&#22411;&#65292;&#30446;&#21069;&#19968;&#31181;&#26159;&#36890;&#36807;&#21028;&#26029;&#25991;&#20214;&#30340;&#21518;&#32512;&#65292;&#21478;&#19968;&#31181;&#23601;&#26159;&#36890;&#36807;&#25991;&#20214;&#30340;&#20869;&#23481;&#26469;&#21028;&#26029;&#65292;&#24403;&#28982;&#21069;&#19968;&#31181;&#22914;&#26524;&#20320;&#25925;&#24847;&#20462;&#25913;&#25991;&#20214;&#21518;&#32512;&#30340;&#35805;&#23601;&#19981;&#33021;&#20570;&#20026;&#30495;&#23454;&#30340;&#20381;&#25454;&#20102;&#65292;&#21518;&#19968;&#31181;&#25165;&#26159;&#26368;&#21487;&#38752;&#30340;&#65292;ruby&#30446;&#21069;&#30340;&#19968;&#20010;gem&amp;nbsp;&lt;a href=&quot;http://mime-types.rubyforge.org/&quot;&gt;mime-types&lt;/a&gt;&#23601;&#26159;&#36890;&#36807;&#21028;&#26029;&#25991;&#20214;&#21518;&#32512;&#30340;&#26041;&#27861;&#65292;&#19981;&#22826;&#21487;&#38752;&#65292;&#25152;&#20197;&#25105;&#20204;&#21487;&#20197;&#20351;&#29992;linux&#31995;&#32479;&#30340;&#24037;&#20855;&#26469;&#21028;&#26029;&#65306;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#65283;file -Ib readme.txt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;text/plain; charset=us-ascii&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#65283;file -Ib ~/Music/PureMusic/Serenade.mp3&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;audio/mpeg; charset=binary&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;#mv&amp;nbsp;~/Music/PureMusic/Serenade.mp3&amp;nbsp;~/Music/PureMusic/Serenade.txt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&#65283;file -Ib ~/Music/PureMusic/Serenade.txt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;audio/mpeg; charset=binary&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#20320;&#21487;&#20197;&#29992;&#19978;&#38754;&#21516;&#26679;&#30340;&#26041;&#27861;&#27979;&#35797;&#19979;ruby&amp;nbsp;&lt;a href=&quot;http://mime-types.rubyforge.org/&quot;&gt;mime-types&lt;/a&gt;, &#23601;&#25346;&#20102;&lt;/p&gt;
&lt;p&gt;MIME::Types.type_for '~/Music/Pure Music/Serenade.txt'&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Tue, 28 Sep 2010 19:51:31 -0600</pubDate>
      <link>http://www.ccok.me/page/read/207</link>
      <guid>http://www.ccok.me/page/read/207</guid>
    </item>
    <item>
      <title>&#29992;SSH tunnel&#20984;&#22681;</title>
      <description>&lt;p&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;color: #808080;&quot;&gt;&#25105;&#20204;&#20877;&#19968;&#27425;&#19968;&#36215;&#26469;&#20984;&#22681;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&#29616;&#22312;&#22312;&#22269;&#22806;&#26377;VPS&#30340;&#21516;&#23398;&#36234;&#26469;&#36234;&#22810;&#20102;&#65292;&#19979;&#38754;&#23601;&#32102;&#21508;&#20301;&#21516;&#23398;&#35828;&#19979;&#24590;&#26679;&#29992;SSH&#20984;&#22681;&#30340;&#21543;&#65292;&#39318;&#20808;&#22312;&#32763;&#20043;&#21069;&#21508;&#20301;&#21516;&#23398;&#35201;&#26126;&#30333;GFW&#37319;&#29992;&#30340;&#21644;&#35856;&#25163;&#27573;&#26377;&#21738;&#20123;&#65292;&#36825;&#37324;&#30707;&#22836;&#23601;&#19981;&#22810;&#35828;&#20102;&#65292;&#33258;&#24049;&#21435;&lt;a href=&quot;http://66.172.38.75/home/viewthread.php?tid=701&quot;&gt;&#36825;&#37324;&lt;/a&gt;&#20808;&#34917;&#34917;&#65292;&#26377;&#20123;&#21516;&#23398;&#38382;&#25105;&#22312;&#22269;&#22806;&#33258;&#24049;&#25630;&#20010;squid&#24590;&#26679;&#65292;&#36825;&#26679;&#26159;&#19981;&#34892;&#30340;&#65292;&#24819;&#24819;&#20026;&#20160;&#20040;&#21543;&#65292;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#19979;&#38754;&#25105;&#20204;&#24320;&#22987;&#21543;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;strong&gt;#ssh -Nf -D 192.168.1.8:8082 root@1.2.3.4&lt;/strong&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#19978;&#38754;&#30340;&#21629;&#20196;&#20250;&#24320;&#21551;&#19968;&#20010;&#30417;&#21548;8082&#31471;&#21475;&#30340;&#38567;&#36947;&#26381;&#21153;&#65292;&#35201;&#27880;&#24847;&#30340;&#26159;&#19978;&#38754;&#30340;&#21629;&#20196;&#26159;&#22312;&#20320;&#26412;&#22320;&#25191;&#34892;&#30340;&#65292;&#19981;&#26159;&#22312;&#36828;&#31243;&#30340;VPS&#19978;&#65292;192.168.1.8&#26159;&#26412;&#22320;&#30340;&#30417;&#21548;&#30340;IP&#22320;&#22336;&#65292;&#22914;&#26524;&#19981;&#25351;&#23450;&#40664;&#35748;&#20026;127.0.0.1&#65292;&#36825;&#26679;&#22914;&#26524;&#20320;&#30340;LAN&#20869;&#20854;&#20182;&#21516;&#23398;&#35201;&#20351;&#29992;&#20320;&#30340;&#20984;&#22681;&#20195;&#29702;&#30340;&#35805;&#23601;&#19981;&#34892;&#20102;&#65292;&#25152;&#20197;&#38656;&#35201;&#25351;&#23450;&#19978;&#33258;&#24049;&#30340;IP&#22320;&#22336;&#65307;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;8082&#26159;&#26412;&#22320;&#30340;&#30417;&#21548;&#31471;&#21475;&#65292;&#21518;&#38754;&#21644;&#21069;&#38754;&#30340;&#21442;&#25968;&#20855;&#20307;&#23601;&#19981;&#35828;&#20102;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#28982;&#21518;&#22312;&#20320;&#30340;Firefox&#19978;&#35774;&#32622;&#32593;&#32476;&#20195;&#29702;&#20026;socketv5&#65292;&#27880;&#24847;&#19981;&#33021;&#20854;&#20182;&#30340;(&#22914;HTTP, FTP&#20160;&#20040;&#30340;&#20195;&#29702;)&#19981;&#35201;&#35774;&#32622;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&lt;img src=&quot;../../photo/image/65/medium/Screen_shot_2010-09-28_at_3.41.01_PM.png&quot; alt=&quot;http://www.ccok.me/photo/image/65/medium/Screen_shot_2010-09-28_at_3.41.01_PM.png&quot; /&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#28982;&#21518;&#20877;&#22312;Firefox&#30340;&#22320;&#22336;&#26639;&#37324;&#36755;&#20837;&lt;strong&gt;about&lt;strong&gt;&lt;/strong&gt;:config&#65292;&lt;/strong&gt;&lt;span&gt;&#25226;&lt;/span&gt;&lt;strong&gt;network.proxy.socks_remote_dns&#35774;&#20026;&lt;/strong&gt;&lt;span&gt;true&#65292;&#28982;&#21518;&#23601;&#22823;&#21151;&#21578;&#25104;&#20102;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#19978;&#38754;&#30340;&#35774;&#32622;&#26041;&#27861;&#22312;IE&#19978;&#26159;&#19981;&#34892;&#30340;&#65292;&#36825;&#20010;&#21487;&#33021;&#21644;DNS&#26597;&#35810;&#26377;&#20851;&#65292;&#23601;&#26159;&#21363;&#20351;&#35774;&#32622;&#20102;&#20195;&#29702;IE&#21487;&#33021;&#20173;&#26087;&#20250;&#26597;&#35810;&#26412;&#22320;&#30340;DNS&#26381;&#21153;&#22120;&#65292;&#32780;&#19981;&#26159;&#36890;&#36807;&#20195;&#29702;&#26381;&#21153;&#22120;&#26597;&#35810;&#65292;&#36825;&#20063;&#26159;&#20026;&#20160;&#20040;Firefox&#25105;&#20204;&#38656;&#35201;&#35774;&#32622;etwork.proxy.socks_remote_dns&#30340;&#21407;&#22240;&#65292;&#29616;&#22312;&#21448;&#22810;&#20102;&#19968;&#20010;&#29702;&#30001;&#35753;&#25105;&#20204;&#24443;&#24213;&#25243;&#24323;IE&#20102;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;p1&quot;&gt;&#20854;&#23454;SSH&#30340;&#38567;&#36947;&#27169;&#24335;&#36824;&#26377;&#24456;&#22810;&#20854;&#20182;&#30340;&#29992;&#36884;&#65292;&#27604;&#22914;&#26381;&#21153;&#20043;&#38388;&#30340;&#21152;&#23494;&#36716;&#21457;&#65292;&#26377;&#20852;&#36259;&#30340;&#21516;&#23398;&#21487;&#20197;&#21435;&lt;a href=&quot;http://www.google.com/search?hl=en&amp;amp;source=hp&amp;amp;biw=1116&amp;amp;bih=630&amp;amp;q=ssh+tunnel&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=&amp;amp;gs_rfai=&quot;&gt;Google&lt;/a&gt;&#19968;&#19979;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.revsys.com/writings/quicktips/ssh-tunnel.html&quot;&gt;SSH Tunnel Made Easy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.oreillynet.com/wireless/2001/02/23/wep.html&quot;&gt;Oreilly SSH Tunnel&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Tue, 28 Sep 2010 01:43:13 -0600</pubDate>
      <link>http://www.ccok.me/page/read/206</link>
      <guid>http://www.ccok.me/page/read/206</guid>
    </item>
    <item>
      <title>Google&#30340;&#35821;&#27861;&#39640;&#20142;&#24037;&#20855;&#21253;</title>
      <description>&lt;p&gt;&#21457;&#29616;&#20102;&#19968;&#20010;Google&#30340;&#24320;&#28304;&#24037;&#20855;&#65292;&lt;a href=&quot;http://code.google.com/p/google-code-prettify/&quot;&gt;prettify&lt;/a&gt;, &#19968;&#20010;&#32593;&#39029;&#30340;&#20013;&#35821;&#27861;&#39640;&#20142;&#26174;&#31034;&#24037;&#20855;&#65292;&#21644;syntaxhighlighted&#30456;&#27604;&#65292;&lt;a href=&quot;http://code.google.com/p/google-code-prettify/&quot;&gt;prettify&lt;/a&gt;&#26356;&#21482;&#33021;&#65292;&#19981;&#29992;&#25163;&#24037;&#25351;&#23450;&#24403;&#21069;&#35201;&#20351;&#29992;&#30340;&#20351;&#29992;&#65292;&lt;a href=&quot;http://code.google.com/p/google-code-prettify/&quot;&gt;prettify&lt;/a&gt;&#21487;&#20197;&#33258;&#21160;&#21028;&#26029;&#35201;&#20351;&#29992;&#37027;&#31181;&#39640;&#20142;&#26041;&#24335;&#65292;&#32780;&#19988;&#25903;&#25345;&#30340;&#35821;&#35328;&#26356;&#22810;&#65292;&#26377;&#20852;&#36259;&#30340;&#21516;&#23398;&#21487;&#20197;&#35797;&#35797;&#65292;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&#28857;&#36825;&lt;a href=&quot;http://code.google.com/p/google-code-prettify/&quot;&gt;&#37324;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>shitou</author>
      <pubDate>Mon, 20 Sep 2010 21:18:56 -0600</pubDate>
      <link>http://www.ccok.me/page/read/205</link>
      <guid>http://www.ccok.me/page/read/205</guid>
    </item>
    <item>
      <title>&#22823;&#37327;&#25968;&#25454;&#30340;&#25209;&#37327;&#25805;&#20316;</title>
      <description> &#22914;&#26524;&#20320;&#26377;10,000,000&#20010;&#29992;&#25143;&#65292;&#27599;&#21608;&#38656;&#35201;&#32102;&#20182;&#20204;&#21457;&#36865;&#26368;&#26032;&#30340;&#25512;&#24191;&#37038;&#20214;&#65292;&#20320;&#21487;&#33021;&#20250;&#20174;&#25968;&#25454;&#24211;&#20013;&#36825;&#26679;&#25805;&#20316;:

&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
User.each do |user|
    NewsLetter.weekly_deliver(user)
end
&lt;/pre&gt;
&#20294;&#36825;&#26679;&#20570;&#20250;&#35753;ruby&#20174;&#25968;&#25454;&#24211;&#20013;&#19968;&#27425;&#21462;&#20986;10,000,000&#26465;&#25968;&#25454;&#65292;&#24182;&#21019;&#24314;10,000,000&#20010;&#23545;&#35937;&#65292;&#26381;&#21153;&#22120;&#20869;&#23384;&#20250;&#22823;&#37327;&#28040;&#32791;&#65292;&#22240;&#27492;&#36825;&#26679;&#20570;&#26159;&#19981;&#34892;&#30340;&#65292;&lt;br&gt;

&#20174;rails 2.3&#24320;&#22987;&#20320;&#23601;&#21487;&#20197;&#20351;&#29992;find_each&#21644;find_in_batches&#26041;&#27861;&#20102;&#65292;&#36825;&#20004;&#20010;&#26041;&#27861;&#19987;&#38376;&#29992;&#20110;&#20998;&#25209;&#26597;&#35810;&#25968;&#25454;&#21644;&#22788;&#29702;&#65292;&#40664;&#35748;&#24773;&#20917;&#19979;find_each&#21644;find_in_batches&#27599;&#27425;&#20250;&#26597;&#20986;1000&#26465;&#25968;&#25454;&#35760;&#24405;&#65292;&#20320;&#21487;&#20197;&#21487;&#20197;&#25351;&#23450;&#27599;&#27425;&#21462;&#20986;&#30340;&#25968;&#37327;:batch_size&#65292;
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
User.find_each do |user|
    NewsLetter.weekly_deliver(user)
end
&lt;/pre&gt;
find_in_batches&#26159;&#36820;&#36824;&#19968;&#20010;&#25968;&#25454;&#23545;&#35937;:
&lt;pre name=&quot;code&quot; class=&quot;ruby:nogutter&quot;&gt;
User.find_in_batches(:batch_size =&gt; 5000) do |users|
    users.each { |user| NewsLetter.weekly_deliver(user) }
end
&lt;/pre&gt;
&lt;br&gt;
&lt;br&gt;

</description>
      <author>shitou</author>
      <pubDate>Tue, 14 Sep 2010 23:51:39 -0600</pubDate>
      <link>http://www.ccok.me/page/read/204</link>
      <guid>http://www.ccok.me/page/read/204</guid>
    </item>
  </channel>
</rss>

