Monday, April 20, 2015

SyndicationFeed - Đọc RSS với .Net 4.0 trở nên đơn giản

Sử dụng thư viện System.ServiceModel với 02 lớp

System.ServiceModel.Syndication.SyndicationFeed;
System.ServiceModel.Syndication.SyndicationItem;

Code ví dụ
[sourcecode language="csharp"]
List<SyndicationItem> rss = new List<SyndicationItem>();
string url = "http://vnexpress.net/rss/the-thao.rss";
XmlReader xmlreader = XmlReader.Create(url);
SyndicationFeed rssfeed = SyndicationFeed.Load(xmlreader);
xmlreader.Close();

foreach (SyndicationItem item in rssfeed.Items)
{
rss.Add(item);
}
[/sourcecode]

Demo ví dụ:
Untitled

Untitled1

Mã nguồn demo
[sourcecode language="csharp"]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.ServiceModel.Syndication;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
List<SyndicationItem> rss;
public Form1()
{
InitializeComponent();
this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick);
this.button1.Click += new System.EventHandler(this.button1_Click);
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void load()
{
rss = new List<SyndicationItem>();
string url = textBox1.Text;
XmlReader xmlreader = XmlReader.Create(url);
SyndicationFeed rssfeed = SyndicationFeed.Load(xmlreader);
xmlreader.Close();

foreach (SyndicationItem item in rssfeed.Items)
{
rss.Add(item);
listBox1.Items.Add(item.Title.Text);
}
}

private void button1_Click(object sender, EventArgs e)
{
load();
}

private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (listBox1.SelectedItem == null)
return;

if (e.Clicks == 2)
{
Process.Start(rss[listBox1.SelectedIndex].Links[0].Uri.ToString());
}
}

}
}
[/sourcecode]

Tuesday, April 14, 2015

JavaScriptSerializer: JSON serialize và deserialize trong C#

Ngày này JSON đang trở nên phổ biến bởi tính tiện lợi của nó so với XML. Với .Net thư viện JavaScriptSerializer đã được phát triển giúp cho việc chuyển đổi dữ liệu dang định dạng JSON trở nên rất đơn giản.

Chúng ta cùng tìm hiểu một chút về thư viện này qua ví dụ sau:
Mã nguồn
Định nghĩa lớp

[sourcecode language="csharp"]

public class Student
{
public Student()
{
}
public Student(int id, string name)
{
_id = id;
_name = name;
}

int _id;
string _name;
public int ID
{
get
{
return _id;
}

set
{
_id = value;
}
}

public string Name
{
get
{
return _name;
}

set
{
_name = value;
}
}
}
[/sourcecode]

Chuyển đối tượng sang json
[sourcecode language="csharp"]
Student s = new Student(100, "Nguyễn Văn Mít");
string str = serializer.Serialize(s);
Response.Write("Object: " + str);
[/sourcecode]

Kết quả chạy có như sau:
Object: {"ID":100,"Name":"Nguyễn Văn Mít"}

Chuyển từ chuỗi JSON sang đối tượng Student
[sourcecode language="csharp"]
Student s1 = serializer.Deserialize<Student>(str);
Response.Write("<br/>Name: " + s1.Name);
[/sourcecode]

Tương tự như vậy chúng ta cũng có thể chuyển một mảng sang JSON và ngược lại
Tạo một mảng như sau
[sourcecode language="csharp"]
List<Student> list = new List<Student>();
list.Add(new Student(1, "Trần Văn Cam"));
list.Add(new Student(2, "Trần Thanh Long"));
list.Add(new Student(3, "Lê Thị Lựu"));

string strlist = serializer.Serialize(list);
Response.Write("<br/>List: " + strlist);

// in
Response.Write("<br/>List deserialize ");
List<Student> listDe = serializer.Deserialize<List<Student>>(strlist);
foreach (Student item in listDe)
{
Response.Write("<br/>Name: " + item.Name);
}
[/sourcecode]

