Giới thiệu Virtual Environment trong Python

x-post from kipalog.com Virtual Environments là gì và dùng để làm gì? Virtual Environment dịch nôm na là môi trường ảo :D Cũng giống như máy ảo (Virtual Machine), Virtual Environment thiết lập một môi trường ảo, cho phép bạn nghịch ngợm lung tung với các packages của Python mà không làm ảnh hưởng đến những packages đã được cài đặt sẵn trên Python. Ví dụ bạn muốn thử nghiệm với Django 1.8 trong khi trên hệ thống đang cài đặt Django 1.4 LTS. Cũng giống như việc bạn dùng Virtual Machine để thử nghiệm phiên bản Chrome beta mới nhất mà không muốn làm ảnh hưởng đến phiên bản đang có trên máy. Công cụ tạo ra Virtual Environment trên Python là virtualenv. virtualenv tạo ra một thư mục chứa tất cả những thứ cần thiết (executables, libraries). Sử dụng Virtual Environment như thế nào? Trước hết để sử dụng được Virtual Environment thì bạn phải cài virtualenv cái đã. $ pip install virtualenv Tạo Virtual Environment $ virtualenv [project_name] virtualenv sẽ tạo ra một thư mục có tên là [project_name] chứa tất cả những gì cần thiết. Hãy thử xem nội dung của thư mục này: ./lib ./lib/python2.6 ./lib/python2.6/site-packages ./lib/python2.6/distutils ./include ./bin Nếu trên server có nhiều phiên bản Python (2.x, 3.x) bạn hoàn toàn có thể khởi tạo Virtual Environment với một phiên bản chỉ định: virtualenv -p /usr/bin/python2.7 [project_name] Hoặc bạn có thể tạo một Virtual Environment mà không có các packages đã được cài đặt sẵn (trong trường hợp bạn muốn làm mọi thứ từ đầu: virtualenv –no-site-packages [project_name] Sử dụng Virtual Environment Khởi động Virtual Environment bằng câu lệnh: $ source [project_name]/bin/activate Tên của Virtual Environment sẽ xuất hiện ở phía trước command prompt, cho ta thấy Python đang sử dụng Virtual Environment. Từ

PayPal, reddit, Youtube, … đã lôi kéo người dùng như thế nào

x-post from kipalog.com PayPal, reddit, Youtube hay bất cứ trang nào sống nhờ nội dung do người dùng tạo ra (user-generated contents), dù có nổi tiếng đến đâu thì đều trải qua giai đoạn khó khăn ban đầu: thu hút người dùng. Có nội dung thì mới có người dùng, nhưng có người dùng thì mới có nội dung. Sẽ không có ai đăng video lên Youtube nếu không có ai xem, nhưng để có người xem thì trước hết phải có nội dung cái đã. Những nền tảng trực tuyến, đặc biệt là những nền tảng đòi hỏi sự tương tác giữa người dùng (phía cung cấp nội dung (producers) và phía tiêu thụ nội dung (consumers) thường gặp rất nhiều khó khăn khi bắt đầu hoạt động. Cả producers và consumers đều phải tồn tại và tương tác cùng lúc từ những ngày đầu tiên thì nền tảng đó mới có cơ hội thành công. Vậy những nền tảng đó đã giải quyết bài toán đó như thế nào để lôi kéo người dùng? Dưới đây là 3 phương pháp chính. Seeding and Weeding (nôm na là tự sản tự tiêu) Bản chất của phương pháp này là tạo ra người dùng ảo ở cả 2 phía consumers và producers, đồng thời tạo ra các tương tác ảo giữa 2 bên. Ví dụ điển hình là các trang hẹn hò hoặc bán hàng trực tuyến. Hồ sơ và tương tác (hẹn hò, mua bán) của người dùng được tạo ra tự động, làm cho người dùng mới có cảm giác những trang này đang hoạt động rất sôi nổi. Seeding Demand (tạo cầu ảo) Còn gì thích hơn khi bạn đăng một sản phẩm đấu giá lên eBay và ngay lập tức có hàng chục bid? Khi bạn

Giới thiệu SSH Tunnel và một số ứng dụng

x-post from kipalog.com Liệu đây có phải là động lực để mình viết nhiều hơn không? Hy vọng thế. SSH, viết tắt của Secure Shell, là một giao thức mã hoá thường được sử dụng để truy nhập vào các máy chủ từ xa (đặc biệt là các máy chủ Linux). Hầu hết các máy chủ Linux đều được cài đặt mặc định một chương trình SSH Server như OpenSSH hay Dropbear, sẵn sàng phục vụ các kết nối tới cổng mặc định 22. Ở phía người dùng, có rất nhiều phần mềm để tạo kết nối tới server như PuTTY cho Windows và ssh cho Linux/Mac. 2 phương thức xác thực chủ yếu được sử dụng là mật khẩu và khoá công khai. Sau khi đăng nhập thành công, người sử dụng sẽ có quyền sử dụng shellmặc định hoặc shell được gán cho người dùng đó. Toàn bộ trao đổi qua lại giữa người dùng và máy chủ được mã hoá với giao thức được chỉ định khi kết nối. SSH Tunnel cho phép trao đổi dữ liệu thông qua một kênh mã hoá. SSH Tunnel tuy thiết lập rất đơn giản nhưng lại có rất nhiều ứng dụng. Nếu bạn có quyền truy nhập (không nhất thiết phải là root) tới một máy chủ Linux thì SSH Tunnel sẽ đem lại những lợi ích rất thiết thực. Nếu không thì bạn có thể tham khảo một số server giá rẻ trên trang này: http://lowendbox.com Tôi cũng đang sử dụng một máy chủ dành riêng cho SSH Tunnel với giá chỉ có $15/năm. Dưới đây là một số ứng dụng phổ biến. Trong đó A là máy chủ mà bạn có quyền truy nhập SSH. C là workstation.port_number là một cổng bất kỳ chưa được sử dụng bởi