ჯავასკრიპტის ხრიკები

ფოტო jstips-დან

jstips-header-blog

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

1. როგორ ჩაწერდით false-ს ორი სიმბოლოთი? true-ს?

!1 false, !0 true

2. როგორ შეამცირებდით ამ კოდს?

if (a) b();

ამათ?

if (!a) b();

if (a) {
b = 1;
c = 2;
}

&& და || ჯავასკრიპტშიც short-circuit ოპერატორებია, ანუ გამოსახულების შესრულებისას როგორც კი ცხადი გახდება შედეგი, შემდეგ აღარ გრძელდება დანარჩენი ნაწილების ევალუაცია, ფუნქციების გამოძახება, ა.შ. ამიტო if-ის მაგივრად შეგვიძლია დავწეროთ a&&b().
მეორე შემთხვევაში იქნება a||b().
მესამე შემთხვევაში დიდი არაფერი ხდება, უბრალოდ მინიმიზატორები ხშრად ერთ ბრძანებად აერთიანებენ ყველაფერს და მძიმით გამოყოფენ. მერე ბლოკების გაკეთება აღარ უწევთ.
if (a) b=1, c=2

3. ყველაზე მოკლედ როგორ შეამოწმებთ ასეთ რამეს ცვლადისთვის: თუ ცვლადი არის undefined, 0, false, “”, null ან NaN – ყველა ამ შემთხვევაში დააბრუნოს false, წინააღმდეგ შემთხვევაში true.
(ეს მინიმიზატორში არ იყო, უბრალოდ კოდში ხშირად კარგად გამომდგომია).

bool ტიპად გადაქცევით: result = !!a

4. როგორ შეამცირებდით ამ ნაწილს? ვთქვათ რაღაც arg-ის ვალიდაციას აკეთებთ და თუ არაა განსაზღვრული, default მნიშვნელობას ანიჭებთ. ესეც არ არის მინიმიზატორში.

var options = (arg) ? arg : [];

ჯავასკრიპტში && და || ცოტა არასტანდარტულად იქცევიან – boolean-ს კი არ აბრუნებენ შედეგად, არამედ იმ ოპერანდს, რომელიც გამოსახულების ბედს გადაწყვეტს.
მაგალითად 1 && 0 && false დააბრუნებს 0-ს.

შესაბამისად ის გამოსახულება უფრო ლამაზად შეგვიძლია ასე ჩავწეროთ

var options = arg || [];

4. ამას მინიმიზატორი არ აკეთებს, მაგრამ, ვთქვათ რიცხვის ქვემოთ დამრგვალება გვინდა (ნოლისკენ). როგორი იქნებოდა მაგის ყველაზე მოკლე და სწრაფი ვარიანტი?

მოდი ჯერ პირდაპირ დავწერ. ქვემოთ დამრგვალებისთვის არსებობს ფუნქცია Math.floor(), თუმცა ეს სტანდარტულად ამრგვალებს negative infinity-ისკენ. ანუ 12.6 გადავა 12-ში, მაგრამ -12.6 გადავა -13-ში. ამ კითხვის პასუხში ეგ შემთხვევა არ გაითვალისწინება (და ისედაც მე პირადად უფრო ხშრად ნოლისკენ დამრგვალება უფრო მჭირდება, რომ -12.6 გახდეს -12, რადგან ნიშანი სხვა დატვირთვით მაქვს ხოლმე).
ჰოდა გამოვიდა შემდეგი:

foo > 0 ? Math.floor(foo) : Math.ceil(foo)

თუ არ ვართ დარწუნებული რომ foo რიცხვი იქნება და NaN-ის მიღება არ გვინდა, მაშინ შემოწმებების დამატება მოგვიწევს:

typeof foo === 'number' && !isNaN(foo) && foo !== Infinity
? foo > 0 ? Math.floor(foo) : Math.ceil(foo) : 0;

ჰოდა ახლა ეს ყველაფერი ჩავწეროთ ორი სიმბოლოთი 🙂 foo-ს გარდა ცხადია

ბინარული ოპერაციები დაგვიჭრდება აქ, ორი ვარიანტი გვაქვს – ორმაგი ბინარული უარყოფა ან ბინარული ‘ან’ ნულთან.
~~foo
foo|0

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

5. 1000000, 0.0000023 და სხვა ბევრ ნულიანი რიცხვების დაპატარავება

