Сканирование мозга поможет выбрать профессию

Всё хорошо, но такие тесты занимают слишком много времени и не очень точны. Учёные из университета Калифорнии утверждают, что они смогли разработать методику, которая в будущем позволит большинство подобных тестов заменить одним сеансом сканирования мозга.
Ruby Cross Reference

Ruby, как известно, просто выглядит, но сложно работает. В особенности это относится к официальному интерпретатору, Ruby MRI: документация на многие детали реализации, например, на байткод или GC, отсутствует даже на японском.
Я попытался упростить исследование кода, открыв сайт Ruby Cross Reference по мотивам LXR. Кроме MRI, проиндекированы еще JRuby и Rubinius.
Ускоряем загрузку рельс
Последние релизы MRI Ruby показывают значительное замедление при подключении файлов.

Например, наше средненькое рельсовое приложение при загрузке делает require около 2200 раз — это где-то совсем в правой части графика. Совсем никуда не годится. На 1.9.2 приложение стартует за 20 секунд, а на 1.9.3 уже 46. Слишком медленно!
Ruby 1.9.3 вышел

Спустя три месяца после выхода preview1, наконец вышел релиз — p0.
Ruby 1.9.3 — в основном улучшенная реализация 1.9.2. К примеру, улучшена подгрузка библиотек, блокирование в многопоточных приложениях и многое другое.
Также изменилась лицензия Ruby: первоначально интерпретатор выпускался под GPLv2 и и лицензией «Ruby», теперь под упрощённой BSD и лицензией «Ruby».
Забег реализаций ruby '2012
ОС: OSX Lion 10.7.3
Процессор: 2.3ГГц i5
Память: 8Гб 1333 MHz DDR3
SSD: OCZ Vertex 3 Max IOPS SATA III 2.5" 120Гб
Реализации:
— ruby 1.8.7p249 (системный ruby)
— ruby 1.9.3p125
— ruby 2.0.0dev (2012-02-25 trunk 34796)
— MacRuby 0.12 (ruby 1.9.2) (Nightly build)
— maglev 1.0.0 (ruby 1.8.7)
— rubinius 1.2.4 (1.8.7 release 2011-07-05 JI)
— rubinius 2.0.0dev (1.9.3 e22ed173 JI)
— jruby 1.7.0.dev (ruby-1.9.3-p28) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)
— jruby 1.6.7 (ruby-1.8.7-p357) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)
Срочно обновляем RVM (Ruby Version Manager)
Как работает GIL в Ruby. Часть 1

