Thứ Ba, 7 tháng 4, 2009

About me

Contact Information

  • Yahoo/Skype/Google giangsondat@
  • Mobile: 0988114164
  • You're welcome !

Bio

  • I'm an IT engineer on computer science. But I pay not much time for computing theories and algorithms. I prefer developing applications, especially networking field.
  • I've started coding php since 2005.

Now, I'm focusing on

  1. Develop web apps and services on LAMP (Linux).
  2. Take a view on .NET & Java of network programming.
  3. Software engineering.
  4. Researching CMS Frameworks
  5. Develop Dictionary & Translate 

Experts

  1. PHP & MySQL

Experienced

  1. PHP, MySQL, MSSQL, SQLite
  2. C#, Java
  3. Joomla, Drupal, CakePHP, jQuery
  4. Active Directory, LDAP
  5. HTML, Javascript including Ajax

Programming Language

  1. PHP4, PHP5
  2. C/C#, Java, SQL

DBMS

  1. MySQL 4.12 *, 5.
  2. MSSQLServer
  3. SQLite

Apache Groups

  1. Apache HTTP Server 2.0.59, 2.2.2
  2. ActiveMQ 5.0
  3. Tomcat 6.0

Dev Tools

  1. Firefox and its plugins (Open source): Firefox 2, Firefox 3 RC 2
  2. Aptana IDE (Eclipse) (Open source)
  3. JDK 6.0 (Open source)
  4. PHP 5.2.3 dev  (Open source)
  5. Dreamweaver 8 (Commercial)
  6. Java Development Kit 6.0
  7. FileZilla 3 (Open source)
  8. Photoshop CS2
  9. StarUML (open source)
  10. phpMyAdmin 2.9.11 (Open source)
  11. Notepad++ (open source) 
  12. PDT Eclipse

Test Tools

  1. Mercury Load Runner 8.0
  2. PHP Unit Test

Utilities

  1. Instant Demo 5.0

Thứ Tư, 11 tháng 2, 2009

Cách cài đặt apache mod_ssl trên windows

Đây là liên kết tới trang tutorial



Nội dung cơ bản như sau (đã thành công với phiên bản 2.2.8)

1. Cài đặt apache http server (2.x, 1.3.x không sử dụng được ssl)

2. Sử dụng openssl (có sẵn trong thư mục bin của apache)

copy ssleay32.dll and libeay32.dll vào thư mục system 32

tìm file openssl.cnf (có biểu tượng của window dialup) trong thư mục conf, hoặc download mẫu file openssl.cnf ở đây (nếu không thấy trong thư mục conf của apache) http://tud.at/programm/openssl.cnf

3. Tạo certificate : từ thư mục bin của apache (trong chế độ command line), lần lượt sử dụng các lệnh sau

openssl req -config $path/openssl.cnf -new -out my-server.csr
với $path là đường dẫn tới file openssl.cnf
my-server.csr là tên file output


openssl rsa -in privkey.pem -out my-server.key

openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365

openssl x509 -in my-server.cert -out my-server.der.crt -outform DER

Ok, lúc này trong thư mục bin của apache xuất hiện 2 tệp tin my-server.key và my-server.cert, bạn có thể giữ nguyên đó hoặc copy vào thư mục khác tùy ý, nhưng phải nhớ đường dẫn đến để thực hiện tiếp bước 4

4. Cấu hình apache httpd.conf

Mở chức năng ssl (mod_ssl.so)
Tìm tới dòng
#LoadModule ssl_module modules/mod_ssl.so
và đơn giản là bỏ dấu # (chú thích ở đầu đi)
LoadModule ssl_module modules/mod_ssl.so

Thêm vào hoặc sửa thông tin (nếu đã có sẵn)

<virtualhost www.my-server.dom:443> 
SSLEngine On 
SSLCertificateFile $path/my-server.cert 
SSLCertificateKeyFile $path/my-server.key 
</virtualhost>

#với chú ý, www.my-server.dom phải được thay bằng address của website của bạn, 
và $path là đường dẫn tới nơi chứa 2 file .cert và .key tạo ra bởi openssl 
How to config The Apache + SSL on Win32 SSL, apache, window

Thứ Sáu, 6 tháng 2, 2009

