Skip to main content

Posts

Showing posts from March, 2017

Phải set locale trong Upstart

Upstart là init system của Ubuntu trước 16.04. Nếu còn dùng upstart, khi viết file cấu hình cho nó trong /etc/init/xyz.conf bạn phải set locale cho nó vì mặc định, upstart không sử dụng biến môi trường nào ngoài TERM và PATH. http://upstart.ubuntu.com/cookbook/#job-environment Nếu không set locale, một vấn đề có thể gặp phải, ví dụ như khi bạn chạy code python bằng gunicorn, thông qua upstart. Function os.path.isfile có thể raise Exception khi nhận tên file là một đoạn string chứa kỹ tự không nằm trong bảng mã ASCII: if os.path.isfile(content_string) and not is_raw:      File "/usr/local/pymi/env/lib/python3.4/genericpath.py", line 30, in isfile         st = os.stat(path) UnicodeEncodeError: 'ascii' codec can't encode character '\xfa' in position 2: ordinal not in range(128) Thêm dòng này vào file upstart:

Đừng gọi cái máy chủ là server

Có một khái niệm khá phổ biến trong giới IT, đó là gọi cái máy chạy các dịch vụ là "server". Cách gọi này không sai, nhưng sẽ gây nhầm lẫn. Khi những phần mềm như "Apache2" hay NGINX được gọi là Web server, PostgreSQL server được gọi là data base server. Vậy một máy chủ chạy cả 2 thứ trên gọi là gì? Cách tốt hơn là nên gọi các máy chủ là host, VM, hay machine như Google Trích từ cuốn sách miễn phí về SRE của Google

bash exit status không là -1

Trong một đề tuyển dụng nào đó, có một yêu cầu là: script trả về exit status -1 nếu phát hiện lỗi. exit status của một câu lệnh / script / chương trình là một giá trị số được trả về khi chương trình kết thúc. Thông thường, chương trình trả về 0 tức là đã thành công, và khác 0 nghĩa là lỗi. Dùng bash, đơn giản ta sẽ gõ câu lệnh built-in trong bash: exit -1 $ echo "exit -1" > /tmp/test.sh $ bash /tmp/test.sh $ echo $? 255 Exit code ở đây là 255 chứ không phải -1. Thử với một giá trị khác: $ echo "exit 5" > /tmp/test5.sh $ bash /tmp/test5.sh $ echo $? 5

Xoá cache, clean RAM trên Android là vô dụng

Thậm chí là có hại. Trước tiên, bạn cần biết rằng Android là hệ điều hành sử dụng Linux kernel. Tức nó có phần nào đấy giống với các hệ điều hành dùng Linux kernel khác như Ubuntu, Fedora, ArchLinux ... Trên Ubuntu, bạn KHÔNG BAO GIỜ phải clean RAM hay xoá cache. Cách tính phần RAM còn có thể sử dụng trên Linux là có bao gồm cả phần cache

Bitcoin Core với JSON-RPC

Update : Cảm ơn các thành viên trong Pymi đã đọc và cho những đóng góp  ý kiến để bài viết đc hoàn thiện. Đây là một bài hướng dẫn cài Bitcoin Core  và thiết lập JSON-RPC cho Bitcoin Core  version v0.14.0 . Nếu bạn chưa biết gì về  Bitcoin Core  có thể tìm hiểu ở phần link tham khảo . Server sử dụng Ubuntu 14.04 (cấu hình tối thiểu 2GB RAM, 125 GB ổ cứng), có thể tham khảo về cấu hình server bitcoin tại đây . 1. Add repo của  Bitcoin Core Chạy lệnh sau: apt-get install -y software-properties-common && \ add-apt-repository ppa:bitcoin/bitcoin -y && \ apt-get update 2. Cài đặt  Bitcoin Core  cùng các thư việc hỗ trợ

Kubernetes từ đầu ...

Một công nghệ xây dựng dựa trên 15 tinh hoa vận hành hệ thống G o o g l e . Một sản phẩm của chính G o o g l e , viết trên ngôn ngữ lập trình phát triển tại G o o g l e ( Golang ). Một công nghệ mới được công bố từ giữa năm 2014, nhưng đã chiếm lĩnh thị phần không nhỏ trên các hệ thống cloud. Một từ khoá nóng nhất mà các sysadmin/devops đều muốn có trong danh sách kỹ năng của mình. Đó là Kubernetes ! Kubernetes là gì Kubernetes hay K8s là một hệ thống để quản lý các "container". Theo Kubernetes GitHub repository : Kubernetest - Production-Grade Container Scheduling and Management Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. Nói một cách dễ hiểu, nếu bạn biết dùng Docker hoặc rkt [0] để chạy các container, thì K8s là giải pháp để quản lý chúng (quản lý bao gồm: tạo, sửa, xoá, xếp lịch(schedule), hay mở rộng (s...

[Python] fractions - tính toán phân số trên Python

Trong một bài viết gần đây, chúng tôi đã giải thích hiện tượng "kỳ lạ" khi 0.1 + 0.1 + 0.1 KHÔNG BẰNG 0.3 khi sử dụng Python hay nhiều ngôn ngữ lập trình khác (C, Java, PHP, Ruby, Golang ...). Nếu bạn vẫn còn thấy nó chưa hết lạ, bấm vào đây để làm quen . Một giải pháp xử lý vấn đề này là sử dụng thư viện " fractions " có sẵn của Python để tính toán các số hữu tỷ (phân số - rational number). Tập số hữu tỷ được ký hiệu là tập Q khi học ở phổ thông: các tập số Thư viện `` fractions `` có một kiểu dữ liệu tên là Fraction, nó giúp biểu diễn các phân số và thực hiện tính toán trên Python. Fraction có thể nhận nhiều dạng đầu vào khác nhau: - Tử số và mẫu số - String biểu diễn phân số - Một số integer hay float Các đoạn code sử dụng Python 3 với IPython. Ta import thư viện trước: In [3]: from fractions import Fraction as F Đầu vào là tử số và mẫu số: In [4]: F(16, 10) Out[4]: F(8, 5)

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG