Chủ Nhật, ngày 15 tháng 3 năm 2015

Để viết blog hiệu quả

Tôi viết bài này để chia sẻ kinh nghiệm của tôi về việc viết blog. Cách đây không lâu, có người nói rằng tôi thường hay viết blog, và viết cũng khá tốt, và người ta hỏi tôi về phương pháp làm sao viết hiệu quả, vì người ta cũng cố gắng viết nhưng hầu hết là không publish ra được. Người ta hỏi tôi chỉ bởi vì tôi đã viết khá nhiều blog và cũng đã viết khá nhiều bài.

Gần đây thì có một vài người đặt vấn đề này lại với tôi. Tôi nghĩ tôi có thể chia sẻ trên blog của mình để những người khác nữa có thể tìm hiểu và tham khảo cách tiếp cận của tôi. Đôi khi giúp ích cho một ai đó.

0. Trước khi bắt đầu

Khái niệm viết blog mà tôi đề cập xuyên suốt bài này là để chỉ những bài viết cá nhân dùng để chia sẻ kinh nghiệm hoặc trải nghiệm cá nhân, không phải các bài viết để quảng bá hoặc tin tức hoặc các nghiên khảo, nghiên cứu, luận văn này kia. Tất nhiên, mọi người có thể sử dụng những kinh nghiệm viết bài của tôi để cải thiện mọi loại bài viết, nhưng tôi không khẳng định nó có áp dụng được.

Và, những kinh nghiệm này là kinh nghiệm cá nhân của tôi, theo cách nhìn nhận của tôi và theo văn phong của tôi mà thôi.

1. Hãy biết bạn cần gì

Hoặc là bạn đã từng cần gì.

Khi bạn cần một thông tin gì đó, bạn sẽ lùng sục về nó trên internet. Câu chuyện là: Sẽ có rất nhiều người có nhu cầu giống như bạn, và họ cũng sẽ lùng sục giống như bạn đã làm.

Vậy, thay vì nhức óc tìm một đề tài hoặc một kinh nghiệm thú vị của bạn, bạn hãy bắt đầu bằng những kinh nghiệm mà bạn rút ra sau mỗi lần "lùng sục" ấy. Việc này sẽ giúp cho bạn hiểu thấu đáo vấn đề hơn, và giúp cho rất nhiều người khác nhanh chóng tìm lấy thông tin họ cần.

2. Đừng quá lo lắng về người đọc sẽ nghĩ gì

Thực tế là sẽ chẳng có nhiều người đọc đâu. Hoặc giả họ có đọc, họ cũng không nghĩ gì nhiều.

Đôi lúc, khi bạn viết, bạn nghĩ rằng đây là một đề tài nghiên cứu thú vị của mình, và người đọc sẽ lấy làm ngạc nhiên khi bạn trình bày thông tin như vậy. Nếu bạn có suy nghĩ và viết vì mục đích như vậy, tôi cho là khá tốt. Vì khi đó bạn thật sự nghiêm túc với bài viết và các suy nghĩ của mình, nhưng nếu điều đó khiến cho bạn phải trau chuốt câu chữ, ý và lời thì tôi nghĩ bạn đã đi quá xa.

Bây giờ, bạn đóng vai trò người đọc xem nào. Bạn cần gì nào? À, cái mà chúng ta cần mỗi lần đọc bài người khác là: lướt nhanh qua, nắm các ý chính, và hết. Người đọc của bạn cũng sẽ như vậy. Họ sẽ đọc một lượt, nắm các ý chính và họ sẽ không đọc lại lần nào nữa. Điều phũ phàng hơn là, 80% người đọc sẽ quên mất ý chính đó vào ngày hôm sau.

Bạn, nếu đã viết bài thì hãy quan tâm tới người đọc, cung cấp cho họ thông tin mà họ cần, nhưng đừng quá lo lắng về người đọc.

3. Hãy thoải mái viết theo cách nghĩ của mình

Không có một bài văn mẫu nào, không có cách viết blog chuẩn nào, cũng không có ai ràng buộc bạn phải viết về đề tài bạn không thích.

Đó là blog của bạn.

Khác với các bài văn thời đi học, chúng ta phải viết có các ý chính thế này thế kia, rồi phải bao gồm mở bài - thân bài - kết bài này nọ. Hãy dành cho blog của bạn một không gian riêng, độc lập, và là nơi bạn trải lòng mình ra, chia sẻ những hiểu biết của mình. Hết.

Đôi khi, blog chỉ gồm vài dòng, nhưng nó lại có ý nghĩa lưu lại một khoảng khắc trong cuộc đời của bạn, và nó đã trở thành một bài blog có ý nghĩa với bạn rồi.

Rất nhiều người nghĩ: Họ viết bài là để PR cho bản thân. Xin thưa rằng, sẽ chẳng ai quan tâm đến bạn là ai trên blog, người ta chỉ quan tâm đến blog của bạn vì ở đó có vài thông tin gì đó mà họ cần. Những người quan tâm đến bạn chỉ là những người bạn ngoài đời của bạn, họ quen biết bạn, và họ biết bạn có viết bài này bài nọ. Nhưng họ lại không thật sự quan tâm đến bạn đã viết cái gì. Vậy có lợi ích PR gì ở đây không? Hoàn toàn không. Người đã biết bạn thì họ không quan tâm bạn viết cái giống gì, còn người không biết bạn thì họ chả cần biết bạn là ai.

4. Viết liền, kẻo quên

Ý tưởng hoặc kinh nghiệm chỉ đến trong một thời gian ngắn, nếu bạn không viết liền, ắt sẽ quên.

Đôi khi, nó còn liên quan tới cảm xúc. Bạn có ý tưởng, nhưng ngày hôm sau nó sẽ nhạt dần, đến nỗi bạn sẽ không còn tâm trí đâu mà viết tiếp nữa.

Tuy nhiên, thường là bạn không có thời gian để ngay lúc có ý tưởng là có thể viết ngay. Vậy nên cứ note các ý chính lại, để khi nào có thời gian thì khai triển nó ra. Nhưng điều cốt yếu là phải bắt đầu ngay khi có thời gian, bạn để qua ngày hôm sau là mọi thứ nhạt dần ngay. Phải là một ý bạn rất tâm đắc bạn mới có thể viết vào ngày hôm sau, còn không thì bạn sẽ nản khi viết.

5. Đừng chú tâm tới SEO này nọ

Việc này thật ra cũng tốt thôi, nó sẽ giúp cho người khác có cơ hội tìm thấy bài viết của bạn dễ dàng hơn. Nhưng đừng quá chú tâm vào nó, mất nhiều thời gian, mà đôi khi lại phản tác dụng.

Điều bạn cần quan tâm nhiều nhất là: Duy trì lượng bài viết của mình thường xuyên, và nâng cao khả năng viết bài của mình.

Có 2 hướng để nâng cao: 1- Viết rõ ràng và dễ hiểu hơn, 2- Rút ngắn thời gian từ ý tưởng thành bài viết hoàn chỉnh.

Nếu bạn viết tốt, người ta sẽ tìm đến bạn, và nếu bạn luôn cung cấp cho người ta thông tin có ích, người ta sẽ để ý hơn trang web của bạn. Còn nếu bạn viết chưa tốt, thì dù cho bạn có cò kéo thế nào cũng không xong, đôi khi còn bị mấy cái search engine đánh giá thấp.

Hãy viết blog trên các công cụ nổi tiếng như Wordpress, Blogger, Drupal,... Và yên tâm rằng các công cụ này có sẵn các hình thức SEO mặc định rồi, nó quá đủ cho nhu cầu của bạn.

Một phút dành cho quảng cáo

Tôi đã từng viết nhiều blog như: http://tuoilapnghiep.kimkha.com/, http://tuoihaimuoi.kimkha.com/, http://think.kimkha.com/

Thứ Bảy, ngày 14 tháng 3 năm 2015

Note: Tài khoản Viettel ADSL/FTTH cho thanh toán online

Bài viết ngắn này chỉ dùng để note lại và là guide cho những người chưa biết.

Bạn nào đã từng thanh toán hoá đơn trên Internet Banking chắc chắn biết những gì chúng ta cần là thông tin tài khoản (còn được gọi là mã khách hàng, hoặc số thuê bao). Để thanh toán bằng Internet banking, trước hết bạn phải có tài khoản đăng nhập vào dịch vụ Internet Banking của ngân hàng của bạn. Với điều kiện ngân hàng của bạn hỗ trợ dịch vụ Thanh toán hoá đơn ADSL của Viettel mới được.

Mặc dù bạn đang dùng cáp quang (FTTH) nhưng khi thanh toán bạn vẫn phải chọn dịch vụ là Thanh toán ADSL, với đúng nhà cung cấp là Viettel (có nhiều tỉnh thành, và bạn phải chọn đúng).

Phần gian khó nhất là mã khách hàng. Tại sao? Bởi vì nhà mạng Viettel cung cấp cho bạn một lô các số và mã. Lần đầu tiên, tôi thật sự thấy khó khăn vì không biết nhập cái nào, phải nhập từng cái một. Và giờ tôi có thể khẳng định rằng, mã khách hàng có định dạng: ****_ftth_****

