Tìm hiểu về gradle

Trong quá trình phát triển phần mềm, việc tự động hóa quá trình build và quản lý các thư viện rất quan trọng, nhằm tối ưu hóa công đoạn biên dịch, đóng gói; thuận tiện hơn cho việc phát triển phần mềm, cũng như maven và gradle cũng là một trong những công cụ đó. Năm 2000, Apache Ant ra đời như ...

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

Understanding Spring AOP

Chúng ta đã quá quen thuộc với khái niệm OOP "lập trình hướng đối tượng". Vậy AOP là gì? mục đích của AOP là như thế nào? AOP là từ viết tắt của Aspect Oriented Programing " Ngôn ngữ hướng khía cạnh" AOP phát triển dựa trên OOP chứ không phải ra đời nhằm thay thế OOP, đó là phần bổ sung cho OOP ...

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

Custom operators in Swift

Few Swift features cause as much heated debate as the use of custom operators. While some people find them really useful in order to reduce code verbosity, or to implement lightweight syntax extensions, others think that they should be avoided completely. Love ’em or hate ’em — either ...

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

Tìm hiểu về routing trong Rails

Giới thiệu Routing là tính năng điều hướng một URL vào một phương thức nhất định, tính năng routing có trong hầu hết các web framework phổ biến. Trong Ruby on Rails, routing được định nghĩa trong file config/routes.rb, được viết bằng ruby thuần và có thể hoạt động vơi mọi web server. Vì thế, việc ...

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

Xử lí callback hell trong Javascript

