5 MUST-HAVE ANDROID LIBRARIES

Libraries are an integral part of mobile application development. They lessen the burden of unnecessary coding for features that are already written by someone somewhere out there, hence minimizing the development time and making way for rapid deployment. A good developer never reinvents the ...

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

Monad và cách sử dụng để tái cấu trúc code ruby

monads xuất phát từ lập trình hàm (Functional Programming - FP).Thông thường mọi người nhắc đến monads như là một thứ gì đó rất cao siêu và khó hiểu, tuy nhiên thực chất nó lại rất đơn giản. Ở bài viết này tôi sẽ giải thích thế nào là monads và sử dụng nó để tái cấu trúc lại một số code ruby. ...

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

Series Hướng Dẫn Lập Trình Ruby on Rails (Phần 3)

Hôm nay mình sẽ tiếp tục với Series hướng dẫn lập trình Ruby on Rails phần 3, ở phần này mình sẽ hướng dẫn các bạn luồng hoạt động của Rails Framework thông qua một ứng dụng login đơn giản. Rails là một framwork được xây dựng dựa trên mô hình MVC, đầu tiên mình sẽ giới thiệu để các bạn nắm được ...

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

Full Text Search với Hibernate và SpringMVC Phần 2: Search tiếng Nhật

Các bạn chưa xem P1 có thể xem lại tại đây. Ở phần 2 này, mình sẽ chia sẻ về Full text search với tiếng Nhật, khá thiết thực khi làm việc trong dự án outsource Nhật. Những kiến thức mình chia sẻ dưới đây dừng lại ở mức cơ bản vì mình cũng mới tìm hiểu thôi, nhưng mình nghĩ nó cũng sẽ giúp ích ...

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

Văn hoá "xấu hổ" của người Nhật

Văn hóa truyền thống và văn hóa hiện đại Nhật Bản luôn mang trong mình một sức hấp dẫn hết sức đặc biệt. Song, trong quá trình tiếp xúc với người Nhật, không ít người nước ngoài đã hiểu lầm những giá trị rất riêng của nền văn hóa đảo quốc Nhật Bản, do không lý giải được những đặc thù ấy, ngay cả ...

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

Dependency injection với Dagger 2 - API

Bài viết này sẽ đi sâu vào tìm hiểu các nguyên tắc cơ bản của Dagger 2 và toàn bộ API của framework DI này. Trong bài viết trước, chúng ta đã tìm hiểu về framework DI - có nhiệm vụ gắn kết, xâu chuỗi mọi thứ với nhau mà sử dụng ít code nhất có thể. Dagger 2 là một framework DI mà tạo ra rất nhiều ...

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

Tản mạn về Vulkan

Chắc hẳn mọi người đều biết DirectX là thư viện phát triển multimedia và đặc biệt là game trên nền tảng Windows. Với sự ra đời của Windows 10 cùng với DirectX 12. DX 12 mang lại hiệu suất cao hơn (fps) so với những nền tảng trước ở cùng cấu hình. Còn Vulkan được phát triển bởi Khronos Group, cũng ...

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

Intent

