# 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 299+ 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**: Now you have a large single node cluster with a ReplacingMergeTree table that can deduplicate itself. This time, you need more replicated nodes to serve more data users or improve the high availability. ### [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**: Now that you have your first ClickHouse instance on Kubernetes and are starting to use it, you need to monitoring and observing what happens on it is an important task to achieve stability. ### [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**: ClickHouse has been both exciting and incredibly challenging based on my experience migrating and scaling from Iceberg to ClickHouse, zero to a large cluster of trillions of rows. I have had to deal with many of use cases and resolve issues. I have been trying to take notes every day for myself, although it takes time to publish them as a series of blog posts. I hope I can do so on this ClickHouse on Kubernetes series. ### [2023 - A Year of Moving](https://blog.duyet.net/2024/02/2023-summary.html) - **Date**: 2024-02-09 - **Category**: Story - **Tags**: Story, Year In Review - **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**: Productivity, Neovim, 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, DuckDB - **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, Vercel - **URL**: https://blog.duyet.net/2023/05/migrate-blog-to-nextjs.html - **Description**: I've been using Gastby 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**: DevOps, 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: Patch Dependencies](https://blog.duyet.net/2022/09/cargo-patch-deps.html) - 2022-09-24 - [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 - [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 Design Pattern: Command Pattern](https://blog.duyet.net/2022/02/rust-command-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 Design Pattern: Prefer Small Crates](https://blog.duyet.net/2022/02/rust-small-crates-design-pattern.html) - 2022-02-13 - [Rust: Struct](https://blog.duyet.net/2022/02/rust-struct.html) - 2022-02-13 - [Rust: Trait](https://blog.duyet.net/2022/02/rust-trait.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: FromStr trait](https://blog.duyet.net/2022/01/rust-fromstr.html) - 2022-01-02 - [Rust: Turbofish ::<> 🐠 ](https://blog.duyet.net/2022/01/rust-turbofish.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 - [8 nền tảng serverless platform tốt nhất hiện nay](https://blog.duyet.net/2019/08/8-serverless-platform.md) - 2019-08-09 - [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 - [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 - [Google Cloud Next '19](https://blog.duyet.net/2019/04/google-cloud-next-19.html) - 2019-04-19 - [Super Simple Shorten URL với Firebase Dynamic Links](https://blog.duyet.net/2019/04/shorten-url-voi-firebase.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 - [Merge conflicts on GitHub website](https://blog.duyet.net/2016/12/merge-conflicts-on-github-website.html) - 2016-12-14 - [vnTokenizer trên PySpark](https://blog.duyet.net/2016/12/vntokenizer-tren-pyspark.html) - 2016-12-14 - [Javascript Weekly #9](https://blog.duyet.net/2016/12/javascript-weekly-9.html) - 2016-12-10 - [R trên Jupiter 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 - [Autotrack turns 1.0](https://blog.duyet.net/2016/09/autotrack-turns-10.html) - 2016-09-01 - [Bảo mật hai lớp](https://blog.duyet.net/2016/09/bao-mat-hai-lop.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 - [Big Integer Javascript](https://blog.duyet.net/2016/07/big-integer-javascript.html) - 2016-07-22 - [Javascript Weekly #7](https://blog.duyet.net/2016/07/javascript-weekly-7_22.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 - [JavaScript Weekly #3](https://blog.duyet.net/2016/06/javascript-weekly-3.html) - 2016-06-04 - [Webfont.js - Web Font Loader](https://blog.duyet.net/2016/06/web-font-loader.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 - [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 - [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 - [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 - [Cài đặt Docker trên Ubuntu](https://blog.duyet.net/2016/05/cai-dat-docker-tren-ubuntu.html) - 2016-05-01 - [Đó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 - [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 - [Game Boy Emulator Terminal](https://blog.duyet.net/2016/02/game-boy-emulator-in-terminal.html) - 2016-02-28 - [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 - [Japanese stopwords package for npm, bower and plaintext](https://blog.duyet.net/2016/02/japanese-stopwords-package.html) - 2016-02-27 - [Detect robots in koa](https://blog.duyet.net/2016/02/detect-robots-in-koa.html) - 2016-02-21 - [function* và yield trong Javascript generator function](https://blog.duyet.net/2016/02/generator-function-javascript.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 - cài đặt trên Docker](https://blog.duyet.net/2016/02/cai-dat-tensorflow-tren-docker.html) - 2016-02-05 - [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 - [Deep Learning là gì?](https://blog.duyet.net/2016/02/deep-learning-la-gi.html) - 2016-02-04 - [Bigdata - Columnar Database và Graph Database](https://blog.duyet.net/2016/02/columnar-database-va-graph-database.html) - 2016-02-03 - [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 - [Graph Database](https://blog.duyet.net/2016/02/graph-database.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 - [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 - [Javascript - Thư viện Vizualization ](https://blog.duyet.net/2016/01/javascript-thu-vien-vizualization.html) - 2016-01-03 - [Nodejs - Backend Development Bookmarks](https://blog.duyet.net/2016/01/nodejs-backend-development-bookmarks.html) - 2016-01-03 ### 2015 (85 posts) - [Year In Review 2015](https://blog.duyet.net/2015/12/year-in-review-2015.html) - 2015-12-31 - [Unit test và Function 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 - [Google Big Data Meetup in Saigon](https://blog.duyet.net/2015/11/google-big-data-meetup-in-saigon.html) - 2015-11-13 - [Nodejs - Cache in-memory trong Nodejs](https://blog.duyet.net/2015/11/nodejs-cache-in-memory-trong-nodejs.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 - [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 - [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 - [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 - [Grunt - Fix lỗi wiredep "Cannot read property 'main' of undefined"](https://blog.duyet.net/2015/09/grunt-fix-loi-wiredep-cannot-read-propertu-main-of-undefined.html) - 2015-09-22 - [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 - 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 - [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 - Tutorial remove untracked files](https://blog.duyet.net/2015/08/how-to-remove-untracked-files.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 - [Feedback Social Platform](https://blog.duyet.net/2015/08/github-project-feedback-social-platform.html) - 2015-08-09 - [6 lời khuyên](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 - [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 - [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 - [Nodejs - Giới thiệu SailsJS framework.](https://blog.duyet.net/2015/08/gioi-thieu-sailsjs-framework.html) - 2015-08-08 - [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 - [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.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 - [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 - [JavaScript Style Guide](https://blog.duyet.net/2015/08/javascript-style-guide.html) - 2015-08-01 - [Giao diện phẳng cho Sublime Text](https://blog.duyet.net/2015/07/giao-dien-phang-cho-sublime-text.html) - 2015-07-20 - [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 - [Git - Git Cheat Sheet ](https://blog.duyet.net/2015/07/git-git-cheat-sheet.html) - 2015-07-16 - [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 - [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 - [Twitter Bootstrap](https://blog.duyet.net/2015/04/bootstrap.html) - 2015-04-27 - [Google Materialize CSS framework](https://blog.duyet.net/2015/04/gioi-thieu-ve-google-materialize-css.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 - [Yeoman, Grunt và Bower](https://blog.duyet.net/2015/04/nodejs-gioi-thieu-yeoman-grunt-va-bower.html) - 2015-04-20 - [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 - [Lorem Ipsum là gì?](https://blog.duyet.net/2015/04/lorem-ipsum-la-gi.html) - 2015-04-15 - [Mongo-Web-Query](https://blog.duyet.net/2015/04/mongo-web-query.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 - [Crawler System base on Nodejs and MongoDB ](https://blog.duyet.net/2015/04/github-project-dcrawler-system.html) - 2015-04-10 - [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 - [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 - [Mô hình thác nước (Waterfall Model)](https://blog.duyet.net/2015/02/waterfall.html) - 2015-02-24 - [Design Pattterns - 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 - [Design Patterns là gì?](https://blog.duyet.net/2015/02/design-patterns.html) - 2015-02-23 - [DNS là gì?](https://blog.duyet.net/2015/02/dns.html) - 2015-02-23 - [package.json là gì?](https://blog.duyet.net/2015/02/packagejson.html) - 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 - [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 - [phpMyAdmin](https://blog.duyet.net/2015/02/phpmyadmin.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: 299 - Years Active: 2015-2024 - Categories: 20 - Tags: 121 Generated from: https://blog.duyet.net