RSS

Category Archives: Uncategorized

Đào Hoàng Tú – Chàng trai làm khuấy đảo cộng đồng mạng

Trong tuần qua, 1 video được upload lên Youtube đã làm dậy sống cư dân mạng. Chỉ hơn 12 tiếng, video đã nhận đc 10 triệu lượt xem với con số like là 9,9 triệu. Dưới đây là đoạn video.

http://mangxahoi.hongchuyen.com/dao-hoang-tu.html

Chủ nhân đoạn clip là bạn Đào Hoàng Tú – 1 nhân vật rất nổi tiếng với nhiều vai trò, từ nhân viên IT, ông chủ quán café Tite đến làm MC cho các gameshow rất nổi tiếng trên thế giới và Việt Nam như: Born from Village ( ở Việt Nam là chương trình Sinh ra từ làng), Vozer phiêu lưu kí và nổi tiếng nhất là gameshow Dầu ăn

alternate text 

Trong đoạn clip, Hoàng Tú đã kể về cuộc đời 20 năm của mình bằng những dấu mốc bạn đã làm được cho nhân loại. Clip bắt đầu bằng bước chân chắc nịch của Tú khi bước xuống từ chiếc limo để tham dự giải vĩ nhân của năm. Đây là giải thưởng rất uy tín được trao cho những người có đóng góp to lớn cho sự phát triển và hòa bình của nhân loại. Sau đó là 1 loạt trường đoạn về những fan hâm mộ của Tú trên thế giới với những băng rôn biểu ngữ cùng những lời tán dương: “ tôi yêu Đào Hoàng Tú” , “Đào Hoàng Tú là số 2 thì không ai là số 1”,….. Và cuối cùng Tú đã xuất hiện với bức ảnh rất đẹp của anh. 1 bức ảnh có thể nói là để đời. 

alternate text1 

Đoạn clip đã nhanh chóng được chia sẻ trên nhiều cộng đồng mạng từ những mạng xã hội nhỏ như facebook, twitter, google+,… đến những mạng xã hội và forum lớn như mangxahoi.hongchuyen hay vozforums,…. Chỉ sau 2 ngày cái tên Đào Hoàng Tú đã trở thành chủ đề được bàn tán xôn xao nhất trên cộng đồng mạng. Trong 1 ngày, số lượt truy vấn từ khóa “Đào Hoàng Tú” trên google đã đạt mức 1 triệu lượt, trên Bing là 800k lượt search và con số này sẽ vẫn tăng lên với độ hot của Tú. Hàng loạt fanpage của Tú đã được lập ra. Từ hội “Những người phát cuồng vì vĩ nhân Đào Hoàng Tú” trên fb đến cả website daohoangtu.com. Đặc biệt trang web daohoangtu.com đã bị tắc nghẽn khi số lượt truy cập quá đông dẫn tới server không thể đáp ứng nhu cầu cùng 1 lúc. 

Người hâm mộ Tú còn lùng sục mọi ngõ ngách trong thành phố Hà Nội, chỉ mong đươc gặp và chụp ảnh với thần tượng của mình. Được biết Tú rất bận bịu vừa đi học, vừa đến thuyết giảng tại các trường đại học lớn trên thế giới như Au Lac university, Lac Hong university hay gần đây nhất là Open University; vừa phải dự các hội nghị về vực dậy nền kinh tế suy thoái hay làm trưởng ban hòa giải giữa các nước có chiến tranh trên thế giới. Ứng cử viên cho giải Nobel hòa bình năm nay không ai khác chính là Đào Hoàng Tú. Dạo này theo những paparrazi thì Tú thường xuất hiện ở khu vực Cầu giấy, quanh đây có rất nhiều công ty và con đường lớn. Có lẽ anh chuẩn bị mua lại 1 công ty để đầu tư hay thuê 1 con đường để cho bạn gái mình tập xe đạp.

 

Nguồn: http://mangxahoi.hongchuyen.com/dao-hoang-tu.html

 
Leave a comment

Posted by on August 27, 2012 in Uncategorized

 

Java Script là gì?

JavaScript


JavaScript
, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệmnguyên mẫu. Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich tại Hãng truyền thông Netscapevới cái tên đầu tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng thường được dùng cho tập tin mã nguồn JavaScript.

Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA-262 bản 3. ECMAScript là phiên bản chuẩn hóa của JavaScript. Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X – phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA-357.

Java, JavaScript và JScript

Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bởi ngôn ngữ lập trình Java lúc đó đang được coi là một hiện tượng. JavaScript được bổ sung vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995. Trên thực tế, JavaScript không được phát triển dựa từ Java. Do đó JavaScript chỉ dựa trên các cách đặt tên của Java. Java Script gồm 2 mảng là client-server thực hiện lệnh trên máy của end-user và web-server.

Sau thành công của JavaScript, Microsoft bắt đầu phát triển JScript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript. JScript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm 1996.

DOM (Document Object Model), một khái niệm thường được nhắc đến với JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là một chuẩn riêng biệt có liên quan chặt chẽ với XML.

Ứng dụng

JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C. Giống như C, JavaScript có khái niệmtừ khóa, do đó, JavaScript gần như không thể được mở rộng.

Cũng giống như C, JavaScript không có bộ xử lý xuất/nhập (input/output) riêng. Trong khi C sử dụng thư viện xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện xuất/nhập.

Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện được với chỉ HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh,… Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt. Tuy nhiên, mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Một số công nghệ nổi bật dòng JavaScript để tương tác với DOM bao gồm DHTML,Ajax và SPA.

Bên ngoài trình duyệt, JavaScript có thể được sử dụng trong tập tin PDF của Adobe Acrobat và Adobe ReaderĐiều khiển Dashboard trên hệ điều hành Mac OS X phiên bản 10.4 cũng có sử dụng JavaScript. Công nghệ kịch bản linh động (active scripting) của Microsoft có hỗ trợ ngôn ngữ JScript làm một ngôn ngữ kịch bản dùng cho hệ điều hành. JScript .NET là một ngôn ngữ tương thích với CLI gần giống JScript nhưng có thêm nhiều tính năng lập trình hướng đối tượng.

Mỗi ứng dụng này đều cung cấp mô hình đối tượng riêng cho phép tương tác với môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần như giống nhau.

Các thành phần cú pháp chính

Khoảng trắng

Dấu cáchtab và ký tự dòng mới sử dụng bên ngoài một chuỗi ký tự được gọi là khoảng trắng. Khác với C, khoảng trắng trong JavaScript có thể ảnh hưởng trực tiếp tới ý nghĩa của câu lệnh. Sử dụng phương pháp “tự động thêm dấu chấm phẩy“, bất cứ một dòng JavaScript nào thích hợp sẽ được coi là một câu lệnh hợp lệ (giống như có dấu chấm phẩy trước ký tự dòng mới).

