Tác giả: N.C.M

Cách chạy các subprocess in Ruby

Cách chạy các subprocess in Ruby

Trong quá trình làm việc với Ruby, khi bạn muốn chạy 1 số câu lệnh hệ thống, đơn giản chỉ cần chọn phương thức phù hợp với bạn: `backticks` %x[different backticks] Kernel.system() Kernel.spawn() IO.popen() Open3.capture2, Open3.capture2e, Open3.capture3 Open3.popen2, Open3.popen2e, Open3.popen3 ... Tuy nhiên, việc có quá nhiều phương thức khiến ta không biết lựa chọn như thế nào cho phù hợp. Sau đây là 1 số pattern phổ biến khi chạy subprocess với Ruby: 1. Chạy subprocess không cần output Khi bạn muốn chạy một cái gì đó, nhưng không cần ... »

Tạo Breadcrumb cho web với gem breadcrumbs_on_rails

Tạo Breadcrumb cho web với gem breadcrumbs_on_rails

Gần đây, khi phải tạo Breadcrumb cho 1 trang web được viết bằng Rails, mình có sử dụng gem breadcrumbs_on_rails, và thấy nó khá hiệu quả, dễ dàng cài đặt, nên muốn giới thiệu cho mọi người. I. Breadcrumb là gì? Breadcrumb là một tập các đường link phân cấp, được sử dụng để trợ giúp điều hướng trong giao diện web, giúp người dùng biết mình đang ở đâu, và dễ dàng di chuyển sang các trang khác. Với những trang web có cấu trúc phức tạp, việc có breadcrumb giúp người dùng dễ dàng tìm kiếm ... »

Dùng mysqldiff xác định khác biệt giữa CSDL trên các server khác nhau

Dùng mysqldiff xác định khác biệt giữa CSDL trên các server khác nhau

Trong quá trình phát triển phần mềm, ta thường cài đặt môi trường dev và môi trường production trên các server khác nhau. Và trong quá trình phát triển, có đôi lúc CSDL (databases) giữa các môi trường có sự khác biệt. Vậy làm thế nào để nhanh chóng kiểm tra sự khác biệt đó và sửa chúng? mysqldiff là một công cụ hỗ trợ ta việc đó. Hãy cùng dùng thử mysqldiff qua ví dụ đơn giản sau. Chuẩn bị Ta dùng vagrant và ansible để tạo 3 server db1: Cài đặt MySQL với CSDL test1 (IP 192.168. ... »

Cricle CI - Workflows và Deploy

Cricle CI - Workflows và Deploy

Ở bài trước [Test tự động với CircleCI và thông báo kết quả lên Slack] , ta đã tìm hiểu về khả năng tự động test và thông báo kết quả lên Slack. Trong bài này, ta sẽ tiếp tục tìm hiểu về Workflows Deploy với CricleCI Workflows Đầu tiên là Workflows. Ở ví dụ bài trước, ta đã gộp rất nhiều công việc trong 1 job build như sau: Checkout code Download and cache dependencies Build Test # Java Maven CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-java/ for more details # version: 2 jobs: build: docker: ... »

Một vài best practices khi làm việc với Apache Hive

Một vài best practices khi làm việc với Apache Hive

Thời gian gần đây, mình phải làm việc với Apache Hive thường xuyên. Việc làm sao để thời gian thực hiện các câu query trên Hive ngắn hơn trở nên rất cần thiết. Dưới đây là tổng hợp một số cách cơ bản để cải thiện performance cho Hive queries. 1. Sử dụng Apache Tez execution engine Thiết lập mặc định là Hive sẽ sử dụng Map-reduce engine để thực thi các câu query. Thay vào đó, ta có thể sử dụng Tez engine - tốc độ xử lý sẽ nhanh hơn rất nhiều khi ta dùng Map-reduce. Nếu Tez ... »

Test tự động với CircleCI và thông báo kết quả lên Slack

Test tự động với CircleCI và thông báo kết quả lên Slack

Trong quá trình phát triển phần mềm, CI/CD có vai trò rất quan trọng trong việc đảm bảo phát triển phần mềm liên tục, mà vẫn giữ được chất lượng sản phẩm tốt. Trong bài viết này, mình sẽ dùng thử CircleCI để Test tự động (Java) Push kết quả lên kênh chat trên Slack Đôi nét về CircleCI CircleCI là 1 công cụ CI được tin dùng bởi hơn 100,000 công ty và developers trên toàn thế giới, trong đó có Facebook, Segment, Kickstarter, Percolate, Spotify, ... Với những ưu điểm như sau: Faster Performance: Có thể tùy ... »

Tạo báo cáo Excel với Apache POI

Tạo báo cáo Excel với Apache POI

Gần đây mình phải cài đặt chức năng tự động tạo báo cáo dạng Microsoft Excel file. Việc tạo báo cáo dưới dạng file Excel này là một chức năng rất hay được yêu cầu khi phát triển phần mềm. Bên cạnh đó, nhiều phần mềm cũng thường xuyên phải nhận input data từ file Excel. 1. Tổng quan 1.1. Apache POI là gì? Apache POI là một API nổi tiếng cho phép ta làm việc với các MS Office files bằng ngôn ngữ Java. Nó là thư viện mã nguồn mở được phát triển bởi Apache Software Foundation. ... »

Wildcard SSL Certificates