Pull to refresh
9
0
Send message

Как общаться с ChatGPT с помощью голосовых сообщений в Telegram

Level of difficultyMedium
Reading time9 min
Views21K

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

В этой статье делюсь пошаговой инструкцией, как реализовать ChatGPT Telegram-бота на NodeJS и задеплоить его на виртуальный сервер. Подробности под катом!
Читать дальше →
Total votes 48: ↑47 and ↓1+46
Comments10

Выжимаем все соки из WebRTC для стриминга камер на примере go2rtc

Level of difficultyMedium
Reading time10 min
Views13K

Go2rtc — это open source приложение для стриминга видео в реальном времени. Оно весит всего 5 мегабайт, не имеет внешних зависимостей и работает на всех популярных ОС. Поддерживает технологии ​​RTSP, RTMP, DVRIP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit и многие другие. Последний релиз получился настолько масштабным, что все нововведения пришлось оформлять в статью на Хабре.

Читать далее
Total votes 26: ↑26 and ↓0+26
Comments11

Telegram-бот для управления инфраструктурой

Reading time26 min
Views71K
image

По мотивам статьи Телеграмм-бот для системного администратора (статья не моя, я только прочитал) захотел поделиться опытом создания Telegram-бота на PowerShell для управления серверами приложений. Будет текст, код и немножко картинок. Конструктивная критика приветствуется ( главное чтобы не звучало «зачем на PowerShell? Надо было на perl» ).

Думаю что статья больше подойдет «новичкам» в PowerShell, но и опытные администраторы могут что-то полезное здесь увидеть.

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

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

  • Простота добавления/изменения задач в Telegram-бот
  • Многозадачность или параллелизация
  • «Понятный» интерфейс управления
  • Хоть какая-то безопасность
Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments31

Насколько круто иметь свой сервер в комнате

Reading time6 min
Views111K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Total votes 148: ↑147 and ↓1+146
Comments313

Пишем Hex Viewer для Flipper Zero

Level of difficultyMedium
Reading time11 min
Views12K

Примерно месяц назад основная поставка Flipper'ов таки доехала до России. Вопреки моим ожиданиям, это не вызвало волну публикаций про создание приложений под него. Хорошие публикации есть (например, эта и вот эта), но массовости нет. Слишком долго ждали и перегорели? Пишут долго и обстоятельно? Технологический стек устройства не подходит для быстрого и легкого старта? Как бы то ни было, такой расклад ничуть не убавил мотивации поиграться с устройством!! С удовольствием уделил несколько вечеров созданию своего первого приложения под Flipper Zero: Hex Viewer, шестнадцатеричного просмотрщика. О своем опыте и интересных находках расскажу в теле статьи.

Читать далее
Total votes 93: ↑91 and ↓2+89
Comments31

Как мы перешли с Elastic на Grafana stack и сократили расходы в несколько раз

Reading time8 min
Views28K

Привет! Хочу поделиться историей миграции сервисов логирования и трейсинга с компонентов Elastic Stack на Grafana Stack и тем, что из этого вышло. До миграции у нас в М2 использовались достаточно классические схемы:

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments22

RustDesk — self-hosted аналог TeamViewer

Reading time2 min
Views87K

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

Читать далее
Total votes 88: ↑87 and ↓1+86
Comments41

Введение в Traefik 2.0

Reading time13 min
Views134K

Traefik — это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями.


Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо серверам/сервисам внутренней сети (например веб-сервера, БД или файловые хранилища) и позволяет:


  • обеспечить сокрытие структуры внутренней сети и подробностей о находящейся в ней сервисах;
  • осуществлять балансировку нагрузки (load balancing) между экземплярами одного и того же сервиса или серверами с одинаковыми задачами;
  • обеспечить зашифрованное (HTTPS) соединение между клиентом и любым сервисом, в таком случае SSL сессия создается между клиентом и прокси, а между прокси и сервисом во внутренней сети устанавливается незашифрованное HTTP соединение, если сервис поддерживает HTTPS то можно организовать зашифрованное соединение и во внутренней сети;
  • организовать контроль доступа к сервисам (аутентификацию клиента), а также установить файрвол (брандмауэр).

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


image

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments31

Traefik, docker и docker registry

Reading time14 min
Views28K

Под катом вы увидите:

• Использования Traefik в качестве обратного прокси для маршрутизации трафика внутрь docker контейнеров.

• Использование Traefik для автоматического получения Let’s Encrypt сертификатов

• Использование Traefik для разграничения доступа к docker registry при помощи basic auth

