<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Runi blog</title>
    <link>https://runivn.github.io/</link>
    <description>Recent content on Runi blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 09 Feb 2020 00:45:32 +0700</lastBuildDate>
    
	<atom:link href="https://runivn.github.io/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Hành trình mười năm phần ba - Những bài học</title>
      <link>https://runivn.github.io/post/hanh-trinh-10-nam-4/</link>
      <pubDate>Sun, 09 Feb 2020 00:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/hanh-trinh-10-nam-4/</guid>
      <description>Keymono là công ty build inhouse product cho Docomo - một nhà mạng rất to ở Nhật. Tụi mình build một payment platform, giúp tích hợp tất cả các ví điện tử. Khi một Ecommerce nào muốn tích hợp thanh toán, thay vì phải đi trực tiếp tới Momo/Zalopay/Airpay, ... đơn giản chỉ cần tích hợp với tụi mình, là sẽ có gần như tất cả các ví trên thị trường.</description>
    </item>

    <item>
      <title>Hành trình mười năm phần ba - Những bài học</title>
      <link>https://runivn.github.io/post/hanh-trinh-10-nam-3/</link>
      <pubDate>Sun, 09 Feb 2020 00:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/hanh-trinh-10-nam-3/</guid>
      <description>2017 Thường thì cuộc sống của mỗi con người khi đi làm sẽ có 3 giai đoạn. Cụ thể mà mình nói ở đây là ngành phần mềm, nhưng cũng có thể áp dụng cho tất cả các ngành khác.
Giai đoạn thứ nhất là giai đoạn khởi động, chập chững, bắt đầu đem kiến thức đã học ra coi thử xài được không.
Giai đoạn thứ hai là innovate, boost bản thân lên một tầm cao mới.</description>
    </item>
    
    <item>
      <title>Hành trình mười năm phần hai - Luyện thép</title>
      <link>https://runivn.github.io/post/hanh-trinh-10-nam-2/</link>
      <pubDate>Wed, 29 Jan 2020 00:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/hanh-trinh-10-nam-2/</guid>
      <description>2014 Nếu 5 năm đầu vào Sài Gòn dữ dội 5 phần, thì nửa sau cũng tầm 8 9. Bắt đầu từ đây mình kể sẽ hơi technical một chút.
Bảo vệ luận văn tốt nghiệp xong, trong lúc chờ nhận bằng, tụi mình bắt đầu đi tìm việc. Quãng thời gian này phải gọi là nửa khóc nửa cười. Hai đứa chưa có ý tưởng sẽ vào công ty nào cả, ngồi search và apply lung tung xèng.</description>
    </item>
    
    <item>
      <title>Hành trình mười năm phần một - Thời đại học</title>
      <link>https://runivn.github.io/post/hanh-trinh-10-nam-1/</link>
      <pubDate>Fri, 03 Jan 2020 00:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/hanh-trinh-10-nam-1/</guid>
      <description>Có vài người hóng mình viết review thập kỷ vừa rồi. Nghĩ lại cũng có mấy cái hay ho, viết lại sau này già còn lôi ra đọc.
2010 Mình chân ướt chân ráo bước vào Xì Phố. Hồi đó thi đại học được 24 điểm, dư 6 điểm. Trong thâm tâm của mình trước giờ mình luôn nghĩ mình là một đứa smart, chơi game hay nhất lớp, không học gì nhiều cho lắm nhưng vẫn đậu đại học.</description>
    </item>
    
    <item>
      <title>Bảo mật 2 lớp và ứng dụng (Go code demo)</title>
      <link>https://runivn.github.io/post/2fa/</link>
      <pubDate>Fri, 25 May 2018 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/2fa/</guid>
      <description>Trong thế giới của việc thông tin cá nhân đang ngày càng bị xâm phạm và tấn công, đến thời điểm này đã có gần 10 tỷ accounts bị leaked thì chuyện phải implement một phương pháp đăng nhập có tính bảo mật cao hơn là một chuyện bất cứ cá nhân/tổ chức nào cũng aware được.
Two-factor Authentication là một trong số đó. Trong bài này mình sẽ chia sẻ những kiến thức đã tổng hợp được trong quá trình làm việc với 2FA.</description>
    </item>
    
    <item>
      <title>[Lib hay mỗi tuần] Goconvey - Thay đổi cách test của bạn</title>
      <link>https://runivn.github.io/post/go-convey/</link>
      <pubDate>Fri, 01 Dec 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/go-convey/</guid>
      <description>Lần này mình sẽ review về một Go lib hay ho - GoConvey
