Pull to refresh
0
0
Александр @Azurre

Разработчик

Send message

Почтовый сервер с нуля. Часть первая

Level of difficulty Medium
Reading time 17 min
Views 21K

Очень часто на этапе стажировки новых сотрудников мы в нашей компании сталкиваемся с типичными простыми ошибками, непониманием работы DNS и почты. При этом обучение новых сотрудников по этой теме — достаточно длительный и сложный процесс, так как сами вопросы требуют построения сложных логических цепочек в голове у начинающего инженера. В один момент мы составили свою вики и схемы для обучения и решили поделиться этим опытом на Хабре в виде серии статей, чтобы людям, которые решили связать свою жизнь с IT вообще и администрированием в частности, стало проще. Материалы этой серии предназначены для начинающих администраторов.

В этом материале будет представлена связка полноценного почтового сервера в виде Exim4+Dovecot+PostfixAdmin+RainLoop.

Читать далее
Total votes 19: ↑18 and ↓1 +17
Comments 26

Моя большая практическая шпаргалка SQL (SQLite) с готовыми запросами

Level of difficulty Medium
Reading time 54 min
Views 70K

Привет, Хабр)

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

Все примеры изначально писались для СУБД SQLite, но почти всё из этого применимо также и к другим СУБД.

Здесь есть и примеры довольно сложных запросов с агрегирующими функциями, триггерами, длинными подзапросами, с оконными функциями. Помимо этого, часть примеров посвящена работе с SQL в Python, используя sqlite3, pandas, polars. Этот список запросов с комментариями можно использовать как наглядное пособие для изучения SQL.

Читать далее
Total votes 125: ↑122 and ↓3 +119
Comments 7

Как я настраивал WireGuard Server на MikroTik

Level of difficulty Medium
Reading time 7 min
Views 11K

После недавнего приобретения роутера MikroTik, у меня встала задача настроить на нём WireGuard сервер для удалённых клиентов. Если вы, как и я, никогда до этого не настраивали сервер WireGuard, то это статья для вас.

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 26

Собираем удобный CAN bus сниффер с интерактивной консолью за $3

Level of difficulty Medium
Reading time 13 min
Views 14K

Привет, Хабр!

Протокол CAN сейчас широко распространён не только в автомобильной сфере, но и на предприятиях, в различных самоделках, и даже в Средствах Индивидуальной Мобильности (контроллеры VESC, например). В ноябре прошлого года я сделал для себя удобный инструмент для анализа CAN и отправки фреймов, сейчас же хочется сделать код опенсорсным и рассказать о самом проекте.

Читать далее
Total votes 34: ↑34 and ↓0 +34
Comments 18

«Отучаем» WinFXNet от жадности (часть 1)

Level of difficulty Easy
Reading time 18 min
Views 9.3K

Предыстория

В сфере АСУ ТП инженерам по работе приходится не только писать ПО, но и использовать готовое ПО от производителей оборудования. В связи с санкциями, многие поставщики покинули РФ, а оборудование и ПО необходимо продолжать эксплуатировать дальше.

В данной статье будет расмотрена WinFXNet - программа производителя Schneider Electric (ESMI) для конфигурирования станций пожарной сигнализации серии Esmi FX. К сожалению, из-за санкций, ключ USB Esmi FX FFS00393016 приобрести нельзя, а он, в свою очередь, имеет встроенный таймер, который настроен на 4-летний период. У многих данный ключ по времени уже закончился, плюс скоро закончится и лицензия на само ПО (файл формата lic). Поэтому достаем дизассемблеры и посмотрим, можно ли обойти данную защиту.

Disclaimer: Данная заметка написана в ознакомительных целях и не является руководством к действиям. Хотя, понимая всю безвыходность данной ситуации, как временное решение имеет право на жизнь, но решать только вам. Статья написана как туториал, поэтому постараюсь детально описать все шаги поиска нужных мест в программе.

Приступить к анализу
Total votes 101: ↑96 and ↓5 +91
Comments 27

Сказ о том, как я за год решил более 600 leetcode задач

Level of difficulty Easy
Reading time 7 min
Views 70K

