WCF სერვისები, ტრასირება და წარმადობის ანალიზი

Sep 15th, 2011

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

Read more…

UNIQUEIDENTIFIER ველი როგორც Primary Key, NEWID() და 1001 გაუგებრობა :)

Sep 12th, 2011

ამ რამდენიმე დღის წინ, ჩემი ერთი ძველი მეგობარი და კოლეგა შემომეხმიანა (თქვენ ალბათ იცით მისი პროექტი jok.ge) და ერთი მარტივი კითხვა დამისვა: “გადახვედი ცხრილში GUID გასაღებებზე?” მე ამაყად ვუპასუხე რომ გადავედი, შემდეგი კითხვა ამ ველის მნიშვნელობების გენერაციას ეხებოდა “როგორ აგენერირებ, NEWID()-თი?” ჩემი პასუხი კვლავ დადებითი იყო. ამის შემდეგ ჩემმა ძველმა მეგობარმა და კოლეგამ ბოროტად ჩაიხითხითა, Primary Key ხომ კლასტერიზებული ინდექსიაო, შესაბამისად სორტირებულიო და ვინაიდან NEWID არასორტირებული სახით აბრუნებს რეზულტატს (ანუ NEWID()-ს ყოველი შემდგომი გამოძახება შეიძლება წინაზე მცირე რეზულტატს აბრუნებდეს) ეს იმას ნიშნავს რომ საცოდავი სერვერი იძულებულია ყველა INSERT-ისას ზევით-ქვევით ირბინოს რათა კლასტერიზებული ინდექსის თანმიმდევრობა შეინარჩუნოს. შედეგად იზრდება INSERT-ის დრო და ინდექსის ფაგმენტაცია. გამოსავალი? გამოსავალი NEWID()-ს ნაცვლად NEWSEQUENTIALID()-ს გამოყენებაშია.

Read more…

Entity Framework-ი, GUID გასაღებები როგორც PrimaryKey და ავტო-გენერაციის პრობლემები

Sep 2nd, 2011

დიდი შინაგანი ბრძოლების და უამრავი წაკითხული, გადამუშავებული და გატესტილი ვარიანტის შემდეგ, როგორც იქნა გავრისკე და ძველი, კეთილი ADO.NET-ის გამოყენებიდან Entity Framework-ის გამოყენებაზე გადავედი. პრინციპში უნდა ითქვას რომ საკმაოდ წარმატებითაც და ბევრად უფრო ბედნიერად ვგრძნობ თავს, CRUD ოპერაციებისთვის რომ აღარ ვწერ პროცედურებს SQL სერვერის მხარეს და მერე ამ ყველაფერზე ADO.NET-ით არ ვჩალიჩობ. მოკლედ მარტივად რო ვთქვათ ORM-ი საკმაოდ ეფექტური რამე აღმოჩნდა, მითუმეტეს linq-სთან კომბინაციაში. მაგრამ, როგორც ყოველთვის, აქაც არსებობს ბევრი პატარა მაგრამ…

ბოლო დღეებში უშედეგოდ ვიბრძოდი, რომ ცხრილში, რომლის Primary Key-ც uniqueidentifier-ის ტიპის მნიშვნელობაა, C#-ის კოდის მხრიდან, ცხადი სახით Guid.New()-ს გამოძახების გარეშე მიმეღწია ავტო-გენერირებადი მნიშვნელობების ჩაწერისთვის. საბოლოოდ ბრძოლამ შედეგი გამოიღო, მაგრამ გადაწყვეტილება იმდენად უშნოა, რომ ისევ Guid.New()-ს გამოყენება მომიწევს.

Read more…

Amazon Kindle – ტექნოლოგიური საოცრება წიგნების მოყვარულთათვის

Mar 5th, 2011

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

