Oct 29, 2009

Dich

3.1 Introduction

A microstrip patch antenna consists of a very thin metallic patch (usually gold or
copper) placed a small fraction of a wavelength above a conducting ground plane,
separated by a dielectric substrate. Microstrip antennas have numerous advantages, they
are light weight, they can be designed to operate over a large range of frequencies (1-
40GHz), they can easily be combined to form linear or planar arrays, and they can
generate linear, dual, and circular polarizations. These antennas are inexpensive to
fabricate using printed circuit board etching, which makes them very useful for integrated
active antennas in which circuit functions are integrated with the antenna to produce
compact transceivers. Microstrip antennas can be in various shapes and configurations
but for the purpose of this project only rectangular microstrip antennas are of interest.
This chapter includes an overview of microstrip antennas radiation mechanism, modeling,
design, and feeding techniques. The material covered in this chapter known as microstrip
antenna theory is from numerous books and articles ([1]-[3], [12]-[24]).
3.2 Rectangular Microstrip Antennas
Rectangular and square patches are the most commonly used type of microstrip
antennas. They can be used in numerous types of applications including circular
polarization, beam scanning, radiation pattern control and multiple frequency operation.
The basic antenna element is a thin conductor of dimensions L × W on a dielectric
substrate of permittivity e
r and thickness h backed by a conducting ground plane. This
configuration is shown below:
Figure 3.1: Rectangular Microstrip antenna configuration
3.2.1 Radiation Mechanism
Radiation from a microstrip antenna is determined from the field distribution
between the patch and the ground plane. This can also be described as the surface current
distribution on the patch. A patch, which is connected to a microwave source, has a
charge distribution on the upper and lower surface of the patch as well as the ground
plane. The patch is half wavelength long at the dominant mode, which creates the
positive and negative charge distribution shown in Figure 3.2 [11].
The repulsive nature of like charges on the bottom surface of the patch, pushes
some charges around the side to the top causing current densities Jb and Js. The ratio h/W
is small, therefore the strong attractive forces between the charges cause most of the
current and charge concentration remains underneath the patch. But also the repulsive
force between positive charges creates a large charge density around the edges. The
fringing fields caused by these charges are responsible for radiation. In order to achieve
better radiation efficiency, thick substrates with lower permittivity are better suited for
these types of antennas. Figure 3.3 shows the fringing fields in a microstrip patch [12].
3.3 Microstrip Antenna Analytical Models
There are various ways to model a microstrip patch. This modeling is used to
predict characteristics of a microstrip patch such as resonant frequency, bandwidth,
radiation pattern, etc. In this section the transmission line model and the cavity model are
presented. These models are based on some assumptions, which simplify the calculations
at the cost of less accuracy. There are other models that provide more accuracy such as
the full-wave model but are also more complicated to analyze.
3.3.1 Transmission Line Model
This is the simplest model and is restricted to rectangular microstrip antennas.
This model considers the patch as a transmission line of width W with two radiating slots
on each end. For a desired frequency f0, the width W can be estimated using [12]:
1
2
2
0
+
=
r
W
e
l
(Eqn. 3.1)
In this model the input impedance of a patch is the same as that of a transmission
line with length L and admittance Yc. Each slot has an admittance of Ys = Gs + jBs where
the values for conductance Gs and susceptance Bs are given by:



=  - 2
0
0
( )
24
1
1
120
k h
W
Gs l
(Eqn. 3.2)
(1 0.636ln( ))
120 0
0
k h
W
Bs = -
l
(Eqn. 3.3)
Đọc tiếp →
-->đọc tiếp...

Oct 26, 2009

Code J2me

http://j2me.ngphone.com/opensource/imp2p.htm Đọc tiếp →
-->đọc tiếp...

Oct 24, 2009

ffice Ultimate 2007+hướng dẩn crack (100%)



Office Ultimate 2007 bao gồm:

* Access 2007
* Accounting Express 2007
* Excel 2007
* InfoPath 2007
* Groove 2007
* OneNote 2007
* Outlook 2007 with Business Contact Manager
* PowerPoint 2007
* Publisher 2007
* Word 2007

Trước tiên download Office bằng DL tại :

Code:
http://msft-dnl.digitalrivercontent..../X12-30307.exe

Bổ xung :

Office Accounting Express 2007

Code:
http://www.microsoft.com/downloads/d...displaylang=en

Sử dụng CD Key sau để setup

Code:
J67F8-BB7GM-8VPH2-8YMXP-K49QQ

Bắt đầu tiến hành "Đăng Ký" sau khi install xong


Chuẩn bị:
download file sau về:(file OGACheckControl.rar )

http://www.ziddu.com/download/187192...ntrol.rar.html

Bước 1:

vào website sau để cài đặt "Genuine Office"

Code:
[url=www.microsoft.com/genuine/office/whyvalidate.aspx?displaylang=en[/URL]

sau khi setup xong Genuine Office bạn tiến hành validate cho bản Office của mình, và sẽ nhận được thông báo invallid, đừng bận tâm về thông báo đó bây giờ đóng hết tất cả các cửa sổ Internet Explorer lại

Giải nén file OGACheckControl.rar và copy file OGACheckControl.dll ( ghi đè lên file cũ ) vào thư mục :
c:\windows\system32

vào lại trang web bạn sẽ thấy thông báo đã validate thành công

Code:
[url=www.microsoft.com/genuine/office/whyvalidate.aspx?displaylang=en[/URL]

Bây giờ đừng mở bất kỳ ứng dụng Office nào ra vội vì nó sẽ bắt bạn phải Validate Key

Bước 2:

Copy file mso.dll ( ghi đè lên file cũ ) vào thư mục sau
C:\Program Files\Common Files\Microsoft Shared\OFFICE12

Ok bây giờ bạn hãy mở 1 ứng dụng Office bất kỳ ( Word chẳng hạn ) bạn sẽ nhận được thông báo Activation cho Office

hãy chọn cách đăng ký sản phẩm bằng Telephone

Next và hãy điền số 0 ( zero ) và tất cả các ô của Step 3, Next vậy là Office của các bạn đã được đăng ký thành công.
Chúc các bạn may mắn

----------------------------------------------------
Để cài đặt thanh công bạn phải làm đúng theo những bước trên và gỡ bỏ triệt để các bản MO2007 khác nếu bạn đã cài trước đó

Đầu tiên bỏ đĩa MSO mà bạn đã dùng để cài vào ổ CD (hoặc dùng trực tiếp file setup từ ổ cứng tùy bạn) tiếp theo chạy File Setup để chạy tiến trình cài đặt.
Thay vì phải cài đặt mới mình chọn Remove tại màn hình đầu tiên.


Để gỡ bỏ triệt để và cài lại bản MSO khác đồng thời trách rắc rối các bạn làm tiếp các công việc sau:
Bước 1: Gỡ bỏ tất cả các gói cài đặt Office 2007.
Vào Start -> Run, nhập “Installer”, OK.
Vào View menu, chọn Details.
Vào View menu->Choose Details..., chọn Subject, OK.
Vào View menu -> Arrange icon by, chọn Subject.
Nhấp chuột phải vào từng tập tin có đuôi “msi” thuộc Subject “Microsoft Office Product_Name 2007”, chọn Uninstall. có thể bỏ bước này vì đã gỡ bỏ MSO từ đĩa CD rồi

Bước 2: Ngừng dịch vụ “Office Source Engine”.
Vào Start -> Run, nhập services.msc, OK. Trong cửa sổ Services, tìm và nhấp chuột phải vào “Office Source Engine” chọn Stop.
Bước 3: Xóa thư mục và tập tin cài đặt.
Vào Start -> Run, nhập %CommonProgramFiles%\Microsoft Shared, OK.
Tìm và xóa các thư mục sau: OFFICE12, Source Engine.
Vào Start -> Run, nhập %ProgramFiles%\Microsoft Office, OK. Xóa thư mục Office12.
Mở My Computer, vào từng ổ đĩa tìm thư mục \MSOCache\All Users (nếu không thấy thư mục MSOCache, bạn cho hiện thuộc tính ẩn của tập tin và thư mục: Tools -> Folder Option -> View, chọn Show hidden files and folders under Hidden files and folders, OK), xóa những thư mục có cụm từ cuối “0FF1CE)-”.
Vào Start -> Run, nhập %appdata%\microsoft\templates, OK. Xóa các tập tin Normal.dotm và Normalemail.dotm.
Vào Start -> Run, nhập %appdata%\microsoft\document building blocks\Language_ID, OK (nếu báo lỗi, bạn bỏ qua bước này). Sau đó, xóa tập tin “Building blocks.dotx”.
Vào Start -> Run, nhập %temp%, OK, xóa hết tập tin.
Vào Start -> nhập %AllUsersprofile%\Application Data\Microsoft\Office\Data, OK, xóa tập tin “opa12.dat”.
Bước 4: Xóa đường link trong Registry.
Vào Start -> Run, nhập regedit, OK -> HKEY_CURRENT_USER\Software\Microsoft\Office, xóa mục “12.0” (lưu ý: để an toàn, bạn nên lưu trữ Registry trước khi xóa). Khởi động lại máy tính.

cach khac:
TÌM: C : \Program Files\Common Files\Microsoft Shared\Office 12\Office Setup Controller\Proof.en

Tìm file proof.xml va mở bằng NotePad, tìm dòng sau:





Thay thế "AlwaysInstalled" bằng "neverinstalled" lưu lại.
CHÚC CÁC BẠN THÀNH CÔNG
Đọc tiếp →
-->đọc tiếp...

Oct 21, 2009

Thuat toan Kruskal

#include

#define MAX 100

class kruskal
{
private : struct edge_info
{
int u, v, weight;
} edge[MAX];
int tree[MAX][2], set[MAX];
int n;
public : int readedges();
void makeset();
int find(int);
void join(int, int);
void arrange_edges(int);
int spanningtree(int);
void display(int);
};

int kruskal :: readedges()
{
int i, j, k, cost;

k = 1;
cout << "\nEnter the number of Vertices in the Graph : ";
cin >> n;
cout << endl;
for (i = 1; i <= n; i++)
for (j = 1; j < i; j++)
{
cout << "weight[" << i << "][" << j << "] : ";
cin >> cost;
if (cost != 999)
{
edge[k].u = i;
edge[k].v = j;
edge[k++].weight = cost;
}
}
return (k - 1);
}

void kruskal :: makeset()
{
int i;
for (i = 1; i <= n; i++)
set[i] = i;
}

int kruskal :: find(int vertex)
{
return (set[vertex]);
}

void kruskal :: join(int v1, int v2)
{
int i, j;
if (v1 < v2)
set[v2] = v1;
else
set[v1] = v2;
}

void kruskal :: arrange_edges(int k)
{
int i, j;
struct edge_info temp;
for (i = 1; i < k; i++)
for (j = 1; j <= k - i; j++)
if (edge[j].weight > edge[j + 1].weight)
{
temp = edge[j];
edge[j] = edge[j + 1];
edge[j + 1] = temp;
}
}

int kruskal :: spanningtree(int k)
{
int i, t, sum;
arrange_edges(k);
t = 1;
sum = 0;
for (i=1;i<=k;i++)
cout< for (i = 1; i <= k; i++)
if (find (edge[i].u) != find (edge[i].v))
{
tree[t][1] = edge[i].u;
tree[t][2] = edge[i].v;
sum += edge[i].weight;
join (edge[t].u, edge[t].v);
t++;
}
return sum;
}

void kruskal :: display(int cost)
{
int i;
cout << "\nThe Edges of the Minimum Spanning Tree are\n\n";
for (i = 1; i < n; i++)
cout << tree[i][1] << " - " << tree[i][2] << endl;
cout << "\nThe Cost of the Minimum Spanning Tree is : " << cost;
}

int main()
{
int ecount, totalcost;
kruskal k;
ecount = k.readedges();
k.makeset();
totalcost = k.spanningtree(ecount);
k.display(totalcost);
return 0;
}

Đọc tiếp →
-->đọc tiếp...

Oct 13, 2009

Tổng hợp các phím tắt trong Windows 7

Tổng hợp các phím tắt trong Windows 7

win7Bài viết sau thống kê hầu hết các phím tắt trong Windows 7 giúp các bạn thao tác nhanh và tiện lợi hơn rất nhiều.

>> Hướng dẫn cài Windows XP Mode trong Windows 7

Windows logo + Up: Mở lớn cửa sổ
Windows logo + Down: thu nhỏ kích thước cửa sổ
Windows logo + Left: Đưa cửa sổ sang bên trái màn hình
Windows logo + Right: Đưa cửa sổ sang bên trái màn hình
Windows logo + Shift + up: Kéo dài cửa sổ bằng chiều dọc màn hình
Windows logo + Shift + Down: Thu nhỏ cửa sổ xuống TaskbarVnEtips -
Windows logo + D: Show Desktop, Khôi phục lại các cửa sổ
Windows logo + G: Đưa gadget lên trên cửa sổ
Windows logo + F: Mở cửa sổ tìm kiếm
Windows logo + R: Mở hộp thoại “run”
Windows logo+ E: Mở Windows Explorer
Windows logo+ M: Show Desktop
Windows logo+ Shift + M: Phục hồi lại các cửa sổ sau khi Show Desktop
Windows logo+ L: Khoá máy
Windows logo+ Pause: Mở cửa sổ System Properties
Windows logo+ T: Duyệt qua các ứng dụng trên thanh Taskbar
Windows logo + Shift + T: Duyệt qua các ứng dụng trên thanh Taskbar theo chiều ngược lại
Windows logo+ U: Mở the Ease of Access Center
Windows logo+ P: Mở tuỳ chọn hiển thị khi trình chiếu
Windows logo+ X: Mở Mobility Center tuỳ chỉnh am lượng, độ sáng màn hình, ……..
Windows logo+ #: Mở ứng dụng đang chạy ở cị trí # trên Taskbar
Windows logo+ Space: Show tạm thời desktop khi bạn đang mở nhiều cửa sổ, buông phím ra các ứng dụng sẽ trở lại như cũ
Windows logo + dấu “+”: Zoom lớn VnEtips -
Windows logo + dấu “-”: Zoom nhỏ
Windows logo + Tab: Mở Flip3D: Giữ phím logo và bấm tab liên tục để duyệt qua các ứng dụng, bấm thêm shift để duyệt ngược lại.
Shift + Click vào ứng dụng trên Tasbar: Mở mới một cửa sổ ứng dụng khi ứng dụng đó đang chạy
Ctrl + Shift + Click vào ứng dụng trên Tasbar: Mở mới một cửa sổ ứng dụng khi ứng dụng đó đang chạy với quyền admin
Shift + Right-click vào ứng dụng trên Tasbar: Mở Show window menu (Minimize, Restore, Move, Size, Task Manager, Exit)
Shift + Right-click vào nhóm icon trên taskbar: Show window menu, tuỳ chọn sẽ tác động tới toàn nhóm chương trình
Ctrl + click vào nhóm chương trình đang mở trên Tasbar: Chuyển giữa các cửa sổ hoặc các tab trong nhóm
F1: Help
F3: Search/Find
F11: Fullscreen view
Giữ phím Shift phải 8 giây để chuyển Filter Keys On/Off
Left Alt + Left Shift + Print Screen: Turn High Contrast On/Off
Giữ Shift 5 giây: Turn Sticky Keys On/Off
Giữ NUM LOCK 5 giây: chuyển Toggle Keys On/Off
Ctrl + C Copy
Ctrl + X Cut
Ctrl + V Paste
Ctrl + Z Undo
Ctrl + Y Redo
Shift + Delete: Xoá thẳng file không qua thùng rác
F2: Đổi tên đối tượng được chọn
Ctrl + Right: Đưa con trỏ nhảy qua phải một từ
Ctrl + Left: Đưa con trỏ nhảy qua trái một từ
Ctrl + Up: Đưa con trỏ đến đầu đoạn
Ctrl + Down: Đưa con trỏ đến đầu đoạn tiếp theo
Ctrl + Shift + phím mũi tên: Chọn (bôi đen) đối tượng
Ctrl + A: Chọn hết
Alt + Enter: Mở cửa sổ Properties cho đối tượng đã chọn
Alt + F4 Close/Exit VnEtips -
Alt + Spacebar: Mở menu ngắn cho cửa sổ hiện hành
Ctrl + F4: Đóng tài liệu hiện hành.
Alt + Tab: Chuyển giữa các đối tượng đang mở
Ctrl + Nút cuộn chuột: Thay đổi kích thước Icon trên Desktop
F6 Chuyển vòng giữa các đối tượng trên cửa sổ hoặc Desktop
F4 Chuyển đến thanh địa chỉ trong Internet Explorer.
Shift + F10: Hiển thị menu cho đối tượng được chọnVnEtips -
Ctrl + Esc: Mở start menu
F10: Mở thanh menu của chương trình.
F5: Làm mới lại cửa sổ đang mở
Alt + Up: Chuyển ra thư mục đang chứa thư mục hiện hành trong Windows Explorer
Ctrl + Shift + Esc: Mở the Task Manager VnEtips -
Shift khi bỏ CD vào máy: Ngăn việc tự động chạy CD
Ctrl + + F: Tìm kiếm máy tính khi trong mạng
Ctrl + N: Mở cửa sổ mới.

(www.VnEtips.com - người dịch: NTT)

Đọc tiếp →
-->đọc tiếp...

DeeMaz Transferpatch 1.0 - All teams and nationals updated to 7 October 2009 !

DeeMaz Transferpatch 1.0 - All teams and nationals updated to 7 October 2009 !
Hi ,i'm DeeMaz:) i'm glad to present my transferpatch to you all!
I have updated every team and every national for the best pes 6 experience:)
i've worked hard on it ,around 6/7 hours per day for 2 weeks,but now,finally,is ready! Lancast have just approved that then you can use it on the pes6j server

