Как объяснить новичку разницу между Классом и Объектом так, чтобы он запомнил это навсегда? Представить, что Класс — это чертеж робота, а Объект — сам робот.
В этой статье я раскладываю принципы ООП (Объектно-Ориентированного Программирования) на понятные атомы. Никакой сухой академической теории — только живой код на Python. Мы пройдем путь от простых переменных до масштабируемой системы классов на примере создания RPG-игры. В конце вас ждет домашнее задание для закрепления материала.
Читать далееИспользование нейросетей для оптимизации баз данных кажется перспективным направлением, но реальная эффективность таких систем требует тщательной проверки. В данном исследовании проанализирована способность нейросетевой модели точно прогнозировать производительность СУБД PostgreSQL в условиях экстремальной параллельной нагрузки. Результаты демонстрируют систематические ошибки AI, связанные с неспособностью учесть динамические аспекты работы СУБД.
ℹ️ Новый инструмент с открытым исходным кодом для статистического анализа, нагрузочного тестирования и построения отчетов доступен в репозитории GitFlic и GitHub
kznalp/PG_EXPECTO: Комплекс статистического анализа производительности СУБД PostgreSQL
Читать далееПривет, Хабр! В качестве пет-проекта для работы с API и базами данных решил написать своего бота-ассистента. Идея простая: прокси к OpenAI, но с нюансами: хотел разобраться, как работать с относительно новой внутренней валютой Telegram Stars, реализовать собственную систему промокодов и админку без использования громоздких фреймворков, оставаясь на библиотеке telebot (pyTelegramBotAPI).
Читать далееВ ноябре 2025 года Loongson анонсировала 3D7000 — свой новый производительный чип. У него есть несколько интересных особенностей. Так, это модель на чиплетной архитектуре с десятками ядер, которую компания собирается вывести на рынок в 2027 году. Пока опубликованы лишь базовые детали, но даже их хватает, чтобы понять, в какую сторону движется линейка: более плотные кристаллы, масштабируемые конфигурации и поддержка современных стандартов. Давайте посмотрим, что это за чип, и для чего он может пригодиться. Поехали!
Читать далееВ Университете Аалто в Финляндии разработали чип, который использует свет для выполнения тензорных вычислений — базовой операции современных нейронных сетей. Исследование опубликовано в Nature Photonics и описывает прототип оптической системы, где все процессы выполняются с помощью фотонов вместо электрических сигналов. Такой подход ускоряет операции и снижает энергозатраты по сравнению с электронными схемами. Давайте посмотрим, как устроен этот чип, чем он отличается от обычных процессоров и какие задачи ему можно поручить.
Читать далееМеждународная группа физиков-теоретиков из Китая и России предложила и детально смоделировала новый способ управления экзотическими квантовыми объектами — «вихревыми молекулами». Эти устойчивые, вращающиеся пары или группы квантовых вихрей удалось сформировать в уникальной среде, известной как экситон-поляритонный конденсат.
Читать далееНесколько адаптированный перевод статьи одного из основателей Joomla - Брайана Тимена. Сохранён tone of voice автора.
Читать далееУ каждого из нас на жестких дисках копятся терабайты контента. Фильмы, скачанные «про запас», архивы семейных видео, гигабайты музыки во FLAC, которую жалко удалять, и тысячи фотографий. Но есть проблема: потреблять этот контент локально — неудобно. Когда дома лежит большой медиа‑архив — фотографии за годы, фильмы, музыка, куча видео — начинаешь задумываться, что работать с этим напрямую через файловую систему совсем не удобно. Особенно в эпоху, когда интерфейсы крупных медиа‑сервисов настолько продуманы, что сами по себе стали стандартом UX.
Я поставил перед собой задачу: сделать полноценный мультимедийный сервер, который работает из одного .exe файла, не требует интернета, не требует настройки и предоставляет удобный интерфейс.
Читать далееЕще со времён школы меня будоражили возможности, которые дают компьютеры. Написать программу — это как создать что-то материальное своими руками. Неделю назад я за один вечер прочитал книгу Себастьяна Рашки «Строим LLM с нуля» (доступна на английском бесплатно), в которой без сложной теории матанализа описывается архитектура современных LLM и как их тюнить.
Если вы интересовались, как работают LLM, то уже имеете представление, что модели умеют предсказывать следующее слово и что за этим стоит математика. Но на этом объяснение, как правило, заканчивается. Детали того, как они предсказывают следующее слово, часто рассматриваются как черный ящик.. В этой статье предлагаю рассмотреть эту тему подробнее и познакомиться с тонкой настройкой (fine-tuning) LLM для решения условно-практической задачи классификации с помощью примеров кода, приведенных в упомянутой книге.
Статья устроена так, что все шаги в статье вы можете повторить и в конце получить набор скриптов для выстраивания пайплайна обучения LLM. Я же описал свои шаги, потому что лучший способ что-то понять — это применить теорию на практике и попытаться объяснить результат кому-то.
Чтобы приступить к лабораторной работе, достаем двойные листочки, расчехляем питон и тиктокен.
Читать далееНа дворе уже ноябрь 2025 года, за окном нашей необъятной во многих городах и селах, уже наступила зима, но в инфополе ярко полыхаент схема «купи квартиру, отдай обратно продавец заскамлен был — неведал что творил».
На фоне этих «интересных» событий мне стало интересно изучить техническую сторону того, как это происходит. Анализ множества видео с красно‑белого видеохостинга показал, что залог успешно обмана это момент когда мошенник контролирует ПК или телефон жертвы, заставив ее включить видеозвонок в месенджере или установив специальную программу на устройство.
Читать далееУ меня в VK несколько тысяч друзей, и истории давно превратились в шум: много людей, с которыми я не общаюсь, старые контакты, рабочие связи.
При этом удалять всех подряд из друзей не хочется, потому что сеть полезна для проектов и продвижения.
Поэтому я написал простой браузерный скрипт, который автоматически скрывает истории почти от всех, кроме тех, кого я явно добавил в список исключений по имени или ID.
Скрипт запускается из консоли, продолжает работать даже в неактивной вкладке и доступен в открытом репозитории.
Читать далееПриложение тормозит. Это жалоба номер один, которую слышат разработчики и архитекторы. Но "тормозит" — это не диагноз. Это симптом. За этим простым словом может скрываться что угодно: от плохо написанного SQL-запроса до "шумного соседа" в облаке или неправильной настройки сборщика мусора.
Оптимизация производительности — это не магия и не набор случайных твиков. Это инженерная дисциплина. Это бесконечный поиск узких мест, компромиссов и баланса между скоростью, стоимостью и сложностью поддержки. Нельзя оптимизировать то, что нельзя измерить. Поэтому, прежде чем менять хоть строчку кода, нужно вооружиться инструментами профилирования и мониторинга.
Читать далееВ этой статье представлен новый подход к разработке программного обеспечения. Он будет полезен как для начинающих, так и для средних программистов.
Читать далееЗадача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на Хабре[1].
Ну, как новое?… Но она стала тем триггером, который подвигнул меня к очередной попытке ее решения. Тем более, что с момента знакомства с философами пролетела уйма лет, а в багаже - опыт применения автоматной модели и значительно усовершенствованная среда их реализации.
Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про DPP см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы сортировок[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача Дейкстры[4].
Замечание 1. В рамках обсуждения статьи на Хабре было проигнорировано предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать.
Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь.
Читать далееПервым делом пришла идея, я тогда пробовал делать игры только в 2d и пиксель арте. Порисовав в изометрии, я подумал, что графика слишком слабая и я не наберу восторженных отзывов об игре, да и к тому же некоторые симуляторы славятся тем, что после определённого цикла развития, развиваться становится уже некуда и игру приходится заканчивать просто без конечных титров.
В один прекрасный день, как это бывает у меня по цикличности, я вновь загорелся учить электронику, когда увидел книгу "Основы Электричества". Я её купил, а когда начал читать, то в первой теме я всё понимал, но дальше потребовался векторный анализ, который я не знал и тогда я принялся учить линейную алгебру и аналитическую геометрию. Так я прошел и векторный анализ и дошел до того, что захотелось реализовывать каждое знание, которое я подчерпнул из книги.
Таким образом я стал рассуждать, вот 3d, надо пустить луч, я помню, что был способ через матрицы, но не помню какой. Спросив у нейросети и выполнив то, что нужно, я заметил, что алгоритм пересечения сферы с лучем не правильный. Тогда я решил выработать свой способ, ну просто порасчитывать так как мне этого захотелось. Тогда я потратил 5 дней на это и выработал формулу, которая помогает манипулировать фронтом камеры без вычисления обратных матриц. Я обрадовался. Теперь моя функция бросания луча выглядит так.
Читать далееПятая статья в серии о DOM-подобных моделях данных в разных языках программирования.
В предыдущих частях мы разобрали DOM-подобные структуры данных, оценили их поддержку в ряде языков с помощью бенчмарка CardDOM и сравнили их реализацию в JavaScript. и С++, Rust и D-lang (а также упомянули Zig, Odin, Jai, Python, V, Cone и Pony).
Эта растянутая на несколько публикаций серия показала, что современные языки удивительно плохо приспособлены для работы с документной объектной моделью — фундаментальной структурой данных современных высокоуровневых приложений.
Посмотрим, как с этой задачей справляется Argentum — язык, для которого такие структуры данных являются нативными.
Читать далееИстория о том, как наша команда смогла ускорить релизы, снизить затраты и построить масштабируемую архитектуру без хаоса. В статье вы узнаете, подходят ли вам микрофронтенды.
Читать далееЭто довольно короткая статья, целью которой является пояснение того, что вообще такое "модуляризация" Spring Boot, почему она появилась и откуда, собственно, ноги растут.
Для многих Spring Boot это просто автоконфигурация. Само собой Spring Boot гораздо шире и включает в себя в том числе ещё и
Spring Boot Actuator
Spring Boot DevTools
Spring Boot Tools и т.д.
Читать далееИстория стартует в 1982, когда Университет Карнеги (Carnegie Mellon University, CMU) и корпорация IBM запустили Andrew Project, проект который должен был упростить коммуникацию и совместную работу внутри университетского кампуса.
Читать далееНравится вам это или нет, но мы уже давно живем в эпоху, когда хорошие игры так или иначе возвращаются. И зачастую в своем гораздо лучшем варианте, чем в оригинале. Так, мы, например, не ждали, но получили просто шикарный ремейк Silent Hill 2 от Bloober Team, да и о крутости переосмысления Resident Evil 2/3/4 повторяться не хочется.
Однако есть пара неприятных моментов. Первый — эпоха PS3 и Xbox 360 это такое же ретро, как и времена до нее, смиритесь. А второй факт — в этой эпохе застрял ряд очень крутых игр, которые надо спасать. Им нужен ну хотя бы ремастер на современные консоли, а лучше полноценный ремейк.
Что это за игры? А давайте вместе и посмотрим.
Читать далее