Search
Write a publication
Pull to refresh
43
0
Валерий Дмитриев @rotor

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

Send message

Расширение Вселенной — величайшее заблуждение в истории науки

Reading time7 min
Views27K
image

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

Графически оно выглядит так — Рис.1.

image

Рис.1 Графическое представление о космологическом красном смещении.

Красное смещение для галактик было обнаружено американским астрономом Весто Слайфером в 1912—1914 годах, а в 1929 году Эдвин Хаббл открыл, что красное смещение для далёких галактик больше, чем для близких, и возрастает приблизительно пропорционально расстоянию ( закон Хаббла).

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

Потоки Redis как чистая структура данных

Reading time6 min
Views15K
Новая структура данных Redis 5 под названием «потоки» (streams) вызвала живой интерес в сообществе. Как-нибудь я поговорю с теми, кто использует потоки в продакшне, и напишу об этом. Но сейчас хочу рассмотреть немного другую тему. Мне начинает казаться, что многие представляют потоки неким сюрреалистичным инструментом для решения ужасно трудных задач. Действительно, эта структура данных *также* осуществляет обмен сообщениями, но будет невероятным упрощением считать, что функциональность Redis Streams ограничена только этим.

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

Пытаемся сломать игру «7 на 9»

Reading time3 min
Views22K
Сегодня будет маленький этюд просто понять, интересно ли вам такое. В общем, есть такой дядька Алексей Савватеев, который читает потрясающий курс по теории игр. Он же написал книгу «Математика для гуманитариев», где очень тонко постебался над всеми гуманитариями. Просто это как раз та математика, где числа из формул стремительно пропадают. И вот в один прекрасный момент я притащил ему игру «7 на 9» и попросил её сломать.

Принцип игры простой: в середину стола бросаются карты. На каждой карте число и разница. Например, 6 плюс-минус 2 — сверху можно бросить 8 или 4. Задача — как можно быстрее скинуть все свои карты в центр. Очерёдности ходов нет, ничего нет, просто кто успел — тот и бросил карту. Карты по одной из своей колоды вынимаются на руку, можно брать любое количество. Хоть все. Главное, чтобы пальцев хватило.

Вот что получилось, видео (ниже). Теперь расскажу словами, что это было (можно не читать, если вы смотрели видео).

Как погрешность превращается в грех

Reading time7 min
Views31K

Одна городская легенда гласит, что создатель сахарных пакетиков-палочек повесился, узнав, что потребители не разламывают их пополам над чашкой, а аккуратно отрывают кончик. Это, разумеется, не так, но если следовать такой логике, то один британский любитель пива "Гиннесс" по имени Уильям Госсет должен был не просто повеситься, но и своим вращением в гробу уже пробурить Землю до самого центра. А все потому, что его знаковое изобретение, опубликованное под псевдонимом Стьюдент, уже десятки лет используют катастрофически неправильно.


image


Рисунок выше приведен из книги С. Гланц. Медико-биологическая статистика. Пер. с англ. — М., Практика, 1998. — 459 с. Мне неизвестно, проверял ли кто-нибудь на статистические ошибки расчеты для этой диаграммы. Однако и ряд современных статей по теме, и мой собственный опыт говорят о том, что t-критерий Стьюдента остается самым известным, и оттого — самым популярным в применении, по поводу и без.

Читать дальше →

Пробуем контрактное программирование С++20 уже сейчас

Reading time14 min
Views33K


В С++20 появилось контрактное программирование. На текущий момент ни один компилятор ещё не реализовал поддержку этой возможности.


Но есть способ уже сейчас попробовать использовать контракты из C++20, так как это описано в стандарте.

Заинтересовавшихся прошу под кат

Data Science: предсказание бизнес-событий для улучшения сервиса

Reading time7 min
Views4.7K
Алгоритмы рекомендаций, предсказания событий либо оценки рисков – трендовое решение в банках, страховых компаниях и многих других отраслях бизнеса. Например, эти программы помогают на основе анализа данных предположить, когда клиент вернет банковский кредит, какой будет спрос в ритейле, какова вероятность наступления страхового случая или оттока клиентов в телекоме и т.д. Для бизнеса это ценная возможность оптимизировать свои расходы, повысить скорость работы и в целом улучшить сервис.

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

