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

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

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

5 библиотек Python, которые выведут вас на новый уровень. Часть 2

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

Вы научились получать и обрабатывать данные. Но что дальше? Как хранить эту информацию надежно, а не в CSV-файлах? Как поделиться результатами своей работы с другими, предоставив им удобный доступ через API? Что делать, если сайт настолько сложен, что Requests не может справиться с его динамическим контентом? И как убедиться, что весь написанный вами код не сломается после очередного изменения?

Читать далее

Как установить и настроить VPS-сервер: чек-лист для начинающих

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

Вы купили VPS-сервер и не знаете, что делать дальше? Разбираю шаг за шагом, как безопасно подготовить сервер к работе, даже если вы впервые открыли терминал. 

Читать далее

Разбираю свой фотоархив

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

Сделал поиск по личному архиву фотографий с применением трех нейросетей, векторного расширения к PostgreSQL и Django

Читать далее

Как работает компьютер. Простая статья для начинающих программистов

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

В этой статье изложено всё, что нужно знать об устройстве компьютера с точки зрения программиста. Сюда входят сведения о том, для чего нужен тактовый генератор, регистры, кэши и виртуальная память; что такое архитектура процессора; что такое машинный код и код ассемблера; чем отличается компиляция в машинный код в C, C++ или Rust от компиляции в байт-код виртуальной машины в языках типа Java и C#; в чём их отличие от интерпретируемых языков вроде JavaScript или Python; что такое динамические и статические библиотеки (.dll/.so, .lib/.a); что такое фреймворк; что такое API и web-API; и что собой представляет параллельное программирование с использованием многоядерных процессоров, векторных регистров и видеокарт.

Читать далее

Мой домашний Kubernetes, или DevOps-«песочница» на домашнем ПК

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

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

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

Читать далее

Как решать LeetCode? Легко! Нужно просто…

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

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

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

Подробнее о паттернах

Эволюция диагностики аккумуляторов Makita: от Arduino OBI к автономному веб-интерфейсу на ESP32

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

Каждый, кто работает с профессиональным инструментом Makita, знает, что их аккумуляторы — это не просто «банки» с энергией. Внутри скрывается сложная система управления (BMS), которая хранит массу полезной информации: от количества циклов заряда до напряжения на каждой ячейке. Однако получить эти данные без специального оборудования невозможно.

Несколько лет назад сообщество энтузиастов подарило нам проект OBI (Open Battery Interface) — решение на базе Arduino и Python, которое впервые позволило заглянуть «под капот» этих батарей. Это был настоящий прорыв, который послужил отправной точкой и для моего проекта. Но, как и у любой технологии, у него были свои ограничения. Я поставил перед собой цель создать более современное, удобное и полностью автономное устройство. Эта статья — история его разработки, от идеи до финальной реализации.

Читать далее

ATOM: автоматизация сети ЦОД начинается с решения рутинных задач

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

ATOM: автоматизация сети ЦОД начинается с решения рутинных задач

Всем привет! Это наша первая статья про нашу систему автоматизации. Мы активно занимаемся разработкой системой автоматизации и визуализации АТОМ для сетей ЦОД в компании Ростелеком, о которой пойдёт речь.

Читать далее

Внутреннее устройство Docker. Заглянем под капот

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

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

Контейнеры - следующий шаг эволюции. Зачем виртуализировать целое железо и запускать полноценную ОС, если можно изолировать только сам процесс, используя встроенные механизмы ядра? Этот подход на порядок легче, быстрее и эффективнее.

Читать далее

Ansible Inventory: полное руководство от localhost до AWS

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

Лень — двигатель прогресса. Именно по этой причине Ansible — лучший друг любого админа, которые не хочет руками применять настройки к 1000 серверов. Я использую его на регулярной основе, но при этом именно тема инвентарных файлов каждый раз умудряется меня удивить. Поэтому в этой статье решил собрать всю общую информацию, начиная с inventory.ini и заканчивая плагинами для динамических инвентарей.

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

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании. Часть 2

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

Привет, Хабр! Меня зовут Бартенев Евгений, я автор курса «Python-разработчик» в Яндекс Практикуме и практикующий разработчик. Я прособеседовал сотни кандидатов и сам неоднократно побывал в роли собеседуемого, поэтому хорошо представляю, какие именно знания проверяют на интервью и где чаще всего «проваливаются» не только джуны, но и опытные разработчики.

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

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

