Обновить
450
144.5

Пользователь

Отправить сообщение

Руководство по слабым ссылкам в Python с применением модуля weakref

Время на прочтение7 мин
Количество просмотров4.1K
Вполне вероятно, что вы никогда не сталкивались с модулем weakref языка Python и, возможно, даже не слышали о нём. Притом, что ваш код может быть написан и почти без применения слабых ссылок, этот модуль фундаментально важен для внутреннего устройства многих библиотек, фреймворков и самого языка Python. Так что в этой статье мы исследуем, что он собой представляет, чем может быть полезен, и каким образом этот модуль вам было бы удобно встраивать в ваш собственный код.

Основы


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

В качестве механизма, регулирующего сборку мусора, Python использует подсчёт ссылок. Проще говоря, Python ведёт счёт ссылок для каждого создаваемого нами объекта, и счёт ссылок увеличивается на единицу всякий раз, когда на объект ставится очередная ссылка в коде. Когда ссылка с объекта снимается (например, переменная устанавливается в None). Если в какой-то момент количество ссылок падает до нуля, это означает, что вся память, выделенная под объект, у него изымается, и в таком случае объект попадает под сборку мусора.
Читать дальше →

Распродажа в издательстве «Питер»

Время на прочтение1 мин
Количество просмотров18K
image

Добрый день, Хаброжители!

Весна — лучшее время для перемен, открытий и приятных скидок! Мы рады предложить Вам воспользоваться нашей весенней акцией.
Читать дальше →

Ложные убеждения о нулевых указателях

Время на прочтение10 мин
Количество просмотров7.4K
В этой статье предполагается, что вы знаете, что такое неопределённое поведение, и почему его не следует провоцировать, в самом общем виде знаете, как работают процессоры, а также умеете принимать во внимание конкретный контекст, не злоупотребляя излишним обобщением частностей. Эти убеждения можно считать заблуждениями, так как они не применяются глобально, а не потому, что обратное от них действует глобально. Если вы не уверены в себе, то, возможно, от прочтения этого текста вы больше проиграете, тем самым подпортив себе навыки программной инженерии. Поэтому ничего страшного, если вы не будете знакомиться с постом, а просто почитаете комментарии на Reddit — там уже написали, что может пойти не так, если вы, несмотря ни на что, углубитесь в этот материал.

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

О книге «Разработка игр на Unity, 4-е изд.»

Время на прочтение18 мин
Количество просмотров6.9K
Привет, Хаброжители!

Unity — это не только инструмент для создания игр. Это мощная платформа, которая открывает двери в мир интерактивных приложений: от простых мобильных программ до сложных образовательных и обучающих решений, известных как Serious Gaming. В таких проектах активно применяются передовые технологии, такие как дополненная и виртуальная реальность. Поэтому, хотя основное внимание в книге уделяется разработке игр, ваше обучение открывает путь ко множеству других специализаций. Вы сможете не только создавать увлекательные игры, но и разрабатывать инновационные приложения, которые меняют подход к обучению, развлечениям и взаимодействию с цифровым миром.

Готовы вывести свои навыки работы на Unity на новый уровень? Представляем вашему вниманию долгожданное четвертое издание книги «Разработка игр на Unity». Это полноценное руководство, которое поможет раскрыть весь потенциал Unity.
Читать дальше →

Издательство Питер. Колонка редактора, март 25 г

Время на прочтение3 мин
Количество просмотров5K
image

Привет, Хаброжители!

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

Книга: «Карьера разработчика. Стафф — круче, чем senior»

Время на прочтение13 мин
Количество просмотров4.2K
Привет, Хаброжители!

Если вы сеньор-разработчик, то наверняка задавались вопросом: «Что дальше?» Переход в менеджмент кажется очевидным шагом, но что, если вы не хотите управлять людьми? Что, если вы хотите оставаться техническим специалистом, но при этом расти профессионально и влиять на стратегию компании? Ответ на этот вопрос — открыть для себя путь стафф-разработчика.

Новая книга Тани Рейли, опытного инженера и технического лидера, под названием «Карьера разработчика. Стафф — круче, чем senior» — это подробное руководство для тех, кто хочет понять, как стать стафф-разработчиком и в чём заключается его роль.
Читать дальше →

Книга: «Excel с Python и R: раскройте потенциал расширенной обработки и визуализации данных»

Время на прочтение7 мин
Количество просмотров12K
Привет, Хаброжители!

Если вы работаете с данными, то наверняка сталкивались с ситуацией, когда Excel становится вашим лучшим другом и злейшим врагом одновременно. С одной стороны, это удобный и привычный инструмент для работы с таблицами, с другой — его ограничения могут превратить даже простую задачу в настоящий кошмар. Но что, если бы вы могли объединить мощь Excel с гибкостью и возможностями Python и R?

