Khoá học online đầu tiên về Machine Learning ( note 1) - Khó ~~

Cuối cùng cũng kết thúc khoá học Online đầu tiên về Machine Learnning. Do tiếng Anh cùi, nên dù nhìn sub liên tục nhưng vẫn vô số lần tua lại để xem. Khoá học rất hay, thầy Andrew NG giảng khá kĩ các khái niệm quan trọng. Dù mình biết Machine Learning nặng về Toán, đặc biệt Toán Tối ưu như machinelearningcoban.com viết, nhưng khoá này không tập trung vào những cái đó. Nó tập trung vào việc Intuition - Trực giác về Machine Learning. Ví dụ như giải quyết vấn đề gì. Quá trình Train là đi tìm cái gì. Quá trình Test làm gì. Rồi cách đánh giá một mô hình Machine Learning. ...

tháng 5 23, 2018

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. ...

tháng 11 3, 2017

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. Chỉ việc gán phím tắt là sử dụng được thôi. Cách làm được miêu tả trong bài Phím tắt cho bash. Đơn giản là thêm đoạn sau vào ~/.bashrc ...

tháng 11 3, 2017

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! Thread #%ld o day !!!n", tid); pthread_exit(NULL); } int main(int argc, char *argv[]) { pthread_t threads[NUM_THREADS]; int rc; long tId; for (tId = 0; tId < NUM_THREADS; tId++) { printf(" Ham main() : Thread Main : Tao...thread moi: %ldn", tId); rc = pthread_create(&threads[tId], NULL, PrintHello, (void *)tId); if (rc) { printf("ERROR; loi khi chay pthread_create(), ma loi: %dn", rc); exit(-1); } } /* Last thing that main() should do */ pthread_exit(NULL); } } Kết quả sau khi biên dịch và chạy: ...

tháng 5 20, 2017

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. Điều này nhiều khi dẫn đến sự nhầm lẫn khi một người đã học một ASM của Intel trước rồi sang học ASM của AT&T hoặc ngoặc lại. Bài này, chúng ta sẽ xem xét những cái khác biệt cơ bản đó. ...

tháng 5 14, 2017

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. Tuy nhiên hãy nhớ rằng KHÔNG THỂ CHUYỂN DỮ LIỆU TỪ BỘ NHỚ SANG BỐ NHỚ ĐƯỢC, bởi vì BỘ NHỚ ĐƯỢC TRUY CẬP THEO BUS (20bit hoặc 32bit), MỖI LẦN TRUY CẬP BỘ NHỚ CHỈ CÓ THỂ TRUY CẬP MỘT ĐỊA CHỈ MÀ THÔI ...

tháng 5 14, 2017

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. Thông tin về Product cũng được mô tả bằng một id, trong source thường là idProduct. 2 thông tin trên sẽ xác định duy nhất một loại thiết bị. Thông tin về id của mỗi Vendor, Product được đăng kí với tổ chức hỗ trợ USB. ...

tháng 4 23, 2017

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. Giai đoạn đầu là load kernel lên RAM và chạy Giai đoạn thứ hai là kernle sẽ tự động mount hệ thống file rồi các ứng dụng trên hệ thống file được mount. Bất cứ bản Linux nào, dù lớn, dù bé đều thì tối thiểu phải có 2 giai đoạn ở trên. ...

tháng 4 10, 2017

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. Ta thường chỉ quan tâm đến ứng dụng chạy trên đó thôi. ...

tháng 4 2, 2017

Phím tắt cho bash

Mặc định, bash sử dụng emacs mode, có thể chuyển sang vi mode được. Nếu sử dụng ở chế độ mặc định, thì dưới đây là một số shortcut hữu ích khi sử dụng. Chiều ngang : Di chuyển cơ bản Ctrl + b : (Backward) Di chuyển con trỏ sang trái về trước 1 kí tự Ctrl + f : (Fordware) Di chuyển con trỏ sang phải một kí tự. Ctrl + d : (Delete) Xóa kí tự ở vị trí con trỏ ...

tháng 4 2, 2017