Как стать автором
Обновить
0
@cubespaceread⁠-⁠only

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

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

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

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

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

Проблем много, а решение одно: сделать Телеграм бот, который будет работать посредником между вашими пользователями/клиентами и вашей командой поддержки.

Я расскажу, как запустить такого бота бесплатно в 1 клик, и поделюсь кодом.

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

Сборник полезных ссылок для системного администратора

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


Сборник полезных ссылок для системного администратора, руководства, инструкции, учебные курсы, секреты-советы и многое другое – ниже в нашем еженедельном посте.
Читать дальше: Сборник полезных ссылок для системного администратора
Всего голосов 15: ↑5 и ↓10-4
Комментарии10

Как мы в Dropbox перешли с Nginx на Envoy

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

В этой статье мы будем говорить о нашей старой инфраструктуре, основанной на Nginx, ее болячках, а также выгоде, которую мы получили после миграции на Envoy. Мы сравним Nginx и Envoy различными способами. Также кратко коснемся процесса миграции, текущего состояния, а также проблем, возникших при переходе.


Читать дальше →
Всего голосов 76: ↑74 и ↓2+95
Комментарии69

Пишем веб сервис на Python с помощью FastAPI

Время на прочтение17 мин
Количество просмотров114K
image

Знаю, знаю, наверное вы сейчас думаете «что, опять?!».

Да, на Хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами, аутентификацией, миграциями и асинхронной работой с БД.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+22
Комментарии27

Хобби ИТшника на удаленке: 3D-печать, лазеры, DIY-классика

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


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

Если вы читаете это, то скорее всего так или иначе связаны (профессионально) с ИТ-сектором. Так уж получилось, что многие результаты нашей работы нельзя «пощупать руками». Да, за спиной могут быть годы опыта и свернутые горы кода, решённых задач, построенных инфраструктур… Но это всё — «где-то там». Лично мне очень не хватает ощущения, что я создал что-то, что могу осязать: просто взять в руки и потрогать, поставить на полку…

Не претендуя на сколь-либо универсальный вариант решения этой проблемы, расскажу о том, как с ней справляются некоторые из инженеров нашей компании.
Всего голосов 54: ↑54 и ↓0+54
Комментарии21

Управляем офисом с помощью простого telegram-бота

Время на прочтение5 мин
Количество просмотров10K
Привет, Хабр! Меня зовут Александр, я работаю в компании FINCH. Мы создаем приложения для крупных брендов вроде «Спартака», «Столото» и «Газпром-медиа».

Помимо клиентских проектов, мы очень любим создавать внутренние проекты — для веселья и удобства. Круто, когда ты с коллегами можешь придумать суперприложение или бота для стендапов. Так же появился внутренний бот для открытия дверей и просмотра камер, о котором я расскажу в этой заметке.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии19

Изучаем mutmut — инструмент для мутационного тестирования на Python

Время на прочтение3 мин
Количество просмотров7.9K
Мутационное тестирование позволяет выявить баги, которые не покрыты обычными тестами.

У вас есть тесты на все случаи жизни? Или может быть, в репозитории вашего проекта даже лежит справка «О 100-процентном тестовом покрытии»? Но разве в реальной жизни всё так просто и достижимо?


Читать дальше →
Всего голосов 20: ↑18 и ↓2+22
Комментарии8

Поверхностный монтаж: трафарет и печь оплавления в домашних условиях

Время на прочтение5 мин
Количество просмотров114K
Печатная плата с поверхностными компонентами

Когда начинаешь искать возможности произвести на продажу малую партию собственных электронных устройств, то обнаруживаешь, что эту задачу можно решить, не вставая с кресла. Например, так работает сервис Seeed, организующий не только производство, но и продажу ваших устройств. Если же вы не уверены, будет ли спрос, или просто желаете сэкономить, то оптимальным вариантом, на мой взгляд, будет заказать печатные платы где-нибудь в Китае, а себе оставить монтаж поверхностных (SMD) компонентов в домашних условиях. Я хочу рассказать, как можно существенно ускорить поверхностный монтаж с помощью самодельных трафаретов и импровизированной печи оплавления.
Читать дальше →
Всего голосов 57: ↑57 и ↓0+57
Комментарии67

Шлюз+шейпер для домашней сети на Ubuntu