Tuy trong phần lớn trường hợp, dấu chấm phẩy trước khi kết thúc một dòng JavaScript là không cần thiết để đoạn mã nguồn hoạt động chính xác, lập trình viên nên sử dụng dấu chấm phẩy sau mỗi câu lệnh để đoạn mã nguồn dễ nhìn hơn. Ngoài ra, do đặc thù của JavaScript – chuyên dùng trên trang web, kích cỡ của đoạn mã nguồn là quan trọng, có một số phần mềm có thể làm giảm kích cỡ của đoạn mã nguồn JavaScript bằng cách bỏ đi những khoảng trắng không cần thiết, để những phần mềm này hoạt động chính xác, lập trình viên cần thêm dấu chấm phẩy vào cuối mỗi câu lệnh.

Chú giải

Cú pháp chú giải của JavaScript giống với C++. Lập trình viên có thể chú giải trên nhiều dòng bằng cách bao bọc chú giải với /* và */ hoặc sử dụng // để chú giải từ vị trí // đến hết dòng.

Biến

Trước khi sử dụng biến trong JavaScript, lập trình viên không nhất thiết phải khai báo biến. Có hai cách để định nghĩa biến trong JavaScript. Một là sử dụng cú pháp var để khai báo biến:

  1. <script language="JavaScript">
  2.     var tên_biến;
  3. </script>

Ngoài ra, lập trình viên có thể chỉ việc gán cho biến một giá trị để sử dụng biến đó. Biến được định nghĩa ngoài tất cả các hàm hoặc được sử dụng mà không khai báo với cú phápvar sẽ được coi là biến toàn cục, những biến này có thể sử dụng trên toàn trang web. Biến được khai báo với var bên trong một hàm là biến cục bộ của hàm đó và chỉ có thể sử dụng được bên trong hàm đó.

Đối tượng

Kiểu của JavaScript được chia ra làm hai loại: kiểu cơ bản và đối tượng. Đối tượng trong JavaScript là một thực thể có tên xác định và có thuộc tính trỏ đến giá trị, hàm hoặc cũng có thể là một đối tượng khác. Có nghĩa là, đối tượng trong JavaScript là một mảng kết hợp (associative array) tương tự như mảng trong PHP hay từ điển trong PythonPostScripthoặc Smalltalk.

JavaScript có một số đối tượng định nghĩa sẵn, bao gồm mảng (Array), đối tượng đại số Bool (Boolean), đối tượng ngày tháng (Date), đối tượng hàm (Function), đối tượngtoán học (Math), đối tượng số (Number), đối tượng đối tượng (Object), đối tượng biểu thức tìm kiếm (RegExp) và đối tượng chuỗi ký tự (String). Các đối tượng khác là đối tượng thuộc phần mềm chủ (phần mềm áp dụng JavaScript – thường là trình duyệt).

Bằng cách định nghĩa hàm khởi tạo, lập trình viên có thể tạo đối tượng. JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu do đó thừa kế diễn ra giữa các đối tượng, không phải giữa các lớp (JavaScript không hề có lớp). Đối tượng thừa kế thuộc tính từ các nguyên mẫu của chúng.

Lập trình viên có thể thêm hoặc xóa thuộc tính hoặc hàm trong đối tượng sau khi đối tượng đã được tạo. Để làm việc này cho tất cả các đối tượng được tạo từ cùng một hàm khởi tạo, lập trình viên có thể sử dụng thuộc tính prototype của hàm khởi tạo để truy cập đối tượng nguyên mẫu. Lập trình viên không nhất thiết phải tự xóa các đối tượng đã tạo, JavaScript tự động gom rác tất cả những biến không còn được dùng nữa.

Ví dụ:

  1. <script language="JavaScript">
  2.     function samplePrototype() {
  3.         this.attribute1 = "someValue"; // thêm một thuộc tính cho đối tượng
  4.         this.attribute2 = 234; // thêm thuộc tính nữa cho đối tượng
  5.         this.function1 = testFunction; // thêm một hàm vào đối tượng
  6.     }
  7. 
    
  8.     function testFunction() {
  9.         alert(this.attribute2); //hiển thị 234
  10.     }
  11. 
    
  12.     var sampleObject = new samplePrototype; // khởi tạo một đối tượng
  13.     sampleObject.function1(); // gọi hàm function1 của đối tượng sampleObject
  14. 
    
  15.     sampleObject.attribute3 = 123; // thêm một thuộc tính nữa cho đối tượng sampleObject
  16. 
    
  17.     delete sampleObject.attribute1; // xóa bỏ 1 thuộc tính
  18.     delete sampleObject; // xóa bỏ đối tượng
  19. </script>

Cấu trúc dữ liệu

Một cấu trúc dữ liệu tiêu điểm là mảng (Array), mảng trong JavaScript là một bảng liên kết chỉ mục đến giá trị. Trong JavaScript, tất cả các đối tượng đều có thể liên kết chỉ mục đến giá trị, nhưng mảng là một đối tượng đặc biệt có thêm nhiều tính năng xử lý chỉ mục và dữ liệu đặc biệt (ví dụ: pushjoin, v.v.)

Mảng trong JavaScript có thuộc tính length. Thuộc tính length của JavaScript luôn luôn lớn hơn số chỉ mục lớn nhất trong mảng một đơn vị. Trong phần lớn ngôn ngữ lập trình, những thuộc tính có tính năng như length thường là thuộc tính chỉ đọc, tuy nhiên, với JavaScript, lập trình viên có thể thay đổi thuộc tính length. Bằng cách thay đổi thuộc tínhlength, lập trình viên có thể làm mảng lớn hơn hoặc nhỏ hơn (và xóa đi những chỉ mục lớn hơn hoặc bằng thuộc tính length mới).

Mảng trong JavaScript là mảng rải rác, có nghĩa là cho dù lập trình viên có một mảng như sau:

  1. <script language="JavaScript">
  2.     var test = new Array();
  3.     test[2] = 0;
  4.     test[100] = 5;
  5. </script>

Trong trường hợp này, dù mảng có đến chỉ mục mang số 100 thì mảng cũng chỉ chiếm bộ nhớ của hai số 0 và 5. Tuy nhiên, thuộc tính length sẽ có giá trị 101 do chỉ mục lớn nhất của mảng trong ví dụ trên là 100.

Một số ví dụ về mảng:

  1. <script language="JavaScript">
  2.     var test = new Array(10); // Tạo một mảng 10 chỉ mục
  3.     var test2 = new Array(0,1,2,,3); // Tạo một mảng với bốn giá trị và 5 chỉ mục
  4.     var test3 = new Array();
  5.     test3["1"] = 123; // Hoàn toàn đúng cú pháp
  6. </script>

Lập trình viên cũng có thể định nghĩa cấu trúc bằng đối tượng như sau:

  1. <script language="JavaScript">
  2.     var myStructure = {
  3.         name: {
  4.             first: "Mel",
  5.             last: "Smith"
  6.         },
  7.         age: 33,
  8.         hobbies: [ "chess", "jogging" ]
  9.     };
  10. </script>

Cú pháp định nghĩa cấu trúc bằng đối tượng trên có một chuẩn trên danh nghĩa là JSON.

Cấu trúc điều khiển

Rẽ nhánh theo điều kiện với if ... else

