Giới thiệu về ExoPlayer trong Android

Hướng dẫn Play video và audio là một hoạt động phổ biến trên các thiết bị Android. Android framwork cung cấp MediaPlayer như một giải pháp nhanh chóng đơn giản và tiện ích nhất để thức hiện việc trên. Nó cũng cung cấp các media API cấp thấp như MediaCodec, AudioTrack và MediaDrm, cái mà có thể ...

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

7 thói quen xấu mà Graphic Designer cần loại bỏ

Mỗi Designer đều từng có các dự án thiết kế không đạt yêu cầu. Một số designer cố gắng tiết kiệm thời gian và bỏ quên 1 vài điều đáng ra nên áp dụng ngay vào dự án của họ. Nếu thiết kế của bạn chỉ đạt mức “Trung bình” và khách hàng hài lòng với điều đó, thật dễ dàng để bỏ qua những lỗi ...

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

Build form object với gem reform trong Rails

Xin chào các bạn, hôm nay mình sẽ giới thiếu tới mọi người một cách để refactor code tránh bị "fat models" đó là sử dụng Form object . Tuy nhiên chúng ta sẽ sử dụng một gem để hỗ trợ cho việc xây dựng lên form object là Reform 1 Chuẩn bị project Đầu tiên chúng ta chuẩn bị 1 project không có ...

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

Tìm hiểu về sortable table trong JQuery

Xin chào các bạn. Hôm nay mình sẽ giới thiệu với các bạn 1 thư viện jquery cho phép chúng ta có thể kéo thả và sắp xếp các danh sách hay 1 menu một cách trực quan nhất. 'JQuery Sortable' là tất cả những gì mà chúng ta cần để làm được điều đó. Cho phép sắp xếp bất cứ item nào trong bất cứ ...

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

Firebase trong Android Studio

Firebase là một dịch vụ API để lưu trữ và đồng bộ dữ liệu real-time (thời gian thực). Điều này có nghĩa là bạn không cần phải lo lắng về backend server, cơ sở dữ liệu, hay các thành phần real-time (socket.io). Firebase hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình ...

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

Retrofit Android Tutorial to Get JSON from Server

Nếu bạn chưa biết Retrofit là gì thì bạn nên biết rằng Retrofit là một Library của Android đã được phát triển bới square. Nó cũng đơn giản hoá các hoạt động kết nối Network trong Android. Trong bài viết ngắn này tôi sẽ cùng các bạn tìm hiểu về cách sử dụng của library này. Trong bài viết này ...

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

Tìm hiểu về CSS Modules (phần 1)

Nếu bạn muốn xác định một điểm bước ngoặt trong sự phát triển gần đây về tư duy CSS, có thể bạn muốn chọn Christopher Chedeau của "CSS trong JS" nói chuyện từ NationJS trong tháng Mười Một, năm 2014. Đó là một bước ngoặt mà thiết lập một loạt các suy nghĩ khác nhau theo hình xoắn ốc đi theo các ...

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

1 số Gem hỗ trợ xử lý ngôn ngữ tự nhiên trên ruby

Theo xu hướng phát triển hiện tại ngày càng nhiều công việc trước kia phải do con người làm nay đã được thay thế và xử lý bởi máy móc với tốc độ cao cùng sự chính xác ổn định. Đặc biêt nhờ sự phát triển trong mảng xử lý ngôn ngữ tự nhiên mà máy móc đã có thể hiểu và xử lý / hỗ trợ tốt các yêu cầu ...

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

Vấn đề về leak memory, và kinh nghiệm dùng tiện ích Intrusment để kiểm tra và tối ưu app.

Các bạn bên Viblo cho mình hỏi chút, hiện mình gặp vấn đề ở sự kiên nhấn vô tabbar item lần đầu app mất khoảng 4s app mới load view mới, các lần sau app chạy mượt, mình nghĩ là do vấn đề load ảnh từ server về. Mình có dùng tiện ích Instrustment để kiểm tra có kết quả như sau, bạn nào am hiểu và có ...

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

Thủ thuật vận dụng Base64 nâng cao tạo file ảnh như ý muốn

Trong một bài viết trước tôi đã giới thiệu với các bạn về cách để tạo ra một file ảnh có dung lượng theo ý muốn chính xác đến từng byte. Tham khảo tại đây Trong quá trình áp dụng cách này, tôi phát hiện ra cách làm cơ bản này còn có một số hạn chế như sau: Luôn mất công tìm File ảnh gốc có ...

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

