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

Phân biệt size, length, count trong rails

count, size, length đều dùng để tính số lượng. Vậy tại sao có đến tận 3 method?. Chúng ta hãy cùng nhau tìm hiểu qua bài viết này. Trước hết ta có bối cảnh như sau: Bảng users lưu trữ các thông tin về các users Bảng comments lưu các thông tin về các comments của mỗi User. Một user có ...

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

Sử dụng gem Grape và Serializer trong API project

1. Giới thiệu Trong nhiều dự án viết API, nếu chỉ đơn thuần đáp ứng theo mục đích của API là nhận input request, xử lý và response data cần thiết, thì ta hoàn toàn có thể sử dụng theo cấu trúc của Rails đó dùng Controller. Tuy nhiên, thực tế, API đòi hỏi nhiều hơn là chỉ xử lý, và trả về dữ ...

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

Tìm hiểu Single Table Inheritance (STI) trong Rails

1. Single Table Inheritance là gì ? STI về cơ bản là ý tưởng sử dụng một bảng duy nhất để phản ánh cho nhiều model được kế thừa từ một model cha. Nó là một thành phần của ActiveRecord::Base. Trong cơ sở dữ liệu, model con dược xác định bởi trường type. Trong Rails bạn chỉ việc thêm trường type ...

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

Hướng dẫn sử dụng gem twilio để gửi SMS

Như chúng ta đã học từ quyển rails tutorial hướng dẫn cách xác nhận tài khoản bằng email, thì hôm nay mình xin được hướng dẫn mọi người 1 cách xác nhận tài khoản nữa ( phổ biến khi kết hợp với mảng di động ) đó là bằng SMS. Và gem mà chúng ta sử dụng đó là gem twilio. Mọi người có thể tham khảo ...

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

Điện tử cơ bản (P2 - Màn hình LCD & Adruino)

Phần trước mình cũng đã giới thiệu sơ qua với các bạn về đam mê làm phần cứng IoT của mình, và một số thuật ngữ cơ bản trong ngành điện tử cơ bản rồi. Để tiếp tục mời các bạn theo dõi phần 2, quá trình tìm đồ, build hello world và build app đầu tay (cái mà mình sẽ sử dụng vào mô hình nhà vườn thông ...

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

AMP - Accelerated Mobile Page

Đứng dưới góc độ của 1 end user thì khi truy cập 1 trang web, điều gì làm bạn dễ nổi cáu nhất (?) Thiết kế trang web như shit, chức năng khó dùng vcđ, hay trang web gì toàn chữ là chữ nhìn chán (vl)... Ngoài những điều trên thì có một điểm mà các trang web dễ làm user nổi cáu chính là tốc độ load ...

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

Một số thay đổi trong phiên bản PHP 7.1 sắp tới

Dưới đây là một số thay đổi sẽ được giới thiệu (hoặc loại bỏ) trong PHP 7.1: Catch cùng lúc nhiều exceptions. Bổ từ truy cập cho các class constants. Nullable types. Void return type. Negative string offsets. Cho phép keys xác định trong hàm list(). Destruct mảng với cú pháp ...

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

Annotation, sử dụng annotation với reflection trong java

Trong bài viết trước mình có giới thiệu qua về reflection và một số thành phần của nó trong java. Hôm nay, mình sẽ giới thiệu về một thành phần quan trọng của Reflection đó là annotation. (Nếu bạn nào chưa đọc bài viết trước của mình giới thiệu về reflection thì có thể tham khảo tại đây: ...

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

Going through one host to reach another server by ssh ProxyCommand

Làm thế nào để ssh tới một server thông qua một server khác? Thông thường khi connect tới server để deploy chẳng hạn, thì chúng ta chỉ cần ssh một lần là ok. Tuy nhiên trong một số trường hợp thì chúng ta cần login vào một server ở giữa để từ đó access vào server đích mong muốn. Như hình vẽ ...

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

Join vs Subquery: The Problem Of MySQL Query Optimizer?

Câu chuyện muôn thuở của MySQL và được nêu đi nêu lại ở các blog khác nhau, là sự so sánh giữa Join và Subquery. Căn bản thì tất cả đều đi đến một kết luận chung, đó là MySQL có cơ chế hỗ trợ Join, khiến nó nhanh hơn Subquery, và do vậy chúng ta nên dùng Join, hạn chế dùng Subquery. Vậy cụ thể ...

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