Blog
Writing on AI, machine learning, software engineering, and the engineering behind real-world ML systems.
20267 posts
Vietnam's Sovereign AI Conversation Is Stuck One Layer Too High 🇻🇳
Vietnam already has the chips, three meaningful Vietnamese model attempts in flight, and the most binding AI law in Southeast Asia. The conversation about sovereign AI keeps demanding a 70B foundation model. The actual gap is one layer down — open evaluation, license-clean data, compliance-aware specialized models, and on-device runtimes that operationalize Law 134/2025 starting March 2026.
AI Is Making Us Faster Learners and Worse Thinkers at the Same Time
A 2025 RCT found students who studied with ChatGPT scored 11 points lower on a retention test six weeks later, even though their work during the sessions was higher quality. Better results, worse thinking. Here is what the cognitive science says, and how it changed my own AI habits.
NVIDIA OpenShell: Policy-Enforced Sandboxes for Autonomous Coding Agents
NVIDIA just open-sourced OpenShell — a policy-enforced sandbox for autonomous AI agents. Four security layers, a privacy router that decides which LLM sees which data, and hot-reloadable YAML policies. Here is how it actually works and what it solves that nothing else does.
Securing Vibe-Coded Apps: A Practical Guide to Not Getting Hacked
Vibe coding is shipping apps faster than ever—but also shipping vulnerabilities at alarming rates. This guide covers real disasters, practical security measures from secret scanning to endpoint hardening, and SOTA AI-powered review methods to keep your vibe-coded apps from becoming the next breach headline.
Coding is not fun anymore?
Coding isn't what it used to be. AI implements faster than we can type, and agents are automating our tasks. But there's a bright side: we're evolving from implementors into architects and reviewers. Here's how to survive the shift.
Agent Sandboxes: A Practical Guide to Running AI-Generated Code Safely
AI agents don't just talk—they execute code. This guide covers the essential sandbox technologies (microVMs, gVisor, WebAssembly) and platforms (E2B, Modal, Northflank) that keep your systems safe while letting agents do their work.
OpenClaw: Security is the Final Boss
OpenClaw (formerly Clawdbot) changed the game for local-first AI agents, effectively giving 'Claude with hands.' But great power comes with great responsibility. In this post, I dive into the architecture of OpenClaw, the security risks of 'vibe-coding', and how we can build safe autonomous ecosystems.
20242 posts
Fine-tuning Llama 3.2 (1B, 3B) and Using It Locally with Llama Assistant 🌟
Hey there, AI enthusiasts! Ready to dive into the exciting world of Llama 3.2? This guide is your ticket to turning this powerful but pint-sized AI model into your very own customized assistant. We'll walk you through every step – from playing with pre-trained models to fine-tuning them to your specific needs, and deploying it locally with Llama Assistant.
Privacy in AI: Why I Created Llama Assistant
Privacy in AI is a hot topic. I created Llama Assistant to provide a privacy-focused alternative to popular AI assistants like ChatGPT or Claude AI. In this blog post, I'll share my motivation behind creating Llama Assistant and how it differs from other AI assistants.
20233 posts
Performant Django - How to optimize your Django application?
Django is a powerful and popular Python web framework known for its ease of use and flexibility. However, as your web application grows in complexity and traffic, it's crucial to optimize it for high performance to ensure responsiveness and scalability, especially if you're building data-intensive or large-scale applications. In this blog post, we'll explore various strategies and best practices for optimizing Django for peak performance.
Review YOLO-NAS - Search for a better YOLO
A short review of advancements in YOLO-NAS - a new YOLO architecture born from Neural Architecture Search.
AnyLabeling - Smart image labeling with Segment Anything and YOLO
Let's see the magic of Segment Anything and YOLO to create a smart image labeling tool in my newest open-source project - AnyLabeling.
20222 posts
Airflow, MLflow or Kubeflow for MLOps?
Machine learning is now focusing more on the data (data-centric AI), and MLOps is obviously the way to bring ML projects into production. Today, I will review three popular MLOps frameworks, which are Airflow, MLflow and Kubeflow. The target is to answer two questions: what are the differences between them, and which f...
With Daisykit – Everyone can build AI projects!
Imagine you are a software engineer or a DIY hobbyist with great ideas to build AI-powered projects. However, it will be such difficulty when you know very little or nothing about AI. The complexity of deep learning models is a barrier for everyone wishing to integrate AI services into their projects. Understanding thi...
20217 posts
Install OpenCV 4 on macOS using Homebrew
This is my note on how to install OpenCV 4 on macOS with Homebrew. I tested this tutorial on my Macbook Air 2020 with Apple silicon (M1 chip). When using Ubuntu, you may have already use `apt`, the popular package manager for Debian, on Windows, we can install `Chocolately` as the package manager. How about macOS? Home...
My development environment on macOS - Macbook Air M1
I maintain this note as my instruction for setting up macOS for development. Currently, I apply this on my Macbook Air M1 2020 - 16GB RAM and 512GB SSD. My first experience with this laptop was pretty good. Right after receiving my new Macbook, I upgraded it to macOS Monterey 12.1 for the latest OS. I installed some so...
Install ROS 2 on Raspberry Pi 4 (SD card image available)
ROS2 is an excellent framework for robotics applications. You can go further and embed a completed ROS 2 application stack in a small robot base with a Raspberry Pi computer. This post will tell you how to set up ROS 2 on Raspberry Pi 4 - the latest version of Pi family. The 1GB version of Pi 4 is probably too limited ...
Paper review: "YOLOX: Exceeding YOLO Series in 2021" and application in traffic sign detection - VIA Autonomous
YOLOX is an anchor-free version of YOLO, with a simpler design but better performance! It aims to bridge the gap between research and industrial communities. With this version of YOLO, the authors won the 1st Place on Stream Perception Challenge (Workshop on Autonomous Driving at CVPR 2021. This note reviews YOLOX pape...
Paper review: CenterTrack - CenterPoint - CenterPoint++
This is my note for 3 papers: CenterTrack - 2D object tracking, CenterPoint - 3D object detection and tracking, and CenterPoint++ - submission to the Waymo Real-time 3D Detection Challenge. CenterTrack applies a detection model to a pair of images and detections from the prior frame. Given this minimal input, CenterTra...
Paper review: SECOND - Sparsely Embedded Convolutional Detection
LiDAR-based or RGB-D-based object detection is used in numerous applications, ranging from autonomous driving to robot vision. In this note, we review SECOND: Sparsely Embedded Convolutional Detection, a SOTA 3D object detection network in 2018. This note only sums up the main points of the paper. If you want to know t...
Build a Pushup counter app with OpenCV and Deep learning
| | ResNeSt backbone | 0.818 | 0.028 | 10,563,989 | | ShuffleNet backbone | 0.766 | 0.032 | 1,557,443 | | MobileNet backbone | 0.786 | 0.029 | 1,910,437 | | BlazePose - Heatmap branch | 0.760 | 0.032 | 885,559 | 3. Use signal processing to count Use signal processing to count Pushups In the first implementation, we pic...
202012 posts
Cài đặt và sử dụng VS Code trên Google Colab
GPU miễn phí từ Google Colab là môi trường rất tốt để phát triển, thử nghiệm các mô hình học máy một cách miễn phí. Tuy vậy, cá nhân tôi thấy việc dùng Notebook của Colab có phần bất tiện hơn việc code bằng trình sửa code quen thuộc là VS Code. Bài viết này sẽ hướng dẫn các bạn cài đặt và sử dụng VS Code ngay trên môi ...
Tìm hiểu mô hình YOLO cho phát hiện vật - Từ YOLOv1 đến YOLOv3
YOLO - You Only Look Once là một trong những mô hình phát hiện vật tốt nhất ở thời điểm hiện tại. Dù đều được gọi là YOLO, các phiên bản của mô hình này đều có những cải tiến rất đáng kể sau mỗi phiên bản. Sau 3 phiên bản của tác giả chính Joseph Redmon là YOLOv1 đến v3. Lưu ý: Bài viết này chỉ mang tính chất tổng hợp ...
Advanced driver-assistance system on Jetson Nano Part 3 - Deep neural networks
| | 23 | 46 | 79 | 288 | 166 | 270 | 209 | 209 | 207 | 64 | 138 | 31 | 123 | 87 | 2000 | Experiments I trained traffic sign classification network with image size 64x64, Adam optimizer with learning rate 0.0001, batch size 32, loss function categorical cross entropy. In order to deal with class imbalance problem, I set...
Advanced driver-assistance system on Jetson Nano Part 2 - Software design
Recently, I have built a prototype of an advanced driver-assistance system (ADAS) using a Jetson Nano computer. In this project, I have successfully deployed 3 deep neural networks and some computer vision algorithms on a super cheap hardware of Jetson Nano. I decided to write this post series to share about how this s...
Advanced driver-assistance system on Jetson Nano Part 1 - Intro & Hardware design
Recently, I have built a prototype of an advanced driver-assistance system (ADAS) using a Jetson Nano computer. In this project, I have successfully deployed 3 deep neural networks and some computer vision algorithms on a super cheap hardware of Jetson Nano. I decided to write this post series to share about how this s...
Hackathon: Xây dựng giải pháp biến đổi, stream giấy viết cho giáo dục từ xa
Vừa rồi, chúng tôi đã tham gia Cuộc thi IBM Hackathon tổ chức tại Đại học Bách khoa Hà Nội và may mắn dành giải Nhì cho hạng mục Call For Code với giải pháp biến đổi, stream giấy viết cho giáo dục từ xa. Trong bài viết này, tôi muốn chia sẻ với mọi người về giải pháp nhóm tôi đã thiết kế và triển khai trong 48h của cuộ...
Chúng tôi đã xây dựng xe tự hành trên giả lập thế nào?
Trong năm 2020, tôi và một số anh em cùng lớp đại học đã tham dự Cuộc Đua Số, một cuộc thi lập trình xe tự hành cho sinh viên. Ở vòng trường đại học, các đội chơi phải thực hiện thử thách lập trình điều khiển xe tự hành di chuyển trên đường theo biển báo và tránh các chướng ngại vật trong môi trường giả lập. Trong bài ...
Tìm hiểu mô hình CenterNet - Objects as Points
CenterNet là một mạng object detection có thiết kế cực kỳ đơn giản, nhưng lại đạt được cân bằng giữa tốc độ và độ chính xác tốt vừa được ra mắt năm 2019. Ở bài viết này mình muốn giới thiệu đến các bạn những ý tưởng cơ bản của mạng này, cách thức hoạt động và cách huấn luyện CenterNet. Mình sẽ tập trung vào mục đích ph...
Thiết lập ban đầu cho Jetson Nano
| | CPU | Quad-core ARM® A57 CPU | Quad-core ARM Cortex-A53, 1.2GHz. | Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz | | GPU | 128-core NVIDIA Maxwell GPU | Broadcom VideoCore IV. | Broadcom VideoCore VI. | | RAM | 4 GB 64-bit LPDDR4 | RAM: 1GB LPDDR2 (900 MHz) | RAM – 1GB, 2GB hoặc 4GB LPDDR4-240...
Gọi hàm Python trên C++ với OpenCV
Có nhiều khi chúng ta cần gọi một hàm xử lý ảnh hoặc chạy mô hình học máy trên code Python từ C++. Lý do rất đơn giản, có thể là vì bạn muốn dùng luôn code Python, hoặc bạn chưa có thời gian chuyển sang code C++. Bài viết này sẽ hướng dẫn các bạn cách khởi tạo object và gọi đến phương thức Python từ code C++ và truyền ...
Linear Regression - Hồi quy tuyến tính cơ bản
Linear Regression (hồi quy tuyến tính) là một trong những thuật toán cơ bản nhất của Machine Learning. Ở bài viết này, tôi sẽ giới thiệu đến các bạn khái niệm về thuật toán này, lý thuyết toán học và cách triển khai thuật toán trên Python. Bài viết này được viết bằng Jupyter Lab. Trước hết hãy import và setup các thư v...
Configure integrated GPU for rendering and NVIDIA GPU for CUDA works in Ubuntu 18.04
In fact, besides CUDA tasks (which could be deep neural network training), our operating system also consumes a decent amount of memory for graphic rendering. This article will guide you to use onboard graphic card for display, thereby saving a considerable amount of GPU VRAM for model training. It's especially useful ...
20198 posts
Phát hiện đường thẳng với Hough Transform - OpenCV
Hough Transform là thuật toán phát hiện đường thẳng khá hiệu quả trong xử lý ảnh. Ở bài viết này, chúng ta sẽ cùng tìm hiểu về cách thức hoạt động cũng như cách sử dụng Hough Transform để phát hiện đường thẳng trong ảnh bằng thư viện OpenCV. I. Lý thuyết Ý tưởng chung của việc phát hiện đường thẳng trong thuật toán này...
Thiết kế thùng rác thông minh tự phân loại rác với Raspberry Pi 3
Nóng lên toàn cầu, bảo vệ môi trường, rác thải nhựa là những từ khoá nóng trong thời gian gần đây. Mỗi ngày, con người thải ra rất nhiều chai lọ, mà một lượng lớn trong số chúng không được xử lý đúng cách, trở thành nguyên nhân đe doạ sự sống của rất nhiều loài sinh vật và tàn phá môi trường. Tôi có nghĩ đến một giải p...
Xây dựng bộ phân loại VGG16 với Tensorflow Keras và áp dụng phân loại chó mèo
Dù Tensorflow Keras đã hỗ trợ VGG16, ở bài viết này, chúng ta vẫn sẽ cùng nhau viết lại VGG16 trong Tensorflow với Keras để hiểu cấu trúc mạng và cùng thử nghiệm với dataset Kaggle Dogs and Cats để phân loại chó mèo nhé. Mình sẽ trình bày bài viết này giống như một Jupyter Notebook kèm theo kết quả đã thực hiện để mọi ...
Thị giác máy tính và những gì cần học để bắt đầu
Ở bài viết này, chúng ta sẽ cùng tìm hiểu chung về ngành thị giác máy tính (computer vision) và phương pháp học để có một công việc trong ngành này. I. Sơ lược về thị giác máy tính Ta thường nhắc đến tác nhân khai sinh ra vũ trụ là vụ nổ lớn big bang. Ngày nay, người ta cũng tin rằng trong sinh học cũng có một "big ban...
Các hàm kích hoạt (activation function) trong neural network
Hàm kích hoạt (activation function) mô phỏng tỷ lệ truyền xung qua axon của một neuron thần kinh. Trong một mạng nơ-ron nhân tạo, hàm kích hoạt đóng vai trò là thành phần phi tuyến tại output của các nơ-ron. Trong bài viết này, chúng ta sẽ cùng tìm hiểu các hàm kích hoạt phổ biến nhất và các ưu, nhược điểm của chúng. T...
Xây dựng bộ phân loại chó, mèo hay gấu trúc với k-NN
images ... ``` Xây dựng bộ tiền xử lý và nạp dữ liệu Mở file `datasetloader.py` và chèn đoạn code sau: ```py Import necessary packages import numpy as np import cv2 as cv import os class DatasetLoader def load(self, imagepaths, verbose=-1): Initialize the list of images and labels data = [] labels = [] Loop over input ...
Locked myself out of SSH port Ubuntu AWS server using ufw
Currently, I locked myself out of my VPS (Amazon EC2) after configuring ufw firewall. Here are what I've done to disable ufw and take back the control of my VPS. 1. Stop your problem instance 2. Paste this script in `Instance Settings > View/Change User Data` ``` Content-Type: multipart/mixed; boundary="//" MIME-Versio...
ReactJS lifecycle method inside a functional Component
- Understand more about React component types: React Functional or Class Components: Everything you need to know . - In the case you want to combine a functional component with some lifecycle functions like `componentDidMount`, `componentWillUnmount`..., you can use `react-pure-lifecycle` package. - Detail code: ```jsx...
20184 posts
Những package cần có cho Ubuntu
Dưới đây tôi xin giới thiệu một số package tôi thường dùng trên Ubuntu và cách cài đặt. Những package này là các gói phần mềm mà tôi hay dùng, chủ yếu là phục vụ các nhu cầu cơ bản của việc lập trình. Cần có ở đây chỉ mang ý nghĩa cá nhân theo ý kiến của tôi. Tôi viết bài này để lưu lại như một bản note có thể bỏ ra xe...
Lọc ảnh (Image Filtering)
Lọc ảnh (làm mịn ảnh, làm mượt ảnh) là một bước rất quan trọng trong xử lý ảnh. Lọc ảnh thực tế có rất nhiều tác dụng như loại bỏ nhiễu, tìm biên đối tượng. Bài viết này sẽ giới thiệu nguyên tắc chung của lọc ảnh và một số phép lọc ảnh cơ bản. A. Nguyên tắc chung của lọc ảnh Nguyên tắc chung của các phương pháp lọc là ...
Các thao tác cơ bản với ảnh trên OpenCV
| | CV8U | uchar | | CV8S | schar | | CV16U | ushort | | CV16S | short | | CV32S | int | | CV32F | float | | CV64F | double | OpenCV cũng đưa ra dạng rút gọn tên các kiểu dữ liệu Vec: ```cpp typedef Vec< uchar, 2 > cv::Vec2b typedef Vec< uchar, 3 > cv::Vec3b typedef Vec< uchar, 4 > cv::Vec4b typedef Vec< short, 2 > cv:...
Ảnh số và các không gian màu trong xử lý ảnh
Ảnh số (digital image) là một thành phần biểu diễn hình ảnh trong hầu hết các thiết bị điện tử hiện nay như máy ảnh, điện thoại, máy tính, các công cụ hỗ trợ có sử dụng ảnh. Để bắt đầu với xử lý ảnh, chúng ta phải nắm được các kiến thức cơ bản về ảnh số và cách biểu diễn ảnh số trong máy tính. Bài viết này sẽ khái quát...
20177 posts
Xây dựng một cấu hình Emacs từ đầu
Emacs là một trình soạn thảo văn bản đa chức năng và có thể mở rộng các chức năng một cách mạnh mẽ. Khi chưa cấu hình (tất cả thiết lập để ở mặc định), Emacs có thể coi là trình soạn thảo hơi khó dùng, giao diện khá đơn giản, nếu không nói là xấu. Tuy nhiên khi tuỳ biến bằng các tệp cấu hình, bạn có thể biến Emacs thàn...
Install mysql2 gem on macOS using MAMP as mySQL server
When installing `mysql2` gem on a system using MAMP as mySQL server, you may end up with a compilation error because of incorrect mysql path. To deal with this problem, instead of `gem install mysql2`, try to specify mysql configuration directory: ```bash gem install mysql2 -- --with-mysql-config=/Applications/MAMP/Lib...
Minify multiple Javascript files in a folder with UglifyJS
To minify multiple Javascript files, you can use Grunt. However, there is a much easier way to archive it using UglifyJS and Bashscript. Step 1: Install UglifyJS ``` npm install -g uglify-js ``` Step 2: Write some Bash script code to find and minify all js files in a folder ```bash for file in path/to/js/folder/.js; do...
Một cách nhập xâu kí tự trong C - giải quyết vấn đề của fflush cho Linux, Mac OS
Khi lập trình C trên Windows, bạn có thể sử dụng `fflush()` để làm sạch bộ đệm trước khi nhập một xâu, tránh tình trạng "lạc trôi" của lệnh nhập xâu. Tuy nhiên khi làm việc với các hệ thống khác như Linux, hay Mac OS, mọi chuyện không đơn giản nữa: nhiều khi `fflush()` sẽ không làm việc. Bài viết này sẽ cho bạn một các...
Lấy địa chỉ IP thật của client trên Heroku với Nodejs
Khi sử dụng Express js của Nodejs, bạn đơn giản chỉ cần sử dụng `req.ip` để lấy IP người dùng. Tuy thế, khi bạn ứng dụng của chúng ta được host trên Heroku thì việc lấy IP thế này sẽ cho kết quả sai, đơn giản vì Heroku thực hiện một số routing khiến IP bạn nhận được là IP của router Heroku hoặc proxy. Vậy chúng ta nên ...
Tạo contact form đơn giản với Nodejs - nodemailer
Nếu website của bạn sử dụng một CMS như Wordpress thì việc tạo contact form đã khá dễ dàng với các plug-in. Tuy nhiên nếu bạn đang có một website tĩnh, bạn sẽ cần một dịch vụ để xử lí các form liên hệ của bạn. Bài viết này sẽ hướng dẫn bạn tự tạo một backend đơn giản để xử lí các form liên hệ. Form liên hệ của chúng ta...
Một số kĩ thuật xử lí tiếng Việt trong Javascript
Các kĩ thuật xử lí sau sẽ giúp chúng ta thao tác với tiếng Việt dễ dàng hơn mà không cần mất công xây dựng lại. Xoá dấu tiếng Việt Hàm xoadau() sau sẽ xoá loại bỏ hoàn toàn dấu câu tiếng Việt, không phân biệt hoa thường. ```javascript function xoadau(str) { str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a') s...
201615 posts
Kinh nghiệm ban đầu với Fedora Linux
Cũng lâu rồi tôi không viết bài trên blog của mình. Hôm nay nhân dịp cài đặt và dùng thử hệ điều hành Fedora Linux (bản Workstation 24), tôi muốn viết một bài chia sẻ cho mọi người những kinh nghiệm đầu tiên về việc sử dụng Fedora. Trước hết, tôi xin phép so sánh Fedora với một bản phân phối linux hết sức nổi tiếng - U...
Thuật toán loang ứng dụng trong game dò mìn
Thuật toán loang (thuật toán vết dầu loang) là một thuật toán dùng khá nhiều trong tin học, ứng dụng trong các bài toán thực tế như các bài toán tìm đường đi, game dò mìn, game line98... Gọi là thuật toán loang vì nguyên lí của thuật toán này rất giống với hiện tượng loang của chất lỏng. Khi ta đổ nước xuống một về mặt...
Xây dựng thuật toán sinh mìn trong trò chơi dò mìn Minesweeper viết bằng C
Gần đây, Việt Anh mới viết lại trò chơi dò mìn cổ điển bằng ngôn ngữ C. Trò chơi này có thể thực hiện với những thuật toán đơn giản. Bài viết này sẽ nói về thuật toán khởi tạo mìn mỗi lúc bắt đầu trò chơi. Trước hết tôi muốn gửi bạn file mã nguồn trò dò mìn tôi viết: https://github.com/vietanhdev/minesweeper-in-c/blob/...
Thay đổi độ phân giải màn hình Raspberry Pi
Khi cài đặt các phiên bản hệ điều hành dựa trên Linux, tôi nhận thấy nhiều hệ điều hành đôi lúc không nhận được độ phân giải thật của màn hình máy tính, dẫn đến việc hiển thị màn hình với độ phân giải thấp hơn mức bình thường, khiến các đối tượng trên màn hình bị mờ, nhìn rất xấu. Trên với các hệ điều hành Fedora, Ubun...
A very simple guide to GNU Emacs
| | M-f | Word Forward | | M-b | Word Backward | | C-a / C-e | Jump to beginning / end of line | | M-\{ / M-\} | Paragraph Forward / Backward | | C-v / M-v | Page Forward / Backward | | M-< / M-> | Jump to beginning / end of file | | M-C-a / M-C-e | C Function Forward / Backward | Above is a very basic guide to GNU Ema...
Cấu hình Emacs để lập trình C
Link hướng dẫn cài đặt và sử dụng các chức năng: http://tuhdo.github.io/c-ide.html Sau đây là vài thứ cơ bản ko cần đọc cái bên trên cài và dùng luôn đã >> Anh em thực hiện cài đặt: Mở Terminal, gõ lệnh: `git clone https://github.com/tuhdo/emacs-c-ide-demo.git ~/.emacs.d` Nếu hiện thông báo đã tồn tại thư mục ` ~/.emac...
Lập trình viên nên tạo website cá nhân
Trong thời đại số mà các công nghệ, mạng xã hội đang ngày càng thể hiện sự ảnh hưởng của chúng, mỗi chúng ta không chỉ tồn tại trong thế giới thực, mà còn trong thế giới online. Sự hiện diện của mỗi người trong thế giới online đang dần trở nên quan trọng, khi mà ở đó, ta không những có thể kết nối với những người quen ...
Cấu trúc rẽ nhánh trong C
Cấu trúc rẽ nhánh trong mỗi ngôn ngữ lập trình luôn luôn là một thành phần quan trọng. Đó là thành phần cơ bản tạo nên hầu hết các thuật toán hiện đại. Nếu bạn muốn mô tả một đoạn chương trình kiểu như: Nếu gặp điều kiện C thì thực hiện hành động A, ngược lại, thực hiện hành động B thì bạn chắc chắn cần sử dụng cấu trú...
Biến, hằng và nhập xuất dữ liệu trong C
| | 42 | %6d | 42 | | 42 | %-6d | 42 | | 'z' | %3c | z | | 2.71828 | %10.2f | 2.71 | | "printf" | %10s | printf | b) Nhập dữ liệu từ bàn phím: Cú pháp: `scanf ("xâu kí tự…", <các con trỏ>);` Ví dụ ta muốn nhập một số nguyên vào biến a: ```c int a; scanf("%d", &a); ``` Lưu ý: Ở đây `&a` là con trỏ trỏ tới biến a. Chú ý ...
Toán tử trong C
| | Postfix | `() [] -> . ++ - -` | Trái sang phải | | Unary | `+ - ! ~ ++ - - (type) & sizeof` | Phải sang trái | | Tính nhân | ` / %` | Trái sang phải | | Tính cộng | `+ -` | Trái sang phải | | Dịch chuyển bit | `<< >>` | Trái sang phải | | So sánh không ngang bằng | `< <= > >=` | Trái sang phải | | So sánh ngang bằn...
Cài đặt Geany – gcc làm môi trường soạn thảo và biên dịch ngôn ngữ C trên Ubuntu
Trong bài viết này Việt Anh sẽ hướng dẫn các bạn cài Geany và gcc để soạn thảo và biên dịch chương trình viết bằng ngôn ngữ C trên Linux (cụ thể ở đây là hệ điều hành Ubuntu). 1.Trước hết bạn phải tải và cài đặt Geany: Mở Terminal (Ctrl + Alt +t) và gõ lần lượt các lệnh sau để cài đặt trình soạn thảo mã nguồn Geany: ``...
Cấu trúc chương trình C cơ bản
Các thành phần của một chương trình C cơ bản bao gồm: - Các lệnh tiền xử lí - Các hàm - Các biến - Các lệnh và biểu thức - Các comment (ghi chú về code giúp ích cho công tác bảo trì và nâng cấp) Chúng ta hãy cùng nghiên cứu chương trình Hello World – Chào thế giới trong ngôn ngữ C. Chương trình này có chức năng in dòng...
Giới thiệu serie học lập trình C
> Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX. Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thành một những ngôn ngữ phổ dụng nhất. C là ngôn ngữ rất có hiệu quả và được ưa chuộng nhất để viết các phần mềm h...
Thiết lập Sublime Text 3 để biên dịch và chạy ngôn ngữ C
Xem hướng dẫn cài đặt Sublime text 3. 2. Tiếp đó cài đặt gcc để biên dịch ngôn ngữ c: Mở Terminal (Ctrl + Alt +t) và gõ lần lượt các lệnh sau để cài đặt gói build-essential: ```sh sudo apt-get update sudo apt-get install build-essential ``` 3. Cấu hình Build system cho Sublime Text để biên dịch và chạy C: Mở Sublime Te...
Sống với đam mê hoặc một cuộc đời nhàm chán
Các bạn ạ, đã có rất nhiều bài viết, hội thảo, cuộc nói chuyện của các chuyên gia nổi tiếng xoay quanh chủ đề “sự đam mê“. Bạn đã đọc? Bạn đã nghe? Bạn đã thấy? Vậy bạn đã hiểu được bao nhiêu phần trăm về cái mà người ta gọi là đam mê, và về cách đam mê ảnh hưởng, xây dựng và khiến cuộc sống của mỗi con người trở nên c...