Chạy lại ví dụ, chúng ta có kết quả
List: [{"ID":1,"Name":"Trần Văn Cam"},{"ID":2,"Name":"Trần Thanh Long"},{"ID":3,"Name":"Lê Thị Lựu"}]

Chuyển một DataTable sang JSON và ngược lại
Kết nối và đọc dữ liệu
[sourcecode language="csharp"]
SqlConnection conn = new SqlConnection("server=.;database=northwind;uid=sa;pwd=sa;");
SqlDataAdapter adp = new SqlDataAdapter("Select employeeid, firstname, lastname, birthdate, photopath from employees", conn);
DataSet ds = new DataSet();
adp.Fill(ds, "Emp");
[/sourcecode]

Chuyển sang JSON
[sourcecode language="csharp"]
List<Dictionary<string, object>> table = new List<Dictionary<string, object>>();
foreach (DataRow r in ds.Tables[0].Rows)
{
Dictionary<string, object> column = new Dictionary<string, object>();
foreach (DataColumn c in ds.Tables[0].Columns)
{
column.Add(c.ColumnName, r[c.ColumnName]);
}
table.Add(column);
}

string dsStr = serializer.Serialize(table);
Response.Write("<br/>Data table: " + dsStr);
[/sourcecode]

Chuyển từ JSON sang DataTable
[sourcecode language="csharp"]
List<Dictionary<string, object>> t2 = serializer.Deserialize<List<Dictionary<string, object>>>(dsStr);
DataTable dt = ds.Tables[0];
dt.Clear();
DataRow deRow;
foreach (Dictionary<string, object> d in t2)
{
deRow = dt.NewRow();
foreach (DataColumn col in dt.Columns)
{
deRow[col.ColumnName] = (d[col.ColumnName] == null ? DBNull.Value : d[col.ColumnName]);
}
dt.Rows.Add(deRow);
}
GridView1.DataSource = dt;
GridView1.DataBind();
[/sourcecode]

Tới đây chạy lại ví dụ có kết quả như sau:

Data table: [{"employeeid":1,"firstname":"Mit","lastname":"Nguyen Van","birthdate":"\/Date(-664786800000)\/","photopath":"http://accweb/emmployees/davolio.bmp"},{"employeeid":2,"firstname":"Fuller","lastname":"Andrew","birthdate":"\/Date(-563871600000)\/","photopath":"http://accweb/emmployees/fuller.bmp"},{"employeeid":3,"firstname":"Janetsssss","lastname":"Leverling","birthdate":"\/Date(-200127600000)\/","photopath":"http://accweb/emmployees/leverling.bmp"},{"employeeid":4,"firstname":"Margaret","lastname":"Peacockdd","birthdate":"\/Date(-1018854000000)\/","photopath":"http://accweb/emmployees/peacock.bmp"},{"employeeid":5,"firstname":"Buchanan","lastname":"Steven","birthdate":"\/Date(-468054000000)\/","photopath":"http://accweb/emmployees/buchanan.bmp"},{"employeeid":6,"firstname":"Suyama","lastname":"Michael","birthdate":"\/Date(1278003600000)\/","photopath":"http://accweb/emmployees/davolio.bmp"},{"employeeid":7,"firstname":"Robert","lastname":"King","birthdate":"\/Date(-302770800000)\/","photopath":"http://accweb/emmployees/davolio.bmp"},{"employeeid":8,"firstname":"Lauradddd","lastname":"Callahan","birthdate":"\/Date(-378025200000)\/","photopath":"http://accweb/emmployees/davolio.bmp"},{"employeeid":9,"firstname":"Anne","lastname":"9","birthdate":"\/Date(-124009200000)\/","photopath":"http://accweb/emmployees/davolio.bmp"},{"employeeid":87,"firstname":"Mr","lastname":"Ben","birthdate":"\/Date(-664786800000)\/","photopath":null},{"employeeid":89,"firstname":"Mrdddd","lastname":"dd","birthdate":"\/Date(-664786800000)\/","photopath":null},{"employeeid":91,"firstname":"Dan","lastname":"Mss","birthdate":"\/Date(-664786800000)\/","photopath":null},{"employeeid":102,"firstname":"Mr","lastname":"Been","birthdate":"\/Date(340822800000)\/","photopath":null},{"employeeid":103,"firstname":"Mr","lastname":"Dan","birthdate":"\/Date(340822800000)\/","photopath":null},{"employeeid":105,"firstname":"Mr","lastname":"Been","birthdate":"\/Date(-664786800000)\/","photopath":null},{"employeeid":106,"firstname":"Mr","lastname":"Dan","birthdate":"\/Date(-664786800000)\/","photopath":null}]


