Как стать автором
Обновить
12
0
Сергей Еремин @Sergei_Erjemin

Пользователь

Отправить сообщение

Как я тестировал российские фоторедакторы, полжизни проработав в Фотошопе

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров45K

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

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

Читать далее
Всего голосов 81: ↑90.5 и ↓-9.5+100
Комментарии162

Разработка ТамТам-бота на Python

Время на прочтение10 мин
Количество просмотров12K


Привет, Хабр! Позвольте представиться: меня зовут Сергей Агальцов, и я "программист по жизни". Это значит, что я давно уже IT-менеджер, а вовсе не программист по профессии, но программирование использую постоянно, как в своей основной деятельности, так и как хобби. Как часто говорил один из моих бывших начальников — "Серёга! Ты опять скатился в программирование!" Правда, не могу сказать, что этим был сильно не доволен он или кто-то другой когда-либо.


После появления Bot API у мессенджера ТамТам, я как истинный, а значит ленивый программист, создал 2 библиотеки Python для работы с ним:


  • open API клиента (далее — OAC) — изначально сгенерировал её при помощи OpenAPI Generator на основе схемы API, затем адаптировал с учётом особенностей генератора;
  • оболочку для этого клиента — TamTamBot (далее — TTB), упрощающую работу с OAC.

Так появился некий ТамТам Python SDK.


Сделал это я в первую очередь "для себя, для души", но также предложил и комьюнити ТамТам при желании им воспользоваться. Но, как известно, ни одно доброе дело не остаётся безнаказанным — народ попросил написать обучающую статью. И вот я здесь с этой статьёй. В ней я расскажу, как разработать простого бота при помощи этих библиотек.

Читать дальше →
Всего голосов 63: ↑46 и ↓17+29
Комментарии52

Apple Wallet. Что это такое и как интегрировать в него свою карту

Время на прочтение8 мин
Количество просмотров65K

Принято считать, что Wallet – не самый популярный сервис в СНГ. Но уже во втором проекте подряд заказчик ставит задачу «Сделать интеграцию с Wallet». Поэтому я решил написать эту статью, чтобы рассказать о сервисе в целом и показать, как интегрировать в него свой продукт.


Что такое Wallet? Он позволяет держать в телефоне различного вида карты (билеты, скидочные карты и т.п.), облегчая жизнь пользователям продукта. Более того, есть возможность актуализировать информацию о карте посредством push-уведомлений, но это тема для отдельной статьи. Но если у вас есть карта/билет/абонемент, которые можно интегрировать в телефон, то для этого есть решение! Как это сделать – читайте ниже.

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии13

Отправляем и принимаем SMS с помощью SIM868 и Repka Pi

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров3.6K

В этой статье мы продолжим рассказ об использовании модуля GSM/GPRS/GNSS Bluetooth HAT, созданного на базе SIM868, для беспроводной передачи данных в виде СМС-сообщений через Российский одноплатник Repka Pi. Такой способ даже в наше время актуален, когда нужно управлять автоматикой или другими устройствами, когда 2G/3G/4G и даже GPRS не позволяет это делать из за удалённости/помех или по иным причинам и важно обеспечить высокую надёжность управления.

Это третья статья данного цикла и из первой статьи вы узнали, как с помощью упомянутого модуля обмениваться данными между микрокомпьютером Repka Pi с JSON-сервисом, доступным в интернете, по каналу GPRS. Вторая статья рассматривает такой обмен глубже, на уровне AT-команд, передаваемых в модуль через UART.

Теперь настала очередь рассказать об отправке и приеме коротких текстовых сообщений SMS (Short Message Service). Этот канал передачи данных пригодится, например, в тех случаях, если в месте расположения вашего оборудования недоступен ни WiFi, ни GPRS.

Сообщения SMS можно передавать в текстовом режиме, а также в так называемом режиме PDU (Protocol Data Unit). В первом случае длина сообщения не может превышать 160 байт, и в нем не должно быть символов кириллицы. Пользоваться режимом PDU сложнее, но в нем нет этих недостатков.

Далее мы рассмотрим работу в обоих режимах как с помощью Python и библиотеки RoverConnect, так и через AT-команды.

Вы научитесь получать список сообщений, кодировать и раскодировать сообщения PDU вручную, а также с помощью специально предназначенных для этого онлайн-сервисов, удалять сообщения и выполнять другие операции с SMS с помощью AT-команд.

