Tìm hiểu Android Architecture Components Phần 1 - ViewModel

Trong loạt bài này, tôi sẽ cố gắng làm sáng tỏ Android Architecture Components (AAC) để tận dụng chúng tốt hơn. Hãy cùng bắt đầu với ViewModel. Tại sao chúng ta cần hiểu cách AAC làm việc ? Tôi luôn cân nhắc việc tách thành phần xử lí logic của ứng dụng ra khỏi nền tảng mà nó chạy, liên quan ...

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

Check if User password "pwned?" with Pwned Passwords API

Introduction Phương thức bảo mật 2 lớp (2-factors authentication - 2FA) hiện nay được sử dụng ngày một phổ biến hơn trong lĩnh vực công nghệ thông tin và có thể dễ dàng thấy ở bất cứ đâu, từ việc đăng kí hoặc đăng nhập quản lí account, xác thực, giao dịch , thanh toán trực tuyến, ... vì tính bảo ...

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

Cấu trúc ứng dụng React js

Để quản lý state của app React, có nhiều cách để cấu trúc một ứng dụng React js Cấu trúc dựa theo nhiệm vụ của file hay dựa theo tính năng hoặc loại dữ liệu Trong ví dụ và các bài hướng dẫn của các project Redux/React , kể cả phiên bản chính thức trên trang chủ của redux, thì cấu trúc file phổ ...

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

Android Testing Part 1:Espresso Basics

Intro Là một dev thì hẳn mọi người đã biết thì rõ ràng thử nghiệm là một phần quan trọng của trong quá trình phát triển phần mềm. Con người rất dễ có sai lầm và vì bản chất tự nhiên này thì phần mềm thường sẽ có bug khi được phát triển. Vì vậy việc kiểm thử sẽ giúp : Giúp phát hiện các khiếm ...

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

Cách viết specs document cơ bản và 7 technique để viết document rõ ràng, dễ hiểu

Nguồn bài viết : サンプル例に見る機能仕様書の基本的な書き方&読みやすくする7つのテクニック Trong bài viết trước tác giả đã giải thích tầm quan trọng của document đối với communication trong dự án phát triển hệ thống IT, trong đó đã giới thiệu về 1 trong 3 loại document quan trọng là “Functional Specifications của ...

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

Giảm thiểu chế độ DDoS sử dụng Rack::Attack

Có bao giờ bạn gặp phải những cuộc tấn công DDoS từ những dự án bạn đã làm? Dự án hiện tại mình làm đã từng gặp phải vấn đề này, có những request liên tục đến trang login và nó có thể làm cho hệ thống bị die nếu chịu tải không đủ mạnh. Khi đó chúng ta sẽ nghĩ làm sao để có thể block được 1 địa chỉ ...

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

ZXing Barcode Scanner

Introduction ZXing library allows you to implement a barcode scanner in less than a few minutes. Follow this tutorial to get you started. Create a project and called it whatever. I am calling mine BarcodeScannerApplication Click next selecting an empty Activity then finish. Add the ...

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

8 phút dành cho vài skills Javascripts

Bắt đầu luôn nào (quaylen) 1.Spread operator Sử dụng dấu 3 chấm ... để triển khai các phần tử bên trong một hàm cũng như một đối tượng. Công thức này rất đơn giản, trực quan Ví dụ: Nếu như bạn muốn show hết danh sách món ăn ưa thích mà không được tạo vòng lặp, đây chính là giải pháp ...

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

Cách làm Bottom Navigation theo chuẩn Material Design

BottomNavigation là một thanh điều hướng gồm nhiều tác vụ chính của ứng dụng mà người dùng sẽ thường xuyên sử dụng nhất, nó được nằm ở màn hình chính (khi app được launch). Hình ảnh tham khảo material.io Trước đây với yêu cầu phải có thanh điều hướng này thông thường chúng ta sẽ dùng custom ...

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

Flutter : Building Basic Layouts

Bài viết này mình nghiên cứu và dịch từ trang Flutter.io nên một số hình ảnh và từ ngữ chuyên ngành mình xin phép được sử dụng như trang nguồn nhé. Mục tiêu là mình hiểu như thế nào sẽ truyền tải lại như vậy thôi </p> <div class= Tác giả: Trịnh Tiến Mạnh viết 17:53 ngày 12/08/2018

