Permalink
Browse files

Site updated at 2013-04-02 04:58:26 UTC

  • Loading branch information...
halida committed Apr 2, 2013
1 parent 9cd0662 commit 10c388e7c4ef18542dcf636b72bc7b8cd4c6ee2d
Showing with 3,684 additions and 2,919 deletions.
  1. +4 −4 about/index.html
  2. +83 −33 atom.xml
  3. +4 −4 blog/2011-year-summary/index.html
  4. +4 −4 blog/2012-summary/index.html
  5. +4 −4 blog/C-RAII/index.html
  6. +4 −4 blog/CS-roadmap/index.html
  7. +4 −4 blog/DwarfFortress-intro/index.html
  8. +4 −4 blog/GFW/index.html
  9. +4 −4 blog/GUI-under-the-hood/index.html
  10. +4 −4 blog/Metaprogramming-Ruby/index.html
  11. +4 −4 blog/PyQt4-async-message/index.html
  12. +4 −4 blog/PyQt4-skin/index.html
  13. +4 −4 blog/TDD/index.html
  14. +4 −4 blog/amway-to-education/index.html
  15. +17 −6 blog/archives/index.html
  16. +4 −4 blog/be-a-better-man/index.html
  17. +4 −4 blog/burst-in-your-life/index.html
  18. +4 −4 blog/can-we-do-this/index.html
  19. +1 −1 blog/categories/development/atom.xml
  20. +4 −4 blog/categories/development/index.html
  21. +1 −1 blog/categories/english/atom.xml
  22. +4 −4 blog/categories/english/index.html
  23. +1 −1 blog/categories/game/atom.xml
  24. +4 −4 blog/categories/game/index.html
  25. +1 −1 blog/categories/life/atom.xml
  26. +4 −4 blog/categories/life/index.html
  27. +1 −1 blog/categories/rails/atom.xml
  28. +4 −4 blog/categories/rails/index.html
  29. +1 −1 blog/categories/ruby/atom.xml
  30. +4 −4 blog/categories/ruby/index.html
  31. +1 −1 blog/categories/技术/atom.xml
  32. +4 −4 blog/categories/技术/index.html
  33. +4 −4 blog/ceremony/index.html
  34. +4 −4 blog/change-personality/index.html
  35. +4 −4 blog/charactar-needed-by-entrepreneur/index.html
  36. +4 −4 blog/coder-under-building-site/index.html
  37. +4 −4 blog/coffeescript-class/index.html
  38. +4 −4 blog/coffeescript/index.html
  39. +4 −4 blog/comprehension/index.html
  40. +4 −4 blog/cortex-command/index.html
  41. +4 −4 blog/create-a-caculator/index.html
  42. +4 −4 blog/cython-intro/index.html
  43. +4 −4 blog/development-experience/index.html
  44. +4 −4 blog/display-image-after-it-is-downloaded/index.html
  45. +4 −4 blog/do-not-help-poor-people/index.html
  46. +4 −4 blog/do-not-use-linux/index.html
  47. +4 −4 blog/docstring/index.html
  48. +4 −4 blog/donation/index.html
  49. +4 −4 blog/drug-dealing/index.html
  50. +4 −4 blog/english-matters/index.html
  51. +4 −4 blog/everyone-should-learn-one-musical-instrument/index.html
  52. +4 −4 blog/fair-game/index.html
  53. +4 −4 blog/fang-and-han/index.html
  54. +4 −4 blog/ftl/index.html
  55. +4 −4 blog/game-I-play/index.html
  56. +4 −4 blog/gdc-china-2012/index.html
  57. +4 −4 blog/git/index.html
  58. +4 −4 blog/github-dns-issue/index.html
  59. +4 −4 blog/gmail-cannot-use/index.html
  60. +4 −4 blog/god-as-service/index.html
  61. +4 −4 blog/guard/index.html
  62. +4 −4 blog/hackers-and-painters/index.html
  63. +4 −4 blog/hackthon-in-may/index.html
  64. +4 −4 blog/heavy-metal-scene/index.html
  65. +4 −4 blog/how-to-change-yourself/index.html
  66. +4 −4 blog/how-to-design/index.html
  67. +4 −4 blog/how-to-learn-API/index.html
  68. +4 −4 blog/how-to-learn-computer-science/index.html
  69. +4 −4 blog/how-to-learn-english/index.html
  70. +4 −4 blog/how-to-learn-python/index.html
  71. +4 −4 blog/how-to-organize-day-time/index.html
  72. +4 −4 blog/how-to-publish-program-on-windows/index.html
  73. +4 −4 blog/how-to-use-pre-compiled-header/index.html
  74. +4 −4 blog/http-intro/index.html
  75. +4 −4 blog/hujs-1/index.html
  76. +4 −4 blog/hujs-2/index.html
  77. +4 −4 blog/i-am-a-atheist/index.html
  78. +4 −4 blog/illusion-of-life/index.html
  79. +4 −4 blog/install-ruby2-dot-0-by-using-rvm/index.html
  80. +4 −4 blog/introduce-pow/index.html
  81. +4 −4 blog/ipython/index.html
  82. +4 −4 blog/javascript-web-applications/index.html
  83. +4 −4 blog/kazakhstan-time-zone/index.html
  84. +4 −4 blog/last-week-to-live/index.html
  85. +4 −4 blog/learn-programming/index.html
  86. +4 −4 blog/learn-sqlalchemy/index.html
  87. +4 −4 blog/let-it-go/index.html
  88. +4 −4 blog/libusb/index.html
  89. +4 −4 blog/life/index.html
  90. +4 −4 blog/minecraft/index.html
  91. +4 −4 blog/mongodb-privilege/index.html
  92. +4 −4 blog/my-emacs-config/index.html
  93. +4 −4 blog/my-tech-stack/index.html
  94. +4 −4 blog/mysql-backup/index.html
  95. +4 −4 blog/new-blog-system/index.html
  96. +4 −4 blog/new-mac-book-pro/index.html
  97. +4 −4 blog/no-name/index.html
  98. +4 −4 blog/not-work-8-hours-a-day/index.html
  99. +4 −4 blog/oauth/index.html
  100. +4 −4 blog/obfuscated-openssh/index.html
  101. +4 −4 blog/online-update/index.html
  102. +270 −64 blog/page/10/index.html
  103. +63 −211 blog/page/11/index.html
  104. +211 −121 blog/page/12/index.html
  105. +121 −86 blog/page/13/index.html
  106. +75 −120 blog/page/14/index.html
  107. +110 −67 blog/page/15/index.html
  108. +58 −47 blog/page/16/index.html
  109. +50 −90 blog/page/17/index.html
  110. +310 −0 blog/page/18/index.html
  111. +313 −70 blog/page/2/index.html
  112. +67 −144 blog/page/3/index.html
  113. +146 −86 blog/page/4/index.html
  114. +89 −123 blog/page/5/index.html
  115. +123 −70 blog/page/6/index.html
  116. +66 −120 blog/page/7/index.html
  117. +118 −166 blog/page/8/index.html
  118. +165 −261 blog/page/9/index.html
  119. +4 −4 blog/people-square-english-corner/index.html
  120. +4 −4 blog/people-square-meetup/index.html
  121. +4 −4 blog/pjax/index.html
  122. +4 −4 blog/postfix/index.html
  123. +4 −4 blog/princess-and-knight/index.html
  124. +4 −4 blog/programming-language-as-language/index.html
  125. +4 −4 blog/pyqt-animation-framework/index.html
  126. +4 −4 blog/pyqt-i18n/index.html
  127. +4 −4 blog/pyqt-intro/index.html
  128. +4 −4 blog/pyqt-publish/index.html
  129. +4 −4 blog/pyside/index.html
  130. +4 −4 blog/pysideqwt-open-source/index.html
  131. +4 −4 blog/python-declarative-programming/index.html
  132. +4 −4 blog/python-draw-landscape/index.html
  133. +4 −4 blog/python-epoll/index.html
  134. +4 −4 blog/python-pype/index.html
  135. +4 −4 blog/qml/index.html
  136. +4 −4 blog/qt-compile-speed-up/index.html
  137. +4 −4 blog/question-of-cell-phone-message-id/index.html
  138. +4 −4 blog/qwt-intro/index.html
  139. +4 −4 blog/rabbit-fiction/index.html
  140. +4 −4 blog/rails-deploy-by-passenger/index.html
  141. +4 −4 blog/rails-intro/index.html
  142. +4 −4 blog/rails-ubuntu-install/index.html
  143. +4 −4 blog/rational-desgin/index.html
  144. +4 −4 blog/reStructuredText-intro/index.html
  145. +4 −4 blog/read-rss-as-email/index.html
  146. +4 −4 blog/realpeople-steampunk/index.html
  147. +4 −4 blog/religon-of-programmer/index.html
  148. +4 −4 blog/resque-intro/index.html
  149. +4 −4 blog/restriction-of-birth-is-bad/index.html
  150. +4 −4 blog/reverse-ssh/index.html
  151. +4 −4 blog/rspec/index.html
  152. +4 −4 blog/rst2s5/index.html
  153. +4 −4 blog/ruby-head-first/index.html
  154. +4 −4 blog/ruby-on-rails-head-first/index.html
  155. +4 −4 blog/ruby-on-rails/index.html
  156. +4 −4 blog/scons/index.html
  157. +4 −4 blog/self-thoughts/index.html
  158. +4 −4 blog/shanzai-is-good/index.html
  159. +4 −4 blog/shiboken/index.html
  160. +4 −4 blog/shpaml-source-code/index.html
  161. +4 −4 blog/shpaml/index.html
  162. +4 −4 blog/snake-challenge-event/index.html
  163. +4 −4 blog/software-development-information-prospective/index.html
  164. +4 −4 blog/spacechem/index.html
  165. +4 −4 blog/sphinx-intro/index.html
  166. +4 −4 blog/sphinx/index.html
  167. +4 −4 blog/split-big-model-in-rails/index.html
  168. +381 −0 blog/squeel/index.html
  169. +4 −4 blog/standing-at-work/index.html
  170. +4 −4 blog/start-blog-again/index.html
  171. +4 −4 blog/tedxfdu-2012-11/index.html
  172. +4 −4 blog/thinking/index.html
  173. +4 −4 blog/trainning-series1-how-to-start/index.html
  174. +4 −4 blog/treat-time-as-money/index.html
  175. +4 −4 blog/trinity/index.html
  176. +4 −4 blog/trip-in-nanjing/index.html
  177. +6 −4 blog/try-gitlab/index.html
  178. +4 −4 blog/try-to-strike-up/index.html
  179. +4 −4 blog/ubuntu-wordpress/index.html
  180. +4 −4 blog/unicorn-config/index.html
  181. +4 −4 blog/unix/index.html
  182. +4 −4 blog/use-plain-text-for-documentation/index.html
  183. +4 −4 blog/using-https-for-rails/index.html
  184. +4 −4 blog/utf8/index.html
  185. +4 −4 blog/ways-to-rome/index.html
  186. +4 −4 blog/when-plan-failed/index.html
  187. +4 −4 blog/why-I-need-windows/index.html
  188. +4 −4 blog/why-I-use-linux/index.html
  189. +4 −4 blog/why-ask-why/index.html
  190. +4 −4 blog/why-big-govenment-is-bad/index.html
  191. +4 −4 blog/why-blogging/index.html
  192. +4 −4 blog/why-govenment-fails/index.html
  193. +4 −4 blog/why-it-is-hard-to-learn-new-things-for-adaults/index.html
  194. +4 −4 blog/why-music-touches-people/index.html
  195. +4 −4 blog/why-qt-is-for-you/index.html
  196. +4 −4 blog/why-there-is-class-in-communism/index.html
  197. +4 −4 blog/why-use-ReST-for-blogging/index.html
  198. +4 −4 blog/why-use-plain-text/index.html
  199. +4 −4 blog/why-we-need-commandline/index.html
  200. +4 −4 blog/windows-setup-VPN/index.html
  201. +4 −4 blog/wordpress-nginx-install/index.html
  202. +4 −4 blog/words/index.html
  203. +4 −4 blog/write-a-compiler-by-python-in-one-day/index.html
  204. +4 −4 blog/you-can-be-happy/index.html
  205. +4 −4 blog/zeromq/index.html
  206. +121 −313 index.html
  207. +6 −2 sitemap.xml