Читать далее

Дело не в тебе: почему айтишники долго ищут работу, а эйчары — IT-специалистов

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

Привет, Хабр! Я — Настя Антоненко, менеджер продукта ITSM 365 HR. Работаю на стыке HR и IT, поэтому слежу за наймом по отрасли и хочу поделиться наблюдениями. 

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

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

Читать далее

Docker для Python-разработчика: как упаковать ваше приложение в контейнер и запустить где угодно

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

Представьте ситуацию: вы написали шикарного Telegram-бота, отладили его на своем ноутбуке с Python 3.11 и последней версией любимой библиотеки. Вы отправляете код коллеге, а у него падает с ошибкой, потому что у него Python 3.9 и какая-то зависимость встала криво. Или, что еще хуже, вы пытаетесь выкатить это на сервер, а там системный администратор смотрит на ваш requirements.txt и тяжело вздыхает, потому что для установки одной из библиотек нужна системная утилита, которой нет и не будет. Знакомо?

Читать далее

Личное облако на Proxmox: сеть

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

Как‑то я писал статью «Личное облако на Proxmox» где описывал как установить Proxmox разными способами и в целом, что это такое, обещал, что когда то, под настроение опишу продолжение про сетевую часть домашнего облака с сервисами, доступными из интернет на домашнем сервере, вот, пожалуйста

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

Читать далее

Создаем GUI на Python: от простого скрипта к Markdown-редактору с Flet

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

В этой статье мы познакомимся с Flet — революционным фреймворком, который позволяет делать именно это. Flet дает вам возможность создавать интерактивные GUI на чистом Python, а для отрисовки использует мощный движок Flutter. Результат — быстрые, красивые и нативные приложения для Windows, macOS, Linux и даже для веба, без необходимости писать ни строчки на Dart или JavaScript.

Читать далее

Протокол VLESS: Как он обходит цензуру в России и почему это работает

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

В 2025 году интернет-цензура в России, Китае и Иране достигла беспрецедентного уровня. Традиционные VPN-протоколы вроде OpenVPN и даже WireGuard обнаруживаются и блокируются системами Deep Packet Inspection (DPI) за считанные секунды. На сцену выходит VLESS — легковесный протокол, который становится последним работающим решением для обхода современной цензуры.

Эта статья объясняет, как работает VLESS на техническом уровне, почему он так эффективен в обходе обнаружения, и делится реальным опытом создания VPN-сервиса во враждебной среде России.

Читать далее

URL как контейнер состояния

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

Пару недель назад, когда я писал пост The Hidden Cost of URL Design, мне нужно было добавить подсветку синтаксиса SQL. Я направился на веб-сайт PrismJS, пытаясь вспомнить, можно ли добавить его в качестве плагина. Меня утомило количество вариантов на странице скачивания, поэтому я вернулся к своему коду. Поискав в файле PrismJS, я нашёл в его начале комментарий, содержащий URL:

/* https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+css-extras+markdown+scss+sql&plugins=line-highlight+line-numbers+autolinker */

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

Это стало одним из тех моментов, когда ты внезапно снова осознаёшь важность чего-то. Передо мной был URL, не просто указывающий на страницу: он хранил состояние и позволял полностью воссоздать все мои настройки. Не нужна никакая база данных, никакие куки, никакое localStorage. Достаточно одного URL.

Я задумался: как часто мы, фронтенд-разработчики, забываем об URL как об инструменте управления состоянием? Мы пытаемся использовать для этого всевозможные абстракции: глобальные хранилища, контексты, кэши, забывая при этом одну из самых древних и изящных фич веба: скромный URL.

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

Читать далее

Мои личные скрипты для повседневной работы

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

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

Читать далее

Изучаем ООП Python: наследования для начинающих с домашним заданием

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

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

Проще говоря, вместо того чтобы говорить: «Гоблин — это что-то, у чего есть здоровье и атака. Дракон — это что-то, у чего есть здоровье и атака», мы говорим: «Сначала создадим общий шаблон "Враг" с базовыми характеристиками. А гоблин и дракон — это разновидности этого врага, которые наследуют всё от него и добавляют что-то своё».

Читать далее

Изучаем Python: модуль Pytest для начинающих с домашним заданием

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

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

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

Читать далее

Информация

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