Friday, April 6, 2018

TEDxKazimierz - organization which gives me a lot

Firstly, I want to mention that as soon as I arrived in Poland there was a feeling how can I adapt the situation ? Although, I think that I am sociable and communicable person, it is not so easy to adapt new country and new culture even there is big and long term friendship between Georgia and Poland. Adaptation was easier than I expected. 


After couple of months I saw an event on Facebook that in Kraków it was going to held TedXKazimerz Salon. During my spare time I watch TedX and I can say that more or less I know the idea of it. But that’s not all. I also saw that there was an opportunity to be volunteer. It was great chance for me to meet new people and new friends. I communicated one of the organizers, Bogusia, and I joined the team of volunteers. Since that time, I have taken part in three Salons, I met dozens of people and also improve my skills in different fields.


As I mentioned in the beginning, TedXKazimerz is the organization which unites lots of young people not only from Poland. This is the thing what I like. You have chance to share your ideas with different people, listen their arguments and this makes you better, this grows you professionally, this helps you to look things in other way and these kind of events are building new ideas and new chances in our life. Everything is based on respect and appreciation. 

Sunday, March 4, 2018

TEDxKazimierz Salons in Krakow

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

რამდენიმე წელია უკვე აქტიურად ვარ ამ საიტის მომხმარებელი, თუმცა იმას ვერასდროს წარმოვიდგენდი, რომ რაიმე სახით TEDx-ის გუნდში აღმოვჩნდებოდი. მოკლედ TEDxKazimierz არის ორგანიზაცია, რომელსაც აქვს ოფიციალური უფლება TEDx-დან რომ ჩაატაროს Salon-ები.  2018-ში უკვე ორი სალონი იყო, რომელსაც "გამახურებელი" ხასიათი უფრო ჰქონდა, რადგან წინ უფრო ბევრი საინტერესო სალონი გველის.

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

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

TEDxKazimierz-ის ოფიციალური Facebook გვერდი
TEDxKazimierz-ის ოფიციალური ვებ გვერდი

Sunday, February 11, 2018

ნუ იქნები პროკრასტინატორი ანუ ხვალემენი

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


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

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

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

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

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

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



Monday, June 26, 2017

@OneToMany ანოტაცია

ვაგრძელებთ ისევ Hibernate-ს ანოტაციების განხილვას და ამ პოსტში განვიხილოთ @OneToMany ანოტაცია. Hibernate-ში @OneToMany ანოტაცია განსაზღვრავს ერთი ბევრთან კავშირს. მაგალითად ერთ პიროვნებას აქვს ბევრი ტელეფონის ნომერი. თუმცა ამ ანოტაციასთან ერთად გამოიყენება @JoinColumn ანოტაცია, რომელიც განსაზღვრავს იმას, რომ ეს კონკრეტული entity (რომელშიც ეს ანოტაცია წერია) არის კავშირის მფლობელი (owner). ხოლო ატრიბუტი, mappedBy მიუთითებს იმაზე, რომ entity ამ მხარეში არის კავშირის უკუგება, ანუ სხვა სიტყვებით რომ ვთქვათ, ეს entity არ არის კავშირის „მფლობელი“ (owner). ამ კავშირის დროს გვაქვს კიდევ ერთი fetch ატრიბუტი, რომელიც განსაზღვრავს კავშირის დამყარებას როგორ ჩაიტვირთოს დაკავშირებული ობიექტი. მაგალითად, თუ Person კლასს აქვს PhoneNumber-ების სია თავის ველად, და fetch არის default, ანუ Lazy, მაშინ Person-ების გამოტანისას არ წამოყვება ტელეფონის ნომრები და ეს წამოღება მხოლოდ მაშინ მოხდება, როცა უკვე მივმართავთ ტელეფონის ნომრებს. ვნახოთ რა ხდება ამ დროს SQL-ში. 