Code kiểu chọc mù mắt như thế này gọi là "callback hell"! function foo(cb) { cb(); } function bar(cb) { cb(); } function olala(cb) { cb(); } function do_it(){ foo(function() { bar(function() { olala(function() { console.log("aizz.... ==!"); ...

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

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì? Typescript là một dự án mã nguồn mở được Microsoft phát triển, được xem là một phiên bản nâng cao của Javascript. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript. Vì sao lại được xem là phiên bản nâng cao của Javascript? Vì nó được bổ sung những tùy ...

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

Bài 16 - Một số CSS3 hover effect đẹp (Phần 4)

Chào các bạn! Sau kỳ nghỉ tết Nguyên Đán vui vẻ, tích lũy tràn đầy năng lượng, chúng ta tiếp tục quay trở lại với seri vui mắt này. Hôm nay mình sẽ giới thiệu tới các bạn thêm một số effect mới. 1. Effect 8 Để bắt đầu với effect này, chúng ta cùng đi từ phần HTML nhé. Cũng giống như các effect ...

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

[iOS] [Swift] Tôi không biết phải viết gì cả.

"Tôi không biết phải viết gì cả! Tôi thật sự đã suy nghĩ rất nhiều nhưng vẫn không biết viết cái gì cả". Đó là điều mà hầu hết người ở xung quanh mình khi đến ngày phải viết Viblo. Nhưng, đối với bản thân mình, thì viết hay không nó cũng bình thường, không có gì phải lo lắng cả </p> <div class= Tác giả: Trịnh Tiến Mạnh viết 17:03 ngày 12/08/2018

Phép kết trong đại số quan hệ

Ở phần trước mình đã giới thiệu với các bạn các phép toán tập hợp trong đại số quan hệ. Đó đều là các phép toán cơ bản nhưng cũng là nền tảng để thực hiện các phép toán khác phức tạp hơn. Khi làm việc với một cơ sở dữ liệu, việc kết hợp quan hệ với nhau để đưa ra kết quả đắp ứng một yêu cầu nào đó ...

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

Command Pattern trong Ruby

Mục đích của Command pattern Đầu tiên, việc hình thành ra các design patterns là một "phát minh" lớn đối với các developer, bởi nó cung cấp chuẩn hóa cho việc giải quyết các vấn đề. Và như mọi người cũng có đọc qua thì quyển sách Gang of four là quyển sách đầu tiên đưa ra các khái niệm về design ...

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

Design Pattern - Strategy Pattern

Xin chào các bạn, hẳn là trong số các lập trình viên, bất cứ ai cũng đã ít nhất một lần nghe qua về Design Pattern. "Design Pattern là cái gì vậy?". Các bạn có thể dễ dàng "gu-gờ sợt" và tìm được khá nhiều bài viết về Design Pattern, cả tiếng Anh lẫn tiếng Việt. " Design Pattern là các giải pháp ...

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

Parse file XML sử dụng XPath trong Java

XPath là ngôn ngữ để tìm kiếm thông tin trong một file XML. Bạn có thể nói rằng: XPath là một loại truy vấn tương tự SQL cho file XML. XPath thường đưuọc sử dụng để điều hướng qua các phần tử và các thuộc tính trong một tài liệu XML. Bạn cũng có thể sử dụng XPath để đọc file XML trong java. Sử ...

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

Thực tế ảo - Công cụ trải nghiệm shopping mới

VR (Vitural reality) hứa hẹn là công cụ trải nghiệm mua sắm mới, giúp người mua mường tượng được sản phẩm mình định mua sẽ như thế nào. Chúng ta cùng điểm xem Alibaba đã cũng cấp cho người mua sắm sự trải nghiệm VR như thế nào nhé. Trước hết chúng ta phải sắm được thiết bị VR đã. Khi bước vào ...

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

OpenCV With Python Part 7

Vẽ hình, các ký tự hay viết chử lên bức ảnh đó là những thao tác mà ở bài trước tôi đả hướng dẩn. Trong bài viết này, tôi sẽ giới thiệu một số điều cơ bản về các thao tác hình ảnh đơn giản mà chúng ta có thể thực hiện. Mỗi hình ảnh chia nhỏ thành các khung. Mỗi khung, giống như một hình ảnh nhỏ, ...

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

Data consistency trong ruby on rails

Bạn hãy tưởng tượng điều gì xãy ra nếu một người sở hửu một tài khoản ngân hàng có 500 vnd nhưng đồng thời tiến anh chuyển 500 vnd này cho 500 người. Tất nhiên là chỉ chuyển được lần đầu thôi đúng không. Tuy nhiên nếu điều này xãy ra trên ứng dụng của chính bạn thì sao. Đây là cách mà request thứ ...

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

Test Driven Development & Behavior Driven Development For Big Data in Scala

Overview Software testing plays an important role in the life cycle of software development. It is imperative to identify bugs and errors during software development and increase the quality of the product. Therefore, one must focus on software testing. There are many approaches and Test ...

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

Introduce about Doze Mode

Kể từ khi ra mắt Android 6.0 (API level 21), Anroid đã chính thức giới thiệu 2 tính năng tiết kiệm năng lượng có thể kéo dài thời lượng sử dụng pin của người dùng thông qua việc quản lí hoạt động của ứng dụng khi thiết bị không được kết nối với nguồn sạc. Nói một các ngắn ngọn, Doze sẽ giảm tiêu ...

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

How To Become An Agile Tester

"Agile" thì mọi người vẫn nghe thường ngày, nhưng để hiểu đầy đủ ý nghĩa có nó thì có nhiều trường hợp. Một cách định nghĩa mô hình phát triển agile là thông qua "Tuyên ngôn agile". Biết những giá trị của bảng tuyên ngôn này cho ta hiểu được cách thức của mô hình agile: Chúng ta phải chú ...

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

HTTP Code - Happy Valentine''s Day

Làm lập trình viên và nhất là đối với lập trình web thì chắc hẳn bạn sẽ không thấy lạ với những error codes của HTTP. Trong trường hợp server không xử lý được hay có lỗi trong quá trình xử lý request của client thì việc trả lại đúng error code cũng giúp client dễ hiểu hơn rất nhiều. Thường thì ...

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

AndroidStudio region

Trên XCode có một phần mà mình rất thích đó là #pragma. Nó giúp mình nhóm code lại theo từng phần mà mình mong muốn từ đó giúp cấu trúc của class rõ ràng và dễ dàng tìm kiếm về sau Ở AndroidStudio cũng có một thứ tương tự như vậy đó là region.Tuy không được tốt lắm nhưng cũng hữu ích Các ...

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