Антон Кошуба

Подборка нейронок на все случаи жизни

От генерации текстов до создания миров.

Создать текст

https://chat.mistral.ai/chat

Создать видео

https://openai.com/sora

Обработать фото

https://www.watermarkremover.io/ru — убирает водяные знаки с фото;

https://cleanup.pictures/ — быстро убрать лишние элементы с изображения;

https://www.upscayl.org/ — повышает качество картинки в 4 раза;

https://www.onlineocr.net/ru/ — вычленить текст с фотографии;

https://backgroundremover.app/ — удаляет фон.

Обработать звук

https://auphonic.com/ — чистит и выравнивает звук, убирает шумы;

Перевести на другой язык

https://www.deepl.com/translator — самый лучший текстовый ИИ-переводчик, учитывающий жаргонизмы и диалекты;

https://huggingface.co/spaces/sanchit-gandhi/whisper-jax — делает текстовую транскрипцию любого аудио и (по желанию) переводит ее на английский язык.

Создать уникальный контент

https://www.d-id.com/ — «оживит» ваше фото и заставит говорить то, что вы напишите. Есть возможность вместо текста использовать аудиодорожку;

https://uberduck.ai/ — огромная библиотека виртуальных голосов знаменитостей и персонажей из медиа;

https://huggingface.co/spaces/suno/bark — реалистично озвучит ваш текст с сохранением интонации;

https://www.musicfy.lol/ — позволяет создать ИИ-песню с голосом выбранного исполнителя;

https://app.runwayml.com/ — лучшая нейросеть для генерации коротких видео. Именно с ее помощью создают «нейронную рекламу»;

https://www.swapface.org/#/home — для простых дипфейков;

https://app.wavtool.com/ — музыка по текстовым подсказкам.

Для дизайнеров

https://app.mokker.ai/ — идеальный фон для фотографии;

https://flair.ai/ — оформляет идеальные карточки товаров;

https://namelix.com/ — сервис для нейминга;

https://brandmark.io/ — сервис для создания логотипа;

https://looka.com/ — полный инструментарий для брендинга;

https://turbologo.ru/ — создать логотип без помощи дизайн-студии. 

Для учебы

https://babyagi-ui.vercel.app/ — составляет пошаговые гайды для любой задачи;

https://courseai.co/ — создает курсы на заданную тему;

https://gamma.app/ru — создать презентацию

https://education.yandex.ru/tutor — ИИ-помощник по математике

Развлечься

http://quickdraw.withgoogle.com/ — вы рисуете, а нейросеть пытается угадать, что вы изобразили.

https://www.autodraw.com/ — конвертирует черновые «каракули» в полноценные картинки. Графический редактор поможет создать простые эмблемы и иконки.

http://skybox.blockadelabs.com/ — нейросеть создаёт красивые миры по описанию — пригодится, чтобы развивать фантазию и учиться формулировать мысли. Придумайте мир, который хотите увидеть. Например, опишите цвет неба, травы, деревьев. Расскажите о ландшафте: равнина, пустыня, море или горная местность. Опишите, что растет вокруг, есть ли дома. Переведите описание на английский язык — самостоятельно или через переводчик. Запрос должен уместиться в 383 символов. Вставьте описание в поле внизу экрана. Выберите, в каком стиле должна быть итоговая картинка. Нажмите кнопку Generate, и за минуту нейросеть сгенерирует 3D-картинку в 360° — вы можете смотреть по сторонам, вниз и вверх. А еще можно скачать этот пейзаж в виде картинки.

Российские нейросети

YandexGPT
https://ya.ru/alisa_davay_pridumaem

Шедеврум
https://shedevrum.ai/

RuGPT-3 GigaChat
https://developers.sber.ru/gigachat/login

Kandinsky
https://www.sberbank.com/promo/kandinsky/

Gerwin
https://gerwin.io/

Visper
https://visper.tech/

Порфирьевич
https://porfirevich.ru/

RoboGPT
https://robogpt.co/

CopyMonkey
https://www.copymonkey.app/

Всезнайка
https://turbotext.pro/ai

GitHub

Команды brew

В Homebrew есть несколько полезных команд для управления пакетами и зависимостями. Вот некоторые из них:

  1. brew cleanup
    Удаляет старые версии установленных пакетов и освобождает место на диске. Также можно использовать с флагом `-n`, чтобы увидеть, какие файлы будут удалены без их фактического удаления:
brew cleanup
  1. brew doctor
    Проверяет вашу установку Homebrew на наличие проблем и предлагает решения:
brew doctor
  1. brew prune
    Удаляет символические ссылки, которые больше не указывают на существующие файлы. В более новых версиях Homebrew эта команда может быть встроена в `brew cleanup`, но для старых версий она всё ещё может быть полезна:
brew prune
  1. brew autoremove
    Удаляет пакеты, которые больше не нужны другим установленным пакетам:
brew autoremove
  1. brew outdated
    Показывает пакеты, для которых доступны более новые версии:
brew outdated
  1. brew upgrade
    Обновляет все установленные пакеты до последних версий. Можно указать конкретный пакет для обновления:
brew upgrade
  1. brew uninstall
    Удаляет указанный пакет. Можно использовать флаг `—force` для принудительного удаления всех версий пакета:
brew uninstall пакет
  1. brew list
    Показывает список всех установленных пакетов:
brew list
  1. brew leaves
    Показывает установленные пакеты, которые не являются зависимостями других пакетов:
brew leaves
  1. brew search
    Ищет пакеты по запросы:
brew search <название приложения>

Эти команды помогут вам эффективно управлять установленными пакетами и поддерживать систему в чистоте.

Полный список команд Homebrew вы найдете на официальном сайте.

Макбук с домашним пивом 🍻

За несколько шагов разберемся и установим менеджер пакетов для макОС Homebrew.

Менеджер пакетов — это программа, с помощью которой можно устанавливать другие программы (пакеты) на свой ноутбук. Для макОС и Линукс есть менеджер пакетов, который называется Homebrew.

Представьте, что у вас есть виртуальный магазин приложений, откуда вы можете скачивать и устанавливать нужные программы, но не через привычный App Store, а через командную строку. Этот магазин — Homebrew. Он помогает устанавливать и обновлять программы буквально в несколько команд.

Это немного гигиковская штука подойдет скорее для айтишников или околоайти. Большинство пользователей привыкли пользоваться App Store или ходить на сайт разработчика, скачивать и устанавливать программы в ручную.

Почему это удобно?

Экономия времени. Вам не нужно искать программы в интернете, скачивать их с разных сайтов, открывать установщики. Всё происходит в автоматическом режиме.

Безопасность. Homebrew устанавливает проверенные программы из официальных источников, что снижает риск установки вредоносного ПО.

Обновления. С помощью одной команды вы можете обновить все свои программы, установленные через Homebrew, до последней версии.

Например, вы хотите скачать через торрент сериал «Дом дракона» и вам нужен торрент-клиент, например, Transmission. Без Homebrew вам пришлось бы:

  1. Искать сайт разработчиков.
  2. Выбирать подходящую версию программы для вашего Mac.
  3. Скачивать файл.
  4. Открывать установщик и проходить все шаги.

Звучит как минимум на 5-10 минут работы. А теперь представьте, что всё это можно сделать одной строкой:

brew install transmission

Homebrew автоматически найдет программу, загрузит нужную версию и установит ее за вас. Всё это произойдёт за считаные секунды.

Как это работает?

На Mac есть специальная программа под названием «Терминал», которая выглядит как обычное окно с текстом. Именно с её помощью работают с Homebrew. Когда вы вводите команду, компьютер понимает, что вы хотите сделать, и Homebrew выполняет всё за вас.

Как запустить «Терминал»?

Откройте приложение через поиск (используйте сочетание клавиш Cmd + Пробел и введите «Терминал»).

Вы увидите окно с мигающим курсором — это и есть место, где вводятся команды.

Что можно установить через Homebrew?

Homebrew — это не только программы для айтишников или сложные утилиты. С его помощью можно установить простые, но полезные вещи, например:
— Веб-браузеры.
— Программы для работы с текстами.
— Инструменты для хранения паролей.

Например, вы хотите установить браузер Firefox. Без Homebrew нужно было бы:

  1. Открыть Safari.
  2. Перейти на сайт Mozilla.
  3. Скачать установщик.
  4. Установить браузер.

А с Homebrew это делается за секунды:

brew install firefox

Как установить Homebrew?

