Basic

Vấn đề tốn bộ nhờ (Memory) và CPU khi export file bằng Apache POI

Vấn đề tốn bộ nhờ (Memory) và CPU khi export file bằng Apache POI

Môi trường, điều kiện Ghi 1 triệu row ra file excel Môi trường: AMD Ryzen 5 3600 6-Core Processor Mem: 15Gi Khi sủ dụng với xssfworkbook Thời gian chạy : 24.7 s ➜ excel-performance-test mvn exec:java -Dexec.mainClass="com.example.ExcelPerformanceTestXSSFWorkbook" [INFO] Scanning for projects... [INFO] [INFO] -----------------< com.example:excel-performance-test >----------------- [INFO] Building excel-performance-test 1.0-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- exec-maven-plugin:3.1.0:java (default-cli) @ excel-performance-test --- Execution time: 24486 ms [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 24.
Tạo QRCode App bằng ChatGPT

Tạo QRCode App bằng ChatGPT

Một vài hình ảnh Prompts đã sử dụng https://chat.openai.com/share/17cc3dd3-f2a5-4828-8adf-382fbace5da5 Github https://github.com/minatu2d/simpleqr
ChatGPT là gì? Tại sao Developer nên lo lắng

ChatGPT là gì? Tại sao Developer nên lo lắng

Đăng kí sử dụng Vào địa chỉ chat.openai.com sau đó đăng kí 1 account Có thể đăng kí bằng tài khoản Google, Microsoft hoặc Apple Hoặc dùng email bất kì Ta sẽ có một giao diện chat để sử dụng. Hỏi thử Bảo ChatGPT tự giới thiệu về chính ChatGPT Hỏi : Viết một bài giới thiệu về ChatGPT cho Developer. Trả lời : ChatGPT là một mô hình ngôn ngữ thông minh được phát triển bởi OpenAI dựa trên kiến trúc GPT-3.

OpenGL là gì?

0. Tại sao đi tìm hiểu OpenGL làm cái gì? Gần đây, phải quay sang làm 1 dự án có liên quan đến Computer Graphic, cụ thể là trong không gian 3 chiều (3D). Thực sự, đối với mình nó lại hoàn toàn mới. Ngoài chút kiến thức toán như: Vector, Ma trận (Matrix), vector đơn vị, vài phép cơ bản của Vector thì mình không còn tí kiến thức Đại số nào nữa.

File locking trong linux

1. Giới thiệu File locking (khoá file) là cơ chế để đảm bảo việc đọc/ghi file giữa nhiều process cùng lúc một cách an toàn. Bài này chúng ta sẽ giới thiệu xem cơ chế Locking sinh ra giải quyết vấn đề gì và các ví dụ sử dụng của nó trên bash script và ngôn ngữ C. 2. Nếu vấn đề theo cách muôn thủa Ví dụ mô tả vấn đề cập nhật xen kẽ trong bất cứ hệ thống thông tin nào.

Sử dụng lệnh screen cơ bản

screen là một phần mềm (chạy ở chế độ dòng lệnh) trên Linux rất hữu ích. 1. screen giải quyết vấn đề gì? Vấn đề: Khi bạn kết nối bằng SSH đến server qua 1 terminal, bạn có thể gặp các vấn đề sau: Chương trình bạn định chạy (train 1 con AI, down phim XXX) sẽ rất mất thời gian, bạn không thể đợi đến khi nó xong được. Bạn muốn nó vẫn chạy kể cả khi bạn tắt terminal đi về, hôm sau đến vẫn có cái terminal cũ.

Cảm nhận về zsh sau 1 tháng sử dụng basic

Sau khi update chiếc máy MAC (máy công ty), terminal mặc định trong máy có recommend sang sử dụng zsh thay vì SHELL mặc định trước đó (bash thì phải) thì mới bắt đầu sử dụng thử zsh. Đọc qua một vài lời khen thấy nó khá hay nên quyết định chuyển sang dùng zsh xem sao. Xem có đúng như lời đồn không. Bài này xin tóm tắt một số ý đã tìm hiểu, cảm nhận được.

Vài chú ý khi setup mail server

Mail Server là một trong những ứng dụng phổ biến bậc nhất trong hầu hết các hệ thống thông tin. Theo mình, ngay cả khi các ứng dụng tin nhắn nhóm như Slack, Chatwork, FB Messenger đã thì việc sử dụng mail vẫn rất được ưa chuộng do những tính chất đặc trưng của nớ: như formal hơn, lưu trữ chắc chắn hơn… Lần đầu tiên mình được trực tiếp sờ vào việc cài đặt của một mail server.

Chuyển HTML thành PDF cơ bản

1. Tại sao cần chuyển sang PDF Nhiều lý do để người ta sử dụng PDF thay vì các định dạng khác. Về cơ bản không thể edit nên đảm bảo thống nhất về nội dung hiển thị Ít bị lỗi FONT Tiện lợi khi gửi, nhận: bên nhận và bên gửi luôn thấy chung 1 dữ liệu và ít khi sửa được. Vì PDF gần như tiêu chuẩn để trao đổi dạng tài liệu read-only Đọc được ở trên hầu hết mọi nền tảng: máy tính, điện thoại.

Giải thích log của lệnh sendmail

Bài này sẽ dịch lại một phần của trang: http://sendmail.org/~ca/email/doc8.12/op-sh-2.html Về nội dung liên quan đến format log của sendmail cũng ý nghĩa của từng trường. 0. Sendmail là gì Một phần mềm chạy trên hệ thống Linux (hoặc là *Nix). Có nhiệm vụ gửi mail - ta nên dùng từ phân phối (delivery) thì sẽ chuẩn xác hơn. Gửi mail (hay phân phối mail) nói đơn giản là sử dụng kết nối mạng (có thể là internet hoặc không) thực hiện gửi nội dung có định dạng bằng giao thức như SMTP,… đến máy chứa tài khoản người nhận.

Bắt đầu về Docker

Docker, là công nghệ rất nổi và có ảnh hưởng đến hầu hết developer. Được coi là một công nghệ ảo hóa ở mức hệ điều hành khi so với các phương pháp ảo hóa phần cứng khác. Theo mình hỏi, kĩ thuật để làm việc này không mới, nó dựa trên kĩ thuật chroot có được sử dụng từ khá lâu trong linux. Nói là vậy, nhưng học để sử dụng thì cần bài bản chút, bài này mình sẽ tóm tắt lại trang Overview từ trang của Docker

Thực hiện 3 phép tập hợp trên bash

Gần đây do phải làm việc crawling dữ liệu, nên có một chút ít động đến các phép toán tập hợp. Bài này sử dụng để note lại các câu lệnh để thực hiện các phép toán phổ biến với tập hợp. Nội dung được dịch từ bài viết khá chi tiết của pro Peter Krumins chủ trang http://www.catonmat.net/ 1. Phép giao Có rất nhiều cách để tìm giao của 2 tập hơn trong bash.

Một số thứ khi sử dụng command, viết script trong bash

Bài này xin được trích rút một số thứ hữu ích từ bài viết rất hay tên The art of command line và mình cũng đã dịch thử (chưa được review) ở Nghệ thuật sử dụng dòng lệnh 1. Hạn chế gõ lại câu lệnh cho dù là rất ngắn Hãy sử dụng chức năng tìm đoạn đang gõ trong history để làm giảm công gõ lại Hai chức năng tìm xuôi và tìm ngược được bash cung cấp rồi.

Ví dụ cơ bản với pthread trên Linux

1. Tạo và dừng thread Source code gốc lấy từ link /****************************************************************************** * FILE: hello.c * DESCRIPTION: * Chuong trinh demo thao tac tao thread, tat thread * AUTHOR: Blaise Barney * LAST REVISED: 08/09/11 * * TRANSLATE to Vietnamese by Minatu * COMPILE CMD : $gcc -o hello hello.c -lpthread ******************************************************************************/ // #include <pthread.h> #include <stdio.h> #include <stdlib.h> #define NUM_THREADS 5 void *PrintHello(void *threadid) { long tid; tid = (long)threadid; printf("Hello World!

So sánh nhỏ về cú pháp câu lệnh ASM giữa AT&T và Intel

Link gốc: http://www.imada.sdu.dk/Courses/DM18/Litteratur/IntelnATT.htm Người dịch: Ngôn ngữ Assembly không phải là ngôn ngữ tốt để viết ứng dụng,nhất là bây giờ đã là năm 2017. Có quá nhiều thứ hiệu quả và nhanh hơn. Tuy nhiên, khi cần tìm hiểu ở mức hệ điều hành, rồi driver thiết bị, thì việc đọc được Assembly là rất hữu ích. Nội dung Cú pháp ASM giữa Intel và AT&T có rất nhiều điềm khác nhau rõ rệt.

Lệnh MOV trong Assembly

Link gốc: http://www5c.biglobe.ne.jp/~ecb/assembler/2_1.html 1. Lệnh MOV Lệnh MOV, có thể nói là lệnh cơ bản nhất, có tần số sử dụng nhiều nhất trong bất cứ hệ tính toàn nào. Làm bất cứ cái gì, đều có bao gồm sao chép dữ liệu trong đó. Nói là chức năng sao chép thôi, chứ thực sự nó bao hàm sao chép, truyền dữ liệu. Đó có thể là từ bộ nhớ (các loại RAM) vào thanh ghi, từ thanh ghi vào bộ nhớ, từ một giá trị nào đó xuống thanh ghi hoặc bộ nhớ chẳng hạn.

Tìm source code của USB Driver trên Linux

Ở bài Tìm driver cho Linux cũng đã nói qua rồi, nhưng bài này muốn chỉ ra chi tiết hơn một chú cho nhưng ai muốn đọc source. Cách tìm source code driver cho thiết bị USB 1. Nói qua về thiết bị USB Linux kernel xác định driver phù hợp cho thiết bị bằng 2 thông tin chính. Đó là Vendor (nhà sản xuất), và Product (sản phẩm). Thông tin về Vendor được mô tả bằng một id, trong source thường là idVendor.

Build, chạy nhân Linux trong QEMU ARM

Chạy một bản Linux tối giản trên Qemu ARM Bài này sẽ làm một ví dụ để chỉ ra sự liên quan giữa các thành phần của một hệ thống Linux thông qua việc build, chạy Kernel trên board vexpress-a9 mô phỏng bằng Qemu. Đó là Kernel, Root file system, Busybox, Init. 1. “Chém” chút về quá trình khởi động của Linux Về cơ bản, quá trình khởi động Linux có 2 giai đoạn.

4 thành phần của Embedded Linux

Ta biết rằng Linux chạy ở khắp nơi từ siêu máy tính, máy chủ, máy để bàn (máy xách tay), điện thoại (android)…cho đến các thiết bị gia dụng, gia đình. Khi sử dụng máy tính cá nhân, server ta dễ dàng “sờ” thấy được các thành phần của Linux như các tiến trình, shell..etc. Hầu hết các bản phân phối phổ biến làm hết những thứ liên quan đến phần cứng, nhân hệ điều hành, driver cho ta rồi.

Một vài lệnh Bitbake hữu dụng

Có một vài lệnh hữu dụng được cộng đồng sử dụng board NXP chia sẻ, mình sẽ note ở đây cho dễ tìm vậy. Link tại đây. Lệnh Bitbake **Miêu tả ** bitbake _Nấu ra 1 “ảnh” (Image) _(Thêm tham số _-k đ_ể cho phép chạy đến hết kẻ cả có lỗi thực thi) bitbake -c Thực hiện 1 task của package nào đó. Tên các task mặc định thường có``: _fetch,_ unpack, patch, configure, compile, install, package, package_write, and build.