1. იანვარი
    8
    2011

    Just Random Post

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

    მოკლედ რა შეიცვალა, შეიცვალა ის რომ უკვე მესამე თვეა საქართველოში აღარ ვარ. ვინც მიცნობს იმათ იციან ამის მიზეზი, ხოლო ვინც არ იცით იმათთვის დავწერ რომ საცხოვრებლად გადავედი კრაკოვში, თუმცა თავის მხრივ ამის მიზეზი ის იყო რომ ჩემდა საბედნიეროდ Google-ში დავიწყე მუშაობა.

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

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

    რაც შეეხება თვითონ ქალაქ კრაკოვს, ისტორიული და საკმაოდ ლამაზი ქალაქია. სანახავი ბევრია თუმცა ჯერ არსად გავსულვარ ცივი ამინდების გამო. ქალაქს ცენტრში აქვს ძალიან დიდი მოედანი, რომელიც დღისით სულ ტურისტებით არის სავსე, ხოლო ღამით სტუდენტებით რომლებიც შედიან ან გამოდიან კლუბებიდან და ასევე მთვრალი ინგლისელებით. როგორც ამიხსნეს ინგლისელებს შაბათ-კვირას კრაკოვში ჩამოსვლა, გართობა/დათრობა და უკან წასვლა უფრო იაფი უჯდებათ ვიდრე იგივე ინგლისში. დაახლოებით ისეთი ვარიანტია ჩვენთან რომ იყო გამოთქმა: "რა დრო იყო 37 მანეთად მოსკოვში გადაფრინდებოდი, ლუდს დალევდი და გადმოფრინდებოდიო" . ასევე დიდი შანსია მოედანზე წააწყდე სახე დასიებულ "ბომჟს" (ქართული შესატყვისი არ მახსენდება), რომელიც თავისუფლად ლაპარაკობს ინგლისურად, რუსულად და ალბათ უმრავლესობა გერმანულადაც. როგორც მითხრეს ამ მოედანზე მინიმუმ 300 ბარია სადაც ლუდის <3 დალევა შეიძლება და მეტი თუ არა ამდენივე მაინც კლუბი გართობის მოყვარულთათვის.

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

    ამ განსხვავებების მიუხედავად აქაურობასთან შეგუება არ გამჭირვებია, ამაში რათქმაუნდა ძაან დამეხმარა ის რომ ჩემთან ერთად აქ გადმოვიდა რაჭველა (ერთად დავიწყეთ მუშაობა Google-ში) და მისი მეუღლე თეო. თითქმის ყოველდღე ან ისინი არიან ჩემთან ან მე მათთან და დიიიდი მადლობა თეოს გემრიელი კერძებით გამასპინძლებისთვის :*. ასევე დამეხმარა ისიც რომ საბედნიეროდ მყავდა ორი აქაური ნაცნობი, რომლებსაც ჩამოსვლის პირველივე დღეებში შევხვდი და აღვადგინეთ ურთიერთობა. და რათქმაუნდა ძალიან დიდი როლი ითამაშა იმან, რომ სამსახური გახდა ცხოვრების ნაწილი და არა პირიქით როგორც ხშირ შემთხვევაში ხდება ხოლმე და შენი თავისთვის ან უბრალოდ განტვირთვისთვის დრო არ გრჩება.

    როგორც ზემოთ ავღნიშნე, სამსახურთან შეგუებაც არ გამჭირვებია, გუნდთანაც საკმაოდ კარგად შევედი კონტაქტში. და რაც მთავარია Java-სთან შეხება საერთოდ არ მაქვს , ძირითადად ვწერ Python-ზე <3 და სავარაუდოდ მომავალში C++ იც დამჭირდება. ასევე მაქვს 20%-იანი პროექტის იდეა, რომლის პროტოტიპიც ნაწილობრივ უკვე მზად მაქვს. პირველი ორი კვირა მთლიანად კომპანიის შიდა პროცესების გაცნობში და თამაშში გავიდა. ამ ორი კვირის შემდეგ საქმე რათქმაუნდა მაქვს მაგრამ ძალიან დამღლელი არ არის, მითუმეტეს რომ ოფისში ბევრი რაღაცით შეიძლება განტვირთვა.

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

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

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

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

    დროებით.

  2. მაისი
    15
    2010

    Facebook Revisited

    მინდა შემოგთავაზოთ ჩემი მეგობრის დავით რაჭველიშვილის პოსტი, რომელიც ჯერ თავის თავს გაგაცნობთ ხოლო შემდეგ მოგიყვებათ თავის ძალიან საინტერესო ისტორიას.


    სანამ ძირითად თემაზე გადავიდოდი მინდა ყველას გაგეცნოთ, რომ გქნოდეთ წარმოდგენა ჩემს შესახებ. მე ვარ დავით რაჭველიშვილი(რაჭველა), 2008 წელს დავამთავრე თბილისის სახელმწიფო უნივერსიტეტი და ეხლა ვმუშაობ რამოდენიმე ადგილას ჯავა პროგრამისტად, ასევე ჩემს მეგობრებთან ერთად ვარ GeOlymp-ის დამფუძნებელი. უნივერსიტეტის დაწყებისას მე მხოლოდ C/C++ საბაზისო ცოდნა მქონდა და პირველივე დღეებიდან დავიწყე ინფორმატიკის ოლიმპიადებში მონაწილეობის მიღება. გზა საკმაოდ რთული იყო ვინაიდან არ გამაჩნდა არანაირი ცოდნა, მაგრამ საკუთართავზე ბევრი მუშაობის შედეგად მოვედი დღევანდელ დღემდე. მას შემდეგ 6 წელზე მეტი გავიდა და კიდევ დიდი სიამოვნებით ვწერ პროგრამირების შეჯიბრებებს და ვსწავლობ ახალახალ ალგორითმებს. ეხლა გადავიდეთ მთავარზე...

    ვინც ლეკვას ბლოგს კითხულობთ კარგად გემახსოვრებათ მისი და facebook-ის ურთიერთობის ისტორია, რამაც ჩემზე დიდი შთაბეჭდილება მოახდინა და მაგალითი მომცა რომ მეც მეცადა ბედი. უამრავ ადგილად გავაგზავნე ჩემი CV და ყველამ უარი მითხრა, მაგრამ ამ დროს გამოჩნდა Facebook რომლიც TopCoder-ის ჩემპიონატის ერთერთ მთავარ სპონსორად მოგვევლინა. მეც ვიფიქრე გამოვიყენებ ამ შანს და ტოპკოდერის საიტზე დავაჭირე “Apply” ღილაკს.

    დიდი ხნის ლოდინი არ დამჭირდა, 2 დღეში ჩემს ინბოქსში გამოჩნდა წერილი კინჰ დემარისგან, რომელიც მეკითხებოდა თუ ვიყავი დაინტერესებული მათან მუშაობაზე. მეც მაშინვე მივწერე პასუხი და დავნიშნეთ პირველი გასაუბრება.

    გასაუბრება I

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

    გასაუბრება II

    ეს გასაუბრება თავიდანვე ცუდად დაიწყო, ვერაფრით ვერ დამირეკა ტელეფონზე და გადავწყვიტეთ, რომ სკაიპით დამიკავშირდებოდა. მაგრამ ახალი დაწყებული გვქონდა საუბრარი, რომ ზარი გაწყდა, რამაც ძალიან დამძაბა. თუმცა ამის შემდეგ უკვე კავშირის პრობლემა აღარ გვქონია. ეს ინტერვიუც როგორც ველოდი დაიწყო ზოგადი საუბრებით, ამიხსნა ვინ იყო, რას აკეთებდა. აღმოჩნდა რომ სტენდფორდის ალუმნი იყო, 9 თვეა რაც FB security ჯგუფის წევრია და ეს მისი პირველი სამსახური იყო. პირველი კითხვა რაც დამისვა იყო, თუ რატომ ვიღებდი მონაწილეობებს ამდენ შეჯიბრებებში. ლეკვასგან დარიგებული რომ რაც შეიძლება ბევრი მელაპარაკა. მოვუყევი მთელი ჩემი ისტორია პირველი კურსის შემდეგ. შემდეგ იყო კითხვები Java-ზე და C++ -ზე, შევადარეთ ერთმანეთს, მკითხა თუ რატომ გადავედი C++ დან Java-ზე. ამას მოყვა კითხვები Python-ზე, რამაც მაგარად დამაბნია. CV-ში მეწერა რომ პითონი ვიცოდი დამწყების დონეზე, მაგრამ მაინც დამისვა კითხვები. შევადარეთ მკაცრად ტიპიზირებული და არა ტიპიზირებული ენები, რა პლიუსები და მინუსები აქვთ, სად რისი გამოყენება ჯობია. ამ კითხვებზე პასუხები ადგილზე მოვიფიქრე, იმიტომ რომ მანამდე თითქმის არ მქონია შეხება არა ტიპიზირებულ ენებთან, რაც ძალიან მოეწონა მას.

    და აი ამის შემდეგ მივედით კოდის წერამდე, პირველი დავალება იყო BFS (Bread First Search), რომელიც მანამდე ძალიან ბევრჯერ დამიწერია შეჯიბრებების დროს და ადვილად გავართვი თავი. შემდეგ მთხოვა დამეწერა რიცხვიდან ფესვის ამოღების ფუნქცია მოცემული P სიზუსტით, ისე რომ სტანდარტული sqrt() არ გამომეყენებინა. ესეც ადვილად დავუწერე ორობითი ძებნის მეთოდით, სამწუხაროდ ამ კოდში ბაგი მქონდა, არასწორედ ვახდენდი ცვლადების ინიციალიზაციას, რომელიც მალევე ვიპოვე. და ბოლო დავალება იყო დამეწერა ფუნქცია რომელიც LinkedList-ს შეაბრუნებდა.

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

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

    გასაუბრება III

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

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

    შემდეგ ჩემი კითხვების დრო მოვიდა, ვკითხე თუ როგორი იყო ერთი დღე FB-ში, რა ბონუსები აქვთ თანამშრომლებს, ასევე ვკითხე Cassandra, მითხრა რომ inbox-ის ინდექსირებისათვის იყენებენ და მათი სისტემა დაახლოებით 100 node-ისგან შედგება. შემდეგ ვილაპარაკეთ Thrift-ზე და ამასაც ტკბილად დავემშვიდობე.

    გასაუბრება IV

    როგორც აღომჩნდა წინა ინტერვიურს მოვეწონე და მეოთხე ინტერვიუც მალე დავნიშნეთ. ინტერვიუ გვიან დავიწყეთ, პრობლემები ქონდა ტელეფონზე დარეკვასთან. აქაც სტანდარტულად დავიწყეთ ზოგადი საუბრებით, და გავაგრძლეთ კოდირებით. პირველი პროგრამა რაც დამაწერინა იყო რომელიღაც ჩემთვის მანამდე უცნობი დაფაზე თამაშის სვლის სიმულაცია უნდა გამეკეთებინა. ამის შემდეგ დამაწერინა Composite იტერატორი next(), hasNext() და remove() მეთოდით, ანუ ისეთი იტერატორი რომელიც Collection-ების Collection-ებზე მოახდენდა იტერირებას უკვე არსებული სტანდარტული იტერატორის გამოყენებით. ამის წერისას როდესაც ბოლოში გავედი მივხვდი, რომ რაღაც არ მქონდა გათვალისწინებული და ის რაც დავწერე არ იმუშავებდა, ამიტომ საჭირო გახდა კოდში დიდი ცვლილებების შეტანა. შევთავაზე ორი გზა გასწორების, მაგრამ დიდი ხანია უკვე ვლაპრაკობთო და არ დამამთავრებინა. ამაზე მაგარად გავბრაზდი და უკვე იმედი მქონდა დაკარგული რომ შემდეგ ინტერვიუზე დამპატიჟებდნენ.

    ამის მერე მე დავუსვი კითხვები, ველაპარაკე Open Graph-ის შესახებ, ვკითხე თუ აპირებდნენ like-ის გარდა ახალი კავშირის შემოტანას, რაზეც მიპასუხა, რომ ფიქრობენ მაგრამ არ უნდათ რომ გაართულონ პროტოკოლი ამიტომ ჯერ გადაწყვეტილება არ მიუღიათ. ასევე ვკითხე თუ აპირებდნენ ინდექსირება/ძებნას ახალ ნოუდებში, ამაზეც იგივე ტიპის პასუხი მივიღე, რომ სურთ მაგრამ ჯერ ფიქრობენ როგორ გააკეთებენ. ამით დასრულდა ბოლო სატელეფონო ინტერვიუ.

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


    მინდა წარმატება ვუსურვო რაჭველას და დარწმუნებული ვარ რომ ყველაფერი კარგად დამთავრდება . ასე რომ დარჩით ჩვენთან გაგრძელება იქნება

  3. აპრილი
    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 წუთი დასჭირდა

  4. მარტი
    21
    2010

    ინფორმატიკის ოლიმპიადების ციკლი: GeOlymp

    ჩემი ბლოგის მკითხველების უმრავლესობამ ალბათ უკვე იცით ახალი პროექტის შესახებ GeOlymp, მაგრამ თქვენთვის კიდევ ერთხელ და მათთვის ვინც ჯერ არ იცის მინდა დავწერო რას წარმოადგენს GeOlymp და რა გეგმები გვაქვს მომავლისთვის.

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

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

    ოლიმპიადები გათვლილი იქნება პირველ რიგში დამწყებებისთვის რათა მოვახდინოთ მათი კიდევ უფრო დაინტერესება პროგრამირებით და რათქმაუნდა ხელი შევუწყოთ სწავლაში.

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

    პირველი ტურის გამარჯვებულები არიან:

    • ირაკლი მერაბიშვილი (სანქპეტერბურგის უნივერსიტეტი)
    • ცოტნე ტავიძე (ქუთაისის ანდრეა რაზმაძის სახელობის N.41 საჯარო სკოლა)
    • ნიკა გაბისონია (თბილისის ივანე ჯავახიშვილის სახელმწიფო უნივერსიტეტი)

    სრული შედეგები

    პირველ შეჯიბრზე გაჩერებას არ ვაპირებთ, მომდევნო თვეებშიც ჩავატარებთ შეჯიბრებებს და სავარაუდოდ სექტემბერში ჩატარდება დასწრებული შეჯიბრი, სადაც დაიშვებიან წინა ტურებზე წარმატებული მონაწილეები.

    დაინტერესებულ პირებს დარეგისტრირება შეგიძლიათ შემდეგ მისამართზე: რეგისტრაცია.

    გისურვებთ ყველას წარმატებას და როგორც იტყვიან gl & hf

  5. მარტი
    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 ხოლო მისი სადემონსტრაციო ვიდეო ქვემოთ :