Việt Nam đầu tư đô thị đồng đều hơn

Ở Việt Nam mình thấy có sự đồng đều về phát triển giữa các thành phố lớn nhất của cả nước hơn vài nước xung quanh. Cụ thể hơn, hầu như TpHCM có cái gì thì Hà Nội có cái đó. Cả 2 cùng được đầu tư đặt ĐH Quốc gia, cùng được xây đường sắt nội đô, cùng có hầm chui, cùng có sân bay quốc tế, cùng được cho xây những khu thể thao phục vụ SEA Games, 2 tp cũng liên tục kèn cựa nhau về tháp cao nhất v.v...

Trong khi nhìn sang Malaysia, thì chỉ có thủ đô là được ưu đãi vượt trội so với thành phố lớn thứ 2, Penang. Trong khi Kuala Lumpur có hàng loạt tuyến đường sắt nội đô thì Penang chẳng có cái nào. Sân bay của Penang thì chủ yếu dành cho các hãng giá rẻ. Nhiều khi muốn đi ra nước ngoài là phải bay từ Penang đến KL rồi mới từ KL bay tiếp v.v...

Thái Lan cũng tương tự, nguồn lực chủ yếu được dồn cho thủ đô.


Vai trò của Nginx đối với web app

Khi viết web app bằng các ngôn ngữ script như Python, Ruby, JavaScript (NodeJS) và triển khai lên server, ta hay được khuyên cho chạy web app của ta đằng sau Nginx, tức là Nginx sẽ đứng chắn giữa web app của ta và người truy cập. Mọi truy vấn web từ người dùng sẽ đi đến Nginx, và Nginx đóng vai trò của một reverse proxy, chuyển tiếp truy vấn đến web app.

Vậy Nginx làm công việc gì, ích lợi ra sao?

Giờ ta ví dụ với web app được viết bằng Django.

Giả sử ta không có Nginx, và để các request từ phía trình duyệt người dùng gửi đến thẳng web app. Ta biết rằng, phần lớn thời gian từ lúc trình duyệt gửi request đến lúc nhận được response là dành cho việc truyền tải nội dung, thời gian xử lý để sinh ra response chỉ chiếm một phần nhỏ. Giả sử web app chỉ phục vụ một request một lần, thời gian phục vụ mỗi request là 1s (bao gồm thời gian xử lý sinh ra nội dung 100ms và còn lại là thời gian truyền tải), thì trong 1 phút, web app chỉ phục vụ được 60 request. Chưa kể, khi ấy web app cũng phải phục vụ request những file tĩnh, như các file ảnh, JavaScript, CSS, vốn không phải là mục đích chính của web app. Web app là để sinh ra nội dung động. Nếu phải phục vụ cả các file tĩnh này thì số lượng phục vụ những request để nhận nội dung HTML bị rút gọn lại rất ít. Khi ta mở một trang web, thường request nội dung HTML là 1, trong khi request file tĩnh kể trên có thể là 10, và thường file tĩnh nặng hơn nội dung HTML động nên thời gian truyền tải cũng lớn hơn, có thể tới 2s. Như vậy, với cách cài đặt như trên, 1 phút web app chỉ phục vụ 3 - 6 khách. Nếu có 1 vài khách ở xa, hay đường truyền chậm, vì khách này cũng ngốn mất thời gian của web app. Số lượng phục vụ lại càng giảm.


Thái độ của Malaysia đối với mại dâm

Mấy bữa nay, nhân có chuyện có người đề nghị hợp pháp hóa mại dâm ở Việt Nam, hoặc thành lập một khu riêng cho việc hành nghề này, mình xin kể một xíu về mại dâm ở Malaysia, với tí hiểu biết mà mình có được (mình không phải nhà báo nên không có khả năng điều tra sâu rộng kĩ càng).

Pudu prostitute GRO

Trước hết, mại dâm ở Malaysia là bất hợp pháp. Các chiến dịch truy quét các điểm có mại dâm vẫn xảy ra thường xuyên, và được quay lại thành video phát công khai. Có 1 kênh riêng, MKL Crimedesk, trên Youtube để đăng video này. Các chiến dịch truy quét này được gọi lóng là "gió" (wind). Khi nói "dạo này gió to quá", nghĩa là đang có chiến dịch lớn, "gió vừa quét qua khu XX" nghĩa là "công an vừa bắt ở khu XX".


New nginx makes PHP website return blank page