Cú pháp if ... else dùng trong trường hợp muốn rẽ nhánh theo điều kiện. Cú pháp này tương đương với nếu x thì làm y, còn nếu không thì làm z. Các câu lệnh if ... else có thể lồng trong nhau.

Cú pháp:

  1. <script language="JavaScript">
  2.     if (biểu_thức_1)
  3.     {
  4.         khối lệnh được thực hiện nếu biểu thức 1 đúng;
  5.     }
  6.     else if (biểu_thức_2)
  7.     {
  8.         khối lệnh được thực hiện nếu biểu thức 2 đúng;
  9.     }
  10.     else
  11.     {
  12.         khối lệnh được thực hiện nếu cả hai biểu thức trên đều không đúng;
  13.     }
  14. </script>

Ví dụ:

  1. <script language="JavaScript">
  2.     var x = prompt("Nhập vào giá trị của x:");
  3.     x = parseFloat(x);
  4. 
    
  5.     if (!isNaN(x)) {
  6.         if (x > 0)
  7.         {
  8.             alert("x > 0");
  9.         }
  10.         else if (x == 0)
  11.         {
  12.             alert("x = 0");
  13.         }
  14.         else
  15.         {
  16.             alert("x < 0");
  17.         }
  18.     }
  19.     else
  20.     {
  21.         alert("giá trị bạn nhập không phải là một số");
  22.     }
  23. </script>

Đoạn mã nguồn trên mở một hộp thoại yêu cầu nhập vào một giá trị số, sau đó hiển thị thông báo số đó lớn hơn 0, bằng 0 hay nhỏ hơn 0.

Toán tử điều kiện

Toán từ điều kiện còn được biết đến với tên gọi toán tử tam phân. Cú pháp của toán tử này như sau:

  1. <script language="JavaScript">
  2.     điều_kiện ? biểu_thức_đúng : biểu_thức_sai;
  3. </script>

Toán tử này sẽ trả lại giá trị là kết quả của biểu_thức_đúng nếu điều_kiện có giá trị bool bằng true, ngược lại nó sẽ trả lại giá trị bằng biểu_thức_sai.

Vòng lặp while

Vòng lặp while có mục đích lặp đi lặp lại một khối lệnh nhất định cho đến khi biểu thức điều kiện trả về false. Khi dùng vòng lặp while phải chú ý tạo lối thoát cho vòng lặp (làm cho biểu thức điều kiện có giá trị false), nếu không đoạn mã nguồn sẽ rơi vào vòng lặp vô hạn, là một lỗi lập trình. Vòng lặp while thường được dùng khi lập trình viên không biết chính xác cần lặp bao nhiêu lần. Cú pháp của vòng lặp while như sau:

  1. <script language="JavaScript">
  2.     while (biểu_thức_điều_kiện) {
  3.         khối lệnh cần thực hiện nếu biểu_thức_điều_kiện trả về true;
  4.     }
  5. </script>

Vòng lặp do ... while

Về cơ bản, vòng lặp do ... while gần như giống hệt như vòng lặp while. Tuy nhiên, trong trường hợp biểu thức điều kiện trả về false ngay từ đầu, khối lệnh trong vòng lặpwhile sẽ không bao giờ được thực hiện, trong khi đó, vòng lặp do ... while luôn đảm bảo khối lệnh trong vòng lặp được thực hiện ít nhất một lần. Ví dụ:

  1. <script language="JavaScript">
  2.     while (0 > 1)
  3.     {
  4.         alert("while"); // Câu lệnh này sẽ không bao giờ được thực hiện
  5.     }
  6. 
    
  7.     do
  8.     {
  9.         alert("do ... while"); // Bạn sẽ nhận được thông báo do ... while một lần duy nhất
  10.     } while (0 > 1);
  11. </script>

Cú pháp của vòng lặp do ... while như sau:

  1. <script language="JavaScript">
  2.     do
  3.     {
  4.         khối lệnh;
  5.     } while (biểu_thức_điều_kiện);
  6. </script>

Vòng lặp for

Vòng lặp for thường được sử dụng khi cần lặp một khối lệnh mà lập trình viên biết trước sẽ cần lặp bao nhiêu lần. Cú pháp của vòng lặp for như sau:

  1. <script language="JavaScript">
  2.     for (biểu_thức_khởi_tạo; biểu_thức_điều_kiện; biểu_thức_thay_đổi_giá_trị)
  3.     {
  4.         Khối lệnh cần lặp;
  5.     }
  6. </script>

Khi bắt đầu vòng lặp for, lập trình viên cần khởi tạo một biến nhất định bằng biểu_thức_khởi_tạo để dùng trong biểu_thức_điều_kiện, nếu biểu_thức_điều_kiện trả về true, khối lệnh cần lặp sẽ được thực hiện, sau khi thực hiện xong khối lệnh cần lặp, biểu_thức_thay_đổi_giá_trị sẽ được thực hiện, tiếp theo, biểu_thức_điều_kiện sẽ lại được kiểm tra, cứ như vậy cho đến khi biểu_thức_điều_kiện trả về false, khi đó vòng lặp sẽ kết thúc.

Vòng lặp for ... in

Vòng lặp for ... in dùng để lặp qua tất cả các thuộc tính của một đối tượng (hay lặp qua tất cả các phần tử của một mảng). Cú pháp của vòng lặp này như sau:

  1. <script language="JavaScript">
  2.     for (biến in đối_tượng)
  3.     {
  4.         khối lệnh cần thực hiện, có thể sử dụng đối_tượng[biến] để truy cập từng thuộc tính (phần tử) của đối tượng;
  5.     }
  6. </script>

Cú pháp switch

Cú pháp switch cũng là cú pháp điều kiện như if ... else hay toán tử tam phân. Tuy nhiên, cú pháp switch thường được dùng khi chỉ cần so sánh bằng với số lượng kết quả cần kiểm tra lớn. Cách sử dụng cú pháp switch:

  1. <script language="JavaScript">
  2.     switch (biểu_thức_điều_kiện)
  3.     {
  4.         case kết_quả_1 :
  5.             khối lệnh cần thực hiện néu biểu_thức_điều_kiện bằng kết_quả_1;
  6.             break;
  7.         case kết_quả_2 :
  8.             khối lệnh cần thực hiện néu biểu_thức_điều_kiện bằng kết_quả_2;
  9.             break;
  10.         default :
  11.             khối lệnh cần thực hiện nếu biểu_thức_điều_kiện cho ra một kết quả khác;
  12.     }
  13. </script>

Sau mỗi khối lệnh trong một mục kiểm tra kết quả (trừ mục default), lập trình viên cần phải thêm vào break.

Hàm