Чтобы установить его на ваш макбук, нужно просто ввести одну команду в Терминале. Вот она:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Команды добавления brew в zprofile:

echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> /Users/$USER/.zprofile
eval $(/opt/homebrew/bin/brew shellenv)

После этого ваш компьютер сам установит Homebrew и всё будет готово к работе.

Почему стоит попробовать?

Многие новички боятся командной строки, но Homebrew — это отличное средство, чтобы начать её использовать. Он делает процесс установки программ быстрым и удобным, а после того, как вы установите его один раз, вы сможете экономить своё время при каждом следующем обновлении или установке программы.

Как бесплатно разместить сайт в интернете

Быстро разместим простой сайт в интернете за несколько шагов с помощью GitHub Pages — бесплатного сервиса для публикации статических веб-страниц.

Этот способ подойдёт, если вам нужно опубликовать простой сайт, статью, курсач в Школе редакторов или несложное портфолио. Если вы хотите поднять блог или проект с серверной логикой (PHP, Node.js, Ruby и др.), советую вам рассмотреть бесплатные хостинги, о них в следующей статье.

В этой статье мы не будем пользоваться терминалом и редактором кода, а сделаем всё через веб-интерфейс GitHub, так что у вас всё получится.

Шаги

Создайте аккаунт на GitHub
Создайте новый репозиторий
Добавьте HTML-файл в репозиторий
Активируйте GitHub Pages
Поделитесь ссылкой на сайт

1. Создайте аккаунт на GitHub

Для начала вам понадобится аккаунт на GitHub. Это платформа для хранения и совместной работы с проектами, чаще всего для кода, но она отлично подходит и для веб-сайтов.

  1. Перейдите на сайт GitHub
  2. Зарегистрируйтесь, если у вас еще нет аккаунта.

2. Создайте новый репозиторий

GitHub Pages работает на основе репозиториев (хранилищ), в которых хранятся все файлы вашего сайта. Чтобы опубликовать сайт, нужно создать репозиторий:

  1. На главной странице GitHub нажмите на кнопку New для создания нового репозитория.
  1. Дайте репозиторию имя — yourusername.github.io/name site/ (где yourusername — это ваше имя пользователя на GitHub, а name site — имя сайта). Это важно, так как репозитории с таким именем автоматически становятся активными сайтами на GitHub Pages.
  1. Сделайте репозиторий публичным (это необходимо для работы GitHub Pages).
  1. Нажмите Create repository.

3. Добавьте HTML-файл в репозиторий

На этом этапе вам понадобится HTML-файл, надеемся, что у вас он уже есть. Если нет, читайте, как сверстать статью в HTML за 7 шагов.

Проверьте, что файл называется index.html — это будет главная страница сайта.

Загрузите файл index.html в созданный репозиторий. Для этого:

  1. Нажмите на кнопку Add file > Upload files.
  2. Перетащите ваш index.html или выберите его через проводник.
  3. Нажмите Commit changes.

4. Активируйте GitHub Pages

Теперь, когда ваш репозиторий создан и в него загружен HTML-файл, осталось активировать GitHub Pages:

  1. В настройках репозитория (вкладка Settings) найдите раздел Pages.
  2. В разделе Branch выберите main (или другую ветку, если у вас она называется иначе).
  3. Нажмите Save.

GitHub активирует сайт, и через несколько минут он станет доступен по адресу yourusername.github.io/name-site.

5. Поделитесь ссылкой на сайт

Теперь ваш сайт доступен в интернете. Вы можете поделиться ссылкой на ваш GitHub Pages сайт в социальных сетях, мессенджерах или на других платформах. Если вам нужно внести изменения, просто отредактируйте HTML-файл и загрузите его заново в репозиторий.

Я помогаю экспертам, малому бизнесу и образовательным проектам с редактурой учебников, статей и гайдов. Пишу про информационные технологии и всё, что с ними связано.

Чтобы обсудить задачу, напишите: koshuba.pro@gmail.com

Полезные ссылки. Шри-Ланка

Чаты Шри-Ланки
https://t.me/srilanka_forum
https://t.me/Shri_Lanka_RU
https://t.me/lankaru
https://t.me/weligamnost
https://t.me/lankaruhikka

Трансфер
+7 911 897-55-35 Аня

Ресторан индийсокй кухни в Галле
https://maps.app.goo.gl/LFWXR5X4dJ2WhCjRA

