Side-project ký sự: Phần 1 - Từ prototype đến 500 USD

Đăng ngày 12/14/2023

"Những chuyện chưa kể khi đi làm side project"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Phần 8

Đăng ngày 9/28/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 7

Đăng ngày 3/10/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 6

Đăng ngày 2/26/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 4 và 5

Đăng ngày 2/14/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 3

Đăng ngày 1/30/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 2

Đăng ngày 1/20/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Nhật ký phát triển GõKey - Tuần 1

Đăng ngày 1/18/2023

"Nhật ký phát triển bộ gõ tiếng Việt GõKey"

Đọc trên blog của tác giả

Coffee Talk: Anh CuongLM - Golang Contributor

Đăng ngày 12/1/2021

"Trò chuyện cùng anh CuongLM, một nhân vật không xa lạ gì với cộng đồng Golang Việt Nam về OSS và Golang."

Đọc trên blog của tác giả

Coffee Talk: Trần Thiện Khiêm - Từ Việt Nam đến GAFA

Đăng ngày 11/17/2021

"Trò chuyện cùng anh Trần Thiện Khiêm, kĩ sư phần mềm tại Facebook về con đường ra biển lớn cho dev Việt."

Đọc trên blog của tác giả

Nom Parser và Parser Combinator

Đăng ngày 8/26/2021

"Làm quen với Parser Combinator và Nom"

Đọc trên blog của tác giả

Coffee Talk: Nghĩa Trần - tác giả Proxyman: Từ side project thành full-time business

Đăng ngày 11/17/2019

"Những chia sẻ của bạn Nghĩa Trần, tác giả app Proxyman về con đường từ việc build sản phẩm để phục vụ nhu cầu cá nhân đến doanh thu hơn nghìn đô mỗi tháng."

Đọc trên blog của tác giả

Cách mạng 0.4 của Neovim: Floating Window

Đăng ngày 10/15/2019

"Trong bài viết này, chúng ta sẽ cùng tìm hiểu về floating window thông qua việc build một chức năng giúp cho Neovim có thể mở nhanh một cửa sổ terminal emulator, nằm floating trên màn hình."

Đọc trên blog của tác giả

Paper Review: What do Sketches say about Thinking

Đăng ngày 6/24/2019

"Có một sự liên quan không hề nhỏ giữa quá trình sketching và quá trình suy nghĩ, tư duy..."

Đọc trên blog của tác giả

Paper Review: Chuyện học khi "mê sảng"

Đăng ngày 6/19/2019

"Lucid Dream là gì? Học trong lucid dream ư? Nghe có vẻ tuyệt?"

Đọc trên blog của tác giả

Keyboard from Scratch: Từ A tới Z

Đăng ngày 2/8/2019

"Hành trình làm bàn phím cơ từ A tới Z."

Đọc trên blog của tác giả

Vài ghi chép về Iterator trong JavaScript

Đăng ngày 1/14/2019

"Đôi điều ghi chép về Iterator và những ứng dụng của nó trong JavaScript"

Đọc trên blog của tác giả

Hàm replace() xài với callback

Đăng ngày 1/4/2019

"Dùng hàm replace() với callback để giải quyết vấn đề replace chuỗi theo cách linh hoạt hơn, trong sáng hơn, và dễ maintain hơn."

Đọc trên blog của tác giả

Keyboard from Scratch: Debounce

Đăng ngày 12/16/2018

"Là một lập trình viên, bàn phím là một vật dụng bạn phải sờ vào hằng ngày, thậm chí số lần bạn sờ nó còn nhiều hơn số lần bạn sờ vào vợ hoặc bạn gái..."

Đọc trên blog của tác giả

Cái nút Unsubscribe

Đăng ngày 11/23/2018

"Chuyện cái nút Unsubscribe và mail spam"

Đọc trên blog của tác giả

A taste of Atomic CSS

Đăng ngày 11/16/2018

"Trải nghiệm về Atomic CSS"

Đọc trên blog của tác giả

Helm, Ripgrep và Emacs dùng... helm-ag

Đăng ngày 11/16/2018