View
@@ -186,6 +186,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -202,10 +206,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
View
116 atom.xml
@@ -4,7 +4,7 @@
<title><![CDATA[网络寻租]]></title>
<link href="http://halida.github.com/atom.xml" rel="self"/>
<link href="http://halida.github.com/"/>
- <updated>2013-03-27T12:45:27+08:00</updated>
+ <updated>2013-04-02T12:57:35+08:00</updated>
<id>http://halida.github.com/</id>
<author>
<name><![CDATA[机械唯物主义]]></name>
@@ -13,6 +13,88 @@
<generator uri="http://octopress.org/">Octopress</generator>
+ <entry>
+ <title type="html"><![CDATA[squeel介绍]]></title>
+ <link href="http://halida.github.com/blog/squeel/"/>
+ <updated>2013-04-02T11:44:00+08:00</updated>
+ <id>http://halida.github.com/blog/squeel</id>
+ <content type="html"><![CDATA[<p><img src="http://i.imgur.com/yxqRwG5.jpg" alt="image" /></p>
+
+<p><a href="https://github.com/ernie/squeel">squeel</a>是Rails下面一个处理复杂sql查询的框架,
+具体用法可以点击前面的链接查看,这里整理一下我对这个东西的评估。</p>
+
+<h2>为什么要用它?</h2>
+
+<p>平时我们在rails里面,需要写复杂查询的时候,一般都是直接写sql,比如:</p>
+
+<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
+<span class='line-number'>2</span>
+<span class='line-number'>3</span>
+<span class='line-number'>4</span>
+</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="no">Person</span><span class="o">.</span><span class="n">where</span><span class="p">(</span>
+</span><span class='line'> <span class="s1">&#39;(name LIKE ? AND salary &lt; ?) OR (name LIKE ? AND salary &gt; ?)&#39;</span><span class="p">,</span>
+</span><span class='line'> <span class="s1">&#39;Ernie%&#39;</span><span class="p">,</span> <span class="mi">50000</span><span class="p">,</span> <span class="s1">&#39;Joe%&#39;</span><span class="p">,</span> <span class="mi">100000</span>
+</span><span class='line'><span class="p">)</span>
+</span></code></pre></td></tr></table></div></figure>
+
+
+<p>这样的写法不是很好,因为:</p>
+
+<ul>
+<li>里面的sql是只针对一个数据库的,不能做到数据库的切换。</li>
+<li>里面的sql在ruby里面是字符串,一个是可读性差,一个是不能进行语法上面的检查,只能通过单元测试来保证。</li>
+<li>写这样语句的时候,需要切换成sql的思路,写完之后再切换回来。</li>
+<li>遇到复杂sql的时候,不容易拆分问题,只能通过大段长度的sql来处理。</li>
+</ul>
+
+
+<p>采用squeel,就可以变成这些的写法:</p>
+
+<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
+</pre></td><td class='code'><pre><code class='ruby'><span class='line'><span class="no">Person</span><span class="o">.</span><span class="n">where</span><span class="p">{(</span><span class="nb">name</span> <span class="o">=~</span> <span class="s1">&#39;Ernie%&#39;</span><span class="p">)</span> <span class="o">&amp;</span> <span class="p">(</span><span class="n">salary</span> <span class="o">&lt;</span> <span class="mi">50000</span><span class="p">)</span> <span class="o">|</span> <span class="p">(</span><span class="nb">name</span> <span class="o">=~</span> <span class="s1">&#39;Joe%&#39;</span><span class="p">)</span> <span class="o">&amp;</span> <span class="p">(</span><span class="n">salary</span> <span class="o">&gt;</span> <span class="mi">100000</span><span class="p">)}</span>
+</span></code></pre></td></tr></table></div></figure>
+
+
+<h2>原理</h2>
+
+<p>squeel使用的方法是传一个block给where,然后这个block会被修改作用域,在这个作用域里面,
+各种操作符和变量都会被转义,变成Node对象,然后形成一个抽象语法树,最后通过底层的<a href="https://github.com/rails/arel">arel</a>变成真正执行的sql。</p>
+
+<p>具体代码比较重要的是<code>dsl.rb</code>里面的<code>eval</code>,<code>method_missing</code>,<code>stub.rb</code>,<code>visitor.rb</code>。</p>
+
+<p>我思考了一下,这种方法应该是最简洁和干净的,语法是采用ruby的方式,魔法的部分都被包裹在block里面,和现有的功能无缝衔接。</p>
+
+<h2>使用心得</h2>
+
+<p>如果明白原理,使用它没有什么太多的问题,需要注意的是,
+一定要看一遍log里面生成的sql,确认是自己期望的结构。</p>
+
+<p>还有就是,squeel和原有系统切割得比较好,只有一点需要注意:
+针对<code>User.where(name: :aaa)</code>里面把symbol当做value的状况,squeel会转变成:</p>
+
+<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
+</pre></td><td class='code'><pre><code class='sql'><span class='line'><span class="k">select</span> <span class="o">*</span> <span class="k">from</span> <span class="n">users</span> <span class="k">where</span> <span class="n">users</span><span class="p">.</span><span class="n">name</span> <span class="o">==</span> <span class="n">users</span><span class="p">.</span><span class="n">aaa</span>
+</span></code></pre></td></tr></table></div></figure>
+
+
+<p>这是一个特性,如果你不期望这样的话,需要改成<code>where(name: :aaa.to_s)</code>。也可以关闭,具体看squeel的文档。</p>
+
+<p>在我用的过程中,遇到几个问题:</p>
+
+<ul>
+<li>我直接用<code>or</code>和<code>and</code>,结果发现按照文档应该是用<code>|</code>和<code>&amp;</code>,使用任何东西之前还是需要认真看一遍文档。</li>
+<li>复杂查询条件下面,如果用到了<code>|</code>和<code>&amp;</code>,为了保证是按照自己期望的优先级分割,需要用括号来明确界定,比如<code>where{(name == 'aaa' | name == 'bbb') &amp; (level == 1)}</code></li>
+<li>上面提到的symbol当做value的bug。</li>
+<li>因为使用了作用域切换,对象属性等就不能访问了,比如<code>where{name == @user.name}</code>,需要改成<code>where{name == my{@user.name}}</code></li>
+</ul>
+
+
+<h2>结论</h2>
+
+<p>考虑一下是否需要采用squeel:它的学习成本应该只需要一个小时,性能问题可以通过cache来解决,可以无缝衔接,收益是更清晰,更一致,更好用的代码。</p>
+]]></content>
+ </entry>
+
<entry>
<title type="html"><![CDATA[试用gitlab]]></title>
<link href="http://halida.github.com/blog/try-gitlab/"/>
@@ -1831,38 +1913,6 @@ postfix里面不包含针对邮件客户端的pop3/imap服务器, 所以需要
<p>现在我还是在用台式机, 如果我买了笔记本的话, 我可以很方便地在站立和坐着两种工作方式之间切换。
个人建议大家可以尝试一段时间站立工作, 对工作环境进行调节是提升工作舒适度以及工作效率的好办法。</p>
-]]></content>
- </entry>
-
- <entry>
- <title type="html"><![CDATA[尝试哈萨克斯坦时间]]></title>
- <link href="http://halida.github.com/blog/kazakhstan-time-zone/"/>
- <updated>2012-10-14T22:56:00+08:00</updated>
- <id>http://halida.github.com/blog/kazakhstan-time-zone</id>
- <content type="html"><![CDATA[<p><img src="http://i.imgur.com/rQmBc.png" alt="image" /></p>
-
-<p>我一直认为, 尝试新事物, 是一个具有完全行为能力的人应该具有的习惯。 不管是接触新的东西, 或者是对自己现有生活的调整,
-不仅可以给生活增加调剂, 也是对现有生活的优化, 有的时候, 因此获得更多的机会, 或者获得一个新的角度来重新审视自己的生活。</p>
-
-<p>我现在在全职做<a href="http://gurudigger.com/">GuruDigger</a>, 每天工作时间是由自己控制的, 因此我拥有尝试多种作息时间的自由。
-这周开始的时候, 我决定尝试一下哈萨克斯坦时间, 简单地说, 就是把每天的时间轴往后延迟5个小时左右,
-每天12点起来吃早饭, 5点吃中午饭, 晚上10点吃晚饭, 4点休息, 尝试一段时间看看怎么样。</p>
-
-<p>今天是这周的结束, 经过这一周的尝试, 我最后还是决定放弃这样的作息方式。</p>
-
-<p>我选择哈萨克斯坦时间的考虑, 是观察一些朋友以及一些名人的生活习惯得来的。 4点钟睡觉, 相当于把上午的时间移植到了深夜。
-在深夜的时候, 周边的干扰显得比较少, 可以获得大段时间, 更集中精神去做事情。 不过生活习惯因人而异, 对于我来说效果不是很好。</p>
-
-<p>我现在的工作环境是民宅, 工作的时候, 人其实也只有两个, 在白天, 也不会有什么干扰(如果从窗户外面射进来的阳光也算干扰的话),
-深夜工作的好处我在白天也能获得。 因为机会成本的存在, 好处就打了一个很大的折扣。</p>
-
-<p>深夜其实是一天的最后时刻, 人的精力是一天中最少的, 我感觉自己的精神还是比较难集中起来,
-做复杂的事情有比较大的困难。
-切换作息之后, 还有一些我没有考虑到的问题出现了。 首先是吃饭问题。 11点的时候, 可以选择的吃饭场所变得很有限,
-甚至我经常吃的全家盒饭也基本上卖完了。 虽然我对食物不挑剔, 但是找不到传统中餐还是让我很困扰。
-晚上做事情, 如果只是一个人的话还比较好说, 但是和别人同住的话, 就会给其他人带来困扰。 这方面的因素也要考虑进来。</p>
-
-<p>综合上面的一些考虑, 我觉得哈萨克斯坦时间不适合我。 不过, 下次我可以尝试吉里巴斯时间(UTC+12)?</p>
]]></content>
</entry>
@@ -271,6 +271,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -287,10 +291,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -244,6 +244,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -260,10 +264,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
View
@@ -246,6 +246,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -262,10 +266,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -265,6 +265,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -281,10 +285,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -198,6 +198,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -214,10 +218,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
View
@@ -261,6 +261,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -277,10 +281,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -215,6 +215,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -231,10 +235,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -252,6 +252,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -268,10 +272,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -435,6 +435,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -451,10 +455,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
@@ -333,6 +333,10 @@ <h1>Comments</h1>
<h1>Recent Posts</h1>
<ul id="recent_posts">
+ <li class="post">
+ <a href="/blog/squeel/">squeel介绍</a>
+ </li>
+
<li class="post">
<a href="/blog/try-gitlab/">试用gitlab</a>
</li>
@@ -349,10 +353,6 @@ <h1>Recent Posts</h1>
<a href="/blog/install-ruby2-dot-0-by-using-rvm/">install ruby2.0 by using rvm</a>
</li>
- <li class="post">
- <a href="/blog/display-image-after-it-is-downloaded/">display image after it is downloaded</a>
- </li>
-
</ul>
</section>
Oops, something went wrong.

0 comments on commit 10c388e

Please sign in to comment.