Test automation (Part 2) - Sử dụng travis service

Ở bài trước mình đã giới thiệu tới mọi người tổng quan và khái niệm về auto test CI/CD. Để hiện thực cho khái niệm CI ở bài trước thì mình xin giới thiệu tiếp ở bài này một dịch vụ một server thực hiện cho việc tự động tạo môi trường và test. Hiện nay ở các công ty thường cài riêng một server và ...

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

Some ways resolve memory leaks in Fragment Android

Fragment là một phần của một Activity để cho phép thiết kế activity có tính mô-đun. Chính về thế chúng ta thường xuyên dùng tới Fragment, nhưng quá trình sử dụng này gặp nhiều vấn đề về Memory leaks. Chắc hẳn sẽ có bạn đặt ra câu hỏi Memory Leak là gì ? Nó diễn ra khi nào ? ...bla...bla.. 1. ...

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

HTTP Tests trong Laravel

1. Giới thiệu Laravel cung cấp 1 fluent API để thực hiện các HTTP requests cùng với kiểm tra đầu ra của các requests cho ứng dụng của bạn. Chúng ta thử test trường hợp access vào route '/': public function testBasicTest() { // check access vào route / có trả về HTTP status code là 200 hay ...

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

[Unity3D] 10 Best Tips and tricks luôn luôn hữu ích cho anh em (Phần 2)

Hi all, sau Phần 1 giới thiệu về 10 tips and tricks vô cùng hưu ích với unity3D thì mình xin phép quay lại với phần 2, tiếp tục là những tips và tricks không thể thiếu khi sử dụng unity3D. 1. Thay đổi màu editor khi run play mode. Với việc thay đổi màu này unity cho phép chúng ta không dễ dàng ...

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

Comments

Brian W. Kernighan and P. J. Plaugher đã nói: Don't comment bad code -- rewrite it. Comments là cần thiết. Tuy nhiên, không phải lúc nào ta cũng cần tới nó. Khi gặp những pharse/line code mess, nhiều lập trình viên thay bằng việc refactoring code hoặc rewrite code cho dễ hiểu thì lại thêm ...

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

Preview file CSV bằng reactjs

Tệp CSV là một tệp giá trị được phân cách bằng dấu phẩy. Khi văn bản và số được lưu trong một tệp CSV, thật dễ dàng để di chuyển chúng từ một chương trình khác. Ví dụ, bạn có thể xuất liên hệ của bạn từ Google ở định dạng CSV, và sau đó nhập chúng vào Outlook. Mỗi một trường trong tập tin CSV tương ...

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

Rswag - Tạo API documents

I. Giới thiệu Rswag là công cụ cho Rails API. Tạo các tài liệu API đẹp, bao gồm UI để kiểm tra các hoạt động trực tiếp từ các kiểm tra tích hợp rspec của bạn. Rswag là mở rộng của rspec-rails dựa vào Swagger-based DSL để mô tả và thử nghiệm các API Bạn mô tả các hoạt động API của mình bằng ...

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

Lưu trữ dữ liệu cục bộ với HTML5 Local Storage

HTML Local Storage là gì? Với local storage, các ứng dụng web có thể lưu trữ dữ liệu cục bộ trong trình duyệt của người dùng. Local Storage có công dụng tương tự như cookie, nó sẽ lưu trữ thông tin trên trình duyệt của người dùng. Local Storage cho phép bạn lưu trữ thông tin tương đối lớn lên đến ...

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

Sử dụng OrmLite trong Kotlin

Kotlin hiện đã là một ngôn ngữ được dùng thường xuyên trong lập trình Android, đã có rất nhiều những bài post về sự hữu dụng của Kotlin, ở đây mình muốn hướng dẫn thêm về cách sử dụng OrmLite trong những ứng dụng Android viết bằng Kotlin. Bài toán đặt ra ở đây là mình muốn tạo và lưu 2 bảng Movie ...

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

[Android] App signing khi xuất bản ứng dụng lên Google Play Store

Tại Google I/O 2017, Google vừa mới giới thiệu dịch vụ được gọi là Google Play App Signing (Đăng ký ứng dụng Google Play), cho phép các nhà phát triển lưu trữ Signing keys (Khóa ứng dụng) trên các máy chủ của Google. Các khóa được lưu trữ trên cùng một cơ sở hạ tầng bảo mật mà Google sử dụng để lưu ...

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

Viết ứng dụng iOS chat sử dụng Socket.IO

Bài viết mô tả các bước để viết một ứng dụng chat thời gian thực sử dụng Socket.IO. Ứng dụng sẽ duy trì một kênh truyền hai chiều giữa server, cho phép client đẩy dữ liệu lên server, sau đó dữ liệu này sẽ được chuyển từ server sang một client đang kết nối khác. WebSocket là giao thức thích hợp để ...

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

Continue with Game development with Ruby

In this post we will continue with game development with Ruby. This time we will focus on UI design with Gosu, a library for game development. Let's go step by step and implement our sokoban game. Game.rb We create a file game.rb with the following content: require 'gosu' # add gosu ...

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

Giới thiệu về Laravel Horizon

Laravel Horizon là một hệ thống quản lý, cấu hình Redis queues hoàn toàn mới, vô cùng đẹp mắt, open source và miễn phí cho toàn bộ cộng đồng Laravel. Laravel Horizon sẽ được tung ra bản beta vào ngày mai (27/07/2017). Horizon dashboard chỉ chạy trên một page duy nhất rất đẹp sử dụng Vue.js, ...

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

CI, CD và ... DevOps ???

I. CI là ...? CI là Continuous Integration. Nó là phương pháp phát triển phần mềm yêu cầu các thành viên của team tích hợp công việc của họ thường xuyên, mỗi ngày ít nhất một lần. Mỗi tích hợp được "build" tự động (bao gồm cả test) nhằm phát hiện lỗi nhanh nhất có thể. Cả team nhận thấy rằng ...

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

Generated (Virtual) columns in MySQL InnoDB

Generated columns là một tính năng mới của MySQL InnoDB phiên bản 5.7. Có hai loại Generated columns là Virtual (default) và Stored. Virtual có nghĩa là giá trị của column được tính toán khi thực hiện câu truy vấn. Storeed thì ngược lại, giá trị của column được tính toán khi record được ghi vào ...

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

Giới thiệu sơ lược về Ajax

Nguồn tham khảo: http://adaptivepath.org/ideas/ajax-new-approach-web-applications/ Phát triển ứng dụng web là một công việc thú vị. Sản phẩm cuối cùng mà người dùng được trải nghiệm thường là những thứ bóng bẩy, hào nhoáng, hấp dẫn. Mặc dù vậy, trước đây những lập trình viên web thường có một ...

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

Triển khai ứng dụng RAILS trên EC2 INSTANCE với CAPISTRANO sử dụng NGINX và PUMA

Đây là hướng dẫn / hướng dẫn về cách thiết lập và triển khai ứng dụng Rails của bạn tới trường hợp AWS Ec2 (Ubuntu Server). Trong hướng dẫn này, tôi đã làm việc từ một Ubuntu 16.10 và gần đây tôi đã quyết định thử nó trên Linux Mint (cũng là Debian dựa như Ubuntu) và nó đã làm việc! Trong hướng dẫn ...

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

Một số cái cần lưu ý khi lập trình ruby on rails

Dưới đây là một số cái cần lưu ý khi bạn lập trinh ruby on rails. Có những cái lập trình viên thương sử dụng nhưng không nghĩ tới nguy cơ mà nó tạo ra. Giới hạn thuộc tính Giới hạn các thuộc tính cần gán cho đối tượng, dùng permit() để đảm bảo số lượng thuộc tính luôn luôn nằm trong một số cái ...

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

Tìm hiểu tính năng record và playback của Selenium IDE

SELENIUM(SE) là một phần mềm mã nguồn mở, được phát triển bởi Jason Huggins vào năm 2004 và được phát triển bởi Thoughtwork. Miễn phí Dễ sử dụng, giao diện đơn giản, thân thiện. Tùy chỉnh tốc độ chạy test. Hỗ trợ export ra nhiều ngôn ngữ phổ biến như Ruby, Java, Python… Bước 1: ...

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

How to send an Email using Angular, Sails.js, and Mailgun

Gần đây mình có dành thời gian để tìm kiếm hướng dẫn về cách gửi email từ dịch vụ Mailgun bằng cách sử dụng Angular2 làm giao diện người dùng và Sails.js làm back-end.Mình đã tìm thấy hướng dẫn tuyệt vời này sử dụng gói e-mail-bui-mail, nhưng vì mình đã sử dụng Angular2 nên mình cần thêm vài ...

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