<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5882091024751543559</id><updated>2025-11-20T07:31:17.327-08:00</updated><category term="IPhone"/><category term="HTML5"/><category term="ror"/><category term="ruby on rail"/><category term="Java"/><category term="tutorial"/><category term="opengl"/><category term="web"/><category term="CSS"/><category term="cakephp"/><category term="jquery"/><category term="Mac"/><category term="Programmer"/><category term="Ruby"/><category term="SQL"/><category term="nosql"/><category term="php"/><category term="svn"/><category term="unit test"/><category term="JVM"/><category term="Java example"/><category term="Python"/><category term="SSIS"/><category term="filter"/><category term="game"/><category term="hadoop"/><category term="javascript"/><category term="mysql"/><category term="network"/><category term="routing"/><category term="struts"/><category term="xcode"/><category term="3d"/><category term="Brisk"/><category term="Exif"/><category term="HABTM"/><category term="Heap Size"/><category term="IWork"/><category term="Lego"/><category term="MSSQL"/><category term="NSBundle"/><category term="NXT"/><category term="RSS"/><category term="Rails"/><category term="Tips"/><category term="UIImagePickerController"/><category term="UIWebView"/><category term="URL Scheme"/><category term="UX"/><category term="apache"/><category term="app store"/><category term="blogger"/><category term="box2d"/><category term="chrome"/><category term="cocoa"/><category term="color"/><category term="couchdb"/><category term="db cluster"/><category term="deadlock"/><category term="duplicate"/><category term="ebook"/><category term="erlyweb"/><category term="es"/><category term="facebook"/><category term="fastdfs"/><category term="field combine"/><category term="framework"/><category term="gif"/><category term="handlerSocket"/><category term="hash"/><category term="iOS"/><category term="image"/><category term="j2ee"/><category term="jreport"/><category term="mail"/><category term="mobile"/><category term="page cache"/><category term="pdf"/><category term="physics engine"/><category term="play framework"/><category term="publish"/><category term="reference"/><category term="scheduling job"/><category term="selenium"/><category term="simpledb"/><category term="sqlite3"/><category term="system"/><category term="three20"/><category term="tool"/><category term="tooltips"/><category term="unicode"/><category term="學英文"/><category term="敏捷開發"/><category term="日本人。。"/><category term="自動化"/><category term="行為"/><title type='text'>陳占的開發社區</title><subtitle type='html'>只要相信這是對的。。。它永遠不會錯。。。</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>202</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-6719513443668079839</id><published>2013-05-12T18:53:00.001-07:00</published><updated>2013-05-12T18:53:14.723-07:00</updated><title type='text'>Better Fontend Development framework</title><content type='html'>1.Bootstrap by Twitter&lt;br /&gt;
&lt;a href=&quot;http://twitter.github.io/bootstrap/&quot;&gt;http://twitter.github.io/bootstrap/&lt;/a&gt;&lt;br /&gt;
This is a easy one for developer who without designer support.&lt;br /&gt;
&lt;br /&gt;
2. Spinejs&lt;br /&gt;
&lt;a href=&quot;http://spinejs.com/&quot;&gt;http://spinejs.com/&lt;/a&gt;&lt;br /&gt;
I love this one better than backbonejs. MVC Framework.&lt;br /&gt;
More easily to understand. If you know coffeescript, less code!!!&lt;br /&gt;
&lt;br /&gt;
3. AngularJS&lt;br /&gt;
&lt;a href=&quot;http://angularjs.org/&quot;&gt;http://angularjs.org/&lt;/a&gt;&lt;br /&gt;
A good Frontend MVC Framework.&lt;br /&gt;
Great but not easy to handle.&lt;br /&gt;
&lt;br /&gt;
4.Initializr&lt;br /&gt;
&lt;a href=&quot;http://www.initializr.com/&quot;&gt;http://www.initializr.com/&lt;/a&gt;&lt;br /&gt;
Easy to generate HTML5 template combine with Modernizr, Bootstrap and let the website Responsive!!&lt;br /&gt;
&lt;br /&gt;
5.Zepto.JS&lt;br /&gt;
&lt;a href=&quot;http://zeptojs.com/&quot;&gt;http://zeptojs.com/&lt;/a&gt;&lt;br /&gt;
Jquery compatible API. less size.&lt;br /&gt;
Shit...it&#39;s not support IE...So mostly i use it with Phonegap.&lt;br /&gt;
&lt;br /&gt;
Extra one:&lt;br /&gt;
Less / SCSS&lt;br /&gt;
OMG...they are css framework.&lt;br /&gt;
Let your css can be programable.&lt;br /&gt;
&lt;br /&gt;
If you know this five or four of them, you can find a frontend development.(Not include Hong Kong. They don&#39;t know this few of tools.)&lt;br /&gt;
&lt;br /&gt;
In here more&amp;nbsp;advance&amp;nbsp;tools for you and me.&lt;br /&gt;
&lt;br /&gt;
1.Yeoman&lt;br /&gt;
&lt;a href=&quot;http://yeoman.io/&quot;&gt;http://yeoman.io/&lt;/a&gt;&lt;br /&gt;
Moden web develop new workflow.&lt;br /&gt;
&lt;br /&gt;
Don&#39;t worry...Try and learn....&lt;br /&gt;
&lt;br /&gt;
You are not alone. XD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/6719513443668079839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/6719513443668079839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6719513443668079839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6719513443668079839'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2013/05/better-fontend-development-framework.html' title='Better Fontend Development framework'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-3738835761847410175</id><published>2012-08-24T19:23:00.002-07:00</published><updated>2012-08-24T19:23:14.206-07:00</updated><title type='text'>Rails 3.2 Rack install</title><content type='html'>&lt;br /&gt;
&lt;div style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
As of Rails 3.2, Rack middleware belongs in the app/middleware directory.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
It works &quot;out-of-the-box&quot; without any explicit require statements.&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
Quick example:&lt;/div&gt;
&lt;div style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
I&#39;m using a middleware class called&amp;nbsp;&lt;strong style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;CanonicalHost&lt;/strong&gt;&amp;nbsp;which is implemented in&lt;strong style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;app/middleware/canonical_host.rb&lt;/strong&gt;. I&#39;ve added the following line to production.rb (&lt;strong style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;note&lt;/strong&gt;&amp;nbsp;that the middleware class is explicitly given, rather than as a quoted string):&lt;/div&gt;
&lt;pre class=&quot;default prettyprint&quot; style=&quot;background-color: #eeeeee; border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; max-height: 600px; overflow: auto; padding: 5px; text-align: left; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;middleware&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-color: transparent; border: 0px; color: darkblue; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;background-color: transparent; border: 0px; color: #2b91af; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;CanonicalHost&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;background-color: transparent; border: 0px; color: maroon; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;example.com&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-color: transparent; border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: white; border: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; padding: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;
This works as desired.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/3738835761847410175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/3738835761847410175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3738835761847410175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3738835761847410175'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2012/08/rails-32-rack-install.html' title='Rails 3.2 Rack install'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-7248224511696888802</id><published>2012-03-12T22:54:00.000-07:00</published><updated>2012-03-12T22:54:02.756-07:00</updated><title type='text'>A new micro clearfix hack</title><content type='html'>&lt;a href=&quot;http://nicolasgallagher.com/micro-clearfix-hack/&quot;&gt;http://nicolasgallagher.com/micro-clearfix-hack/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/7248224511696888802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/7248224511696888802' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/7248224511696888802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/7248224511696888802'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2012/03/new-micro-clearfix-hack.html' title='A new micro clearfix hack'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-2245426946454359659</id><published>2011-12-29T22:22:00.001-08:00</published><updated>2011-12-29T22:22:33.596-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="tool"/><title type='text'>HTML5 Tools</title><content type='html'>&lt;a href=&quot;http://sd.csdn.net/a/20110825/303611.html&quot;&gt;http://sd.csdn.net/a/20110825/303611.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://sd.csdn.net/a/20111009/305365.html&quot;&gt;http://sd.csdn.net/a/20111009/305365.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/2245426946454359659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/2245426946454359659' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2245426946454359659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2245426946454359659'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/12/html5-tools.html' title='HTML5 Tools'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-8844210710046930191</id><published>2011-12-21T01:08:00.000-08:00</published><updated>2011-12-21T01:08:12.618-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="UX"/><category scheme="http://www.blogger.com/atom/ns#" term="web"/><title type='text'>Funny web for development web and mobile</title><content type='html'>&lt;a href=&quot;http://teamtreehouse.com/&quot;&gt;http://teamtreehouse.com/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/8844210710046930191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/8844210710046930191' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/8844210710046930191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/8844210710046930191'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/12/funny-web-for-development-web-and.html' title='Funny web for development web and mobile'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-5768835433304432668</id><published>2011-12-20T00:50:00.000-08:00</published><updated>2011-12-20T00:50:08.699-08:00</updated><title type='text'>Android Application, Android Libraries and Jar Libraries</title><content type='html'>&lt;a href=&quot;http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/&quot;&gt;http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
呢排做野...要包jar...終於搵到方法包啦...今晚試試...XD</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/5768835433304432668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/5768835433304432668' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/5768835433304432668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/5768835433304432668'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/12/android-application-android-libraries.html' title='Android Application, Android Libraries and Jar Libraries'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-2271827609277660015</id><published>2011-11-21T01:49:00.001-08:00</published><updated>2011-11-21T01:49:51.683-08:00</updated><title type='text'>Simple JQuery Image Slide Show with Semi-Transparent Caption</title><content type='html'>&lt;a href=&quot;http://www.queness.com/post/1450/jquery-photo-slide-show-with-slick-caption-tutorial-revisited&quot;&gt;http://www.queness.com/post/1450/jquery-photo-slide-show-with-slick-caption-tutorial-revisited&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.queness.com/post/152/simple-jquery-image-slide-show-with-semi-transparent-caption&quot;&gt;http://www.queness.com/post/152/simple-jquery-image-slide-show-with-semi-transparent-caption&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/2271827609277660015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/2271827609277660015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2271827609277660015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2271827609277660015'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/11/simple-jquery-image-slide-show-with.html' title='Simple JQuery Image Slide Show with Semi-Transparent Caption'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-6989700890074755056</id><published>2011-10-07T08:47:00.001-07:00</published><updated>2011-10-07T08:47:45.873-07:00</updated><title type='text'>CSS 選取器（Selector）種類簡介</title><content type='html'>&lt;a href=&quot;http://www.fishbecat.com/2010/03/css-selector.html&quot;&gt;http://www.fishbecat.com/2010/03/css-selector.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/6989700890074755056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/6989700890074755056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6989700890074755056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6989700890074755056'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/10/css-selector.html' title='CSS 選取器（Selector）種類簡介'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-2079785420987266748</id><published>2011-08-13T00:10:00.000-07:00</published><updated>2011-08-13T01:22:29.745-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Brisk"/><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rail"/><title type='text'>Fedora 15 install Brisk and ruby on rails</title><content type='html'>First download Fedora 15 : )&lt;br /&gt;
Install it in vm or PC&lt;br /&gt;
&lt;br /&gt;
Setup SSH : ) ( &lt;a href=&quot;http://www.labtestproject.com/linnet/setup_ssh_server.html&quot;&gt;Ref.link &lt;/a&gt;)&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 16px;&quot;&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h1 style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 1.7em; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Basic Setup SSH Server on Fedora.&lt;/h1&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;Usually the ssh is install by default on the installation of Fedora operating system itself.&amp;nbsp; The article below show the step of the basic setup of ssh server on Fedora Linux operating system.&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;1.&amp;nbsp; Open X terminal.&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;img alt=&quot;X terminal.&quot; border=&quot;0&quot; height=&quot;124&quot; src=&quot;http://www.labtestproject.com/files/linux_network/x_terminal.png&quot; style=&quot;border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px;&quot; width=&quot;395&quot; /&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;h2 style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 1.2em; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Checking SSH server status.&lt;/h2&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Using the service command to check the current status of the sshd.&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ~]#&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #004200; font-family: &#39;Courier New&#39;;&quot;&gt;service sshd status&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;sshd is stopped&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ~]#&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 1.2em; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Start SSH server.&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Start the sshd process using service command.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ~]#&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #004200; font-family: &#39;Courier New&#39;;&quot;&gt;service sshd start&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;Starting sshd:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&amp;nbsp; OK&amp;nbsp; ]&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ~]#&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;h2 style=&quot;font-family: Helvetica, Arial, sans-serif; font-size: 1.2em; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;Automatically start SSH server.&lt;/h2&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&amp;nbsp;&amp;nbsp; Using the chkconfig command to enable and make sure that every time the system restart, the SSH (sshd deamon) start automatically.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;1.&amp;nbsp; Check current configuration status of sshd.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #004200; font-family: &#39;Courier New&#39;;&quot;&gt;chkconfig --list sshd&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;sshd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:off&amp;nbsp;&amp;nbsp; 1:off&amp;nbsp;&amp;nbsp; 2:off&amp;nbsp;&amp;nbsp; 3:off&amp;nbsp;&amp;nbsp; 4:off&amp;nbsp;&amp;nbsp; 5:off&amp;nbsp;&amp;nbsp; 6:off&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;2.&amp;nbsp; Using the chkconfig to automatically start the SSH on runlevel 3, 4 and runlevel 5.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #004200; font-family: &#39;Courier New&#39;;&quot;&gt;chkconfig --level 345 sshd on&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;3.&amp;nbsp; Verify the change for shhd on runlevel 3, 4 and runlevel 5.&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #004200; font-family: &#39;Courier New&#39;;&quot;&gt;chkconfig --list sshd&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;color: green; font-family: &#39;Courier New&#39;;&quot;&gt;sshd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:off&amp;nbsp;&amp;nbsp; 1:off&amp;nbsp;&amp;nbsp; 2:off&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: yellow; font-weight: 700;&quot;&gt;3:on&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: yellow; font-weight: 700;&quot;&gt;4:on&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;background-color: yellow; font-weight: 700;&quot;&gt;5:on&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6:off&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;&lt;b&gt;[root@tenouk ssh]#&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Install Java For Brisk:(&lt;a href=&quot;http://www.mjmwired.net/resources/mjm-fedora-f12.html#java&quot;&gt;Ref. link&lt;/a&gt; )&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;&lt;b&gt;&lt;u&gt;Using Sun Java Instead&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;If you require Sun Java or if OpenJDK does not work properly, you can download Sun Java and use it in Fedora.&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;Download the Java package from:&lt;br /&gt;
&lt;a href=&quot;http://java.sun.com/javase/downloads/index.jsp&quot; target=&quot;_blank&quot;&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;. Always use the&amp;nbsp;&lt;b&gt;latest update&lt;/b&gt;.&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;Select:&amp;nbsp;&lt;i&gt;Java&amp;nbsp;&lt;b&gt;JRE&lt;/b&gt;&amp;nbsp;6 Update 18&lt;/i&gt;&amp;nbsp;(the JDK is for developers)&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;On the next page, for Platform select&amp;nbsp;&lt;em&gt;&quot;Linux&quot;&lt;/em&gt;&amp;nbsp;for 32-bit users, and&amp;nbsp;&lt;em&gt;&quot;Linux x64&quot;&lt;/em&gt;&amp;nbsp;for 64-bit users.&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;For Language select &quot;Multi-language&quot;. Also accept the license agreement, and hit &quot;Continue&quot;.&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;On the next page, select the&amp;nbsp;&lt;b&gt;&lt;tt style=&quot;background-color: #eeeeee;&quot;&gt;RPM&lt;/tt&gt;&lt;/b&gt;&amp;nbsp;option:&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #dddddd; border-bottom-color: rgb(0, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(0, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(0, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(0, 0, 0); border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;Java SE Runtime Environment 6u17
jre-6u18-linux-i586-&lt;b&gt;rpm.bin&lt;/b&gt;     (&lt;em&gt;32-bit users&lt;/em&gt;)

jre-6u18-linux-x64-&lt;b&gt;rpm.bin&lt;/b&gt;      (&lt;em&gt;64-bit users&lt;/em&gt;) 
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;&quot;&gt;To install:&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;pre style=&quot;background-color: #dddddd; border-bottom-color: rgb(0, 0, 0); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(0, 0, 0); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(0, 0, 0); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(0, 0, 0); border-top-style: solid; border-top-width: 1px; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: auto; overflow-y: auto; padding-bottom: 1em; padding-left: 1em; padding-right: 1em; padding-top: 1em;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;[mirandam@charon Download]$ &lt;a href=&quot;http://www.mjmwired.net/resources/mjm-fedora-f12.html#sudo&quot;&gt;sudo&lt;/a&gt; sh jre-6u18-linux-i586-rpm.bin
-OR-
[mirandam@charon Download]$ sudo sh jre-6u18-linux-x64-rpm.bin&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;Install Brisk&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times;&quot;&gt;&lt;a href=&quot;http://www.datastax.com/docs/0.8/brisk/about_brisk&quot;&gt;About Brisk: Hadoop Powered by Cassandra&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Install ruby&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;using yum, by default is 1.8.7 so we need rvm&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;yum install git&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;yum install gcc&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;b&gt;&lt;u&gt;Install rvm&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;bash &amp;lt; &amp;lt;(curl -s https://rvm.beginrescueend.com/install/rvm)&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;if you need to use head version ruby, you also need this.&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;rvm pkg install zlib&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;a href=&quot;http://osc.co.cr/2011/06/omg-ruby-and-rails/&quot;&gt;http://osc.co.cr/2011/06/omg-ruby-and-rails/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;Install sqlite3 &amp;nbsp;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px;&quot;&gt;&lt;strong style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;yum install sqlite-devel&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-size: 14px; line-height: 18px;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;border-collapse: collapse; font-size: 14px; line-height: 18px;&quot;&gt;&lt;b&gt;After that using bundle to update.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;font-family: geneva, arial, verdana, lucida, helvetida, sans-serif;&quot;&gt;P.S. What the hell!!! gem update need a sudo??=_=凸&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/2079785420987266748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/2079785420987266748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2079785420987266748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2079785420987266748'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/fedora-15-install-brisk-and-ruby-on.html' title='Fedora 15 install Brisk and ruby on rails'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-814001251183179334</id><published>2011-08-08T01:18:00.000-07:00</published><updated>2011-08-08T01:18:01.383-07:00</updated><title type='text'>CSS Properties Index – Jens O. Meiert</title><content type='html'>&lt;div&gt;Finally i got it.&lt;/div&gt;&lt;div&gt;Haha...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href=&quot;http://meiert.com/en/indices/css-properties/&quot;&gt;CSS Properties Index – Jens O. Meiert&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/814001251183179334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/814001251183179334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/814001251183179334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/814001251183179334'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/css-properties-index-jens-o-meiert.html' title='CSS Properties Index – Jens O. Meiert'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-2952101040582941272</id><published>2011-08-04T01:16:00.000-07:00</published><updated>2011-08-04T01:16:26.748-07:00</updated><title type='text'>Contact Us - Conversion University Help</title><content type='html'>&lt;a href=&quot;http://www.google.com/support/conversionuniversity/bin/request.py?hl=en&amp;amp;contact_type=indexSplash&amp;amp;rd=1&quot;&gt;Contact Us - Conversion University Help&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/2952101040582941272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/2952101040582941272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2952101040582941272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2952101040582941272'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/contact-us-conversion-university-help.html' title='Contact Us - Conversion University Help'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-4196196152402030882</id><published>2011-08-03T21:54:00.000-07:00</published><updated>2011-08-03T21:54:24.356-07:00</updated><title type='text'>Thin + Nginx with Rails | Software Development and more …</title><content type='html'>&lt;a href=&quot;http://glauche.de/2008/01/12/thin-nginx-with-rails/&quot;&gt;Thin + Nginx with Rails | Software Development and more …&lt;/a&gt;: &quot;ApacheBench&quot;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/4196196152402030882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/4196196152402030882' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4196196152402030882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4196196152402030882'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/thin-nginx-with-rails-software.html' title='Thin + Nginx with Rails | Software Development and more …'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-7448062816119075407</id><published>2011-08-01T19:49:00.000-07:00</published><updated>2011-08-01T19:49:11.079-07:00</updated><title type='text'>Raphaël—JavaScript Library for vector graphic</title><content type='html'>&lt;a href=&quot;http://raphaeljs.com/&quot;&gt;Raphaël—JavaScript Library&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/7448062816119075407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/7448062816119075407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/7448062816119075407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/7448062816119075407'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/raphaeljavascript-library-for-vector.html' title='Raphaël—JavaScript Library for vector graphic'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-80527824982737360</id><published>2011-08-01T19:21:00.000-07:00</published><updated>2011-08-01T19:21:56.429-07:00</updated><title type='text'>Essential TextMate Shortcuts, Tips and Techniques</title><content type='html'>&lt;meta equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;&gt; &lt;meta equiv=&quot;Content-Style-Type&quot; content=&quot;text/css&quot;&gt; &lt;title&gt;&lt;/title&gt; &lt;meta name=&quot;Generator&quot; content=&quot;Cocoa HTML Writer&quot;&gt; &lt;meta name=&quot;CocoaVersion&quot; content=&quot;1038.36&quot;&gt; &lt;style type=&quot;text/css&quot;&gt; p.p1 {margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Helvetica} p.p2 {margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p3 {margin: 0.0px 0.0px 6.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p4 {margin: 0.0px 0.0px 14.0px 0.0px; font: 18.0px Helvetica} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco} p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px} p.p7 {margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px} p.p8 {margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Helvetica; color: #144fae} p.p10 {margin: 0.0px 0.0px 14.0px 0.0px; font: 14.0px Helvetica} p.p11 {margin: 0.0px 0.0px 0.0px 0.0px; font: 19.0px Helvetica; color: #144fae} li.li9 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #144fae} span.s1 {text-decoration: underline ; color: #144fae} span.s2 {font: 10.0px Monaco} span.s3 {color: #000000} span.s4 {text-decoration: underline} span.s5 {font: 19.0px Helvetica; text-decoration: underline} ul.ul1 {list-style-type: disc} &lt;/style&gt;   &lt;p class=&quot;p1&quot;&gt;Even after six years, &lt;a href=&quot;http://macromates.com/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;TextMate&lt;/span&gt;&lt;/a&gt; is still considered by many to be the best code editor available for Mac. The reason why is simple: it’s incredibly powerful, and offers features that even the newest editors don’t yet offer. Add a robust plugin/bundle community on top of it, and you get one heck of a code editor.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;I’ll show you some of my favorite shortcuts and tricks today.&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;1 – Vertically Select Text&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Option + Drag&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;If you hold down the &lt;span class=&quot;s2&quot;&gt;Option&lt;/span&gt; key, and drag the mouse, you’ll vertically select text. This can be particularly helpful when you need to update a block of text.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;For example, let’s say we decide to remove the extra unnecessary &lt;span class=&quot;s2&quot;&gt;var&lt;/span&gt; keywords from a bit of JavaScript? With vertical selection, this takes only a second.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;2 – Alignment&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt; Option + Command + ]&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Many developers prefer to line up the symbols within arrays and objects. For example, rather than…&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;var kimberly = &#39;valley girl&#39;,&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;    omg = &#39;oh my god!&#39;,&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;    bieber = &#39;my home boy&#39;;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;…many prefer:&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;var kimberly = &#39;valley girl&#39;,&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;    omg      = &#39;oh my god!&#39;,&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;    bieber   = &#39;my home boy&#39;;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;This certainly makes for more readable code. If you’ve been lining up the equal signs manually, TextMate automates the process. Place the cursor on one of the related lines, press &lt;span class=&quot;s2&quot;&gt;Option + Command + ]&lt;/span&gt;, and TextMate will take care of the rest.&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;3 – Incremental Search&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Control + &lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;While the standard “popup” &lt;span class=&quot;s2&quot;&gt;Command + f&lt;/span&gt; search functionality works, it’s decidedly slow. If you need to quickly search for a piece of text within the current page, use &lt;span class=&quot;s2&quot;&gt;Control + s&lt;/span&gt; instead to perform incremental search.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;A tiny textbox will pop up at the bottom of the screen. Once you’ve added your search query, press &lt;span class=&quot;s2&quot;&gt;enter&lt;/span&gt;, and you’ll instantly be transported to the next occurrence of that sequence on the page. To continue searching, again, press &lt;span class=&quot;s2&quot;&gt;Control + s&lt;/span&gt; and &lt;span class=&quot;s2&quot;&gt;Control + Shift + s&lt;/span&gt; to continue forward and backward, respectively.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;4 – Set Bookmarks&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Command + F2 &lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;One of my favorite features in Vim is the ability to create “bookmarks” in your projects. This then allows you to immediately return to that line of code with a simple keystroke.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;TextMate offers this functionality as well. To &lt;i&gt;star&lt;/i&gt;, or bookmark a line of code, place the cursor on that line, and type &lt;span class=&quot;s2&quot;&gt;Command + F2&lt;/span&gt;.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;To return to this line of code (for instance, after scrolling up the page to find a particular variable name), type &lt;span class=&quot;s2&quot;&gt;F2&lt;/span&gt;. If you have multiple starred lines, each time you press &lt;span class=&quot;s2&quot;&gt;F2&lt;/span&gt;, you’ll be taken to the next applicable location.&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;5 – Save Time with Macros&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Option + Command + m&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Let’s imagine that there’s a sequence of actions you find yourself performing often. For example, what if you find – like I have – that you frequently change the entire contents of an HTML tag. Vim offers the ever convenient, &lt;span class=&quot;s2&quot;&gt;cit&lt;/span&gt; command (change inner tag).&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;If you have the &lt;a href=&quot;http://code.google.com/p/zen-coding/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Zen Coding&lt;/span&gt;&lt;/a&gt; bundle installed, you can type &lt;span class=&quot;s2&quot;&gt;Command + D&lt;/span&gt; to achieve the same effect. However, if you find that you often forget this shortcut, you can always record macros that will repeat any sequence of events as many times as your require.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;To begin a macro, type &lt;span class=&quot;s2&quot;&gt;Option + Command + M&lt;/span&gt;; you’ll see a red &lt;i&gt;recording&lt;/i&gt; circle in the lower right portion of the editor. At this point, TextMate is now listening to every action you perform. In our simple example, we only need to type &lt;span class=&quot;s2&quot;&gt;Command + D&lt;/span&gt; (balance tag), and then &lt;span class=&quot;s2&quot;&gt;Delete&lt;/span&gt; to remove the text.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;To conclude your recording, type the same sequence again: &lt;span class=&quot;s2&quot;&gt;Option + Command + M&lt;/span&gt;. You may now repeat this sequence whenever you wish by typing &lt;span class=&quot;s2&quot;&gt;Shift + Command + M&lt;/span&gt;.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Note that, when you create a macro in this way, it’s meant to be a temporary solution. Once you create a new macro, or restart the editor, you will lose you recording. For a more permanent solution, you should following #6 in this list!&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;6 – Create Permanent Macros&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Control + Command + m&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;More often than not, you’ll need to access a variety of macros each day. You can record permanent macros in the same way that you did in #5 of this list. Once finished recording, type &lt;span class=&quot;s2&quot;&gt;Control + Command + M&lt;/span&gt; to save the macro.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Once you do, a dialog box will pop up, where you can then assign a custom activation key sequence for future retrieval.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;I often find myself typing:&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;echo &#39;&lt;/p&gt;&lt;pre&gt;&#39;;&lt;p&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;print_r($variable);&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;echo &#39;&lt;/p&gt;&lt;/pre&gt;&#39;;&lt;p&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Let’s create a custom macro to do the work for us. We begin by creating a macro, as outlined in #5. This macro will assume that our variable is stored within the clipboard. Type the snippet of code above manually as you normally would. When you get to &lt;span class=&quot;s2&quot;&gt;print_r()&lt;/span&gt;, press &lt;span class=&quot;s2&quot;&gt;Command + v&lt;/span&gt; to paste in the contents of the clipboard. Once finished, press &lt;span class=&quot;s2&quot;&gt;Option + Command + m&lt;/span&gt; to conclude the macro.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Next, press &lt;span class=&quot;s2&quot;&gt;Control + Command + m&lt;/span&gt; to save your macro; assign a tab trigger of &lt;span class=&quot;s2&quot;&gt;debug&lt;/span&gt;, and you’re finished!&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;From now on, to &lt;span class=&quot;s2&quot;&gt;print_r&lt;/span&gt; an &lt;span class=&quot;s2&quot;&gt;array&lt;/span&gt; or &lt;span class=&quot;s2&quot;&gt;object&lt;/span&gt;, simply copy the variable name to your clipboard, and type &lt;span class=&quot;s2&quot;&gt;debug + TAB&lt;/span&gt;.&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;7 – Clipboard History&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Control + Shift + Command + v&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Many aren’t aware that TextMate has built-in clipboard history.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;“By pressing &lt;span class=&quot;s2&quot;&gt;⌃⌥⌘V&lt;/span&gt;, you will see the list of all previous clippings and can pick the one you want to paste using arrow keys. Use return to insert it and escape to dismiss the list. If you dismiss the list, the currently selected clipping will be what gets pasted the next time you use the paste function.”&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;This is an incredibly useful feature that you’ll find yourself using constantly!&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;8 – Execute Shell Scripts&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;In addition to simple snippets, TextMate can also execute shell scripts. This means that all of the various web services are available for usage!&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;We’ll use my upcoming &lt;a href=&quot;http://prefixr.com/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Prefixr&lt;/span&gt;&lt;/a&gt; service as an example. It allows you to automatically update a stylesheet to include the various prefix’ized versions of the new CSS3 properties. That way, you can code your stylesheets using the official W3C-recommended versions of each property, and Prefixr will fix in the &lt;i&gt;missing pieces&lt;/i&gt;.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;To hook into Prefixr’s HTTP-based API, create a new command in TextMate.&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Control + Shift + Command + B&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Next, add a new &lt;span class=&quot;s2&quot;&gt;Command&lt;/span&gt;, and paste in the following shell script.&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;curl -sSG &quot;&lt;a href=&quot;http://www.prefixr.com/api/index.php&quot;&gt;&lt;span class=&quot;s1&quot;&gt;http://www.prefixr.com/api/index.php&lt;/span&gt;&lt;/a&gt;&quot; --data-urlencode &quot;css=$TM_SELECTED_TEXT&quot;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;This instructs TextMate to run a shell script that performs a &lt;span class=&quot;s2&quot;&gt;curl&lt;/span&gt; request to &lt;a href=&quot;http://prefixr.com/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Prefixr.com&lt;/span&gt;&lt;/a&gt;. In the querystring, it passes the contents of what the TextMate user has selected with his mouse. That content is automatically represented, via the &lt;span class=&quot;s2&quot;&gt;$TM_SELECTED_TEXT&lt;/span&gt; environment variable.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Note that we’re using the &lt;span class=&quot;s2&quot;&gt;--data-urlencode&lt;/span&gt; parameter to ensure that the text you select is properly escaped and url encoded.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Lastly, assign a keyboard shortcut to execute this command, and you’re done! To use it, select your entire stylesheet (or a single CSS3 property), and type the shortcut that you specified. Your code will immediately be updated accordingly.&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;/* Before... */&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;#content {&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt; border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt; box-shadow: 30px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;}&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;/* After... */&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;#content {&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt; -webkit-border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-moz-border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-o-border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-ms-border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-khtml-border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;border-radius: 5px;&lt;/p&gt; &lt;p class=&quot;p7&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-webkit-box-shadow: 30px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;-moz-box-shadow: 30px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;box-shadow: 30px;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;}&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Pretty nifty, ay?&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;9 – Auto-complete&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Escape&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Most IDEs offer the ability to autocomplete code – like method calls and variable references – typically by typing &lt;span class=&quot;s2&quot;&gt;Control + Space&lt;/span&gt;. TextMate offers a similar feature, but via the &lt;span class=&quot;s2&quot;&gt;Escape&lt;/span&gt; key instead. The key choice is a bit odd, but, of course, you can always map this to a different shortcut if you prefer. Simply type part of a variable or method name, press &lt;span class=&quot;s2&quot;&gt;Escape&lt;/span&gt;, and TextMate will attempt to complete the word for you.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;If you’d prefer project-wide autocompletion, you can also use &lt;span class=&quot;s2&quot;&gt;Command + ;&lt;/span&gt;.&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;10 – Turbo-Charge the Editor&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Ciarán Walsh, a few years ago, created &lt;a href=&quot;http://ciaranwal.sh/2008/08/05/textmate-plug-in-projectplus&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Project Plus&lt;/span&gt;&lt;/a&gt;, which enhances TextMate in a number of ways – the most noticeable being that it replaces the often criticized elastic sidebar with a more traditional one.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;It also offers excellent, status badges to keep track of – for Git purposes – which files have changed since last being committed.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;11 – Switch the Page Language&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Shift + Control + Option + {First-letter-of-language-choice}&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Dependent upon which language you specify for a page (set automatically by default), you’ll have access to different syntax highlighting and commands.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Chances are, you’ll find yourself updating this often. It can be done manually by clicking the &lt;b&gt;L&lt;/b&gt; button at the bottom of the editor.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;This is a drag though. You can speed things up by typing &lt;span class=&quot;s2&quot;&gt;Shift + Control + Option + {First-letter-of-language-choice}&lt;/span&gt;. For instance, if I want to change the page language to CSS, I’d type &lt;span class=&quot;s2&quot;&gt;Shift + Control + Option + C&lt;/span&gt;.&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;12 – Download Custom Bundles&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;You’re certainly not limited to the dozen or so bundles that come preinstalled with TextMate. There’s a hugely robust community; you can download bundles and extensions for just about any language imaginable. A quick search on &lt;a href=&quot;https://github.com/search?type=Everything&amp;amp;language=&amp;amp;q=tmbundle&amp;amp;repo=&amp;amp;langOverride=&amp;amp;x=0&amp;amp;y=0&amp;amp;start_value=1&quot;&gt;&lt;span class=&quot;s1&quot;&gt;GitHub&lt;/span&gt;&lt;/a&gt; will return hundreds of results.&lt;/p&gt; &lt;p class=&quot;p8&quot;&gt;&lt;span class=&quot;s3&quot;&gt;Download Nettuts’ &lt;a href=&quot;https://github.com/NETTUTS/CSS3-TextMate-Bundle&quot;&gt;&lt;span class=&quot;s4&quot;&gt;CSS3 TextMate bundle.&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;13 – Search for a Command&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Control + Command + T&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;There’s no denying it: it’s really difficult to remember all of these various commands. Rather than falling back to using the mouse and menu selections, instead type &lt;span class=&quot;s2&quot;&gt;Control + Command + T&lt;/span&gt;. This will bring up a popup box, where you can then search for your desired command or snippet.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;14 – Full Screen Mode in Lion&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;Now that Lion is officially available to the public, you can upgrade TextMate to provide full screen support, using &lt;a href=&quot;https://github.com/enormego/EGOTextMateFullScreen&quot;&gt;&lt;span class=&quot;s1&quot;&gt;this plugin.&lt;/span&gt;&lt;/a&gt;&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;15 – Speedy File Opening&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p5&quot;&gt;Command + T&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;If you’re the type who &lt;i&gt;requires&lt;/i&gt; lightning fast file switching, TextMate provides a built-in utility for opening files. Press &lt;span class=&quot;s2&quot;&gt;Command + T&lt;/span&gt; to activate it.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;However, if you’d prefer something a bit more robust and fuzzy, I highly recommend looking into &lt;a href=&quot;http://peepcode.com/products/peepopen&quot;&gt;&lt;span class=&quot;s1&quot;&gt;PeepOpen&lt;/span&gt;&lt;/a&gt;, which works in a variety of editors. In addition to TextMate, I also use it in Vim.&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;” Search on both paths and filenames, and easily open the file in your text editor with a single keypress. Useful metadata helps you quickly choose the file you’re looking for.”&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;ul class=&quot;ul1&quot;&gt; &lt;li class=&quot;li9&quot;&gt;&lt;a href=&quot;http://net.tutsplus.com/tutorials/other/vim-essential-plugin-peepopen/&quot;&gt;&lt;span class=&quot;s4&quot;&gt;Learn more about PeepOpen&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;s3&quot;&gt; on Nettuts+&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;16 – FTP Access&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;An advantage that &lt;a href=&quot;http://net.tutsplus.com/espressoapp.com&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Espresso&lt;/span&gt;&lt;/a&gt; and &lt;a href=&quot;http://www.panic.com/coda/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Coda&lt;/span&gt;&lt;/a&gt; have over TextMate is that they offer built-in FTP access. This makes the process of editing files on your server as easy as possible. While TextMate doesn’t have a native solution to this problem, most Mac developers also use Panic’s popular &lt;a href=&quot;http://www.panic.com/transmit/&quot;&gt;&lt;span class=&quot;s1&quot;&gt;Transmit&lt;/span&gt;&lt;/a&gt; app.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;We can use these two apps in tandem to edit files on our servers. Transmit offers the ability to &lt;i&gt;mount&lt;/i&gt; a directory on your computer.&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;With your server directory mounted, you can now open the directory from within TextMate. Each time you save a file, it will automatically be updated on your server as well. An elegant solution to a common gripe!&lt;/p&gt; &lt;p class=&quot;p3&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p4&quot;&gt;&lt;b&gt;That’s All for Now!&lt;/b&gt;&lt;/p&gt; &lt;p class=&quot;p1&quot;&gt;I’ve barely scratched the surface of TextMate’s power. What are your favorite shortcuts and tricks? Let me know in the comments, and I just might update this article with your tip!&lt;/p&gt; &lt;p class=&quot;p10&quot;&gt;&lt;b&gt;More TextMate Articles from Nettuts+&lt;/b&gt;&lt;/p&gt; &lt;ul class=&quot;ul1&quot;&gt; &lt;li class=&quot;li9&quot;&gt;&lt;a href=&quot;http://net.tutsplus.com/freebies/others/full-codeigniter-textmate-bundle/&quot;&gt;&lt;span class=&quot;s4&quot;&gt;CodeIgniter Bundle&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li class=&quot;li9&quot;&gt;&lt;a href=&quot;http://net.tutsplus.com/tutorials/tools-and-tips/quick-tip-use-textmate-bundles-to-increase-your-productivity/&quot;&gt;&lt;span class=&quot;s4&quot;&gt;Use TextMate Bundles to Increase your Productivity&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;li class=&quot;li9&quot;&gt;&lt;a href=&quot;http://net.tutsplus.com/articles/news/learn-how-to-be-a-textmate-champion-new-plus-tutorial/&quot;&gt;&lt;span class=&quot;s4&quot;&gt;Learn How to Be a TextMate Champion&lt;/span&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p class=&quot;p1&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;    &lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class=&quot;p11&quot;&gt;&lt;span class=&quot;s4&quot;&gt;&lt;a href=&quot;http://feedproxy.google.com/~r/nettuts/~3/wnUKqxYNgCI/&quot;&gt;http://feedproxy.google.com/~r/nettuts/~3/wnUKqxYNgCI/&lt;span class=&quot;s5&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p6&quot;&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/80527824982737360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/80527824982737360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/80527824982737360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/80527824982737360'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/08/essential-textmate-shortcuts-tips-and.html' title='Essential TextMate Shortcuts, Tips and Techniques'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-2562540228363757109</id><published>2011-07-24T20:50:00.000-07:00</published><updated>2011-07-24T20:50:32.878-07:00</updated><title type='text'>MySQL :: MySQL 5.0 Reference Manual :: E.3 Restrictions on Subqueries</title><content type='html'>&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/subquery-restrictions.html&quot;&gt;MySQL :: MySQL 5.0 Reference Manual :: E.3 Restrictions on Subqueries&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Good for reference&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/2562540228363757109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/2562540228363757109' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2562540228363757109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/2562540228363757109'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/mysql-mysql-50-reference-manual-e3.html' title='MySQL :: MySQL 5.0 Reference Manual :: E.3 Restrictions on Subqueries'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-6362417651035922254</id><published>2011-07-20T21:50:00.000-07:00</published><updated>2011-07-20T21:50:28.813-07:00</updated><title type='text'>Continuous Integration Testing for Ruby on Rails with Integrity – Elabs</title><content type='html'>&lt;a href=&quot;http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity&quot;&gt;Continuous Integration Testing for Ruby on Rails with Integrity – Elabs&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/6362417651035922254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/6362417651035922254' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6362417651035922254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/6362417651035922254'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/continuous-integration-testing-for-ruby.html' title='Continuous Integration Testing for Ruby on Rails with Integrity – Elabs'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-4332742780537283937</id><published>2011-07-14T00:36:00.000-07:00</published><updated>2011-07-14T00:36:06.671-07:00</updated><title type='text'>種植莫絲/鹿角苔的條件(页 1) - 水草种植 - 宝贝鱼乐园 -全球中文水族联盟 - Powered by Discuz! Archiver</title><content type='html'>&lt;a href=&quot;http://www.babe-fish.net/archiver/tid-532.html&quot;&gt;種植莫絲/鹿角苔的條件(页 1) - 水草种植 - 宝贝鱼乐园 -全球中文水族联盟 - Powered by Discuz! Archiver&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/4332742780537283937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/4332742780537283937' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4332742780537283937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4332742780537283937'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/1-powered-by-discuz-archiver.html' title='種植莫絲/鹿角苔的條件(页 1) - 水草种植 - 宝贝鱼乐园 -全球中文水族联盟 - Powered by Discuz! Archiver'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-5767978778814543213</id><published>2011-07-13T21:24:00.000-07:00</published><updated>2011-07-13T21:24:24.393-07:00</updated><title type='text'>10 TextMate bundles/plugins to boost your Ruby on Rails development productivity | Adventures In Coding</title><content type='html'>&lt;a href=&quot;http://adventuresincoding.com/2010/05/10-textmate-bundlesplugins-to-boost-your-ruby-on-rails-development-productivity&quot;&gt;10 TextMate bundles/plugins to boost your Ruby on Rails development productivity | Adventures In Coding&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cool....&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/5767978778814543213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/5767978778814543213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/5767978778814543213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/5767978778814543213'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/10-textmate-bundlesplugins-to-boost.html' title='10 TextMate bundles/plugins to boost your Ruby on Rails development productivity | Adventures In Coding'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-8887766722734014567</id><published>2011-07-13T20:50:00.000-07:00</published><updated>2011-07-13T20:50:20.923-07:00</updated><title type='text'>How to Build a Ruby Gem | Integrum</title><content type='html'>&lt;a href=&quot;http://integrumtech.com/2010/01/how-to-build-a-ruby-gem/&quot;&gt;How to Build a Ruby Gem | Integrum&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/8887766722734014567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/8887766722734014567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/8887766722734014567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/8887766722734014567'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/how-to-build-ruby-gem-integrum.html' title='How to Build a Ruby Gem | Integrum'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-9152476534369972017</id><published>2011-07-11T20:49:00.000-07:00</published><updated>2011-07-11T20:49:39.416-07:00</updated><title type='text'>RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation</title><content type='html'>&lt;a href=&quot;https://rvm.beginrescueend.com/&quot;&gt;RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/9152476534369972017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/9152476534369972017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/9152476534369972017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/9152476534369972017'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/rvm-ruby-version-manager-rvm-ruby.html' title='RVM: Ruby Version Manager - RVM Ruby Version Manager - Documentation'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-1675966228493750819</id><published>2011-07-04T20:05:00.000-07:00</published><updated>2011-07-04T20:05:02.013-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="facebook"/><category scheme="http://www.blogger.com/atom/ns#" term="system"/><title type='text'>Facebook 的系统架构</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; color: #555555; font-family: Verdana, &#39;BitStream vera Sans&#39;, Tahoma, Helvetica, sans-serif; font-size: 12px; line-height: 17px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong&gt;来源&lt;/strong&gt;：&lt;a href=&quot;http://www.quora.com/What-is-Facebooks-architecture&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;What is Facebook&#39;s Architecture?&quot;&gt;http://www.quora.com/What-is-Facebooks-architecture&lt;/a&gt;&amp;nbsp;（由&lt;a href=&quot;http://www.quora.com/Micha%C3%ABl-Figui%C3%A8re&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;Micha?l Figuière&lt;/a&gt;回答）&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;根据我现有的阅读和谈话，我所理解的今天Facebook的架构如下：&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Web 前端是由 PHP 写的。Facebook 的&amp;nbsp;&lt;a href=&quot;http://developers.facebook.com/blog/post/358&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;HipHop&amp;nbsp;&lt;/a&gt;[1] 会把PHP转成 C++ 并用 g++编译，这样就可以为模板和Web逻贺业务层提供高的性能。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;业务逻辑以Service的形式存在，其使用&lt;a href=&quot;http://thrift.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Thrift&amp;nbsp;&lt;/a&gt;[2]。这些Service根据需求的不同由PHP，C++或Java实现（也可以用到了其它的一些语言……）&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;用Java写的Services没有用到任何一个企业级的应用服务器，但用到了Facebook自己的定制的应用服务器。看上去好像是重新发明轮子，但是这些Services只被暴露给Thrift使用（绝大所数是这样），Tomcat太重量级了，即使是Jetty也可能太过了点，其附加值对Facebook所需要的没有意义。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;持久化由MySQL,&amp;nbsp;&lt;a href=&quot;http://memcached.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Memcached&amp;nbsp;&lt;/a&gt;[3], Facebook 的&amp;nbsp;&lt;a href=&quot;http://cassandra.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Cassandra&amp;nbsp;&lt;/a&gt;[4], Hadoop 的&amp;nbsp;&lt;a href=&quot;http://hbase.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;HBase&amp;nbsp;&lt;/a&gt;[5] 完成。Memcached 使用了MySQL的内存Cache。Facebook 工程师承认他们的Cassandra 使用正在减少，因为他们更喜欢HBase，因为它的更简单的一致性模型，以到其MapReduce能力。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;离线处理使用Hadoop 和 Hive。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;日志，点击，feeds数据使用&lt;a href=&quot;https://github.com/facebook/scribe&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Scribe&amp;nbsp;&lt;/a&gt;[6]，把其聚合并存在 HDFS，其使用&lt;a href=&quot;http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Scribe-HDFS&amp;nbsp;&lt;/a&gt;[7]，因而允许使用MapReduce进行扩展分析。&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;span id=&quot;more-4549&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;BigPipe&amp;nbsp;&lt;/a&gt;[8] 是他们的定制技术，用来加速页面显示。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;a href=&quot;http://www.varnish-cache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Varnish Cache&lt;/a&gt;&amp;nbsp;[9]用作HTTP代理。他们用这个的原因是&lt;a href=&quot;http://www.varnish-software.com/customers/facebook&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;高速和有效率&lt;/a&gt;。 [10].&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;用来搞定用户&lt;a href=&quot;http://www.facebook.com/note.php?note_id=76191543919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;上传的十亿张照片的存储&lt;/a&gt;，其由Haystack处理，Facebook自己开发了一个Ad-Hoc存储方案，其主要做了一些低层优化和“仅追加”写技术 [11].&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook Messages 使用了自己的架构，其明显地构建在了一个动态集群的基础架构上。业务逻辑和持久化被封装在一个所谓的’Cell’。每个‘Cell’都处理一部分用户，新的‘Cell’可以因为访问热度被添加[12]。 持久化归档使用HBase [13]。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook Messages 的搜索引擎由存储在HBase中的一个倒置索引的构建。 [14]&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook 搜索引擎实现细节据我所知目前是未知状态。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Typeahead 搜索使用了一个定制的存储和检索逻辑。 [15]&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;list-style-type: disc; margin-bottom: 0px; margin-left: 1.6em; margin-right: 0px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Chat 基于一个Epoll 服务器，这个服务器由Erlang 开发，由Thrift存取&amp;nbsp;[16]&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;关于那些供给给上述组件的资源，下面是一些信息和数量，但是有一些是未知的：&lt;/div&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook估计有超过60,000 台服务器[16]。他们最新的数据中心在俄勒冈州的Prineville，其基于完全自定设计的硬件[17]&amp;nbsp;那是最近才公开的&amp;nbsp;&lt;a href=&quot;http://opencompute.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Open Compute 项目&lt;/a&gt;[18]。&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;300 TB 的数据存在 Memcached 中处理 [19]&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;他们的Hadoop 和 Hive 集群由3000 服务器组成，每台服务器有8个核，32GB的内存，12TB的硬盘，全部有2万4千个CPU的核，96TB内存和36PB的硬盘。 [20]&lt;/li&gt;
&lt;/ul&gt;&lt;ul style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;li style=&quot;list-style-position: inside; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 20px; padding-right: 0px; padding-top: 0px;&quot;&gt;每天有1000亿的点击量，500亿张照片， 3 万亿个对象被 Cache，每天130TB的日志（&lt;a href=&quot;http://www.facebook.com/note.php?note_id=409881258919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;2010年7月的数据&lt;/a&gt;） [21]&lt;/li&gt;
&lt;/ul&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;strong&gt;参考引用&lt;/strong&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;[1]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;HipHop for PHP&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://developers.facebook.com/blog/post/358&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://developers.facebook.com/blog/post/358&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[2]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Thrift&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://thrift.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://thrift.apache.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[3]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Memcached&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://memcached.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://memcached.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[4]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Cassandra&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://cassandra.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://cassandra.apache.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[5]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;HBase&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://hbase.apache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://hbase.apache.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[6]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Scribe&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;https://github.com/facebook/scribe&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;https://github.com/facebook/scribe&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[7]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Scribe-HDFS&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[8]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;BigPipe&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/notes/facebook-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[9]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Varnish Cache&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.varnish-cache.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.varnish-cache.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[10]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook goes for Varnish&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.varnish-software.com/customers/facebook&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.varnish-software.com/customers/facebook&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[11]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Needle in a haystack&lt;/em&gt;: efficient storage of billions of photos:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/note.php?note_id=76191543919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/note.php?note_id=76191543919&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[12]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Scaling the Messages Application Back End&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/note.php?note_id=10150148835363920&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/note.php?note_id=10150148835363920&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[13]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;The Underlying Technology of Messages&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;https://www.facebook.com/note.php?note_id=454991608919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;https://www.facebook.com/note.php?note_id=454991608919&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[14]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;The Underlying Technology of Messages Tech Talk&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/video/video.php?v=690851516105&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/video/video.php?v=690851516105&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[15]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook’s typeahead search architecture&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/video/video.php?v=432864835468&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/video/video.php?v=432864835468&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[16]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook Chat&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/note.php?note_id=14218138919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/note.php?note_id=14218138919&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[17]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Who has the most Web Servers?&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[18] B&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;uilding Efficient Data Centers with the Open Compute Project&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/note.php?note_id=10150144039563920&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/note.php?note_id=10150144039563920&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[19]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Open Compute Project&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://opencompute.org/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://opencompute.org/&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[20]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Facebook’s architecture presentation at Devoxx 2010&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.devoxx.com/&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.devoxx.com&lt;/a&gt;&lt;br style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; /&gt;[21]&amp;nbsp;&lt;em style=&quot;margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;Scaling Facebook to 500 millions users and beyond&lt;/em&gt;:&amp;nbsp;&lt;a href=&quot;http://www.facebook.com/note.php?note_id=409881258919&quot; style=&quot;color: #2970a6; text-decoration: none;&quot;&gt;http://www.facebook.com/note.php?note_id=409881258919&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;margin-bottom: 10px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;（全文完）&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/1675966228493750819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/1675966228493750819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/1675966228493750819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/1675966228493750819'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/07/facebook.html' title='Facebook 的系统架构'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-3537690961650325415</id><published>2011-06-26T21:39:00.001-07:00</published><updated>2011-06-26T21:39:22.802-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Java"/><category scheme="http://www.blogger.com/atom/ns#" term="Java example"/><title type='text'>java example</title><content type='html'>&lt;a href=&quot;http://www.java2s.com/Code/Java/Database-SQL-JDBC/Insertarecordintodatabasetable.htm&quot;&gt;http://www.java2s.com/Code/Java/Database-SQL-JDBC/Insertarecordintodatabasetable.htm&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/3537690961650325415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/3537690961650325415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3537690961650325415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3537690961650325415'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/06/java-example.html' title='java example'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-836686310832209828</id><published>2011-06-23T02:31:00.000-07:00</published><updated>2011-06-23T02:31:11.722-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Lego"/><category scheme="http://www.blogger.com/atom/ns#" term="NXT"/><title type='text'>Logo nxt</title><content type='html'>&lt;a href=&quot;http://tiltedtwister.com/&quot;&gt;http://tiltedtwister.com&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/836686310832209828/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/836686310832209828' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/836686310832209828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/836686310832209828'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/06/logo-nxt.html' title='Logo nxt'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-3365806790948519473</id><published>2011-06-20T22:29:00.001-07:00</published><updated>2011-06-21T00:33:30.518-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><title type='text'>html5 framework</title><content type='html'>&lt;a href=&quot;http://davidbcalhoun.com/2010/mobile-javascript-libraries-and-frameworks&quot;&gt;http://davidbcalhoun.com/2010/mobile-javascript-libraries-and-frameworks&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://zeptojs.com/&quot;&gt;http://zeptojs.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://goo.gl/gjbN&quot;&gt;iUI&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://joapp.com/&quot;&gt;http://joapp.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://goo.gl/A4Rf&quot;&gt;Sproutcore&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/3365806790948519473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/3365806790948519473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3365806790948519473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/3365806790948519473'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/06/html5-framework.html' title='html5 framework'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5882091024751543559.post-4330332607291055603</id><published>2011-06-15T01:39:00.001-07:00</published><updated>2011-06-15T01:39:28.212-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ror"/><category scheme="http://www.blogger.com/atom/ns#" term="scheduling job"/><title type='text'>Rails: Cron Job Scheduling using Redis, Resque and Rufus</title><content type='html'>&lt;a href=&quot;http://hemju.com/2011/03/04/rails-cron-job-scheduling-using-redis-resque-and-rufus/&quot;&gt;http://hemju.com/2011/03/04/rails-cron-job-scheduling-using-redis-resque-and-rufus/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://mosesc.blogspot.com/feeds/4330332607291055603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/5882091024751543559/4330332607291055603' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4330332607291055603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5882091024751543559/posts/default/4330332607291055603'/><link rel='alternate' type='text/html' href='http://mosesc.blogspot.com/2011/06/rails-cron-job-scheduling-using-redis.html' title='Rails: Cron Job Scheduling using Redis, Resque and Rufus'/><author><name>Moses Yeung</name><uri>http://www.blogger.com/profile/06466228818777316762</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>