Читать далее
Всего голосов 14: ↑13 и ↓1+12
Комментарии8

Скрытые возможности элемента <input>

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров17K

Элемент <input> в HTML самый интересный.

Большинство его собратьев вне зависимости от своих атрибутов ведут себя одинаково. При этом атрибут type элемента <input> может принимать 22 разных значения, которые не только меняют его поведение, но и влияют на внешний вид (зачастую в ущерб стилистике).

Элемент <input> отвечает за всё, начиная с текстового ввода и чекбоксов, заканчивая переключателями и кнопкой для сброса всех полей в форме. В этой статье я опишу не только различные типы <input>, но и сопутствующие атрибуты, о которых вы могли не знать, и которые делают этот элемент более удобным и применимым в различных ситуациях. Приступим!
Читать дальше →
Всего голосов 103: ↑102 и ↓1+101
Комментарии22

Публикация локального сервера из дома в интернет

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров39K

Приветики. Надеюсь, все отошли от новогодних, и можно писать и читать дальше. Как хозяин умного дома, я состою в чатике по Home Assistant, там прекрасное ответчивое комьюнити,
но периодически задаётся вопрос по тому, как собственно выставить свой веб сервис в интернет. И оказывается, что в двух словах тут не ответишь, а вменяемой инструкции на которую можно дать ссылку - нет. Так что теперь она будет здесь.

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

Мы рассмотрим здесь несколько сценариев - статический белый айпи, динамический белый айпи, и серый. Для серого рассмотрим варианты с готовыми сервисами, с помощью Keenetic и с помощью ssh туннеля. Погнали!

Читать далее
Всего голосов 66: ↑64 и ↓2+62
Комментарии97

NumPy: оттачивайте навыки Data Science на практике

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров18K

В этой статье мы рассмотрим ряд различных упражнений, используя библиотеку NumPy (и сравним с тем, как мы бы реализовали их без неё). В самом конце статьи я приведу ряд упражнений.

t.me/ai_machinelearning_big_data -  моем телеграм канале я публикую актуальные проекты курсы, уроки и примеры с кодом по машинному обучению.

Для этой статьи рекомендуется, чтобы читатель имел средний уровень знаний Python, NumPy, numpy.dtypenumpy.ndarray.strides, и numpy.ndarray.itemsize. Краткое введение в массивы и NumPy см. в разделе 💡 Немного предыстории ниже.

Рекомендуемые бесплатные курсы и гайды:

Читать далее
Всего голосов 18: ↑18 и ↓0+18
Комментарии12

Делаем из старого усилителя многофункциональный медиа сервер с помощью Raspberry pi

Время на прочтение8 мин
Количество просмотров27K

У кого из нас нет добротной техники из прошлого, которая работает так, как и не снилось множеству ширпотребных вещей из настоящего. Старые усилители, проигрыватели пластинок и радиолы. Да, было время, когда не умели делать хрупко и недолговечно в погоне за дешевизной. Эти вещи еще проработают долго. И звучание какого-нибудь старого усилителя будет радовать и нас и наших детей.

Правда, в них отсутствует много всяких цифровых штучек. Разные flac и тому подобные форматы. Управление проигрыванием, музыкой и фильмами через телефон или компьютер. Возможность запустить музыку с Youtube, Last.fm или выбрать интернет радио. Удаленное проигрывание медиа через DLNA. Или просто возможность подключить ваш компьютер через Bluetooth и выводить весь звук через большие колонки. Или что там еще напридумывают нам в будущем для облегчения нашей аудиофильской жизни.

Но что нам мешает использовать все эти технологии в старой технике? Да и почему обязательно в старой… У вас есть RCA, miniJack 3.5 или S/PDIF разъем на вашей магнитоле? Тогда мы идем к вам и … И делаем из старого усилителя многофункциональный медиа сервер с помощью Raspberry Pi. Подключаем нашу Raspberry Pi через RCA и обновляем нашу технику до "острия технологической атаки". Не обязательно использовать RCA. Найдите аналоговый или цифровой вход на своей технике и выберите нужную комплектацию вашей Raspberry Pi. Я буду рассматривать вопрос сугубо с практической точки зрения. Как настроить все быстро на Raspberry Pi? Ведь статей профессионалов об особенностях работы той или иной технологии достаточно, чтобы не останавливаться на этом. Я возьму в качестве примера Raspberry Pi и плату для цифровой обработки звука на основе чипа PCM 5102 A .

