-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
60 lines (60 loc) · 44.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<!doctype html><html class=no-js lang=en-us><head><meta name=generator content="Hugo 0.79.0"><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=x-ua-compatible content="IE=edge"><meta name=theme-color content="#ffffff"><meta name=msapplication-TileColor content="#ffffff"><title>We Are No Dev</title><script>(function(d,e){d[e]=d[e].replace("no-js","js");})(document.documentElement,"className");</script><meta name=description content="HaRiSK's Personal blog about everything"><meta property="og:title" content="We Are No Dev"><meta property="og:description" content="HaRiSK's Personal blog about everything"><meta property="og:type" content="website"><meta property="og:url" content="/"><meta property="og:updated_time" content="2020-12-05T00:00:00+00:00"><meta name=twitter:card content="summary"><meta name=twitter:title content="We Are No Dev"><meta name=twitter:description content="HaRiSK's Personal blog about everything"><link rel=icon type=image/png href=/favicon.png><link rel=apple-touch-icon href=/favicon.png><meta name=msapplication-TileImage content="/favicon.png"><link rel=alternate type=application/rss+xml href=/index.xml title="We Are No Dev"><link href="https://fonts.googleapis.com/css2?family=Muli:ital,wght@0,400;0,500;0,700;0,800;1,400&display=swap" rel=stylesheet><link href=/vendor/font-awesome/4.7.0/css/font-awesome.min.css rel=stylesheet><link rel=stylesheet href=/css/style.min.3593336bd12106f4ab3d37ce2fd3db6b.css integrity="md5-NZMza9EhBvSrPTfOL9Pbaw=="><link rel=stylesheet href=/css/spacing_helpers.min.css><link rel=stylesheet href=/css/custom.css><script type=application/javascript>var doNotTrack=false;if(!doNotTrack){window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;ga('create','UA-162061519-2','auto');ga('send','pageview');}</script><script async src=https://www.google-analytics.com/analytics.js></script></head><body class=body><div class="container container--outer"><header class=header><div class=container><div class=logo><a href=/ title="We Are No Dev" rel=home><img src=/favicon.png alt="We Are No Dev" class=header__favicon></a>
<a class=logo__link href=/ title="We Are No Dev" rel=home><div class=logo__title>We Are No Dev</div><div class=logo__tagline>We are NOT ONLY Developers</div></a><img src=/img/outline-banner.png alt="We Are No Dev" class=header__banner_img></div><nav class=menu><button class=menu__btn aria-haspopup=true aria-expanded=false tabindex=0>
<span class=menu__btn-title tabindex=-1>Menu</span></button><ul class=menu__list><li class=menu__item><a class=menu__link href=/about/><span class=menu__text>About</span></a></li></ul></nav></div></header><div class="wrapper flex"><div class=primary><main class="main list" role=main><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/database/build-thrift-service-on-top-of-rocksdb/><img src=/img/icon/rocksdb.png alt="Build Thrift Service on top of RocksDB"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/database/build-thrift-service-on-top-of-rocksdb/ rel=bookmark>Build Thrift Service on top of RocksDB</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-12-05T00:00:00Z>Dec 05, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/database/ rel=category>Database</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Mình đã build <a href=https://thrift.apache.org/>Thrift service</a> (<strong>a RPC Framework</strong>) on top of <a href=https://rocksdb.org/>RocksDB</a> (<strong>an embeddable persistent key-value storage</strong>) như một database sử dụng cho một số projects khi làm việc tại <a href=https://zalo.careers/>Zalo</a>. Hiệu năng mà RocksDB cùng với Thrift mang lại kết quả khá tuyệt vời với <strong>khả năng đọc ghi dữ liệu cao</strong>, phù hợp sử dụng cho các tools mình thực hiện tại Zalo khi không yêu cầu sử dụng DB nội bộ của công ty.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/database/build-thrift-service-on-top-of-rocksdb/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/security/tong-hop-top-10-loi-bao-mat-owasp-2017/><img src=/img/icon/owasp.png alt="Tổng hợp top 10 lỗi bảo mật từ OWASP báo cáo năm 2017"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/security/tong-hop-top-10-loi-bao-mat-owasp-2017/ rel=bookmark>Tổng hợp top 10 lỗi bảo mật từ OWASP báo cáo năm 2017</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-10-30T00:00:00Z>Oct 30, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/security/ rel=category>Security</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Dựa trên báo cáo tổng hợp về các lỗi bảo mật từ <strong>OWASP</strong> (<em>Open Web Application Security Project</em>) năm <em>2017</em>, mình xin chia sẻ lại về các lỗi bảo mật thường gặp và phổ biến, cũng như một số từ khóa thường gặp trong lĩnh vực an ninh mạng.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/security/tong-hop-top-10-loi-bao-mat-owasp-2017/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/network/tom-tat-su-khac-biet-giua-cac-version-cua-http-1.0-1.1-2.0/><img src=/img/icon/http.png alt="Tóm tắt sự khác biệt giữa các version của HTTP 1.0, 1.1 và 2.0"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/network/tom-tat-su-khac-biet-giua-cac-version-cua-http-1.0-1.1-2.0/ rel=bookmark>Tóm tắt sự khác biệt giữa các version của HTTP 1.0, 1.1 và 2.0</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-10-25T00:00:00Z>Oct 25, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/network/ rel=category>Network</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Khái niệm HTTP, các phiên bản của HTTP. Sự khác biệt giữa <strong>HTTP 1.0</strong> vs. <strong>HTTP 1.1</strong>, và sự khác biệt giữa <strong>HTTP 2.0</strong> vs. <strong>HTTP 1.1</strong>.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/network/tom-tat-su-khac-biet-giua-cac-version-cua-http-1.0-1.1-2.0/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/elasticsearch/discord-da-thiet-lap-elasticsearch-ntn-de-index-hang-ty-messages/><img src=/img/icon/elasticsearch.png alt="Discord đã thiết lập Elasticsearch như thế nào để có thể index hàng tỷ messages?"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/elasticsearch/discord-da-thiet-lap-elasticsearch-ntn-de-index-hang-ty-messages/ rel=bookmark>Discord đã thiết lập Elasticsearch như thế nào để có thể index hàng tỷ messages?</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-09-23T00:00:00Z>Sep 23, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/elasticsearch/ rel=category>Elasticsearch</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong><a href=https://discord.com/>Discord</a></strong> tuy <em>sinh sau đẻ muộn</em> so với các ông lớn khác nhưng là một trong những ứng dụng chat được sử dụng rộng rãi, đặc biệt trong gaming. Một điều thú vị là ở Discord, họ sử dụng <a href=https://www.elastic.co/>Elasticsearch</a> cho việc <em>index</em> và <em>search</em> các messages. Vậy Discord đã index <em>hàng tỷ messages</em> của họ như thế nào?</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/elasticsearch/discord-da-thiet-lap-elasticsearch-ntn-de-index-hang-ty-messages/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/elasticsearch/monitor-your-elasticsearch-cluster-with-grafana-and-prometheus/><img src=/img/icon/elasticsearch.png alt="Monitor your Elasitcsearch Cluster with Grafana and Prometheus"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/elasticsearch/monitor-your-elasticsearch-cluster-with-grafana-and-prometheus/ rel=bookmark>Monitor your Elasitcsearch Cluster with Grafana and Prometheus</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-09-09T00:00:00Z>Sep 09, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/elasticsearch/ rel=category>Elasticsearch</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Monitoring Elasticsearch Cluster</strong> is <em>necessary</em> and <em>important</em> for both testing and production. <em>Kibana</em> and <em>Grafana</em> are awesome tools for <em>monitoring</em> and <em>visualization</em>. In this post, I’ll introduce how to monitor Elasticsearch Cluster by using <strong>Grafana</strong> with <strong>datasource is Prometheus</strong>.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/elasticsearch/monitor-your-elasticsearch-cluster-with-grafana-and-prometheus/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/javascript/advance/vietnamese-search-in-datatables/><img src=/img/icon/javascript.png alt="Tìm kiếm dữ liệu Tiếng Việt không dấu trong DataTables"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/javascript/advance/vietnamese-search-in-datatables/ rel=bookmark>Tìm kiếm dữ liệu Tiếng Việt không dấu trong DataTables</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-05-31T00:00:00Z>May 31, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/javascript/ rel=category>JavaScript</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Khi sử dụng plugin <a href=https://datatables.net/>DataTables</a> cho <strong>dữ liệu Tiếng Việt</strong> có dấu, khi ta thực hiện <strong>search</strong> bằng các từ <strong>Tiếng Việt không dấu,</strong> datatables sẽ <strong>không</strong> tìm kiếm được các dữ liệu liên quan. Trong bài viết này, mình sẽ chia sẻ một cách để giải quyết vấn đề này.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/javascript/advance/vietnamese-search-in-datatables/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/javascript/advance/remove-accents-in-vietnamese/><img src=/img/icon/javascript.png alt="Chuyển từ Tiếng Việt có dấu về chữ cái Latin trong JavaScript"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/javascript/advance/remove-accents-in-vietnamese/ rel=bookmark>Chuyển từ Tiếng Việt có dấu về chữ cái Latin trong JavaScript</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2020-05-16T00:00:00Z>May 16, 2020</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/javascript/ rel=category>JavaScript</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Bài viết này hướng dẫn cách chuyển từ <strong>Tiếng Việt có dấu</strong> về chữ cái <strong>Latin</strong> trong <em>JavaScript</em> 🇻🇳🇻🇳🇻🇳.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/javascript/advance/remove-accents-in-vietnamese/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/java/basic/thread/thread-pooled-server-trong-java/><img src=/img/icon/java.png alt="Thread Pooled Server trong Java"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/java/basic/thread/thread-pooled-server-trong-java/ rel=bookmark>Thread Pooled Server trong Java</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2019-08-19T00:00:00Z>Aug 19, 2019</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/java/ rel=category>Java</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Thread Pooled server</strong> là một kiểu thiết kế server thuộc kiểu multithreaded, tuy nhiên thay vì tạo mới các thread cho mỗi request đến, kiểu thiết kế này sử dụng một pool các thread để tái sử dụng. Để phân biệt các kiểu thiết kế này, các bạn có thể tham khảo trong chuỗi bài viết này.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/java/basic/thread/thread-pooled-server-trong-java/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/java/basic/thread/multithreaded-server-trong-java/><img src=/img/icon/java.png alt="Multithreaded Server trong Java"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/java/basic/thread/multithreaded-server-trong-java/ rel=bookmark>Multithreaded Server trong Java</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2019-08-18T00:00:00Z>Aug 18, 2019</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/java/ rel=category>Java</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Multithreaded server</strong> hay <strong>server đa luồng</strong> là kiểu thiết kế server sử dụng luồng chính để nhận request từ client và sử dụng các worker thread để xử lý các request. Để phân biệt các kiểu server này, các bạn có thể quay về bài viết trước tại đây. Bài viết này sẽ giới thiệu về cách hiện thực một server đa luồng đơn giản trong Java.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/java/basic/thread/multithreaded-server-trong-java/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/java/basic/thread/singlethreaded-server-trong-java/><img src=/img/icon/java.png alt="Singlethreaded Server trong Java"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/java/basic/thread/singlethreaded-server-trong-java/ rel=bookmark>Singlethreaded Server trong Java</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2019-08-17T00:00:00Z>Aug 17, 2019</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/java/ rel=category>Java</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Singlethreaded server</strong> hay <strong>server đơn luồng</strong> là một kiểu thiết kế server chạy trên một luồng duy nhất. Để phân biệt các kiểu server này, các bạn có thể quay về bài viết trước tại đây. Bài viết này sẽ giới thiệu về cách hiện thực một server đơn luồng trong Java.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/java/basic/thread/singlethreaded-server-trong-java/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/database/memcached-la-gi-va-cach-luu-tru-trong-memcached/><img src=/img/icon/memcached-padding.png alt="Memcached là gì? Cách lưu trữ trong Memcached"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/database/memcached-la-gi-va-cach-luu-tru-trong-memcached/ rel=bookmark>Memcached là gì? Cách lưu trữ trong Memcached</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/vi64.png alt=vi width=16px></i>
<span class=meta__text>Vietnamese</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2019-08-08T00:00:00Z>Aug 08, 2019</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/database/ rel=category>Database</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Understanding Memcached</strong> - Tìm hiểu về <strong>Memcached</strong>, các nguyên tắc hoạt động ở <em>memcached client</em>, <em>memcached server</em>, các khái niệm <code>Consistent Hashing</code>, <code>Slab Allocation</code>, cách hiện thực <em>LRU</em> và <em>Hash Table</em> trong memcached server.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/database/memcached-la-gi-va-cach-luu-tru-trong-memcached/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/cloud/launch-amazon-ec2-instance-with-aws-free-tier-ubuntu-server-18/><img src=/img/icon/aws-padding.png alt="Launch Amazon EC2 Instance with AWS Free Tier - Ubuntu Server 18.04 LTS"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/cloud/launch-amazon-ec2-instance-with-aws-free-tier-ubuntu-server-18/ rel=bookmark>Launch Amazon EC2 Instance with AWS Free Tier - Ubuntu Server 18.04 LTS</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-05-02T00:00:00Z>May 02, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/cloud/ rel=category>Cloud</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Launch <a href=https://aws.amazon.com/ec2/instance-types/>Amazon EC2 Instance</a> with <a href=https://aws.amazon.com/free/>AWS Free Tier</a> - Ubuntu Server 18.04 LTS</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/cloud/launch-amazon-ec2-instance-with-aws-free-tier-ubuntu-server-18/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/nodejs/advance/how-to-use-es7-import-export-and-async-await-nodejs/><img src=/img/icon/nodejs.png alt="How to Use ES7 Import/Export, Async/Await in Node.js?"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/nodejs/advance/how-to-use-es7-import-export-and-async-await-nodejs/ rel=bookmark>How to Use ES7 Import/Export, Async/Await in Node.js?</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-04-29T00:00:00Z>Apr 29, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/nodejs/ rel=category>NodeJS</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><strong>Javascript ES7 syntax</strong> allow you use keywords such as <code>import/export</code>, <code>async/await</code>, which improve ES5, ES6 syntax. But in Node.js is not supported for ES7 syntax. In this tutorial, I’ll introduce you <code>babel.js</code> to use ES7 syntax.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/nodejs/advance/how-to-use-es7-import-export-and-async-await-nodejs/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/nodejs/advance/how-to-use-environment-variables-in-node-js/><img src=/img/icon/nodejs.png alt="How to Use Environment Variables in Node.js?"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/nodejs/advance/how-to-use-environment-variables-in-node-js/ rel=bookmark>How to Use Environment Variables in Node.js?</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-04-26T00:00:00Z>Apr 26, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/nodejs/ rel=category>NodeJS</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>Working with <strong>Environment Variables</strong> is <strong>IMPORTANT</strong> in <em>Software Development</em>. Every stage, such as <em>Development</em>, <em>Testing</em> or <em>Production</em>, uses its environment variables. It also <em>secures</em> the Privacy for Production on clouds such as <em>Heroku</em>, <em>AWS</em>, <em>Azure</em>,… How do we do that in NodeJS?</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/nodejs/advance/how-to-use-environment-variables-in-node-js/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/nodejs/advance/custom-search-engine-in-nodejs-with-google-api/><img src=/img/icon/nodejs.png alt="How to Use Custom Search Engine (CSE) in Node.js with Google API?"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/nodejs/advance/custom-search-engine-in-nodejs-with-google-api/ rel=bookmark>How to Use Custom Search Engine (CSE) in Node.js with Google API?</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-04-20T00:00:00Z>Apr 20, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/nodejs/ rel=category>NodeJS</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><a href=https://developers.google.com/custom-search>Google Custom Search</a> enables you to create <strong>a search engine</strong> for your website, your blog, or a collection of websites. How does <strong>NodeJS</strong> use <em>Google Custom Search</em> by using Google APIs?</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/nodejs/advance/custom-search-engine-in-nodejs-with-google-api/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/heroku/deploy-nodejs-with-postgresql-to-heroku-using-add-ons/><img src=/img/icon/heroku.png alt="Deploy Node.js with PostgreSQL to Heroku using Add-ons"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/heroku/deploy-nodejs-with-postgresql-to-heroku-using-add-ons/ rel=bookmark>Deploy Node.js with PostgreSQL to Heroku using Add-ons</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-04-15T00:00:00Z>Apr 15, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/heroku/ rel=category>Heroku</a>, <a class=meta__link href=/categories/nodejs/ rel=category>NodeJS</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><a href=https://www.heroku.com/>Heroku</a> allows developers to deploy <strong>Node.js</strong> app with <strong>PostgreSQL</strong> database on their platform. This is a simple tutorial for deploying a similar application using Node.js and PostgreSQL.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/heroku/deploy-nodejs-with-postgresql-to-heroku-using-add-ons/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/heroku/deploy-nodejs-with-mongodb-to-heroku-using-mlab/><img src=/img/icon/heroku.png alt="Deploy Node.js with MongoDB to Heroku using mLab"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/heroku/deploy-nodejs-with-mongodb-to-heroku-using-mlab/ rel=bookmark>Deploy Node.js with MongoDB to Heroku using mLab</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-04-11T00:00:00Z>Apr 11, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/heroku/ rel=category>Heroku</a>, <a class=meta__link href=/categories/nodejs/ rel=category>NodeJS</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p><a href=https://www.heroku.com/>Heroku</a> allows developers to deploy <strong>Node.js</strong> app with <strong>MongoDB</strong> as a <em>plugin</em> on their platform. This is a simple tutorial for deploying a similar application using Node.js and MongoDB.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/heroku/deploy-nodejs-with-mongodb-to-heroku-using-mlab/>Read more…</a></div></article><article class="list__item post"><figure class=list__thumbnail><a href=/post/tutorial/linux/how-to-solve-realtek-rtl8723be-weak-wifi-signal-problem-in-ubuntu/><img src=/img/icon/ubuntu.png alt="How to Solve Realtek RTL8723BE Weak Wifi Signal Problem in Ubuntu?"></a></figure><header class=list__header><h3 class="list__title post__title"><a href=/post/tutorial/linux/how-to-solve-realtek-rtl8723be-weak-wifi-signal-problem-in-ubuntu/ rel=bookmark>How to Solve Realtek RTL8723BE Weak Wifi Signal Problem in Ubuntu?</a></h3><div class="list__meta meta"><div class="meta__item meta__item-lang"><i class=meta__icon><img src=/icon/en64.png alt=en width=16px></i>
<span class=meta__text>English</span></div><div class="meta__item-datetime meta__item"><svg class="meta__icon icon icon-time" width="16" height="14" viewBox="0 0 30 28"><path d="M15 0C7 0 1 6 1 14s6 14 14 14 14-6 14-14S23 0 15 0zm0 25C9 25 4 20 4 14S9 3 15 3s11 5 11 11-5 11-11 11zm1-18h-2v8.4l6.8 4.4L22 18l-6-3.8V7z"/></svg><time class=meta__text datetime=2018-02-01T00:00:00Z>Feb 01, 2018</time></div><div class="meta__item-categories meta__item"><svg class="meta__icon icon icon-category" width="16" height="16" viewBox="0 0 16 16"><path d="m7 2 1 2h8v11H0V2z"/></svg><span class=meta__text><a class=meta__link href=/categories/linux/ rel=category>Linux</a></span></div></div></header><div class="content list__excerpt post__content clearfix"><p>How to Solve Realtek RTL8723BE Weak Wifi Signal Problem in Ubuntu? Troubles appear in <strong>laptop HP, running Ubuntu 16.04</strong>.</p></div><div class="list__footer clearfix"><a class="list__footer-readmore btn" href=/post/tutorial/linux/how-to-solve-realtek-rtl8723be-weak-wifi-signal-problem-in-ubuntu/>Read more…</a></div></article></main></div><aside class=sidebar><div class="widget-recent widget"><h4 class=widget__title>Recent Posts</h4><div class=widget__content><ul class=widget__list><li class=widget__item><a class=widget__link href=/post/tutorial/database/build-thrift-service-on-top-of-rocksdb/>Build Thrift Service on top of RocksDB</a></li><li class=widget__item><a class=widget__link href=/post/tutorial/security/tong-hop-top-10-loi-bao-mat-owasp-2017/>Tổng hợp top 10 lỗi bảo mật từ OWASP báo cáo năm 2017</a></li><li class=widget__item><a class=widget__link href=/post/tutorial/network/tom-tat-su-khac-biet-giua-cac-version-cua-http-1.0-1.1-2.0/>Tóm tắt sự khác biệt giữa các version của HTTP 1.0, 1.1 và 2.0</a></li><li class=widget__item><a class=widget__link href=/post/tutorial/elasticsearch/discord-da-thiet-lap-elasticsearch-ntn-de-index-hang-ty-messages/>Discord đã thiết lập Elasticsearch như thế nào để có thể index hàng tỷ messages?</a></li><li class=widget__item><a class=widget__link href=/post/tutorial/elasticsearch/monitor-your-elasticsearch-cluster-with-grafana-and-prometheus/>Monitor your Elasitcsearch Cluster with Grafana and Prometheus</a></li><li class=widget__item><a class=widget__link href=/post/tutorial/javascript/advance/vietnamese-search-in-datatables/>Tìm kiếm dữ liệu Tiếng Việt không dấu trong DataTables</a></li></ul></div></div><div class="widget-categories widget"><h4 class=widget__title>Categories</h4><div class=widget__content><ul class=widget__list><li class=widget__item><a class=widget__link href=/categories/cloud/>Cloud</a></li><li class=widget__item><a class=widget__link href=/categories/database/>Database</a></li><li class=widget__item><a class=widget__link href=/categories/elasticsearch/>Elasticsearch</a></li><li class=widget__item><a class=widget__link href=/categories/heroku/>Heroku</a></li><li class=widget__item><a class=widget__link href=/categories/java/>Java</a></li><li class=widget__item><a class=widget__link href=/categories/javascript/>JavaScript</a></li><li class=widget__item><a class=widget__link href=/categories/linux/>Linux</a></li><li class=widget__item><a class=widget__link href=/categories/network/>Network</a></li><li class=widget__item><a class=widget__link href=/categories/nodejs/>NodeJS</a></li><li class=widget__item><a class=widget__link href=/categories/security/>Security</a></li></ul></div></div><div class="widget-taglist widget"><h4 class=widget__title>Tags</h4><div class=widget__content><a class="widget-taglist__link widget__link btn" href=/tags/adminlte2/ title=AdminLTE2>AdminLTE2 (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/aws/ title=AWS>AWS (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/aws-ec2/ title="AWS - EC2">AWS - EC2 (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/cloud/ title=Cloud>Cloud (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/database/ title=Database>Database (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/elasticsearch/ title=Elasticsearch>Elasticsearch (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/elasticsearch-monitoring/ title="Elasticsearch Monitoring">Elasticsearch Monitoring (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/google-apis/ title="Google APIs">Google APIs (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/grafana/ title=Grafana>Grafana (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/heroku-deployment/ title="Heroku Deployment">Heroku Deployment (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/http/ title=HTTP>HTTP (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/java/ title=Java>Java (4)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/java-basic/ title="Java Basic">Java Basic (3)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/java-thread/ title="Java Thread">Java Thread (3)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/javascript/ title=JavaScript>JavaScript (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/javascript-advance/ title="JavaScript Advance">JavaScript Advance (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/jsrmvi/ title=jsrmvi>jsrmvi (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/linux/ title=Linux>Linux (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/memcached/ title=Memcached>Memcached (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/mongodb/ title=MongoDB>MongoDB (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/mongoose/ title=Mongoose>Mongoose (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/network/ title=Network>Network (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/nodejs/ title=NodeJS>NodeJS (5)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/nodejs-advance/ title="NodeJS Advance">NodeJS Advance (3)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/nodejs-deployment/ title="NodeJS Deployment">NodeJS Deployment (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/npm/ title=NPM>NPM (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/owasp/ title=OWASP>OWASP (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/pgadmin/ title=pgAdmin>pgAdmin (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/postgresql/ title=PostgreSQL>PostgreSQL (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/prometheus/ title=Prometheus>Prometheus (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/robomongo/ title=Robomongo>Robomongo (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/rocksdb/ title=RocksDB>RocksDB (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/security/ title=Security>Security (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/sequelize/ title=Sequelize>Sequelize (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/thrift/ title=Thrift>Thrift (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/ubuntu/ title=Ubuntu>Ubuntu (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/vietnamese/ title=Vietnamese>Vietnamese (2)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/vietnamese-search/ title="Vietnamese Search">Vietnamese Search (1)</a>
<a class="widget-taglist__link widget__link btn" href=/tags/webpack/ title=Webpack>Webpack (1)</a></div></div><span class="widget-social widget m-b-15"><h4 class="widget-social__title widget__title">Social</h4><div class="widget-social__content widget__content"><span class="widget-social__item widget__item"><a class="widget-social__link widget__link btn btn-social-github" title=GitHub rel="noopener noreferrer" href=https://github.com/WeAreNoDev target=_blank><i class="fa fa-github-square"></i></a></span><span class="widget-social__item widget__item"><a class="widget-social__link widget__link btn btn-social-twitter" title=Twitter rel="noopener noreferrer" href=https://twitter.com/huynhsamha target=_blank><i class="fa fa-twitter-square"></i></a></span><span class="widget-social__item widget__item"><a class="widget-social__link widget__link btn btn-social-email" title=Email href=mailto:[email protected]><i class="fa fa-envelope-square"></i></a></span><span class="widget-social__item widget__item"><a class="widget-social__link widget__link btn btn-social-linkedin" title=LinkedIn rel="noopener noreferrer" href=https://linkedin.com/in/huynhsamha target=_blank><i class="fa fa-linkedin-square"></i></a></span></div></span></aside></div><footer class=footer><div class="container footer__container"><div class=footer__copyright>WeAreNoDev © 2020<div><span class=footer__copyright-credits>Made with<i class="fa fa-heart m-l-5 m-r-5" style=color:#eb0025></i>by
<a href=https://github.com/huynhsamha target=_blank>Ha. Huynh Sam</a></span></div></div></div></footer></div><span id=scroll-top><i class="fa fa-caret-up"></i></span><script src=/vendor/jquery/3.5.1/jquery.min.js></script><script src=/vendor/smooth-scroll/dist/smooth-scroll.polyfills.min.js></script><script type=text/javascript src=/js/main.min.f422027a0caaf9eadab59acbeb7e0d9a.js integrity="md5-9CICegyq+eratZrL634Nmg=="></script></body></html>