table

Như vậy là cơ bản chúng ta có thể chuyển đổi qua lại giữa JSON và một vài kiểu của .net.


Trong PHP

Tuesday, April 7, 2015

Kinh doanh trong app di động

Một sinh viên viết cho tôi: “Em muốn là một nhà doanh nghiệp và bắt đầu công ti riêng của em. Em đã phát triển nhiều app di động nhưng ngày nay mọi người không trả tiền cho app di động nữa. Làm sao em làm được tiền như một nhà doanh nghiệp? Xin thầy giúp cho.”

Đáp: Ngày nay phần lớn các app di động không tính tiền nhưng làm ra tiền dựa trên thu nhập quảng cáo. Bạn không cần bán app của bạn cho người dùng nhưng vẫn làm ra tiền trên quảng cáo. Tất nhiên, làm ra tiền từ công ti quảng cáo là không dễ. Nếu app của bạn mà không phổ biến, nhà quảng cáo không sẵn lòng trả tiền cho bạn đâu. (Lưu ý: Cả Facebook và Google đều bắt đầu như một công ti sản phẩm nhưng họ nhanh chóng thay đổi và bây giờ làm ra tiền dựa trên quảng cáo.)

Để thành công trong kinh doanh app di động, bạn cần hấp dẫn được nhiều người dùng. Điều đó nghĩa là app của bạn phải đặc biệt và thú vị để giữ mọi người dùng chúng mọi lúc. (Tôi cho rằng bạn đang phát triển app trò chơi di động?) Nếu người dùng không dùng chúng thường xuyên, vậy bạn không có đủ người dùng để mở rộng tới kích cỡ bạn cần để thu được tiền quảng cáo. Khi bạn đạt tới số người dùng nào đó như hàng trăm nghìn hay hàng triệu người dùng thì bạn sẽ thu được sự chú ý của các công ti quảng cáo; và họ sẽ trả tiền để đưa quảng cáo của họ vào sản phẩm của bạn.

Bạn cần đếm số người dùng trên cơ sở hàng ngày cũng như thu thập thông tin về người dùng của bạn. Bạn càng biết nhiều về người dùng của bạn, bạn càng có thể đặt giá quảng cáo của bạn tốt hơn. Các nhà quảng cáo bao giờ cũng muốn biết kiểu người dùng nào họ có thể tiếp thị tới và khi bạn có người dùng đúng, họ sẽ trả giá hàng đầu. Chẳng hạn, nếu người dùng là sinh viên trẻ, các công ti quần áo sẽ trả tiền cho quảng cáo sản phẩm của họ khi nhiều sinh viên sẽ quan tâm tới quần áo và thời trang. Nếu người dùng là người già, các công ti dược sẽ trả tiền để quảng cáo thuốc của họ vì những người này sẽ thường mua thuốc v.v. Facebook và Twitter làm điều này rất tốt bằng việc cho phép các nhà quảng cáo thấy dữ liệu người dùng, điều giúp cho họ tiếp thị tới người dùng chính xác họ muốn. Do đó giao diện người dùng của bạn (UI) phải thu thập dữ liệu về người dùng để cho các nhà quảng cáo có thể tạo ra các chiến dịch có đích nhắm trực tiếp tới họ trong UI của bạn.

