Skip to main content

Posts

Showing posts from May, 2016

SNI - giải pháp chạy nhiều SSL/TLS cert trên cùng 1 IP

Câu hỏi: có thể chạy nhiều trang web (khác domain) dùng HTTPS trên cùng 1 host không? Câu chuyện: nhà nghèo phải host nhiều site trên cùng 1 host mà mỗi site cần một SSL/TLS cert thì phải làm sao? Trả lời: SNI - Server Name Indication Làm sao dùng được SNI: kiểm tra xem webserver có hỗ trợ SNI không, phiên bản OpenSSL đã hỗ trợ SNI chưa. Tại thời điểm hiện tại thì câu trả lời cơ bản là có: # nginx -V nginx version: nginx/1.7.9 built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1) TLS SNI support enabled ... các phiên bản openssl từ 0.9.8j trở lên đều mặc định hỗ trợ SNI. Với Ubuntu 14.04, không cần phải lo nghĩ về chuyện này: $ openssl version OpenSSL 1.0.1f 6 Jan 2014 SNI là gì? sao lại cần?

Django 1.8 migrate siêu tốn ram, đừng khóc!

Django 1.8 là phiên bản LTS ở thời điểm hiện tại - tức nó sẽ được hỗ trợ dài lâu và có thể coi là phiên bản ổn định nhất. Thế nhưng có một lỗi khá khó chịu, khi chạy migrate sẽ rất chậm và tốn RAM - với một project có dùng Django CMS, khi chạy lệnh ``manage.py migrate`` có thể đốt tới 2 GB RAM. Nếu mang Django 1.9 ra so, hẳn sẽ thấy được bản này nhanh và tốn ít RAM hơn rất nhiều lần. Và rõ ràng đây là bug! https://code.djangoproject.com/ticket/24743 https://code.djangoproject.com/ticket/24745 Bug này đã được giải quyết, nhưng chỉ có cho bản 1.9 và không được backport lại cho 1.8. Bản fork backport lại fix này có thể lấy ở đây:

ag và tìm hoài không thấy

Nếu bạn chưa biết ag là gì thì hãy đọc ngay t ại đây vì ag có một sức mạnh kinh hoàng mà chỉ cần một lần thử, bạn sẽ tin. ag giúp tìm kiếm từ khoá nhanh hơn grep nhiều lần, câu lệnh ngắn hơn vài lần, và đôi khi nó còn tỏ ra thông minh một cách đáng sợ nữa. Ví dụ dưới đây trình bày một trường hợp nếu ag trong thư mục con ``cmd`` thì tìm thấy kết quả còn nếu ag từ thư mục parent thì lại không thấy gì: src/github.com/syncthing/syncthing/cmd $ ag cert.pem syncthing/locations.go 47:     locCertFile:      "${config}/cert.pem", 49:     locHTTPSCertFile: "${config}/https-cert.pem", syncthing/main.go 376:    certFile, keyFile := filepath.Join(dir, "cert.pem"), filepath.Join(dir, "key.pem") Thấy kết quả trong file syncthing/main.go Giờ chuyển đến thư mục parent:

[Python] convert string thành integer

Chả có gì để nói nếu chỉ có: In [2]: [int(i) for i in ('1', '123', '1235')] Out[2]: [1, 123, 1235] Hàm int thậm chí còn biết cách làm sạch (strip) số trước khi convert: In [3]: int('   5   ') Out[3]: 5 Vậy convert 1 dạng string của 1 list số thành 1 list số thế nào: In [4]: s = '[2, 3, 4, 123, 1235]'

Combo nguy hiểm

Trên cuộc đời có những thằng nguy hiểm thực sự và cũng có nhiều thằng thực sự tỏ ra mình nguy hiểm.  Bài này giới thiệu công cụ để tỏ ra nguy hiểm cho đối tượng thứ hai và có thể làm tăng độ nguy hiểm cho đối tượng thứ nhất - khi dùng *NIX. Bộ combo này gồm những công cụ cực nhỏ bé, nhưng rất mạnh, có thể thay đổi trái đất, chuyển hoá vũ trụ, và thường rất đen. 1. i3wm - hay gọi tắt là i3 https://i3wm.org/ Thuộc loại chương trình quản lý cửa sổ (Window Manager - WM ) - không nhầm lẫn với hệ điều hành Window s . Nhiệm vụ chính quả chương trình quản lý cửa sổ là đưa ra cách sắp xếp các cửa sổ. Thông thường với Windows user cũng như Ubuntu mặc định, cửa sổ được sắp xếp mặc định theo kiểu floating (cửa sổ này chồng lên cửa sổ kia). i3 lại thuộc loại tiling WM, tức các cửa sổ sẽ được sắp xếp cạnh nhau, nhằm tối ưu khoảng trống của màn hình. Trăm nghe không bằng một thấy, trông ra sẽ như sau:  

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