Именно об этом рассказывает новая книга «Excel с Python и R: раскройте потенциал расширенной обработки и визуализации данных».
Читать дальше →

Книга: «Промт-инжиниринг для GenAI»

Время на прочтение18 мин
Количество просмотров12K
Привет, Хаброжители!

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

Книга «Промт-инжиниринг для GenAI. Паттерны надежных запросов для качественных результатов» Джеймса Феникса и Майка Тейлора станет практическим руководством для тех, кто хочет освоить эту дисциплину и эффективно внедрить генеративный ИИ в свои рабочие процессы.
Читать дальше →

Книга: «Дизайн и поведение пользователей. Применение психологии и поведенческой экономики в разработке и UX»

Время на прочтение10 мин
Количество просмотров2.6K
Привет, Хаброжители!

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

В отличие от традиционного дизайна, который фокусируется на решении задач пользователя, поведенческий дизайн идет дальше. Он стремится «решить самого пользователя» — изменить его подход к проблеме, чтобы устранить ее. Именно этому посвящена книга «Дизайн и поведение пользователей».
Читать дальше →

Фишки Rust, связанные не только с производительностью

Время на прочтение6 мин
Количество просмотров5.4K
Почти весь код, который я пишу из интереса, написан на Rust. Это не потому, что мне нужна высокая производительность, хотя, это безусловный плюс. Я пишу много на Rust, потому что на нем приятно писать. В Rust есть много всего, что может понравиться, помимо быстрой работы без ошибок сегментирования.

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

Книга: «Linux для разработчиков»

Время на прочтение16 мин
Количество просмотров9K
Привет, Хаброжители!

Многие разработчики программного обеспечения недостаточно хорошо разбираются в системах семейства Unix, хотя они повсеместно встречаются в мире разработки. Некоторые программисты даже не подозревают, что в их должностные обязанности входит работа с Unix или подобными системами на своих компьютерах (macOS), в среде разработки (контейнеры Docker), в системах сборки и автоматизации (процессы непрерывной интеграции и GitHub), в среде развертывания (серверы и контейнеры Linux) и в других обстоятельствах.

Книга «Linux для разработчиков» поможет вам вывести свои навыки на новый уровень. В ней вы найдете теорию, практические примеры и проекты, которые сделают вас более уверенным и эффективным разработчиком.
Читать дальше →

Собеседование по System Design: рассказ очевидца

Время на прочтение10 мин
Количество просмотров19K
Привет, Хаброжители! Предлагаем вашему вниманию перевод детального руководства о подготовке к собеседованию по LLD (Low-level design). Автор как будто из интереса посещает собеседования по проектированию систем, и в этом руководстве обобщил свой опыт о том, чего стоит ждать и к чему готовиться в зависимости от той позиции, на которую вы претендуете. Вам решать, насколько такая практика себя оправдывает, но, как говорится – «предупреждён – значит, вооружён».

Контекст


Я работаю ведущим инженером-программистом в компании LocoNav. Проходя собеседования, обладая таким профессиональным опытом (около 9 лет), я могу претендовать на следующие позиции:
  1. Программист / старший программист (сеньор),
  2. Ведущий программист / лид,
  3. Менеджер команды разработчиков/SEM (если я захочу развиваться как управленец).
Читать дальше →

Книга: «Визуализация данных для профессионалов. Дизайн понятных диаграмм и дашбордов»

Время на прочтение7 мин
Количество просмотров13K
Привет, Хаброжители!

Задумывались ли вы когда-нибудь о том, насколько сильно визуализация данных облегчает восприятие информации? Мы настолько привыкли к присутствию самых разных диаграмм и графиков в нашей повседневной жизни, что воспринимаем их как должное, не вникая в то, какая сложная это на самом деле задача – придать количественным данным визуальную форму. Казалось бы, выделил столбик в Excel, нажал две кнопки – и готово. Только вот не факт, что вы получите такой результат, который хотелось бы получить, потому что создание хорошей визуализации – это целая наука (и потому что появилось целое множество инструментов, которые позволяют сделать это быстрее и эффективнее, чем Excel).

Именно этой науке и посвящена книга «Визуализация данных для профессионалов. Дизайн понятных диаграмм и дашбордов». Ее автор – Дезире Эбботт – считает, что визуализация данных – это идеальное сочетание математики и творчества. Имея степень магистра по физике, Дезире знает, насколько в любой области деятельности важна теория, но вместе с этим она, «промучавшись в аспирантуре» и так и не получив степень PhD, как никто другой понимает, какое значение имеет доступное изложение материала на человеческом языке. Руководствуясь этим, Дезире удалось написать такую книгу, в которой ключевые принципы визуализации вместе с лежащей в их основании теорией изложены понятно, четко и увлекательно.
Читать дальше →

