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"
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"
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."
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."
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á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."
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..."
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?"
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"
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."
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..."
Tail Call Optimization là gì? Và tại sao bạn không cần quan tâm đến nó?
Đăng ngày 11/29/2018
"Nếu bạn code JavaScript..."
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."
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."
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..."
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"
Paper Review: Why Functional Programming Matters
Đăng ngày 8/24/2018
"Review paper Why Functional Programming Matters của John Hughes"
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"
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"
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"
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..."
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..."
Đừ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:"
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..."
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..."
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?"
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"
[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."
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...
Đô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...)."
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?"
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."
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 =)))"
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ó...
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."
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."
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."
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à...
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 đó. "
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ó."
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."
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."
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ó...
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...
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."
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."
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. "
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í...
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...
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ả."
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.\""
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 "
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á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. "
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..."
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,..."
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**"
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."
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ể...
"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\""
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:"
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. "
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ế?** "
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...
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."
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:"
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...
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...
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...
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."
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..."