1. აპრილი
    22
    2010

    Facebook Development Platform

    გუშინ ჩატარდა f8, სადაც Facebook-მა წარადგინა რამოდენიმე ახალი პროდუქტი რომელთა საშუალებითაც შესაძლებელი ხდება ინტერნეტი კიდევ უფრო სოციალური გახდეს და ყველაფერი ერთმანეთს დაუკავშირდეს.

    კონკრეტულად კი შემდეგი პროდუქტები წარმოგვიდგინა FB-მ:

    Social Plugins

    FB-ს ძველი ვიჯეტების (კომენტარების, ფანების, ... ბლოკები) ახალი ვერსია/ვარიანტი, რომლებიც გაცილებით მარტივად მუშაობენ და კიდევ უფრო მარტივად შეიძლება მათი საიტზე ინტეგრაცია.

    ამ ვიჯეტებისგან ყველაზე მარტივად და ამავდროულად ყველაზე მნიშვნელოვანი არის Like ღილაკი, მისი გამოყენებისთვის საკმარისია გვერდზე დავამატოთ ერთი ხაზი HTML კოდი. ის ცვლის ძველ გაზიარების/Share ღილაკს, რომელთან შედარებითაც აქვს ის უპირატესობა, რომ ღილაკთანვე შეგიძლია ნახო რომელ შენს მეგობრებს მოეწონა იგივე "ობიექტი" (მუსიკა, ფილმი, სურათი, სტატია ...). როგორც მაგალითად ამ გვერდზე მარჯვნივ (თუ რათქმაუნდა ვინმემ თქვენი მეგობრებიდან დააჭირა მოწონების ღილაკს ).


    Graph API

    FB API-ის ახალი ვერსია, რომელიც ასევე ძალიან გამარტივებულია და უფრო ინტუიტიურია მისი გამოყენება. ასევე დეველოპერისთვის გაცილებით ადვილია მისი გამოყენების წესების გაგება.

    ადრე მქონდა შეხება ძველ API-სთან და ძლივს გავუგე თავი და ბოლო, მაგრამ გუშინ როცა მის ახალ ვარიანტს გადავხედე (და არა დეტალურად ჩავიკითხე) მისი იდეოლოგია და პრინციპები მაშინვე ნათელი გახდა.

    ასევე თუ ადრე აპლიკაციებს უწევდათ რაღაც პერიოდულობით მომხმარებლების პროფილების შემოწმება FB-ზე ცვლილებების სანახავად, ახლა ეს საჭირო აღარ არის, PubHubSubBub-ის საშუალებით FB თვითონვე მომენტალურად შეგატყობინებთ პროფილის ცვლილების შესახებ.


    Authentication

    3rd party აპლიკაციებისთვის გამარტივდა მომხმარებლებისგან უფლებების მიღების პროცედურა, მომხმარებელიც ნათლად (ერთიანად და არა ცალ-ცალკე როგორც ადრე იყო)ხედავს თუ რა უფლებები სჭირდება აპლიკაციას. ასევე რაც ჩვენთვის დევლოპერებისთვის არის მთავარი, გამარტივდა აპლიკაციების FB-ში ავტორიზაციის პროცესი. ისინი გადავიდნენ OAuth 2.0-ზე, რაც მის პირველ ვერსიასთან შედარებით გაცილებით მოხერხებულია.


    Open Graph Protocol

    და ზემოთ ჩამოთვლილ პროდუქტებს შორის ყველაზე მნიშვნელოვანი, რომლის საშუალებითაც FB ცდილობს მთელი ინტერნეტ ინფორმაცია დააკავშიროს ერთმანეთთან და რაც ყველაზე მთავარია ჩვენთან ... ადამიანებთან. მისი გამოყენებით ინტერნეტი კიდევ უფრო სემანტიკური ხდება, მაგალითად თუ ამ გვერდის HTML კოდს ნახავთ დასაწყისში წააწყდებით შემდეგ მეტა ინფორმაციას, რაც ყოველგვარი ახსნის გარეშე გასაგები უნდა იყოს :

    <meta property="og:site_name" content="დეველოპერის დღიურები" />

    <meta property="fb:admins" content="giolekva" />

    <meta property="og:title" content="Facebook Development Platform" />

    <meta property="og:description" content="გუშინ ჩატარდა f8, სადაც Facebook-მა წარადგინა რამოდენიმე ახალი პროდუქტი რომელთა საშუალებითაც შესაძლებელი ხდება ინტერნეტი კიდევ უფრო სოციალური გახდეს და ყველაფერი ერთმანეთს დაუკავშირდეს." />

    <meta property="og:type" content="blog" />

    <meta property="og:url" content="http://www.giolekva.com/facebook-development-platform" />

    ზოგადად ძალიან დიდი ნაბიჯი გადაიდგა ინტერნეტ (და არამარტო) სივრცეში. FB ცდილობს გახდეს ადამიანების იდენტურობის წყარო, რისი მიღწევაც გუშინ გადადგმული ნაბიჯების შედეგად სავსებით რეალურია. ბევრმა შეიძლება დაიწყოს იმაზე კამათი, რომ ირღვევა ადამიანის ანონიმურობა და მისი უფლებები, მაგრამ ჩემი აზრით ეს ასე არ არის. რეალურად ნებისმიერი ინფორმაციის მიღება ინტერნეტის გარეშეც შეიძლება, მაგრამ შეიძლება დაგვჭირდეს რამოდენიმე ქვეყანაში გადაფრენა და დიდი დრო დაგვეხარჯოს . ასე რომ თუ ამ კუთხით შევხედავთ დღევანდელ ინტერნეტ მოძრაობებს და მის განვითარებას, ყველაფერი გაცილებით მარტივადაა .

    ჩემი აზრით FB-მ Google-ს საკმაო რაოდენობით საფიქრალი გაუჩინა, Open Graph Protocol + მოწონების ღილაკის საშუალებით FB-ს შეუძლია გრაფში ჩართული მთელი ინფორმაცია საკმაოდ ჭკვიანურად დაალაგოს და ჩვენთვის საინტერესო ფორმატით შემოგვთავაზოს.

    ეს არის მოკლედ რისი დაწერაც აქ შეიძლებოდა , უფრო დაწვრილებითი ინფორმაციისთვის ზემოთ მითითებულ ბმულებს შეგიძლიათ გადახედოთ.

    პ.ს. არ დაგავიწყდეთ მოწონების/Like ღილაკზე დაჭერა, რომლის რეალიზებასაც თავისი გვერდებზე მეტა ინფორმაციის დართვითურთ მაქსიმუმ 5 წუთი დასჭირდა

  2. მარტი
    1
    2010

    HTML5 WebSockets

    უკვე დიდი ხანია რაც HTML5-ის სპეციფიკაციაზე მუშაობს W3 ჯგუფი, საკმაოდ ბევრი ცვლილებები შედის სტანდარტში და ასევე ბევრი საინტერესო და გამოყენებადი შესაძლებლობები ემატება. ერთ-ერთი მათგანია WebSockets. WebSockets საშუალებას გვაძლევს სერვერსა და კლიენტს (ბრაუზერში გაშვებულ სკრიპტს) შორის ინფორმაცია გავცვალოთ ასინქრონულად. ერთი შეხედვით თითქოს იგივე უნდა იყოს რაც Ajax, მაგრამ სულ სხვა პრინციპით მუშაობს.

    XMLHttpRequest-ის მთავარი პრობლემა ის არის, რომ როგორც კი სერვერი კლიენტს დაუბრუნებს პასუხს კავშირი მათ შორის წყდება. არსებობს Http Header Keep Alive რაც საშუალებას გვაძლევს კავშირი ცოტა ხნით მაინც დავტოვოთ ღია, თუმცა როგორც წესი კავშირი დიდი ხნით მაინც ვერ ძლებს. შესაბამისად ყოველ ჯერზე როცა სერვერიდან ინფორმაციის წამოღება გვჭირდებოდა, საჭირო იყო ახალი XMLHttpRequest მოთხოვნის გაგზავნა სერვერზე, რაც სავარაუდოდ დინამიური და დიდი ვებ აპლიკაციის შემთხვევაში გამოიწვევდა სერვერის საკმაოდ დატვირთვას. არსებობს რამოდენიმე ტექნიკა რომელთა გამოყენებაც შეიძლება ასეთ შემთხვევებში, თუმცა თითოეულ მათგანს თავისი პრობლემები გააჩნია, რომლებიც არც ისე ადვილი გადასაჭრელია ხშირ შემთხვევაში. დაწვრილებით შეგიძლიათ წაიკითხოთ ლელას ბლოგზე: Polling და Pushing აჯაქსით.

    WebSockets-ის საშუალებით შეგვიძლია სერვერთან გავხსნათ მუდმივი(persistent) კავშირი, რაც იმას ნიშნავს რომ კავშირი ღიაა სანამ რომელიმე მხარე არ დახურავს მას. შესაბამისად სერვერს მაშინ შეუძლია კლიენტისთვის ინფორმაციის გაგზავნა როცა ის მოისურვებს და პირიქით (ეს აქამდეც შესაძლებელი იყო ). როგორც სხვადასხვა ბლოგებზე წავიკითხე WebSockets პრობლემას არ უქმნის კლიენტსა და სერვერს შორის არსებული Proxy და Firewall სისტემები, თუმცა ეს პირადად არ გადამიმოწმებია. თუ ვინმე გულისხმიერებას გამოიჩენთ და გადაამოწმებთ მადლობებლი დაგრჩებით, ძაან მაინტერესებს რეალური შედეგები .

    WebSockets აქვს ძალიან მარტივი ინტერფეისი:

    var ws = new WebSocket('ws://localhost:8000/websocket'); // კავშირის გახსნა

    ws.onopen = function() { // კავშირი გაიხსნა

    ws.send('Hello WebSocket!'); // შეტყობინების გაგზავნა

    };

    ws.onmessage = function(e) { // სერვერიდან მივიღეთ შეტყობინება

    alert(e.data);

    e.close(); // კავშირის დახურვა

    };

    რათქმაუნდა WebSockets-ის მხარდაჭერა უნდა ქონდეს ვებ სერვერსაც. Tornado-ს არც თუ ისე დიდი ხნის წინ დაამატეს მისი მხარდაჭერა, დაწვრილებით შეგიძლია წაიკითხოთ Tornado-ს შემქმნელის ბლოგზე: WebSockets in Tornado. ასევე WebSockets-ის გამოყენება შეიძლება node.js სერვერზეც (node.js რეალიზებულია server-side javascript-ის გამოყენებით).

    ასევე რაც ყველაზე მთავარია, ჯერ-ჯერობით მხოლოდ Google Chrome-ის ბოლო ვერსიას აქვს WebSockets-ის მხარდაჭერა, თუ არ ვცდები FireFox-ის development build-შიც არის რეალიზებული და ასევე Safari-ს მომდევნო ვერსიაშიც უნდა ველოდოთ.

    დღეს გამოვნახე თავისუფალი დრო და გავაკეთე პატარა ვებ ჩატი WebSockets-ის გამოყენებით, რომლის კოდიც შეგიძლიათ ნახოთ GitHub-ზე SocketChat ხოლო მისი სადემონსტრაციო ვიდეო ქვემოთ :