Ubuntu 18.04 LTS có gì mới và làm sao để upgrade?
Không biết các bạn code trên OS nào, còn với các framgia-er thì hầu như là trên nền tảng linux, đặc biệt là ubuntu. Vậy trong phiên bản LTS(long time support) lần này của Ubuntu có gì mới và làm sao để update từ phiên bản hiện tại của bạn. Ubuntu 18.04 LTS Bionic Beaver cuối cùng đã được phát ...
Số hoá lợi ích của Seminar nội bộ đối với dự án phần mềm
Làm thế nào để tất cả các thành viên dự án phần mềm có thể nhanh chóng nắm bắt được một công nghệ mới và triển khai nó đồng bộ? Có lẽ tổ chức một buổi seminar nhỏ là một phương án rất tối ưu. Chẳng cần phải nghĩ chúng ta có thể kể ra vô vàn lợi ích của việc tổ chức seminar nội bộ trong team. ...
Điều khiển truy cập - Access Control (Phần 1)
A. Khái niệm: Bảo mật hệ thống thông thường thông qua 2 bước: Chứng thực người dùng(authentication): xác thực người dùng cần truy xuất vào hệ thống. Điều khiển truy xuất(access control): hạn chế quyền hạn của người dùng trong hệ thống. Điều khiển truy xuất là cơ chế bảo mật theo dõi ...
SOLID Principles #1: Single Responsibility Principle
Có nhiều người đã biết đến nguyên tắc SOLID qua nhiều bài viết trên viblo như: đây hoặc đây. Nhưng trong series này mình sẽ giúp các bạn hiểu rõ hơn về từng yếu tố trong nguyên lý SOLID, đừng bỏ lỡ nhé! Yếu tố đầu tiên mình đề cập trong series này là: Single responsibility principle - Nguyên tắc ...
[Vue.js] Write your own and reuse pagination component - Simple pagination demo.
Demo: https://telosma.github.io/vue-simple-pagination/ Lưu ý: Để xem việc di chuyển giữa các trang của mình có đúng hay không bạn có thể inspect trình duyệt và xem console log mà mình đã in ra. Pagination là một thành phần mà chúng ta sử dụng khá nhiều khi làm việc với các website và khi làm ...
Deploy ứng dụng ReactJS lên GitHub-Pages
Giới thiệu Bạn có một ứng dụng ReactJS, và bạn muốn deploy ứng dụng của bạn lên internet và chia sẻ cho mọi người nhưng chưa biết phải làm thế nào. Bài viết này là một giải pháp cho bạn, hướng dẫn bạn public ứng dụng lên GitHub Pages , hãy cùng bắt đầu nhé. Tạo project Phần này giành cho ...
RxSwift qua ví dụ #2 – Observable và The Bind
Trong bài đầu tiên, chúng ta đã tìm hiểu các khái niệm cơ bản về RxSwift và RxCocoa. Nếu bạn chưa đọc thì có thể nhấn vào link này Những khái niệm cơ bản trong RxSwift Hôm nay chúng ta sẽ nói về binding. Đừng lo lắng, binding có nghĩa là kết nối và chúng ta sẽ kết nối các Observable với các ...
Giới thiệu về cloud formation và cách sử dụng cơ bản
Cloud formation là gì? Cách dễ nhất để mô tả CloudFormation là nó là một công cụ từ AWS cho phép bạn khởi tạo tài nguyên một cách dễ dàng. Bạn xác định tất cả các tài nguyên mà bạn muốn AWS bật lên trong một bản thiết kế chi tiết, bấm vào một nút, và sau đó AWS sẽ thực hiện giúp bạn phần việc còn ...
[Android] [Kotlin] Retrofit 2 Download File
Trong lập trình android chúng ta đã quen thuộc với thư viện Retrofit 2 để nhận và gửi JSON từ một WebService nhưng trong bài viết này chúng ta sử dụng Retrofit 2 để download một file từ WebService URL : http://repo1.maven.org/maven2/com/squareup/retrofit/retrofit/2.0.0-beta2/retrofit-2.0.0-be ...
Memory Leaks in Swift
Trong bài viết này chúng ta sẽ nói về rò rỉ bộ nhớ (memory leaks). Đây là một đoạn trích: describe("MyViewController"){ describe("init") { it("must not leak"){ let vc = LeakTest{ return MyViewController() } expect(vc).toNot(leak( ...
Debug dễ dàng hơn với better_errors và binding_of_caller gem
Việc hiển thị lỗi theo trang mặc định của Rails đôi khi làm chúng ta rất khó để biết chính xác lỗi đó là gì vì rất ít thông tin được hiển thị. Vì vậy để những đoạn message error trông rõ ràng hơn thuận tiện cho việc fix bug chúng ta có thể sử dụng gem bettererrors kết hợp với bindingofcaller. ...
SES - Simple Email Service : Tạo một server gửi mail chưa bao giờ đơn giản đến thế !
Trong thời buổi mà công nghệ thông tin đã bao phủ hầu như tất cả mọi lĩnh vực đời sống thì việc sử dụng email cũng trở nên phổ biến hơn bao giờ hết . Email không chỉ được dùng để thông tin liên lạc hay trao gửi những lời yêu thương như trong bài hát "Email tình yêu" của Đan Trường thuở nào nữa mà ...
Binary search algorithm
Binary search is one of the fundamental algorithms in computer science. In order to explore it, we’ll first build up a theoretical backbone, then use that to implement the algorithm properly. Binary search is a fast search algorithm with run-time complexity of Ο(log n). This search ...
Tích Hợp Emojis Keyboard Trong Ứng Dụng Android
Emojis là một cách tuyệt vời để thể hiện cảm xúc của chúng ta và gửi đi những suy nghĩ của chúng ta tới những người , họ đang sử dụng một ngôn ngữ khác có thể hiểu được chúng ta. Bất kỳ một ứng dụng mạng xã hội nào cũng cung cấp cho bạn môt bộ Emojis. Hãy xem những tin nhắn sau cùng của bạn để ...
How to Play, Record, and Merge Videos in iOS and Swift
Xin chào các bạn hôm nay mình trình bày về cách Play, Record và Merge Videos trong iOS - Swift 4.0 Bài viết được clone từ bài viết của tác giả Owen Brown tại đây Đầu tiên các bạn hãy download material cho project này tại đây Project này chứa một story board và một số bộ điều khiển chế độ xem với ...
RAILS VIRTUAL ATTRIBUTES
Hôm nay mình giới thiệu với các bạn cách tạo virtual attribute đơn giản cho rails Giả sử ta có table user có 2 column là first_name và last_name, để tạo table user ta chạy câu lệnh migrate như sau: rails g modal user first_name:string last_name:string Khi đó, để đăng ký mới user, người ...
"Tân trang" lại MVC qua ví dụ cụ thể
Model-View-Controller là một design pattern cơ bản và phổ biến trong lập trình, đặc biệt là các ứng dụng trong hệ sinh thái của Apple như iOS, macOS. Mặc dù nó là một design pattern đơn giản, nhưng phần lớn các lập trình viên đều ko tuân thủ được đúng hoàn toàn và vô tình biến nó thành "Massive ...
Khám phá Kotlin Android Extension: Tạm biệt findViewById
Kotlin hiện là ngôn ngữ chính thức trên Android. Nó mang tính rõ ràng, ngắn gọn và mạnh mẽ . Thứ tuyệt vời nhất là nó tương thích với mọi ngôn ngữ android và runtime. Được Jetbrain công bố vào tháng 07/2011 và phiên bản Kotlin v1.0 được ra mắt vào ngày 15 tháng 02 năm 2016. Tại Google ...
OpenCV With Python Part 9 ( Làm mờ và làm mịn )
Chào mừng các bạn đả quay lại với tutorial lần này. Trong bài hướng dẫn lần này, tôi sẽ giới thiệu một số thao tác đơn giản mà chúng ta có thể thực hiện trên các hình ảnh như làm mờ làm mịn bức ảnh sau khi được lọc màu . Bây giờ chúng ta sẽ tìm hiểu cách để loại bỏ nhiễu từ các bộ lọc, như các ...
Giới thiệu về Kotlin Coroutines trên JVM
Bài tutorial này sẽ hướng dẫn các bạn setup một project cho phép sử dụng coroutine và một đoạn code nho nhỏ minh họa cách sử dụng nó. Trong phiên bản 1.1 thì Kotlin đã giới thiệu coroutine, một cách thức mới để viết code bất đồng bộ, non-blocking (và nhiều hơn thế nữa). Trong bài tutorial này thì ...







