Appendix 2 - How this blog is built
08 Feb 2021 - phamdinhkhanhI learn one experience that is: “The best way to learn something is teach them again to the other”
Actually, I am quite normal learner when i start writing my blog. The unique motivation lead me to patiently write blog is that I have plenty of spare time. And I think I have to do something to fill in empty box. And one plan come up in my mind, that is writing about AI blog. Thus, why do I decise to write blog? Let me list the pros and cons:
Advantage:
Disavantage:
.com
domain.At the begin, I have to face up with the above troubles like you face. But I motivate my-self to be positive thinking and focusing to the advantage instead of disavantage. That is the secrete help me win.
When the first topic launched, I feel pleasure a litle, that moment reinforces to me that I can do it.
You know, writing blog actually is not quite hard things. The benefit you gain is much than loss.
My aim, at the first time when I write blog, it just simple discovers AI. And now, I go beyond, my blog is welcomed. I have a group, fanpage to share many people also learn the new things like me.
In my experience, to write a good blog require you must have two things:
The first one is reply on your volition. The second one what I share you in this topic.
The blog source code is available at phamdinhkhanh.github.io. You can clone as a reference template to build your blog.
To have a fancy UI, you don’t need to be a javascript expert. I think what you require to know is techniques such as: jekyll, html, css, bootstrap at fundamental level.
The most important is jekyll. That is very good website framework facilitate to you manage posts in date.
The audience can look through timeline and pickup the topic that they interesting. Thanks to the machinelearningcoban of A.TiepVu, I ideally have the idea for this template. He is very excellent when writes a meticulous blog like that. The code and latex are very carefully and clearly presented beside the blog’s content is well assembled. by the way, I sincerely thank him so much.
Jekyll is perfect framework for blog website. It able to transform your plain text into static website and blog easy. Further, It can be deployable on free domain like github. Writing AI blog is not as complicated as when you write dynamic website. Particularly, It does not requires API services, strong server, large storage database behind. So, static website on jekyll is quite fit to your needs.
The typical structure of a jekyll blog that is settling many posts by date arrangement. You also keep layout of all posts in the same and change only content through embedding layout. Moreover, jekyll support you to seperate data with code by putting data in _data
folder. You also store css style and images inside _asset
folder. You can look at the representative tree directories of jekyll website to know more about it:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
├── assets
│ ├── css
│ └── images
├── _includes
│ ├── home.html
│ └── navigation.html
├── index.html
├── _layouts
│ ├── default.html
│ └── post.html
├── _posts
│ ├── 2020-12-19-Resnet.md
│ ├── 2021-01-20-CycleGAN.md
│ ├── 2021-02-01-StarGAN.md
├── _sass
├── _main.scss
The meaning of each folder is avaible at the official tutorial jekyll Step by Step Tutorial. Only following this tutorial in 2 hours, you can basically clarify how to build up a jekyll website? I summary the main contents in the tutorial as below:
_post
folder. Storing all of your post. jekyll is very smart when auto setup the link for each post in _post
folder. You can access several content of the post by link:
post.url
: output path to your post.post.title
: title of your post.Layout: store in _layout
folder. If your site include many repeated components, you should use layout to re-implement them. For example in my blog, I keep the top navigation bar, side menu is fix, only the blog content is varying. That is reason I should create default.html layout to apply them all in every my post.
Include: store in _include
folder. It is template files that you can bind into your page through include
tag.
Data Files: in _data
folder. It also like hyperameter file where stores every config parameter for your site.
Assets: in _asset
folder. Where you save css (define style of html), images and javascript files.
Appendix 2 - How this blog is built
if
condition. That make your UI changes flexiable.|
. For example: hello world
to make output is lowercase.One very important part, To enable your site to show latex, you have to use supplement module. I trust math-jax module because max-jax is recommended by renowned AI researcher Ian Goodfellow. Very simple, you just need to link it in the header of your post.html
file and it is going to be valid at all posts.
I bet you that after watching through all the tutorials, you can easily build up your blog. But to decorate your blog more beautiful, you maybe learn about material design in addition. You can be able to perform your creation, arrangement, assembling-content skills to make your blog become glamorous and attractive. If you complete, kindly to share me your fruit.
After accomplishment of your website, you need to release it out on public domain. If you want your site to be your private seal, buying one domain is a good choice. If you write your site as a CV and don’t care much about privacy, i think github.io is a very good option, and why is that?
Advantage:
Disavantage:
In my opinion, when I build the website, I consider a lot between two options: free-domain and non free-domain. But finally, I choice free-domain because my final target is share knownledge including the way to build my blog. If you keep your blog private, it is reversed the sharing spirit.
To see how to create a github page, you can look at very detail tutorial: GithubPages. Github also stimulate you blogging your-self with jekyll and have a highlight tutorial setting up a github pages with jekyll.
Write the content is not a easy job. Your blog is attractive or not mainly distributed by the content. Thus to have a fascinated content you should make a plan about what you are going to write. One good AI blog in my opinion it should be good at six traits:
Series post: The posts should be gathered in specific domain and follow the sequence. Such as when you write about CNN models, you should introduce the concept of Convolutional, Receptive Field first. After that, you talk about the CNN backbones model according to the developement trend: LeNet, ZFNet, AlexNet, InceptionNet, MobileNet, ResNet, DenseNet, EfficientDet,…. It aims to audience remember better.
Coherence: Coherence meaning that the following sectors is related to previous sectors about content. If you write a post like you are telling a story for audience, your post will not be bored. It also drastically stimulates the curiosity of readers.
Having code: You should set the role as you are audience. The expectation of audience when study your blog is not only know how the concept of algorithms but also how to practice them. Thus, your blog should be attached codes to be more facilitative and intituative.
Having Graph: Although draw a picture is time wasting. But at least it make your blog become easily understanding to trivial audience. You also have the brief note bellow each picture to explain about the picture’s content.
Spliting content: Why should we split the post into many level sections? That is my experience after I read several outstanding AI books such as: Machine learning yearning, Dive into Deep Learning, Deep Learning. The common points i see that they split them in many chapter. In each chapter they always split long article into small and detail chapters as possible. It make the audience easy to observe the knownledge without confusing.
Reference: You should list down the reference book or article at the last, it helps to audience can study if they want to read more. Moreover, sometime you also forget your knownledge and the reference links maybe useful.
What is your opinion about this matter? Let me know if you want to add.