diff --git a/apps/blog/_posts/2015/01/expressjs-static-html.md b/apps/blog/_posts/2015/01/expressjs-static-html.md
index a4246580..f5305039 100644
--- a/apps/blog/_posts/2015/01/expressjs-static-html.md
+++ b/apps/blog/_posts/2015/01/expressjs-static-html.md
@@ -3,8 +3,7 @@ title: Using ExpressJS to Display Static HTML File Content
date: '2015-01-23'
category: Javascript
tags:
- - Nodejs
- - ExpressJs
+ - Node.js
slug: /2015/01/expressjs-static-html.html
description: 'In ExpressJs, there is a very simple way to send an HTML file to the browser using the method: res.sendfile(), which reads the content of the .html file and sends it to the browser, allowing us to quickly display the content of a page or some static page.'
---
diff --git a/apps/blog/_posts/2015/01/git-recovering-old-code.md b/apps/blog/_posts/2015/01/git-recovering-old-code.md
index 501c247c..9124e4b7 100644
--- a/apps/blog/_posts/2015/01/git-recovering-old-code.md
+++ b/apps/blog/_posts/2015/01/git-recovering-old-code.md
@@ -3,9 +3,8 @@ title: 'Git - Phục hồi code cũ'
date: '2015-01-25'
category: Git
tags:
- - Reset
+ - Tutorial
- Git
- - Commit
thumbnail: https://2.bp.blogspot.com/-sVvs3hQG6DM/VMRzlSdIUFI/AAAAAAAATBA/wBYhBdej6nA/s1600/Git-Logo-2Color.png
slug: /2015/01/git-recovering-old-code.html
description: Git là một công cụ mạnh mẽ để quản lý dự án, được sử dụng phổ biến hiện nay. Dưới đây là một số trường hợp mà bạn có thể cần phục hồi mã nguồn do lỗi, hoặc các tình huống khác mà bạn thường gặp
diff --git a/apps/blog/_posts/2015/02/dns.md b/apps/blog/_posts/2015/02/dns.md
index 53c89cfd..8e3afd17 100644
--- a/apps/blog/_posts/2015/02/dns.md
+++ b/apps/blog/_posts/2015/02/dns.md
@@ -3,8 +3,7 @@ title: DNS là gì?
date: '2015-02-23'
author: Duyet
tags:
- - DNS
- - WWW
+ - Networking
- Web
modified_time: '2015-02-23T13:41:18.274+07:00'
slug: /2015/02/dns.html
diff --git a/apps/blog/_posts/2015/02/linux-giao-dien-phang-cho-ubuntu.md b/apps/blog/_posts/2015/02/linux-giao-dien-phang-cho-ubuntu.md
index 7cedf877..6ee784d3 100644
--- a/apps/blog/_posts/2015/02/linux-giao-dien-phang-cho-ubuntu.md
+++ b/apps/blog/_posts/2015/02/linux-giao-dien-phang-cho-ubuntu.md
@@ -5,7 +5,7 @@ author: Duyet
tags:
- Linux
- Ubuntu
- - Tweak
+ - Tools
modified_time: '2015-02-17T19:48:16.078+07:00'
thumbnail: https://4.bp.blogspot.com/-NPt92Fq9HCQ/VOMvXySpZSI/AAAAAAAACIA/12wdtDOP7ZA/s1600/Screenshot%2Bfrom%2B2015-02-17%2B19%3A07%3A47.png
slug: /2015/02/linux-giao-dien-phang-cho-ubuntu.html
diff --git a/apps/blog/_posts/2015/02/module.md b/apps/blog/_posts/2015/02/module.md
index 4bbbb0ae..54029978 100644
--- a/apps/blog/_posts/2015/02/module.md
+++ b/apps/blog/_posts/2015/02/module.md
@@ -4,8 +4,8 @@ date: '2015-02-14'
author: Duyet
category: Software Engineering
tags:
- - Module
- - Coding
+ - Read
+ - Software Engineering
slug: /2015/02/module.html
description: Chúng ta thường có xu hướng muốn bắt tay ngay vào việc viết code. Tuy nhiên, niềm đam mê này đôi khi có thể khiến chúng ta gặp khó khăn về lâu dài khi ứng dụng phát triển và mở rộng. Khi đó, chúng ta có thể phải đối mặt với việc viết lại code hoặc gặp phải những vấn đề nghiêm trọng hơn.
---
diff --git a/apps/blog/_posts/2015/02/packagejson.md b/apps/blog/_posts/2015/02/packagejson.md
index 438d0391..af409028 100644
--- a/apps/blog/_posts/2015/02/packagejson.md
+++ b/apps/blog/_posts/2015/02/packagejson.md
@@ -4,7 +4,7 @@ date: '2015-02-22'
author: Duyet
category: Javascript
tags:
- - Nodejs
+ - Node.js
- NPM
- Package.json
modified_time: '2015-02-22T13:56:30.535+07:00'
diff --git a/apps/blog/_posts/2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.md b/apps/blog/_posts/2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.md
index 3fc9261a..2bcbbcbe 100644
--- a/apps/blog/_posts/2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.md
+++ b/apps/blog/_posts/2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.md
@@ -3,11 +3,10 @@ title: BigData - Cài đặt Apache Spark trên Ubuntu 14.04
date: '2015-03-27'
author: Duyet
tags:
- - Apache
+ - Apache Spark
+ - Apache Hadoop
- Python
- - Spark
- BigData
- - Hadoop
modified_time: '2018-09-01T22:28:00.347+07:00'
thumbnail: https://1.bp.blogspot.com/-Ruz5XvIPJZo/VS5s2ElpdQI/AAAAAAAACQ0/G7LCMJ0klNk/s1600/download-spark.png
slug: /2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.html
diff --git a/apps/blog/_posts/2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.md b/apps/blog/_posts/2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.md
index 5ca481f5..e3500db8 100644
--- a/apps/blog/_posts/2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.md
+++ b/apps/blog/_posts/2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.md
@@ -3,8 +3,7 @@ title: Xây dựng thương hiệu cá nhân tại công sở
date: '2015-03-09'
author: Duyet
tags:
- - thương hiệu cá nhân
- - vietnamworks
+ - Thương hiệu cá nhân
modified_time: '2015-03-09T11:07:35.103+07:00'
slug: /2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.html
category: News
diff --git a/apps/blog/_posts/2015/04/bigdata-getting-started-with-spark-in-python.md b/apps/blog/_posts/2015/04/bigdata-getting-started-with-spark-in-python.md
index 84513807..148591ac 100644
--- a/apps/blog/_posts/2015/04/bigdata-getting-started-with-spark-in-python.md
+++ b/apps/blog/_posts/2015/04/bigdata-getting-started-with-spark-in-python.md
@@ -4,7 +4,7 @@ date: '2015-04-18'
author: Duyet
tags:
- Python
- - Spark
+ - Apache Spark
- BigData
modified_time: '2015-04-18T20:48:17.707+07:00'
thumbnail: https://1.bp.blogspot.com/-Y0pygPjEUNs/VTJddlh9IfI/AAAAAAAACTQ/_LKZZPXV9Wk/s1600/delays_large.png
diff --git a/apps/blog/_posts/2015/04/bootstrap-gioi-thieu-ve-components.md b/apps/blog/_posts/2015/04/bootstrap-gioi-thieu-ve-components.md
index 238dd4e3..1325aebf 100644
--- a/apps/blog/_posts/2015/04/bootstrap-gioi-thieu-ve-components.md
+++ b/apps/blog/_posts/2015/04/bootstrap-gioi-thieu-ve-components.md
@@ -5,9 +5,7 @@ title:
date: '2015-04-27'
author: Duyet
tags:
- - Css
- - Bootstrap
- - Components
+ - CSS
modified_time: '2015-04-27T20:50:25.576+07:00'
thumbnail: https://1.bp.blogspot.com/-TAp70-55a34/VT3u2ezvzzI/AAAAAAAACaA/L32plzw7ZWY/s1600/bs-components-intro.png
slug: /2015/04/bootstrap-gioi-thieu-ve-components.html
diff --git a/apps/blog/_posts/2015/04/gioi-thieu-ve-google-materialize-css.md b/apps/blog/_posts/2015/04/gioi-thieu-ve-google-materialize-css.md
index 5df13ae8..8f615753 100644
--- a/apps/blog/_posts/2015/04/gioi-thieu-ve-google-materialize-css.md
+++ b/apps/blog/_posts/2015/04/gioi-thieu-ve-google-materialize-css.md
@@ -3,9 +3,8 @@ title: Giới thiệu về Google Materialize CSS framework
date: '2015-04-27'
author: Duyet
tags:
- - Css
- - Css Framework
- - Bootstrap
+ - CSS
+ - CSS Framework
modified_time: '2015-04-27T21:31:34.016+07:00'
thumbnail: https://1.bp.blogspot.com/-re5ZhkEps3k/VT5G2leoLNI/AAAAAAAACa0/dg8TsnkbMf8/s1600/materialize-intro.png
slug: /2015/04/gioi-thieu-ve-google-materialize-css.html
diff --git a/apps/blog/_posts/2015/04/git-va-cac-khai-niem-co-ban.md b/apps/blog/_posts/2015/04/git-va-cac-khai-niem-co-ban.md
index e71a8a0c..61177b86 100644
--- a/apps/blog/_posts/2015/04/git-va-cac-khai-niem-co-ban.md
+++ b/apps/blog/_posts/2015/04/git-va-cac-khai-niem-co-ban.md
@@ -4,7 +4,7 @@ date: '2015-04-26'
author: Duyet
tags:
- Git
- - Khái niệm git
+ - Tutorial
modified_time: '2015-04-26T00:33:45.750+07:00'
thumbnail: https://4.bp.blogspot.com/-ZYIJIZWTj-I/VTvM1dMdDCI/AAAAAAAACWA/_V9XNOLwkAw/s1600/2color-lightbg%402x.png
slug: /2015/04/git-va-cac-khai-niem-co-ban.html
diff --git a/apps/blog/_posts/2015/04/github-project-dcrawler-system.md b/apps/blog/_posts/2015/04/github-project-dcrawler-system.md
index 84240647..519dbd29 100644
--- a/apps/blog/_posts/2015/04/github-project-dcrawler-system.md
+++ b/apps/blog/_posts/2015/04/github-project-dcrawler-system.md
@@ -1,12 +1,11 @@
---
-title: 'Github project - DCrawler - Crawler System base on Nodejs and MongoDB '
+title: 'Crawler System base on Nodejs and MongoDB '
date: "2015-04-10"
author: Duyet
tags:
-- Nodejs
+- Node.js
- MongoDb
-- DCrawler
-- project
+- Side Project
modified_time: '2015-08-02T17:33:50.208+07:00'
slug: /2015/04/github-project-dcrawler-system.html
category: Project
diff --git a/apps/blog/_posts/2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.md b/apps/blog/_posts/2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.md
index 2ea047eb..9a3c3ded 100644
--- a/apps/blog/_posts/2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.md
+++ b/apps/blog/_posts/2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.md
@@ -5,7 +5,7 @@ author: Duyet
tags:
- Linux
- Ubuntu
- - VIM
+ - Vim
modified_time: '2015-04-25T13:09:47.309+07:00'
thumbnail: https://1.bp.blogspot.com/-Jls16PZ6Obc/VTsuvm57idI/AAAAAAAACU8/AmSffEltsSw/s1600/vim.png
slug: /2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.html
diff --git a/apps/blog/_posts/2015/04/lorem-ipsum-la-gi.md b/apps/blog/_posts/2015/04/lorem-ipsum-la-gi.md
index ce8d6f43..4aa00e3c 100644
--- a/apps/blog/_posts/2015/04/lorem-ipsum-la-gi.md
+++ b/apps/blog/_posts/2015/04/lorem-ipsum-la-gi.md
@@ -4,7 +4,6 @@ date: '2015-04-15'
author: Duyet
tags:
- HTML
- - Lorem Ipsum
- Web
modified_time: '2015-04-15T23:06:58.760+07:00'
thumbnail: https://4.bp.blogspot.com/-E6m4y8pwKVo/VS6LS5LUCmI/AAAAAAAACRU/8aSZgKRN-DI/s1600/lipsum.jpg
diff --git a/apps/blog/_posts/2015/04/nodejs-gioi-thieu-meanjs-fullstack.md b/apps/blog/_posts/2015/04/nodejs-gioi-thieu-meanjs-fullstack.md
index c55453c3..b336d2af 100644
--- a/apps/blog/_posts/2015/04/nodejs-gioi-thieu-meanjs-fullstack.md
+++ b/apps/blog/_posts/2015/04/nodejs-gioi-thieu-meanjs-fullstack.md
@@ -3,8 +3,8 @@ title: Nodejs - Giới thiệu MEANJs Fullstack và cách cài đặt
date: '2015-04-05'
author: Duyet
tags:
- - Nodejs
- - MEANjs
+ - Node.js
+ - Javascript Framework
- Web
modified_time: '2015-04-27T21:41:00.383+07:00'
thumbnail: https://3.bp.blogspot.com/-5rfaJD0WbCQ/VT5I0zIo48I/AAAAAAAACbA/Z3PvVUVO7Vo/s1600/meanjs-intro.png
diff --git a/apps/blog/_posts/2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.md b/apps/blog/_posts/2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.md
index ccdc612a..8462c5ac 100644
--- a/apps/blog/_posts/2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.md
+++ b/apps/blog/_posts/2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.md
@@ -3,10 +3,7 @@ title: Nodejs - Giới thiệu Yeoman, Grunt và Bower
date: '2015-04-20'
author: Duyet
tags:
- - Nodejs
- - Grunt
- - Bower
- - Yeoman
+ - Node.js
modified_time: '2015-05-17T11:50:32.805+07:00'
thumbnail: https://1.bp.blogspot.com/-S3xORsBBOes/VTUU2dzVT9I/AAAAAAAACTw/v0XhVPBgDfE/s1600/bower.png
slug: /2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.html
diff --git a/apps/blog/_posts/2015/04/open-source-tim-hieu-ve-giay-phep-apache.md b/apps/blog/_posts/2015/04/open-source-tim-hieu-ve-giay-phep-apache.md
index 0900ae07..c7712c39 100644
--- a/apps/blog/_posts/2015/04/open-source-tim-hieu-ve-giay-phep-apache.md
+++ b/apps/blog/_posts/2015/04/open-source-tim-hieu-ve-giay-phep-apache.md
@@ -4,7 +4,6 @@ date: '2015-04-11'
author: Duyet
tags:
- Open Source
- - Apache
- Giấy phép nguồn mở
modified_time: '2015-04-11T14:13:30.700+07:00'
thumbnail: https://3.bp.blogspot.com/-1HhLBU4pQYg/VSi7A9h4lRI/AAAAAAAACPo/ujnaYYl6GV4/s1600/mantle-asf.png
diff --git a/apps/blog/_posts/2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.md b/apps/blog/_posts/2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.md
index 3c61e5d9..4a3d8efc 100644
--- a/apps/blog/_posts/2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.md
+++ b/apps/blog/_posts/2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.md
@@ -5,7 +5,6 @@ author: Duyet
tags:
- Training
- PHP
- - Courses
modified_time: '2015-04-18T20:57:32.802+07:00'
thumbnail: https://4.bp.blogspot.com/-QxU1LVBUcsA/VS6XNXt1ozI/AAAAAAAACRk/Og_wF5j7WDM/s1600/mohinh01.jpg
slug: /2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.html
diff --git a/apps/blog/_posts/2015/04/project-mongo-web-query-simple.md b/apps/blog/_posts/2015/04/project-mongo-web-query-simple.md
index 4435dff9..b68bfe2d 100644
--- a/apps/blog/_posts/2015/04/project-mongo-web-query-simple.md
+++ b/apps/blog/_posts/2015/04/project-mongo-web-query-simple.md
@@ -5,10 +5,9 @@ title:
date: '2015-04-15'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- MongoDb
- Github
- - project
modified_time: '2015-04-15T21:33:52.205+07:00'
thumbnail: https://4.bp.blogspot.com/-66BlQG7PLEU/VS52lOH1UnI/AAAAAAAACRE/egh7Z4oZBOk/s1600/687474703a2f2f692e696d6775722e636f6d2f3543734e4b39442e706e67.png
slug: /2015/04/project-mongo-web-query-simple.html
diff --git a/apps/blog/_posts/2015/04/slack-cong-cu-chat-trong-viec-theo-doi-tien-do-du-an.md b/apps/blog/_posts/2015/04/slack-cong-cu-chat-trong-viec-theo-doi-tien-do-du-an.md
index 80e7f79a..c5e5fc0e 100644
--- a/apps/blog/_posts/2015/04/slack-cong-cu-chat-trong-viec-theo-doi-tien-do-du-an.md
+++ b/apps/blog/_posts/2015/04/slack-cong-cu-chat-trong-viec-theo-doi-tien-do-du-an.md
@@ -4,12 +4,7 @@ date: '2015-04-26'
author: Duyet
tags:
- Chat
- - Slack
- - Quản lý dự án
- - Dropbox
- - Git
- Github
- - project
modified_time: '2015-04-26T00:42:36.740+07:00'
thumbnail: https://4.bp.blogspot.com/-L2pkSjtbhqQ/VTvQbexFy_I/AAAAAAAACWU/cUhMb50WKnA/s1600/2377299_slack-500.jpg
slug: /2015/04/slack-cong-cu-chat-trong-viec-theo-doi-tien-do-du-an.html
diff --git a/apps/blog/_posts/2015/04/tim-hieu-ve-giay-phep-gnu.md b/apps/blog/_posts/2015/04/tim-hieu-ve-giay-phep-gnu.md
index acdf26b1..7623626c 100644
--- a/apps/blog/_posts/2015/04/tim-hieu-ve-giay-phep-gnu.md
+++ b/apps/blog/_posts/2015/04/tim-hieu-ve-giay-phep-gnu.md
@@ -5,7 +5,6 @@ author: Duyet
tags:
- Open Source
- Giấy phép nguồn mở
- - GNU
- License
modified_time: '2015-04-11T13:03:51.623+07:00'
thumbnail: https://4.bp.blogspot.com/-LlEOmpqG7Dg/VSi4YDNEClI/AAAAAAAACPU/VZ-xgKDBd8E/s1600/719px-gnu_general_public_license_3_logo-svg2.png
diff --git a/apps/blog/_posts/2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.md b/apps/blog/_posts/2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.md
index c31cf4e9..251da1c7 100644
--- a/apps/blog/_posts/2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.md
+++ b/apps/blog/_posts/2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.md
@@ -3,8 +3,6 @@ title: PHP - Cài đặt APC (Alternative PHP Cache) cho XAMPP trên Linux
date: '2015-05-16'
author: Duyet
tags:
- - XAMPP
- - APC
- PHP
modified_time: '2015-05-16T00:28:34.671+07:00'
slug: /2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.html
diff --git a/apps/blog/_posts/2015/05/tim-hieu-ve-he-thong-quang-cao-online.md b/apps/blog/_posts/2015/05/tim-hieu-ve-he-thong-quang-cao-online.md
index ed184d10..3ae31ff7 100644
--- a/apps/blog/_posts/2015/05/tim-hieu-ve-he-thong-quang-cao-online.md
+++ b/apps/blog/_posts/2015/05/tim-hieu-ve-he-thong-quang-cao-online.md
@@ -3,10 +3,9 @@ title: Tìm hiểu về hệ thống quảng cáo và quảng cáo Online
date: '2015-05-17'
author: Duyet
tags:
- - CPC
- - Ads
- - Ad Netword
- - Quảng cáo
+ - Data Engineering
+ - Read
+
modified_time: '2015-05-17T11:08:03.008+07:00'
thumbnail: https://1.bp.blogspot.com/-zKPSuJl81ss/VVgTJnRpLnI/AAAAAAAACfQ/NW8xNo8FrxA/s1600/image_a3c65c2974270fd093ee8a9bf8ae7d0b.jpg
slug: /2015/05/tim-hieu-ve-he-thong-quang-cao-online.html
diff --git a/apps/blog/_posts/2015/06/minimalism-in-web-design-past-and-future.md b/apps/blog/_posts/2015/06/minimalism-in-web-design-past-and-future.md
index bef4224c..2fdf0a9f 100644
--- a/apps/blog/_posts/2015/06/minimalism-in-web-design-past-and-future.md
+++ b/apps/blog/_posts/2015/06/minimalism-in-web-design-past-and-future.md
@@ -3,9 +3,6 @@ title: 'Minimalism in Web design: past and future'
date: '2015-06-05'
author: Duyet
tags:
- - Web Design
- - TNW
- - Minimalism
- Web
modified_time: '2015-06-05T00:02:37.012+07:00'
thumbnail: https://2.bp.blogspot.com/-Ii0eS7_8A70/VXCAw07Cg5I/AAAAAAAAChI/WSsc3VwRPuI/s1600/beatbox-520x310.png
diff --git a/apps/blog/_posts/2015/07/big-data-monitoring-spark-with-graphite.md b/apps/blog/_posts/2015/07/big-data-monitoring-spark-with-graphite.md
index fafb2f83..62122370 100644
--- a/apps/blog/_posts/2015/07/big-data-monitoring-spark-with-graphite.md
+++ b/apps/blog/_posts/2015/07/big-data-monitoring-spark-with-graphite.md
@@ -4,7 +4,7 @@ date: '2015-07-14'
author: Duyet
tags:
- Apache Spark
- - Spark
+ - Apache Spark
- BigData
modified_time: '2015-07-14T13:00:07.257+07:00'
thumbnail: https://3.bp.blogspot.com/-ytrI0VvmxgE/VaSiReFjsmI/AAAAAAAACl0/JSOfOs9-Pas/s1600/ss-tasks-3.png
diff --git a/apps/blog/_posts/2015/07/giao-dien-phang-cho-sublime-text.md b/apps/blog/_posts/2015/07/giao-dien-phang-cho-sublime-text.md
index 336672d5..b0747489 100644
--- a/apps/blog/_posts/2015/07/giao-dien-phang-cho-sublime-text.md
+++ b/apps/blog/_posts/2015/07/giao-dien-phang-cho-sublime-text.md
@@ -3,10 +3,8 @@ title: Giao diện phẳng cho Sublime Text
date: '2015-07-20'
author: Duyet
tags:
- - how to
- - sublime text
- - giao diện
- - theme
+ - Tools
+ - IDE
modified_time: '2015-07-20T23:57:56.971+07:00'
thumbnail: https://3.bp.blogspot.com/-sa830MyF-Pc/Va0kRlvZo9I/AAAAAAAACp4/gaw6hL08lPM/s1600/Screenshot%2Bfrom%2B2015-07-20%2B23%253A30%253A29.png
slug: /2015/07/giao-dien-phang-cho-sublime-text.html
diff --git a/apps/blog/_posts/2015/07/git-git-cheat-sheet.md b/apps/blog/_posts/2015/07/git-git-cheat-sheet.md
index 1ba70159..0cbe791f 100644
--- a/apps/blog/_posts/2015/07/git-git-cheat-sheet.md
+++ b/apps/blog/_posts/2015/07/git-git-cheat-sheet.md
@@ -4,7 +4,7 @@ date: '2015-07-16'
author: Duyet
tags:
- Git
- - Git cheatsheet
+ - Cheatsheet
modified_time: '2015-07-16T13:04:43.947+07:00'
slug: /2015/07/git-git-cheat-sheet.html
category: Git
diff --git a/apps/blog/_posts/2015/07/git-ki-thuat-chia-branch-branch-early.md b/apps/blog/_posts/2015/07/git-ki-thuat-chia-branch-branch-early.md
index 437217cd..f65a052c 100644
--- a/apps/blog/_posts/2015/07/git-ki-thuat-chia-branch-branch-early.md
+++ b/apps/blog/_posts/2015/07/git-ki-thuat-chia-branch-branch-early.md
@@ -4,7 +4,6 @@ date: '2015-07-16'
author: Duyet
tags:
- Git
- - Git Workflow
modified_time: '2015-07-16T12:54:31.864+07:00'
thumbnail: https://4.bp.blogspot.com/-s4EMBlWhY34/VadEZkNL7YI/AAAAAAAACnc/byhewvc8IsQ/s1600/s1-1024x417.png
slug: /2015/07/git-ki-thuat-chia-branch-branch-early.html
diff --git a/apps/blog/_posts/2015/07/su-dung-git-stash-hieu-qua.md b/apps/blog/_posts/2015/07/su-dung-git-stash-hieu-qua.md
index 3f361dbb..0df2983f 100644
--- a/apps/blog/_posts/2015/07/su-dung-git-stash-hieu-qua.md
+++ b/apps/blog/_posts/2015/07/su-dung-git-stash-hieu-qua.md
@@ -5,7 +5,7 @@ author: Duyet
tags:
- Git
- Github
- - Thủ thuật
+ - Tutorial
modified_time: '2016-03-01T12:14:08.804+07:00'
thumbnail: https://1.bp.blogspot.com/-3yYbNqRb-g4/VaUEdtFF9QI/AAAAAAAACm0/yuduSPkQak8/s1600/git.png
slug: /2015/07/su-dung-git-stash-hieu-qua.html
diff --git a/apps/blog/_posts/2015/07/tao-of-programming.md b/apps/blog/_posts/2015/07/tao-of-programming.md
index 9cf7fc54..9b3a95b6 100644
--- a/apps/blog/_posts/2015/07/tao-of-programming.md
+++ b/apps/blog/_posts/2015/07/tao-of-programming.md
@@ -3,8 +3,6 @@ title: 'Đạo lập trình - The Tao Of Programming '
date: '2015-07-10'
author: Duyet
tags:
- - Tao of Programming
- - đạo lập trình
- News
modified_time: '2015-07-10T23:36:20.684+07:00'
slug: /2015/07/tao-of-programming.html
diff --git a/apps/blog/_posts/2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.md b/apps/blog/_posts/2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.md
index e0b600ac..9ed50136 100644
--- a/apps/blog/_posts/2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.md
+++ b/apps/blog/_posts/2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.md
@@ -3,8 +3,8 @@ title: Nodejs - Các kỹ thuật Crawler, rút trích dữ liệu với Nodejs
date: '2015-08-08'
author: Duyet
tags:
- - Nodejs
- - crawler
+ - Node.js
+ - Javascript Framework
modified_time: '2015-08-08T17:37:55.222+07:00'
thumbnail: https://3.bp.blogspot.com/-Cwxzj6-qXVo/VcXRtQa3L4I/AAAAAAAACss/YD6WVCG84JE/s1600/nodejs-crawler.png
slug: /2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.html
diff --git a/apps/blog/_posts/2015/08/cach-su-dung-git-rebase.md b/apps/blog/_posts/2015/08/cach-su-dung-git-rebase.md
index 777413b6..76344f60 100644
--- a/apps/blog/_posts/2015/08/cach-su-dung-git-rebase.md
+++ b/apps/blog/_posts/2015/08/cach-su-dung-git-rebase.md
@@ -4,7 +4,7 @@ date: '2015-08-25'
author: Duyet
tags:
- Git
- - Thủ thuật Git
+ - Tutorial
modified_time: '2015-08-25T23:28:08.793+07:00'
slug: /2015/08/cach-su-dung-git-rebase.html
category: Git
diff --git a/apps/blog/_posts/2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.md b/apps/blog/_posts/2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.md
index 8de03905..a34d35d8 100644
--- a/apps/blog/_posts/2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.md
+++ b/apps/blog/_posts/2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.md
@@ -4,7 +4,7 @@ date: '2015-08-25'
author: Duyet
tags:
- Git
- - Thủ thuật Git
+ - Tutorial
- Github
modified_time: '2015-08-25T22:58:57.734+07:00'
slug: /2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.html
diff --git a/apps/blog/_posts/2015/08/gioi-thieu-sailsjs-framework.md b/apps/blog/_posts/2015/08/gioi-thieu-sailsjs-framework.md
index 33246714..010d8e65 100644
--- a/apps/blog/_posts/2015/08/gioi-thieu-sailsjs-framework.md
+++ b/apps/blog/_posts/2015/08/gioi-thieu-sailsjs-framework.md
@@ -3,9 +3,8 @@ title: Nodejs - Giới thiệu SailsJS framework.
date: '2015-08-08'
author: Duyet
tags:
- - Nodejs
- - sails
- - sailsjs
+ - Node.js
+ - Javascript Framework
modified_time: '2016-05-14T13:36:49.370+07:00'
thumbnail: https://4.bp.blogspot.com/-s5C5wk5JYDQ/VcX1QdZWrhI/AAAAAAAACs8/Kw28tJWqIzY/s1600/sailsjs.PNG
slug: /2015/08/gioi-thieu-sailsjs-framework.html
diff --git a/apps/blog/_posts/2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.md b/apps/blog/_posts/2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.md
index 5bca443a..c234105c 100644
--- a/apps/blog/_posts/2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.md
+++ b/apps/blog/_posts/2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.md
@@ -3,9 +3,8 @@ title: Git - Cách xem nội dung 1 file ở branch khác
date: '2015-08-25'
author: Duyet
tags:
- - view file
+ - Tutorial
- Git
- - Khái niệm git
modified_time: '2015-08-25T22:46:46.932+07:00'
slug: /2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.html
category: Git
diff --git a/apps/blog/_posts/2015/08/git-chinh-sua-git-vua-commit.md b/apps/blog/_posts/2015/08/git-chinh-sua-git-vua-commit.md
index 94af669c..3d67b634 100644
--- a/apps/blog/_posts/2015/08/git-chinh-sua-git-vua-commit.md
+++ b/apps/blog/_posts/2015/08/git-chinh-sua-git-vua-commit.md
@@ -4,7 +4,7 @@ date: '2015-08-07'
author: Duyet
tags:
- Git
- - git commit
+ - Tutorial
modified_time: '2015-08-07T22:14:16.153+07:00'
slug: /2015/08/git-chinh-sua-git-vua-commit.html
category: Git
diff --git a/apps/blog/_posts/2015/08/git-khoi-phuc-bang-reflog.md b/apps/blog/_posts/2015/08/git-khoi-phuc-bang-reflog.md
index d5dcc931..749810bc 100644
--- a/apps/blog/_posts/2015/08/git-khoi-phuc-bang-reflog.md
+++ b/apps/blog/_posts/2015/08/git-khoi-phuc-bang-reflog.md
@@ -3,9 +3,8 @@ title: Git - Khôi phục bằng reflog sau khi xóa commit hoặc branch
date: '2015-08-07'
author: Duyet
tags:
- - reflog
- Git
- - khôi phục
+ - Tutorial
modified_time: '2015-08-07T13:04:07.964+07:00'
thumbnail: https://1.bp.blogspot.com/-3KF--ZtRoJ8/VcRHZTobPXI/AAAAAAAACsA/ytQrNZKU_1Q/s1600/reflog-duyetdev.png
slug: /2015/08/git-khoi-phuc-bang-reflog.html
diff --git a/apps/blog/_posts/2015/08/github-project-feedback-social-platform.md b/apps/blog/_posts/2015/08/github-project-feedback-social-platform.md
index 30ddc816..a29b0fec 100644
--- a/apps/blog/_posts/2015/08/github-project-feedback-social-platform.md
+++ b/apps/blog/_posts/2015/08/github-project-feedback-social-platform.md
@@ -1,10 +1,10 @@
---
-title: Github Project - Feedback Social Platform
+title: Feedback Social Platform
date: '2015-08-09'
author: Duyet
tags:
- Github
- - project
+ - Side Project
modified_time: '2018-09-10T17:30:29.064+07:00'
slug: /2015/08/github-project-feedback-social-platform.html
category: Project
diff --git a/apps/blog/_posts/2015/08/how-to-remove-untracked-files.md b/apps/blog/_posts/2015/08/how-to-remove-untracked-files.md
index b1691c11..28f1eaed 100644
--- a/apps/blog/_posts/2015/08/how-to-remove-untracked-files.md
+++ b/apps/blog/_posts/2015/08/how-to-remove-untracked-files.md
@@ -1,5 +1,5 @@
---
-title: Git - How to remove untracked files
+title: Git - Tutorial remove untracked files
date: '2015-08-25'
author: Duyet
tags:
diff --git a/apps/blog/_posts/2015/08/javascript-style-guide.md b/apps/blog/_posts/2015/08/javascript-style-guide.md
index 5c7b04e8..f07b2be0 100644
--- a/apps/blog/_posts/2015/08/javascript-style-guide.md
+++ b/apps/blog/_posts/2015/08/javascript-style-guide.md
@@ -3,7 +3,7 @@ title: JavaScript Style Guide
date: '2015-08-01'
author: Duyet
tags:
- - style guide
+ - Tutorial
- Javascript
modified_time: '2015-08-01T10:25:33.996+07:00'
slug: /2015/08/javascript-style-guide.html
@@ -16,37 +16,32 @@ See full: [https://github.com/duyet/javascript](https://github.com/duyet/javascr
## Table of Contents
-1. [Types](#types)
-2. [Objects](#objects)
-3. [Arrays](#arrays)
-4. [Strings](#strings)
-5. [Functions](#functions)
-6. [Properties](#properties)
-7. [Variables](#variables)
-8. [Hoisting](#hoisting)
-9. [Comparison Operators & Equality](#comparison-operators--equality)
-10. [Blocks](#blocks)
-11. [Comments](#comments)
-12. [Whitespace](#whitespace)
-13. [Commas](#commas)
-14. [Semicolons](#semicolons)
-15. [Type Casting & Coercion](#type-casting--coercion)
-16. [Naming Conventions](#naming-conventions)
-17. [Accessors](#accessors)
-18. [Constructors](#constructors)
-19. [Events](#events)
-20. [Modules](#modules)
-21. [jQuery](#jquery)
-22. [ECMAScript 5 Compatibility](#ecmascript-5-compatibility)
-23. [Testing](#testing)
-24. [Performance](#performance)
-25. [Resources](#resources)
-26. [In the Wild](#in-the-wild)
-27. [Translation](#translation)
-28. [The JavaScript Style Guide Guide](#the-javascript-style-guide-guide)
-29. [Chat With Us About Javascript](#chat-with-us-about-javascript)
-30. [Contributors](#contributors)
-31. [License](#license)
+- [Table of Contents](#table-of-contents)
+- [Types](#types)
+- [Objects](#objects)
+- [Arrays](#arrays)
+- [Strings](#strings)
+- [Functions](#functions)
+- [Properties](#properties)
+- [Variables](#variables)
+- [Hoisting](#hoisting)
+- [Comparison Operators \& Equality](#comparison-operators--equality)
+- [Blocks](#blocks)
+- [Comments](#comments)
+- [Whitespace](#whitespace)
+- [Commas](#commas)
+- [Semicolons](#semicolons)
+- [Type Casting \& Coercion](#type-casting--coercion)
+- [Naming Conventions](#naming-conventions)
+- [Accessors](#accessors)
+- [Constructors](#constructors)
+- [Events](#events)
+- [Modules](#modules)
+- [jQuery](#jquery)
+- [ECMAScript 5 Compatibility](#ecmascript-5-compatibility)
+- [Testing](#testing)
+- [Performance](#performance)
+- [Resources](#resources)
## Types
diff --git a/apps/blog/_posts/2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.md b/apps/blog/_posts/2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.md
index 19cdc4e4..1a6e6817 100644
--- a/apps/blog/_posts/2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.md
+++ b/apps/blog/_posts/2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.md
@@ -5,9 +5,7 @@ title:
date: '2015-08-09'
author: Duyet
tags:
- - Tony
- - Tony buổi sáng
- - Bài viết hay
+ - Read
modified_time: '2015-08-09T23:04:07.441+07:00'
thumbnail: https://1.bp.blogspot.com/-_AGdPVcTw6c/VcdELg2WkII/AAAAAAAACtw/yvgddlzqydc/s1600/150524-b-lam-tho-dc-5-dieu-duoi-day-1.jpg
slug: /2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.html
diff --git a/apps/blog/_posts/2015/08/nodejs-cac-package-ma-moi-lap-trinh.md b/apps/blog/_posts/2015/08/nodejs-cac-package-ma-moi-lap-trinh.md
index 4e7e13ee..b67276ad 100644
--- a/apps/blog/_posts/2015/08/nodejs-cac-package-ma-moi-lap-trinh.md
+++ b/apps/blog/_posts/2015/08/nodejs-cac-package-ma-moi-lap-trinh.md
@@ -3,10 +3,8 @@ title: Nodejs - Các package mà mọi lập trình viên Nodejs đều phải b
date: '2015-08-07'
author: Duyet
tags:
- - Nodejs
- - ExpressJs
+ - Node.js
- NPM
- - async
modified_time: '2015-08-07T20:38:19.130+07:00'
slug: /2015/08/nodejs-cac-package-ma-moi-lap-trinh.html
category: Javascript
diff --git a/apps/blog/_posts/2015/08/nodejs-create-simple-static-server-with.md b/apps/blog/_posts/2015/08/nodejs-create-simple-static-server-with.md
index 177e9f6b..fafb251f 100644
--- a/apps/blog/_posts/2015/08/nodejs-create-simple-static-server-with.md
+++ b/apps/blog/_posts/2015/08/nodejs-create-simple-static-server-with.md
@@ -3,10 +3,8 @@ title: Nodejs - Create simple static server with Nodejs
date: '2015-08-09'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Tutorial
- - English
- - simple
modified_time: '2018-09-10T17:29:34.941+07:00'
thumbnail: https://2.bp.blogspot.com/-6e-BntuJcuY/VccJShY74fI/AAAAAAAACtQ/AEgG4pJeriE/s1600/test-html-server.png
slug: /2015/08/nodejs-create-simple-static-server-with.html
diff --git a/apps/blog/_posts/2015/08/tao-server-static-don-gian-bang-nodejs.md b/apps/blog/_posts/2015/08/tao-server-static-don-gian-bang-nodejs.md
index cc17c88c..3b5f59c2 100644
--- a/apps/blog/_posts/2015/08/tao-server-static-don-gian-bang-nodejs.md
+++ b/apps/blog/_posts/2015/08/tao-server-static-don-gian-bang-nodejs.md
@@ -3,10 +3,8 @@ title: 'Nodejs - Tạo static server đơn giản với Nodejs '
date: '2015-08-09'
author: Duyet
tags:
- - Nodejs
- - Server
- - static server
- - simple
+ - Node.js
+ - Tutorial
modified_time: '2018-09-10T17:30:05.200+07:00'
thumbnail: https://2.bp.blogspot.com/-6e-BntuJcuY/VccJShY74fI/AAAAAAAACtQ/AEgG4pJeriE/s1600/test-html-server.png
slug: /2015/08/tao-server-static-don-gian-bang-nodejs.html
diff --git a/apps/blog/_posts/2015/08/the-next-goals-in-this-year-2015.md b/apps/blog/_posts/2015/08/the-next-goals-in-this-year-2015.md
deleted file mode 100644
index d2241500..00000000
--- a/apps/blog/_posts/2015/08/the-next-goals-in-this-year-2015.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-title: The next goals in this year 2015
-date: '2015-08-10'
-author: Duyet
-tags:
- - mục tiêu
-modified_time: '2015-08-10T10:09:22.333+07:00'
-slug: /2015/08/the-next-goals-in-this-year-2015.html
-category: Story
-description:
----
-
-Mục tiêu đến hết năm nay.
-
-Cái chưa làm được: Hoàn thành mục tiêu của năm trước :((
-
-Mục tiêu năm nay:
-
-- Trong tài khoản phải đủ xxx
-- Master in Javascript and Nodejs (+Express, Sails, Angular)
-- Finish 14/23 project in Github
-- Hoàn thành đề tài nghiên cứu khoa học + 1 paper
-
-> Try harder !!
diff --git a/apps/blog/_posts/2015/08/tong-hop-phim-tat-cua-visual-studio-code.md b/apps/blog/_posts/2015/08/tong-hop-phim-tat-cua-visual-studio-code.md
index b847448e..cda79c29 100644
--- a/apps/blog/_posts/2015/08/tong-hop-phim-tat-cua-visual-studio-code.md
+++ b/apps/blog/_posts/2015/08/tong-hop-phim-tat-cua-visual-studio-code.md
@@ -4,8 +4,7 @@ date: '2015-08-07'
author: Duyet
tags:
- VS Code
- - Phím tắt
- - Visual Studio Code
+ - Tutorial
modified_time: '2015-08-07T21:10:50.024+07:00'
thumbnail: https://2.bp.blogspot.com/-FGeqqi-Oxuk/VcS8Ssfh-FI/AAAAAAAACsY/U9P4bj2vfhI/s1600/VS_Code_Ubntu_duyetdev.com.png
slug: /2015/08/tong-hop-phim-tat-cua-visual-studio-code.html
diff --git a/apps/blog/_posts/2015/09/git-19-tips-for-everyday-git-use.md b/apps/blog/_posts/2015/09/git-19-tips-for-everyday-git-use.md
index d235de6a..2d4e6673 100644
--- a/apps/blog/_posts/2015/09/git-19-tips-for-everyday-git-use.md
+++ b/apps/blog/_posts/2015/09/git-19-tips-for-everyday-git-use.md
@@ -4,7 +4,7 @@ date: '2015-09-16'
author: Duyet
tags:
- Git
- - Thủ thuật Git
+ - Tutorial
modified_time: '2015-09-16T14:12:43.738+07:00'
slug: /2015/09/git-19-tips-for-everyday-git-use.html
category: Git
@@ -16,25 +16,30 @@ If you are completely new to git, I suggest reading [Git Cheat Sheet](http://www
**Table of Contexts:**
-1. [Parameters for better logging](#git-log)
-2. [Log actual changes in a file](#search-log)
-3. [Only Log changes for some specific lines in file](#log-lines)
-4. [Log changes not yet merged to the parent branch](#log-not-merged)
-5. [Extract a file from another branch](#extract-file)
-6. [Some notes on rebasing](#pull-rebase)
-7. [Remember the branch structure after a local merge](#no-fast-forward)
-8. [Fix your previous commit, instead of making a new commit](#ammend-commit)
-9. [Three stages in git, and how to move between them](#stages)
-10. [Revert a commit, softly](#soft-revert)
-11. [See diff-erence for the entire project (not just one file at a time) in a 3rd party diff tool](#folder-diff)
-12. [Ignore the white space](#ignore-white-space)
-13. [Only "add" some changes from a file](#selective-add)
-14. [Discover and zap those old branches](#find-old-branches)
-15. [Stash only some files](#selective-stash)
-16. [Good commit messages](#good-commit-message)
-17. [Git Auto-completion](#auto-complete)
-18. [Create aliases for your most frequently used commands](#aliases)
-19. [Quickly find a commit that broke your feature (EXTRA AWESOME)](#git-bisect)
+- [1. Parameters for better logging](#1-parameters-for-better-logging)
+- [2. Log actual changes in a file](#2-log-actual-changes-in-a-file)
+- [3. Only Log changes for some specific lines in a file](#3-only-log-changes-for-some-specific-lines-in-a-file)
+- [4. Log changes not yet merged to the parent branch](#4-log-changes-not-yet-merged-to-the-parent-branch)
+- [5. Extract a file from another branch](#5-extract-a-file-from-another-branch)
+- [6. Some notes on rebasing](#6-some-notes-on-rebasing)
+ - [One particular rebase that is very helpful is `git pull --rebase`.](#one-particular-rebase-that-is-very-helpful-is-git-pull---rebase)
+- [7. Remember the branch structure after a local merge](#7-remember-the-branch-structure-after-a-local-merge)
+- [8. Fix your previous commit, instead of making a new commit](#8-fix-your-previous-commit-instead-of-making-a-new-commit)
+- [9. Three stages in git, and how to move between them](#9-three-stages-in-git-and-how-to-move-between-them)
+ - [Resetting the files](#resetting-the-files)
+ - [Check out some files](#check-out-some-files)
+- [10. Revert a commit, softly](#10-revert-a-commit-softly)
+- [11. See diff-erence for the entire project (not just one file at a time) in a 3rd party diff tool](#11-see-diff-erence-for-the-entire-project-not-just-one-file-at-a-time-in-a-3rd-party-diff-tool)
+- [12. Ignore the white space](#12-ignore-the-white-space)
+- [13. Only "add" some changes from a file](#13-only-add-some-changes-from-a-file)
+- [14. Discover and zap those old branches](#14-discover-and-zap-those-old-branches)
+- [15. Stash only some files](#15-stash-only-some-files)
+- [16. Good commit messages](#16-good-commit-messages)
+- [17. Git Auto-completion](#17-git-auto-completion)
+- [18. Create aliases for your most frequently used commands](#18-create-aliases-for-your-most-frequently-used-commands)
+- [19. Quickly find a commit that broke your feature (EXTRA AWESOME)](#19-quickly-find-a-commit-that-broke-your-feature-extra-awesome)
+ - [So what does `git bisect` do?](#so-what-does-git-bisect-do)
+ - [The actual commands you need to run to execute the full `git bisect` flow are:](#the-actual-commands-you-need-to-run-to-execute-the-full-git-bisect-flow-are)
[https://www.blogger.com/null](https://www.blogger.com/null)
diff --git a/apps/blog/_posts/2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.md b/apps/blog/_posts/2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.md
index d9515726..03fdad70 100644
--- a/apps/blog/_posts/2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.md
+++ b/apps/blog/_posts/2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.md
@@ -3,11 +3,8 @@ title: Grunt - Fix lỗi wiredep "Cannot read property 'main' of undefined"
date: '2015-09-22'
author: Duyet
tags:
- - Nodejs
- - Grunt
- - Bower
- - Grunt task
- - Wiredep
+ - Node.js
+ - Tutorial
modified_time: '2015-09-22T20:21:45.074+07:00'
thumbnail: https://1.bp.blogspot.com/-iqXkWdvF-jg/VgFUvbmohqI/AAAAAAAAC5g/alZjGwHMCHY/s1600/Screenshot%2Bfrom%2B2015-09-22%2B20%253A15%253A45.png
slug: /2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.html
diff --git a/apps/blog/_posts/2015/09/install-odoo-8-in-ubuntu-14-04-15-04.md b/apps/blog/_posts/2015/09/install-odoo-8-in-ubuntu-14-04-15-04.md
index fc36496a..482b7868 100644
--- a/apps/blog/_posts/2015/09/install-odoo-8-in-ubuntu-14-04-15-04.md
+++ b/apps/blog/_posts/2015/09/install-odoo-8-in-ubuntu-14-04-15-04.md
@@ -6,9 +6,7 @@ tags:
- Linux
- Tutorial
- Ubuntu
- - Install
- Python
- - Odoo
modified_time: '2018-09-01T22:29:37.931+07:00'
slug: /2015/09/install-odoo-8-in-ubuntu-14-04-15-04.html
category: Linux
diff --git a/apps/blog/_posts/2015/09/js-entire-javascript-language-in-single.md b/apps/blog/_posts/2015/09/js-entire-javascript-language-in-single.md
index bcbf2e24..bd73a9df 100644
--- a/apps/blog/_posts/2015/09/js-entire-javascript-language-in-single.md
+++ b/apps/blog/_posts/2015/09/js-entire-javascript-language-in-single.md
@@ -3,7 +3,7 @@ title: JS - The Entire JavaScript Language in a Single Image
date: '2015-09-10'
author: Duyet
tags:
- - docs
+ - Read
- Javascript
modified_time: '2015-09-10T08:58:25.126+07:00'
slug: /2015/09/js-entire-javascript-language-in-single.html
diff --git a/apps/blog/_posts/2015/09/nodejs-all-you-need-to-know-about.md b/apps/blog/_posts/2015/09/nodejs-all-you-need-to-know-about.md
index 9cc445cc..9b0db244 100644
--- a/apps/blog/_posts/2015/09/nodejs-all-you-need-to-know-about.md
+++ b/apps/blog/_posts/2015/09/nodejs-all-you-need-to-know-about.md
@@ -3,8 +3,7 @@ title: Nodejs - All you need to know about Node.js 4.0.0
date: '2015-09-09'
author: Duyet
tags:
- - Nodejs
- - Update
+ - Node.js
modified_time: '2015-09-09T18:48:56.604+07:00'
thumbnail: https://2.bp.blogspot.com/-h7ljxkRrImE/VfAcZ8U9dlI/AAAAAAAAC4U/wYPnnlhcP3Y/s1600/nodejs_logo_light.png
slug: /2015/09/nodejs-all-you-need-to-know-about.html
diff --git a/apps/blog/_posts/2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.md b/apps/blog/_posts/2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.md
index f09477a1..295e131d 100644
--- a/apps/blog/_posts/2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.md
+++ b/apps/blog/_posts/2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.md
@@ -3,8 +3,8 @@ title: Clipboard.js - thư viện giúp cắt/sao chép nội dung trên web m
date: '2015-10-30'
author: Duyet
tags:
- - clipboard.js
- Javascript
+ - Javascript Framework
modified_time: '2016-01-11T02:05:25.683+07:00'
thumbnail: https://3.bp.blogspot.com/-nogpFtDX4JE/VjNskDinauI/AAAAAAAAFfk/ciSSYDvmaKs/s1600/5ab0a950-5fb4-11e5-9602-e73c0b661883.jpg
slug: /2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.html
diff --git a/apps/blog/_posts/2015/10/github-project-bruteforce-database.md b/apps/blog/_posts/2015/10/github-project-bruteforce-database.md
index b986ca83..afa7ddce 100644
--- a/apps/blog/_posts/2015/10/github-project-bruteforce-database.md
+++ b/apps/blog/_posts/2015/10/github-project-bruteforce-database.md
@@ -1,10 +1,10 @@
---
-title: ' Github project - Bruteforce Database - Password dictionaries'
+title: Bruteforce Database
date: '2015-10-05'
author: Duyet
tags:
- Github
- - project
+ - Side Project
modified_time: '2015-10-05T20:46:06.959+07:00'
thumbnail: https://2.bp.blogspot.com/-DBFErnG-8AE/VhJ-z3Y-41I/AAAAAAAADgA/FGCt8naBMKs/s1600/mtyourmind.10001mb.com.png
slug: /2015/10/github-project-bruteforce-database.html
diff --git a/apps/blog/_posts/2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.md b/apps/blog/_posts/2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.md
index f86b1d67..6d1bf167 100644
--- a/apps/blog/_posts/2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.md
+++ b/apps/blog/_posts/2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.md
@@ -4,8 +4,6 @@ date: '2015-10-26'
author: Duyet
tags:
- Apache Spark
- - Seminar
- - PredictionIO
modified_time: '2018-09-10T17:28:53.401+07:00'
thumbnail: https://4.bp.blogspot.com/-3b5RnHFJ-BY/Vi4vs2h_POI/AAAAAAAAFLo/oBzbFHmhIGs/s1600/12087179_910280965688222_3487820241091688604_o.jpg
slug: /2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.html
diff --git a/apps/blog/_posts/2015/10/vietnamese-language-pack-extension-for-flarum.md b/apps/blog/_posts/2015/10/vietnamese-language-pack-extension-for-flarum.md
index 01018da6..d7809ee4 100644
--- a/apps/blog/_posts/2015/10/vietnamese-language-pack-extension-for-flarum.md
+++ b/apps/blog/_posts/2015/10/vietnamese-language-pack-extension-for-flarum.md
@@ -3,7 +3,6 @@ title: PHP - Vietnamese Language Pack Extension for Flarum
date: '2015-10-05'
author: Duyet
tags:
- - Flarum
- PHP
- Github
modified_time: '2015-10-05T20:46:41.997+07:00'
diff --git a/apps/blog/_posts/2015/11/google-big-data-meetup-in-saigon.md b/apps/blog/_posts/2015/11/google-big-data-meetup-in-saigon.md
index 61b6bf27..63122b40 100644
--- a/apps/blog/_posts/2015/11/google-big-data-meetup-in-saigon.md
+++ b/apps/blog/_posts/2015/11/google-big-data-meetup-in-saigon.md
@@ -3,7 +3,7 @@ title: Google Big Data Meetup in Saigon
date: '2015-11-13'
author: Duyet
tags:
- - Meetup
+ - Events
- Google
- BigData
modified_time: '2016-04-04T17:00:42.706+07:00'
diff --git a/apps/blog/_posts/2015/11/nodejs-cache-in-memory-trong-nodejs.md b/apps/blog/_posts/2015/11/nodejs-cache-in-memory-trong-nodejs.md
index a62344cf..7462250f 100644
--- a/apps/blog/_posts/2015/11/nodejs-cache-in-memory-trong-nodejs.md
+++ b/apps/blog/_posts/2015/11/nodejs-cache-in-memory-trong-nodejs.md
@@ -3,11 +3,8 @@ title: Nodejs - Cache in-memory trong Nodejs
date: '2015-11-13'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Tutorial
- - node-cache
- - Package
- - Package.json
modified_time: '2016-01-11T02:02:28.742+07:00'
thumbnail: https://1.bp.blogspot.com/-AyUtco9W0rE/VkYN8h_yUBI/AAAAAAAAFqI/IY2bT1tt5VU/s1600/nodejs-logo.png
slug: /2015/11/nodejs-cache-in-memory-trong-nodejs.html
diff --git a/apps/blog/_posts/2015/11/review-trai-nghiem-firefox-os.md b/apps/blog/_posts/2015/11/review-trai-nghiem-firefox-os.md
index 64dee2a6..b28073ea 100644
--- a/apps/blog/_posts/2015/11/review-trai-nghiem-firefox-os.md
+++ b/apps/blog/_posts/2015/11/review-trai-nghiem-firefox-os.md
@@ -3,9 +3,9 @@ title: Review - Trải nghiệm Firefox OS bản B2G trên Android
date: '2015-11-14'
author: Duyet
tags:
- - Firefox OS
- - Firefox
- - Review
+ - OS
+ - Web
+ - Javascript
modified_time: '2016-01-11T02:01:59.455+07:00'
thumbnail: https://2.bp.blogspot.com/-NMBlGlYVEN0/VkdfMAWxk-I/AAAAAAAAF0g/VsMjL_K_yZM/s1600/Screenshot_2015-11-14-23-12-54_org.mozilla.b2gdroid.png
slug: /2015/11/review-trai-nghiem-firefox-os.html
@@ -13,4 +13,77 @@ category: Web
description:
---
- Firefox OS 2.5 vừa được Mozilla phát hành dưới dạng Developer Preview cho người dùng Android trải nghiệm và sử dụng. Sau đây là các trải nghiệm ban đầu của mình về một HDH khá thú vị này.
Màn hình khởi động
Giao diện trang cài đặt, trông khá sáng sủa và đẹp
Phần Device Information - cho biết Firefox OS đang dùng là bản 2.6 prerelease
Trình duyệt Web, Firefox OS không sử dụng trình duyệt Firefox, mà chỉ ghi tên chương trình là Browser.
Giao diện tìm kiếm - Điểm hay của Firefox OS là bạn có thể truy cập web bất kì chỗ nào của hệ điều hành, chỉ cần nhập địa chỉ Web tại khung tìm kiếm, hoặc icon shotcut trên màn hình.
Giao diện cuộc gọi, khá giống Android 5
Giao diện chính Market Place của hệ điều hành, bạn có thể tải về các ứng dụng, Add-ons cho hệ thống, danh sách các site. Các ứng dụng và add-ons được lập trình bằng HTML5 và JS.
Một số addons
Giao diện gửi tin nhắn và bàn phím mặc định
Gửi mail
Giao diện Calendar, còn 1 điểm là trong mỗi ứng dụng đều có thanh tìm kiếm ở góc trên cùng.
Album ảnh, vẫn còn khá đơn giản, không có chức năng gì đặc sắc
Menu tùy chọn
Tổng kết sơ bộ lại, bản build vẫn còn khá mới và còn đang trong giai đoạn phát triển đẹp. Giao diện đẹp và phẳng. Bạn có thể ghim trực tiếp trang web ưa thích vào màn hình chủ hay truy cập web từ bất kỳ đâu từ thanh tìm kiếm phía trên.
Lưu ý thêm là toàn bộ HDH được viết trên công nghệ HTML5, hứa hẹn sẽ có nhiều ứng dụng hay từ các lập trình viên Web.
+Firefox OS 2.5 vừa được Mozilla phát hành dưới dạng Developer Preview cho người dùng Android trải nghiệm và sử dụng. Sau đây là các trải nghiệm ban đầu của mình về một HĐH khá thú vị này.
+
+![Screenshot](https://2.bp.blogspot.com/-NMBlGlYVEN0/VkdfMAWxk-I/AAAAAAAAF0g/VsMjL_K_yZM/s640/Screenshot_2015-11-14-23-12-54_org.mozilla.b2gdroid.png)
+
+### Màn hình khởi động
+
+![Screenshot](https://2.bp.blogspot.com/-4W0ONbrmJOU/Vkdgle4EgbI/AAAAAAAAF0s/7sxdUGKM4gE/s640/Screenshot_2015-11-14-19-47-01_org.mozilla.b2gdroid.png)
+Màn hình khởi động
+
+### Giao diện trang cài đặt
+
+![Screenshot](https://4.bp.blogspot.com/-n3VgUmIS2Os/Vkdg60NY6fI/AAAAAAAAF0w/lb-4OZFVKKY/s640/Screenshot_2015-11-14-19-47-56_org.mozilla.b2gdroid.png)
+Giao diện trang cài đặt, trông khá sáng sủa và đẹp
+
+### Device Information
+
+![Screenshot](https://4.bp.blogspot.com/-QdIdyKffChU/VkdhJ2jyItI/AAAAAAAAF04/725b3Z_dBQ8/s640/Screenshot_2015-11-14-19-48-29_org.mozilla.b2gdroid.png)
+Phần Device Information - cho biết Firefox OS đang dùng là bản 2.6 prerelease
+
+### Trình duyệt Web
+
+![Screenshot](https://3.bp.blogspot.com/-jwUClMBCRv4/VkdhjRLbrCI/AAAAAAAAF1A/ENxWTCgmPM4/s640/Screenshot_2015-11-14-20-20-03_org.mozilla.b2gdroid.png)
+Firefox OS không sử dụng trình duyệt Firefox, mà chỉ ghi tên chương trình là Browser.
+
+### Giao diện tìm kiếm
+
+![Screenshot](https://1.bp.blogspot.com/-i28Pkhw5OhE/VkdjERRlgZI/AAAAAAAAF1Y/4mHNGZjFAbA/s640/Screenshot_2015-11-14-23-14-07_org.mozilla.b2gdroid.png)
+Điểm hay của Firefox OS là bạn có thể truy cập web bất kì chỗ nào của hệ điều hành, chỉ cần nhập địa chỉ Web tại khung tìm kiếm, hoặc icon shotcut trên màn hình.
+
+### Giao diện cuộc gọi
+
+![Screenshot](https://3.bp.blogspot.com/-dzozck5gfUQ/VkdjaWf3U9I/AAAAAAAAF1g/BW63XYsjpp8/s640/Screenshot_2015-11-14-20-35-21_org.mozilla.b2gdroid.png)
+Giao diện cuộc gọi, khá giống Android 5
+
+### Giao diện chính Market Place
+
+![Screenshot](https://4.bp.blogspot.com/-2HI4T5tVL1M/Vkdjo0Bmb4I/AAAAAAAAF1k/DfJQLpGUq6o/s640/Screenshot_2015-11-14-20-29-13_org.mozilla.b2gdroid.png)
+Bạn có thể tải về các ứng dụng, Add-ons cho hệ thống, danh sách các site. Các ứng dụng và add-ons được lập trình bằng HTML5 và JS.
+
+### Một số addons
+
+![Screenshot](https://4.bp.blogspot.com/-DcZ9iBXx65c/VkdkJeDinyI/AAAAAAAAF1w/Og9HlpcSo5I/s640/Screenshot_2015-11-14-20-30-00_org.mozilla.b2gdroid.png)
+Một số addons
+
+### Giao diện gửi tin nhắn và bàn phím mặc định
+
+![Screenshot](https://4.bp.blogspot.com/-86zieizV_Sw/Vkdj-ElUqMI/AAAAAAAAF1s/WA43XK80wMA/s640/Screenshot_2015-11-14-19-49-49_org.mozilla.b2gdroid.png)
+Giao diện gửi tin nhắn và bàn phím mặc định
+
+### Gửi mail
+
+![Screenshot](https://3.bp.blogspot.com/-fhnhfieUn4o/Vkdkjk-HBcI/AAAAAAAAF14/Mb5Cdc124Gw/s640/Screenshot_2015-11-14-20-27-17_org.mozilla.b2gdroid.png)
+Gửi mail
+
+### Giao diện Calendar
+
+![Screenshot](https://2.bp.blogspot.com/-ANz_Sn08kdA/VkdkxwifClI/AAAAAAAAF2E/oY3GVbUnpeE/s640/Screenshot_2015-11-14-20-28-56_org.mozilla.b2gdroid.png)
+Trong mỗi ứng dụng đều có thanh tìm kiếm ở góc trên cùng.
+
+### Album ảnh
+
+![Screenshot](https://4.bp.blogspot.com/-iyHKj1Ns1lE/VkdlZdLyC6I/AAAAAAAAF2U/erqWNxBS6ZQ/s640/Screenshot_2015-11-14-20-32-40_org.mozilla.b2gdroid.png)
+Album ảnh, vẫn còn khá đơn giản, không có chức năng gì đặc sắc
+
+### Menu tùy chọn
+
+![Screenshot](https://1.bp.blogspot.com/-xNjBGmdCF9w/VkdljiufV0I/AAAAAAAAF2c/7VY15ULNiWw/s640/Screenshot_2015-11-14-20-21-44_org.mozilla.b2gdroid.png)
+Menu tùy chọn
+
+![Screenshot](https://3.bp.blogspot.com/-7npyslB5uws/Vkdl5NPwgkI/AAAAAAAAF2k/R6m3etAb-WE/s640/Screenshot_2015-11-14-19-48-22_org.mozilla.b2gdroid.png)
+
+Tổng kết, bản build vẫn còn khá mới và còn đang trong giai đoạn phát triển. Giao diện đẹp và phẳng. Bạn có thể ghim trực tiếp trang web ưa thích vào màn hình chủ hay truy cập web từ bất kỳ đâu từ thanh tìm kiếm phía trên.
+
+Lưu ý thêm là toàn bộ HĐH được viết trên công nghệ HTML5, hứa hẹn sẽ có nhiều ứng dụng hay từ các lập trình viên Web.
diff --git a/apps/blog/_posts/2015/12/angular-2-co-gi-moi.md b/apps/blog/_posts/2015/12/angular-2-co-gi-moi.md
index 6e400d0a..de911875 100644
--- a/apps/blog/_posts/2015/12/angular-2-co-gi-moi.md
+++ b/apps/blog/_posts/2015/12/angular-2-co-gi-moi.md
@@ -3,9 +3,8 @@ title: Angular 2 có gì mới?
date: '2015-12-20'
author: Duyet
tags:
- - data binding
- - Angular
- - angular 2
+ - JavaScript Framework
+ - Javascript
modified_time: '2016-01-11T02:00:01.346+07:00'
thumbnail: https://1.bp.blogspot.com/-ns1tQ1-Aw4E/VnZPOxT1x7I/AAAAAAAAMGI/0am16xApXRU/s1600/angularjs_logo.svg_-650x401.png
slug: /2015/12/angular-2-co-gi-moi.html
diff --git a/apps/blog/_posts/2015/12/chartico-tao-bieu-o-cot-nhanh-chong-va.md b/apps/blog/_posts/2015/12/chartico-tao-bieu-o-cot-nhanh-chong-va.md
index af0b024b..6a79d5a5 100644
--- a/apps/blog/_posts/2015/12/chartico-tao-bieu-o-cot-nhanh-chong-va.md
+++ b/apps/blog/_posts/2015/12/chartico-tao-bieu-o-cot-nhanh-chong-va.md
@@ -3,9 +3,9 @@ title: Chartico - Tạo biểu đồ cột nhanh chóng và đơn giản
date: '2015-12-09'
author: Duyet
tags:
- - PR
+ - Tools
+ - Tutorial
- Web
- - Chartico
modified_time: '2016-01-11T02:00:36.072+07:00'
thumbnail: https://3.bp.blogspot.com/-jAv_oexdrHk/VmhKEute_XI/AAAAAAAALXc/UG5BlQTW7xg/s1600/og.png
slug: /2015/12/chartico-tao-bieu-o-cot-nhanh-chong-va.html
diff --git a/apps/blog/_posts/2015/12/jslab-xyz.md b/apps/blog/_posts/2015/12/jslab-xyz.md
index 7351c71f..946e0bf9 100644
--- a/apps/blog/_posts/2015/12/jslab-xyz.md
+++ b/apps/blog/_posts/2015/12/jslab-xyz.md
@@ -3,9 +3,9 @@ title: jsLab.xyz
date: '2015-12-17'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Jslab
+ - Side Project
modified_time: '2016-01-11T02:00:17.623+07:00'
thumbnail: https://3.bp.blogspot.com/-YEiHaBErShs/VnJos52PFGI/AAAAAAAAMAo/Su-T_R9cnZ0/s1600/jslab.png
slug: /2015/12/jslab-xyz.html
diff --git a/apps/blog/_posts/2015/12/unit-test-va-function-test.md b/apps/blog/_posts/2015/12/unit-test-va-function-test.md
index 83e057ba..fc68fc78 100644
--- a/apps/blog/_posts/2015/12/unit-test-va-function-test.md
+++ b/apps/blog/_posts/2015/12/unit-test-va-function-test.md
@@ -1,9 +1,9 @@
---
-title: 'Unit test và Function test '
+title: Unit test và Function test
date: '2015-12-21'
author: Duyet
tags:
- - Test
+ - Testing
modified_time: '2016-01-11T01:59:18.744+07:00'
thumbnail: https://3.bp.blogspot.com/-k9Gxf_MV1Gg/Vnfrm5xSgxI/AAAAAAAAMMs/bicR-4BjnmU/s1600/unit-test.jpg
slug: /2015/12/unit-test-va-function-test.html
diff --git a/apps/blog/_posts/2015/12/year-in-review-2015.md b/apps/blog/_posts/2015/12/year-in-review-2015.md
index fbc3b39f..dc631467 100644
--- a/apps/blog/_posts/2015/12/year-in-review-2015.md
+++ b/apps/blog/_posts/2015/12/year-in-review-2015.md
@@ -3,9 +3,7 @@ title: Year In Review 2015
date: '2015-12-31'
author: Duyet
tags:
- - Review in year
- - Year In Review [2015]
- - year in review
+ - Year In Review
modified_time: '2016-01-11T01:59:09.345+07:00'
thumbnail: https://4.bp.blogspot.com/-fLXS7P-nN0U/VoVg5qgEvcI/AAAAAAAANpQ/y3PC7LaWdj4/s1600/2016-Season_trailerstill.gif
slug: /2015/12/year-in-review-2015.html
diff --git a/apps/blog/_posts/2016/01/javascript-thu-vien-vizualization.md b/apps/blog/_posts/2016/01/javascript-thu-vien-vizualization.md
index 171958e1..d94a959d 100644
--- a/apps/blog/_posts/2016/01/javascript-thu-vien-vizualization.md
+++ b/apps/blog/_posts/2016/01/javascript-thu-vien-vizualization.md
@@ -3,7 +3,7 @@ title: 'Javascript - Thư viện Vizualization '
date: '2016-01-03'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
modified_time: '2016-01-11T02:05:58.920+07:00'
thumbnail: https://2.bp.blogspot.com/-XxKj_UJfFVE/VokhkxfngXI/AAAAAAAANp0/2b5K02Ylz28/s1600/preview%2B%25281%2529.png
diff --git a/apps/blog/_posts/2016/01/nodejs-backend-development-bookmarks.md b/apps/blog/_posts/2016/01/nodejs-backend-development-bookmarks.md
index cba85641..d38710ad 100644
--- a/apps/blog/_posts/2016/01/nodejs-backend-development-bookmarks.md
+++ b/apps/blog/_posts/2016/01/nodejs-backend-development-bookmarks.md
@@ -3,7 +3,7 @@ title: Nodejs - Backend Development Bookmarks
date: '2016-01-03'
author: Duyet
tags:
- - Nodejs
+ - Node.js
modified_time: '2016-01-11T02:16:06.451+07:00'
slug: /2016/01/nodejs-backend-development-bookmarks.html
category: Web
diff --git a/apps/blog/_posts/2016/02/cai-dat-tensorflow-tren-docker.md b/apps/blog/_posts/2016/02/cai-dat-tensorflow-tren-docker.md
index 52bddb6e..d5335c36 100644
--- a/apps/blog/_posts/2016/02/cai-dat-tensorflow-tren-docker.md
+++ b/apps/blog/_posts/2016/02/cai-dat-tensorflow-tren-docker.md
@@ -6,7 +6,7 @@ tags:
- Tensorflow
- Docker
- Machine Learning
- - Howto
+ - Tutorial
modified_time: '2016-02-05T23:48:54.687+07:00'
thumbnail: https://2.bp.blogspot.com/-ALrzO2lz1Hk/VrTSHtGlC8I/AAAAAAAAPHE/ZFPNvhh_PPA/s1600/CYJ-8P4WkAQtAqp.png
slug: /2016/02/cai-dat-tensorflow-tren-docker.html
diff --git a/apps/blog/_posts/2016/02/copyjs-simple-copy-text-to-clipboard-in.md b/apps/blog/_posts/2016/02/copyjs-simple-copy-text-to-clipboard-in.md
index 825ea874..82608214 100644
--- a/apps/blog/_posts/2016/02/copyjs-simple-copy-text-to-clipboard-in.md
+++ b/apps/blog/_posts/2016/02/copyjs-simple-copy-text-to-clipboard-in.md
@@ -3,8 +3,7 @@ title: copy.js - simple copy text to clipboard in the browser
date: '2016-02-17'
author: Duyet
tags:
- - Nodejs
- - Bower
+ - Node.js
- NPM
- Javascript
modified_time: '2016-02-21T01:41:52.268+07:00'
diff --git a/apps/blog/_posts/2016/02/deep-learning-la-gi.md b/apps/blog/_posts/2016/02/deep-learning-la-gi.md
index 6d340663..fa40dbbd 100644
--- a/apps/blog/_posts/2016/02/deep-learning-la-gi.md
+++ b/apps/blog/_posts/2016/02/deep-learning-la-gi.md
@@ -3,10 +3,9 @@ title: Deep Learning là gì?
date: '2016-02-04'
author: Duyet
tags:
- - AI
- ML
- Deep Learning
- - Artificial Intelligence
+ - Artificial Intelligence (AI)
- Machine Learning
modified_time: '2016-03-26T21:57:57.625+07:00'
thumbnail: https://1.bp.blogspot.com/-jKehM_T47GI/VrMiraOWJiI/AAAAAAAAPFE/jpYwrmCFW6g/s1600/small_1420.png
diff --git a/apps/blog/_posts/2016/02/detect-robots-in-koa.md b/apps/blog/_posts/2016/02/detect-robots-in-koa.md
index 4b075b38..68220ef9 100644
--- a/apps/blog/_posts/2016/02/detect-robots-in-koa.md
+++ b/apps/blog/_posts/2016/02/detect-robots-in-koa.md
@@ -3,12 +3,8 @@ title: Detect robots in koa
date: '2016-02-21'
author: Duyet
tags:
- - Nodejs
- - koa
- - middleware
- - koajs
- - robot
- - Framework
+ - Node.js
+ - Javascript Framework
modified_time: '2016-05-06T19:17:49.348+07:00'
slug: /2016/02/detect-robots-in-koa.html
category: Javascript
diff --git a/apps/blog/_posts/2016/02/facebook-reactions.md b/apps/blog/_posts/2016/02/facebook-reactions.md
index 86f62e9e..b1e6cac6 100644
--- a/apps/blog/_posts/2016/02/facebook-reactions.md
+++ b/apps/blog/_posts/2016/02/facebook-reactions.md
@@ -3,9 +3,8 @@ title: Facebook reactions
date: '2016-02-27'
author: Duyet
tags:
- - Reactions
- Phân tích
- - facebook
+ - News
modified_time: '2016-05-02T19:42:01.860+07:00'
thumbnail: https://2.bp.blogspot.com/-BIxcI2n_erc/VtFJUKh2CbI/AAAAAAAAQbI/l49PMUxYiGE/s1600/reaction.gif
slug: /2016/02/facebook-reactions.html
diff --git a/apps/blog/_posts/2016/02/generator-function-javascript.md b/apps/blog/_posts/2016/02/generator-function-javascript.md
index ddbc5514..d2f788e5 100644
--- a/apps/blog/_posts/2016/02/generator-function-javascript.md
+++ b/apps/blog/_posts/2016/02/generator-function-javascript.md
@@ -3,7 +3,6 @@ title: function* và yield trong Javascript generator function
date: '2016-02-21'
author: Duyet
tags:
- - ECMAScript 2015
- ES6
- Javascript
modified_time: '2016-02-26T21:31:30.559+07:00'
diff --git a/apps/blog/_posts/2016/02/google-ra-mat-project-shield.md b/apps/blog/_posts/2016/02/google-ra-mat-project-shield.md
index 527a82da..a6c6fff0 100644
--- a/apps/blog/_posts/2016/02/google-ra-mat-project-shield.md
+++ b/apps/blog/_posts/2016/02/google-ra-mat-project-shield.md
@@ -4,8 +4,7 @@ date: '2016-02-27'
author: Duyet
tags:
- Google
- - Jigsaw
- - Product
+ - Security
modified_time: '2016-02-27T16:32:55.356+07:00'
thumbnail: https://4.bp.blogspot.com/-pKLY-EIwkLk/VtFsxbiTP2I/AAAAAAAAQbs/gt0QUH2BeB8/s1600/project-shield.png
slug: /2016/02/google-ra-mat-project-shield.html
diff --git a/apps/blog/_posts/2016/02/japanese-stopwords-package.md b/apps/blog/_posts/2016/02/japanese-stopwords-package.md
index 36df2558..16c98dc2 100644
--- a/apps/blog/_posts/2016/02/japanese-stopwords-package.md
+++ b/apps/blog/_posts/2016/02/japanese-stopwords-package.md
@@ -3,13 +3,11 @@ title: Japanese stopwords package for npm, bower and plaintext
date: '2016-02-27'
author: Duyet
tags:
- - Bower
- - NPM
- - Sentiment
- - Stopwords
+ - Sentiment Analysis
- Github
- Machine Learning
- NLP
+ - Side Project
modified_time: '2016-03-18T23:29:23.351+07:00'
thumbnail: https://4.bp.blogspot.com/-tKM0wg2Vmqc/VtFheibWiSI/AAAAAAAAQbc/KFhuP43v4lA/s1600/japanese-stopwords.png
slug: /2016/02/japanese-stopwords-package.html
diff --git a/apps/blog/_posts/2016/02/nginx-adding-cors.md b/apps/blog/_posts/2016/02/nginx-adding-cors.md
index da7d5f70..56e6c9e6 100644
--- a/apps/blog/_posts/2016/02/nginx-adding-cors.md
+++ b/apps/blog/_posts/2016/02/nginx-adding-cors.md
@@ -6,9 +6,6 @@ date: '2016-02-08'
author: Duyet
tags:
- Tutorial
- - Nginx
- - CORS
- - Howto
modified_time: '2018-09-10T17:26:06.992+07:00'
slug: /2016/02/nginx-adding-cors.html
category: Linux
diff --git a/apps/blog/_posts/2016/02/nodejs-ma-hoa-mat-khau.md b/apps/blog/_posts/2016/02/nodejs-ma-hoa-mat-khau.md
index e9afe574..160bf21a 100644
--- a/apps/blog/_posts/2016/02/nodejs-ma-hoa-mat-khau.md
+++ b/apps/blog/_posts/2016/02/nodejs-ma-hoa-mat-khau.md
@@ -3,7 +3,7 @@ title: Nodejs - Mã hóa mật khẩu
date: '2016-02-03'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Tutorial
modified_time: '2016-02-03T14:22:58.956+07:00'
thumbnail: https://4.bp.blogspot.com/-ye71o5GWvp0/VrGoa5MFAQI/AAAAAAAAPCg/EplwAJ4v5yk/s1600/password-protection-flat_1.png
diff --git a/apps/blog/_posts/2016/02/nodejs-oc-file-packagejson.md b/apps/blog/_posts/2016/02/nodejs-oc-file-packagejson.md
index 0801ce25..1677478e 100644
--- a/apps/blog/_posts/2016/02/nodejs-oc-file-packagejson.md
+++ b/apps/blog/_posts/2016/02/nodejs-oc-file-packagejson.md
@@ -3,7 +3,7 @@ title: Nodejs - đọc file package.json
date: '2016-02-03'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Tutorial
- Package.json
modified_time: '2016-02-03T17:15:07.500+07:00'
diff --git a/apps/blog/_posts/2016/02/sitemapduyetdevcom.md b/apps/blog/_posts/2016/02/sitemapduyetdevcom.md
index a4924a8c..7e1e3bc7 100644
--- a/apps/blog/_posts/2016/02/sitemapduyetdevcom.md
+++ b/apps/blog/_posts/2016/02/sitemapduyetdevcom.md
@@ -3,8 +3,7 @@ title: sitemap.duyetdev.com
date: '2016-02-03'
author: Duyet
tags:
- - release
- - sitemap
+ - Side Project
modified_time: '2016-02-03T12:32:16.312+07:00'
thumbnail: https://1.bp.blogspot.com/-KdfFcR3DrHY/VrGQVFi50tI/AAAAAAAAPCE/jlt9NUoQTxo/s1600/service-icon.png
slug: /2016/02/sitemapduyetdevcom.html
diff --git a/apps/blog/_posts/2016/02/tensorflow-huong-dan-cai-at-tren-ubuntu.md b/apps/blog/_posts/2016/02/tensorflow-huong-dan-cai-at-tren-ubuntu.md
index 653e7f1c..fd8b9f6d 100644
--- a/apps/blog/_posts/2016/02/tensorflow-huong-dan-cai-at-tren-ubuntu.md
+++ b/apps/blog/_posts/2016/02/tensorflow-huong-dan-cai-at-tren-ubuntu.md
@@ -3,11 +3,8 @@ title: Tensorflow - hướng dẫn cài đặt
date: '2016-02-05'
author: Duyet
tags:
- - Tensorflow
- Tutorial
- - Install
- Python
- - Google
- Machine Learning
modified_time: '2018-09-01T22:28:00.802+07:00'
thumbnail: https://3.bp.blogspot.com/-R2h5LWtXLa4/VrTTs4StSYI/AAAAAAAAPHQ/AewU2C9IqOo/s1600/logo-alt%25402x.png
diff --git a/apps/blog/_posts/2016/02/tu-ong-hoa-internet-voi-ifttt.md b/apps/blog/_posts/2016/02/tu-ong-hoa-internet-voi-ifttt.md
index c7c21f29..f75f98ee 100644
--- a/apps/blog/_posts/2016/02/tu-ong-hoa-internet-voi-ifttt.md
+++ b/apps/blog/_posts/2016/02/tu-ong-hoa-internet-voi-ifttt.md
@@ -3,8 +3,7 @@ title: Tự động hóa Internet với IFTTT
date: '2016-02-10'
author: Duyet
tags:
- - Auto
- - Service
+ - Tutorial
- IFTTT
modified_time: '2016-02-10T20:42:07.419+07:00'
thumbnail: https://3.bp.blogspot.com/-gqb8ute4HW0/Vrs3iy96glI/AAAAAAAAPZo/1wTJSjXqZyM/s1600/IFTTT.png
diff --git a/apps/blog/_posts/2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.md b/apps/blog/_posts/2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.md
index 5cccecd4..329d1319 100644
--- a/apps/blog/_posts/2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.md
+++ b/apps/blog/_posts/2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.md
@@ -3,13 +3,9 @@ title: 13.5TB - Yahoo ra mắt bộ Dataset cực lớn cho lĩnh vực máy h
date: '2016-02-09'
author: Duyet
tags:
- - Dataset
- - Labs
- - ML
- - Webscope
- - Yahoo
- Big Data
- Machine Learning
+ - NLP
modified_time: '2016-02-09T23:39:26.233+07:00'
thumbnail: https://3.bp.blogspot.com/-H7jTeKLalpM/VroS_GtuDxI/AAAAAAAAPYg/2ziVowvFxR0/s1600/Screenshot%2Bfrom%2B2016-02-09%2B23-23-25.png
slug: /2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.html
diff --git a/apps/blog/_posts/2016/03/asiacrypt-2016.md b/apps/blog/_posts/2016/03/asiacrypt-2016.md
index c9318607..e547bae1 100644
--- a/apps/blog/_posts/2016/03/asiacrypt-2016.md
+++ b/apps/blog/_posts/2016/03/asiacrypt-2016.md
@@ -4,11 +4,6 @@ date: '2016-03-18'
author: Duyet
tags:
- Security
- - Crypt
- - Research
- - Thông tin
- - An toàn thông tin
- - Nghiên cứu
modified_time: '2016-03-18T23:13:42.399+07:00'
slug: /2016/03/asiacrypt-2016.html
category: News
diff --git a/apps/blog/_posts/2016/03/calcjs-evaluate-expressions-for-math.md b/apps/blog/_posts/2016/03/calcjs-evaluate-expressions-for-math.md
index 28f1e644..83d9c712 100644
--- a/apps/blog/_posts/2016/03/calcjs-evaluate-expressions-for-math.md
+++ b/apps/blog/_posts/2016/03/calcjs-evaluate-expressions-for-math.md
@@ -3,11 +3,9 @@ title: calc.js - evaluate expressions for Math
date: '2016-03-27'
author: Duyet
tags:
- - Calculator
- - Nodejs
+ - Node.js
- NPM
- Javascript
- - math
modified_time: '2016-05-02T19:39:16.320+07:00'
thumbnail: https://1.bp.blogspot.com/-vmFjdMDVRok/Vvek0fYiwmI/AAAAAAAASas/iUUHSjQAWYUcWK6F5tx8qq3nfP_sVozOg/s1600/calc.png
slug: /2016/03/calcjs-evaluate-expressions-for-math.html
diff --git a/apps/blog/_posts/2016/03/ctb-locker-is-back-web-server-edition.md b/apps/blog/_posts/2016/03/ctb-locker-is-back-web-server-edition.md
index 0e786643..187960e3 100644
--- a/apps/blog/_posts/2016/03/ctb-locker-is-back-web-server-edition.md
+++ b/apps/blog/_posts/2016/03/ctb-locker-is-back-web-server-edition.md
@@ -4,8 +4,6 @@ date: '2016-03-02'
author: Duyet
tags:
- Security
- - Tor
- - CTB
- Ransomware
modified_time: '2016-05-02T19:41:20.131+07:00'
thumbnail: https://3.bp.blogspot.com/-OCj_qVWa3gQ/VtXfet69CWI/AAAAAAAAQiY/xhQ9CDVm7cg/s1600/ctb_locker_en_1.png
diff --git a/apps/blog/_posts/2016/03/giao-thuc-diffie-hellman.md b/apps/blog/_posts/2016/03/giao-thuc-diffie-hellman.md
index 2a54ecf8..385d28e0 100644
--- a/apps/blog/_posts/2016/03/giao-thuc-diffie-hellman.md
+++ b/apps/blog/_posts/2016/03/giao-thuc-diffie-hellman.md
@@ -3,10 +3,7 @@ title: Giao thức Diffie-Hellman (DH)
date: '2016-03-08'
author: Duyet
tags:
- - Diffie-Hellman
- Security
- - RSA
- - Phân tích
- Bảo mật
modified_time: '2016-03-08T20:22:36.152+07:00'
thumbnail: https://4.bp.blogspot.com/-POla3_QYnOA/Vt7RlL_z6hI/AAAAAAAAQtU/TGeI1cufIe0/s1600/anglerek_dh_02b.jpg
diff --git a/apps/blog/_posts/2016/03/how-one-developer-just-broke-the-internet.md b/apps/blog/_posts/2016/03/how-one-developer-just-broke-the-internet.md
index 993cb9bc..b7716cb6 100644
--- a/apps/blog/_posts/2016/03/how-one-developer-just-broke-the-internet.md
+++ b/apps/blog/_posts/2016/03/how-one-developer-just-broke-the-internet.md
@@ -5,11 +5,8 @@ title:
date: '2016-03-26'
author: Duyet
tags:
- - Nodejs
- - Bàn luận
- - NPM
- - Package
- - News
+ - Node.js
+ - Read
modified_time: '2016-05-02T19:39:38.146+07:00'
slug: /2016/03/how-one-developer-just-broke-the-internet.html
category: News
diff --git a/apps/blog/_posts/2016/03/neural-networks.md b/apps/blog/_posts/2016/03/neural-networks.md
index bb68f93a..abb0229d 100644
--- a/apps/blog/_posts/2016/03/neural-networks.md
+++ b/apps/blog/_posts/2016/03/neural-networks.md
@@ -3,10 +3,8 @@ title: Neural networks là gì?
date: '2016-03-26'
author: Duyet
tags:
- - AI
- - ML
- Deep Learning
- - Artificial Intelligence
+ - Artificial Intelligence (AI)
- Neural Networks
- Machine Learning
modified_time: '2016-05-02T19:39:30.826+07:00'
diff --git a/apps/blog/_posts/2016/03/postman.md b/apps/blog/_posts/2016/03/postman.md
index 5c40301d..fdd1b116 100644
--- a/apps/blog/_posts/2016/03/postman.md
+++ b/apps/blog/_posts/2016/03/postman.md
@@ -5,9 +5,7 @@ author: Duyet
tags:
- Tutorial
- Postman
- - Hướng dẫn
- - Debug
- - Testing
+ - Tools
modified_time: '2018-09-10T17:25:18.477+07:00'
thumbnail: https://2.bp.blogspot.com/-_IT8xVlbJVQ/VvQgO2RgTmI/AAAAAAAASS4/xik1F1ISkUYBey672mAIh7uK0o4vvEJoA/s1600/postman-logo%252Btext-320x132.png
slug: /2016/03/postman.html
diff --git a/apps/blog/_posts/2016/03/savetoco-nang-cap-chuc-nang-note.md b/apps/blog/_posts/2016/03/savetoco-nang-cap-chuc-nang-note.md
index bf0d2570..0635aca9 100644
--- a/apps/blog/_posts/2016/03/savetoco-nang-cap-chuc-nang-note.md
+++ b/apps/blog/_posts/2016/03/savetoco-nang-cap-chuc-nang-note.md
@@ -3,10 +3,7 @@ title: saveto.co nâng cấp chức năng note
date: '2016-03-24'
author: Duyet
tags:
- - ahihi.club
- - saveto.co
- - changelog
- - note
+ - Side Project
modified_time: '2016-03-25T00:03:10.156+07:00'
thumbnail: https://4.bp.blogspot.com/-IQqx5voNl_w/VvLTmSA8WLI/AAAAAAAASMk/gcSzeVC8jd8m8mZIn5ySX_ytb_F1YLSFA/s1600/screencapture-saveto-co-note-1458754419141.png
slug: /2016/03/savetoco-nang-cap-chuc-nang-note.html
diff --git a/apps/blog/_posts/2016/03/why-nodejs-javascript.md b/apps/blog/_posts/2016/03/why-nodejs-javascript.md
index 63674fd9..965d5e9b 100644
--- a/apps/blog/_posts/2016/03/why-nodejs-javascript.md
+++ b/apps/blog/_posts/2016/03/why-nodejs-javascript.md
@@ -3,10 +3,7 @@ title: Sao lại là Node.js/Javascript?
date: '2016-03-19'
author: Duyet
tags:
- - Blog
- - Nodejs
- - Stackoverflow
- - thống kê
+ - Node.js
- Javascript
modified_time: '2016-05-02T19:40:06.595+07:00'
thumbnail: https://1.bp.blogspot.com/-02uvvbRBDEE/Vu0-MapY7TI/AAAAAAAAR6o/TImmG942FQwE1RxaBpwQEt_n_6PC1G_ag/s1600/Screenshot%2Bfrom%2B2016-03-19%2B18-54-46.png
diff --git a/apps/blog/_posts/2016/04/awesome-functional-programming-in-javascript.md b/apps/blog/_posts/2016/04/awesome-functional-programming-in-javascript.md
index 5189ff5e..3e71b952 100644
--- a/apps/blog/_posts/2016/04/awesome-functional-programming-in-javascript.md
+++ b/apps/blog/_posts/2016/04/awesome-functional-programming-in-javascript.md
@@ -3,11 +3,8 @@ title: Awesome functional programming in JavaScript
date: '2016-04-18'
author: Duyet
tags:
- - awesome
- - awesomelist
- - Nodejs
+ - Node.js
- Javascript
- - Functional Programming
modified_time: '2016-05-02T19:36:58.924+07:00'
slug: /2016/04/awesome-functional-programming-in-javascript.html
category: Javascript
diff --git a/apps/blog/_posts/2016/04/deploy-production-nodejs-pm2-nginx.md b/apps/blog/_posts/2016/04/deploy-production-nodejs-pm2-nginx.md
index 2b80d26d..40d0ef13 100644
--- a/apps/blog/_posts/2016/04/deploy-production-nodejs-pm2-nginx.md
+++ b/apps/blog/_posts/2016/04/deploy-production-nodejs-pm2-nginx.md
@@ -3,11 +3,9 @@ title: Deploy production Node.js với PM2 và Nginx
date: '2016-04-10'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Tutorial
- - Deploy
- - Nginx
- - PM2
+ - Tools
modified_time: '2016-05-02T19:37:15.694+07:00'
thumbnail: https://3.bp.blogspot.com/-hgi6cDJuaP0/VxTAu2i1SII/AAAAAAAATkU/k_reis6UEhAElFCqjjolcrW6_j-bjZUfACK4B/s1600/logo_pm2.png
slug: /2016/04/deploy-production-nodejs-pm2-nginx.html
diff --git a/apps/blog/_posts/2016/04/es6.md b/apps/blog/_posts/2016/04/es6.md
index a3b5f5cd..76d6fdaa 100644
--- a/apps/blog/_posts/2016/04/es6.md
+++ b/apps/blog/_posts/2016/04/es6.md
@@ -3,8 +3,7 @@ title: ES6 có gì mới?
date: '2016-04-05'
author: Duyet
tags:
- - Nodejs
- - ECMAScript 2015
+ - Node.js
- ES6
- Javascript
modified_time: '2016-05-02T19:39:07.241+07:00'
diff --git a/apps/blog/_posts/2016/04/gioi-thieu-koajs.md b/apps/blog/_posts/2016/04/gioi-thieu-koajs.md
index 50014748..e4089f6f 100644
--- a/apps/blog/_posts/2016/04/gioi-thieu-koajs.md
+++ b/apps/blog/_posts/2016/04/gioi-thieu-koajs.md
@@ -3,10 +3,7 @@ title: Giới thiệu Koa.js
date: '2016-04-30'
author: Duyet
tags:
- - koa
- - koajs
- Node.js
- - Express.js
modified_time: '2017-08-06T11:41:14.315+07:00'
thumbnail: https://4.bp.blogspot.com/-sCicwYtVpcY/VyS-dwEy4YI/AAAAAAAAUBM/5Q1QZ6zVR5YcsV7lgN8MYWfkZvrz6AXtgCK4B/s1600/Screen-Shot-2014-04-11-at-7.49.09-AM.png
slug: /2016/04/gioi-thieu-koajs.html
diff --git a/apps/blog/_posts/2016/04/grunt-loi-enospc.md b/apps/blog/_posts/2016/04/grunt-loi-enospc.md
index 84a8ee49..33495fcd 100644
--- a/apps/blog/_posts/2016/04/grunt-loi-enospc.md
+++ b/apps/blog/_posts/2016/04/grunt-loi-enospc.md
@@ -3,10 +3,9 @@ title: Grunt - lỗi ENOSPC
date: '2016-04-08'
author: Duyet
tags:
- - Nodejs
- - Grunt
- - Grunt task
- - Fix
+ - Node.js
+ - Tutorial
+ - Javascript
modified_time: '2016-05-02T19:37:37.873+07:00'
slug: /2016/04/grunt-loi-enospc.html
category: News
diff --git a/apps/blog/_posts/2016/04/ra-mat-nodejs-v6.md b/apps/blog/_posts/2016/04/ra-mat-nodejs-v6.md
index 80916fcc..be2acb09 100644
--- a/apps/blog/_posts/2016/04/ra-mat-nodejs-v6.md
+++ b/apps/blog/_posts/2016/04/ra-mat-nodejs-v6.md
@@ -3,9 +3,8 @@ title: Ra mắt Node.js v6.0.0
date: '2016-04-27'
author: Duyet
tags:
- - Nodejs
- - release
- Node.js
+ - News
modified_time: '2016-05-02T19:36:00.033+07:00'
thumbnail: https://3.bp.blogspot.com/-_fNbLVO5xXM/VyDN2wT51fI/AAAAAAAAT7o/XeHb_vlbC4AM85F9_UpRHBJhOhT0a2wNwCK4B/s1600/Node-dot-js-796x398.jpg
slug: /2016/04/ra-mat-nodejs-v6.html
diff --git a/apps/blog/_posts/2016/04/tai-lieu-panama.md b/apps/blog/_posts/2016/04/tai-lieu-panama.md
index 27ffce9b..cd99117a 100644
--- a/apps/blog/_posts/2016/04/tai-lieu-panama.md
+++ b/apps/blog/_posts/2016/04/tai-lieu-panama.md
@@ -3,10 +3,7 @@ title: Tài liệu Panama
date: '2016-04-06'
author: Duyet
tags:
- - Panama Papers
- - Tài liệu Panama
- - chính trị
- - Rò rỉ
+ - Read
- Bảo mật
modified_time: '2016-04-06T21:57:42.995+07:00'
thumbnail: https://3.bp.blogspot.com/-6MKYjo1l_4w/VwQE-HzgxWI/AAAAAAAAS4Y/ms8tZUiYGnMbhKz2SDO3tqabO0iab6IGQ/s1600/firma_aufmacher_final.jpg
diff --git a/apps/blog/_posts/2016/04/update-savetoco-tim-kiem-va-gan-tag-link.md b/apps/blog/_posts/2016/04/update-savetoco-tim-kiem-va-gan-tag-link.md
index 0726abbc..9c996e38 100644
--- a/apps/blog/_posts/2016/04/update-savetoco-tim-kiem-va-gan-tag-link.md
+++ b/apps/blog/_posts/2016/04/update-savetoco-tim-kiem-va-gan-tag-link.md
@@ -3,12 +3,8 @@ title: 'Update saveto.co: tìm kiếm và gắn tag link'
date: '2016-04-02'
author: Duyet
tags:
- - ahihi.club
- - saveto.co
- - changelog
- - Update
- Javascript
- - Project
+ - Side Project
modified_time: '2016-05-02T19:39:04.343+07:00'
thumbnail: https://2.bp.blogspot.com/-gqLXpDKNOnk/Vv_o6EAoH0I/AAAAAAAASxY/C2y8cCEixf4y9WGaXLo9SFubx4zTqezLQ/s1600/Screenshot%2Bfrom%2B2016-04-02%2B22-39-31.png
slug: /2016/04/update-savetoco-tim-kiem-va-gan-tag-link.html
diff --git a/apps/blog/_posts/2016/05/cach-su-dung-destructuring-javascript-es6.md b/apps/blog/_posts/2016/05/cach-su-dung-destructuring-javascript-es6.md
index cb04f1ba..1afe60d7 100644
--- a/apps/blog/_posts/2016/05/cach-su-dung-destructuring-javascript-es6.md
+++ b/apps/blog/_posts/2016/05/cach-su-dung-destructuring-javascript-es6.md
@@ -3,10 +3,10 @@ title: Cách sử dụng Destructuring trong Javascript ES6
date: '2016-05-27'
author: Duyet
tags:
- - Nodejs
- - Destructuring
+ - Node.js
- ES6
- Javascript
+ - Tutorial
modified_time: '2016-05-27T13:11:33.464+07:00'
thumbnail: https://2.bp.blogspot.com/-6CbJccfAv4A/V0fdpvOadvI/AAAAAAAAWEM/Z7TwERT_aAgcV-HfBQZfq-yXOCOBqomtQCK4B/s1600/es6-destructuring.png
slug: /2016/05/cach-su-dung-destructuring-javascript-es6.html
diff --git a/apps/blog/_posts/2016/05/cach-truy-cap-website-khi-bi-chan.md b/apps/blog/_posts/2016/05/cach-truy-cap-website-khi-bi-chan.md
index e4e5183c..648376cd 100644
--- a/apps/blog/_posts/2016/05/cach-truy-cap-website-khi-bi-chan.md
+++ b/apps/blog/_posts/2016/05/cach-truy-cap-website-khi-bi-chan.md
@@ -5,7 +5,6 @@ author: Duyet
tags:
- Tutorial
- Security
- - VPN
modified_time: '2016-05-14T22:55:15.854+07:00'
thumbnail: https://2.bp.blogspot.com/-6rmyO9vVn_U/Vzc77dL_NAI/AAAAAAAAVD8/Wvsfgk_OvMUeC5hCRyDPoAe39khT159KQCK4B/s1600/zenmate-14-535x535.png
slug: /2016/05/cach-truy-cap-website-khi-bi-chan.html
diff --git a/apps/blog/_posts/2016/05/cai-dat-docker-tren-ubuntu.md b/apps/blog/_posts/2016/05/cai-dat-docker-tren-ubuntu.md
index 6c03bad0..3738dca0 100644
--- a/apps/blog/_posts/2016/05/cai-dat-docker-tren-ubuntu.md
+++ b/apps/blog/_posts/2016/05/cai-dat-docker-tren-ubuntu.md
@@ -4,7 +4,7 @@ date: '2016-05-01'
author: Duyet
tags:
- Docker
- - How-to
+ - Tutorial
modified_time: '2018-09-10T17:24:35.829+07:00'
thumbnail: https://2.bp.blogspot.com/-PixuaXfP3N8/VyYNLdQQKPI/AAAAAAAAUJE/jpqCnfOYVyYaMwWBl3V2whQlLdxzU70qQCK4B/s1600/docker-swarm-hero2.png
slug: /2016/05/cai-dat-docker-tren-ubuntu.html
diff --git a/apps/blog/_posts/2016/05/console-log.md b/apps/blog/_posts/2016/05/console-log.md
index a8ad4a03..8b242e68 100644
--- a/apps/blog/_posts/2016/05/console-log.md
+++ b/apps/blog/_posts/2016/05/console-log.md
@@ -4,10 +4,8 @@ date: '2016-05-16'
author: Duyet
tags:
- Chrome
- - console
- - console.log
- Javascript
- - Debug
+ - Tutorial
modified_time: '2016-05-16T20:57:35.599+07:00'
thumbnail: https://1.bp.blogspot.com/-2tFGxZVRXY8/VznC82-aNtI/AAAAAAAAVLg/nL2_UJPqxrAG5BSQVhCjR3f-OpM8tESyQCK4B/s1600/Screenshot%2Bfrom%2B2016-05-16%2B19-50-27.png
slug: /2016/05/console-log.html
diff --git a/apps/blog/_posts/2016/05/dockerizing-nodejs.md b/apps/blog/_posts/2016/05/dockerizing-nodejs.md
index 727628a3..3b39de0e 100644
--- a/apps/blog/_posts/2016/05/dockerizing-nodejs.md
+++ b/apps/blog/_posts/2016/05/dockerizing-nodejs.md
@@ -3,14 +3,10 @@ title: Đóng gói và triển khai ứng dụng Nodejs bằng Docker
date: '2016-05-01'
author: Duyet
tags:
- - ahihi.club
- - Docker image
- - Nodejs
+ - Node.js
- Docker
- - koa
- Dockerfile
- - saveto.co
- - Docker build
+ - Tutorial
modified_time: '2018-09-10T17:23:15.023+07:00'
thumbnail: https://1.bp.blogspot.com/-PdJFod9lQSU/VyYyDa_nEnI/AAAAAAAAUaE/CpGySWOh_TMGvZGjYqpcSHtTft7yi7tjwCK4B/s1600/1-_MtS4HqN2srTcrSyet61DQ.jpeg
slug: /2016/05/dockerizing-nodejs.html
diff --git a/apps/blog/_posts/2016/05/es6-ep-su-dung-tham-so-trong-function.md b/apps/blog/_posts/2016/05/es6-ep-su-dung-tham-so-trong-function.md
index 77cda47d..c4cfd5d9 100644
--- a/apps/blog/_posts/2016/05/es6-ep-su-dung-tham-so-trong-function.md
+++ b/apps/blog/_posts/2016/05/es6-ep-su-dung-tham-so-trong-function.md
@@ -6,7 +6,6 @@ tags:
- Tutorial
- ES6
- Javascript
- - Exploring ES6
modified_time: '2016-05-27T11:34:39.996+07:00'
slug: /2016/05/es6-ep-su-dung-tham-so-trong-function.html
category: Javascript
diff --git a/apps/blog/_posts/2016/05/javapolyjs-chay-java-tren-trinh-duyet.md b/apps/blog/_posts/2016/05/javapolyjs-chay-java-tren-trinh-duyet.md
index 3ae8758c..8a57dbe8 100644
--- a/apps/blog/_posts/2016/05/javapolyjs-chay-java-tren-trinh-duyet.md
+++ b/apps/blog/_posts/2016/05/javapolyjs-chay-java-tren-trinh-duyet.md
@@ -3,11 +3,9 @@ title: 'JavaPoly.js: chạy Java ngay trên trình duyệt Web'
date: '2016-05-21'
author: Duyet
tags:
- - Nodejs
- - Java
-
+ - Node.js
- Javascript
- - JavaPoly
+ - Javascript Framework
modified_time: '2017-08-06T11:41:14.356+07:00'
thumbnail: https://3.bp.blogspot.com/-0PVYXnZKPos/Vz9CsMIpfnI/AAAAAAAAVi0/MHADr9GRYt4DooMtDYj-DesgH9Ba3KcMACK4B/s1600/f1s7ah2zp9vghd2hth1a.jpg
slug: /2016/05/javapolyjs-chay-java-tren-trinh-duyet.html
diff --git a/apps/blog/_posts/2016/05/javascript-weekly-1.md b/apps/blog/_posts/2016/05/javascript-weekly-1.md
index d57fe13e..db6f91e3 100644
--- a/apps/blog/_posts/2016/05/javascript-weekly-1.md
+++ b/apps/blog/_posts/2016/05/javascript-weekly-1.md
@@ -3,9 +3,9 @@ title: ' JavaScript Weekly #1'
date: '2016-05-20'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
modified_time: '2016-05-20T22:11:49.259+07:00'
thumbnail: https://3.bp.blogspot.com/--MqDil9Xkos/Vz8jBgnbr-I/AAAAAAAAViI/2carPWBy2bEwuqHYyinS1nz0tWur3vHlgCK4B/s1600/clickable-markers.png
slug: /2016/05/javascript-weekly-1.html
diff --git a/apps/blog/_posts/2016/05/javascript-weekly-2.md b/apps/blog/_posts/2016/05/javascript-weekly-2.md
index 0e1b7945..45040998 100644
--- a/apps/blog/_posts/2016/05/javascript-weekly-2.md
+++ b/apps/blog/_posts/2016/05/javascript-weekly-2.md
@@ -3,9 +3,9 @@ title: 'JavaScript Weekly #2'
date: '2016-05-28'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
modified_time: '2016-05-28T13:47:48.428+07:00'
thumbnail: https://4.bp.blogspot.com/-K_vkG8qVJiA/V0k5ORhPhXI/AAAAAAAAWJQ/PR7wLT5sdfIGjSGb5SqJeFIevpWo2rbKwCK4B/s1600/javascript-weekly-2-duyetdev.png
slug: /2016/05/javascript-weekly-2.html
diff --git a/apps/blog/_posts/2016/05/reverse-shell-on-nodejs-application.md b/apps/blog/_posts/2016/05/reverse-shell-on-nodejs-application.md
index 3a59233c..0b022abb 100644
--- a/apps/blog/_posts/2016/05/reverse-shell-on-nodejs-application.md
+++ b/apps/blog/_posts/2016/05/reverse-shell-on-nodejs-application.md
@@ -3,11 +3,8 @@ title: Reverse shell on a Node.js application
date: '2016-05-30'
author: Duyet
tags:
- - Nodejs
- - Reverse shell
- - Security
- Node.js
- - vulnerable
+ - Security
modified_time: '2016-05-30T23:12:07.074+07:00'
slug: /2016/05/reverse-shell-on-nodejs-application.html
category: Javascript
diff --git a/apps/blog/_posts/2016/05/savetoco-ra-mat-til.md b/apps/blog/_posts/2016/05/savetoco-ra-mat-til.md
index 40f1e64c..409094e1 100644
--- a/apps/blog/_posts/2016/05/savetoco-ra-mat-til.md
+++ b/apps/blog/_posts/2016/05/savetoco-ra-mat-til.md
@@ -3,12 +3,8 @@ title: saveto.co ra mắt TIL
date: '2016-05-17'
author: Duyet
tags:
- - ahihi.club
- - saveto.co
- Today I learned
- - til
- - Project
- - Update
+ - Side Project
modified_time: '2016-05-17T14:34:52.999+07:00'
thumbnail: https://4.bp.blogspot.com/-agx83Kzlj74/VzrIvGe_JHI/AAAAAAAAVT8/5c8lpeSLa9IRif5NzOAnou0r3EiuOZb3wCK4B/s1600/saveto-til.png
slug: /2016/05/savetoco-ra-mat-til.html
diff --git a/apps/blog/_posts/2016/05/tien-si-la-gi.md b/apps/blog/_posts/2016/05/tien-si-la-gi.md
index 7eeb4630..abb1607a 100644
--- a/apps/blog/_posts/2016/05/tien-si-la-gi.md
+++ b/apps/blog/_posts/2016/05/tien-si-la-gi.md
@@ -3,10 +3,7 @@ title: Tiến sĩ là gì?
date: '2016-05-07'
author: Duyet
tags:
- - Ph.D
- - Tiến Sĩ
- - dịch
- - Translate
+ - Read
modified_time: '2016-05-07T22:26:22.707+07:00'
thumbnail: https://3.bp.blogspot.com/-TKCXYQEvxtA/Vy4HF6FLaJI/AAAAAAAAUsA/rjtdzqvzOCAfKVGQOpQdxxPhFJ_is5PGQCK4B/s1600/PhDKnowledge.001.jpg
slug: /2016/05/tien-si-la-gi.html
diff --git a/apps/blog/_posts/2016/05/webgazerjs-theo-doi-chuyen-dong-mat.md b/apps/blog/_posts/2016/05/webgazerjs-theo-doi-chuyen-dong-mat.md
index 4baeea79..c882ea87 100644
--- a/apps/blog/_posts/2016/05/webgazerjs-theo-doi-chuyen-dong-mat.md
+++ b/apps/blog/_posts/2016/05/webgazerjs-theo-doi-chuyen-dong-mat.md
@@ -5,7 +5,6 @@ author: Duyet
tags:
- Javascript
- Machine Learning
- - WebGazer.js
modified_time: '2017-08-06T11:41:14.293+07:00'
thumbnail: https://1.bp.blogspot.com/-U2FpDKE-uPY/V0qHwxldpOI/AAAAAAAAWK4/Qq3E3Z0I-M8Z8F_slgkZCDtvp5x67oGkQCK4B/s1600/Screenshot%2Bfrom%2B2016-05-29%2B13-09-23.png
slug: /2016/05/webgazerjs-theo-doi-chuyen-dong-mat.html
diff --git a/apps/blog/_posts/2016/05/why-docker.md b/apps/blog/_posts/2016/05/why-docker.md
index 22597ab2..8e70ff48 100644
--- a/apps/blog/_posts/2016/05/why-docker.md
+++ b/apps/blog/_posts/2016/05/why-docker.md
@@ -4,7 +4,6 @@ date: '2016-05-01'
author: Duyet
tags:
- Docker
- - Seminar
- Talk
modified_time: '2018-09-10T17:24:13.718+07:00'
thumbnail: https://4.bp.blogspot.com/-84F7ca4G75c/VyYPFOcKb4I/AAAAAAAAULU/J4g0-i0v5K4s1vK2432PQsnsZ1qFB8MKACLcB/s1600/Screenshot%2Bfrom%2B2016-05-01%2B21-13-19.png
diff --git a/apps/blog/_posts/2016/06/8-dieu-reactjs-beginner-nen-biet.md b/apps/blog/_posts/2016/06/8-dieu-reactjs-beginner-nen-biet.md
index 3b856311..16da82b8 100644
--- a/apps/blog/_posts/2016/06/8-dieu-reactjs-beginner-nen-biet.md
+++ b/apps/blog/_posts/2016/06/8-dieu-reactjs-beginner-nen-biet.md
@@ -3,14 +3,10 @@ title: 8 điều React.js beginner nên biết
date: '2016-06-25'
author: Duyet
tags:
- - Beginner
- - Redux
- - Redux Dev Tools
- NPM
- - ES6
- - Babel
- React
- - React Dev Tools
+ - Tools
+ - Web
modified_time: '2016-06-26T18:04:26.960+07:00'
thumbnail: https://1.bp.blogspot.com/-KtYQVNUSOhM/V25BbTCHiII/AAAAAAAAYQk/-9QPfR5wy5ImvMrLutGZEklZSuz-0IZkgCK4B/s1600/1-MG736zGtLMBbSkhwu4D3cA.png
slug: /2016/06/8-dieu-reactjs-beginner-nen-biet.html
diff --git a/apps/blog/_posts/2016/06/huong-dan-quan-tri-xenforo.md b/apps/blog/_posts/2016/06/huong-dan-quan-tri-xenforo.md
index 8db14c50..37464a20 100644
--- a/apps/blog/_posts/2016/06/huong-dan-quan-tri-xenforo.md
+++ b/apps/blog/_posts/2016/06/huong-dan-quan-tri-xenforo.md
@@ -3,9 +3,8 @@ title: Hướng dẫn quản trị Xenforo
date: '2016-06-05'
author: Duyet
tags:
- - Xenforo
- - Forum
- - PHP
+ - Tutorial
+ - PHP
modified_time: '2016-06-07T00:46:20.719+07:00'
thumbnail: https://1.bp.blogspot.com/-Fo89IbwIKK0/V1PIrjm861I/AAAAAAAAXIY/QjZwSJeJUMEFMOE8haRf7tNGdyjPBmqXQCLcB/s1600/Workspace%2B1_007.png
slug: /2016/06/huong-dan-quan-tri-xenforo.html
diff --git a/apps/blog/_posts/2016/06/javascript-weekly-3.md b/apps/blog/_posts/2016/06/javascript-weekly-3.md
index 1a989f37..8934d1d6 100644
--- a/apps/blog/_posts/2016/06/javascript-weekly-3.md
+++ b/apps/blog/_posts/2016/06/javascript-weekly-3.md
@@ -3,9 +3,9 @@ title: 'JavaScript Weekly #3'
date: '2016-06-04'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
modified_time: '2016-06-04T22:24:45.704+07:00'
thumbnail: https://1.bp.blogspot.com/-PHSe7TVV9MM/V1Lu7UJTYmI/AAAAAAAAW-c/HaPQ8TWBHZMD444B2XUS8TK1iVgLoiUmQCK4B/s1600/react-infinite-calendar-duyetdev.gif
slug: /2016/06/javascript-weekly-3.html
diff --git a/apps/blog/_posts/2016/06/javascript-weekly-4.md b/apps/blog/_posts/2016/06/javascript-weekly-4.md
index 518b6f32..06ddec11 100644
--- a/apps/blog/_posts/2016/06/javascript-weekly-4.md
+++ b/apps/blog/_posts/2016/06/javascript-weekly-4.md
@@ -3,9 +3,9 @@ title: 'Javascript Weekly #4'
date: '2016-06-11'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
modified_time: '2016-06-11T22:02:39.496+07:00'
thumbnail: https://4.bp.blogspot.com/-mQxRpFMY0UM/V1wn05hGx3I/AAAAAAAAXiA/PUSZrt0AUoMEyGQbfmEbmJlhnEmBIp-5gCK4B/s1600/js-4.png
slug: /2016/06/javascript-weekly-4.html
diff --git a/apps/blog/_posts/2016/06/javascript-weekly-5.md b/apps/blog/_posts/2016/06/javascript-weekly-5.md
index 0766b207..094fc871 100644
--- a/apps/blog/_posts/2016/06/javascript-weekly-5.md
+++ b/apps/blog/_posts/2016/06/javascript-weekly-5.md
@@ -3,9 +3,9 @@ title: 'Javascript Weekly #5'
date: '2016-06-18'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
- Node.js
modified_time: '2016-06-18T23:17:14.335+07:00'
thumbnail: https://1.bp.blogspot.com/-raHIBW9hoEw/V2VwikTHooI/AAAAAAAAX1A/by3IQqWb2BALMqlXky_DPutfvbe7kj28gCK4B/s1600/js5.png
diff --git a/apps/blog/_posts/2016/06/react-redux-chap-1.md b/apps/blog/_posts/2016/06/react-redux-chap-1.md
index 24e50c74..5aa70f70 100644
--- a/apps/blog/_posts/2016/06/react-redux-chap-1.md
+++ b/apps/blog/_posts/2016/06/react-redux-chap-1.md
@@ -3,11 +3,8 @@ title: 'React + Redux cơ bản - Phần 1: Component, JSX, Props & State'
date: '2016-06-23'
author: Duyet
tags:
- - Redux
- Tutorial
- - Babel
- React
- - Webpack
modified_time: '2016-07-07T21:19:47.188+07:00'
thumbnail: https://3.bp.blogspot.com/-BE6HQe1NzmM/V2rk2jjMk8I/AAAAAAAAYAs/7yUcpn2MzPIWPTxqZ6eZ3S84OHd5opEOwCK4B/s1600/React%2B1.0.png
slug: /2016/06/react-redux-chap-1.html
diff --git a/apps/blog/_posts/2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.md b/apps/blog/_posts/2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.md
index df714a2d..37827e4b 100644
--- a/apps/blog/_posts/2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.md
+++ b/apps/blog/_posts/2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.md
@@ -3,8 +3,7 @@ title: saveto.co cập nhật giao diện, trend, share và bình luận
date: '2016-06-30'
author: Duyet
tags:
- - saveto.co
- - Update
+ - Side Project
modified_time: '2016-06-30T23:39:31.427+07:00'
thumbnail: https://3.bp.blogspot.com/-m5O1aeEL_Uc/V3VJ-QDKyFI/AAAAAAAAYps/m4jpG6hycrUqacjFRntOCKsbiJK_AcZDQCLcB/s1600/saveto-update-1.png
slug: /2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.html
diff --git a/apps/blog/_posts/2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.md b/apps/blog/_posts/2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.md
index c3fa55d7..85a12dae 100644
--- a/apps/blog/_posts/2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.md
+++ b/apps/blog/_posts/2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.md
@@ -3,10 +3,7 @@ title: 'saveto.co cập nhật: tự động tag, hỗ trợ ảnh GIF '
date: '2016-06-12'
author: Duyet
tags:
- - ahihi.club
- - saveto.co
- - changelog
- - Update
+ - Side Project
modified_time: '2016-06-18T23:17:36.576+07:00'
slug: /2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.html
category: Project
diff --git a/apps/blog/_posts/2016/07/javascript-weekly-6.md b/apps/blog/_posts/2016/07/javascript-weekly-6.md
index ab1051ef..b7bd8cf4 100644
--- a/apps/blog/_posts/2016/07/javascript-weekly-6.md
+++ b/apps/blog/_posts/2016/07/javascript-weekly-6.md
@@ -3,9 +3,9 @@ title: 'Javascript Weekly #6'
date: '2016-07-01'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
- Node.js
modified_time: '2016-07-01T08:08:57.508+07:00'
thumbnail: https://2.bp.blogspot.com/-o4JfW1aayP8/V3Wu-4LLs4I/AAAAAAAAYrk/8qq-Dkaa0L0ZO-CNAZcGl1y3zgWUDNAVQCK4B/s1600/js-weekly-6.png
diff --git a/apps/blog/_posts/2016/07/javascript-weekly-7_22.md b/apps/blog/_posts/2016/07/javascript-weekly-7_22.md
index 31a2f13a..133321ca 100644
--- a/apps/blog/_posts/2016/07/javascript-weekly-7_22.md
+++ b/apps/blog/_posts/2016/07/javascript-weekly-7_22.md
@@ -3,10 +3,10 @@ title: 'Javascript Weekly #7'
date: '2016-07-22'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- ES6
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
- React
- Node.js
- Electron
diff --git a/apps/blog/_posts/2016/07/savetoco-cap-nhat-note-card.md b/apps/blog/_posts/2016/07/savetoco-cap-nhat-note-card.md
index 03d369d6..40932189 100644
--- a/apps/blog/_posts/2016/07/savetoco-cap-nhat-note-card.md
+++ b/apps/blog/_posts/2016/07/savetoco-cap-nhat-note-card.md
@@ -3,11 +3,7 @@ title: 'saveto.co cập nhật: Note Card'
date: '2016-07-12'
author: Duyet
tags:
- - ahihi.club
- - Saveto update
- - saveto
- - saveto.co
- - note card
+ - Side Project
modified_time: '2016-07-12T10:43:02.069+07:00'
thumbnail: https://1.bp.blogspot.com/-ygEOobbwRPI/V4RmaAY1KVI/AAAAAAAAZwc/ASHaVZwKe7s2e-zMRWgDjFRWzYAeADETACLcB/s1600/saveto-note-card.png
slug: /2016/07/savetoco-cap-nhat-note-card.html
diff --git a/apps/blog/_posts/2016/07/sublime-text-plugin-nodejs.md b/apps/blog/_posts/2016/07/sublime-text-plugin-nodejs.md
index ea0ba2f2..dbc10727 100644
--- a/apps/blog/_posts/2016/07/sublime-text-plugin-nodejs.md
+++ b/apps/blog/_posts/2016/07/sublime-text-plugin-nodejs.md
@@ -4,8 +4,7 @@ date: '2016-07-20'
author: Duyet
tags:
- Tutorial
- - sublime text
- - Javascript
+ - Javascript
- React
- Node.js
modified_time: '2016-07-20T11:16:14.977+07:00'
diff --git a/apps/blog/_posts/2016/07/vien-john-von-neumann.md b/apps/blog/_posts/2016/07/vien-john-von-neumann.md
index 706d809f..c63d5d6f 100644
--- a/apps/blog/_posts/2016/07/vien-john-von-neumann.md
+++ b/apps/blog/_posts/2016/07/vien-john-von-neumann.md
@@ -3,7 +3,7 @@ title: Viện John von Neumann
date: '2016-07-05'
author: Duyet
tags:
- - Notes
+ - Story
- JVN
modified_time: '2016-07-22T11:21:31.663+07:00'
thumbnail: https://4.bp.blogspot.com/-OH9toccRKt4/V3r1SFwz3HI/AAAAAAAAZIg/QtF0KDOP2505VLIu-AIxr_6MoojVQhqdgCK4B/s1600/IMG_20160702_091452_HDR%2B%25281%2529.jpg
diff --git a/apps/blog/_posts/2016/08/co-mot-bien-ong-tren-khong-gian-mang.md b/apps/blog/_posts/2016/08/co-mot-bien-ong-tren-khong-gian-mang.md
index e86af9a3..f1623bdc 100644
--- a/apps/blog/_posts/2016/08/co-mot-bien-ong-tren-khong-gian-mang.md
+++ b/apps/blog/_posts/2016/08/co-mot-bien-ong-tren-khong-gian-mang.md
@@ -3,12 +3,7 @@ title: Có một Biển Đông trên không gian mạng
date: '2016-08-01'
author: Duyet
tags:
- - BKAV
- Security
- - Vietnamairlines
- - Thái
- - VNA
- - Thảo luận
modified_time: '2016-08-01T10:02:22.152+07:00'
thumbnail: https://lh6.googleusercontent.com/l6tvfU-bi2HIa0edDNKcui8Qei6QjBgGxUrhYdHXe3_8m9gGbW0uFZzxRuXyh7DUIysdotaNGFeNY-6wf6jxsSRH-rtMb65uphWXAhT3QdKPEtBaJE3hkI5byXGPlZbPvSPYAUHW=s1600
slug: /2016/08/co-mot-bien-ong-tren-khong-gian-mang.html
diff --git a/apps/blog/_posts/2016/08/javascript-weekly-8.md b/apps/blog/_posts/2016/08/javascript-weekly-8.md
index 4d5b51cc..52d23f61 100644
--- a/apps/blog/_posts/2016/08/javascript-weekly-8.md
+++ b/apps/blog/_posts/2016/08/javascript-weekly-8.md
@@ -3,9 +3,9 @@ title: 'Javascript Weekly #8'
date: '2016-08-31'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
- React
- React Native
modified_time: '2016-08-31T13:45:22.392+07:00'
diff --git a/apps/blog/_posts/2016/08/parse-stack.md b/apps/blog/_posts/2016/08/parse-stack.md
index dd1ecc90..955d4a2f 100644
--- a/apps/blog/_posts/2016/08/parse-stack.md
+++ b/apps/blog/_posts/2016/08/parse-stack.md
@@ -3,7 +3,7 @@ title: 'Parse Stack'
date: '2016-08-18'
author: Duyet
tags:
- - Nodejs
+ - Node.js
modified_time: '2017-08-06T11:41:14.269+07:00'
thumbnail: https://4.bp.blogspot.com/-juqpy4uQn4M/V7VU_YXVo9I/AAAAAAAAbtU/39gqxQzjBFwFYm26fip_pKI35hPVTSrcACLcB/s1600/parse-stack-logo.png
slug: /2016/08/parse-stack.html
diff --git a/apps/blog/_posts/2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.md b/apps/blog/_posts/2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.md
index 1abd6d64..9151fb1a 100644
--- a/apps/blog/_posts/2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.md
+++ b/apps/blog/_posts/2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.md
@@ -3,14 +3,8 @@ title: Sự cố Vietcombank, một góc nhìn kỹ thuật
date: '2016-08-18'
author: Duyet
tags:
- - SmartOTP
- - OTP
- - Vietcombank
- - VnSecurity
- - Thaidn
- - Thai
+ - Security
- Bảo mật
- - VCB
modified_time: '2016-08-18T09:15:09.720+07:00'
thumbnail: https://3.bp.blogspot.com/-5A7qKw_phn8/V7UXD6zsqHI/AAAAAAAAbs8/tlfCE3ExbbE6bwK-8Np0qudqLAOjNDSKQCK4B/s1600/sitegiamao.png
slug: /2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.html
diff --git a/apps/blog/_posts/2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.md b/apps/blog/_posts/2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.md
index ba6eb35d..614e779d 100644
--- a/apps/blog/_posts/2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.md
+++ b/apps/blog/_posts/2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.md
@@ -3,9 +3,7 @@ title: Thuyết âm mưu về lý do con người thích mèo
date: '2016-08-27'
author: Duyet
tags:
- - Mèo
- - Trạm đọc
- - Read Station
+ - Read
modified_time: '2016-08-27T23:38:57.300+07:00'
thumbnail: https://1.bp.blogspot.com/-uuq0TQnZ-4I/V8G1A5D2rgI/AAAAAAAAcMA/WeDRiowNLUEqVeXoo04yZiSZXQEvACqfwCK4B/s1600/maxresdefault.jpg
slug: /2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.html
diff --git a/apps/blog/_posts/2016/09/autotrack-turns-10.md b/apps/blog/_posts/2016/09/autotrack-turns-10.md
index f5ebae13..e047ac0c 100644
--- a/apps/blog/_posts/2016/09/autotrack-turns-10.md
+++ b/apps/blog/_posts/2016/09/autotrack-turns-10.md
@@ -3,12 +3,8 @@ title: Autotrack turns 1.0
date: '2016-09-01'
author: Duyet
tags:
- - Track.js
- - Announment
-
- - Google Analytics
- - AutoTrack
- - Announce
+ - News
+ - Javascript
modified_time: '2017-08-06T11:41:14.281+07:00'
thumbnail: https://4.bp.blogspot.com/-iLc0CpE-jZs/V8ftpMNqYkI/AAAAAAAAcro/TjcwWkEVSLY4Bz6p0FE6wBwE28oN-91zQCK4B/s1600/autotrack.png
slug: /2016/09/autotrack-turns-10.html
diff --git a/apps/blog/_posts/2016/09/bao-mat-hai-lop.md b/apps/blog/_posts/2016/09/bao-mat-hai-lop.md
index 199ee018..7722ffe8 100644
--- a/apps/blog/_posts/2016/09/bao-mat-hai-lop.md
+++ b/apps/blog/_posts/2016/09/bao-mat-hai-lop.md
@@ -4,10 +4,7 @@ date: '2016-09-01'
author: Duyet
tags:
- Security
- - Xác minh 2 lớp
- - Bảo mật 2 lớp
- - Bảo mật
- - Thủ thuật
+ - Tutorial
modified_time: '2016-09-01T12:36:14.646+07:00'
thumbnail: https://3.bp.blogspot.com/-U90ziEzboCk/V8e8QNYdT_I/AAAAAAAAcq4/2utzWI8wLTsV5OLn9I2Hwevtb0FdbvwFgCK4B/s1600/FIDO-Yubico-YubiKeys-GfW-blog-845x321.png
slug: /2016/09/bao-mat-hai-lop.html
diff --git a/apps/blog/_posts/2016/09/chay-apache-spark-voi-jupyter-notebook.md b/apps/blog/_posts/2016/09/chay-apache-spark-voi-jupyter-notebook.md
index bdfc1dfb..e868ca82 100644
--- a/apps/blog/_posts/2016/09/chay-apache-spark-voi-jupyter-notebook.md
+++ b/apps/blog/_posts/2016/09/chay-apache-spark-voi-jupyter-notebook.md
@@ -4,13 +4,8 @@ date: '2016-09-20'
author: Duyet
tags:
- Data Engineering
- - Jupyter
- Apache Spark
- - IPython
- Python
- - Javascript
- - PySpark
- - Spark
- Machine Learning
modified_time: '2018-09-10T17:20:37.518+07:00'
thumbnail: https://1.bp.blogspot.com/-IbzOyRw7mkM/V-Dm-cyXE9I/AAAAAAAAd-I/nGA92fFap4MM4uqKErB7g2H-t6T7CD1RQCLcB/s1600/Selection_006.png
diff --git a/apps/blog/_posts/2016/09/pyspark-thieu-thu-vien-python-tren-worker.md b/apps/blog/_posts/2016/09/pyspark-thieu-thu-vien-python-tren-worker.md
index 3e47f99f..9b33d615 100644
--- a/apps/blog/_posts/2016/09/pyspark-thieu-thu-vien-python-tren-worker.md
+++ b/apps/blog/_posts/2016/09/pyspark-thieu-thu-vien-python-tren-worker.md
@@ -6,12 +6,9 @@ tags:
- Data Engineering
- Apache Spark
- Python
- - Javascript
- - Spark
+ - Apache Spark
- Javascript
- - note
- Big Data
- - Thủ thuật
modified_time: '2018-09-01T22:32:19.537+07:00'
slug: /2016/09/pyspark-thieu-thu-vien-python-tren-worker.html
category: Data
diff --git a/apps/blog/_posts/2016/09/spark-convert-text-csv-to-parquet.md b/apps/blog/_posts/2016/09/spark-convert-text-csv-to-parquet.md
index 6c958811..3151c31a 100644
--- a/apps/blog/_posts/2016/09/spark-convert-text-csv-to-parquet.md
+++ b/apps/blog/_posts/2016/09/spark-convert-text-csv-to-parquet.md
@@ -6,11 +6,7 @@ tags:
- Data Engineering
- Apache Spark
- Python
- - Javascript
- - BigData
- Big Data
- - Apache Parquet
- - Spark SQL
modified_time: '2018-09-01T22:32:18.872+07:00'
thumbnail: https://2.bp.blogspot.com/-e_wBjtB6Fl0/V-ID3ys6F9I/AAAAAAAAd_k/jRxF8H344KM_ywgsxVfQAPy3GDXAd1_fQCK4B/s1600/parquet-logo.png
slug: /2016/09/spark-convert-text-csv-to-parquet.html
diff --git a/apps/blog/_posts/2016/09/toi-uu-hoa-javascript-voi-google-closure.md b/apps/blog/_posts/2016/09/toi-uu-hoa-javascript-voi-google-closure.md
index fe3052e6..135afcfb 100644
--- a/apps/blog/_posts/2016/09/toi-uu-hoa-javascript-voi-google-closure.md
+++ b/apps/blog/_posts/2016/09/toi-uu-hoa-javascript-voi-google-closure.md
@@ -5,11 +5,7 @@ author: Duyet
tags:
- Optimize
- Javascript
- - Gulp
- Node.js
- - Google Closure
- - Tối ưu
- - Webpack
modified_time: '2016-09-14T11:46:14.393+07:00'
thumbnail: https://2.bp.blogspot.com/-XJmHynlIbNA/V9jI1Lbj5hI/AAAAAAAAduA/igD5n31EEUcfvwq_Y06IX2cPgsuoEKxZQCK4B/s1600/image00.png
slug: /2016/09/toi-uu-hoa-javascript-voi-google-closure.html
diff --git a/apps/blog/_posts/2016/10/devstack-maruno-magnum.md b/apps/blog/_posts/2016/10/devstack-maruno-magnum.md
index 6049a7b4..afb67d83 100644
--- a/apps/blog/_posts/2016/10/devstack-maruno-magnum.md
+++ b/apps/blog/_posts/2016/10/devstack-maruno-magnum.md
@@ -5,12 +5,7 @@ author: Duyet
tags:
- Docker
- Python
- - Javascript
- - Magnum
- Openstack
- - DevStack
- - Maruno
- - Horizon
modified_time: '2018-09-01T22:32:19.992+07:00'
thumbnail: https://2.bp.blogspot.com/-8mDGZPymnKU/WBSIXCWaybI/AAAAAAAAfaM/pIubRdw6SrkJLB4Sm8oLQJ1D7quLU8rxwCEw/s1600/Screenshot%2Bfrom%2B2016-10-29%2B18-28-55.png
slug: /2016/10/devstack-maruno-magnum.html
diff --git a/apps/blog/_posts/2016/10/try-ubuntu-on-web.md b/apps/blog/_posts/2016/10/try-ubuntu-on-web.md
index 46801dac..f64e7877 100644
--- a/apps/blog/_posts/2016/10/try-ubuntu-on-web.md
+++ b/apps/blog/_posts/2016/10/try-ubuntu-on-web.md
@@ -7,7 +7,6 @@ tags:
- Ubuntu
- Website
- Web
- - Opensource
modified_time: '2016-10-09T00:55:36.863+07:00'
thumbnail: https://2.bp.blogspot.com/-N0_V8u-o7Ls/V_kxVyBj8hI/AAAAAAAAe04/A7CAQaAIsiUtb8i1MueiOjg4EVgvrsN9gCLcB/s1600/Screenshot%2Bfrom%2B2016-10-09%2B00-46-15.png
slug: /2016/10/try-ubuntu-on-web.html
diff --git a/apps/blog/_posts/2016/10/yarn.md b/apps/blog/_posts/2016/10/yarn.md
index 464389d2..47bde389 100644
--- a/apps/blog/_posts/2016/10/yarn.md
+++ b/apps/blog/_posts/2016/10/yarn.md
@@ -3,12 +3,9 @@ title: 'Yarn: A new package manager for JavaScript'
date: '2016-10-13'
author: Duyet
tags:
- - Yarn
- NPM
-
- Javascript
- Node.js
- - facebook
modified_time: '2017-08-06T11:41:14.334+07:00'
thumbnail: https://3.bp.blogspot.com/-ezPc9fi877Y/V_-5qaMEI4I/AAAAAAAAe6Y/qtoRjeGc45IgqUG93Ap-GRSyyf-hO7kkACK4B/s1600/Yarn-796x398.jpg
slug: /2016/10/yarn.html
diff --git a/apps/blog/_posts/2016/11/r-tren-jupiter-notebook-ubuntu-1404.md b/apps/blog/_posts/2016/11/r-tren-jupiter-notebook-ubuntu-1404.md
index d1cfd1bd..f5d56980 100644
--- a/apps/blog/_posts/2016/11/r-tren-jupiter-notebook-ubuntu-1404.md
+++ b/apps/blog/_posts/2016/11/r-tren-jupiter-notebook-ubuntu-1404.md
@@ -4,14 +4,8 @@ date: '2016-11-22'
author: Duyet
tags:
- Data Engineering
- - Jupyter
- - Data
- - Notebook
- - Pip
- Python
- Data Science
- - Jupyter Notebook
- - R
modified_time: '2016-11-22T23:53:50.793+07:00'
thumbnail: https://4.bp.blogspot.com/-aQIMnwL9Gxc/WDR00IF9dqI/AAAAAAAAf9w/ZvplzJNUtI8vjWh2nF8_kVJZoYF3fHF9QCLcB/s1600/Screenshot%2Bfrom%2B2016-11-22%2B23-39-25.png
slug: /2016/11/r-tren-jupiter-notebook-ubuntu-1404.html
diff --git a/apps/blog/_posts/2016/12/javascript-weekly-10.md b/apps/blog/_posts/2016/12/javascript-weekly-10.md
index 728f51d1..0088bae7 100644
--- a/apps/blog/_posts/2016/12/javascript-weekly-10.md
+++ b/apps/blog/_posts/2016/12/javascript-weekly-10.md
@@ -3,11 +3,7 @@ title: 'Javascript Weekly #10'
date: '2016-12-17'
author: Duyet
tags:
- - Javascript-Weekly-10
- - Hyper
- - Vue
- - Javascript-Weekly
- - Angular
+ - Javascript Weekly
- React
- Node.js
modified_time: '2016-12-17T08:23:58.772+07:00'
diff --git a/apps/blog/_posts/2016/12/javascript-weekly-9.md b/apps/blog/_posts/2016/12/javascript-weekly-9.md
index 6fd31575..29634f17 100644
--- a/apps/blog/_posts/2016/12/javascript-weekly-9.md
+++ b/apps/blog/_posts/2016/12/javascript-weekly-9.md
@@ -3,13 +3,10 @@ title: 'Javascript Weekly #9'
date: '2016-12-10'
author: Duyet
tags:
- - ES6
- - Javascript-Weekly-9
- Javascript
- - Javascript-Weekly
+ - Javascript Weekly
- React
- Node.js
- - ES5
modified_time: '2016-12-10T10:09:19.995+07:00'
thumbnail: https://2.bp.blogspot.com/-3n1yGifwJdY/WEtxXVdp38I/AAAAAAAAgt4/ijum1QPHo6ENxNmPawMuGeKyxKfw2tfEACLcB/s1600/Screenshot%2Bfrom%2B2016-12-10%2B10-06-59.png
slug: /2016/12/javascript-weekly-9.html
@@ -19,31 +16,27 @@ description:
Javascript Weekly #9: Date-DNS, chi tiết về các bản cập nhật mới của V8, React và Angular.
-[![](https://2.bp.blogspot.com/-3n1yGifwJdY/WEtxXVdp38I/AAAAAAAAgt4/ijum1QPHo6ENxNmPawMuGeKyxKfw2tfEACLcB/s1600/Screenshot%2Bfrom%2B2016-12-10%2B10-06-59.png)](https://blog.duyet.net/2016/12/javascript-weekly-9.html)
+![](https://2.bp.blogspot.com/-3n1yGifwJdY/WEtxXVdp38I/AAAAAAAAgt4/ijum1QPHo6ENxNmPawMuGeKyxKfw2tfEACLcB/s1600/Screenshot%2Bfrom%2B2016-12-10%2B10-06-59.png)
## [date-fns: A Modern JavaScript Date Utility Library](https://date-fns.org/)
-[![](https://3.bp.blogspot.com/-yLDLAdbx6Og/WEtt2bAUIoI/AAAAAAAAgtY/GX4RTsrbst4kkRpLzvt2b69VfZxF1ODRwCK4B/s320/14921202.png)](https://3.bp.blogspot.com/-yLDLAdbx6Og/WEtt2bAUIoI/AAAAAAAAgtY/GX4RTsrbst4kkRpLzvt2b69VfZxF1ODRwCK4B/s1600/14921202.png)
+![](https://3.bp.blogspot.com/-yLDLAdbx6Og/WEtt2bAUIoI/AAAAAAAAgtY/GX4RTsrbst4kkRpLzvt2b69VfZxF1ODRwCK4B/s320/14921202.png)
date-fns là thư viện cực kỳ mạnh xử lý datetime trong JS. Được ví như "lodash for dates", thư viện này có hơn 140 hàm khác nhau để tương tác và xử lý thời gian cực mạnh (như e.g. distanceinWords, addDays, isSameWeek, differenceInHours, ...)
LESHA KOSS ET AL.
-[
-](http://v8project.blogspot.com/2016/12/v8-release-56.html?utm_source=duyetdev.com&utm_medium=blog)
## [What's New in V8 5.6, Now in Beta](http://v8project.blogspot.com/2016/12/v8-release-56.html?utm_source=duyetdev.com&utm_medium=blog)
-[![](https://2.bp.blogspot.com/-GElONXnUgms/WEtun8WBVmI/AAAAAAAAgtg/bS6X0vONX5YXcwyHWPtsjA3dvF3Lhi1kQCK4B/s640/EScomparison.png)](https://2.bp.blogspot.com/-GElONXnUgms/WEtun8WBVmI/AAAAAAAAgtg/bS6X0vONX5YXcwyHWPtsjA3dvF3Lhi1kQCK4B/s1600/EScomparison.png)
+![](https://2.bp.blogspot.com/-GElONXnUgms/WEtun8WBVmI/AAAAAAAAgtg/bS6X0vONX5YXcwyHWPtsjA3dvF3Lhi1kQCK4B/s640/EScomparison.png)
V8 5.6 được release chính thức trong bản Chrome 56 vài tuần trước. Phiên bản mới này có nhiều tối ưu về pipeline và promises key, cải tiến nhiều về hiệu năng và bộ nhớ. Nâng cấp lần này giúp ES6/ES2015 ngày càng ổn định và mạnh mẽ hơn.
MICHAEL HABLICH
## [Những điều cần biết về Angular 1.6](https://toddmotto.com/angular-1-6-is-here?utm_source=duyetdev.com&utm_medium=blog)
-[![](https://2.bp.blogspot.com/-Xt-Zia27krk/WEtvVmF64vI/AAAAAAAAgts/r3R03jiGkkIljpYA8h3hmZPk6h18jy2mgCK4B/s1600/courses-logo.png)](https://2.bp.blogspot.com/-Xt-Zia27krk/WEtvVmF64vI/AAAAAAAAgts/r3R03jiGkkIljpYA8h3hmZPk6h18jy2mgCK4B/s1600/courses-logo.png)
+![](https://2.bp.blogspot.com/-Xt-Zia27krk/WEtvVmF64vI/AAAAAAAAgts/r3R03jiGkkIljpYA8h3hmZPk6h18jy2mgCK4B/s1600/courses-logo.png)
Angular 1.6 mới ra mắt kèm theo nhiều cải tiến mới. Để tận dụng tối đa khả năng của Angular 1.6 bạn nên đọc bài viết sau.
-[
-](http://www.reactnativeexpress.com/?utm_source=duyetdev.com&utm_medium=blog)
## [React Native Express: Learn React Native in the Browser](http://www.reactnativeexpress.com/?utm_source=duyetdev.com&utm_medium=blog)
diff --git a/apps/blog/_posts/2016/12/the-evolution-of-software-engineer.md b/apps/blog/_posts/2016/12/the-evolution-of-software-engineer.md
index 6fde9e26..e47173eb 100644
--- a/apps/blog/_posts/2016/12/the-evolution-of-software-engineer.md
+++ b/apps/blog/_posts/2016/12/the-evolution-of-software-engineer.md
@@ -3,9 +3,8 @@ title: The Evolution of a Software Engineer
date: '2016-12-17'
author: Duyet
tags:
- - Medium
- - Picture
- - Software Engineer
+ - News
+ - Software Engineering
modified_time: '2016-12-17T07:59:30.786+07:00'
thumbnail: https://4.bp.blogspot.com/-2MfgUIO43hc/WFSMKIQtYMI/AAAAAAAAhE0/SJv2XYviX58TNQAPNHci7hWE-btfAsrgACK4B/s1600/0-oZ9ehgrpvTVc6e32.png
slug: /2016/12/the-evolution-of-software-engineer.html
diff --git a/apps/blog/_posts/2016/12/vntokenizer-tren-pyspark.md b/apps/blog/_posts/2016/12/vntokenizer-tren-pyspark.md
index 8682a900..c65d8a9c 100644
--- a/apps/blog/_posts/2016/12/vntokenizer-tren-pyspark.md
+++ b/apps/blog/_posts/2016/12/vntokenizer-tren-pyspark.md
@@ -5,10 +5,7 @@ author: Duyet
tags:
- Data Engineering
- Python
- - Javascript
- - PySpark
- - Spark
- - vnTokenizer
+ - Apache Spark
- NLP
- Machine Learning
modified_time: '2018-09-10T17:20:37.029+07:00'
diff --git a/apps/blog/_posts/2017/01/botpress-p2.md b/apps/blog/_posts/2017/01/botpress-p2.md
index 747d2e76..01699837 100644
--- a/apps/blog/_posts/2017/01/botpress-p2.md
+++ b/apps/blog/_posts/2017/01/botpress-p2.md
@@ -3,7 +3,7 @@ title: 'Chatbot với Botpress - Phần 2: Coding'
date: '2017-01-24'
author: Duyet
tags:
- - Chatbot
+ - Javascript Framework
- Javascript
- Node.js
modified_time: '2018-09-10T17:24:58.329+07:00'
diff --git a/apps/blog/_posts/2017/01/botpress.md b/apps/blog/_posts/2017/01/botpress.md
index 68d96ff1..aa3b19c1 100644
--- a/apps/blog/_posts/2017/01/botpress.md
+++ b/apps/blog/_posts/2017/01/botpress.md
@@ -3,11 +3,9 @@ title: 'Chatbot với Botpress - Phần 1: Init Chatbot'
date: '2017-01-24'
author: Duyet
tags:
- - Nodejs
- - Botpress
- - Chatbot
- Node.js
- - Bot
+ - Javascript Framework
+ - Chatbot
modified_time: '2017-02-03T10:29:53.696+07:00'
thumbnail: https://1.bp.blogspot.com/-E3jFFQUIYCs/WIYM0StyBTI/AAAAAAAAihE/voCjyxjUDMcfR7dIoMfX7bdbLnaoaOASQCLcB/s1600/Screenshot%2Bfrom%2B2017-01-23%2B21-01-28.png
slug: /2017/01/botpress.html
diff --git a/apps/blog/_posts/2017/01/rancher.md b/apps/blog/_posts/2017/01/rancher.md
index 27de359a..02c323ae 100644
--- a/apps/blog/_posts/2017/01/rancher.md
+++ b/apps/blog/_posts/2017/01/rancher.md
@@ -5,10 +5,7 @@ author: Duyet
tags:
- Data Engineering
- Docker
- - Rancher
- - Container
- - Swarm
- - Kubernete
+ - Kubernetes
modified_time: '2018-07-20T10:14:07.356+07:00'
thumbnail: https://3.bp.blogspot.com/-QUh_PaavDSA/WIWWTCtiTXI/AAAAAAAAies/LvVHTtMjnAglcdCB8uZfGsgJVfz7dirXQCLcB/s1600/ezgif.com-optimize.gif
slug: /2017/01/rancher.html
diff --git a/apps/blog/_posts/2017/01/shell-thao-tac-voi-tep-va-thu-muc.md b/apps/blog/_posts/2017/01/shell-thao-tac-voi-tep-va-thu-muc.md
index d6c6c4b8..19f8e068 100644
--- a/apps/blog/_posts/2017/01/shell-thao-tac-voi-tep-va-thu-muc.md
+++ b/apps/blog/_posts/2017/01/shell-thao-tac-voi-tep-va-thu-muc.md
@@ -4,9 +4,8 @@ date: '2017-01-23'
author: Duyet
tags:
- Linux
- - Shell bash
+ - Tutorial
- Ubuntu
- - CMD
modified_time: '2017-01-23T11:38:35.234+07:00'
thumbnail: https://1.bp.blogspot.com/-LFMgOUBzTRc/WIWIaGmpQzI/AAAAAAAAieU/kvAZPXb218k53BpTdGwnVJQbL4KyhjtRgCLcB/s1600/Screenshot%2Bfrom%2B2017-01-23%2B11-36-34.png
slug: /2017/01/shell-thao-tac-voi-tep-va-thu-muc.html
diff --git a/apps/blog/_posts/2017/01/teleconsole.md b/apps/blog/_posts/2017/01/teleconsole.md
index 02269f89..72cfaee8 100644
--- a/apps/blog/_posts/2017/01/teleconsole.md
+++ b/apps/blog/_posts/2017/01/teleconsole.md
@@ -3,8 +3,7 @@ title: 'Teleconsole - Chia sẻ remote console '
date: '2017-01-26'
author: Duyet
tags:
- - Share Terminal
- - Teleconsole
+ - Tools
modified_time: '2017-01-26T09:53:34.037+07:00'
thumbnail: https://4.bp.blogspot.com/-SyehZxOfseM/WIlfpz8ZHGI/AAAAAAAAioQ/RZdJWwM9zwQttiAcu1ECPU4pk-hNVrFlACK4B/s1600/full-screen-teleconsole.gif
slug: /2017/01/teleconsole.html
diff --git a/apps/blog/_posts/2017/01/writefull.md b/apps/blog/_posts/2017/01/writefull.md
index f038f083..3195db67 100644
--- a/apps/blog/_posts/2017/01/writefull.md
+++ b/apps/blog/_posts/2017/01/writefull.md
@@ -5,7 +5,6 @@ author: Duyet
tags:
- Chrome
- Chrome Extension
- - Writefull
modified_time: '2017-01-23T20:21:19.616+07:00'
thumbnail: https://1.bp.blogspot.com/-NpSIkbQHR-I/WITO8_hyp9I/AAAAAAAAidY/HYD5rOjVQo4q55AWb297izVxxl4eBnywQCLcB/s1600/80e9cd2e-f410-4f9c-bd12-8c40e9079b56.png
slug: /2017/01/writefull.html
diff --git a/apps/blog/_posts/2017/02/learning-r-cheatsheet.md b/apps/blog/_posts/2017/02/learning-r-cheatsheet.md
index 6886e56d..199076ed 100644
--- a/apps/blog/_posts/2017/02/learning-r-cheatsheet.md
+++ b/apps/blog/_posts/2017/02/learning-r-cheatsheet.md
@@ -4,10 +4,7 @@ date: '2017-02-05'
author: Duyet
tags:
- Data Engineering
- - Learning R
- - Learning
- - cheatsheet
- - R
+ - Cheatsheet
modified_time: '2018-07-20T10:14:05.965+07:00'
slug: /2017/02/learning-r-cheatsheet.html
category: Machine Learning
diff --git a/apps/blog/_posts/2017/03/notibarjs.md b/apps/blog/_posts/2017/03/notibarjs.md
index 6de48c20..946c5c21 100644
--- a/apps/blog/_posts/2017/03/notibarjs.md
+++ b/apps/blog/_posts/2017/03/notibarjs.md
@@ -3,11 +3,8 @@ title: Notibar.js
date: '2017-03-04'
author: Duyet
tags:
- - notibar.js
- - plugin
-
- Javascript
- - project
+ - Side Project
modified_time: '2018-09-10T17:22:11.270+07:00'
thumbnail: https://2.bp.blogspot.com/-aWA0Q8jTEM8/WLpunYKc57I/AAAAAAAAjz8/AoGD9qpGYaE1OHeqi5QrBJcgm0HCJgnOACLcB/s1600/Screenshot%2Bfrom%2B2017-03-04%2B14-35-54.png
slug: /2017/03/notibarjs.html
diff --git a/apps/blog/_posts/2017/03/python-churn-prediction-with-graphlab.md b/apps/blog/_posts/2017/03/python-churn-prediction-with-graphlab.md
index 5584bea0..f3f54137 100644
--- a/apps/blog/_posts/2017/03/python-churn-prediction-with-graphlab.md
+++ b/apps/blog/_posts/2017/03/python-churn-prediction-with-graphlab.md
@@ -4,8 +4,6 @@ date: '2017-03-18'
author: Duyet
tags:
- Python
- - Javascript
- - Churn
- Data Science
- Machine Learning
modified_time: '2018-09-01T22:32:19.839+07:00'
diff --git a/apps/blog/_posts/2017/04/explain-shell-explainshellcom.md b/apps/blog/_posts/2017/04/explain-shell-explainshellcom.md
index 742b94d6..37b3b205 100644
--- a/apps/blog/_posts/2017/04/explain-shell-explainshellcom.md
+++ b/apps/blog/_posts/2017/04/explain-shell-explainshellcom.md
@@ -4,10 +4,7 @@ date: '2017-04-27'
author: Duyet
tags:
- Linux
- - Shell
- - Share
- Ubuntu
- - Terminal
modified_time: '2017-04-27T00:19:09.474+07:00'
thumbnail: https://2.bp.blogspot.com/-Mic3S70QXaI/WQDWNCRvzeI/AAAAAAAAkzk/W93LTPJqpNAI_ytExK8g_xuZiTOxMU-HACLcB/s1600/Screenshot%2Bfrom%2B2017-04-27%2B00-17-01.png
slug: /2017/04/explain-shell-explainshellcom.html
diff --git a/apps/blog/_posts/2017/05/cai-apache-spark-standalone-ban-pre.md b/apps/blog/_posts/2017/05/cai-apache-spark-standalone-ban-pre.md
index 00661ef7..0005a054 100644
--- a/apps/blog/_posts/2017/05/cai-apache-spark-standalone-ban-pre.md
+++ b/apps/blog/_posts/2017/05/cai-apache-spark-standalone-ban-pre.md
@@ -8,7 +8,7 @@ tags:
- Python
- Javascript
- PySpark
- - Spark
+ - Apache Spark
- Big Data
modified_time: '2018-09-01T22:32:19.019+07:00'
thumbnail: https://4.bp.blogspot.com/-5hwfzlugnac/WS7b6rg8cQI/AAAAAAAAlDg/Rgpp6oj-lGQludEAlYo9YtOrGCeudR0zgCLcB/s1600/Screenshot%2Bfrom%2B2017-05-31%2B22-02-05.png
diff --git a/apps/blog/_posts/2017/07/gpujs.md b/apps/blog/_posts/2017/07/gpujs.md
index 0bc6153b..062569cf 100644
--- a/apps/blog/_posts/2017/07/gpujs.md
+++ b/apps/blog/_posts/2017/07/gpujs.md
@@ -3,9 +3,8 @@ title: gpu.js - Tăng tốc Javascript với GPU
date: '2017-07-26'
author: Duyet
tags:
- - GPU
-
- Javascript
+ - Javascript Framework
modified_time: '2017-07-26T22:18:53.281+07:00'
thumbnail: https://1.bp.blogspot.com/-X7Kr5VOlHrs/WXiyj88TKTI/AAAAAAAAmTo/zXoRm7bqaOM-DSDvG1EEBlHaN52T5Tp_gCK4BGAYYCw/s1600/687474703a2f2f6770752e726f636b732f696d672f6f67696d6167652e706e67.png
slug: /2017/07/gpujs.html
diff --git a/apps/blog/_posts/2017/07/urls-are-ui.md b/apps/blog/_posts/2017/07/urls-are-ui.md
index 3981ca6b..9551fd24 100644
--- a/apps/blog/_posts/2017/07/urls-are-ui.md
+++ b/apps/blog/_posts/2017/07/urls-are-ui.md
@@ -6,9 +6,7 @@ tags:
- Web Design
- Website
- UX
- - URL
- Web
- - UI
modified_time: '2017-07-20T22:29:37.063+07:00'
thumbnail: https://2.bp.blogspot.com/-Be1T1kU3SNE/WXDK8fI25CI/AAAAAAAAmP8/hNT-xyX6Z6cwW1qoAEx6D3WaW5nYZ8vTQCK4BGAYYCw/s1600/funny-newspaper-URL-job-application.jpg
slug: /2017/07/urls-are-ui.html
diff --git a/apps/blog/_posts/2017/08/machine-learning-is-fun.md b/apps/blog/_posts/2017/08/machine-learning-is-fun.md
index 508a729f..db831d1c 100644
--- a/apps/blog/_posts/2017/08/machine-learning-is-fun.md
+++ b/apps/blog/_posts/2017/08/machine-learning-is-fun.md
@@ -3,9 +3,6 @@ title: Machine Learning is Fun! (Vietnamese version)
date: '2017-08-25'
author: Duyet
tags:
- - ML
- - Machine Learning is Fun
- - Trans
- Machine Learning
modified_time: '2017-08-25T17:09:50.109+07:00'
thumbnail: https://2.bp.blogspot.com/-D4vekDbu6zs/WZ6_chAbYAI/AAAAAAAAmu4/r-VHzqHLRU42sWwYbiGBvI4Dwt28tEDmACK4BGAYYCw/s1600/1-YXiclXZdJQVJZ0tQHCv5zw.png
diff --git a/apps/blog/_posts/2017/08/natural-nltk.md b/apps/blog/_posts/2017/08/natural-nltk.md
index 6b00160a..a1fcad63 100644
--- a/apps/blog/_posts/2017/08/natural-nltk.md
+++ b/apps/blog/_posts/2017/08/natural-nltk.md
@@ -4,11 +4,9 @@ date: '2017-08-06'
author: Duyet
tags:
- Data Engineering
- - Nodejs
-
+ - Node.js
- Javascript
- NLP
- - Intro-library
- Machine Learning
modified_time: '2018-09-10T17:20:37.866+07:00'
thumbnail: https://4.bp.blogspot.com/-7UyZjfbL--g/WYadFDYvEfI/AAAAAAAAmc4/x-jU5zgVZz8BsBM5VP5zkZA5Y8c79XIBQCK4BGAYYCw/s1600/nlp_js.png
diff --git a/apps/blog/_posts/2017/08/phan-lop-van-ban.md b/apps/blog/_posts/2017/08/phan-lop-van-ban.md
index 8625ec08..fd3f11fd 100644
--- a/apps/blog/_posts/2017/08/phan-lop-van-ban.md
+++ b/apps/blog/_posts/2017/08/phan-lop-van-ban.md
@@ -4,13 +4,9 @@ date: '2017-08-11'
author: Duyet
tags:
- Data Engineering
- - Gensim
- Tutorial
- - Text Classification
- Python
- - Javascript
- NLP
- - NLTK
- Machine Learning
modified_time: '2018-09-01T22:32:19.917+07:00'
thumbnail: https://3.bp.blogspot.com/-_i6Le_EX3oU/WX_10OCZ9lI/AAAAAAAAmV8/X7JDtZf83DknCJbJrqdhbx1fXXzz0W8LgCK4BGAYYCw/s1600/tree.gif
diff --git a/apps/blog/_posts/2017/09/detect-cars-opencv.md b/apps/blog/_posts/2017/09/detect-cars-opencv.md
index 7bc5517f..ce98dae6 100644
--- a/apps/blog/_posts/2017/09/detect-cars-opencv.md
+++ b/apps/blog/_posts/2017/09/detect-cars-opencv.md
@@ -4,10 +4,7 @@ date: '2017-09-20'
author: Duyet
tags:
- Data Engineering
- - opencv
- - image
- Python
- - Javascript
- Machine Learning
modified_time: '2018-09-01T22:32:19.312+07:00'
thumbnail_2: https://2.bp.blogspot.com/-u1Fqw11luYo/WcE3gP_ykFI/AAAAAAAAngY/iPfg5bwKCcIVn5XTgM3SnVjKzf0QRBBegCLcBGAs/s1600/Screenshot%2Bfrom%2B2017-09-19%2B22-27-44.png
diff --git a/apps/blog/_posts/2017/09/tolksio-put-your-story-up-on-internet.md b/apps/blog/_posts/2017/09/tolksio-put-your-story-up-on-internet.md
index da9da302..69eb8b58 100644
--- a/apps/blog/_posts/2017/09/tolksio-put-your-story-up-on-internet.md
+++ b/apps/blog/_posts/2017/09/tolksio-put-your-story-up-on-internet.md
@@ -1,10 +1,11 @@
---
-title: 'Tolks.io - Put your story up on the Internet '
+title: 'Tolks.io - Put your story up on the Internet'
date: '2017-09-05'
author: Duyet
tags:
- - Fun
- - Web Experience
+ - Web
+ - Tools
+ - Javascript Framework
modified_time: '2017-09-05T21:02:19.177+07:00'
thumbnail: https://2.bp.blogspot.com/-jz-AIhUQYQo/Wa6ty7Ub3gI/AAAAAAAAmzA/CudLd1IAa84CumHooJr9Wxvcs3dOW1eBwCLcBGAs/s1600/threesome.gif
slug: /2017/09/tolksio-put-your-story-up-on-internet.html
diff --git a/apps/blog/_posts/2017/10/doc2vec-trong-sentiment-analysis.md b/apps/blog/_posts/2017/10/doc2vec-trong-sentiment-analysis.md
index 57a2fd64..7c104b42 100644
--- a/apps/blog/_posts/2017/10/doc2vec-trong-sentiment-analysis.md
+++ b/apps/blog/_posts/2017/10/doc2vec-trong-sentiment-analysis.md
@@ -5,13 +5,9 @@ author: Duyet
tags:
- Doc2vec
- Neural Network
- - Python
- - Sentiment
- - Javascript
- NLP
- Word2vec
- Machine Learning
- - Sentimennt Analysis
modified_time: '2018-09-10T17:20:37.659+07:00'
thumbnail: https://2.bp.blogspot.com/-IpnvLkBHx74/WdnUJ5r3q_I/AAAAAAAAnxI/Cz9B_YQo6tcu0YwOffsQQWmcfjH_mRulwCK4BGAYYCw/s1600/pv_dm.png
slug: /2017/10/doc2vec-trong-sentiment-analysis.html
diff --git a/apps/blog/_posts/2017/11/colaboratory-research-google.md b/apps/blog/_posts/2017/11/colaboratory-research-google.md
index 0957078d..6225d287 100644
--- a/apps/blog/_posts/2017/11/colaboratory-research-google.md
+++ b/apps/blog/_posts/2017/11/colaboratory-research-google.md
@@ -6,8 +6,6 @@ tags:
- Data Engineering
- Google
- Data Science
- - Jupyter Notebook
- - Colaboratory
modified_time: '2017-11-07T21:44:08.268+07:00'
thumbnail: https://3.bp.blogspot.com/-nk_nMNcWKYM/WgHCCof8UaI/AAAAAAAAoJQ/L5dEhuHoU7Q87DLnbgSRWhITvd2Lr1D2ACLcBGAs/s1600/cola.png
slug: /2017/11/colaboratory-research-google.html
diff --git a/apps/blog/_posts/2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.md b/apps/blog/_posts/2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.md
index de55e2fb..e60ae564 100644
--- a/apps/blog/_posts/2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.md
+++ b/apps/blog/_posts/2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.md
@@ -5,14 +5,8 @@ author: Duyet
tags:
- Data Engineering
- Open Source
- - Chatbot
- - Duckling
- - NLP
- - Intro-library
- Machine Learning
- - facebook
- - Opensource
- - Haskell
+ - NLP
modified_time: '2018-09-10T17:20:37.168+07:00'
thumbnail: https://1.bp.blogspot.com/-EDgp745KklY/WopyCVizV7I/AAAAAAAAqbc/-xBWh3Ve4xg9DQGDY8YMbLiB688d-zXagCK4BGAYYCw/s1600/carbon_duckling.png
slug: /2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.html
diff --git a/apps/blog/_posts/2018/02/svm-word2vec.md b/apps/blog/_posts/2018/02/svm-word2vec.md
index 9dad7112..a610b971 100644
--- a/apps/blog/_posts/2018/02/svm-word2vec.md
+++ b/apps/blog/_posts/2018/02/svm-word2vec.md
@@ -3,7 +3,6 @@ title: Phân lớp SVM với Word2vec
date: '2018-02-25'
author: Duyet
tags:
- - SVM
- NLP
- Word2vec
- Machine Learning
diff --git a/apps/blog/_posts/2018/03/propel-machine-learning-for-javascript.md b/apps/blog/_posts/2018/03/propel-machine-learning-for-javascript.md
index dddb307f..2cd0b7b7 100644
--- a/apps/blog/_posts/2018/03/propel-machine-learning-for-javascript.md
+++ b/apps/blog/_posts/2018/03/propel-machine-learning-for-javascript.md
@@ -4,11 +4,8 @@ date: '2018-03-01'
author: Duyet
tags:
- Data Engineering
- - Nodejs
-
+ - Node.js
- Javascript
- - Intro-library
- - Intro
- Machine Learning
modified_time: '2018-07-20T10:14:07.558+07:00'
thumbnail: https://4.bp.blogspot.com/-rCCLsL2bgWA/WpgsDSlK8nI/AAAAAAAAqrM/4Ijx-Bt0yvYMe29D7W48z97lGge2IZDHgCLcBGAs/s1600/Propel.png
diff --git a/apps/blog/_posts/2018/06/slide-sentiment-analysis.md b/apps/blog/_posts/2018/06/slide-sentiment-analysis.md
index 3d843ed7..c7cdae0a 100644
--- a/apps/blog/_posts/2018/06/slide-sentiment-analysis.md
+++ b/apps/blog/_posts/2018/06/slide-sentiment-analysis.md
@@ -4,10 +4,9 @@ date: '2018-06-30'
author: Duyet
tags:
- Sentiment
- - slide
- NLP
- Machine Learning
- - Sentimennt Analysis
+ - Sentiment Analysis
- Talk
modified_time: '2018-09-10T17:17:59.233+07:00'
thumbnail: https://2.bp.blogspot.com/-QmRuaxp1xj4/WzekOKxN0BI/AAAAAAAAw1U/hQrM0Ii9mwspi2k1-incTQ-HFilQkHY6wCLcBGAs/s1600/senti.PNG
diff --git a/apps/blog/_posts/2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.md b/apps/blog/_posts/2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.md
index d9721ce3..cc8d8bbd 100644
--- a/apps/blog/_posts/2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.md
+++ b/apps/blog/_posts/2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.md
@@ -3,14 +3,9 @@ title: Sử dụng PyTorch với GPU miễn phí trên Google Colab
date: '2018-06-03'
author: Duyet
tags:
- - AI
- Data Engineering
- - Notebook
- Python
- - PyTorch
- Machine Learning
- - Jupyter Notebook
- - Colaboratory
modified_time: '2018-07-20T10:11:11.326+07:00'
thumbnail: https://4.bp.blogspot.com/-SdOdKIqi8Q0/WxPzp07jlfI/AAAAAAAAubY/BdjBxk-frPgTZKvNR8CTYpBgUwRcF9SQACLcBGAs/s1600/35226d9fbc661ced1c5d17e374638389178c3176.png
slug: /2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.html
diff --git a/apps/blog/_posts/2018/07/deploy-deep-learning-model-as-web-service-api.md b/apps/blog/_posts/2018/07/deploy-deep-learning-model-as-web-service-api.md
index 057aec45..eefa7b0e 100644
--- a/apps/blog/_posts/2018/07/deploy-deep-learning-model-as-web-service-api.md
+++ b/apps/blog/_posts/2018/07/deploy-deep-learning-model-as-web-service-api.md
@@ -5,10 +5,7 @@ author: Duyet
category: Machine Learning
tags:
- Data Engineering
- - Redis
- Python
- - Flask
- - Keras
- Data Science
- Machine Learning
modified_time: '2018-10-31T23:23:57.689+07:00'
diff --git a/apps/blog/_posts/2018/07/giojs-3d-globe-data-visualization.md b/apps/blog/_posts/2018/07/giojs-3d-globe-data-visualization.md
index 27b5c2d2..6e33fbed 100644
--- a/apps/blog/_posts/2018/07/giojs-3d-globe-data-visualization.md
+++ b/apps/blog/_posts/2018/07/giojs-3d-globe-data-visualization.md
@@ -5,8 +5,6 @@ author: Duyet
tags:
- Javascript
- Visualization
- - 3D
- - Three.js
modified_time: '2018-07-01T23:20:16.007+07:00'
slug: /2018/07/giojs-3d-globe-data-visualization.html
thumbnail: https://1.bp.blogspot.com/-fyu1xILKsuE/XUf7uXmrSAI/AAAAAAABFMw/FPCRz3qQR8k7_8iIPSoRkm-zBslPkdFDwCLcBGAs/s1600/Screen%2BShot%2B2019-08-05%2Bat%2B4.49.34%2BPM.png
diff --git a/apps/blog/_posts/2018/07/signale-console-logger.md b/apps/blog/_posts/2018/07/signale-console-logger.md
index 81e0d2a5..09209a25 100644
--- a/apps/blog/_posts/2018/07/signale-console-logger.md
+++ b/apps/blog/_posts/2018/07/signale-console-logger.md
@@ -3,11 +3,8 @@ title: Signale - Hackable console logger for Nodejs
date: '2018-07-19'
author: Duyet
tags:
- - Nodejs
- - Logger
-
+ - Node.js
- Javascript
- - Intro-library
modified_time: '2018-07-19T21:51:29.517+07:00'
thumbnail: https://3.bp.blogspot.com/-Gj9IxBJacZ4/W1CjcADwEoI/AAAAAAAAxXg/92YNzTR5CXMv9bvrxMU1h-AkCOlPLPn8QCK4BGAYYCw/s1600/68747470733a2f2f63646e2e7261776769742e636f6d2f6b6c617573636668712f7369676e616c652f32643862636666382f6d656469612f6865616465722e706e67.png
slug: /2018/07/signale-console-logger.html
diff --git a/apps/blog/_posts/2018/09/5-bi-quyet-js-conditionals-tot-hon.md b/apps/blog/_posts/2018/09/5-bi-quyet-js-conditionals-tot-hon.md
index 6135265b..7b819123 100644
--- a/apps/blog/_posts/2018/09/5-bi-quyet-js-conditionals-tot-hon.md
+++ b/apps/blog/_posts/2018/09/5-bi-quyet-js-conditionals-tot-hon.md
@@ -4,8 +4,8 @@ date: '2018-09-20'
author: Duyet
tags:
- ES6
- - Javascript
- - Thủ thuật
+ - Javascript
+ - Tutorial
modified_time: '2018-09-20T23:59:04.102+07:00'
thumbnail: https://2.bp.blogspot.com/-RRyHHS4eNUw/W6PRc6rcpWI/AAAAAAAAzqM/FQvD9qNV-c4PuNUrvoSZnZfSqk2EdMZxwCLcBGAs/s1600/udpahiv8rqlemvz0x3wc.png
slug: /2018/09/5-bi-quyet-js-conditionals-tot-hon.html
diff --git a/apps/blog/_posts/2018/09/vs-code-import-cost.md b/apps/blog/_posts/2018/09/vs-code-import-cost.md
index 5718a177..2e50b8aa 100644
--- a/apps/blog/_posts/2018/09/vs-code-import-cost.md
+++ b/apps/blog/_posts/2018/09/vs-code-import-cost.md
@@ -3,9 +3,8 @@ title: VS Code - Import Cost
date: '2018-09-17'
author: Duyet
tags:
- - Nodejs
+ - Node.js
- VS Code
- - plugin
- Node.js
modified_time: '2018-09-17T00:10:15.029+07:00'
thumbnail: https://4.bp.blogspot.com/-TZRWLF6rr6U/W56MhbtWJCI/AAAAAAAAzjc/QA6dYo_Aul4ZC2PR4pH4T8NBsXLikY-8QCK4BGAYYCw/s1600/68747470733a2f2f66696c652d776b62636e6c6376626e2e6e6f772e73682f696d706f72742d636f73742e676966.gif
diff --git a/apps/blog/_posts/2018/11/api.duyet.net.md b/apps/blog/_posts/2018/11/api.duyet.net.md
index 45230dc8..d5d87afd 100644
--- a/apps/blog/_posts/2018/11/api.duyet.net.md
+++ b/apps/blog/_posts/2018/11/api.duyet.net.md
@@ -3,7 +3,7 @@ title: api.duyet.net
date: '2018-11-18'
author: Duyet
tags:
- - 'api.duyet.net'
+ - Side Project
modified_time: '2018-11-18T00:17:49.832+07:00'
thumbnail: https://1.bp.blogspot.com/-pkcT4MaSHys/W_BMQuealsI/AAAAAAAA1Ok/ieTSBcaC6u8KEzcVgbDmdS23UOuikzfdACLcBGAs/s720/Screen%2BShot%2B2018-11-18%2Bat%2B12.12.11%2BAM.png
slug: '/2018/11/api.duyet.net.html'
diff --git a/apps/blog/_posts/2018/11/simple-data-pipeline-aws.md b/apps/blog/_posts/2018/11/simple-data-pipeline-aws.md
index 6b559f47..96eb2222 100644
--- a/apps/blog/_posts/2018/11/simple-data-pipeline-aws.md
+++ b/apps/blog/_posts/2018/11/simple-data-pipeline-aws.md
@@ -4,10 +4,7 @@ date: '2018-11-12'
author: Duyet
tags:
- Data Engineering
- - Share
- - slide
- Talk
- - talk.duyet.net
modified_time: '2018-11-12T13:05:25.165+07:00'
thumbnail: https://1.bp.blogspot.com/-bubYERdAr50/W-kXVP6JKfI/AAAAAAAA1Ic/nvICF9mhxEMxkpqhySrjxllUfuAdu2nZQCLcBGAs/s1600/Screen%2BShot%2B2018-11-12%2Bat%2B1.01.31%2BPM.png
slug: /2018/11/simple-data-pipeline-aws.html
diff --git a/apps/blog/_posts/2018/11/web-performance-101.md b/apps/blog/_posts/2018/11/web-performance-101.md
index 3c20621f..5fc44cf3 100644
--- a/apps/blog/_posts/2018/11/web-performance-101.md
+++ b/apps/blog/_posts/2018/11/web-performance-101.md
@@ -3,10 +3,8 @@ title: Web Performance 101
date: '2018-11-13'
author: Duyet
tags:
- - Recommend read
- - Intro
+ - News
- Web
- - Intro post
modified_time: '2018-11-13T00:11:36.222+07:00'
thumbnail: https://3.bp.blogspot.com/-JVmogTZv_Bs/W-mzZzk0NlI/AAAAAAAA1JI/axjukAia6WEVCx4_QnOjb7qkQ8TLhYVmACLcBGAs/s1600/Screen%2BShot%2B2018-11-13%2Bat%2B12.07.30%2BAM.png
slug: /2018/11/web-performance-101.html
diff --git a/apps/blog/_posts/2019/01/duyet-stackshare.md b/apps/blog/_posts/2019/01/duyet-stackshare.md
deleted file mode 100644
index dbe98641..00000000
--- a/apps/blog/_posts/2019/01/duyet-stackshare.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-title: Duyet stackshare
-date: '2019-01-29'
-author: Duyet
-tags:
- - Share
- - StackShare
-modified_time: '2019-01-29T21:35:03.766+07:00'
-slug: /2019/01/duyet-stackshare.html
-description: 'Đây là Stack những công nghệ mình đã và đang dùng, xin phép chia sẻ tại đây: https://stackshare.io/duyet/duyet-stack'
----
-
-Đây là Stack những công nghệ mình đã và đang dùng, xin phép chia sẻ tại đây: [https://stackshare.io/duyet/duyet-stack](https://stackshare.io/duyet/duyet-stack)
-
-
diff --git a/apps/blog/_posts/2019/01/pwc.md b/apps/blog/_posts/2019/01/pwc.md
index 4949c19c..7958ffff 100644
--- a/apps/blog/_posts/2019/01/pwc.md
+++ b/apps/blog/_posts/2019/01/pwc.md
@@ -4,11 +4,9 @@ date: '2019-01-06'
author: Duyet
category: Machine Learning
tags:
- - AI
- - Paper with Code
- Deep Learning
- - Paper
- Machine Learning
+ - Artificial Intelligence (AI)
modified_time: '2019-01-06T10:16:58.212+07:00'
thumbnail: https://4.bp.blogspot.com/-MeLBsmLAEPc/XDFwdbzx4OI/AAAAAAAA3eM/dvTNPS6N26wnQQvOQ-OtVOPC5A4JXwNQgCLcBGAs/s1600/duyet-pwc.png
slug: /2019/01/pwc.html
diff --git a/apps/blog/_posts/2019/03/7-thu-thuat-voi-resting-va-spreading.md b/apps/blog/_posts/2019/03/7-thu-thuat-voi-resting-va-spreading.md
index 26b0d58d..8ee3e6bb 100644
--- a/apps/blog/_posts/2019/03/7-thu-thuat-voi-resting-va-spreading.md
+++ b/apps/blog/_posts/2019/03/7-thu-thuat-voi-resting-va-spreading.md
@@ -6,8 +6,8 @@ category: Javascript
tags:
- ES6
- Javascript
- - Nodejs
- - Thủ thuật
+ - Node.js
+ - Tutorial
modified_time: '2019-03-27T00:00:03.766+07:00'
slug: /2019/03/7-thu-thuat-voi-resting-va-spreading.html
description: Resting và spreading càng ngày được ưa chuộng vì sự tiện lợi của nó, sau đây là 7 tricks với JavaScript objects.
diff --git a/apps/blog/_posts/2019/04/google-cloud-next-19.md b/apps/blog/_posts/2019/04/google-cloud-next-19.md
index 504fac1e..e89c95ab 100644
--- a/apps/blog/_posts/2019/04/google-cloud-next-19.md
+++ b/apps/blog/_posts/2019/04/google-cloud-next-19.md
@@ -6,9 +6,8 @@ category: Story
tags:
- Google
- Google Cloud
- - Google Cloud Next 19
+ - Events
- Photos
- - San Francisco, USA
thumbnail: https://3.bp.blogspot.com/-zBntEa9bcPU/XLrjTOU8rcI/AAAAAAAA-58/6h9mG_3ltBwbkoBBxsoKzVt1-B7UIpsHgCLcBGAs/s1600/IMG_20190411_112303_565.jpg
slug: /2019/04/google-cloud-next-19.html
description: Năm nay mình tham dự Google Cloud Next '19 tại San Francisco. Xin phép chia sẻ lại một vài hình ảnh hội nghị năm nay.
diff --git a/apps/blog/_posts/2019/04/shorten-url-voi-firebase.md b/apps/blog/_posts/2019/04/shorten-url-voi-firebase.md
index a3a5c0e8..db08006f 100644
--- a/apps/blog/_posts/2019/04/shorten-url-voi-firebase.md
+++ b/apps/blog/_posts/2019/04/shorten-url-voi-firebase.md
@@ -4,10 +4,7 @@ date: '2019-04-19'
author: Duyet
category: Project
tags:
- - Dynamic Links
- Firebase
- - Firebase Functions
- - Firebase Hosting
- Side Project
thumbnail: https://1.bp.blogspot.com/-mOYlbR85Tpw/XMciLyM34pI/AAAAAAAA_bE/aJtpyjh8Us0E5pbp8y6Djz4XA_qHmGFIACLcBGAs/s1600/Screen%2BShot%2B2019-04-29%2Bat%2B11.11.23%2BPM.png
diff --git a/apps/blog/_posts/2019/05/phuong-tien-cong-cong-san-francisco.md b/apps/blog/_posts/2019/05/phuong-tien-cong-cong-san-francisco.md
index 1cfa27ff..9172c6f8 100644
--- a/apps/blog/_posts/2019/05/phuong-tien-cong-cong-san-francisco.md
+++ b/apps/blog/_posts/2019/05/phuong-tien-cong-cong-san-francisco.md
@@ -5,8 +5,8 @@ author: Duyet
category: Story
tags:
- San Francisco
- - Travel
- - USA
+ - Photos
+ - The US
thumbnail: https://1.bp.blogspot.com/-HbKS4i_0yqA/XM0Kbzu24bI/AAAAAAAA_hQ/84Pq1m-TK3QRHfv5GAFijK87OniCXDrnwCK4BGAYYCw/s1600/1969-12-31%2B04.00.00%2B27.jpg
diff --git a/apps/blog/_posts/2019/05/pricetrack-cashback.md b/apps/blog/_posts/2019/05/pricetrack-cashback.md
index 34f8d50a..b1bfec37 100644
--- a/apps/blog/_posts/2019/05/pricetrack-cashback.md
+++ b/apps/blog/_posts/2019/05/pricetrack-cashback.md
@@ -8,7 +8,7 @@ tags:
- Firebase Functions
- Firebase Hosting
- Side Project
-- Project
+- Side Project
thumbnail: https://1.bp.blogspot.com/-YI_vbZhajkU/XNl4r1H3CRI/AAAAAAABAgI/eZRSFuf3RXQsltqLb2_ObS_lWlE475n5wCLcBGAs/s1600/screenshot-detail.png
slug: /2019/05/pricetrack-cashback.html
diff --git a/apps/blog/_posts/2019/08/8-serverless-platform.md b/apps/blog/_posts/2019/08/8-serverless-platform.md
index a0de2a86..183672a9 100644
--- a/apps/blog/_posts/2019/08/8-serverless-platform.md
+++ b/apps/blog/_posts/2019/08/8-serverless-platform.md
@@ -4,8 +4,7 @@ date: '2019-08-09'
author: Duyet
category: Server
tags:
- - Server
- - Serverless
+ - Tools
thumbnail: https://2.bp.blogspot.com/-UXFKQHmgZr4/XU5GBRoYgMI/AAAAAAABFX4/36g3ohD57bUaGSoqwPctGsTdL4lG85vPwCK4BGAYYCw/s1600/serverless-arch.jpg
slug: /2019/08/8-serverless-platform.md
diff --git a/apps/blog/_posts/2019/08/airflow-context.md b/apps/blog/_posts/2019/08/airflow-context.md
index c4e39a49..a52bf82d 100644
--- a/apps/blog/_posts/2019/08/airflow-context.md
+++ b/apps/blog/_posts/2019/08/airflow-context.md
@@ -7,7 +7,7 @@ tags:
- Data
- Python
- Data Engineering
- - Airflow
+ - Apache Airflow
thumbnail: https://4.bp.blogspot.com/-H9PlWKnP_Gc/XU2U4yVVQtI/AAAAAAABFVY/MZem1VyxGr8ORiZbRNx3Kno5C4nzJeeEgCK4BGAYYCw/s200/1_6jjSw8IqGbsPZp7L_43YyQ.png
slug: /2019/08/airflow-context.html
diff --git a/apps/blog/_posts/2019/08/airflow-docker-compose.md b/apps/blog/_posts/2019/08/airflow-docker-compose.md
index 5c058948..6418190a 100644
--- a/apps/blog/_posts/2019/08/airflow-docker-compose.md
+++ b/apps/blog/_posts/2019/08/airflow-docker-compose.md
@@ -3,7 +3,7 @@ title: Cài đặt Apache Airflow với Docker Compose
date: '2019-08-26'
category: Data Engineer
tags:
- - Airflow
+ - Apache Airflow
- Data
- Data Engineering
slug: /2019/08/airflow-docker-compose.html
diff --git a/apps/blog/_posts/2019/08/airflow-note.md b/apps/blog/_posts/2019/08/airflow-note.md
index 813d6fd7..7a0923dd 100644
--- a/apps/blog/_posts/2019/08/airflow-note.md
+++ b/apps/blog/_posts/2019/08/airflow-note.md
@@ -3,7 +3,7 @@ title: Airflow - một số ghi chép
date: '2019-08-27'
category: Data Engineer
tags:
- - Airflow
+ - Apache Airflow
- Data
- Data Engineering
slug: /2019/08/airflow-note.html
diff --git a/apps/blog/_posts/2019/08/slack-alerts-in-airflow.md b/apps/blog/_posts/2019/08/slack-alerts-in-airflow.md
index 82793e39..00659745 100644
--- a/apps/blog/_posts/2019/08/slack-alerts-in-airflow.md
+++ b/apps/blog/_posts/2019/08/slack-alerts-in-airflow.md
@@ -3,7 +3,7 @@ title: Gửi Slack Alerts trên Airflow
date: '2019-08-20'
category: Data Engineer
tags:
- - Airflow
+ - Apache Airflow
- Data
- Data Engineering
slug: /2019/08/slack-alerts-in-airflow.html
diff --git a/apps/blog/_posts/2019/09/books.md b/apps/blog/_posts/2019/09/books.md
index f16b7a24..b9dbd94c 100644
--- a/apps/blog/_posts/2019/09/books.md
+++ b/apps/blog/_posts/2019/09/books.md
@@ -5,7 +5,7 @@ category: Data Engineer
tags:
- Data
- Data Engineering
- - Books
+ - Read
slug: /2019/09/books.html
thumbnail: https://3.bp.blogspot.com/-hF3wjpoCCl8/XYEW1Gv7dJI/AAAAAAABHQw/6EbIEEGnJVUYDS0TsGQ0R7Dk7G-q2vSxwCK4BGAYYCw/s640/IMG_20170623_205832_047.jpg
description: Ghi lại mấy cuốn sách hay (Engineering) đã đọc qua.
diff --git a/apps/blog/_posts/2020/05/airflow-dag-serialization.md b/apps/blog/_posts/2020/05/airflow-dag-serialization.md
index cdc112cb..56f98fb1 100644
--- a/apps/blog/_posts/2020/05/airflow-dag-serialization.md
+++ b/apps/blog/_posts/2020/05/airflow-dag-serialization.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data Engineer
tags:
- Data Engineering
- - Airflow
+ - Apache Airflow
thumbnail: https://1.bp.blogspot.com/-5cIyBwelyrQ/Xvg-wwqPJRI/AAAAAAABeeI/d4DPBinapik2Dffz3wXSTnsU7cgCHPqBACK4BGAYYCw/s1600/dag_serialization.png
slug: /2020/05/airflow-dag-serialization.html
description: In order to make Airflow Webserver stateless, Airflow >=1.10.7 supports DAG Serialization and DB Persistence.
diff --git a/apps/blog/_posts/2020/05/data-studio-caching-with-spreadsheet.md b/apps/blog/_posts/2020/05/data-studio-caching-with-spreadsheet.md
index 851ae2ef..cc704801 100644
--- a/apps/blog/_posts/2020/05/data-studio-caching-with-spreadsheet.md
+++ b/apps/blog/_posts/2020/05/data-studio-caching-with-spreadsheet.md
@@ -6,7 +6,7 @@ category: Data Engineer
tags:
- Data Engineering
- Visualization
- - Data Studio
+ - Tools
thumbnail: https://1.bp.blogspot.com/-tL8SgFMEaQU/XqwoFKV6DxI/AAAAAAABWeM/jCbFEFQ8rkUIndBbUppJt7xuG5gajTJawCK4BGAYYCw/s1200/caching-with-spreadsheet.png
slug: /2020/05/data-studio-caching-with-spreadsheet.html
diff --git a/apps/blog/_posts/2020/05/spark-history-server-on-k8s.md b/apps/blog/_posts/2020/05/spark-history-server-on-k8s.md
index 3af4ddb7..e51cc187 100644
--- a/apps/blog/_posts/2020/05/spark-history-server-on-k8s.md
+++ b/apps/blog/_posts/2020/05/spark-history-server-on-k8s.md
@@ -5,9 +5,8 @@ author: Duyet
category: Data Engineer
tags:
- Data Engineering
- - Spark
+ - Apache Spark
- Kubernetes
- - Spark History Server
thumbnail: https://2.bp.blogspot.com/-BOTA2PWkjBY/XtIGGKlRVGI/AAAAAAABZ0g/xvQ-OCIjSHM6gIkKeXn1ORPG1m32mCkiQCK4BGAYYCw/s1600/spark-history-server.png
slug: /2020/05/spark-history-server-on-k8s.html
diff --git a/apps/blog/_posts/2020/05/spark-on-k8s.md b/apps/blog/_posts/2020/05/spark-on-k8s.md
index 87dd845c..6d8faf3f 100644
--- a/apps/blog/_posts/2020/05/spark-on-k8s.md
+++ b/apps/blog/_posts/2020/05/spark-on-k8s.md
@@ -5,9 +5,8 @@ author: Duyet
category: Data Engineer
tags:
- Data Engineering
- - Spark
+ - Apache Spark
- Kubernetes
- - Livy
# thumbnail: https://3.bp.blogspot.com/-F-neg4I_RWs/Xsno7eN23rI/AAAAAAABZV4/qTy_8SkWlkQSyH5Gg7D01mFaFkeuWRsuwCK4BGAYYCw/s1600/draft-of-apache-spark-image-2.png
thumbnail: https://1.bp.blogspot.com/-VI84ABaeYlc/XtIGszW5AoI/AAAAAAABZ0s/w1MDUsBNLwsB7_gMIKf-WMX5JXfZOnXLACK4BGAYYCw/s1600/livy-spark-k8s.png
@@ -46,7 +45,7 @@ Here are three primary benefits to using Kubernetes as a resource manager:
`spark-submit` can be directly used to submit a Spark application to a Kubernetes cluster. The submission mechanism works as follows:
-- Spark creates a _Spark driver_ running within a [Kubernetes pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/).
+- Apache Spark creates a _Spark driver_ running within a [Kubernetes pod](https://kubernetes.io/docs/concepts/workloads/pods/pod/).
- The driver creates executors which are also running within Kubernetes pods and connects to them, and executes application code.
- When the application completes, the executor pods terminate and are cleaned up, but the driver pod persists logs and remains in "completed" state in the Kubernetes API until it’s eventually garbage collected or manually cleaned up.
diff --git a/apps/blog/_posts/2020/06/scheduling-python-script-in-airflow.md b/apps/blog/_posts/2020/06/scheduling-python-script-in-airflow.md
index 8668318c..488bfab9 100644
--- a/apps/blog/_posts/2020/06/scheduling-python-script-in-airflow.md
+++ b/apps/blog/_posts/2020/06/scheduling-python-script-in-airflow.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data Engineer
tags:
- Data Engineering
- - Airflow
+ - Apache Airflow
- Python
thumbnail: https://images.unsplash.com/photo-1592928038511-20202bdad1fd?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1650&q=80
diff --git a/apps/blog/_posts/2020/10/why-spark-on-kubernetes.md b/apps/blog/_posts/2020/10/why-spark-on-kubernetes.md
index b971ac85..19f468cd 100644
--- a/apps/blog/_posts/2020/10/why-spark-on-kubernetes.md
+++ b/apps/blog/_posts/2020/10/why-spark-on-kubernetes.md
@@ -4,7 +4,7 @@ date: '2020-10-24'
author: Duyet
category: Data Engineer
tags:
- - Spark
+ - Apache Spark
- Data Engineering
- Kubernetes
thumbnail: https://1.bp.blogspot.com/-aBPAW0o9sqY/X5Ps-9d_hLI/AAAAAAABp1A/ZCTOfwThNEUykd4biRSDnZj0D7menY9kACLcBGAsYHQ/s0/spark-on-k8s.jpg
diff --git a/apps/blog/_posts/2020/12/airflow-taskflow-api.md b/apps/blog/_posts/2020/12/airflow-taskflow-api.md
index b3a26be3..bfbfc3e8 100644
--- a/apps/blog/_posts/2020/12/airflow-taskflow-api.md
+++ b/apps/blog/_posts/2020/12/airflow-taskflow-api.md
@@ -4,9 +4,8 @@ date: '2020-12-26'
author: Duyet
category: Data Engineer
tags:
- - Airflow
+ - Apache Airflow
- Data Engineering
- - Airflow 2.0
thumbnail: https://1.bp.blogspot.com/-ON0KTUqotAs/X-chcnFmhtI/AAAAAAABzmA/-kBwGuYyCS44Q16FCHL23iio9WUm6Ux9wCLcBGAsYHQ/s0/duyet-airflow-taskflow-api.png
slug: /2020/12/airflow-taskflow-api.html
description: Chú trọng vào việc đơn giản hóa và rõ ràng cách viết Airflow DAG, cách trao đổi thông tin giữa các tasks, Airflow 2.0 ra mắt Taskflow API cho phép viết đơn giản và gọn gàng hơn so với cách truyền thống, đặc biệt vào các pipelines sử dụng PythonOperators.
diff --git a/apps/blog/_posts/2021/04/spark-kubernetes-performance-tuning.md b/apps/blog/_posts/2021/04/spark-kubernetes-performance-tuning.md
index e39908a2..88326536 100644
--- a/apps/blog/_posts/2021/04/spark-kubernetes-performance-tuning.md
+++ b/apps/blog/_posts/2021/04/spark-kubernetes-performance-tuning.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data Engineer
tags:
- Data Engineering
- - Spark
+ - Apache Spark
- Apache Spark
thumbnail: https://1.bp.blogspot.com/-DqjllNPwXAs/YHG4KE1w2bI/AAAAAAAB_Hc/-laW2XvRNHgXvgub8XcNgw83tajD2ihlQCLcBGAsYHQ/s0/image-20210221-073612.png
slug: /2021/04/spark-kubernetes-performance-tuning.html
diff --git a/apps/blog/_posts/2021/06/neovim.md b/apps/blog/_posts/2021/06/neovim.md
index b938c2e7..0dc0ac07 100644
--- a/apps/blog/_posts/2021/06/neovim.md
+++ b/apps/blog/_posts/2021/06/neovim.md
@@ -4,10 +4,9 @@ date: '2021-06-15'
author: Duyet
category: Productivity
tags:
- - Dev
- Vim
- - NeoVim
- - Code Editor
+ - Neovim
+ - IDE
thumbnail: https://1.bp.blogspot.com/-D5-xqeucXwM/YMi6sJPYO7I/AAAAAAACGPg/7bD9Fb7RESkklbaVh_s72hqyIj5dlEmYQCLcBGAsYHQ/s0/Screen%2BShot%2B2021-06-15%2Bat%2B20.13.21.png
slug: /2021/06/neovim.html
description: I migrated to NeoVim, after six month with Vim.
diff --git a/apps/blog/_posts/2021/08/bitbucket-pipelines-notes.md b/apps/blog/_posts/2021/08/bitbucket-pipelines-notes.md
index dc068f1d..134c782b 100644
--- a/apps/blog/_posts/2021/08/bitbucket-pipelines-notes.md
+++ b/apps/blog/_posts/2021/08/bitbucket-pipelines-notes.md
@@ -6,7 +6,6 @@ category: Productivity
tags:
- Data Engineering
- Git
- - Bitbucket
thumbnail: https://1.bp.blogspot.com/-n5JQguH7_m8/YSm0Goi6CsI/AAAAAAACNKs/Qc1CH4ETIwcN06Iw6fBswAikkl56mhmYQCLcBGAsYHQ/s16000/Screen%2BShot%2B2021-08-27%2Bat%2B9.24.21%2BPM.png
slug: /2021/08/bitbucket-pipelines-notes.html
description: Bitbucket Pipelines document is fragmented everywhere. It always makes me search for a while every time I write a new one for CI/CD. So I'll make a few notes here.
diff --git a/apps/blog/_posts/2021/11/spark-node-decommission.md b/apps/blog/_posts/2021/11/spark-node-decommission.md
index ef576e76..18bf7449 100644
--- a/apps/blog/_posts/2021/11/spark-node-decommission.md
+++ b/apps/blog/_posts/2021/11/spark-node-decommission.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data
tags:
- Data Engineering
- - Spark
+ - Apache Spark
- Kubernetes
slug: /2021/11/spark-node-decommission.html
thumbnail: https://1.bp.blogspot.com/--34hINH9_uQ/YZqJZ0URtWI/AAAAAAACXDw/yGn6wkjBWaMDfSZL3Hylwz6ILzP4xKDvACLcBGAsYHQ/s0/spark-spot-node-shutdown.png
diff --git a/apps/blog/_posts/2021/12/rust-ownership.md b/apps/blog/_posts/2021/12/rust-ownership.md
index 613161b7..2686f97c 100644
--- a/apps/blog/_posts/2021/12/rust-ownership.md
+++ b/apps/blog/_posts/2021/12/rust-ownership.md
@@ -7,7 +7,6 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
slug: /2021/12/rust-ownership.html
description: Ownership là một trong những tính năng đặc trưng của Rust, đây là cách giúp Rust đảm bảo memory safety mà không cần đến garbage collector.
---
diff --git a/apps/blog/_posts/2022/01/rust-cheatsheet.md b/apps/blog/_posts/2022/01/rust-cheatsheet.md
index 2780c4af..f553763f 100644
--- a/apps/blog/_posts/2022/01/rust-cheatsheet.md
+++ b/apps/blog/_posts/2022/01/rust-cheatsheet.md
@@ -6,7 +6,6 @@ category: Rust 🦀
tags:
- Rust
- Rust Tiếng Việt
- - Rust Basic
slug: /2022/01/rust-cheatsheet.html
thumbnail: https://i.imgur.com/bX8iwcM.png
description: This is the best cheat sheet that I have ever seen. It breaks down the different categories, from language constructs, data layouts, types, tooling, etc.
diff --git a/apps/blog/_posts/2022/01/rust-format-strings-1.58.md b/apps/blog/_posts/2022/01/rust-format-strings-1.58.md
index c50edafb..2b3b9195 100644
--- a/apps/blog/_posts/2022/01/rust-format-strings-1.58.md
+++ b/apps/blog/_posts/2022/01/rust-format-strings-1.58.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/01/rust-format-strings-1.58.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F01%2Frust-turbofish.html
thumbnail: https://i.imgur.com/OrkBRwV.png
diff --git a/apps/blog/_posts/2022/01/rust-fromstr.md b/apps/blog/_posts/2022/01/rust-fromstr.md
index f04f2240..4608c593 100644
--- a/apps/blog/_posts/2022/01/rust-fromstr.md
+++ b/apps/blog/_posts/2022/01/rust-fromstr.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/01/rust-fromstr.html
thumbnail: https://i.imgur.com/HlquQNu.png
description: FromStr là một trait để khởi tạo instance từ string trong Rust, nó tương đương abstract class nếu bạn có background OOP.
diff --git a/apps/blog/_posts/2022/01/rust-turbofish.md b/apps/blog/_posts/2022/01/rust-turbofish.md
index e777a106..c1f0573e 100644
--- a/apps/blog/_posts/2022/01/rust-turbofish.md
+++ b/apps/blog/_posts/2022/01/rust-turbofish.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/01/rust-turbofish.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F01%2Frust-turbofish.html
thumbnail: https://i.imgur.com/RI41eNJ.png
diff --git a/apps/blog/_posts/2022/02/cargo-edit.md b/apps/blog/_posts/2022/02/cargo-edit.md
index b766681a..be87e498 100644
--- a/apps/blog/_posts/2022/02/cargo-edit.md
+++ b/apps/blog/_posts/2022/02/cargo-edit.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/02/cargo-edit.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F02%2Fcargo-edit.html
thumbnail: https://i.imgur.com/zy1QIYA.png
diff --git a/apps/blog/_posts/2022/02/grant-redshift-gitops.md b/apps/blog/_posts/2022/02/grant-redshift-gitops.md
index 6a7bb73d..d9f558bd 100644
--- a/apps/blog/_posts/2022/02/grant-redshift-gitops.md
+++ b/apps/blog/_posts/2022/02/grant-redshift-gitops.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data
tags:
- Rust
- - Redshift
+ - Database
- Data Engineering
slug: /2022/02/grant-redshift-gitops.html
thumbnail: https://i.imgur.com/ooGg2k5.png
diff --git a/apps/blog/_posts/2022/02/rust-builder-design-pattern.md b/apps/blog/_posts/2022/02/rust-builder-design-pattern.md
index a11d7969..1087812e 100644
--- a/apps/blog/_posts/2022/02/rust-builder-design-pattern.md
+++ b/apps/blog/_posts/2022/02/rust-builder-design-pattern.md
@@ -8,7 +8,7 @@ tags:
- Vietnamese
- Rust Tiếng Việt
- Rust Design Patterns
- - Creational Patterns
+ - Design Patterns
slug: /2022/02/rust-builder-design-pattern.html
description: Builder được sử dụng cực kỳ phổ biến trong Rust so với các ngôn ngữ khác, bởi vì Rust không có overloading.
---
diff --git a/apps/blog/_posts/2022/02/rust-copy-clone-trait.md b/apps/blog/_posts/2022/02/rust-copy-clone-trait.md
index 7301943f..161c81b8 100644
--- a/apps/blog/_posts/2022/02/rust-copy-clone-trait.md
+++ b/apps/blog/_posts/2022/02/rust-copy-clone-trait.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/02/rust-copy-clone-trait.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F02%2Frust-copy-clone-trait.html
thumbnail: https://i.imgur.com/shjfLWK.png
diff --git a/apps/blog/_posts/2022/02/rust-option-result.md b/apps/blog/_posts/2022/02/rust-option-result.md
index f1a10f0c..e6583698 100644
--- a/apps/blog/_posts/2022/02/rust-option-result.md
+++ b/apps/blog/_posts/2022/02/rust-option-result.md
@@ -6,7 +6,7 @@ category: Rust 🦀
tags:
- Rust
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/02/rust-option-result.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F02%2Frust-option-result.html
description: Rust giới thiệu hai generic enums Option và Result để giải quyết các vấn đề null pointer exceptions, exception data leak, ...
diff --git a/apps/blog/_posts/2022/02/rust-small-crates-design-pattern.md b/apps/blog/_posts/2022/02/rust-small-crates-design-pattern.md
index 0acd48d6..fd5075d8 100644
--- a/apps/blog/_posts/2022/02/rust-small-crates-design-pattern.md
+++ b/apps/blog/_posts/2022/02/rust-small-crates-design-pattern.md
@@ -8,7 +8,7 @@ tags:
- Vietnamese
- Rust Tiếng Việt
- Rust Design Patterns
- - Structural Patterns
+ - Design Patterns
slug: /2022/02/rust-small-crates-design-pattern.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2021%2F12%2Frust-strategy-design-pattern.html
description: Prefer small crates that do one thing well. Để có được sự hiệu quả, mọi crate phải được thiết kế tốt, lựa chọn dependencies kỹ càng và càng độc lập càng tốt.
diff --git a/apps/blog/_posts/2022/02/rust-struct.md b/apps/blog/_posts/2022/02/rust-struct.md
index b77898af..f19d8712 100644
--- a/apps/blog/_posts/2022/02/rust-struct.md
+++ b/apps/blog/_posts/2022/02/rust-struct.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/02/rust-struct.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F02%2Frust-struct.html
description: Struct được sử dụng trong Rust rất nhiều, hầu như là mọi lúc. Với struct ta có thể định nghĩa một kiểu dữ liệu riêng.
diff --git a/apps/blog/_posts/2022/02/rust-trait.md b/apps/blog/_posts/2022/02/rust-trait.md
index 19970c0f..2abe699d 100644
--- a/apps/blog/_posts/2022/02/rust-trait.md
+++ b/apps/blog/_posts/2022/02/rust-trait.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/02/rust-trait.html
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F02%2Frust-trait.html
thumbnail: https://i.imgur.com/ZKHSRQK.png
diff --git a/apps/blog/_posts/2022/03/rust-box.md b/apps/blog/_posts/2022/03/rust-box.md
index c66a2b83..5b7d9d08 100644
--- a/apps/blog/_posts/2022/03/rust-box.md
+++ b/apps/blog/_posts/2022/03/rust-box.md
@@ -7,7 +7,7 @@ tags:
- Rust
- Vietnamese
- Rust Tiếng Việt
- - Rust Basic
+
slug: /2022/03/rust-box.html
thumbnail: https://i.imgur.com/Axgh2R9.png
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F03%2Frust-box.html
diff --git a/apps/blog/_posts/2022/03/spark-kubernetes-at-fossil.md b/apps/blog/_posts/2022/03/spark-kubernetes-at-fossil.md
index 19a19e2f..e8b83184 100644
--- a/apps/blog/_posts/2022/03/spark-kubernetes-at-fossil.md
+++ b/apps/blog/_posts/2022/03/spark-kubernetes-at-fossil.md
@@ -6,7 +6,7 @@ category: Data
tags:
- Vietnamese
- Data Engineering
- - Spark
+ - Apache Spark
- Kubernetes
slug: /2022/03/spark-kubernetes-at-fossil.html
thumbnail: https://blogger.googleusercontent.com/img/a/AVvXsEggpb4U-cWkhLQo1R-OUORtAvLFPnn0LB22LJ9mOBSpWiC3yoqM3iOoo1BlilS5nxhnOmNs8JyUsVHFdA4dKOLGqRH9WoBXAJxn8v-cg18QFuJFbPHwg_5V6N_0gtgtRpy41fCLICGakuAayr9p5Bwlr02rrmDVjYxOBU4hwL6Oz4gWWXs0VFYDQK-lFw
@@ -46,7 +46,7 @@ Data chuyển từ Spark trên AWS EMR sang Kubernetes.
@@ -83,7 +83,7 @@ và _event-driven architecture_ với nhiều thành phần chạy trên Kuberne
team bắt đầu nghĩ đến việc deploy Spark Jobs trên Kubernetes thay vì EMR, có một số ưu điểm có thể kể đến:
- Tiết kiệm chi phí, bao gồm chi phí cho việc đợi provisioning và bootstrapping phức tạp, costing được tính theo giây, việc này cũng giúp loại bỏ chi phí quản lý EMR cluster, khoảng **$700-$800** cho một tháng (chưa bao gồm chi phí EC2).
-- Spark trên YARN cũng tốn chi phí maintenance không nhỏ.
+- Apache Spark trên YARN cũng tốn chi phí maintenance không nhỏ.
- Tiết kiệm chi phí do không phải duy trì một lúc 3 Node Master HA.
- Không thể chạy nhiều version của Spark khác nhau, ví dụ đang sử dụng Spark 2.4.x, bạn cần upgrade một số Application lên Spark 3.x để dùng tính năng mới, bắt buộc phải upgrade các Application cũ hoặc cài đặt một Cluster EMR mới. Ngược lại Spark trên Kubernetes cho phép chạy các driver, executer trên các Kubernetes Pod, mỗi Pod gồm 1 container nên có thể isolated workloads dễ dàng. Ngoài ra có thể thừa hưởng được mọi tính năng của Kubernetes như:
- [Request/Limit](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/): điều chỉnh hay giới hạn resources (mem, cpu), số lượng Pod cho mỗi Spark Application.
@@ -118,7 +118,7 @@ Team sử dụng Livy, đây là một service cho phép tương tác với Spar
Tuy nhiên lại có một số điểm hạn chế như do delay từ Airflow Scheduler, Livy cũng dễ bị stuck. Nếu một jobs chạy lâu nhưng Livy bị restart thì Jobs đó cũng bị ảnh hưởng theo. Team quyết định nâng cấp.
-# 3. Spark on Kubernetes - Spark Operator
+# 3. Spark on Kubernetes - Apache Spark Operator
Sau khi đánh giá khả năng của Spark Operator bởi GCP Google, team quyết định đi đến phiên bản 2.0 của architecture. Các thành phần sẽ như hình dưới đây:
diff --git a/apps/blog/_posts/2022/09/airflow-dataset.md b/apps/blog/_posts/2022/09/airflow-dataset.md
index aa87d3e5..e144e681 100644
--- a/apps/blog/_posts/2022/09/airflow-dataset.md
+++ b/apps/blog/_posts/2022/09/airflow-dataset.md
@@ -6,7 +6,7 @@ category: Data
tags:
- Data
- Data Engineering
- - Airflow
+ - Apache Airflow
slug: /2022/09/airflow-dataset.html
thumbnail: https://i.imgur.com/oESqHNY.png
twitterCommentUrl: https://twitter.com/search?q=https%3A%2F%2Fblog.duyet.net%2F2022%2F09%2Fairflow-dataset.html
diff --git a/apps/blog/_posts/2023/04/helm-charts-problem.md b/apps/blog/_posts/2023/04/helm-charts-problem.md
index 5456d329..6f8c44b9 100644
--- a/apps/blog/_posts/2023/04/helm-charts-problem.md
+++ b/apps/blog/_posts/2023/04/helm-charts-problem.md
@@ -5,7 +5,6 @@ author: Duyet
category: Data
tags:
- DevOps
- - Helm
- Kubernetes
slug: /2023/04/helm-charts-problem.html
thumbnail: https://i.imgur.com/HhcwrAw.png
diff --git a/apps/blog/_posts/2023/05/migrate-blog-to-nextjs.md b/apps/blog/_posts/2023/05/migrate-blog-to-nextjs.md
index a79f172c..d6d2984c 100644
--- a/apps/blog/_posts/2023/05/migrate-blog-to-nextjs.md
+++ b/apps/blog/_posts/2023/05/migrate-blog-to-nextjs.md
@@ -4,7 +4,7 @@ date: '2023-05-01'
author: Duyet
category: Project
tags:
- - Project
+ - Side Project
- Web
- Blog
- React
diff --git a/apps/blog/_posts/2023/05/spark-github-actions.md b/apps/blog/_posts/2023/05/spark-github-actions.md
index 7aea6bac..0e3a2fdc 100644
--- a/apps/blog/_posts/2023/05/spark-github-actions.md
+++ b/apps/blog/_posts/2023/05/spark-github-actions.md
@@ -5,8 +5,8 @@ author: Duyet
category: Data
tags:
- Data
- - Data Engineeringing
- - Spark
+ - Data Engineering
+ - Apache Spark
- Github
slug: /2023/05/spark-github-actions.html
thumbnail: /media/2023/05/spark-github-actions/1.png
diff --git a/apps/blog/_posts/2023/06/fossil-data-platform-written-rust.md b/apps/blog/_posts/2023/06/fossil-data-platform-written-rust.md
index 90cdc7da..a497a06f 100644
--- a/apps/blog/_posts/2023/06/fossil-data-platform-written-rust.md
+++ b/apps/blog/_posts/2023/06/fossil-data-platform-written-rust.md
@@ -6,7 +6,7 @@ category: Rust 🦀
series: Rust Data Engineering
tags:
- Data
- - Data Engineeringing
+ - Data Engineering
- Rust
slug: /2023/06/fossil-data-platform-written-rust.html
thumbnail: /media/2023/06/fossil-data-platform-written-rust/bench-2.png
diff --git a/apps/blog/_posts/2023/07/airflow-control-parallelism-concurrency.md b/apps/blog/_posts/2023/07/airflow-control-parallelism-concurrency.md
index 49f8e15e..89bdb7b5 100644
--- a/apps/blog/_posts/2023/07/airflow-control-parallelism-concurrency.md
+++ b/apps/blog/_posts/2023/07/airflow-control-parallelism-concurrency.md
@@ -5,8 +5,8 @@ author: Duyet
category: Data
tags:
- Data
- - Data Engineeringing
- - Airflow
+ - Data Engineering
+ - Apache Airflow
slug: /2023/07/airflow-control-parallelism-concurrency.html
thumbnail: /media/2023/07/airflow-control-parallelism-concurrency.svg
description: 'How to control parallelism and concurrency'
diff --git a/apps/blog/_posts/2023/09/duckdb.md b/apps/blog/_posts/2023/09/duckdb.md
index baead0e0..e4b12cd9 100644
--- a/apps/blog/_posts/2023/09/duckdb.md
+++ b/apps/blog/_posts/2023/09/duckdb.md
@@ -5,7 +5,7 @@ author: Duyet
category: Data
tags:
- Data
- - Data Engineeringing
+ - Data Engineering
- DuckDB
slug: /2023/09/duckdb.html
thumbnail: /media/2023/09/duckdb/duckdb-introduction.png
@@ -31,7 +31,7 @@ I will cover some basic features of DuckDB and explore some ideas for how it can
- [9. DuckDB with dbt](#9-duckdb-with-dbt)
- [10. DuckDB with Apache Airflow](#10-duckdb-with-apache-airflow)
- [11. Modern Data Stack in a Box with DuckDB](#11-modern-data-stack-in-a-box-with-duckdb)
-- [12. DuckDB instead of Spark](#12-duckdb-instead-of-spark)
+ - [12. DuckDB instead of Spark](#12-duckdb-instead-of-spark)
- [13. Conclusion](#13-conclusion)
- [14. References](#14-references)
diff --git a/apps/blog/_posts/2023/09/nvim-setup-2023.md b/apps/blog/_posts/2023/09/nvim-setup-2023.md
index b689d854..5209bce8 100644
--- a/apps/blog/_posts/2023/09/nvim-setup-2023.md
+++ b/apps/blog/_posts/2023/09/nvim-setup-2023.md
@@ -7,7 +7,7 @@ tags:
- Productivity
- Neovim
- Vim
- - Code Editor
+ - IDE
slug: /2023/09/nvim-setup-2023.html
thumbnail: /media/2023/09/nvim/screenshot_4.png
description: It's been years since I first started using neovim and I've been updating it regularly ever since.
diff --git a/apps/blog/_posts/2024/02/2023-summary.md b/apps/blog/_posts/2024/02/2023-summary.md
index ff78ecf0..203e7101 100644
--- a/apps/blog/_posts/2024/02/2023-summary.md
+++ b/apps/blog/_posts/2024/02/2023-summary.md
@@ -5,7 +5,7 @@ author: Duyet
category: Story
tags:
- Story
- - Summary
+ - Year In Review
slug: /2024/02/2023-summary.html
thumbnail: /media/2024/02/2023-summary/working-in-kl.jpeg
description: So, I hadn't really planned on writing a summary post for this year, as lazy as I am, but somehow, here we are.
diff --git a/apps/blog/app/[year]/[month]/[slug]/meta/meta.tsx b/apps/blog/app/[year]/[month]/[slug]/meta/meta.tsx
index aea0b5fe..3dae4f30 100644
--- a/apps/blog/app/[year]/[month]/[slug]/meta/meta.tsx
+++ b/apps/blog/app/[year]/[month]/[slug]/meta/meta.tsx
@@ -31,7 +31,7 @@ export default function Content({ post, className }: ContentProps) {
{post.category}
•
-
+
{post.tags.map((tag) => (
{tag}
diff --git a/apps/blog/app/[year]/page.tsx b/apps/blog/app/[year]/page.tsx
index 9a571504..f8435464 100644
--- a/apps/blog/app/[year]/page.tsx
+++ b/apps/blog/app/[year]/page.tsx
@@ -1,6 +1,6 @@
import YearList from '@duyet/components/YearList'
import { getPostsByAllYear } from '@duyet/libs/getPost'
-import { Year } from '../../components/year'
+import { YearPost } from '../../components/year-post'
// Dynamic segments not included in generateStaticParams will return a 404.
// https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamicparams
@@ -17,7 +17,7 @@ export default async function YearPage({ params }: YearProps) {
return (
<>
-
+
diff --git a/apps/blog/app/archives/page.tsx b/apps/blog/app/archives/page.tsx
index afe34534..facdb4ea 100644
--- a/apps/blog/app/archives/page.tsx
+++ b/apps/blog/app/archives/page.tsx
@@ -1,28 +1,32 @@
+import Link from 'next/link'
+
import Container from '@duyet/components/Container'
-import YearList from '@duyet/components/YearList'
import { getPostsByAllYear } from '@duyet/libs/getPost'
-import { Year } from '../../components/year'
+import { YearPost } from '../../components/year-post'
export default function Archives() {
- const yearLimit = 5
- const postsByYear = getPostsByAllYear(
- ['slug', 'title', 'date', 'category'],
- yearLimit,
+ const postsByYear = getPostsByAllYear(['slug', 'title', 'date', 'category'])
+ const postCount = Object.values(postsByYear).reduce(
+ (acc, yearPosts) => acc + yearPosts.length,
+ 0,
)
+ const years = Object.keys(postsByYear).map(Number)
+ const pastYears = new Date().getFullYear() - Math.min(...years)
+
return (
+ Lists all {postCount} posts of the past {pastYears} years. You can also
+ explore by the topics.
+