Auto deploy rails web apps với Capistrano

I. Giới thiệu: Capistrano là một công cụ được viết bằng ngôn ngữ ruby giúp chúng ta tự động deploy các ứng dụng rails web lên server thông qua giao thức ssh và thực hiện các công việc đã được định sẵn. Ở bài hướng dẫn dưới đây mình sẽ cần chuẩn bị: 1 server ubuntu đã cài đặt sẵn nginx, git, ...

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

Ai chịu trách nhiệm về Quality?

Ai chịu trách nhiệm về Quality? Tôi mở đầu loạt ký sự của tôi bằng câu kết thúc trong một slide training của công ty về Quality Management: “Ai chịu trách nhiệm về Quality?” (Who is responsible for Quality?) Hình minh họa cho câu hỏi cũng khá funny, đội ngũ engineering thì trỏ về ...

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

Zero-downtime deployment with Laravel Envoy

Ngày nay, khi làm việc với các ứng dụng web, chúng ta hẳn không xa lạ gì với từ khoá deploy. Bất kỳ những thay đổi nào về hệ thống dù là tính năng mới hay sửa lỗi đều được deploy lên Staging để QA test, confirm rồi deploy Production trong những trường hợp release hệ thống. Nhiều công cụ đã được ...

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

Deep link

Công nghệ deep link (liên kết sâu) đã thu hút rất nhiều sự chú ý trong những năm gần đây khi giúp các marketer tăng đáng kể độ tương tác của người dùng các ứng dụng mà họ quảng bá. Cụ thể deep link là gì và đang được sử dụng ra sao? Deep linking là gì? Một deep link là 1 URL mở, hướng user đến ...

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

Dependency Injection trong Ruby - Không đáng sợ như bạn nghĩ

Đây là một bài viết khá lâu rồi (từ năm 2009) của Sandi Metz, người viết cuốn sách Practical Object-Oriented Design in Ruby. Tuy nhiên, những tư tưởng trong bài viết này rất hay và tôi muốn chia sẻ lại nó cho các bạn. (Nếu bạn đọc được cuốn sách trên thì lại càng tuyệt vời hơn nữa.) Nếu các bạn ...

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

CLEAN CODE - A HANDBOOK OF AGILE SOFTWARE CRAFTSMANSHIP

Mở đầu Bạn là 1 developer, bạn muốn trở thành một developer tốt hơn? Hơn thế nữa, với Clean Code sẽ có thể cho bạn biết sự khác biệt giữa các mã tốt và mã xấu. Bạn sẽ biết làm thế nào để viết mã tốt và làm thế nào để chuyển đổi mã xấu thành mã tốt. Mục tiêu của bài viết tóm tắt một số ...

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

Tìm hiểu về Node.js vàMocha

Mocha là một thư việc test nhanh, đơn giản và mở rộng của Node.js. Bài viết dưới đây xin đề cập tới cách cài đặt, cấu hình và sử dụng của nó. Mocha là một thư viện test dành cho Node.js, khá đơn giản, có tính mở rộng và test khá nhanh, được sử dụng trong Unit test hoặc Integration test. Và ...

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

Refactor ruby on rails

Refactoring là hành động thay đổi mã của ứng dụng nhưng không làm thay đổi hành vi thay vì nâng cao chất lượng của ứng dụng. Việc này được dùng để cải thiện khả năng đọc, giảm độ phức tạp, tăng khả năng bảo trì và mở rộng trong tương lai của hệ thống. Nói nôm na là viết code cho dễ hiểu, chạy ...

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

iOS Animation - Phần 1: View Animation

Để làm cho 1 ứng dụng trở nên chuyên nghiệp, thân thiện và dễ dùng hơn với người dùng, thì việc lập trình viên biết cách tạo ra và sử dụng các animation hợp lý là rất quan trọng. iOS có hỗ trợ lập trình viên một số phương thức tạo animation như: View Animation, Auto Layout, Layer Animation, 3D ...

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

Top machine Learning algorithms

Bài viết này sẽ như là 1 tour đơn giản giới thiệu 1 vòng về cuộc hành trình trong khoa học về dữ liệu và machine learning. Xuyên qua bài viêt này, bạn sẽ có thể làm việc với các vấn đề trong các thuật toán của machine learning với code Python. Bài viết có lược bỏ các phần có liên quan đến toán ...

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

Mô hình hồi quy ứng dụng trong bài toán dự đoán giá bất động sản - Machine Learning (phần 3)