Книга: «Go: идиомы и паттерны проектирования, 2-е изд.»

Время на прочтение4 мин
Количество просмотров7K
imageПривет, Хаброжители!

К выходу перевода книги «Go: идиомы и паттерны проектирования, 2-е изд.» мы долго думали, чем же удивить читателя Хабра. Так мы возьмём рецензию Томаса Свояновского — full-stack разработчика с восьмилетним опытом. Он в рецензии постарался учесть отличия второго издания книги от первого, подробно объяснил, о чём Джон Боднер писал и какие знания вкладывал на страницы.

Приятного чтения!
Читать дальше →

Книга: «Звездануло: весело и доступно про проблемы современной физики и астрономии»

Время на прочтение6 мин
Количество просмотров2.5K
image Привет, Хаброжители!

У нас вышла книга «Звездануло: весело и доступно про проблемы современной физики и астрономии». Она для тех, кому интересна современная наука, но нет времени и возможности зарываться в формулы и вязнуть в деталях. Кратно. Весело. По делу.

Роман Юдаев, автор книги и создатель популярного подкаста «Звездануло», берет сложные концепции современной физики и буквально взрывает их, превращая в фейерверк увлекательных рассказов с изрядной долей юмора. Черные дыры? Теперь это не просто загадочные объекты в космосе, а настоящие космические «пожиратели» всего, что попадается на их пути. А знали ли вы, что кот Шрёдингера, которого все считают символом квантовой механики, изначально был задуман как аргумент против неё, но в итоге стал её визитной карточкой!
Читать дальше →

Издательство Питер. Колонка редактора, февраль 25 г

Время на прочтение3 мин
Количество просмотров5.8K
image

Привет, Хаброжители!

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

Книга: «Blue Fox: взлом и реверс-инжиниринг ARM»

Время на прочтение10 мин
Количество просмотров3.4K
Привет, Хаброжители!

Что такое реверс-инжиниринг?

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

Конечно же, сегодня мы расскажем о новой книге «Blue Fox: взлом и реверс-инжиниринг ARM», которая поможет разобраться во внутреннем устройстве архитектуры ARM и реверс-инжениринге.
Читать дальше →

Спинлок в современном C++ с применением атомиков, барьеров памяти и экспоненциальной выдержкой

Время на прочтение9 мин
Количество просмотров5.5K
Эта статья послужит вам быстрым, но глубоким введением в низкоуровневую конкурентность.

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

В этой статье мы реализуем наш собственный упрощённый спинлок с экспоненциальной выдержкой. Для начала обсудим базовую идею, на которой основан спинлок — проблему активного ожидания. Затем разберём, что представляет собой экспоненциальная выдержка и обсудим, как повысить эффективность спинлоков. Затем поговорим об атомиках и о том, для чего они используются. После этого объясним, что представляют собой барьеры памяти, если они работают в тандеме. Далее рассмотрим образец реализации спинлока с экспоненциальной выдержкой, разберём достоинства и недостатки такого подхода. Наконец, напишем тестовую программу, которая поможет нам убедиться, что всё работает как надо. Начнём!
Читать дальше →

Книга: «Продакт-менеджмент на практике»

Время на прочтение4 мин
Количество просмотров3.3K
imageПривет, хаброжители!

Только-только вышел «Продакт-менеджмент на практике», а мы уже приготовили для вас нечто интересное!

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

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

А пока давайте вместе почитаем статью «Система светофора для выживания стартапа», написанную автором книги Меттом ЛеМейем для medium.
Читать дальше →

Книга: «Dungeons & Dragons: Тактика боя для Мастеров подземелий (Монстры)»

Время на прочтение12 мин
Количество просмотров9.1K
image Привет, Хаброжители!

«Dungeons & Dragons: Тактика боя для Мастеров подземелий (Монстры)» — книга, обязательная к прочтению для каждого Мастера начинающего, среднего и продвинутого уровня, который хочет сделать игру ярче и сложнее для игроков.

Руководство Кита Амманна — Мастера с тридцатилетним опытом ведения игры и создателя популярного блога The Monsters Know What They're Doing — поможет оценить способности монстров и разработать грандиозные планы сражения. Вы научитесь принимать как можно больше тактических решений до начала сессии, выстраивать плавный и логичный ход битв, эффективно использовать умения монстров, чтобы не только генерировать острый сюжет, но и многопланово обогащать игру кровопролитными поединками.
Читать дальше →

Информация

В рейтинге
Не участвует
Работает в
Зарегистрирован
Активность