"Thủ thuật xài ripgrep với emacs"

Đọc trên blog của tác giả

Là framework? hay là library?

Đăng ngày 10/15/2018

"Ghi chép ngắn về việc phân biệt library và framework."

Đọc trên blog của tác giả

Blame Driven Development

Đăng ngày 10/13/2018

"Trên đời, có những thứ tồn tại chỉ để làm cho cuộc sống trở nên khó khăn hơn. Đối với cuộc đời của một frontend engineer, thứ đó có lẽ là Internet Explorer và tính chủ quan."

Đọc trên blog của tác giả

Bàn về Problem Solving Skill

Đăng ngày 10/3/2018

"Phỏng vấn thì tào lao hết sức, tuyển senior mà bắt test thuật toán, làm 1 đống bài test khó trong vòng 1h..."

Đọc trên blog của tác giả

Promise, Async/Await và Map/Reduce

Đăng ngày 9/27/2018

"Vấn đề nhỏ với Promise khi dùng với Map/Reduce và async/await"

Đọc trên blog của tác giả

Giấy với bút

Đăng ngày 9/16/2018

"Từ chuyện giấy và bút nói tới chuyện học hành và lao động"

Đọc trên blog của tác giả

Paper Review: Why Functional Programming Matters

Đăng ngày 8/24/2018

"Review paper Why Functional Programming Matters của John Hughes"

Đọc trên blog của tác giả

Vài ghi chép về V8 và Garbage Collection

Đăng ngày 8/7/2018

"Vài ghi chép tả pí lù về JavaScript, về V8 engine và về cơ chế dọn rác của V8"

Đọc trên blog của tác giả

Hai kiểu lập trình viên

Đăng ngày 7/13/2018

"Có hai dạng lập trình viên, một dạng luôn nắm vững lý thuyết, dạng còn lại thì không"

Đọc trên blog của tác giả

Từ spacemacs đến init.el

Đăng ngày 7/11/2018

"Đừng nên xài Spacemacs mà nên tự thiết lập cho mình một cấu hình Emacs riêng"

Đọc trên blog của tác giả

0x0B và JSON parser

Đăng ngày 7/10/2018

"Chuyện kí tự 0x0B - vertical tab và JSON parser"

Đọc trên blog của tác giả

Kí sự si-li-côn

Đăng ngày 6/3/2018

"Hành trình sóng gió đến Silicon Valley"

Đọc trên blog của tác giả

Tối ưu hiệu suất MongoDB bằng cách quản lý index

Đăng ngày 6/1/2018

"Ai cũng biết đánh index giúp tăng tốc các truy vấn tìm kiếm, tìm kiếm trong cây index (B-Tree) sẽ nhanh hơn scan trong toàn bộ bảng. Ai cũng biết nên không nói nhiều về index là gì nữa..."

Đọc trên blog của tác giả

Anagram và đa thức đối xứng

Đăng ngày 5/16/2018

"Một bài viết mang hơi hướng \"phức tạp hóa\" của bạn Đạt về cách tiếp cận và giải bài toán xác định Anagram..."

Đọc trên blog của tác giả

Đừng đánh nhau với borrow checker

Đăng ngày 5/4/2018

"**TL;DR:** Đừng bao giờ đánh nhau với borrow checker, nó được sinh ra để bạn phải phục tùng nó :sob:"

Đọc trên blog của tác giả

Lái xe với robot

Đăng ngày 5/4/2018

"Con người sống chung với robot y như trong phim khoa học viễn tưởng..."

Đọc trên blog của tác giả

Keyboard from Scratch: Prototype

Đăng ngày 3/24/2018

"Là một lập trình viên, bàn phím là một vật dụng bạn phải sờ vào hằng ngày, thậm chí số lần bạn sờ nó còn nhiều hơn số lần bạn sờ vào vợ hoặc bạn gái..."

Đọc trên blog của tác giả

Algorithm in Frontend - Kỳ 3: Hashmap

Đăng ngày 12/16/2017

"Frontend và thuật toán, hai khái niệm vốn được nhiều người cho là không liên quan đến nhau, thực tế có đúng như vậy không?"