Processor Model Design Pattern

Bình thường, khi 1 dự án phát triển đến 1 mức độ nào đó, các model sẽ có xu hướng trở nên phức tạp. Lúc này chúng ta cần xem xét 1 vài "chiến lược" để kiểm soát tình hình và đặt mọi thứ trong tầm kiểm soát. Background Với rails, chúng ta có ActiveRecord, một class trộn lẫn tính logic và bền ...

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

ASP.NET và PHP: Ai tốt hơn?

Trước kia, Microsoft luôn luôn tiên phong trong lĩnh vực trình duyệt Web với Internet Explorer. Mà ASP.NET được phát triển bới Microsoft với mục đích cung cấp cho các lập trình viên một công cụ lập trình để tạo ra các website và ứng dụng trên nền WEB. Vì vậy cũng không khó hiểu tại sao mà ASP.NET ...

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

Tìm hiểu về Framwork Laravel (P1)

I. Laravel là gì? Laravel là một framework rõ ràng và ưu việt cho việc phát triển web PHP. Giải thoát bạn khỏi mã spaghetti, nó giúp bạn tạo ra những ứng dụng tuyệt vời, sử dụng syntax đơn giản. Phát triển là thích thú những trải nghiệm sáng tạo chứ không phải là sự khó chịu. Laravel ...

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

Bắt đầu với Amazon Simple Storage Service

Bắt đầu với Amazon Simple Storage Service Amazon Simple Storage Service (Amazon S3) là vùng lưu trữ trên Internet. Dùng Amazon S3 để lưu trữ và truy xuất bất kỳ dữ liệu tại bất kỳ thời điểm nào, từ bất cứ nơi đâu trên web. Bạn có thể tương tác với Amazon S3 dùng AWS Management Console, giao diện ...

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

Làm thế nào để đặt tên resource một cách hiệu quả trong lập trình Android?

Bạn có nhớ lần cuối mình phải ngụp lặn trong strings.xml để tìm đoạn String bạn cần không? Hay những lần bạn phải mở từng cái drawable ra xem để có cái bạn muốn? Mỗi khi chúng ta khởi động 1 project mới, chúng ta thường rất quan tâm đến việc xác định cấu trúc dự án, setup CI, loại build,... ...

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

Query Optimization in MySQL

Tổng quan về tối ưu hóa Hiệu suất của cơ sở dữ liệu phụ thuộc vào nhiều yếu tố ở cấp cơ sở dữ liệu: bảng, truy vấn, và các thiết lập cấu hình. Các cấu trúc phần mềm dẫn đến các hoạt động CPU và I/O ở cấp phần cứng, mà bạn phải giảm thiểu và thực hiện chúng sao cho càng hiệu quả càng tốt. Ban đầu ...

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

Debug trong laravel

Debug là một thành phần trợ giúp vô cùng đắc lực cho lập trình viên khi phát triển ứng dụng. Sẽ khó có thể nói một framework là tốt nếu nó không có những công cụ debug tốt. Việc một framework được support bởi những công cụ debug tốt sẽ làm giảm rất nhiều thời gian phát hiện bug đồng nghĩa với ...

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

Giới thiệu một số method hay trong Rails

Trong bài viết này mình sẽ giới thiệu với các bạn một số method hay và thú vị hay dùng trong Rails. Sử dụng blank?/present? # String user = nil user . blank ? # => true user = "" user . blank ? # => true user = " " user . blank ? # => ...

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

Sử dụng gem savon Phần I

I. Giới thiệu 1. Savon là dùng để sử dụng để giao tiếp với các hệ thống SOAP. SOAP(Simple Object Access Protocol) là một giao thức do W3C định nghĩa [1]. SOAP áp dụng XML để xác định dữ liệu dạng văn bản (plain text) qua HTTP và SMTP. Web Service dùng SOAP trong quá trình truyền tải dữ liệu. SOAP ...

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

Rails Model Caching with Redis

Model level caching hay bị các developers bỏ qua, ngay cả các developers dày dặn kinh nghiệm. Phần lớn là do quan niệm sai lầm. Cache cấp độ thấp rất linh hoạt và bạn có thể làm việc với nó ở bất cứ ứng dụng nào. Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách dùng cache cho models của Rails bằng ...

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