Friday, March 6, 2009

Sử dụng Flickr đăng bài cho Blogger

Flickr, một dịch vụ quản lý ảnh trực tuyến được Yahoo mua lại, cái tên quá quen thuộc đối với cộng đồng chia sẻ ảnh trực tuyến và giới blogger Yahoo! 360. Dịch vụ này nổi tiếng đến mức Yahoo! Photo (một dịch vụ quản lý ảnh cũng của hãng này) đã tuyên bố chính thức đóng cửa ngày 20/09/2007 vừa qua. Với người dùng Blogger làm sao để sử dụng dịch vụ này, xin đọc bài hướng dẫn sau sẽ giúp bạn biết cách đăng ảnh và bài viết trực tiếp vào blog.

BƯỚC 1: ĐĂNG KÝ FLICKR VÀ THIẾT LẬP KẾT NỐI ĐẾN BLOGGER

Đầu tiên bạn hãy đăng nhập vào Flickr, nếu chưa đăng ký hãy nhấn vào đây (Dùng ID và password của Yahoo! Mail). Đăng nhập xong chọn menu You -> Your Account.



Trang quản lý tài khoản của bạn hiện ra, chọn Extending Flickr. Tiếp tục chọn Configure your Flickr-to-blog settings.



Tiếp theo click Set up your blog, bạn sẽ được đưa đến trang chọn nhà cung cấp blog, hãy chọn Blogger Blog và click Next.



BƯỚC 2: CẤP QUYỀN CHO FLICKR

Bấm Head over to Google now để cho phép đăng từ Flickr vào Blogger.



Bạn sẽ được yêu cầu đăng nhập Blogger (nếu chưa đăng nhập) hoặc yêu cầu cấp quyền bằng cách click trên nút Grant Access.



Bây giờ bạn chọn blog định đăng (nếu có nhiều blog) và nhấn Next.



Màn hình sẽ hiển thị thông tin về blog của bạn và đặt nhãn (Lưu ý: Đây không phải là nhãn bài đăng trên Blogger, nhãn này để phân biệt blog trong trường hợp bại cài đặt Flickr với nhiều blog ở Blogger).

Photo Sharing and Video Hosting at Photobucket

Bạn sẽ được thông báo hoàn tất và nhấn create a custom posting template để chọn kiểu trình bày (layout).



Click trên hình để chọn và nhấn USE THIS khi trang hướng dẫn chọn layout tương ứng hiện ra. Nếu bạn biết về HTML/CSS có thể click CUSTOMIZE để thay đổi. Bạn sẽ được thông báo chọn xong layout. Bạn có thể thêm nhiều blog vào Flickr bằng cách click Add another blog và làm tương tự như trên. Nếu muốn kiểm tra thử hãy nhấn TEST POST và mở blog để xem.



BƯỚC 3: ĐĂNG HÌNH VÀ VIẾT BÀI

Quay lại trang quản lý ảnh (You -> Your Photos), bạn chọn hình muốn xuất bản. Khi trang quản lý hình được chọn hiển thị hiện đầy đủ hãy nhấn BLOG THIS và chọn blog muốn đăng bài (có tên tương ứng với Label mà lúc nãy bạn đặt).



Sau đó nhập tiêu đề (Title), nội dung (Your Post) và nhấn POST ENTRY để xuất bản.


Thursday, March 5, 2009

OOP: ObjPaint-03 - Xử Lý Sự Kiện Chuột

PHẦN 3: XỬ LÝ SỰ KIỆN CHUỘT


1. Chặn sự kiện chuột WM_LBUTTONDOWN trên vùng Client
1.1. Gọi cửa sổ ClassWiazrd

Có thể thực hiện bước này ở 2 dạng:
+ Menu: View / ClassWizard
+ Phím tắt: Ctrl + W


Hình 1.1: Gọi cửa sổ ClassWizard

1.2. Bổ sung hàm chặn xử lý WM_LBUTTONDOWN.



Hình 1.2: Cửa sổ ClassWizard để thêm hàm chặn sự kiện