Main-ში უბრალოდ ვეძებთ პიროვნებას, რომლის ID არის 1 და ვბეჭდავთ მის ტელეფონის ნომრებს (ამ შემთხვევაში მთავარი ისაა, რომ ამ ველს მივმართავთ)
ახლა ვნახოთ რა Query გაეშვა მონაცემთა ბაზაზე 
როგორც ხედავთ გაეშვა ორი Query: ერთ პიროვნების წამოღება და მეორე პიროვნების მიხედვით ტელეფონის ნომრების წამოღება. ახლა ვნახოთ რა მოხდება თუ fetch-ს გავხდით EAGER-ს.
როგორც სურათიდან ჩანს, ორი Query-ის მაგივრად გაეშვა ერთი და ტელეფონების ნომრები წამოიღო პიროვნების წამოღებასთან ერთად. ანუ ეს Query შეიცავს დაკავშირების ბრძანებასაც LEFT OUTER JOIN





Wednesday, June 21, 2017

მე, LUXOFT და კრაკოვი


დღეს, კრაკოვის დროით ჯერ კიდევ ოთხშაბათია, 2017 წლის 21 ივნისი. გუშინ ზუსტად 1 თვე გავიდა მას შემდეგ რაც კრაკოვში სრულიად მარტო ვცხოვრობ. არ დავიწყებ იმის მოყოლას თუ როგორ მოვხვდი აქ. 1 ივნისს დავიწყე ახალი სამსახური და აგერ უკვე 21-ე დღე დასრულდა რაც აქ ვარ. 20 მაისიდან 1 ივნისამდე პერიოდი ბინის ძებნას და ბიუროკრატიის მოგვარებასთან ერთად, ქალაქის დათვალიერებას და კარგად გაცნობას მოვანდობე. ძალიან კარგი პერიოდი იყო და ნაყოფიერი. ახალი სამსახურის დაწყებასთან ერთად, გაჩნდა ახალი „თავის ტკივილები“, რა თქმა უნდა, კარგი გაგებით. პირველი 2 კვირა დავალებები არ მქონია და დრო ნელა გადიოდა. ბოლო 2 დღეა პატარა დავალება მომცეს. დავალება, რომელიც განსაკუთრებულ ნიჭს და უნარს არ მოითხოვს. უფრო დიდ ყურადღებას მოითხოვდა და მეც რამდენიმეჯერ გადავამოწმე და ისე გავაკეთე. თუმცა ახალ, მომავალ საქმესთან გაცნობასთან ერთად გამოჩნდა, რომ სასწავლი და დასახვეწი ბევრი რამე მაქვს. რაც არ უნდა ბანალურად ჟღერდეს, ამისთვის დრო ცოტაა. დიახ, არ მეშლება. დრო ცოტაა, ძალიან ცოტა. დღეს დავფიქრდი გარკვეულ გლობალურ და გრძელვადიან გეგმებზე, რომლისთვისაც აუცილებელია დროის კარგად გადანაწილება. უკვე ძალიან დიდიხანია Daily Scheduling-ს ვიყენებ, და ასევე ყოველწლიურად 10 მნიშვნელოვან გეგმას ვისახავ ხოლმე. თუმცა მათ გადაფასება რამდენიმეჯერ მიწევს ხოლმე წლის განმავლობაში. რაც შეეხება ჩემს ახალ თანამშრომლებს და ახალ გუნდს, მათი ძალიან მადლობელი ვარ. ისინი პირველივე წუთებიდან გამოირჩეოდნენ მეგობრული დამოკიდებულებით და შეიძლება ითქვას, რომ მათ მომცეს შანსი, ჩემი დიდი ხნის ნატვრა, სამოყვარულო ფეხბურთში დაბრუნება, ამესრულებინა. ჩვენი კომპანიის გუნდი, პოლონეთს ბიზნეს ლიგას თამაშობს და რომ ვთხოვე მეც მინდა თამაში მეთქი, ყოველგვარი გასინჯვის გარეშე, დაუშვეს გამონაკლისი და მეორე დღესვე თამაში მათამაშეს. ახლა უკვე, ძირითადის მოთამაშედ მოვიაზრები. დიახ, რაც არ უნდა გასაკვირი იყოს, სწორედ ეს ხალხი მიდგას გვერდზე და არა მარტო მე, ყველა ახალს, რომ თავი მარტოდ არ ვიგრძნოთ. რაც არ უნდა გასაკვირი იყოს, ისინი ზოგიერთ, თუ უმრავლესობა ქართველ „მეგობრებზე“ ყურადღებიანები არიან. ახლა უკვე დროა, ავუწყო ფეხი სწრაფ განვითარებას და სპორტულ და ჯანსაღ ცხოვრების სტილთან ერთად, კარიერულ წინსვლაზე და პერსონალურ განვითარებაზე ვიფიქრო, რომლისთვისაც დრო ძალიან ცოტა გვაქვს ყველას, როგორც უკვე აღვნიშნე. დიახ, ეს ქვეყანა ძალიან მომწონდა, მაგრამ როცა პირადად გამოვცადე აქ ცხოვრება, უფრო მომწონს და მიყვარს თავისი ხალხით და თავისი ღირებულებებით. 

