Search
Write a publication
Pull to refresh
3
0.5

WEB-программист, сетевой администратор

Send message

Grafana Stack: закрываем все современные потребности Observability

Reading time6 min
Views8.1K

Ни одна система не может функционировать без сбоев, всегда могут возникнуть ситуации, когда в работе софта возникают проблемы. И здесь важное значение имеет observability — понятие, включающее в себя мониторинг и наблюдаемость. С помощью мониторинга мы можем определить, когда возникла проблема, а наблюдаемость позволяет нам понять, почему она возникла.

В этой статье мы поговорим о том, как можно реализовать observability с помощью сервисов стека Grafana.

Читать далее

Уменьшать срок или платёж, что выгоднее: наглядное сравнение способов досрочного погашения кредита

Level of difficultyEasy
Reading time12 min
Views118K

Большинство из нас так или иначе сталкивается с кредитами, а потом и с досрочными платежами по ним. Эта статья в блоге ЛАНИТ на Хабре посвящена подробному сравнению двух способов внесения частичных досрочных платежей по кредиту: с уменьшением срока и с уменьшением платежа.

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

Читать далее

Памятка по классам скорости Wi-Fi

Level of difficultyEasy
Reading time5 min
Views30K

Покупая новый Wi-Fi роутер, я столкнулся со множеством их характеристик и как следствие классов скорости Wi-Fi: N300, AC2600, AX1800 и другие. По мере изучения параметров я решил написать эту статью, которую можно рассмотреть как памятку по основам Wi-FI. Главная цель этой статьи - рассмотреть основные характеристики и на что они влияют.

Читать далее

JavaScript-консоль для QA-инженера: от поиска багов до автоматизации

Level of difficultyEasy
Reading time6 min
Views3.3K

Консоль браузера — это инструмент, о котором многие знают, но лишь немногие используют его возможности в полной мере. Для большинства QA-инженеров она остаётся чем-то вроде диагностической панели: открыть, увидеть ошибку, закрыть. Однако её потенциал значительно шире. Я убедился в этом на собственном опыте. Привет, Хабр, меня зовут Алексей Иванов, я занимаюсь тестированием в компании «Самолет», и, помимо ежедневной работы с продуктом, организую митапы по тестированию в Москве. Участвуя в таких крупных конференциях, как Heisenbug и SQA Days, я заметил, что многие мои коллеги используют консоль исключительно для отслеживания ошибок на сайте. Но что, если взглянуть на неё шире? 

Читать далее

CI/CD для начинающих: деплой React-приложения без боли

Reading time5 min
Views14K

Следующий шаг после разработки веб-приложения — размещение его на сервере. Независимо от сложности проекта или используемой инфраструктуры, общий процесс остается одинаковым: нужно «упаковать» код в CI/CD-конвейер и отправить на сервер. В тексте рассмотрим, как это происходит на примере простого приложения to-do list на React. Подробности под катом!
Читать дальше →

PHP: путешествие от «Hello World» до фреймворков

Level of difficultyEasy
Reading time15 min
Views13K

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

Читать далее

Kafka. Лучшие практики применения. Настройки Producer & Consumer

Level of difficultyMedium
Reading time20 min
Views49K

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

Меня зовут Михаил, я являюсь ФинТех системным аналитиком, исполняющим роль архитектора на проектах. И сегодня я хочу поделиться материалами по Kafka, которые подготовил для обучения сотрудников из своей команды. В материале постарался отразить самые важные технические моменты по Kafka, которые будут подкреплены наглядными кейсами и примерами использования. Материал будет полезным как для начинающих, так и для продвинутых пользователей. Желаю приятного прочтения.

Kafka. Лучшие практики применения.

OrbStack: Почему я забыл про Docker Desktop

Level of difficultyEasy
Reading time4 min
Views42K

Работая на MacBook с Docker Desktop, я часто сталкивался с тем, что система становилась менее отзывчивой, особенно при запуске нескольких контейнеров одновременно. Высокая нагрузка на CPU и память заметно влияла на время автономной работы.

Но недавно я наткнулся на OrbStack, и это изменило мой рабочий процесс настолько, что я решил поделиться своим опытом. Спойлер: теперь мой MacBook не превращается в печку, батарея держится дольше, а Docker-контейнеры летают.

Читать далее

Полное руководство по обработке ошибок в Python

Reading time15 min
Views19K

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

  • Когда следует перехватывать исключения, генерируемые вызываемыми вами функциями, а когда этого делать не нужно?
  • Как узнать, какие классы исключений нужно перехватывать?
  • Что нужно делать при перехвате исключений для их «обработки»?
  • Почему перехватывание всех исключений считается порочной практикой, и когда делать это приемлемо?

Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!
Читать дальше →

SQLAlchemy 2.0 + Python Generic, или как создать универсальный репозиторий для работы с БД

Level of difficultyEasy
Reading time5 min
Views6.1K

Доброго времени суток, товарищи, эта статья, так скажем, продолжение предыдущей статьи об SQLAlchemy 2.0 для новичков, в этой статье мы узнаем что такое Python Generic и как его можно использовать в наших целях при взаимодействии с БД.

Читать далее

SOLID на котиках

Reading time7 min
Views52K


Каждый программист хоть раз слышал о принципах SOLID. На собеседованиях и экзаменах в вузах многие из нас пытались вспомнить, о чем же был тот самый принцип Лисков. Однако вряд ли цель преподавателей и интервьюеров — заставить нас заучивать строчки из учебников. SOLID действительно помогает писать качественный код, когда во всем разберешься! Если вы этого еще не сделали, добро пожаловать под кат. Еще раз взглянем на то, как устроены всем известные принципы. Обещаю — без духоты, все рассмотрим на примерах с котиками.
Читать дальше →

Полная автоматизация ворот

Level of difficultyEasy
Reading time5 min
Views19K

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

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

Как сделать так, чтобы они открывались сами, когда своя машина подъезжает?

Скорее открывай ворота!

Telegram Web App, FastAPI и вебхуки в одном приложении: Создаем Telegram-бот с веб-интерфейсом для приема заявок

Reading time49 min
Views46K

Сегодня мы создадим полноценное веб-приложение на FastAPI, которое будет взаимодействовать с Telegram-ботом через MiniApp и вебхуки. В основе проекта — асинхронное взаимодействие с базой данных SQLite с помощью SQLAlchemy, что позволит нам реализовать масштабируемое и эффективное приложение.

Наше приложение будет включать как фронтенд, так и API методы для обработки запросов. Все взаимодействия с Telegram-ботом будут осуществляться через вебхуки, что обеспечит быструю и надежную связь. Важным аспектом является то, что мы будем использовать FastAPI для поднятия бота, что позволит интегрировать все компоненты в одном приложении.

Для разработки самого бота мы воспользуемся библиотекой Aiogram 3, которая обеспечит удобный и мощный интерфейс для взаимодействия с Telegram API. Это позволит нам быстро реализовать необходимые функции и сделать процесс разработки более эффективным.

Читать далее

Создание Telegram Web App с FastAPI: Генерация, сканирование QR-кодов камерой устройства и деплой за 5 минут

Reading time30 min
Views16K

Привет, друзья! Ваш теплый отклик на мою прошлую статью о разработке Telegram-ботов с использованием технологии MiniApp вдохновил меня на создание нового проекта.

Сегодня вы узнаете, как создать Telegram Web App с помощью FastAPI и Aiogram 3, который сканирует и генерирует QR-коды. В статье приведены шаги от установки зависимостей и настройки вебхуков до написания кода на фронте и бэке, и до деплоя проекта.

Читать далее

Как я использую git

Reading time11 min
Views18K

Недавно я пытался объяснить коллеге, какие у меня критерии при формировании пул реквеста — когда стоит объединять что‑либо в один пул реквест, а когда нет. И я заметил за собой фразу «ну, кроме…» несколько раз и решил записать, как я использую git — чтобы разобраться в особенностях моего подхода, как я мог бы улучшить его и, возможно, поделиться чем‑то полезным.

Поскольку это интернет, давайте сразу обговорим: то, как я использую git основывается на последних 12 годах работы в компаниях с относительно небольшими (до 50 человек) командами. В каждой из них мы использовали только git и GitHub; изменения выполнялись в отдельных ветках, предлагались в виде пул реквестов и сливались в основную ветку. В последние несколько лет, после введения GitHub squash‑merging, мы использовали его.

Я никогда не использовал какую‑либо другую систему контроля версий. Я не могу и не буду сравнивать git с Mercurial, jj, Sapling, и т. д.

Итак, вот как я использую git.

Читать далее

Понимание джойнов сломано. Это точно не пересечение кругов, честно

Reading time4 min
Views378K

Так получилось, что я провожу довольно много собеседований на должность веб-программиста. Один из обязательных вопросов, который я задаю — это чем отличается INNER JOIN от LEFT JOIN.


Чаще всего ответ примерно такой: "inner join — это как бы пересечение множеств, т.е. остается только то, что есть в обеих таблицах, а left join — это когда левая таблица остается без изменений, а от правой добавляется пересечение множеств. Для всех остальных строк добавляется null". Еще, бывает, рисуют пересекающиеся круги.


Я так устал от этих ответов с пересечениями множеств и кругов, что даже перестал поправлять людей.


Дело в том, что этот ответ в общем случае неверен. Ну или, как минимум, не точен.

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

Как я с помощью нейросетей обогнала инфляцию [4 кейса, скрины, никакой рекламы]

Level of difficultyEasy
Reading time7 min
Views63K

В своей первой статье на Хабре решила поделиться личной историей. Я учусь программировать на Python и работаю онлайн — копирайтером, менеджером маркетплейсов, email-маркетологом и модератором телеграм-канала. И проблема в том, что доходы — в рублях общая боль россиян, а расходы — в валюте. Да еще инфляция… пАразительная. А на зарплату мою живут четыре человека. И жилье — съемное, за доллары. Нет-нет, фразы «подайте кто сколько может» не будет 🙃 Я справилась и хочу рассказать, как с помощью нейросетей увеличить количество часов в сутках. Спойлер: делегирование всех задач искусственному интеллекту — инфоцыганская сказка (увы и ах).

Открыть статью с блэкджеком и шутками 🖱☕️

Сложность алгоритмов и типичные ошибки в Python

Level of difficultyEasy
Reading time7 min
Views12K

Всем привет! Я расскажу, что такое сложность алгоритмов и откуда она берётся, разберу типичные заблуждения и самые частые ошибки новичков. Материал рассчитан в первую очередь на начинающих Python-разработчиков, а также на тех, у кого Python — первый язык программирования.

Читать далее

Регулярные выражения в SQL

Reading time6 min
Views28K

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

Представьте, что вам нужно найти иголку в стоге сена, но стог — это ваша БД, а иголка — данные со сложным шаблоном. Деофлтные операторы LIKE и IN тут не помогут — слишком уж они прямолинейны. Но зато здесь отлично зайдут регулярные выражения, которые позволяют выполнять сложные поиски и преобразования строк.

Читать далее

Управление Данных с Elasticsearch: Обучение и Практика

Reading time5 min
Views9.4K

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

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

Начать практику

Information

Rating
3,650-th
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity