Tìm hiểu react - part 2

Chúng ta đã tìm hiểu về một vài khái niệm cơ bản trong React ở bài trước, ở bài này chúng ta sẽ cùng tìm hiểu về cách dữ liệu di chuyển trong React. Inverse data flow Chúng ta đã nói về việc làm thế nào luồng dữ liệu chỉ có một chiều trong React, từ cha đến con. Thật ra điều này không hoàn toàn ...

Tác giả: Tạ Quốc Bảo viết 15:13 ngày 12/08/2018

Custom UIView Using Coregraphis, UIKit

UIButton, UILabel ... là những UIControl đươc cung cấp bởi IOS, và bằng cách sử dụng các thuộc tính đc cung cấp sẵn, những UIControll này có thể đáp ứng được hầu như các nhu cầu cần thiết của một ứng dụng có thể cần. Tuy nhiên, vì là những UIControll được thiết kế mặc định nên nó sẽ có nhũng hạn ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

Tìm hiểu về jsonrpclib

1. Tổng quan Thư viện jsonrpclib cho phép người sử dụng dễ dàng tạo ra một server đơn giản cũng như gọi request đến một server jsonrpclib hỗ trợ cả Json-rpc 1.0 và 2.0 bao gồm: Batch submission (thông qua MultiCall) Keyword arguments Notifications (cả trong 1 batch lẫn 'normal') Class ...

Tác giả: Trịnh Tiến Mạnh viết 15:13 ngày 12/08/2018

Tìm hiểu căn bản về Kotlin

Giới thiệu Bây giờ, khi Apple đã thay thế Objective-C bằng Swift cho iOS, việc thiếu một ngôn ngữ hiện đại hơn để phát triển ứng dụng Android đã trở nên rõ ràng hơn. Vì vậy, Kotlin - một ngôn ngữ dựa trên JVM đã được JetBrains cho ra đời. Bài viết sau đây sẽ tìm hiểu những điều căn bản nhất về ...

Tác giả: Tạ Quốc Bảo viết 15:13 ngày 12/08/2018

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ó ...

Tác giả: Hoàng Hải Đăng viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:13 ngày 12/08/2018

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ác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

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à ...

Tác giả: Hoàng Hải Đăng viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

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à ...

Tác giả: Tạ Quốc Bảo viết 15:13 ngày 12/08/2018

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. ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Tạ Quốc Bảo viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Trịnh Tiến Mạnh viết 15:13 ngày 12/08/2018

[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. ...

Tác giả: Trịnh Tiến Mạnh viết 15:13 ngày 12/08/2018

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 ở ...

Tác giả: Trịnh Tiến Mạnh viết 15:13 ngày 12/08/2018

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 - = ...

Tác giả: Hoàng Hải Đăng viết 15:13 ngày 12/08/2018

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 = ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018

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 ...

Tác giả: Bùi Văn Nam viết 15:13 ngày 12/08/2018