Uploading files lên S3 bằng AWS SDK Ruby Gem
Để upload files lên kho lưu trữ Amazon S3 của bạn, bạn có thể sử dụng phiên bản aws-sdk 2. Theo mặc định gem sẽ tìm kiếm các thôn tin xác thực trong các biến môi trường. Vì vậy, bạn phải export các giá trị trên terminal như sau: export AWS_ACCESS_KEY_ID='my-very-secret-key' Bạn có thẻ xác minh nó ...
Một người làm thiết kế trải nghiệm người dùng (UX) cần có những kỹ năng gì?
Đừng hoảng hốt khi bạn phải đọc tất cả những kỹ năng bạn cần trang bị như những điều tôi viết dưới đây. Một số trong chúng bạn có thể search trên internet và đọc, chỉ cần với ngộ tính cao, bạn có thể hiểu được ngay. Một số thức khác bạn có thể tự học bằng cách đọc vài cuốn sách. Còn lại, có lẽ bạn ...
Semver and tags version
Semver khái niệm không còn xa lạ gì với developer nó được viết tắt từ Semantic Versioning mô tả kỹ thuật versioning và các nguyên tắc liên quan Summary Semver được đánh số với 3 thành phần chính MAJOR.MINOR.PATCH MAJOR version khi các api cũ thay đổi không còn tương thích MINOR ...
Tạo hiệu ứng xem ảnh với UIViewControllerAnimatedTransitioning
Đầu tiên mình sẽ hướng dẫn các bạn tạo hiệu ứng xem ảnh với UIViewControllerAnimatedTransitioning Đầu tiên, tạo 1 project có tên FacebookPhotoScreen và sử dụng ngôn ngữ Swift PopAnimator Tạo 1 subclass từ NSObject và conform với UIViewControllerAnimatedTransitioning có tên là ...
AI Conversation (2)
Trong bài trước, mình có nhắc đến Tensorflow để xây dựng 1 ứng dụng conversational. Trước hết tìm hiểu về Tensorflow. Là gì? TensorFlow là 1 library do Google phát triển và opensource vào tháng 11/2015. TensorFlow được cho là sử dụng trong nhiều service của Google: phân loại email của ...
Kết hợp Vuejs với Rails
Giới thiệu Vuejs Vue (phát âm là /vjuː/, giống view) là một progressive framework dùng để xây dựng giao diện người dùng ( UI ). Không giống các monolithic framework. Phần thư viện lõi của Vue chỉ tập trung vào lớp view mà thôi, và nó rất dễ để làm quen và tích hợp với các thư viện khác hoặc các ...
Sử dụng UIScrollView với Autolayout trên Interface Builder
Màn hình iphone ngày càng lớn, từ iphone 3,4,5 đến 6,6+.Tuy nhiên, lại quá nhỏ so với nhu cầu hiển thị thông tin trên ứng dụng. Để hiển thị đầy đủ những thông tin đó, các developer thường giải quyết bằng cách sử dụng UIScrollView,UITableView, UICollectionView . UITableView, UICollectionView là ...
CI/CD with Jenkins (P1)
Trong bài viết này tôi sẽ giới thiệu về CI/CD kết hợp với Jenkins tạo ra 1 chu trình phát triển phần mềm Build-Deploy-Test với việc can thiệp thủ công ít nhất, giúp giảm thiểu chi phí, thời gian và các nguy cơ thay đổi bằng cách cho phép cập nhật gia tăng các tính năng vào trong ứng dụng. ...
CATextLayer - Masking views with text
CATextLayer là một layer cung cấp layout của text đơn giản và rendering các text thuần hay các thuộc tính của strings một cách nhanh chóng. Khác với UILabel, chúng ta không thể gán một UIFont cho CATextLayer, mà chỉ có thể là một CTFontRef hoặc CGFontRef. Tạo một UIImageView: let ...
Phần 1: Những khái niệm cơ bản trong Elasticsearch
Bài viết này với mục đích giới thiệu về những kiến thức, khái niệm cơ bản về ES để bắt đầu cho chuỗi bài viết về ES mà tôi sẽ giới thiệu tới đây. 1. Indexing Elasticsearch cho phép trả về kết quả cực nhanh bởi thay vì tìm kiếm bởi text, ES tìm kiếm bởi inverted index . Hơi khó hiểu phải ...
[Android] Object Oriented Tricks: Starter Pattern
Thông thường chúng ta sẽ xây dựng các objects tại một nơi, nó có thể là một method constructor, builder, static factory method, abstract factory method hoặc bất kỳ một Creational Patterns nào khác. Đôi khi khi object được tạo bởi framework cần thêm một số thông tin mà chúng ta phải cung cấp. ...
Cách khôi phục database schema nếu gặp conflicts khi rebase
Đây là vấn đề sẽ thường xuyên xảy ra khi làm các dự án Rails với quy trình làm việc trên branch của git. Giả sử bạn đang làm việc trên một nhánh để phát triển một tính năng nào đó của project. Vấn đề xảy ra khi cả nhánh develop và nhánh của bạn đều chứa file migration, khi đó sẽ xảy ra conflict ở ...
Data consistency in Rails: Understanding the different between transaction and locking
Tất cả bắt nguồn từ bài post này của bên Grokking VietNam. Đại ý của bài viết như sau: Một ứng dụng chuyển tiền của ngân hàng có một đoạn code như dưới đây: def transfer ( A , B , amount ) DB . transaction do if A . balance > amount A . balance - = ...
Create Dialog in Android
Create Dialog View Create XML file dialog_view.xml, for example: < LinearLayout xmlns: android = " http://schemas.android.com/apk/res/android " android: layout_awidth = " match_parent " android: layout_height = " match_parent " android: orientation = ...
Laravel: Events
Introduction Các Event (sự kiện) của Laravel cung cấp việc thực hiện observer 1 cách đơn giản. Cho phép bạn đăng ký và lắng nghe các event khác nhau xảy ra trong ứng dụng của bạn. Các class Event thường được lưu trữ trong thư mục app/Events, trong khi listener của chúng được lưu trong ...
Hướng dẫn tạo test case cơ bản sử dụng SELENIUM IDE
1. Giải thích các thành phần trên giao diện Selenium IDE 1.1 Giao diện Selenium IDE: 1.2 Giải thích thành phần Thanh trượt tốc độ : Cho phép điều chỉnh tốc độ việc chạy lại test case BaseURL : Thanh lưu đường dẫn link trang web cần test Nút record : thực hiện ghi lại quá trình tạo test ...
Kiến thức phỏng vấn iOS _ Phần 1 : Structures and Classes
Như mọi người đã biết, mỗi khi đi phỏng vấn chúng ta thường phải chuẩn bị rất nhiều thứ, ôn luyện lại kiến thức, nghĩ ra đủ thứ loại vấn đề mà người phỏng vấn sẽ hỏi mình. Nhất là với người đã có kinh nghiệm làm việc thì lại chuẩn bị nhiều hơn những sinh viên sắp hoặc vừa ra trường chưa có kinh ...
Sử dụng Streams filter trong java 8
Trong bài này tôi sẽ minh họa làm thế nào để sử dụng stream filter(),collect(),findAny() hoặc orElse() trong java 8 Trong java 8 họ đã thêm stream api,nó tương tự như collection.Khiến cho việc code nhanh hơn và perfoment tốt hơn Streams filter() và collect() 1.2. trước java 8,chúng ta filter một ...
iOS Concurrency - Phần 2: Những thuật ngữ và vấn đề hay gặp phải trong Concurrency.
Thuật ngữ (Terminologies) Để có thể hiện thực concurrency , chúng ta cần hiểu một số khái niệm liên quan đến chúng. Dưới đây là một số những thuật ngữ hay gặp phải khi chúng ta lập trình concurrency. Serial, Concurrency and Parallelism Ba thuật ngữ trên mô tả cách mà những tasks chạy ...
Khoa học máy tính trong Ruby: Sử dụng stacks để giải quyết vấn đề
Nếu như bạn không có bằng cấp về Computer Science (CS), bạn có thể sẽ cảm thấy rằng mình đang bỏ lỡ một điều gì đó, hoặc bạn sẽ cảm thấy CS nó là một cái gì đó rất trìu tượng... Hoặc là Ruby đã làm những việc khó cho bạn, và bạn chỉ việc sử dụng chúng... Trong bài viết này tôi sẽ cho các bạn thấy ...