{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Здоровий глузд: дописи з тегом grep",
    "_rss_description": "Олександр Колодько. Інформаційний та навігаційний дизайнер. Співзасновник команди ARC, співзасновник та головний дизайнер в Агентах змін (А3). Пишу про дизайн і цікаве мені · alexkolodko.com · wayfinding.systems",
    "_rss_language": "uk",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": "",
    "_itunes_explicit": "",
    "home_page_url": "https:\/\/blog-archive.alexkolodko.com\/tags\/grep\/",
    "feed_url": "https:\/\/blog-archive.alexkolodko.com\/tags\/grep\/json\/",
    "icon": "https:\/\/blog-archive.alexkolodko.com\/pictures\/userpic\/userpic@2x.jpg?1768915547",
    "authors": [
        {
            "name": "Олександр Колодько",
            "url": "https:\/\/blog-archive.alexkolodko.com\/",
            "avatar": "https:\/\/blog-archive.alexkolodko.com\/pictures\/userpic\/userpic@2x.jpg?1768915547"
        }
    ],
    "items": [
        {
            "id": "94",
            "url": "https:\/\/blog-archive.alexkolodko.com\/all\/design-automation-with-chatgpt-part2\/",
            "title": "Автоматизація дизайну з ChatGPT. Частина 2: скрипти для InDesign, Figma, Google Docs, Automator",
            "content_html": "<p>Продовжую експерименти написання простих скриптів з допомогою ChatGPT. Тут <a href=\"https:\/\/blog.alexkolodko.com\/all\/adobe-scripting-with-chatgpt\/\">перша частина<\/a> зі скриптами для Adobe Illustrator.<\/p>\n<h2>1. Заміна шрифтів у InDesign<\/h2>\n<p>Перше, що захотілося зробити, це перенести скрипт з Ілюстратора в Індизайн (хоч скрипти й схожі, але у програм всередині різна специфіка).<\/p>\n<p>Тож спочатку я спробував подібними до попередніх запитами згенерувати скрипт. Але з 5-6 спроб робочого коду не вийшло. Тому далі я знайшов <a href=\"https:\/\/community.adobe.com\/t5\/indesign-discussions\/font-replacement-scripting-javascript\/td-p\/11021763\">у спільноті Адоб<\/a> шматок коду схожий на те, що мені треба.<\/p>\n<p>Але для його використання для різних накреслень і шрифтів не вистачало масиву значень на початку та циклу його виконання. Тому я скопіював код і попросив ChatGPT додати мені ці модулі. І за кілька уточнень вийшло робоче рішення.<\/p>\n<p>Далі зробив ще одну версію, попросивши додати виклик модального вікна, в яке можна ввести руками потрібні назви шрифтів. І він мені це теж зробив:<\/p>\n<div class=\"e2-text-video\">\n<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=\"\" \/>\n\n<div class=\"e2-text-caption\">Створення скрипту заміни шрифту в InDesign<\/div>\n<\/div>\n<p>Завантажити скрипти:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.dropbox.com\/s\/lgcoaglq2yl7lkn\/Font%20Replacer%20INDD.jsx?dl=0\">Версія<\/a>, яка заміняє усі шрифти у всіх фреймах;<\/li>\n<li><a href=\"https:\/\/www.dropbox.com\/s\/sh4p04jj41wq4j9\/Font%20Replacer%20INDD%20Selected.jsx?dl=0\">Версія<\/a>, яка заміняє шрифт лише у виділеному тексті;<\/li>\n<li><a href=\"https:\/\/www.dropbox.com\/s\/zdouo1ppa8sq9ka\/Font%20Replacer%20INDD%20SelectedORNot.jsx?dl=0\">Версія<\/a>, заміняє шрифт або у виділених фреймах, або в усіх;<\/li>\n<li><a href=\"https:\/\/www.dropbox.com\/s\/6ifotvcavyeinit\/Font%20Replacer%20INDD%20with%20window.jsx?dl=0\">Версія<\/a> з двома вікнами введення назви старого і нового шрифтів;<\/li>\n<li><a href=\"https:\/\/www.dropbox.com\/s\/eiazxfnj92d09ze\/Font%20Replacer%20INDD%20ww2.jsx?dl=0\">Версія<\/a> з одним вікном, в якому можна ввести кілька шрифтів.<\/li>\n<\/ul>\n<h2>1.2. Заміна стилів у InDesign<\/h2>\n<p>Окрім зміни шрифтів, попросив придумати скрипт, для заміни одних стилів на інші та ще попросив додати вікно, в якому ці назви можна ввести. Отримав <a href=\"https:\/\/www.dropbox.com\/s\/l252xyt2flartv8\/Change%20style%20with%20one%20window.jsx?dl=0\">такий скрипт<\/a>.<\/p>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/blog-archive.alexkolodko.com\/video\/indesign-1-2-1-changestyles-x2.mp4#t=0.001\" width=\"2560\" height=\"1600\" controls alt=\"\" \/>\n\n<div class=\"e2-text-caption\">Скрипт для InDesign, який заміняє один стиль на інший<\/div>\n<\/div>\n<p>А далі попросив замість полів для введення тексту зробити спадні списки зі всіма наявними стилями у документі. Але скрипт сходу не запрацював, але його можна об’єднати з попередніми.<\/p>\n<div class=\"e2-text-video\">\n<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=\"\" \/>\n\n<\/div>\n<h2>2. Збереження Google Docs у тій самій теці на Драйві<\/h2>\n<p>У мене є потреба періодично зберігати поруч з Гугл Документом також і PDF, який я потім можу відправити. При збереженні через меню документів сам документ у мене завантажується у Downloads, як і решта файлів. Але потім мені потрібно знову завантажувати PDF у ту саму теку на драйв. Не складно, але це витрата часу.<\/p>\n<p>Шукав приклади скриптів, які  б могли зберігати PDF у ту саму теку, але робочих не знайшов. І от попросив ChatGPT запропонувати мені такий скрипт. І з першого разу отримав робочий варіант:<\/p>\n<pre>\nfunction onOpen() {\n  var ui = DocumentApp.getUi();\n  ui.createAddonMenu()\n      .addItem(’Convert to PDF’, ’convertDocToPDF’)\n      .addToUi();\n}\n\nfunction convertDocToPDF() {\n  var docFile = DocumentApp.getActiveDocument().getId();\n  var doc = DriveApp.getFileById(docFile);\n  var pdfFile = DriveApp.createFile(doc.getAs(’application\/pdf’)).setName(doc.getName() + «.pdf»);\n  var parentFolder = doc.getParents().next();\n  pdfFile.makeCopy(parentFolder);\n  pdfFile.setTrashed(true);\n}\n\n<\/pre>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/blog-archive.alexkolodko.com\/video\/google-script-with-chatgpt-x2.mp4#t=0.001\" width=\"2560\" height=\"1600\" controls alt=\"\" \/>\n\n<\/div>\n<p>Також ChatGPT описав інструкцію, як цей скрипт опублікувати, щоб він працював не тільки у конкретному документі, але це виявилось не так просто, як зробити скрипт 😅.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"2400\" data-ratio=\"1.6\">\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-2-1.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-2-2.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<\/div>\n<\/div>\n<h2>3. Транслітерація тексту в Figma<\/h2>\n<p>Колись для транслітерації назв зробили разом з програмістами простий сайт з простим JS, якій заміняв літери на інші за певними правилами. Потім з цього створили скрипти для AI та ID. А потім я стикнувся з такою з задачею у Фігмі, але робочих рішень не знайшов. Щось покрутив, але кинув, бо моїх знань було недостатньо.<\/p>\n<p>І от спробував згодувати цю задачу ChatGPT. Взяв увесь наявний скрипт, як приклад, і попросив придумати, як з цього скрипту зробити скрипт для Фігми. Спочатку запропонований код транслітерував всі тексти на сторінці. Через уточнення він це робив для виділеного тексту, а якщо не виділений, то вже для всього.<\/p>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/blog-archive.alexkolodko.com\/video\/automation-3-figma-x2.mp4#t=0.001\" width=\"2560\" height=\"1600\" controls alt=\"\" \/>\n\n<\/div>\n<p>І у першому варіанті цей код навіть працює, транслітерує, лишилось тільки допиляти для виключень і різних випадків. Далі вже можна туди додати якийсь інтерфейс за потреби. Тест вважаю вдалим.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"2400\" data-ratio=\"1.6\">\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-1.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-2.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-3.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Код транслітерації для Фігми від ChatGPT<\/div>\n<\/div>\n<h2>4. Створення регулярних виразів для GREP \/ RegEx<\/h2>\n<p>Про грепи (або регулярні вирази, або regex) розповідав у лекції і все хотів написати детальну статтю зі всіма посиланнями, які назбирав, але все не знаходив час. GREP дуже потужна штука, але в неї був дуже високий поріг входу, щоб розуміти як будувати потрібні правильні вирази.<\/p>\n<p>І от тепер з ChatGPT цей поріг можна вважати зниженим, бо він дуже гарно конструює навіть складні вирази.<\/p>\n<p>Наприклад, давайте в Індизайні після всіх прийменників додамо нерозривні пробіли у всьому тексті через GREP-стилі. Для цього потрібно знайти у тексті всі прийменники. Тож створюємо стиль для символів без перенесень (no break) та питаємо у ChatGPT список всіх прийменників у вигляді регулярного виразу.<\/p>\n<p>Він розуміє українську і віддає згенерований вираз вже у потрібній формі. Єдине що цей regex не зовсім підійде у Індизайн, тому уточнюємо що це має бути саме GREP для Індизайну і отримуємо робочий запит.<\/p>\n<div class=\"e2-text-video\">\n<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=\"\" \/>\n\n<\/div>\n<p>Так само можна конструювати грепи, які знаходять прізвища та ініціали, одиниці вимірювання, дати та місяці, номери телефонів у різних видах тощо. Далі потім знайдені дані (одразу всі, в усьому тексті) можна або переформатовувати або задавати їм потрібний стиль.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"2400\" data-ratio=\"1.6\">\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-1.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-2.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-3.png\" width=\"1694\" height=\"950\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-4.png\" width=\"1650\" height=\"1936\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-5.png\" width=\"1614\" height=\"1074\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-6.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-7.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-8.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-9.png\" width=\"1604\" height=\"1176\" alt=\"\" \/>\n<\/div>\n<div class=\"e2-text-caption\">Приклади різних регулярних виразів<\/div>\n<\/div>\n<p>Регулярні вирази — дуже технічно-орієнтований інструмент. Тому тепер до цього інструменту є людино-орієнтований інтерфейс, який трансформує ваш запит у зрозумілу машині форму.<\/p>\n<div class=\"e2-text-video\">\n<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=\"\" \/>\n\n<div class=\"e2-text-caption\">GREP заміни кириличних лапок латинськими<\/div>\n<\/div>\n<h2>5.1 Зібрати відео зі скріншотів (з використанням ffmpeg)<\/h2>\n<p>Також в лекції згадував, що також у автоматизації дуже допомагають різні консольні команди (cli, command line interface), які заточені на певні дії. З ними така сама ситуація — щоб ними користуватись, потрібно розбиратись в прикладах та документації, що теж техно-орієнтованість.<\/p>\n<p>Тому тут можна теж ChatGPT використовувати, як посередника для пошуку потрібної команди з потрібними параметрами. Наприклад, маємо купу скріншотів зроблених автоматично з різницею у 4-5 секунд, з яких хочемо зробити скрінкаст.<\/p>\n<p>Для роботи з відео є потужна програма <a href=\"https:\/\/ffmpeg.org\/download.html\">ffmpeg<\/a>, яка працює з командного рядка. Тож попросив ChatGPT запропонувати команду для ffmpeg, яка б об’єднала картинки у відео. З першого разу отримуємо варіант, який на 100% працює та робить відео з заданою кількістю кадрів, які можна скоригувати.<\/p>\n<pre>\nffmpeg -framerate 30 -pattern_type glob -i ’\/path\/to\/folder\/*.jpg’ -c:v libx264 -pix_fmt yuv420p \/path\/to\/output.mp4\n<\/pre>\n<p>Таким чином не потрібні ніякі додаткові програми, для створення відео з картинок: за допомогою Автоматора робимо скріншоти, а через ffmpeg отримуємо відео.<\/p>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/blog-archive.alexkolodko.com\/video\/automation-5-1-x4.mp4#t=0.001\" width=\"2560\" height=\"1600\" controls alt=\"\" \/>\n\n<div class=\"e2-text-caption\">Збір відео з окремих картинок<\/div>\n<\/div>\n<h2>5.2 Компресія відео (з використанням ffmpeg)<\/h2>\n<p>Так само можна пошукати запити і на інші задачі з відео, наприклад, перезберегти з певною компресією чи зміною розміру, або прискоренням.<\/p>\n<div class=\"e2-text-video\">\n<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=\"\" \/>\n\n<\/div>\n<p>Раніше я шукав налаштування команд на Stackoverflow, а зараз швидше спитати у ChatGPT. Приклади запитів.<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"2400\" data-ratio=\"1.6\">\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-5-2-1-compress-video.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-5-2-2-compress-video.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<\/div>\n<\/div>\n<p>Компресія відео з ffmpeg<\/p>\n<h2>6. Зміна в наявному скрипті для Автоматора (Apple Script)<\/h2>\n<p>До попереднього пункту: для створення скрінкасту у мене був скрипт, який робив скріншот екрану і клав у потрібну теку в Дропбоксі, а потім зі скріншотів збиралося відео.<\/p>\n<p>Зараз Дропбокс змінив і виходить старий скрипт некоректно працює. Йти шукати у документації до AppleScript як змінити шлях було б довго. Тому скопіював наявний скрипт і попросив замінити шлях збереження скріншотів у теку \/<i>Desktop<\/i>.<\/p>\n<div class=\"e2-text-video\">\n<video src=\"https:\/\/blog-archive.alexkolodko.com\/video\/automation-6-applescript-x4.mp4#t=0.001\" width=\"2560\" height=\"1600\" controls alt=\"\" \/>\n\n<\/div>\n<h2>7. Збереження в TIFF у Adobe Illustrator<\/h2>\n<p>Ще попросив зробити скрипт для швидкого збереження артборду у TIFF з заданим DPI. Отримав отакий варіант, який видавав помилку. Знайшов у спільноті Адоба відповідь зі схожою частиною, та побачив що один з параметрів замість IBM має називатись IBMPC, замінив, запрацювало. Тобто весь скрипт робочий, але помилка була в одному з параметрів. <a href=\"https:\/\/www.dropbox.com\/s\/g6u54xerw8lg4v4\/toTIFF.jsx?dl=0\">Завантажити скрипт<\/a>.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/blog-archive.alexkolodko.com\/pictures\/automation-7-1-w2400.png\" width=\"2400\" height=\"1500\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Збереження артбоду в TIFF 300dpi<\/div>\n<\/div>\n<h2>8. OSM Overpass Query<\/h2>\n<p>Деякі системи хоч і доступні всім, але поріг входу в них занадто високий. Але ChatGPT і тут зможе допомогти його подолати.<\/p>\n<p>У OpenStreetMap (карта\/база даних, які відкриті для всіх) зберігається величезна база геоданих, доступ до яких не суперпростий. І в OSM є мова запитів Overpass, яка дозволяє вивантажувати \/ запитувати якусь певну частину тих даних. Так от Overpass супер-неінтуітивна мова, і тут Chat GPT допомагає перекласти запит з людської на машинну.<\/p>\n<p><a href=\"https:\/\/twitter.com\/lemonodor\/status\/1636849040548675584\">twitter.com\/lemonodor\/status\/1636849040548675584<\/a><\/p><h2>P.S.<\/h2>\n<p>І це я скористався лише безкоштовною версією ChatGPT (модель GPT 3.5), і вже відчув, що стаю продуктивнішим ніби маю ще один механізований маніпулятор на додачу до рук, який розуміє що я хочу зробити та робить це швидше,<\/p>\n<p>Тепер спробую модель Codex (Github Copilot), яка створювалась як раз для написання коду, а також GPT4. Напишу потім, що з цього вийшло.<\/p>\n<p><i>Також хотів проілюструвати цю думку згенерувавши картинку людини з ще оною механізованою рукою, накшталт, технодесандників з Вархаммеру, але з 20 спроб у Midjourney v4 мого задуму не вийшло<\/i> ¯\\_(ツ)_\/¯<\/p>\n<div class=\"e2-text-picture\">\n<div class=\"fotorama\" data-width=\"1024\" data-ratio=\"1\">\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<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=\"\" \/>\n<\/div>\n<\/div>\n<p><hr><\/p>\n<div><div style=\"float: left;\"><p><span style=\"font-weight:bold; font-size: 3em\"><b>?<\/b><\/span><\/p>\n<\/div><div style=\"padding: 1em 0 0 4em\"><p>Якщо у вас приклади вашого повторюваного дизайн-процесу, який ви повторюєте щоразу і витрачаєте свій час, напишіть на <a href=\"mailto:alexkolodko@gmail.com\">пошту<\/a> або у <a href=\"https:\/\/t.me\/alexkolodko\">телеграм<\/a>.<\/p>\n<\/div><\/div><p><hr><\/p>\n<div><div style=\"float: left;\"><p><span style=\"font-weight:bold; font-size: 3em\"><b>₴<\/b><\/span><\/p>\n<\/div><div style=\"padding: 1em 0 0 4em\"><p>Якщо вам було цікаво та корисно, можете пригостити мене кавою ☕️: картка Монобанку: <tt>4441114450427339<\/tt> або <a href=\"https:\/\/send.monobank.ua\/5jVrTaRziu\">через сайт<\/a>.<\/p>\n<\/div><\/div>",
            "date_published": "2023-03-24T22:37:31+02:00",
            "date_modified": "2023-03-24T22:38:54+02:00",
            "tags": [
                "adobe",
                "automator",
                "chatgpt",
                "figma",
                "grep",
                "illustrator",
                "indesign",
                "автоматизація",
                "ші"
            ],
            "image": "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-2-1.png",
            "_date_published_rfc2822": "Fri, 24 Mar 2023 22:37:31 +0200",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "94",
            "_e2_data": {
                "is_favourite": false,
                "links_required": [
                    "jquery\/jquery.js",
                    "fotorama\/fotorama.css",
                    "fotorama\/fotorama.js",
                    "https:\/\/platform.twitter.com\/widgets.js",
                    "embedded-tweet\/embedded-tweet.js"
                ],
                "og_images": [
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-2-1.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-2-2.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-1.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-2.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-3-3.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-1.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-2.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-3.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-4.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-5.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-6.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-7.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-8.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-4-9.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-5-2-1-compress-video.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/_automation-5-2-2-compress-video.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/automation-7-1-w2400.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_5e4ed387-75ea-434f-80ad-54a6bbf25a92-transformed.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_c97b8485-4aa5-4fcc-aba3-c6bbdc06f756-transformed.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_35d6b34f-06c8-42a9-bb5f-a9f7d0228c89.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_366792c8-fc63-431c-adb1-e75029104bb6.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_augmentics_stay_with_laptop_at_the_large_f_b5de7f02-f43b-4fd6-b01c-4c33fcdace3e.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_bionic_robotic_mechanical_manipulator_in_h_4edd41d4-5a33-488d-ad2c-58255555764f.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_bionic_robotic_mechanical_manipulator_in_h_79d5dd21-a324-4f24-b5c2-ce37832c925b.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_5e4ed387-75ea-434f-80ad-54a6bbf25a92.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_15cc879c-6032-47b5-883c-56ccb48732cb.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_bb7622b8-8dac-41de-9925-d14892d79a05.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_man_with_extra_bionic_robotic_mechanical_manipulato_c97b8485-4aa5-4fcc-aba3-c6bbdc06f756.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_techmarine_warhammer_40k_style_with_robotic_arm_sit_092b8d8f-7132-4b40-9394-dd83607d6cb8.png",
                    "https:\/\/blog-archive.alexkolodko.com\/pictures\/alexkolodko_techno_spacemarine_warhammer40k_style_with_robotic__b100e5a6-8d87-4b47-83cf-3151991a242a.png"
                ]
            }
        }
    ],
    "_e2_version": 4134,
    "_e2_ua_string": "Aegea 11.3 (v4134)"
}