Friday, 22 April 2016

Ubuntu 16.04 Xenial Xerus ra lò

Vẫn như thường lệ, mỗi lần Ubuntu ra bản mới, FAMILUG lại chào mừng sự kiện bằng một bài viết mới.
Hôm qua (21 tháng 4 năm 2016), Ubuntu bản 16.04 LTS đã ra chuồng.

LTS là viết tắt của Long-term support - bản hỗ trợ lâu dài (5 năm từ ngày ra), 2 bản LTS gần nhất có thể kể tới 12.04, 14.04. Cứ mỗi 2 năm, Ubuntu lại cho ra bản LTS1 lần - thường được dùng để chạy server production (cần ổn định, chắc chắn).

16.04 có code name là Xenial Xerus, khi gọi ngắn gọi người ta chỉ gọi là xenial. Xerus là tên
khoa học của loài sóc đất châu Phi (African ground squirrels)



Các tính năng nổi bật

snap

Thursday, 14 April 2016

[python] test python đơn giản như giật một sợi tox

Bài viết tiếp theo của "Người ta test/CI thế nào?"
...

Là một sysadmin, anh Chuối rất tự hào mình có khả năng viết Python giỏi như viết bash.
Hễ khi cần viết script ngắn ngắn, anh lại bật ngay vim lên và viết từng dòng thơ bằng ngôn ngữ bash, sau đó dành nửa ngày còn lại để debug tại sao nó lại không chạy. Câu chuyện cũng vậy mỗi lần anh Chuối viết script để tự động quá trình test, build phần mềm, cụ thể ở đây là một Python module.

Các bước phải làm:
  • đầu tiên là tạo virtualenv
  • rồi source virtualenv
  • chạy pip install -r requirements.txt
  • chạy flake8 kiểm tra lỗi pep-0008
  • chạy pylint kiểm tra lỗi lint 
  • install module (python setup.py install) rồi chạy test
  • chạy test bằng py.test tests/ hoặc một cách nào đó khác
  • public package nếu test thành công (python setup.py sdist)
  • dọn dẹp, rửa ráy sau khi xong xuôi.
Tuỳ thuộc vào tâm trạng của anh Chuối, công việc này có thể suôn sẻ hoặc không, tuỳ giời nữa.
Vậy một ngày anh Chuối sang tây, thấy mấy anh Chuối tây vì làm việc này nhiều quá, nên sinh chán nản, và đẻ ra một cái tool có tên là "tox".

Wednesday, 13 April 2016

[Python] Người ta test/CI thế nào?

Nhà người ta sau khi code xong, thì phải chạy test, kiểm tra chất lượng code và làm cho toàn bộ quá trình này trở nên tự động để chạy bằng 1 cái máy khác (CI server), chờ kết quả trả về.

Nhà mình cũng viết code, nhưng những phần còn lại thì hay bỏ qua. Nay kéo sang xem nhà người ta làm thế nào, copy mang về rồi nhận là của mình, vậy là vừa oai, vừa xịn, a hi hi.

1. Test
Viết code thì phải có test, nhà người ta làm thế.
Các file test đặt trong thư mục ``tests``. Nhà người ta dùng py.test để chạy test, nghe đồn nó là hàng xịn nhất trên đời rồi.

https://github.com/pallets/flask/blob/1aa8a54b175ef10a72d3c3d3f4ed112ddc6e2ea6/Makefile#L5

2. Gõ lệnh test
Gõ lệnh rất là mệt, càng dài càng mệt. Thế nên hiểu tại sao bên tây nó quá mệt mỏi nên sinh ra trò làm ngắn lại, mà thế giới gọi là dùng lệnh ``make``. Viết 1 cái Makefile, định nghĩa các câu lệnh ngắn để nó chạy các câu lệnh dài, thế là ta có 1 tập câu lệnh vừa ngắn, vừa yêu.

all: clean-pyc test

test:
 py.test tests examples

tox-test:
 tox

audit:
 python setup.py audit

release:
 python scripts/make-release.py

ext-test:
 python tests/flaskext_test.py --browse

clean-pyc:
 find . -name '*.pyc' -exec rm -f {} +
 find . -name '*.pyo' -exec rm -f {} +
 find . -name '*~' -exec rm -f {} +
 
Xem thêm ở đây 
 
3. Kiểm định chất lượng

Saturday, 9 April 2016