Читать далее
Всего голосов 24: ↑24 и ↓0+24
Комментарии16

Организация видеонаблюдения при помощи Raspberry Pi и веб камеры Logitech

Время на прочтение8 мин
Количество просмотров23K

В данной статье хотелось бы поделиться одним простым и доступным способом как мне удалось организовать видеонаблюдение за подъездом при помощи малинки и бытовой веб камеры. Думаю, у многих нынче в закромах завалялись уже не нужные вебки. Сужу по себе, раньше, в эпоху преобладаня десктопов такая камера была вещью весьма необходимой для желающих показать себя собеседнику, а то и миру. Однако время идет, десктопы все больше заменяются ноутбуками, планшетами и телефонами, имеющими на борту свою камеру. Но зачем же добру лежать без дела?

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

История этого проекта началась с покупки Raspberry 3b+. После получения и первичной настройки сего чудо-девайса встал нетривиальный вопрос: "Хорошо, ну а дальше то что?". Ведь покупал я ее не с конкретной целью - а скорее как катализатор погружения в волшебный мир компьютерных технологий. Забегая вперед, скажу, что план оказался отличным и работает по сей день).

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии29

Что такое дизайн-токены простыми словами

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров16K

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

Про принципы наименований, экспорт токенов из фигмы и передачу токенов разработчикам.

Ознакомиться со статьей 👏🏼
Всего голосов 31: ↑31 и ↓0+31
Комментарии4

Shadowsocks-туннелирование корпоративного VPN

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров42K

Если у вашей компании имеются серверы, работающие за границей, и доступ для внутренних пользователей вы предоставляете посредством VPN-протоколов (достаточно типовая схема, особенно после Covid — 2019, когда удалённая работа стала особенно популярной), то настало время действовать на опережение. Конечно, применение административного ресурса, возможно, защитит ваши интересы от тотальных проблем в будущем, но лучше подстраховаться, чем в один прекрасный день получить 100500 сообщений от систем мониторинга о недоступности опекаемых клиентов. Статья демонстрирует, как скрыть от противодействия со стороны систем глубокого анализа трафика сервисы компании, доступ к бизнес-процессам которых обеспечивается посредством VPN, используя для этого туннели shadowsocks.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии54

Прокачиваем вёрстку ARIA атрибутами. Атрибут aria-label

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.2K


Cегодня я хочу рассказать про атрибут aria-label. В статье не будет заумных определений и бездумного копирования стандарта. Я хотел простым языком объяснить, какая польза от атрибута, а также передать свой практический опыт, чтобы вы могли его повторить. А получилось у меня или нет, решать вам.


Со вступительным словом всё. Давайте начнём!

Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии7

Очередной ответ на вопрос: «Зачем нужна семантика?»

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров5.1K

Этот вопрос преследует меня всю мою карьеру, начиная с 2013 года. Одни разработчики отвечают, потому что так правильно. Другие говорят про SEO. Третьи — ничего не говорят. А я считаю, что атрибут role является отличным ответом на этот вопрос!

Читать дальше →
Всего голосов 48: ↑48 и ↓0+48
Комментарии0

Пять Docker-утилит, о которых вам стоит узнать

Время на прочтение5 мин
Количество просмотров35K

Источник изображения


На просторах сети Интернет можно найти немало полезных утилит для Docker. Многие из них принадлежат к разряду Open Source и доступны на Github. В последние два года я достаточно активно использую Docker в большинстве своих проектов по разработке программного обеспечения. Однажды начав работать с Docker, вы осознаете, что он оказывается полезен для гораздо более широкого круга задач, нежели вы изначально предполагали. Вам захочется сделать с Docker еще больше, и он не разочарует!


Docker-сообщество живет активной жизнью, ежедневно производя новые полезные инструменты. За этой бурной деятельностью достаточно сложно уследить. Поэтому я решил выбрать несколько наиболее интересных и полезных из ежедневно используемых мной Docker-утилит. Они делают работу более продуктивной, автоматизируя операции, которые пришлось бы выполнять вручную.


Давайте посмотрим на утилиты, которые помогают мне в процессе докеризации всего и вся.

Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии16

Настраиваем двухступенчатый WireGuard для выхода из страны

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров44K

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

В начале августа некоторые интернет операторы и провайдеры начали блокировку протокола WireGuard в РФ по его рукопожатию.

Лично испытывал блокировку у Мегафон и Теле2, но не заметил у Ростелеком. VPN по-прежнему работал через последнего.

Очень не хотелось отказываться от Wireguard в пользу прокси-серверов в духе VLESS+TLS-Vision, в виду того, что все наши пользователи уже сильно привыкли именно к Wireguard.
Поэтому вариант с кардинальной сменой клиентского софта не рассматривался.

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

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии50

Простые правила при работе с растровыми изображениями на каждый день

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров11K

Привет, меня зовут Денис, я руковожу направлением разработки в Домклик. Дополнительно несу ношу лидера frontend-направления в нашей компании. Не так давно я отрефакторил систему собеседований для frontend-разработчиков, попутно тестируя технические вопросы на внешних и внутренних респондентах. И пришёл к выводу, что множество мной опрошенных разработчиков, вне зависимости от уровня, не знают или просто не обращают внимание на базовые правила при работе с картинками. В результате на просторах интернета зачастую можно найти изображения размером 200 на 200 пикселей и весом в несколько мегабайтов со смещением макета, столь раздражающим пользователей. Если вам интересно, как практически без вложений улучшить пользовательский опыт, то прошу под кат.

Читать далее
Всего голосов 54: ↑50 и ↓4+46
Комментарии21

Проксируем OpenVPN с помощью Cloak

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров52K

Cloak — это подключаемый транспорт, который расширяет возможности традиционных прокси-инструментов, таких как OpenVPN, Shadowsocks и Tor для обхода сложной цензуры и дискриминации данных.

Руководство будет включать:

1. Предисловие

2. Описание работы Cloak

3. Настройку сервера Cloak

4. Настройку клиента Cloak на OpenWRT

5. Настройку клиента OpenVPN

Читать далее
Всего голосов 34: ↑34 и ↓0+34
Комментарии59

Бесконечное радио создаваемое нейронными сетями. Open-source проект

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров12K

Привет всем увлеченным нейронными сетями или тем, кто хочет вникнуть в технологии. Сегодня я хотел бы познакомить вас со своим захватывающим проектом с открытым исходным кодом «Бесконечное нейронное радио». Бесконечное, потому что lofi музыка и подкасты могут генерироваться нейронными сетями бесконечно. В этой статье я бы хотел углубиться в то, как все работает изнутри.

Вдохновением для этого проекта послужило для меня разочарование в моем любимом музыкальном приложении. Поскольку со временем приложение стало не удобным для меня, я почувствовал потребность создать что‑то свое с лофи‑музыкой — жанра, который помогает сосредоточиться во время программирования или просто служит расслабляющим фоном в вечернее время. Приложение содержит цитаты, сгенерированные нейронными сетями, в сопровождении GIF‑анимации в пиксельном стиле, которая тоже частино сгенерировано нейронными сетями. Если подкасты вам не по душе, вы можете их отключить и выбрать только нейронную музыку или даже настроиться на радиостанцию, которая уже делается людьми.

Узнать как работает
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров31K

После написания программы ее можно модифицировать и добавить графический интерфейс — с Python это проще, чем кажется. Для программирования красивого и функционального GUI иногда достаточно простого знания html и css.

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →
Всего голосов 56: ↑53 и ↓3+50
Комментарии61

Теперь наш синтез на 22 языках с кириллицей и ещё в 4 раза быстрее

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.6K


Источник карты — Проект «Языки России» Институт языкознания РАН, 2021 год

Давненько мы не выпускали новых статей про наш синтез речи! В прошлый раз мы добавили синтез на 9 языках народов Индии, существенно улучшили автоматическую простановку ударений, добавили 1 русский голос и "наследовали" SSML для всех моделей.


В этот раз мы сделали следующее:


  • Ускорили все v4 модели в 3-4 раза;
  • Существенно повысили качество синтеза в 8 kHz;
  • Обновили и пересобрали нашу модель для русского языка;
  • Обновили модель для 9 языков народов Индии с 17 голосами;
  • Добавили единую модель для 22 языков с кириллическим алфавитом с 31 голосом;
  • Прекратили поддержку моделей романо-германских языков (старые модели будут доступны для скачивания без изменений);
  • Обновили модели для языков народов СНГ: узбекского и украинского (татарский и калмыцкий были "поглощены" единой моделью);
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии15
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Fullstack Developer, Web Developer
Middle
От 160 000 ₽
Django
Flask
Git
Python
SQL
Linux
Nginx
Database
Designing application architecture
Docker