<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.2.1">Jekyll</generator><link href="https://en.erl.im/feed.xml" rel="self" type="application/atom+xml" /><link href="https://en.erl.im/" rel="alternate" type="text/html" /><updated>2023-06-29T05:38:20+00:00</updated><id>https://en.erl.im/feed.xml</id><title type="html">Sharon Zhang</title><subtitle>A full-stack web developer and minimalist.</subtitle><entry><title type="html">My Depression</title><link href="https://en.erl.im/blog/my-depression.html" rel="alternate" type="text/html" title="My Depression" /><published>2019-08-28T00:30:25+00:00</published><updated>2019-08-28T00:30:25+00:00</updated><id>https://en.erl.im/blog/my-depression</id><content type="html" xml:base="https://en.erl.im/blog/my-depression.html">&lt;p&gt;It may be difficult for one to keep positive about life every day. I often trap into depression. There are a lot of things those would make me unhappy: the troubles, the noises, the bugs, the technical documents, the weather, the music from the shops in the morning, or even just the clouds are not as lovely as I want.&lt;/p&gt;

&lt;p&gt;I felt more and more depressed from Jan to Mar this year. I tried to be busy, by reading, writing, and studying plenty of things, to make me paralyzed. Sometimes I need wine to fall into sleep. I often cried at night and didn’t know why. I wanted to leave my present life but didn’t know where to go.&lt;/p&gt;

&lt;p&gt;Love saved me, temporally. I feel better with him. But that isn’t the permanent antidote. We keep a healthy schedule and make efforts for our future together. I feel positive and energetic most of the time. But sometimes, I think everything is meaningless.&lt;/p&gt;

&lt;p&gt;After several weeks’ of consideration, we decided to resign and move to another city. I don’t know whether life would make a difference by that. It is better to change rather than not change.&lt;/p&gt;</content><author><name></name></author><summary type="html">It may be difficult for one to keep positive about life every day. I often trap into depression. There are a lot of things those would make me unhappy: the troubles, the noises, the bugs, the technical documents, the weather, the music from the shops in the morning, or even just the clouds are not as lovely as I want.</summary></entry><entry><title type="html">I Found the Portfolio Page I Designed Three Years Ago</title><link href="https://en.erl.im/blog/i-found-the-portfolio-page-i-designed-three-years-ago.html" rel="alternate" type="text/html" title="I Found the Portfolio Page I Designed Three Years Ago" /><published>2019-08-16T00:17:40+00:00</published><updated>2019-08-16T00:17:40+00:00</updated><id>https://en.erl.im/blog/i-found-the-portfolio-page-i-designed-three-years-ago</id><content type="html" xml:base="https://en.erl.im/blog/i-found-the-portfolio-page-i-designed-three-years-ago.html">&lt;p&gt;It could be a surprise to find the portfolio website I did three years ago when I cleared up the repositories in my Github. I haven’t been a full-time developer at that time. I designed and developed just for fun. I even did not know how to use Git and all of the files were uploaded by Github web page.&lt;/p&gt;

&lt;p&gt;It is an interesting thing to take a look at the back. I read the rough and messy code I wrote in the time when I thought my JavaScript skill level was pretty fine. I enjoyed the pictures I drew with AI which are not so beautiful and delicate. But I like them. Even the works are childish, just like the naive I.&lt;/p&gt;

&lt;p&gt;The demo site is &lt;a href=&quot;https://erlzhang.github.io/erldesign&quot;&gt;here&lt;/a&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">It could be a surprise to find the portfolio website I did three years ago when I cleared up the repositories in my Github. I haven’t been a full-time developer at that time. I designed and developed just for fun. I even did not know how to use Git and all of the files were uploaded by Github web page.</summary></entry><entry><title type="html">About Self-Control</title><link href="https://en.erl.im/blog/about-self-control.html" rel="alternate" type="text/html" title="About Self-Control" /><published>2019-08-13T03:11:02+00:00</published><updated>2019-08-13T03:11:02+00:00</updated><id>https://en.erl.im/blog/about-self-control</id><content type="html" xml:base="https://en.erl.im/blog/about-self-control.html">&lt;p&gt;I used to be a girl with low self-control. I neither went to bed before 3 am nor got up before 11 am at college. I spent a lot of time playing online games or watching movies. Even after I started to work, I got to sleep at 2 o’clock sometimes.&lt;/p&gt;

&lt;p&gt;Everything changed from a little habit: I forced myself to get up at 6 in the morning. It was hard at the beginning. But eventually, I became used to that.&lt;/p&gt;

&lt;p&gt;I think I am a good person with good self-control now, at least better than most of the people I know. Even then, I will lose control sometimes. It’s needed to use some tools and methods.&lt;/p&gt;

&lt;p&gt;The simplest and most common one is an &lt;strong&gt;alarm clock&lt;/strong&gt;. I set the time to 5:30 am to prevent me from oversleeping and I never stay in bed since the bell rings.&lt;/p&gt;

&lt;p&gt;I have been fond of the &lt;strong&gt;Tomato Working Method&lt;/strong&gt; for several years. Sky gave me a simple &lt;strong&gt;Tomato Clock&lt;/strong&gt; last year. I always use it when I study and work at home. As a developer, it’s important to have a rest on time after a period of working.&lt;/p&gt;

&lt;p&gt;It would be really easy to lose control when immersed in a video game. There is a mild way to control that: just stop playing anymore. But I don’t want to do that because life needs moderate enjoyment. I can use Tomato Clock to control the time for playing. But the easiest way is to make use of &lt;strong&gt;the built-in app which is often used by parents to control the playing time of their children&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;However, the more important tools are responsive but definite rules and plans. For example:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Get up at 5:30 am and go to bed at 9:30 pm.&lt;/li&gt;
  &lt;li&gt;Be concentrate when at the office and use the tomato time to work and rest.&lt;/li&gt;
  &lt;li&gt;I can only read books at home after dinner in a workday.&lt;/li&gt;
  &lt;li&gt;Exercise three times every week.&lt;/li&gt;
  &lt;li&gt;I can play video games with my PSV for only two hours every week on Saturday.&lt;/li&gt;
  &lt;li&gt;Saturday is the day for enjoying and resting.&lt;/li&gt;
  &lt;li&gt;Sunday is the day for my side projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are my rules and daily plans above, which may be adjusted for some unexpected reasons. It would be better if your plans are responsive.&lt;/p&gt;

&lt;p&gt;Even if you have set up your plans and found some tools to help with you, it’s quite easy for you to break the rules. You can always turn off the alarm clock and continue sleeping. The most important is still the control of yourself.&lt;/p&gt;

&lt;p&gt;I read the book &lt;em&gt;The Willpower Instinct&lt;/em&gt; last year. I used some of the methods it provides to keep concentrated and release pressure. A friend said that she had read this book too but she forgot what it said.&lt;/p&gt;

&lt;p&gt;There are a lot of similar books and relative methods. Whether they would work is totally depended on you.&lt;/p&gt;</content><author><name></name></author><summary type="html">I used to be a girl with low self-control. I neither went to bed before 3 am nor got up before 11 am at college. I spent a lot of time playing online games or watching movies. Even after I started to work, I got to sleep at 2 o’clock sometimes.</summary></entry><entry><title type="html">Jekyll Theme Persephone</title><link href="https://en.erl.im/blog/jekyll-theme-persephone.html" rel="alternate" type="text/html" title="Jekyll Theme Persephone" /><published>2019-08-07T07:08:04+00:00</published><updated>2019-08-07T07:08:04+00:00</updated><id>https://en.erl.im/blog/jekyll-theme-persephone</id><content type="html" xml:base="https://en.erl.im/blog/jekyll-theme-persephone.html">&lt;p&gt;There used to be a question: Why programmers prefer minimal design? The answer is that because they can only do minimal “design”.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;Then here comes this minimal Jekyll theme 👏!&lt;/p&gt;

&lt;p&gt;I know nothing about design.  But I want my blog to be clean, minimal, and different from others. So I did this.&lt;/p&gt;

&lt;p&gt;I copied the idea of design from a lot of places:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;The color schemer from Bootstrap4.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tympanus.net/Development/RevealSlideshow/&quot;&gt;RevealSlideshow&lt;/a&gt; from Codrops.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://perrera.com/&quot;&gt;Perrera.com&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://legacy.gitbook.com/&quot;&gt;Gitbook&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tympanus.net/Development/ImageRevealHover/&quot;&gt;Image Reveal Hover Effects&lt;/a&gt; from Codrops.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://fuckiwishiknewth.at/&quot;&gt;Fuck I Wish I Knew That&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, I pushed it as a Ruby Gem and made it open source as usual.&lt;/p&gt;

&lt;h2 id=&quot;demo&quot;&gt;Demo&lt;/h2&gt;

&lt;p&gt;There are eight layouts in this theme.&lt;/p&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/home.png&quot; alt=&quot;home layout&quot; /&gt;&lt;/th&gt;
      &lt;th&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/blog.png&quot; alt=&quot;blog layout&quot; /&gt;&lt;/th&gt;
      &lt;th&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/post.png&quot; alt=&quot;post layout&quot; /&gt;&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: home&lt;/code&gt; &lt;a href=&quot;https://en.erl.im/blog/&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: blog&lt;/code&gt; &lt;a href=&quot;https://erl.im/blog&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: post&lt;/code&gt; &lt;a href=&quot;https://erl.im/blog/dream&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/page.png&quot; alt=&quot;page layout&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/archive.png&quot; alt=&quot;archive layout&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/slides.png&quot; alt=&quot;slides layout&quot; /&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: page&lt;/code&gt; &lt;a href=&quot;https://erl.im/about&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: archive&lt;/code&gt; &lt;a href=&quot;https://erl.im/archive&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: slides&lt;/code&gt; &lt;a href=&quot;https://erl.im&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/book.png&quot; alt=&quot;book layout&quot; /&gt;&lt;/td&gt;
      &lt;td&gt;&lt;img src=&quot;https://github.com/erlzhang/jekyll-theme-persephone/raw/master/screenshots/chapter.png&quot; alt=&quot;chapter layout&quot; /&gt;&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: book&lt;/code&gt; &lt;a href=&quot;https://erl.im/corner&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;layout: chapter&lt;/code&gt; &lt;a href=&quot;https://erl.im/corner/1&quot;&gt;Demo&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt; &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;p&gt;You can find the full demo from my &lt;a href=&quot;https://erl.im&quot;&gt;Chinese blog&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;installation&quot;&gt;Installation&lt;/h2&gt;