Intents are abstract description of an operation that is to be executed. It can be used to start and Activity (Simply start or pass data along), it can also be used to broadcast an intent to a BroadcastReciever component (BroadcastReceiver varies and is provided by the Android system itself. It may ...

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

Thin Controller - Skinny Model by using chain service object (2)

Mình học và sử dụng Ruby khoảng 1 năm rồi, nhưng chỉ gần đây (vài ngày trước, khi lang thang trên mạng tìm chủ đề cho Study Report tháng này, mình vô tình nhìn thấy ở chỗ nào đó mà tác giả sử dụng class Set). Thú thật khi lập trình, mỗi khi cần store 1 list các đối tượng, 99/100 lần mình nghĩ đến ...

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

Implement OpenID Login with Docomo OpenID Provider

Chắc hẳn trong đa số chúng ta sẽ có rất nhiều ngừoi đang và đã từng làm việc với khách hàng Nhật bản. Một ngày đẹp trời khi bạn được giao nhiệm vụ tích hợp tính năng xác thực OpenID với nhà cung cấp Docomo trong hệ thống của mình - cái gần như chỉ hướng tới người dùng tại Nhật đang sử dụng hợp ...

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

GameSparks - Cơ sở dữ liệu cloud miễn phí cho game

Lời mở đầu Xin chào mọi người! Vài ngày trước mình có làm một game nhỏ trên facebook và mình đã rất băn khoăn khi phải tìm cách lưu score của từng người chơi. Facebook - theo mình tìm hiểu được thì hiện tại chỉ cho phép mỗi người chơi nhìn thấy score của chính họ và bạn của họ trên đó, nếu bạn ...

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

Debugging Autolayout in Xcode

Autolayout được apple giới thiệu từ IOS 6 (Xcode 6) và đã trở thành kỹ thuật không thể thiếu đối với các lập trình viên IOS. Việc vận dụng khả năng của autolayout tốt, giúp lập trình viên giải quyết bài toàn đa màn hình, và đơn giản hóa code xử lý trong controller. Trong quá trình sử dụng các lập ...

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

Java 9 Stream API Improvements

Phiên bản tiếp theo mà Oracle sẽ phát hành vào khoảng thời gian cuối tháng 3 năm 2017 tới đây chính là Java SE 9 . Vì vậy trong bài viết này tôi muốn giới thiệu cho các bạn biết về một đặc tính cải tiến khá hay về Java SE 9 Stream API. Đầu tiên ta sẽ nói qua về Java SE 8 Stream API. Sau đó tôi ...

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

Automated UI Testing in iOS app

Các lập trình viên chắc hẳn đã rất quen thuộc với việc viết unit test, tuy nhiên không hẳn ai cũng đã từng viết UI test cho ứng dụng của mình. Bên cạnh unit test, UI test (integration test) cũng vô cùng quan trọng và là một phần không thể thiếu để tạo nên những sản phẩm tốt. UI test cũng mang lại ...

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

Kotlin - Generics

Kotlin, like as Java, also can have a type parameter: class Box < T > ( t : T ) { var value = t } In general we need to provide the type arguments when we make an instance: val box : Box < Int > = Box < Int > ( 1 ) But if the parameters can be ...

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

Từng bước để trở thành senior programer

Kỹ sư phần mềm trải qua nhiều giai đoạn trong sự nghiệp của họ, bắt đầu khi bắt đầu tập tành code với tên gọi Junior coder, trải qua quá trình học tập và làm việc, họ đạt tới mức Mid Level. Sau đó, sau những ngày ôm bàn phím miệt mài, họ trở thành senior. Trong bài viết này, tôi sẽ chia sẻ từng ...

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

Tìm hiểu một vài khái niệm liên quan đến "mã hóa"

Cùng ăn mừng sự kiện gỡ bỏ quy định bắt buộc phải viết report trên Viblo, cùng hướng tới một tương lai xa xăm khi người người làm theo năng lực, hưởng theo nhu cầu và hàng tháng không còn phải lựa chọn giữa 2 ngày lương hay report, chúng ta cùng làm một bài viết nhỏ trên Viblo =)). Xét theo quy mô ...

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

Bàn về ajax. Nên sử dụng ajax khi nào ? Dùng ajax có tốt hay không ?

Cách vài hôm lại viết một bài ngại ghê hihi. :v Hôm nay, chúng ta sẽ bàn luận 1 chút về ajax các điểm tốt, xấu của ajax để chúng ta có thể sử dụng chúng sao cho hợp lý nhé. Trước hết mình sẽ giới thiệu qua 1 chút. Ajax là gì ? Hiểu nôm na thì ajax là một thuật ngữ mô tả việc sử dụng một vài ...

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

Query Expressions in Django (Part I)

Query expression mô tả một giá trị hoặc một tính toán được sử dụng trong update, create, filter, order by, annotation hay aggregate. Có một số built-in expression có thể giúp bạn trong việc viết các câu query. Các expression có thể được kết hợp hoặc trong một số trường hợp là lồng nhau để thực hiện ...

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

Rails Database Best Practices (Phần 1)

Thường thì chúng ta bắt đầu code với mục đích "chạy là ổn", để sau 1 thời gian làm việc, khi nhìn lại thì chúng ta nhận ra 1 đống vấn đề càn giải quyết. Tôi cũng đã trải qua 1 khoảng thời gian cần phải tăng tốc các trang web với database rất tồi tệ. Đó cũng là nguyên nhân để tôi có bài viết này. ...

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