Время на прочтение4 мин
Количество просмотров30K
Моя домашняя сеть разрослась до количества трех компьютеров. В связи с чем началась дележка: кто будет качать первым.
Иногда даже страничка в ФФ открывается по 2-3 минуты, так как на соседнем компе во всю качает торрент.
Советом системных администраторов (то есть мной) было принято решение создать шлюз c шейпером который будет динамически делить канал на всех.
Ну начнем
Читать дальше →
Всего голосов 82: ↑69 и ↓13+56
Комментарии50

Мониторинг через UptimeRobot

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

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

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

В большинстве случаев UptimeRobot шлёт HTTP-запросы на указанный адрес и по заголовкам ответа определяет его доступность (2хх — всё ок, 4хх/5хх — в течение 30 секунд обстреливает повторными запросами из других точек, если ответ снова отрицательный, засчитывается downtime).
Читать дальше →
Всего голосов 25: ↑23 и ↓2+31
Комментарии7

Двухфакторая аутентификация VPN/Mikrotik – просто и масштабируемо

Время на прочтение13 мин
Количество просмотров22K
Здравствуйте!

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

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

  • Низким уровнем вхождения и простотой кода (для понимания/отладки другим сотрудником)
  • Простые скрипты ROS не создают никакой нагрузки и работают даже на hAP Lite
  • Масштабируемость – возможность подключения большого количества VPN-шлюзов с целью снижения нагрузки или географического распределения
  • Возможность использования Mikrotik CHR в качестве VPN-сервера
  • «1хN» – 1 SMS-шлюз на неограниченное количество роутеров с возможностью расширения при росте нагрузки
  • Возможность привязки отдельного роутера к «конкретному» модему (для чего? – об этом позже)
  • Использование всего одного php скрипта на удаленном сервере
  • Не важно какое устройство инициировало VPN-соединение, авторизация по ссылке из SMS
  • Ведение log'а всех авторизаций на сервере (можно вкл/выкл)
  • Увеличение отказоустойчивости и снижение нагрузки системы путем отправки SMS рандомно с нескольких модемов
  • Возможность отправки SMS через платные SMS-шлюзы (в коде на примере smsc.ru)
  • Функция Firewall – доступ только у роутеров занесенных в список (можно вкл/выкл)
  • Новое: Отправка кодов через Synology Chat и Telegram Bot. Причем различным пользователям уведомления могут доставляться по различным каналам.


Если вас интересует данная тематика, сохраните статью в закладки, я буду периодически её обновлять, по мере расширения функционала скрипта.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии41

Самый полезный модуль стандартной библиотеки Python, о котором все постоянно забывают

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


В Python много отличных доступных «из коробки» модулей. Один из самых полезных — collections. Он содержит «специализированные типы для создания контейнеров», являющихся альтернативами универсальным dict, list, set и tuple. Ниже мы рассмотрим три содержащихся в модуле класса, с которыми большинство питонистов сталкивались, но постоянно забывают применять на практике.

Читать дальше →
Всего голосов 44: ↑35 и ↓9+40
Комментарии26

Основы ZFS: система хранения и производительность

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


Этой весной мы уже обсудили некоторые вводные темы, например, как проверить скорость ваших дисков и что такое RAID. Во второй из них мы даже пообещали продолжить изучение производительности различных многодисковых топологий в ZFS. Это файловая система следующего поколения, которая сейчас внедряется повсюду: от Apple до Ubuntu.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+39
Комментарии33

Собираем DIY шлюз для Zigbee устройств

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

Вступление


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


image


Наибольший толчок развития DIY шлюзам дал проект zigbee2mqtt. На момент написания заметки в проекте реализована поддержка 785 устройства от 140 производителей.


image


Поиск показал наличие интересных конкурентных проектов AqaraHub(написан на с, похоже, что развитие приостановлено, последний коммит был 5 месяцев назад), нативная поддержка в ioBroker (проект ведет наш соотечественник Киров Илья), нативная поддержка в Home-assistant (поддержка появилась после появления библиотеки zigpy, активно развивается, но пока далека от совершенства). Обзор программных шлюзов хорошо разобран в интернете, имеется множество статей, желающий найдет информацию по тэгам в конце статьи.

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

Как стать DevOps инженером за полгода или даже быстрее. Часть 6. Запуск приложения

Время на прочтение6 мин
Количество просмотров8.9K
Как стать DevOps инженером за полгода или даже быстрее. Часть 1. Введение
Как стать DevOps инженером за полгода или даже быстрее. Часть 2. Конфигурирование
Как стать DevOps инженером за полгода или даже быстрее. Часть 3. Версии
Как стать DevOps инженером за полгода или даже быстрее. Часть 4. Пакетирование программ
Как стать DevOps инженером за полгода или даже быстрее. Часть 5. Развертывание



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



Готовы к запуску?


Итак, у нас есть наш код, написанный, упакованный и где-нибудь развернутый. Я решил проигнорировать развертывание кода как неизменяемых артефактов машины (например, EC2) и сосредоточиться на контейнерах. Почему?
Читать дальше →
Всего голосов 10: ↑8 и ↓2+11
Комментарии4

Раздаем файлы с Google Drive посредством nginx

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

Предыстория


Так уж случилось, что нужно мне было где-то хранить более 1.5тб данных, да еще и обеспечить возможность скачивания их обычными пользователями по прямой ссылке. Поскольку традиционно такие объемы памяти идут уже на VDS, стоимость аренды которых не слишком вкладывается в бюджет проекта из категории «от нечего делать», а из исходных данных у меня был VPS 400GB SSD, куда при всем желании 1.5тб картинок без lossless сжатия поместить не удастся.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии25

Создание полноценного Viberbot. Часть вторая — первый контакт или «сonversation_started»

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

Отправка первого сообщения пользователю — приветствуем и подписываем


В первой части мы научились запускать стартер устанавливать webhook для нашего проекта botviber.

В этой 2-й мы научимся отправлять первое сообщение показываемое для наших пользователей, создавать ссылки для поиска и запуска нашего бота как внутри ViberURL так и NoViberURL

image

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

Создание полноценного Viberbot на Django 2 и Viber REST API. Часть первая — Webhook

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

Установка Webhook для работы bot на viber и отправка первого POST запроса к backend мессенджера


Опираясь на свой опыт разработки под Viber и множество неоднозначных мнений, публикую цикл статей по созданию и запуску viberbot. Для понимая полной картины в целом, будем работать с чистым REST API VIBER, без каких либо оберток.

Радио Вайбер показал себя слишком нестандартно, поэтому мы будем создавать классический диалоговый бот (коих много тысяч развелось в telegram).

Параллельно увидим все недостатки и преимущества botviber и поймем: чему в России легче быть — botviber VS bottelegram, главные отличия бот разработки этих платформ.

image

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

Статья больше расcчитана на новичков, кто не успел разобраться с REST API Viber.

В течение месяца по 1-2 tutorial в неделю кто захочет, тот научиться создавать боты на мессенджере Viber, c личной админ-панель, инструментами рассылки bulk-messages, без каких либо конструкторов и платформ. Также создадим minilanding-page (как у телеграм-ботов) для поиска и продвижения вашего бота.

Я рекомендую параллельно изучать Django, кто еще не начал, и особенностей его работы в develop и production режимах.

Не хватает бота — тогда начнем

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

Несколько советов о том, как ускорить сборку Docker-образов. Например, до 30 секунд

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

Прежде чем фича попадет на прод, в наше время сложных оркестраторов и CI/CD предстоит пройти долгий путь от коммита до тестов и доставки. Раньше можно было кинуть новые файлы по FTP (так больше никто не делает, верно?), и процесс «деплоя» занимал секунды. Теперь же надо создать merge request и ждать немалое время, пока фича доберётся до пользователей.


Часть этого пути — сборка Docker-образа. Иногда сборка длится минуты, иногда — десятки минут, что сложно назвать нормальным. В данной статье возьмём простое приложение, которое упакуем в образ, применим несколько методов для ускорения сборки и рассмотрим нюансы работы этих методов.


Читать дальше →
Всего голосов 45: ↑44 и ↓1+52
Комментарии33

Настройка Debian, Nginx и Gunicorn для Django проекта

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


Всем доброго времени суток.

Была задача поднять свой Debian сервер на Nginx для проектов Django 3.х. Перерыв кучу информации в интернете, удалось это сделать соединив рекомендации с нескольких разных сайтов. Если вам интересно почитать, как настроить свой первый сервер для Django-проекта, то — добро пожаловать.
Читать дальше →
Всего голосов 7: ↑6 и ↓1+8
Комментарии12

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность