<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 
 <title>All Things Communicated</title>
 <link href="http://liangcoder.github.io/atom.xml" rel="self"/>
 <link href="http://liangcoder.github.io"/>
 <updated>2025-07-11T04:43:48+00:00</updated>
 <id>http://liangcoder.github.io</id>
 <author>
   <name>David Liang</name>
   <email>communicated@yeah.net</email>
 </author>

 
 <entry>
   <title>梦醒处，来时路</title>
   <link href="http://liangcoder.github.io/daily/2025/07/11/a-coder-is-coming"/>
   <updated>2025-07-11T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2025/07/11/a-coder-is-coming</id>
   <content type="html">
&lt;h2 id=&quot;1-梦醒处来时路&quot;&gt;1. 梦醒处，来时路&lt;/h2&gt;

&lt;p&gt;一张非常有氛围感的图片。&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/storage/image/coder_is_coming.jpg&quot; alt=&quot;coder&quot; title=&quot;coding_is_coming&quot; height=&quot;50%&quot; width=&quot;50%&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;reference&quot;&gt;Reference&lt;/h2&gt;

</content>
 </entry>
 
 <entry>
   <title>重新上路，从C开始</title>
   <link href="http://liangcoder.github.io/daily/2024/02/26/learn-c-programming-language"/>
   <updated>2024-02-26T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2024/02/26/learn-c-programming-language</id>
   <content type="html">
&lt;h2 id=&quot;1-重新上路从c开始&quot;&gt;1. 重新上路，从C开始&lt;/h2&gt;

&lt;p&gt;再次翻开《C Primer Plus》已经是第六版，上一次阅读这本书的时候还是2005年的暑假。那时候大一刚结束，而之前的“C语言程序设计”课程完全没有学明白，勉强考了个及格60分糊弄过去了，考试卷子上涉及指针的题目全都不会的那种。&lt;/p&gt;

&lt;p&gt;可是接下来的几门专业课程都是以C语言作为工具，例如数据结构与算法，操作系统还有计算机网络。所以当时趁着暑假的时间啃了这本优秀的书籍，算是亡羊补牢，为时未晚（但依然没有学透）。&lt;/p&gt;

&lt;p&gt;在这里要强调一下谭浩强的《C语言程序设计》这本书绝对是垃圾，不接受反驳。&lt;/p&gt;

&lt;p&gt;转眼间二十年过去了，情不自禁的又想再读一读这本经典佳作，顺便找回一下作为一名程序员的初心。&lt;/p&gt;

&lt;h2 id=&quot;2-macos环境使用iterm和visual-studio-code&quot;&gt;2. MacOS环境使用iTerm和Visual Studio Code&lt;/h2&gt;

&lt;p&gt;MacOS环境自带了Apple Clang编译器可以用来编译C语言，其对C标准支持的很好，比如C99和C11。&lt;/p&gt;

&lt;p&gt;Visual Studio Code IDE 来自Microsoft，支持多种编程语言的IDE，可以结合iTerm使用同时也提供了丰富的Extensions, 学习C语言需要安装C/C++ Extensions基本就够了，额外再安装一个CodeRunner用来快捷运行C程序，后者输出运行结果更友好一些：&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Running] &lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/Users/david/workspace/c_primer_plus/chapter_2/&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; gcc first.c &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; first &lt;span class=&quot;o&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;/Users/david/workspace/c_primer_plus/chapter_2/&quot;&lt;/span&gt;first
I am a simple computer.
My favorite number is 1, because it is first not.

&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;Done] exited with &lt;span class=&quot;nv&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;0 &lt;span class=&quot;k&quot;&gt;in &lt;/span&gt;0.547 seconds&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;img src=&quot;/assets/storage/image/c_primer_plus.png&quot; alt=&quot;book&quot; title=&quot;c_primer_plus&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;reference&quot;&gt;Reference&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.cs.auckland.ac.nz/~paul/C/Mac/&quot; title=&quot;Developing C programs on Mac OS&quot;&gt;Developing C programs on Mac OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/cpp/c-language/?view=msvc-170&quot; title=&quot;C language documentation from Visual Studio&quot;&gt;C language documentation from Visual Studio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content>
 </entry>
 
 <entry>
   <title>Just a New Year</title>
   <link href="http://liangcoder.github.io/daily/2023/01/01/just-new-year"/>
   <updated>2023-01-01T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2023/01/01/just-new-year</id>
   <content type="html">