Hàm là một khối các câu lệnh với một danh sách một hoặc nhiều đối số (có thể không có đối số) và thường có tên (mặc dù trong JavaScript hàm không nhất thiết phải có tên). Hàm có thể trả lại một giá trị. Cú pháp của hàm như sau:

  1. <script language="JavaScript">
  2.     function tên_hàm(đối_số_1, đối_số_2)
  3.     {
  4.         các câu lệnh cần thực hiện mỗi khi hàm được gọi;
  5.         return giá_trị_cần_trả_về;
  6.     }
  7. 
    
  8.     tên_hàm(1, 2); // Gọi hàm tên_hàm với hai đối số 1 và 2 ứng với đối_số_1 và đối_số_2
  9.     tên_hàm(1); // Gọi hàm tên_hàm với đối_số_1 có giá trị 1, đối_số_2 có giá trị undefined
  10. </script>

Trong JavaScript, khi gọi hàm không nhất thiết phải gọi hàm với cùng số đối số như khi định nghĩa hàm, nếu số đối số ít hơn khi định nghĩa hàm, những đối số không được chuyển cho hàm sẽ mang giá trị undefined.

Các kiểu cơ bản sẽ được chuyển vào hàm theo giá trị, đối tượng sẽ được chuyển vào hàm theo tham chiếu.

Hàm là đối tượng hạng nhất trong JavaScript. Tất cả các hàm là đối tượng của nguyên mẫu Function. Hàm có thể được tạo và dùng trong phép toán gán như bất kỳ một đối tượng nào khác, và cũng có thể được dùng làm đối số cho các hàm khác. Do đó, JavaScript hỗ trợ hàm cấp độ cao. Ví dụ:

  1. <script language="JavaScript">
  2.     Array.prototype.fold =
  3.     function (value, functor) {
  4.         var result = value;
  5.         for (var i = 0; i < this.length; i++) {
  6.             result = functor(result, this[i]);
  7.         }
  8.         return result;
  9.     }
  10.     var sum = [1,2,3,4,5,6,7,8,9,10].fold(0, function (a, b) { return a + b })
  11. </script>

Đoạn mã nguồn trên sẽ trả lại kết quả là 55.

Vì hàm trong JavaScript là đối tượng, lập trình viên có thể khởi tạo hàm không tên:

  1. <script language="JavaScript">
  2.     function() { thân hàm; }
  3. </script>

Một ví dụ sử dụng hàm không tên trong JavaScript:

  1. <script language="JavaScript">
  2.     document.onkeypress = function(e) {
  3.         alert("Bạn vừa nhấn một phím trên bàn phím");
  4.     }
  5. </script>

Hàm trên sẽ hiển thị thông báo khi một số phím trên bàn phím có thể gây sự kiện onkeypress được nhấn.

Mặc định, tất cả các thành phần của đối tượng thuộc phạm vi công cộng (public). Trong JavaScript, không có khái niệm thành phần riêng hay thành phần được bảo vệ (privatevà protected), tuy nhiên những tính năng này có thể được giả lập.

[sửa]Quản lý lỗi

Tùy theo môi trường phát triển, sửa lỗi JavaScript có thể sẽ rất khó khăn. Với JavaScript dùng trên trang web, hiện tại, các trình duyệt dựa trên Gecko (như Mozilla, Mozilla Firefox) có công cụ tìm diệt lỗi rất tốt (Venkman), ngoài ra còn kèm theo một công cụ kiểm tra DOM.

Các phiên bản mới hơn của JavaScript (như bản dùng trên Internet Explorer 5 và Netscape 6) hỗ trợ mệnh đề quản lý lỗi try ... catch ... finally, mệnh đề này bắt nguồn từ Java giúp lập trình viên quản lý lỗi thời gian chạy hoặc quản lý ngoại lệ xuất phát từ cú pháp throw. Cú pháp của mệnh đề này như sau:

  1. <script language="JavaScript">
  2.     try
  3.     {
  4.         Khối lệnh cần thực hiện có thể gây lỗi;
  5.     }
  6.     catch (error)
  7.     {
  8.         Khối lệnh cần thực hiện trong trường hợp có lỗi;
  9.     }
  10.     finally
  11.     {
  12.         Khối lệnh luôn được thực hiện;
  13.     }
  14. </script>

Trong cú pháp trên error là một đối tượng Error có hai thuộc tính theo chuẩn ECMAScript phiên bản 3:

  • error["message"]: Thông điệp diễn giải lỗi
  • error["name"]: Tên lỗi

Tuy nhiên mỗi trình duyệt sử dụng một bản JavaScript khác nhau, trong các trình duyệt lớn và phổ dụng không có trình duyệt nào hoàn toàn tuân thủ theo chuẩn ECMAScript phiên bản 3. Ví dụ như Internet Explorer 6 SP 1 có thêm hai thuộc tính:

  • error["number"]: Bí số của lỗi
  • error["description"]: Thông điệp diễn giải lỗi

Còn Mozilla Firefox 1.07 có thêm ba thuộc tính:

  • error["fileName"]: Tên tập tin xảy ra lỗi
  • error["lineNumber"]: Dòng xảy ra lỗi
  • error["stack"]: Cả hai thuộc tính trên gộp lại trong một chuỗi ký tự

Phần finally là không bắt buộc. Lập trình viên hoàn toàn có thể sử dụng try ... catch mà không có finally.

[sửa]Phạm vi ảnh hưởng của lỗi

Các ngôn ngữ lập trình kịch bản rất dễ bị ảnh hưởng bởi lỗi, hơn nữa, mỗi một trình duyệt, mỗi một công ty ứng dụng JavaScript một cách hoàn toàn khác nhau nên lập trình viên JavaScript thường phải dành rất nhiều thời gian sửa lỗi để đảm bảo đoạn mã nguồn của mình sẽ hoạt động tốt. Trong những trang HTML mà thẻ script và các đoạn mã HTML khác xen kẽ lẫn nhau, lỗi cú pháp có thể được phát hiện dễ dàng hơn bằng cách để mỗi hàm trong một thẻ script riêng biệt hoặc có thể sử dụng nhiều tệp .js khác nhau. Trong nhiều trường hợp, cách này còn giúp tránh làm hỏng cả trang web trong trường hợp có lỗi trong một đoạn mã nguồn.

Các ngôn ngữ dựa trên JavaScript

Ngôn ngữ kịch bản dùng trong Macromedia Flash – ActionScript có cú pháp gần giống với JavaScript, tuy nhiên mô hình đối tượng của ActionScript khác hẳn so với JavaScript.

JSON (JavaScript Object Notation) là một định dạng chia sẻ dữ liệu đa mục đích.

JavaScript OSA (JavaScript cho OSA, hay JSOSA) là một ngôn ngữ kịch bản dựa trên bản JavaScript SpiderMonkey trong trình duyệt Mozilla 1.5 dùng cho máy tính Macintosh. Đây là một phần mềm miễn phí phát hành bởi Late Night Software. Tương tác với hệ điều hành và các chương trình khác được thực hiện thông qua đối tượng MacOS. Ngoài những khác biệt trên, JavaScript OSA giống hệt bản JavaScript SpiderMonkey. Ngôn ngữ này được thêm vào hệ điều hành Mac OS để cung cấp thêm lựa chọn cho lập trình viên ngoài AppleScript.

Trước kia, ECMAScript cũng được sử dụng trong chuẩn VRML97 dùng trong dựng cảnh VRML.

 
Leave a comment

