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

Wemos update firmware qua mạng (phần 5)

Xin chào các bạn! Mình đã quay trở lại rồi đây. Như các bạn đã biết thì khi lập trình cho một phần cứng nào đó ta cần phải nạp chương trình vào cho nó thì nó mới hoạt động được. Mỗi lần sửa một dòng hay chỉ là 1 biến thì ta đều phải biên dịch lại và nạp code cho em nó. Việc nạp phần mềm như thế ...

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

Một chút về Python

Python dùng indent để đánh dấu đó là một block code nếu chúng cùng indentation, ruby sử thì sử dụng {} hoặc từ khóa do ... end if 1 > 2: print("1 is greater than 2") elif 2 > 1: print("1 is not greater than 2") else: print("1 is equal to 2") Biểu thức điều kiện của Python không ...

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

Những lỗi mà tôi đã làm như một Beginner Programmer

Trước tiên tôi muốn làm rõ ràng một điều. Nếu bạn là một beginner programmer, bài viết này không phải làm cho bạn cảm thấy tồi tệ về những sai lầm mà bạn mắc phải, mà là để bạn, cũng như tôi nhận thức về nó, nhắc nhở chúng ta nên tránh. Tôi đã mắc phải những lỗi này và học được nhiều thứ từ mỗi ...

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

Bốn cách để refactor và tăng tốc RSpec

Viết test là một phần hết sức quan trọng khi chúng ta phát triển bất cứ một chương trình nào. Tuy nhiên đôi khi tạo gặp khó khăn để làm sao test của chúng ta viết ra thật clean và chạy nhanh nhất là đối với một project có nhiều member tham gia việc phát triển trong một thời gian dài. Trong bài này ...

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

Trên tay React v16.3.0

Như tiêu đề, hôm nay chúng ta sẽ cùng review một số thay đổi đáng chú ý trong React phiên bản 16.3.0 mới được release vào hôm 30/3 vừa rồi. Phiên bản này mang đến khá nhiều tính năng mới nhưng cũng kèm theo khá là nhiều hoang mang. Không để các bạn phải chờ lâu chúng ta sẽ bắt đầu ngay với điểm ...

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

Code Coverage cho Android với Jacoco

Trong bài viết này, chúng ta sẽ tìm hiểu cách để tạo một test coverage report trong dự án Android bao gồm cả unit tests (thường được viết bằng JUnit , Mockito và Robolectric ) và instrumented test (thường được viết bằng Espresso ). Tổng quan về coverage reports Test coverage reports là một ...

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

Index và một vài vấn đề liên quan

Thử hình dung bạn sẽ được giao một nhiệm vụ phải tối ưu một vài hệ thống mà chưa biết phải bắt đầu từ đâu, thì dưới đây là một vài bước có thể giúp ích được cho bạn có thể cải thiện được tốc độ hệ thống. Một vài ý tưởng đến lúc đầu có thể là chưa sử dụng indexes không tận dụng được i/o ...

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

Hướng dẫn sử dụng SnapKit

SnapKit là tool giúp bạn có thể sử dụng autolayout bằng cách sử dung constraint 1 cách rất dễ dàng. Bằng cách sử dụng Snapkit, bạn có thể tạo, update, remove, quản lý các contraint của view đơn giản. CocoaPods: source 'https://github.com/CocoaPods/Specs.git' platform :ios, ...

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

Tạo mã QR với thư viện ZXing

Hi, Lần trước mình đã giới thiệu đến các bạn cách đọc mã QR sử dụng thư viện barcodescanner Hôm nay mình giới thiệu cách để tạo ra 1 ảnh png là mã QR sử dụng thư viện zxing. Bản chất nội dung encode của 1 ảnh QR là 1 chuỗi thông thường. Tùy theo chuỗi đó có cấu trúc như thế nào sẽ quy định ý ...

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

Một vài vấn đề về Active Record Associations (Phần 2)

Phần này mình sẽ giới thiệu chi tiết về: belongs_to association association=(associate) build_association(attributes = {}) create_association(attributes = {}) create_association!(attributes = {}) reload_association Giả sử ta có model như sau: class Book < ApplicationRecord ...

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