Довольно долго я тягался с по-настоящему глупой проблемой на C++: мне не нравятся функции-члены, но я вынужден их писать, чтобы программисту было хоть немного удобнее работать. Функции-члены обеспечивают две вещи: разграничение областей видимости и обнаружимость. Разграничение областей видимости — менее актуальная из этих задач, поскольку в моём коде на C++ я и так не использую модификаторы private/public. Обнаружимость — большая проблема: я могу написать x.F, а IDE предложит x.Func(). Отлично! «Но правильные программисты пользуются только vim и скромными IDE». Что ж, привет вам, воображаемые мифические обычные программеры. Здесь вам ничего не угрожает, но, пожалуйста, уходя — надевайте сразу два беджика: «vim отстой» и «Я ненавижу emacs». Отлично помогает завязать разговор с «настоящими» программистами.
Пользователь
Книга: «.NET 8: приложения и сервисы. Практика создания проектов с использованием Blazor, .NET MAUI, gRPC, GraphQL.»

Привет, Харборожители! У нас есть для вас новое издание книги «.NET 8: приложения и сервисы» вы сможете поднять свои навыки владения C# и .NET на новый уровень.
В книге описаны практические приемы использования различных технологий, включая Web API, gRPC, GraphQL и SignalR, что выделяет ее среди других источников. Она познакомит вас с новой унифицированной моделью Blazor Full Stack и расскажет, как использовать .NET MAUI для разработки мобильных и десктопных приложений.
В новом издании представлены последние достижения, включая бесшовную реализацию веб-сервисов со встроенной поддержкой Ahead-of-Time (AOT) ADO. NET SqlClient. Помимо других популярных библиотек, в книге рассматриваются Humanizer и Noda Time. Совершенно новая глава расскажет об архитектуре, кэшировании, организации очередей и приемах построения надежных фоновых сервисов.
Книга: «RAG и генеративный ИИ. Создаем собственные RAG-пайплайны с помощью LlamaIndex, Deep Lake и Pinecon»

Привет, Харборожители! Мы представляем вам новую книгу Дэниса Ротмана — «RAG и генеративный ИИ. Создаем собственные RAG-пайплайны с помощью LlamaIndex, Deep Lake и Pinecone». Это практическое руководство для тех, кто хочет освоить передовые технологии искусственного интеллекта и научиться создавать эффективные системы на основе Retrieval-Augmented Generation (RAG).
В книге описываются приемы создания эффективных больших языковых моделей, систем компьютерного зрения и генеративного ИИ, показывающих высокую производительность при относительно невысоких затратах. В ней приводится подробное исследование технологии RAG, а также подходов к проектированию мультимодальных пайплайнов ИИ и управлению ими. Связывая вывод с исходными документами, RAG повышает точность и контекстную релевантность результатов, предлагая динамический подход к управлению большими объемами информации.
Издательство Питер. Колонка редактора, июль 25 г

Привет, Хаброжители!
Предлагаем ознакомиться с краткими обзорами новинок, отправленных в типографию.
Высокоуровневые языковые возможности и тестирование в Python
Я впервые начал заниматься разработкой через тестирование ещё когда программировал на PHP. Тогда в нашем арсенале разработчика использовался отличный фреймворк SimpleTest от Маркуса Бейкера. Мне этот инструмент очень нравился. С тех пор я имел дело с фреймворками для тестирования на C, Perl, Java и Python, при этом SimpleTest до сих пор остаётся моим главным фаворитом независимо от языка.
Но со временем я огрокался заинтересовался автоматизированным тестированием — стал читать об этом книги, статьи в блогах, экспериментировать с новыми паттернами тестирования и даже набил себе татуировки xUnit — временами меня стала охватывать фрустрация. Часто мне требовалось подобрать конкретный тест для фреймворка и языка, но либо фреймворк, либо язык, либо они оба оказывались недостаточно мощными, и я не мог чётко выразить на них мою идею.
Только когда я стал много программировать на Python, меня вдруг озарило, почему так происходит. В большинстве фреймворков xUnit, в особенности тех, где предоставляются хорошие мок-объекты, более чем адекватно поддерживаются любые паттерны тестирования, которые я только могу придумать. Фреёмворк SimpleTest определённо из их числа. Проблемы, с которыми я сталкивался, происходят из самого языка.
Распродажа в издательстве «Питер»

