Kiểm tra và điều khiển bộ nhớ cached trên Linux với vmtouch
Trong một bài viết trước đây mình có giải thích về cached trên Linux. Ứng dụng dễ thấy của nó là load các tập tin từ đĩa vào memory để tăng tốc quá trình đọc/ghi dữ liệu. Cơ chế này do hệ điều hành quản lý nên ta cũng không quan tâm lắm về cách nó thực hiện như thế nào. Nhưng một ngày bạn muốn ...
Những chiêu trò giúp bạn học nhanh hơn
Khi các ban cố gắng học bất cứ ngôn ngữ cũng như coding skill nào, họ thường gặp một số thách thức tương tự như: Một số khái niệm có thể gây nhầm lẫn, đặc biệt nếu bạn đang là một người có kiến thức ở một ngôn ngữ khác. Thật khó để tìm ra được thời điểm cũng như động lực để học. Cũng giống ...
Một số ví dụ về quy hoạch động
Quy hoạch động là một trong những kĩ thuật lập trình cơ bản được sử dụng khá nhiều trong các cuộc thi lập trình. Ý tưởng về cơ bản rất đơn giản: để giải một bài toán, chúng ta đi giải các bài toán con, sau đó tổng hợp các lời giải đó lại thành lời giải của bài toán ban đầu. Trong một số bài toán, ...
Stack overflow
Stack ? 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 ...
Ngôn ngữ lập trình qua các con số (4/2015)
Trang web http://pypl.github.io vừa đưa ra kết quả thống kê hàng tháng về độ phổ biến của các ngôn ngữ lập trình. Trang web này thống kê bằng cách thống kê các query tìm kiếm về các ngôn ngữ lập trình để đưa ra xếp hạng , cũng như độ nóng cũng như vị trí hiện tại của các ngôn ngữ này. ...
Code Đức
Bắt đầu một câu chuyện Vài ngày trước một người bạn nhờ tui xem giùm trang web của nó bị người dùng phàn nàn là hack tiền ảo. Tui mò vào thì thấy cái này. Đây là một script sẽ chạy mỗi khi bạn truy cập vào trang web, "hâm nóng" CPU của bạn một chút, và "làm dày" túi tiền của chủ ...
Map - Reduce Multiple Key - Value
Mình đang nghiên cứu Spark, nên có những thứ với mình khá là mới mẻ, nên log lại đôi chút để sau này còn có cái để training hay đọc lại À còn nữa, bài viết chỉ dành cho những ai đã và đang nghiên cứu về Spark. Người không nghiên cứu có khi đọc không hiểu đâu Ví dụ mình có một dữ liệu được ...
Bước đầu tìm hiểu Spring Boot
Trong bài viết này, mình sẽ giúp các bạn bước đầu tìm hiểu về Spring Boot. Các công cụ mình sẽ sử dụng trong bài viết này bao gồm: Ubuntu 16.04 Eclipse Neon đã cài đặt Spring Tool Suite JDK 1.8 Giới thiệu Spring Boot Spring Boot là một dự án khá nổi bật trong hệ sinh thái Spring ...
Review sách: The Passionate Programmer – Những điều giúp developer phát triển sự nghiệp
Sau một loạt những bài viết về technical khô khan, hôm nay mình sẽ đổi gió bằng 1 bài review sách. Đây là một cuốn sách nói về những điều developer cần làm để phát triển bản thân và sự nghiệp, đúng với tôn chỉ của blog mình (Lập trình viên cần biết nhiều điều hơn ngoài code). Bài này mình dùng ...
Tải trung bình
Load Average -- tạm dịch là "giá trị tải trung bình" -- là một chỉ số liên quan đến CPU rất cơ bản và quan trọng. Việc nắm rõ ý nghĩa của chỉ số này giúp chúng ta đánh giá được hiệu năng hiện thời của máy tính cũng như sử dụng CPU nói riêng, máy tính nói chung một cách hiệu quả nhất Bài viết này ...
Tôi biết cái tôi muốn và tôi tin chắc bạn sẽ làm được
“I know what I want and I trust you to do your part.” - Sandi Metz Hôm nay mình muốn giới thiệu bí quyết trên của Sandi Metz, một tác giả yêu thích của mình về các vấn đề liên quan tới OOP. Mình thật sự ấn tượng với nó vì chỉ một câu ngắn gọn thôi cũng đủ để xem là kim chỉ nam ...
Chuyện 18+ về Microservice - Phần 1
Bản quyền thuộc Fsoft Potato Tech Mag Giới thiệu series chuyện về kiến trúc Microservice từ thiết kế đển implementation Giaosucan's blog: Chia sẻ kiến thức kĩ thuật theo cách bá đạo http://www.giaosucan.com Phần 1: Chuyện chàng Khắc Tiệp và công ty Venus Xưa kia ở nước Việt Nam ...
"Tôi biết lập trình, nhưng tôi không biết lập trình cái gì"
Có một vấn đề thường gặp mà tôi thấy ở các nhà phát triển mới. Họ dành thời gian học một hoặc hai ngôn ngữ lập trình cơ bản và họ cảm thấy khá thoải mái khi làm các bài tập lập trình, nhưng họ không biết làm thế nào để áp dụng những gì mà họ đã học được. Vấn đề này thường đi kèm trong một cụm từ ...
Đem sản phẩm đến với thế giới Hacker
Bài viết này là phần tiếp theo của bài viết Tôi đã xây dựng một phần mềm mã nguồn mở như thế nào. Cách sử dụng từ "Hacker" là thống nhất với phần 1. "Đem sản phẩm đến với cộng đồng" luôn là phần khó đối với một người làm kỹ thuật. Chúng ta có thể say mê, thức ngày thức đêm để viết lib, ...
Về từ khoá static trong ngôn ngữ C
Mở đầu Khi học C cơ bản, chắc hẳn bạn sẽ gặp cách dùng từ khoá static như ví dụ dưới đây: #include <stdio.h> void count(int i) { static int num = 0; num += i; printf("current value of num: %d ", num); } int main() { count(1); count(3); return 0; } Kết quả ...
Web Beacon và cookie
Web Beacon là gì Web Beacon, hay Web Bug là 1 khái niệm với 2 tên gọi khác nhau. Có thể bạn chưa từng nghe nói đến, hay đã nghe nhưng ko hiểu rõ lắm về cụm từ này. Trước hết mình sẽ lấy định nghĩa trên Wikipedia xuống để dễ theo dõi: A web bug is an object that is embedded in a web page or ...
Lỗ hổng bảo mật khủng khiếp của Lotte Cinema
Đăng nhập là một chức năng đơn giản nhất mà hơn 90% các ứng dụng web cần phải có. Tuy nhiên, đôi khi ta lại không được hướng dẫn cách thực hiện chức năng "Đăng nhập" một cách đúng đắn, bài bản, dẫn đến những lỗi dở khóc dở cười, hoặc những lỗ hổng bảo mật khủng khiếp . Đến cả Lotte Cinema, một ...
Tàn Code Lệnh - Phần 1
GIAOSUCAN'S BLOG - CHIA SẺ KIẾN THỨC KĨ THUẬT THEO CÁCH BÁ ĐẠO http://www.giaosucan.com/ Lời tựa Tàn code lệnh là series bài viết giải thích nội dung cuốn Clean Code của Robert C. Martin theo phong cách kiếm hiệp Rober C Martin Chương 1: Huyết hải thâm cừu Hỡi thế gian, code ...
Parameters vs Arguments
Mình xin được tóm tắt lại một vài kiến thức thức cơ bản trong lập trình mà đôi lúc chúng ta bị nhầm lẫn hoặc không để ý đến. Parameter is variable in the declaration of function. Argument is the actual value of this variable that gets passed to function. For example: public void ...
SOLID là gì – Áp dụng các nguyên lý SOLID để trở thành lập trình viên code “cứng”
Trong quá trình học, hầu như các bạn sinh viên đều được học một số khái niệm OOP cơ bản như sau: Abstraction (Tính trừu tượng) Encapsulation (Tính bao đóng) Inheritance (Tính kế thừa) Polymophirsm (Tính đa hình) Những khái niệm này đã được dạy khá rõ ràng, và hầu như những buổi phỏng ...