Как стать автором
Обновить
60
0

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

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

Коллекционирую лучшие C++ практики

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

Коллекционирую лучшие C++ практики


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

Читать дальше →
Всего голосов 38: ↑37 и ↓1+36
Комментарии9

Шахматы на C++

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

Не так давно я захотел написать свой шахматный движок. На удивление в Интернете нашлось не так много хороших статей на эту тему. Были статьи с довольно слабыми программами, многие из которых даже умудрялись пропускать некоторые важные правила. А были статьи с хорошими программами (некоторые из них были даже чуть лучше чем получилось у меня в итоге), но там авторы рассказывали лишь основные идеи, пропуская подробности, из-за чего написать что-то свое по таким статьям было проблематично. Поэтому после написания своей программы, я решил написать статью, дабы облегчить жизнь интересующимся в данной теме. Я не претендую на лучшую шахматную программу или на чистейший код, но эта статья будет хорошим и легким началом для тех, кто хочет написать что-то свое.

Читать далее
Всего голосов 190: ↑189 и ↓1+188
Комментарии56

Возможен ли быстрый Garbage collector на С++?

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

Не буду долго рассусоливать о том, что такое сборщик мусора и для чего он нужен (на эту тему уже есть достаточно статей). Но хочу отметить несколько важных деталей.

Читать далее
Всего голосов 20: ↑17 и ↓3+14
Комментарии74

Эволюция лямбд в C++14, C++17 и C ++20

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

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

Читать далее
Всего голосов 32: ↑26 и ↓6+20
Комментарии38

Создание статической библиотеки на С++ для работы с большими числами

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

Я всегда слышал, что с библиотеками в С++ что-то не так, как и с ограничением максимального целочисленного значения, да и вообще то, что язык сложный и непонятный. Что же, сегодня, мы начнём писать собственную библиотеку больших чисел, полностью своими руками c 0, и узнаем, так ли страшен С++, как его малюют?

Если вы не разбираетесь в С++, не переживайте, эта статья имеет нулевой порог вхождения. Мы начнём с лёгкого, но вы даже не заметите, как начнёте разбираться в более сложных и непонятных, на первый взгляд, вещах. Главное, писать код логично. Думаю, данная статья будет интересна не только начинающим, ведь я постарался затронуть достаточно много тем. (для старожилов: моя цель не сделать оптимизирование или быстрее, а показать, что С++ не такой уж и сложный язык программирования. И да, я знаю, что существуют другие библиотеки, которые делают это быстрее и лучше. И да, было бы круче, если бы мы использовали булевую алгебру. И да, С++ про вечную оптимизацию, но это статья не про это. Спасибо.)

За сегодня мы узнаем, что такое: Перегрузка функций/конструкторов, прототипы функций, обработка исключений, пространство имён, псевдонимы типов, заголовок.h, как пользоваться отладчиком и как писать продвинутые/красивые комментарии. Пристёгивайтесь, будет безумно интересно.
Читать дальше →
Всего голосов 49: ↑35 и ↓14+21
Комментарии52

Вы неправильно пишете животных

Время на прочтение5 мин
Количество просмотров358K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Всего голосов 442: ↑438 и ↓4+434
Комментарии351

Что почитать (НаучПоп / Научная Фантастика)

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

Некоторые время назад сильно увлёкся потреблением информации с научно-популярным уклоном. Но как не заблудиться в миллионах книг? Ресурс то ограничен. А значит придётся выбирать.

Удалось собрать библиотеку по 4 разделам:


Раздел 1. Законы науки и мышление
(Математика, Рациональность, Научный метод, Когнитивные искажения, Нейрофизиология, Ошибки мышления, Доказательная медицина)

Раздел 2. Законы природы
(Физика, Математика, Теория относительности, Квантовая механика, Астрофизика, Астрономия, Изобретения и открытия)

Раздел 3. Законы жизни
(Абиогенез, Теория эволюции, Молекулярная биология, Биоинформатика, Биология клетки, Антропогенез)

Раздел 4. Художественный научпоп / Научная фантастика

Обменяться рекомендациями
Всего голосов 44: ↑41 и ↓3+38
Комментарии253

Моменты жизни Стивена Вольфрама — создателя Mathematica, Wolfram|Alpha, A New Kind Of Science и много чего ещё

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

Оригинал поста в моём личном блоге

Мне посчастливилось лично познакомиться со Стивеном Вольфрамом на Первой Российской конференции «Wolfram технологии», которая проходила в 2013 г. в СПбГУ. После мы пересекались на телемосте Стивена в Digital October. Записи этих выступлений вы найдёте ниже (к сожалению, у видео с конференции нет перевода).

Стивен Вольфрам крайне интересный человек: он приковывает к себе не только потрясающим умом, всем историческим IT-бэкграудом (ведь он лично работал и знает практически всех, кого мы можем вспомнить — от Стива Джобса до своего наставника Ричарда Фейнмана), своей славой «сверхгика» (чего стоит только его непрерывный сбор и анализ всех данных о себе) и пр.

Я думаю, что многим, связанным (или интересующимся) IT-индустрией будет интересно (даже полезно) посмотреть на моменты его жизни от детства до создания одной из первых систем компьютерной алгебры (SMP — которая потом легла в основу Mathematica), участия в создании языка пришельцев из фильма «Прибытие», слушаниях конгресса США по искусственному интеллекту и многом другом.

Этот пост состоит в основном из иллюстраций (фотографий, скриншотов и пр.), но также очень важно, что он содержит очень много ссылок на статьи Стивена (многие переведены на русский язык и я рад, что в большинстве случаев я прикладывал к этому свое непосредственное участие).

В основу этого поста легла страница Стивена о себе.
Всего голосов 37: ↑31 и ↓6+25
Комментарии2

Что скрывается за постоянной Фейгенбаума

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

Некролог: Митчелл Фейгенбаум, (1944‑2019), 4.66920160910299067185320382…


Статья из блога Стивена Вольфрама



Она называется постоянная Фейгенбаума и равняется примерно 4,6692016. И она с завидной периодичностью возникает в определённых видах математических – и физических – систем, способных демонстрировать хаотичное поведение.

Митчелл Фейгенбаум, ушедший от нас 30 июня в возрасте 74 лет, был открывшим её человеком – в 1975 году, и сделал это, занимаясь экспериментальной математикой на карманном калькуляторе.

Это открытие стало определяющим в теории хаоса. Но когда её обнаружили впервые, этот результат был неожиданным, причудливым, не связанным ни с чем из того, что изучалось ранее. Однако некоторым образом тот факт, что её открыл именно Митчелл Фейгенбаум – с которым я был знаком почти 40 лет – кажется подобающим.
Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии39

Анализ кода ROOT — фреймворка для анализа данных научных исследований

Время на прочтение14 мин
Количество просмотров4.9K
Picture 3
Пока в Стокгольме проходила 118-я Нобелевская неделя, в офисе разработки статического анализатора кода PVS-Studio готовился обзор кода проекта ROOT, используемого в научных исследованиях для обработки больших данных. Премию за такой код, конечно, не дашь, а вот подробный обзор интересных дефектов кода и лицензию для полной проверки проекта разработчики получат.

Введение


Picture 1

ROOT — набор утилит для работы с данными научных исследований. Он обеспечивает все функциональные возможности, необходимые для обработки больших данных, статистического анализа, визуализации и хранения. В основном написан на языке C++. Разработка началась в CERN (Европейская организация по ядерным исследованиям) для исследований по физике высоких энергий. Каждый день тысячи физиков используют ROOT-приложения для анализа своих данных или для моделирования.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии7

Число, лежащее в основе современной музыки

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

Почему двенадцать?


Если вы посмотрите на клавиатуру, то увидите, что в каждой октаве содержится 12 полутонов.
В случае фортепиано это всего лишь значит, что между, например, "до" первой октавы и "до" второй октавы расположено 11 клавиш. Вместе с одним из "до" (например, до второй октавы) мы получим 12 клавиш: до#, ре, ре#, ми, фа, фа#, соль, соль#, ля, ля#, си, до.


