ThanhNT Blog's

Computer, Networking, Embedded Systems, PCB Design

Lỗi không gửi được email qua giao thức SMTP với Gmail

Gửi mail qua giao thức SMTP SMTP là lựa chọn an toàn đối với các bạn muốn gửi email nhanh gọn. Giao thức STMP có thể được triển khai trên rất nhiều platform, các bạn lập trình viên thì có lẽ là đã quá quen thuộc với giao thức này. Gửi email thành công thì không có gì để nói, không gửi được thì đó mới là vấn đề. Chú ý rằng để sử dụng SMTP thì dịch vụ mail của bạn phải có hỗ trợ giao thức này, còn không thì có lẽ bạn đọc tiếp để tham khảo.

10 điều cần chú ý khi triển khai website mới dùng Wordpress

Triển khai một web site dùng Wordpress Nguồn FB Hong Phuc Nguyen Rất nhiều bạn kỹ sư làm website tại Việt Nam lựa chọn dùng WordPress làm website do nó nhanh, chỉ việc tải một cái theme, vài cái plugin, chỉnh chỉnh tí là thành cái website hoành tráng full chức năng, chạy rẹt rẹt. Thế nhưng vì cái đơn giản đó mà nhiều chủ website làm kinh doanh nhờ vào website (website vốn như một kênh tiếp thị hiệu quả, không có website bữa nào thì nghỉ làm ăn bữa đó) sẽ trả giá vì sự cẩu thả của các kỹ sư non tay.

WPF - Hiển thị văn bản trong RichTextBox

Hiển thị văn bản trong RichTextBox Bạn có thể để ý rằng trong WPF, RichTextBox không có phương thức add văn bản vào như Text hoặc Contents. Vì vây, bạn sẽ phải điều chỉnh lại một chút để có thể thuần phục control này, ngoài ra bạn cũng có thể hiển thị văn bản đã được định dạng như là in nghiêng, đậm, tô màu cho chữ… vân vân và vân vân.

[Dev] Hàm đếm bit nhanh - Fast bit counter

Fast bit counter Mở đầu Bạn đang chăm chú ngắm nghía 1 đoạn code, bỗng nhiên bạn gặp một hàm trông có vẻ rất nguy hiểm như sau: int fbc(unsigned int data) { data = (data & 0x55555555) + ((data >> 1) & 0x55555555); data = (data & 0x33333333) + ((data >> 2) & 0x33333333); data = (data & 0x0F0F0F0F) + ((data >> 4) & 0x0F0F0F0F); data = (data & 0x00FF00FF) + ((data >> 8) & 0x00FF00FF); data = (data & 0x0000FFFF) + ((data >> 16) & 0x0000FFFF); return data; } Một đoạn hàm rất bí ẩn với một loạt các phép toán logic >>, &, +.

[Dev] Tính căn bậc 2 theo cách khác

Tính căn bậc 2 mà không dùng sqrt Vấn đề Trong một buổi phỏng vấn, có một câu hỏi như sau: Hãy viết chương trình C tính căn bậc 2 của số nguyên x Trong chớp mắt, bạn có thể đưa ra ngay lời giải với đoạn code ngắn gọn sau: #include <stdio.h> #include <math.h> int main() { int x; printf("Input x: "); scanf("%d", &x); printf("Sqrt of %d = %f\n", x, sqrt(x)); } Input x: 3 Sqrt of 3 = 1.

Cách thiết lập bonding interface trong RHEL6

Bonding Interface RHEL (Redhat enterprise Linux) cho phép quản trị hệ thống kết hợp nhiều network interface vào thành 1 interface sử dụng bonding module của Linux kernel và một interface bonding. Điều này cho phép 2 network interface hoạt động như 1 interface. Điều này đem lại 2 lợi ích. Tăng độ tin cậy. Bonding module có thể cho phép 2 interface hoạt động ở chế độ active-standby. Khi đường truyền active interface bị lỗi, dẫn đến việc không truyền tải được nội dung, Linux kernel sẽ tự động chuyển qua standby interface.

[Hệ thống] Tràn bộ nhớ Stack

Bộ nhớ Stack Stack là gì Stack là vùng nhớ dành cho các biến local, địa chỉ của bộ đếm chương trình. Trong ứng dụng nhúng với tài nguyên giới hạn, phần mềm nếu thiết kế không tốt có thể dẫn đến tràn stack , từ đó gây ra những lỗi với hiện tượng khó xác đinh lúc runtime. Để tránh việc này, các nhà lập trình được khuyến cáo không khai báo một mảng local quá lớn và không dùng đệ quy trong các ứng dụng nhúng.

Một số con số về độ trễ mà lập trình viên cần biết

Trong một hệ thống, khi chúng có trao đổi thông tin với nhau thì chắc chắn rằng việc trao đổi thông tin đó có gây ra một khoảng thời gian trễ, tùy vào từng hệ thống và cách thức giao tiếp mà thời gian trễ này ít hay nhiều. Như trong bảng dưới đây, người ta đã liệt kê độ trễ trung bình khi tương tác dữ liệu giữa chúng. Ví dụ như cache L1 và L2 là 2 bộ nhớ đệm chính khi đưa dữ liệu vào ra CPU, do vậy cần có tốc độ rất cao -> yêu cầu độ trễ là cực kỳ thấp (chỉ vài nano giây).

[CSharp] Bảo vệ Database SQLite bằng mật khẩu

Bảo vệ Database SQLite Khi thiết kế ứng dụng, để lưu trữ một số dữ liệu nhỏ thì người ta hay dùng XML, JSON hoặc SQLite. Các phương pháp lưu trữ này có ưu điểm là có tính di động (portable) cao, không yêu cầu máy tính phải cài thêm Hệ quản trị cơ sở dữ liệu nào khác. Lưu trữ ở dạng này thì thường là dữ liệu thô ở dạng plain-text, không được mã hóa.

Hướng dẫn đổi tên cổng COM trên máy tính

Trên máy tính hiện đại ngày nay chúng ta sẽ không thể tìm thấy cổng COM thực nữa do hạn chế về tốc độ của nó nên các nhà sản xuất đã loại bỏ khỏi board mạch của họ. Được thay thế vào đó là các kết nối tốc độ cao hiện đại hơn như USB, PCI. Tuy nhiên một số công việc vẫn đòi hỏi cần phải có kết nối COM, như để kết nối với phần cứng bên ngoài chẳng hạn.