Là người sáng lập công ti khởi nghiệp, bạn chịu trách nhiện về cái nhìn và cái cảm cho sản phẩm của bạn. Đừng để các nhà quảng cáo chỉ đạo cách các quảng cáo của họ xuất hiện trên sản phẩm của bạn. Bạn cần giải thích cho họ bạn muốn app của bạn sẽ trông như thế nào và các quảng cáo có thể được hiển thị bao lâu khi chúng được tích hợp vào trong sản phẩm của bạn. Vì người dùng không trả tiền để dùng sản phẩm của bạn, họ hiểu rằng họ phải thấy những quảng cáo nào đó nhưng phần lớn đều ghét các băng quảng cáo gây ngắt quãng cho nên bạn phải cẩn thận. Bạn cần nghĩ cẩn thận về cách bạn tổ hợp quảng cáo vào sản phẩm của bạn để chắc rằng chúng không gây nhiễu cho kinh nghiệm của người dùng, bằng không họ sẽ không dùng nó lần nữa.

Bằng việc hiểu vai trò mà quảng cáo tham gia vào trong kinh doanh của bạn, bạn có thể làm ra tiền, đặc biệt nếu app di động của bạn là phổ biến. Khi bạn đạt tới hàng triệu người dùng, bạn có thể làm rất tốt bằng tiền quảng cáo. Google, Facebook, Twitter v.v. đang làm ra tiền theo cách đó và thu nhập của họ đến hàng triệu đô la mỗi ngày.

Nguồn: http://science-technology.vn/?p=4728

Friday, April 3, 2015

Điện toán xã hội - social computing

 

“Tham khảo”

Sự cộng tác người-máy sẽ tạo nên nền tảng siêu việt tập hợp tri thức và nguồn lực tính toán toàn cầu?

Trong chương trình trò chơi truyền hình “Ai là triệu phú?” có một trợ giúp dành cho thí sinh: hỏi khán giả đáp án. Thống kê cho thấy 95% đáp án của khán giả là đúng. 

Giải pháp “nhờ đám đông” không mới, đây chính là nền tảng của phần mềm nguồn mở. Nhưng nó chỉ được biết đến rộng rãi với thuật ngữ “crowdsourcing” (kết hợp từ “crowd” – đám đông và “outsourcing” – thuê ngoài) sau khi được Jeff Howe giới thiệu trong bài báo “The Rise of Crowdsourcing” đăng trên tạp chí Wired vào tháng 6/2006. 

Tuy nhiên phải đến gần đây, nhờ sự phát triển của công nghệ và nền tảng web, việc “nối mạng” trở nên dễ dàng và rộng khắp, ứng dụng crowdsourcing mới trở nên hấp dẫn. Có thể nói hiện nay nhà nhà đua nhau “chạy theo đám đông”, từ thiết kế thời trang (Threadless.com, Fashionstake.com) đến huy động vốn (Kickstarter.com, Marketocracy.com) và cả sản xuất ô-tô (Rockwellautomation.com), … Và có cả “chợ đám đông” - Mechanical Turk (www.mturk.com, thuộc Amazon), nơi đây bạn có thể đưa yêu cầu công việc cùng mức phí, sẽ có “đám đông công nhân trí thức” hoàn tất công việc cho bạn.

Thuật ngữ liên quan - Social computing

Social computing hay điện toán xã hội nói chung bao hàm bất kỳ công nghệ nào có liên quan đến việc giao tiếp và tương tác giữa người với người thông qua máy tính (trực tiếp hay gián tiếp). Theo nghĩa “hẹp”, điện toán xã hội dùng để chỉ các công nghệ hỗ trợ các hoạt động xã hội như blog, email, IM (chat), wiki, v.v… Sâu xa hơn, nó bao hàm bất kỳ công nghệ nào cho phép thực hiện tính toán bởi cộng đồng “thành viên chủ động” – những người không chỉ sử dụng (thụ hưởng) ứng dụng mà còn tạo ra giá trị thông qua đóng góp nội dung, gán thẻ (tag), xếp hạng, liên kết và thậm chí thành phần phần mềm.

