Bài viết của Hoàng Hải Đăng

Ruby operators

1) Toán tử operators + : Cộng - : Trừ * : Nhân / : Chia % : Chia lấy dư ** : Luỹ thừa 2) Gán operators = : c = a + b += : c += a -> c = c + a -= : c -= a -> c = c - a *= : c *= a -> c = c * a /= : c /= a -> c = c / a %= : c %= a -> c = c % a **= : c **= ...

Tác giả: Hoàng Hải Đăng viết 21:14 ngày 11/08/2018 chỉnh sửa

Giới thiệu hàm Module#module_function

Trong Ruby, có 2 cách sử dụng method của module. Cách thứ nhất là 'nhúng' (mixin) và dùng như instance method và cách thứ hai là dùng theo kiểu module function. Sẵn tiện tôi cũng đưa ra 2 ví dụ cụ thể cách dùng: Mixin và dùng như instance methods module MyLibrary def hello puts "Hello ...

Tác giả: Hoàng Hải Đăng viết 21:13 ngày 11/08/2018 chỉnh sửa

.nil? .empty? .blank? và .present?

Theo lời khuyên của anh Trung, mình sẽ cập nhật lại bài viết này trong thời gian gần, giải thích một cách rõ ràng hơn tại sao lại có các hàm .blank? và .present?, ảnh hưởng của nó tới các hành vi của truthy/falsey -- .blank? và .present? là những hàm mình thường xuyên sử dụng từ khi mới ...

Tác giả: Hoàng Hải Đăng viết 21:12 ngày 11/08/2018 chỉnh sửa

Thuật toán Floyd-Warshall để duyệt đồ thị

Khi nhắc đến các thuật toán duyệt đồ thị, có thể bạn đã biết (và đã từng implement) Depth-First Search, Breadth-First Search, hoặc Dijkstra. Xin nhắc lại về ý nghĩa của từng thuật toán, đứng ở khía cạnh bài toán tìm đường đi ngắn nhất. DFS dùng để giải các bài toán mà chúng ta muốn tìm được lời ...

Tác giả: Hoàng Hải Đăng viết 21:11 ngày 11/08/2018 chỉnh sửa

Ruby Internal - Code Ruby của bạn được thực thi như thế nào - Compilation (Phần 3)

Về phần trước Đây là một bài nằm trong chuỗi #hardcore của nhóm Ruby Vietnam Xem phần 2 tại đây Xem phần 1 tại đây Ruby Compilation Như mình đã giới thiệu ở phần 1, Ruby compile code Ruby thành bytecode, còn gọi là YARV (Yet Another Ruby VM) instructions, và được thực thi ở YARV. Ở ...

Tác giả: Hoàng Hải Đăng viết 21:11 ngày 11/08/2018 chỉnh sửa

Éo ai quan tâm đến code bạn viết đâu

Lưu ý: Bài viết này được phỏng dịch từ 1 blog tiếng Anh. Có khá nhiều bạn sẽ không đồng ý với ý kiến được đưa ra trong bài viết này, bản thân mình cũng cảm thấy có đôi chỗ chưa đồng tình lắm . Tuy nhiên, những ý kiến cũng như dẫn chứng đưa ra trong bài viết – theo ý mình – là khá chính xác. Mong ...

Tác giả: Hoàng Hải Đăng viết 21:10 ngày 11/08/2018 chỉnh sửa

Đếm bit

Mở đầu Bạn đang say sưa hacking code và bắt gặp một hàm với những con số bí ẩn như ở dưới đây: int fbc(unsigned int data) { data = (data & 0x55555555) + ((data >> 1) & 0x55555555); data = (data & 0x33333333) + ((data >> 2) & 0x33333333); ...

Tác giả: Hoàng Hải Đăng viết 21:09 ngày 11/08/2018 chỉnh sửa

Học React/Redux qua ví dụ thực tế: Kết nối React với Redux

Hôm trước chúng ta đã setup xong Redux cho project. Tiếp theo chúng ta sẽ cùng tìm cách làm sao để kết nối được React và Redux. Vậy làm sao để kết nối React với Redux nhỉ? Hmm, search google từ khoá react redux thử xem sao. Đùa thế thôi, để kết nối React và Redux chúng ta sẽ dùng một thư viện ...

Tác giả: Hoàng Hải Đăng viết 21:08 ngày 11/08/2018 chỉnh sửa

Ý nghĩa của từ khóa volatile trong C

Trong lập trình nhúng (embedded system), ta rất thường hay gặp khai báo biến với từ khóa volatile. Việc khai báo biến volatile là rất cần thiết để tránh những lỗi sai khó phát hiện do tính năng optimization của compiler. Trong bài viết này, ta sẽ tìm hiểu ý nghĩa của từ khóa này, cách sử dụng nó và ...

Tác giả: Hoàng Hải Đăng viết 21:08 ngày 11/08/2018 chỉnh sửa

69 câu hỏi phỏng vấn về Spring (Phần 2)

Trong bài trước đã có bạn hỏi về cấu trúc các module trong Spring, đây chính là hình minh họa. Trong phần này, chúng ta sẽ lần lượt nói về Spring Beans, Spring Annotations. Spring Beans 21. Spring beans là gì? Spring Beans chính là những Java Object mà từ đó tạo nên khung sườn ...

Tác giả: Hoàng Hải Đăng viết 21:07 ngày 11/08/2018 chỉnh sửa