&lt;h2 id=&quot;1-2023年来了&quot;&gt;1. 2023年来了&lt;/h2&gt;

&lt;p&gt;TODO:&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Push My Library to Cloud</title>
   <link href="http://liangcoder.github.io/daily/2022/05/31/my-library"/>
   <updated>2022-05-31T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2022/05/31/my-library</id>
   <content type="html">
&lt;h2 id=&quot;1-将图书馆管理系统源代码共享到云端&quot;&gt;1. 将图书馆管理系统源代码共享到云端&lt;/h2&gt;

&lt;p&gt;github 地址：&lt;a href=&quot;https://github.com/liangcoder/java-basic-library&quot;&gt;Java-Basic-Library&lt;/a&gt;&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Restart from Sep.</title>
   <link href="http://liangcoder.github.io/daily/2021/09/01/sep-to-start"/>
   <updated>2021-09-01T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2021/09/01/sep-to-start</id>
   <content type="html">
&lt;h2 id=&quot;1-九月开学&quot;&gt;1. 九月开学&lt;/h2&gt;
</content>
 </entry>
 
 <entry>
   <title>Encoding</title>
   <link href="http://liangcoder.github.io/daily/2021/02/27/encoding"/>
   <updated>2021-02-27T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2021/02/27/encoding</id>
   <content type="html">
&lt;h2 id=&quot;1-unicode--java-char-类型&quot;&gt;1. Unicode &amp;amp; Java char 类型&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;“Unicode 转义序列会在解析代码之前得到处理。”&lt;/strong&gt; 说明 Java 源代码可视为 Unicode 字符的集合。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;下面这行注释文本会导致 Java 语法错误&lt;/strong&gt;，因为 \u000a (\n) 代表换行&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c1&quot;&gt;// \u000a test&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;下面这行注释文本会导致 Java 编译错误&lt;/strong&gt;，因为 \u 之后必须是4个十六进制数字，&lt;/p&gt;

&lt;p&gt;错误信息：”error: illegal unicode escape”&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c1&quot;&gt;// look inside c:\users&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;&lt;strong&gt;“char 类型描述了 UTF-16 编码中的一个代码单元(Code Unit), 不建议在程序中使用 char 类型，推荐使用字符串对象解决字符相关问题。”&lt;/strong&gt; 因为 Java char 类型长度是 2 字节，已经无法完全描述 Unicode 字符。因此，要谨慎使用 String.charAt(int) 方法，不一定能得到一个合法的 Unicode 字符，尤其是在实现字符串字符逆序的功能上，应该直接使用 StringBuilder 提供的 reverse() 方法。&lt;/p&gt;

&lt;h3 id=&quot;参考文章&quot;&gt;参考文章&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.autubrew.me/2020/06/java%E4%B8%AD%E7%9A%84%E7%A0%81%E7%82%B9%E5%92%8C%E4%BB%A3%E7%A0%81%E5%8D%95%E5%85%83/&quot;&gt;Java中的码点和代码单元&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/acmerfight/insight_python/blob/master/Unicode_and_Character_Sets.md&quot;&gt;字符编码浅析&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>User Settings</title>
   <link href="http://liangcoder.github.io/daily/2021/02/25/user-settings"/>
   <updated>2021-02-25T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2021/02/25/user-settings</id>
   <content type="html">
&lt;h2 id=&quot;1-java-development-enviroment-settings&quot;&gt;1. Java Development Enviroment Settings&lt;/h2&gt;

&lt;p&gt;安装 JDK8 之后发现其命令行提示信息都按照用户环境语言做了适配，而不是熟悉的英文，故特作以下配置保证其使用英文作为命令行提示信息，目标文件：.zshrc&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;nb&quot;&gt;export &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;JAVA_TOOL_OPTIONS&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;-Duser.language=en&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h2 id=&quot;2-iterms2&quot;&gt;2. iTerms2&lt;/h2&gt;

&lt;p&gt;日常工具箱离不开 iTerms2，发现一篇不错的快捷键总结：&lt;a href=&quot;https://cnbin.github.io/blog/2015/06/20/iterm2-kuai-jie-jian-da-quan/&quot;&gt;iTerms 快捷键&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;3-jetbrains-mono&quot;&gt;3. JetBrains Mono&lt;/h2&gt;