Xin chào tất cả các bạn, chúng ta cùng khởi động một tuần mới với bài viết tiếp theo về mô hình hồi quy áp dụng trong bài toán dự đoán giá của bất động sản nhé. Trong bài viết này mình sẽ trình bày một số kĩ thuật để cải tiến mô hình hồi quy của các bạn cho hiệu năng tốt hơn các phương pháp đã áp ...

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

Giới thiệu về Visual Studio Code

Bạn viết code bằng gì ? Sublime Text, PhpStorm, Zend Studio, NetBeans... Bạn có muốn thay đổi không ? Hãy thử Visual Studio Code. Visual Studio Code là sản phẩm của Microsoft, ra mắt vào tháng 4 năm 2015 ở hội nghị Build. Đặc điểm nổi bật là đơn giản, gọn nhẹ, dễ dàng cài đặt. Visual Studio Code ...

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

Cách sử dụng đúng $scope trong AngularJS

1, Sử dụng $$ootScope rootScope là một biến global và được dùng nhiều nơi. Tuy nhiên việc sử dụng rootScope sẽ làm cho code của chúng ta khó khi bảo trì. Việc sử dụng các biên ở trong các file javaScript, directives, controllers và templates cũng gây khó khăn trong việc unit test hay tái cấu ...

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

CSS Preprocessors Compared: Sass vs. Stylus

Why Pre-Processing CSS? Với CSS thuần tuý, việc xây dựng chức năng, tái sử dụng một định nghĩa hoặc thừa kế là khó đạt được. Đối với các dự án lớn hơn, hoặc các hệ thống phức tạp, bảo dưỡng là một vấn đề rất lớn. Mặt khác, ngày nay có nhiều trình duyệt khác nhau ra đời và mỗi trình duyệt đôi khi ...

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

Làm việc với Docker Data Volumes

Giới thiệu Trong bài viết này chúng ta sẽ nói về các khái niệm của Docker data volumes. Chúng ta cũng sẽ có một số ví dụ về cách sử dụng Docker data volumes qua các dòng lệnh Docker. Và khi kết thúc bài viết này, bạn có thể thoải mái sử dụng Docker data volumes. Điều kiện tiên quyết Để ...

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

Testing in Laravel

I. Tổng quan Testing trong Larvel được hỗ trợ bởi PhpUnit test bao gồm một thư mục tests và một file cấu hình phpunit.xml. Thư mục tests là thư mục mặc định dùng để viết code cho việc test, bạn có thể đổi sang thư mục khác nếu muốn bằng cách cấu hình trong file phpunit.xml. Một ...

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

Cấu hình BasicAuthentication + SSL trong Webserver Apache

Webserver Apache đã quá quen thuộc với các lập trình viên web rồi nên mình sẽ không giới thiệu về nó nữa mà sẽ đi thẳng vào phần cài đặt luôn. Bạn nào chưa biết thì có thể google với từ khóa Webserver Apache để tìm hiểu thêm nhé </p> <div class= Tác giả: Hoàng Hải Đăng viết 14:18 ngày 12/08/2018

Xây dựng Two factor authentication (2FA) cùng với Devise

I. Mở đầu Xin chào các bác (lay2) Ngày nay, dưới sự phát triển như vũ bão của những dịch vụ trên Internet. Những "tài sản" của chúng ta cũng dần dần được số hóa. Khi đó, việc chỉ sử dụng Username và Password theo truyền thống sẽ không còn đủ tính bảo mật nữa. Hãy thử nghĩ tới trường hợp ...

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

Chia sẻ Files với NFC trong Android

NFC là gì? NFC(Near-Field Communications) là công nghệ kết nối không dây phạm vi tầm ngắn trong khoảng cách 4 cm, sử dụng cảm ứng từ trường để thực hiện kết nối giữa các thiết bị khi có sự tiếp xúc trực tiếp hay để gần nhau. NFC được phát triển dựa trên nguyên lý nhận dạng bằng tín hiệu tần số ...

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

Tìm hiểu về Ecotourism

Bạn thường xuyên đi du lịch đến nhiều nơi, từ thành thị sầm uất đến núi rừng hoang dã? Bạn tham quan rất nhiều địa điểm mới lạ, thú vị? Vậy bạn có biết ecotourism là gì không và đã bao giờ bạn thật sự thực hiện một chuyến đi như thế? Hãy cùng tìm hiểu xem ecotourism là gì và thế nào mới là du ...

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