Đám đông không chỉ có … đông!

Mạng xã hội – một mô hình ứng dụng crowdsourcing. Cộng đồng người dùng các mạng xã hội như Facebook, Twitter, LinkedIn… không chỉ dùng mà còn tham gia tạo nên giá trị cho các mạng này thông qua việc đóng góp nội dung, phân tích, đánh giá và cả làm việc cộng tác. Thậm chí, cộng đồng mạng còn giúp cho việc ra quyết định hay giải quyết những vấn đề phức tạp.

Câu “chạy theo đám đông” có lẽ phải xét lại. Nếu số liệu thống kê ở trò chơi truyền hình trên không thuyết phục được bạn thì Wikipedia – Bách khoa toàn thư mở – là một minh chứng hùng hồn của trí tuệ đám đông.
Trong cuốn sách “The Wisdom of Crowds”, xuất bản năm 2004, James Surowiecki đưa ra nhiều dẫn chứng cho thấy tập hợp tri thức của số đông có thể cho kết quả tốt hơn tư duy của số ít người, thậm chí là các chuyên gia.

Tuy nhiên, chính Surowiecki và nhiều học giả khác cũng chỉ ra những tình huống trí tuệ đám đông bị gài bẫy. Đặc biệt, nếu một vài cá nhân có ảnh hưởng quá lớn với những người xung quanh, có thể kích hoạt bản năng “bầy đàn". 

Nhưng “chân lý” vẫn thuộc về đám đông! Các nhà nghiên cứu của học viện công nghệ Massachusetts (MIT) đã chứng minh khi đám đông càng mở rộng (số lượng thành viên càng lớn) thì càng có khả năng “hội tụ” được chính xác thông tin rải rác trong cộng đồng, ngay cả khi từng thành viên chỉ quan sát được những gì gần họ (trong phạm vi hẹp). 

Bạn có nhớ câu chuyện bốn thầy mù sờ voi? Nếu được “nối mạng”, tập hợp “tư duy” của cả bốn thầy sẽ cho “cái nhìn” chính xác về con voi. 

Hãy hình dung trí tuệ của “bộ não” nối mạng hàng trăm triệu người hiện nay (mạng xã hội Facebook hiện có trên 500 triệu người dùng). Còn quá sớm để nói đến siêu máy tính tập hợp nhiều “tế bào” tương tự não người, nhưng “trí tuệ tập thể” hay CI (Collective Intelligence) không phải điều xa vời. 

Khái niệm CI đầu tiên được Pierre Lévy giới thiệu trong cuốn sách “Collective Intelligence: Mankind’s Emerging World in Cyberspace” xuất bản năm 1997. Pierre Lévy đi trước thời đại hơi sớm, khi mà Internet chưa phổ biến rộng khắp, chưa có các “công cụ” hữu hiệu để mọi người kết nối và đóng góp trí tuệ của mình. 

Gần đây một số hãng cung cấp giải pháp bảo mật đã nhanh nhạy ứng dụng CI để phát hiện phần mềm mã độc. Nhưng CI được dùng trong các giải pháp này chỉ ở nghĩa hẹp. 

Trong bài thuyết trình “Information Technology in 2020: Building a Collective Intelligence” hồi tháng 7/ 2010, giáo sư Srini Devadas thuộc phòng thí nghiệm khoa học máy tính và trí tuệ nhân tạo của MIT cho cái nhìn rộng hơn: CI dựa trên hai trụ cột là điện toán đám mây (cloud computing) và điện toán đám đông (crowd computing). Điện toán đám mây cung cấp hạ tầng tính toán và thông tin sẵn có cho mọi người truy cập; Điện toán đám đông phân tích và tổng hợp thông tin thành trí tuệ siêu việt.