Posted by on August 24, 2012 in Uncategorized

 

Useful Node.js Tools, Tutorials And Resources

Useful Node.js Tools, Tutorials And Resources

Created by Ryan Dahl in 2009, Node.js is a relatively new technology which has gained a lot of popularity among Web developers recently. However, not everyone knows what it really is. Node.js is essentially a server-side JavaScript environment that uses an asynchronous event-driven model. What this means is simple: it’s an environment which is intended for writing scalable, high performance network applications. It’s like Ruby’s Event Machine or Python’s Twisted, but it takes the event model a bit further—it presents the event loop as a language construct instead of as a library.

And that’s not all: what’s really great about Node.js is the thousands of modules available for any purpose, as well as the vibrant community behind this young project. In this round-up, you will find the most useful resources for Node.js, from handy tools to detailed tutorials, not to mention in-depth articles and resources on this promising technology. Do you use Node.js already? Let us know in the comments to this post!

(Smashing’s side note: Have you already bought the brand new Smashing Book #3? The book introduces new practical techniques and a whole new mindset for progressive Web design. Get your book today!)

Useful Node.js Tools

Node Express Boilerplate
Node Express Boilerplate gives the developer a clean slate, while bundling enough useful features to remove all of those redundant tasks that can derail a project before it even gets started.

Node Express Boilerplate

Socket.IO
Socket.IO is a cross-browser Web socket that aims to make real-time apps possible in every browser and mobile device, blurring the distinctions between the various transport mechanisms. It’s care-free real time, in JavaScript.

Socket.IO: Cross-browser WebSocket for realtime apps.

Mastering Node
With Mastering Node, you can write high-concurrency Web servers, using the CommonJS module system, Node.js’s core libraries, third-party modules, high-level Web development and more.

Mastering Node

Log.io
Your infrastructure may have hundreds of log files spread across dozens of machines. To help you monitor deployments and troubleshoot, Log.io lets you instantly see composite streams of log messages in a single user interface.

Log.io

Formaline
Formaline is a low-level, full-featured (Node.js) module for handling form requests (HTTP POSTs and PUTs) and for parsing uploaded files quickly. It is also ready to use with, for example, middleware such as Connect.

Formaline

LDAPjs
LDAPjs is a pure-JavaScript, from-scratch framework for implementing LDAP clients and servers in Node.js. It is intended for developers who are used to interacting with HTTP services in Node.js and Express.

ldapjs

Node Supervisor
This is a little supervisor script for Node.js. It runs your program and watches for code changes, so you can have hot-code reloading-ish behavior without worrying about memory leaks or having to clean up all of the inter-module references, and without a whole new require system.

Node Supervisor

Stylus: An Expressive CSS Markup Language for Node.js
Stylus is supposed to be an expressive language that can be converted to CSS. The compiler is written in Node.js.

Stylus: An Expressive CSS Markup Language for Node.js

Jade – Template Engine
Jade is a template engine for Node.js applications. It combines great power and flexibility with a nice and clean syntax.

Jade - Template Engine

Express
This is a Sinatra-inspired Web development framework for Node.js: fast, flexible and sexy.

Express - Node web framework

Hook.io
hook.io creates a distributed node.js EventEmitter that works cross-process / cross-platform / cross-browser. Think of it like a real-time event bus that works anywhere JavaScript is supported.

Hook.io

Node Package Manager
NPM is a package manager for node. You can use it to install and publish your node programs. It manages dependencies and does other cool stuff.

Node Package Manager

Node-QRcode
Despite being quite young, Node.js already has a huge number of libraries for every possible application. This one is a QR code generator.

Node QRCode Generator

NWM
NWM is a dynamic window manager for X that was written at NodeKO 2011. It uses libev to interface with X11, and it allows you to lay out windows in Node.js.

NWM - Node Window Manager

Bricks.js
Bricks.js is an advanced modular Web framework built on Node.js. It is highly flexible. Bricks.js can be used as a standalone static Web server, a basic routing framework or a multi-level Apache-like routing system; and it is modular enough to have the capability to completely switch out its routing engine.

Bricks.js

Node.js Modules
A list of almost all the Node.js most famous modules organized by category. This list definitively is worth a look.

Node.js Modules

90 open-source Node.js modules
Recently, Browserling released over 90 Node.js modules to the open-source community. Some of them are small and strange modules, others might be pretty useful for your next Node.js project.

90 Opensource Node.js modules

Calipso
Calipso is a content management system (CMS) based on the NodeJS server.

Calipso - A NodeJS CMS

PDFKit
PDFKit is a PDF document-generation library for Node.js that makes it easy to create complex, multi-page, printable documents. It is written in pure CoffeeScript, but you can use the API in plain ’ol JavaScript if you like. The API embraces chain-ability, and it includes both low-level functions as well as abstractions for higher-level functionality.

PDFKit - A PDF Generation Library for Node

Forever
A simple CLI tool to ensure that a given script runs continuously (i.e. forever).

Forever - Make Scripts run Forever

Introducing Node.js

Node.js Step by Step
Node.js is an amazing new technology, but unless you’re a JavaScript developer, the process of becoming acquainted with it can quickly become a bit overwhelming. If you want to learn how to use Node.js, this set of articles and screencasts might do the trick.

Node.js Step by Step

What Is Node.js?
Another interesting discussion on StackOverflow about what Node.js is and is not. Recommended for those who are approaching Node.js for the first time.

What is node.js? - Stack Overflow

Learning Server-Side JavaScript
Node.js is all the buzz at the moment, and it makes creating high-performance, real-time Web applications easy. It allows JavaScript to be used end to end, on both the server and client. This tutorial walks you through from installing Node.js and writing your first “Hello World” program to building a scalable streaming Twitter server.

Learning Server-Side JavaScript

Node.js Is Important: An Introduction
“Once in a while, you come across a technology and are blown away by it. You feel that something like this should have been around much earlier and that it will be a significant milestone, not just in your own life as a developer but in general.

Node.js is Important. An Introduction

The Secrets of Node’s Success
In the short time since its initial release in late 2009, Node.js has captured the interest of thousands of experienced developers, grown a package manager and a corpus of interesting modules and applications, and even spawned a number of start-ups. What is it about this technology that makes it interesting to developers? And why has it succeeded while other server-side JavaScript implementations linger in obscurity or fail altogether?

The secrets of Node’s success

Asynchronous Code Design with Node.js
The asynchronous event-driven I/O of Node.js is currently evaluated by many enterprises as a high-performance alternative to the traditional synchronous I/O of multi-threaded enterprise application server. The asynchronous nature means that enterprise developers have to learn new programming patterns, and unlearn old ones

Asynchronous Code Design with Node.js

A Giant Step Backwards?
In this article, Fenn Bailey expresses his opinion of Node.js and why he sometimes thinks Node.js is a step backward compared to other solutions.

A giant step backwards?

Node.js Is Backwards
A hot topic in computing is parallel programming in languages such as Erlang. Will JavaScript join the party?

Node.js is backwards

Videos And Screencasts On Node.js

Node.js Meetup: Distributed Web Architectures
A series of videos from the Node.js Meetup at Joyent headquarters, discussing how to build distributed Web architectures with Node.js.

Node.js Meetup: Distributed Web Architectures

Introduction to Node.js with Ryan Dahl
In this presentation Ryan Dahl, the man behind Node.js will introduce you to this event-driven I/O framework with a few examples showing Node.js in action.

Introduction to Node.js with Ryan Dahl

SenchaCon 2010: Server-side JavaScript with Node, Connect & Express on Vimeo
Node.js has unleashed a new wave of interest in server side Javascript. In this session, you’ll learn how to get productive with node.js by leveraging Connect and Express node middleware.

SenchaCon 2010: Server-side JavaScript with Node, Connect & Express on Vimeo

Technical Articles And Tutorials On Node.js

Proxying HTTP and Web Sockets in Node
This guide is geared to beginners and people who are unfamiliar with reverse HTTP proxying, Web socket proxying, load balancing, virtual host configuration, request forwarding and other Web proxying concepts.

Proxying HTTP and Websockets in Node

Bulletproof Node.js Coding
“Right around the time that I started the third refactoring/rewrite of the code, I felt like I had gotten a feel for how to write bulletproof code, and I thought it would be worth sharing some of the style and conventions I came to adopt.”

Bulletproof Node.js Coding

How to Write a Native Node.js Extension
In this tutorial, you will learn how to write a native Node.js extension the right way, from the very basics to packaging the extension for NPM.

How to write a native Node.js extension

Let’s Make a Web App: Nodepad
This series will walk you through building a Web app with Node.js, covering all of the major areas you’ll face when building your own applications.

Let’s Make a Web App: Nodepad

HTML5 Canvas Drawing with Web Sockets, Node.JS and Socket.io
Web sockets and canvas are two really cool features that are currently being implemented in browsers. This tutorial gives you a quick rundown of how they both work, and you’ll create a real-time drawing canvas that is powered by Node.js and Web sockets.

HTML5 Canvas Drawing with WebSockets, Node.JS & Socket.io

Developing Multiplayer HTML5 Games with Node.js
Inspired by the famous iOS game Osmos, developer Boris Smus has created an alternative version of the game using HTML5 canvas and Node.js. This article explains the main phases of the project.

Developing Multiplayer HTML5 Games with Node.js

Deploying Node.js on Amazon EC2
Amazon’s EC2 is a popular choice for cloud applications. This tutorial shows how Node.js can be deployed on an EC2 instance.

Deploying node.js on Amazon EC2

A Simple Node.js + CouchDB Calendar
In this tutorial by Chris Storm, you will learn how to build a Web calendar with Node.js and CouchDB.

A Simple Node.js + CouchDB Calendar

IIS7
The IISnode project provides a native IIS 7.x module that enables hosting of Node.js applications on IIS. The project uses the Windows build of node.exe, which has recently seen major improvements.

Hosting node.js applications on IIS

Node.js + Phone to Control a Browser Game
Someone wondered how easily a smart phone – specifically using its gyroscopes and accelerometers – could be used as a controller for a multi-player game on a larger screen. With a bit of Node.js and HTML5 magic, it turned out to be pretty simple.

Node.js + Phone to Control a Browser Game

Is There a Template Engine for Node.js?
An engaging discussion appeared on StackOverflow about the template engines that are available for Node.js. Really useful arguments came out of this discussion.

Blogs, Podcasts, Resources On Node.js

How to Node
How to Node is a community-supported blog created by Tim Caswell. Its purpose is to teach how to do various tasks in Node.js and the fundamental concepts needed to write effective code.

How To Node

Nodejitsu
A really interesting blog about scaling Node.js apps in the cloud and about the Node.js events in general.

Nodejitsu Blog

Node Up
A podcast that reviews Node.js, explains its philosophy and goes over many of its popular libraries.

Node Up: Node.js Podcast

Node Tuts
Free screencast tutorials.

Node Tuts - Node.js Free screencast tutorials

Minute With Node.js
Node.js is constantly changing and growing with each new version. New libraries and frameworks are coming out daily that allow you to write JavaScript for new and exciting projects that were previously impossible. This is a one-stop shop for news updates on the entire Node.js eco-system, with a heavy slant on hardcore nerdery.

Minute With Node.js

Felix’s Node.js Guide
Over the past few months, Felix have given a lot of talks and done a lot of consulting on Node.js. He found himself repeating a lot of things over and over, so he used some of his recent vacation to start this opinionated and unofficial guide to help people getting started in Node.js.

Felix’s Node.js Guide

Node.js Knockout
Node.js Knockout is a 48-hour hackathon for Node.js. It’s an online virtual competition, with contestants worldwide.

Node.js Knockout

References And Books

Node.JS Help Sheet
“Node.JS is an evented I/O framework for the V8 JavaScript engine. It’s ideal for writing scalable network programs, such as Web servers. We’ve been working on some exciting things with Node.js, and we felt it was only fair to share our knowledge in the form of an easy-to-read Help Sheet.”

Node.JS Help Sheet

The Node Beginner Book
The aim of this document is to get you started with developing applications for Node.js. It teaches you everything you need to know about advanced JavaScript along the way. It goes way beyond your typical “Hello World” tutorial.

The Node Beginner Book

Up and Running With Node.js
“Many people use the JavaScript programming languages extensively for programming the interfaces of websites. Node.js allows this popular programming language to be applied in many more contexts, in particular on Web servers. There are several notable features about Node.js that make it worthy of interest.”

Up and Running with Node.js

 

 

Nguồn smashingmagazine.com

Tổng hợp bởi Đào Hoàng Tú

 
Leave a comment

Posted by on August 24, 2012 in Uncategorized

 

Đã có thể tag những người bạn trên Facebook qua những ứng dụng khác.

Facebook vừa cho phép người dùng có thể tag bạn mình trên dịch vụ của mình thông qua các ứng dụng giao thức Open Graph.

Image

“ Với động thái này, các công ty như FourSquare có thể giúp người dùng nhắc đến bạn mình như việc họ đã làm trên Facebook”- theo lời người phát ngôn của Facebook trên blog.

“Khi mọi người nhắc tới bạn mình trên 1 ứng dụng sử dụng giao thức Open Graph, câu truyện trên Facebook sẽ link tên người đó trên timeline của họ, và bạn của họ sẽ nhận đc 1 thông báo. Câu truyện sẽ cũng đc post trên timeline của những người bạn. Sẽ không có sự thay đổi nào về bảo mật với tính năng mới này.”

Khác với hình thức Action Tagging, Mention Tagging được thiết kế để sử dụng khi một người muốn tham khảo người khác trong 1 bài post. Ví dụ, tag bạn bè trong một bức ảnh hoặc đề nghị rằng một người bạn kiểm tra một nhà hàng nơi bạn đang ăn tối.

Image

Để biết về giao thức Open Graph, truy cập:

https://daohoangtu.wordpress.com/2012/08/22/open-graph-giao-thuc-chia-se-thong-tin-moi-tren-facebook/

Editor by Dao Hoang Tu

 
Leave a comment

Posted by on August 22, 2012 in Uncategorized

 

Open Graph: Giao thức chia sẻ thông tin mới trên Facebook

Giao thức Open Graph được giới thiệu lần đầu tiên tại hội nghị F8 của Facebook diễn ra hồi năm ngoái. Theo lời CEO của Facebook – Mark Zuckerberg đây chính là “cải tiến lớn nhất mà chúng tôi từng thực hiện cho thế giới Web”.

Vào thời điểm đó giao thức Open Graph cho phép các trang Web có thể truy cập vào dữ liệu trên Facebook và tùy chỉnh trải nghiệm cho mỗi người sử dụng. Đặc biệt, Facebook đã thiết kế nút “like” có thể cài đặt trên website cho phép đọc hay comment trực tiếp trên các trang web liên kết.

Giờ đây, Facebook đã tiến thêm một bước xa hơn đó khi cho phép các nhà phát triển ứng dụng tạo ra một phương thức mới để tương tác trực tiếp và có thể tích hợp các ứng dụng vào nhiều nơi hơn trên Facebook chứ không chỉ xuất hiện thông báo trên News Feed như trước kia.

Facebook, Google+, Open Graph, Web-News
Nội dung truy cập web của người dùng có thể hiển thị ngay trên Facebook

Sau khi người dùng thêm ứng dụng vào giao diện mới Timeline thì các hoạt động của ứng dụng cụ thể sẽ được chia sẻ trên Facebook thông qua Open Graph và được hiển thị trên các mục TimelineNews Feed và Ticker.

Giao thức Open Graph cho phép các ứng dụng định hướng hoạt động của người dùng dựa trên cơ chế phân biệt “hành động” và “đối tượng của hành động”. Chẳng hạn, một ứng dụng nghe nhạc có thể định nghĩa khả năng “nghe” (hành động) và “nhạc” (đối tượng). Một ứng dụng đọc sách có thể xác định khả năng “đọc” (hành động) và “sách” (đối tượng).

Điều này đồng nghĩa với việc tất cả những hoạt động mà người dùng trải nghiệm sẽ tự động được chia sẻ với tất cả mọi người. Người dùng không cần phải “like” một bài hát hay một bài viết để xuất hiện trên Facebook, đơn giản họ chỉ cần nghe bản nhạc đó trên các ứng dụng âm nhạc như Spotify, Mog…hoặc đọc một bài báo thông qua ứng dụng hoặc truy cập một trang Web có tích hợp giao thức Open Graph, những hoạt động này sẽ tự động cập nhật gần như ngay lập tức trên Facebook Ticker.

Sự tiếp cận mới của Facebook dựa trên giao thức Open Gragh sẽ giúp mạng xã hội lớn nhất hiện nay có đủ sức cạnh tranh với những kho ứng dụng âm nhạc trả tiền như iTunes và Amazon, đồng thời tạo lợi thế cho các trang web giải trí nhanh chóng tiếp cận tới khách hàng của mình.

Tuy nhiên điều này cũng gây lo ngại cho phần lớn người dùng Facebook bởi quyền riêng tư cá nhân, vốn rất được coi trọng trên các trang mạng xã hội đã bị xâm phạm. Trong tương lai, Facebook sẽ còn nhiều điều cần làm để hoàn thiện hơn trang mạng xã hội của mình, vốn đang bị cạnh tranh gay gắt bởi Google+.

Haki

Nguồn dientutieudung.vn

Tổng hợp bởi Dao Hoang Tu

 
Leave a comment

Posted by on August 22, 2012 in Uncategorized

 

Nếu là một netizen chính hiệu, hẳn bạn đều đã từng dành ra nhiều giờ hì hụi để tìm kiếm những bộ phim mình yêu thích trên Internet.

Trên thế giới, các dịch vụ như Netflix, Hulu đã và đang thu được những thành công đáng kể (quý 1 vừa qua Netflix đạt 870 triệu $ doanh thu, trong khi Hulu đạt 500 triệu $ trong năm 2011) nhờ khả năng mang lại trải nghiệm hoàn thiện cho truyền hình, phim trực tuyến. Tại Việt Nam, thị trường phim trực tuyến trước đây luôn là một nỗi thất vọng lớn bởi (1) Số lượng và chất lượng phim (2) Vấn đề đường truyền (3) Quá phụ thuộc vào quảng cáo. Trong một thời gian dài, cách duy nhất người dùng có thể xem các phim HD là thông qua torrent, các diễn đàn chia sẻ phim hoặc chấp nhận ” sống chung với lũ”.

Tuy nhiên, cùng với sự phát triển của công nghệ và đường truyền cùng sự trưởng thành của người dùng, gần đây trên thị trường đã xuất hiện nhiều dịch vụ cho phép xem film trực tuyến với chất lượng HD và thu phí người dùng. Nổi bật trong số các dịch vụ trên thị trường có thể kể tới Soha Phim (http://phim.soha.vn) và Pub.vn (http://pub.vn)

Trong khi chia sẻ nhiều điểm chung về tính năng, giao diện, hai dịch vụ này sử dụng các phương thức hoàn toàn khác nhau để truyền tải nội dung, kéo theo là những tác động tới chất lượng nội dung cũng như trải nghiệm người dùng. Trong khuôn khổ bài viết, chúng tôi sẽ phân tích các yếu tố này đã có ảnh hưởng thế nào tới mô hình kinh doanh và từ đó hé lộ tầm nhìn, tương lai của các dịch vụ trên,

Nội dung: Khác biệt lớn, nhưng liệu có quan trọng?

Trong cuộc chạy đua về số lượng phim, Soha Phim hiện đang dẫn trước với số lượng phim vượt trội (5000 vs 1000 phim) và tốc độ cập nhật phim mới nhanh hơn.Khi tìm kiếm các phim mới nhất như Men in Black 3, The Avengers, Soha Phim đã cập nhật (dù chưa có bản HD) trong khi Pub.vn chưa có. Tuy nhiên,số lượng phim trên cả 2 trang đều đáp ứng tốt nhu cầu xem phim trực tuyến thông thường.Trên thực tế, theo chia sẻ của Soha Phim, những phim mới nhất thường không phải là những phim được xem nhiều nhất.

Về chất lượng, những bộ phim trên Soha có chất lượng cao hơn. Theo so sánh của một chuyên gia về phim trực tuyến, bit rate của Soha Phim cao hơn Pub.vn gần 3 lần tuy nhiên đây cũng là nguyên nhân khiến Soha Phim load lâu và làm nặng máy hơn tương đối so với Pub.vn. Khi xem bằng mắt thường trên màn hình máy tính, chất lượng của 2 dịch vụ không có nhiều khác biệt.

Tuy nhiên, tốc độ cập nhật nhanh của Soha Phim cũng mang lại một nhược điểm khó tránh khỏi là phần mô tả nội dung và thông tin của Soha Phim tương đối sơ sài so với Pub (có cả Screen Shot, plot được mô tả hấp dẫn), dẫn đến việc tôi thường xuyên phải Google trước xem phim đấy nói gì. Ngoài ra, do được xây dựng trên nền tảng forum, phim trên Pub.vn thường có khá nhiều comment về nội dung phim, rất tiện lợi để tham khảo.

Theo chia sẻ với Westart.vn Soha Phim cho biết sắp tới sẽ phát triển thêm các tính năng Social để tận dụng khả năng lan truyền hiệu quả của những MXH như Facebook, Zing. Trong khi đó, Pub.vn sẽ tập trung phát triển các phiên bản trên di động và tablet.

Bài toàn phân phối: phần nổi của tảng băng

 

Cả 2 dịch vụ đều đang dùng các ứng dụng nền web để truyền tải nội dung. Tuy nhiên, Soha Phim hiện sử dụng công nghệ Peer – to – peer (P2P) do vậy bạn sẽ cần cài đặt một ứng dụng client trên máy. Với Pub.vn, công nghệ được sử dụng là streaming do vậy bạn có thể xem lập tức trên trình duyệt. Ngoài ra, yêu cầu về cấu hình của Soha Phim để xem được phim khá cao trong khi Pub.vn xem khá thoải mái trên mọi cấu hình.

“Quan điểm của Pub.vn là người dùng cần xem phim nhanh, nhẹ và chất lượng” – anh T, Giám đốc sản phẩm Pub.vn chia sẻ. Và thực tế, yêu cầu cấu hình nhẹ nhàng, thời gian load nhanh (gần như tức thời) của Pub.vn đã thực sự tạo nên một trải nghiệm vượt trội so với các dịch vụ xem phim khác từ trước đến nay. Cùng với khả năng tua khi xem, tôi đánh giá cao trải nghiệm xem phim trên Pub.vn hơn Soha.

Tuy nhiên, câu chuyện chưa kết thúc ở đây. Dưới đây là lí do tại sao Soha Phim lại chọn một hướng đi “lạ” với công nghệ P2P, đánh đổi một chút cảm giác khi xem phim để giành được ưu thế chiến lược trong dài hạn:

Có một bài post trên diễn đàn Tathy của anh Nguyễn Thế Tân, phó tổng giám đốc VC Corp, lý do Soha Phim chọn công nghệ P2P là do (1) Giảm gánh nặng về chi phí vận hành cho nhà cung cấp, từ đó hạ giá gói cước (2) Công nghệ duy nhất giúp truyền tải video chất lượng HD trong điều kiện đường truyền Việt Nam. Tuy vậy, có nhiều thứ có thể quan sát hơn tại đây. Trong ngày hôm nay, Soha vừa ra mắt sản phẩm mới: Soha TV (http://tv.soha.vn ) – làm dày thêm danh sách các dịch vụ có nhãn “Soha” hiện đã gồm rất nhiều lĩnh vực: Soha Game, Soha Phim, Soha Music, Soha TV, v..v. Các sản phẩm của Soha đều có chung user base (Ming ID), sử dụng cùng hệ thống thanh toán (Soha Pay với Scoin). Gần đây, VC Corp vừa có một thử nghiệm với LG với vai trò cung cấp nội dung số trên các dòng TV mới. Không khó để tượng tượng VC Corp sẽ tiếp tục làm gì một khi (1) họ đã có tất cả mọi thứ mà một người dùng bình thường quan tâm tới khi lên mạng: phim, nhạc, báo chí, game (2) có khả năng phân phối hiệu quả tới cả 3 màn hình: PC, di động và TV. Trong tham vọng “trói” người dùng vào hệ sinh thái của riêng mình, Soha Phim đang làm được một điều quan trọng: thuyết phục người dùng chịu cài 1 ứng dụng của mình lên máy tính của họ để sử dụng một dịch vụ trực tuyến.

Giờ hãy cho trí tưởng tượng của bạn bay xa:

-Chất lượng nội dung, khả năng tương tác của Soha sẽ luôn vượt trội do có thể tác dụng được vào cả hai đầu của dòng dữ liệu. Soha Phim đã mang lại chất lượng khác hẳn, mọi chuyện cũng sẽ tương tự với Soha TV hay Soha Game sau mỗi bản cập nhật của ứng dụng. Như đã nói ở trên, chất lượng của Soha phim khá tốt, có thể khiến load lâu và nặng máy hơn. Tương tự, trong thử nghiệm với ứng dụng Soha TV vừa ra mắt, trận Ba Lan – Nga có thể được stream trực tiếp với chất lượng tốt. Nếu Soha có thể đàm phán với K+ về bản quyền, tôi sẽ tạm biệt Sopcast.

-Dữ liệu: Theo anh Ninh, Product manager của Soha Phim, tính năng “Thư viện” – giúp bạn chọn những film ưa thích để xem sau hiện đang được sử dụng nhiều. Kết hợp cùng ứng dụng trên máy, có thể nói mọi thứ bạn làm trên Soha Phim đều được ghi nhận. Đây là nền tảng tốt để từ đó Soha có thể khai thác dữ liệu và từ đó đưa ra các tính năng cá nhân hóa, hệ thống giới thiệu hoàn thiện hơn. Với trên 5000 phim, sẽ rất tuyệt nếu tôi được gợi ý những film phù hợp “gu” của mình. Đây sẽ là phương án giúp Soha tránh mất thời gian lang thang giữa hàng ngàn bộ phim và thắc mắc không biết xem gì. Tuy nhiên ở thời điểm hiện tại, mọi thứ vẫn chỉ là lý thuyết. Với Pub.vn, việc lựa chọn Forum VBB làm nền tảng phân phối chính rất thuận lợi khi xây dựng cộng đồng, tuy nhiên điều này sẽ hạn chế nhiều tới các tính năng mở rộng.

Nói cho cùng, phụ thuộc vào người khác không phải là một trải nghiệm dễ chịu. Zynga đã tạo ra nền tảng riêng của mình (Zynga.com) do không “cam chịu” phải thông qua Facebook để đến với khách hàng của mình. Đến lượt mình, Facebook cũng đã ra mắt App Center riêng (và đồn đại là cả Facebook Phone) để hoàn thiện sân chơi riêng của mình. Với tham vọng của Soha, khả năng của các trình duyệt thông thường là không đủ. Dễ hiểu tại sao họ chấp nhận hi sinh một phần trải nghiệm người dùng (tin tôi đi, xem trên Pub.vn hiện nhanh và dễ dàng hơn) để có tiềm năng phát triển dài hạn.

Kết luận cuối cùng:

 

Như người ta thường nói: “That’s for you to decide”

http://phim.soha.vn

http://www.pub.vn

Đức Kiên

WeStart

Nguồn action.vn

Tổng hợp bởi Dao Hoang Tu

 
Leave a comment

Posted by on August 22, 2012 in Uncategorized

 
Video

My story:))

Cuộc đời của tôi:”>

 

Made by Dao Hoang Tu

 
Leave a comment

Posted by on August 22, 2012 in Uncategorized