1e6, 23e-7 – ნულების თვლა ცუდია 😀

ხატვა ვექტორებით და ყველაზე მოსახერხებელი პროგრამა

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

cupcake

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

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

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

pen_tool

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

vector_raster

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

რასაც ეგ აკეთებს ვიდეოში ჩრდილებისთვის ოვალური გრადაციებით (წრიული არა, ოვალური) და ლეველებით, ფოტოშოპში და ილუსტრატორში იყო შეუძლებელი. ახლა მგონი დაამატეს ილუსტრატორში, მაგრამ ჩემთვის ძველებურად მოუხერხებელია მაგის გამოყენება მოკლე დროში. კაი ხანი ვეძებე პროგრამა რაც ვიდეოშია – როგორც ჩანს იყო ეგეთი – Xara Xtreme ლინუქსისთვის. ვინდოუსისთვის არსებობს Xara Photo and Graphic designer

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

pearl

მერე იყო კიდევ რამდენიმე ნახატი, მაგრამ ბევრი დრო ვეღარ გამოვნახე მაგ სქილების დასახვეწად:

chocolate

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

dragon

ისე, მაგ პერიოდში წარმოდგენა არ მქონდა როგორ წერდნენ პროგრამისტები ასეთ პროგრამებს. მერე მაგისტრატურაზე გავიცანი ერთ-ერთი ძალიან ძალიან მაგარი ლექტორი – გოდერძი ფრუიძე, რომელიც ამ წიგნით გვიკითხავდა კურსს – Computer Graphics and Geometric Modelling: Implementation & Algorithms

მართალია, ჩემი სიზარმაცის და მოუცლელობის შედეგად მხოლოდ ბეზიეს წირები მახსოვს, მაგრამ ზუსტად ეგ ბეზიეს წირების ალგორითმია თურმე, რითიც ვხატავთ ამ ფორმებს.

bezier

რატომ (არ) შესტკივათ ადამიანებს გული ერთმანეთზე

პოსტი პროგრამირებას არ ეხება და ახალიც არაფერი წერია შიგნით : )

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

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

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

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

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

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

რუსული ვირუსია და ყურადღება უნდა მივაქციოთ

Facebook-ზე ბოლო დროს ძალიან გავრცელდა უკვე და თან სულ ქართულ გვერდებზე და ქართველ მომხმარებლებზეა მომართული ეს ვირუსი. მხვდება გაზიარებული ბმულები, რომელზე დაჭერითაც ნამდვილი საიტის მაგივრად გადადის archiveshare.net/… ასეთ მისამართზე. თქვენც შეგხვდებოდათ ალბათ.

თუ თქვენ გააზიარეთ ლინკი და facebook-ზე მის ქვეშ სხვა დომენი დაიწერა, ეს ნიშნავს რომ თქვენს ბრაუზერში Webarchive-ის პლაგინია ჩაწერილი და ის ცვლის ნამდვილ მისამართს სხვა მისამართით. დარწმუნებული ვარ რომ მომხმარებლების 99%-ისთვის ეს განზრახ არ ხდება და ამიტომ მინდა რომ ყურადღება მივაქციოთ.
მაგალითად ამ სურათზე:
webarchive.pro virus

სხვადასხვა სახელით შეიძლება შეგხვდეთ, უმეტესად რუსული .ru დაბოლოებებით.
როცა სხვა ადამიანი ცდილობს შემდეგ თქვენს ლინკზე გადასვლას, გამოდის ასეთი გვერდი:
webarchive.pro virus

ყურადღება მიაქციეთ ზევით ლინკის მისამართს.
ამის გამო ბევრს მათი facebook-ის გვერდიც აქვს მონიშნული –
https://www.facebook.com/ge.archiveshare.net
მე მაინც მგონია რომ მხოლოდ ფანჯრის დასახურად დააჭირეს like-ს ამ გაურკვეველი წარმომავლობის გვერდზე და თუ თქვენც ასე მოიქეცით, გირჩევთ გადახვიდეთ მაგ ბმულზე და unlike გააკეთოთ, რადგან მაგ გვერდზე გაზიარებული ყველა ლინკი ისევ ვირუსს შეიცავს.

როცა მომხმარებელი ხურავს იმ პატარა ფანჯარას, გადავდივართ ასეთ გვერდზე, რომელიც ბრაუზერის extention-ის დაინსტალირებას გვაიძულებს.
webarchive.pro virus

ყველანაირი მცდელობა რომ შავი ეკრანი მოვაცილოთ და ტექსტი წავიკითხოთ ისევ პლაგინის ინსტალაციას ცდილობს. მაგალითად chrome ბრაუზერი ასე გეკითხებათ ინსტალაციის ნებართვას და თან წერს თუ რა უფლებებს ითხოვს პლაგინი:
Read and change all your data on the websites you visit (შეუძლია წაიკითხოს და შეცვალოს ყველანაირი ინფორმაცია საიტზე რასაც გახსნით)
Manage your apps, extensions, and themes (შეუძლია მართოს თქვენი ბრაუზერის პროგრამები, პლაგინები და თემები)
Communicate with cooperating websites (შეუძლია ინფორმაცია გაცვალოს თანამშრომელ საიტებთან)
!!!!!!!!!!!

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

webarchive.pro virus

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

როგორც თავის საიტზე წერენ, webarchive.pro არის არქივი, სადაც ინახება ყველა ის გვერდი რომლიც გააზიარეთ. ამასთან, აქვთ გამოქვეყნებული მომხმარებლის უფლებების გვერდი, რომლის მიხედვით თქვენი დათვალიერებული გვერდების და თქვენი კომპიუტერის შესახებ ანონიმურად იგზავნება სტატისტიკა. წერენ, რომ პროგრამამ შეიძლება თქვენს დაუკითხავად დამატებით დააინსტალიროს საჭირო რაღაცები, ჩაგისვათ უსაზღვრო რაოდენობის რეკლამები და ბანერები საიტებზე, ა.შ. და პლაგინის დაინსტალირებით ამ ყველაფერს ეთანხმებით ფაქტიურად (ალბათ იურიდიული ძალაც აქვს).
სრულად შეგიძლიათ წაიკითხოთ: http://archiveshare.net/ext/eula
ეს სურათი მაგ გვერდის ფრაგმენტია.

webarchive.pro virus

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

ჩემი ზაფხულის საკითხავი 2015

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


Surely You’re Joking, Mr. Feynman!

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

Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future

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

თვითონ წიგნი ძალიან დიდ მოტივაციას იძლევა ზოგადად. ბევრი ისტორიაა მოყვანილი SpaceX, Tesla-სა და SolarCity კომპანიების შექმნის და განვითარების შესახებ – ჩავარდნები, გამართლებები და სირთულეების გადალახვის ამბები. განსაკუთრებით შთამბეჭდავია SpaceX-ის რაკეტის აწყობა და გაშვება დიდი ტექნოლოგიური თუ მენეჯმენტური ნახტომებით. ელექტრომობილი ხომ საერთოდ…
სათავგადასავლო წიგნს არაფრით ჩამოუვარდება. პროგრამისტებს და ელექტრონიკებს განსაკუთრებით მოეწონებათ ჩემი აზრით, მენეჯერებსაც.

Zero to One: Notes on Startups, or How to Build the Future

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

fahrenheit 451 Fahrenheit 451 (სპოილერებით)

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

why-zebras-dont-get-ulcers-big Why Zebras Don’t Get Ulcers

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

creativity incCreativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration

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

ios8 fundamentals iOS 8 Programming Fundamentals with Swift

წინა პოსტებში ვახსენე რომ ბოლო პერიოდი iOS-ზე და მაგათ ახალ პროგრამირების ენაზე ვმუშაობდი. Apple-ს გამოქვეყნებული აქვს წიგნი The Swift Programming Language რომელშიც ენა საფუძვლიანად არის აღწერილი, თუმცა მაგის წაკითხვის მერე ძალიან მაკლდა best practices ნაწილი და მაინც ბევრს ვწვალობდი კოდის ნორმალურ სახემდე მისაყვანად. ზოგადად ასე დროის დაკარგვა არ მიყვარს და იმიტომ ვიწყებ ხოლმე ენის სწავლას წიგნებით. აი Matt Neuburg წიგნები სულ სხვა თემაა. ის რეალური მაგალითებით და საკუთარი გამოცდილებით ავსებს მათ. ამიტომ გაცილებით შემიმსუბუქა ბევრი რამ. ამ ენას ვინც იწყებს, მეც მის წიგნებს გირჩევდით.

programming_ios_8_deep_dive Programming iOS 8: Dive Deep into Views, View Controllers, and Frameworks

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