&lt;p&gt;安装了新的编程字体：JetBrains Mono，并在 Sublime Text 和 iTerms 中使用：&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;&lt;span class=&quot;s2&quot;&gt;&quot;font_face&quot;&lt;/span&gt;: &lt;span class=&quot;s2&quot;&gt;&quot;JetBrains Mono&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</content>
 </entry>
 
 <entry>
   <title>I am back</title>
   <link href="http://liangcoder.github.io/daily/2020/08/23/im-back"/>
   <updated>2020-08-23T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2020/08/23/im-back</id>
   <content type="html">
&lt;h2 id=&quot;i-am-back&quot;&gt;I am back&lt;/h2&gt;

&lt;p&gt;离开了太久，也走的太远，差点没有找到回来的路。&lt;/p&gt;

</content>
 </entry>
 
 <entry>
   <title>References</title>
   <link href="http://liangcoder.github.io/daily/2017/05/31/references"/>
   <updated>2017-05-31T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2017/05/31/references</id>
   <content type="html">
&lt;h2 id=&quot;references&quot;&gt;References&lt;/h2&gt;

&lt;h3 id=&quot;1-posts&quot;&gt;1. Posts&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://www.bennorthrop.com/Essays/2016/reflections-of-an-old-programmer.php&quot;&gt;Reflections of an “Old” Programmer&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;a href=&quot;http://microservices.io/index.html&quot;&gt;What are microservices&lt;/a&gt;&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;2-documents&quot;&gt;2. Documents&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;TODO:&lt;/li&gt;
&lt;/ul&gt;
</content>
 </entry>
 
 <entry>
   <title>A Utility Class for Getting JDBC Connection with MySQL</title>
   <link href="http://liangcoder.github.io/daily/2017/05/30/utility-class-getting-jdbc-connection"/>
   <updated>2017-05-30T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2017/05/30/utility-class-getting-jdbc-connection</id>
   <content type="html">
&lt;p&gt;Most Java developers had experience to develop database program using JDBC, so am I. Although there are lots of sophisticated and powerful frameworks, such as Hibernate, iBatis, JPA, and so force, used to make database programming easier and more professional, deeply understanding JDBC programming is required, in particular to the new comer.&lt;/p&gt;

&lt;p&gt;Getting JDBC connection is an essential step before making any query to database. This step involves many important issues as shown below:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Setting database parameters and avoiding hard-code.&lt;/li&gt;
  &lt;li&gt;Make sure the connection of database is closed after invoking connection.close().&lt;/li&gt;
  &lt;li&gt;When getting a connection, how long will be taken?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For the first issue, i recommend using outside properties file to store database parameters, which is named database.properties, for example, and the content could be:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c1&quot;&gt;// mysql database configuration  &lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;com&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;mysql&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;jdbc&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;Driver&lt;/span&gt;  
&lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;jdbc:mysql:&lt;/span&gt;&lt;span class=&quot;c1&quot;&gt;//localhost:3306/dbname  &lt;/span&gt;
&lt;span class=&quot;n&quot;&gt;user&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;user&lt;/span&gt;  
&lt;span class=&quot;n&quot;&gt;password&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;password&lt;/span&gt;  
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;And then, a static block can be used to load database parameters and driver class as follow:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;c1&quot;&gt;// properties object used to load database parameters  &lt;/span&gt;
&lt;span class=&quot;kd&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;kd&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Properties&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;Properties&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;  

&lt;span class=&quot;kd&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;  
    &lt;span class=&quot;k&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;  
    &lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;FileInputStream&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;PROPERTY_FILE_NAME&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;));&lt;/span&gt;&lt;span class=&quot;c1&quot;&gt;// database.properties  &lt;/span&gt;
    &lt;span class=&quot;nc&quot;&gt;Class&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;forName&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getProperty&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;DRIVER&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;));&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// driver  &lt;/span&gt;
    &lt;span class=&quot;o&quot;&gt;}...&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;As the relevant parameters had been loaded into prop object, including username and password, therefore, the connection can be got with the following statement:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;nc&quot;&gt;DriverManager&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getConnection&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getProperty&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;),&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;prop&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;  
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;For the second problem, we can examine the number of connection after closing specific connection using MySQL command:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;no&quot;&gt;SHOW&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;STATUS&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;LIKE&lt;/span&gt; &lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;Threads_connected&lt;/span&gt;&lt;span class=&quot;err&quot;&gt;&apos;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;  
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;It is very clear to show the number of connection to the database at any moment.&lt;/p&gt;