Но почему 12?


Может быть это просто случайность? Вот нравилось нашим предкам число 12, у них везде 12: 12 месяцев, 12 знаков зодиака, 12 колен Израилевых, 12 апостолов,… и здесь решили, пусть будет 12, и так и повелось. Или все же здесь есть объективный закон, и это число не случайно?


В этой статье я попытаюсь продемонстрировать, что это не случайность. Достаточно общие требования, вполне естественные для современной (западной) музыки, с математической необходимостью приводят нас к числу 12. Интересно, что причиной почему у нас появляется это значение является свойство другого числа (см. в конце статьи). Можно даже сказать, что оно то и лежит в основе современного звучания.

Читать дальше →
Всего голосов 83: ↑71 и ↓12+59
Комментарии411

Назад в будущее? Квантовый ластик с отложенным выбором

Время на прочтение8 мин
Количество просмотров34K
На Хабре периодически появляются статьи и комментарии о чудесах квантовой физики: квантовом ластике и слабых измерениях. К сожалению, слишком часто о них говорят как о загадочных и непонятных явлениях, позволяющих творить чуть ли не магию, хотя на самом деле нет в них ровным счетом ничего удивительного. В этом посте я перевожу статью Шона Кэрролла о квантовом ластике с отложенным выбором. Пусть он будет отправной точкой для обсуждения в комментариях всяких хитростей квантовой механики.

Всего голосов 39: ↑38 и ↓1+37
Комментарии129

Космики. 7 лет

Время на прочтение5 мин
Количество просмотров16K
Здравствуй, Хабр!

В 2012 году я написал пост о своем увлечении — Космики: моделирование эволюции многоклеточных организмов


С того момента прошло без малого 7 лет, в течение которых я работал над развитием этого проекта. Сегодня я хочу рассказать немного о том, что научился делать, и как планирую развивать проект дальше.
Читать дальше →
Всего голосов 107: ↑107 и ↓0+107
Комментарии25

Превосходный FAQ о квантовом превосходстве от Скотта Ааронсона

Время на прочтение12 мин
Количество просмотров15K
Пару дней назад в сеть утек черновик статьи от Google о достижения ими квантового превосходства в сверхпроводящем квантовом компьютере. Сам текст быстро убрали, а вокруг него множатся слухи и предположения, в том числе и ошибочные. Автор поста — профессор Скотт Ааронсон — один из главных специалистов по квантовым алгоритмам, и ведет отличный блог. В последнем посте он отвечает на главные вопросы о квантовом превосходстве.


Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии12

Каково разрешение человеческого глаза (или сколько мегапикселей мы видим в каждый отдельный момент времени)

Время на прочтение5 мин
Количество просмотров212K
Очень часто фотографы, а иногда и люди из других специальностей, проявляют интерес к собственному зрению.

Вопрос, казалось бы, простой на первый взгляд… можно погуглить, и всё станет ясно. Но практически все статейки в сети дают либо «космические» числа — вроде 400-600 мегапикселей (Мп), либо это и вовсе какие-то убогие рассуждения.

Поэтому постараюсь кратко, но последовательно, чтобы никто ничего не упустил, раскрыть эту тему.

Начнём с общей структуры зрительной системы


  1. Сетчатка
  2. Зрительный нерв.
  3. Таламус(ЛКТ).
  4. Зрительная кора.



Сетчатка состоит из трёх типов рецепторов: палочки, колбочки, фоторецепторы(ipRGC).
Читать дальше →
Всего голосов 249: ↑244 и ↓5+239
Комментарии404

Шесть типов облаков, которые нужно знать – и что они рассказывают о погоде

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


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

Но вам не нужен суперкомпьютер для предсказания того, как изменится погода у вас над головой в ближайшие несколько часов – подобные приметы известны в разных культурах уже много тысяч лет. Следя за небом и обладая некоторыми знаниями по формированию облаков, можно предсказать, будет ли дождь.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии19

Информация

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