Chính sách và những định hướng cho phần mềm nguồn mở

Bài này cũng copy của một nguồn mở, tôi đã đọc từ ngày 7/9/2004, hôm nay tình cờ lục máy vợ, mò ra bài này, post lên đây coi như một kỷ niệm.

• Thế nào là phần mềm thương mại và phần mềm nguồn mở :
– Phần mềm thương mại: là sản phẩm phần mềm được sản xuất ra để bán và thu lợi nhuận (điển hình là các phần mềm đóng gói hiện nay của Microsoft). Nhà sản xuất trích một phần trong số lợi nhuận đó để tái đầu tư, nghiên cứu phát triển các sản phẩm và công nghệ mới. Chính vì vậy, ”phần mềm này không thể miễn phí, giá thành cũng không thể rẻ như cho”, ý kiến của Microsoft.

– Phần mềm nguồn mở: là phần mềm được phát triển nhờ sự hợp tác của cộng đồng và được cộng đồng người dùng tự nguyện chia sẻ với nhau. Hiện nay, nguồn mở phổ biến nhất trên thế giới là Linux. Từ một nhân Linux mở, các nhà lập trình đã phát triển thành nhiều phần mềm hoàn chỉnh như: sản phẩm hệ điều hành Linux của các hãng Red Hat, SuSE, Mandrake, Hồng Kỳ,…

-\ Vậy tại sao mã nguồn mở phát triển

Phần này thay vì nói lên lý do tại sao cộng đồng mã nguồn mở vẫn phát triển, tôi chọn cách trả lời các suy nghĩ thường cho là mã nguồn mở sẽ chết trong một ngày gần đây.

Continue reading

Make your http (web, wap, api, text, blah) sites faster and faster

  1. Cache
  2. Review cache
  3. Anything should not be there must not be there
  4. Transfer what really need to transfer
  5. If something need to transfer, minify it
  6. Lazy load (do load only when needed)

There are some resource I follow (but I do not grab it all :D, I do lazy grab)

http://developer.yahoo.com/performance/rules.html

Cache control problem with IE6 when do Ajax site call XML API

When create ajax site, we let client browser use js to make some call to our API services (REST). API function return output as XML (our format). Then the js at browser parse the return XML to display some fancy on screen.

Firefox, Mozzila base work fine, but IE6 is so stupid and lazy. IE6 cache the return XML data, and later call to API (with the same URL), IE6 take data from it internal cache, avoid calling from API.

To avoid it, our API server must send some header(s), tell the browser (client) NOT TO CACHE the XML data (fetching from API). You must do it from SERVER, remember.

Here is correct sequence (write in PHP), work for IE6

header(“Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
header(“Last-Modified: ” . gmdate(“D, d M Y H:i:s”) . ” GMT”);
header(“Cache-Control: no-store, no-cache, must-revalidate”);
header(“Cache-Control: post-check=0, pre-check=0”, false);
session_start();
header(“Cache-Control: private”);

But, beside the problem with IE (while using js, make ajax call to XML file), using caching with API oriented and ajax call is very sweet.

Some resource I found here about caching:

http://www.htaccesselite.com/using-php-header-function-vt156.html
http://www.phpbuilder.com/board/showthread.php?t=10294526

Use Server Cache Control to Improve Performance – apache web server settings for optimized caching with configuration files


http://www.chriskirkland.net/news/59_PHP-Cache-Control-script.html
http://www.badpenguin.org/docs/php-cache.html
http://www.mnot.net/cache_docs/
http://www.htaccesselite.com/using-php-header-function-vt156.html