Study: MRI contrast agent causes harmful metal buildup in some patients 💬 Длинная дискуссия
К сожалению, в предоставленном фрагменте отсутствует основное содержание статьи. Я вижу только заголовок "Study: MRI contrast agent causes harmful metal buildup in some patients" и навигационные элементы сайта, но нет самого текста исследования, результатов или выводов.
Для создания точного пересказа мне нужен полный текст статьи, включая:
- Основные findings исследования
- Конкретные данные о накоплении металла
- Группу пациентов, подверженных риску
- Рекомендации или выводы авторов
Пожалуйста, предоставьте полный текст статьи, и я создам лаконичный пересказ в соответствии с вашими требованиями (~170 слов в двух абзацах).
Комментарии (200)
- Пациенты с хронической почечной недостаточностью действительно подвержены риску нефрогенного системного фиброза при использовании гадолиния, но в последние годы не зафиксировано ни одного случая при использовании современных препаратов.
- Вопрос о накоплении гадолиния в мозге и других тканях остаётся предметом исследований, но нет доказательств, что это приводит к каким-либо клинически значимым последствиям.
- Все участники согласились, что важно информировать пациентов о возможных рисках и давать им возможность принять решение, но подчеркнули, что отсутствие альтернативы не должно быть использовано как аргумент для отказа от необходимой диагностики.
- Обсуждение также коснулось того, что всякая медицинская процедура сопряжена с риском, и что важно взвешивать пользу и риск в каждом конкретном случае.
Mathematicians have found a hidden 'reset button' for undoing rotation
Математики обнаружили универсальный способ "отмены" вращения любого объекта, что противоречит интуитивному представлению о необходимости painstakingly повторять обратные движения. Вместо этого можно использовать "скрытую кнопку сброса", которая включает масштабирование начального вращения на общий коэффициент и повторение этого дважды. Например, если волчок повернулся на три четверти, можно вернуться в исходное положение, масштабировав вращение до одной восьмой и повторив его дважды.
Этот метод применим к любым вращающимся объектам: спинам, кубитам, гироскопам и роботизированным рукам. Даже если объект прошел сложную траекторию, масштабирование всех углов вращения на один и тот же коэффициент и повторение этой траектории дважды возвращает его в исходное положение. Математическое доказательство основано на каталоге всех возможных вращений в трехмерном пространстве, известном как SO(3), который описывается с помощью абстрактного математического пространства, структурированного подобно шару.
Комментарии (101)
- Обсуждение вращений в SO(3) и SU(2) показало, что любой путь вращений можно «сбросить» в исходную точку, если повторить его дважды с подходящим масштабным коэффициентом λ, но формула для вычисления λ пока неизвестна.
- Работа Эккмана и Тлусти подчеркивает, что классическая механика допускает обратимость, но не даёт способа вычислить обратную последовательность вращений без полного перебора всех возможных.
- Исследование вращений в контексте робототехники, МРТ и квантовых вычислений подчеркивает, что вращения в 3D-пространстве могут быть «сброшены» с помощью простой последовательности шагов, но неясно, как вычислить эту последовательность.
- Обсуждение также затрагивает вопрос о том, можно ли применить этот результат к «сбросу» любой последовательности вращений в контексте робототехники и МРТ, и поднимает вопрос о том, что такое вращение в контексте квантовых вычислений.
How Ruby executes JIT code
Где живёт JIT-код
Ruby не выбрасывает байт-код — он остаётся в ISEQ. В структуре метода поле jit_entry либо NULL (интерпретатор), либо адрес скомпилированной машинной функции. Байт-код нужен для деоптимизации.
Как Ruby запускает JIT
Перед каждым вызовом метода VM проверяет jit_entry. Если указатель не нулевой — переход на него, иначе обычный интерпретатор. Одна проверка, один jmp.
Когда компилировать
ZJIT ждёт 25 вызовов для профилирования и 30 для компиляции (числа настраиваются). Пока счётчик jit_entry_calls не достигнет порога, метод работает в байт-коде.
Почему возвращаются к интерпретатору
JIT делает упрощающие предположения (типы, классы). Если они нарушаются — контроль возвращается к байт-коду, который всегда корректен. Это «деоптимизация»: быстро, но безопасно.
Комментарии (20)
- Участники обсуждают, возможно ли ускорить Ruby с помощью фонового JIT, который постепенно перекомпилирует методы по мере накопления профильной информации (tiered compilation уже есть в .NET и JS-движках).
- Предложен снимок «прогретой» VM для мгновенного старта, но проблема — глобальное состояние C-библиотек; Emacs делает это через unexec.
- MRI Ruby не распараллеливает потоки и не дружит с JIT: язык позволяет динамически менять классы, что ломает оптимизации.
- Альтернатива — JRuby/TruffleRuby на JVM, но они теряют часть динамики и накладывают ограничения JVM.
- Соглашение: Ruby вряд ли догонит Java по скорости из-за динамической типизации и дизайна языка.