Как на D писать под ARM

Reading time6 min
Views6.8K

Доброго времени суток, Хабр!


Сегодня я хочу поделиться опытом разработки под миникомпьютеры на linux (RPI, BBB и другие) на языке программирования D. Под катом полная инструкция о том как сделать это без боли. Ну или почти… =)


Читать дальше →

Эксперимент: собираем справочник подразделений, выдавших паспорт

Reading time2 min
Views24K


Самое утомительное поле при вводе паспорта — «Кем выдан». Вбивать в форму какое-нибудь «Отделом внутренних дел Медведевского района республики Марий Эл» муторно. Люди злятся, сокращают название как придется, ошибаются.

Было бы здо́рово подсказывать варианты по коду подразделения.
Читать дальше →

Светодиодное враньё невиданных масштабов

Reading time3 min
Views261K
В магазинах можно встретить множество мощных светодиодных ламп, например «свечки» и «шарики» 9 и 11 Вт.

Вот только свечек и шариков такой мощности сегодня существовать не может.
Читать дальше →

Неожиданная эффективность квазислучайных последовательностей

Reading time22 min
Views24K
В этой статье я представляю новую квазислучайную последовательность с низким расхождением, обеспечивающую значительное улучшение по сравнению с современными последовательностями, например, Соболя, Нидеррайтера и т.д.


Рисунок 1. Сравнение различных квазислучайных последовательностей с низким расхождением. Заметьте, что предлагаемая мной $R$-последовательность создаёт более равномерно распределённые точки, чем все остальные методы. Более того, все остальные методы требуют тщательного подбора базовых параметров, а в случае неправильного подбора приводят к вырожденности (например справа вверху)

Рассматриваемые в статье темы

  • Последовательности с низким расхождением в одном измерении
  • Методы с низким расхождением в двух измерениях
  • Расстояние упаковки
  • Множества с многоклассовым низким расхождением
  • Квазислучайные последовательности на поверхности сферы
  • Квазипериодический тайлинг плоскости
  • Маски дизеринга в компьютерной графике

Какое-то время назад этот пост был выложен на главной странице Hacker News. Можете прочитать там его обсуждение.

Разработка под WebAssembly: реальные грабли и примеры

Reading time25 min
Views44K


Анонс WebAssembly состоялся в 2015-м — но сейчас, спустя годы, всё ещё немногие могут похвастаться им в продакшне. Тем ценнее материалы о подобном опыте: информация из первых рук о том, каково с этим жить на практике, пока что в дефиците.

На конференции HolyJS доклад об опыте использования WebAssembly получил высокие оценки зрителей, и теперь специально для Хабра подготовлена текстовая версия этого доклада (видеозапись также приложена).
Читать дальше →

Под капотом у чат-бота: что умеет и как работает RocketBot

Reading time5 min
Views6.7K
RocketBot — это программируемый чат-бот, который интегрируется с VK, Telegram и Bitrix24. Сегодня мы расскажем об инфраструктуре и других технологиях, на которых он построен.

Читать дальше →

JavaScript: Публичные и приватные поля классов

Reading time3 min
Views47K

Несколько предложений расширяют существующий синтаксис классов в JavaScript новой функциональностью. Эта статья объясняет новый синтаксис публичных полей классов в V8 v7.2 и Chrome 72, а также грядущих приватных полей.


Вот пример кода, который создает экземпляр класса IncreasingCounter:


const counter = new IncreasingCounter();
counter.value;
// logs 'Getting the current value!'
// → 0
counter.increment();
counter.value;
// logs 'Getting the current value!'
// → 1

Отметим, что обращение к value выполняет некоторый код (вывод сообщения в лог) перед тем, как вернуть значение. Теперь спросите себя: как бы Вы реализовали этот класс на JavaScript?

Читать дальше →

3blue1brown и MIT на русском

Reading time3 min
Views24K
Привет, Хабр!