TL;DR Một fancy testing tool cho Gophers. Có hỗ trợ Browser UI và một vài concept theo mình là khá hay.
Một số đặc điểm  Behavioral test Browser UI integration (cho cả go test native) Output rất đẹp mắt :)) Concept về execution order thú vị giúp setup + teardown một cách tự nhiên Isolated test cases  Cách cài đặt go get github.</description>
    </item>
    
    <item>
      <title>Truyện tự viết - Biết đâu là định mệnh(p2)</title>
      <link>https://runivn.github.io/post/biet-dau-la-dinh-menh-2/</link>
      <pubDate>Sat, 29 Jul 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/biet-dau-la-dinh-menh-2/</guid>
      <description>&amp;ndash; Ơ, sao biết em ngồi ở đây?
&amp;ndash; Chỉ cần một chút quan sát thôi mà.
Nàng đưa mắt lên nhìn người đối diện. Một phiên bản ngoài đời của avatar facebook, tóc loe hoe, mắt đeo kính cận, có điều ở ngoài có đôi chút khí chất hơn.
&amp;ndash; Anh đến đây từ mấy giờ?
Chàng xoa xoa sống mũi, khẽ đẩy mắt kiếng.
&amp;ndash; Bảy giờ. Anh không nghĩ là em sẽ tới đấy.</description>
    </item>
    
    <item>
      <title>Truyện tự viết - Biết đâu là định mệnh(p1)</title>
      <link>https://runivn.github.io/post/biet-dau-la-dinh-menh/</link>
      <pubDate>Thu, 27 Jul 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/biet-dau-la-dinh-menh/</guid>
      <description>Mùng một Tết, nàng ngủ tới tận 11h sáng.
Việc đầu tiên năm mới của nàng là lướt facebook, xem người ta chúc Tết. Inbox hiện năm mươi mốt tin nhắn, chủ yếu là bạn bè thân quen. Nàng lướt một vòng, mắt nàng dừng lại ở một nick lạ, &amp;ldquo;Nam moi vui ve, hi vong nam nay se duoc lam quen voi em&amp;rdquo;.
Nàng bật cười: &amp;ldquo;Cũng thú vị, đầu năm bổn cô nương đại xá thiên hạ, add friend người không quen biết thử xem sao&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Single endpoint với GraphQL (backend Go)</title>
      <link>https://runivn.github.io/post/graphql/</link>
      <pubDate>Sat, 22 Jul 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/graphql/</guid>
      <description>GraphQL được tạo ra bởi Facebook vào năm 2012, production ready năm 2016 nhưng hiện tại vẫn khá ít công ty và developers Việt Nam sử dụng. Nhân tiện có một khách hàng muốn xài GraphQL nên team mình đã apply vào luôn. Sau khi xài xong thì thấy khá kute phô mai que nên muốn share ít kiến thức tìm hiểu được.
Problem Để hiểu được concreate problem của GraphQL thì phải nói tới REST.</description>
    </item>
    
    <item>
      <title>Goroutine under the hood</title>
      <link>https://runivn.github.io/post/go-routine-under-the-hood/</link>
      <pubDate>Tue, 28 Mar 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/go-routine-under-the-hood/</guid>
      <description>Chắc các bạn cũng không lạ lẫm gì Go nữa, Go là một ngôn ngữ backend được phát triển bởi Google.
Một vài điểm mạnh nổi bật trong Go: - Static binaries - Concurrency - High performance
Trong đó concurrency được coi là first class citizen. Trong bài này mình sẽ đi sâu vào goroutines và cơ chế hoạt động của nó.
Một ít kiến thức căn bản Phân biệt parallelism và concurrenncy: Cả hai đều là cách để thực hiện multi processing programming, nhưng:</description>
    </item>
    
    <item>
      <title>MIR - Sự tinh túy của chú cua bé nhỏ Rust</title>
      <link>https://runivn.github.io/post/rust-mir/</link>
      <pubDate>Sat, 04 Feb 2017 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/rust-mir/</guid>
      <description>Dạo này Rust đang nổi lên như một thế lực khiến một hispter như mình không thể không để tâm. Sau vài ngày dig deeper vào Rust, mình cho rằng Rust là một ngôn ngữ khá hay để &amp;ldquo;học&amp;rdquo;.
