Giới thiệu Như đã giới thiệu từ những bài trước, hệ điều hành thời gian thực (RTOS) như FreeRTOS cho phép bạn thiết kế các ứng dụng nhúng có khả năng thực hiện nhiều nhiệm vụ (task) đồng thời. Một trong những yếu tố then chốt quyết định đến hiệu suất và độ ổn định của hệ thống là cách quản lý ưu tiên (priority) và lập lịch (scheduling) các tác vụ. Nếu các bạn cứ thao thao bất tuyệt tạo các Tas... Chi tiết
Chào mọi người! Tôi là Hưng Phạm, một lập trình viên backend đã từng “say mê” microservices – cho đến khi chính tay mình triển khai và duy trì nó. Và bây giờ, sau nhiều đêm “vật lộn” với hàng tá logs của 4–5 service khác nhau, tôi nhận ra một điều: microservices không còn là niềm đam mê như ngày đầu nữa. Tại sao ư? Hãy để tôi chia sẻ thật chi tiết câu chuyện của mình, hi vọng sẽ giúp các bạn có... Chi tiết
Trong bài hướng dẫn này, mình sẽ hướng dẫn các bạn sử dụng mạch nạp st-link v2 để nạp code cho stm32f103c8T6, dùng STM32CubeIDE. Bước 1: Trong STM32CubeIDE, click chuột phải vào Project hiện tại mở phần Properties -> C/C++ Build -> Settings -> MCU/MPU Post build outputs. Bước 2: Chọn ☑️ - ☑️ Convert to binary file. - ☑️ Convert to Intel Hex file. => Điều này sẽ giúp tạo ra 2 file: .bin và .... Chi tiết
Nội dung của bài phỏng vấn này được mình tổng hợp từ blog Mastering MySQL Indexing: A Comprehensive Guide for Developers, mọi người có thể đọc thêm để có cái nhìn chi tiết hơn và có thêm những thông tin quan trọng. Ngoài ra, mình cũng tạo một bài quiz trên trang https://duthaho.github.io/quiz-hub/ để mọi người có thể kiểm tra kiến thức sau khi học nhé, chúc mọi người có cái nhìn tổng quát và sâ... Chi tiết
Giới thiệu Chào mừng các bạn trở lại với phần tiếp theo của hành trình tìm hiểu về AI Agents! Ở Phần 1, chúng ta đã cùng nhau làm quen với những khái niệm cốt lõi: từ việc định nghĩa AI Agent là gì, phân biệt chúng rõ ràng với các AI assistants quen thuộc, cho đến việc nhìn lại chặng đường "tiến hóa" đầy ấn tượng của chúng qua các thập kỷ. Chúng ta cũng đã tìm hiểu về các loại AI Agent phổ biế... Chi tiết
Giới thiệu Trong bài chia sẻ này, chúng ta sẽ cùng nhau tìm hiểu về AI Agents. Đây không chỉ là phiên bản tiếp theo của chatbots hay các AI assistants đơn giản như Siri hay Alexa. AI agents là các chương trình phần mềm được thiết kế để nhận thức môi trường của chúng, đưa ra quyết định dựa trên suy luận và kiến thức, và thực hiện hành động để đạt được các mục tiêu cụ thể, thường xuyên học hỏi và... Chi tiết
Sơ đồ hoạt động của hệ thống: Dưới đây là sơ đồ hoạt động của hệ thống digital human: Nhìn vào kiến trúc tổng thể, ta thấy rằng để hiển thị Digital Humans một cách sống động, chúng ta cần đồng bộ hóa giữa hình ảnh video và âm thanh, và đẩy cả hai vào một luồng stream duy nhất. Nhưng đó mới chỉ là một nửa câu chuyện. Trải nghiệm sẽ chẳng thể trọn vẹn nếu người dùng không thể tương tác trực tiếp... Chi tiết
Giới thiệu nhanh Ở bài trước, mình đã cùng bạn tìm hiểu về task – một trong những khái niệm quan trọng nhất khi làm việc với hệ điều hành thời gian thực (RTOS) trên vi điều khiển. Chúng ta đã thấy cách task giúp chia nhỏ chương trình thành các luồng xử lý riêng biệt, cho phép thực hiện song song các công việc một cách hiệu quả, thay vì xử lý tuần tự như trong các hệ thống nhúng truyền thống. ... Chi tiết
Mở đầu. Hiện tại đang là 31/5🫠, mình về quê, chưa biết làm gì cả, thôi thì viết thêm một bài nữa kết thúc tháng 5 nào 😉. Thì 3 bài trước đó mình đã viết loanh quanh về khả năng của LLM. Vậy thì chính xác model LLM đã làm gì, điều gì khiến nó trở lên lên thông minh như vậy ? Tại sao nó làm được nhưng điều tưởng chừng chỉ có con người mới làm được ? Liệu LLM đã thật sự suy luận hay AGI đang đến ... Chi tiết
Đề bài Cho một mảng số nguyên nums được sắp xếp theo thứ tự tăng dần và một số nguyên target, hãy tìm vị trí bắt đầu và kết thúc của target trong mảng. Nếu target không có trong mảng, trả về [-1, -1]. Ví dụ: Đầu vào: nums = [5,7,7,8,8,10], target = 8 Đầu ra: [3,4] Đầu vào: nums = [5,7,7,8,8,10], target = 6 Đầu ra: [-1,-1] Đầu vào: nums = [], target = 0 Đầu ra: [-1,-1] Ràng buộc: 0 <=... Chi tiết
Mở đầu: Tiếp tục hành trình gỡ rối Kubernetes Chào mừng anh em quay trở lại với series "Xử lý lỗi Kubernetes"! Ở Phần 1, chúng ta đã cùng nhau "bóc tách" 5 lỗi phổ biến liên quan đến quá trình khởi tạo và cấu hình Pod, bao gồm CrashLoopBackOff, ImagePullBackOff, Pod Pending, PodInitializing, và CreateContainerConfigError. Đó là những vấn đề nền tảng mà hầu hết anh em DevOps/SRE đều gặp phải k... Chi tiết
Mở đầu Chắc hẳn nhiều người trong chúng ta đều đồng ý rằng Kubernetes (K8s) đã và đang thay đổi cuộc chơi trong việc quản lý và vận hành ứng dụng containerized. Sức mạnh của nó là không thể phủ nhận: khả năng tự động hóa, co giãn linh hoạt, và quản lý tài nguyên hiệu quả. Tuy nhiên, đi kèm với sức mạnh đó là một độ phức tạp không hề nhỏ. Dù bạn là một kỹ sư dày dạn kinh nghiệm hay mới bắt đầu ... Chi tiết
Định nghĩa bài toán Cho một mảng số nguyên nums, hãy tìm dãy con liên tiếp (contiguous subarray) có tổng lớn nhất và trả về giá trị tổng đó. Dãy con phải chứa ít nhất một phần tử. Ví dụ: nums = [-2,1,-3,4,-1,2,1,-5,4] → Kết quả: 6 (dãy con [4,-1,2,1] có tổng lớn nhất). nums = [1] → Kết quả: 1 (dãy con [1]). nums = [5,-3,5] → Kết quả: 7 (dãy con [5,-3,5] hoặc [5]). nums = [-1] → Kết quả: -... Chi tiết
Anagram là gì? Một chuỗi được gọi là anagram của chuỗi khác nếu chúng chứa cùng tập hợp các ký tự (bao gồm chữ cái, số, hoặc ký tự đặc biệt) với số lần xuất hiện giống nhau, nhưng thứ tự các ký tự có thể khác nhau. Ví dụ, "listen" và "silent" là anagram vì chúng có cùng các ký tự (l, i, s, t, e, n) với tần suất giống nhau, dù sắp xếp khác nhau. Định nghĩa bài toán Cho hai chuỗi s và t, hãy ... Chi tiết
Phần 1: [UrCheckin] Tự động hóa chấm công trên ứng dụng Base 🪲 (1/3) Phần 2: [UrCheckin] Tích hợp AI để chấm công tự động trên ứng dụng Base 🪲 (2/3) Phần 3: [UrCheckin] Chuyện gì đến cũng sẽ tới 🤪 (3/3) Hi anh em dev 👋, chào mừng các bạn quay lại với phần cuối cùng của series UrCheckin! Ở phần 1 tớ đã kể về việc xây dựng bot tự động chấm công, phần 2 là tích hợp AI để đọc tin nhắn group Tim... Chi tiết
Định nghĩa bài toán Cho một chuỗi ký tự (hoặc mảng ký tự), hãy đảo ngược thứ tự các ký tự trong chuỗi mà không sử dụng thêm bộ nhớ ngoài nếu có thể. Kết quả trả về là chuỗi đã được đảo ngược. Ví dụ: Đầu vào: "hello" → Đầu ra: "olleh" Đầu vào: "A man" → Đầu ra: "nam A" Đầu vào: "" → Đầu ra: "" Đầu vào: "a" → Đầu ra: "a" Ràng buộc: Chuỗi có thể chứa chữ cái, số, dấu cách, hoặc ký tự đặc b... Chi tiết
Trong lập trình, bài toán "Valid Parentheses" (Kiểm tra dấu ngoặc hợp lệ) là một bài toán kinh điển, thường được sử dụng để đánh giá khả năng tư duy logic và kỹ năng sử dụng cấu trúc dữ liệu của lập trình viên. Bài toán yêu cầu kiểm tra xem một chuỗi ký tự chứa các dấu ngoặc có hợp lệ hay không, nghĩa là các dấu ngoặc mở và đóng phải được ghép đôi đúng cách. Định nghĩa bài toán Cho một chuỗi ... Chi tiết
Bài Toán: LeetCode 21: Merge Two Sorted Lists Cho hai danh sách liên kết đã được sắp xếp tăng dần, hãy gộp chúng lại thành một danh sách liên kết mới được sắp xếp theo thứ tự tăng dần. Ví dụ: Vì cả hai danh sách đã được sắp xếp, ta chỉ cần duyệt qua các node để chọn ra node nhỏ hơn, rồi nối vào danh sách kết quả. Ta sẽ triển khai theo 2 cách: Cách 1: Dùng đệ quy Ý tưởng: So sánh l1.val ... Chi tiết
Có bao giờ bạn thắc mắc Any, Contains hay Exists nên dùng cái nào không, sao phải "đẻ" ra 3 thằng vậy nhỉ! Bây giờ cùng mình coi thử tại sao nha. Let's go!
Dùng cái nào?
Khi làm việc với List
Nếu bạn muốn được huấn luyện/Mentor/Coaching hoặc hợp tác với chuyên gia hàng đầu về lập trình ==>Hãy đăng ký bên dưới nhé!