“Chúng ta đang chìm trong biển thông tin, nhưng lại thiếu sự thông thái. Thế giới sẽ thuộc về những ai có khả năng tổng hợp đúng thông tin và đúng lúc …” (Consilience: The Unity of Knowledge, E.O. Wilson).

Cùng tính trên mây

Công nghệ đã phát triển đến mức dễ dàng cho mọi người khai thác mọi lúc, mọi nơi. Mạng xã hội lan toả toàn cầu, kết nối hàng trăm triệu người, không chỉ cho phép thực hiện các cuộc thảo luận, tranh luận và trao đổi thông tin một cách tức thời; mà còn cho phép người ta đóng góp chất xám thực hiện những dự án phức tạp mà các nhà nghiên cứu đơn lẻ hoặc nhóm nhỏ khó có thể thực hiện. Đây là kết quả của sự hội tụ nhiều tiến bộ công nghệ trong các lĩnh vực như hệ thống mạng, thiết bị thông minh, điện toán đám mây, web và mạng xã hội.

Người ta có thể tham gia trực tiếp bằng các phản hồi, đánh giá, hay tham gia “chợ” crowdsourcing như Amazon Mechanical Turk; hoặc cũng có thể tham gia gián tiếp với việc “lướt web” khi tìm kiếm, đọc tin, mua sắm hoặc chơi game trực tuyến. Với hàng trăm triệu người dùng nối mạng, lượng thông tin trao đổi cực lớn. Làm sao chúng ta (và máy tính) có thể khai thác, phân tích và tổng hợp thông tin tập thể này? Nền tảng Web thế hệ mới cùng với điện toán đám mây có thể cho phép thực hiện điều đó. 

Hình bên là một mô hình minh hoạ “cỗ máy-người” tạo nên điều kỳ diệu - trí tuệ tập thể. Dữ liệu thô đầu vào là nguồn thông tin dồi dào của các mạng xã hội dựa trên nền tảng công nghệ Web 2.0. Các dịch vụ dựa nên công nghệ Web tri thức (3.0) sẽ khai thác hàng tỷ gigabyte dữ liệu thô và tổ chức thành dữ liệu có “chất lượng” phục vụ xử lý và tổng hợp. Tiếp theo dữ liệu “tinh” này sẽ được “bộ lọc” con người xử lý và đánh giá. Kết quả sẽ cho ra các kho thông tin tri thức chuyên biệt.

Nền tảng điện toán mới đưa mối quan hệ người-máy lên một tầm mức mới. Con người không chỉ nhập và tiêu thụ thông tin mà còn đóng vai trò xử lý thông tin (thuật ngữ “bộ xử lý” có lẽ cần được định nghĩa lại). 

Đây là điều thú vị nhất của điện toán đám đông: con người góp phần tạo nên sức mạnh tính toán. Nói cách khác, bộ não con người được xem như bộ xử lý trong hệ thống tính toán phân tán, mỗi người có thể thực hiện một phần (có thể là phần nhỏ, đơn giản) trong tác vụ tính toán phức tạp.

Bạn có nhớ dự án SETI@Home hơn 10 năm trước? Dự án này nhờ hàng triệu người dùng đóng góp nguồn lực tính toán của máy tính cá nhân lúc rảnh rỗi (thông qua phần mềm tiết kiệm màn hình) để thực hiện chương trình tìm kiếm trí tuệ ngoài Trái đất. Một dạng crowdsourcing và crowd computing.

Trí tuệ ngoài Trái đất chưa tìm thấy, nhưng dự báo trong 10 năm tới chúng ta sẽ có … trí tuệ của cả thế giới. 

