Bài đăng

Colab trong Colab

Hình ảnh
Tổng quan Ở bài viết hôm trước, chúng ta đã tạo ra một trình duyệt web mini để chạy colab. Tuy là tạo và chạy được nhưng bây giờ chạy nó ở đâu ? Với một số ae dư giả sẽ chạy nó trên vps windows hoặc chạy ngay trên máy tính của mình, nhưng đối với tui, tui cho nó chạy trên colab luôn ^.^ Đó cũng nguyên nhân sinh ra bài viết này. Như ae đã biết mỗi khi chạy một dự án trên google colab thì sẽ được cung cấp một máy ảo chạy môi trường dòng lệnh gnu/linux. Nhưng với trình duyệt web của chúng ta muốn nó chạy phải cung cấp môi trường đồ họa. Mà đồ họa thì cần màn hình, mà màn hình đâu ra ^v^. Tất nhiên là màn hình thật không có thì ta dùng màn hình ảo chứ sao nữa. Tạo màn hình ảo. Để tạo được màn hình ảo, chúng ta sẽ cần đến anh bạn Xvfb. Xvfb (X virtual framebuffer) là một máy chủ X (X server) có thể chạy trên các máy mà không có màn hình. Nó mô phỏng một bộ đệm khung hình (framebuffer) sử dụng bộ nhớ ảo. Còn X server là một hệ thống cửa sổ hiển thị bitmap, nó cung cấp một khung cơ bản...

Kéo dài sự sống cho google colab

Hình ảnh
Tổng quan Sau vài tháng sử dụng google colab thì hôm may mới viết bài này để giải quyết vấn đề về "kéo dài sự sống" cho google colab. Cụ thể, khi sử dụng google colab để làm việc như đào tạo mô hình học máy, hay crack mật khẩu thì mất kha khá thời gian, ở bản miễn phí của colab thì chắc các bạn đã biết thời gian chạy 1 dự án tối đa là 12 tiếng. Ban đầu tui cũng chủ quan, tui mở 1 tab cho dự án colab để nó chạy đào tạo mô hình, thời gian cũng ngắn không quá 12 tiếng, thì thời gian còn lại rảnh quá, tui mở 1 tab khác để xem youtube. Sau vài tiếng quay lại tab ban đầu xem kết quả thì bùm, cái dự án đang chạy biến mất, sạch không tì vết. Tui không hiểu tại sao, nhưng tui đoán là cái máy ảo chạy dự án đã tự khởi động lại nên nó xóa hết cmn rồi. Sau đó tui lần lần mò google với từ khóa colab alive thì dẫn tui đến stackoverflow với câu hỏi How to prevent Google Colab from disconnecting? và thêm được thông tin sau: Google Colab notebooks có thời gian chờ không hoạt động là 90...

Tự tạo 1 chiếc trình duyệt web mini

Hình ảnh
Giới thiệu Hôm nay chúng ta sẽ cùng tạo 1 con trình duyệt web cơ bản. Em nó được viết bằng python dựa trên nền Qt5 và QtWebEngine. Mà QtWebEngine thì dựa trên nền Chromium nên nó hơi hao hao giống chrome :) Mục đích tạo ra nó là để học hỏi và làm một vài thứ hay ho khác, các bài viết sau sẽ rõ :). Link code mini web browser Đây là hình ảnh của em nó. Lập trình Nguyên liệu: Python3 PyQt5 PyQtWebEngine Text Editor hoặc IDE tùy ý nhá. Cài đặt. Python3 dễ cài quá mà. Với Qt thì dùng lệnh pip. Cụ thể: pip install PyQt5 PyQtWebEngine Code Code của em nó sẽ ở cuối bài hoặc đâu đó trong bài viết này :). Code cửa sổ chính Sau đây là code phần cửa sổ chính. class MainWindow(QMainWindow): """docstring for MainWindow""" def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.tabs = QTabWidget(tabsClosable=True, movable=True) self.tabs.setTabShape(0) self.resize(800, 600)...

Thoát kiểm duyệt xem phim lậu - haha

Tổng quan Như các bác đã biết, dạo gần đây các trang phim lậu bị các nhà cung cấp mạng Việt Nam chặn triệt để. Nhưng các trang phim ấy cũng đâu có vừa, họ liền đổi tên miền, ví dụ phimmoi.net thành phimmoiz.net, cứ chặn là họ thêm cứ thêm z vào tên miền. Còn con dân xem phim lậu thì dùng cũng có cách dùng proxy hoặc vpn, nhưng 2 cái trên có nhược điểm là tốc độ chậm và đôi khi không an toàn. Vậy còn có cách nào khác nữa không? Xin thưa là Có . Quay lại vấn đề nhà cung cấp dịch vụ Internet - Internet Service Provider (ISP) họ đã làm cách nào mà chặn được web phim. Họ đã dùng công nghệ gọi là Phân Tích Sâu Gói Tin - Deep Packet Inspection (DPI) , ae nào học môn Hệ thống tìm kiếm, phát hiện và ngăn ngừa xâm nhập chắc là biết thằng này rồi còn không thì google. Vậy tại sao không chặn cmn IP đi cho dễ mà lại dùng công nghệ có vẻ phức tạp trên. Chặn IP thì không ổn chút nào. Các bạn đã nghe nói đến Cloudflare chưa? Chưa thì google đi, còn đơn giản nó là thằng bảo vệ các website. Vì các ...

Kết hợp Fiddler và Python bắt HTTP(S)

Hình ảnh
Kết hợp Fiddler và Python bắt HTTP(S) 1. Cấu hình Fiddler. Đầu tiên chúng ta cấu hình Fiddler nhận dữ liệu HTTP(S) từ các tiến trình (process). Sau đó trích xuất CA certificate ra Desktop. Chúng ta nhận được cửa sổ thông báo xuất tập tin FiddlerRoot.cer thành công. Tại Desktop chúng ta sẽ thấy tập tin FiddlerRoot.cer Hiện tại tập tin này đang lưu trữ dữ liệu ở dạng DER . Chúng ta sẽ chuyển nó về định dạng PEM , vì thư viện requests của python yêu cầu như vậy. Chi tiết về các định dạng trên các bạn có thể xem tại đây Nháy đúp chuột vào tập tin FiddlerRoot.cer . Nó sẽ hiện ra cửa sổ sau. Chọn thẻ Details . Rồi click nút Copy to File... Chọn Next . Chọn tiếp Base-64 encoded X.509 (.CER) . Rồi Next . Sau đó đặt cho tập tin mới. Rồi Next -> Finish . Xong Để chỉnh cổng (port) lắng nghe của proxy server vào Tools > Options... > Connections . Chỉ định cổng kết nối tại Fiddler listens on port: . 2. Cấu hình Python. Chúng ta sẽ tìm kiếm và biên tập tập tin c...

Các trang web xem phim đã sử dụng google drive như thế nào ?

Hình ảnh
Các trang web xem phim đã sử dụng google drive như thế nào ? Trước khi đọc bài viết này, các bạn nên đọc bài viết Làm thế nào mà trang web có thể phát video trước để có kiến thức cơ bản, giúp hiểu hơn bài viết này. Phụ lục Giao thức HLS là gì ? Khám phá. Họ đã sử dụng google drive để lưu phim ra sao ? Làm sao tải được HLS ? 1. Giao thức HLS là gì ? HTTP Live streaming (HLS) là một giao thức truyền dẫn (transport protocol) nội dung media, nó dựa trên HTTP. Được phát triển bởi Apple . Tập tin manifest của HLS là playlist có định dạng M3U8 (Phiên bản hỗ trợ Unicode của M3U dùng mã UTF-8). Đặc tả kĩ thuật của HLS các bạn có thể tìm hiểu tại đây HLS hoạt động như thế nào ? Sau đây là mô hình hoạt động đơn giản của HLS. Giải thích Từ nguồn đầu vào (Media source) như là tập tin MP4, MKV, máy quay phim, điện thoại, ... Chúng được đưa đến máy chủ (server) để lưu trữ, xử lý. Tại máy chủ, chúng được mã hóa (encode) thành chuẩn MPEG-2 TS, thường dùng các phần mềm như ffm...