ასეა თუ ისე, შევთანხმდეთ ერთ საკითხზე: თქვენ, ისევე როგორც მე, გიყვართ/გიწევთ/გჭირდებათ დიდი რაოდენობით წიგნების კითხვა, ყველა წიგნს ვერ/არ იყიდით, ზოგი აქ არ იყიდება, ზოგის ჩამოტანა ძვირია, ხოლო ელექტრონული ვერსიების კომპიუტერის ეკრანზე კითხვა დღითი დღე აუარესებს თქვენს მხედველობას… გამოსავალი არის და მას Amazon Kindle ეწოდება! :)

Read more…

(არცთუ) პრიმიტიული Server/Storage სახლის პირობებში :)

Apr 3rd, 2010

უკვე აღარ მახსოვს ბოლოს როდის დავწერე ბლოგზე რამე. მგონი სიცხე რო მქონდა 3 თვის წინ მაშინ :D ეგ იქეთ იყოს და ამ მოუცლელობის და გაწამაწიის ჟამს, როგორც ჭეშმარიტ geek-ს შეეფერება, მაინც გამოვნახე დრო რომ რაღაც ახალი გამეკეთებინა. გამომდინარე იქედან, რომ შედეგით ძალიან კმაყოფილი ვარ, გადავწყვიტე თქვენც გაგიზიაროთ :)

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

Read more…

WM Unicode Fonts თქვენს ტელეფონში

Nov 22nd, 2009

დიდი ხანი არ არის, რაც ჩემი ძველი მობილური ტელეფონი ისე გაფუჭდა, რომ მის გაკეთებას აზრი აღარ ჰქონდა და ამიტომ ახლის ყიდვა მომიწია. მიუხედავად არსებული iPhone-მანიისა, არჩევანი მაინც Windows Mobile-ზე შევაჩერე. ბევრი ქექვის, შედარებისა და ფიქრის შემდეგ, ჩემი რჩეული Samsung Omnia 8GB გახდა.

Samsung-ის სასარგებლოდ უნდა ითქვას, რომ ტელეფონი მართლაც რომ მშვენიერია და პრაქტიკულად ყველა ასპექტში მომწონს. ერთადერთი რაც არ მომწონს მისი მუსიკალური შესაძლებლობებია, რაც Sony Ericsson-ის W სერიის ტელეფონის რამდენიმე წლიანი გამოყენების შემდეგ გასაკვირი არც არის.

Read more…

სტანდარტები, სტანდარტები, სტანდარტები!

Nov 17th, 2009

და კიდევ ერთხელ სტანდარტები! :) ვიცი რომ არავის არ გვიყვარს, ისიც ვიცი რომ თითოეულმა ჩვენთაგანმა აღმოაჩინა კოდის წერის ყველაზე ოპტიმალური და სწორი ვარიანტი, ფორმატირების ყველაზე მოსახერხებელი სტრუქტურა. ისიც ვიცი რომ თითოეული ჩვენთაგანის მიერ დაწერილი კოდი არ საჭიროებს კომენტირებას, რადგანაც ის თავისთავადაა ერთი დიდი კომენტარი, რადგანაც საოცრად გასაგები და ბუნებრივია. ეს ყველაფერი ვიცი, განა მეც ერთ-ერთი თქვენთაგანი არ ვარ? :) მაშინ რატომ ვდარდობ? ვდარდობ იმიტომ, რომ როცა საკუთარი კოდის გარდა სხვის კოდთან მუშაობა გიწევს და როცა ეს “სხვა” არა ერთი, არმედ რამოდენიმე ადამიანია, ხვდები რომ ამდენი გენიოსის მიერ დაწერილი კოდის გასარჩევად უბრალოდ რესურსი აღარ გყოფნის :)

Read more…

Google Applications – უფასო სასწაული :)

Jul 5th, 2009

რაც უფრო გადის დრო, ვრწმუნდები რომ Google ნელ-ნელა უახლოვდება იმ კომპანიას, რომელიც არა მხოლოდ ფულს აკეთებს ხალხზე, არამედ ხალხსაც ეხმარება იმის გაკეთებაში, რაც ამ უკანასკნელს სურს და რაოდენ საოცრადაც არ უნდა ჟღერდეს, ეს გამოსდის, თან არაჩვეულებრივად :)

ალბათ დაახლოებით 1,5-2 წლის წინ რომ დამეწერა ის, რის დაწერასაც ახლა ვაპირებ, ბევრისათვის ახალი იქნებოდა, მაგრამ დღეს დარწმუნებული ვარ უამრავი ადამიანი იცნობს Google Applications სერვისს. საქმე იმაშია, რომ მე რატომღაც მთელი ეს პერიოდი ვერ ვახერხებდი თავი მომება და ჩავჯდომოდი ამ საკითხს, შესაბამისად, ჩემი ცოდნაც 0-ზე იყო და მხოლოდ “იცი რა მაგარია?” ტიპის შეფასებების მოსმენით შემოიფარგლებოდა. ბოლო ხანებში კი რაღაც შემიჩნდა და უფრო კარგად გავეცანი ყველაფერს. შედეგად ახლა ამას ვწერ :)

Read more…

Tags:

ბროუზერებს შორის თავსებადობის პრობლემებთან ბრძოლა

Jan 23rd, 2009

თუ ერთხელ მაინც არ შეგქმნიათ ბროუზერებს შორის თავსებადობის პრობლემა, ორი ვარიანტია: ან თქვენ ვებთან შეხება არ გაქვთ, ან თქვენ ლელა კაკულია გმფარველობთ :)

მოკლედ ყველასთვის ნაცნობია თავის ტკივილი, სახელად “ბროუზერებს შორის თავსებადობა” და ამ პრობლემასთან ბრძოლაში გატარებული უამრავ საათიც კარგად გახსოვთ… მაგრამ სხვადასხვა ბროუზერებს შორის თავსებადობაზე რა უნდა ილაპარაკო, როცა IE-ს ვერსიებს შორისაც კი განსხვავებულ რენდერინგს ვხვდებით და რეალურად ერთი და იგივე CSS-ით გაფორმებული HTML სხვადასხვაგვარად გამოიყურება.

Read more…

ზოგადი ინფორმაცია სერვერების შესახებ

Jan 22nd, 2009

აი დადგა ნანატრი მომენტი, როცა ჩვენ ბოლოს და ბოლოს უნდა გავარკვიოთ რა არის და ვინ იმალება ამ მაგიური სეიტყვა “სერვერი”-ს მიღმა! :) ალბათ ძალიან არ შევცდები, თუ ვიტყვი, რომ სერვერი, ეწოდება კომპიუტერს, რომელიც ჩართულია ქსელში (არა აუცილებლად ინტერნეტში) და მუდმივი მოსმენის რეჟიმშია. მოსმენის რეჟიმში ყოფნა იმას ნიშნავს, რომ სერვერი “ელოდება” მოთხოვნებს დანარჩენი სამყაროდან, ანუ კლიენტებისაგან და მოსულ მოთხოვნებზე შესაბამის პასუხს სცემს. რეალურად სერვერიც უბრალო კომპიუტერია (ნუ თუ შეიძლება ნახევარმილიონიან სერვერს ჩვეულებრივი ეწოდოს :D ) რომელიც კონკრეტული ამოცანის შესრულებაზეა ორიენტირებული. სერვერები რომ რაღაც მითიური კომპიუტერები არ გეგონოთ, გეტყვით რომ სერვერის შეძენა შეიძლება დაწყებული 2000$-დან, დამთავრებული რამდენი ათასი$-იც გაგიხარდებათ, იმდენით :) ცხადია ფასები ცოტა არაკორექტულია და შეიძლება 1000$-დ იყიდოთ, მაგრამ ამ შემთხვევაში ეს გადამწყვეტი არ არის :) სერვერები, გამომდინარე თავისი დატვირთვიდან, სხვადასხვა კომპლექტაციის არსებობს. ზოგს ოპერატიული მეხსიერება ჭირდება ბევრი, რეალურ დროში მონაცემებთან სამუშაოდ, ზოგს მძლავრი პროცესორ(ებ)ი, დიდი გათვლების გასაკეთებლად, ზოგსაც დიდი მოცულობის მყარი დისკი, ინფორმაციის შესანახად.

Read more…