These are the features :
-Rosters of every team and national updated to 7 October 2009 : the goal of this patch is realism then all the rosters have their current players (no fantasy teams in other a,for example)
-instead of some relegated teams,i have putted (without change team name, i have just added the players to make these teams) :

teesside -> stoke city
berkshire blues -> birmingam city
south yorkshire -> hull city
hertfordshire -> burnley
south east london reds -> sunderland
ascoli -> bologna
empoli ->napoli
messina -> bari
reggina -> genoa

-On the teams that doesn not reach 11 players ,i have added random players named Player1 player2 etc
-few nationals cant be updated because there are not players to replace who is not playing anymore (for example arabia)

that's all!i have checked everything many times,i think that you can't find something wrong;) but if u discover some error please report that.I hope you will like my work. To download the patch,click on this link ,then choose free download:

http://saveqube.com/getfile/063ce1c58db1ccf538f322325a23df4e5e4cce63f8422eb452/DeeMaz_1.0_TransferpatchOct09.DKZ.html

sharedownload.org

p.s. Here there is a tutorial if you don't know how to install the patch
http://www.pes6j.net/forum/index.php?topic=2334.0
p.s.2 please don't make any other mirror.thanks!

nguon: pes6j.net
Đọc tiếp →
-->đọc tiếp...

Oct 9, 2009

Sử dụng lại tần số

Sử dụng lại tần số là việc cấp phát cùng một nhóm
tần số vô tuyến tại các vị trí địa lý khác nhau trong
mạng mà không làm ảnh hưởng đến chất lượng
kết nối tại giao diện vô tuyến do nhiễu đồng kênh
và nhiễu kênh lân cận gây nên.
Đọc tiếp →
-->đọc tiếp...

Oct 5, 2009

Hướng dẫn cài Windows trực tiếp từ ngay ổ cứng

Đối với máy chỉ boot được bằng USB và CD:

Bao gồm hầu hết các loại máy hiện giờ.
Bạn tạo một USB boot theo hướng dẫn tại đây :
http://www.4shared.com/file/27999878..._bang_USB.html
- Nhớ chép thêm bộ công cụ hỗ trợ cài đặt Windows từ ổ cứng vào USB đó tại đây : http://www.4shared.com/file/27999798...l_Windows.html
- Sau đó mở USB ra.
- Bạn vào File > New > Folder, đặt tên cho folder này là : WinXP
rồi mở đĩa CD XP ra và copy nguyên toàn bộ nội dung bên trong vào trong folder WinXP (nếu làm đúng theo thứ tự, thì khi mở folder C (hay E) > WinXP ra, bạn sẽ thấy một trong các thư mục tiếp theo là I386, hay TOOLS, hay SUPPORT,...)
- Cuối cùng, bạn làm tương tự như trên để format lại các ổ đĩa, sau đó đưa toàn bộ nội dung USB vào ổ cứng máy bạn.

Khởi động lại máy, trong DOS, gõ A:\>fdisk.exe.
- Nhấn Enter để đăng nhập vào Fdisk.



- Trong dòng: "Do you wish to enable large disk support (Y/N)", gõ Y > Enter.
- Trong dòng: "should NTFS partitions on all drivers be treated as large (Y/N)", gõ Y > Enter.
- Khi cài theo cách này lần đầu tiên, bạn bắt buộc phải format lại toàn bộ ổ cứng.
- Trong bảng lựa chọn,ở mục "Enter choice" gõ số 3 để chọn Delete Partition or logical DOS drive, nhấn Enter.
- Tiếp theo, gõ số 1 > Enter trong "Enter choice" để chọn Delete primary DOS partition.

Lúc này sẽ xảy ra hai tình huống:

Trường hợp 1:

Bước 1:
- Nếu xuất hiện thông báo "What primary partition do you want to delete?", bạn gõ số 1 > Enter.
- Dòng Enter volume label? Gõ C > Enter.
- Chương trình sẽ hỏi lại xem bạn có chắc chắn về hành động của mình không trong dòng "Are you sure?", gõ Y > Enter > Esc.
- Nhấn phím 3 > Enter để chọn Delete primary or logical DOS drive.
- Nhấn tiếp phím 4 > Enter để chọn Delete Non-DOS partition.
- Dòng "What Non-DOS partition do you want to delete?", gõ phím 1 > Enter.
- Dòng "Do you wish to continue (Y/N)?", nhấn Y > Enter > Esc.

Bước 2:
- Nhấn phím 1 > Enter để chọn "Create DOS partition or logical DOS drive". - Gõ tiếp 1 > Enter để chọn Create primary DOS partition.
- Chờ chương trình kiểm tra ổ đĩa và thể hiện các thông số % ổ đĩa đã được kiểm tra trên màn hình.
- Dòng "Do you wish to use the maximum available size for a primary DOS partition and make the partition active (Y/N)?", gõ N > Enter.
- Chương trình sẽ tiến hành tạo phân vùng bạn chọn, kết quả thể hiện bằng chỉ số % mức độ hoàn thành.


- Dòng "Enter partition size in Mbytes or percent of disk space (%) to create a primary DOS partition" bạn chọn dung lượng sao cho nó chiếm từ 50%-2/3 dung lượng ổ đĩa cứng của bạn. Nhấn Enter > Esc.
- Gõ số 1 > Enter để chọn mục "Create DOS partition or logical DOS drive.
- Nhấn phím 2 > Enter để chọn tiếp "Create extended DOS partition.
- Dòng "Enter partition size in Mbytes or percent of disk space (%) to create an extended DOS partition", nhấn Enter để chương trình lấy phần dung lượng còn dư lại.
- Nhấn tiếp Esc và chờ chương trình đếm đủ từ 1%-100% để hoàn tất việc tạo phân vùng thứ hai.
- Nhấn Enter lần nữa để tạo Logical drives.
- Bấm Esc để quay lại lưạ chọn kích hoạt phân vùng hệ thống.
- Nhấn phím 2 > Enter để chọn "Set active partition".
- Điền số 1 để chọn ổ đĩa Primary DOS.
- Nhấn Esc 3 lần để quay lại menu ban đầu.

Máy sẽ khởi động lại, trong DOS, gõ A:\>dir_C:

*- Lưu ý quan trọng : kí hiệu _ để thay cho khoảng trắng vì nếu lệnh trên mà để khoảng trắng thì có thể các bạn sẽ bị nhầm lẫn, và khi gõ thì bạn phải gõ là A:\> dir C: rồi nhấn Enter, nếu máy không khởi động lại thì tức là bạn đã làm đúng.

- Gõ tiếp A:\>format_C:_/s rồi nhấn Enter để chờ format lại ổ cứng.
- Chọn Y nếu chương trình hỏi "Proceed with format" rồi nhấn Enter.
- Nếu không được bạn khởi động máy rồi bằng cách nhấn phím Power rồi làm lại từ bước gõ A:\>dir_C:

Chương trình sẽ chỉ ra thông số % format được ở ổ điã.
Sau đó, trong dòng Volume label (11 characters, Enter for none), bạn nhấn phím Enter, nếu không được thì bạn điền Disk C rồi gõ Enter.
Tương tự, gõ tiếp A:\>format_D:_/s rồi nhấn Enter > Y > Enter để format lại phân vùng D, và tiếp tục đặt tên cho phân vùng là D hoặc Enter để lấy tên mặc định.

Khởi động lại máy, trong DOS bạn gõ lệnh sau A:\>copy_A:\*.*_C:\ để copy toàn bộ nội dung đĩa mềm vào ổ đĩa cứng (dùng để cài Windows) của bạn.
Lúc đó, trong dòng "Overwrite C:\command.com" bạn chọn N > Enter.


Trường hợp 2:

Bước 1:
- Nếu không xuất hiện thông báo "What primary partition do you want to delete?". Nhấn ESC.
- Bấm phím 3 > Enter > 4 > Enter.
- Tiếp theo, bạn gõ số của phân vùng dung lượng lớn hơn (bằng cách xem trong cột Usage, thường thì partition 1 luôn có dung lượng lớn hơn các patition khác)
- Nếu chọn phân vùng 1, bạn gõ 1 > Enter để xóa phân vùng không hỗ trợ DOS.
- Nhấn phím 2 > Enter, Gõ số của phân vùng còn lại rồi nhấn Enter > ESC
- Khởi động lại máy rồi gõ fdisk.exe > Enter > Enter, bấm tiếp 3 > Enter > 2 > Enter > Y > Enter > ESC để xóa các Logical DOS Drive đi.

- Bước 2:
Làm tương tự bước 2 trường hợp 1.

Phần III-Cài Đặt Lần Đầu Tiên:

Phần này sẽ hướng dẫn bạn cài Fresh trong khi file cài đặt đang nằm trong ổ C. Điều này có nghĩa là chúng ta sẽ phải format ổ C và tất nhiên sẽ xóa luôn thư mục cài đặt- nhưng điều tuyệt vời là việc cài đặt vẫn có thể tiếp tục mà không cần...file cài đặt. Đây là một điều cực kì bất hợp lý nhưng...vẫn có thể xảy ra mà không thể làm được khi cài bằng CD hay bất kì thứ nào khác. Đó là nhờ hai bước thiết lập và chuẩn bị rất công phu mà chúng ta đã làm ở trên.

- Bước 1:
- Khởi động lại máy, trong DOS bạn gõ : WinXP\I386\WINNT.EXE rồi nhấn Enter.
- Tiếp theo, Windows sẽ hỏi bạn chính xác vị trí chứa file cài đặt Windows XP, bạn gõ lại : WinXP\I386 - rồi nhấn Enter để bắt đầu cài.
- Cài đặt kiểu này, bạn không cần bất kì một thiết bị ngoại vi nào khác và thời gian cài đặt sẽ nhanh hơn rất nhiều so với cách cài thủ công khác khoảng nửa tiếng cho tới 45 phút tùy máy mạnh hay máy yếu.

Có thể khi cài đặt, quá trình load các file cài đặt sẽ không được hiển thị như quá trình cài bình thường làm cho máy bạn có vẻ như đang bị treo, nhưng thực tế thì quá trình load file vẫn đang diễn ra bình thường và bạn chịu khó chờ khoảng năm đến bảy phút thì việc cài đặt sẽ diễn ra bình thường trở lại.



- Bước 2:
- Sau khi load các file cài đặt vào bộ nhớ tạm (khoảng 5-15 phút tùy máy), bạn nhấn Enter để khởi động lại máy và không làm gì cả cho tới khi màn hình Welcome to Setup xuất hiện.
- Nhấn Enter > F8.
- Bạn dùng phím mũi tên để chọn phân vùng C rồi nhấn Enter.
- Sau đó, dùng phím mũi tên chọn mục : "Leave the current file system intact (no changes)" và nhấn Enter > C.
- Sau đó, quá trình cài đặt còn lại giống như các quá trình cài đặt Windows khác mà bạn đã từng làm.



Phần IV-Cài Đặt Cho Các Lần Sau:

- Sau này, khi muốn cài lại Windows, trong màn hình DOS, bạn chỉ đơn giản di chuyển đến chọn lựa Microsoft Windows rồi nhấn Enter.
- Sau đó bạn cũng gõ WinXP\I386\WINNT.EXE và làm tương tự như bên trên (Cài Đặt Lần Đầu Tiên) là được.



Phần V-Cài Đặt Các Công Cụ Bổ Sung:

Nếu sau này, bạn cần cài thêm các bộ gõ của Windows hay cài thêm các công cụ trong nhón Components,...thì do không có ổ CD, nên bạn cần tạo một đĩa CD ảo trong máy, sau đó đưa thư mục WinXP vào trong đó là xong. Cách tạo ổ CD ảo, bạn có thể tham khảo ở khắp nơi .
Đọc tiếp →
-->đọc tiếp...

Brazillian's football skills



Đọc tiếp →
-->đọc tiếp...

Oct 2, 2009

Tai lieu lap trinh yahoo voi java

1. Build Your Own Messaging Application in Java with jYMSG: http://www.devx.com/Java/Article/22546/0/page/1

Đọc tiếp →
-->đọc tiếp...

Phân Tích về Y!M Protocol [Toàn tập]

Giới thiệu chủ đề

Ta đã biết Instance Message là một nguồn thu lợi nhuận khổng lồ trong lĩnh vực Information & Communication Technology (ICT). Bên cạnh đó Yahoo Messenger là chương trình phổ biến ở Việt Nam cũng như trên toàn thế giới.

Bài viết này sẽ tìm hiểu Protocol của Y!M, nhằm phục vụ cho việc thiết kế các chương trình có khả năng tuỳ biến nội dung chat (Ví dụ: Center Tra cứu thông tin, các công cụ tinh chỉnh, ngăn quảng cáo phiền phức, hoặc dựa vào đó để viết ứng dụng trên nền mobile J2ME. …).
Các tài liệu liên quan hiện có từ nguồn Internet đều thuộc dạng “Không chính quy” (Unofficial documentation) do những nhóm người đi đầu trong việc “mổ xẻ” Yahoo biên soạn (Yahoo! chỉ chính thức phát hành các tài liệu cho việc thiết kế plugin đi kèm sản phẩm Y!M của họ). Dĩ nhiên Yahoo không hề mong chờ kiểu tài liệu unofficial này- một điều rất dễ hiểu là các ứng dụng “không chính quy” đã không hiển thị các hợp đồng quảng cáo của Yahoo!Inc, mà còn làm điều ngược lại: tự quảng cáo bằng hình tức tin nhắn quảng bá (spam – broadcast msgs).

image003

YMSG Protocol

Yahoo Messenger Protocol (YMSG) là một Protocol tầng Application chạy trên nền TCP, hoặc HTTP, SOCKS. (Tham khảo thêm các định nghĩa về TCP, HTTP, SOCKS nếu muốn tìm hiểu thêm)

Với YMSG Protocol, Yahoo có 3 kiểu kết nối chính đến server:

- Kết nối trực tiếp (Direct connection)
- Kết nối qua Http
- Kết nối qua Socks (Socks 4, Socks 5)

Chúng ta sẽ tìm hiểu kiểu kết nối trực tiếp (Direct connection) đến server csc.msg.yahoo.com [port 5050] – sẽ trình bày chi tiết ở các phần sau.

Mô hình phân tích & Công cụ:

+ Một máy client sử dụng modem ADSL, default config, nghĩa là kết nối được Internet :)

+ Yahoo Messenger version 8.x (Thời điểm mình bắt đầu thực hiện thì bản mới nhất là 9.0 chỉ đang là thử nghiệm- beta test)

+ Wireshark version 1.0.2 (Dùng để bắt gói tin)

I) GIỚI THIỆU CHUNG

1. YMSG Packet

Qua quá trình capture Y!M packets từ phía client, ta thấy được YMSG luôn có cấu trúc gói tin (Packet) như sau:
[ YMSG || Version || Packet Length || Service || Status || Session ID || Content ]

Trong đó:
YMSG:

Độ dài: 4 bytes (2 words)
Giá trị: Tên của protocol, luôn có ở đầu mọi Packets liên lạc giữa server-client (SC)

Version:

Độ dài: 4 bytes
Giá trị: Chỉ rõ version của giao thức kết nối
Ví dụ: version 15 là: 0×00, 0×0f, 0×00, 0×00 (thường thấy với bản client 8.x) Các bye 00 chỉ là các byte đệm.

Packet Length:

Độ dài: 2 bytes
Giá trị: Chỉ rõ số bytes của section Content gửi đi. Về lý thuyết giá trị tối đa là 0xffff = 65535 (2 bytes long) nhưng thực tế độ dài các gói tin chỉ nhỏ hơn 1000.

Service:

Độ dài: 2 bytes
Giá trị: Nói rõ cho SC biết dịch vụ nào cần được request/respond

Status:

Độ dài: 4 bytes
Giá trị: Chỉ rõ mã trạng thái của dịch vụ đang thực hiện (success/ failure/ ack/ etc..)

Session ID:

Độ dài: 4 bytes
Giá trị: Cho biết mã hiệu của kết nối SC đang thực hiện, giá trị do server khởi tạo, và đôi lúc có sự thay đổi trong 1 phiên làm việc (hiếm gặp), lúc đó client cũng phải thay đổi session ID theo giá trị mới này.
(Giá trị này cho thấy 1 server phục vụ được tối đa 0xff ff ff ff lượt truy cập)

Content

Độ dài: Bằng độ dài được chỉ rõ ở section Packet Length
Giá trị: Đây là một chuỗi các giá trị đi theo cặp như kiểu vertor (key/value). Key có định dạng String, Value có các kí tự thuộc kiểu ASCII, đôi lúc có giá trị là null. VD: 1 == 0×31; 21 == 0×32 0×31;
Các cặp trong trường Content này được phân cách nhau bởi cặp dấu “phẩy” theo chuẩn Yahoo {0×30 0xc080}

Ví dụ 1 đoạn Packet đã Decoded ra mã text (ASCII):

Version: 15

Packet Length: 12

Service: Authentication (87)

Status: Default (0)

Session ID: 0xb9f54600

Content: 1300200viet_vq300200

Kết luận:

+ Tổng độ dài phần header của 1 đoạn Packet luôn là 20bytes

+ Giá trị version luôn là 15 (0×0F) cho Y!M 8.x

  • ViệtQ

Phần 2

2. Quy trình giao dịch
Sơ đồ giao dịch giữa SC có dạng như hình dưới, trong đó các kết nối có kí hiệu “*” có thể tồn tại hoặc không.

ymsg_hsh

1) Bước đầu tiên, Verify:

Nhằm xác thực một kết nối đến Yahoo server, bước này cho biết hệ thống mạng đang hoạt động bình thường.
- Service: Verify (76)
- Status: Default (0)
- Content: Null

2) Authorization:

Xin quyền xác thực tài khoản
- Service: Auth (13)
- Status: Default (0)
- Content: Username

Server sẽ phải tiếp nhận và đáp ứng lại một khoá chứng thực, theo kiểu challenging response (Xem thêm slide An toàn mạng), nếu quá trình chứng thực thành công, Username sẽ được thiết lập một flag Available (Online)

3) Buddies List:

Tiếp tục quá trình đăng nhập, trao đổi danh sách bạn bè, trạng thái
- Service: List (85) / (241)
- Status: Default (0)

4) Ping

Xem xét các nick online và status của nó.

5) Thực hiện chatting và các tuỳ chọn nâng cao khác (Chatroom, đổi giao diện chat, webcam….)

—————————————
II) VẬN HÀNH (Progressing)

1) Sign In

Đây là bước quan trọng và phức tạp nhất trong mọi ứng dụng Messessger Protocol, cũng là chủ đề chính của các bài viết này. Bước này đòi hỏi sự đồng nhất giữa SC với chuẩn mã hoá tuân theo quy tắc riêng của mỗi ứng dụng tin nhắn.

Thiết lập socket tới csc.msg.yahoo.com:5050

csc.msg.yahoo.com chỉ là địa chỉ CNAME (Canonical name for an alias), DNS server sẽ xác định host cho csc.msg.yahoo.com và trả về các gói tin chứa thông tin cho biết máy chủ sẽ kết nối đến – Host Address (Cho thấy Yahoo có rất nhiều máy chủ phân tán).

scsc.msg.yahoo.com: type A, class IN, addr 66.163.181.167
scsc.msg.yahoo.com: type A, class IN, addr 66.163.181.168
….
scsc.msg.yahoo.com: type A, class IN, addr 66.163.181.193
….

ymsg_quer

Host có thời gian đáp ứng tốt nhất sẽ được chọn (Lúc đó là Addr: 66.163.181.167)

Client gửi string Username cho Server

0000 3a fb 20 00 18 00 08 00 0f 00 00 00 08 00 45 00 :. ….. ……E.
0010 00 48 28 7a 40 00 80 06 a8 8a 0a 10 27 51 42 a3 .H(z@… ….’QB.
0020 b5 a7 0b b1 13 ba ce 6c 9a 63 9b cc e8 02 50 18 …….l .c….P.
0030 70 1c 9f e5 00 00 59 4d 53 47 00 0f 00 00 00 0c p…..YM SG……
0040 00 57 00 00 00 00 00 46 f5 b9 31 c0 80 76 69 65 .W…..F ..1..vie
0050 74 5f 76 71 c0 80 t_vq..

59 4d 53 47 – YMSG : standard header
00 0f - .. : Version 15, với 2 bytes đệm ở sau là 00 00
00 0c - .. : Packet Length, là độ dài của Content (12 bytes)
00 57 – .W : Service, chữ W (57) ra hiệu cho server trả về kí tự xác nhận (challenge command)
00 00 00 00 – …. : Status
00 46 f5 b9 – .F.. : 4 bytes Session, luôn thay đổi ở mỗi lần giao dịch
31 c0 80 76 69 65 74 5f 76 71 c0 80 – 1..viet_vq.. : 12 bytes nội dung. Mỗi phần tử nội dung (Key, Value) được ngăn cách bởi 2 byte c0 80.
31 là mã ASCII trả về chuỗi (String) 1
c0 80
76 69 65 74 5f 76 71 mã ASCII trả về chuỗi viet_vq
c0 80

Server Response to:
0000 08 00 0f 00 00 00 3a fb 20 00 18 00 08 00 45 00 ……:. …..E.
0010 00 a0 3a b5 40 00 31 06 e4 f7 42 a3 b5 a7 0a 10 ..:.@.1. ..B…..
0020 27 51 13 ba 0b b1 9b cc e8 02 ce 6c 9a 83 50 18 ‘Q…… …l..P.
0030 ff ff 57 02 00 00 59 4d 53 47 00 0f 00 00 00 64 ..W…YM SG…..d
0040 00 57 00 00 00 01 00 5a a9 a7 31 c0 80 76 69 65 .W…..Z ..1..vie
0050 74 5f 76 71 c0 80 39 34 c0 80 77 5e 28 6f 26 34 t_vq..94 ..w^(o&4
0060 5e 28 6f 7c 28 34 2f 6b 25 31 2a 35 2f 75 2d 61 ^(o|(4/k %1*5/u-a
0070 2f 71 2a 68 2d 6f 25 33 2a 70 26 61 2b 6f 7c 76 /q*h-o%3 *p&a+o|v
0080 5e 33 26 28 78 2f 6f 26 64 2d 69 26 6a 26 28 6c ^3&(x/o& d-i&j&(l
0090 2a 71 2a 77 2f 67 5e 6a 2f 6a 29 7c 28 72 2d 61 *q*w/g^j /j)|(r-a
00a0 29 29 29 29 29 c0 80 31 33 c0 80 32 c0 80 )))))..1 3..2..

Để ý đến một cặp khoá mới được server trả về với key 94 là

w^(o&4^(o|(4/k%1*5/u-a/q*h-o%3*p&a+o|v^3&(x/o&d-i&j&(l*q*w/g^j/j)|(r-a)))))

Nhận xét:

- Cố tình thử lại nhiều lần, kể cả cung cấp thông tin login sai cho server, thấy rằng chuỗi kí tự này luôn luôn xuất hiện và thay đổi trong từng session một.
- Mã trả về luôn có số tags đóng bằng số tags mở, các kí tự $, ^, +, %, *, / có vẻ như các phép toán => chuỗi được biểu thị như một biểu thức đại số.
- Đây chắc chắn là một mã hash (token) chứng thực (authetication).

  • ViệtQ

Phần 3

Ta đã nói về chuỗi challenge được gửi trả về w^(o&4^(o|(4/k%1*5… và nghĩ nó như một phép toán số học.

Nhưng thực tế thì không phải là như vậy, các dấu ngoặc ( ) chỉ có mục đích duy nhất là “rắc rối hoá” chuỗi challenge string, trông như một biểu thức phức tạp…

Công việc tạo mã Response sẽ tạo một chuỗi bốc tách từ chữ, số và các “phép toán” của challenge string. Sau đó chúng được biến đổi tiếp bằng các công đoạn dịch bits rất lằng nhằng và phức tạp (trong khuôn khổ 1 bài phân tích Protocol, bài viết không đào sâu vào chi tiết thuật toán). Bên cạnh đó, thuật toán tiếp tục sinh thêm 2 chuỗi mới, 1 chuỗi encoded bằng cách lấy mã YahooBase64 (YB64) của mã MD5 của chuỗi Password; và chuỗi thứ 2 cũng được encoded bằng YB64 của thuật toán MD5 trộn với 1 mã Salt có giá trị “$1$_2S43d5f” (Do Yahoo quy ước)

String regular = YahooBase64(md5(password));
String crypted = YahooBase64(md5(md5Crypt(password, “$1$_2S43d5f”)));

[YahooBase64 là chuẩn format của YMSG (unofficial named). Còn có tài liệu gọi là Mac64. Chuẩn này chỉ khác so với Base64 thông thường ở 3 kí tự "." ,"_" & "-" ứng với "+" , "\" & "=" ở Base64.]

Trong nhiều ứng dụng bảo mật, khi mã hoá MD5 thường kèm theo salt, salt là chuỗi sinh ngẫu nhiên kèm với lần tạo password đầu tiên, và salt hay được lưu trữ ở máy chủ để tránh hacker nếu sniff được đoạn mã MD5 thì cũng không thể fake được vì thiếu mã salt…

Tiếp tục với 2 chuỗi vừa tạo ra, lần lượt mỗi chuỗi kết hợp với chuỗi đầu tiên, dùng các thuật toán SHA-1, gom nhóm bits, dịch bits (mã hoá 2 bytes (== 16bits) bằng 3 chars), và thêm các kí tự “,” “;” ở cuối và “=” ở giữa đoạn string cuối cùng để trông đoạn code như phép gán… 2 chuỗi sau khi encoded có dạng:
(Tham khảo thêm trong các mã nguồn kèm theo bài này)

D=Ci;F=do;m=8C;Y=3a,S=DC;p=21,N=29;S=jn;L=Dj;Y=CB;
O=kA,w=g4,V=a3;L=jC,h=Ej,h=Fa,V=na,E=b3;R=p9,S=jj,

OK, bây giờ client gửi lại giá trị này với key 6 và 96 (service 84), kèm với các vectors:

0: ID
2: ID
2: 1
244: 2097087
148: 180
135: CLIENT_VERSION
1: ID

  • Khi các thông tin đã chính xác, quá trình đăng nhập thành công! (Nick của bạn sẽ phát sáng trên máy người khác)

Nhờ các công đoạn lằng nhằng (monkey around) trên, Yahoo đã không ít lần khiến các 3nd party phải lao đao khi muốn tái hiện lại đoạn code chanllenge của hãng để tích hợp Y!M trong các ứng dụng của họ.

Thử lùi thời gian lại để có cái nhìn rõ hơn về quá trình lao lực với Chanllenge Reponse này của Yahoo!Inc, trong những phiên bản đầu tiên của mình, Yahoo sử dụng đường Http Proxy để tiếp nhận thông tin đăng nhập từ client, tuy nhiên các thông tin gửi đến server đều ở dạng clear text nên rất dễ bị thất lạc thông tin. Sau đó Yahoo! cải tiến bằng cách trước khi password được gửi, nó sẽ bị mã hoá bằng thuật toán MD5 (Dịch vụ webmail trước đó còn sử dụng Java-Script để mã hoá MD5 ngay tại browser). Mặc dù MD5 là thuật toán mã hoá mà đến nay chưa thể decoded nhưng có thể thấy các thông tin gửi lên server sẽ luôn là một hằng số nếu sử dụng theo phương thức này. Mặc dù ngay sau đó, Yahoo! áp dụng trộn thêm chuỗi Salt sinh bởi client trong các lần đăng nhập để giá trị encoded cuối cùng luôn được thay đổi nhưng xem ra thuật toán vẫn rất dễ bị nắm bắt và khai thác.

Ngày 24/6/2004, hãng Trillian tạo ra một ứng dụng 3nd party để kết nối với accounts Y!M, không hỗ trợ các kiểu quảng cáo của Yahoo!. Ngay lập tức bị Yahoo! phản kháng. Từ đó, nhiều cuộc tranh cãi đã nổ ra giữa Yahoo!Inc với các hãng 3nd party khai thác dịch vụ của Yahoo. Và rồi Yahoo quyết tâm thay đổi thuật toán mãnh liệt nhằm ngăn cản công việc nghiên cứu đến từ các tổ chức bên ngoài. Giải thuật mới (đã giới thiệu ở trên) thật sự phức tạp mà đến nay vẫn được Yahoo sử dụng cùng với phiên bản Y!M 9.0 mới nhất. Tuy đã ngăn cản được Trillian trong một thời gian nhất định nhưng cuối cùng, thuật toán đó cũng đã bị cracked và rò rỉ qua mạng Internet cho đến ngày nay. :D

Sau khi đoạn mã hash chính xác đáp trả lại server, quá trình đăng nhập đã thành công mà không cần thêm bất cứ một thông tin nào. Lúc này server sẽ trả về thông tin thêm về tài khoản (Full name, Sex, Virtual IDs, Friends list, Denied list, Unread email…) trong một gói tin bao gồm nhiều YMSG Packets (multiple packets), client cần bóc tách và xử lí từng đoạn phù hợp.

2) Khái quát các dịch vụ khác (Send msg, Status…)
- Mỗi dịch vụ được quy chuẩn bởi Yahoo, ở version 15 có các tags của dịch vụ thông thường sau:

• 0×06 MESSAGE

Format 1 : (status = 0×00000001) Online message
5 : to (yahoo id)
4 : from (yahoo id)
14 : message text
[optional extension]
63 : imvironment name or “;0″
64 : “0″
97 : utf8 encode true/false
Format 2 : (status = 0×00000005) Offline message(s)
31 : “6″ ——–+
32 : “6″ |
5 : to (yahoo id) |
4 : from (yahoo id) | Repeat for each message
15 : Unix timestamp |
14 : message text |
97 : “1″ ——–+
Cài đặt thêm các cặp giá trị (63,0) (64,0) (206,0) với các accounts của hotmail liên thông.

• 0×55 / 0xF1
LIST

89 : Virtual ID
3 : Primier ID
216, 254: Alias ID (First name, Last name)
59 : HTTP cookie Y
59 : HTTP cookie T
59 : HTTP cookie C
3 : yahoo id
100 : “0″
101 : “”
102 : “”
93 : “86400″
149 : base64 style encoded binary
150 : base64 style encoded binary
151 : base64 style encoded binary
65 : Group name
7 : friend ID
(241 : 2) hotmail user
301 : 319
300 : 319
(301 : 319) ignored friends list
(300 : 319) ignored friends list

• 0xF0 UNKNOWN SERVICE (Online + Status ID)

13 : 1 Availble
19: Custom status

• 0×02 LOGOFF

0: ID

nguon: http://vietfov.net

Đọc tiếp →
-->đọc tiếp...

Cách download Eclipse dễ nhất và đầy đủ nhất




Eclipse đã và đang là một IDE mã mở rất nổi tiếng. Với phiên bản 3.4 (tên mã Ganymede) mới phát hành, Eclipse lại đặt thêm một dấu mốc nữa vào lịch sử phát triển của mình. Để download, cách trực tiếp nhất vẫn là từ trang chủ Eclipse.org. Tuy nhiên, trên trang chủ chỉ có các gói chính thức của Eclipse, nếu muốn cài thêm các plugin cần thiết khác, bạn phải tự tìm, download và cài đặt. Điều này rất mất thời gian và khó quản lý. Để giải quyết vấn đề này, nhiều công ty đã đưa ra dịch vụ phân phối cho Eclipse như Pulse, Yoxos. Cá nhân tôi thì thích Yoxos hơn vì bạn không cần phải cài thêm bất kỳ phần mềm nào khác để có thể sử dụng được dịch vụ của Yoxos.Yoxos là một dịch vụ phân phối Eclipse cho cả Windows, Linux và Mac OS, ở đó có sẵn các profile chứa các gói chuẩn của Eclipse cho nhu cầu lập trình web, mobile, C++,... Ngoài ra, còn có hàng trăm plugin được tổ chức rất tốt để bạn lựa chọn thêm, tất cả đều tập trung ở một nơi và tất cả đều miễn phí. Giao diện web của Yoxos sử dụng công nghệ Eclipse Rich Ajax Platform, cho bạn cảm giác như đang dùng Eclipse thật. Khi đã hài lòng với tập plugin mình chọn, bạn có thể download Eclipse kèm theo toàn bộ plugin dưới dạng file ZIP, sau đó chỉ cần giải nén và chạy, tất cả mọi thứ đều hoạt động trơn tru, không cần phải lo lắng gì về vấn đề tương thích. Bạn cũng có thể lưu lựa chọn của mình thành một profile mới và chia sẻ với đồng nghiệp để các thành viên trong nhóm đều có một môi trường phát triển đồng nhất. Bạn sẽ tiếp tục ngạc nhiên vì Yoxos được tích hợp ngay trong Eclipse, cho phép bạn cập nhật, tìm và cài thêm các plugin khác ngay trong Eclipse. Có thể nói đây là một dịch vụ rất tiện lợi và hiệu quả, giúp tiết kiệm thời gian và công sức để bạn tập trung vào công việc nhưng vẫn luôn cập nhật được Eclipse và các plugin mới nhất.
Đọc tiếp →
-->đọc tiếp...