Как стать автором
Обновить
20
0.3
Анатолий @sci_nov

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

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

Хроники вещества: симметрия, кристаллы и дальний порядок

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.1K

В этом посте мы поговорим о симметрии в нашем повседневном мире и на
уровне отдельных атомов. Эти знания помогут нам заглянуть в мир
кристаллов (и даже квазикристаллов!). Здесь будут картинки, анимашки и
немного школьной математики.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Алгоритмы быстрого возведения в степень

Время на прочтение8 мин
Количество просмотров22K

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

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

Читать далее
Всего голосов 35: ↑32 и ↓3+29
Комментарии11

Бесплатные курсы для изучения C++ в 2024 году

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров37K


В 2024 году в сети доступно множество бесплатных ресурсов для изучения C++, которые предлагают высокое качество обучения. Поэтому нет необходимости платить за курсы, если вы можете получить все необходимые знания бесплатно.

Учить C++ в 2024 году по бесплатным курсам имеет несколько преимуществ. Вот несколько причин, почему это стоит делать:

1. Популярность языка: C++ является одним из самых популярных языков программирования, который широко используется в различных областях, включая разработку игр, системное программирование и мобильные приложения. Изучение C++ может открыть перед вами множество возможностей в карьере.

2. Высокая производительность: C++ известен своей высокой производительностью и эффективностью. Он позволяет разрабатывать быстрые и оптимизированные приложения, особенно в сферах, где требуется работа с большими объемами данных или высокая скорость выполнения.

3. Множество полезных библиотек: C++ предоставляет широкий набор инструментов и библиотек для разработки приложений.

4. Доступно множество полезных ресурсов: Язык C++ очень популярный, существует множество различных онлайн-ресурсов, форумов и сообществ, где можно получить помощь и поддержку от опытных разработчиков.

Читать
Всего голосов 37: ↑35 и ↓2+33
Комментарии18

Что нам недодали в C++

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров23K

C++ последний десяток с лишним лет стремительно развивается. Тем не менее в наших кодовых базах все еще присутствуют многочисленные helper-файлы и классы, которые помогают восполнить пробелы в стандартной библиотеке языка. Как же так вышло, что там в этих ваших helper-файлах, и когда это закончится?

Читать далее
Всего голосов 85: ↑83 и ↓2+81
Комментарии177

Multithreading

Время на прочтение77 мин
Количество просмотров176K

Разработчики часто сталкиваются с необходимостью разработки многопоточных приложений, поэтому вопросы многопоточности требуют детального изучения. Давайте познакомимся с основными терминами, используемыми в источниках информации о многопоточности, рассмотрим задачи и проблемы многопоточности и изучим средства стандартной библиотеки C++, которые помогут создавать многопоточные приложения.

Читать далее
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Моделируем алгоритм MUSIC для задач определения направления прихода электромагнитной волны

Время на прочтение9 мин
Количество просмотров15K

aaspcats


Предисловие


Начну своё вступление издалека. Давным-давно, в далеких 2016-2017 годах вашему покорному слуге удалось съездить на полугодовое обучение в далекий город Ильменау (Германия), где он успешно (в общем и целом) закончил магистерскую программу Communications and Signal processing. Программа оказалась не из простых, однако сейчас о ней вспоминать даже приятно. Иногда...

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии8

Как работать с атомарными типами данных в C++

Время на прочтение13 мин
Количество просмотров23K

Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах.

Под катом мы рассмотрим некоторые базовые принципы работы с атомарными типами данных в языке C++. А именно: осветим работу с атомарными данными, основные операции с ними в стандартной библиотеке C++, а также некоторые аспекты использования атомиков с пользовательскими типами данных.

Читать далее
Всего голосов 61: ↑60 и ↓1+59
Комментарии13

std::atomic. Модель памяти C++ в примерах

Время на прочтение11 мин
Количество просмотров109K

Для написания эффективных и корректных многопоточных приложений очень важно знать какие существуют механизмы синхронизации памяти между потоками исполнения, какие гарантии предоставляют элементы многопоточного программирования, такие как мьютекс, join потока и другие. Особенно это касается модели памяти C++, которая была создана сложной таковой, чтобы обеспечивать оптимальный многопоточный код под множество архитектур процессоров. Кстати, язык программирования Rust, будучи построенным на LLVM, использует модель памяти такую же, как в C++. Поэтому материал в этой статье будет полезен программистам на обоих языках. Но все примеры будут на языке C++. Я буду рассказывать про std::atomic, std::memory_order и на каких трех слонах стоят атомики.