Lý do:
 Rust giống C/C++, học Rust các bạn có thể giải các bài toán liên quan tới vùng nhớ- điều mà các Rubylist, Pythonist không quan tâm. Có ownership + borrow system để hỗ trợ memory safety.</description>
    </item>
    
    <item>
      <title>Viết một facebook messenger bot đơn giản cùng Go &#43; ngrok</title>
      <link>https://runivn.github.io/post/go-facebook-bot/</link>
      <pubDate>Thu, 18 Aug 2016 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/go-facebook-bot/</guid>
      <description>Messenger bots của facebook ra cũng khá lâu rồi. Đã có nhiều người sử dụng cho page facebook của mình. Bài này của mình sẽ hướng dẫn các bạn viết 1 con bot tự động trả lời theo pattern có sẵn bằng Go - cho server và ngrok - để publish localhost ra ngoài.
Kiểu này:
Những thứ bạn cần có:
 Một page facebook Nhiêu đủ rồi  Facebook stuffs Đầu tiên bạn vào https://developers.</description>
    </item>
    
    <item>
      <title>Dùng selenium để crawl dữ liệu(Go lang)</title>
      <link>https://runivn.github.io/post/go-selenium/</link>
      <pubDate>Fri, 26 Feb 2016 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/go-selenium/</guid>
      <description>Crawl dữ liệu Crawl là một vấn đề hay gặp trong quá trình làm software. Ví dụ lấy tin tức, tin giảm giá, vé xem phim&amp;hellip; là những dạng của crawl. Một cách khá đơn giản đó là phân tích HTML, đọc các thẻ và rút trích dữ liệu. Thư viện trên Go mình hay dùng đó là goquery.
Tuy nhiên việc crawl một trang bằng đọc HTML thuần sẽ không work được trong một số trường hợp như: dữ liệu được load bằng ajax(lúc đọc HTML sẽ chỉ thấy wrapper chứ không thấy dữ liệu) hay muốn vào được trang cần crawl thì phải qua bước login,&amp;hellip;</description>
    </item>
    
    <item>
      <title>Giới thiệu Interface trong GoLang</title>
      <link>https://runivn.github.io/post/interface-go/</link>
      <pubDate>Thu, 10 Sep 2015 13:09:56 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/interface-go/</guid>
      <description>Trong bài này mình sẽ trình bày những gì mình tìm hiểu được về interface trong Go, khái niệm, khai báo cũng như cách sử dụng và một vài ví dụ thực tế.
Khái niệm Interface là một dạng wrapper các khai báo hàm(chỉ là tên của hàm) ở mức độ prototype. Các hàm này sẽ được định nghĩa ở các lớp dẫn xuất, mỗi lớp dẫn xuất sẽ có cách định nghĩa lại hàm khác nhau tương ứng với mục đích sử dụng</description>
    </item>
    
    <item>
      <title>Hướng dẫn sử dụng Vim để code Go</title>
      <link>https://runivn.github.io/post/vim-go/</link>
      <pubDate>Fri, 04 Sep 2015 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/vim-go/</guid>
      <description>Vim là một text-editor khá mạnh, được sử dụng trong môi trường máy chủ không có giao diện đồ họa. Trong bài này mình sẽ giới thiệu Vim căn bản và hướng dẫn các bạn sử dụng Vim như một IDE dành cho Go  Vim là gì?  Vim là text editor cao cấp, phiên bản sau của Vi(Vim = Vi Improved), được viết bởi Bram Moolenaar, lần đầu tiên được đưa ra vào năm 1991.</description>
    </item>
    
    <item>
      <title>Một số blogs từ đồng bọn đông đảo của mình</title>
      <link>https://runivn.github.io/post/friends/</link>
      <pubDate>Mon, 18 Aug 2014 16:45:32 +0700</pubDate>
      
      <guid>https://runivn.github.io/post/friends/</guid>
      <description> IntoIterator::repeat(☕️) - https://giangnh.me Minh Quy Blog - https://mquy.github.io Blog I&amp;rsquo;m Linh - https://imlinh.com Tea, Coffee &amp;amp; Code - https://trietphm.github.io Saitama&amp;rsquo;s Punch - http://hieuk09.github.io Runi Blog - http://runikitkat.com Codeaholicguy - https://codeaholicguy.com Hieu&amp;rsquo;s Blog - https://hieuhtr.github.io The Whole Snack Blog - https://thefullsnack.com HuyDX&amp;rsquo;s Blog - https://huydx.com Long Hoang&amp;rsquo;s Blog - https://sfzxc.github.io nguyenquangminh0711&amp;rsquo;s blog - https://nguyenquangminh0711.github.io  </description>
    </item>
    
  </channel>
</rss>