Hằng tháng, Viettel sẽ gửi tin nhắn đến nhắc bạn đóng tiền, và trong tin nhắn có mã này với tên số thuê bao, và vài thông tin khác, nhưng bạn chỉ cần chú tâm đến mã này thôi. Tất nhiên, trong Biên bản nghiệm thu cũng có thông tin này.

Một điểm cần lưu ý là: Vừa rồi tôi có thử thanh toán bằng Eximbank, tuy nhiên, khi nhập mã này vô thì nó bảo "Mã khách hàng không đúng". Tôi khẳng định rằng đó không phải là lỗi của bạn. Nếu bạn thanh toán bằng Vietcombank hoặc ngân hàng khác, bạn sẽ thấy ở màn hình xác nhận, thông tin người chủ hợp đồng và địa chỉ không có, nhưng số tiền thì đúng. Trường hợp này là do API bên Viettel không trả thông tin trên, nhưng bên Eximbank cần nó để xác nhận là đúng dữ liệu.

Anyway, tóm lại là khi bạn nhập đúng mã khách hàng mà không được thì hãy sử dụng ngân hàng khác để thanh toán, thay vì mất thời gian loay hoay với nó.

Danh sách các ngân hàng hỗ trợ thanh toán cho Viettel (chỉ là danh sách có hỗ trợ, còn thực sự thanh toán có được hay không thì mình không khẳng định):

  • Vietcombank
  • BIDV
  • Techcombank
  • VietinBank
  • HDBank
  • AgriBank
  • Sacombank
  • SaigonBank
  • NamABank
  • PGBank
  • GPBank
  • ACB
  • BacABank
  • Eximbank
  • MaritimeBank
  • SeABank
  • TienPhongBank
  • VIB
  • VietABank
  • VPBank
  • Navibank
  • OceanBank
  • MB
  • OCB

Tái bút: Nhiều người nói thanh toán online không đảm bảo, nhưng tới giờ tôi vẫn sử dụng tốt, và chưa một lần bị mất tiền vô ích. Tôi đã thanh toán điện thoại, ADSL, tiền điện và cả tiền nước nữa.

Thứ Hai, ngày 09 tháng 3 năm 2015

TLDR - Cải thiện tốc độ tải trang web?

Điều đầu tiên bạn cần nhớ: Hãy luôn kiểm tra các chỉ số.

Chúng ta có rất nhiều công cụ để đo lường về tốc độ tải trang, mà tôi thì khá thích sử dụng PageSpeed Insight của Google. Và tất nhiên là còn rất nhiều công cụ khác mà bạn có thể tìm kiếm trên internet.

Hãy thử test xem website của bạn được bao nhiêu điểm?

Action 1: Hãy sử dụng reverse proxy server

Tôi khuyên mọi người hãy sử dụng các reverse proxy server như nginx. Đôi khi chỉ cần cài đặt, cấu hình mặc định của nginx đã giúp bạn cải thiện một ít rồi.

Sau đó, hãy tiếp tục cài đặt những thứ sau:
  1. Cache-Control: Khai báo thêm header này sẽ giúp browser của người dùng lấy bản cache thay vì request lên server, đỡ thời gian chờ rất nhiều.
  2. GZip: Config này giúp response HTML, JS và CSS được nén lại đáng kể.
  3. Nginx cache: Các resource tĩnh (hình ảnh, JS, CSS) nên được cache trên RAM của nginx server.
  4. ...

Action 2: Sử dụng hình ảnh hiệu quả hơn

Có 2 lỗi mà mọi người hay mắc phải:
  1. Kích thước hình ảnh quá to so với cần thiết để hiển thị
  2. Chưa làm lossless optimize để giảm dung lượng mà không giảm chất lượng

Về kích thước hình ảnh, nếu trang web của bạn chỉ support máy tính (không support mobile), bạn chỉ cần hình ảnh đúng kích thước khi hiển thị. Tuy nhiên, ngày nay việc support mobile đang dần trở nên phổ biến hơn, do đó bạn cũng nên chuẩn bị ngay từ bây giờ.

Với mobile, kích thước hình ảnh chỉ nên gấp đôi kích thước hiển thị. Thấp hơn, bạn sẽ thấy răng cưa. Còn cao hơn, dung lượng sẽ phình lên mà không có sự khác biệt.

Sau khi xem xét kích thước hình ảnh, bạn hãy thực hiện optimize. Tool rất hiệu quả là TinyPNG có thể optimize hình PNG và JPG. Lưu ý rằng bạn chỉ nên optimize 1 lần mà thôi, thực hiện optimize 2 lần có thể khiến chất lượng bị giảm xuống. Bạn nào thích dùng command line để thực hiện hàng loạt thì tham khảo tool pngquant (đây là bộ core của TinyPNG).

Action 3: Sử dụng server hiệu quả hơn

