Обновить
25.5

Занимательные задачки

Разминаем мозги

Сначала показывать
Порог рейтинга
Уровень сложности

История о недостающих метриках: странности с замыканиями в Rust

Время на прочтение8 мин
Количество просмотров1.7K
Как один нюанс, связанный с обработкой замыканий в Rust, привёл к потере метрик в нашей компании, и какие уроки мы из этого извлекли

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

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

Криогенное охлаждение при дросселировании воздуха. В чём суть «эффекта Джоуля-Томпсона»?

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

Эффект Джоуля-Томпсона в криогенной технике: Так на сколько градусов и как  охлаждается струя воздуха при дросселировании?

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

Эффект в том, что если дросселировать воздух из малого отверстия в атмосферу с перепадом давления больше 1атм, то скорость струи газа превышает скорость звука при данной температуре.

В этом случае по закону сохранения энергии сверхзвуковая струя должна сильно остывать за счёт перевода внутренней энергии (тепловой) в кинетическую  энергию.

Расчёт показал, что даже при  комнатной температуре при дросселировании воздуха из малого отверстия в ресивере (прокол в шине автомобиля) температура струи должна быть уже глубоко отрицательной, если не сказать криогенной. (см.ссылку)

Похожий эффект со сверзвуковым разгоном струи из критического сечения камеры сгорания ЖРД и резким падением температуры прослеживается в больших ЖРД, что подтверждено расчётом по ТТХ РД-170. (см.ссылку)

Правда, на все мои аргументы и расчёты  некоторые критически настроенные читатели мне писали, что никакого понижения температуры при дросселировании не бывает. А если и бывает, то очень маленькое понижение  на дТ= 0,25С при перепаде на 1 атм, что определяется «эффектом Джоуля-Томпсона».

Читать далее

Поверхности второго порядка: гиперболоиды и параболоиды, которые держат небо

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

Привет, меня зовут Диана, я математик, а еще пишу для хабраблога МТС. В прошлый раз я рассказывала про кривые второго порядка. Сегодня хочу продолжить и обобщить тему, перейдя в 3D.

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

Читать далее

Первоапрельская теория (не)вероятностей

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

Дисклеймер: идея написания этой статьи появилась у нас в преддверии 1 апреля (что и отражено в названии). Поэтому все, что написано в данной статье, является всего лишь первоапрельской шуткой.

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

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

Читать далее

Как я за год написал шесть больших научных статей и несколько маленьких

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

Без «литературных негров» и чатГПТ — личный рассказ об инструментах, технологиях и приёмах, которые помогли мне не вылететь из аспирантуры и догнать коллег. Открытые данные, Python, R, RMarkdown, Quarto, git и немного ИИ в помощь исследователю.

Читать далее

История о потоке UI, зависавшем при вызове ядра

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

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

Читать далее

Байты в солёной воде и передача сообщений через жидкость по стандарту RS-485

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

Здравствуйте, дорогие друзья!

С школьных лет мы знаем, что вода является проводником электрического тока. При этом дистиллированная вода не проводит ток, а вода с примесями — прекрасно проводит.

Я провёл эксперимент, в котором нет ничего необычного, но он наглядно показывает, что вода способна передавать и осмысленные сигналы, например данные в ASCII-кодах. Мы будем использовать ретротехнику — компьютеры на процессорах 386, но повторить суть эксперимента можно и на современном оборудовании.

Это небольшой пример, который напоминает нам о том, что вода электропроводна.

Под катом — фото и видео составляющих эксперимента и пояснения.
Читать дальше →

SQL HowTo: простой финал с агрегатами (Advent of Code 2024, Day 25: Code Chronicle)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

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

Читать далее

Excel, будь ты проклят: “1/2”+1=45660

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

Пишу этот текст совершенно без намерения оскорбить авторов Excel. Это фантастически успешный софт, который по праву считается золотым стандартом среди табличных редакторов. Тем не менее, в этом году Excel уже стукнуло 40. В таком почтенном возрасте его семантика всерьёз страдает из-за костылей, которые накапливались не один десяток лет, обеспечивая обратную совместимость.

Одно из самых интересных дел, которыми мне приходится заниматься на работе — это обратная разработка Excel. Я выискиваю причуды в его поведении и решаю, как поступать с ними в нашем фирменном табличном редакторе. Благодаря моему повседневному труду, наши пользователи, возможно, и не подозревают, сколько недокументированных грехов совершила Microsoft ради совместимости. Приглашаю вас одним глазком взглянуть на те ужасы, с которыми мне приходится тягаться — и тогда вы тоже станете бояться Microsoft Excel — не потому, что чего-то не знаете, а наоборот, так как знаете слишком много.