Читать далее
Всего голосов 52: ↑52 и ↓0+52
Комментарии39

Квантовые вычисления и их математические основы

Время на прочтение7 мин
Количество просмотров14K

Автор статьи: Артем Михайлов

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

Читать далее
Всего голосов 21: ↑14 и ↓7+7
Комментарии11

Проверяем невероятные заявления разработчиков приложения-мессенджера с шифрованием

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров14K
Недавно я услышал в подкасте следующее:

Я использую приложение Converso, потому что забочусь о безопасности, а все другие приложения, которые утверждают, что только о безопасности и думают, на его фоне выглядят как АНБ. С Converso можно рассчитывать на сквозное шифрование, на то, что сообщения не будут храниться на сервере, на отсутствие пользовательских данных и метаданных…

Отсутствие метаданных? Это крайне смелое и любопытное обещание. Даже у Signal, который считается золотым стандартом шифрования сообщений со своими компонентами Double Ratchet и X3DH, всё равно утекает куча метаданных.

На вебсайте компании и в заказных интервью (фрагмент одного из них можно послушать здесь) есть и другие грандиозные заявления, так что мне стало интересно, как же разработчики претворяют в жизнь всё, что обещают.
Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии21

Вы все ещё пользуетесь старым редактором?

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

Пару недель назад редакция Хабра порадовала нас поддержкой маркдауна в новом редакторе. А заодно рассказала о том, насколько он стал популярен:



80 процентов, да лаадно? Впрочем, это совсем несложно проверить. Давеча я скрапил Хабр для одного интересного расследования и кроме всего прочего заметил в заветном jsonе такое поле:



И оказалось, что с новым редактором все далеко не так просто.

Читать дальше →
Всего голосов 96: ↑96 и ↓0+96
Комментарии95

Формула Бине без плавающей точки

Время на прочтение4 мин
Количество просмотров12K

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

Читать далее
Всего голосов 77: ↑76 и ↓1+75
Комментарии29

Корутины в C++20 — что это и как с ними работать

Время на прочтение20 мин
Количество просмотров31K

Прим. Wunder Fund: В статье описаны базовые подходы к работе с корутинами в 20м стандарте С++, на паре практических примеров разобраны шаблоны классов для промисов и фьючеров. По нашему скромному мнению, можно было бы реализовать и поизящнее. Приходите к нам работать, если имеете сильные мнения о корутинах хе-хе.

Возникает такое ощущение, что тема реализации корутин в C++20 окутана серьёзной неопределённостью. Полагаю, это так из-за того, что в проекте технической спецификации C++20 сказано, что работа над механизмами корутин всё ещё ведётся, в результате в данный момент нельзя ожидать полной поддержки этих механизмов компиляторами и стандартной библиотекой.Множество проблем, вероятно, возникает из-за отсутствия официальной документации по работе с корутинами. Нам дали синтаксическую поддержку корутин в C++ (co_yield и co_return), но не всё то, что я счёл бы признаками их полной библиотечной поддержки. В стандартной библиотеке имеются хуки и базовый функционал поддержки корутин, но нам приходится самостоятельно встраивать всё это в наши собственные классы. Я ожидаю, что полная поддержка корутин-генераторов появится в C++23.

Если вы — Python- или C#-разработчик и ожидаете увидеть в C++ простую механику работы с корутинами, то вас ждёт разочарование, так как фреймворк общего назначения C++20 недоработан. Учитывая это, можно отметить, что в интернете имеется множество публикаций, в состав кода, обсуждаемого в которых, входит шаблонный класс, поддерживающий корутины-генераторы. В этом материале вы найдёте шаблон корутины, применимый на практике, а также примеры кода. Всё это предваряется общими сведениями о корутинах.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии11

Лезем в сорцы компилятора — как работает goscheduler (Часть I)

Время на прочтение8 мин
Количество просмотров6.7K

Каждый раз, когда я открываю новую книжку о golang, обязательно лезу в главу о горутинах и в очередной раз читаю, как беспощадно прекрасен голанг. Подумать только, вместо того, чтобы создавать потоки для обработки параллельно выполняемых задач, мы будем пользоваться внутренними инструментами языка!

Всё это замечательно, и большинство книг и курсов по golang приводят множество примеров того, насколько быстр го и как он запросто может справиться с бесконечным количеством задач. К сожалению, все эти книги не рассказывают, что же происходит под капотом голанга. Что же, давайте откроем сорцы суслика и посмотрим, что там внутри.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии11

Быстрое умножение целых чисел с использованием таблиц

Время на прочтение3 мин
Количество просмотров15K
Хочу рассказать читателям о программистском трюке, с которым я познакомился в какой-то переводной книжке, содержащей подборку таких трюков, в те далёкие времена, когда ещё не изобрели не то что байт, а страшно сказать — стек, а великий Дейкстра ещё не проклял оператор GOTO (sic, in uppercase).

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

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

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

Но к делу. Вам надо срочно реализовать умножение программно, чтоб работало быстро в реальном времени и укладывалось в доступный ресурс.
Читать дальше →
Всего голосов 47: ↑46 и ↓1+45
Комментарии54

Верхняя Пышма: весна в Медной столице Урала

Время на прочтение4 мин
Количество просмотров4.3K

Город-спутник Екатеринбурга Верхняя Пышма называют Медной столицей Урала. В 1814 году здесь открыли первые месторождения золота, в середине XIX века началась разработка медной руды. Затем сыграла важную роль индустриализация СССР – в городе снова стали получать медь в 1934 году.

И после развала СССР население не сокращалось – сейчас здесь живут более 74 тысяч человек. Возможно, одна из причин – близость к Екатеринбургу и наличие рабочих мест на местных предприятиях.

Зимой мы уже здесь были. Как город живет сегодня? Смотрим на Верхнюю Пышму весной.

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии4

Как «волшебство» кода коррекции ошибок, которому уже больше 50 лет, может ускорить флэш-память

Время на прочтение4 мин
Количество просмотров28K
Код исправления ошибок (Error Correction Code или ECC) добавляется к передаваемому сигналу и позволяет не только выявить ошибки при передаче, но и при необходимости исправить их (что в общем-то очевидно из названия), без повторного запроса данных у передатчика. Такой алгоритм работы позволяет передавать данные с постоянной скоростью, что может быть важно во многих случаях. Например, когда вы смотрите цифровое телевидение — смотреть на застывшую картинку, ожидая, пока осуществляются многократные повторные запросы данных, было бы весьма неинтересно.


Читать дальше →
Всего голосов 32: ↑22 и ↓10+12
Комментарии12

Как мы строили базовую станцию

Время на прочтение6 мин
Количество просмотров167K


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

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

Осторожно, трафик!
Читать дальше →
Всего голосов 85: ↑80 и ↓5+75
Комментарии46

Разбираемся в С, изучая ассемблер

Время на прочтение11 мин
Количество просмотров89K
Перевод статьи Дэвида Альберта — Understanding C by learning assembly.

В прошлый раз Аллан О’Доннелл рассказывал о том, как изучать С используя GDB. Сегодня же я хочу показать, как использование GDB может помочь в понимании ассемблера.

Уровни абстракции — отличные инструменты для создания вещей, но иногда они могут стать преградой на пути обучения. Цель этого поста — убедить вас, что для твердого понимания C нужно также хорошо понимать ассемблерный код, который генерирует компилятор. Я сделаю это на примере дизассемблирования и разбора простой программы на С с помощью GDB, а затем мы используем GDB и приобретенные знания ассемблера для изучения того, как устроены статические локальные переменные в С.
Читать дальше →
Всего голосов 76: ↑70 и ↓6+64
Комментарии31

Загоним мамонта в яму: как провести презентацию, чтобы вас услышали и запомнили

Время на прочтение10 мин
Количество просмотров37K
Многие из нас бывали на айтишных конференциях. А если не бывали, то наверняка смотрели трансляции, записи или читали расшифровки докладов на Хабре. А вы знаете, какие доклады становятся хитами даже на самых-самых хардкорных мероприятиях? Внутренности сложных технологий? Нет. DevOps? Отнюдь. Чаще всего приз зрительских симпатий берут так называемые доклады-кейноуты — презентации людей, вовсе не обязательно связанных с IT. Дело не в красивой презентации и даже не в харизме докладчика, а в том, что эти ребята знают секрет SUCCES. Нет, мы не опечатались.

Источник: Duran
Всего голосов 69: ↑67 и ↓2+65
Комментарии15

Информация

В рейтинге
1 856-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Senior