Pull to refresh
2
0
ASP@ASP

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

Send message

Краткий курс по менеджменту за 10 минут: база, которая вытянет любой проект

Level of difficultyEasy
Reading time10 min
Reach and readers26K

Менеджмент без коучинга и теории — показываю рабочие фреймворки, которые закрывают 70% задач руководителя.

Читать далее

Делаем интерфейс дружелюбнее. Коллекция простых HTML/CSS лайфхаков

Level of difficultyMedium
Reading time6 min
Reach and readers21K

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

Красивый и интуитивно понятный интерфейс — это моя личная страсть. Я тратил дни, чтобы докрутить свои проекты до нужного мне уровня. В итоге я начал систематически собирать приёмы HTML и CSS, которые мгновенно улучшают восприятие пользователя.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Я решал LeetCode 600 дней подряд и что из этого вышло

Level of difficultyEasy
Reading time8 min
Reach and readers55K

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

Эта статья — впечатления о моём 600-дневном марафоне на этой платформе, динамике моих скилов и ответе на главный вопрос «надо ли решать там задачи?».

Все было спокойно, пока мы с другом не заключили спор — сможем ли мы решить 100 задач до конца 2023 года? А это было 50 задач всего за 1 месяц — декабрь.

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

Челлендж в 100 задач оказался достаточно легким — Новый год мы встречали уже с круглым числом выполненных задач в профиле. Так быстро мы решили не останавливаться — Покоренная вершина стимулировала покорить новую — 200 задач к началу лета (за 5 месяцев).

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

24 февраля 2024 в течении недели Leetocde предлагал неплохие и не очень сложные задачи на дейли челлендже, и у меня случайно получился стрик в районе 10 дней подряд.

Сбивать стрик было как‑то жалко — это же целых 10 дней. Так и началась долгая история в 600 дней...

Читать далее

Один сервер, вся сеть: руководство по RADIUS для новичков

Level of difficultyEasy
Reading time5 min
Reach and readers17K

Управлять сетью сложно, пока у каждого устройства свои логины и правила. Десятки точек доступа, роутеров, шлюзов — и админ превращается в архивариуса паролей. Менять доступ сотруднику? Делать это на каждом устройстве. Отключить уволенного? То же самое, только наоборот. Ошибиться легко.

Но решение существует давно — централизованная авторизация через RADIUS. Один сервер знает все: кто подключается, к чему имеет доступ и что делает в сети.

Я Лев, специалист продуктовой поддержки в Selectel. Под катом расскажу, как работает RADIUS, за что отвечает AAA и как развернуть свой сервер на базе FreeRADIUS в облаке — от установки до интеграции с оборудованием MikroTik.

Под кат →

10 вопросов на собеседовании Junior Python-разработчика. Часть 1

Level of difficultyMedium
Reading time9 min
Reach and readers12K

Вы отправили десятки резюме, прошли первый скрининг с HR-менеджером, и вот оно — заветное письмо: «Приглашаем вас на техническое собеседование». В этот момент сердце начинает биться чаще, а в голове проносится главный вопрос: «Что же меня спросят?». Интернет полон сотен списков вопросов, но как понять, что из этого действительно важно и актуально сегодня?

Читать далее

Разбираемся со звёздочками: понятное руководство по *args и **kwargs для начинающих

Level of difficultyMedium
Reading time15 min
Reach and readers7.6K

Многие начинающие разработчики обходят *args и **kwargs стороной, считая их чем-то необязательным или слишком сложным. Но на самом деле, понимание этого механизма — это качественный скачок в вашем умении писать чистый, масштабируемый и по-настоящему "пайтонический" код.

Читать далее

Как работает DNS в Linux. Часть 4: DNS в контейнерах

Level of difficultyMedium
Reading time19 min
Reach and readers14K

