Про дизайн, міста та дизайн у містах, кодінг та автоматизацію

Пізніше Ctrl + ↑

QA: Автоматизація компресії зображень

Q: А якщо до імдж компресії? Чи можно автонакидувати термінальні команди?

A: По компресії є кілька методів. Зняв відео, а нижче опис:

Автоматитизація компресії зображень

1. ImageOptim


На Мак є програма ImageOptim. Пачкою оптимізує будь-яку кількість картинок. Працює на алгоритмі PNGQuant і також доступний, як програма для терміналу.

2. Terminal: optipng, jpegopti, gifsicle, svgo

Є кілька програм оптимізації зображень для термінала:

а) Для PNG є PNGQuant, pngcrush та optipng. Останній також вміє конвертувати BMP, GIF, TIFF у PNG, сайт. На його прикладі і подивимось.

Працює так: оптимізує всі файли PNG у теці

optipng *.png

Або ще отакий :

find . -name '*.png' | xargs optipng -nc -nb -o7 -full

А отак рекурсивно шукає та оптимізує PNG у всіх підтеках:

find . -iname "*.png" -exec optipng -o7 {} \;

б) jpegopti для JPG. Github

Працює так:

jpegoptim -m70 img-name

-m70 — відсоток стискання

в) gifsicle для GIF. Сайт.

Для одного зображення:

gifsicle --batch -V -O2 image-name.gif

Так само рекурсивно шукає та оптимізує GIF у всіх підтеках:

find . -iname "*.gif" -exec gifsicle --batch -V -O2 {} \;

г) svgo для SVG.

Працює так для всіх файлів:

svgo *.svg

Інсталюються всі вони через Homebrew:

brew install optipng

3.1 Automator: quick action

Попередні команди збираємо у окремий bash-скріпт, сценарій для автоматора та сценарій на теку.

Сценарій будується так:

  • отримання файлів (у даному випадку всі виділені)
  • встановлення хз як змінних для скрипта (Set Value та Get Value)
  • запуск bash-скрипта на виділених файлах (Run Shell Script, з налаштуваннями Shell /bin/bash та Pass Input: as arguments)

Завантажити цей сценарій (попередньо треба встановити термінальні команди optipng, jpegopti, pngcrush, svgo).

Сам скрипт:

export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:$PATH

BIN_PATH=~/Library/Services/.bin

for f in "$@"; do
    if [ -d $f ]; then
        echo "TODO: nothing to compress now!"
    elif [[ $f == *.png ]]; then
        if hash optipng 2>/dev/null; then
            optipng -o7 "$f"
        else
            $BIN_PATH/optipng -o7 "$f"
        fi
        if hash pngcrush 2>/dev/null; then
            pngcrush -brute -reduce -ow "$f"
        else
            $BIN_PATH/pngcrush -brute -reduce -ow "$f"
        fi
    elif [[ $f == *.jpg ]]; then
        if hash jpegoptim 2>/dev/null; then
            jpegoptim "$f" --strip-all --force --all-progressive --size=150k
        else
            echo "No jpegoptim installed, skipped."
        fi
    elif [[ $f == *.svg ]]; then
        if hash svgo 2>/dev/null; then
            svgo "$f"
        else
            echo "No SVGO installed, skipped."
        fi
    else
        echo "TODO: nothing to compress now!"
    fi
done;

3.2 Automator: folder action

А на теку попередній сценарій підлаштовується просто з відключеним першим кроком. А на теку попередній сценарій підлаштовується просто з відключеним першим кроком. Завантажити скрипт для теки.


?

Розкажіть, будь ласка, які дії з файлами вам доводиться періодично повторювати? Які рутинні задачі у вас бувають? Мені цікаво, які задачі можливо автоматизувати. Напишіть на пошту або у телеграм. ▶️ Більше у телеграм-каналі «Здоровий глузд» — https://t.me/alexkolodko1

Схеми транспортних вузлів

Дизайнер малює 3д-схеми станцій метро різних міст — http://stations.albertguillaumes.cat

Цікавий формат, хоча навігаційної користі від таких схем мало. Деякі вузли настільки складні, як от станція Nation у Парижі, що жодна схема не може передати, як і куди рухатись, щоб перейти з однієї станції на іншу. У таких випадках працюватиме лише навігація по лініях.

PROJECT SUBWAY NYC — http://www.projectsubwaynyc.com/3d-models

3D maps of every Underground station — https://www.ianvisits.co.uk/articles/3d-maps-of-every-underground-station-ab-14630

QA: Автоматизоване перейменування файлів

Q: Часто доводиться додавати декілька слів на початку назв 10 файлів у папці. Цікаво, чи можна зробити так, щоб можна було прописувати ці декілька слів один раз, а вони додавалися до назв всіх файлів у папці автоматично?

A: Так, на Маку по перше можна напіввручну через функцію перейменування файлів додавати всім файлам на початку назви певне слово.

А також в Автоматорі → Rename Finder Items. Там серед варіантів є додавання тексту до чи після назви файлу. До речі, ця функція в Автоматорі більш просунута, ніж звичайне перейменування у Finder. І використовувати можна або через контекстне меню → Quick Actions, або створити автоматизацію для теки.

Ще можна перейменовувати файли у певному форматі, наприклад, по днях року, за допомогою bash-скрипта: https://blog.alexkolodko.com/all/mass-rename/


?

Розкажіть, будь ласка, які дії з файлами вам доводиться періодично повторювати? Які рутинні задачі у вас бувають? Мені цікаво, які задачі можливо автоматизувати. Напишіть на пошту або у телеграм. ▶️ Більше у телеграм-каналі «Здоровий глузд» — https://t.me/alexkolodko1

Автоматизація у папках у Mac OS за допомогою Automator

На Маку можна на певні теки повісити автоматизацію, при чому можна створити доволі багато різних дій, які обмежені тільки функціями Автоматора (а при знанні Apple Script так і взагалі будь-що у системі можна зробити). Реалізація дещо крива, але в цілому працює.

Швидке демо: файл HEIC конвертується у JPG, а далі копіїються у окрему теку, зменшується на 50% та у назву додається текст «_50%».

Як це працює

Для цього знадобляться два системні інструменти: Automator та Folder Action Setup. У Автоматорі створюється саме автоматизація для теки (folder action), обирається конкретна тека та налаштовується конкретна послідовність дій (workflow) з файлами, які до неї потрапляють. 

Створення дії для теки в Автоматорі

Приклади послідовностей:

  1. Конвертація картинок у формат JPG.
  2. Збереження копії картинки у теці під назвою «50», конвертування картинки у JPG, зміна розміру та  додавання до назви тексту «_50%».
Приклади послідовностей

У Folder Action збираються всі наявні дії на теках, які можна переглянути, додати, вимкнути чи видалити. При цьому створивши одну послідовність дій, її можна застосовувати для різних тек. А також для однієї теки можна налаштувати будь-яку кількість сценаріїв, які відтворюватимуться послідовно: наприклад, конвертувати всі картинки у JPG, а потім зробити копію з розміром 50% від оригіналу та покласти цю копію в окрему теку.

Інтерфейс Folder Action Setup

Також детальне пояснення автоматизації тек: https://macosxautomation.com/automator/folder-action/index.html


?

Розкажіть, будь ласка, які дії з файлами вам доводиться періодично повторювати? Які рутинні задачі у вас бувають? Мені цікаво, які задачі можливо автоматизувати. Напишіть на пошту або у телеграм.

Гіперболізація

Якщо взяти якийсь прийом та максимально його перебільшити та гіперболізувати, то і навігація стає мистецтвом.

Вхід на експозицію у музеї мистецтв у Філадельфії (Philadelphia Museum of Art):

Philadelphia Museum of Art

Раніше Ctrl + ↓