Кафе А2 (А2 это название трассы)
https://maps.app.goo.gl/xDF4Fo5jTCDH1qSLA
Вообще ходим туда каждый день как в столовую

Аутентичное и недорогое кафе Sudha’s eatery
https://maps.app.goo.gl/4UFx5QiTpCWSF4VS6

Обменник с биржевым курсом в обычном магазине
https://maps.app.goo.gl/1x6WtHz3ugg9hzox7

Форт, но не Баярд, а Галле

Когда слышишь слово «форт», на ум приходит что-то вроде Форта Баярд — загадочного и немного таинственного. Но на Шри-Ланке есть свой форт Галле, который, хоть и без испытаний с тиграми, по-своему круче. Представь себе живописный город на берегу океана, где история буквально шагает рядом с тобой.

Галле — это место, где колониальная архитектура встречает тропические пейзажи. Старинные стены форта были построены еще португальцами в 16 веке, а потом доработаны голландцами. Эти массивные укрепления пережили не одну бурю и до сих пор стоят непоколебимо, защищая город от морских ветров.

Но Галле — это не только про стены и башни. Это еще и порт, который когда-то был центром международной торговли, куда со всех концов света приплывали корабли, гружённые пряностями, драгоценностями и другими сокровищами. Прогуливаясь по старинным улочкам, ты ощущаешь этот микс эпох и культур — каждый камень здесь как будто помнит шумный рынок, переговоры купцов и звон монет.

Совет от души: поднимись на стену форта на закате. Вид, как солнце тонет в океане, оставит тебя без слов — всё-таки время уносит много, но что-то остаётся неизменным, как эта красота.

Так что, если вдруг у тебя возникнет шанс оказаться на Шри-Ланке, обязательно загляни в Галле. Порт, форт, город — всё в одном, и каждая деталь тут пропитана духом приключений.

Национальный парк Мачахела

Находится в горах примерно в 30 км от Батуми. Добраться можно на личном или арендованном транспорте.

По пути вы встретите много всяких водопадов от мала до велика, мостиков 12 века постройки и различных туристических развлекух от рафтинга до зиплайна.

В разгар сезона туристов будет столько, что для фотки на мостике придется занимать очередь. Но чем выше в горы, тем меньше суеты и меньше туристов.

В финале нашей программы был ресторан с национальными песнями, танцами и полным столом еды. Ресторан находится… а вот попробуйте объяснить, где находится ресторан после литра домашнего вина. Видимо, где-то в горах, но виды шикарны.

Весь маршрут, не считая батумских пробок, занял 6 часов: 3 часа на водопады и мостики и 3 на ресторан с программой.

Ссылки на локации
Водопад Махунцети
https://maps.app.goo.gl/qYphThpRYurUyZAG9

Махунцети Мост Царицы Тамары
https://maps.app.goo.gl/a2StVCmjM899rVX57

Каменный арочный мост
https://maps.app.goo.gl/7znEsqQoFpW87Rej8

Ресторан Malakmadze family culinary and folklore
https://maps.app.goo.gl/FTve8mrF8p2m5rNV7

Мост Царицы Тамары
Если свернуть от шумной толпы туристов, можно найти хороший вид
Каменный арочный мост
Национальный фольклор

Шпаргалка. Базовые команды в терминале

Если вдруг вас покусал айтишник или айтишница и вам срочно понадобились команды для работы в терминале, то вот они.

Навигация

  • pwd — покажи, в какой я папке;
  • ls — покажи файлы и папки в текущей папке;
  • ls -a — покажи также скрытые файлы и папки, названия которых начинаются с символа (.);
  • cd имя_папки — перейди в папку;
  • cd first-project/html — перейди в папку `html`, которая находится в папке `first-project`;
  • cd .. — перейди на уровень выше, в родительскую папку;
  • cd ~ — перейди в домашнюю директорию (/Users/Username);
  • cd / — перейди в корневую директорию.

Работа с файлами и папками

Создание

  • touch index.html — создай файл `index.html` в текущей папке;
  • touch index.html style.css script.js — если нужно создать сразу несколько файлов, можно напечатать их имена в одну строку через пробел;
  • mkdir second-project — создай папку с именем `second-project` в текущей папке.