Каждая контейнерная платформа — Docker, Podman, Kubernetes — реализует собственную DNS-архитектуру со специфическими особенностями, преимуществами и подводными камнями. Понимание этих различий критически важно для построения надежных и производительных контейнерных инфраструктур. С чем мы и попробуем разобраться в этой статье.

Читать далее

Уроки свежих кибератак: принцип резервного копирования 3-2-1

Level of difficultyMedium
Reading time5 min
Reach and readers9.7K

Представьте: утро 29 июля 2025 года, аэропорты по всей России в хаосе. Крупная российская авиакомпания вынуждена отменить десятки рейсов, в основном внутренних, из-за мощной кибератаки. Системы бронирования и управления полетами парализованы, пассажиры в панике, а компания теряет миллионы. Это не сценарий из фильма, а реальный инцидент, где хакеры продемонстрировали, насколько хрупка ИТ-инфраструктура даже у гигантов авиации.  Этот пример показывает, насколько важно иметь комплексный план реагирования и резервного копирования, чтобы минимизировать последствия подобных атак. Такие события напоминают: в эпоху, когда данные — это кровь бизнеса, отсутствие надежного плана на случай сбоя может стоить не только денег, но и репутации. Подобные атаки становятся ярким уроком, подчеркивающим, что без продуманного резервного копирования восстановление превращается в марафон, а не в спринт.

Читать далее

Асинхронный Python: руководство для начинающих с практическим заданием

Level of difficultyMedium
Reading time13 min
Reach and readers10K

Ваш Python-скрипт работает медленно. Вы запускаете его и смотрите, как он "висит", ожидая загрузки файла, ответа от API или завершения запроса к базе данных. Проблема почти всегда одна — ожидание. В программировании такие задачи называются I/O-bound (ограниченные вводом-выводом), и именно они "съедают" драгоценное время.

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

Читать далее

Как я парсил схемы Visio

Level of difficultyMedium
Reading time19 min
Reach and readers6.1K

Привет, Хабр! Меня зовут Алексей Грохотов, я разрабатываю продукт Сфера.Архитектура в ИТ‑холдинге Т1. Перед нашей командой стояла задача перенести документы из Orbus iServer в Сфера.Архитектуру. Iserver — это набор инструментов для описания, поддержки и трансформации архитектуры предприятия. Он в значительной степени интегрирован с Microsoft Office, например, все схемы в этом инструментарии создаются в Visio.

Я должен был проанализировать схемы Visio и извлечь необходимую информацию из этих документов. Объекты, соответствующие «прямоугольничкам и стрелочкам» Visio, уже хранились у нас в базе. Мне нужно было соотнести их с фигурами и стрелками схемы, записать для этих объектов геометрическое и текстовое содержание фигур, а также некоторые их специфические свойства. Ещё нужно было определить порты — «стыковочные места» по периметрам фигур, к которым присоединяются стрелки, а также найти надписи у стрелок и фигур. И после этого сохранить в базу данных всю найденную информацию.

Читать далее

Единственная шпаргалка по ReactJS, которая вам нужна

Level of difficultyEasy
Reading time22 min
Reach and readers13K

Добро пожаловать в ещё одну шпаргалку по React! Но подождите, это не то, что вы подумали — не просто набор случайных примеров кода и банальных объяснений, как в других шпаргалках.

Обещаю, это будет по-настоящему полезно. Мы вместе разберёмся, как работает ReactJS, и как реализованы все его крутые фичи «за кулисами», с помощью интерактивных демо, которые я специально подготовил для вас. Это поможет вам реально понять, как всё устроено, и применять знания на практике.

Перейти к разбору ReactJS

Как я в одиночку спроектировал API-шлюз на FastAPI, который держит 200к+ запросов в сутки

Level of difficultyMedium
Reading time3 min
Reach and readers20K

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

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

Статья будет полезна тем, кто работает с FastAPI, микросервисами и думает о надежности и масштабируемости своих систем.

Читать далее

Шпаргалка по работе с PostgreSQL для бэкенд-разработчиков

Level of difficultyMedium
Reading time7 min
Reach and readers14K

Лайфхаки для миграций, оптимизации и избегания граблей

Реальные лайфхаки и проверенные практики по миграциям, оптимизации запросов, управлению индексами и обратной совместимости кода. Узнайте, как:

Не сломать прод при миграции.
Избежать N+1 и других проблем SQL-запросов.
Планировать откаты и работать безопасно на высоконагруженных БД.

Читать далее

Пограничные случаи HTTP, которые должен понимать каждый разработчик API

Level of difficultyMedium
Reading time16 min
Reach and readers16K

В феврале прошлого года у интерфейса веб-серверов Rack, лежащего в основе практически каждого приложения Ruby on Rails, был обнаружен CVE-2024-26141. Уязвимость была простой: достаточно отправить запрос файла с сотней байтовых диапазонов, и Rack генерировал неожиданно большой ответ. Серверы продакшена можно было атаковать одиночными HTTP-запросами, пока у них не закончится ресурс памяти или канала.

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

Это пример того, как простой неправильно обрабатываемый пограничный случай HTTP может нанести существенный ущерб. И не потому, что мы плохие разработчики, а потому, что HTTP сложен. В идеальном случае всё работает замечательно. Но потом наступает продакшен.

Читать далее

Kafka для начинающих: откуда такой спрос и зачем нужна эта технология

Level of difficultyMedium
Reading time13 min
Reach and readers36K

Почему REST API не всегда подходит для общения микросервисов?
Разбираем на примере интернет-магазина, как Kafka решает проблемы синхронной коммуникации, масштабирования и отказоустойчивости.

Простыми словами о топиках, партициях, consumer groups — для начинающих разработчиков.

Читать далее

Нас минусили, блокировали и копировали – но мы только лучше. 5 лет Amnezia

Level of difficultyEasy
Reading time6 min
Reach and readers68K

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

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

Читать далее

Умный родительский контроль на MikroTik: Как разрешать доступ в интернет с вашего телефона

Level of difficultyEasy
Reading time4 min
Reach and readers6.2K

Стандартные методы родительского контроля часто бывают неудобными: либо вы блокируете всё, кроме пары сайтов, либо тратите кучу времени на ручное ведение "белых списков". Этот метод предлагает элегантное и гибкое решение.

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

Читать далее

Как подключить мобильный интернет от удаленной не заглушенной вышки

Level of difficultyEasy
Reading time4 min
Reach and readers83K

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

Живу в частном доме на окраине, проводного интернета нет, и технические возможности у местных операторов отсутствуют. Мобильный интернет всегда устраивал, но и его в последнее время в нашем районе отключили совсем. Вышки с не отключенным интернетом в небольшом количестве по городу присутствуют в других районах. Поэтому, для подключения мобильного интернета возникла идея усилить сигнал и подключиться к работающим вышкам, которые расположены на расстоянии 3-8 км от дома с помощью узконаправленной антенны и GSM-модема с возможностью выбора частот.

Читать далее

Декораторы в Python для начинающих с домашним заданием

Level of difficultyMedium
Reading time18 min
Reach and readers10K

Привет, Хабр! Если вы работаете с Python дольше пары недель, вы наверняка сталкивались с конструкцией, начинающейся с символа @. Это декораторы — мощный инструмент, который делает код чище, читабельнее и соответствует принципу DRY (Don't Repeat Yourself). Но за элегантным синтаксисом скрывается несколько ключевых концепций языка, которые важно понимать.

Читать далее

Дорогие джуны, не делайте так. Коллекция плохих привычек в HTML и CSS

Level of difficultyMedium
Reading time7 min
Reach and readers21K

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

Давно я ничего не писал для джунов. А ведь HTML и CSS не стали проще для них. Всё так же есть сложности, и мне надо как-то помочь людям.

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

Давайте посмотрим, что я вам подготовил.

Читать далее

Information

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