Text Recognition for Android using Google Mobile Vision

This is the my first post in Viblo, today I will create a simple Android app that uses Google Mobile Vision API’s for Optical character recognition(OCR). The first, you can visit here for Text Recognition API Overview The important you is Recognized Languages The Text API can recognize ...

Tác giả: Trịnh Tiến Mạnh viết 18:14 ngày 07/09/2018

Sự khác nhau giữa equal?, eql?, ===, và ==

Trong quá trình tìm hiểu về Ruby chắc hẳn chúng ta đã sử dụng hoặc nhiều lần bắt gặp các Equity method. Trong một số trường hợp chúng cho các kết quả giống nhau điều này đặt ra một câu hỏi là tại sao Ruby lại hỗ trợ nhiều method phục vụ cho việc so sánh như vậy? Để hiểu rõ hơn vấn đề này, chúng ta ...

Tác giả: Trịnh Tiến Mạnh viết 18:14 ngày 07/09/2018

Giới thiệu về RVM trong Ruby

Sau một thời gian bước vào thế giới lập trình với ngôn ngữ Ruby, thông thường lập trình viên sẽ phải làm việc với nhiều ứng dụng được phát triển trên các phiên bản khác nhau của Ruby. Do mỗi phiên bản có một những sự khác biệt nhất định và việc bạn sử dụng một phiên bản khác với phiên bản của ứng ...

Tác giả: Trịnh Tiến Mạnh viết 18:14 ngày 07/09/2018

Tạo sự kiện kéo thả và vuốt cho recyclerview

Ở các bài viết trước mình đã hướng dẫn các bạn sử dụng Android Architeture Component, và Annotation. Trong bài viết lần này mình sẽ hướng dẫn các bạn một phần rất thân thuộc hơn với các bạn "Drag & Drop, swipe to dissmiss RecyclerView" Chắc hẳn các bạn đã nhìn thấy hoặc sử dụng rất nhiều thư ...

Tác giả: Vũ Văn Thanh viết 18:13 ngày 07/09/2018

RecyclerView Adapter với Rx và Data binding

Tiếp tục với chủ đề Rx và RecyclerView, bài này mình sẽ kết hợp giữa Rx và RecyclerView Adapter, bên cạnh đó sử dụng Data binding. Vậy ta sẽ phải hoàn thành 3 điều sau: Tạo một RecyclerView Adapter chung cho tất cả Nó phải trả về binding trong Rx stream Nó cũng phải hộ trợ multiple item ...

Tác giả: Trần Trung Dũng viết 18:13 ngày 07/09/2018

Top JavaScript VSCode Extensions for Faster Development

VSCode là một editor rất phổ biến trong giới lập trình viên, đặc biệt là các lập trình viên web. Nó không chỉ nhanh, khả năng mở rộng và custom mạnh mà còn đi kèm với rất nhiều feature thú vị khác. Ngoài ra, nếu ai đã từng dùng Atom hay sublime text thì sẽ rất dễ dàng làm quen với VSCode, bới chúng ...

Tác giả: Trịnh Tiến Mạnh viết 18:13 ngày 07/09/2018

CÁC ỨNG DỤNG REATIVE VỚI MODEL-VIEW-INTENT - PHẦN 1 - MODEL

Khi tôi hình dung ra tôi đã mô hình hóa Model classes của tôi lần nào cũng sai, tồn tại rất nhiều vấn đề và nhức đầu, trước đây tôi đã từng có một vài chủ đề về nền tảng Android. Cuối cùng tôi đã có thể xây dựng ứng dụng Reactive bằng cách sử dụng RxJava và Model-View-Intent (MVI) như tôi chưa ...

Tác giả: Bùi Văn Nam viết 18:13 ngày 07/09/2018

Từ Java đến Kotlin: khi cú pháp không còn là nỗi lo!

Kotlin - Một ngôn ngữ ra đời với việc thừa kế những sự tốt đẹp của Java và giải quyết những vấn đề mà Java gặp phải. Điều đầu tiên cũng như là nội dung chính mà trong bài viết này tôi muốn đề cập đến đó là syntax. Kotlin syntax ở một góc nhìn nào đó rất giống Java, nhưng cũng rất khác. Số dòng code ...

Tác giả: Vũ Văn Thanh viết 18:12 ngày 07/09/2018

Code Clean-up Kotlin

Giống như những ngôn ngữ khác thì việc refactor giúp chúng ta code nhanh , người khác đọc code cũng dễ hiểu hơn. Sử dụng apply cho các câu lệnh khởi tạo đối tượng để cho code sạch hơn, dễ đọc hơn. // Don't val textView = TextView( this ) textView.visibility = View.VISIBLE textView.text ...

Tác giả: Trần Trung Dũng viết 18:12 ngày 07/09/2018

Mỗi lập trình viên đều cần có (ít nhất) một Side Project

Lý do tại sao Bạn cần làm Side Project Xây dựng một sản phẩm sẽ giúp bạn có thêm kinh nghiệm và kỹ năng đáng giá: từ việc lên ý tưởng, lập kế hoạch thực hiện và nhiều nhiều thứ phải làm nữa… Kết quả là bạn sẽ có một sản phẩm thiết thực, ít nhất là với bạn. Học ...

Tác giả: Vũ Văn Thanh viết 18:12 ngày 07/09/2018

Một số mẹo trong rails I18n

Cách gọi I18n en: my: messages: hello: "Hello" t( 'my.messages.hello' ) # Hello t( :hello , scope: 'my.messages' ) # Hello t( :hello , scope: [ :my , :messages ]) # Hello # dùng default nếu muốn trả về một giá trị mặc định khi không có khai báo trong file ...

Tác giả: Tạ Quốc Bảo viết 18:11 ngày 07/09/2018

[Android] Implement StickyHeaderRecyclerView với ItemDecoration của RecyclerView

Tại Google I/O 2014, cùng với sự ra mắt của Android Lollipop, Google đã giới thiệu RecyclerView - a better ListView với nhiều cải tiến cho phép gia tăng hiệu năng, đồng thời giải quyết nhiều vấn đề tồn tại của phiên bản ListView cũ. Khi nói đến RecyclerView, chúng ta có thể nhắc đến một số khái ...

Tác giả: Trần Trung Dũng viết 18:11 ngày 07/09/2018

21 nguồn mở tuyệt vời để viết các ứng dụng iOS bằng Swift

Series những dự án nguồn mở ấn tượng. Swift là 1 ngôn ngữ lập trình mục đích chung, được Apple phát triển cho iOS, OS X, watchOS và tvOS. Hiện tại, đây là ngôn ngữ nguồn mở nổi tiếng nhất trên Github. Mybridge AI đã đánh giá chất lượng nội dung và xếp hạng những bài viết tốt ...

Tác giả: Trịnh Tiến Mạnh viết 18:10 ngày 07/09/2018

13 bước để trờ thành Hacker chuyên nghiệp

Nếu bạn có ý định trở thành một hacker chuyên nghiệp hoặc đơn giản chỉ là tò mò muốn biết các hacker đang học những gì, thì bài viết này dành cho bạn. Trước tiên, bạn cần biết rằng hacking nói riêng và an toàn thông tin nói chung là những công việc cực kì khó và nặng nhọc. Chúng ...

Tác giả: Trịnh Tiến Mạnh viết 18:10 ngày 07/09/2018

Một thanh niên lừa cả Google Maps lẫn Apple Maps để đặt tên đường theo tên của mình

Anh chàng đã khiến cả chính phủ và các ứng dụng bản đồ nhầm tưởng để biến một con đường vô danh mang tên của mình trong hơn 4 năm . Năm 2013, Ge Yulu tình cờ phát hiện một con đường tại Bắc Kinh không có tên. Vì vậy, anh đã tự điền tên mình lên đó và được nhiều ...

Tác giả: Bùi Văn Nam viết 18:10 ngày 07/09/2018

Ứng dụng đa ngôn ngữ

Xin chào các bạn, trong quá trình phát triển sản phẩm, chúng ta nhận được các yêu cầu của khách hàng về việc muốn ứng dụng có thể hỗ trợ nhiều loại ngôn ngữ ví dụ như: tiếng anh, tiếng nhât, tiếng đức... Vậy chúng ta sẽ làm như thế nào? Bài viết này mình sẽ tạo một ứng dụng hỗ trợ đa ngôn ngữ bao ...

Tác giả: Tạ Quốc Bảo viết 18:09 ngày 07/09/2018

Android Yếu Lược

Đón đọc những bài viết đặc sắc ở blog https://giaosucan.blogspot.com Tháng Chạp năm Ất Mùi, tức năm 2015 sau công nguyên, tập đoàn FSOFT trúng thầu dự án mobile lớn nhất trong lịch sử, XXX. Với tổng giá trị cả triệu mỹ kim, Cuder lên tới 400 người, nhưng thời gian thì ngắn kỉ lục, chỉ hơn ...

Tác giả: Hoàng Hải Đăng viết 18:09 ngày 07/09/2018

Gem Faraday

Faraday là một thư viện HTTP client cung cấp interface dùng chung cho nhiều adapter (như Net::HTTP, HTTPClient) và nó cũng bao gồm các khái niệm về middleware rack khi xử lý vòng đời của request/response. Faraday hỗ trợ một số adapter như bên dưới: Net::HTTP (default) Net::HTTP::Persistent ...

Tác giả: Bùi Văn Nam viết 18:08 ngày 07/09/2018

Sugar ORM trong android

Xin chào mọi người, hôm nay tiếp tục là một bài viết về ORM Database trong android. Bài viết này mình sẽ giới thiệu về một ORM đó là Sugar ORM. Vậy Sugar ORM là gì ? Nó là một thư viện database giúp cho các lập trình viên thao tác được thuận tiện và đơn giản hơn. Nhưng tại sao lại dùng đến Sugar, ...

Tác giả: Vũ Văn Thanh viết 18:08 ngày 07/09/2018

Null với Undefined trong JavaScript

Thoạt đầu null và undefined có thể giống nhau, nhưng chúng lại khác xa nhau. Bài viết này sẽ tìm hiểu những điểm khác biệt và giống nhau giữa null và undefined trong JavaScript. Null là gì? Có 2 đặc điểm của null bạn cần hiểu: null là empty hoặc không tồn tại giá trị. null phải được ...

Tác giả: Hoàng Hải Đăng viết 18:08 ngày 07/09/2018