Добрый день, Хаброжители!
Стартовала июльская распродажа от издательства «Питер».
Лето – время для отдыха, приключений и, конечно, для новых книг!
Книга: «Генезис: Искусственный интеллект, надежда и душа человечества»

Привет, Хаброжители!
Не мне вам рассказывать, что эра ИИ уже настала. Мы во всю пользуемся возможностями нейронный сетей, как дети, которых запустили в магазин игрушек и разрешили играть, как им вздумается. Но есть люди, которые не просто юзают новые технологии, но и пытаются догадаться, что будет дальше. Книга «Генезис: Искусственный интеллект, надежда и душа человечества» — это очень своевременное исследование наступившей эры ИИ. Авторы одними из первых предлагают реалистичный взгляд на будущее, где возможности практически безграничны, а вызовы исключительно сложны. Эта книга приглашает переосмыслить фундаментальный вопрос: как людям адаптироваться к величайшему технологическому перевороту в истории, сохраняя собственный авторитет и ценности перед лицом «разумных машин».
Как вызывать C++ из Python

Сравнение PyBind11 vs ctypes
В принципе, можно вызывать C++ из Python двумя способами: при помощи библиотеки PyBind11 для C++, которая готовит модуль Python, либо при помощи пакета cytpes для Python, который предоставляет доступ к скомпилированной разделяемой библиотеке. Работая с PyBind11, не составляет труда совместно использовать множество типов данных, в то время как ctypes — это гораздо более низкоуровневое решение в стиле C.
Взявшись за описанный здесь проект, я хотел рассчитывать на производительность и переносимость C++, но так, чтобы не жертвовать интерактивностью интерпретируемых языков, которая удобна для экспресс-исследования и отладки.
К счастью, вызывать C++ из Python не так сложно, как может показаться на первый взгляд. Таким образом, можно в какой-то степени позаимствовать интерактивность Python при разработке кода C++.
Книга: «Разработчик ПО: Путеводитель по карьерной лестнице для будущих сеньоров, техлидов и стаффов»

Привет, Хаброжители!
Издательство «Питер» представляет книгу-гид в мире профессионального роста. Автор Гергели Орош, прошедший путь от джуниора до принципал-разработчика в Uber, делится ценными инсайтами о том, как прокачать карьеру в IT. В этой статье мы немного больше расскажем о книге, которая представляет собой структурированное руководство, основанное на реальном опыте работы в крупных технологических компаниях. Как она называется? Разработчик ПО: Путеводитель по карьерной лестнице для будущих сеньоров, техлидов и стаффов.
Книга: «Мозг против мозга. Mind vs brain»

Привет, Хаброжители!
В конце мая 2025 года скончался академик Святослав Медведев — выдающийся нейрофизиолог, который всю свою жизнь посвятил исследованиям человеческого мозга. «Мозг против мозга» — его последняя книга — это взгляд на человеческий разум с точки зрения физиологии, кибернетики и даже философии. Автор исследует, как устроено мышление, и приходит к выводам, которые могут заинтересовать даже тех, кто привык иметь дело с алгоритмами и далек от биологии.
Медведев разбирает мозг как сложную распределенную систему. В отличие от компьютера, где каждый процесс можно отследить по четким логическим цепочкам, здесь всё работает иначе. Нейроны не просто передают сигналы — они формируют динамические сети, которые перестраиваются в зависимости от задачи. Например, когда мы говорим, задействуются не только известные зоны Брока и Вернике, но и десятки других областей, часть из которых остаются «невидимыми» для стандартных методов сканирования.
Асинхронная обработка ошибок – это сложно. Пример на CUDA
Или как я научился не беспокоиться из-за cudaGetLastError() и просто признал её нежелательной
Любому, кто сталкивался с проектированием API, приходилось мучиться над вопросом, как лучше всего распространять ошибки к вызывателям функций. Эта проблема появилась ещё раньше, чем термин «API». Даже несколько десятилетий назад (скажем, 30+) проектировщики интерфейсов умели отделять возвращаемые ошибки от прочей полезной нагрузки в рамках тех функций, которые доставляют эту информацию вызвавшему их узлу.
Книга: «Сетевое программирование. От основ до приложений»

