Strategies của Warden
Warden sử dụng khái niệm Strategies để xác định nếu có request authenticated. Warden sẽ trả về 1 trong 3 trạng thái: One succeeds No Strategies are found relevant A strategy Fails Warden dùng strategies để authenticate nhưng nó lại không hề tạo ra cho bạn bất kì một strategies nào mà thay vào đó ...
Tìm hiểu về ứng dụng Rack và Middleware
Nhiều web developer làm việc ở mức độ trừu tượng cao nhất khi chúng ta lập trình. Và đôi khi thật dễ dàng chấp nhận mọi thứ. Đặc biệt là khi chúng ta đang sử dụng Rails. Bạn đã bao giờ đào vào internals để xem chu kì request/response hoạt động trong Rails như thế nào? Gần đây tôi mới nhận ra rằng ...
UIKit View Shadow
Hôm nay chúng ta sẽ nói về layout.shadowX để một view nhìn giống như một Card với các cool effects. Chúng ta bắt đầu với view đơn gian và tôi biết bạn cần điều này. myCard.layer.cornerRadius = 10 myCard.layer.shadowOpacity = 1 myCard.layer.shadowColor = UIColor(named: "Swift ...
Xây dựng một Blockchain đơn giản (40 lines of code)
Quay trở lại hơn 20 năm trước, sự xuất hiện của internet được xem là một cuộc cách mạng trên thế giới. Internet giúp chúng ta có thể cập nhật thông tin vào bất cứ thời điểm nào ở bất cứ đâu trên thế giới, làm thay đổi toàn bộ cục diện cho cả thế giới nói chung và ngành báo chí, truyền thông nói ...
[iOS] [Swift] Tổng hợp tất cả từ khóa trong ngôn ngữ Swift (Part 2)
Tiếp tục phần phần 1: https://viblo.asia/p/ios-swift-tong-hop-tat-ca-tu-khoa-trong-ngon-ngu-swift-part-1-E375zEAdlGW Trong phần này chúng ta sẽ tiếp tục với các từ khóa thường xuyên được sử dụng trong các câu lệnh. Keywords in Statements if : đảm bảo 1 hoặc nhiều điều kiện khi thực hiện 1 ...
Fun Fact: Té Ngửa Với Những Hiểu Lầm Thường Gặp Về Agile
Có một số vấn đề lặp đi lặp lại và đó là kết quả của những câu chuyện “thần thoại” mà mọi người nghĩ về Agile. Do đó, tôi sẽ dành thời gian của mình để debug những huyền thoại này một lần nữa. Tôi đã lên một danh sách và hàng chục câu chuyện “thần thoại: để tái hiện lại sự ...
Code reviews - how to make it awesome part 2
Đây là phần hai tiếp nối phần một của bài viết tại đây Nâng cao chất lượng của PR một cách chậm rãi Các thành viên trong team luôn luôn muốn tìm cách nâng cao code của họ tuy nhiên, sự kiên nhẫn thì không phải ai cũng có được. Nếu chúng ta cứ chăm chăm vào bắt lỗi tất cả các vấn đề nhỏ nhặt ...
Các cách tạo đối tượng trong JavaScript
Chào các bạn, Trong JavaScript ta có muôn vàn cách tạo ra 1 object, trong bài này chúng ta sẽ tìm hiểu về các kiểu tạo object này. Kiểu đầu tiên tôi muốn giới thiệu đó là Object Literals , 1 kiểu tạo đối tượng không class, không template, không prototype, chỉ cần method và data Ví dụ: var o ...
Hướng dẫn về ASO (App Store Optimization) dành cho App Store (Phần 4)
Xin chào các bạn. Hôm nay mình xin giới thiệu với các bạn loạt bài cuối cùng trong bài tìm hiểu về ASO (App Store Optimization) dành cho Apple Store. Ở bài này mình sẽ giới thiệu về cách áp dụng ASO cho trang ứng dụng. Với phiên bản iOS 11 thì ứng dụng App Store đã được thiết kế giao diện mới khá ...
[Clean Code] Replace Conditional with Polymorphism
Khi học bất cứ một ngôn ngữ hay là một framework nào đó, Developers chúng ta thường học những cú pháp đầu tiên, một trong những cú pháp mà bất cứ ngôn ngữ hay framework nào cũng có đó là câu điều kiện (Conditional Statement). Không quá khó để bắt gặp những đoạn code có conditional statement phức ...
Tìm hiểu về nested attributes
Nested attributes cho phép bạn lưu các thuộc tính trên hồ sơ liên quan thông qua cha mẹ. Mặc định trong rails thì nested atrributes updating được tắt và bạn có thể kích hoạt nó bằng cách sư dụng phương thức accepts_nested_attributes_for trong model tương ứng. Nếu muốn xác nhận rằng một bản ghi con ...
Kotlin : Collection Những Extension Functions Hay Ho
Đây là các Extension Functions nằm trong thư viện chuẩn được Kotlin cung cấp với nhiều tiện ích khác nhau sau quá trình làm và đọc mình thấy rất nhiều tiện ích hỗ trợ nên chia sẻ cùng anh em Hoàng Hải Đăng viết 17:02 ngày 12/08/2018
Ruby Percent Notation %Q, %q, %W, %w, %x, %r, %s
%Q This is an alternative for double-quoted strings, when you have more quote characters in a string.Instead of putting backslashes in front of them, you can easily write: >> %Q(Joe said: "Frank said: "#{what_frank_said}"") => "Joe said: "Frank said: "Hello!""" The parenthesis ...
Một Tính Năng Tuyệt Vời Của Kotlin: Parcelize
Bạn sẽ xoá rất nhiều dòng code trong ứng dụng của bạn Làm thế nào bạn gửi các model (các class bạn định nghĩa của riêng bạn ) giữa các Activity ? Serializable ? EventBus / Otto ? Parcelable ? Serializable nó không tốt cho hiệu suất trong ứng dụng Android của bạn Libaries Bus giống ...
Hệ thống phần mềm vi dịch vụ
1.1.1 Đặc điểm của kiến trúc hệ thống vi dịch vụ Hệ thống vi dịch vụ (Microservice System – MS) đã nổi lên trong vài năm qua để mô tả một cách đặc biệt của thiết kế các ứng dụng phần mềm như là một hệ thống các dịch vụ được triển khai độc lập và giao tiếp với nhau qua mạng. Trên thực tế, ...
RESTFul API
An API is an Application-Programmer Interface essentially a set of functions, objects, and methods that are made publicly known to developers that allow them to interact with a particular technology. APIs are useful because they enable programmers to utilize the capabilities of different ...
Giới thiệu về Sidekiq và một số cơ chế hoạt động
1. Background Jobs Để hiểu về gem Sidekiq và sự cần thiết của nó trong vấn đề xử lý background jobs của Rails, trước hết ta hãy xem background jobs là gì đã nhé. Đúng như tên gọi của mình, background jobs - "các công việc phía sau", là những công việc hay tác vụ được xử lý ngoài luồng ...
Thước đo performance của ứng dụng android
Với bất cứ các app android nào kể cả ứng dụng và game, UI (user interface) giao diện người dùng đẹp là một lợi thế nhưng UX (user experience) trải nghiệm người dùng mới là quyết định cuối cùng. Bạn chơi game với UI cực đẹp và hấp dẫn nhưng đôi lúc cảm thấy giật lag trên chiếc phone yêu quý của ...
Tạo mã QRcode trong ứng dụng rails
Bài viết này hướng dẫn cho bạn cách tạo ra mã QR code ở trong ứng dụng ruby on rails Mã QR codes rất hữu ích cho một số loại dữ liệu khác nhau. Bạn có thể dễ dàng lưu trữ URL, văn bản và nhiều hơn nữa trong một mã vạch đơn giản và dễ đọc bởi hầu hết các điện thoại thông minh hiện nay. Trong ...
Tìm hiểu về Augmented Reality (AR) và công cụ Vuforia
Cùng với sự phát triển vượt bậc của khoa học công nghệ, hiện nay có rất nhiều những ứng dụng táo bạo được áp dụng và đưa vào thực tế. VD như Tissot đã dành riêng cho 1 trang web để giúp khách hàng có thể thử trước mẫu đồng hồ muốn mua. Việc cần làm là bạn đeo miếng giấy đánh dấu vào cổ tay và giơ ...