Skip to main content

Posts

Tăng tốc Django API Service tới 90% với cacheops

1. Code chạy đúng là được rồi mà? Code chạy đúng thôi là chưa đủ, luôn phải tối ưu thêm về mặt tốc độ. Bạn có thể viết code đẹp như tranh, nhưng nếu một request của khách mất đến 10s để xử lý, thì 99% là khách hàng của bạn sẽ bỏ đi ngay lập tức (trừ khi bạn là trang .gov hoặc khi bạn cần đăng ký tín chỉ). Ok, bạn tiếp tục "outsource" những phần xử lý nặng nề cho Celery hoặc RQ để khách đỡ phải nhìn màn hình trắng. Nhưng kể cả vậy thì nó cũng không làm vấn đề biến mất. Nó chỉ giúp khách của bạn biết rằng ở bên dưới bạn vẫn đang vật lộn xử lý chứ không "chết hẳn". Thay vì màn hình trắng thì giờ là hình xoay xoay. Và lúc đó, bạn cần phải "tối ưu" lại code của mình rồi. Và sau khi vò đầu bứt tai ngồi đoán, imort pdb; pdb.set_trace() loạn xạ, thêm các kiểu đo đếm thời gian, bạn bó tay. Vì đó không phải cách bạn nên làm để tối ưu code. 2. Analysis

Chia sẻ file nhạc/ảnh/video trong mạng nội bộ (UPnP/DLNA)

Thời điểm này, mỗi gia đình đều có vài thiết bị "thông minh", TiVi, điện thoại, laptop, máy chơi game PlayStation... mà dữ liệu nhạc / film có thể nằm mỗi cái ở một chỗ. Có nhiều cách để chia sẻ file giữa các thiết bị này với nhau mà người ta đã làm cả chục năm nay rồi. Một cái tên trông không đẹp cho lắm nhưng đã dùng thì rất tiện: UPnP ( Universal Plug and Play) Universal Plug and Play is a set of networking protocols that permits networked devices, such as personal computers, printers, Internet gateways, Wi-Fi access points and mobile devices to seamlessly discover each other's presence on the network and establish functional network services for data sharing, communications, and entertainment. UPnP là một bộ giao thức mạng cho phép các thiết bị trong mạng tự khám phá ra nhau và chia sẻ dữ liệu. Giao thức mạng tức là như HTTP, FTP ... DLNA (Digital Living Network Alliance) là tên một "guideline"/bộ hướng dẫn, bao gồm nhiều thứ và có cả UPnP. ...

Làm full tất cả CPU bằng 1 câu lệnh

Cách nào để làm CPU chạy full load ? Khi mang em laptop bị nóng rồi tự tắt đi sửa, các anh kỹ thuật dùng cách vào youtube và tìm video 4k rồi mở fullscreen để xem... Cách này chưa chắc đã làm full CPU, lại yêu cầu phải có mạng internet đủ nhanh. Những options nào khác? 1. Dùng bash while true; do true; done 2. Dùng Python python -c 'while True: pass' Hai cách này nghe có vẻ ổn, nhưng chúng chỉ làm full 01 CPU. Trong khi máy bạn có thể có nhiều CPU - ngay cả các Android smartphone của năm 2016 cũng đã có 4 CPU rồi. Lấy số CPU của máy Khái niệm CPU được hiểu theo nghĩa khác nhau trong các hòan cảnh khác nhau. Nếu hiểu theo nghĩa: số chương trình chạy đồng thời cùng lúc (thực sự - chứ không phải giả đồng thời bằng cách chuyển nhanh qua các chương trình khác nhau chạy mỗi cái 1 tí như cách 1 CPU làm để chạy nhiều chương trình), ta có thể gõ `top` rồi bấm 1. Trên Linux, mọi thứ đều là file , thông tin CPU nằm trong /proc/cpuinfo

Random notes

Đi làm không có nhiều thời gian để ngồi nắn nót từng bài blog, từng chủ đề từ à tớ ê. Vậy nên để khởi động lại việc viết lách, những bài random notes sẽ note lại những thứ nhỏ bé học được gần đây mà không sắp xếp theo chủ đề nào cả. 0. Bấm gì thay TAB để auto-complete? Ctrl i sẽ cho hiệu ứng auto-complete tương tự. $ bind -p | grep \\C-i "\C-i": complete "\e\C-i": dynamic-complete-history 1. rxvt VS other terminal?

Giảm ánh sáng xanh gây mù trên máy tính với redshift, f.lux

Các nghiên cứu khoa học gần đây cho biết ánh sáng xanh rất có hại cho mắt và có thể khiến bạn bị mù - và ảnh hưởng tới giấc ngủ ( https://phys.org/news/2018-08-chemists-blue.html ) MacOS/iOS các phiên bản mới gần đây có sẵn tính năng giảm ánh sáng xanh, tăng màu đỏ để giảm sự hại mắt. - MacOS https://support.apple.com/en-us/HT207513 - iPhone/iPad .. https://support.apple.com/en-sg/HT202613 F.lux là một trong những phần mềm tiên phong trong lĩnh vực này, có hỗ trợ các hệ điều hành phổ biến: Linux (also available for Windows Mac iPhone/iPad Android) redshift là một phần mềm tương tự, có thể cài bằng apt trên 16.04: sudo apt-get install -y redshift Chạy redshift, màn hình sẽ tự điều chỉnh màu sắc dựa theo tọa độ địa lý của bạn. Gì cũng được, miễn có là được.

Di chuyển trên less - xem web bằng w3m

less là lệnh để xem file (chỉ xem, không sửa). less là phiên bản cải tiến của "more", `less is more`. Có thể bạn chưa bao giờ gõ less, nhưng nếu bạn đã gõ man, tức là bạn đang dùng less. Trong less hỗ trợ phím chuyển trang của cả emacs lẫn vim. Với vim , đó là Ctrl f (forward - cuốn xuống) và Ctrl u (upward - cuốn lên). Với emacs , đó là Ctrl v và Meta v (thường là Alt-v )  - với chữ v giống dấu mũi tên xuống, và alt tạo ra hiệu ứng ngược lại với xuống - tức là lên. Do các tổ hợp phím (key binding) emacs được dùng khắp mọi nơi trên *NIX, sử dụng Ctrl v Meta v giúp bạn di chuyển ở hầu hết các chương trình *NIX khác, có thể kể tới trình duyệt w3m . w3m là trình duyệt trên terminal,

In ra màn hình số 1 - dùng ngôn ngữ nào nhanh/nhẹ nhất?

Nếu chỉ cần in ra mà hình số 1, ngôn ngữ lập trình nào sẽ chạy tốn ít RAM nhất? Thí nghiệm sau sẽ cho ta thấy các chương trình cần bao nhiêu RAM để chạy và in ra số 1, kết thúc dòng bằng một dấu xuống dòng (newline \n ). Ta dùng chương trình /usr/bin/time để có cả thông số về RAM ( RSS ) thay vì chỉ gõ time - lệnh builtin của bash. bash4.3 $ /usr/bin/time bash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 3064maxresident ) k 0inputs+0outputs ( 0major+136minor ) pagefaults 0swaps dash $ /usr/bin/time /bin/dash -c 'echo 1' 1 0 .00user 0 .00system 0 :00.00elapsed ?%CPU ( 0avgtext+0avgdata 1492maxresident ) k 0inputs+0outputs ( 0major+67minor ) pagefaults 0swaps mawk $ /usr/bin/time mawk 'BEGIN {print 1}' 1 0 .00user 0 .00system 0 :00.00elapsed 100 %CPU ( 0avgtext+0avgdata 1932maxresident ) k 0inputs+0outputs ( 0major+86minor ) pagefaults 0swaps

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