&lt;p&gt;For the last question, it is no doubt the performance of using connection pool is better than not. I think it should be no solution without using connection pool in real, industrial system. Therefore, I just show a small snippet code using AspectJ to profile method getConnection() of class JDBCUtil which is simple util class I defined for getting database connection and clear up relevant resources.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;kd&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;aspect&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;GetDBConnectionProfillingAspect&lt;/span&gt;  &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;  
    &lt;span class=&quot;n&quot;&gt;pointcut&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;getConnectionOperation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;execution&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(*&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;JDBCUtil&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getConnection&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(..));&lt;/span&gt;  

    &lt;span class=&quot;nc&quot;&gt;Connection&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;around&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;getConnectionOperation&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt;  &lt;span class=&quot;o&quot;&gt;{&lt;/span&gt;  
        &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;startTime&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;System&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;currentTimeMillis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;  

        &lt;span class=&quot;nc&quot;&gt;Connection&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obj&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;proceed&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;  

        &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;endTime&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;System&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;currentTimeMillis&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;();&lt;/span&gt;  

        &lt;span class=&quot;nc&quot;&gt;System&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;thisJoinPointStaticPart&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;getSignature&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;()&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot; took &quot;&lt;/span&gt;
        &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;endTime&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;startTime&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&quot; nanoseconds.&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;  

        &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;obj&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt;  
    &lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;  
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;The results clearly show that the time of getting one connection is nearly 20 nanoseconds expect the first one. The reason is it is needed to execute static block for the first time which may take more than 400 nanoseconds.&lt;/p&gt;

&lt;p&gt;All right, that is all of what i want to show you~ good night!&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Strongly Recommend StarUML as Modeling Tool</title>
   <link href="http://liangcoder.github.io/daily/2017/05/30/staruml-as-modeling-tool"/>
   <updated>2017-05-30T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2017/05/30/staruml-as-modeling-tool</id>
   <content type="html">
&lt;p&gt;I used a couple of UML Modelling Tools in the past, such as Rational Rose, RSA, ArgoUML and so force. Unfortunately,some of them are always space consumer as lots of useless features for new comer; RSA, for example, needs more than 7 Gigabits after fully installation; some of them are ugly in terms of UI.&lt;/p&gt;

&lt;p&gt;StarUML, however, is the best one I ever use, which is only 100 Megabits after installing. This may be the primary point attracting me to choose it.&lt;/p&gt;

&lt;p&gt;One sentence used to describe this handy tool on its official website is stated as following:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“StarUML is an open source project to develop fast, flexible, extensible, featureful, and freely-available UML/MDA platform running on Win32 platform.” from &lt;a href=&quot;http://staruml.io/&quot; title=&quot;StarUML&quot;&gt;StarUML official site&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One tip: “Word Wrap Name” button on the tool bar can be able to make string of any UML elements multiple lines showing enable by adjusting the area of them.&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Two Categories of Java Exception</title>
   <link href="http://liangcoder.github.io/daily/2017/05/30/exception-categories-in-java"/>
   <updated>2017-05-30T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2017/05/30/exception-categories-in-java</id>
   <content type="html">
&lt;p&gt;Just now, I read an appropriate sentence used to describing Java Exception in terms of its two categories, which is shown as follows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Java specifies two categories of exceptions that a method may throw: checked and unchecked. When an exception is checked, the callers must deal with it either by catching the exception or by declaring that they can throw it. When an exception is unchecked(which directly or indirectly extends RuntimeException or Error), callers need not to deal with it explicitly and the exception is automatically propagated up the call stack”&lt;/strong&gt; (AspectJ in Action, second edition, 2010)&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>EI Capitan Upgrade and Install JDK6</title>
   <link href="http://liangcoder.github.io/daily/2015/12/18/upgrade-ei-capitan"/>
   <updated>2015-12-18T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2015/12/18/upgrade-ei-capitan</id>
   <content type="html">
&lt;p&gt;大约三天前，2015-12-15，我将本本的Mac OS X到最新版本10.11, 代号EI Capitan。&lt;/p&gt;

&lt;p&gt;虽然之前有听说升级后可能会出现CPU变成风火轮等诸多副作用，但，还是没忍住点击了升级按钮，唯一的依仗就是机器比较新，相信Apple的兼容性！&lt;/p&gt;

&lt;p&gt;升级过程耗时大约20分钟，完成后的第一感觉是字体显示效果提升显著，这个特性是相当棒！去官网了解下其它众新特性，说是Notes有显著提升，果断用起来记日常笔记。&lt;/p&gt;

&lt;p&gt;与大约一年前&lt;a href=&quot;http://liangcoder.github.io/daily/2014/11/01/yosemite-install-jdk/&quot;&gt;升级Yosemite&lt;/a&gt;时遇到的场景一样，升级EI Capitan后，JDK6又不见了。只好翻出&lt;a href=&quot;http://liangcoder.github.io/daily/2014/11/01/yosemite-install-jdk/&quot;&gt;博客&lt;/a&gt;中的链接&lt;a href=&quot;http://support.apple.com/kb/DL1572?viewlocale=en_US&amp;amp;locale=en_US&quot; title=&quot;Java for OS X 2015-001&quot;&gt;Java for OS X 2015-001&lt;/a&gt;重新下载安装，Apple做事还是很棒的，时隔一年虽然下载内容变更了（2014-001变更为了2015-001）但是下载链接还保持一致！&lt;/p&gt;

&lt;p&gt;安装完成后运行以下命令确认JDK HOME位置：&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;/usr/libexec/java_home &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; 1.6
&lt;span class=&quot;go&quot;&gt;/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;/usr/libexec/java_home &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; 1.7
&lt;span class=&quot;go&quot;&gt;/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;这一点就更靠谱了，Apple终于把不同版本的JDK安装在了统一的/Library/Java/JavaVirtualMachines目录下，值得表扬！&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Switch to IntelliJ IDEA</title>
   <link href="http://liangcoder.github.io/daily/2015/11/08/switch-to-intellij-idea"/>
   <updated>2015-11-08T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2015/11/08/switch-to-intellij-idea</id>
   <content type="html">
&lt;p&gt;上周，花费了几天时间熟悉并开始在工作学习中使用&lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;Intellij IDEA&lt;/a&gt;,
号称是”The Most Intelligent Java IDE”。之前，一直使用的是Eclipse, 差不多有8，9年了，终于尝试着换换口味。&lt;/p&gt;

&lt;p&gt;当前使用的IDEA版本是15CE, 使用体验非常流畅，与OS X操作系统配合的很好。当然，首先面临的是各种常用的快捷键
的转换，一边用一边参考官方文档逐步熟悉，&lt;a href=&quot;https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf&quot;&gt;Intellij IDEA Mac OS X Keymap&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;Eclipse是一款优秀的开源IDE, 起源于IBM之后贡献给了开源社区；IDEA采用的是社区版和商业版搭配策略，令人愉快的是社区版本完全可以满足日常开发和学习的需要。&lt;/p&gt;

&lt;p&gt;目前感触最深刻的是IDEA的Project概念很便捷，一个Project一个单独的窗口，非常清晰。&lt;/p&gt;

&lt;p&gt;相比之下，Eclipse的Workspace概念就很不方便了，尤其是每个Workspace都需要一个独立的工作目录和只能设置一种字符编码格式，
这让我在面临多个项目并行开发的过程中苦不堪言。&lt;/p&gt;

&lt;p&gt;充分熟悉IDEA之后，计划进一步使用全功能的商业版本，毕竟，我更看好有稳定盈利能力的软件产品的质量。&lt;/p&gt;
</content>
 </entry>
 
 <entry>
   <title>Yosemite Upgrade and Install JDK</title>
   <link href="http://liangcoder.github.io/daily/2014/11/01/yosemite-install-jdk"/>
   <updated>2014-11-01T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/daily/2014/11/01/yosemite-install-jdk</id>
   <content type="html">
&lt;p&gt;Today, 2014-11-01, I upgraded the Mac OS X Yosemite which version is 10.10. However, I found that the jdk6 installed in the past is missing without any warning.&lt;/p&gt;

&lt;p&gt;Only jdk7 is presented, the home path of which is&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“/Library/Java/JavaVirtualMachines/jdk1.7.0_60.jdk/Contents/Home&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Because of the legacy system, jdk6 is required. To be honest, it’s really difficult to find a jdk version for the mac os x, especially for a Java developer. Oracle and Apple!&lt;/p&gt;

&lt;p&gt;Finally, I made it, the jdk6 for mac os x can be downloaded in the following address:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;a href=&quot;http://support.apple.com/kb/DL1572?viewlocale=en_US&amp;amp;locale=en_US&quot; title=&quot;Java for OS X 2014-001&quot;&gt;Java for OS X 2014-001&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;“http://support.apple.com/kb/DL1572?viewlocale=en_US&amp;amp;locale=en_US”&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;I do not know why it is labelled with “…2014-001”, there is no related at all to the jkd6.&lt;/p&gt;

&lt;p&gt;After installation, jdk6 home can be found in the following path:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;Notice that, the path of jdk7 home begins with “/Library/Java/”, however, the jdk6 home is “/System/Library/Java/”. It’s really a bad example of the consistency.&lt;/p&gt;

&lt;p&gt;Moreover, the path where the JDK installed can be found out by executing the following shell command:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-console&quot; data-lang=&quot;console&quot;&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;/usr/libexec/java_home &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; 1.6
&lt;span class=&quot;go&quot;&gt;/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

&lt;/span&gt;&lt;span class=&quot;gp&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;/usr/libexec/java_home &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; 1.7
&lt;span class=&quot;go&quot;&gt;/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

</content>
 </entry>
 
 <entry>
   <title>Learn Jekyll</title>
   <link href="http://liangcoder.github.io/thinking/2012/11/21/new-to-jekyll"/>
   <updated>2012-11-21T00:00:00+00:00</updated>
   <id>http://liangcoder.github.io/thinking/2012/11/21/new-to-jekyll</id>
   <content type="html">
&lt;p&gt;Jekyll is a popular tools for transforming the plain text into static HTML based site, the Home pages of which can be accessed on &lt;a href=&quot;http://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;basic-steps-to-use-jekyll&quot;&gt;Basic steps to use Jekyll&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Install the Jekyll: gem install jekyll&lt;/li&gt;
  &lt;li&gt;Enter the local web site directory.&lt;/li&gt;
  &lt;li&gt;Start up the Jekyll server locally using the following command:&lt;/li&gt;
&lt;/ul&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;jekyll serve&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-shell&quot; data-lang=&quot;shell&quot;&gt;jekyll s&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Access url locally is &lt;a href=&quot;http://localhost:4000&quot;&gt;http://localhost:4000&lt;/a&gt;&lt;/p&gt;

&lt;h3 id=&quot;code-sample&quot;&gt;Code Sample&lt;/h3&gt;

&lt;p&gt;Here is a “Hello world” program in Java.&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-java&quot; data-lang=&quot;java&quot;&gt;&lt;table class=&quot;rouge-table&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class=&quot;gutter gl&quot;&gt;&lt;pre class=&quot;lineno&quot;&gt;1
2
3
&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;++){&lt;/span&gt;
	&lt;span class=&quot;nc&quot;&gt;Sysout&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;out&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;na&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;Hello, world.&quot;&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;);&lt;/span&gt;