Với sự phát triển của Internet và điện toán đám mây, một hệ thống xử lý và tổng hợp tri thức của cộng đồng người dùng khắp nơi trên thế giới không phải là điều không tưởng. 

Mở rộng hơn, đừng giới hạn điện toán đám mây chỉ ở máy chủ (server). Hãy nghĩ đến “đám mây tính toán” bao gồm cả đám đông hàng tỷ thiết bị thông minh (năng lực tính toán có khi còn mạnh hơn máy tính lớn trước đây) và tri thức của hàng tỷ “siêu máy tính” (con người) trên toàn cầu. 

Với trí tuệ tập thể, có gì là không thể?

Web mới cho điện toán đám đông

Trước thời đại Web, thập niên cuối cùng của kỷ nguyên máy tính (1980-1990) chủ yếu liên quan với sự đổi mới ở “bề mặt” máy tính cá nhân: máy tính để bàn và giao diện người dùng máy tính. Trọng tâm của giai đoạn này là làm cho máy tính dễ dùng hơn với những cải tiến như Microsoft Windows, Macintosh, giao diện người dùng nhất quán hơn và tích hợp các ứng dụng với nhau.

Thập niên đầu của thời đại Web ("Web 1.0", 1991-2000) tập trung vào hạ tầng: các công nghệ cốt lõi và nền tảng của Web như HTML, HTTP, máy chủ web, công cụ tìm kiếm, công nghệ thương mại và quảng cáo, các kiến trúc cơ bản và mô hình kinh doanh của ứng dụng Web. Phần lớn đầu tư cho Web trong thập niên này chỉ có các nhà phát triển nhìn thấy.

Ngược lại, thập niên thứ hai của Web ("Web 2.0", 2001-2010) chủ yếu tập trung vào “bề nổi”. Nhiều cải tiến không hẳn là công nghệ mà chỉ là các mô hình thiết kế và giao diện người dùng nhằm cải thiện trải nghiệm người dùng về Web. Trong thập niên này người ta chú trọng đến các mô hình như AJAX, đây là tập hợp các công nghệ và phương thức thiết kế để làm cho trang web trực quan, hấp dẫn và có tính tương tác hơn.

Một tiêu điểm của Web 2.0 đó là nội dung do người dùng tạo ra, đặc biệt là việc "gắn thẻ" chủ đề cho nội dung. Việc gắn thẻ đã dẫn đến khái niệm "folksonomies" (biến thể từ “taxonomy”) chỉ việc phân loại và tổ chức dữ liệu nhờ cộng đồng người dùng.

Sự phát triển của Internet và mạng xã hội đã dẫn đến sự bùng nổ thông tin trên Web, chủ yếu là dạng phi cấu trúc. Các công cụ tìm kiếm dựa trên từ khoá cung cấp khả năng tìm kiếm thông tin này, nhưng chỉ là các truy vấn đơn giản. Tìm kiếm trên Web hiện nay không thể sánh với khả năng truy vấn chính xác của cơ sở dữ liệu. Điều này sắp thay đổi.

Hiện người ta nói đến thập niên thứ ba của Web ("Web 3.0", 2011-2020) chuyển trọng tâm trở lại nền tảng bên dưới. Thập niên này sẽ tập trung vào việc nâng cấp hạ tầng kỹ thuật và nội dung của Web, nhằm làm cho Web hoạt động giống như cơ sở dữ liệu. “Web tri thức” - một khái niệm được Nova Spivak đưa ra có khả năng làm cho thông tin trên web trở nên “có nghĩa”, cho phép phần mềm có thể “hiểu” tri thức của con người.

Trích từ:http://www.pcworld.com.vn/articles/cong-nghe/cong-nghe/2011/04/1225046/dien-toan-dam-dong/

Hay bài viết:

https://www.tinhte.vn/threads/dien-toan-xa-hoi-social-computing-khi-su-ket-hop-cua-nhieu-nguoi-lam-nen-suc-manh.2440613/.

Translate