Có thể thực hiện bước này ở 2 dạng:
+ Double click trực tiếp lên message WM_LBUTTONDOWN
+ Để con trỏ chuột lên WM_LBUTTONDOWN, rồi nhấn button AddFunction, rồi nhấn button EditCode.
Hàm chặn sự kiện chuột mới tạo ra năm trong vùng viền đỏ của Hình 1.3.


Hình 1.3: Hàm CObjPaintView::OnLButtonDown


Việc chặn xử lý sự kiện WM_LBUTTONDOWN sẽ tạo ra 3 đoạn lện sau:
CODE1: Khai báo hàm chặn sự kiện trong file HEADER ObjPaintView.h.


// Generated message map functions
protected:
//{{AFX_MSG(CObjPaintView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
//}}AFX_MSG
DECLARE_MESSAGE_MAP
()


CODE2: Khai báo MACRO chặn xử lý sự kiên trong file implementation ObjPaintView.CPP.

BEGIN_MESSAGE_MAP(CObjPaintView, CView)
//{{AFX_MSG_MAP(CObjPaintView)

ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()


CODE3:
Định nghĩa xử lý hàm xử lý sự kiên trong file implementation ObjPaintView.CPP.

///////////////////////////////////////////////////////////////////
// CObjPaintView message handlers

void CObjPaintView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call
CView
::OnLButtonDown(nFlags, point);

}


1.3 Bổ sung xử lý cho sự kiện WM_LBUTTONDOWN.


Dữ kiện ban đầu: Trong hướng dẫn Phần 2, chúng ta đã có được một đối tượng CLine m_ln1 được lưu trữ trong lớp CObjPaintDoc.

Giả định: Khi nhấn chuột, chúng ta sẽ thay đổi tọa độ bắt đầu của đối tượng CLine m_ln1 trong lớp CObjPaintDoc và để cập nhật hình vẽ thì gọi hàm cập nhật vùng CLIENT.

///////////////////////////////////////////////////////////////////////// CObjPaintView message handlers

void CObjPaintView::OnLButtonDown(UINT nFlags, CPoint point)
{

// TODO: Add your message handler code here and/or call
//Khoi gan gia tri bat dau cua LINE
GetDocument()->m_ln1.m_pt1.x = point.x;
GetDocument()->m_ln1.m_pt1.y = point.y;

//Goi cap nhat vung CLIENT ==> MFC tu dong goi ham OnDraw
Invalidate();

CView
::OnLButtonDown(nFlags, point);
}

Như vậy, sau khi thêm các lệnh cho sự kiện click chuột, chương trình cuối cùng đã có thể vẽ đối tượng linh động một phần (PT1 trong LINE). Để đối tượng LINE linh động hoàn toàn theo thao tác vẽ, cần phải xử lý tiếp sự kiện WM_LBUTTONUP.

WM_LBUTTONUP sẽ xác định điểm PT2 của Line để có một đối tượng LINE hoàn toàn linh hoạt.



Hình 1.4: Hàm xử lý sự kiện WM_LBUTTONDOWN


2. Chặn sự kiện chuột WM_LBUTTONUP trên vùng Client

Tiếp trục thực hiện chặn sự kiện chuột WM_LBUTTONUP thao các bước tiến hành như phần 1.


Giả định:
Khi nhấn chuột, chúng ta sẽ thay đổi tọa độ bắt đầu của đối tượng CLine m_ln1 trong lớp CObjPaintDoc và để cập nhật hình vẽ thì gọi hàm cập nhật vùng CLIENT.

///////////////////////////////////////////////////////////////////////// CObjPaintView message handlers
void CObjPaintView::OnLButtonUp(UINT nFlags, CPoint point)
{

// TODO: Add your message handler code here and/or call
//Khoi gan gia tri ket thuc cua LINE

GetDocument
()->m_ln1.m_pt2.x = point.x;
GetDocument()->m_ln1.m_pt2.y = point.y;
//Goi cap nhat vung CLIENT ==> MFC tu dong goi ham OnDraw
Invalidate
();
CView:: OnLButtonUp (nFlags, point);
}

