Search
Write a publication
Pull to refresh
2
0.6

User

Send message

Бот на .NET. Telegram + Google API

Reading time6 min
Views5.5K

Очень долгое время слушал музыку непосредственно в Telegram. Там и пообщаться можно и проигрыватель довольно удобный. Но рано или поздно - каждый сталкивается с проблемой, когда свой плейлист надоедает и хочется чего-то нового. В YouTube Music есть довольно удобная функция, которая позволяет, каждый день довольствоваться новой музыкой. Что я имею ввиду? При включении любой песни, далее проигрывается трек, который похож на предыдущий. Таким образом можно постоянно открывать для себя новые музыкальные горизонты :)

В Телеграмме у меня было сохранено более 1000 песен. Я решил написать бота, который будет считывать пересланную музыку из ТГ, создавать плейлист в YouTube и загружать все песни туда. Таким образом и чему-то новому научусь и песни загружу(ну и если кому-то из знакомых понадобятся услуги моего бота, это может сэкономить им время, хотя я мало верю, что кому-то это пригодится, это больше небольшой, учебный проектик).

Читать далее

CI/CD для коммуникационной платформы Voximplant

Reading time4 min
Views2K

Совсем недавно мы в Voximplant выпустили инструмент под названием VoxEngine CI. Для чего коммуникационной платформе нужна непрерывная интеграция и что можно сделать с её помощью, я расскажу в этой статье.

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

Узнать всё

Как я разогнал fail2ban* в тысячу раз с помощью SIMD

Reading time15 min
Views21K

Fail2ban — утилита чрезвычайно полезная во многих случаях. Думаю, многие используют её для того, чтобы в автоматическом режиме блокировать особенно назойливых «посетителей». К сожалению, если входящий поток становится слишком большим, fail2ban теряет все свои полезные свойства, потому что разбор лога безнадёжно отстаёт от реальности.

Лог nginx из 100 тысяч строчек fail2ban при самых простых настройках разбирает порядка 45 секунд. Нехитрыми манипуляциями его можно ускорить раз в 6, но этого оказалось недостаточно. Наивная реализация на аналогичного фильтра на Rust уже обеспечила требуемую производительность, но если уж взялся за оптимизацию, то остановиться трудно.

* только необходимую часть функционала

Читать далее

DIY: передаем данные на километры с помощью контроллера Micro::Bit и радиомодуля EBYTE LoRa (Часть 1)

Reading time17 min
Views19K

Если посмотреть, на какой базе сегодня обучают школьников в кружках робототехники, то окажется, что в большинстве своем это Лего-подобные наборы с контроллером Arduino. Однако в этой статье мы рассмотрим контроллер micro::bit — узнаем, чем он хорош, и создадим учебный проект системы сбора данных.

Читать далее

Простые шаги по повышению производительности ASP NET Core приложения

Reading time16 min
Views14K

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

Статья будет полезна разработчикам и лидерам команд, стремящимся улучшить производительность системы в целом. Также статья будет полезна опытным разработчикам, которые смогут использовать список рекомендаций из данной статьи в качестве отправной точки для создания или дополнения собственного чеклиста по улучшению производительности ASP NET Core приложений.

Читать далее

Запускаем .NET nanoFramework на Raspberry Pi Pico

Reading time10 min
Views9.6K
image

Платформа .NET nanoFramework позволяет разрабатывать приложения на C# для различных микроконтроллеров. В предыдущей публикации работали с ESP32 и STM32. Одна из замечательных особенностей .NET nanoFramework заключается в возможности запускать среду исполнения поверх интерфейса POSIX в Win32 для Unit-тестирования. Это означает быструю возможность переноса среды nanoFramework Runtime на любую операционную систему поддерживаемую POSIX стандартом. Именно таким образом, в качестве эксперимента, .NET nanoFramework был перенесен на микроконтроллер Raspberry Pi Pico, для запуска поверх операционной системы реального времени (RTOS) Apache NuttX. Как это было реализовано прошу под кат.
Читать дальше →

Анализ коммуникационных протоколов в сфере IoT для сбора данных с приборов учета

Reading time5 min
Views3.6K

С развитием средств коммуникаций и вычислительной техники большое распространение получают технологии интернета вещей (IoT).

Когда программисты работают над системами масштаба города, например, в сфере ЖКХ, то сталкиваются с проблемой централизации сбора и обработки информации с огромного множества разнообразных устройств, используемых коммунальными службами. И, безусловно, эта проблема связана с выбором протоколов взаимодействия носителей.

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

Думаем, начинающим специалистам, это очень пригодится.

Читать далее

USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows

Reading time7 min
Views77K

Привет, Хабр! В прошлой статье мы рассмотрели историю и принцип работы технологии USB over IP, узнали, как ее применяют на базе готового аппаратного решения.

Для личного использования, однако, аппаратное решение скорее не подойдет: нужно приобретать дорогостоящее оборудование, что нецелесообразно. Поэтому под катом рассказываю, как организовать клиент-серверный комплекс USB over IP на современных ОС и автоматизировать этот процесс.
Читать дальше →

Массовый прием обыкновенных SMS в Telegram (или Viber)

Reading time2 min
Views13K

Без SMSсервера, без PHP(Python) Скриптов, без промежуточных Email...

В habr статье от 08.2019 был рассмотрен рабочий способ для приема SMS.
При всей его громоздкости и костыльности - он пользуется популярностью у бизнеса арбитражников и прочих SMS товарищей. Сам GOIP-SMS-Сервер абсолютно неудобен, а Шлюзы GoIP умеют отправлять СМСки по SIP протоколу. Т.е. с помощью обычного asterisk (или FreePBX)

Рассмотрим настройки SMS на примере GOIP-8 (8 канального GSM шлюза):

1) Configurations-SMS тут мы видим меню, заполняем поле SMS to VoIP, пишем что угодно, например goip8, на каждом из каналов как на скрине ниже

Далее всё остальное

ЧудESA защиты корпоративной почты или внедрение свободных почтовых шлюзов на базе Proxmox Mail Gateway

Reading time6 min
Views48K

Средства межсетевого экранирования стали де-факто атрибутом любой сетевой инфраструктуры. Почтовому трафику тоже необходимы средства фильтрации. Поэтому в современных релеях реалях тяжело представить почтовую инфраструктуру организации без почтовых шлюзов (mail gateways).

Читать далее

Все должно быть под контролем. Резервное копирование для Kubernetes. Часть 2

Reading time11 min
Views3.8K

В первой части мы рассмотрели подходы к созданию резервных копий контейнеров в кластере Kubernetes с использованием restic над каталогом данных и относительно новых возможностей CSI для создания и восстановления мгновенных снимков. Пришло время поговорить о возможностях автоматизации управления резервными копиями, о мониторинге процесса и иных важных DevOps-задачах.

Читать далее

Анонс: митап «Быстрый бэкенд». MongoDB, оптимизация алгоритмов и диагностика проблем в больших проектах

Reading time2 min
Views1.7K
Привет, Хабр. Мы задумали встретиться офлайн в Москве и поговорить о том, как строить быстрый бэкенд и развивать его. Будут доклады о том, как живётся с большим кластером MongoDB, как битмап-индексы помогают быстро искать по каталогам и то, как анализировать большие объемы Jaeger-трейсов. Читайте пост: ниже тезисы и ссылка на регистрацию, встречаемся 4 июня.



Читать дальше →

Go против Rust — производительность вне конкуренции

Reading time5 min
Views58K

В статье Наблюдение за выполнением конкурирующих задач в Go и Rust коллега cpmonster привёл весьма интересные результаты:


Программа на Rust показала намного большую производительность при вычислении членов возвратной последовательности, чем программа на Go: 367 млн. итераций в секунду против 44 млн.

Ну, в 1.5 раза… Ну, в 2 раза… Но семь гвардейцев за два дня? — это слишком, тем более что тут "гвардейцев" больше восьми!


Или нет, не слишком? В общем, потенциал любопытства пересилил другие потенциалы и я провёл своё исследование.

Читать дальше →