Đây là vấn đề sau cùng khi response từ trang web của bạn quá chậm. Hãy xem xét nên chuyển server mới hay không, thuê dịch vụ mới chẳng hạn.

Nên biết rằng, nếu hosting của bạn nằm quá xa so với người dùng mục tiêu của bạn, họ sẽ vào trang web của bạn rất chậm. Do vậy, khi thuê hosting bạn phải thuê những hosting gần với thị trường mục tiêu của mình. Trang web cho người VN thì nên hosting ở VN hoặc xa lắm là Hong Kong hoặc Singapore.

Việc tối ưu tốc độ xử lý trên server cũng là một yếu tố rất quan trọng. Và hãy tìm cách định lượng con số này. Tốc độ tốt nên <100ms cho một request bất kỳ, và sẽ rất tuyệt nếu thời gian xử lý <30ms.

Note

Bạn sẽ gặp ở đâu đó, ai đó bảo bạn nên làm cái này cái kia. Ví dụ: đặt hình ảnh ở cookieless domain, sử dụng CDN,... Tôi thì khuyên bạn nên thực hiện 3 điều trên trước khi cân nhắc tới các phương án khác. Bởi vì 3 điều trên dễ làm và ít tốn chi phí hơn cả.

Tái bút: Hầu hết mọi trang web chuyên nghiệp đều thoả mãn cả. Tôi viết bài này chỉ dành cho những người mới tìm hiểu thôi. ^_^

Thứ Năm, ngày 23 tháng 10 năm 2014

Vài yếu tố liên quan đến doanh thu của game


Bạn có một ý tưởng tốt. Bạn đã viết ra một game hay. Và giờ bạn muốn có chút doanh thu từ nó. Không ai cấm bạn cả...

Ơ, nhưng mà thế nào là một game hay? Có rất nhiều tiêu chí để đánh giá, nhưng một tiêu chí đo lường phổ biến nhất là: Số người chơi (unique user) và thời gian người ta chơi (spent time). Tạm thời chúng ta chấp nhận điều này, để tôi đi vào điều chính.

Thứ Bảy, ngày 18 tháng 10 năm 2014

So sánh HTML5 Game Engines

 Xu hướng ngày nay, nhiều người đang tìm kiếm một game engine phù hợp với nhu cầu để thực hiện các dự bạn cho mình. Bài viết này đánh giá một cách sơ bộ các game engine viết thuần bằng JavaScript và HTML5, để có một hướng đi mới khác với nhưng game engine nổi tiếng hiện nay.
Bảng đánh giá này chỉ dựa trên documents của các engine, hoặc đọc sơ qua source code, không phải là bản đánh giá chi tiết.
Bảng đánh giá này được viết khá cũ, ngày 30 tháng 11 năm 2014, nên có thể có nhiều thay đổi. Tôi post lại nhằm mục đích tham khảo.

Thứ Hai, ngày 13 tháng 10 năm 2014

Bộ gõ Tiếng Việt trên Chrome

Hiện nay, trình duyệt Chrome đã trở nên phổ biến, hơn nữa một số nơi bắt đầu sử dụng Chrome OS nhiều hơn. Và trình duyệt này mạnh mẽ với các extension viết bằng JavaScript.

Nắm bắt nhu cầu của một số người Việt Nam, muốn sử dụng một bộ gõ tiếng Việt trên Chrome và Chrome OS, cách đây không lâu tôi có viết extension AVIM for Vietnamese, để đáp ứng nhu cầu này.


Tri thức cho việc tìm đường và điểm chiến lược

Trong các game AI một trong những vấn đề quan trọng nhất là giải quyết bài toán tìm đường, có rất nhiều giải thuật giúp chúng ta giải quyết các bài toán này như A*, D*, giải thuật phân cấp đồ thị… Một điểm chung của tất cả các giải thuật này là chúng hoạt động trên một đồ thị các node đã có đầy đủ các tri thức về vị trí node, kết nối giữa các node, và lượng giá giữa các node này.
Vấn đề đặt ra là trong qui trình thiết kế game, ban đầu người thiết kế chỉ tạo ra một bản đồ thế giới game và không hề có bất kì tri thức nào trên đó, do đó cần phải có một qui trình để ánh xạ từ một bản đồ game ban đầu thành một đồ thị node với đầy đủ tri thức phục vụ cho việc tìm đường.

Thông thường các tri thức AI được cung cấp cho game theo 2 cách khác nhau: có thể làm thủ công hoặc  làm bởi các quá trình độc lập tự động, tuy nhiên để đạt hiệu suất cao nhất cách thông thường là kết hợp giữa 2 cách trên,  quá trình tự động sẽ được diễn ra dưới sự giám sát và tối ưu lại của con người.

Biểu mẫu liên hệ

Tên

Email *

Thông báo *