New FAMILUG

The PyMiers

Tuesday, 30 August 2016

robots.txt là gì?

Một sai lầm chết người có thể mắc phải và gây ra hậu quả khôn lường là set nhầm file robots.txt khiến cho Google không index site của bạn 😂 (khi mà bạn rất muốn nó index và leo top).

robots.txt là gì?

một file text chứa vài câu lệnh đơn giản để hướng dẫn các search engine (SE) như Google, Bing ...
cách index trang của bạn (tức hướng các SE có nên trả về các kết quả trong đường dẫn /A/B/C hay không).

robots.txt la gi

file robots.txt nằm ở đường dẫn /robots.txt của site.

robots.txt có 3 câu lệnh phổ biến

User-agent: SOMETHING - set đối tượng (SE) áp dụng luật
Allow: PATH - cho phép index một đường dẫn PATH
Disallow: PATH - không cho phép index một đường dẫn PATH

Thử xem vài trang

pyjobs.vn

Tại https://pyjobs.vn/robots.txt
User-agent: *
Disallow: 
Đoạn này cho phép mọi search engine (User-agent: *) được truy cập/index toàn bộ nội dung của trang. (Disallow: để trống).

Friday, 26 August 2016

[Python] Tải nhạc từ youtube bằng dòng lệnh

Lên mạng có bài nhạc hay,
cảm thấy có tội nếu không tải về 😜
download youtube bang python

youtube-dl 

là công cụ tải nhạc bằng dòng lệnh, một trong các top star repo GitHub viết bằng Python

Cài đặt
$ pip install youtube-dl
Collecting youtube-dl
  Downloading youtube_dl-2016.8.24.1-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 302kB/s
Installing collected packages: youtube-dl
Successfully installed youtube-dl-2016.8.24.1

Tải nhạc

Thursday, 25 August 2016

Không biết không có tội, nhưng là dốt nát, và lãng phí

Không phải chuyện học lập trình Python

Nhưng các cụ xưa đã dạy:
"không biết không có tội"
để giờ đây con cháu mang ra xuề xoà mỗi khi mắc phải cái tội gì đó mà không muốn chịu trách nhiệm. Nhưng các cụ đã dạy thì cấm có sai! Rõ ràng việc không biết, không phải một cái tội.


minh hoạ về seo

Saturday, 20 August 2016

Python tutorial Tiếng Việt

Tài liệu tiếng Anh để học Python thì nhiều vô kể, nhưng tài liệu Python tiếng Việt chất lượng thì chưa có nhiều.
Dưới đây là danh sách các bài viết tổng hợp các tutorial Python của FAMILUG. Chúng tôi sẽ hoàn thiện dần theo năm tháng.

python logo


Integer (số nguyên)
- Dùng python làm máy tính công trừ nhân  chia
- O(n) 

String (chuỗi)
- strip/replace

List (danh sách)
- Đếm số lần xuất hiện một item trong list/ độ dài của list
- Kiểm tra 2 list giống nhau
- Tìm từ dài nhất/ngắn nhất trong list

Control flow
- Đếm số dòng trong 1 file
- Ternary  

Friday, 19 August 2016

[Windows] PowerShell đã đến thế giới *NIX

PowerShell là gì? 
PowerShell is an automation and configuration management platform. It consists of a cross-platform command-line shell and associated scripting language
Trên các hệ điều hành giống UNIX (*NIX) có sh, bash, fish, zsh ... thì trên M$ xưa nay chỉ có "cmd" - một shell thuộc loại vô cùng đơn giản. Gần đây, M$ đã phát triển PowerShell với những cải tiến vượt trội so với "cmd" cổ cũ.
Không biết "shell" là gì? xem thêm ở đây

Sau vài chục năm ghét mãi không xong, M$ (Microsoft) đã quay sang bày tỏ tình yêu với Linux


Các cụ dạy: "kẻ biết thời thế mới là anh hùng",
các cụ đã dạy chắc là không sai.

Đúng hay sai thì ai cũng thấy, M$ ngày càng được giới *NIX quan tâm hơn (ngay cả bài viết này), và người khổng lồ vẫn chưa ngã sau bao nhiêu sóng gió.
Ai từ chối thay đổi, sẽ phải chết, hoặc sống dè dè 😁

Bạn muốn trở thành Linux Sysadmin? thử bấm vào đây
Bạn muốn trở thành Windows Sysadmin? đóng 5 triệu rồi cũng bấm vào link trên🤓

Cài đặt (ubuntu 14.04)
sudo apt-get install libunwind8 libicu52
sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb
Cho Ubuntu 16.04, OSX... xem thêm ở đây

Dependencies:
$ dpkg -s powershell | grep -i depends (chạy sau khi đã cài đặt)
Depends: libunwind8, libicu52
libunwind8

Thursday, 11 August 2016

[Linux kernel] dm - đang mệt

dm là từ viết tắt phổ biến cho "device mapper" trong thế giới Linux.
dm xuất hiện từ phiên bản 2.6.9 [2] của Linux kernel, tức đến giờ này thì các hệ điều hành Linux-based đều có sẵn dm để dùng.

Trang chủ: https://www.sourceware.org/dm/ đã định nghĩa một cách nghiêm túc về dm như sau [3]:
The Device-mapper is a component of the linux kernel (since version 2.6) that supports logical volume management. It is required by LVM2 and EVMS. The original LVM (included in stock 2.4 kernels) does not use it.
Vậy dm:
  • là một thành phần của Linux kernel - cụ thể nó là một kernel module (wikipedia gọi nó là một "framework" [4]).
  • dùng để hỗ trợ việc quản lý các volume một cách "logical".
  • là phần yêu cầu bởi LVM2 và EVMS - nếu không biết chúng là gì - tạm bỏ qua
Trên Linux, dm thể hiện là một block device, có thể thấy ở :

Wednesday, 10 August 2016

Học Python - Lớp PyFML 07 - Khai giảng 23/08/2016

Học Python - PyFML

Đăng ký học Python - Ngôn ngữ lập trình hot nhất hiện nay. Địa điểm: Hà Nội - Sài Gòn

Thời gian - Địa điểm
19h thứ 3 ngày 23/08/2016
Phòng 701 CT1 chung cư Skylight, ngõ hòa bình 6, Minh Khai, Hà Nội

Lớp học tại HCM sẽ khai giảng sau.

Đăng ký
Điền vào mẫu: http://goo.gl/forms/BJAwtCU3v5GQPDV22




Python là gì? ăn được không ?

Mục tiêu

Monday, 8 August 2016

[Python] setup.py develop

Một Python library / application đúng chuẩn sẽ phải có 1 file setup.py trong thư mục gốc.
Tài liệu chi tiết về việc viết/dùng file này để cài đặt và upload lên PYPI như thế nào xem thêm ở đây.

Khi phát triển một python package, developer sẽ muốn "setup" nó ở chế độ "development" thay vì chế độ "production". Chế độ development giúp cho mọi thay đổi của developer lập tức có tác dụng, chứ không phải ngồi gõ lại
 python setup.py install 
sau mỗi lần sửa code.

Để cài đặt 1 project ở chế độ development, chạy lệnh:
python setup.py develop
Ví dụ:

Sunday, 7 August 2016

[Django] dùng cùng 1 database cho dev, test và production

Đây không phải là điều gì mới lạ, cũng không giành riêng cho django.

Nhưng sự hấp dẫn của SQLite -  đơn giản - không phải cài đặt cấu hình - là một nguyên nhân khiến các developer vẫn dùng nó trong môi trường dev phần mềm trên máy họ, khi mà ở production lại dùng database khác - như PostgreSQL.

Kết hợp với sức mạnh che giấu bên dưới của ORM, không ai nhận ra sự khác biệt, cho đến một ngày (sau 1 - 2 tháng trời không có gì xảy ra)...
Lệnh migrate trên CI server fail mà ở trên máy vẫn chạy, khiến developer mất vài tiếng
để tìm ra nguyên nhân và khắc phục - chuyện mà nếu như từ đầu, cùng dùng một database, sẽ không
bao giờ xảy ra.

Bài học: các môi trường dev - testing - staging - production, càng giống nhau, càng tốt 😝🤑

PS: chiến dịch ngày nào cũng viết một cái gì đó đã quay trở lại, không đảm bảo lợi hại như xưa 😂