Читать далее

Хеш-таблица и C++20

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

Рассматриваем различные «приколюхи» из C++20 на примере хеш‑мапы!

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

Читать далее статьи от @SEIka69

Конкатенация чисел и делимость на 13 — задачка от Клайва Фрэйзера

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

Дан массив с числами, в десятичном представлении - из них можно удалить какие-то, а то что осталось конкатенировать. Для N чисел это даёт 2^N-1 возможных результатов (нельзя удалить все числа) - и нам интересно сколько из этих результатов делятся нацело на 13.

Для маленьких массивов можно написать простой перебор, но автор предлагает N=400000 - у одного из пользователей это сразу вызвало реакцию "2 в степени 400000 - это невозможно перебрать". Действительно, перебором тут не справиться :)

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

Таинственный Незнакомец...

Как мы реализовали отказоустойчивый WireGuard в трёх зонах Yandex Cloud

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

Расскажем, как мы сделали отказоустойчивый WireGuard-сервер в Yandex Cloud, раскинув его на три зоны доступности. Получилось просто, надёжно и без сложных кластеров.

Мы не рассматриваем настройку самого WireGuard, конфигурацию групп безопасности, настройку VPC, NLB и прочее. Вся логика сосредоточена на том, чтобы обеспечить автоматическое переключение между зонами при сбоях. Сеть VPN-клиентов — 172.28.90.0/24 — должны быть доступна с любой из трёх зон.

Читать далее

Как мы сделали битву разработчиков

Время на прочтение9 мин
Количество просмотров3.9K
image
Вот тут два игрока соревнуются, кто быстрее решит задачу

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

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

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

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

В итоге получились очень забавные соревнования.
Читать дальше →

Ближайшие события

SQL HowTo: немного двоичной логики (Advent of Code 2024, Day 24: Crossed Wires)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

Рекурсивно вычисляем логические выражения и разбираем устройство двоичного сумматора.

Читать далее

Почему окружность и гипербола — это почти одно и то же? Кривые второго порядка и немного космоса

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

Привет, меня зовут Диана, я математик, а еще пишу для хабраблога МТС. В прошлый раз публиковала задачу про адвент-календарь — спасибо всем, кто решал и комментировал! А сегодня хочу немного рассказать про милый моему сердцу кусочек математики — часть аналитической геометрии, которая повествует о кривых второго порядка.

Кривые второго порядка — это не просто красивые абстракции. Они прочно вплетены в вашу повседневность: параболы помогают сфокусировать сигнал вашего Wi-Fi, гиперболы — определить ваше местоположение, а эллипсы — это орбиты спутников.

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

Читать далее

SQL HowTo: работаем с массивами (Advent of Code 2024, Day 23: LAN Party)

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

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

Возможно, SQL не самый подходящий для этого язык, зато мы рассмотрим его различные возможности, о которых вы могли и не подозревать.

Применяем простые операции над массивами, чтобы определить связность графов.

Читать далее

ChatGPT: как не нужно его использовать

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

Текст выходного дня, что намекает на несерьезность. И да: это – только один из множества сценариев, как не стоит использовать ChatGPT. Среди других и любимая тестировщиками задача по подсчету букв R в слове strawberry. И просить написать стихотворение – тоже так себе идея.

Несколько дней тому назад OpenAI обновила (обновил) работающую под капотом ChatGPT версии 4о модель-генератор изображений, заменив старушку DALL-E 3. Не расстраивайтесь, DALL-E 3 все еще доступна, если вам почему-то захочется к ней вернуться. Новая модель, если верить заявлениям ее создателей, замечательно понимает, что именно от нее хотят, принимая во внимание содержание целого диалога, а не только последнего промпта, аккуратно и точно обращается с текстом. И вообще легка и приятна в общении, то есть в использовании.

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

Читать далее

Создавай, а не решай: мы пошли против мейнстрима и придумали АНТИолимпиаду

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

Как часто на олимпиадах вам казалось, что задания могли бы быть интереснее? Или даже возникала уверенность, что вы бы сделали лучше? Примерно так и появилась идея соревнования, где участники не просто кодят (что мы, безусловно, уважаем), а придумывают интересные задачи разного уровня сложности.

Читать далее

«Решаем задачки про ненормальных детей», или Как приблизить математику к реальности

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

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

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

Давайте разбираться

Rust в режиме «жесть»

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

В этом посте будет разобрано, как написать приложение на Rust с применением самого минимального API, возможности которого искусственно ограничены (например, не применяется динамическое выделение памяти). Предполагается, что читатель немного знаком с языком Rust.

Читать далее

Вклад авторов