&lt;h3 id=&quot;use-by-ruby-gem&quot;&gt;Use by Ruby gem&lt;/h3&gt;

&lt;p&gt;Add this line to your Jekyll site’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Gemfile&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;jekyll-theme-persephone&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And add this line to your Jekyll site’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-yml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;theme&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;jekyll-theme-persephone&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And then execute:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;bundle
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;use-by-remote-theme&quot;&gt;Use by remote theme&lt;/h3&gt;

&lt;p&gt;The theme is not supported by Github Pages natively. But you can use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;remote_theme&lt;/code&gt; instead.&lt;/p&gt;

&lt;p&gt;Add this line to your Jekyll site’s &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-yml highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;na&quot;&gt;remote_theme&lt;/span&gt;&lt;span class=&quot;pi&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;erlzhang/jekyll-theme-persephone&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;features-and-usage&quot;&gt;Features and Usage&lt;/h2&gt;

&lt;p&gt;The introduction and usages can be found &lt;a href=&quot;https://github.com/erlzhang/jekyll-theme-persephone/blob/master/docs/layouts.md&quot;&gt;here&lt;/a&gt; (some of the layouts can’t be used with a &lt;a href=&quot;https://github.com/erlzhang/jekyll-theme-persephone/blob/master/docs/books.md&quot;&gt;jekyll-books&lt;/a&gt; plugin).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/erlzhang/jekyll-theme-persephone/blob/master/_config.yml&quot;&gt;Here&lt;/a&gt; is a fully functional setting of the theme in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Code highlight, latex, and mermaid are all supported. But you should enable it manually in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Disqus is well supported for post layout.  You can also use Staticman as a static comments provider. Find more from &lt;a href=&quot;https://github.com/erlzhang/jekyll-theme-persephone/blob/master/docs/comments.md&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Just &lt;a href=&quot;https://github.com/erlzhang/jekyll-theme-persephone/issues&quot;&gt;post an issue&lt;/a&gt; or &lt;a href=&quot;mailto:zhangshiyu1992@hotmail.com&quot;&gt;contact me with email&lt;/a&gt; if you have any more questions. Bug reports and feature recommendations are all kindly welcomed.&lt;/p&gt;</content><author><name></name></author><summary type="html">There used to be a question: Why programmers prefer minimal design? The answer is that because they can only do minimal “design”.</summary></entry><entry><title type="html">How to config lighttpd to serve a Jekyll blog?</title><link href="https://en.erl.im/blog/how-to-config-lighttpd-to-serve-jekyll.html" rel="alternate" type="text/html" title="How to config lighttpd to serve a Jekyll blog?" /><published>2018-12-07T13:19:26+00:00</published><updated>2018-12-07T13:19:26+00:00</updated><id>https://en.erl.im/blog/how-to-config-lighttpd-to-serve-jekyll</id><content type="html" xml:base="https://en.erl.im/blog/how-to-config-lighttpd-to-serve-jekyll.html">&lt;p&gt;I bought a VPS, with a single core, 10G memories of disk space, and 512M RAM,  in impulse one day. It is obvious that I can’t serve any web APPs with that, but it is enough to serve a static blog.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;My blog used to be served by Github Page when I started to use Jekyll instead of Wordpress. There was a limitation there all plugins written by myself couldn’t work unless I pushed them to the Github Page artificially after building locally. Finally, I decided to serve it with my VPS. I set a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;callback&lt;/code&gt; in the Github repo so that every time there is something pushed, the server will pull automatically and build the website.&lt;/p&gt;

&lt;p&gt;Apache and Nginx are the most popular web servers. I have used the former at work while the latter is commonly used in Wordpress blogs. I chose the Lighttpd partially because of its lightness, partially because I want to try something new.&lt;/p&gt;

&lt;h2 id=&quot;install-lighttpd&quot;&gt;Install Lighttpd&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;System: Ubuntu 18.04&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&quot;language-sh highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;lighttpd
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The version maybe 1.4.50 if you don’t set that.&lt;/p&gt;

&lt;p&gt;It is so easy to config it after installing. Open the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/lighttpd/lighttpd.conf&lt;/code&gt; which is created automatically, and then fill the root path of your static site after &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;server.document-root&lt;/code&gt;. The rest of the settings can remain unchanged. I set here the dir &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_site&lt;/code&gt; which is the root path Jekyll &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build&lt;/code&gt; the pages into.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;document&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;root&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;/home/www/_site&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then start the server:&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;systemctl&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;start&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lighttpd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;You can see your blog’s page when you enter your blog’s URL in a browser unless the domain isn’t well parsed. If you are as lazy as me, or you don’t want to do too many things, or what you want is that your blog can be accessed only, you needn’t do anything more. I kept the configuration like that for several months.&lt;/p&gt;

&lt;p&gt;However, there are plenty of things to do if you’d like to.&lt;/p&gt;

&lt;h2 id=&quot;optimumzation&quot;&gt;Optimumzation&lt;/h2&gt;

&lt;h3 id=&quot;404-page&quot;&gt;404 Page&lt;/h3&gt;

&lt;p&gt;It had been several months before I found there wasn’t a 404 page on my blog. There was a default &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;404.html&lt;/code&gt; in your root path when you created a project with Jekyll, but it couldn’t work unless you set it in Lighttpd. The option is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;server.errorfile-prefix&lt;/code&gt;, which can be a directory or a directory along with a file prefix. Lighttpd will append a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;404.html&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;500.html&lt;/code&gt; to that option as the error pages.&lt;/p&gt;

&lt;p&gt;For example, if you set &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;server.errorfile-prefix = &quot;/home/www/error-&quot;&lt;/code&gt;,  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/home/www/error-404.html&lt;/code&gt;  will be the 404 page and  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/home/www/error-500.html&lt;/code&gt; will be the 500 page.&lt;/p&gt;

&lt;p&gt;In Jekyll, it can be the same with the root path.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;errorfile&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;prefix&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;/home/www/_site/&quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;speed&quot;&gt;Speed&lt;/h3&gt;

&lt;p&gt;Lighttpd will compress your website pages by default with the module of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mod_compress&lt;/code&gt;, but you should set an expired time to define how long the cached pages will be expired.&lt;/p&gt;

&lt;h4 id=&quot;the-expired-time&quot;&gt;The Expired Time&lt;/h4&gt;

&lt;p&gt;You should require the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mod_expire&lt;/code&gt; first.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;server&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;modules&lt;/span&gt; = (
    &lt;span class=&quot;c&quot;&gt;# ...
&lt;/span&gt;    &lt;span class=&quot;s2&quot;&gt;&quot;mod_expire&quot;&lt;/span&gt;
)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then you can set the expired time for every kind of assets resources. The configuration is interesting here: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;access plus #{ n years/months/days }&lt;/code&gt;. If you want an image to be expired after 30 days, you can write &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;access plus 30 days&lt;/code&gt;. If it is expired after one day, you should write &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;days&lt;/code&gt; instead of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;day&lt;/code&gt; according to the official website. Don’t you think that is a grammar mistake?&lt;/p&gt;

&lt;p&gt;How long should we cache the static assets? It depends on your blog. I don’t want to think too much about this thing, so I set it &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1 years&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It is ok with images, but as for CSS and JS files which are often changed, you should remember to clear the cached files. I clear the cached files by setting a version number in the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;_config.yml&lt;/code&gt; file and append that in the assets file links, such as &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;main.css?v=&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&lt;span class=&quot;n&quot;&gt;HTTP&lt;/span&gt;[&lt;span class=&quot;s2&quot;&gt;&quot;url&quot;&lt;/span&gt;] =~ &lt;span class=&quot;s2&quot;&gt;&quot;^/(assets|img)/&quot;&lt;/span&gt; (
    &lt;span class=&quot;n&quot;&gt;expire&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;url&lt;/span&gt; = ( &lt;span class=&quot;s2&quot;&gt;&quot;&quot;&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s2&quot;&gt;&quot;access plus 1 years&quot;&lt;/span&gt; )
)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;301-redirect&quot;&gt;301 Redirect&lt;/h3&gt;

&lt;p&gt;You may need a 301 redirection often. I used 301 redirections in two ways:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Redirect all of my three domains to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yexiqingxi.com&lt;/code&gt;;&lt;/li&gt;
  &lt;li&gt;I changed the format of the permanent links once while some pages have been recorded by Baidu. These recorded links need to be redirected to the new ones.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We can achieve that with Jekyll simply.&lt;/p&gt;

&lt;p&gt;First, require the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mod_redirect&lt;/code&gt; in Lighttpd, which has been required by default.&lt;/p&gt;