Ровно год назад мы — небольшое сообщество — собрались, чтобы переводить на русский самые крутые образовательные курсы, что есть в открытом доступе (например, физика Уолтера Левина). Без денег — просто интерес. И сегодня мы к вам — с надеждой, что вам понравится, что мы делаем.

Вместо КДПВ — озвученное нами видео 3blue1brown (да-да, мы договорились о переводе с автором самых крутых на Youtube видео про математику-физику-информатику).

Повышаем продуктивность на GitHub: советы для новичков и не только

Reading time3 min
Views27K


От переводчика: публикуем для вас статью Даррена Барнса, который делится своим опытом работы с GitHub. Его советы будут полезны, в первую очередь, новичкам. Возможно, и опытный кодер найдет что-то для себя.

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

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

1 февраля 2019 года ваш сайт может перестать работать

Reading time3 min
Views149K
Cisco является одним из крупнейших DNS-провайдеров в мире, предоставляя услугу безопасного DNS на базе Cisco Umbrella (ранее OpenDNS), но речь сегодня пойдет не о ней и даже не о безопасности. Дело в том, что 1-го февраля наступит так называемый DNS Flag Day, после которого ваш сайт может быть недоступен пользователям в Интернет.

С 1-го февраля будет недоступен сайт НКЦКИ ФСБ
Читать дальше →

Аппликативные парсеры на Haskell

Reading time13 min
Views17K


Мотивация


Когда я только начинала осваивать Haskell, меня очень раздражало повсеместное использование сложных абстракций вместо каких-то конкретных решений. Мне казалось, что гораздо лучше всегда следовать принципу KISS и писать велосипеды с использованием элементарных конструкций языка, чем разбираться во всех этих классах типов, чтобы где-то в итоге написать одну якобы удобную конструкцию.


Мне не хватало хорошего примера, где бы окупались усилия, потраченные на освоение "матчасти". Для меня одним из самых удачных таких примеров оказались парсеры. Теперь я довольно часто рассказываю про них, когда у меня спрашивают, для каких распространённых задач можно красиво использовать Haskell.


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


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

Читать дальше →

Тесты на C++ без макросов и динамической памяти

Reading time9 min
Views15K

Многие популярные библиотеки для тестирования, например Google Test, Catch2, Boost.Test тяжело завязаны на использование макросов, так что в качестве примера тестов на этих библиотеках вы обычно увидите картину вроде такой:


namespace {

// Tests the default c'tor.
TEST(MyString, DefaultConstructor) {
  const MyString s;
  EXPECT_STREQ(nullptr, s.c_string());
  EXPECT_EQ(0u, s.Length());
}

const char kHelloString[] = "Hello, world!";

// Tests the c'tor that accepts a C string.
TEST(MyString, ConstructorFromCString) {
  const MyString s(kHelloString);
  EXPECT_EQ(0, strcmp(s.c_string(), kHelloString));
  EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1,
            s.Length());
}

// Tests the copy c'tor.
TEST(MyString, CopyConstructor) {
  const MyString s1(kHelloString);
  const MyString s2 = s1;
  EXPECT_EQ(0, strcmp(s2.c_string(), kHelloString));
}
}  // namespace

К макросам в C++ отношение настороженное, почему же они так процветают в библиотеках для создания тестов?

Читать дальше →

Новогодний датасет 2018: открытая семантика русского языка

Reading time12 min
Views8.4K
Открытая семантика русского языка, об истории создания которой вы можете прочитать здесь и здесь, получила большое обновление. Мы собрали достаточное количество данных, чтобы применить поверх собранной разметки машинное обучение и построить семантическую модель языка. Что из этого получилось смотрите под катом.


Читать дальше →

Усложняя стандартный пример

Reading time5 min
Views18K
Стандартная библиотека С++ предлагает не только набор классов, но также определяет способ написания программ. В рамках данной статьи рассматриваются общие требования к реализации программ при помощи STL.

Рассмотрим следующую задачу:
Считать из файла input.txt массив целых чисел, разделенных пробельными символами. Отсортировать их и записать в файл output.txt

Читать дальше →

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity