ბოლო ხანებში WCF სერვისების ტრასირება და წარმადობის ანალიზი დამჭირდა გადავწყვიტე ამ ბნელით მოცული საკითხისთვის ერთხელ და სამუდამოდ მომეფინა ნათელი. რეალურად ყველაფერი იმდენად მარტივი აღმოჩნდა, რომ ნათელის მოსაფენი ბევრი არც არაფერი ყოფილა. თანაც შედეგებიც ისეთი შთამბეჭდავი მივიღე, რომ თუ ამ ორ საოცარ საშუალებას ჯერ არ იყენებთ, აუცილებლად სცადეთ, გამოგადგებათ
ორი სიტყვით იმაზე, თუ რას წარმოადგენს WCF სერვისების ტრასირება და როგორ მოვახდინოთ წარმადობის ანალიზი.
Read more…
ამ რამდენიმე დღის წინ, ჩემი ერთი ძველი მეგობარი და კოლეგა შემომეხმიანა (თქვენ ალბათ იცით მისი პროექტი jok.ge) და ერთი მარტივი კითხვა დამისვა: “გადახვედი ცხრილში GUID გასაღებებზე?” მე ამაყად ვუპასუხე რომ გადავედი, შემდეგი კითხვა ამ ველის მნიშვნელობების გენერაციას ეხებოდა “როგორ აგენერირებ, NEWID()-თი?” ჩემი პასუხი კვლავ დადებითი იყო. ამის შემდეგ ჩემმა ძველმა მეგობარმა და კოლეგამ ბოროტად ჩაიხითხითა, Primary Key ხომ კლასტერიზებული ინდექსიაო, შესაბამისად სორტირებულიო და ვინაიდან NEWID არასორტირებული სახით აბრუნებს რეზულტატს (ანუ NEWID()-ს ყოველი შემდგომი გამოძახება შეიძლება წინაზე მცირე რეზულტატს აბრუნებდეს) ეს იმას ნიშნავს რომ საცოდავი სერვერი იძულებულია ყველა INSERT-ისას ზევით-ქვევით ირბინოს რათა კლასტერიზებული ინდექსის თანმიმდევრობა შეინარჩუნოს. შედეგად იზრდება INSERT-ის დრო და ინდექსის ფაგმენტაცია. გამოსავალი? გამოსავალი NEWID()-ს ნაცვლად NEWSEQUENTIALID()-ს გამოყენებაშია.
Read more…
დიდი შინაგანი ბრძოლების და უამრავი წაკითხული, გადამუშავებული და გატესტილი ვარიანტის შემდეგ, როგორც იქნა გავრისკე და ძველი, კეთილი ADO.NET-ის გამოყენებიდან Entity Framework-ის გამოყენებაზე გადავედი. პრინციპში უნდა ითქვას რომ საკმაოდ წარმატებითაც და ბევრად უფრო ბედნიერად ვგრძნობ თავს, CRUD ოპერაციებისთვის რომ აღარ ვწერ პროცედურებს SQL სერვერის მხარეს და მერე ამ ყველაფერზე ADO.NET-ით არ ვჩალიჩობ. მოკლედ მარტივად რო ვთქვათ ORM-ი საკმაოდ ეფექტური რამე აღმოჩნდა, მითუმეტეს linq-სთან კომბინაციაში. მაგრამ, როგორც ყოველთვის, აქაც არსებობს ბევრი პატარა მაგრამ…
ბოლო დღეებში უშედეგოდ ვიბრძოდი, რომ ცხრილში, რომლის Primary Key-ც uniqueidentifier-ის ტიპის მნიშვნელობაა, C#-ის კოდის მხრიდან, ცხადი სახით Guid.New()-ს გამოძახების გარეშე მიმეღწია ავტო-გენერირებადი მნიშვნელობების ჩაწერისთვის. საბოლოოდ ბრძოლამ შედეგი გამოიღო, მაგრამ გადაწყვეტილება იმდენად უშნოა, რომ ისევ Guid.New()-ს გამოყენება მომიწევს.
Read more…
კითხვა ჩინებული რამ გახლავთ. მითუმეტეს თუ ბავშვობიდან მიჩვეული ხართ და თუ ჩემსავით ისეთ სფეროში ტრიალებთ, სადაც ყოველ დღე რაღაც ახალი იდეა და ტექნოლოგია გამოდის. თუმცა არც ესაა აუცილებელი, შეიძლება უბრალოდ მხატვრული ლიტერატურის დიდი მოყვარული ხართ და ძილის ინ 4-5 თავი თუ არ წაიკითხეთ არ დაგეძინებათ
ასეა თუ ისე, შევთანხმდეთ ერთ საკითხზე: თქვენ, ისევე როგორც მე, გიყვართ/გიწევთ/გჭირდებათ დიდი რაოდენობით წიგნების კითხვა, ყველა წიგნს ვერ/არ იყიდით, ზოგი აქ არ იყიდება, ზოგის ჩამოტანა ძვირია, ხოლო ელექტრონული ვერსიების კომპიუტერის ეკრანზე კითხვა დღითი დღე აუარესებს თქვენს მხედველობას… გამოსავალი არის და მას Amazon Kindle ეწოდება!
Read more…
უკვე აღარ მახსოვს ბოლოს როდის დავწერე ბლოგზე რამე. მგონი სიცხე რო მქონდა 3 თვის წინ მაშინ
ეგ იქეთ იყოს და ამ მოუცლელობის და გაწამაწიის ჟამს, როგორც ჭეშმარიტ geek-ს შეეფერება, მაინც გამოვნახე დრო რომ რაღაც ახალი გამეკეთებინა. გამომდინარე იქედან, რომ შედეგით ძალიან კმაყოფილი ვარ, გადავწყვიტე თქვენც გაგიზიაროთ
მაშ ასე, სანამ საქმეზე გადავიდოდეთ, მცირედი შესავალი: გაგიკვირდებათ და სახლში კომპიუტერი მაქვს
ჩვეულებრივი, დიდი ქეისით, DVD ჩამწერით, თითქმის ტერაბაიტი ვინჩესტერებით და რაღათქმაუნდა ხმაურიანი ქულერით
იყო დრო, როცა ჩემი კომპიუტერი პრაქტიკულად არ ითიშებოდა, მაგრამ მას მერე რაც ჩემს ცხოვრებაში ნოუთბუქი გაჩნდა, ჩემი და კომპიუტერის ურთიერთობა ნელ-ნელა გაცივდა და ბოლოს საერთოდ გავუცხოვდით ერთმანეთის მიმართ
Read more…
დიდი ხანი არ არის, რაც ჩემი ძველი მობილური ტელეფონი ისე გაფუჭდა, რომ მის გაკეთებას აზრი აღარ ჰქონდა და ამიტომ ახლის ყიდვა მომიწია. მიუხედავად არსებული iPhone-მანიისა, არჩევანი მაინც Windows Mobile-ზე შევაჩერე. ბევრი ქექვის, შედარებისა და ფიქრის შემდეგ, ჩემი რჩეული Samsung Omnia 8GB გახდა.
Samsung-ის სასარგებლოდ უნდა ითქვას, რომ ტელეფონი მართლაც რომ მშვენიერია და პრაქტიკულად ყველა ასპექტში მომწონს. ერთადერთი რაც არ მომწონს მისი მუსიკალური შესაძლებლობებია, რაც Sony Ericsson-ის W სერიის ტელეფონის რამდენიმე წლიანი გამოყენების შემდეგ გასაკვირი არც არის.
Read more…
და კიდევ ერთხელ სტანდარტები!
ვიცი რომ არავის არ გვიყვარს, ისიც ვიცი რომ თითოეულმა ჩვენთაგანმა აღმოაჩინა კოდის წერის ყველაზე ოპტიმალური და სწორი ვარიანტი, ფორმატირების ყველაზე მოსახერხებელი სტრუქტურა. ისიც ვიცი რომ თითოეული ჩვენთაგანის მიერ დაწერილი კოდი არ საჭიროებს კომენტირებას, რადგანაც ის თავისთავადაა ერთი დიდი კომენტარი, რადგანაც საოცრად გასაგები და ბუნებრივია. ეს ყველაფერი ვიცი, განა მეც ერთ-ერთი თქვენთაგანი არ ვარ?
მაშინ რატომ ვდარდობ? ვდარდობ იმიტომ, რომ როცა საკუთარი კოდის გარდა სხვის კოდთან მუშაობა გიწევს და როცა ეს “სხვა” არა ერთი, არმედ რამოდენიმე ადამიანია, ხვდები რომ ამდენი გენიოსის მიერ დაწერილი კოდის გასარჩევად უბრალოდ რესურსი აღარ გყოფნის
Read more…
რაც უფრო გადის დრო, ვრწმუნდები რომ Google ნელ-ნელა უახლოვდება იმ კომპანიას, რომელიც არა მხოლოდ ფულს აკეთებს ხალხზე, არამედ ხალხსაც ეხმარება იმის გაკეთებაში, რაც ამ უკანასკნელს სურს და რაოდენ საოცრადაც არ უნდა ჟღერდეს, ეს გამოსდის, თან არაჩვეულებრივად
ალბათ დაახლოებით 1,5-2 წლის წინ რომ დამეწერა ის, რის დაწერასაც ახლა ვაპირებ, ბევრისათვის ახალი იქნებოდა, მაგრამ დღეს დარწმუნებული ვარ უამრავი ადამიანი იცნობს Google Applications სერვისს. საქმე იმაშია, რომ მე რატომღაც მთელი ეს პერიოდი ვერ ვახერხებდი თავი მომება და ჩავჯდომოდი ამ საკითხს, შესაბამისად, ჩემი ცოდნაც 0-ზე იყო და მხოლოდ “იცი რა მაგარია?” ტიპის შეფასებების მოსმენით შემოიფარგლებოდა. ბოლო ხანებში კი რაღაც შემიჩნდა და უფრო კარგად გავეცანი ყველაფერს. შედეგად ახლა ამას ვწერ
Read more…
Tags:
თუ ერთხელ მაინც არ შეგქმნიათ ბროუზერებს შორის თავსებადობის პრობლემა, ორი ვარიანტია: ან თქვენ ვებთან შეხება არ გაქვთ, ან თქვენ ლელა კაკულია გმფარველობთ
მოკლედ ყველასთვის ნაცნობია თავის ტკივილი, სახელად “ბროუზერებს შორის თავსებადობა” და ამ პრობლემასთან ბრძოლაში გატარებული უამრავ საათიც კარგად გახსოვთ… მაგრამ სხვადასხვა ბროუზერებს შორის თავსებადობაზე რა უნდა ილაპარაკო, როცა IE-ს ვერსიებს შორისაც კი განსხვავებულ რენდერინგს ვხვდებით და რეალურად ერთი და იგივე CSS-ით გაფორმებული HTML სხვადასხვაგვარად გამოიყურება.
Read more…
აი დადგა ნანატრი მომენტი, როცა ჩვენ ბოლოს და ბოლოს უნდა გავარკვიოთ რა არის და ვინ იმალება ამ მაგიური სეიტყვა “სერვერი”-ს მიღმა!
ალბათ ძალიან არ შევცდები, თუ ვიტყვი, რომ სერვერი, ეწოდება კომპიუტერს, რომელიც ჩართულია ქსელში (არა აუცილებლად ინტერნეტში) და მუდმივი მოსმენის რეჟიმშია. მოსმენის რეჟიმში ყოფნა იმას ნიშნავს, რომ სერვერი “ელოდება” მოთხოვნებს დანარჩენი სამყაროდან, ანუ კლიენტებისაგან და მოსულ მოთხოვნებზე შესაბამის პასუხს სცემს. რეალურად სერვერიც უბრალო კომპიუტერია (ნუ თუ შეიძლება ნახევარმილიონიან სერვერს ჩვეულებრივი ეწოდოს
) რომელიც კონკრეტული ამოცანის შესრულებაზეა ორიენტირებული. სერვერები რომ რაღაც მითიური კომპიუტერები არ გეგონოთ, გეტყვით რომ სერვერის შეძენა შეიძლება დაწყებული 2000$-დან, დამთავრებული რამდენი ათასი$-იც გაგიხარდებათ, იმდენით
ცხადია ფასები ცოტა არაკორექტულია და შეიძლება 1000$-დ იყიდოთ, მაგრამ ამ შემთხვევაში ეს გადამწყვეტი არ არის
სერვერები, გამომდინარე თავისი დატვირთვიდან, სხვადასხვა კომპლექტაციის არსებობს. ზოგს ოპერატიული მეხსიერება ჭირდება ბევრი, რეალურ დროში მონაცემებთან სამუშაოდ, ზოგს მძლავრი პროცესორ(ებ)ი, დიდი გათვლების გასაკეთებლად, ზოგსაც დიდი მოცულობის მყარი დისკი, ინფორმაციის შესანახად.
Read more…