Как буткиты внедряются в современные прошивки и чем UEFI отличается от Legacy BIOS

Reading time15 min
Views16K

Привет, Хабр! На связи Антон Белоусов и Алексей Вишняков, и мы продолжаем вместе с вами изучать буткиты — наиболее опасный класс вредоносного ПО. Гонка вооружений между разработчиками решений в области ИБ и вирусописателями не останавливается ни на секунду: первые активно внедряют новые механизмы противодействия киберугрозам, а вторые — инструменты их обхода. Как раз с точки зрения безопасности нас заинтересовал современный стандарт предзагрузки операционных систем UEFI. Поэтому в этом посте мы решили:

разобраться, чем загрузка в режиме UEFI отличается от загрузки в режиме Legacy BIOS;

рассказать о новых экземплярах буткитов, нацеленных на компрометацию UEFI;

выяснить, похожи ли они на своих предшественников (обширную группу так называемых legacy-буткитов мы подробно изучили в прошлый раз);

рассмотреть используемые злоумышленниками техники и слабые места систем на платформе UEFI.

Подробнее

Wix toolset: не так страшен черт, как Windows installer

Reading time56 min
Views21K

В статье я хотел бы поделиться своим опытом написания инсталлятора для Windows с использованием инструмента Windows Installer XML Toolset (далее - Wix). К сожалению, несмотря на всю мощь данного инструмента, его использование сильно осложняется куцей документацией, старенькими кукбуками, вялыми ветками форумов и вытеснением .msi и .exe пакетов контейнеризацией. Однако, сегодня продолжают активно развиваться и создаваться программные продукты требующие развертывания на виндовой машине с использованием традиционных установочных пакетов.

Читать далее

Рецензируемый QA-журнал для трейни/джунов/мидлов

Reading time5 min
Views4.2K

Бывает, что комментарии интереснее самой статьи, верно? Нет, не потому что автор плох. Зачастую как раз наоборот - глубокое зачерпывание темы мотивирует и других дать раскрывающие, ценные замечания, поделиться опытом. Интересный текст интересно комментировать.

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

Правда, как обычно, имеются некоторые нюансы.

Читать далее

Асинхронный python без головной боли (часть 1)

Reading time14 min
Views381K

Почему так сложно понять asyncio?

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

Но будь я автором самого толстого в мире учебника по python, я бы рассказывал читателям про асинхронное программирование уже с первых страниц. Вот только написали "Hello, world!" и тут же приступили к созданию "Hello, asynchronous world!". А уже потом циклы, условия и все такое.

Съешь красную таблетку

Разворачиваем проект серверов Minecraft

Reading time20 min
Views31K

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

Не очень люблю воду в текстах, поэтому буду краток. Название статьи: «Разворачиваем проект серверов Minecraft». Что будем делать? Запускать проект серверов Minecraft. Для чего? Для практики, для отвлечения, и, в конечном итоге, для небольшого (а может и большого) практически пассивного источника дохода.

Читать далее

Что доктор прописал для хранения, управления и использования фото-коллекции или история одного стартапа (Выпуск N-1)

Reading time3 min
Views3.2K

Здравствуйте, Хабровчане.

Последнее время встал ребром вопрос, где и как хранить коллекцию личных фото и видео в связи с тем, что оплатить Гугл.Фото стало невозможно и вообще платежи через Гугл.Плей и AppStore накрылись. Не сказать, чтобы я изучил вообще все возможности, но довольно глубоко проник и… остался недоволен ((( я уже встречал статьи, где люди рассказывают где и как нужно хранить, но обычно это делают люди у которых коллекция (читай “фотоархив”) уже систематизирована и упорядочена, и все новые фото складываются в папочки и подпапочки образуя древовиднрую иерархию. Но! Это совсем не то, что доктор прописал. Если продолжение поста хоть кого-то заинтересует, то я напишу следующую часть и при должном интересе мы таки доберёмся до идеи стартапа, который я вынес из всей этой истории и это будет внезапный твист =)

Далее про фото, фичи, сценарии и пр...

Information

Rating
3,535-th
Registered
Activity