Thứ Tư, 31 tháng 8, 2011

Email: Hành trình 29 năm lịch sử

Đã 29 năm trôi qua kể từ ngày 30/8/1982, ngày hệ thống liên lạc bằng thư điện tử (email) được cấp bản quyền. Hiện có khoảng 3,1 tỉ tài khoản email được sử dụng trên toàn thế giới.
29 năm trước, vào ngày 30/8/1982, cậu bé 16 tuổi V.A.Shiva đã nắm trong tay bản quyền hệ thống liên lạc “email” với giao diện người dùng bao gồm các trường: From: (Người gửi), To: (Người nhận), Cc: (Bản sao), Bcc: (Bản sao ẩn), Subject: (Tiêu đề), Reply: (Gửi trả lời), Reply All (Gửi trả lời tất cả), Forward (Chuyển tiếp) và phần nội dung email cũng như trường đính kèm… giống như giao diện mà ngày nay chúng ta đang dùng để gửi và nhận email.

“Đây là lần đầu tiên tôi nghe đến thuật ngữ "electronic mail" (thư điện tử, viết tắt là email). Về mặt ngôn ngữ, tôi chỉ cảm thấy đó là cách thức gửi thư bằng điện toán. 2 từ này kết hợp với nhau vào năm 1978 và là một khái niệm hoàn toàn mới mẻ”, Shiva cho biết.
A.V.Shiva - Người đưa email đến với thế giới.
Với hệ thống gửi tin nhắn điện tử, Shiva có trách nhiệm biến đổi cái được gọi là hệ thống thư văn phòng này thành hệ thống email thời kỳ sơ khai. Công việc này bắt đầu từ năm 1978 khi Shiva mới 14 tuổi, và đến năm 1981, Shiva đã được nhận giải thưởng khoa học Westinghouse Science và giành được bản quyền cho hệ thống liên lạc bằng email của mình vào năm 1982.
Chỉ sau 1 năm hệ thống chính thức được đưa vào sử dụng, đã có 100.000 tài khoản email được tạo mới và đạt mức 7 triệu người dùng vào 10 năm sau đó (1993). Hiện tại, tính tất cả các dịch vụ email trên toàn cầu, có khoảng 3,1 tỷ tài khoản email, tăng gần gấp đôi so với con số 1,8 tỉ của năm 2009.
Tiến sỹ V. A. Shiva hiện đang là giảng viên tại trường đại học MIT (Mỹ). Trong sự bùng nổ của các hình thức giao tiếp, liên lạc khác, nhiều người hoài nghi về tương lai của email cũng như cho rằng “email đang bị lãng quên”. Tuy nhiên, nói về điều này, Tiến sỹ Shiva khẳng định, email có đặc thù rất riêng và nó vẫn sẽ phát triển. Webmail có thể mất vị trí của nó nhưng các thiết bị vẫn sẽ truy cập vào các hệ thống liên lạc qua email. Facebook hay các mạng xã hội có thể tích hợp một số hình thức truyền tin thay cho email, nhưng nền tảng vẫn là email”.

Những mốc phát triển của email:

Thời tiền email
- 1961: Tom Van Vleck phát triển hệ thống giao dịch tin nhắn nhiều người dùng trên 1 máy tính.
- 1971: Ray Tomlinson phát triển hệ thống giao dịch tin nhắn nhiều người trên nhiều máy tính và gửi bức thư điện tử đầu tiên trên mạng ARPANET.
- 1977: Định dạng chuẩn (RFC 733) được Dave Crocker đề xuất để phổ biến phương thức giao tiếp bằng thư điện tử qua mạng Internet.
Email ra đời
- 1978: Cậu bé Shiva đã tạo một hệ thống điện tử để gửi thư giữa các phòng trong nội bộ trường ĐH Y và Nha khoa New Jersey (UMDNJ).
- 1979: Các thành phần như To, From, Cc, Bcc, Subject, body, Attachment, Inbox, Outbox… được chuyển thành một hệ thống điện tử.
- 1980: Hệ thống điện tử kể trên được ứng dụng thực tế cho trường ĐH Y và Nha khoa New Jersey.
- 30/8/1982: Thuật ngữ "email" và hệ thống được trao bản quyền chính thức.
- 1985: Hệ thống phát triển hình thức email offline (khi không kết nối mạng), cho phép người nhận lưu trữ email trên máy tính.
- 1988: Microsoft Mail là hòm thư điện tử thương mại đầu tiên được phát triển dành cho MAC.
Những năm 1990
- 1991: IBM ra mắt Lotus Notes 1.0 - mô hình email server đầu tiên.
- Đầu những năm 90, vấn nạn thư rác bắt đầu hoành hành.
- 1992: Microsoft Outlook phiên bản dành cho MS-DOS ra đời.
- 1993: AOL và Delphi kết nối hệ thống email độc quyền của họ vào Internet.
- 1993: IBM liên doanh với BellSouth sản xuất dòng điện thoại thông minh đầu tiên Simon Personal Communicator, trong đó có tính năng email.
- 1996: Sabeer Bhatia và Jack Smith khởi động "HoTMaiL" - website cung cấp dịch vụ email miễn phí đầu tiên trên thế giới và nhanh chóng Hotmail trở thành dịch vụ email được sử dụng nhiều nhất thế giới.
- 1997: Yahoo! cho ra đời Yahoo! Mail, cạnh tranh với Hotmail.
- 1999: Blackberry cho phép truy cập dịch vụ email qua ĐTDĐ. Khả năng gửi email qua điện thoại khiến việc sử dụng email nhanh chóng hơn bao giờ hết.
- Cuối những năm 90, email sử dụng ngôn ngữ HTML ra đời cho phép định dạng văn bản phong phú hơn so với văn bản thuần túy.
Những năm đầu thế kỉ 21
- 2003: Microsoft Outlook 2003 phát triển bộ lọc thư rác và thư lừa đảo.
- 2006: Outlook 2007 ra đời hỗ trợ duyệt tin qua RSS và nhận tin nhắn.
- 4/2007: Gmail đi vào hoạt động, sau 4 năm chạy bản beta.
- 2010: Outlook Mobile dành cho Windows Phone 7 và Outlook dành cho Mac 2011 ra đời. Facebook công khai kế hoạch kết hợp ứng dụng Microsoft Office nền web vào hệ thống nhắn tin mới.
- 2011: Hệ thống quy ước AP Stylebook của Hoa Kỳ chính thức sử dụng chữ "email" trên các phương tiện truyền thông thay cho "e-mail".
Theo PCWorld VN

Thứ Năm, 18 tháng 8, 2011

So sánh nhanh giữa SubSonic, nHibernate và LINQ

Bài viết này tuy cũ nhưng khá hay. Mình xin tạm đưa lên
SubSonic do Rob Conery viết cách đây từ năm 2007 dựa trên pattern Active Record. nHibernate cũng tương tự. Hai thư viện này đều được gọi là ORM, Object Relation Mapping. Mình từng thử học nHibernate thấy nó khá loằng ngoằng vì phải dùng file XML để ánh xạ bảng, hoặc kết nối bảng của CSDL với các đối tượng tập collection trong .NET.

Ngược lại SubSonic thì đơn giản hơn, nó có một tool quét tất cả các bảng, stored procedure trong CSDL chủ yếu ở đây là SQL 2005 trở lên, Oracle cũng hỗ trợ nhưng mình chưa thử. Sau có thông tin đầy đủ về tên bảng, tên cột, kiểu dữ liệu của cột thì SubSonic sẽ sinh mã C# định nghĩa các collection chứa class, trong class có các trường thành viên tương ứng với cột. SubSonic có thể mô tả được cả quan hệ một-nhiều. NHibernate cũng vậy.
Đối với stored procedure, thì SubSonic sinh mã là các hàm static. Khi lập trình viên CSDL thay đổi cấu trúc bảng, sửa, thêm mới stored procedure thì tool command line của SubSonic cần chạy lại để cập nhật ánh xạ. Ngoài ra lập trình viên có thể sử dụng partial class để thêm mới các method cho các class tương ứng với bảng trong CSDL. Mình rất thích tính năng này của SubSonic bởi không phải lo truyền sai tham số vào stored procedure.
Về tốc độ, mình nghĩ SubSonic và nHibernate không khác nhau nhiều. Nhưng về dễ sử dụng thì mình thích SubSonic hơn.
LINQ thì có nhiều điểm cải tiến hơn là ORM thuần tuý. LINQ có thể truy vấn cho .NET collection, XML, và SQL,… Căn bản bên trong của LINQ tận dụng những cú pháp mới trong C# 3.0:
- Hàm mở rộng, extension method, gắn hàm mới vào đối tượng kể cả kiểu cơ bản như int mà không cần định nghĩa hàm thừa kế. Hàm này phải khai báo là pubic static nhé
- Biểu thức Lamba, lambda expression, cách viết mới của delegate inline function.
Tốc độ thì cả 3 công nghệ trên khi đo đạc cá nhân sử dụng kiến trúc client-server đều không thể nhanh bằng viết lời gọi đến stored procedure. Tuy nhiên, khả năng mở rộng, phân tán các tập đối tượng, objection collection giữa các máy tính trong kiến trúc SOA rõ ràng là dễ dàng hơn so với Client Server ngày xưa.
Hơn nữa khi nói đến tốc độ, chúng ta phải bàn đến cả khả năng chịu tải truy cập, load balancing & scalability. Một câu lệnh SQL chạy rất nhanh khi chỉ có duy nhất yêu cầu query thì chưa chắc đã đủ. Thực tế nhiều khi là hàng nghìn yêu cầu query đến cùng một lúc. Lúc này, cần phải tính tới phân tải database server hoặc cache dữ liệu trên nhiều application logic tier trung gian. Khi đó LINQ hay ActiveRecord sẽ phát huy sở trưởng của mình.
Với LINQ chỉ cần học một cú pháp, có thể truy vấn nhiều nguồn dữ liệu khác nhau. Chúng ta có thể mở rộng cả cú pháp LINQ viết thêm các hàm deffered và non differed function mới khi chúng ta có kinh nghiệm với hàm mở rộng và biểu thức lamba. Riêng cái này thì ANSI SQL bó tay rồi.
Happy Coding!

Xây dựng Windows Service với C#

Bài viết này sẽ hướng dẫn các bạn viết một trình ứng dụng với mục tiêu âm thầm theo dõi giám sát một thư mục nào đó trên máy tính. Do trình ứng dụng thuộc loại Windows Service nên sau khi viết xong các bạn có thể cài đặt và vận hành nó giống như là một...
Bài viết này sẽ hướng dẫn các bạn viết một trình ứng dụng với mục tiêu âm thầm theo dõi giám sát một thư mục nào đó trên máy tính. Do trình ứng dụng thuộc loại Windows Service nên sau khi viết xong các bạn có thể cài đặt và vận hành nó giống như là một service.
Bài viết này sẽ thú vị đối với các bạn có thiên hướng lập trình mạng, đặc biệt đối với các bạn đang là quản trị mạng, các bạn có thể ứng dụng kỹ thuật này cho nhiều mục tiêu quan trọng khác.

I Tổng quan

Windows Services cung cấp phương tiện cho application logic chạy liên tục trên máy tính của bạn, thông thường là việc cung cấp điều khiển thiết bị hoặc các dịch vụ hệ điều hành. Windows Services là hữu dụng đối với các ứng dụng phía server mà ta muốn chúng phải luôn ở trạng thái sẵn sàng phục vụ các yêu cầu từ client. Nói chung, nếu bạn có nhu cầu xây dựng một trình ứng dụng mà bản chất hoạt động của nó mang tính “âm thầm làm việc” và không cần sự tương tác trực tiếp của người dùng, bạn có thể nghĩ ngay đến việc tạo trình ứng dụng loại Windows Service.
Windows Service là một ứng dụng chạy trên máy server hoặc workstation và cung cấp những chức năng mà sự diễn tiến của nó không cần sự tương tác trực tiếp của người dùng. Windows Services thường được dùng để giám sát hoạt động hệ thống.
Một Windows Service sẽ chạy trong tiến trình của riêng nó, không phụ thuộc người dùng hay các chương trình khác đang chạy trên cùng máy tính. Windows Services thường được cấu hình để tự động bắt đầu khi nào máy tính khởi động. Không giống như đa phần các ứng dụng, Windows Services chạy dưới nhận dạng bảo mật của chính nó, thay vì dưới nhận dạng của đăng nhập người dùng hiện hành. Chúng có thể bắt đầu chạy, ngay cả nếu không có người dùng (user) đăng nhập máy tính.
 Khi mà bạn tạo một ứng dụng với mục tiêu ứng dụng này sẽ chạy như là một Windows Service, bạn cần phải lưu ý rằng nó không bao gồm bất kỳ các yếu tố giao tiếp người dùng như Message Boxes hay Dialog Boxes. Một Windows Service không có tính chất cung cấp một giao diện trực quan (visual interface) cho người dùng.
