<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Здоровий глузд: дописи з тегом grep</title>
<link>https://blog-archive.alexkolodko.com/tags/grep/</link>
<description>Олександр Колодько. Інформаційний та навігаційний дизайнер. Співзасновник команди ARC, співзасновник та головний дизайнер в Агентах змін (А3). Пишу про дизайн і цікаве мені · alexkolodko.com · wayfinding.systems</description>
<author></author>
<language>uk</language>
<generator>Aegea 11.3 (v4134)</generator>

<itunes:subtitle>Олександр Колодько. Інформаційний та навігаційний дизайнер. Співзасновник команди ARC, співзасновник та головний дизайнер в Агентах змін (А3). Пишу про дизайн і цікаве мені · alexkolodko.com · wayfinding.systems</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Автоматизація дизайну з ChatGPT. Частина 2: скрипти для InDesign, Figma, Google Docs, Automator</title>
<guid isPermaLink="false">94</guid>
<link>https://blog-archive.alexkolodko.com/all/design-automation-with-chatgpt-part2/</link>
<pubDate>Fri, 24 Mar 2023 22:37:31 +0200</pubDate>
<author></author>
<comments>https://blog-archive.alexkolodko.com/all/design-automation-with-chatgpt-part2/</comments>
<description>
&lt;p&gt;Продовжую експерименти написання простих скриптів з допомогою ChatGPT. Тут &lt;a href="https://blog.alexkolodko.com/all/adobe-scripting-with-chatgpt/"&gt;перша частина&lt;/a&gt; зі скриптами для Adobe Illustrator.&lt;/p&gt;
&lt;h2&gt;1. Заміна шрифтів у InDesign&lt;/h2&gt;
&lt;p&gt;Перше, що захотілося зробити, це перенести скрипт з Ілюстратора в Індизайн (хоч скрипти й схожі, але у програм всередині різна специфіка).&lt;/p&gt;
&lt;p&gt;Тож спочатку я спробував подібними до попередніх запитами згенерувати скрипт. Але з 5-6 спроб робочого коду не вийшло. Тому далі я знайшов &lt;a href="https://community.adobe.com/t5/indesign-discussions/font-replacement-scripting-javascript/td-p/11021763"&gt;у спільноті Адоб&lt;/a&gt; шматок коду схожий на те, що мені треба.&lt;/p&gt;
&lt;p&gt;Але для його використання для різних накреслень і шрифтів не вистачало масиву значень на початку та циклу його виконання. Тому я скопіював код і попросив ChatGPT додати мені ці модулі. І за кілька уточнень вийшло робоче рішення.&lt;/p&gt;
&lt;p&gt;Далі зробив ще одну версію, попросивши додати виклик модального вікна, в яке можна ввести руками потрібні назви шрифтів. І він мені це теж зробив:&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-1-1-2-indesign-x4-noaudio.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;div class="e2-text-caption"&gt;Створення скрипту заміни шрифту в InDesign&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Завантажити скрипти:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/lgcoaglq2yl7lkn/Font%20Replacer%20INDD.jsx?dl=0"&gt;Версія&lt;/a&gt;, яка заміняє усі шрифти у всіх фреймах;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/sh4p04jj41wq4j9/Font%20Replacer%20INDD%20Selected.jsx?dl=0"&gt;Версія&lt;/a&gt;, яка заміняє шрифт лише у виділеному тексті;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/zdouo1ppa8sq9ka/Font%20Replacer%20INDD%20SelectedORNot.jsx?dl=0"&gt;Версія&lt;/a&gt;, заміняє шрифт або у виділених фреймах, або в усіх;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/6ifotvcavyeinit/Font%20Replacer%20INDD%20with%20window.jsx?dl=0"&gt;Версія&lt;/a&gt; з двома вікнами введення назви старого і нового шрифтів;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.dropbox.com/s/eiazxfnj92d09ze/Font%20Replacer%20INDD%20ww2.jsx?dl=0"&gt;Версія&lt;/a&gt; з одним вікном, в якому можна ввести кілька шрифтів.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;1.2. Заміна стилів у InDesign&lt;/h2&gt;
&lt;p&gt;Окрім зміни шрифтів, попросив придумати скрипт, для заміни одних стилів на інші та ще попросив додати вікно, в якому ці назви можна ввести. Отримав &lt;a href="https://www.dropbox.com/s/l252xyt2flartv8/Change%20style%20with%20one%20window.jsx?dl=0"&gt;такий скрипт&lt;/a&gt;.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/indesign-1-2-1-changestyles-x2.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;div class="e2-text-caption"&gt;Скрипт для InDesign, який заміняє один стиль на інший&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;А далі попросив замість полів для введення тексту зробити спадні списки зі всіма наявними стилями у документі. Але скрипт сходу не запрацював, але його можна об’єднати з попередніми.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/indesign-1-2-2-changestyles-dropdowns-x2.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;h2&gt;2. Збереження Google Docs у тій самій теці на Драйві&lt;/h2&gt;
&lt;p&gt;У мене є потреба періодично зберігати поруч з Гугл Документом також і PDF, який я потім можу відправити. При збереженні через меню документів сам документ у мене завантажується у Downloads, як і решта файлів. Але потім мені потрібно знову завантажувати PDF у ту саму теку на драйв. Не складно, але це витрата часу.&lt;/p&gt;
&lt;p&gt;Шукав приклади скриптів, які  б могли зберігати PDF у ту саму теку, але робочих не знайшов. І от попросив ChatGPT запропонувати мені такий скрипт. І з першого разу отримав робочий варіант:&lt;/p&gt;
&lt;pre&gt;
function onOpen() {
  var ui = DocumentApp.getUi();
  ui.createAddonMenu()
      .addItem(’Convert to PDF’, ’convertDocToPDF’)
      .addToUi();
}

function convertDocToPDF() {
  var docFile = DocumentApp.getActiveDocument().getId();
  var doc = DriveApp.getFileById(docFile);
  var pdfFile = DriveApp.createFile(doc.getAs(’application/pdf’)).setName(doc.getName() + «.pdf»);
  var parentFolder = doc.getParents().next();
  pdfFile.makeCopy(parentFolder);
  pdfFile.setTrashed(true);
}

&lt;/pre&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/google-script-with-chatgpt-x2.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;p&gt;Також ChatGPT описав інструкцію, як цей скрипт опублікувати, щоб він працював не тільки у конкретному документі, але це виявилось не так просто, як зробити скрипт 😅.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-2-1.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-2-2.png" width="2400" height="1500" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;3. Транслітерація тексту в Figma&lt;/h2&gt;
&lt;p&gt;Колись для транслітерації назв зробили разом з програмістами простий сайт з простим JS, якій заміняв літери на інші за певними правилами. Потім з цього створили скрипти для AI та ID. А потім я стикнувся з такою з задачею у Фігмі, але робочих рішень не знайшов. Щось покрутив, але кинув, бо моїх знань було недостатньо.&lt;/p&gt;
&lt;p&gt;І от спробував згодувати цю задачу ChatGPT. Взяв увесь наявний скрипт, як приклад, і попросив придумати, як з цього скрипту зробити скрипт для Фігми. Спочатку запропонований код транслітерував всі тексти на сторінці. Через уточнення він це робив для виділеного тексту, а якщо не виділений, то вже для всього.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-3-figma-x2.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;p&gt;І у першому варіанті цей код навіть працює, транслітерує, лишилось тільки допиляти для виключень і різних випадків. Далі вже можна туди додати якийсь інтерфейс за потреби. Тест вважаю вдалим.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-3-1.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-3-2.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-3-3.png" width="2400" height="1500" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Код транслітерації для Фігми від ChatGPT&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;4. Створення регулярних виразів для GREP / RegEx&lt;/h2&gt;
&lt;p&gt;Про грепи (або регулярні вирази, або regex) розповідав у лекції і все хотів написати детальну статтю зі всіма посиланнями, які назбирав, але все не знаходив час. GREP дуже потужна штука, але в неї був дуже високий поріг входу, щоб розуміти як будувати потрібні правильні вирази.&lt;/p&gt;
&lt;p&gt;І от тепер з ChatGPT цей поріг можна вважати зниженим, бо він дуже гарно конструює навіть складні вирази.&lt;/p&gt;
&lt;p&gt;Наприклад, давайте в Індизайні після всіх прийменників додамо нерозривні пробіли у всьому тексті через GREP-стилі. Для цього потрібно знайти у тексті всі прийменники. Тож створюємо стиль для символів без перенесень (no break) та питаємо у ChatGPT список всіх прийменників у вигляді регулярного виразу.&lt;/p&gt;
&lt;p&gt;Він розуміє українську і віддає згенерований вираз вже у потрібній формі. Єдине що цей regex не зовсім підійде у Індизайн, тому уточнюємо що це має бути саме GREP для Індизайну і отримуємо робочий запит.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-4-1-indesign-grep-find-x4.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;p&gt;Так само можна конструювати грепи, які знаходять прізвища та ініціали, одиниці вимірювання, дати та місяці, номери телефонів у різних видах тощо. Далі потім знайдені дані (одразу всі, в усьому тексті) можна або переформатовувати або задавати їм потрібний стиль.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-1.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-2.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-3.png" width="1694" height="950" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-4.png" width="1650" height="1936" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-5.png" width="1614" height="1074" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-6.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-7.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-8.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-4-9.png" width="1604" height="1176" alt="" /&gt;
&lt;/div&gt;
&lt;div class="e2-text-caption"&gt;Приклади різних регулярних виразів&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Регулярні вирази — дуже технічно-орієнтований інструмент. Тому тепер до цього інструменту є людино-орієнтований інтерфейс, який трансформує ваш запит у зрозумілу машині форму.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-4-2-indesign-grep-replace-x4.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;div class="e2-text-caption"&gt;GREP заміни кириличних лапок латинськими&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;5.1 Зібрати відео зі скріншотів (з використанням ffmpeg)&lt;/h2&gt;
&lt;p&gt;Також в лекції згадував, що також у автоматизації дуже допомагають різні консольні команди (cli, command line interface), які заточені на певні дії. З ними така сама ситуація — щоб ними користуватись, потрібно розбиратись в прикладах та документації, що теж техно-орієнтованість.&lt;/p&gt;
&lt;p&gt;Тому тут можна теж ChatGPT використовувати, як посередника для пошуку потрібної команди з потрібними параметрами. Наприклад, маємо купу скріншотів зроблених автоматично з різницею у 4-5 секунд, з яких хочемо зробити скрінкаст.&lt;/p&gt;
&lt;p&gt;Для роботи з відео є потужна програма &lt;a href="https://ffmpeg.org/download.html"&gt;ffmpeg&lt;/a&gt;, яка працює з командного рядка. Тож попросив ChatGPT запропонувати команду для ffmpeg, яка б об’єднала картинки у відео. З першого разу отримуємо варіант, який на 100% працює та робить відео з заданою кількістю кадрів, які можна скоригувати.&lt;/p&gt;
&lt;pre&gt;
ffmpeg -framerate 30 -pattern_type glob -i ’/path/to/folder/*.jpg’ -c:v libx264 -pix_fmt yuv420p /path/to/output.mp4
&lt;/pre&gt;
&lt;p&gt;Таким чином не потрібні ніякі додаткові програми, для створення відео з картинок: за допомогою Автоматора робимо скріншоти, а через ffmpeg отримуємо відео.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-5-1-x4.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;div class="e2-text-caption"&gt;Збір відео з окремих картинок&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;5.2 Компресія відео (з використанням ffmpeg)&lt;/h2&gt;
&lt;p&gt;Так само можна пошукати запити і на інші задачі з відео, наприклад, перезберегти з певною компресією чи зміною розміру, або прискоренням.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-5-2-compress-video-x4-noaudio.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;p&gt;Раніше я шукав налаштування команд на Stackoverflow, а зараз швидше спитати у ChatGPT. Приклади запитів.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="2400" data-ratio="1.6"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-5-2-1-compress-video.png" width="2400" height="1500" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/_automation-5-2-2-compress-video.png" width="2400" height="1500" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Компресія відео з ffmpeg&lt;/p&gt;
&lt;h2&gt;6. Зміна в наявному скрипті для Автоматора (Apple Script)&lt;/h2&gt;
&lt;p&gt;До попереднього пункту: для створення скрінкасту у мене був скрипт, який робив скріншот екрану і клав у потрібну теку в Дропбоксі, а потім зі скріншотів збиралося відео.&lt;/p&gt;
&lt;p&gt;Зараз Дропбокс змінив і виходить старий скрипт некоректно працює. Йти шукати у документації до AppleScript як змінити шлях було б довго. Тому скопіював наявний скрипт і попросив замінити шлях збереження скріншотів у теку /&lt;i&gt;Desktop&lt;/i&gt;.&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;video src="https://blog-archive.alexkolodko.com/video/automation-6-applescript-x4.mp4#t=0.001" width="2560" height="1600" controls alt="" /&gt;

&lt;/div&gt;
&lt;h2&gt;7. Збереження в TIFF у Adobe Illustrator&lt;/h2&gt;
&lt;p&gt;Ще попросив зробити скрипт для швидкого збереження артборду у TIFF з заданим DPI. Отримав отакий варіант, який видавав помилку. Знайшов у спільноті Адоба відповідь зі схожою частиною, та побачив що один з параметрів замість IBM має називатись IBMPC, замінив, запрацювало. Тобто весь скрипт робочий, але помилка була в одному з параметрів. &lt;a href="https://www.dropbox.com/s/g6u54xerw8lg4v4/toTIFF.jsx?dl=0"&gt;Завантажити скрипт&lt;/a&gt;.&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/automation-7-1-w2400.png" width="2400" height="1500" alt="" /&gt;
&lt;div class="e2-text-caption"&gt;Збереження артбоду в TIFF 300dpi&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;8. OSM Overpass Query&lt;/h2&gt;
&lt;p&gt;Деякі системи хоч і доступні всім, але поріг входу в них занадто високий. Але ChatGPT і тут зможе допомогти його подолати.&lt;/p&gt;
&lt;p&gt;У OpenStreetMap (карта/база даних, які відкриті для всіх) зберігається величезна база геоданих, доступ до яких не суперпростий. І в OSM є мова запитів Overpass, яка дозволяє вивантажувати / запитувати якусь певну частину тих даних. Так от Overpass супер-неінтуітивна мова, і тут Chat GPT допомагає перекласти запит з людської на машинну.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://twitter.com/lemonodor/status/1636849040548675584"&gt;twitter.com/lemonodor/status/1636849040548675584&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;P.S.&lt;/h2&gt;
&lt;p&gt;І це я скористався лише безкоштовною версією ChatGPT (модель GPT 3.5), і вже відчув, що стаю продуктивнішим ніби маю ще один механізований маніпулятор на додачу до рук, який розуміє що я хочу зробити та робить це швидше,&lt;/p&gt;
&lt;p&gt;Тепер спробую модель Codex (Github Copilot), яка створювалась як раз для написання коду, а також GPT4. Напишу потім, що з цього вийшло.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Також хотів проілюструвати цю думку згенерувавши картинку людини з ще оною механізованою рукою, накшталт, технодесандників з Вархаммеру, але з 20 спроб у Midjourney v4 мого задуму не вийшло&lt;/i&gt; ¯\_(ツ)_/¯&lt;/p&gt;
&lt;div class="e2-text-picture"&gt;
&lt;div class="fotorama" data-width="1024" data-ratio="1"&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_5e4ed387-75ea-434f-80ad-54a6bbf25a92-transformed.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_c97b8485-4aa5-4fcc-aba3-c6bbdc06f756-transformed.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_35d6b34f-06c8-42a9-bb5f-a9f7d0228c89.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_366792c8-fc63-431c-adb1-e75029104bb6.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_b5de7f02-f43b-4fd6-b01c-4c33fcdace3e.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_bionic_robotic_mechanical_manipulator_in_h_4edd41d4-5a33-488d-ad2c-58255555764f.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_bionic_robotic_mechanical_manipulator_in_h_79d5dd21-a324-4f24-b5c2-ce37832c925b.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_5e4ed387-75ea-434f-80ad-54a6bbf25a92.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_15cc879c-6032-47b5-883c-56ccb48732cb.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_bb7622b8-8dac-41de-9925-d14892d79a05.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_c97b8485-4aa5-4fcc-aba3-c6bbdc06f756.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_techmarine_warhammer_40k_style_with_robotic_arm_sit_092b8d8f-7132-4b40-9394-dd83607d6cb8.png" width="1024" height="1024" alt="" /&gt;
&lt;img src="https://blog-archive.alexkolodko.com/pictures/alexkolodko_techno_spacemarine_warhammer40k_style_with_robotic__b100e5a6-8d87-4b47-83cf-3151991a242a.png" width="1024" height="1024" alt="" /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;hr&gt;&lt;/p&gt;
&lt;div&gt;&lt;div style="float: left;"&gt;&lt;p&gt;&lt;span style="font-weight:bold; font-size: 3em"&gt;&lt;b&gt;?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="padding: 1em 0 0 4em"&gt;&lt;p&gt;Якщо у вас приклади вашого повторюваного дизайн-процесу, який ви повторюєте щоразу і витрачаєте свій час, напишіть на &lt;a href="mailto:alexkolodko@gmail.com"&gt;пошту&lt;/a&gt; або у &lt;a href="https://t.me/alexkolodko"&gt;телеграм&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;hr&gt;&lt;/p&gt;
&lt;div&gt;&lt;div style="float: left;"&gt;&lt;p&gt;&lt;span style="font-weight:bold; font-size: 3em"&gt;&lt;b&gt;₴&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="padding: 1em 0 0 4em"&gt;&lt;p&gt;Якщо вам було цікаво та корисно, можете пригостити мене кавою ☕️: картка Монобанку: &lt;tt&gt;4441114450427339&lt;/tt&gt; або &lt;a href="https://send.monobank.ua/5jVrTaRziu"&gt;через сайт&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</description>
</item>


</channel>
</rss>