Лисаков и макромир

Родословная Рюриковичей

Здесь обсуждается страница lisakov.com/projects/tree/ с интерактивным генеалогическим древом Рюриковичей на 20 колен.

Rurikids

Авторы

Константин Маланчев: ведущий программист, человек широкой души;
Сергей Лисаков: идея, дизайн, данные, унылое программирование, умелое использование человека широкой души.

Как пользоваться

Составьте родословную Рюриковичей своей мечты — от Рюрика и до Ивана Грозного! Выбирайте сами, какую ветвь показывать, а какую скрывать.

  • Перемещайтесь, цепляясь за фон (нажимайте левой кнопкой мыши на пустое место и, удерживая кнопку нажатой, двигайте мышкой).

  • Приближайте или удаляйте схему вращением колёсика мыши.

  • Разворачивайте новые поколения, щёлкая на князя. Щёлкнув на него повторно, можно спрятать всех его потомков. Оранжевое заполнение кружка указывает, что есть скрытые потомки. Пустой кружок означает, что потомков нет (или они уже показаны).

  • По умолчанию при щелчке на князя разворачивается два колена: дети и внуки. В верхней панели управления вы можете изменить это число, так, чтобы по щелчку открывалось от 1 до 20 колен. Однако если было открыты какие-то потомки, к примеру, Олега Гориславича, а затем спрятаны нажатием на Олега Гориславича, то при дальнейшем щелчке на него же откроются потомки в том же виде, в котором они были спрятаны, вне зависимости от выбранного в списке количества раскрывающихся по щелчку колен. Чтобы этого избежать, перезагрузите страницу или спрячьте всех в Рюрика.

Возвращайтесь через некоторое время — скорее всего, станет ещё лучше! Страница постепенно дополняется и улучшается. Можете ознакомиться с нашими планами в конце записи.

История создания

Страница lisakov.com/projects/tree с генеалогическим древом русских князей появилась благодаря двум Сергеям Михайловичам.

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

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

Сначала было очень удивительно, почему этого никто до сих пор не сделал. Удивление прошло, когда я заполнял таблицу между пятым и десятым коленами. Стало ясно, что наглядно уместить на одной схеме такое гигантское количество людей очень непросто. Но я всё-таки не сдался. На настоящий момент на схеме можно посмотреть на 821 Рюриковича, а также Вещего Олега, Ольгу и самого Рюрика. Таким образом, поставленная задача решена, теперь потихоньку реализуем планы, чтобы сделать схему ещё удобнее и полезнее.

Интересные факты

  • Чаще всего на странице встречается имя «Иван» — 90 раз. Однако, первый Иван появляется лишь в 9 колене. Также на схеме присутствуют: Василий — 63 раза (и Василько — 11 раз), три Рюрика, 36 Владимиров, 28 Святославов и один Рогволод Рогволодович (он же, как бы это ни было удивительно, Василий Борисович).

  • Ярослав Мудрый умер в 1054 г. В том же году произошёл раскол церкви на православную и католическую, а также в том году Земли достигло излучение сверхновой SN 1054, которая в течение нескольких месяцев была третьим по яркости объектом на небе после Солнца и Луны, была некоторое время видна даже днём. Сейчас на месте взрыва этой сверхновой наблюдается замечательный остаток M1 — Крабовидная туманность, который можно увидеть с помощью 10–15 сантиметрового телескопа.

  • «Слово о полку Игореве» повествует вовсе не о сыне Рюрика, но о внуке Олега Гориславича (внука Ярослава Мудрого).

  • «Pedigree» с английского языка переводится как «родословная».

  • У Ивана Грозного не было фамилии. Равно как и у всех его предков.

  • Вертикальное древо я довёл только до 8 колена, но не довёл до ума — стало и так слишком широко. Зато там можно перетаскивать таблички, попробуйте!

Технические данные

При создании страницы использован шаблон, работающий на JavaScript-библиотеке D3.js (Data Driven Documents). Внесено множество изменений, добавлены новые функции.

В качестве входных данных используется файл формата json, который генерируется скриптом json_gen.py, написанным на питоне. Этот скрипт открывает человекочитаемый файл source.data и перегоняет его в машиночитаемый json-файл.

Смотрите исходный код на github.com. Английская версия может отставать от русской, а код на гитхабе может отставать от сайта.

Вопросы