&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;h3 id=&quot;text-sample&quot;&gt;Text Sample&lt;/h3&gt;

&lt;p&gt;文字在这里here is string &lt;em&gt;em文字&lt;/em&gt; &lt;strong&gt;strong文字&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;列表1&lt;/li&gt;
  &lt;li&gt;列表2&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
  &lt;li&gt;列表3&lt;/li&gt;
  &lt;li&gt;列表4&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;java&lt;/p&gt;

  &lt;p&gt;ruby&lt;/p&gt;

  &lt;p&gt;scala&lt;/p&gt;

  &lt;p&gt;lua&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;image-sample&quot;&gt;Image Sample&lt;/h3&gt;

&lt;p&gt;博客中使用的图片，实例如下&lt;/p&gt;

&lt;p&gt;thumb
&lt;img src=&quot;/assets/storage/image/thumb/chair.jpg&quot; alt=&quot;chair&quot; title=&quot;chair&quot; /&gt;&lt;/p&gt;

&lt;p&gt;原图
&lt;img src=&quot;/assets/storage/image/chair.jpg&quot; alt=&quot;chair&quot; title=&quot;chair&quot; /&gt;&lt;/p&gt;

&lt;h3 id=&quot;hyperlink-sample&quot;&gt;Hyperlink Sample&lt;/h3&gt;

&lt;p&gt;这是一本很棒的书
&lt;a href=&quot;http://www.oreilly.com.cn/index.php?func=book&amp;amp;isbn=978-7-121-13309-1&quot; title=&quot;Java语言精粹&quot;&gt;Java语言精粹&lt;/a&gt;&lt;br /&gt;
我喜欢的网站&lt;a href=&quot;http://www.google.com&quot; title=&quot;google&quot;&gt;Google&lt;/a&gt; &lt;a href=&quot;http://github.com&quot; title=&quot;github&quot;&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</content>
 </entry>
 
 
</feed>