Thông thường một Windows Service sẽ báo cáo đặc thù các kết quả và thông báo lỗi của nó tới một sổ ghi biến cố (event log). Tuy nhiên bạn cũng có thể kết hợp nó với Web Service để làm những việc “động trời” hơn như là âm thầm chuyển thông tin từ máy mà nó đang được cài đặt đến một máy ở xa thông qua đường truyền internet.
Nếu như bạn đã quen thuộc với Microsoft SQL Server 2000, bạn sẽ nhận thấy nó chạy như là một Windows Service. Một ví dụ dễ hiểu của ứng dụng Windows ServiceWindows Time Service, nó cập nhật thông tin đồng hồ mà bạn thấy trên thanh taskbar của máy tính. Trước đây, việc phát triển các ứng dụng dạng này là rất khó khăn. Giờ đây, nhờ có .NET Framework chứa một tập các class, cung cấp các chức năng cơ bản cho việc cài đặt và phát triển dễ dàng các ứng dụng Windows Service trên nền C# .NET .

II Tạo ứng dụng loại Windows Service.

Bước 1:

Khởi động Visual Studio .NET và tạo một project mới với việc sử dụng mẫu Windows Service. Đặt tên cho project là wsGiamSatThuMuc và chứa nó vào một thư mục trên máy tính của bạn.

Bước 2:

Trên cửa sổ Solution Explorer đổi tên của component có tên Service1.cs thành GiamSatThuMuc.cs.

Bước 3:

DoubleClick vào GiamSatThuMuc.cs à Properties window. Trên cửa sổ Properties lần lượt thực hiện các công việc sau:
· Tại mục ServiceName: đổi tên mặc định service1GiamSatThuMuc.
· Tại mục AutoLog : Thiết lập giá trị là False.
· Tại mục CanStop: Thiết lập giá trị là True.

Bước 4:

Click chọn hiển thị hộp công cụ (Toolbox) của Visual Studio .NET --> click tab : Components --> click chọn EventLog (Là một component) kéo thả vào cửa sổ design.

Bước 5:

Trên cửa sổ design --> click vào biểu tượng EventLog --> cửa sổ Properties --> Tại mục Name đổi tên mặc định EventLog1 thành GetLoginNameEventLog

Bước 6:

Trên cửa sổ design --> click vào biểu tượng EventLog --> cửa sổ Properties --> Tại mục Name đổi tên mặc định EventLog1 thành SoGhiGiamSatThuMuc.

Bước 7:

Mở màn hình soạn thảo mã lệnh của GiamSatThuMuc.cs --> Bạn sẽ thấy rằng C# sẽ tự động bổ sung :
Dòng khai báo
  1. using System.ServiceProcess  

Khai báo kế thừa từ class :
  1. System.ServiceProcess.ServiceBase  

Hai phương thức quan trọng được bổ sung:
  1. protected override void OnStart(string[] args)  

  2. {  

  3.     // TODO: Add code here to start your service.  

  4. }  

  5. protected override void OnStop()  

  6. {  

  7.     // TODO: Add code here to perform any tear-down necessary to stop your service.  

  8. }  

Đây là hai phương thức có vai quan trọng. Các dòng lệnh mà bạn muốn chúng thực thi mỗi khi service start được đặt bên trong phương thức OnStart. Các dòng lệnh mà bạn muốn chúng thực thi mỗi khi service stop được đặt bên trong phương thức OnStop.
Bạn cần bổ sung vào phương thức khởi tạo của class GiamSatThuMuc các dòng lệnh sau:
  1. public GiamSatThuMuc()  

  2. {  

  3.     InitializeComponent();  

  4.     if (!(System.Diagnostics.EventLog.SourceExists("GiamSatThuMuc_Source ")) )  

  5.     {  

  6.         System.Diagnostics.EventLog.CreateEventSource("GiamSatThuMuc_Source""GiamSatThuMuc_Log");  

  7.     }  

  8.     GiamSatThuMucEventLog.Source = "GiamSatThuMuc_Source";  

  9.     GiamSatThuMucEventLog.Log = "GiamSatThuMuc_Log";  

  10. }  

Chú ý rằng bạn không nên đặt các dòng lệnh này ở phương thức OnStart, mặc dù việc bổ sung này khiến nó vẫn hoạt động. Lý do của việc bổ sung vào phương thức khởi tạo của class là để nó chỉ chạy một lần.

Bước 8:

Thêm mã chương trình vào các phương thức xử lý biến cố OnStartOnStop. Để viết đoạn mã lệnh cho phương thức OnStart, bạn gõ vào đoạn mã như trình bày sau đây:
  1. protected override void OnStart(string[] args)  

  2. {  

  3.     FileSystemWatcher watch = new FileSystemWatcher();  

  4.     watch.Path = @"c:\Watcher\"; 

  5.     watch.Changed += new FileSystemEventHandler(OnChanged); 

  6.     watch.Created += new FileSystemEventHandler(OnChanged); 

  7.     watch.Deleted += new FileSystemEventHandler(OnChanged); 

  8.     watch.Renamed += new RenamedEventHandler(OnRenamed); 

  9.     watch.EnableRaisingEvents = true; 

  10.     watch.IncludeSubdirectories = true; 

  11.     Console.ReadLine(); 

  12. } 

  13. //-------------------------------------------------- 

  14. private void OnChanged(object source, FileSystemEventArgs e) 

  15. { 

  16.     // Specify what is done when a file is changed, created, or deleted. 

  17.     string dir = @"c:\Watcher\" + e.Name; 

  18.     if (e.FullPath == dir) 

  19.     { 

  20.         Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType); 

  21.         GiamSatThuMucEventLog.WriteEntry("Da co thao tac Change trong thu muc Watcher tren C"); 

  22.     } 

  23.  

  24. } 

  25. // ---------------------------------------------------------------------------------- 

  26. private void OnRenamed(object source, RenamedEventArgs e) 

  27. { 

  28.     // Specify what is done when a file is renamed. 

  29.     string dir = @"c:\Watcher\" + e.Name; 

  30.     if (e.FullPath == dir) 

  31.     { 

  32.         Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath); 

  33.         GiamSatThuMucEventLog.WriteEntry("Da co thao tac rename trong thu muc Watcher tren C");  

  34.     }  

  35. }  

Đoạn mã lệnh trên nhằm mục tiêu khi service được start trình ứng dụng sẽ giám sát thư mục C:\Watcher. Bạn có thể bổ sung thêm theo ý mình, ở đây chúng ta chỉ viết mã lệnh tướng ứng với các sự kiện OnChangedOnRenamed.
Chú ý: Trong phần mã lệnh của GiamSatThuMuc.Designer.cs bạn cần sửa biểu thị private à public tương ứng với khai báo GiamSatThuMucEventLog dòng lệnh sau:
  1. public System.Diagnostics.EventLog GiamSatThuMucEventLog;  