В мире, где технологии связи развиваются стремительно, а интернет объединяет миллиарды устройств, умение создавать надежные и эффективные сетевые приложения становится критически важным навыком для любого IT-специалиста.
Книга «Сетевое программирование. От основ до приложений» предлагает читателям не просто поверхностный обзор, а глубокое и систематизированное руководство, охватывающее все ключевые аспекты разработки сетевых решений.
Книга: «Распределенные системы. Паттерны и парадигмы для масштабируемых и надежных систем на основе Kubernetes. 2-е изд»

Издательство Sprint book представляет второе издание книги Брендана Бёрнса «Распределенные системы. Паттерны и парадигмы для масштабируемых и надежных систем на основе Kubernetes». Фундаментальное руководство превращает сложное искусство создания распределенных систем в понятную науку, предлагая проверенные решения для современных облачных архитектур.
На сегодняшний день мир разработки программного обеспечения кардинально изменился. Даже относительно простые мобильные приложения опираются на облачные API, чтобы обеспечить доступность данных на любом устройстве, которым пожелает воспользоваться клиент. Проектирование таких систем до сих пор остается сложной задачей, требующей специальных знаний.
Паттерны и компоненты, разбираемые в книге, помогут и опытному разработчику распределенных систем, и абсолютному новичку в этой области.
Как я проектирую и разрабатываю реальные расширения для Python на Rust

Вы, вероятно, уже видели немало статей с заголовками вроде «Python, Rust — производительность, бла-бла-бла…». Печально, но почти все эти статьи демонстрируют лишь самые простые примеры уровня «hello world». В отличие от них, в этой статье я хочу поделиться тем, как я проектирую крупные расширения для реальных проектов и почему принимаю при этом те или иные решения.
Почему даже физики до сих пор не вполне понимают квантовую теорию
Шон Кэрролл, известный популяризатор науки и космолог. Автор бестселлеров Амазона о квантовых мирах и вселенной. Его книги обращены к читателям, которые хотят узнать больше о мире, понять его через законы физики. И сейчас готовится к выходу новинка из серии Величайшие идеи вселенной — «Кванты и поля».
Но чтобы скрасить время ожидания, мы перевели новую статью Шона Кэрролла о квантовой теории!
Приятного чтения!
Чистый код: с чего начать
В статье о TLCMOTUC описан этот процесс: немного поправить код, остановиться на безопасной стадии, отпраздновать. Ниже я опишу, как именно выглядят некоторые приёмы такой уборки:
Имена
Со временем в коде может меняться тот смысл, который изначально вкладывался в выбранные имена. Команда работает, её словарь развивается. Вчерашние термины сегодня могут восприниматься уже иначе.
Планирование в Python
sched
– планировщик событий из Python
Модуль
sched
входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.Книга: «Kafka Streams в действии. Приложения и микросервисы, управляемые событиями. 2-е изд.»

Сейчас, когда данные генерируются непрерывно и в огромных объемах, умение эффективно обрабатывать события в реальном времени становится критически важным навыком для разработчиков. Книга от Билла Беджека — это подробное руководство по созданию мощных приложений на основе Apache Kafka, одной из самых надежных и популярных платформ для потоковой обработки данных.
Автор, опытный инженер и участник проекта Apache Kafka, предлагает читателям практический подход к освоению Kafka Streams и других компонентов экосистемы Kafka. В книге рассматриваются не только основы, но и продвинутые техники, включая интеграцию с Kafka Connect, управление схемами через Schema Registry, работу с ksqlDB и тестирование потоковых приложений.
Книга: «Масштабируемые данные. Высоконагруженные архитектуры, Data Mesh и Data Fabric. 2-е изд.»

Издательство Sprint book представляет второе издание книги Питхейна Стренгхольта «Масштабируемые данные» — фундаментальное руководство по построению современных архитектур данных в эпоху цифровой трансформации.
Время централизованного хранения информации, например, в хранилищах данных (data warehouse) уходит в прошлое. Сегодня компании сталкиваются с необходимостью обрабатывать огромные объемы информации в реальном времени, обеспечивая при этом гибкость, безопасность и согласованность данных. Датафикация происходит повсюду: в смартфонах, телевизорах, электронных книгах, промышленных машинах, автомобилях с автопилотами, роботах и т. д. Она стремительно меняет нашу жизнь. А темы, заложенные в книге Стренгхольта, становятся новым стандартом для организаций, стремящихся построить гибкую, безопасную и ориентированную на бизнес-ценности инфраструктуру данных.