• Все перечисленное выше будет настраиваться исключительно внутри docker-compose.yml и не потребует передачи отдельных конфигурационных файлов внутрь контейнеров.

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

Помимо этого в интернете мало информации на тему использования traefik для контроля доступа к docker registry. Описанную ниже технику можно использовать для контроля доступа к любому приложению, реализующему Rest API.

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments17

Люди работают не так много, как вы думаете

Reading time7 min
Views47K

Как ты расслабляешься, да я особо и не напрягаюсь. Именно этот анекдот хотелось привести в преамбуле к данной переводной заметке. Это прямо манифест лени as is. Весьма любопытное столкновение западной и восточной культуры. Нам в М.Видео-Эльдорадо особо прокрастинировать некогда, но дискуссию можно продолжить в комментариях.    

Читать далее
Total votes 103: ↑96 and ↓7+89
Comments67

OpenSCAD для пионеров и пенсионеров: целый день для знакомства

Reading time5 min
Views15K
image

Постоянно видел на Thingiverse модели с исходниками на OpenSCAD. Даже пытался загружать этот код — но, похоже, тормозная жидкость залита в OpenSCAD при разработке в изобилии, при отображении более-менее сложной модели компьютер подвисает на десятки минут. В итоге — не вдохновило.

Обычно я пользуюсь древним Sketchup — еще гугловским, той античной версией, когда гугл врал, что Sketchup — это навсегда, и его бесплатная версия в усеченном варианте будет всегда доступна даже для коммерческого использования. Я, будучи по натуре легковерным, даже с Ruby слегка разобрался, автоматически прорисовывал профиля крыльев игрушечных самолетиков в Sketchup и генерировал код для пенорезки, чтобы их вырезать. Почти вчера было — но Ruby я уже абсолютно не помню.
Нарисовать в Sketchup что-то очень сложное и мелкое, чтобы можно было распечатать — это головная боль. Нарисовать-то можно, но он потеряет маленькие кусочки изображения, если их и удастся преобразовать в STL, то сгенерировать код для печати ни один слайсер не сможет.
Читать дальше →
Total votes 72: ↑70 and ↓2+68
Comments51

Neovim для full stack программиста

Reading time7 min
Views75K

Я немного расскажу, как использую vim в работе full stack программиста, со своей колокольни, но для начала отвечу на некоторые вопросы, которые задают мне, когда узнают, что я использую vim при разработке проектов:

Зачем?

Хороший вопрос. Стоит для себя лично на него ответить. Зачем валандаться с vim, изучать кучу комбинаций клавиш и плагинов? Какой смысл, если есть vscode или pycharm или phpstorm? Жизнь коротка, стоит ли ее тратить на все это? Чтобы впечатлить кого-то, как на картинке в начале статьи? Да кого этим удивишь?

Читать далее
Total votes 58: ↑56 and ↓2+54
Comments179

Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 3. Устанавливаем мини-игры

Reading time6 min
Views25K


Часть 1. Выбираем и устанавливаем сервер

Часть 2. Устанавливаем карту для лобби сервера

Посмотреть, что в итоге получилось у меня: mc.piratebayserver.net
По любым вопросам пишите в Discord.

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

  • BungeeCord — прокси, который объединяет сервера в одну сеть и делает незаметным переход между ними для игрока
  • SuperLobbyDeluxe — отличный плагин, который позволяет настраивать лобби, ограничивать права игроков на создании и разрушение блоков, отключать смену погоды и времени и многое другое.
  • Citizens — плагин для создания npc
  • Citizens Server Selector — плагин для создания npc с командами перехода между серверами
  • ItemJoin — плагин, позволяющий выдать игроку определенные предметы при подключении к серверу
  • Chest Commands — прекрасный плагин для создания графического пользовательского интерфейса
  • Murder Mystery — популярная мини-игра
  • Holographic Displays — плагин, позволяющий создавать голографические надписи, требуется, как зависимость, для Murder Mystery
  • BSkyBlock — еще одна популярная мини-игра
  • LuckPerms — очень удобный плагин для управления правами пользователей
Читать дальше →
Total votes 2: ↑1 and ↓10
Comments5

Оптимизация сервера Minecraft

Reading time8 min
Views40K

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

За свою 9-летнюю историю (если считать от даты релиза) Minecraft заработал потрясающее количество поклонников и хейтеров как среди обычных игроков, так и среди гиков. Простая концепция мира из кубиков превратилась из обычного развлечения в универсальную среду для общения и создания различных объектов из реального мира.
Total votes 14: ↑10 and ↓4+6
Comments3

Как не нужно писать большие сервера

Reading time8 min
Views104K
Те, кто мог видеть мою прошлую статью (а она довольно related к данной теме), знают, что вот уже больше полутора лет я разрабатываю собственную реализацию сервера Minecraft, рассчитанную, в первую очередь, на высокие нагрузки. Тем не менее, в своей работе мы используем так же и стандартный сервер (Bukkit) для нескольких мини-серверов, просто чтобы было разнообразие. И вот, столкнувшись с очередной версией сервера, которая стала раз в 5 хуже предыдущих, я уже не выдержала, и решила написать эту статью.

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

Вам не нужно знать ничего о майнкрафте и особенно о его сервере, в данной статье я хочу просто рассказать, как работает оригинальный сервер Minecraft, а так же его «обвязка» — Bukkit, рассказать, почему такая система не работает и не должна. Я не претендую на идеальные знания о разработке серверов и не утверждаю, что мой сервер написан правильно и лучше всех. Я просто делюсь своим опытом, основанным на двух годах работы с сервером от всем известной Mojang и на полутора годах разработки своего сервера. Вся представленная здесь информация является моим личным мнением, а статья предназначена для расширения кругозора или даже обучения и может быть интересна как новичкам, так и продвинутым профессионалам.
Читать дальше →
Total votes 175: ↑135 and ↓40+95
Comments271

Как мы верифицированный полетный контроллер для квадрокоптера написали. На Ada

Reading time10 min
Views20K

Однажды на новогодних каникулах, лениво листая интернет, бракоделы в нашем* R&D офисе заметили видео с испытаний прототипа роботакси. Комментатор отзывался восторженным тоном – революция, как-никак. Но тренированное ухо расслышало в шуме с испытательной площадки еще кое-что. Контроллер скорости (штука для управления тягой винтов) сыграл мелодию при старте, как это любят делать пилоты дронов, которые часто используют полётный контроллер Betaflight. Неужели там бета-флайт? Ну, или какая-то из ее немногих разновидностей.

Перед глазами побежали флешбеки, где-то из глубин подсознания всплыла забытая уже информация о прошивках для Тойоты на миллионы тысяч строк Си и 2 тысячи глобальных переменных (Toyota: 81564 ошибки в коде).

После просмотра исходного кода Betaflight на гитхабе стало еще страшнее, и чем дальше, тем хуже. Это – управляющая программа для тяжелого устройства с острыми винтами, которое летает высоко, быстро. Становится страшно: игрушки это одно, но я бы не хотел летать, на таком такси. Но ведь можно иначе? Можно, решили мы! И решили это доказать. На Avito был куплен акробатический FPV-“квадрик” на базе STM32F405, для отладки – Discovery-платы для этого же контроллера, а дальше все как в тумане..

Читать далее
Total votes 92: ↑90 and ↓2+88
Comments58

Пишем умный контракт на Solidity. Часть 1 — установка и «Hello world»

Reading time6 min
Views133K

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


Smart Contract & Gas


Если на пальцах, "умный контракт" — это некоторый код, живущий внутри блокчейна. Любой участник сети может его вызвать за небольшую плату. Эта плата и называется Gas, дословно "топливо". Зачем это нужно? Для защиты майнера от злоупотребления мошенником его ресурсов.


Немногие знают, но даже в биткоине есть возможность писать эти самые контракты, но в силу некоторых причин этим мало кто занимается. Одна из главных проблем — язык Script не Тьюринг-полный и написать что-то более менее серьезное непросто (чтобы вы понимали масштаб проблемы — нет даже возможности добавить цикл). В случае с Ethereum все чуть по другому, языки Тьюринг-полные, и есть риск, что кто-то напишет контракт вида


// Это псевдокод
foo = 0;
while (True) {
    foo++;
}

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

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments16

OSCP: как я сдавал самый известный экзамен по информационной безопасности

Reading time7 min
Views55K

Offensive Security Certified Professional отличается от других сертификаций по информационной безопасности адски сложным экзаменом. Ребята из этой компании бегают по интернету и пристально следят за тем, чтобы никакие подсказки или готовые решения не были доступны публично. И, похоже, им успешно удаётся это делать более 10 лет подряд.

Сдавая экзамен, люди не спят двое суток, решают задачи с постоянно включенной видеокамерой и спрашивают в специальном чате разрешения отойти в туалет. Я прошёл этот путь и сейчас расскажу, как всё устроено.

Как это было
Total votes 76: ↑75 and ↓1+74
Comments27

10 советов схемотехнику

Reading time20 min
Views115K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Total votes 212: ↑210 and ↓2+208
Comments244
1
23 ...

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity