Обновить
2
0
ASP@ASP

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

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

Рабочее место 3.0: идеальное место обитания айтишника

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

Когда работаешь по 16 часов за компьютером, стол перестаёт быть мебелью и превращается в инструмент. Этим инструментом я и занялся. И вот что из этого вышло

Читать далее

Безопасность API (аутентификация и авторизация): проблемы, решения, практические рекомендации

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

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

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

Читать далее

Как НЕ нужно писать автотесты на Python

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

Разбираем самые странные антипаттерны в автотестах на Python: от sleep(0.1) и стрелочек вниз до глобальных курсоров и "фреймворков" на 3500 строк. Почему так делать не стоит и какие есть взрослые альтернативы.

Читать далее

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

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

Регулярные выражения (или regex) — это особые текстовые строки, используемые для описания поискового шаблона. В PostgreSQL regex становится незаменимым инструментом, особенно при работе с большими объёмами неструктурированных строковых данных.

Возможно, у кого‑то есть вопрос: «А для чего нам регулярные выражения в БД?» И мы вам ответим:

Регулярные выражения (regex) позволяют описать сложные текстовые шаблоны компактно и гибко.

Читать далее

Терминал — ваш лучший друг: 5 утилит командной строки, которые заменят вам GUI

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

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

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

Читать далее

Автоматизируем подготовку промтов для GPT: Python-функция для детального описания DataFrame

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

Привет, меня зовут Виталий. Автор телеграмм канала «Детектив данных» про смену профессии и мой вкат в «аналитику» после 30 лет. И да, я уже наверное года полтора использую помощь нейросети при написании кода на Питоне.

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

Будто при допросе вместо описания преступника, следователь внимательно изучает все родинки у допрашиваемого лица. И у адвоката.

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

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

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

Смотрим функцию, сохраняем

Python и множества: генераторы, которые делают код чище

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

Команда Python for Devs подготовила перевод статьи о генераторах множеств в Python. С их помощью можно создавать, преобразовывать и фильтровать множества одной строкой кода. Разбираем примеры, практические приёмы и ошибки, которых стоит избегать.

Читать далее

Как не попасть на штраф РКН из-за персональных данных на своем сайте

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

2025 год оказался богат на поправки в законодательство о персональных данных. Одна часть изменений вступила в силу весной, другая — летом, а некоторые начали действовать только с 1 сентября.

Привет, Хабр! На связи Алёна, аналитик по информационной безопасности в Selectel. В этой статье разберем, что делать владельцам интернет-ресурсов, чтобы избежать штрафов и других санкций. Материал основан на моем опыте работы с регулятором и анализе его публичных разъяснений.

Читать далее

Почему одно письмо с ФИО в почте делает вас оператором персональных данных?

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

Периодически мне задают следующий вопрос — «Наша компания не имеет базы данный по клиентам, не ведет кадровый учет и вообще не собирает, не хранит и не обрабатывает ПДн. Если клиент прислал нам электронное письмо на корпоративную почту и подписался (ФИО, телефон), является ли это обоснованием считать нас оператором ПДн и обязывает ли выполнять требования 152-ФЗ?»

Короткий ответ: да, ваша компания становится оператором ПДн уже в момент, когда вы настроили корпоративную почту и получили/прочитали/сохранили письмо, содержащее ФИО и телефон отправителя. Это уже «обработка» ПДн (запись, хранение, использование, удаление и т. д.), а вы — лицо, организующее обработку и определяющее её цели и средства (деловая переписка через корпоративный e‑mail). Значит, на вас распространяются требования 152-ФЗ.

Читать далее

Самые популярные Python фреймворки и библиотеки 2025 года

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

Команда Python for Devs подготовила перевод статьи о самых популярных Python-фреймворках и библиотеках 2025 года. FastAPI уверенно догоняет Django и Flask, Requests и Asyncio остаются незаменимыми, а Streamlit и Starlette усиливают свои позиции в нишевых сценариях.

Читать далее

Как проектировать качественные API

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

Основная часть работы современных разработчиков ПО1 связана с API: публичными интерфейсами для общения с программой, например, API Twilio. Я потратил кучу времени на работу с API как их разработчик и пользователь. Я писал публичные API для сторонних разработчиков, приватные API для внутреннего использования (или для потребления одной страницей фронтенда), API REST и GraphQL и даже несетевые интерфейсы, например, для инструментов командной строки.

Думаю, большинство рекомендаций по проектированию API слишком уж уходит в тонкости. Разработчики отвлекаются на обсуждения того, что же такое «реальный» REST, правильно ли использовать HATEOAS и так далее. В этом посте я попытаюсь рассказать всё, что знаю о проектировании хороших API.

Читать далее

Самый быстрый способ читать Excel в Python

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

Команда Python for Devs подготовила перевод статьи о том, как читать Excel в Python быстрее всех. В статье результаты тестирования pandas, openpyxl, Tablib, DuckDB, LibreOffice и даже связки с Rust. Кто справился лучше всех и как за 4 секунды Python «проглотил» полмиллиона строк — читайте в статье.

Читать далее

Как обеспечить отказоустойчивость почтового сервера Exim под нагрузкой 1 000 000 писем/мин. с помощью FUSE и Tarantool

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

Привет, Хабр! Меня зовут Максим Уймин, в этой статье я расскажу про почту, про распределенные очереди, немножко про FUSE и файловые системы.

Читать далее

Работает даже на парковке: как развернуть свой узел связи на базе Matrix Synapse, Coturn и Element

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

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

Этот текст — не про аренду. Он о том, как выковать ключи, возвести стены и поднять флаг над своей собственной, неприступной цифровой цитаделью. Мы развернем на сервере Selectel полноценный узел связи: Matrix Synapse, сервер звонков Coturn и веб-клиент Element. Никаких контейнеров, никакой магии. Только чистая система, командная строка и стопроцентный контроль.

Читать далее

Случаи из разработки на асинхронных фреймворках в Python. Часть 1. FastAPI

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

Асинхронность в Python кажется простой — добавил async/await, и всё летает. Но на практике синхронные вызовы внутри асинхронного кода превращаются в «бутылочное горлышко», блокируя event loop и приводя к непредсказуемым последствиям: от подвисших запросов до деградации производительности. Как разбираться в таком случае и почему важно знать особенности фреймворков в подкате...

Читать далее

Как я замену MAX'у искал, или «Matrix и XMPP на своем сервере для самых маленьких»

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

В свете небезызвестных событий в законотворческой области, столкнулся с необходимостью организовать канал для звонков внутри семьи, т.к. пользоваться звонками в популярных мессенджерах – значит быть подверженным угрозам со стороны мошенников и спонсировать терроризм, а звонить по мобильной сети с ее ужасным качеством связи (несмотря на все потуги операторов в VoLTE и прочие VoiceHD)  в 2025 году – какой-то моветон. А MAX на мои устройства устанавливаться отказался, не знаю почему, я даже не пробовал. Может быть потому что я слишком мало времени провожу в лифте и на парковке?

Что из этого получилось и как повторить — готов поделиться.

Читать далее

Паттерны проектирования в Python, о которых следует забыть. Часть вторая

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

С тех пор, как «банда четырёх» ещё в 90-е выпустила свою легендарную книгу «Паттерны объектно-ориентированного проектирования», сами «паттерны проектирования» стали краеугольным камнем всевозможных рассуждений о программной архитектуре. Однако, со временем этот термин становится всё более размытым. Сегодня при упоминании паттернов может иметься в виду:

Назначение этого паттерна: та проблема, для решения которой он предназначен Реализация: точная структура класса или код для воплощения этого паттерна

Рассказывая о «паттернах проектирования в Python, о которых следует забыть», мы имеем в виду как раз реализации. В самом деле, эти паттерны решают реальные задачи. Но в Python решение этих задач ничуть не напоминает те варианты, которые предлагаются на C++ или Java.

Держа в уме эту идею, делаем простой вывод:

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

Читать далее

Определение положения объектов на изображении: как найти пространственные координаты объекта, используя OpenCV

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

Как найти 3D координаты объектов на изображении?

Статья о задаче пространственной локализации объектов на изображении с одной камеры и о её решении с помощью OpenCV

Читать далее

Автоматизация конспектов для ленивых: Obsidian + Zotero

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

Привет! Меня зовут Андрей, я разработчик из команды контента в Банки.ру.

Как человек, который постоянно изучает новые технологии и читает тонны документации, я давно устал тратить часы на ручное конспектирование. Перепробовал кучу способов — от блокнотов до сложных систем управления знаниями, пока не наткнулся на идеальную связку Obsidian + Zotero.

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

Читать далее

Универсальный парсинг сайтов на Python: requests vs headless, токены, куки, прокси и ротация IP

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

Вы когда-нибудь радовались идеальному прототипу парсера, который у вас летал на демо-странице, а в проде внезапно начал ловить 403, 429, пустые HTML и «куда-то делись карточки»? Контент отрисовывается на JS, сервер требует токен, после смены IP, старая сессия перестаёт работать.

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность