Thứ Hai, 28 tháng 9, 2015

Smoke testing.

Sau một thời gian làm việc với unitest cũng ngỡ ra nhiều điều, đặc biệt là khái niệm "smoke testing".

Smoke testing là gì?
Smoke testing là các preliminary  tests (test sơ bộ), có tác dụng phát hiện và loại bỏ những lỗi cơ bản nhât khi release một software như lỗi khi start/stop... và test các tính năng cơ bản nhất của software đó. Do đó, trong các test code, những smoke test case có thể được thay đổi khi update features của software nhưng chúng thường không bị xóa bỏ .

Chủ Nhật, 27 tháng 9, 2015

[Python] Unittest

Unitest là gì?

Unittest là một framework dùng cho tính năng test các code case trong python (python init testing framework).

Unittest module cung cấp các bases class, giúp coder định nghĩa các tests dễ dàng.

Một số concepts cơ bản trong unitest:

1. Test fixture: một test fixture thực hiện sự chuẩn bị những vấn đề cần thiết trước khi chạy một hay nhiều tests. Ví dụ: tạo thư mục hay database phục vụ các test cases.
Ngoài ra, Test Fixture còn sử dụng để thực hiện một số hoạt động sau khi test kết thúc như xóa object được tạo trong quá trình test.

Thứ Bảy, 26 tháng 9, 2015

CMS - Content management system.

CMS là gì?
CMS - Content Management System là một Computer application cho phép create, modify, maintain và delete contents qua một central interface.
Content ở đây là các file dữ liệu, media hình ảnh hay video...

Trường hợp sử dụng:
Thường được sử dụng để lưu trữ và quản lý dữ liệu của các website.

Ưu điểm: 
  • Quản lý số lượng content lớn.
  • Tiết kiệm thời gian quản lý.
  • Tiết kiệm chi phí vận hành và bảo trì dữ liệu.

Thứ Ba, 11 tháng 8, 2015

[NC] LAN and WAN.

The definition of networking:

In the world of computers, networking is the practice of interfacing two or more computing devices with each other for the purpose of sharing data. Computer networks are built with a combination of hardware and software.


Computer network can be categorized in several different ways. One common way to classify is base on the geographic area:


  • LAN: stands of Logical Area Networks, provides networking capability to a group of computer in close proximity to each other such as in a company, school...
          A LAN is useful for sharing the resources as files, game, ...


  • WAN: stands of Wide Area Networks, provides networking capability for a large geographic area. A WAN often connects multiple LAN network.

Thứ Tư, 8 tháng 7, 2015

REST là gì?

REST  là viết tắt của Representation State Transfer.
REST là một architecture style for designing networked applications được xây dựng dựa trên:
     + Stateless protocol.
     + Server-client protocol.
     + Cacheable communications protocol.
Hầu hết trong các trường hợp với REST,  HTTP protocol được sử dụng.

RESTful applications sử dụng các HTTP operations (POST, GET, PUT, DELETE) để post, update, read và delete data.

Note:
Stateless protocol là communication protocol:
+ Mỗi request được xử lý một cách độc lập với nhau.
+ Communication bao gồm cặp request và response.
+ Stateless protocol không yêu cầu server lưu trữ toàn bộ các communication (request + response)

Thứ Năm, 2 tháng 7, 2015

[Python] Decorators

Python decorators cung cấp một cách thức đơn giản để apply những modifications lên các callable object như function, class, methods.

Có thể hiểu đơn giản, môt decorator là function:

  • Nhận input là function.
  • Định nghĩa một function mới thực hiện một số hành động với input function.
  • Return lại function mới đó.


Thứ Tư, 8 tháng 4, 2015

[CLI] MD5sum

What is md5sum?
thanhnguyen@thanhnguyen:~/Downloads$ whatis md5sum
md5sum (1)           - compute and check MD5 message digest
 SYNOPSIS
md5sum [OPTION]... [FILE]...

Why md5sum?

Tự động start service khi khởi động server.

Trong một số trường hợp, khi reboot server, một số service không tự động start (ví dụ như NFS server). Để khắc phục hiện tượng này, cần làm như sau:
Gõ command line sau trên terminal, dưới quyền root:
ntsysv
Sau đó, một bảng cài đặt sẽ hiện ra, bạn bật các service bạn muốn tự start khi start server là ok.

Thứ Ba, 7 tháng 4, 2015

[CLI] Locate _ just find files by name.

This tutorial is done on:
thanhnguyen@thanhnguyen:~$ lsb_release -ir
Distributor ID:    Ubuntu
Release:    12.04
What is locate.
NAME
locate - find files by name
So clearly, locate is the command line that can help you find files in your system base on the file name.

Thứ Hai, 30 tháng 3, 2015

Invoking a bash script.

Bài viết thực hiện trên:
thanhnguyen@thanhnguyen:~$ lsb_release -ir
Distributor ID:    Ubuntu
Release:    12.04

Xét với một bash script như sau (xét với một ví dụ simplest):
root@thanhnguyen:~# cat print.sh
#!/bin/bash
echo "hello $1"

Check một bash script có chạy với user root hay không.

Lâu lâu mới viết bài, blog bắt đầu mọc rêu.
.
.
.
Bài viết được thực hiện trên:
thanhnguyen@thanhnguyen:~$ lsb_release -ir
Distributor ID: Ubuntu
Release: 12.04
thanhnguyen@thanhnguyen:~$ bash --version
bash --version
GNU bash, version 4.2.25(1)-release (i686-pc-linux-gnu)
Khi chúng ta chạy một bash script, đôi lúc chúng ta cần tìm ra xem script có chạy với user root hay không... Vậy làm thế nào để biết được điều này?

Thứ Hai, 5 tháng 1, 2015

[Python] Virtualenv.

Virtualenv là gì?

Virtualenv ( Virtual environments) là một tool có chức năng tạo ra các môi trường ảo, không chứa bất kì thứ gì chúng ta đã cài đặt và setup lên máy local trước đó. Đồng thời, cách thao tác trong môi trường ảo này không được áp dụng với máy local và các môi trường khác. Điều này cho phép chúng ta làm việc với các Python projects khác nhau trong các môi trường riêng biệt.

Ví dụ: Trên máy local chạy hai Python project, project thứ nhất sử dụng Django 1.x nhưng project thứ 2 sử dụng Django 4.x chứ không sử dụng được Django 4.x. Khi đó, bạn có thể chạy hai projects này trong hai virtualenv khác nhau, Cài đặt Django 1.x trong môi trường thứ nhất cho project 1, cài đặt Django 4.x trong môi trường thứ 2 cho project 2. Khi đó, cả hai project sẽ cùng chạy đúng yêu cầu.