Всем салют!

Хочу рассказать вам историю о том, как я начинал с уровня — «не могу решить даже 1 easy задачу из 10» до уровня — «могу решить каждую вторую medium задачу» и прошел несколько coding сессий в таких компаниях как Meta, Booking, Careem, Avito...

Читать далее
Total votes 150: ↑141 and ↓9 +132
Comments 406

Новая блокировка OpenVPN и Wireguard замедляет интернет в России

Reading time 3 min
Views 124K

Позавчера, 15 января ночью, по всему Рунету пошли сигналы, что протоколы WireGuard/OpenVPN массово «отвалились». Судя по всему, с понедельника Роскомнадзор снова взялся за VPN, экспериментируя с блокировками OpenVPN и Wireguard в новом масштабе.

Мы в Xeovo заметили это по большому наплыву пользователей, которые вообще не знали что протоколы блокируются (где они были все это время). Уже учения были много раз, и мы предупреждали клиентов, но, видимо, OpenVPN и WireGuard до сих пор очень хорошо работали у всех. На настоящий момент блокировка продолжается. Возможно, тестируют, как все работает перед выборами. 

Читать далее
Total votes 142: ↑106 and ↓36 +70
Comments 378

Бесплатные векторные карты на своём хостинге

Level of difficulty Medium
Reading time 6 min
Views 13K

Векторные карты Protomaps на базе OSM

Каждый веб-разработчик знает о OpenStreetMap (OSM), свободной альтернативе Google Maps. Несмотря на всеобщую известность OSM, у некоторых всё-таки возникают вопросы: как сделать веб-карту с открытыми данными OSM, как самостоятельно публиковать карты?

На эту тему есть популярные руководства, в том числе по работе с базами PostGIS и запуску тайлсерверов для реализации бесшовных карт OSM. Но есть принципиально иной подход — векторные карты Protomaps, которые обеспечивают более высокое разрешение, настройку внешнего вида и наложение произвольных меток. Они изначально предполагают максимальную простоту в создании своих карт. А главное, что разместить тайлы можно на своём хостинге или в облаке.
Читать дальше →
Total votes 89: ↑86 and ↓3 +83
Comments 12

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

Level of difficulty Medium
Reading time 8 min
Views 16K

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

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

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

Технологичные продукты, с которыми систематически обманывают производители

Level of difficulty Easy
Reading time 13 min
Views 20K

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

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

Некоторые из подобных игр заканчиваются тем, что в отдельных сегментах не остается нормальных продуктов. Например, рынок недорогих SD-карт угроблен полностью – купить полноценную недорогую карту на AliExpress от местного китайского бренда емкостью 128 ГБ или более уже нельзя, поскольку в продаже присутствуют лишь фейки.

Если интересны детали – добро пожаловать под кат.

Читать далее
Total votes 150: ↑149 and ↓1 +148
Comments 91

Запускаем Matlab внутри Docker-контейнера с поддержкой GUI в ОС GNU/Linux

Level of difficulty Medium
Reading time 51 min
Views 4.8K

Возникла задача запускать графические приложения в полностью изолированной среде: как от Интернета, так и от файловой системы «хозяйской» ОС. В моём случае это был Matlab. Пишут, что в последних версиях он стал шибко «умным»: сам без спроса постоянно лезет в сеть и чем-то там постоянно обменивается со своими серверами. Однако использовать для поставленной задачи виртуальную гостевую машину / аппаратную виртуализацию (наподобие VirtualBox) — это, ИМХО, «too much». Docker подошел бы гораздо лучше, т.к. он использует то же ядро ОС и не требует эмуляции / виртуализации ввода-вывода, что существенно экономит ресурсы. Однако Docker «из коробки» не предназначен для запуска GUI-приложений. Что ж, попробуем это исправить и запустить таки Matlab внутри Docker-контейнера с полной поддержкой «иксов» и GUI.

Читать далее
Total votes 16: ↑15 and ↓1 +14
Comments 9

Как выбрать оптимальный способ соединения деталей в пластиковых корпусах

Reading time 5 min
Views 15K

