New FAMILUG

The PyMiers

Wednesday 31 May 2017

apt changelog và wannacry

Wannacry làm mưa làm gió trên "cộng đồng mạng" của các "Windows" user.
Dùng Linux/OSX, bạn sẽ không quan tâm lắm...

Sau Wannacry, người ta lại phát hiện ra một lỗ hổng của Samba và đặt tên là "Sambacry",
lỗ hổng này cho phép một user không có quyền root nhưng có thể chạy các chương trình như root.
Vì vậy nó cũng được coi như một lỗ hổng rất nghiêm trọng.
Ubuntu ngay lập tức ra bản fix cho lỗ hổng này.


Trên Ubuntu 16.04, package sau khi đã fix có phiên bản là: released (2:4.3.11+dfsg-0ubuntu0.16.04.7)

Câu lệnh `apt-get changelog samba` giúp ta lấy thông tin thay đổi của package:

Wednesday 24 May 2017

Di chuyển trong file

Là một ngôn ngữ bậc cao, Python cung cấp các function giúp người dùng có thể đọc file dễ dàng theo từng dòng hay tất cả nôi dung của file. Vậy nhưng trong những trường hợp cần thiết, Python vẫn có thể can thiệp sâu xuống dưới tầng thấp hơn và thực hiện những yêu cầu phức tạp hơn.


Mở file - text stream

Mở file trong Python sử dụng funtion open('ten_file'), mặc định ta sẽ mở file để đọc (read) ở dạng "text mode". Ta mặc định file cần mở là một file text (thường là .txt, .csv ...)
>>> f = open('/etc/hosts')
>>> print(f)
<_io .textiowrapper="" encoding="UTF-8" mode="r" name="/etc/hosts">
Ta đọc toàn bộ nội dung của file vào bộ nhớ bằng method read:
>>> content = f.read()
>>> print(len(content))
918
Sau khi đọc đến cuối file (gặp ký tự EOF - end of file, một ký tự đặc biệt đánh dấu sự kết thúc của một file), nếu ta vẫn tiếp tục đọc, sẽ chỉ thu được empty string vì không còn gì để đọc.

Tuesday 23 May 2017

Tính năng bảo mật kinh khủng của z.com

Thằng em bên cạnh yêu hàng được quảng cáo nhiều ở Việt Nam, nó dùng z.com - một nhà cung cấp domain/host được quảng cáo khá nhiều trên các kênh thông tin.
Mọi thứ đều có vẻ ổn, cho đến một ngày nó ngồi ở The Coffee House tại một con phố thơ mộng của Hà Thành. Nó login vào z.com để quản lý website, và liên tục bị logout sau mỗi lần login rồi bấm vào một mục bất kỳ trong control panel.




Liên hệ gấp support, đội support của z.com làm việc rất nhanh và hiệu quả, thậm chí gọi điện để giải

Saturday 20 May 2017

Học lập trình Python tại Hà Nội lớp PyMi.vn khoá 14


Đăng ký học lập trình #Python 3 từ con số 0 tại PyMI.vn - lớp Hà Nội khai giảng đầu tháng 6, lớp Sài Gòn khai giảng đầu tháng 8. Xem chi tiết tại https://pymi.vn/

Nhập email vào http://invite.pymi.vn/ để nhận thư mời tham gia forum hỏi đáp Python, Django, Golang, Linux ...

Friday 12 May 2017

Học Elixir trong một giấc mơ

Lý do bạn thích học Haskell, LISP, Erlang, Elixir, Ocaml, Scala... những ngôn ngữ lập trình hàm (functional programming language) có vẻ hay ho, mà không bao giờ thành công là gì?



Sau đây là vài lý do mình gặp phải:

- Quá nhiều khái niệm mới
- Nhồi nhét hết các khái niệm xong không có gì để làm
- Chọn ngôn ngữ "xịn" nhất: trong mảnh đất functional programming, rất nhiều cái tên hấp dẫn khác như Haskell, Ocaml, Racket, Scheme, CLisp, Scala,...

Để khắc phục điều này, ta sẽ:

- Chỉ tập trung vào những khái niệm đã quen thuộc, học thật nhanh, tra cứu khi cần
- Có một ý tưởng để thực hiện
- Tập trung vào Elixir vì mỗi ngôn ngữ đều có điểm mạnh/ yếu riêng, nhưng khi nắm được một ngôn ngữ, học các ngôn ngữ khác sẽ trở nên dễ dàng hơn nhiều do đã quen thuộc các khái  niệm và lối tư duy của functional programming.


Nếu không có gì để làm, nuốt xong các khái niệm, 1 tuần sau bạn sẽ lại quên.

Elixir/Erlang hoàn toàn đủ khả năng để cho bạn lập trình loanh quanh mấy thuật toán, giải các bài toán / vấn đề trên HackerRank. Nhưng điểm sáng của ngôn ngữ này, thực ra chỉ toả sáng khi ta dùng nó để phát triển các hệ thống lớn, cần chạy phân tán, hay chạy song song... Ít khi một người sẽ làm hẳn một project lớn như vậy. Vì vậy, ta thường không có đất dùng cho Elixir hay Erlang.

Một cách ứng dụng để chơi với ngôn ngữ mới nữa "nhỏ hơn", là viết các câu lệnh thực hiện một việc gì đó (CLI). Vậy nhưng Elixir/Erlang không toả sáng/ đơn giản trong công việc này, nó CÓ THỂ làm được, nhưng trên thực tế không mấy ai làm.

Ví dụ standard khi học Erlang là làm một hệ thống chat. Trên thực tế, hệ thống chat của "Whatsapp" được viết bằng Erlang hệ thống này đã được bán lại cho FaceBook với giá 19 TỶ đô la Mỹ (PS: FaceBook trước đó cũng đã mua lại Instagram - một hệ thống viết bằng Django/Python với giá 1 TỶ đô la Mỹ)

Ta có thể làm 1 website sau khi học Elixir, đây là lĩnh vực hiện tại mà Elixir mạnh nhất.

Đã xong phần ý tưởng, bây giờ hãy học Elixir.

Thực hiện trên:

```
$ elixir --version
Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Elixir 1.3.2
```
Xem bản đã format đẹp tại đây: https://hvnsweeting.github.io/elixir-trong-mot-giac-mo/


Friday 5 May 2017

[Linux] Từ super user đến Sysadmin

(Hay một định nghĩa về "Linux Sysadmin")

Bạn có thể dùng hệ điều hành nhân Linux (Ubuntu, Fedora...) OSX được 5 năm, nhưng điều đó không biến bạn thành "Sysadmin".
Bạn có thể biết apt/yum chạy thế nào, dpkg làm gì, bạn biết compile kernel, upgrade kernel, làm đủ trò trên máy tính của bạn, gõ các dòng lệnh, viết bash nhoay nhoáy, nhưng điều đó không biến bạn thành sysadmin.
Bạn là một Linux Super user!



Hệ thống hỏi đáp quốc tế StackExchange có hẳn 1 trang tên là "Super User", nơi dành cho các super user:

Super User is a question and answer site for computer enthusiasts and power users.

Và một trang riêng dành cho các "Sysadmin":