ISS rewrite with cakePHP

Hi,

I have read a lot of messages about running Cake PHP on IIS webserver. I was able to make it working using IIS_Rewrite Lite (http://www.isapirewrite.com/) with the following environment/settings/changes:

1. Create a new website on IIS pointing to /app/webroot folder. 2. Install IIS_Rewrite Lite and configure the httpd.ini file as follows:

[ISAPI_Rewrite]

RewriteCond (?!.*STATIC_REWRITE).* RewriteRule ^(.*)$ /index.php?url=$1 [L]

3. Enable the IIS_Rewrite Lite in the IIS ISAPI Filters. 4. Open the /app/webroot/index.php file and replace the all the lines from "require CORE_PATH.'cake'.DS.'bootstrap.php';" with the following code:

/* IIS Workaround */ if (isset($_GET['url']) && preg_match('/Microsoft-IIS/i', $_SERVER['SERVER_SOFTWARE']) && preg_match('/\?(.*)$/si', $_GET['url'], $matches)) { parse_str($matches[1], $_GET); } unset($matches); /* /IIS Workaround */

require CORE_PATH.'cake'.DS.'bootstrap.php';

if(isset($_GET['url']) && $_GET['url'] === 'favicon.ico') { } /* IIS Workaround */ elseif (isset($_GET['url']) && file_exists(dirname(__FILE__) . $_GET['url'])) { header('Location: ' . $_GET['url'] . '?STATIC_REWRITE'); exit(); } /* /IIS Workaround */ else { $Dispatcher= new Dispatcher (); $Dispatcher->dispatch($url); }

if (DEBUG) { echo ""; }

Please refer any bug/problem.

Thứ Bảy, 3 tháng 1, 2009

Cách tính lịch âm

Hôm nay lại bị nhắc nhở về quê giỗ bà. Chẹp chẹp, lịch dương thì còn có calendar để check. Lịch âm thì chỉ có list. Vì thế quyết định tìm hiểu lịch âm để làm cái ứng dụng calendar dành cho... âm lịch. Trên mạng có web về âm lịch nhưng hình như chưa có web nào gắn với quản lí event. Haizzzz...

Quote:
Âm lịch Việt Nam là một loại lịch thiên văn. Nó được tính toán dựa trên sự chuyển động của mặt trời, trái đất và mặt trăng. Ngày tháng âm lịch được tính dựa theo các nguyên tắc sau:
Ngày đầu tiên của tháng âm lịch là ngày chứa điểm Sóc.

Một năm bình thường có 12 tháng âm lịch, một năm nhuận có 13 tháng âm lịch.

Đông chí luôn rơi vào tháng 11 âm lịch.

Trong một năm nhuận, nếu có 1 tháng không có Trung khí thì tháng đó là tháng nhuận.

Nếu nhiều tháng trong năm nhuận đều không có Trung khí thì chỉ tháng đầu tiên sau Đông chí là tháng nhuận.

Việc tính toán dựa trên kinh tuyến 105° đông.

Sóc là thời điểm hội diện, đó là khi trái đất, mặt trăng và mặt trời nằm trên một đường thẳng và mặt trăng nằm giữa trái đất và mặt trời. (Như thế góc giữa mặt trăng và mặt trời bằng 0 độ). Gọi là "hội diện" vì mặt trăng và mặt trời ở cùng một hướng đối với trái đất. Chu kỳ của điểm Sóc là khoảng 29,5 ngày. Ngày chứa điểm Sóc được gọi là ngày Sóc, và đó là ngày bắt đầu tháng âm lịch.

Trung khí là các điểm chia đường hoàng đạo thành 12 phần bằng nhau. Trong đó, bốn Trung khí giữa bốn mùa là đặc biệt nhất: Xuân phân (khoảng 20/3), Hạ chí (khoảng 22/6), Thu phân (khoảng 23/9) và Đông chí (khoảng 22/12).

Bởi vì dựa trên cả mặt trời và mặt trăng nên lịch Việt Nam không phải là thuần âm lịch mà là âm-dương-lịch. Theo các nguyên tắc trên, để tính ngày tháng âm lịch cho một năm bất kỳ trước hết chúng ta cần xác định những ngày nào trong năm chứa các thời điểm Sóc (New moon) . Một khi bạn đã tính được ngày Sóc, bạn đã biết được ngày bắt đầu và kết thúc của một tháng âm lịch: ngày mùng một của tháng âm lịch là ngày chứa điểm sóc. Sau khi đã biết ngày bắt đầu/kết thúc các tháng âm lịch, ta tính xem các Trung khí (Major solar term) rơi vào tháng nào để từ đó xác định tên các tháng và tìm tháng nhuận.

Đông chí luôn rơi vào tháng 11 của năm âm lịch. Bởi vậy chúng ta cần tính 2 điểm sóc: Sóc A ngay trước ngày Đông chí thứ nhất và Sóc B ngay trước ngày Đông chí thứ hai. Nếu khoảng cách giữa A và B là dưới 365 ngày thì năm âm lịch có 12 tháng, và những tháng đó có tên là: tháng 11, tháng 12, tháng 1, tháng 2, …, tháng 10. Ngược lại, nếu khoảng cách giữa hai sóc A và B là trên 365 ngày thì năm âm lịch này là năm nhuận, và chúng ta cần tìm xem đâu là tháng nhuận. Để làm việc này ta xem xét tất cả các tháng giữa A và B, tháng đầu tiên không chứa Trung khí sau ngày Đông chí thứ nhất là tháng nhuận. Tháng đó sẽ được mang tên của tháng trước nó kèm chữ "nhuận".

Khi tính ngày Sóc và ngày chứa Trung khí bạn cần lưu ý xem xét chính xác múi giờ. Đây là lý do tại sao có một vài điểm khác nhau giữa lịch Việt Nam và lịch Trung Quốc.Ví dụ, nếu bạn biết thời điểm hội diện là vào lúc yyyy-02-18 16:24:45 GMT thì ngày Sóc của lịch Việt Nam là 18 tháng 2, bởi vì 16:24:45 GMT là 23:24:45 cùng ngày, giờ Hà nội (GMT+7, kinh tuyến 105° đông). Tuy nhiên theo giờ Bắc Kinh (GMT+8, kinh tuyến 120° đông) thì Sóc là lúc 00:24:45 ngày yyyy-02-19, do đó tháng âm lịch của Trung Quốc lại bắt đầu ngày yyyy-02-19, chậm hơn lịch Việt Nam 1 ngày.


Ví dụ 1: Âm lịch năm 1984
Chúng ta áp dụng quy luật trên để tính âm lịch Việt nam năm 1984.

Sóc A (ngay trước Đông chí năm 1983) rơi vào ngày 4/12/1983, Sóc B (ngay trước Đông chí năm 1984) vào ngày 23/11/1984.
Giữa A và B là khoảng 355 ngày, như thế năm âm lịch 1984 là năm thường. Tháng 11 âm lịch của năm trước kéo dài từ 4/12/1983 đến 2/01/1984, tháng 12 âm từ 3/1/1984 đến 1/2/1984, tháng Giêng từ 2/2/1984 đến 1/3/1984 v.v.

Ví dụ 2: Âm lịch năm 2004
Sóc A - điểm sóc cuối cùng trước Đông chí 2003 - rơi vào ngày 23/11/2003. Sóc B (ngay trước Đông chí năm 2004) rơi vào ngày 12/12/2004.

Giữa 2 ngày này là khoảng 385 ngày, như vậy năm âm lịch 2004 là năm nhuận. Tháng 11 âm của năm 2003 bắt đầu vào ngày chứa Sóc A, tức ngày 23/11/2003.

Tháng âm lịch đầu tiên sau đó mà không chứa Trung khí là tháng từ 21/3/2004 đến 18/4/2004 (Xuân phân rơi vào 20/3/2004, còn Cốc vũ là 19/4/2004). Như thế tháng ấy là tháng nhuận.

Từ 23/11/2003 đến 21/3/2004 là khoảng 120 ngày, tức 4 tháng âm lịch: tháng 11, 12, 1 và 2. Như vậy năm 2004 có tháng 2 nhuận.


Oh my god, đọc xong hết muốn làm ứng dụng nữa. Xem lịch âm rồi ghi nhớ ngày vào lịch dương cho từng năm cho nó lành T____T.