Recently, I upgraded Nginx in this server and after some days, I discovered that one of my PHP websites (for internal use) was not working! It just returned completely blank page (no text or HTML source), even with the script containing only phpinfo().

At first, I didn't know that it was caused by Nginx, or it is because of upgrading Nginx. I tried to look in to various log files, from Nginx's to php5-fpm but did not see anything. I configured PHP to always display error, still no help. Searching around, I found that someones in Internet also get this phenomenon, after upgrading Nginx. Some suggests to change Nginx's virtual host configuration (the files in /etc/nginx/sites-available/). So I understand that new Nginx may bring changes that old configuration file will not be compatible!

But, then there is a question: How do I know how the configuration should be, to be working with upgraded Nginx?

Well, I've just noticed that Nginx installation on Ubuntu comes with some sample in snippets/ folder:




Truy cập nhanh giao diện dòng lệnh của PostgreSQL

Để truy cập vào một hệ sơ sở dữ liệu (CSDL), ta luôn cần 3 thông số: địa chỉ server, username và password. Sẽ không là vấn đề khi một chương trình được cấu hình tự động để truy cập vào hệ CSDL, nhưng nhiều khi ta phải kết nối vào giao diện dòng lệnh, để tự tay làm một số việc với dữ liệu, và phải đối mặt với sự phiền hà của việc tìm lại và khai báo username, password. Username có thể dễ hơn vì ta thường đặt một username dễ nhớ, nhưng password thì luôn phải rắc rối và thường ta không thể nhớ được, phải cất đâu đó. Đã phải mất công tìm kiếm, mà tự tay gõ cũng phiền nữa. Thế nhưng với PostgreSQL, ta có một mẹo để làm việc này nhẹ nhàng hơn.

PostgreSQL cho phép "gắn kết" một tài khoản user trong nó với tài khoản user của hệ điều hành. Ví dụ trên hệ điều hành (Linux, Unix) ta có user quan và trong PostgreSQL ta tạo một user (role) cũng tên quan, thì khi ta đang đăng nhập vào hệ điều hành dưới user quan, ta có thể truy cập ngay lập tức vào PostgreSQL dưới role quan mà không cần đăng nhập, tức là không phải khai báo hostname, username và password.

Thay vì ta phải gõ

...

Setup router to work with Malaysian TM Unifi service

These days I have tough time to setup my office router. My company use internet provided by TM (Telekom Malaysia), under the name UniFi (not to be confused with Ubiquiti UniFi, a brand of network device).

This network have a custom setup that, minimal configuration (with PPPoE username and password only) doesn't work. The router fails to connect to ISP with error "Timeout waiting for PADO packet". Normally, TM provides its own router to customer and nothing should be cared to make it work. But because that router is not stable enough, we decide to replace it with a TP-Link router (WDR4300ND model).

First time I configured the router is some months ago, with careful reading before doing, and did it so smoothly that I didn't notice there is customization in the router. But today, I upgrade firmware, and problems come out. Something to note:

  • The router should be installed with Malaysia-targeted firmware. Our router is sold in Malaysia, so it comes with a variant of firmware for Malaysia providers, such as TM Unifi, Maxis... I didn't notice this, so when I looked for new firmware to upgrade, I wrongly took the "international" one.

Thẻ chi trả đi lại ở Malaysia

Nếu bạn đi du lịch ở Kuala Lumpur (Malaysia), và ưu tiên đi các phương tiện công cộng như xe buýt, tàu điện, thì nên mua thẻ chi trả. Có 2 thương hiệu thẻ như sau:

Touch 'n Go

Touch n Go

Do cty Touch 'n Go phát hành. Thẻ này đi được hầu hết các phương tiện công cộng ở Kuala Lumpur: Xe buýt RapidKL, tàu điện LRT, tàu điện Monorail, tàu điện KLIA Express/Transit, tàu điện KTM Commuter. Không những dùng để đi lại, thẻ còn dùng để trả tiền qua trạm thu phí đường.


Nhà nghỉ rẻ ở Cần Thơ

Năm ngoái, tháng 7/2014, mình vô tình tìm được 1 nhà nghỉ rẻ mà phòng ốc khang trang rộng rãi. Giá chỉ có 150k/đêm thôi.

Nhà nghỉ nằm ở cuối hẻm 11 (hay hẻm kế bên, không nhớ rõ), trên đường Mậu Thân, gần ngã tư Mậu Thân - 3/2.

Nay ghi lại để chia sẻ.