&lt;p&gt;We can try a common requirement here: the SEO optimization recommends you to reserve only one domain between the one with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;www&lt;/code&gt; and the one without the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;www&lt;/code&gt;. One should be redirected to the other. Or they will be perceived as two websites other than one by the search engines.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&lt;span class=&quot;n&quot;&gt;HTTP&lt;/span&gt;[&lt;span class=&quot;s2&quot;&gt;&quot;host&quot;&lt;/span&gt;] =~ &lt;span class=&quot;s2&quot;&gt;&quot;^www.yexiqingxi.com$&quot;&lt;/span&gt; {
    &lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;redirect&lt;/span&gt; = (
        &lt;span class=&quot;s2&quot;&gt;&quot;^/(.*)&quot;&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://yexiqingxi.com/$1&quot;&lt;/span&gt;
    )
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then I will teach you how to direct after you change the permanent link formats. The default URLs will be set as the format of  &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/year/month/day/title.ext&lt;/code&gt;, which is too long. I changed it to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/blog/title.ext&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&lt;span class=&quot;n&quot;&gt;HTTP&lt;/span&gt;[&lt;span class=&quot;s2&quot;&gt;&quot;host&quot;&lt;/span&gt;] =~ &lt;span class=&quot;s2&quot;&gt;&quot;^yexiqingxi.com$&quot;&lt;/span&gt; {
    &lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;redirect&lt;/span&gt; = (
        &lt;span class=&quot;s2&quot;&gt;&quot;^/2018/\d*/\d*/(.*)&quot;&lt;/span&gt; =&amp;gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://yexiqingxi.com/blog/$1&quot;&lt;/span&gt;
    )
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h3 id=&quot;https&quot;&gt;HTTPS&lt;/h3&gt;

&lt;p&gt;I don’t think an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;https&lt;/code&gt; is needed in a simple blog, but I need one in the authentication in the Netlifycms. So I got an SSL certificate for the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;erl.im&lt;/code&gt;. The certificate and its installation are completed by others. I know nothing of the details. So I can only teach you how to config it in Lighttpd.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&lt;span class=&quot;n&quot;&gt;SERVER&lt;/span&gt;[&lt;span class=&quot;s2&quot;&gt;&quot;socket&quot;&lt;/span&gt;] = &lt;span class=&quot;s2&quot;&gt;&quot;:443&quot;&lt;/span&gt; {
    &lt;span class=&quot;n&quot;&gt;ssl&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;engine&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;enable&quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;ssl&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;pemfile&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;/etc/.../.../server.pem&quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;ssl&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;ca&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;file&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;/etc/../../fullchain.pem&quot;&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;server&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;document&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;root&lt;/span&gt; = &lt;span class=&quot;s2&quot;&gt;&quot;/home/www/_site&quot;&lt;/span&gt;
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Well, that’s so simple!&lt;/p&gt;

&lt;h3 id=&quot;the-prevention-of-stoken-links-of-images&quot;&gt;The Prevention of Stoken Links of Images&lt;/h3&gt;

&lt;p&gt;We can look up the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;referer&lt;/code&gt;s of the requests and reject the access from other websites. You can also redirect that to your home page.&lt;/p&gt;

&lt;div class=&quot;language-conf highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;$&lt;span class=&quot;n&quot;&gt;HTTP&lt;/span&gt;[&lt;span class=&quot;s2&quot;&gt;&quot;referer&quot;&lt;/span&gt;] !~ &lt;span class=&quot;s2&quot;&gt;&quot;^($|http://yexiqingxi\.com)&quot;&lt;/span&gt; {
    &lt;span class=&quot;n&quot;&gt;url&lt;/span&gt;.&lt;span class=&quot;n&quot;&gt;access&lt;/span&gt;-&lt;span class=&quot;n&quot;&gt;deny&lt;/span&gt; = ( &lt;span class=&quot;s2&quot;&gt;&quot;.jpg&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;.jpeg&quot;&lt;/span&gt;, &lt;span class=&quot;s2&quot;&gt;&quot;.png&quot;&lt;/span&gt; )
  }
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If someone wants to require your images on their websites, they will get a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;403&lt;/code&gt;. By the way, it is easy to break such protection by simply embedding an &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;iframe&lt;/code&gt; so that the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;referer&lt;/code&gt; will be blank, that seems similar to opening an image in the browser.&lt;/p&gt;</content><author><name></name></author><summary type="html">I bought a VPS, with a single core, 10G memories of disk space, and 512M RAM, in impulse one day. It is obvious that I can’t serve any web APPs with that, but it is enough to serve a static blog. My blog used to be served by Github Page when I started to use Jekyll instead of Wordpress. There was a limitation there all plugins written by myself couldn’t work unless I pushed them to the Github Page artificially after building locally. Finally, I decided to serve it with my VPS. I set a callback in the Github repo so that every time there is something pushed, the server will pull automatically and build the website. Apache and Nginx are the most popular web servers. I have used the former at work while the latter is commonly used in Wordpress blogs. I chose the Lighttpd partially because of its lightness, partially because I want to try something new. Install Lighttpd System: Ubuntu 18.04 sudo apt-get install lighttpd The version maybe 1.4.50 if you don’t set that. It is so easy to config it after installing. Open the /etc/lighttpd/lighttpd.conf which is created automatically, and then fill the root path of your static site after server.document-root. The rest of the settings can remain unchanged. I set here the dir _site which is the root path Jekyll build the pages into. server.document-root = &quot;/home/www/_site&quot; Then start the server: sudo systemctl start lighttpd You can see your blog’s page when you enter your blog’s URL in a browser unless the domain isn’t well parsed. If you are as lazy as me, or you don’t want to do too many things, or what you want is that your blog can be accessed only, you needn’t do anything more. I kept the configuration like that for several months. However, there are plenty of things to do if you’d like to. Optimumzation 404 Page It had been several months before I found there wasn’t a 404 page on my blog. There was a default 404.html in your root path when you created a project with Jekyll, but it couldn’t work unless you set it in Lighttpd. The option is server.errorfile-prefix, which can be a directory or a directory along with a file prefix. Lighttpd will append a 404.html or 500.html to that option as the error pages. For example, if you set server.errorfile-prefix = &quot;/home/www/error-&quot;, /home/www/error-404.html will be the 404 page and /home/www/error-500.html will be the 500 page. In Jekyll, it can be the same with the root path. server.errorfile-prefix = &quot;/home/www/_site/&quot; Speed Lighttpd will compress your website pages by default with the module of mod_compress, but you should set an expired time to define how long the cached pages will be expired. The Expired Time You should require the mod_expire first. server.modules = ( # ... &quot;mod_expire&quot; ) Then you can set the expired time for every kind of assets resources. The configuration is interesting here: access plus #{ n years/months/days }. If you want an image to be expired after 30 days, you can write access plus 30 days. If it is expired after one day, you should write days instead of day according to the official website. Don’t you think that is a grammar mistake? How long should we cache the static assets? It depends on your blog. I don’t want to think too much about this thing, so I set it 1 years. It is ok with images, but as for CSS and JS files which are often changed, you should remember to clear the cached files. I clear the cached files by setting a version number in the _config.yml file and append that in the assets file links, such as main.css?v=. $HTTP[&quot;url&quot;] =~ &quot;^/(assets|img)/&quot; ( expire.url = ( &quot;&quot; =&amp;gt; &quot;access plus 1 years&quot; ) ) 301 Redirect You may need a 301 redirection often. I used 301 redirections in two ways: Redirect all of my three domains to yexiqingxi.com; I changed the format of the permanent links once while some pages have been recorded by Baidu. These recorded links need to be redirected to the new ones. We can achieve that with Jekyll simply. First, require the mod_redirect in Lighttpd, which has been required by default. We can try a common requirement here: the SEO optimization recommends you to reserve only one domain between the one with the www and the one without the www. One should be redirected to the other. Or they will be perceived as two websites other than one by the search engines. $HTTP[&quot;host&quot;] =~ &quot;^www.yexiqingxi.com$&quot; { url.redirect = ( &quot;^/(.*)&quot; =&amp;gt; &quot;http://yexiqingxi.com/$1&quot; ) } Then I will teach you how to direct after you change the permanent link formats. The default URLs will be set as the format of /year/month/day/title.ext, which is too long. I changed it to /blog/title.ext. $HTTP[&quot;host&quot;] =~ &quot;^yexiqingxi.com$&quot; { url.redirect = ( &quot;^/2018/\d*/\d*/(.*)&quot; =&amp;gt; &quot;http://yexiqingxi.com/blog/$1&quot; ) } HTTPS I don’t think an https is needed in a simple blog, but I need one in the authentication in the Netlifycms. So I got an SSL certificate for the erl.im. The certificate and its installation are completed by others. I know nothing of the details. So I can only teach you how to config it in Lighttpd. $SERVER[&quot;socket&quot;] = &quot;:443&quot; { ssl.engine = &quot;enable&quot; ssl.pemfile = &quot;/etc/.../.../server.pem&quot; ssl.ca-file = &quot;/etc/../../fullchain.pem&quot; server.document-root = &quot;/home/www/_site&quot; } Well, that’s so simple! The Prevention of Stoken Links of Images We can look up the referers of the requests and reject the access from other websites. You can also redirect that to your home page. $HTTP[&quot;referer&quot;] !~ &quot;^($|http://yexiqingxi\.com)&quot; { url.access-deny = ( &quot;.jpg&quot;, &quot;.jpeg&quot;, &quot;.png&quot; ) } If someone wants to require your images on their websites, they will get a 403. By the way, it is easy to break such protection by simply embedding an iframe so that the referer will be blank, that seems similar to opening an image in the browser.</summary></entry><entry><title type="html">Minimalist Lifestyle</title><link href="https://en.erl.im/blog/minimalist-lifestyle.html" rel="alternate" type="text/html" title="Minimalist Lifestyle" /><published>2018-11-25T03:42:10+00:00</published><updated>2018-11-25T03:42:10+00:00</updated><id>https://en.erl.im/blog/minimalist-lifestyle</id><content type="html" xml:base="https://en.erl.im/blog/minimalist-lifestyle.html">&lt;p&gt;It’s not exaggerating if I say that my life has been changed by minimalism.&lt;/p&gt;

&lt;p&gt;What would you think about when somebody mentions &lt;em&gt;minimalism&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Ikea? Muji? Or Xiao mi?&lt;/p&gt;

&lt;p&gt;I could find a lot of minimalisms in those WordPress theme websites when I used WordPress to build my blog.  &lt;a href=&quot;https://wordpress.org/themes/twentytwelve/&quot;&gt;Twenty Twelve&lt;/a&gt;, the official theme in that year, is an example of minimalist design, even WordPress is not minimal. I began to try this style when I found a theme named &lt;em&gt;paper&lt;/em&gt; of Tumblr. I made a WordPress version of that, which is the &lt;a href=&quot;https://github.com/erlzhang/erlsimple&quot;&gt;erlsimple&lt;/a&gt;, and changed a little. However, it gradually went far away from &lt;em&gt;minimalism&lt;/em&gt; after being modified for several times.&lt;/p&gt;

&lt;p&gt;I don’t want to talk more about the minimalist design in this article. It is far before I used Wordpress when I knew the concept of minimalism. I used to buy a magazine in a small bookshop in front of my junior high school, which is &lt;em&gt;Flower and Alice, 7th 2009&lt;/em&gt;. The topic of that periodical is &lt;strong&gt;air&lt;/strong&gt;, and both its design and contents were minimal. It was from that magazine that I learned MUJI.&lt;/p&gt;

&lt;p&gt;When graduated from university in 2014, I tried to find the meaning of life in those social media, such as zhihu, Quora, Tumblr, Google+ and so on. I saw minimalism once more time. Not only the minimalist style but also the minimalist lifestyle.&lt;/p&gt;

&lt;p&gt;The essence of the minimalist lifestyle is to get the plain true meanings of life and abandon those not necessary.&lt;/p&gt;

&lt;p&gt;It had been half a year after my graduation when my lifestyle changed. Before that, I usually got to bed after 2 o’clock and got up at 8 am. I had to go to work after a quick washing of my face. I had my breakfast in either KFC near where I lived or the McDonald near the office.&lt;/p&gt;

&lt;p&gt;What made me change? I didn’t know. It was only at a moment in a day when I found I shouldn’t keep that lifestyle anymore. Then I changed.&lt;/p&gt;

&lt;p&gt;The first thing I did was going to work on foot rather than by bus. I was lucky to live near the office at that time, and I could get work within 40 minutes on foot.&lt;/p&gt;

&lt;p&gt;The second was to adjust my schedule. It was hard for me in the beginning for I had been used to stay up late at night and couldn’t fell asleep before 11 pm. I did that by compelling myself to get up at 8 am, then at 7 am, and finally at 6. I had to get up no matter when I got asleep the day before. I either read books or learned English after getting up. Sometimes I did nothing but watching the sky outside getting lighter gradually. I could fall asleep early after a period of adjustment.&lt;/p&gt;

&lt;p&gt;The third was to eat breakfast at home. It was at that time I started to learn cooking.&lt;/p&gt;

&lt;p&gt;These changes composed the beginning and a small amount of the changes only. But what composed the beginning have been an important part of my lifestyle today and I can’t abandon them anymore. It seems that these I mentioned have little relationship with minimalism, but they are the bases of all the other things.&lt;/p&gt;

&lt;p&gt;I left Beijing and went to Shanghai in 2015. I wanted to go to college again at that time, but I felt so hard to study so I continued working. I rent a room with a better environment which cost a third of my wages so that I could have a personal space which I hadn’t in Beijing. I kept getting up and going to bed early. I cooked three meal every day. I read books, ran and did aerobics.&lt;/p&gt;

&lt;p&gt;Both life and work were dull and made me lonely. I felt depressed. Life kept still in the surface, but disorder under the surface. I kept thinking about the meanings of life day by day. I read all kinds of books and articles but still couldn’t find any answer. I got insomnia while keeping getting up early in the morning, which made me lack of sleep and felt uncomfortable at work. What zhihu gave me was misleading only. Neither reading nor running was helpful to me, even both of them made subtle effects on my life. But at that time, it was the writing that helped me get rid of depression.&lt;/p&gt;

&lt;p&gt;My two-years life in Shanghai was contradicted and disordered. I tried to keep my life simple while keeping obeying the rules I made for myself. My admiration of the life in a big city from when I was young had been disappeared entirely. I just want to leave there for its insolation, disruption, the cost of time and energy  on the meaningless things, and the dull and feigned career.&lt;/p&gt;

&lt;p&gt;The completed change happened after I came back to this small city where there are rivers and mountains nearby. I don’t know whether the city itself made any influence on my life, but what I pursued but had been disturbed by all kinds of things have been achieved here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First, I can keep away from all kinds of social media.&lt;/strong&gt; These social media, no matter zhihu, Quora, weibo, weixin or G+, have disruption only on your energy and cognition, which made you waste a lot of time easily. It is no longer the time lack of information, but the time with excess information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second, I no longer watch TV,&lt;/strong&gt; including TV shows, animations, all kinds of short videos, or even movies. 90% of these videos are stimulations to our sensory only and waste a lot of time, although a small part of them may be wonderful and enjoyable. I can read books or take a walk outside if I want a rest. But it isn’t easy to keep away from that for I often disturbed by other things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third, keep away from drinks, junk foods and fast foods.&lt;/strong&gt; I have been watching a course named &lt;a href=&quot;https://oyc.yale.edu/psychology/psyc-123&quot;&gt;The Psychology, Biology and Politics of Food&lt;/a&gt; of Yale. It is partially about how to eat healthily. I quit sweet almost entirely because of the pain of my teeth, but I love sour and spicy food. I made a good control over my eating this year. I hardly drink the beverage or eat junk food, and hardly eat outside. I can control the nutrition and taste of food by cooking by myself. But I feel weary these days and my body weight lowered. Maybe I need more protein.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fourth, keep free from facilities and tools.&lt;/strong&gt; I keep a small count of apps in my computer and mobile phone. These tools and help us do things better, but they can disturb you too. I don’t link to play with my mobile phone, but I have to use my pc often to program and write articles. Pc is a necessary tool to me. It is interesting to find new tools which are useful, but I should be careful not to be lost in that. I try to keep away from my computer in work days unless necessary. And I will review the apps and softwares in my phone and computer to find those are not necessary and to be dismantled.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fifth, and which is the essential one, shop less.&lt;/strong&gt; 70% of the contents of these books about minimalism are about shopping. It is not only the time with excess information but also marketing. We are dangerous of falling into the traps others made for us all the time or even fall into these traps without knowing that. It is not easy to think or make decisions freely. Even if you flee from a trap, you can fall into another trap easily. However, I find it interesting to anti-marketing, even I failed most of the time.&lt;/p&gt;

&lt;p&gt;What left in life without those things? Maybe working, studying, reading, writing, exercising, or staying with family. The life may be more null than that in Shanghai, but I don’t feel lonely or bored.&lt;/p&gt;

&lt;p&gt;I value every minute of my time. I no longer have procrastination or the guilty of wasting time. I still often think about the meanings of life, but I get the target and orientation.&lt;/p&gt;

&lt;p&gt;Life needs ornaments, which can become the burden, waste our energy and make us tired if too much. We should stop all the time to think about what we want and what is not needed. The thinking itself can be the pleasure of life.&lt;/p&gt;</content><author><name></name></author><summary type="html">It's not exaggerating if I say that my life has been changed by minimalism.</summary></entry><entry><title type="html">The learning methods from educational psychology.</title><link href="https://en.erl.im/blog/learning-method-from-education-psychology.html" rel="alternate" type="text/html" title="The learning methods from educational psychology." /><published>2018-11-17T05:27:18+00:00</published><updated>2018-11-17T05:27:18+00:00</updated><id>https://en.erl.im/blog/learning-method-from-education-psychology</id><content type="html" xml:base="https://en.erl.im/blog/learning-method-from-education-psychology.html">&lt;p&gt;Studying is enjoyable for me, but studying for an examination is miserable especially when the contents learned are boring and meaningless.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;I even don’t want to call that &lt;em&gt;studying&lt;/em&gt;. That’s &lt;em&gt;preparing an examine&lt;/em&gt; only. I can gain only a few knowledge during the preparation of most of examines. However, the &lt;em&gt;less&lt;/em&gt; is not equal to the &lt;em&gt;none&lt;/em&gt;. It is valuable even when only 10 percents of the contents I learned are useful while the others are not. ( Don’t waste the time if the valuable contents account less then 10 percent.)&lt;/p&gt;

&lt;p&gt;I had prepared for the Education Certification Examine for nearly two months from September to November. The time is so hard for me for these three reasons here.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;First, I neither took any examine nor learned anything by heart after I graduated in 2014.&lt;/li&gt;
  &lt;li&gt;Second, 90 percents of the contents are boring.&lt;/li&gt;
  &lt;li&gt;Third, I had worked overtime during the whole of September and haven’t enough time to prepare it. I almost hardly prepare for the third subject.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I might forgo if I hadn’t paid the fee. However, no matter what the result is, the knowledge I gained in the two months about the leaning methods in educational psychology is valuable. That is what I summarize here.&lt;/p&gt;

&lt;h2 id=&quot;motivation-curve&quot;&gt;Motivation Curve&lt;/h2&gt;

&lt;p&gt;The Motivation Curve means the relation between one’s motivations and results. The motivations I mentioned here includes not only learning motivations but also working motivations and the motivations to solve problems. You may think that the stronger motivations you have, the better results you will gain. But the research from a psychologist (I don’t think it is useful to memorize such a name here) shows that the relation between the motivations and the results formed a curve of a reversed U. &lt;strong&gt;Both strong and weak motivations will make a negative impact on the results.&lt;/strong&gt; The curve is also relative to the difficulty of the tasks. &lt;strong&gt;The best level of motivation is higher in easy tasks then that in difficult ones.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;memory&quot;&gt;Memory&lt;/h2&gt;

&lt;h3 id=&quot;short-term-memories-and-long-term-memories&quot;&gt;Short-term Memories and Long-term Memories&lt;/h3&gt;

&lt;p&gt;The textbooks I used in preparing for examines provides only simple and general knowledge. They won’t explain everything deeply. Fortunately, I had watched the  &lt;em&gt;9.00sc Introduction to Psychology&lt;/em&gt; from MIT’s open courseware, in which these contents are also included.&lt;/p&gt;

&lt;p&gt;A short-term memory contains 7 \(\pm\) 2 chunks. There is even none explanation of what a chunk is in my textbook. But there is an examination in OCW 9.00sc. The professor showed some letters with no relations and let the students repeat them immediately after he hid them. The average count of letters the students could repeat exactly was seven. Some repeated more than this while some less.&lt;/p&gt;

&lt;p&gt;We can change the short-term memories to long-term memories by &lt;strong&gt;repeating&lt;/strong&gt;, the method we often used in junior high school. &lt;strong&gt;Read repeatedly and then try to memorize it.&lt;/strong&gt; The critical period of memory is 24 years old. Unfortunately, I’m beyond that.&lt;/p&gt;

&lt;h3 id=&quot;the-forgetting-curve&quot;&gt;The Forgetting Curve&lt;/h3&gt;

&lt;p&gt;These contents are often mentioned in all kinds of relative books. &lt;strong&gt;The speed of forgetting is high in early time and get lower later gradually as the days after learning increased.&lt;/strong&gt;&lt;/p&gt;

&lt;h3 id=&quot;the-proactive-and-retroactive-inhibition&quot;&gt;The Proactive and Retroactive Inhibition&lt;/h3&gt;

&lt;p&gt;The proactive inhibition is the negative effect from the contents learned earlier to later and the reverse is the retroactive one. According to this theory, the results of learning during one period of time formed a reverse U curve. &lt;strong&gt;The effectiveness of learning is better in the early period and the late period than that in the medium.&lt;/strong&gt; The later is better than the earlier. &lt;strong&gt;The best time to learn something by heart in a day is in the evening.&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&quot;the-learning-strategy&quot;&gt;The Learning Strategy&lt;/h2&gt;

&lt;h3 id=&quot;the-elaboration-strategy&quot;&gt;The Elaboration Strategy&lt;/h3&gt;

&lt;p&gt;The so-called Elaboration Strategy is to organize the learning materials by some formats and make them easy to be learned by heart. You can get more details about this from a book &lt;em&gt;How to learn effectively?&lt;/em&gt;.&lt;/p&gt;

&lt;h3 id=&quot;organizing-strategy&quot;&gt;Organizing Strategy&lt;/h3&gt;

&lt;p&gt;It’s difficult for us whose ages are beyond the &lt;em&gt;critical period&lt;/em&gt;  to memory things directly. We should try to understand them instead. The Elaboration Strategy will make an impact on short-term memories only. And the better way is to &lt;strong&gt;organize the materials of multiple knowledge&lt;/strong&gt;. One of the advantages of us at present compared to when we were young is the amount of knowledge. There are relations among all kinds of knowledge. We will feel easy to learn new things if we can deal with these relations effectively.&lt;/p&gt;

&lt;p&gt;But how to deal with these relations? That will compose an entire book!&lt;/p&gt;

&lt;h3 id=&quot;multisensory-application-strategy&quot;&gt;Multisensory Application Strategy&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;Some psychologists demonstrated that 83% of what people learned are from vision, 11% are from hearing, 3.5% are from olfactory, 1.5% are from tactile, and the rest 1% are from tasing. People can remember 10% of what they read, 20% of what they listened, 30% of what they saw, and 70% of what they said during a conversation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;em&gt;(This is the original text from the textbook. The ‘some psychologists’ proves sufficiently what I said in the earlier paragraph that ‘name are meanless’.)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It is better to &lt;strong&gt;take a lesson&lt;/strong&gt; than to learn by yourself if you can choose. The &lt;strong&gt;switch of multisensory&lt;/strong&gt; is also helpful to concentrate on something. For example, if you find your attention are away from the textbooks, try to read it aloud. (You should have a rest if you find that isn’t helpful.)&lt;/p&gt;

&lt;h3 id=&quot;time-management-strategy&quot;&gt;Time Management Strategy&lt;/h3&gt;

&lt;p&gt;The strategy of time management is to allocate your time spent on learning. I’m no longer in the college. Now, I have pressures from career, the society and even the life itself. It isn’t easy to just keep learning in such a condition. So good &lt;strong&gt;time management and energy management&lt;/strong&gt; is essential to me.&lt;/p&gt;

&lt;p&gt;I felt so tired in the day after the day I finished the Education Certification Examine that the whole body was in pain and weary as if I had finished a serve aerobics. I couldn’t relax even then because there is another examine which is more important waiting for me. I started to prepare for the next mission immediately. However, the effectiveness of learning was so low. I even couldn’t concentrate on studying. Even then I can’t take a relax entirely. I may forgo if I do that. But I adjusted the schedule and cut some portion of the time to learn.&lt;/p&gt;

&lt;p&gt;The things I summarised here.&lt;/p&gt;

&lt;p&gt;First, you should &lt;strong&gt;make full use of the time after your day-work&lt;/strong&gt;, which is effective for those people who hardly work overtime. If you get home at nine pm or even later, just go to bed and sleep. A two-hours of learning every day in a week is more effective than a ten-hours of learning in one day according to educational psychology. And as I have mentioned before, the best period of time to learn is evening.&lt;/p&gt;

&lt;p&gt;Second, &lt;strong&gt;try the &lt;em&gt;Tomato Working Method&lt;/em&gt;&lt;/strong&gt;, which is also useful in learning. It is a method you can use to manage your attention. You can’t keep a long continuous concentration on your learning and maybe no one can. If you find your attention is away from what you are learning, maybe you should have a rest. One of the main ideas in the Tomato Working is to give yourself a signature to switch between working and resting. I have tried this method in learning and daily working, and both are helpful.&lt;/p&gt;

&lt;p&gt;Last one, and maybe the most important one, is to &lt;strong&gt;exercise and have a good rest&lt;/strong&gt;. It is worthless to stay up late at night. Only with a strong and healthy body can you live with the tiredness and the pressure.&lt;/p&gt;

&lt;p&gt;I study for two hours every work-day, which is an exact Big Tomato Time. I get up at 5:30 in the morning and get to bed before 9:30 pm. One hour and a half of my daily study time are in the evening and the rest is in the morning. Saturday is the day for resting. I can write a novel or publish a post for my blog. Shop or go hiking. Or just watch a movie at home. On Sunday, I take at least two lessons from MIT’s open courseware and use the rest of the time studying. I always use the Tomato Working Method. Take a rest after a two-hours learning, by washing clothes, making meals or cleaning the house.&lt;/p&gt;

&lt;p&gt;I often hear someone in the office said that he had no time. It seems ridiculous for those who get work at 8:00 am and leave at 6:00 pm,  haven’t got married or had a baby yet, to say that.&lt;/p&gt;</content><author><name></name></author><summary type="html">Studying is enjoyable for me, but studying for an examination is miserable especially when the contents learned are boring and meaningless.</summary></entry><entry><title type="html">Blog Made of Jamstack</title><link href="https://en.erl.im/blog/blog-made-of-jamstack.html" rel="alternate" type="text/html" title="Blog Made of Jamstack" /><published>2018-11-04T07:23:03+00:00</published><updated>2018-11-04T07:23:03+00:00</updated><id>https://en.erl.im/blog/blog-made-of-jamstack</id><content type="html" xml:base="https://en.erl.im/blog/blog-made-of-jamstack.html">&lt;p&gt;What is JAMstack? J means JavaScript, A means API and M is Markup. Here is the official explanation:&lt;/p&gt;

&lt;!--more--&gt;

&lt;blockquote&gt;
  &lt;p&gt;Modern web development architecture based on client-side JavaScript, reusable APIs, and prebuilt Markup.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is a programming concept that is popular in these years. But I don’t know how recent it appeared and how popular it is. At least I haven’t known any web apps based on that in China. But in the blog area, it became more and more popular while the Wordpress is outdated and a lot of concepts of website buildings such as serverless, static site generator(SSG), and so on appeared. Somebodies have used it maybe not even know it.&lt;/p&gt;

&lt;h2 id=&quot;ssg&quot;&gt;SSG&lt;/h2&gt;

&lt;p&gt;I found &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; after I left Wordpress. Jekyll became the most well-known SSG partially because it is the engine of Github Pages. All those SSGs, including Jekyll, Hexo, and Huge, are the M of the JAMstack. That is Markup.&lt;/p&gt;

&lt;p&gt;The SSGs build static pages using conventional markups and processing rule. They use fewer memories of servers to build and with high speed to access. They also can be serverless based on the Github Pages, which attracted a lot of programmers.&lt;/p&gt;

&lt;p&gt;However, SSG can’t take the place of CMS. Because not everyone is a programmer. Even I, as a programmer, need a CMS sometimes. I may gain an inspiration to write an article every time or find some words to be corrected. But I can’t carry a GIT environment everywhere.&lt;/p&gt;

&lt;p&gt;Both generators and Markdown are great even with these defections. Then I should find a way to get a CMS for my blog based on the SSG.&lt;/p&gt;

&lt;h2 id=&quot;cms&quot;&gt;CMS&lt;/h2&gt;

&lt;p&gt;There are some CMSs for SSG. Jekyll has its official one named &lt;a href=&quot;https://github.com/jekyll/jekyll-admin&quot;&gt;JekyllAdmin&lt;/a&gt;. But I don’t think it is easy to use because it lacks a login system.&lt;/p&gt;

&lt;p&gt;There are some platforms compatible with the popular SSGs, such as Contentful and Site Leaf. But these platforms are not like CMS. It’s not convenient. You need to jump from one site to another. Space is limited. You should pay for it if you need more.&lt;/p&gt;

&lt;p&gt;Finally, I found a tool not perfect but easy to use. That is &lt;a href=&quot;https://www.netlifycms.org/&quot;&gt;Netlifycms&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.netlify.com/&quot;&gt;Netlify&lt;/a&gt; is a good thing too. There is a limitation in Github Pages. Only some of the plugins are permitted in Github Pages but all in Netlify. You can connect it with your Github repository. When something changed in your repository, it will build your site automatically. It can do all what the Github Pages do and what it can’t. It is nearly perfect and you can use Netlifycms easily based on it.&lt;/p&gt;

&lt;p&gt;I found only one shortage which is the access speed in China. But it is speeder than Github Page.&lt;/p&gt;

&lt;p&gt;Netlifycms is a CMS written in React, supporting Jekyll, Hexo and other SSGs. It uses API to access your Github repository and fetch and change the content. It has a login system that you can login with your Github account. The usage is simple:&lt;/p&gt;

&lt;p&gt;Create a directory named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;admin&lt;/code&gt; in the root. Then create a new page named &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;index.html&lt;/code&gt; as the index of your CMS. Next, you should include the CDN of Netlify CMS.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;  &lt;span class=&quot;nt&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;c&quot;&gt;&amp;lt;!-- Include the script that builds the page and powers Netlify CMS --&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;script &lt;/span&gt;&lt;span class=&quot;na&quot;&gt;src=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;https://unpkg.com/netlify-cms@^2.0.0/dist/netlify-cms.js&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Finally, create &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;config.yml&lt;/code&gt; in your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;admin&lt;/code&gt; directory which contains the necessary settings. You needn’t do anything then for all needed is done by Netlify CMS. Netlify CMS is open source, so you can &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pull&lt;/code&gt; the source code and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build&lt;/code&gt; by yourself. But the speed of CDN is stable even in China.&lt;/p&gt;

&lt;p&gt;The biggest problem I found in that procedure is to login. Nelifycms is mainly for Netlify. If you use Netlify it can be built easily, but you will find a challenge if not. It seems that you can use the login system even without Netlify, but I didn’t understand the document. I built an authenticate server with the open source code in my VPS.&lt;/p&gt;

&lt;p&gt;The principle of Netlify CMS is the J and A of JAM, JavaScript and APIs.&lt;/p&gt;

&lt;p&gt;I like the UI of Nelify CMS. But the functions are not perfect. I may improve it by myself if I learned React.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Workflow&lt;/em&gt; is one of its features. You can use that if your blog has more than one author. It is based on the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pull request&lt;/code&gt; of Github.&lt;/p&gt;

&lt;p&gt;Rich text editor based on &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;markdown&lt;/code&gt;. You can use it even if you don’t know &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;markdown&lt;/code&gt;.&lt;/p&gt;

&lt;h2 id=&quot;ci&quot;&gt;CI&lt;/h2&gt;

&lt;p&gt;Netlify CMS synchronizes your Github repository automatically. But I need to build in VPS after pulling from Github. Every time when something changed, I need to access the server and pull and build, which is so inconvenient. I wondered how Netlify CMS can do that.&lt;/p&gt;

&lt;p&gt;I found the answer after some research. It is based on the API of Github. Here is another concept that is related to JAMstack, maybe not so directly. It is &lt;strong&gt;Continous Integration(CI)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I found this word in the official website of Jekyll. Jekyll lists some auto-deployment, some of them are based on this. It can solve the problem of Github Page that only a few plugins are permitted in it. Theses CI platforms including Travis CI and Circle CI provide you with mirror spaces. When something changed in your Github repository, it pulls the codes and builds the site, then push it to your Github Page branch. I tried both two platforms and I found them complex and not suitable for a simple blog.&lt;/p&gt;

&lt;p&gt;The easy way is to make use of the &lt;em&gt;Webhooks&lt;/em&gt; of Github. You can find that in the &lt;em&gt;Settings&lt;/em&gt; of your repository page. When the events are triggered, Github will send &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;POST&lt;/code&gt; requests to every callback link you add. You can do what you want after your server receives the request.&lt;/p&gt;

&lt;p&gt;There is a demo in the &lt;a href=&quot;https://developer.github.com/webhooks/&quot;&gt;Help Center&lt;/a&gt;of Github, which is written in Ruby and maybe a little complex. I made it quite easily. Execute &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git pull &amp;amp;&amp;amp; jekyll b&lt;/code&gt; every time received a request no matter what the contents are. Actually, you need to have a check first according to the official document in Github.&lt;/p&gt;

&lt;div class=&quot;language-ruby highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'sinatra'&lt;/span&gt;
&lt;span class=&quot;nb&quot;&gt;require&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'json'&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;CIServer&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;Sinatra&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;Base&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;configure&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:production&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:development&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;ss&quot;&gt;:logging&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;

  &lt;span class=&quot;n&quot;&gt;post&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'/event_handler'&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;do&lt;/span&gt;
    &lt;span class=&quot;vi&quot;&gt;@payload&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;no&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;parse&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;ss&quot;&gt;:payload&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt;

    &lt;span class=&quot;n&quot;&gt;logger&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;info&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;request:&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;#{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'HTTP_X_GITHUB_EVENT'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;si&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;

    &lt;span class=&quot;k&quot;&gt;case&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;s1&quot;&gt;'HTTP_X_GITHUB_EVENT'&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;when&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;push&quot;&lt;/span&gt;
      &lt;span class=&quot;n&quot;&gt;logger&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;info&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;start pulling and building&quot;&lt;/span&gt;
      &lt;span class=&quot;nb&quot;&gt;system&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;git pull; jekyll b&quot;&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;comments&quot;&gt;Comments&lt;/h2&gt;

&lt;p&gt;How can you make a blog that can not be commented? Actually, I wonder that for I decided to cut the comments finally. But I had tried to make Jekyll commentable for a while.&lt;/p&gt;

&lt;p&gt;Most of the comment of the SSG websites are powered by other tools. Disqus is the wildest used but is blocked in China. We can use duoshuo or youyan instead.&lt;/p&gt;

&lt;p&gt;I used none of these tools. It is convenient to use them but the contents didn’t belong to you with disharmony. The comments and posts are discrete.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://staticman.net/&quot;&gt;Staticman&lt;/a&gt; can combine your comments with your Jekyll. It also uses the API of Github to access your repository. This is the progress.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Include a form to post the comments in your post page. The &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;action&lt;/code&gt; should be that API provided by Staticman.&lt;/li&gt;
  &lt;li&gt;When somebody posts a comment, Staticman write the comment into a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yml&lt;/code&gt; file and push that to your repository.&lt;/li&gt;
  &lt;li&gt;Just include theses &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;yml&lt;/code&gt; files in your post page when &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The point is this API Staticman provided. It is not your Github account, but the account of Staticman. You need to add it to the contributors of your repository. Then open the URL in your browser to let Staticman pass your application of contributor.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;https://api.staticman.net/v2/connect/{your GitHub username}/{your repository name}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The question is after I added the contributor, I tried to request that URL n times in n days but got &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;invitation not found&lt;/code&gt;. I got the problem in the issues of Staticman that the server is too busy to reply to everyone.&lt;/p&gt;

&lt;p&gt;I pull the source codes to my server and built it by myself.&lt;/p&gt;

&lt;p&gt;But there were still problems. My blog continuously integrates with my Github repository which needs a period of time. Neither &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;pull&lt;/code&gt; nor &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;build&lt;/code&gt; can be completed within a second. The page will reload after submitting the comment but that Jekyll may not complete the building at that time.&lt;/p&gt;

&lt;p&gt;I could solve the problem with AJAX but I stopped myself from doing that. I found I didn’t need comments.&lt;/p&gt;

&lt;h2 id=&quot;persephone&quot;&gt;Persephone&lt;/h2&gt;

&lt;p&gt;I have made this blog of Jekyll for about half a year and haven’t finished yet. I can’t stop doing that. There are still a lot of things to do.&lt;/p&gt;

&lt;p&gt;I named the repository of the blog &lt;strong&gt;Persephone&lt;/strong&gt;, who is the queen of the Hades. Everybody familiar with the myth of Greek will know her.&lt;/p&gt;

&lt;p&gt;I made each of my private projects name of the name of the goddess of the ancient Greek. It is meaningless but just for fun, like other things in my life. Life is meaningless.&lt;/p&gt;

&lt;p&gt;Persephone is open source including theme and plugins. You can get the full codes in &lt;a href=&quot;https://github.com/erlzhang/persephone&quot;&gt;https://github.com/erlzhang/persephone&lt;/a&gt; if you are interested in it. There may be bugs in it for I’m not a superior programmer. But the articles and novels are the product of myself. I reserve the copyright.&lt;/p&gt;</content><author><name></name></author><summary type="html">What is JAMstack? J means JavaScript, A means API and M is Markup. Here is the official explanation:</summary></entry><entry><title type="html">The Road Of My Blog</title><link href="https://en.erl.im/blog/the-road-of-blog.html" rel="alternate" type="text/html" title="The Road Of My Blog" /><published>2018-10-27T05:36:04+00:00</published><updated>2018-10-27T05:36:04+00:00</updated><id>https://en.erl.im/blog/the-road-of-blog</id><content type="html" xml:base="https://en.erl.im/blog/the-road-of-blog.html">&lt;p&gt;I started to build a blog in 2012 when I was studying International Politics in college with my limited acknowledge in HTML and CSS. The programming languages I knew then including JSP, ASP, and PHP. And I thought that I would never learn PHP and JavaScript well.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;In the beginning, I used the Emlog to build this blog and register the &lt;em&gt;erlmy.com&lt;/em&gt; in Wanwang which is dropped then. Wanwang hadn’t belonged to Aliyun at that time. Then I rent a virtual host of 300M disk memory.&lt;/p&gt;

&lt;p&gt;I couldn’t predict what big influence it would make on my career. I made it just for fun at that time.&lt;/p&gt;

&lt;p&gt;I migrated the blog from Emlog to Wordpress within one year. The reason is simple: there are so many plugins and themes in Wordpress for me to play with. I also migrated to the Hengtian Host which a lot of Wordpress blogs were advertising for.&lt;/p&gt;

&lt;p&gt;I tried to make a theme by myself rather than using others’. I couldn’t achieve that with the limited knowledge of HTML and CSS. So I started learning Jquery and a little PHP. What I learned could only account for a few changes of other people’s themes. My skills of HTML and CSS which I thought were practiced at that time were just at a low level.&lt;/p&gt;

&lt;p&gt;Blog became one of the most important enjoyment gradually. The impact it made on me is unimaginable for others.&lt;/p&gt;

&lt;p&gt;I hardly ever write before I had the blog. I love writing diaries and had done that for over ten years from when I was a child. The fragments in diaries are private and scattered, which could hardly comprise a complete composition. Sometimes I extracted some sentences to rewrite an article and posted it on my blog in &lt;em&gt;163.com&lt;/em&gt; (or maybe &lt;em&gt;Sina&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;I never post blogs in the QQ zone because I don’t want them to be reviewed by familiars. I want to keep a distance between the &lt;em&gt;Internet&lt;/em&gt; and the &lt;em&gt;Reality&lt;/em&gt;. A blog is an open diary. I’d rather it read by strangers rather than familiars. My parents haven’t read any of my blogs and novels till now.&lt;/p&gt;

&lt;p&gt;Those social blogging platforms are good enough for writing only. And I wouldn’t want to DIY a blog if I didn’t take the lessons of Website Design in college. However, I couldn’t stop that after I tried it.&lt;/p&gt;

&lt;p&gt;Both the making of the blog and the writing have been my habits gradually and will never be stopped.&lt;/p&gt;

&lt;p&gt;I used Wordpress for over four years. I also tried Typecho during that time. Somebody said I would be regretful for that and I was. I got Wordpress back soon. It is true that Wordpress occupied too much of the RAM and my host was stopped several times by the host seller for that reason. But I couldn’t stop playing with it.&lt;/p&gt;

&lt;p&gt;I left Beijing to Shanghai in 2015. As the distance between dream and reality became wider and wider, both life and working became boring. I felt confused about the future. I tried to learn PHP and JavaScript hard then. I never thought about the career of programming at that time. I was just bored and need something to occupy the leisure time.&lt;/p&gt;

&lt;p&gt;I dropped these fictions about love and started to read the classic books and philosophies instead. I also tried to think about the human and the world.&lt;/p&gt;

&lt;p&gt;I started to write something serious, not like those fantasy novels written in college, but the expression of what I think of myself and the cognition of the world. I need to think and express, no matter how naive they were.&lt;/p&gt;

&lt;p&gt;However, I got tired of what I had done and written one day. I wanted to cut the past to start again. So I emptied the blog and laid the domain aside. I also wrote an emotional article to say goodbye.&lt;/p&gt;

&lt;p&gt;Then I designed and completed the &lt;a href=&quot;https://github.com/erlzhang/dysis&quot;&gt;Dysis&lt;/a&gt; as the new Wordpress theme after seeing a lot of WordPress themes.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://github.com/erlzhang/erlsimple&quot;&gt;ErlSimple&lt;/a&gt; I made before is a copy of a minimal Tumblr theme. There are little of my thought in it even I made it absolutely changed. The animation effects on that were made of plugins and random code fragments from the Internet. There were so many bugs that I felt tired of improving it. I finally rewrote some source codes and cut the CSS to 50% of the original code amount.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/erlzhang/dysis&quot;&gt;Dysis&lt;/a&gt; is the production which I paid a lot. I still love it today even if it isn’t perfect and can be easily found out that the author was not professional. My JavaScript skills have been improved a lot after making that. I tried not to use plugins and used native JavaScript only to make what I want no matter what the result was.&lt;/p&gt;

&lt;p&gt;As for the contents, I stopped writing randomly from the first post. I started to be responsible for my words.&lt;/p&gt;

&lt;p&gt;What I dropped before were picked up by my host sponsor. What he said is reasonable: “The past of you was still part of you no matter you like it or not.”&lt;/p&gt;

&lt;p&gt;In 2017, I suddenly got tired of the life in the huge city and went back home. I made none explanation for that in my blog and even hadn’t referred to it. Even I myself didn’t know what is the exact reason.&lt;/p&gt;

&lt;p&gt;I didn’t know what I can do at home, so I had been afraid of getting home.&lt;/p&gt;

&lt;p&gt;Finally, I became a programmer.&lt;/p&gt;

&lt;p&gt;I couldn’t think of that in 2012 when I wrote down the first piece of code. How interesting life is!&lt;/p&gt;

&lt;p&gt;The programmers in a small city are different from those in big cities. I earn little but the job is more relaxing. I get to work at 8 o’clock and leave at 5:30 pm. Sometimes I should do overtime work but not so often. It is the ideal work if the wage is ignored.&lt;/p&gt;

&lt;p&gt;My life became healthy then. I get up early every morning and fall asleep early. I never watch TV shows and hardly play video games( maybe once two months to there months). I exercise every day and do outdoor activities every weekend.  There is neither simulation nor places to spend time in such a small city. My company is about two kilometers from my home so I can get work and back on foot every day.&lt;/p&gt;

&lt;p&gt;It is so normal that my blog was nearly ruined.&lt;/p&gt;

&lt;p&gt;I didn’t want to drop it on purpose. It was by accident. I wouldn’t like to write anything if life is lack of simulation. Content is the core of a blog.&lt;/p&gt;

&lt;p&gt;When I restarted again, I finally decided to drop the Wordpress. The reason is simple: I had forgotten how to code with PHP.&lt;/p&gt;

&lt;p&gt;I was a front-end programmer when I entered this company. Not long after that, I was moved to the back-end. Ruby is the main back-end language in my company, So I migrated to Jekyll which is written in Ruby.&lt;/p&gt;

&lt;p&gt;In order to secure my procrastination, I completed the novel which I wrote an opening last year. I made the Jekyll site to hold my novels mainly. Then I hesitated for several months to decide whether I need a blog.&lt;/p&gt;

&lt;p&gt;During this time, I found someone copied my composition from my old blog and changed a little. It made me upset.&lt;/p&gt;

&lt;p&gt;Which made me make the decision was a mail from a stranger. He said that he hoped I could continue writing. It is strange that encouragement from a stranger is more powerful than that from familiars.&lt;/p&gt;

&lt;p&gt;I dropped most of the articles of my old blog and only over thirty are left for composing a collection. Then once more start again!&lt;/p&gt;

&lt;p&gt;I made some friends during the years making the blog. I still keep contact with some as others were lost. At an earlier time, somebody persuaded me not to pay too much attention to make the blog. He said: “What is important is not the forms but the contents.” I have no contact with him and perhaps he doesn’t know that I’m of the same occupation of him now. How could I get into this occupation if I didn’t do that?&lt;/p&gt;

&lt;p&gt;Life is movement. Life is change also. The difference is between you do it on purpose or not.&lt;/p&gt;

&lt;p&gt;When I entered my current company last year, everybody asked me why I’d like to be a programmer. There is no season. I just did it by nature.&lt;/p&gt;

&lt;p&gt;I didn’t want to pick up the memorizes these years at the beginning of this post, but to introduce the JAMstack blog. And once more I talked about so much about the past. Nagging maybe an illness to be secured. So what is JAMstack? I will explain it next week.&lt;/p&gt;</content><author><name></name></author><summary type="html">I started to build a blog in 2012 when I was studying International Politics in college with my limited acknowledge in HTML and CSS. The programming languages I knew then including JSP, ASP, and PHP. And I thought that I would never learn PHP and JavaScript well. In the beginning, I used the Emlog to build this blog and register the erlmy.com in Wanwang which is dropped then. Wanwang hadn’t belonged to Aliyun at that time. Then I rent a virtual host of 300M disk memory. I couldn’t predict what big influence it would make on my career. I made it just for fun at that time. I migrated the blog from Emlog to Wordpress within one year. The reason is simple: there are so many plugins and themes in Wordpress for me to play with. I also migrated to the Hengtian Host which a lot of Wordpress blogs were advertising for. I tried to make a theme by myself rather than using others’. I couldn’t achieve that with the limited knowledge of HTML and CSS. So I started learning Jquery and a little PHP. What I learned could only account for a few changes of other people’s themes. My skills of HTML and CSS which I thought were practiced at that time were just at a low level. Blog became one of the most important enjoyment gradually. The impact it made on me is unimaginable for others. I hardly ever write before I had the blog. I love writing diaries and had done that for over ten years from when I was a child. The fragments in diaries are private and scattered, which could hardly comprise a complete composition. Sometimes I extracted some sentences to rewrite an article and posted it on my blog in 163.com (or maybe Sina). I never post blogs in the QQ zone because I don’t want them to be reviewed by familiars. I want to keep a distance between the Internet and the Reality. A blog is an open diary. I’d rather it read by strangers rather than familiars. My parents haven’t read any of my blogs and novels till now. Those social blogging platforms are good enough for writing only. And I wouldn’t want to DIY a blog if I didn’t take the lessons of Website Design in college. However, I couldn’t stop that after I tried it. Both the making of the blog and the writing have been my habits gradually and will never be stopped. I used Wordpress for over four years. I also tried Typecho during that time. Somebody said I would be regretful for that and I was. I got Wordpress back soon. It is true that Wordpress occupied too much of the RAM and my host was stopped several times by the host seller for that reason. But I couldn’t stop playing with it. I left Beijing to Shanghai in 2015. As the distance between dream and reality became wider and wider, both life and working became boring. I felt confused about the future. I tried to learn PHP and JavaScript hard then. I never thought about the career of programming at that time. I was just bored and need something to occupy the leisure time. I dropped these fictions about love and started to read the classic books and philosophies instead. I also tried to think about the human and the world. I started to write something serious, not like those fantasy novels written in college, but the expression of what I think of myself and the cognition of the world. I need to think and express, no matter how naive they were. However, I got tired of what I had done and written one day. I wanted to cut the past to start again. So I emptied the blog and laid the domain aside. I also wrote an emotional article to say goodbye. Then I designed and completed the Dysis as the new Wordpress theme after seeing a lot of WordPress themes. The ErlSimple I made before is a copy of a minimal Tumblr theme. There are little of my thought in it even I made it absolutely changed. The animation effects on that were made of plugins and random code fragments from the Internet. There were so many bugs that I felt tired of improving it. I finally rewrote some source codes and cut the CSS to 50% of the original code amount. Dysis is the production which I paid a lot. I still love it today even if it isn’t perfect and can be easily found out that the author was not professional. My JavaScript skills have been improved a lot after making that. I tried not to use plugins and used native JavaScript only to make what I want no matter what the result was. As for the contents, I stopped writing randomly from the first post. I started to be responsible for my words. What I dropped before were picked up by my host sponsor. What he said is reasonable: “The past of you was still part of you no matter you like it or not.” In 2017, I suddenly got tired of the life in the huge city and went back home. I made none explanation for that in my blog and even hadn’t referred to it. Even I myself didn’t know what is the exact reason. I didn’t know what I can do at home, so I had been afraid of getting home. Finally, I became a programmer. I couldn’t think of that in 2012 when I wrote down the first piece of code. How interesting life is! The programmers in a small city are different from those in big cities. I earn little but the job is more relaxing. I get to work at 8 o’clock and leave at 5:30 pm. Sometimes I should do overtime work but not so often. It is the ideal work if the wage is ignored. My life became healthy then. I get up early every morning and fall asleep early. I never watch TV shows and hardly play video games( maybe once two months to there months). I exercise every day and do outdoor activities every weekend. There is neither simulation nor places to spend time in such a small city. My company is about two kilometers from my home so I can get work and back on foot every day. It is so normal that my blog was nearly ruined. I didn’t want to drop it on purpose. It was by accident. I wouldn’t like to write anything if life is lack of simulation. Content is the core of a blog. When I restarted again, I finally decided to drop the Wordpress. The reason is simple: I had forgotten how to code with PHP. I was a front-end programmer when I entered this company. Not long after that, I was moved to the back-end. Ruby is the main back-end language in my company, So I migrated to Jekyll which is written in Ruby. In order to secure my procrastination, I completed the novel which I wrote an opening last year. I made the Jekyll site to hold my novels mainly. Then I hesitated for several months to decide whether I need a blog. During this time, I found someone copied my composition from my old blog and changed a little. It made me upset. Which made me make the decision was a mail from a stranger. He said that he hoped I could continue writing. It is strange that encouragement from a stranger is more powerful than that from familiars. I dropped most of the articles of my old blog and only over thirty are left for composing a collection. Then once more start again! I made some friends during the years making the blog. I still keep contact with some as others were lost. At an earlier time, somebody persuaded me not to pay too much attention to make the blog. He said: “What is important is not the forms but the contents.” I have no contact with him and perhaps he doesn’t know that I’m of the same occupation of him now. How could I get into this occupation if I didn’t do that? Life is movement. Life is change also. The difference is between you do it on purpose or not. When I entered my current company last year, everybody asked me why I’d like to be a programmer. There is no season. I just did it by nature. I didn’t want to pick up the memorizes these years at the beginning of this post, but to introduce the JAMstack blog. And once more I talked about so much about the past. Nagging maybe an illness to be secured. So what is JAMstack? I will explain it next week.</summary></entry><entry><title type="html">I traveled to Guangzhou three times.</title><link href="https://en.erl.im/blog/guangzhou.html" rel="alternate" type="text/html" title="I traveled to Guangzhou three times." /><published>2018-10-07T00:00:00+00:00</published><updated>2018-10-07T00:00:00+00:00</updated><id>https://en.erl.im/blog/guangzhou</id><content type="html" xml:base="https://en.erl.im/blog/guangzhou.html">&lt;p&gt;It is in July of 2016 when I first travel to Guangzhou. How foolish that I went where in midsummer! I was in Shanghai at that time when I have two days of vocation. It is wasteful if I didn’t travel to somewhere make use of the vocations. People who are rational may go north, nevertheless, I flew to the most southern city.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;Sky ask for leave to accompany me roam around the street of Guangzhou when the temperature is at 36.  We were both too tired to go out on the third day, so we slept all day in the air-conditioned room with the rhythm of the falling rain.&lt;/p&gt;

&lt;p&gt;In Mar. 2017, I traveled for a long time after resigned in Shanghai. I thought I needed a period of rest to start again.  I flew to Guangzhou again for I remembered Shameen where I missed for some reasons. It is the best time of this southern city when I didn’t feel colder or hotter. It is the time when all kinds of flowers bloom. I stayed in Guangzhou for only two days. In the rest of the time, I hung around in the nearby cities. What a pity that I had to be back home when I didn’t feel enough. It seemed desolate in the north where you can hardly find a green color.&lt;/p&gt;

&lt;p&gt;I started to think about where to go from June. The destinations including Shandong, Henan, Anhui, and Jiangxi. I found that, however, the most beautiful places in October are in the northeast. I didn’t want to be at home because I had to be with my family no matter where they go. The vocations are the time to stay with the family when you live alone outside. If you stay with them in most time of a year, you will want to be alone. So I went to Guangzhou again.&lt;/p&gt;

&lt;p&gt;I got there by train this time so that a lot of time would be spent on the train. I could stay in Guangzhou for only four days of my seven days holiday. There was no place to go to, for that was the third time I traveled to that city. I just want to meet with my friends, chat and eat, and enjoy the cute girls alongside.&lt;/p&gt;

&lt;p&gt;In the four seasons of one year, only in winter, I haven’t gone there. However, I don’t think I will go there in winter, for there is neither red leaf nor snow.&lt;/p&gt;

&lt;h2 id=&quot;huangpu-port&quot;&gt;Huangpu Port&lt;/h2&gt;

&lt;p&gt;Guangzhou is a city, a huge city. It is the third one after Beijing and Shanghai. I don’t know what’s the standard are they sorted by, the area, the population, or just from north to south. You even can’t know how big it really is if it is big enough. I have lived in Beijing and Shanghai, then traveled to Guangzhou three times. I even don’t know which is the biggest in my perception. However, when I went back to Jilin, I found it so small that it looks like a country.&lt;/p&gt;

&lt;p&gt;A City(城) is not with a mere big area or a huge population. Shenzhen is a city but not a City, which is so young. Beijing is &lt;em&gt;the&lt;/em&gt; Beijing City. Someone says Beijing is too old in Shanghai. It is the staleness that composes the culture base and promotes its confidence. It is because of the confidence that it can contain both new things and old things. It is different from Shanghai which is conservative in actuality. Shanghai is not suitable to be called a City. It has history but short, and mix with foreign things. Its another style, but not native.&lt;/p&gt;

&lt;p&gt;Guangzhou is a City. It is not so well known as a City but is still a City. There isn’t enough description about it in our history textbook. From some academical papers, I learned that it has three thousands of years of history. He is not a boy. He is just low-key and lack of historical buildings like other Cities. You can learn its history from multiple resources if you are interested in that.&lt;/p&gt;

&lt;p&gt;I went to Huangpu Port on the secondary day after I arrived at Guangzhou last year, where there is rarely a historical atmosphere. Sky took me to drink the Ginger Milk Pudding, nevertheless, I don’t like gingers. After we finished our lunch, we roamed around the port and didn’t go through that.&lt;/p&gt;

&lt;p&gt;Huangpu Port is important in the Silk Road, which can prove the history of the Guangzhou City. There should be a Huangpu Village nearby where we didn’t go into. Sky sent me a booklet of the Temple of South China Sea God as a birthday gift, which is interesting.&lt;/p&gt;

&lt;h2 id=&quot;shameen&quot;&gt;Shameen&lt;/h2&gt;

&lt;p&gt;When hearing the name of Shameen, I associate it with the ambru, and then the barbeque sauce. Finally, I want to eat hotpot(smile). Such an odd association impressed me in that place. I couldn’t go there because of the hot, the rain and our tiredness during my first travel. I went there in the second after I came back from Shenzhen. It is still a rainy day but a little bit cold. I had to take photos in the rains.&lt;/p&gt;

&lt;p&gt;I like those buildings with western style and historical taste and the rains promoted the literature feelings. It was a little bit difficult to take photos, but I had practiced in the summit of the Sun Yat-sen Mausoleum in Nanjing. It’s a pity that I was not skillful and the layouts of the photos are not so well.&lt;/p&gt;

&lt;h2 id=&quot;shangxiajiu&quot;&gt;Shangxiajiu&lt;/h2&gt;

&lt;p&gt;For any big and famous city, there must be a pedestrian street. It will be old and conventional if it is so common and lack of features. Every pedestrian street of every city is making use of all kinds of gimmicks to express itself. In my opinion, Tianzifang is the most unique one. During a May vocation, the crowd flooded into a narrow alley almost bumped down the desk of some foreigners who were eating outside. That made a profound impression on our foreign friends, I think.&lt;/p&gt;

&lt;p&gt;In short, Shangxiajiu didn’t make a deep impression on me. There are few photos left because the weather is too hot to press the shutter. The western style buildings are distinctive, but the buildings like that are so common everywhere in Guangzhou. There were rice noodle rolls which I’d like to eat earlier, but I forgot whether I ate them here.&lt;/p&gt;

&lt;h2 id=&quot;urban-villages&quot;&gt;Urban Villages&lt;/h2&gt;

&lt;p&gt;Before I first went to Guangzhou, Sky said to me: “You should be prepared to get here for the environment is not so good.” She lived in an urban village in South Chebei. The urban villages are as well known as other resorts. At the evening peak period, the crowd surged into a shadow and crowd area. People who have never seen such a phenomenon would wonder how can such a small area contain so many buildings.&lt;/p&gt;

&lt;p&gt;People’s living spaces in a city are shadow and small. Some are hanging in the air. The buildings are made higher and higher in order to make full use of the resources. The cost of construction is higher but the price of the land is lower. We live in a more enclosed and less steady space. There are hardly tall buildings in an urban village for the cost is too high and it takes more time. Instead, they occupied more land and squeeze the public space. There is no plot, no vegetation, and no estate here. The buildings are closed to buildings. The walls adhere to the walls. The windows catch up with other windows. These buildings are called Shake Hands Buildings. The wall composed with those buildings resist the entire sunshine.&lt;/p&gt;

&lt;p&gt;In a rainy day, you are walking along the shadow, wet, bumpy and musty alley. The road is skew. You turn left, then turn right. There are still countless turns waiting for you and it seems that you can’t get in your destination. It is convenient to live in here. There are plenty of restaurants, snack shops, groceries, and markets. You should always get your curtains closed, and there is no sunshine anyway. There may be whispers alongside which you don’t know where they are from. It is lack of privacy. If you are careless, your entire life will be exposed outside.&lt;/p&gt;

&lt;h2 id=&quot;midnight-snack&quot;&gt;Midnight Snack&lt;/h2&gt;

&lt;p&gt;I have no nightlife. On 9:00 pm, when other people start to enjoy their life, I have fallen into sleep. My life sounds dull, but I enjoy it. I wouldn’t stay up late or get up late even on weekends. So I hardly have midnight snacks. Last year when I had hotpot in Sky’s house, I listened to their conversations and nearly think into sleep.&lt;/p&gt;

&lt;p&gt;There is a huge difference in the lifestyles between the South and the North. In Jilin, most people won’t stay up too late even little sleep early like me. And we go to work earlier than the big cities. The affluent nightlife in Guangzhou made a great impression on me during the three times I traveled here.&lt;/p&gt;

&lt;p&gt;In the first time, I flew there, the plane was delayed. It was about 11:00 pm when I get out of the subway station. I remembered there were few persons on street at that time in Beijing and Shanghai. However, I didn’t feel like in a night at that time in Guangzhou. A lot of people were getting in and getting off the subway stations. The restaurants in the urban village were still open and full of people.&lt;/p&gt;

&lt;p&gt;Alongside the BBQ stall, the young men and young women were sitting, eating the kababs, chatting or keeping silent but seeing the branches hanging on the river.&lt;/p&gt;

&lt;h2 id=&quot;old-buildings&quot;&gt;Old Buildings&lt;/h2&gt;

&lt;p&gt;I think the most distinctive buildings in Guangzhou is neither the western ones like Shameen or Shangxiajiu nor the modern ones like Guangzhou Tower which called the “Tiny Waist”. It is the old buildings in some corners of the city which are old, to be dismantled, fossil but stubborn. These gray full of moss and Boston ivy are depressed, sticky and lack of refreshing. They may need sunshine, even the sunshine is abundant in Guangzhou.&lt;/p&gt;

&lt;p&gt;I saw these buildings during my travel on the bus. So there is no photo of them. They are dying lonely and would be died out one day. People will try to perverse those historical buildings but not theses with fifty or sixty years of time. There are old buildings like these both in Beijing and Shanghai. They can’t be dismantled easily for kinds of reasons, but I don’t know how long it will be preserved. To make a huge effort to preserve these outdated and dangerous things, even I think that is unworthy as long as I feel regretful.&lt;/p&gt;</content><author><name></name></author><summary type="html">It is in July of 2016 when I first travel to Guangzhou. How foolish that I went where in midsummer! I was in Shanghai at that time when I have two days of vocation. It is wasteful if I didn’t travel to somewhere make use of the vocations. People who are rational may go north, nevertheless, I flew to the most southern city.</summary></entry></feed>