Thêm vào thành phần Installer :

Bước 9:

Click chuyển sang cửa sổ design của GiamSatThuMuc.cs. Bên trong cửa sổ này click phải chuột à click chọn mục Add Installer .
Một class có tên là ProjectInstaller.cs sẽ được thêm vào project của bạn. Bạn sẽ thấy ở màn hình design của thành phần này có hai biểu tượng thành tố khác trên nó là : ServiceProcessInstaller1ServiceInstaller1.


Bước 10:

Click vào ServiceProcessInstaller1 và hiển thị cửa sổ Properties --> tại thuộc tính Account  click chọn LocalSystem trong danh sách   

Bước 11:

Click vào ServiceInstaller1 và hiển thị cửa sổ Properties. Chọn giá trị Automatic cho thuộc tính StartType

Bước 12:

Thực hiện việc build trình ứng dụng    

Tạo một trình ứng dụng loại Setup để cài đặt (Install) Service:
   

Bước 13:

Từ menu à File --> Add Project --> New Project.

    Đặt tên ProjectsSetupGiamSatThuMuc


Bước 14:

Trong cửa sổ Solution Explorer, click phải chuột tại SetupGiamSatThuMuc --> Add Project Output
    Từ cửa sổ Add Project Output Group --> chọn Primary Output --> click OK
   

Bước 15:

Trong cửa sổ Solution Explorer, click phải chuột tại mục SetupGiamSatThuMuc -->View --> Custom Actions.

Bước 16 :

Tại mục Custom Actions --> click phải chuột --> Add Custom Action

Bước 17 :

Xuất hiện cửa sổ Select Item in Project --> Double-click mục Application Folder, chọn mục Primary Output from swGiamSatThuMuc (Active) --> click OK.

Bước 18 :

Thực hiện việc build trình ứng dụng SetupGiamSatThuMuc (chú ý nhớ chọn định cấu hình cho SolutionRelease ).    

Cài đặt (Installing) và kiểm thử (test) Service

Bước 19 :

Trong thư mục của project vừa tạo SetupGiamSatThuMuc --> bạn vào thư mục con có tên Release và tìm tập tin có tên SetupGiamSatThuMuc.msi. Double-click tập tin này để start việc cài đặt (installation). Thao tác này sẽ start trình Setup Wizard. Chấp nhận tất cả các giá trị ngầm định và hoàn tất việc cài đặt (installation).

Bước 20 :

Để kiểm tra service vừa được cài đặt bạn cần sử dụng công cụ Service Control Manager với các bước thực hiện : click Start --> Programs --> Administrative Tools --> Services. Bạn sẽ thấy GiamSatThuMuc trong danh sách.

Bước 21 :

Click phải trên service của bạn và chọn Properties --> Start
  

Bước 22 :

Click Start --> Programs --> Administrative Tools --> Event Viewer (Các bước có thể khác tuỳ thuộc hệ điều hành mà bạn đang dùng) để xem sổ ghi biến cố trong Event Viewer .     Chúc các bạn thành công!
   
[HaiPhong-Aptech] st

Chủ Nhật, 14 tháng 8, 2011

Top 10 máy tính quan trọng nhất 30 năm qua

Cách đây 30 năm, IBM đã công bố chiếc IBM Personal Computer 5150 đầu tiên đánh dấu sự ra đời của máy tính cá nhân (personal computer, hay còn gọi là PC), một trong những thiết bị có vai trò tối quan trọng trong lịch sử phát triển của thế giới công nghệ.
Mặc dù hiện nay, sự xuất hiện của những thiết bị tối tân hơn như smartphone và tablet đã khiến PC dần trở nên lỗi thời. Tuy nhiên, PC cũng đang ngày càng trở nên mạnh mẽ và hoàn thiện hơn. Chúng sẽ còn đóng một vai trò quan trọng trong một thời gian dài nữa.
Chúng ta cùng điểm lại 10 PC quan trọng nhất trong lịch sử phát triển của thế giới công nghệ trong 30 năm qua:

1981: IBM PC

Sự xuất hiện của IBM PC đã phá vỡ mọi định kiến về máy tính cá nhân, đó là giá cả phải chăng, là kích thước nhỏ bé và khiến cho khái niệm máy tính cá nhân trở nên phổ biến.

1982: Franklin Ace 100

Franklin Ace 100 chính là nguyên nhân của vụ kiện bản quyền phần mềm đầu tiên trên thế giới liên quan tới các bản sao vật lý của phần cứng và hệ điều hành trên chiếc máy tính Apple II thuộc sở hữu của Apple Computer Inc.

1982: Commodore 64

Commodore 64 có thể là chiếc máy tính “tại gia” nổi tiếng nhất tại Mỹ. Trong khoảng thời gian giữa năm 1982 và 1983, gần 30 triệu bản Commodore 64 đã được bán ra trên khắp thế giới.

1982: ZX Spectrum

Spectrum được sản xuất bởi Clive Sinclair, người sau đó được phong tước hiệp sĩ cho những đóng góp của ông cho ngành công nghiệp Anh. Spectrum thu hút người dùng bởi khả năng tính toán mà nó có thể cung cấp, cùng với đó là các ứng dụng từ các công ty phát triển phần mềm riêng.
Spectrum đã bán được khoảng 5 triệu bản tại Vương Quốc Anh.

1983: IBM PC XT

IBM PC XT là một bản nâng cấp từ IBM PC. XT là chiếc máy tính cá nhân đầu tiên được thiết kế đi kèm một ổ cứng lưu trữ dung lượng 10 MB. Thiết kế này nhanh chóng trở thành tiêu chuẩn cho các máy tính cá nhân được ra mắt sau đó.

1983: Apple Lisa

Lisa là chiếc PC đầu tiên trên thế giới được thiết kế với một giao diện đồ họa. Lisa có mức giá 10.000 USD, đó quả thực là một rào cản lớn để sở hữu đối với người tiêu dùng khi đó.

1984: Macintosh

Macintosh là chiếc máy tính cá nhân mở đầu kỷ nguyên cho các “hậu duệ” iMac, iPod và iPhone. Macintosh có một giao diện đồ họa người dùng giống như Lisa, tuy nhiên, giá thấp hơn nhiều (2.495 USD). Macintosh đã mở ra một chuỗi những thành công cho các sản phẩm chiếm lĩnh thị trường ngày nay là iMac và Macbook.