Копирование и перемещение

  • cp file.txt ~/my-dir — скопируй файл в другое место;
  • mv file.txt ~/my-dir — перемести файл или папку в другое место.

Чтение

  • cat file.txt — распечатай содержимое текстового файла `file.txt`. Содержимое откроется прямо в терминале.

Удаление

  • rm about.html — удали файл `about.html`;
  • rmdir images — удали папку `images`;
  • rm -r second-project — удали папку `second-project` и всё, что она содержит.

Полезные возможности

  • Команды необязательно печатать и выполнять по очереди. Можно указать их списком — разделить двумя амперсандами (`&&`).
  • У консоли есть собственная память — буфер с несколькими последними командами. По ним можно перемещаться с помощью клавиш со стрелками вверх (`↑`) и вниз (`↓`).
  • Чтобы не вводить название файла или папки полностью, можно набрать первые символы имени и дважды нажать `Tab`. Если файл или папка есть в текущей директории, командная строка допишет путь сама.

Как установить движок для блога Эгея

На примере хостинга Мастерхост

Эгея — это движок блога. Автор движка Илья Бирман. Вот официальный сайт https://blogengine.ru/

Эгея подходит для личных и коммерческих блогов. Установка как у всех: надо распаковать файлы движка на свой хостинг и зайти на страницу со стартовым скриптом. Чтобы не запутаться, пройдемся по каждому этапу.

Создайте базу данных на хостинге

Для этого зайдите в админ панель хостинга и найдите там раздел «MySQL» → «Базы данных» → «+ База MySQL»

Присвойте название базе данных и выберите пользователя.

Создайте каталог через файловый менеджер

Имя каталога будет именем страницы блога. Если вы хотите, чтобы блог открывался по адресу mysite/blog — назовите каталог blog.

Найдите в админ панеле раздел «Работа с файлами» → «FTP» → «Файловый менеджер»

Перейдите в mydomen/www и создайте там папку. В нашем примере это папка test-blog.

Скачайте Эгею и распакуйте в папку

Скачайте Эгею с официального сайта
https://blogengine.ru/get/

Разархивируйте и перенесите файлы в папку на хостинге — можно просто выделить все файлы и перетащить их в браузер.

Установите Эгею

Для этого перейдите на страницу своего блога: откройте новую вкладку браузера и введите адрес блога, в нашем примере это antonkoshuba.ru/test-blog/

Откроется окно установки. Внимательно заполните каждое поле:
Сервер, имя пользователя и пароль — эти данные Мастерхост отправлял на почту при оформлении хостинга.
Название базы — имя базы, которое мы присваивали на первом шаге.
Пароль к блогу — придумайте пароль администратора, чтобы входить в админ панель блога.

При правильном заполнении все строчки горят зеленым цветом, а кнопка «Начать блог» активна.

Нажмите «Начать блог»

Вы великолепны

Еще по теме
Эгея. Оформляем шапку блога

«Царицыно. Про любовь» Новый телеграм-бот для мобильного художественного театра

В начале мая ко мне обратился Алексей Киселев, креативный продюсер и художественный руководитель мобильного художественного театра, с просьбой разработать телеграм-бот для аудиоспектакля.

Мобильный художественный театр — это приложение для смартфонов с аудиоспектаклями. Создатель и руководитель — Михаил Зыгарь, в спектаклях участвуют известные актеры.

Афиша МХТ

Само приложение есть для айось и андроид. В айфонах за воспроизведение отвечает плеер, встроенный в приложение, то есть вы устанавливаете приложение, выбираете спектакль и запускаете его.

В смартфонах под управлением Андроид функцию воспроизведения перенесли в мессенджер телеграм: вы устанавливаете приложение, выбираете спектакль, который запускается в телеграм-боте.

Для каждого спектакля нужен свой бот, именно за разработкой такого бота Алексей обратился ко мне. И вот что из этого получилось.

Задача

Через две недели премьера нового спектакля «Царицыно. Про любовь». К этому времени надо собрать, протестировать и запустить телеграм-бот, чтобы пользователи могли насладиться новым спектаклем.

Тут надо сказать, что я не профессиональный разработчик. Я редактор и пишу про технологии, пока пишу — изучаю то, о чем пишу. Создаю и поддерживаю pet-проекты.

