Обновить
3
0
Michael Elin@vanelm

Consulting Network Engineer

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

Заблуждения программистов об авиации

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

Перевод статьи Ben Burwell, инженера FlightAware, в которой описан довольно солидный список ложных предположений, которые программист может выдвинуть об авиации при разработке софта. Например, вы знали, что бывают сегменты в авиаперелетах, которые длятся одну минуту, чтобы переместиться из одного аэропорта в другой, хотя физически самолет никуда не летит? А вот инженерам из авиа-отросли такие уникальные случаи нужно учитывать.

Читать далее

Работа с формами во Flutter

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

Работа с формами — неотъемлемая часть любого Flutter-приложения. В этой статье я расскажу о том, как создавать формы с помощью стандартных инструментов (Form, TextFormField, GlobalKey) и какие подводные камни возникают при их масштабировании.

Читать далее

Настройка межсетевого SSH-доступа в многосегментной сети Cisco и MikroTik в среде GNS3

Время на прочтение12 мин
Охват и читатели2.6K

Всех приветствую! В этой статье разберем базовую настройку защищенного удаленного доступа к сетевым устройствам через SSH в учебной лабораторной работе на эмуляторе GNS3. В сети будут задействованы два маршрутизатора - Cisco и MikroTik, а также виртуальные машины с Windows 10 и Kali Linux, что позволит максимально приблизить работу к реальным условиям. В ходе работы настроим IP-адресацию, обеспечим маршрутизацию между подсетями и организуем безопасное управление оборудованием через SSH.

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

Читать далее

Как правильно начать вайбкодинг-проект с нуля

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

Если вы решили вайбкодить новый проект, то самым первым шагом должен стать PRD (Product Requirements Document).

Что такое PRD?

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

После PRD хорошо бы сразу создать ещё два документа:

tasks.md — детализация задач вашего проекта. Этот файл может меняться и дополняться в процессе работы: сделали текущие задачи → придумали новые → обновили файл.

docs.md — более техническая документация, которая пишется параллельно реализации задач. Она не обязательна для маленьких проектов, поэтому подробнее о ней поговорим в следующем посте.
(md - это не домен, это файлы расширения Markdown)

Сам PRD обычно остаётся стабильным и только иногда дополняется новыми деталями. Но как его правильно и быстро сделать?

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

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

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Путеводитель по Ktor JWT auth на стороне сервера

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели906

Документация Ktor по server-jwt неполна. Если необходимо сделать что-то за рамками «Hello world», придется лезть в исходники и городить костыли. Какой-то консистентности и предсказуемости ждать не стоит, возможно, не обошлось без заговорщиков.

Статья покроет необходимую базу для работы с JWT и убережет от множества подводных камней.

Читать далее

Чтобы сеть не лежала… снова

Время на прочтение7 мин
Охват и читатели6.1K

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

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

Читать далее

Как создать простое API? Express + Prisma

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

Эта статья поможет вам быстро написать API, используя Express и Prisma). Для этого вам понадобятся базовые знания работы с Node.js и понимания разработки реляционных баз данных

Читать далее

Простой и эффективный супервизор на С++ с универсальным Makefile

Время на прочтение6 мин
Охват и читатели2.3K

Несмотря на развитие лингвистических моделей, я подумал, что моя версия супервизора может быть достаточно интересна для размещения в статье. Назначение супервизора - поднять повторно программу, которая по каким-то причинам упала с ошибкой. Причём если программа завершила работу без ошибки, то она перезапущена не будет, как и не будут создаваться логи. В логах пишется время падения и тип ошибки. Универсальный Makefile может быть интересен тем, что его достаточно закинуть в папку с исходниками, добавить необходимые пути вида:
LDFLAGS = -I/usr/include/boost
LIBS = -lboost_serialization

Читать далее

RFID-метки для программиста: как они устроены и как с ними работать

Уровень сложностиСложный
Время на прочтение7 мин
Охват и читатели5.9K

RFID-технология давно стала частью повседневности — мы встречаем её в проездных, пропусках, банковских картах, системах доступа и даже в метках на одежде. Но что на самом деле происходит, когда мы подносим метку к считывателю? Как устроена эта метка внутри? Какие данные она хранит, и как программа может их прочитать или изменить?

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

Читать далее

Перепрограммируем заводской Zigbee датчик протечки от компании Tuya

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

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

Читать далее

Круговой импорт в Python: как он ломает проекты и как его победить

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

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

Сегодня говорим о том, что в какой‑то момент словит почти каждый разработчик, особенно если вы не просто пишете скрипты, а строите проекты — будь то Django, Flask или кастомная архитектура с бизнес‑логикой в отдельных слоях. Речь про круговые импорты: они не объявляют о себе заранее, не фейлят весь проект громко и сразу, но подкрадываются исподтишка. И вот вы уже сидите с ошибкой ImportError: cannot import name ... или AttributeError, гуглите часами, тасуете импорты туда‑сюда и ловите дежавю — кажется, это уже было, но где?

Читать далее

Простые вещи, которых я не знаю: юнит-тесты

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.8K

В этом топике я не пытаюсь доказать, что тесты бесполезны. Это скорее мои размышления вслух и личная попытка нащупать их реальную ценность. Некоторые идеи в процессе всё-таки зацепили - но скорее как частные случаи, а не что-то универсальное.

Я программирую уже больше шести лет. На самом деле существенно больше (на свой первый аутсорс на PHP я попал примерно в 2016 году), но осознанно подходить к своей карьере я начал не сразу. За это время я вполне успешно поработал в довольно разных местах, от маленьких стартапов до международных компаний.

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

Пришлось разбираться, что я делаю не так

Под капотом WordPress — разбираем движок и изучаем инструменты

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

Привет, Habr! Меня зовут Ольга Глеклер. Я уже более 12 лет в веб-разработке. Начинала писать с нуля, работала с различными CMS, последние 8 лет преимущественно с WordPress и уже около 6 лет являюсь контрибьютором. Работала в таких компаниях, как Epam и Yadro. Выступала на конференции HighLoad++. Сегодня расскажу о возможностях WordPress и как это реализовано «под капотом».

Читать далее

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

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

Это история о том, как я устал держать в голове инфраструктуру по всем своим проектам.

Прод падает — а ты тратишь время на то чтобы вспомнить где лежит Grafana, где настраивается DNS, чей Docker Registry мы используем, есть ли у нас CDN и какой.

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

Читать далее

Как в 2025 году в Django реализовать аутентификацию через Google

Время на прочтение3 мин
Охват и читатели1.5K

Аутентификация через сторонние сервисы осуществляется на базе протокола OAuth 2.0, который поддерживается библиотекой Python Social Auth Django.

Для начала нам нужно установить библиотеку social-auth-core и дополнительную библиотеку social-auth-app-django для интеграции этой системы регистрации/аутентификации в Django. Оба компонента мы указали в списке зависимостей проекта в файле requirements.txt:

Читать далее

DotPlus — офлайн-генератор QR и штрихкодов на Rust с GUI и CLI

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.4K

Как я написал генератор QR и штрихкодов на Rust с GUI и CLI — полностью офлайн, без браузеров и API. Работает с CSV, экспортирует в PNG, подходит для логистики и массовой печати.

Читать далее

Прокачаться в работе с Ansible — подборка ресурсов

Время на прочтение6 мин
Охват и читатели5.5K

Десятки тысяч компаний используют Ansible для управления конфигурациями и автоматизации ИТ-процессов. И мы подготовили подборку материалов, которые помогут познакомиться с этим инструментом — от базовых руководств уровня «с чего начать» до продвинутых практик по написанию эффективных плейбуков.

Читать далее

Делаем автомобильный компьютер с нескучным функционалом

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

Привет, я собрал небольшой бортовой компьютер для авто, который умеет показывать температуру, время с момента включения и раздавать «Free Wi-Fi». В этой статье приведён код, список компонентов и всё остальное, чтобы собрать такой же. Назвал я его Kruk — от беларуского слова «Крук» (рус. «Крюк»).

Вот видео его работы на YouTube. Здесь его страница на GitHub.

Если вы уже посмотрели видео, то понимаете суть функции «Free Wi-Fi». Как только к Wi-Fi подключаются, система сразу переводит пользователя на captive portal, а сам компьютер начинает показывать, помимо температуры и времени, ещё два дополнительных окна с информацией о количестве пользователей, подключившихся к Wi-Fi, и о количестве пользователей, которые до сих пор к нему подключены (online).

Читать далее

Мой первый боевой проект: FSD, TanStack и как мы это дружили

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

Тут я расскажу о том, как я впервые с нуля поднимал проект на React, используя связку FSD, TanStack Router, TanStack Query и Effector — и как мы всё это далее подружили подружили или нет 🙂.

Сразу оговорюсь:
Проектом занимается команда, но архитектурный старт, выбор технологий и базовая структура — легли на меня. Это был мой первый опыт в такой роли: отвечать не просто за компоненты или страницы, а за фундамент проекта.
А так же, это моя первая статья. Не претендую на истину в последней инстанции, но надеюсь, кому‑то мой опыт будет полезен и палками бить сильно не будете.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Praha, Hlavni Mesto Praha, Чехия
Зарегистрирован
Активность