Почему эту статью нужно читать? Потому что выводы, здесь сделанные, помогут вам не накосячить при выборе метода сборки корпуса вашего устройства. Как минимум – критически оценить уже принятые решения :)

Читать и смотреть картинки
Total votes 64: ↑64 and ↓0 +64
Comments 30

Безграничные возможности FFmpeg на примерах

Level of difficulty Easy
Reading time 12 min
Views 43K

FFmpeg — швейцарский нож для мультимедиа. Совершенно незаменимая программа, которую использует в повседневной жизни почти каждый, даже не зная об этом. Например, вы сняли видео и заливаете на видеохостинг — оно перекодируется и публикуется уже в другом разрешении/формате/размере. Как вы думаете, какая программа выполнила транскодирование? Вполне возможно, что под капотом на сервере работает FFmpeg.

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

Это «движок» почти всех современных инструментов для обработки/сжатия/редактирования видео. Они просто предлагают графический интерфейс с кнопками, а ffmpeg делает реальную работу.
Читать дальше →
Total votes 133: ↑130 and ↓3 +127
Comments 84

ШИМ в ESP32

Reading time 7 min
Views 19K


С момента своего появления микроконтроллер ESP32 получил заслуженную любовь своих поклонников и активно применяется во множестве самоделок. Основной причиной такой любви фанатов является его «упакованность» всевозможными функциями и беспроводными способами подключения в том числе. В этой же статье мы поговорим о такой полезной функции, как ШИМ — «широтно-импульсная модуляция».

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 3

Windows — причина медленного интернета

Level of difficulty Easy
Reading time 4 min
Views 101K

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

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

В этой статье я поделюсь своим «интересным» опытом, как я искал решение проблемы и о том, что Windows можно починить и не переустанавливать.

Читать далее
Total votes 167: ↑161 and ↓6 +155
Comments 316

Победа над nRF24L01: на три шага ближе

Reading time 8 min
Views 78K

Многие испытывают трудности при соединении по эфиру радиомодулей nRF24L01. Об этом свидетельствует тема на форуме Амперки, открытая в конце 2014г. За пять с небольшим лет в теме накопилось более 120(!) страниц. Это при том, что автор темы не просто обозначил проблему, а поделился своим трехнедельным опытом победного для него боя. Кроме того, он тут же — в первом сообщении создал навигатор по страницам темы, где приводит ссылки на решения проблемы другими.



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



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



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



Я же разделил эту задачу на несколько простых задачек. Вначале модули проверяются на работоспособность и правильность подключения (шаг 1), затем один из пары работающих радиомодулей тестируется на работу в режиме передатчика без ожидания отклика с приемника (шаг 2) и последний этап — улучшение качества связи в этой связке передатчик-приемник (шаг 3).



Для общего представления — картинка с прототипом:





Итак ...



Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 18

Народный измеритель пульсации света

Reading time 6 min
Views 31K
Пульсация — главный параметр света, влияющий на здоровье, но, увы, доступных приборов для измерения коэффициента пульсации нет в продаже. Я решил исправить эту ситуацию и разработать недорогой прибор.



Читать дальше →
Total votes 111: ↑110 and ↓1 +109
Comments 66

Раскрываем секреты загрузочных ISO-образов

Reading time 20 min
Views 80K


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Total votes 193: ↑193 and ↓0 +193
Comments 73

19 команд ffmpeg для любых нужд

Reading time 3 min
Views 561K
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его man объёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.


ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.

1. Получение информации о видеофайле

ffmpeg -i video.avi

2. Превратить набор картинок в видео

ffmpeg -f image2 -i image%d.jpg video.mpg

Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg

(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg

здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Читать дальше →
Total votes 222: ↑214 and ↓8 +206
Comments 107

Лучшие в мире батарейки

Reading time 2 min
Views 52K
Многие удивятся тому, что самые ёмкие в мире щелочные батарейки называются не Duracell, Energizer и Varta, а «Два оленя» — Pairdeer.

Хоть эти батарейки не продаются в России, я их добыл и протестировал.

Читать дальше →
Total votes 130: ↑128 and ↓2 +126
Comments 72

Information

Rating
Does not participate
Registered
Activity