Pull to refresh
143
0.1
Олег Сухонос @sukhe

программист

Send message

Mount — ещё один способ уменьшения размера Docker-образа

Level of difficultyMedium
Reading time3 min
Views6.7K

Делюсь лайфхаком по уменьшению размеров Docker-образов. Как-то нам попалась на поддержку и развитие CRM-система, написанная на Ruby...

Обновили Ruby-пакеты и под них код, написали Dockerfile. Первая сборка была удручающей: образ в 2Гб. Это нормальный размер, если ты собираешь образ с Torch и другой ML-штуковиной, но CRM - нет. В результате дальнейших действий, удалось сократить размер образа до 200Мб.

Cделали следующее, чтобы сократить размер
Total votes 27: ↑24 and ↓3+25
Comments11

Асинхронный SQLAlchemy 2: пошаговый гайд по управлению сессиями, добавлению и извлечению данных с Pydantic

Reading time34 min
Views3.3K

Продолжаем цикл статей по асинхронной SQLAlchemy в стиле ORM!

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

Что нас ждёт сегодня?

- Сессии и фабрики сессий: Узнаем, как эффективно управлять сессиями для взаимодействия с базой данных.

- Добавление данных в таблицы: Освоим безопасные методы добавления новых записей с использованием ORM-методов.

- Извлечение данных из таблиц: Погрузимся в мир извлечения данных. Рассмотрим простые запросы и более сложные фильтры для работы с данными.

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

Не пропустите, будет интересно и полезно!

Читать далее
Total votes 9: ↑9 and ↓0+11
Comments16

Асинхронный SQLAlchemy 2: простой пошаговый гайд по настройке, моделям, связям и миграциям с использованием Alembic

Reading time30 min
Views6.7K

Наконец-то пришло время взяться за то, что я давно планировал — подробный гайд по асинхронной версии SQLAlchemy 2.0 в стиле ORM. В этой серии статей я подробно расскажу обо всех аспектах: от создания моделей и установления связей между ними до миграций с Alembic и взаимодействия с данными в базе. Мы будем шаг за шагом разбирать ключевые моменты работы с асинхронной базой данных, что позволит вам глубже понять SQLAlchemy и применить эти знания на практике.

Для начала, давайте разберёмся, что такое SQLAlchemy и почему каждый разработчик, работающий с реляционными базами данных (такими как SQLite, PostgreSQL, MySQL и т. д.), должен знать о ней. После этого — настройка. Мы будем работать с PostgreSQL, но не переживайте: код, который мы напишем, универсален для всех реляционных баз данных. Мы начнем с базовой настройки SQLAlchemy для асинхронного взаимодействия, а затем перейдём к созданию таблиц в современном декларативном стиле.

Читать далее
Total votes 21: ↑20 and ↓1+22
Comments19

Home Lab мечты в Kubernetes

Level of difficultyHard
Reading time34 min
Views7.1K

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

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

Читать далее
Total votes 15: ↑15 and ↓0+20
Comments11

Сравнение алгоритмов консенсуса ETH vs TON vs SOLANA

Level of difficultyHard
Reading time20 min
Views1.5K

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

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

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

Читать далее
Total votes 10: ↑9 and ↓1+13
Comments1

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views20K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →
Total votes 90: ↑89 and ↓1+117
Comments131

50 терминов системного дизайна, которые должен знать каждый разработчик

Level of difficultyMedium
Reading time10 min
Views16K



1. Масштабируемость / Scalability


  • Масштабируемость — это способность системы поддерживать возросшую нагрузку путем добавления дополнительных ресурсов
  • Примером является добавление дополнительных серверов для обработки увеличившегося веб-траффика
  • Что такое масштабируемость и как ее достичь?

2. Балансировка нагрузки / Load Balancing


  • Балансировка нагрузки — это разделение входящего сетевого траффика между несколькими серверами для снижения нагрузки на каждый из них (во избежание того, чтобы на один сервер приходилось слишком много траффика)
  • Примером является распределение веб-траффика между несколькими экземплярами EC2 с помощью сервиса AWS Elastic Load Balancer (ELB)
  • Понимание балансировки нагрузки
Читать дальше →
Total votes 42: ↑36 and ↓6+42
Comments6

Оконные функции простым языком — Фреймы

Level of difficultyEasy
Reading time4 min
Views6.2K

Привет всем!

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

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

P.S. Если автор что-то не разобрал и не написал, значит он посчитал это не обязательным в рамках этой статьи :-)

Будем разбирать примеры на такой небольшой таблице, где указана прибыль (net_profit) компании на каждый месяц в рамках одного года.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments5

5 одноплатников для самых разных задач: новинки сентября

Reading time4 min
Views16K

В этом месяце появилось несколько интересных одноплатников, о которых стоит рассказать на Хабре. Среди них как универсальные девайсы, так и устройства, которые предназначены для определенного круга задач. Если вдруг мы что-то упустили — рассказывайте в комментариях о тех девайсах, которые понравились именно вам. А если вы с чем-то работаете давно и плотно — делитесь своим опытом! Подробности под катом.
Читать дальше →
Total votes 53: ↑53 and ↓0+70
Comments30

Как я прогнозирую полярные сияния с помощью открытых данных, Python и облачного сервера

Reading time31 min
Views8.5K