Tuesday, June 20, 2017

@Embedded ანოტაცია

ვაგრძელებთ წინა პოსტში განხილულ თემატიკას და ამ პოსტში გაგაცნობთ Hibernate-ს @Embeddable და @Embedded ანოტაციებს, რომლებიც საქმეს ერთად აკეთებენ. სანამ უშუალოდ მაგალითზე გადავიდოდე, მოვიყვან შემთხვევას როდის შეიძლება გამოვიყენოთ ეს ანოტაციები. მაგალითად, გვაქვს Person კლასი შესაბამისი ცხრილით მონაცემთა ბაზაში. დავუშვათ, რომ ამ ცხრილში ინახება ადამიანის მისამართი რამდენიმე ველის სახით. მაგალითად: საფოსტო კოდი, ქალაქი, ქვეყანა, ქუჩა. ცხადია, რომ ოთხი სხვადასხვა ველით წარმოდგენა არც ისე დიდი პრობლემაა, მაგრამ რას იტყოდით, ამ ველების ერთ Address ობიექტში "გახვევაზე" ? ანუ მონაცემთა ბაზაში ასე ცალ-ცალკე ველად იქნება, მაგრამ ჯავას კოდში ამ ოთხ ველზე ვიმოქმედებთ როგორც Address კლასზე. შემდეგი სურათები გვიჩვენებს სწორედ ამ მაგალითს.  ჩვენ აღვწერთ Address კლასს შესაბამისი ველებით და ამ კლასს თავზე დავაწერთ @Embeddable ანოტაციას. შემდეგ Address კლასის ტიპის ველი გვექნება Person კლასში და ამ ველს დავაწერთ @Embedded ანოტაციას.


Friday, June 16, 2017

@MappedSuperclass ანოტაცია

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

მაშ ასე, მოდით დავიწყოთ @MappedSuperclass-ით. თითქმის ყველა აპლიკაციაში, რომელიც იყენებს მონაცემთა ბაზებს, ყველა ცხრილში გვაქვს ისეთი ველები, რომლებიც არის საერთო. მაგალითად, პირადი გამოცდილებიდან რომ გითხრათ, თითქმის ყველა პროექტში, ყველა ცხრილში მქონდა შემდეგი სამი ველი : CREATE_DATE, UPDATE_DATE, USER_ID. ამ შემთხვევაში თავი დავანებოთ იმას, რომ ყველა ცხრილს აქვს Primary Key და სიმარტივისთვის შეგვიძლია ყველა ცხრილში მას ID დავარქვათ და გამოვიყენოთ ასევე ზემოთ ხსენებული ანოტაცია. მოკლედ, თუ თქვენც გქონიათ ასეთი შემთხვევა, ალბათ ძალიან მოგბეზრებიათ თითოეული ცხრილის შესაბამის Entity-ში ამ სამი ველის აღწერა (ჩაკოპირება). ჯავა და კერძოდ Hibernate ამ მოსაბეზრებელი საქმის მოგვარებაში გვეხმარება @MappedSuperclass ანოტაციით. იდეა მდგომარეობს იმაში, რომ აღვწერთ კლასს, რომელშიც აღვწერთ საერთო ველებს და ამ კლასს დავაწერთ ზემოთ ხსენებულ ანოტაციას. შემდეგ ყველა Entity-ის გავხდით ზემოთ ხსენებული კლასის მემკვიდრეს. მოდით ვნახოთ მაგალითზე. საერთო ველების მქონე კლასს მე CommonFields-ს დავარქვი. ვთქვათ მაქვს ორი Entity: Person და Product.



აქვე დავაანონსებ, რომ შემდეგ პოსტსაც Hibernate-ის ანოტაციაზე შემოგთავაზებთ.