С Алексеем мы обсудили, что для реализации этой задачи нужен бот, который будет присылать цепочку сообщений пользователю:

Уточняю у Алексея, насколько длинная должна быть цепочка сообщений

Бот должен уметь присылать:

  1. Текст. Название главы, подсказки по маршруту.
  2. Геоточку. Откуда начинается спектакль и куда дальше идти.
  3. Аудиотрек. Непосредственно трек со спектаклем.
  4. Фотографии. Дополнительные подсказки на пути, куда смотреть.

Таких блоков в разной комбинации должно быть 27 штук.

Должно выглядеть примерно так

До этого я никогда не слушал аудиоспектакли в телеграме, поэтому мне было особенно интересно.

Учитывая, что времени на разработку было мало, я предложил собрать бот в конструкторе puzzlebot. Это значительно сократит время, но чтобы собрать такой бот, нужен платный тариф. Алексей с этим согласился.

Пока звукорежиссер собирал финальные треки, а фотограф переснимал фотографии Царицыно, я приступил к сборке бота.

Решение и реализация

Сначала думали, что можно выдавать сообщения с определенным таймингом, например, трек 10 минут, на 11 минуте приходит картинка, на 12 минуте — следующий трек и т.д. Тогда слушатель, по идее, будет больше погружен в атмосферу, мол включил спектакль, сунул смарт в карман и пошел.

Никаких кнопок, сообщения приходят по расписанию

Но пока собирал бот, понял, что, лучше оставить кнопку «Продолжить», чтобы человек сам мог решать, когда продолжить слушать спектакль. Потому что на человека на улице влияет много факторов: светофоры, количество прохожих, погода, кто-то идет быстро, кто-то медленно.

По задумке, человеку нужно будет периодически смотреть в смартфон на фотографии, сверяться с геотегами, и кнопка «дальше» для него будет логичным переходом к следующему шагу. В другом случае получится так, что весь контент придет как поезд по расписанию, независимо от воли человека.

Добавили кнопки, упорядочили блоки

Все обсудили с Алексеем и решили сделать цепочку сообщений с кнопкой «Продолжить». Как раз к этому моменту весь контент был готов для загрузки в бот. Я всё быстро собрал и передал на тестирование.

Передал бот на тестирование

Пока тестировали, нашли баг с плеером телеграма — по умолчанию телеграм проигрывает треки в режиме обратной последовательности, то есть когда трек заканчивается — начинается воспроизведение предыдущего трека, а нам нужно было, чтобы плеер останавливался.

Нашли баг и решили сделать инструкцию для пользователей

Чтобы это решить, сделали дополнительный блок, в котором показали, как изменить последовательность воспроизведения треков.

Объяснили как изменить последовательность воспроизведения

И шлифанули сценарий

Синхронная работа: Алексей меняет сценарий, я — вношу изменения в бот

Результат

В результате получился бот с цепочкой из 41 блока, навигацией, сценарием и статистикой.

Каждый блок представляет из себя обычную команду, в которой в разных комбинациях есть:
— текст
— аудиотрек
— геолокация
— изображение
— в конце каждого блока есть кнопка «Продолжить».

Так выглядит блок в конструкторе телеграм ботов

Собрать один блок и сделать копии не получится, потому что в каждом блоке свой контент и тайминг.

Так выглядит конструктор бота

А вот так выглядит бот в телеграме

Дальше я передал бот Алексею. Мы договорились, что первое время я буду поддерживать бот.

Взаимные благодарности в конце проекта

Команда

Креативный продюсер и художественный руководитель — Алексей Киселев
Разработчик — Антон Кошуба

Где послушать спектакль

Аудиоспектакль «Царицыно. Про любовь» можно послушать в приложении МХТ, вот ссылки
Сайт мобильного художественного театра
Ссылка на приложения для айфона
Ссылка на приложение для андроида
Ссылка на телеграм-бот

Что дальше

Мы успели в срок, премьера состоялась, а люди слушают аудиоспектакль в приложении и телеграм-боте.

Я занимаюсь редактурой для экспертов, малого бизнеса и образовательных проектов: помогаю с учебниками, статьями, гайдами, запускаю блоги, верстаю сайты. Моя цель — помочь клиентам в создании образовательных проектов.

Чтобы обсудить задачу, напишите: koshuba.pro@gmail.com

Ранее Ctrl + ↓