Рубрика «Программирование» - 32

Путеводитель C++ программиста по неопределённому поведению

Вашему вниманию предлагается полный список разделов электронной книги (12 из 11 :)), посвящённой неопределённому поведению. Книга не является учебным пособием и рассчитана на тех, кто уже хорошо знаком с программированием на C++. Это своего рода путеводитель C++ программиста по неопределённому поведению, причём по самым его тайным и экзотическим местам. Автор книги — Дмитрий Свиридкин, редактор — Андрей Карпов.

Читать полностью »

Умный дом с радио из Cyberpunk: как я написал расширение для Home Assistant - 1

Два с половиной года назад я делал радио из игры Cyberpunk 2077 на базе проекта Ka-Radio32 и собственной интерпретации модели из игры. Радио спокойно использовалось по назначению все это время, но вот наступили новогодние праздники. Я решил настроить Home Assistant (HA) и объединить все домашние умные устройства в локальном хабе.

Часть устройств добавилась без проблем, другая — сопротивлялась и требовала дополнительных действий. Но самодельное радио стояло особняком: для проекта Ka-Radio32 нет ни официальной интеграции, ни пользовательской. Хотя у Home Assistant широкая документация, начать разрабатывать свое расширение довольно сложно. В этой статье я разберу основные этапы на примере интеграции с Ka-Radio32.Читать полностью »

Попалось интересное исследование о последствиях внедрения ИИ в работу R&D лаборатории:

Toner-Rodgers, Aidan. 2024. "Artificial Intelligence, Scientific Discovery, and Product Innovation." MIT, December 25, 2024.

Интересно оно тем, что в нём рассматривается то, как ИИ вписывается в по-настоящему интеллектуальную сферу, а так же тем, что показывает не только изменения в эффективности исследований, но и влияние внедрения ИИ на самих учёных.

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

Сеттинг эксперимента

Читать полностью »

Операционная система в 1 000 строк кода (часть 3) - 1


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

▍ Навигация по вышедшим частям

Читать полностью »

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

Я лично сам прокачиваюсь, смотря блогеров–прогеров, узнаю КУЧУ полезной инфы, которая абсолютно применима к карьере дизайнера в ИТ.

Читать полностью »

Брокеры сообщений на практике: как подключиться и пользоваться RabbitMQ в Python - 1

Привет! Умение работать с брокерами сообщений — едва ли не базовый навык для бэкенд‑разработчиков уровня Junior и Middle. В этом базовом материале по RabbitMQ посмотрим, как развернуть решение на собственном сервере, а также установим и настроим панель управления. Обычно эту задачу выполняет DevOps‑инженер, но ничего сложного нет и в самостоятельном администрировании. Главное — научиться качественно и грамотно обрабатывать сообщения, чтобы они не терялись, не считывались повторно, не оставались в брокере. Никаких ошибок ни в коем случае нельзя допускать, этим моментам тоже уделим внимание.Читать полностью »

Мастер-класс по точечному переносу изменений между ветками в git - 1

Представьте ситуацию: вы нашли критический баг в проекте, исправили его в feature-ветке, но до полного слияния ещё далеко. Или вам срочно нужно перенести одно конкретное изменение из текущей ветки в другую. В таких случаях git cherry-pick становится вашим секретным оружием.

Читать полностью »

Статья будет полезна новичкам и тем, кто только начинает знакомиться с нейронками. Не является руководством к бездумному делегированию всех своих задач чату. Нейросети как и любой инструмент который когда либо был изобретен — всего лишь инструмент и без умелых рук бесполезен.

1. Кодим быстрее: как GPT упрощает написание кода

Ситуация: Ты джун, и тебе дают задачу на разработку. Часто это может быть фикс багов или минорная доработка. Ты еле развернул проект, чуть-чуть разбираешься в синтаксисе, но что значат все эти многобукаф и строчки кода – пока понятия не имеешь.

Читать полностью »

Операционная система в 1 000 строках кода (Часть 1) - 1


Всем привет! В этой небольшой книге (серии статей, — прим. пер.) мы с нуля, шаг за шагом, напишем скромную ОС.

Вы можете насторожиться, услышав, что разработка ОС или ядра, в частности, их базовых функций на удивление проста. Даже система Linux, которая воспринимается как масштабный опенсорсный проект, на стадии версии 0.01 включала всего 8 413 строк кода. Сегодня ядро Linux действительно огромно, но начиналось оно, как и типичный хобби-проект, с крохотной базы кода.

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

Но сразу предупрежу — процесс окажется не так прост, как выглядит на первый взгляд. Самой сложной частью создания собственной ОС является отладка. И мы не сможем использовать для этого printf, пока её не реализуем. Здесь вам потребуется освоить различные техники и приёмы отладки, которые в разработке ПО вы никогда не использовали. В частности, начиная «с нуля», вы будете встречать сложные этапы вроде процесса загрузки и страничной организации памяти. Но не пугайтесь, «отлаживать ОС» мы тоже научимся!

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js