Đọc trên blog của tác giả

Chuyện biểu diễn ma trận trên máy tính

Đăng ngày 11/14/2017

"Một bài viết khá là hại não về một cách tiếp cận khác trong việc biểu diễn ma trận không dùng mảng 2 chiều trên máy tính"

Đọc trên blog của tác giả

[Review] Game Engine Black Book

Đăng ngày 11/6/2017

"Mặc dù tựa đề của cuốn sách đã nói lên khá rõ rằng đây là một cuốn sách về game development, nhưng nội dung bên trong nó thì rộng hơn rất là nhiều."

Đọc trên blog của tác giả

Algorithm in Frontend - Kỳ 2: Tree và Menu

Đăng ngày 10/15/2017

"Nhắc đến cây thì hẳn chúng ta nghĩ ngay đến DOM và các thao tác trên đó, ví dụ như tìm kiếm một element trên DOM, thêm/xóa element,... tuy nhiên các thao tác này chúng ta thường sử dụng DOM API có sẵn của trình duyệt và bài này cũng...

Đọc trên blog của tác giả

Đôi điều về Regex

Đăng ngày 10/8/2017

"Đối với nghề lập trình nói chung và công việc Frontend nói riêng, theo mình, cái khoảnh khắc tự mình đọc hiểu hoặc viết ra được một đoạn Regex (biểu thức chính quy - reqular expression) có thể coi là một trong những khoảnh khắc đáng nhớ nhất (well...)."

Đọc trên blog của tác giả

Algorithm in Frontend - Kỳ 1: Xử lý dữ liệu trên Frontend

Đăng ngày 10/1/2017

"Frontend và thuật toán, hai khái niệm vốn được nhiều người cho là không liên quan đến nhau, thực tế có đúng như vậy không?"

Đọc trên blog của tác giả

Rust và Lập trình Web

Đăng ngày 9/4/2017

"_\"Rust có làm được Web không nhỉ?\"_ - Đây là câu hỏi của rất nhiều người, trong đó có mình."

Đọc trên blog của tác giả

Viết ứng dụng đọc tin HackerNews bằng Rust

Đăng ngày 9/1/2017

"Dạo này mình toàn viết bài linh tinh, lâu rồi chưa thấy viết bài kĩ thuật nào mới nên hôm nay mình viết trở lại, mất công các bạn lại bảo mình không biết code =)))"

Đọc trên blog của tác giả

Tự làm đồng hồ Pomodoro để bàn

Đăng ngày 7/13/2017

"**Pomodoro** là phương pháp phân chia thời gian làm việc thành từng task, sao cho mỗi task chiếm một quãng thời gian ngắn, thường là từ **20 đến 25 phút** cho một cycle, tiếp theo sau đó là **3 đến 5 phút** giải lao. Sau khoảng **4 cycles** thì có...

Đọc trên blog của tác giả

Rework và tư duy build sản phẩm

Đăng ngày 6/17/2017

"Quyển này thì khá là nổi rồi, không cần phải giới thiệu nhiều về nó nữa."

Đọc trên blog của tác giả

Khi user ngoan cố...

Đăng ngày 5/19/2017

"Không phải user nào cũng ngoan ngoãn..."

Đọc trên blog của tác giả

Chuyện con vịt, cái máy bay và cu Tèo đọc báo

Đăng ngày 5/15/2017

"Người đọc tự chịu trách nhiệm về tính xác thực của bài viết."

Đọc trên blog của tác giả

Tản mạn về nghề đi code thuê

Đăng ngày 5/6/2017

"Cũng lâu rồi mình chưa viết bài mới, dạo này toàn draft mấy bài kĩ thuật dài dòng lê thê thành ra viết nửa chừng toàn tụt hết cảm xúc, thôi thì hôm nay tranh thủ ngồi viết tí random vậy."

Đọc trên blog của tác giả

Chuyện gõ tiếng Việt trên Linux

Đăng ngày 3/28/2017

"Đã từng gõ tiếng Việt trên Windows với Unikey hay Vietkey ngày xưa thì hẳn ai cũng cảm thấy khá là khó chịu với cái dấu gạch đít quái đản khi chuyển qua xài macOS hoặc Linux. Đối với các bạn chưa biết, thì dấu này gọi là preedit và...

Đọc trên blog của tác giả

Hacking Amazon Dash Button

Đăng ngày 3/27/2017

"Amazon Dash Button là một thiết bị kết nối Wifi và chỉ có 1 nút bấm. Sau khi mua về và cài đặt xong, thì khi bấm cái nút này, nó sẽ tự động gửi request đến Amazon để order món đồ mà bạn đã chọn trưóc đó. "

Đọc trên blog của tác giả

Kĩ thuật Memoize cải thiện performance

Đăng ngày 3/21/2017

"Memoize là một kĩ thuật cache lại giá trị trả về của các hàm dựa trên tham số truyền vào nó."

Đọc trên blog của tác giả

Growth Hacking dành cho Developer

Đăng ngày 2/20/2017

"**TL;DR:** Nếu bạn nghĩ rằng một developer thì không cần phải biết về Growth Hacking, thì bạn nên đọc bài viết này."

Đọc trên blog của tác giả

Làm thế nào để viết blog kĩ thuật?

Đăng ngày 2/8/2017

"Rõ ràng, bạn không viết blog kĩ thuật để chia sẽ những thứ nhăng cuội như tự sự chuyện tình của bạn với gấu, hay báo cáo cho dân mạng biết hôm nay bạn buồn như thế nào vì trời nó mãi không chịu nắng."

Đọc trên blog của tác giả

Tản mạn chuyện viết lách

Đăng ngày 2/4/2017

"Chuyện sợ viết là một điều bình thường và phổ biến ở rất rất nhiều người, nhất là dân học IT, vốn không biết từ đâu bị gắn cho cái mác khô khan. Mấy ngày gần đây mình lại thấy nhiều người than vãn là không dám viết, không có...

Đọc trên blog của tác giả

Dân IT đọc sách như thế nào đây?

Đăng ngày 2/1/2017

"Nhân dịp đầu năm, mình xin viết một bài bàn về chuyện đọc sách, dựa trên những kinh nghiệm cá nhân, dành tặng các bạn nào đã trót đặt ra mục tiêu đọc 10 hay 20 cuốn sách trong năm mới **một lần nữa** và chưa có cơ hội thực...

Đọc trên blog của tác giả

Mathematics as a hobby, tại sao không?

Đăng ngày 1/23/2017

"Có một thực tế là trong suốt quá trình đi học từ phổ thông lên tới đại học thì chưa bao giờ mình có cảm tình với mấy môn toán, hồi đó mình đơn giản chỉ nghĩ là mình sinh ra không dành để học toán, thế thôi."

Đọc trên blog của tác giả

Thuật toán phục hồi số hữu tỉ và bài toán John's PIN

Đăng ngày 1/23/2017

"Một bài toán thú vị về việc dùng số hữu tỉ cho việc mã hóa."

Đọc trên blog của tác giả

Dùng Vim làm REST API client

Đăng ngày 1/19/2017

"Thường thì khi cần test API, chúng ta sẽ dùng các HTTP client như là Postman, tuy nhiên cái này có một nhược điểm đó là nó... xài GUI. "

Đọc trên blog của tác giả

Tự học lập trình - Hỏi làm sao để được trả lời?

Đăng ngày 1/8/2017

"Vấn đề này thì không hề mới rồi. Bài viết về vấn đề này thì lại càng nhiều nữa. Mình cũng không đưa ra lời khuyên hay gì hết, chỉ copy lại một đoạn liên quan tới vấn đề này trong cuốn The Pragmatic Programmer rồi bình loạn thêm tí...

Đọc trên blog của tác giả

Viết test trong Rust the idiomatic way

Đăng ngày 1/7/2017

"Testing là một chức năng quan trọng mà bất kì ngôn ngữ nào cũng cần phải có, viết unit test cũng là một việc mà bất kì lập trình viên nào cũng cần phải làm, thậm chí với một vài cộng đồng như Golang và Ruby thì người ta bảo...

Đọc trên blog của tác giả

Nhận diện khung truyện manga với OpenCV

Đăng ngày 11/17/2016

"Đọc manga trên mobile là một nhu cầu rất lớn, nhưng hiện nay chưa có nhiều ứng dụng đáp ứng được nhu cầu này một cách hiệu quả."

Đọc trên blog của tác giả

Nihilism - Nothing is responsible for anything

Đăng ngày 10/31/2016

"\"The paradoxical result is that young Vietnamese are more and more dependent on \"public\" opinion (forum) for some worthless guidance. They live according to opinion of the others. They get ill.\""

Đọc trên blog của tác giả

Deep Learning? Machine Learning? Học như thế nào?

Đăng ngày 10/23/2016

"Mình thấy nhiều bạn bây giờ cứ muốn học là đâm đầu vào học Deep Learning, hoặc tuyên bố là sẽ học Deep Learning, trong khi chắc kí hiệu này $\\theta$ chưa chắc đã biết đọc tên như thế nào... mình cảm thấy quan ngại sâu sắc :v "

Đọc trên blog của tác giả

Nhân ma trận - Phần 2: Tính toán trên GPU

Đăng ngày 10/23/2016

"Trong phần này, mình giới thiệu về phương pháp sử dụng GPU để thực hiện phép tính nhân 2 ma trận (GPU Calculation), thay cho việc dùng CPU truyền thống, để tăng tốc độ tính toán."

Đọc trên blog của tác giả

Các thuật toán nhân ma trận

Đăng ngày 10/16/2016

"Ma trận và các phép toán liên quan tới nó là một phần rất quan trọng trong hầu hết mọi thuật toán liên quan đến số học. "

Đọc trên blog của tác giả

Lập trình và Toán học

Đăng ngày 10/10/2016

"Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nhau rồi..."

Đọc trên blog của tác giả

Một vài papers về DotA 2 và Machine Learning

Đăng ngày 10/2/2016

"Paper đầu tiên về việc dùng số liệu trong DotA 2 vào một vấn đề machine learning, của tác giả Kevin, mục tiêu của paper là sử dụng Machine Learning để recommend counter pick trong DotA dựa trên tương quan hero 2 phe dire và radiant, lịch sử thắng thua,..."

Đọc trên blog của tác giả

Tính tổng các số Fibonacci từ 1 tới 4 triệu

Đăng ngày 10/1/2016

"Cuối tuần này có nói chuyện với bác @haond về một đề tài khá là thú vị, đó là bài toán: **Tính tổng các số Fibonacci từ 1 tới 4 triệu**"

Đọc trên blog của tác giả

Tự tạo SSH tunnel để forward port ra remote server

Đăng ngày 9/12/2016

"Khi làm việc, đôi lúc bạn chạy server ở localhost nhưng cần truy cập vào nó từ một thiết bị khác không cùng trong mạng nội bộ, ví dụ chạy web để demo cho khách hàng xem, hoặc muốn test API trên localhost của bạn từ mobile app."

Đọc trên blog của tác giả

Một commit cho 2 branches - Cherrypick

Đăng ngày 9/6/2016

"Giả sử bạn có 2 branches khác nhau cho 2 khách hàng khác nhau, tạm gọi là branch A và branch B. Và bạn đang fix một bug nghiêm trọng cùng tồn tại trên hệ thống của cả 2 khách hàng, bạn muốn chỉ commit một lần nhưng có thể...

Đọc trên blog của tác giả

"Bí mật" đằng sau bảng hiệu Like của Facebook

Đăng ngày 8/21/2016

"\"Nếu đã ở trên đỉnh thành công mà không chịu thay đổi, sáng tạo thì một ngày nào đó, đây sẽ là kết cục của bạn\""

Đọc trên blog của tác giả

var, let và const trong ES6

Đăng ngày 8/7/2016

"Mấy bài viết nói về 3 từ khóa này trong JavaScript thì có nhiều rồi, mình chỉ tổng hợp lại cho ngắn để các bạn lười đọc tham khảo nhanh thôi :trollface:"