Первое, что я услышал о GIL, никак не было связано с тем, как она работает или для чего нужна. Все, что я услышал — что GIL — это плохо, поскольку ограничивает параллелизм, или то, что это хорошо, потому что делает код потокобезопасным. Пришло время, я приноровился к многопоточному программированию и понял, что на самом деле все сложнее.
Я хотел знать, как работает GIL с технической точки зрения. На GIL нет ни спецификации, ни документации. По сути, это особенность MRI (Matz's Ruby Implementation). Команда разработчиков MRI ничего не говорит по поводу того, как GIL работает и что гарантирует.
Впрочем, я забегаю вперед.
Как работает GIL в Ruby. Часть 2

В предыдущей серии
После первой части остались два вопроса:
- Делает ли GIL
array << nil
атомарной операцией? - Делает ли GIL код на Ruby потокобезопасным?
На первый вопрос можно ответив, взглянув на реализацию, поэтому начнем с него.
Изучаем алгоритм работы регулярных выражений в Ruby

Согласно Википедии, Oniguruma означает «колесница дьявола» в переводе с японского.
Мы все знакомы с регулярными выражениями. Они являются «швейцарским армейским ножом разработчика». Что бы вы ни искали, какой бы текст ни разбирали, вы всегда можете сделать это используя регулярные выражения. На самом деле, вероятно, вы начали использовать их гораздо раньше, чем стали использовать Ruby — они уже давно включены в большинство популярных языков программирования: Perl, JavaScript, PHP, Java и прочие. Ruby появился в середине 1990-х годов, тогда как регулярные выражения еще в 1960-х, то есть почти на 30 лет раньше!
Но как на самом деле работают регулярные выражения?
Решение проблемы обнаружения центральной линии сосуда
Суть задачи
В процессе медицинской диагностики может возникнуть необходимость исследовать сосуды пациента. Такое исследование называется ангиографией. С появлением томографов в дополнение к классической ангиографии появились методы МРТ и КТ ангиографии, которые в отличие от традиционной ангиографии, дающей только плоскую картинку в одной проекции, позволяют получить полное трехмерное представление сосудов. Для проведения таких исследований пациенту в кровь вводится контраст — специальное вещество, делающее сосуды на снимках более яркими. В зависимости от предполагаемого диагноза, врач или оценивает общую картину, или пытается найти конкретные участки сосудов, в которых возникли проблемы. Если участок сосуда сужен и пропускает меньше крови, чем должен, то это место называется стенозом.

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

Червоточина ("wormhole" или «кротовая нора») — гипотетическая особенность пространства-времени, представляющая собой некий «туннель». Через него можно якобы прошивать насквозь ткань пространства-времени, быстро перемещаясь из с одного края Вселенной на другой. По крайней мере, так работали червоточины в научно-фантастических фильмах вроде «Звёздные врата» или «Звёздный путь», откуда и пошёл этот термин.
Механизм перемещения через червоточину можно сравнить с динамикой движения иголки, которая напрямую сшивает два противоположных конца свёрнутой ткани.
Заманчивая идея перемещений сквозь пространство будоражит умы не только любителей научной фантастики, но и учёных с кафедры физики Автономного университета Барселоны.
Мозг не резиновый: чтобы запомнить что-нибудь, надо забыть что-нибудь другое

Исследователи рассматривали работу мозга при помощи аппарата функциональной магнитно-резонансной томографии. Испытуемым сначала продемонстрировали 144 пары слов и изображений. Затем они пытались запомнить 72 пары, то есть половину пар из первого набора, путём построения ассоциаций между словом и изображением. После этого они приступили к запоминанию второй половины из набора. И в последней фазе эксперимента они пытались вспомнить ассоциации из первого набора.
Разбираем магнитно-резонансный томограф

Квантовая физика, математика, биология, криогеника, химия и электроника сплелись единым узором, чтобы воплотиться в железе и показать настоящий внутренний мир человека, и даже, ни много ни мало, прочитать его мысли. Электроника таких аппаратов, по надежности и сложности может сравниться разве что с космической. Эта статья посвящается оборудованию и принципам работы магнитно-резонансных томографов.
Разбираем магнитно-резонансный томограф II: Метаматериалы в МРТ

Мимо уха просвистела отвертка. С громким звоном она замерла на корпусе криостата.
Чертыхнувшись про себя, я решил взять перерыв. Откручивать болты в магнитном поле величиной 1.5 тесла, при помощи стального инструмента — так себе затея. Поле как невидимый противник постоянно пытается вырвать инструмент из рук, сориентировать его вдоль своих силовых линий и устремить как можно ближе к электронам, бегущим по замкнутому кругу из сверхпроводника. Однако, если очень нужно победить закисшие соединения многолетней давности, особо выбора нет. Я уселся за компьютер и привычно пролистал ленту новостей. «Российские ученые улучшили МРТ в 2 раза!» — гласил подозрительный заголовок.
Метод многоядерной МРТ
Я расскажу о многоядерной медицинской магниторезонансной томографии – одном из многих направлений развития МРТ. Коснусь особенностей метода, необходимых технических решениях, применении и перспективах.

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

Для масштаба указана толщина луковицы аорты — 3.2 см, подумать только! Однако, когда у людей возникают проблемы с сердцем из-за сосудов, то речь, как правило, идет вовсе не о таких больших. На изображении видно, что сердце окружено более мелкими сосудами, и некоторые из них ответвляются прямо из крупных артерий. Это так называемые коронарные артерии, которые питают кровью непосредственно сердце. Если в них происходит сужение просвета (стеноз), например, из-за образования кальция, то уменьшается поток крови. Когда стеноз ярко выражен, то случается некроз ткани, другими словами инфаркт. Далее я расскажу о нашем подходе к вычислению границ сосудов, который в результате позволяет автоматически находить сужения и давать им оценку.
Под капотом Ruby. GVL

Давным давно уже уже была написана статья о том что такое GVL (или GIL, кому как привычнее) и как он работает, однако с того времени некоторые вещи поменялись (к примеру, , а так же в Ruby 3.0 завезли Ractor'ы - новую абстракцию для реальной параллельной работы тредов. Мне стало интересно узнать что поменялось в планировщике ruby для реализации множества GVL. В этой статье я попытаюсь понять алгоритм, по которому GVL передается от одного треда к другому, как блокирующее IO позволяет продолжить работать другим тредам, а так же выяснить до сих пор ли операция добавления элемента в массив является атомарной операцией