# Duyet Le - Technical Blog A comprehensive collection of technical blog posts covering Data Engineering, Software Engineering, and Technology insights from Duyet Le. ## Contact - Author: Duyet Le - Email: me@duyet.net - Website: https://duyet.net - GitHub: https://github.com/duyet - LinkedIn: https://linkedin.com/in/duyet - Blog: https://blog.duyet.net ## About This Blog 295+ technical articles covering topics including: - Data Engineering & Big Data - Apache Spark, ClickHouse, Apache Airflow - Cloud Computing (AWS, GCP, Azure) - Kubernetes & DevOps - Programming (Python, Rust, JavaScript/TypeScript) - Machine Learning & AI - Software Engineering Best Practices Articles span from 2015 to 2024, documenting the evolution of modern data engineering and software development practices. ## Recent Posts ### [ClickHouse Rust UDFs](https://blog.duyet.net/2024/11/clickhouse-rust-udf.html) - **Date**: 2024-11-01 - **Category**: Data - **Tags**: Data, Clickhouse - **URL**: https://blog.duyet.net/2024/11/clickhouse-rust-udf.html - **Description**: In Data Platform System with ClickHouse, rather than extracting data from ClickHouse for processing in external systems, we can perform transformations directly within ClickHouse itself. ClickHouse can call any external executable program or script to process data. My idea is using custom **User-Defined Functions (UDFs) written in Rust** to handle data transformations between tables. ### [ReplicatedReplacingMergeTree](https://blog.duyet.net/2024/06/clickhouse-replicatedreplacingmergetree.html) - **Date**: 2024-06-23 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/06/clickhouse-replicatedreplacingmergetree.html - **Description**: Learn how to set up and manage ReplicatedReplacingMergeTree in ClickHouse on Kubernetes. This comprehensive guide covers cluster setup with ClickHouse Operator, data replication, performance tuning, and best practices for high availability deployments. ### [ReplacingMergeTree](https://blog.duyet.net/2024/06/clickhouse-replacingmergetree.html) - **Date**: 2024-06-01 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/06/clickhouse-replacingmergetree.html - **Description**: My favorite ClickHouse table engine is `ReplacingMergeTree`. The main reason is that it is similar to `MergeTree` but can automatically deduplicate based on columns in the `ORDER BY` clause, which is very useful. ### [MergeTree](https://blog.duyet.net/2024/05/clickhouse-mergetree.html) - **Date**: 2024-05-31 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/05/clickhouse-mergetree.html - **Description**: After starting this series ClickHouse on Kubernetes, you can now configure your first single-node ClickHouse server. Let's dive into creating your first table and understanding the basic concepts behind the ClickHouse engine, its data storage, and some cool features ### [Monitoring ClickHouse on Kubernetes](https://blog.duyet.net/2024/03/clickhouse-monitoring.html) - **Date**: 2024-03-27 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/03/clickhouse-monitoring.html - **Description**: Complete guide to monitoring ClickHouse on Kubernetes. Learn about built-in dashboards, Prometheus + Grafana setup, powerful system tables for monitoring queries, and the ClickHouse Monitoring UI dashboard. Includes practical examples, essential monitoring queries, and best practices for production observability. ### [ClickHouse SELECT Advances](https://blog.duyet.net/2024/03/clickhouse-select-advances.html) - **Date**: 2024-03-26 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/03/clickhouse-select-advances.html - **Description**: Dynamic column selection (also known as a `COLUMNS` expression) allows you to match some columns in a result with a re2 regular expression. ### [ClickHouse on Kubernetes](https://blog.duyet.net/2024/03/clickhouse-on-kubernetes.html) - **Date**: 2024-03-13 - **Category**: Data - **Tags**: Data, Clickhouse, Clickhouse On Kubernetes - **URL**: https://blog.duyet.net/2024/03/clickhouse-on-kubernetes.html - **Description**: Complete guide to deploying ClickHouse on Kubernetes using the Altinity ClickHouse Operator. Learn how to set up your first single-node cluster, configure persistent storage, manage users, and customize ClickHouse versions. Includes practical examples and best practices from production experience managing clusters with trillions of rows. ### [2023 - A Year of Moving](https://blog.duyet.net/2024/02/2023-summary.html) - **Date**: 2024-02-09 - **Category**: Story - **Tags**: - **URL**: https://blog.duyet.net/2024/02/2023-summary.html - **Description**: So, I hadn't really planned on writing a summary post for this year, as lazy as I am, but somehow, here we are. ### [Apache OpenDAL in Rust to Access Any Kind of Data Services](https://blog.duyet.net/2023/09/opendal.html) - **Date**: 2023-09-09 - **Category**: Rust - **Tags**: Data, Rust, Data Engineering - **URL**: https://blog.duyet.net/2023/09/opendal.html - **Description**: OpenDAL is a data access layer that allows users to easily and efficiently retrieve data from various storage services in a unified way such as S3, FTP, FS, Google Drive, HDFS, etc. They has been rewritten in Rust for the Core and have a binding from many various language like Python, Node.js, C, etc.. ### [My Neovim Setup in 2023](https://blog.duyet.net/2023/09/nvim-setup-2023.html) - **Date**: 2023-09-04 - **Category**: Productivity - **Tags**: Vim, Ide - **URL**: https://blog.duyet.net/2023/09/nvim-setup-2023.html - **Description**: It's been years since I first started using neovim and I've been updating it regularly ever since. ### [DuckDB](https://blog.duyet.net/2023/09/duckdb.html) - **Date**: 2023-09-03 - **Category**: Data - **Tags**: Data, Data Engineering - **URL**: https://blog.duyet.net/2023/09/duckdb.html - **Description**: In this post, I want to explore the features and capabilities of DuckDB, an open-source, in-process SQL OLAP database management system written in C++11 that has been gaining popularity recently. According to what people have said, DuckDB is designed to be easy to use and flexible, allowing you to run complex queries on relational datasets using either local, file-based DuckDB instances or the cloud service MotherDuck. ### [Airflow control the parallelism and concurrency (draw)](https://blog.duyet.net/2023/07/airflow-control-parallelism-concurrency.html) - **Date**: 2023-07-16 - **Category**: Data - **Tags**: Data, Data Engineering, Apache Airflow - **URL**: https://blog.duyet.net/2023/07/airflow-control-parallelism-concurrency.html - **Description**: How to control parallelism and concurrency ### [Fossil Data Platform Rewritten in Rust 🦀](https://blog.duyet.net/2023/06/fossil-data-platform-written-rust.html) - **Date**: 2023-06-18 - **Category**: Rust - **Tags**: Data, Data Engineering, Rust - **URL**: https://blog.duyet.net/2023/06/fossil-data-platform-written-rust.html - **Description**: My data engineering team at Fossil recently released some of Rust-based components of our Data Platform after faced performance and maintenance challenges of the old Python codebase. I would like to share the insights and lessons learned during the process of migrating Fossil's Data Platform from Python to Rust. ### [Running Spark in GitHub Actions](https://blog.duyet.net/2023/05/spark-github-actions.html) - **Date**: 2023-05-07 - **Category**: Data - **Tags**: Data, Data Engineering, Apache Spark, Github - **URL**: https://blog.duyet.net/2023/05/spark-github-actions.html - **Description**: This post provides a quick and easy guide on how to run Apache Spark in GitHub Actions for testing purposes ### [Migrate (again) to Next.js 13 Pro Max](https://blog.duyet.net/2023/05/migrate-blog-to-nextjs.html) - **Date**: 2023-05-01 - **Category**: Project - **Tags**: Side Project, Web, React - **URL**: https://blog.duyet.net/2023/05/migrate-blog-to-nextjs.html - **Description**: I've been using Gatsby since 2019 and while it's great that I can write my blogs in NeoVim, commit and push to Github, and have Cloudflare Pages build and publish to CDN, but I was becoming frustrated with the slow building times and the overall maintenance requirements. ### [Why does Helm Charts interpret 0777 as 511?](https://blog.duyet.net/2023/04/helm-charts-problem.html) - **Date**: 2023-04-15 - **Category**: Data - **Tags**: Kubernetes - **URL**: https://blog.duyet.net/2023/04/helm-charts-problem.html - **Description**: Why does Helm Charts interpret 0777 to 511? It took me quite some time to debug it. ### [GPT vs Traditional NLP Models](https://blog.duyet.net/2023/04/nlp-vs-gpt.html) - **Date**: 2023-04-01 - **Category**: Data - **Tags**: Data, Data Engineering, Nlp - **URL**: https://blog.duyet.net/2023/04/nlp-vs-gpt.html - **Description**: The field of Natural Language Processing (NLP) has seen remarkable advancements in recent years, and the emergence of the Generative Pre-trained Transformer (GPT) has revolutionized the way NLP models operate. GPT is a cutting-edge language model that employs deep learning to generate human-like text. Unlike conventional NLP models, which required extensive training on specific tasks, GPT is pre-trained on vast amounts of data and can be fine-tuned for various NLP tasks ### [Ask ChatGPT about 20 important concepts of Apache Spark](https://blog.duyet.net/2023/02/ask-chatgpt-spark.html) - **Date**: 2023-02-26 - **Category**: Data - **Tags**: Data, Data Engineering - **URL**: https://blog.duyet.net/2023/02/ask-chatgpt-spark.html - **Description**: I asked ChatGPT to explain 20 important concepts of Apache Spark. Let's see what it has to say! ### [Rust Data Engineering: Processing Dataframes with Polars](https://blog.duyet.net/2023/02/rust-polars.html) - **Date**: 2023-02-19 - **Category**: Rust - **Tags**: Data, Data Engineering, Rust - **URL**: https://blog.duyet.net/2023/02/rust-polars.html - **Description**: If you're interested in data engineering with Rust, you might want to check out Polars, a Rust DataFrame library with Pandas-like API. ### [Data Engineering Tools written in Rust](https://blog.duyet.net/2023/01/data-engineering-rust-tools.html) - **Date**: 2023-01-22 - **Category**: Data - **Tags**: Data, Data Engineering, Rust - **URL**: https://blog.duyet.net/2023/01/data-engineering-rust-tools.html - **Description**: This blog post will provide an overview of the data engineering tools available in Rust, their advantages and benefits, as well as a discussion on why Rust is a great choice for data engineering. ## All Blog Posts by Year ### 2024 (8 posts) - [ClickHouse Rust UDFs](https://blog.duyet.net/2024/11/clickhouse-rust-udf.html) - 2024-11-01 - [ReplicatedReplacingMergeTree](https://blog.duyet.net/2024/06/clickhouse-replicatedreplacingmergetree.html) - 2024-06-23 - [ReplacingMergeTree](https://blog.duyet.net/2024/06/clickhouse-replacingmergetree.html) - 2024-06-01 - [MergeTree](https://blog.duyet.net/2024/05/clickhouse-mergetree.html) - 2024-05-31 - [Monitoring ClickHouse on Kubernetes](https://blog.duyet.net/2024/03/clickhouse-monitoring.html) - 2024-03-27 - [ClickHouse SELECT Advances](https://blog.duyet.net/2024/03/clickhouse-select-advances.html) - 2024-03-26 - [ClickHouse on Kubernetes](https://blog.duyet.net/2024/03/clickhouse-on-kubernetes.html) - 2024-03-13 - [2023 - A Year of Moving](https://blog.duyet.net/2024/02/2023-summary.html) - 2024-02-09 ### 2023 (13 posts) - [Apache OpenDAL in Rust to Access Any Kind of Data Services](https://blog.duyet.net/2023/09/opendal.html) - 2023-09-09 - [My Neovim Setup in 2023](https://blog.duyet.net/2023/09/nvim-setup-2023.html) - 2023-09-04 - [DuckDB](https://blog.duyet.net/2023/09/duckdb.html) - 2023-09-03 - [Airflow control the parallelism and concurrency (draw)](https://blog.duyet.net/2023/07/airflow-control-parallelism-concurrency.html) - 2023-07-16 - [Fossil Data Platform Rewritten in Rust 🦀](https://blog.duyet.net/2023/06/fossil-data-platform-written-rust.html) - 2023-06-18 - [Running Spark in GitHub Actions](https://blog.duyet.net/2023/05/spark-github-actions.html) - 2023-05-07 - [Migrate (again) to Next.js 13 Pro Max](https://blog.duyet.net/2023/05/migrate-blog-to-nextjs.html) - 2023-05-01 - [Why does Helm Charts interpret 0777 as 511?](https://blog.duyet.net/2023/04/helm-charts-problem.html) - 2023-04-15 - [GPT vs Traditional NLP Models](https://blog.duyet.net/2023/04/nlp-vs-gpt.html) - 2023-04-01 - [Ask ChatGPT about 20 important concepts of Apache Spark](https://blog.duyet.net/2023/02/ask-chatgpt-spark.html) - 2023-02-26 - [Rust Data Engineering: Processing Dataframes with Polars](https://blog.duyet.net/2023/02/rust-polars.html) - 2023-02-19 - [Data Engineering Tools written in Rust](https://blog.duyet.net/2023/01/data-engineering-rust-tools.html) - 2023-01-22 - [Why ClickHouse Should Be the Go-To Choice for Your Next Data Platform?](https://blog.duyet.net/2023/01/clickhouse.html) - 2023-01-10 ### 2022 (23 posts) - [Airflow Dataset (Data-aware scheduling)](https://blog.duyet.net/2022/09/airflow-dataset.html) - 2022-09-27 - [Cargo: workspace inheritance](https://blog.duyet.net/2022/09/cargo-workspace-inheritance.html) - 2022-09-24 - [Rust: Why ? is good](https://blog.duyet.net/2022/09/rust-question-mark-operator.html) - 2022-09-24 - [Cargo: Patch Dependencies](https://blog.duyet.net/2022/09/cargo-patch-deps.html) - 2022-09-24 - [Rust: indoc](https://blog.duyet.net/2022/08/rust-indoc.html) - 2022-08-06 - [Rust: Rayon - A data parallelism library for Rust](https://blog.duyet.net/2022/08/rust-rayon.html) - 2022-08-06 - [Rust automatically upgrade to a new edition](https://blog.duyet.net/2022/05/rust-cargo-fix.html) - 2022-05-14 - [Rust Source-based Code Coverage](https://blog.duyet.net/2022/04/rust-code-cov.html) - 2022-04-09 - [Spark on Kubernetes tại Fossil 🤔](https://blog.duyet.net/2022/03/spark-kubernetes-at-fossil.html) - 2022-03-09 - [Rust: Box](https://blog.duyet.net/2022/03/rust-box.html) - 2022-03-05 - [Manage Redshift/Postgres Privileges GitOps Style](https://blog.duyet.net/2022/02/grant-redshift-gitops.html) - 2022-02-24 - [Rust: Option & Result](https://blog.duyet.net/2022/02/rust-option-result.html) - 2022-02-15 - [Rust Design Pattern: Builder Pattern](https://blog.duyet.net/2022/02/rust-builder-design-pattern.html) - 2022-02-13 - [Rust: Copy & Clone Trait](https://blog.duyet.net/2022/02/rust-copy-clone-trait.html) - 2022-02-13 - [Rust: Trait](https://blog.duyet.net/2022/02/rust-trait.html) - 2022-02-13 - [Rust: Struct](https://blog.duyet.net/2022/02/rust-struct.html) - 2022-02-13 - [Rust Design Pattern: Command Pattern](https://blog.duyet.net/2022/02/rust-command-design-pattern.html) - 2022-02-13 - [Rust Design Pattern: Prefer Small Crates](https://blog.duyet.net/2022/02/rust-small-crates-design-pattern.html) - 2022-02-13 - [Rust: cargo-edit](https://blog.duyet.net/2022/02/cargo-edit.html) - 2022-02-06 - [Rust: Format Strings in 1.58](https://blog.duyet.net/2022/01/rust-format-strings-1.58.html) - 2022-01-18 - [Rust: Turbofish ::<> 🐠 ](https://blog.duyet.net/2022/01/rust-turbofish.html) - 2022-01-02 - [Rust: FromStr trait](https://blog.duyet.net/2022/01/rust-fromstr.html) - 2022-01-02 - [cheats.rs](https://blog.duyet.net/2022/01/rust-cheatsheet.html) - 2022-01-01 ### 2021 (13 posts) - [Rust: Ownership](https://blog.duyet.net/2021/12/rust-ownership.html) - 2021-12-19 - [Rust Design Pattern: Strategy Pattern](https://blog.duyet.net/2021/12/rust-strategy-design-pattern.html) - 2021-12-19 - [Rust và Data Engineering? 🤔](https://blog.duyet.net/2021/11/rust-data-engineering.html) - 2021-11-27 - [Spark on Kubernetes - better handling for node shutdown](https://blog.duyet.net/2021/11/spark-node-decommission.html) - 2021-11-22 - [Uptime with GitHub Actions](https://blog.duyet.net/2021/09/uptime-with-github-actions.html) - 2021-09-20 - [From Docker to Podman on MacOS](https://blog.duyet.net/2021/09/podman.html) - 2021-09-05 - [Good reasons to use ClickHouse](https://blog.duyet.net/2021/08/good-reasons-to-use-clickhouse.html) - 2021-08-29 - [zx](https://blog.duyet.net/2021/08/zx.html) - 2021-08-28 - [Bitbucket Pipelines Notes](https://blog.duyet.net/2021/08/bitbucket-pipelines-notes.html) - 2021-08-27 - [Postgres Full Text Search](https://blog.duyet.net/2021/07/postgres-full-text-search.html) - 2021-07-04 - [Migrating from Vim to NeoVim](https://blog.duyet.net/2021/06/neovim.html) - 2021-06-15 - [Migrate to Cloudflare Pages](https://blog.duyet.net/2021/05/migrate-to-cloudflare-pages.html) - 2021-05-01 - [Spark on Kubernetes Performance Tuning](https://blog.duyet.net/2021/04/spark-kubernetes-performance-tuning.html) - 2021-04-10 ### 2020 (9 posts) - [Airflow 2.0 - Taskflow API](https://blog.duyet.net/2020/12/airflow-taskflow-api.html) - 2020-12-26 - [Tại sao nên triển khai Apache Spark trên Kubernetes](https://blog.duyet.net/2020/10/why-spark-on-kubernetes.html) - 2020-10-24 - [TL;DR - ES2020: Nullish Coalescing](https://blog.duyet.net/2020/06/tldr-es2020-nullish-coalescing.html) - 2020-06-28 - [Scheduling Python script in Airflow](https://blog.duyet.net/2020/06/scheduling-python-script-in-airflow.html) - 2020-06-24 - [Spark History Server on Kubernetes](https://blog.duyet.net/2020/05/spark-history-server-on-k8s.html) - 2020-05-29 - [3 ways to run Spark on Kubernetes](https://blog.duyet.net/2020/05/spark-on-k8s.html) - 2020-05-24 - [Airflow DAG Serialization](https://blog.duyet.net/2020/05/airflow-dag-serialization.html) - 2020-05-01 - [Data Studio: Connecting BigQuery and Google Sheets to help with hefty data analysis](https://blog.duyet.net/2020/05/data-studio-caching-with-spreadsheet.html) - 2020-05-01 - [TL;DR - Random Forest thay vì Neural Network](https://blog.duyet.net/2020/05/tldr-why-rf.html) - 2020-05-01 ### 2019 (19 posts) - [Javascript Shorthands Tips](https://blog.duyet.net/2019/10/js-shorthand-tips.html) - 2019-10-20 - [Đánh giá hệ thống Information Retrieval (tiếp theo)](https://blog.duyet.net/2019/10/ir-evaluation-2.html) - 2019-10-09 - [Sách hay (Engineering)](https://blog.duyet.net/2019/09/books.html) - 2019-09-17 - [Đánh giá hệ thống Information Retrieval](https://blog.duyet.net/2019/08/ir-evaluation.html) - 2019-08-31 - [Information Retrieval - Vector Space Model](https://blog.duyet.net/2019/08/ir-vector-space-model.html) - 2019-08-30 - [Airflow - một số ghi chép](https://blog.duyet.net/2019/08/airflow-note.html) - 2019-08-27 - [Cài đặt Apache Airflow với Docker Compose](https://blog.duyet.net/2019/08/airflow-docker-compose.html) - 2019-08-26 - [Gửi Slack Alerts trên Airflow](https://blog.duyet.net/2019/08/slack-alerts-in-airflow.html) - 2019-08-20 - [Airflow - "context" dictionary](https://blog.duyet.net/2019/08/airflow-context.html) - 2019-08-09 - [Guess.js](https://blog.duyet.net/2019/08/guess-js.html) - 2019-08-09 - [8 nền tảng serverless platform tốt nhất hiện nay](https://blog.duyet.net/2019/08/8-serverless-platform.html) - 2019-08-09 - [Migrate Blogger sang Gatsby](https://blog.duyet.net/2019/08/migrate-blogger-to-gatsby.html) - 2019-08-07 - [Pricetrack: theo dõi giá và cashback (by Firebase)](https://blog.duyet.net/2019/05/pricetrack-cashback.html) - 2019-05-13 - [Super Simple Shorten URL với Firebase Dynamic Links](https://blog.duyet.net/2019/04/shorten-url-voi-firebase.html) - 2019-04-19 - [Google Cloud Next '19](https://blog.duyet.net/2019/04/google-cloud-next-19.html) - 2019-04-19 - [Đi lại bằng phương tiện công cộng ở San Francisco](https://blog.duyet.net/2019/05/phuong-tien-cong-cong-san-francisco.html) - 2019-04-19 - [Resting và Spreading JavaScript Objects](https://blog.duyet.net/2019/03/7-thu-thuat-voi-resting-va-spreading.html) - 2019-03-27 - [Checklist tối ưu hiệu năng React](https://blog.duyet.net/2019/03/react-performance-checklist.html) - 2019-03-03 - [Papers with Code: A Fantastic GitHub Resource for Machine Learning](https://blog.duyet.net/2019/01/pwc.html) - 2019-01-06 ### 2018 (14 posts) - [api.duyet.net](https://blog.duyet.net/2018/11/api.duyet.net.html) - 2018-11-18 - [Web Performance 101](https://blog.duyet.net/2018/11/web-performance-101.html) - 2018-11-13 - [[Slide] Build simple data pipeline for ETL and data aggregation on AWS](https://blog.duyet.net/2018/11/simple-data-pipeline-aws.html) - 2018-11-12 - [5 bí quyết viết JS conditionals tốt hơn](https://blog.duyet.net/2018/09/5-bi-quyet-js-conditionals-tot-hon.html) - 2018-09-20 - [VS Code - Import Cost](https://blog.duyet.net/2018/09/vs-code-import-cost.html) - 2018-09-17 - [Deploy Deep Learning model as a web service API](https://blog.duyet.net/2018/07/deploy-deep-learning-model-as-web-service-api.html) - 2018-07-21 - [Signale - Hackable console logger for Nodejs](https://blog.duyet.net/2018/07/signale-console-logger.html) - 2018-07-19 - [TensorFlow.js](https://blog.duyet.net/2018/07/tensorflowjs.html) - 2018-07-19 - [Gio.js - 3D Globe Data Visualization](https://blog.duyet.net/2018/07/giojs-3d-globe-data-visualization.html) - 2018-07-01 - [[Slide] Sentiment Analysis](https://blog.duyet.net/2018/06/slide-sentiment-analysis.html) - 2018-06-30 - [Sử dụng PyTorch với GPU miễn phí trên Google Colab](https://blog.duyet.net/2018/06/su-dung-pytorch-voi-gpu-mien-phi-tren.html) - 2018-06-03 - [Propel - Machine learning for Javascript](https://blog.duyet.net/2018/03/propel-machine-learning-for-javascript.html) - 2018-03-01 - [Phân lớp SVM với Word2vec](https://blog.duyet.net/2018/02/svm-word2vec.html) - 2018-02-25 - [Duckling - phân tích văn bản sang dữ liệu có cấu trúc](https://blog.duyet.net/2018/02/duckling-phan-tich-van-ban-sang-du-lieu-co-cau-truc.html) - 2018-02-19 ### 2017 (22 posts) - [Colaboratory - phiên bản custom của Jupyter Notebook từ Google](https://blog.duyet.net/2017/11/colaboratory-research-google.html) - 2017-11-07 - [Doc2vec trong Sentiment Analysis](https://blog.duyet.net/2017/10/doc2vec-trong-sentiment-analysis.html) - 2017-10-08 - [Python - Nhận dạng xe hơi với OpenCV](https://blog.duyet.net/2017/09/detect-cars-opencv.html) - 2017-09-20 - [Tolks.io - Put your story up on the Internet](https://blog.duyet.net/2017/09/tolksio-put-your-story-up-on-internet.html) - 2017-09-05 - [Machine Learning is Fun! (Vietnamese version)](https://blog.duyet.net/2017/08/machine-learning-is-fun.html) - 2017-08-25 - [Phân lớp văn bản](https://blog.duyet.net/2017/08/phan-lop-van-ban.html) - 2017-08-11 - [natural - NLTK cho Javascript](https://blog.duyet.net/2017/08/natural-nltk.html) - 2017-08-06 - [gpu.js - Tăng tốc Javascript với GPU](https://blog.duyet.net/2017/07/gpujs.html) - 2017-07-26 - [URLs là UI](https://blog.duyet.net/2017/07/urls-are-ui.html) - 2017-07-20 - [Cài Apache Spark standalone bản pre-built](https://blog.duyet.net/2017/05/cai-apache-spark-standalone-ban-pre.html) - 2017-05-31 - [Explain Shell - explainshell.com](https://blog.duyet.net/2017/04/explain-shell-explainshellcom.html) - 2017-04-27 - [NLP - Truyện Kiều Word2vec](https://blog.duyet.net/2017/04/nlp-truyen-kieu-word2vec.html) - 2017-04-16 - [Multcloud - di chuyển, sao chép dữ liệu qua lại giữa các Cloud Drive (Google Drive, Dropbox, ...)](https://blog.duyet.net/2017/04/multcloud.html) - 2017-04-11 - [Python - Churn prediction with Graphlab](https://blog.duyet.net/2017/03/python-churn-prediction-with-graphlab.html) - 2017-03-18 - [Notibar.js](https://blog.duyet.net/2017/03/notibarjs.html) - 2017-03-04 - [Learning R cheatsheet](https://blog.duyet.net/2017/02/learning-r-cheatsheet.html) - 2017-02-05 - [Teleconsole - Chia sẻ remote console ](https://blog.duyet.net/2017/01/teleconsole.html) - 2017-01-26 - [Botpress - Phần 2: Coding](https://blog.duyet.net/2017/01/botpress-p2.html) - 2017-01-24 - [Botpress - Phần 1: Init Chatbot](https://blog.duyet.net/2017/01/botpress.html) - 2017-01-24 - [Rancher - Quản lý Docker Container bằng UI](https://blog.duyet.net/2017/01/rancher.html) - 2017-01-23 - [Shell - Mọi thao tác với tệp và thư mục trên Bash](https://blog.duyet.net/2017/01/shell-thao-tac-voi-tep-va-thu-muc.html) - 2017-01-23 - [Writefull](https://blog.duyet.net/2017/01/writefull.html) - 2017-01-22 ### 2016 (93 posts) - [Javascript Weekly #10](https://blog.duyet.net/2016/12/javascript-weekly-10.html) - 2016-12-17 - [The Evolution of a Software Engineer](https://blog.duyet.net/2016/12/the-evolution-of-software-engineer.html) - 2016-12-17 - [vnTokenizer trên PySpark](https://blog.duyet.net/2016/12/vntokenizer-tren-pyspark.html) - 2016-12-14 - [Merge conflicts on GitHub website](https://blog.duyet.net/2016/12/merge-conflicts-on-github-website.html) - 2016-12-14 - [Javascript Weekly #9](https://blog.duyet.net/2016/12/javascript-weekly-9.html) - 2016-12-10 - [R trên Jupyter Notebook (Ubuntu 14.04 / 14.10 / 16.04)](https://blog.duyet.net/2016/11/r-tren-jupiter-notebook-ubuntu-1404.html) - 2016-11-22 - [Openstack - App Catalog và Docker trên Devstack](https://blog.duyet.net/2016/10/devstack-maruno-magnum.html) - 2016-10-29 - [Yarn: A new package manager for JavaScript](https://blog.duyet.net/2016/10/yarn.html) - 2016-10-13 - [Try Ubuntu on Web](https://blog.duyet.net/2016/10/try-ubuntu-on-web.html) - 2016-10-09 - [Spark: Convert Text (CSV) to Parquet để tối ưu hóa Spark SQL và HDFS](https://blog.duyet.net/2016/09/spark-convert-text-csv-to-parquet.html) - 2016-09-21 - [Chạy Apache Spark với Jupyter Notebook](https://blog.duyet.net/2016/09/chay-apache-spark-voi-jupyter-notebook.html) - 2016-09-20 - [Tối ưu hóa Javascript với Google Closure Compiler](https://blog.duyet.net/2016/09/toi-uu-hoa-javascript-voi-google-closure.html) - 2016-09-14 - [PySpark - Thiếu thư viện Python trên Worker](https://blog.duyet.net/2016/09/pyspark-thieu-thu-vien-python-tren-worker.html) - 2016-09-08 - [Bảo mật hai lớp](https://blog.duyet.net/2016/09/bao-mat-hai-lop.html) - 2016-09-01 - [Autotrack turns 1.0](https://blog.duyet.net/2016/09/autotrack-turns-10.html) - 2016-09-01 - [Javascript Weekly #8](https://blog.duyet.net/2016/08/javascript-weekly-8.html) - 2016-08-31 - [Thuyết âm mưu về lý do con người thích mèo](https://blog.duyet.net/2016/08/thuyet-am-muu-ve-ly-do-con-nguoi-thich-meo.html) - 2016-08-27 - [Parse Stack](https://blog.duyet.net/2016/08/parse-stack.html) - 2016-08-18 - [Sự cố Vietcombank, một góc nhìn kỹ thuật](https://blog.duyet.net/2016/08/su-co-vietcombank-mot-goc-nhin-ky-thuat.html) - 2016-08-18 - [Có một Biển Đông trên không gian mạng](https://blog.duyet.net/2016/08/co-mot-bien-ong-tren-khong-gian-mang.html) - 2016-08-01 - [Create React Apps](https://blog.duyet.net/2016/07/create-react-apps.html) - 2016-07-25 - [Javascript Weekly #7](https://blog.duyet.net/2016/07/javascript-weekly-7_22.html) - 2016-07-22 - [Big Integer Javascript](https://blog.duyet.net/2016/07/big-integer-javascript.html) - 2016-07-22 - [Sublime Text Plugin nào cho lập trình viên Node.js](https://blog.duyet.net/2016/07/sublime-text-plugin-nodejs.html) - 2016-07-20 - [saveto.co cập nhật: Note Card](https://blog.duyet.net/2016/07/savetoco-cap-nhat-note-card.html) - 2016-07-12 - [Viện John von Neumann](https://blog.duyet.net/2016/07/vien-john-von-neumann.html) - 2016-07-05 - [Javascript Weekly #6](https://blog.duyet.net/2016/07/javascript-weekly-6.html) - 2016-07-01 - [saveto.co cập nhật giao diện, trend, share và bình luận](https://blog.duyet.net/2016/06/savetoco-cap-nhat-giao-dien-trend-share-binh-luan.html) - 2016-06-30 - [Topic Modeling: Tìm chủ đề cho tập văn bản bài viết](https://blog.duyet.net/2016/06/topic-modeling-tim-chu-de-cho-tap-van-ban-bai-viet.html) - 2016-06-30 - [Tìm hiểu về dữ liệu trong thể thao hiện đại](https://blog.duyet.net/2016/06/tim-hieu-ve-du-lieu-trong-the-thao-hien-dai.html) - 2016-06-29 - [8 điều React.js beginner nên biết](https://blog.duyet.net/2016/06/8-dieu-reactjs-beginner-nen-biet.html) - 2016-06-25 - [React + Redux cơ bản - Phần 1: Component, JSX, Props & State](https://blog.duyet.net/2016/06/react-redux-chap-1.html) - 2016-06-23 - [Chạy vnTokenizer trên môi trường Apache Spark](https://blog.duyet.net/2016/06/vntokenizer-tren-apache-spark.html) - 2016-06-23 - [Javascript Weekly #5](https://blog.duyet.net/2016/06/javascript-weekly-5.html) - 2016-06-18 - [saveto.co cập nhật: tự động tag, hỗ trợ ảnh GIF ](https://blog.duyet.net/2016/06/savetoco-cap-nhat-ho-tro-anh-dong-tu-dong-tag.html) - 2016-06-12 - [Javascript Weekly #4](https://blog.duyet.net/2016/06/javascript-weekly-4.html) - 2016-06-11 - [Hướng dẫn quản trị Xenforo](https://blog.duyet.net/2016/06/huong-dan-quan-tri-xenforo.html) - 2016-06-05 - [Webfont.js - Web Font Loader](https://blog.duyet.net/2016/06/web-font-loader.html) - 2016-06-04 - [JavaScript Weekly #3](https://blog.duyet.net/2016/06/javascript-weekly-3.html) - 2016-06-04 - [Reverse shell on a Node.js application](https://blog.duyet.net/2016/05/reverse-shell-on-nodejs-application.html) - 2016-05-30 - [WebGazer.js - theo dõi chuyển động mắt của người dùng trên Website](https://blog.duyet.net/2016/05/webgazerjs-theo-doi-chuyen-dong-mat.html) - 2016-05-29 - [JavaScript Weekly #2](https://blog.duyet.net/2016/05/javascript-weekly-2.html) - 2016-05-28 - [ES6 - ép sử dụng tham số trong function](https://blog.duyet.net/2016/05/es6-ep-su-dung-tham-so-trong-function.html) - 2016-05-27 - [ES6 - swap (hoán đổi) nhanh 2 biến số](https://blog.duyet.net/2016/05/es6-swap-via-destructuring.html) - 2016-05-27 - [Cách sử dụng Destructuring trong Javascript ES6](https://blog.duyet.net/2016/05/cach-su-dung-destructuring-javascript-es6.html) - 2016-05-27 - [JavaPoly.js: chạy Java ngay trên trình duyệt Web](https://blog.duyet.net/2016/05/javapolyjs-chay-java-tren-trinh-duyet.html) - 2016-05-21 - [ JavaScript Weekly #1](https://blog.duyet.net/2016/05/javascript-weekly-1.html) - 2016-05-20 - [saveto.co ra mắt TIL](https://blog.duyet.net/2016/05/savetoco-ra-mat-til.html) - 2016-05-17 - [console.log() nâng cao](https://blog.duyet.net/2016/05/console-log.html) - 2016-05-16 - [Cách truy cập Website khi bị chặn](https://blog.duyet.net/2016/05/cach-truy-cap-website-khi-bi-chan.html) - 2016-05-14 - [Tiến sĩ là gì?](https://blog.duyet.net/2016/05/tien-si-la-gi.html) - 2016-05-07 - [Đóng gói và triển khai ứng dụng Nodejs bằng Docker](https://blog.duyet.net/2016/05/dockerizing-nodejs.html) - 2016-05-01 - [Talk: Why docker?](https://blog.duyet.net/2016/05/why-docker.html) - 2016-05-01 - [Cài đặt Docker trên Ubuntu](https://blog.duyet.net/2016/05/cai-dat-docker-tren-ubuntu.html) - 2016-05-01 - [Giới thiệu Koa.js](https://blog.duyet.net/2016/04/gioi-thieu-koajs.html) - 2016-04-30 - [Ra mắt Node.js v6.0.0](https://blog.duyet.net/2016/04/ra-mat-nodejs-v6.html) - 2016-04-27 - [Awesome functional programming in JavaScript](https://blog.duyet.net/2016/04/awesome-functional-programming-in-javascript.html) - 2016-04-18 - [Deploy production Node.js với PM2 và Nginx](https://blog.duyet.net/2016/04/deploy-production-nodejs-pm2-nginx.html) - 2016-04-10 - [Grunt - lỗi ENOSPC](https://blog.duyet.net/2016/04/grunt-loi-enospc.html) - 2016-04-08 - [Tài liệu Panama](https://blog.duyet.net/2016/04/tai-lieu-panama.html) - 2016-04-06 - [ES6 có gì mới?](https://blog.duyet.net/2016/04/es6.html) - 2016-04-05 - [Update saveto.co: tìm kiếm và gắn tag link](https://blog.duyet.net/2016/04/update-savetoco-tim-kiem-va-gan-tag-link.html) - 2016-04-02 - [calc.js - evaluate expressions for Math](https://blog.duyet.net/2016/03/calcjs-evaluate-expressions-for-math.html) - 2016-03-27 - [How one developer just broke Node, Babel and thousands of projects in 11 lines of JavaScript](https://blog.duyet.net/2016/03/how-one-developer-just-broke-the-internet.html) - 2016-03-26 - [Neural networks là gì?](https://blog.duyet.net/2016/03/neural-networks.html) - 2016-03-26 - [Postman](https://blog.duyet.net/2016/03/postman.html) - 2016-03-25 - [saveto.co nâng cấp chức năng note](https://blog.duyet.net/2016/03/savetoco-nang-cap-chuc-nang-note.html) - 2016-03-24 - [Sao lại là Node.js/Javascript?](https://blog.duyet.net/2016/03/why-nodejs-javascript.html) - 2016-03-19 - [Asiacrypt 2016](https://blog.duyet.net/2016/03/asiacrypt-2016.html) - 2016-03-18 - [ProtonMail - dịch vụ mail end-to-end encrypted](https://blog.duyet.net/2016/03/protonmail.html) - 2016-03-18 - [Giao thức Diffie-Hellman (DH)](https://blog.duyet.net/2016/03/giao-thuc-diffie-hellman.html) - 2016-03-08 - [CTB-Locker is back: the web server edition](https://blog.duyet.net/2016/03/ctb-locker-is-back-web-server-edition.html) - 2016-03-02 - [PHP Game Boy Emulator in Terminal](https://blog.duyet.net/2016/02/game-boy-emulator-in-terminal.html) - 2016-02-28 - [Japanese stopwords package for npm, bower and plaintext](https://blog.duyet.net/2016/02/japanese-stopwords-package.html) - 2016-02-27 - [Facebook reactions](https://blog.duyet.net/2016/02/facebook-reactions.html) - 2016-02-27 - [Google ra mắt Project Shield](https://blog.duyet.net/2016/02/google-ra-mat-project-shield.html) - 2016-02-27 - [function* và yield trong Javascript generator function](https://blog.duyet.net/2016/02/generator-function-javascript.html) - 2016-02-21 - [Detect robots in koa](https://blog.duyet.net/2016/02/detect-robots-in-koa.html) - 2016-02-21 - [copy.js - simple copy text to clipboard in the browser](https://blog.duyet.net/2016/02/copyjs-simple-copy-text-to-clipboard-in.html) - 2016-02-17 - [Tự động hóa Internet với IFTTT](https://blog.duyet.net/2016/02/tu-ong-hoa-internet-voi-ifttt.html) - 2016-02-10 - [13.5TB - Yahoo ra mắt bộ Dataset cực lớn cho lĩnh vực máy học](https://blog.duyet.net/2016/02/yahoo-ra-mat-bo-dataset-lon-nhat-machine-learning.html) - 2016-02-09 - [Nginx - adding cross-origin resource sharing (CORS) support to reverse proxied APIs](https://blog.duyet.net/2016/02/nginx-adding-cors.html) - 2016-02-08 - [Tensorflow - hướng dẫn cài đặt](https://blog.duyet.net/2016/02/tensorflow-huong-dan-cai-at-tren-ubuntu.html) - 2016-02-05 - [Tensorflow - cài đặt trên Docker](https://blog.duyet.net/2016/02/cai-dat-tensorflow-tren-docker.html) - 2016-02-05 - [Deep Learning là gì?](https://blog.duyet.net/2016/02/deep-learning-la-gi.html) - 2016-02-04 - [Docker - cài đặt Odoo 8/9 trên Docker](https://blog.duyet.net/2016/02/docker-cai-at-odoo-89-tren-docker.html) - 2016-02-03 - [Nodejs - Mã hóa mật khẩu](https://blog.duyet.net/2016/02/nodejs-ma-hoa-mat-khau.html) - 2016-02-03 - [Graph Database](https://blog.duyet.net/2016/02/graph-database.html) - 2016-02-03 - [Bigdata - Columnar Database và Graph Database](https://blog.duyet.net/2016/02/columnar-database-va-graph-database.html) - 2016-02-03 - [Nodejs - đọc file package.json](https://blog.duyet.net/2016/02/nodejs-oc-file-packagejson.html) - 2016-02-03 - [Offline-First trong Modern Web](https://blog.duyet.net/2016/01/offline-first-trong-modern-web.html) - 2016-01-07 - [Nodejs - Backend Development Bookmarks](https://blog.duyet.net/2016/01/nodejs-backend-development-bookmarks.html) - 2016-01-03 - [Javascript - Thư viện Vizualization ](https://blog.duyet.net/2016/01/javascript-thu-vien-vizualization.html) - 2016-01-03 ### 2015 (81 posts) - [Year In Review 2015](https://blog.duyet.net/2015/12/year-in-review-2015.html) - 2015-12-31 - [Unit test và Integration test](https://blog.duyet.net/2015/12/unit-test-va-function-test.html) - 2015-12-21 - [Angular 2 có gì mới?](https://blog.duyet.net/2015/12/angular-2-co-gi-moi.html) - 2015-12-20 - [Docker là gì?](https://blog.duyet.net/2015/12/docker.html) - 2015-12-20 - [jsLab.xyz](https://blog.duyet.net/2015/12/jslab-xyz.html) - 2015-12-17 - [Apache Spark on Docker](https://blog.duyet.net/2015/12/apache-spark-on-docker.html) - 2015-12-12 - [Chartico](https://blog.duyet.net/2015/12/chartico.html) - 2015-12-09 - [Bigdata - Map-Reduce và bài toán Word Count](https://blog.duyet.net/2015/12/map-reduce-va-bai-toan-wordcount.html) - 2015-12-02 - [Firefox OS](https://blog.duyet.net/2015/11/firefox-os.html) - 2015-11-14 - [Nodejs - Cache in-memory trong Nodejs](https://blog.duyet.net/2015/11/nodejs-cache-in-memory-trong-nodejs.html) - 2015-11-13 - [Google Big Data Meetup in Saigon](https://blog.duyet.net/2015/11/google-big-data-meetup-in-saigon.html) - 2015-11-13 - [Clipboard.js](https://blog.duyet.net/2015/10/clipboardjs-thu-vien-giup-cat-sao-chep-noi-dung-tren-web.html) - 2015-10-30 - [Seminar - Giới thiệu Apache Spark và PredictionIO](https://blog.duyet.net/2015/10/seminar-gioi-thieu-apache-spark-va-predictionio.html) - 2015-10-26 - [Cài đặt OpenVPN trên Debian, Ubuntu và CentOS](https://blog.duyet.net/2015/10/cai-dat-openvpn-tren-debian-ubuntu-va-centos.html) - 2015-10-26 - [Bruteforce Database](https://blog.duyet.net/2015/10/github-project-bruteforce-database.html) - 2015-10-05 - [PHP - Vietnamese Language Pack Extension for Flarum](https://blog.duyet.net/2015/10/vietnamese-language-pack-extension-for-flarum.html) - 2015-10-05 - [Install Odoo 8 in Ubuntu 14.04/15.04](https://blog.duyet.net/2015/09/install-odoo-8-in-ubuntu-14-04-15-04.html) - 2015-09-22 - [Git - 19 Tips For Everyday Git Use](https://blog.duyet.net/2015/09/git-19-tips-for-everyday-git-use.html) - 2015-09-16 - [How to Install Oracle 12c on Ubuntu 15.04](https://blog.duyet.net/2015/09/how-to-install-oracle-12c-on-ubuntu-1504.html) - 2015-09-13 - [JS - The Entire JavaScript Language in a Single Image](https://blog.duyet.net/2015/09/js-entire-javascript-language-in-single.html) - 2015-09-10 - [All you need to know about Node.js 4.0.0](https://blog.duyet.net/2015/09/all-you-need-to-know-about-nodejs.html) - 2015-09-09 - [Google has a new logo, seriously](https://blog.duyet.net/2015/09/google-has-new-logo-seriously.html) - 2015-09-01 - [Google Cloud Platform Developer Roadshow](https://blog.duyet.net/2015/08/google-cloud-platform-developer-roadshow-ho-chi-minh-viet-nam.html) - 2015-08-27 - [Git rebase, gộp commits bằng rebase](https://blog.duyet.net/2015/08/cach-su-dung-git-rebase.html) - 2015-08-25 - [Git - Tutorial remove untracked files](https://blog.duyet.net/2015/08/how-to-remove-untracked-files.html) - 2015-08-25 - [Git - Cách xem nội dung 1 file ở branch khác](https://blog.duyet.net/2015/08/git-cach-xem-noi-dung-1-file-o-branch-khac.html) - 2015-08-25 - [Git - Cách xóa nhanh tất cả các branch cũ đã merge vào branch master](https://blog.duyet.net/2015/08/cach-xoa-nhanh-tat-ca-cac-branch-cu-da-merge.html) - 2015-08-25 - [PHP - Có gì mới trong PHP 7](https://blog.duyet.net/2015/08/php-co-gi-moi-trong-php-7.html) - 2015-08-22 - [Nodejs - Create simple static server with Nodejs](https://blog.duyet.net/2015/08/nodejs-create-simple-static-server-with.html) - 2015-08-09 - [Nodejs - Tạo static server đơn giản với Nodejs ](https://blog.duyet.net/2015/08/tao-server-static-don-gian-bang-nodejs.html) - 2015-08-09 - [6 lời khuyên để đảm bảo dù ở đâu, bạn cũng sống tốt với thu nhập cao](https://blog.duyet.net/2015/08/lam-theo-duoc-6-dieu-duoi-day-dam-bao-vut-o-dau-ban-cung-song-tot-thu-nhap-cao.html) - 2015-08-09 - [Feedback Social Platform](https://blog.duyet.net/2015/08/github-project-feedback-social-platform.html) - 2015-08-09 - [Nodejs - Các kỹ thuật Crawler, rút trích dữ liệu với Nodejs](https://blog.duyet.net/2015/08/cac-ky-thuat-crawler-rut-trich-du-lieu.html) - 2015-08-08 - [Tổng hợp phím tắt của Visual Studio Code](https://blog.duyet.net/2015/08/tong-hop-phim-tat-cua-visual-studio-code.html) - 2015-08-07 - [Git - Khôi phục bằng reflog sau khi xóa commit hoặc branch](https://blog.duyet.net/2015/08/git-khoi-phuc-bang-reflog) - 2015-08-07 - [Git - Chỉnh sửa git vừa commit](https://blog.duyet.net/2015/08/git-chinh-sua-git-vua-commit.html) - 2015-08-07 - [Nodejs - Các package mà mọi lập trình viên Nodejs đều phải biết.](https://blog.duyet.net/2015/08/nodejs-cac-package-ma-moi-lap-trinh.html) - 2015-08-07 - [JavaScript Style Guide](https://blog.duyet.net/2015/08/javascript-style-guide.html) - 2015-08-01 - [Web - 20 nền tảng blogging và publishing tốt nhất trong năm 2015](https://blog.duyet.net/2015/07/web-20-nen-tang-blogging-va-publishing.html) - 2015-07-20 - [Giao diện phẳng cho Sublime Text](https://blog.duyet.net/2015/07/giao-dien-phang-cho-sublime-text.html) - 2015-07-20 - [Git - Kĩ thuật chia branch, "Branch early, branch often"](https://blog.duyet.net/2015/07/git-ki-thuat-chia-branch-branch-early.html) - 2015-07-16 - [Git - Git Cheat Sheet](https://blog.duyet.net/2015/07/git-git-cheat-sheet.html) - 2015-07-16 - [Big Data - Monitoring Spark with Graphite and Grafana](https://blog.duyet.net/2015/07/big-data-monitoring-spark-with-graphite.html) - 2015-07-14 - [Git - Sử dụng git stash hiệu quả](https://blog.duyet.net/2015/07/su-dung-git-stash-hieu-qua.html) - 2015-07-14 - [Đạo lập trình - The Tao Of Programming ](https://blog.duyet.net/2015/07/tao-of-programming.html) - 2015-07-10 - [JavaScript Code Smells](https://blog.duyet.net/2015/06/javascript-code-smells.html) - 2015-06-06 - [Minimalism in Web design: past and future](https://blog.duyet.net/2015/06/minimalism-in-web-design-past-and-future.html) - 2015-06-05 - [Tìm hiểu về hệ thống quảng cáo và quảng cáo Online](https://blog.duyet.net/2015/05/tim-hieu-ve-he-thong-quang-cao-online.html) - 2015-05-17 - [PHP - Cài đặt APC (Alternative PHP Cache) cho XAMPP trên Linux](https://blog.duyet.net/2015/05/php-cai-dat-apc-alterdnative-php-cache-cho-xampp-tren-linux.html) - 2015-05-16 - [Google Materialize CSS framework](https://blog.duyet.net/2015/04/gioi-thieu-ve-google-materialize-css.html) - 2015-04-27 - [Twitter Bootstrap](https://blog.duyet.net/2015/04/bootstrap.html) - 2015-04-27 - [Khái niệm cơ bản trong git](https://blog.duyet.net/2015/04/git-va-cac-khai-niem-co-ban.html) - 2015-04-26 - [Linux - một số thủ thuật với trình soạn thảo vim](https://blog.duyet.net/2015/04/linux-mot-so-thu-thuat-voi-trinh-soan.html) - 2015-04-25 - [PySpark Getting Started](https://blog.duyet.net/2015/04/pyspark.html) - 2015-04-18 - [PHP - Tổng quan về Web và thiết lập môi trường để lập trình PHP](https://blog.duyet.net/2015/04/php-bai-1-tong-quan-ve-web-va-thiet-lap.html) - 2015-04-16 - [Mongo-Web-Query](https://blog.duyet.net/2015/04/mongo-web-query.html) - 2015-04-15 - [Lorem Ipsum là gì?](https://blog.duyet.net/2015/04/lorem-ipsum-la-gi.html) - 2015-04-15 - [Big Data Explained in Less Than 2 Minutes](https://blog.duyet.net/2015/04/big-data-explained-in-less-than-2-minutes.html) - 2015-04-12 - [Tìm hiểu về giấy phép Apache](https://blog.duyet.net/2015/04/open-source-tim-hieu-ve-giay-phep-apache.html) - 2015-04-11 - [Open Source - Tìm hiểu về giấy phép GNU (GNU General Public License)](https://blog.duyet.net/2015/04/tim-hieu-ve-giay-phep-gnu.html) - 2015-04-11 - [Open Source - Tìm hiểu về giấy phép MIT](https://blog.duyet.net/2015/04/tim-hieu-ve-giay-phep-mit.html) - 2015-04-11 - [MongoDB - Cách thiết lập để App Server kết nối đến MongoDb Server](https://blog.duyet.net/2015/04/mongodb-cach-thiet-lap-e-app-server-ket.html) - 2015-04-09 - [Redis](https://blog.duyet.net/2015/04/redis.html) - 2015-04-06 - [MEAN.js Fullstack](https://blog.duyet.net/2015/04/nodejs-gioi-thieu-meanjs-fullstack.html) - 2015-04-05 - [Cài đặt Apache Spark trên Ubuntu 14.04](https://blog.duyet.net/2015/03/bigdata-cai-dat-apache-spark-tren-ubuntu.html) - 2015-03-27 - [So sánh mô hình Waterfall, mô hình mẫu, mô hình xoắn ốc](https://blog.duyet.net/2015/03/so-sanh-cac-mo-hinh-thac-nuoc-mo-hinh-mau-mo-hinh-xoan-oc.html) - 2015-03-15 - [Xây dựng thương hiệu cá nhân tại công sở](https://blog.duyet.net/2015/03/xay-dung-thuong-hieu-ca-nhan-tai-cong-so.html) - 2015-03-09 - [Mô hình thác nước (Waterfall Model)](https://blog.duyet.net/2015/02/waterfall.html) - 2015-02-24 - [Quy trình phát triển phần mềm - mô hình xoắn ốc (The Boehm's spiral model)](https://blog.duyet.net/2015/02/spiral.html) - 2015-02-24 - [Design Patterns - hệ thống 23 mẫu Design Patterns](https://blog.duyet.net/2015/02/design-patterns-he-thong-23-mau-design.html) - 2015-02-23 - [DNS là gì?](https://blog.duyet.net/2015/02/dns.html) - 2015-02-23 - [Design Patterns là gì?](https://blog.duyet.net/2015/02/design-patterns.html) - 2015-02-23 - [package.json là gì?](https://blog.duyet.net/2015/02/packagejson) - 2015-02-22 - [Linux - Giao diện phẳng cho Ubuntu](https://blog.duyet.net/2015/02/linux-giao-dien-phang-cho-ubuntu.html) - 2015-02-17 - [phpMyAdmin](https://blog.duyet.net/2015/02/phpmyadmin.html) - 2015-02-15 - [Linux - Đường dẫn tuyệt đối và đường dẫn tương đối](https://blog.duyet.net/2015/02/linux-duong-dan-tuyet-doi-va-duong-dan-tuong-doi.html) - 2015-02-15 - [Github là gì?](https://blog.duyet.net/2015/02/github-la-gi.html) - 2015-02-14 - [Module hóa](https://blog.duyet.net/2015/02/module.html) - 2015-02-14 - [Linux - Một số lệnh hay dùng](https://blog.duyet.net/2015/02/linux-mot-so-lenh-hay-dung.html) - 2015-02-13 - [Git - Phục hồi code cũ](https://blog.duyet.net/2015/01/git-recovering-old-code.html) - 2015-01-25 - [Using ExpressJS to Display Static HTML File Content](https://blog.duyet.net/2015/01/expressjs-static-html.html) - 2015-01-23 ## Popular Topics The blog covers these main technical areas with substantial content: ### Data Engineering - ClickHouse: Database optimization, Kubernetes deployment, performance tuning - Apache Spark: Kubernetes integration, performance optimization, data processing - Apache Airflow: Workflow management, best practices, monitoring ### Cloud & DevOps - Kubernetes: Container orchestration, monitoring, production deployments - Cloud Platforms: AWS, GCP, Azure architecture and cost optimization - CI/CD: GitHub Actions, automated testing, deployment strategies ### Programming Languages - Rust: Systems programming, data engineering tools, performance optimization - Python: Data processing, web development, automation scripts - JavaScript/TypeScript: Web development, Node.js, modern frameworks ### Machine Learning & AI - Natural Language Processing: Text analysis, sentiment analysis, tokenization - Deep Learning: Model deployment, training optimization, production ML - Data Science: Statistical analysis, visualization, data mining --- This file follows the llms.txt standard for providing comprehensive blog information to Large Language Models and AI assistants. **Blog Statistics:** - Total Posts: 295 - Years Active: 2015-2024 - Categories: 19 - Tags: 56 Generated from: https://blog.duyet.net