Bài đăng

Đang hiển thị bài đăng từ tháng tư, 2016

Exception trong python.

Python cung cấp 2 tính năng rất quan trọng để handle những lỗi không mong muốn và thêm khả năng debug trong ứng dụng python của bạn. 1. Exception handling. 2. Assertions. Trong phần này ta chỉ chú trọng bào Exception handling. Danh sách các Exception tiêu chuẩn: EXCEPTION NAME DESCRIPTION Exception Base class for all exceptions StopIteration Raised when the next() method of an iterator does not point to any object. SystemExit Raised by the sys.exit() function. StandardError Base class for all built-in exceptions except StopIteration and SystemExit. ArithmeticError Base class for all errors that occur for numeric calculation. OverflowError Raised when a calculation exceeds maximum limit for a numeric type. FloatingPointError Raised when a floating point calculation fails. ZeroDivisonError Raised when division or modulo by zero takes place for all numeric types. AssertionError Raised in case of failure of the Assert statement. AttributeError Raised in case of failure

Tuples trong python.

Hình ảnh
Không giống như list trong python. tuple là một tuần tự của những đối tượng không thay đổi được. Thông thường được bắt đầu bởi dấu ( và kết thúc là dấu ) Ví dụ ta có 1 tuple sau: tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d"; Một tuple rỗng thì được định nghĩa: tup = (); Bạn có thể định nghĩa: tup = (50,); Truy cập giá trị trong tuple: `#!/usr/bin/python tup1 = ('physics', 'chemistry', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5]` Khi chạy file code trên giá trị in ra sẽ là: tup1[0]:  physics tup2[1:5]:  [2, 3, 4, 5]\ Thay đổi giá trị tuple, như đã nói ở trên tuple khác với list là không thể thay đổi giá trị của tuple : ví dụ: #!/usr/bin/python tup1 = (12, 34.56); tup2 = ('abc', 'xyz'); # không thay đổi được giá trị tuple # tup1[

Khác nhau giữa Chef và Ansible.

Hình ảnh
Nói chung 2 tools này có công dụng thì như nhau, nhưng nó có 1 số đặc điểm khác nhau như sau: 1. Chef được viết bằng ruby và dùng các syntax của ruby để viết các cookbook. Trong khi python là ngôn ngữ chính của Ansible. 2. Chef khi boottrap thì phải thông qua Server chủ của chef, còn Ansible thì chạy thẳng từ PC của admin lên các server được tạo và Ansible sử dụng ssh trực tiếp vào trong server được tạo để cài đặt. 3. Khả năng cài đặt bằng chef nhanh hơn bằng Ansible. 4. Trái tim của Chef là cookbook còn Ansible là playbook

JSON là gì ?

Hình ảnh
http://manageitservice247.com/json-la-gi/

Cấu hình load balancing health check cho nginx.

Hình ảnh
File defaul nginx load balancing : http { upstream myapp1 { server srv1.example.com; server srv2.example.com; server srv3.example.com; } server { listen 80; location / { proxy_pass http://myapp1; } } } Ví dụ bạn có file nginx như sau: upstream mywebsite1 { least_conn; server xxx.xxx.xxx.20 weight=1 max_fails=3 fail_timeout=15s; server xxx.xxx.xxx.21 weight=1 max_fails=3 fail_timeout=15s; } Cấu hình trên là cấu hình load balancer cho nginx với max_fail = 3 , nghĩa là với request thứ 7 khi 1 server bị down thì từ request thứ 7 trở đi ,tất cả các request được trỏ về server còn sống. Nên để cấu hình heath check bạn cấu hình max_fail = 1 , nghĩa là từ request thứ 3 trở đi đều redirect về server live nếu 1 trong 2 server live die Chi tiết www.manageitservice247.com

Ebook về node.js [First node app]

Bạn download tại đây .  http://manageitservice247.com/wp-content/uploads/2016/04/First-Node-App1.pdf

MỘT VÍ DỤ RÕ RÀNG HƠN VỀ ROUTE TRONG NODE.JS VÀ EXPRESS.

Hình ảnh
Trong phần mềm, phần định tuyến (route) là rất quan trọng bởi vì nó định nghĩa một URL để giao tiếp với ứng dụng. Nếu nó không được tổ chức tốt thì về mặt logic là rất khó cho việc bảo trì sau này.          Trong ví dụ này ta sử dụng express frameworks để xây dựng một cars API đơn giản. GET /models GET /models/:modelId GET /models/:modelId/cars GET /cars GET /cars/:carId Trước tiên ta tạo thư mục project có tên là: car-api và cài đặt các thư viện cho nó: mkdir car-api cd car-api npm init -y npm i -S express npm i -D nodemon Thêm phần start ứng dụng vào package.json "start": "nodemon app.js" Tạo một file JSON để lưu trữ dữ liệu API như dưới:  {   "models": [     {       "id": 1,       "name": "Toyota"     },     {       "id": 2,       "name": "Mazda"     }   ],   "cars": [     {       "id": 1,