1990: NeXT Turbo Dimension Cube

NeXT là công ty máy tính mà Steve Jobs khởi đầu sau khi rời bỏ Apple, NeXT Turbo Dimension Cube chiếm vị trí quan trọng bởi đây là chiếc máy tính cá nhân được kỹ sư Tim Berners-Lee sử dụng để lưu trữ World Wide Web trong thời kỳ sơ khai.

1996: Deep Blue

Sau khi để thua trong trận đấu cờ vua với Garry Kasparov, các kỹ sư công nghệ của IBM đã gấp rút cải thiện lại "siêu máy tính" Deep Blue (sau đó đổi tên thành “Deeper Blue"). Sự cải tiến này đạt được thành quả ngay sau đó khi Deeper Blue trở lại đánh bại Kasparov trong trận tái đấu vào năm 1997, qua đó thể hiện khả năng xử lý đáng kinh ngạc của chiếc máy tính này.

1998: iMac

Apple đã tạo ra một cuộc cách mạng to lớn khi cho ra mắt chiếc máy tính iMac trong suốt có màu sặc sỡ, cùng những đường cong, đó là một cái gì đó hoàn toàn mới lạ trong thế giới màu xám của những chiếc máy tính vuông vức thời đó.
Theo Business Inside

Thứ Năm, 11 tháng 8, 2011

Thuở ban đầu của các hãng công nghệ nổi tiếng

Samsung bán mỳ, Nokia kinh doanh ủng còn hãng sản xuất máy chơi game cầm tay Nintendo còn xây dựng cả khách sạn tình yêu.
Intel ngay từ đầu đã sản xuất bộ vi xử lý, Oracle khởi đầu với cơ sở dữ liệu còn Microsoft chuyên viết phần mềm... Tuy nhiên, một số công ty công nghệ khác lại có nguồn gốc mà ít người nghĩ tới:

Thuở ban đầu của các hãng công nghệ nổi tiếng
Giấy, bao bì, ủng cao su... là những sản phẩm đầu tiên của Nokia (Phần Lan) khi thành lập năm 1865. Logo đầu tiên của họ có hình con cá. Năm 1903, Nokia nhảy sang xây dựng nhà máy trong lĩnh vực thủy điện. Năm 1981, khi điện thoại quốc tế phát triển ở Bắc Âu và Nokia chính là nhà sản xuất điện thoại đầu tiên cho xe hơi.
Thuở ban đầu của các hãng công nghệ nổi tiếng
Năm 1938, cửa hàng Samsung Sanghoe ra đời, chuyên bán đồ khô và sản xuất mỳ. Họ bổ sung thêm máy dệt len vào thập niên 50 của thế kỷ trước và cuối cùng chuyển sang đồ điện tử vào cuối những năm 60.
Thuở ban đầu của các hãng công nghệ nổi tiếng
Nintendo sản xuất bộ bài từ năm 1887 cho đến thập niên 60 của thế kỷ trước. Sau đó, họ chuyển sang thử nghiệm một loạt kiểu kinh doanh mới từ thành lập công ty taxi, xây dựng "khách sạn tình nhân" đến bán máy hút bụi và cuối cùng cũng tìm thấy đường đi khi tham gia ngành công nghiệp game giữa thập niên 70.
Thuở ban đầu của các hãng công nghệ nổi tiếng
Năm 1915, nhà phát minh Tokuji Hayakawa của Nhật tạo ra bút chì kim có tên Sharp và lấy nó làm tên công ty. Năm 1964, họ sản xuất thêm máy tính calculator và bước vào ngành công nghiệp điện tử.
Thuở ban đầu của các hãng công nghệ nổi tiếng
Konosuke Matsushita thiết kế đui đèn cho công ty Osaka Electric Light năm 1917 nhưng bị chê nên đã tách ra mở công ty riêng. Matsushita sau đó nhận được hợp đồng lớn về sản xuất bộ cách điện và ông sử dụng số tiền đó để tạo đui đèn đôi (ảnh trên) trước khi Panasonic (Matsushita) chuyển sang sản xuất đồ điện tử.
Thuở ban đầu của các hãng công nghệ nổi tiếng
Motorola ra đời năm 1928 với tên gọi Galvin Manufacturing sản xuất thiết bị cho phép radio chạy bằng điện thay vì dùng pin. Năm 1930, họ mua lại bằng sáng chế radio cho xe hơi và đổi tên thành Motorola (kết hợp giữa motor và Victrola - một loại máy ghi âm sơ khai).
Thuở ban đầu của các hãng công nghệ nổi tiếng
Dave Hewlett và Bill Packard cùng thành lập công ty HP năm 1938 nhưng không phải để bán máy tính mà để chế tạo máy tạo dao động (oscillator).
Thuở ban đầu của các hãng công nghệ nổi tiếng
Apple ban đầu có tên Apple Computer với mục đích sản xuất máy tính cá nhân. Nhưng sản phẩm gây sốt của họ là là máy nghe nhạc iPod, điện thoại iPhone và máy tính bảng iPad. Do đó năm 2007, họ loại chữ "Computer" khỏi tên công ty.
(Ảnh: Business Insider)



Theo VnExpress

Thứ Tư, 10 tháng 8, 2011

TEST-DRIVEN DEVELOPMENT

Trong những năm gần đây, khái niệm TDD được đưa ra dựa trên mô hình phát triển PM khá nổi tiếng XP (Extreme Programming). TDD là một chiến lược phát triển sử dụng kỹ thuật UT theo nguyên tắc tạo ra các công đoạn kiểm nghiệm trước khi xây dựng mã.
Ý tưởng chính của TDD: Trước khi bạn bắt tay viết mã, hãy nghĩ về những gì phải làm trước. Không giống như lập trình truyền thống, trong TDD chúng ta viết mã kiểm tra trước khi viết mã chính, chỉ được viết sau khi đạt đủ số lượng UT cần thiết cho các tình huống có thể xảy ra.

Có thể hiểu TDD là một quy trình vòng tròn bắt đầu bởi các UT với trạng thái đầu tiên là "fail", tiếp theo cần viết mã để các UT chuyển trạng thái "pass", và cuối cùng hiệu chỉnh mã cho đơn giản hơn. Quy trình này được tái diễn liên tục đối với mọi đơn vị chương trình cho đến khi kết thúc hoàn toàn dự án.

Đặc điểm của TDD

• Là quy trình phát triển tăng dần theo kịch bản và gắn chặt với các công đoạn kiểm nghiệm trước khi đưa ứng dụng vào vận hành thực sự.

• Là phương pháp phát triển PM ở đó áp dụng kỹ thuật UT tiến hành kiểm tra tất cả các interface, tạo ra các MO cần thiết mô phỏng sự vận hành của ứng dụng ở một nơi riêng biệt.

• Tạo ra bộ khung vận hành tự động cho tất cả các thao tác kiểm nghiệm bộ phận trong hệ thống mỗi khi xây dựng một phiên bản mới.

Lợi ích của TDD

• TDD là một kỹ thuật giúp định hình ý tưởng thiết kế hơn là kiểm nghiệm mã chương trình. Thực hiện theo TDD sẽ làm sáng tỏ thêm các yêu cầu bài toán, giải tỏa sự bế tắc trong khi đi tìm giải pháp, phát hiện sớm các vấn đề về thiết kế và tránh được những công việc phải làm lại.

• TDD là một phần bổ trợ không thể thiếu trong các công việc lập trình theo nhóm nhỏ, thường là hai người cùng phát triển một module. Trong mô hình này, luân phiên một người có nhiệm vụ nghĩ về tình huống kiểm tra tiếp theo, viết UT cho tình huống và các MO cần thiết. Người còn lại tập trung viết mã để các UT chuyển sang trạng thái "pass"; giúp giảm thiểu lỗi so với khi làm việc độc lập.

• TDD định hướng cho nhóm thiết kế vận dụng tốt các phương pháp hướng đối tượng (các đối tượng cần kiểm tra phải thực thi một interface là một thí dụ), đặc biệt có thể thu được thiết kế tốt theo hai nguyên tắc:

- Loosely-Coupled: Bất kỳ sự thay đổi nào cũng đều không ảnh hưởng đến các đối tượng khác.

- Highly-Cohesive: Có tính chất khép kín theo nghĩa chỉ thực hiện những chức năng gần với nhau về mặt nghiệp vụ và thiết kế, đồng thời loại ra những chức năng ít có liên quan đến các chức năng chính.

• Lợi ích quan trọng cuối cùng của TDD là xây dựng các đoạn mã chất lượng và an toàn, tập trung hơn, giảm phân mảnh mã và giảm rủi ro xảy ra ngoài dự kiến.

Trong TDD, càng nhiều UT được tạo ra thì càng có nhiều khả năng khống chế nhanh chóng các lỗi nghiêm trọng xảy ra. Các UT càng "mịn" theo nghĩa không thể chia nhỏ hoặc không thể bổ sung được nữa thì khả năng đáp ứng yêu cầu kiểm nghiệm càng cao. Khi đã thiết kế đủ các UT có khả năng phát hiện chính xác bất kỳ một lỗi kỹ thuật nào, chúng ta có thể yên tâm chuyển giao module cho chuyên viên QA kiểm định chức năng (functional testing). Tuy nhiên trong suốt giai đoạn phát triển sau đó cần kiểm tra định kỳ các trạng thái của UT để đảm bảo việc cập nhật không phá vỡ tính đúng đắn của các đoạn mã cũ.

Quy trình thực hiện

Trình tự thực hiện trong TDD như sau:

1. Đối với một module, nghĩ về các công việc sẽ làm và cách kiểm tra công việc đó như thế nào.

2. Tạo test suite ứng với module đó.

3. Bắt tay thiết kế sơ bộ tất cả các UT có thể nghĩ ra. Bước này thực chất là thu thập các tình huống có thể phát hiện lỗi vào một danh sách công việc cần kiểm nghiệm.

4. Viết mã để đảm bảo các UT được biên dịch.

5. Thực thi các UT, vì mã chính của module chưa tồn tại nên trạng thái là "fail".

6. Viết mã cho module để thay đổi trạng thái UT, có thể bổ sung UT nếu cần thiết.

7. Chạy lại toàn bộ test suite và quan sát các UT lỗi, lặp lại bước 6-7 cho đến khi tất cả UT đều đạt trạng thái "pass".

8. Hiệu chỉnh mã để loại bỏ các phần lặp lại, các khối mã và các phân nhánh, liên kết thiếu hợp lý hoặc các khối mã không còn hoạt động... đồng thời viết chú giải các phần quan trọng. Hãy thực hiện công việc này thường xuyên vì chúng ta sẽ không có thời gian quay lại cho công việc hiệu chỉnh.

Bước cuối cùng có ý nghĩa rất lớn trong việc giảm sự phụ thuộc vào các module khác và gia tăng sự độc lập về mặt nghiệp vụ của module hiện hành. Cần lưu ý kiểm tra lại trạng thái tất cả các UT sau mỗi lần hiệu chỉnh vì rất có thể công việc này sẽ gây ra lỗi ở đâu đó.

Chiến lược phát triển với TDD

Mỗi công ty PM đều có cách điều hành quản lý phát triển PM khác nhau, nhưng tất cả đều có chung một mục đích là giảm số lỗi xuống mức nhỏ nhất có thể và khống chế lỗi phát sinh trở lại. Tuy nhiên nhìn chung một quy trình phát triển PM lý tưởng không thể thiếu các bước quan trọng sau đây:

• Thiết kế một dự án thử nghiệm riêng, độc lập, tách biệt với khu vực phát triển. Không gắn dự án thử nghiệm đó vào phiên bản sản phẩm được giao cho khách hàng, vì điều này có thể làm tăng kích thước sản phẩm.

• Xây dựng một cơ sở dữ liệu các test suite cho mọi module phục vụ việc kiểm nghiệm cả hai khía cạnh phát triển và chức năng.

• Chia nhỏ dự án ra nhiều quy trình nhỏ hơn dựa trên ngữ cảnh, giúp việc viết UT được dễ dàng hơn. Để kiểm tra hiệu quả của toàn bộ ứng dụng, tốt nhất là kiểm tra hiệu quả của mọi đơn vị mã nhỏ nhất.

• Có thể thiết lập các cơ sở dữ liệu riêng cho dự án thử nghiệm lưu trữ tất cả các giá trị đầu vào và các kết quả trả về mong muốn... XML sẽ là cách tiếp cận tốt nhất cho những cơ sở dữ liệu loại này.

• Tích hợp công việc kiểm nghiệm thành một phần trong quy trình tự động hoá quản lý mã nguồn như tích hợp toàn bộ công việc, biên dịch vào cuối ngày làm việc... Mỗi một công việc như vậy được gọi là một "build". Về quy trình này có thể tham khảo ứng dụng nguồn mở Ant trong Java (hoặc NAnt cho .NET), hay các công cụ thương mại như CruiseControl hoặc Anthill.

• Cuối cùng thay vì kiểm nghiệm bằng tay, hãy để máy tính thực hiện tự động và gửi báo cáo cho bạn. Các thông báo email tự động hàng ngày về tình trạng của các UT sẽ luôn đảm bảo cho dự án thông suốt. Tất cả các công việc này có thể được tiến hành trên một máy tính riêng có khả năng kiểm soát các thay đổi mã nguồn.

Nguồn: pcworld.com.vn

Thứ Bảy, 6 tháng 8, 2011

Chuyển mã phông chữ với Unikey

Quản Trị Mạng - Lâu nay có thể bạn đã quen khi làm văn bản bằng các loại font Việt Nam, với thông báo của Nhà nước về quy định sử dụng font Unicode, đồng thời khi copy nội dung những văn bản đó vào ô nhập của trang web thì thấy lỗi font. Làm thế nào để khắc phục mà không cần phải mất công gõ lại, QuanTriMang.com sẽ hướng dẫn bạn cách làm như sau:

1. Trước tiên, cần mở file chứa nội dụng văn bản cũ (gọi là file gốc) nhằm xác định rõ văn bản được gõ bằng loại font gì, bạn chỉ cần để trỏ chuột vào nội dung và nhìn lên ô font trên thanh Formatting. Việc này rất quan trọng, vì nếu bạn xác định không đúng thì sau khi chuyển mã font sẽ bị lỗi hơn.

Hình ảnh xác định văn bản được gõ bằng font .VnTime tương ứng với bảng mã là TCVN3
Bạn hãy lưu ý các tiêu chuẩn giữa bảng mã và font chữ như sau:
- Bảng mã TCVN3 thì áp dụng cho font dạng .Vn (ví dụ: .VnTime)
- Bảng mã VNI window thì áp dụng cho font dạng VNI (ví dụ: VNI-Thufap)
- Bảng mã Unicode (UTF-8), kiểu gõ Telex thì áp dụng cho những font dạng như Times New Roman, những font thường có sẵn khi cài hệ điều hành.
2. Chọn (bôi đen) nội dung văn bản, nhấn Ctrl+A để chọn toàn bộ, tiếp theo bạn có thể Copy (Ctrl+C) hoặc Cắt (Ctrl+X).
- Nếu copy (Ctrl+C) thì bạn cần mở 1 file mới.
- Nếu cắt (Ctrl+X) thì không cần thiết.
3. Tiếp theo, mở phần đổi mã của Unikey bằng cách kích chuột phải vào biểu tượng Unikey ở góc phải dưới màn hình, chọn Công cụ…
Hoặc dùng phím tắt Ctrl+Shift+F6.
4. Cửa sổ Unikey Toolkit xuất hiện:
- Chọn Bảng mã đối với file Nguồn (theo ví dụ là TCVN3)
- Chọn Bảng mã đối với file Đích (bảng mã bạn muốn chuyển tới, ở đây ví dụ là bảng mã Unicode)
5. Tiếp theo, kích vào nút Chuyển mã trên cửa sổ Unikey Toolkit,
Khi đó 1 hộp thoại thông báo bạn đã chuyển mã thành công.
Nếu bạn chưa thực hiện Copy hoặc Cắt, thì sẽ xuất hiện cửa sổ:
6. Cuối cùng, hãy dán (nhấn Ctrl+V) nội dung văn bản vào file mới. Nội dung văn bản sau khi chuyển mã hiển thị như sau:
Với những tài liệu có bảng mã font Nguồn và bạn muốn chuyển đổi sang bảng mã font Đích như trên, bạn chỉ cần nhấn Ctrl+Shift+F9, và dán (Ctrl+V) vào file tài liệu là chuyển mã font thành công.
Đối với những font chữ tương ứng với bảng mã khác, bạn cũng có thể làm theo hướng dẫn trên để chuyển mã, việc quan trọng nhất là bạn xác định rõ font chữ dùng trong văn bản tương ứng với bảng mã nào và chuyển đổi sang loại font gì.
Ngoài ra, để nội dung văn bản không bị lỗi khi hiển thị trong các chương trình cài đặt trên máy tính do bị thiếu font, bạn có thể tìm kiếm và copy những font thiếu vào bộ Font của máy tính.
Có thể tải về Unikey tại đây 

Cookie là gì?

Cookie là một dạng “tin nhắn” chuỗi văn bản đơn giản, tương tác giữa máy chủ và trình duyệt. Cookie phản ánh thói quen của người dùng khi vào một trang web: chuyên mục ưa thích, từ khóa thường tìm kiếm,…tất cả sẽ được gửi trả lại cho chủ nhân website để có định hướng phát triển website theo thị hiếu người xem, hoặc tận dụng thông tin đó để chèn quảng cáo theo từng nhóm các đối tượng người dùng.

Ví dụ bạn quan tâm đến các bài viết về công nghệ, cookie sẽ đóng vai trò “tình báo” để chủ website cho hiện quảng cáo về các sản phẩm Hi-Tech mỗi lần bạn ghé thăm website đó. Ở một số bang tại Mỹ, tung cookie bị coi là một hành động bất hợp pháp vì đôi khi nó xâm phạm đến quyền riêng tư của người dùng.

Thứ Ba, 2 tháng 8, 2011

Ứng dụng văn phòng miễn phí LibreOffice 3.4.2 ra mắt

TTO - Công ty The Document Foundation (TDF) đã chính thức phát hành phiên bản LibreOffice 3.4.2, bộ ứng dụng văn phòng tương tự Microsoft Office nhưng hoàn toàn miễn phí sử dụng, với nhiều cải tiến và khắc phục các lỗi trong phiên bản trước.



LibreOffice 3.4.2 khắc phục một số lỗi, sẵn sàng tiến vào môi trường doanh nghiệp thay vì tập trung hướng đến người dùng cá nhân trong các phiên bản trước đây.

Theo nhóm phát triển, LibreOffice 3.4.2 là thành quả của 300 lập trình viên đã cùng bổ sung, xóa, hiệu chỉnh gần 5 triệu dòng mã nguồn.

Bạn đọc có thể sử dụng LibreOffice 3.4.2, tương thích với cả hệ điều hành Windows, Linux và Mac cho cả hai nền tảng 32-bit và 64-bit tại đây.

Những tính năng đáng chú ý trong LibreOffice 3.4.2 bao gồm:
  • Khả năng xử lý và nhập (import) các tập tin SVG
  • Bộ lọc chức năng nhập (import) cho các văn bản Lotus Word Pro và Microsoft Works
  • Dễ dàng định dạng tiêu đề trang và con số trong LibreOffice Writer
  • Công cụ Navigator trong LibreOffice Writer được cải tiến
  • Quản lý ô (cell) và trang (sheet) tốt hơn trong LibreOffice Calc
  • Hỗ trợ nhập tập tin PDF
  • Giao diện điều khiển trình diễn slide-show
Đặc biệt, nhiều phần mở rộng khá hay đi kèm LibreOffice 3.4.2 sẽ làm người dùng thêm tiện lợi khi sử dụng.


Công cụ soạn thảo văn bản LibreOffice Writer, tương tự Microsoft Word

LibreOffice là bộ ứng dụng văn phòng mã nguồn mở bao gồm các công cụ soạn thảo văn bản (Writer), bảng tính (Calc), trình diễn (Impress), đồ họa/biểu đồ (Draw), quản lý cơ sở dữ liệu (Base), bảng tính khoa học (Math). LibreOffice tương tự bộ Microsoft Office nhưng hoàn toàn miễn phí sử dụng và thường xuyên được nâng cấp, cải tiến từ cộng đồng phát triển.

các bạn có thể down tại đây
bao gồm cả 2 nền tảng 32bit và 64bit
tương thích với cả hệ điều hành Windows, Linux và Mac.

các bạn cứ thử nghiệm đi.

Những điều cần biết về Ngôn ngữ web HTML5

HTML5 sẽ cho phép một lớp ứng dụng web mới ra đời, hỗ trợ nội dung đa phương tiện và các tính năng offline mà không cần đến những công nghệ độc quyền đi kèm.

Các đặc tính của HTML5 đã và đang được nói đến rất nhiều. Ngôn ngữ web này sẽ kế tiếp sự nghiệp của HTML4. HTML5 là phiên bản sửa đổi thứ 5 của ngôn ngữ World Wide Web: the Hypertext Markup Language (HTML) – đây được xem là ngôn ngữ chung của web. Nhóm Web Hypertext Application Technology Working Group (WHATWG) đã bắt đầu nghiên cứu về các đặc tính của HTML5 từ tháng 10/2009, dưới dự án Web Applications 1.0.

Năm 2022 mới hoàn thiện

Mặc dù hiện nay HTML5 được nói đến rất nhiều và các công trình nghiên cứu về HTML5 đã bắt đầu từ giữa những năm 2000, song các đặc tính kĩ thuật của nó dự kiến sẽ được hoàn thiện vào tận năm 2022. HTML4 chính thức xuất bản vào năm 1999.
Chính xác thì các công trình nghiên cứu về HTML5 bắt đầu vào tháng 6/2004, do các tổ chức World Wide Web Consortium HTML Working Group (W3C HTML WG) và WHATWG cùng phối hợp thực hiện.
Ian Hickson, biên tập kĩ thuật của HTML5, nói ông hi vọng những đặc tính kĩ thuật của HTML5 sẽ được trình lên W3C Candidate Recommendation vào năm 2012 và lên W3C Recommendation vào năm 2022. Tuy nhiên, nhiều đặc tính kĩ thuật của HTML5 đã ổn định và có thể được ứng dụng ngay từ bây giờ.
Theo Hickson, khung thời gian đệ trình và thử nghiệm kĩ thuật HTML5 là:
  • Dự thảo đầu tiên gửi lên W3C vào tháng 10/2007.
  • Dự thảo cuối cùng vào tháng 10/2009.
  • Kêu gọi thử nghiệm vào năm 2011.
  • Bản Đề cử (Candidate Recommendation) vào năm 2012.
  • Dự thảo bộ thử nghiệm đầu tiên vào năm 2012.
  • Dự thảo thử nghiệm thứ hai vào năm 2015.
  • Phiên bản thử nghiệm cuối cùng vào năm 2019.
  • Phát hành lại Dự thảo Last Call Working Draft vào năm 2020.
  • Đề cử dự kiến vào năm 2022.
HTML5 sẽ thay thế HTML4, DOM2 HTML và XHTML 1.

Với HTML5, sẽ không cần đến các công nghệ độc quyền

Ngôn ngữ web HTML5 ra đời nhằm mục đích giảm bớt sự phụ thuộc và cần thiết của những công nghệ ứng dụng Internet độc quyền như Adobe Flash, Microsoft Silverlight và Sun JavaFX. Tuy nhiên, phải mất rất nhiều năm nữa mới đạt đến mục tiêu đó. Ngôn ngữ HTML4 không cho phép nhúng hay kiểm soát các nội dung đa phương tiện, trái lại, các yếu tố video và audio mới của HTML5 cho phép các nhà phát triển nhúng và kiểm soát các nội dung đa phương tiện mà không cần đến Flash. HTLM5 còn cho phép giao tiếp 2 chiều với máy chủ, vì thế các nhà phát triển có thể thử nghiệm game, chat, điều khiển từ xa….
Những tính năng của HTML5 như Canvas, lưu trữ nội bộ và Web Workers cho phép các nhà phát triển nâng cấp trình duyệt web theo những cách mà công nghệ trước đó không cho phép. Opera Software được xem là hãng đi đầu trong việc triển khai công nghệ HTML5 trong trình duyệt của hãng.
Tất cả các hãng trình duyệt lớn hiện nay, như Mozilla, Opera, Microsoft, Apple và Google đều đang tham gia định hình các đặc tính kĩ thuật của HTML5 và hỗ trợ ngôn ngữ web mới này, dù các đặc tính vẫn chưa được thông qua cuối cùng.
Trình duyệt Chrome của Google hiện đã có một số tính năng HTML5 như video tag. Vì thế cho đến nay, các trình duyệt Google Chrome, Apple Safari, Opera và Firefox đều hỗ trợ video HTML5. Tuy vậy, Opera và Firefox không hỗ trợ phiên bản mã h.264 dùng cho các video của YouTube và Vimeo. Trong khi đó, Internet Explorer của Microsoft lại chưa hỗ trợ video HTML5. Tuy vậy, người dùng IE có thể sử dụng video HTML5 bằng cách cài đặt thêm plug-in nguồn mở Chrome Frame của Google. Hiện nay YouTube và Vimeo cũng đã tuyên bố hỗ trợ video HTML5. Hệ điều hành webOS của Palm cũng hỗ trợ cơ sở dữ liệu HTML5 và Palm cũng hỗ trợ tính năng bản đồ dựa trên HTML5 trên Palm Pre.
Microsoft đã bắt đầu triển khai HTML5 trong Internet Explorer 8. Đại gia phần mềm đang bổ sung các tính năng HTML5 như lưu trữ nội bộ, điều hướng AJAX.
Theo IctNews

Bài đăng phổ biến