Маленька історія перекладу великої книги про «Природу Коду»
Вітаю друзі! Мене звуть Андрій і сьогодні мені випала гарна можливість розкрити перед вами свій досвід або точніше ретроспективний огляд перекладу чудової книги Деніеля Шиффмана про симуляцію природних процесів під назвою The Nature Of Code. Перекладу, що від свого початку та до завершення зайняв цілий рік. Можна сказати, це був незапланований челендж у 365 стрімких днів, але з одним важливим нюансом.
Проєкт був розпочатий у домашніх умовах, з легкими капцями на босу ногу, а завершився вже у лавах ЗСУ з міцно затягнутими берцями. Тож свій впевнений слід на мені він точно залишив. Та про все по черзі.
Спершу зосередимось на самій книзі, яка має окрему історію у понад 10 років та чимало прихильників серед творчого комʼюніті. Однією з її істотних особливостей є те, що окрім паперової версії, книга доступна онлайн. І це чудово, навіть дозволю собі сказати прекрасно.
З цього також випливає інша суттєва перевага: онлайн-версія містить інтерактивні приклади, що збагачує її наочність та покращує практичний досвід. А ще книга написана дружньою мовою з доволі милими зображеннями. І, звісно ж, варто сказати про цікавий та корисний матеріал, яким насичена «Природа Коду» — та це ж справжня блискуча скарбничка з дорогоцінностями. Доступна, практична, коштовна. Клітинні автомати, випадкові блукання, групова поведінка автономних агентів,
Мені було приємно спостерігати, як з виходом оновленої версії книги творчі люди хизувалися своїми паперовими екземплярами у соціальних мережах. Розгорнуту історію можна почитати у самій книзі, як і дізнатися про чималу кількість людей, що доклали свій час та зусилля до її розвитку.
So What?
А тепер — навіщо? Навіщо робити цей переклад, адже можна прочитати і в оригіналі. Тим паче тим, хто пише код, так чи інакше потрібно знати англійську. А ще переклад не передасть повноти оригінального шарму, а ще ж будуть якісь помилки, а ще, а ще, а ще... Та і нехай. Існує чимало сумнівних причин чогось не робити і така ж кількість, чому це було б добре зробити. Наприклад, переклад дає змогу легше знайомитись з матеріалом тим, кому зручно читати рідною мовою, поширювати корисну тематику серед молоді на рідних теренах, загалом дозволяє формувати корисний пласт інформації і не тільки. Тому тут чашу терезів схилила особиста потреба, що згодом переросла у внутрішню необхідність.
З середини
Я колись був дуже зрадів, коли натрапив на першу онлайн-версію книги про «Природу Коду», але так і не зміг її дочитати, бо на це витрачалося більше часу, ніж хотілося. Я навіть виправдовував себе тим, що якби були переклади, от тоді мені точно підкорилися усі секрети генеративних зображень. Звісно, я вхоплював потрібну суть, але, можливо, не усю глибину. Це як із цукровою ватою — в руках великий обʼєм тримаєш, аж вітром зриває, а в шлунок наче і небагато добра потрапило.
Тут у мене і відбулося бентежно просте осяяння, яке інколи трапляється з нами. У кімнаті мороку зняли завіси, що затуляли світло та відкрили вікно для свіжого повітря. Я вирішив, що я і буду тою людиною, яка зробить такий потрібний мені переклад. Все очевидно, просто і я це зможу. Коли ця думка виникла, то її вже неможливо було позбутися — зернятко ідеї вже посіялося і пустило свої чіпкі корінчики. Таким чином у мене виникла особиста потреба.
До смаку припала ідея перекладу саме онлайн-книжок, адже ці джерела доступні широкому загалу. Першою такою спробою стала невелика і відносно відома книга про шейдери — TheBookOfShaders. Мені колись хотілося дізнатися про шейдери трохи більше, ніж те, що вони дуже швидкі і паралельні, а також круті й мають незрозумілий код для початківця. Що зручно — книга має окремий розділ, який пояснює, як користуватися нею офлайн та як зробити новий переклад. Це дійсно хороший підхід для поширення знань світом.
Bell Tools
Для себе я і раніше робив чимало перекладів окремих статей, тож певні навички вже були. Але цей перший цільний проєкт допоміг налаштувати свій підхід саме до обʼємного і довготривалого перекладання, адже раніше мені для цього з головою вистачало одного гугл-документа. Гадаю, у багатьох розробників підхід був би приблизно однаковим: IDE/редактор, GitHub, календарик, гугл-перекладач або той самий chat-gpt для порівняння. І, звісно ж, бажання.
Дуже класно, що у сучасних IDE можна підключити потрібний мовний пакет, щоб він додатково допомагав підказками для виправлення текстових похибок. Коли працюєш з великим масивом тексту, це доволі зручно, бо дає змогу замиленому оку швидко знайти дрібні текстові негаразди. GitHub дає змогу зберігати прогрес, та і саму роботу на випадок непередбачених подій з технікою. А якщо оригінальний текст змінюється, він також допомагає знайти потрібні оновлення. Календарик з графіком підтримує прогрес, а в моєму випадку і задоволення від покрокового наближення до завершення. Допоміжні записи чи помітки з ідеями я робив у Notion, який останнім часом став зручним інструментом замість записника і не тільки.
На кожен день я планував певну частину тексту. Не дуже велику, але і не дуже малу — таку, яку зміг би осилити після роботи. Якщо ж вдавалося трохи обігнати графік, тоді я відчував додаткову насолоду. Це для мене було ігровою формою для підтримки динаміки. Наприклад, коли я перекладав для себе окремі статті за допомогою гугл-доків, то додатково орієнтувався на кількість слів чи сторінок, що залишились. І «грав» у переклад, вигадуючи якусь історію та проходячи різні її етапи через накопичення прогресу, аж допоки не завершував перемогою.
Також планування допомагало зрозуміти, як скоро я зможу досягти своєї мети з різним темпом. У насичені дні часу на переклад могло виявитися менше, але це можна було компенсувати на вихідних чи у відпустці. Цей внутрішній ігровий момент підтримував моє бажання та переборював інші негаразди з часом чи настроєм. Кому як, а мені це допомагало. Тим паче що на початку тексту було в два рази більше. Оскільки я під кожним блоком англійського тексту вставляв варіант із перекладача, щоб можна було підгледіти або скористатися вдалою частиною, але цей обʼєм тексту так само швидше і зникав.
Отож, не вдаючись глибоко у деталі першого перекладу. Він зайняв приблизно півтора місяця, надав новий досвід і певне розуміння того, що це мені сподобалось. Але, оскільки ця книга ще не має логічного завершення, то і відчуття такі, що я пройшов цікаву, але невелику демо-гру з кількома яскравими рівнями без кінцевої завершеності сюжету.
Something else?
Що ж, маю зізнатися ще в дечому. Мій запал був повʼязаний ще з однією причиною — у мене було певне нервове виснаження, можливо, трохи перегорів або криза середнього віку та і війна своє додає. Спробую описати у римі:
Поганий настрій, не везе.
Не ходить тіло, ледь повзе.
Втрачаєш смак і брак ідей —
Таке буває у людей.
Цей спад хотілося подолати за рахунок вогника активності, саме тому переклад був для мене додатковим способом підтримувати себе у фокусі. Як ментальна зарядка. Це було можливістю зробити щось більше, ніж я робив до цього — корисне і досяжне для усіх бажаючих у вільному доступі. Моя подяка таким самим людям, які ділилися зі мною своїми онлайн-матеріалами, напрацюваннями та цікавою інформацією, якими я надихався на шляху свого розвитку. Свого роду рятівний круг, на який я покладав надію, який утримував мене від повної зневіри та занепаду, не давав захлинутися липким смутком.
Адже, як писав Френсіс Бернетт:
Сумна або погана думка, що проникла у вашу свідомість, не менш небезпечна, ніж мікроби скарлатини, що проникли в організм. І якщо цю думку не вигнати одразу, може так статися, що вона залишиться з вами до кінця життя
Тому замість вільного падіння у сумну темряву вʼялості я вирішив схопитися за життєдайне захоплення перекладом.
Big Game
Як наслідок та очевидний розвиток подій у цей самий момент у мене назріла нова «Велика Гра». Після тренувального перекладу я був готовий до більш масштабного і нарешті дочитав чудову книгу The Nature Of Code. Книгу, яка ладно і дружньо пояснює матеріал та доступна онлайн для всіх охочих. Книга з якою ознайомились та полюбили безліч талановитих та творчих людей. Тож я знайшов контакт та написав її автору, професору Деніелю Шиффману, із запитанням: чи він не проти мого бажання додати переклад українською, оскільки хочу зробити його книгу доступною українському творчому читачу. Досить часто все так просто і відбувається, достатньо взяти і написати.
На щастя, Ден доволі відкрита людина, тож він одразу відгукнувся і любʼязно відповів згодою. Повідомив також, що саме зараз займається оновленням книги. Вау, оце так вдача!
Знайомтесь — це Деніель на фоні своїх відеоуроків.
Оновлення на основі p5js — подвійна вдача, адже приклади стануть ще доступнішими для початківців! Оновлення книги відбудеться з дописом нового матеріалу — потрійна вдача і збагачення вже зарекомендованого матеріалу! Забігаючи наперед скажу, що мені таким чином дуже пощастило спостерігати за періодом активного оновлення книги та й самому вставити 5 копійок під час вичитки. Це надихало продовжувати, адже я відчував свою залученість при створенні чогось доволі крутого.
Щоб бути напоготові, я склонував проєкт книги і почав робити переклад, не чекаючи на повну готовність оновленої книги. Тому час від часу доводилося звірятися і вносити нові відповідні зміни — добре, що через GitHub їх легко відслідкувати. У мене на очах змінювалися зображення, оформлення та обсяг інформації. Хоч на це й пішло чимало часу, я не пожалкував, що стрибнув у цей творчий вир. Це як спостерігати за розвитком горошку: спочатку з-під землі витикається зелененький молодий паросток, розправляє свої перші сонні листочки. Потім він тягнеться і підростає, в нього зʼявляються нові листочки та пагони з вусиками. Продовжує зростати та поширюватись, згодом заквітає, опилюється і скоро вже можна побачити коробочки-човники із солодкими горошинками всередині. Так і тут — хоч процес тривалий і потребує багато зусиль, наприкінці можна буде насолодитись плодами своєї роботи.
Отже, як я вже казав, для мене кожний розділ був свого роду ігровим рівнем, але зі своїми викликами. Спочатку гру потрібно завантажити і встановити, точніше — встановити залежності проєкту книги і локально запустити його, ну ви мене зрозуміли.
Оскільки я мав досвід з перекладом книги і окремих матеріалів, вже був сформований процес приємних рутин планування. Я вже давно зробив розграфлену за тижнями сітку у google-sheets. Такий собі варіант тижневика, до якого я звик і по якому орієнтуюся у своїх короткочасних планах. Один з рядків у ньому був виділений саме під переклад, де я потроху і закладав підвалини: коли, що і у якій кількості я потягну. Це доволі приємний момент і відчуття контролю.
Неважливо, наскільки добре продуманий план, сама його наявність має заспокійливий ефект. Особливо якщо його великий розмір розділено на доступні фрагменти-сходинки. Тут зручно скористатися силою маленьких кроків, щоб поволі здолати усю необхідну дистанцію без зайвих запаморочень перед обʼємом. Що називається — з’їсти слона по шматочках. Пробач нас, уявний книжковий слоник, але ти занадто смачний, щоб оминути тебе стороною. Якщо вам також до вподоби спостерігати за досягненнями мети з визначеним фінішем, то можна скористатися чимось на кшталт burndown chart.
Тож маємо ранній план на тиждень чи два — для початку цього буде достатньо, поки не почнеться активний етап з корекцією перших оцінок. Далі переходимо до підготовчого етапу активної фази, а саме до першого рівня нашої гри, який буде застосовуватись і для наступних розділів. Перш ніж відправитися у подорож, потрібно зібрати торбу, намалювати карту, підготувати пояс з інструментами і так далі.
Сподіваюся ви не проти деяких зображень з книги.
Як і раніше, беремо HTML-сторінку розділу, поволі закидуємо текст у перекладач і додаємо під кожним параграфом оригінального тексту запропонований варіант, щоб у разі чого підгледіти незнайомі слова чи фрази. Це фундамент, з якого я починав кожен рівень. Розділи чималі, тому навіть ця підготовка займає певний час. Стосовно перекладання, то спочатку я виділив собі по 50 рядків на день, вірніше вечір. Всього 50, але один рядок у редакторі відповідав за 1 абзац. Іноді траплялися доволі великі абзаци. А іноді це коротенький рядок, якщо ми говоримо про якусь табличку або HTML-теги. Тому просування частково було доволі динамічне, а частково — схоже на болотисту місцевість або продирання повз зарослі ялівця в горах.
А ще мені подекуди було цікаво читати вголос оригінал. В моменти, коли не вдавалося якесь слово, чи не подобалося на слух, як воно прозвучало з моїх вуст, за порадою подруги я слухав його вимову на Oxford чи Cambridge Dictionary, потім повторював разів з 50, щоб гугл-перекладач зміг мене чітко розпізнати. Звісно, в якийсь fnмомент я увійшов у ритм і збільшив інтенсивність до 150 «рядків». Я прагнув вирватися вперед, бо майбуття непередбачене, але при цьому намагався і не знижувати щоденні виклики.
Мабуть, як і у кожного хто вже пробував перекладати тексти, у мене виникали моменти, коли не було зрозуміло, а як же правильно адаптувати термін або яке слово більше підходить до ситуації. Подекуди це сильно мучило і доводилося шукати у вебпавутинні підказки та приклади використання слів чи фраз. Я не лінгвіст, тому дозволив собі змиритися, що десь переклад буде не супер точним, хоч би як я не намагався.
Одну з фраз, наприклад, мені довелося залишити як є, бо в українській мові я не знайшов нічого схожого. Тому вирішив, що оригінал буде найбільш доречним. Ви можете знайти цей жартівливий вираз на самому початку дев’ятого розділу:
Time flies like an arrow; fruit flies like a banana
Так, з першого разу здається, що прочиталося якось дивно, але потім відчуваєш і помічаєш танець слів, що заграє з читачем.
Якщо вам відомі подібні амфіболії українською (+ одне слово до словникового запасу), напишіть у коментарях — мені цікаво дізнатися про автентичні чи нові синтаксичні неоднозначністі цього роду. Зберу їх до купки та назву для себе нечуваними синтаксами або синтаксованими нечуями.
Насправді я міркував щодо замовлення вичитки тексту і був ладен заплатити, але до цього так і не дійшло. Була також думка залучити у цей проєкт ще пару зацікавлених людей, але я також не сильно займався цим питанням, бо мені підсвідомо хотілося зробити більшу частину самому. Це ж як смачний тортик, від якого мені хотілося відкусити лише один шматочок, всього-на-всього один шматочок, весь один шматочок торту, не розрізаючи його.
Проходячи кожний рівень гри, я перечитував його розділ, щоб виправити свої непомічені раніше помилки чи неточності. Читання вголос також допомагало, бо таким чином можна було помітити неприродність звучання деяких речень та виправити їх форму. Все-таки у «Природі Коду» текст має звучати природньо. Також я перевіряв на практиці фрагменти коду та знаходив деякі неточності в оригінальній версії. Час від часу заводив на них issues у проєкті, щоб Ден з командою могли звернути на це свою увагу.
Чесно кажучи, у процесі вичитки я також насолоджувався інформацією у книзі та дізнався багато цікавих речей з історичними екскурсами. Про ті ж системи частинок та як вони повʼязані з Зоряним Шляхом, про проблему трьох тіл, про
В такому режимі вечір за вечором пройшло близько дев’яти місяців. Достатній термін, що наближав народження готової роботи. Але одним з непродуманих моментів було те, що я настільки захопився процесом перекладу, що не обмислив, а як саме його потім поширювати.
Недостатньо просто щось зробити — результати роботи бажано забезпечити простором для подальшого існування, щоб вони не зачахли від пилюки та одинокості. Ще на самому початку я мав чітке бажання, щоб книга була доступною онлайн і бажано на сайті автора, але це було тільки у моїй уяві. Long story short, ще до готовності фінальних розділів у середині травня я з поради Дена почав шукати друкарню, що виявить зацікавленість у виданні українського перекладу.
Понишпорив просторами інтернет-павутиння і виписав список друкарень, які так чи інакше повʼязані з технічною або творчою літературою та почав розсилати перші електронні листи. Щоб не розсіювати увагу, обрав серед списку лише п’ять видань і 20 травня вирішив писати по одному листу на день протягом тижня. Так співпало, що на 23 травня у мене був записаний Фактор-Друк, який в той день постраждав від ракетного обстрілу.
Та до цього видавництва я так і не встиг написати, бо у вівторок мені відповіло інше, на яке я подумки покладав надію. Вони почали етап переговорів з власниками прав на друковану версію книги.
Twist
Хочете насмішити бога? Розкажіть йому про свої плани. Саме у цей момент я потрапив у лави ЗСУ — розумів, що рано чи пізно піду служити, але сподівався, що до того часу встигну закінчити переклад. Та не так сталося, як гадалося. Тож в цей момент над моїм проєктом нависла загрозлива тінь вразливості. Підготувати підґрунтя, закласти фундамент, побудувати стіни та мур коштувало значних зусиль і внутрішніх ресурсів. Та відсутність даху з брамою могли швидко звести усі зусилля нанівець, призвети до запустіння, безцільно блукаючого вітру серед пустки на розвалинах моїх починань. Невідомо було — коли, як і чи взагалі вдасться завершити розпочате. Ці питання у перший період навіть не стояли на порядку денному.
Потрапити з мирного життя у військове під час війни — це кардинальна зміна життєвого укладу. Це не просто перекреслені кілька сторінок попередніх життєвих планів, це щонайменше кілька вирваних розділів майбуття, якщо говорити про шлях своєї цивільної дійсності.
Армія — це місце, де здебільшого не ти робиш вибір, а вибір робить тебе. Так вийшло, що я потрапив у обстановку, де не було вихідних. У нас вихідний день — це коли ти приступаєш до своїх обовʼязків на годину пізніше. Подекуди були і цілодобові робочі днини. Від такої насиченості багато пригод та лік днів починають злипатися у вʼязку мішанину і ти вже не певен, коли саме відбулася та чи інша подія.
З іншого боку я добре памʼятаю, що потрапив у свою бригаду, коли на полі тільки прокльовувалися перші паростки соняшнику. Ціле іржаве поле із зеленкуватими паростками, що здивовано озирались довкола під бентежним небом. Небо дійсно кожного вечора невтомно створювало нові поетично-мальовничі пейзажі, був би час роздивлятися, то можна було знайти і похмурих драконів, і просторі лани неземних пейзажів, і купу цікавих історій.
Час від часу ми проїздили повз ці поля з соняшниками і бачили, як пагони безустанно тягнулися до сонця, ставали дедалі впевненішими у своєму зрості та вбирали яскравість світла, аж доки іржавий ґрунт зовсім не потонув під бадьорою зеленню та не заблищав гаряччю сонячного золота. Дивовижна, надихаюча картина.
Врешті цей яскравий польовий вогонь знову повернув мене до думок про книгу як до внутрішнього підтримуючого мотиву. Адже жалкування за втраченими можливостями — це найстрашніше пекло, у якому може перебувати жива душа.
У перші ж тижні служби я зрозумів пару важливих правил. В армії у тебе має бути здоровий пофігізм. Це не про відповідальність чи якість виконаної роботи, це про відношення до того, що все змінюється. Про несправедливість світу, про обмеження, пристосування і таке інше. Тобто немає сенсу страждати та бідкатися через негаразди чи нерозуміння того, що коїться навколо, і на що ти не маєш впливу. В якийсь момент ти просто починаєш відчувати це правило шкірою, інакше лише будеш витрачати власну енергію та нерви.
Другий дуже важливий момент — якщо є якась можливість, нею потрібно користуватись. Все може змінитися дуже швидко і без попереджень. Якась базова річ, що була під рукою і вважалася перманентно доступною, може через мить зникнути і стати вже недосяжною розкішшю. Навіть якщо ти дуже втомився і безсилий, але є вільна хвилина на щось корисне, то більш кращого чи сприятливого моменту може вже і не настати. В тебе є тільки тут і зараз, вчорашнє вже не зміниш, а на майбутнє впевнено не спертись.
Також заново вчишся радіти дрібницям та пошуку тиші серед галасу. З таким підходом навіть з пустого колодязю і на голі гачки можна наловити риби. А з часом тут взагалі цікаво, бо по відчуттям день проходить за два, тиждень за місяць, місяць за рік. Летить так, що ніяк не вгонишся. Дещо спотворена реальність, в якій, коли випадає мить на роздуми, ти краще розумієш та цінуєш мир. Зберігаєш теплий спогад приємних подій, які відбувалися з тобою та прагнеш повернутися та створити нові приємні події в колі своїх споріднених душ.
What You Gonna Do Now?
Отже, потроху я почав шукати можливість завершення книги. Подекуди часу не було, щоб встигнути навіть щоденні справи. Хорошим початком було те, що команда, з якою я працював до мобілізації, допомогла мені першими необхідними речима (дякую, командо, за вашу допомогу!) та переслали ноутбук (дякую, Анно!), яким я користуюсь для своїх поточних задач.
Першим чином я дізнався, як справи у друкарні з їх перемовинами щодо прав на друковану версію книги. На жаль, тут був промах, адже вони не дійшли згоди через певні вимоги, які у наших реаліях мабуть неможливо було реалізувати. Тож видавництво відмовилося від подальших спроб. Окей, повертаємося до першочергового замислу щодо онлайн-версії.
Знову написав Деніелю і він сказав, що хотів би, щоб колись на його сайті можна було додавати різні мови, але наразі це неможливо. Тож він запропонував викласти переклад у вигляді маркдауну на GitHub. Те, що потрібно, і на що подумки я також покладав надію. Адже це те, що я зміг би зробити відносно швидко, головне — закінчити неперекладені частини та звірити і обробити пропущені за цей час оновлення з попередніх розділів.
Оскільки я хотів, щоб матеріал був все таки візуально оформленим, а не просто висів оголеним текстом, збирався викласти його з HTML-розміткою та усіма потрібними стилями оригінальної версії. Попередня подорож радувала мене своїм процесом і настав час довести переклад до завершеності та зробити його доступним для інших.
Ноут є, а вільного часу катма. Про перебої зі світлом теж не має сенсу нагадувати, як і про армійське буття. Та після деяких нічних завдань я викроював трохи часу і собі. Якщо витрачаю свій сон на робочі задачі, то варто взяти трохи і для себе. Сила маленьких кроків знову в дії. Ця мета, близькі люди та сподівання кращого майбутнього підтримували мене у важкі моменти. Минуле не змінити, але вплинути на майбутнє через сьогодення є всі шанси.
Був період служби у лісі, де я взагалі був без «своєї» техніки і не просувався вперед. Над нашою місциною нависала величенька напівповалена береза, що зачепилася і трималася на гілці сосни, яку навряд чи можна було назвати надійною опорою. Причому вона нависала якраз у зоні нашого постійного перебування, тож ми усі «ходили під березою». В тому сенсі, що така розчавить і не спитає, як звати. Якщо у житті завжди присутні невидимі загрози, що можуть кардинально змінити життя, то ця була у всіх на очах. В один момент неподалік від нас одне знесилене дерево таки зірвалося і знесло частину нашої споруди. Добре, що нікого не зачепило. Це було нагадування про швидкоплинність змін та їх вплив.
Вреші-решт я поволі завершив останні розділи та переключився на фінальну підготовку сайту. Похапцем стягнув стилі з оригінального проєкту і, наскільки зміг, запакував усе в купу та залив на github-pages. Звучить наче нескладно, але для цього мені довелося плідно попрацювати над часткою «не», яка так часто зустрічається в обмежених умовах. І позбутися, стесати її з граніту таких слів та обставин як невчасність, неможливість, нестача, невдача.
Наостанок я підготував невеликий опис книги та залишив пост на DOU. Це хороше місце, щоб хтось під час своїх пошуків цікавої інформації натрапив на переклад та поділився ним з товаришами. Ось так і минув цей буремний рік, що невеликими джерельцями бажань і планів вилився у повноводну ріку готового проєкту та знайшов вихід у бурхливий океан інтернету. Як я потім побачив, книга має більше 600 сторінок, що складаються з більше ніж 130 тисяч слів і безмірної цінності знань та вкладеного у неї натхнення.
This Is The Beginning Of A New Collision
Але це ще не все. Занадто вже я захопився перекладом. Щоб закріпити намір до створення корисних матеріалів, одразу після «Великої гри» у мене назріла ще одна ідея для перекладу онлайн-книги про зіткнення геометричних фігур. І поки в мене ще залишався запал, потрібно було встигнути використати його. Саме слово «зіткнення» звучить для мене дуже по-філософськи, адже ми багато з чим стикаємося у житті і це призводить до різних наслідків.
Чи вмієте ви виявляти зіткнення? Коли сам врізаєшся у дуба, це питання має однозначну і напрочуд відчутну відповідь навіть без глибоко пізнання геометрії. Але і в наступній книзі вам знадобляться лише її основи. Більша частина заснована на прикладах, які будуть зрозумілими логічно й візуально, а іншу, в разі чого, можна використати і без великого розуміння математичної магії.
Цей проєкт був повністю розпочатий та завершений у армійських буднях. Оригінальний матеріал написаний шість років назад на прикладах коду того ж фреймворку Processing, що і перша версія книги «Природа Коду». Також ця книжка має посилання на деякі розділи Природи Коду, про що я довідався вже у процесі перекладу, тож це виявилося хорошим співпадінням чи краще сказати вдалим зіткненням креативних джерел.
Також в цьому проєкті у мене стояла додаткова задача переробити усі приклади на p5js, щоб зробити його більш комфортним та дружнім для ширшого загалу. А також, оскільки він має посилання на попередній переклад, вони використовуватимуть однакову синтаксичну базу. В цьому перекладі процес роботи був більш прямолінійним та чітким, оскільки книга вже була завершеною та з невеликими розділами, тож все залежало суто від моєї вправності.
Знову GitHub, щоб в разі чого можна було відновитись, онлайн-перекладачі для спрощення і мотивація встигнути до нового року. Але, звісно, вже без календарів — ця приємна частина процесу, на жаль, стала неактуальною через мої теперішні умови. Хоча правило скористатися можливістю або знайти її в цей період було викручене на максимум. Буремний час, купа перехресних задач і вчасно вихоплені миті на швидкі дії. Попередній досвід дався в знаки, тож мої паси були відпрацьовані до автоматизму.
Близько 30 файлів на переклад. Плюс приблизно стільки ж файлів, де потрібно портувати код з Processing на p5js, що для мене було зрозумілою задачею. Оскільки вони — суть одного підходу, просто мають трохи різний синтаксис з деякими особливостями. Певні розділи хотілося розширити прикладами та дописати кілька додаткових вправ, що мало сенс і заохочувалось автором, та наразі вже не входило у плани.
Для мене це був як шутер. Тільки-но є можливість, роблю заготовки перекладу або заготовки для коду. Є ще
Гадаю, що з перекладами книжок у мене на цей час поки що все :)
See you on the pages
Якщо на книгу натрапить і прочитає навіть кілька десятків людей, значить мій час був витрачений правильно. Значить, і я залишив свій слід на дорозі безлічі шляхів. Оскільки у книзі дійсно багато корисної інформації, то через деякий час вона обовʼязково знайде своїх українських читачів. Так само як оригінальна версія знайшла своїх англомовних. Принаймні я в це вірю.
Сподіваюся, що колись переклад буде доступний і на оригінальному сайті, а, можливо, надрукується і паперова версія. Мрію, що цей проєкт — як та невеличка грудка снігу, пущена з засніженої гори, ще набере оберти та проторить свій шлях серед гарячих творчих сердець. А ще мрію, що таких матеріалів ставатиме дедалі більше серед української творчості, і я в цьому також братиму участь.
На цьому побажаю вам хороших часів, надійних друзів у хиткі часи та приємного читання.
Acknowledgements
Наостанок хочу подякувати Деніелю Шиффману за чудову книгу та дозвіл на її переклад.
Дуже хочу подякувати своїм рідним людям, що люблять і підтримують мене, та з якими я подумки спілкуюся у скрутні часи чи коли мені потрібна порада. Мамі, брату і його сімʼї, любим двоюрідним сестрам, племінницям і племінникам та усім родичам — можливо я про це не завжди кажу, але я вас дуже люблю, ціную і відчуваю ваше тепло та доброту.
Передаю привіт друзям і знайомим та сумую за нашими розмовами і безтурботним часом, але вірю, що ще надолужимо — дякую за допомогу і поради, за хороший спільний час. Дякую всім, хто долучався до мого життя добром і бажаю, щоб воно повернулося вам у збільшеному вигляді. І, звісно, бажаю миру.
P.S. Дописую ці рядки, а на надворі вже випав перший сніг, неначе хоче приховати оточуючу сірість та почати з чистого листа. Навів своїми білими товстими пензлями обриси дерев з кущами та лежить на гілках, випробовуючи їх на міцність, а під ногами чути хрускіт, такий самий, як і у дитинстві.
Нещодавно наснилося, що я вдома і передаю собі привіт у минуле, адже у нас все вийшло і я вже там де маю бути — розкішне відчуття. Коли повернуся так і буде, обійму рідних, зустрінуся з друзями. Позгадуємо хороше, потішимося сьогоденню. А ще наберу собі чудових артбуків та буду зачаровано їх гортати, розмірковуючи як дивно влаштований цей бентежний світ.
References
- Природа коду — переклад цікавезної та популярної серед творчих програмістів книги про природні симуляції The Nature Of Code (автор Daniel Shiffman).
- Книга про шейдери — український переклад книги The Book Of Shaders (автори Patricio Gonzalez Vivo та Jen Lowe).
- Виявлення колізій — український переклад онлайн-книги з виявлення зіткнень між геометричними фігурами — Collision Detection (автор Jeffrey Thompson).
- manoylovac.github.io — cторінка на GitHub з цими самими посиланнями.
12 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів