Bài viết của Trịnh Tiến Mạnh

Xin đừng đánh nhau với Framework

Xin bắt đầu bằng câu chuyện rùa và thỏ. Phiên bản 1: Như mọi người đã biết, rùa thắng thỏ vì rùa rất chăm chỉ, chậm và chắn chắn. Sau khi thua rùa, thỏ ta rất cay cú nói với thỏ con: "Đời cha đã thua rùa vì không chăm chỉ, đời con, con nhất định phải lấy lại danh dự cho nhà Thỏ, không ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Những dấu chân của nhân loại trên con đường đến với lập trình hướng đối tượng (phần 2)

Ẩn dữ liệu (hiding data) và đóng gói thông tin (encapsulation) Kể cả đối với object composition của ngôn ngữ C, bằng việc tách biệt việc define và implement của header file chúng ta vẫn có thể ẩn những thông tin bên trong kiểu dữ liệu trừu tượng. Tuy nhiên, sau này người ta đã dần dần hỗ ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Nested Model Validation Problem and Solution

Nested Attribute is one of the helpful feature for Ruby on Rails developers. It gives the privilege to save attributes of a record through its associated parent. You can find details about nested model and nested attribute here. Model Validation Validation of models is an important part ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

padding and margin đơn giản hay nguy hiểm

Xin chào tất cả các bạn, hôm nay mình xin phép được viết một bài vô cùng đơn giản về UI, đó là công cụ padding và margin. I) Giới thiệu Có rất nhiều bạn nhầm lẫn cách sử dụng của 2 công cụ này nên hôm nay mình sẽ đưa ví dụ và cách dùng tốt nhất mà mình cảm thấy cho hai công cụ này. II) Giới ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Repeat Annotation In Java

Kiến thức yêu cầu( Prerequirement ) Java core Khái niệm về Annotation và cách tạo 1 custom annotation. Có thể tham khảo các link sau: https://docs.oracle.com/javase/tutorial/java/annotations/basics.html http://www.mkyong.com/java/java-custom-annotations-example/ Trong một vài trường hợp, ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Sử dụng nhiều phiên bản PHP trên Apache

Như các bạn biết, việc cài đặt server apache thì trong cùng 1 server chỉ sử dụng được 1 phiên bản của PHP. Nếu như bạn dùng PHP5 thì sẽ không chạy được PHP 7 hoặc ngược lại. Việc trên gây ra khá nhiều bất tiện trong quá trình phát triển phần mềm, nhất là với việc chuyển đổi (migrate) từ một hệ ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Crop ảnh cực đơn giản với SimpleCropView trong Android

SimpleCropView là một thư viện crop ảnh trong android cực kỳ đơn giản. Nó làm đơn giản hóa code của bạn cho việc crop ảnh và cung cấp một giao diện có thể tùy biến một cách dễ dàng. SimpleCropView được hỗ trợ cho API 10 trở lên. I. Hường dẫn sử dụng Thêm dòng dưới đâu vào file build.gradle, ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Ứng dụng chat đơn giản với Rails5, ActionCable, Redux, và React

1. Giới thiệu Một tính năng đáng chú ý của phiên bản Rails 5 đó là tích hợp ActionCable. Nhiệm vụ của ActionCable là cho phép chúng ta có thể tạo chức năng real-time trong các ứng dụng Rails trở nên đơn giản hơn rất nhiều.ActionCable sử dụng giao thức Websocket để hỗ trợ giao tiếp 2 chiều giữa ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Phong cách làm việc với khách hàng Nhật - Chuyển giao công việc

Việc quan trọng nhất để không xảy ra vấn đề khi chuyển giao công việc là gì? Để có thể biết việc gì quan trọng nhất để không xảy ra vấn đề khi chuyển giao công việc thì chúng ta hãy bắt đầu từ việc: Vấn đề gì là quan trọng nhất trong việc chuyển giao công việc. Việc quan trọng nhất trong chuyển ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa

Sử dụng EXPLAIN để tối ưu câu lệnh MySQL

Bài viết sau dịch từ nguồn sitepoint.com. Khi bạn muốn thực thi một câu truy vấn (query), MySQL Query Optimizer sẽ cố gắng đưa ra một kế hoạch tối ưu nhất cho việc thực hiện query. Bạn có thể thấy thông tin về kế hoạch đó bằng cách thêm lệnh EXPLAIN vào đầu mỗi query. EXPLAIN là một trong ...

Tác giả: Trịnh Tiến Mạnh viết 13:35 ngày 12/08/2018 chỉnh sửa