The WET codebase
Đăng ngày 12/13/2023
Why strict adherence to writing code that is free of duplication inevitably leads to software we can’t understand.
Paths Crossed
Đăng ngày 6/5/2023
We meet many people in our lives, but sometimes we don't realize how important they can be. Even brief interaction can make a big impact on our life.
Keva as Embedded Redis Server for Spring Boot Test
Đăng ngày 10/20/2022
Spring Data Redis provides an easy way to integrate with Redis instances; In this article, I will introduce how to use Keva as an embedded Redis server for Spring Boot test.
Build Java IoC/DI framework from scratch
Đăng ngày 6/2/2022
Many don't realize that their dependencies chain can become nested, and it quickly becomes unwieldy to wire them up manually. Even with factories (factory pattern), the duplication of your code is just not worth it.
Implementing a non-blocking I/O server
Đăng ngày 6/14/2021
Blu shared his experience when developing a non-blocking server from scratch - which using in our OSS KeyValue Database Keva.
Build a Java off-heap in-memory DB
Đăng ngày 4/8/2021
Hành trình thử xây dựng Java off-heap in-memory database - giúp bạn có thể lưu và truy xuất hàng terabytes dữ liệu tốc độ cao trên bộ nhớ - tất nhiên là nếu bạn có đủ chừng đó RAM :v
Write a "mini-compiler" in TypeScript
Đăng ngày 1/12/2021
Hành trình thử build 1 bản 'Compiler' nhỏ bằng TypeScript để hiểu sơ qua về cách mà các compilers hoạt động.
Experimenting with Project Loom EAP and Jiny
Đăng ngày 11/30/2020
This article walks you through a experiment that uses a Jiny Blocking IO application with Virtual Threads.
React Rendering under the hood
Đăng ngày 11/2/2020
Chi tiết cách React render hoạt động under-the-hood, cách ưu hóa re-render và giải thích việc sử dụng Context và Redux ảnh hưởng thế nào tới quá trình Render của React.
Hands-on modern Restful API with Jiny
Đăng ngày 10/13/2020
Jiny is a Lightweight, modern, simple Java HTTP Server/Client for rapid development in the API era.
My life's while(true) { routine() }
Đăng ngày 9/1/2020
I’m definitely not a morning person, so when my alarm goes off, I can’t help but stay in bed a little while longer...
Asynchronous Non-blocking I/O under the hood: poll, select, epoll/kqueue
Đăng ngày 6/29/2020
Non-blocking socket là dạng kết nối asynchronous, trong đó hàm read, recv khi được gọi sẽ kiểm tra xem trong vùng nhớ sẽ trả về ngay kết quả dựa vào trạng thái hiện tại.
Protocol Buffer 101
Đăng ngày 5/17/2020
Mục tiêu của bài viết để người đọc hiểu về lợi ích và usecase của protobuf.
Don't block the Event Loop (WebFlux ft. Node.js)
Đăng ngày 4/14/2020
You should make sure you never block the Event Loop. Alternatively, you may also go with a worker thread pool for blocking operations, keeping the main event loop non-blocking that way.
Distributed Search in Synchronous Networks
Đăng ngày 3/29/2020
BFS tree về cơ bản giúp tối ưu hoá thời gian giao tiếp (communication time) từ một process tại một node phân biệt tới tất cả các process khác trong network.
Consensus in Distributed System
Đăng ngày 3/20/2020
Consensus là bài toán kinh điển của mạng phân tán, khi các node/process cần đạt sự đồng thuận về trạng thái tiếp theo của hệ thống, với trạng thái đầu vào giống hệt nhau.
Practical Byzantine Fault Tolenrance 201
Đăng ngày 2/16/2020
Bài này tập trung vào thuật toán Byzantine Paxos với biến thể nổi tiếng nhất là Practical Byzantine Fault Tolenrance (PBFT).
Reliable Broadcast 101
Đăng ngày 2/15/2020
Xây dựng một hệ thống phân tán đòi hỏi việc truyền và nhận tin nhắn giữa các bên phải đáng tin cậy, "Reliable Broadcast" giúp chúng ta thực hiện điều đó.
Review Year of 2019
Đăng ngày 1/23/2020
Một vài cái note nho nhỏ để kết thúc năm cũ 2019 và qua năm mới 2020, viết để dành sau này đọc lại. Ahihi, 2020 treat me well please.
How I build pet project
Đăng ngày 11/25/2019
Không cần phải là một app hầm hố, ra đời nhằm tạo nên một cuộc cách mạng. Pet Project tốt chỉ cần giúp giải quyết một công việc cụ thể cho một nhóm đối tượng xác định.
ES6 Resting Spreading Objects Tricks
Đăng ngày 11/21/2019
Dưới đây là 7 thủ thuật ít được biết đến trong ES6 Resting và Objects JavaScript Objects, có thể dùng để làm gọn code và clean code hơn.
How to not quit your job?
Đăng ngày 11/15/2019
How to get work-life balance, hot to always get motivated at work, how to not getting bored? How to not quit the job?
Dependency Injection trong React
Đăng ngày 11/12/2019
Dependency Injection là một pattern phổ biến được implement trong rất nhiều framework và library, nhìn sơ qua thì có vẻ React không có, có phải vậy không?
React Hooks under the hood
Đăng ngày 10/18/2019
React Hooks hoạt động như thế nào bên dưới? Khi dùng React Hooks, thay vì quan tâm về bound context (class, this…) thì chúng ta sẽ bị confuse bởi Closure!
Clean code với Functional Validator Pipeline
Đăng ngày 9/23/2019
Khi đối mặt với nhiều thay đổi về requirements hoặc khi ứng dụng ngày càng mở rộng, logic của các đoạn code validation có thể là một cơn ác mộng thật sự.
Sự ngụy biện của Private Blockchain
Đăng ngày 8/8/2019
Stop implementing a failed-by-design and dead-before-release thing. Just do a private git repository with signed commits, or a distributed ledger.
Dockerize Development với Javascript MERN Stack
Đăng ngày 3/30/2019
Nổi lên gần đây là MEAN Stack (MySQL, ExpressJS, ReactJS, NodeJS), sử dụng hoàn toàn một loại ngôn ngữ là Javascript để phát triển ứng dụng.
Micro Frontends - microservice cho front-end
Đăng ngày 2/18/2019
Ý tưởng đằng sau cụm từ Micro Frontends là sự phân chia web app ra thành nhiều nhóm thành phần riêng biệt và được phát triển bởi các team độc lập, mỗi team có một nhiệm vụ khác nhau.
Thiết kế React App từ đầu
Đăng ngày 2/8/2019
Ngày nay APIs được thiết kế chung cho nhiều client app khác nhau, business logic được chuyển đến client app. Front-end development giờ không chỉ đơn thuần là tạo ra giao diện mà là cả một nghệ thuật lập trình!
Authentication nâng cao trong SPA
Đăng ngày 2/8/2019
Cookie, session, token, JWT, lưu token ở đâu, các mối quan tâm về xác thực trong một hệ thống Single-Page Application... tất cả mọi thứ bạn cần biết đều ở đây.