Home avatar

Kevin Vu - Welcome to my blog

Những điều cần biết về Infrastructure as Code (IaC) & Terraform & Hướng dẫn cài đặt Terraform

Bạn có bao giờ gặp cảnh phải thiết lập lại toàn bộ server chỉ vì một lỗi cấu hình nhỏ? Hoặc từng loay hoay giữa hàng tá tài liệu hướng dẫn thủ công, trong khi deadline dự án cận kề? Đó là lúc bạn nhận ra: Quản lý hạ tầng bằng tay vừa tốn thời gian, vừa tiềm ẩn nhiều rủi ro khó lường.

Trong kỷ nguyên của DevOps và Cloud, Infrastructure as Code (IaC) đã trở thành “bảo bối” giúp đội ngũ kỹ sư không chỉ tự động hóa việc dựng hạ tầng mà còn biến mọi thao tác lặp lại thành một dòng code duy nhất. Chỉ với vài cú gõ phím, bạn có thể tạo mới, mở rộng, thu nhỏ hoặc phá huỷ toàn bộ hệ thống – dễ dàng như deploy một ứng dụng.

Các khái niệm cốt lõi của LLM và AI Model hiện đại

Nếu bạn từng nghe về ChatGPT, Gemini, Claude hay bất kỳ mô hình AI hiện đại nào, chắc hẳn đã không ít lần bắt gặp những thuật ngữ như temperature, tokens, parameters 7B/13B/70B, shots, benchmarks như GSM8K, MMLU, hay thậm chí là Chain of Thought (CoT). Chúng xuất hiện dày đặc trong các bài viết, tweet công nghệ, tài liệu kỹ thuật… và đôi khi, với người mới tìm hiểu, tất cả nghe chẳng khác gì “ngôn ngữ của người ngoài hành tinh”.

Vậy thực chất, những khái niệm này nói lên điều gì về cách AI hoạt động? Chúng có ý nghĩa gì trong việc tạo ra một chatbot thông minh hay một AI giải toán, viết code, soạn nhạc? Và tại sao ai cũng nhắc đến context size hoặc autoregressive khi nói về các mô hình ngôn ngữ lớn (LLM)?

Các Design Pattern phổ biến trong Golang

Trong thế giới lập trình ngày càng phát triển, việc viết mã không chỉ dừng lại ở việc làm cho chương trình chạy được — mà còn phải dễ đọc, dễ bảo trì và có khả năng mở rộng. Đây chính là lúc các Design Pattern (mẫu thiết kế phần mềm) trở thành vũ khí bí mật của lập trình viên chuyên nghiệp.

Với Golang – một ngôn ngữ đơn giản, mạnh mẽ và được thiết kế để giải quyết những hệ thống phức tạp – việc áp dụng Design Pattern đúng cách không chỉ giúp mã nguồn gọn gàng, mà còn nâng tầm kiến trúc phần mềm. Tuy nhiên, không phải tất cả các mẫu thiết kế đều phù hợp với triết lý “tối giản mà hiệu quả” của Go.

Tư Duy Trader – Bản Lĩnh Giữa Biển Sóng Phần 3: Công cụ thực chiến

Nếu Phần I đặt nền móng tư duy và bản lĩnh, Phần II tôi luyện nội tâm và rèn khả năng tồn tại giữa cảm xúc, thì Phần III là lúc chúng ta biến tất cả thành hành động có hệ thống. Đây là phần dành cho thực chiến – nơi bạn không chỉ hiểu thị trường, mà còn sử dụng công cụ và kỹ thuật đúng cách để ra quyết định với xác suất cao.

Tư Duy Trader – Bản Lĩnh Giữa Biển Sóng Phần 2: Thực hành nội tâm

Nếu Phần I là nền tảng tư duy, hệ thống và kỹ thuật giao dịch, thì từ đây trở đi, bạn sẽ bước vào phần quan trọng không kém – nội tâm của người giao dịch.
Bạn sẽ học cách ghi nhận chính mình, phản biện sau mỗi lệnh, rèn tư duy xác suất, và giữ cân bằng trong một thế giới luôn dao động.

Tư Duy Trader – Bản Lĩnh Giữa Biển Sóng Phần 1: Nền móng tư duy

Trong thế giới đầy biến động của tài chính, nơi đồng tiền di chuyển trong chớp mắt và cảm xúc có thể quyết định thắng thua, một trader không chỉ cần chiến lược – mà cần bản lĩnh. Bài viết này không dạy bạn cách làm giàu nhanh, không vẽ ra giấc mơ màu hồng. Thay vào đó, nó dẫn bạn bước vào hành trình thực sự của người giao dịch: hành trình đối diện với chính mình.

Multithreading(Đa luồng) vs Asynchronous Programming(Bất đồng bộ) vs Parallel Programming(Song song) trong C#

Trong bài viết này tôi sẽ chỉ ra sự khác biệt giữa Multithreading(Đa luồng), Parallel Programming(Lập trình Song song) và Asynchronous Programming(Lập trình Bất đồng bộ) trong C# với các ví dụ trong bài viết này. Những điểm cần ghi nhớ trước khi tiếp tục:

  1. Multithreading(Đa luồng): Là việc một tiến trình được chia thành nhiều luồng.
  2. Parallel Programming(Lập trình Song song): Là việc nhiều tác vụ chạy trên nhiều nhân xử lý cùng lúc.
  3. Asynchronous Programming(Lập trình Song song): Là việc một luồng duy nhất khởi chạy nhiều tác vụ mà không chờ từng cái hoàn thành.