Đọc trên blog của tác giả

Dùng neovim thay thế vimdiff

Đăng ngày 8/3/2016

"**neovim** cũng có chế độ diff tuy nhiên cách cài đặt nó để thay thế cho **vimdiff** hơi rườm rà một tí. Để tiết kiệm thời gian thì mình share lên đây luôn. "

Đọc trên blog của tác giả

TDD qua ví dụ thực tế

Đăng ngày 7/24/2016

"Một trong những câu hỏi được đặt ra nhiều nhất khi nghiên cứu về TDD có lẽ là: **Áp dụng TDD như thế nào trong thực tế?** "

Đọc trên blog của tác giả

Vài phím kinh nghiệm thường gặp khi dùng Vim

Đăng ngày 7/16/2016

"Tình hình là mình chuyển qua dùng Vim làm editor chính cho cả công việc lẫn mấy việc lặt vặt (side projects, blog,...) cũng được hơn 1 tháng rồi. Thực ra dùng lâu rồi nhưng thấy ko quen nên bỏ :v bây giờ quyết định chuyển hẳn qua và tập...

Đọc trên blog của tác giả

Kinh nghiệm làm việc với Cgo

Đăng ngày 7/11/2016

"Cuối tuần vừa rồi mình có làm một project nho nhỏ để học hỏi thêm, điểm khá thú vị là project này tuy không to lắm nhưng lại chứa khá là nhiều vấn đề và buộc mình phải tìm hiểu sâu vào rất nhiều mảng kĩ thuật."

Đọc trên blog của tác giả

Vài điều linh tinh về Github

Đăng ngày 7/1/2016

"Có lẽ đối với dân developer thì không ai lạ gì Github. Có lẽ ngoài StackOverflow ra thì đây là một trang web có tần suất truy cập thường xuyên nhất của một developer chân chính :troll:"

Đọc trên blog của tác giả

Phức tạp hoá vấn đề: Phân tích và mô phỏng nút cảm xúc của Facebook

Đăng ngày 5/30/2016

"Khi bạn rê chuột vào nút **Like**, một khối màu trắng sẽ hiện ra, đồng thời các biểu tượng cảm xúc cũng bay lên, nhún nhún trông rất là bắt mắt, khi ta rê chuột vào từng biểu tượng nó sẽ to ra, sau đó ta chỉ cần click vào...

Đọc trên blog của tác giả

Phức tạp hóa vấn đề: Datepicker và các thuật toán đằng sau nó

Đăng ngày 5/12/2016

"Datepicker là một dạng component đã quá quen thuộc với các bạn làm front-end, được sử dụng rộng rãi trên rất nhiều ứng dụng web. Mục đích của nó là hiển thị một \"tờ\" lịch trên màn hình máy tính để người dùng có thể chọn ngày tháng một cách...

Đọc trên blog của tác giả

Nhục Driven Development

Đăng ngày 5/5/2016

"Việc hứng gạch đá nếu nghĩ một cách lạc quan thì cũng là một phương pháp kiểm chứng kiến thức của mình, và qua trao đổi, hỏi đáp ở phần comment mỗi bài viết. Mình cũng có cơ hội nâng cao kiến thức khá nhiều. Nếu có nói sai nói...

Đọc trên blog của tác giả

Tự viết Emulator: CHIP-8 Interpreter

Đăng ngày 5/1/2016

"Luôn mơ có một ngày sẽ tự viết được một bộ giả lập cho NES, Gameboy hay thậm chí là Play Station :)) nhưng vẫn dậm chân tại chỗ trong nhiều năm trời chỉ vì không biết phải bắt đầu như thế nào."

Đọc trên blog của tác giả

Làm game Flappy Bird trên Arduino

Đăng ngày 3/4/2015

"Với dân gõ code thì chỉ như thế này là đủ, giống như tôn chỉ của RoR, bạn cứ thoả sức sáng tạo, mấy chuyện khác để Arduino lo..."

Đọc trên blog của tác giả