[Android Boilerplate]Cùng tạo ứng dụng đầu tiên sử dụng MVVM, Dagger2, RxJava, LiveData và Room (P2 : Setup Retrofit, Repository Pattern, ViewModel)

P1 : Setup Dagger 2 + Room 1. Setup Retrofit Ở Phần trước : Chúng ta đã cấu hình và implement injection dependency framework và cơ sở dữ liệu local rồi. Ở bước này chúng ta sẽ tạo kết nối internet đến API của CoinmarketCap và lấy các dữ liệu mà chúng ta cần. Để lấy các dữ liệu từ API thì ...

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

placeholder in UITextView iOS swift

Trong hướng dẫn này mình sẽ hướng dẫn các bạn tao placeholder trong UITextView và custom UITextView thay vì sử dụng delegate mình sử dụng closure. mở rộng tính năng cho UITextView, ví dụ như giới hạn ký tự nhập... chú ý: khi sử dụng extension sau thì sẽ không sử dụng lại delegate ...

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

Cài đặt và sử dụng Kibana trong ubuntu.

Kibana là một công cụ hữu ích cung cấp cho ta một giao diện giúp cho ta có thể thử nghiệm và kiểm tra hoạt động của elastcisearch một cách cụ thể mà không cần tới console.Bở vì việc dùng console đôi khi bất tiện và tốn thời gian nên Kibana là một lựa chọn tốt cho bạn khi sử dụng elasticsearch. ...

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

Những điều một lập trình viên không bao giờ nên nói khi phỏng vấn với nhà tuyển dụng

Bài viết được dịch từ https://hackernoon.com/things-you-should-never-say-when-interviewing-for-a-developer-role-138609321d7b Ngày nay, việc trở thành một developer bao gồm cả những điều tốt và xấu. Có rất nhiều công việc cho bạn khi là developer nhưng cũng có rất nhiều các cuộc thi. Nếu một ...

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

Upload image in angular 2 and rails

Việc gửi dữ liệu JSON được tạo ra từ các chuỗi string tới một API hầu như thật dễ dàng để chúng ta dễ hiểu. Nhưng đối với việc gửi các tệp bao gồm nhiều dòng dữ liệu nhị phân với các định dạng khác nhau thì sao? Chúng sẽ có một cách tiếp cận khác để gửi tệp lên API. Tôi sẽ dùng phuơng pháp mã hóa ...

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

Vue Firebase CRUD Example

I. Chuẩn bị Cài đặt Vue sử dụng Vue CLI bằng một trong 2 câu lệnh sau: npm install -g @vue/cli or yarn global add @vue/cli Nếu gặp lỗi bạn hay thử với quyền root. Tạo project với scaffold dựng sẵn: vue create vuefirebaseexample Di chuyển vào thư mục gốc và mở source code bắng ...

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

Phần 4: Basic Handler

Proejct 7: Getting current date and time Khởi tạo project và tạo giao diện cho app như sau Kéo Outlet cho Label @IBOutlet weak var dateTimeLbl: UILabel! Kéo thả Action cho button Refesh @IBAction func refreshAction(_ sender: Any) { } tiếp theo viết function getCurrentDateTime ...

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

Facebook Account Kit

Facebook Account Kit giúp mọi người đăng ký và đăng nhập ứng dụng một cách nhanh chóng và dễ dàng bằng số điện thoại hoặc địa chỉ email của họ làm thông tin đăng nhập không cần mật khẩu. Account Kit được cơ sở hạ tầng gửi SMS và email của Facebook hỗ trợ mang lại hiệu quả tin cậy có thể mở rộng với ...

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

Machine Learning cho người mới bắt đầu (Part 2)

Xin chào các bạn, trong phần 1 của series Machine Learning cho người mới bắt đầu , mình đã giới thiệu tới các bạn những khái niệm cơ bản nhất để có thể bắt đầu với Machine Learning . Trong phần 2 này, mình sẽ đi sâu vào 2 mô hình Machine Learning rất phổ biến trong bài toán học giám sát ...

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

React Native Internals

React Native là một framework giúp cho lập trình viên có thể làm app native bằng cách sử dụng Javascript. Chờ chút, ko phải chúng ta đã có Cordova được một thời gian rồi sao? Tại sao lại phải dùng RN nhỉ? Điểm khác biệt chủ yếu giữa một ứng dụng RN và Cordova là việc ứng dụng Cordova chạy trong ...

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