OOP: ObjPaint-02 - Tạo lớp & Sử dụng đối tượng

PHẦN 2: TẠO LỚP và SỬ DỤNG ĐỐI TƯỢNG
1. Add lớp mới
1.1. Tạo lớp



Hình 1.1: Click và tạo mới lớp



Hình 1.2: Cửa sổ tạo lớp CLine



Hình 1.3: File Header của CLine

1.2 Bổ sung thuộc tính cho lớp đối tượng



Hình 1.4: Click và bổ sung thêm biến thành viên cho CLine



Hình 1.5: Cửa sổ thêm biến thành viên


1.3 Add phương thức cho lớp đối tượng



Hình 1.6: Click và bổ sung thêm hàm thành viên



Hình 1.7: Cửa sổ thêm hàm thành viên Draw



Hình 1.8: Cửa sổ phần định nghĩa lớp

Ngoài ra, cần sửa hàm khởi tạo để có thể vẽ gì đó ra màn hình. (Hình vuông đỏ số 1)
Hàm Draw gọi vẽ một đoạn thẳng từ pt1 pt2. (Hình vuông đỏ số 2)
2. Khai báo đối tượng Line trong ứng dụng (CObjPaintDoc)

Đối tượng m_ln1 cần dược lưu trữ trong lớp CObjPaintDoc, vì đây là nơi lưu trữ dữ liệu cũa một document.



Hình 2.1: Click và bổ sung thêm biến thành viên cho CObjPaintDoc

Sau khi add thêm, file header sẽ có thêm 2 dòng này:

#include "Line.h" // Added by ClassView

CLine m_ln1;




Hình 2.2: Cửa sổ thêm biến thành viên m_ln1

3. Vẽ đối tượng LINE lên vùng Client

Hình 3.1: Cửa sổ định nghĩa hàm OnDraw trong lớp View


Việc vẽ lên CLIENT sẽ do hàm OnDraw của lớp CObjPaintView đảm nhận.

void CObjPaintView::OnDraw(CDC* pDC)
{

CObjPaintDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);


// TODO: add draw code for native data here
pDoc->m_ln1.Draw(pDC);

}


Ở đây, Document sẽ triệu gọi đễ lấy dữ liệu và in lên màn hình. Kết quả cuối cùng sẽ là:



Hình 3.2: Cửa sổ ứng dụng tạo ra khi OnDraw gọi vẽ đối tượng

Đối tượng chúng ta vẽ ra nằm trong hình vuông đỏ.

OOP: ObjPaint-01 - Tạo Project ObjPaint

PHẦN 1: TẠO PROJECTOBJPAINT


1. Mở ứng dụng Visual C++ 6.0

Hình 1.1: Cửa sổ chương trình Visual C++ 6.0

2. Tạo mới một project có tên ObjPaint theo dạng SDI

Chọn menu File / New (Ctrl + N)


Hình 2.1: Cửa sổ tạo mới một project



Hình 2.2: Chọn dạng ứng dụng là Single document (SDI)


Hình 2.3: Chọn dữ liệu hỗ trợ: None


Hình 2.4: Chọn dữ liệu hỗ trợ: None


Hình 2.5: Chọn các phần bổsung như toolbar, statusbar…


Hình 2.6: Chọn các phần bổ sung như toolbar, statusbar…



Hình 2.7: Kết quả các lớp được tạo ra.



Hình 2.8: Thông tin về project mới tạo ra.



Hình 2.9: Phần view của project đã tạo ra.

3. Biên dịch và chạy chương trình


Nhấn Ctrl+F5 để biên dịch và chạychương trình.



Hình 3.1: Cửa sổ chương trình đã xây dựng

4. Thông tin các lớp trong project:

4.1. CAboutDlg

Là lớp quản lý cửa sổ About của chương trình. Có thể xem dialog này bằng cách chọn menu Help / About.




Hình 4.1: Dialog About của chương trình.



Hình 4.2: Cửa sổ phần code của class CAboutDlg.



Hình 4.3: Cửa sổ phần resource của dialog About.

4.2. CMainFrame

CMainFrame quản lý các toolbar, statusbar và vùng client (CObjPaintView).



Hình 4.4: Cửa sổ code phần lớp CMainFrame


4.3. CObjPaintApp

CObjPaintApp là lớp khởi tạo toàn bộ ứng dụng.


4.4. CObjPaintDoc

CObjPaintDoc là lớp quản lý dữ liệu văn bản (nếu có) của project.

Trong trường hợp PAINT, các đối tượng có thể lưu trong lớp này.

4.5. CObjPaintView

CObjPaintView là lớp chính quản lý vùng client của SDI. Việc vẽ lên GUI đượcthông qua lớp đối tượng này.

Wednesday, March 4, 2009

IELTS Test

IELTS (International English Language Testing System) là hệ thống kiểm tra tiếng Anh quốc tế mang tính học thuật cao và Điểm IELTS được nhiều trường Đại Học chấp nhận khi xét hồ sơ học một trường nào đó bằng tiếng Anh.

Hệ thống IELTS gồm 4 phần : Listening, Reading, Writing và Speaking. Cấu trúc của đề thi IELTS có cấu trúc như sau:



Tại Tp.HCM thì IELTs có thể thi ở IDP hoặc ở Hội đồng Anh

Tuesday, March 3, 2009

Dịch vụ Picasa Web của Google

Blog (Yahoo 360 của Yahoo, Blogger của Google) ngày càng phát triển và phổ biến với mọi người. Blog không còn là trang nhật ký đơn thuần, mà nó còn là một ngôi nhà nhỏ của mỗi người trên thế giới Internet. Với những ai dùng Blogger thì việc dùng Picasa Web Albums của Google làm cho công việc việc cập nhật album và video cho từng đầu tin blog sẽ tiện lợi hơn nhiều.

Hệ thống Picasa bao gồm hai phần: Picasa application và Picasa Web Albums.

1. Picasa là trình quản lý hình ảnh trên máy tính của bạn, có những chức năng và cách hoạt động giống với trình ACDSee hay Fire Graphic nhưng Picasa được cung cấp hoàn toàn miễn phí.

2. Picasa Web Album kết hợp với Blogger của Google tương tự như Flickr kết hợp với Blog 360 của Yahoo. PicasaWeb được sử dụng để chia sẽ các hình ảnh của mình trên môi trường WEB. Bạn cần có một tài khoản Google để sử dụng Picasa Web Album, có thể đăng ký miễn phí https://www.google.com/accounts/NewAccount?hl=en_US

Đăng nhập với tài khoản đã có, trang sẽ chuyển bạn đến phần điều lệ sử dụng, nhấn “Accept” để tiếp tục. Giao diện chính của Picasa Web Album sẽ xuất hiện.


Chen Album Video vao blog voi Picasa Web Album
Giao diện tạo album trên Picasa Web Album.

Các bước để tạo 1 album ảnh với Picasa3:

1. Mở trình Picasa3 trên máy tính của bạn, tìm đến tập tin ảnh cần đưa vào album. Sau đó phải chuột, chọn “Upload to Web Album”.

Picasa3 sẽ yêu cầu bạn đăng nhập vào tài khoản Google của mình (bạn cũng có thể dùng ngay tài khoản Gmail) để sử dụng chức năng này.

2. Sau khi đăng nhập, Picasa3 sẽ kết nối và xuất hiện hộp thoại yêu cầu tạo Web Album với các thông số:
  • Album Title (Tiêu đề album – bắt buộc phải có),
  • Description (Mô tả),
  • Place Taken (Nơi lấy hay chụp ảnh),
  • Upload Setting (chất lượng ảnh kèm theo tốc độ tải lên).
Ở phần Visibility sẽ có 2 tùy chọn là :
  • Public : Cho phép tất cả mọi người đều có thể xem album tại địa chỉ http://picasaweb.google.com/tentaikhoan
  • Unlisted : Chỉ dành cho những người mà bạn chia sẻ.
Dung lượng cho phép của mỗi tài khoản sẽ là 250 MB. Nhấn OK để tiến hành tải hình ảnh lên máy chủ Google.

3. Sau khi tạo xong album và upload hình ảnh, ta có thể quản lý ngay trên website Google với Picasa Web Album.

Những tính năng như:

  • Edit Album Properties: hiệu chỉnh lại thông tin của Album như tiêu đề, mô tả …
  • Choose Album Cover: chọn hình bìa cho album
  • Upload Photos: tải thêm hình ảnh vào album
  • Embed in Blog/MySpace: đây là chức năng tiện lợi và rất quan trọng cho các blogger. Sau khi nhấn vào đây, lập tức mã HTML sẽ hiện ra. Công dụng của đoạn mã này giúp bạn chèn album vào trong đầu tin blog của mình dễ dàng. Bạn chỉ cần copy toàn bộ đoạn mã đó và chèn vào đầu tin blog của mình dưới dạng soạn thảo HTML.
  • Download Album: khi nhấn vào đây thì hộp thoại tải album sẽ xuất hiện để bạn chọn lựa tải về máy tính.
  • Delete Album: xóa album.
Để chia sẻ album với bạn bè và người thân, bạn chọn vào “Share Album” ở góc phải trên cùng ở giao diện web Picasa Web Album để mời người thân xem album hoặc video của mình. Với Picasa Web Album, chắc chắn các blogger sẽ có thêm một phương thức tạo cho blog của mình thêm sinh động với cả hình ảnh lẫn video.

Sunday, March 1, 2009

Hướng dẫn tạo Profile bằng GoogleSite

Google Site là dịch vụ mới của Google được phát triển để thay thế cho Google Page Creator.

Với Google Site, chúng ta có thể tạo các trang nội dung HTML và tổ chức thành một trang web đơn giản.

http://sites.google.com/a/googleuniversity.org/ski-club/Home


Việc tạo các site được thực hiện qua các bước:

+ Khởi tạo dịch vụ Google Site với tài khoản GMail

+ Tạo và chỉnh sửa các trang nội dung.

1. Khởi tạo dịch vụ Google Site với tài khoản GMail

Bước 1: Trước hết, cần đăng nhập bằng tài khoản của gmail từ địa chỉ http://sites.google.com/

Trong trường hợp chưa có đại chỉ Gmail thì cần nhấn nút Sign up for Sites để tạo mới một địa chỉ GMail trước khi bắt đầu dịch vụ Google Sites, hoặc có thể đăng ký trực tiếp từ URL: https://www.google.com/accounts/NewAccount (xem hướng dẫn)

Bước 2: Nhấn nút Create Site để bắt đầu tiến trình tạo site.

Bước 3: Tiến hành nhập thông tin vào form để tạo mới một site. Các thông tin bao gồm:

+ (1) Tiêu đề, có thể thay đổi được về sau

+ (2) Phần URL sẽ được chọn và sử dụng về sau, không thể thay đổi được về sau, nên lưu ý chọn sao cho hợp lý.

+ (3) chuỗi xác nhận, nhập đúng chuỗi hiện thị bên cạnh

Sau đó, nhấn nút Create Site để hoàn tất.

2. Tạo và chỉnh sửa các trang nội dung

Bước 1: Trong màn hình chính, từ site đơn giản ban đầu sẽ, chúng ta có thể chỉnh sửa Home page theo ý muốn bằng cách nhấn nút Edit page.

Bước 2: Các bước chỉnh sửa sau khi nhấn nút Edit Page bao gồm:

+ (1) Chỉnh sửa vùng nội dung trang

+ (2) Nhấn nút Save khi quá trình chỉnh sửa hoàn tất

Việc bổ sung thêm trang nội dung mới có thể được thực hiện bằng nút (3) Create new page.

Trong trường hợp cần chỉnh sửa phần browse ở ô Navigation thì có thể nhấn nút (4) Edit sidebar để chỉnh sửa.

(NgoHung)