I always want to learn new things and expand my horizons, I try to read as much as I can and always bookmark the interesting pages on internet, but usually they just get ignore afterward, because there are just too much interesting stuff and end up with massive bookmark that never get look at again.

To help me learn new things and retain the knowledge, I’ll need to

  • Each week focus on a main topic - e.g learn as much about one Algorithm in one week, then next week focus develop micro service app.
  • Write a blog post about the main topic learn during that week.

Making a focus every week will help me have a goal, this is important, because I’ll have something to focus on rather than try to know everything. Writing will help me retain the thing learn in long term memory.

Browser’s bookmarks feature can be used to mark down the things I want to learn and the browser will sync it over different devices I used.

For writing my objective is to find a simple platform without maintaince.

Choices

After a lengthly research, I’ve narrow down my choice to the following:

  • Wordpress - Popular, most people use it and tons features, but require server setup, maintaince and endless security updates etc.

  • Ghost - A very nice platform which offer free service or you can host it yourself. Very beautiful and easy to use.

  • Medium - It’s a Web service and looks amazing.

  • Jekyll - It just a static page generator.

Jekyll

As a person like to spend time in the terminals, I chose Jekyll, because its very easy to maintain and doesn’t have millions other buttons/features that distract you. It let me focus on the writing which is the most important thing (sometimes its useful to have other features, but the content is king, less is more ;-).

This is my work flow:

  • Start an editor (vim)
  • Write
  • Git push
  • Job done!

Its so much easier to just write things down using whatever editor you want, the git will help you with revision controll which is very useful and give you a history of how your blog posts evolve. Jekyll is pretty simple to install

gem install jekyll
jekyll new my-blog
cd my-blog

The above will generate a folder called my-blog, the folders are pretty much self explainatry, the Jekyll doc have more information about what each folder mean, these are most import thing for me

Posts

I put all my posts into the _posts folder.

You can use .html file extension which means you can embed html, javascript and CSS into your post, this is very handy for writing post try to demonstrate something and make it more interactive.

See the time above, its javascript updating it and colour is set by css on the page(yay css3 blink!).

Pages

Putting an file in the blog folder’s top level will make it a page, like the About page.

Drafts

_drafts is like _posts, but its for the stuff you don’t want to post yet.

Config

_config.yml this is the config for Jekyll, its save you from typing the options when using jekyll command.

# Site settings
title: Learn by Writing
email: [email protected]
description: > # this means to ignore newlines until "baseurl:"
  Trying to learn new things by writing down what I learn, occasionally random thoughts on my mind. 
baseurl: "/jekyll" # the subpath of your site, e.g. /blog/
url: "http://www.cluelesscycling.com/jekyll" # the base hostname & protocol for your site
twitter_username: vitohuang
github_username:  vitohuang

destination: /usr/share/nginx/html/jekyll
# Build settings
markdown: kramdown

Now run jekyll build it will just output the build to desitination, there are many options, see the doc for more info.

Summary

So far I’m very please with Jekyll.

I’m still learning it, but there are a lots things you can do with Jekyll, in the core Jekyll just a static site generator. The powerful Liquid template engine is very handy if you want more customisation and “dynamic” posts.