У меня много вопросов, которые наверняка у учёного-историка вызовут удивление своей нелепостью и наивностью. И это, наверное, нормально. Представляю, как некто стал делать сайт по Солнечной Системе и стал обращаться ко мне (типа, профессиональному астроному) с вопросами вроде «Существует ли на самом деле противоземля? Были ли американцы на Луне? Откуда астрономы знают, какие физические процессы происходят в недрах звёзд? Как часто вы смотрите в телескоп?» и т.п. Так что как закончим работу над внешним видом, надо будет хорошенько поконсультироваться с учёными.

  • Кем в научном мире почитаются Синеус и Трувор — братьями Рюрика или «дружиной» и «домом»? На мой взгляд, это братья.

  • Как относятся к гипотезе о тождестве Рюрика с конунгом Рёриком?

  • Откуда призвали варягов, с южного или северного берега Балтийского моря?

  • Иван или Иоанн? Были это разные имена или просто с какого-то момента Иоаннов стали называть Иванами? Когда это произошло?

  • Сыновья Даниила записывались Даниловичами или Данииловичами?

  • Нужно решить, по какому шаблону именовать всех князей. Сейчас всё по-разному, то через запятую город указан (Мстислав, Волынь), то как прозвище/фамилия (Игорь Волынский). Иногда эти прозвища общеприняты, иногда нет. Наверное, разумно давать имена вида имя-отчество-годы жизни. Какие у кого рекомендации? Ясно, что всё должно быть единообразно. Конечно, люди с устойчивыми и общеизвестными прозвищами (Ярослав Мудрый, Иван Калита, Дмитрий Донской, Александр Невский, Иван Грозный, Всеволод Большое Гнездо) должны именоваться по самому распространённому своему званию.

Планы

Хочется сделать (не стесняйтесь давать советы в комментариях):

  1. Кнопки схлопнуть всё и показать всё. Сделано.

  2. Возможность выбирать, сколько колен раскрывать по щелчку. Исполнено.

  3. Разворачивать при заходе на страницу n колен. Готово.

  4. Вывод информации по князю по наведению курсора.

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

  5. Сделать английскую версию. lisakov.com/en/projects/tree.

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

  7. Оптимизировать дистанцию и по горизонтали. От Рюрика до Игоря слишком длинная линия получается — имена-то у них короткие.

  8. Возможность сохранить текущий вид древа в pdf/jpg/… + версия полного древа для печати.

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

  10. Возможность вызывать меню правым щелчком мыши по князьям с пунктами:

    • Подсветить князя (чтобы можно было смотреть всё древо и не терять выбранных князей)
    • Подсветить линию от князя до Рюрика
  11. Возможность вызывать меню правым щелчком мыши по пустому месту с пунктами:

    • Скрыть всех, кроме подсвеченных князей. Даже их братьев спрятать.
    • Очистить выделение
    • Сохранить текущий вид древа в pdf/jpg/…
  12. Список всех князей. Возможность выбрать любых князей из списка и построить древо до выбранного колена, при котором были бы показаны и подсвечены выбранные князья, при этом было бы скрыто так много, как возможно. Это очень полезно, если нужна информация по конкретным князьям.

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

  13. Сделать умный поиск по князьям, предлагающий варианты по мере ввода.

  14. Сделать изменение масштаба в Firefox плавнее. В Chrome, Opera и Safari всё нормально.

  15. По кнопке «Показать всех» зачастую остаёшься перед пустым экраном, дерево полностью выезжает за границы видимой области. Исправить.

  16. При увеличении размера окна границы tree-container не увеличиваются — в результате используется не всё доступное место. Приходится обновлять страницу. Исправить.

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

  18. Список походов в выдвигающемся меню. По щелчку на интересующий поход подсвечиваются все участники.

  19. Сейчас Рюрик и Вещий Олег являются вторым коленом, а корень и его линии сделаны невидимыми (под цвет фона). Есть ли более нормальное решение, позволяющее начать древо с двух корней?

  20. Сейчас по двойному щелчку происходит приближение. Думаю, надо убрать/заменить на что-то более полезное.

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

  22. Выделить Великих князей.

  23. Сделать списки для городов: под чьей властью (князь, княжество, наместники…) находились по времени.

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

  25. Сделать удобной для скачивания и просмотра родословную роспись (source.data).

Приветствуются сообщения обо всех неточностях (особенно фактических) и неработающих кнопках. Также приветствуются советы, предложения и пожелания.