Acquire Content

Đây là bước đầu tiên trong quá trình hoạt động của search engine. Ở bước này, một chương trình tự động (gọi là search bot, crawler hay spider) được sử dụng để download dữ liệu thô từ nguồn dữ liệu, rồi phân tích để lấy ra nội dung. Công việc này đơn giản nếu dữ liệu thô là các file theo định dạng XML, còn nguồn dữ liệu là các directory hoặc database có cấu trúc. Nó sẽ phức tạp hơn rất nhiều nếu dữ liệu thô là phi cấu trúc và nguồn dữ liệu bị phân tán khắp mọi nơi (Lotus Domino, Microsoft Exchange, Word document, Excel spreadsheet).

Read more

Search engine

image

Các quá trình hoạt động của một search engine

Search engine là một hệ thống truy vấn thông tin trên máy tính. Các thông tin này có thể tồn tại ở nhiều dạng, như hình ảnh, âm thanh, nhưng đa số là văn bản (email, tài liệu, ebook, trang web).

Text search engine sử dụng kỹ thuật full text search, cho phép người dùng nhập vào một vài từ khóa và tìm những văn bản nào có chứa những từ khóa này. Về cơ bản, những engine như vậy đều hoạt động dựa trên 3 quá trình:

- Crawling (Raw Content à Acquire Content à Build Document): Thu thập văn bản từ các dữ liệu dạng thô.

- Indexing (Analyze Document à Index Document): Tìm các từ khóa đặc trưng cho văn bản.

- Searching (User Interface à Build Query à Run Query à Render Results): So khớp từ khóa do người dùng nhập vào với từ khóa đặc trưng để chọn lọc văn bản phù hợp.

Read more

ĐH == CH ?

Tiếp theo trò đố vui ĐH == ĐH lần trước, đây là level 2. Mọi người xem hình đính kèm và thử giải thích xem tại sao có kết quả này ???

botay2

ĐH == ĐH ?

Đố mọi người biết chuyện gì đã xảy ra? Hình chụp bằng Visual Studio 2010 Ultimate :x

 botay

Literal

FP xem tất cả mọi thứ đều là giá trị, kể cả hàm. Mặc dù F# không phải là một ngôn ngữ thuần functional, nhưng nó vẫn khuyến khích bạn viết chương trình theo phong cách functional. Nghĩa là thay vì dùng những câu lệnh có thể gây ra hiệu ứng phụ, bạn được khuyến khích sử dụng các biểu thức và phép toán trả về giá trị. Ở phần tiếp theo, bạn sẽ khảo sát qua một số cấu trúc chính của ngôn ngữ F# hỗ trợ FP paradigm, để học cách lập trình theo phong cách functional dễ dàng hơn.

Literal biểu diễn các giá trị không đổi và là những khối xây dựng hữu ích dành cho việc tính toán. Literal trong F# khá phong phú, được liệt ở bảng dưới đây.

Read more

ASP.NET 4.0 có gì mới?

Có 12 cái mới sau:

  1. Output cache extensibility
  2. Session state compression
  3. View state mode for individual control
  4. Page.MetaKeyword and Page.MetaDescription properties
  5. Response.RedirectPermanent method
  6. Routing in ASP.NET
  7. Increase the URL character length
  8. New syntax for Html Encode
  9. Predictable Client IDs
  10. Web.config file refactoring
  11. Auto-Start ASP.NET applications
  12. Improvements on Microsoft Ajax Library

Xem thêm tại đây: http://www.simple-talk.com/dotnet/asp.net/asp.net-4.0-features/

Tải, cài đặt và sử dụng F#

Visual Studio

F# được cài đặt mặc định với Visual Studio 2010, nên nếu bạn đang dùng phiên bản này thì chắc hẳn bạn cũng đã có F#. Để kiểm tra lại, bạn hãy vào Add/Remove Programs xem đã có Microsoft Visual F# Runtime hay chưa. Nếu chưa có, từ Add/Remove Programs, bạn vào Maintenance Mode của Visual Studio và lần này nhớ chọn option Visual F#.

Trong trường hợp bạn dùng Visual Studio 2008, rất may mắn là bạn có thể download plugin F# tại trang web http://msdn.microsoft.com/fsharp/. Đây là trung tâm thông tin và tài nguyên liên quan đến F#, và tôi khuyên bạn nên thường xuyên ghé đến nơi này để học tập các mẹo vặt lập trình. Bạn hãy tải về phiên bản có phần mở rộng là MSI, vì nó sẽ giúp tích hợp F# vào Visual Studio, còn bản có phần mở rộng là ZIP chính là bản phân phối F# dành cho các hệ thống non-Windows. Trong bản phân phối F# bao gồm bộ biên dịch fsc.exe, bộ soạn thảo trên dòng lệnh fsi.exe, một vài công cụ phân tích, thư viện cơ bản của F#, tài liệu và các ví dụ tham khảo.

Read more

F# là gì?

FP là một hướng tiếp cận tốt để giải quyết nhiều bài toán gai góc, tuy nhiên thuần functional lại không phù hợp để lập trình với những mục đích thông dụng. Do đó, các ngôn ngữ FP dần dần chấp nhận đặc tính lai tạp từ imperative và OO, để vừa giữ được tư tưởng FP truyền thống, lại vừa tích hợp được những tính năng cần thiết để viết chương trình dễ dàng. F# là ngôn ngữ phát triển theo con đường này. Read more

Vì sao Functional Programming lại quan trọng?

Khi người ta nói đến FP, họ thường xem đặc tính không có trạng thái của nó như là một thiếu sót trầm trọng, mà quên đi những ưu điểm của nó. Một lập trình viên có kinh nghiệm làm việc với nhiều paradigm khác nhau có thể chỉ ngay ra rằng: imperative dành 90% số lượng code cho phép gán, trong khi FP thì không có phép gán nào, và số lượng code phải viết trong FP ngắn hơn 90% so với imperative. Tuy nhiên, không có nhiều người bị thuyết phục để lao vào sống trong thế giới “khổ hạnh” của lập trình đệ qui và không trạng thái, như John Hughes đã chỉ ra trong bài báo mang tên “Why Functional Programming Matters”:

“The functional programmer sounds rather like a medieval monk, denying himself the pleasures of life in the hope that it will make him virtuous.”

John Hughes, Chalmers University of Technology
(http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html) Read more

Functional Programming là gì?

Functional Programming[1] là thể loại lâu đời nhất trong ba paradigm[2] lập trình chính. Ngôn ngữ FP đầu tiên là IFP, được phát minh vào năm 1955, một năm trước khi có Fortran. Sau đó, LISP ra đời năm 1958, một năm trước khi có COBOL. Cả Fortran và COBOL đều là những ngôn ngữ imperative[3] (hay còn gọi là procedural). Chúng đặc biệt thành công khi được ứng dụng vào tính toán khoa học và nghiệp vụ, và trở thành paradigm thống trị trong suốt 30 đầu của kỉ nguyên thông tin. Vào những năm 1970, Object-Oriented[4] paradigm bắt đầu phát triển. Cùng với sự trưởng thành của các ngôn ngữ lập trình hướng đối tượng, OO trở thành paradigm được sử dụng phổ biến nhất cho đến ngày hôm nay.

Read more