Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 11 min 5 sec ago

ООП в Python на пальцах: Пишем свою текстовую RPG с нуля

Sat, 11/22/2025 - 13:41

Как объяснить новичку разницу между Классом и Объектом так, чтобы он запомнил это навсегда? Представить, что Класс — это чертеж робота, а Объект — сам робот.

В этой статье я раскладываю принципы ООП (Объектно-Ориентированного Программирования) на понятные атомы. Никакой сухой академической теории — только живой код на Python. Мы пройдем путь от простых переменных до масштабируемой системы классов на примере создания RPG-игры. В конце вас ждет домашнее задание для закрепления материала.

Читать далее

Нейросеть против PostgreSQL: системные ошибки AI в прогнозировании производительности под нагрузкой

Sat, 11/22/2025 - 13:18

Использование нейросетей для оптимизации баз данных кажется перспективным направлением, но реальная эффективность таких систем требует тщательной проверки. В данном исследовании проанализирована способность нейросетевой модели точно прогнозировать производительность СУБД PostgreSQL в условиях экстремальной параллельной нагрузки. Результаты демонстрируют систематические ошибки AI, связанные с неспособностью учесть динамические аспекты работы СУБД.

ℹ️ Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub

kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL

pg-expecto/pg_expecto: Комплекс pg_expecto для статистического анализа производительности и нагрузочного тестирования СУБД PostgreSQL

Читать далее

Пишем Telegram-бота на Python: прикручиваем оплату Telegram Stars, систему промокодов и OpenAI

Sat, 11/22/2025 - 13:16

Привет, Хабр! В качестве пет-проекта для работы с API и базами данных решил написать своего бота-ассистента. Идея простая: прокси к OpenAI, но с нюансами: хотел разобраться, как работать с относительно новой внутренней валютой Telegram Stars, реализовать собственную систему промокодов и админку без использования громоздких фреймворков, оставаясь на библиотеке telebot (pyTelegramBotAPI).

Читать далее

Loongson 3D7000: новый китайский процессор с большим потенциалом. Что это за чип?

Sat, 11/22/2025 - 13:00

В ноябре 2025 года Loongson анонсировала 3D7000 — свой новый производительный чип. У него есть несколько интересных особенностей. Так, это модель на чиплетной архитектуре с десятками ядер, которую компания собирается вывести на рынок в 2027 году. Пока опубликованы лишь базовые детали, но даже их хватает, чтобы понять, в какую сторону движется линейка: более плотные кристаллы, масштабируемые конфигурации и поддержка современных стандартов. Давайте посмотрим, что это за чип, и для чего он может пригодиться. Поехали!

Читать далее

AI на фотонных чипах все ближе: ученые провели тензорные вычисления с помощью света

Sat, 11/22/2025 - 12:13

В Университете Аалто в Финляндии разработали чип, который использует свет для выполнения тензорных вычислений — базовой операции современных нейронных сетей. Исследование опубликовано в Nature Photonics и описывает прототип оптической системы, где все процессы выполняются с помощью фотонов вместо электрических сигналов. Такой подход ускоряет операции и снижает энергозатраты по сравнению с электронными схемами. Давайте посмотрим, как устроен этот чип, чем он отличается от обычных процессоров и какие задачи ему можно поручить.

Читать далее

Квантовые вихри исполняют парный танец в ловушке, состоящей из света

Sat, 11/22/2025 - 12:13

Международная группа физиков-теоретиков из Китая и России предложила и детально смоделировала новый способ управления экзотическими квантовыми объектами — «вихревыми молекулами». Эти устойчивые, вращающиеся пары или группы квантовых вихрей удалось сформировать в уникальной среде, известной как экситон-поляритонный конденсат.

Читать далее

[Перевод] Кому принадлежит ваша CMS?

Sat, 11/22/2025 - 11:50

Несколько адаптированный перевод статьи одного из основателей Joomla - Брайана Тимена. Сохранён tone of voice автора.

Читать далее

Вайб-кодим локальный мультимедийный сервер на C++ и Vue.js

Sat, 11/22/2025 - 11:30

У каждого из нас на жестких дисках копятся терабайты контента. Фильмы, скачанные «про запас», архивы семейных видео, гигабайты музыки во FLAC, которую жалко удалять, и тысячи фотографий. Но есть проблема: потреблять этот контент локально — неудобно. Когда дома лежит большой медиа‑архив — фотографии за годы, фильмы, музыка, куча видео — начинаешь задумываться, что работать с этим напрямую через файловую систему совсем не удобно. Особенно в эпоху, когда интерфейсы крупных медиа‑сервисов настолько продуманы, что сами по себе стали стандартом UX.

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

Читать далее

Лабораторная работа по тонкой настройке LLM для нестандартных задач классификации

Sat, 11/22/2025 - 10:06

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

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

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

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

Читать далее

Защита от мошенников: как я написал MVP версию сервиса для защиты от скама и мошенничества через Telegram

Sat, 11/22/2025 - 08:56

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

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

Читать далее

Автоматически скрываем лишние истории в VK: простой браузерный скрипт

Sat, 11/22/2025 - 06:59

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

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

Поэтому я написал простой браузерный скрипт, который автоматически скрывает истории почти от всех, кроме тех, кого я явно добавил в список исключений по имени или ID.

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

GitHub

Читать далее

Оптимизация производительности приложений: проблемы, решения, практические рекомендации

Sat, 11/22/2025 - 05:00

Приложение тормозит. Это жалоба номер один, которую слышат разработчики и архитекторы. Но "тормозит" — это не диагноз. Это симптом. За этим простым словом может скрываться что угодно: от плохо написанного SQL-запроса до "шумного соседа" в облаке или неправильной настройки сборщика мусора.

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

Читать далее

Принципы VSYOEBAL: От теории к практике

Sat, 11/22/2025 - 03:00

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

Читать далее

Искусство выжить. Простое руководство для настоящих программистов

Sat, 11/22/2025 - 01:46

Задача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на Хабре[1].

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

Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про DPP см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы сортировок[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача Дейкстры[4].  

Замечание 1. В рамках обсуждения статьи на Хабре было проигнорировано  предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать.

Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь.

Читать далее

Как я разрабатывал игру на своем движке. Часть первая

Fri, 11/21/2025 - 23:27

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

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

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

Читать далее

Card DOM на языке Argentum: мы дома

Fri, 11/21/2025 - 22:26

Пятая статья в серии о DOM-подобных моделях данных в разных языках программирования.

В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript. и С++, Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony).

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

Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.

Читать далее

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

Fri, 11/21/2025 - 21:31

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

Читать далее

Spring Boot 4. Новые модули. Зачем?

Fri, 11/21/2025 - 21:22

Это довольно короткая статья, целью которой является пояснение того, что вообще такое "модуляризация" Spring Boot, почему она появилась и откуда, собственно, ноги растут.

Для многих Spring Boot это просто автоконфигурация. Само собой Spring Boot гораздо шире и включает в себя в том числе ещё и

Spring Boot Actuator

Spring Boot DevTools

Spring Boot Tools и т.д.

Читать далее

История о том как почтовый стандарт спас Web

Fri, 11/21/2025 - 21:14

История стартует в 1982, когда Университет Карнеги (Carnegie Mellon University, CMU) и корпорация IBM запустили Andrew Project, проект который должен был упростить коммуникацию и совместную работу внутри университетского кампуса.

Читать далее

Who's online

There are currently 0 users and 0 guests online.