Доводилось ли вам наблюдать полярное сияние? В окрестностях Санкт-Петербурга это не такое уж и редкое явление, но многие мои друзья и знакомые его ни разу не видели. Как оказалось, они не знают, когда, куда и при каких обстоятельствах отправиться, чтобы его застать. Это побудило меня впервые написать код на Python, чтобы решить проблему. В этой статье расскажу, как я автоматизировал оценку состояния магнитосферы Земли и запустил Telegram-бота на облачном сервере, чтобы получать информацию о предстоящих полярных сияниях.
Читать дальше →
Total votes 56: ↑56 and ↓0+75
Comments4

Настройка Linux для обучения моделей с GPU

Level of difficultyEasy
Reading time4 min
Views3.8K

Настройка ПК с Linux для обучения моделей на GPU. В статье приводятся ссылки на скрипты, написанные для упрощения процесса настройки ПК с GPU на Linux для обучения моделей машинного обучения. Скрипты и настройка разбита на три ключевых этапа: настройка удалённого доступа с помощью ssh/vnc/rdp, установка драйверов Nvidia и CUDA для работы с GPU, а также конфигурация инструментов разработки, таких как Docker и Jupyter. Скрипты могут помочь с решением вопросов с установкой или послужить основой для улучшений/изменений чтобы быстро подготовить домашнюю лабораторию к работе.

Читать далее
Total votes 7: ↑4 and ↓3+3
Comments9

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

Reading time4 min
Views14K

Всем привет! Я Антон Комаров из МТС Диджитал. Сегодня расскажу о личном опыте работы на ноутбуке сразу с тремя дисплеями.

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

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

Читать далее
Total votes 28: ↑27 and ↓1+45
Comments39

Запускаем PostgreSQL в Docker: от простого к сложному

Level of difficultyEasy
Reading time12 min
Views539K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Total votes 34: ↑32 and ↓2+35
Comments39

Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD

Reading time10 min
Views6.3K

Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.

Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.

В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.

Читать далее
Total votes 13: ↑13 and ↓0+18
Comments8

Kiisu — плата, совместимая с Flipper Zero

Level of difficultyEasy
Reading time5 min
Views15K

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

Приглашаю под кат, чтобы посмотреть, что получилось и обсудить, как можно сделать ещё лучше :)

Читать далее
Total votes 102: ↑101 and ↓1+127
Comments39

Обходим замедление Youtube на Android TV без VPN

Level of difficultyMedium
Reading time3 min
Views247K

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

Читать далее
Total votes 51: ↑48 and ↓3+56
Comments84

Делаем правильный анаглиф своими руками

Level of difficultyEasy
Reading time12 min
Views6.8K


Всем привет. Сегодня я поделюсь методом создания высококачественных анаглифических изображений с минимальными трудозатратами. Динозавров делать не будем: возьмем любую фотографию из семейного архива и получим полноценное трехмерное изображение. Сразу скажу, что концепция не новая, но мы будем использовать современные наработки и даже напишем простейший плагин для GIMP, от которого, впрочем, придется отказаться…
Читать дальше →
Total votes 40: ↑39 and ↓1+53
Comments9

Какой роутер для OpenWrt купить в 2025 году?

Level of difficultyEasy
Reading time21 min
Views104K

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

Роутер, как и любой другой девайс, нужно покупать под запрос. Например, линуксоиды привыкли покупать ноутбуки именно под Linux, а не первый попавшийся. Также и тут: если нужен OpenWrt, то роутер тоже надо выбирать с умом, а не надеяться на то, что кастомная прошивка сделает конфетку из роутера за 700 р.

В 2023 и 2024 появились интересные роутеры, которые уже поддерживаются проектом OpenWrt. Эти роутеры сделаны на базе ARM-процессоров. Такие роутеры появились у нескольких компаний, и дальше их количество будет только увеличиваться.

Читать далее
Total votes 245: ↑245 and ↓0+271
Comments246

Программируем полётный контроллер на основе DIY проекта Flix

Level of difficultyMedium
Reading time19 min
Views19K

У нас в МАИ, в 8-м институте, учатся будущие разработчики IT‑продуктов и софта для авиационных систем, аэропортов, логистики и много чего ещё интересного. Один из курсов с 2023 года мы решили посвятить разработке программного обеспечения для автопилота. В курсе всё как положено, с красивыми диаграммами регуляторов, кватернионами и кодами таких проектов как Ardupilot, PX4, Betaflight, iNav и другими.

Однако, довольно сложно сразу вкатиться в тему полетных прошивок — они переполнены всякими фичами и функционалом, так что неподготовленному разработчику сложно понять как же это всё работает. Поэтому долгое время я искал такой проект, который позволяет «на пальцах» объяснить как работает прошивка полётника. Таким проектом для меня стал Flix от Олега Калачева. Про опыт сборки проекта и изучения на его основе полетной прошивки со студентами и пойдет разговор в этой статье.

Полетели !
Total votes 43: ↑42 and ↓1+53
Comments22

Вам следует написать новый (ужасный) язык программирования

Level of difficultyEasy
Reading time5 min
Views15K

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

Но из-за этого мы теряем возможность научиться чему-то новому. Я нашла это новое, когда создала язык, руководствуясь глупым принципом: поток управления должен осуществляться через исключения и ничего больше. Я создала его как шутку, но неожиданно для себя в процессе разработки получила новые знания.
Читать дальше →
Total votes 45: ↑43 and ↓2+55
Comments63
1
23 ...

Information

Rating
3,596-th
Location
Донецкая обл., Украина
Registered
Activity

Specialization

Backend Developer