Солдатские Широкобоковы

Как же я это пропустил? Сам не понимаю.

Есть у меня такие предки — однодворцы Широкобоковы. С 1833 года жили в селе Ефановка, недалеко от Бугульмы. Год переезда я знаю потому, что в переписи 1850 года есть запись — откуда и когда они переехали. Почерк расшировать тяжело, но с некоторым усилием он всё-таки читается — «переезд оной же губернии, уезда и волости из села Солдатской причислены по указу Оренбургской казённой палаты в 1833 году».

Я всегда думал, что «оной же губернии, уезда и волости» относятся к Бугульминскому уезду Самарской губернии — тому месту, где запись была сделана. Я рассудил, что «село Солдатское» — это слобода Солдатская Письмянка, так как ничего более подходящего в округе не было.

С тех пор, встречая Солдатскую Письмянку в бумагах, я постоянно искал в них Широкобоковых, искал и не находил. Поскольку документы до даты переезда мне ещё не попадались, я считал это нормальным, но червячок сомнения мучал. В конце-концов это очень странно — называть слободу селом, да ещё и не упоминая вторую часть названия.

Запись о переезде моих предков стоит первая в листе, причём мне его прислал сторонний человек. И сегодня я подумал — а нет ли чего на предыдущей странице? Странно, что мне не пришло это в голову раньше. Скачал это дело целиком, посмотрел. Рву волосы! Выше есть следующая запись: Запись в метрике (91.27КБ) В переводе с колябушек на печатное, написано там следующее: «перешли [из] Орловской губернии Елецкого уезда Тербунской волости из села Тербунов…». Это совсем у другой семьи, но, складывая всё вместе, получаем следующее.

Все упомянутые в документе семьи перевезены из Елецкого уезда Орловской губернии, но семья с процитированной записью привезена из села Тербуны, а моя — из села Солдатского. В самом деле, в этом регионе село Солдатское находится. Вот оно на современной «Яндекс.Карте», слева: Село Солдатское (42.22КБ) Заметьте на одной линии (это дорога) с ним находятся Вторые Тербуны, выше них — Бурдино, а на севере — Казинка. Этих населённых пунктов вполне хватает, чтобы найти Солдатское на более старой — 19 века, карте.

Солдатское (написано «Салдацкое») я выделил. Как и на верхней карте, на одной линии находится село Тербуны (которое сейчас называется «Вторые Тербуны»), выше него отлично просматривается Бурдино, всё так же на севере — Казинка, имевшая тогда более длинное название (не стал разбирать). Село Солдатское (119.31КБ) Таким образом, мои Широкобоковы — однодворцы Орловской губернии Елецкого уезда из села Солдатское. Село было основано во второй половине 17 века солдатами, отсюда и название.

Буду теперь искать подходы к Липецкому архиву (если верить документу «„Источники и поиск генеалогической информации“ по документам ОГУ ГАОО», именно там находятся дела по Елецкому уезду) и Орловскому (где часть данных тоже имеется).
2 комментария
21 ноября 2014 15:58

Татарский поцелуй

Любовное лобзание отличалось от ритуально-этикетного поцелуя тем, что совершавшие его позволяли себе «губами плюскати» — чмокать, шлепать губами, целуясь открытым ртом, а главное — «влагать язык». В 14 в. в некоторых покаянных сборниках такой поцелуй именовался «татарским» ("«девала ли язык свой.., вкладывал ли по-татарски, или тебе кто тако ж?»), а в 18 столетии тот же поцелуй получил название «французского», что отражает общую для древнерусской назидательной литературы тенденцию приписывать иностранцам и иностранной культуре все «вредные» заимствования.
Цитата из статьи историка Натальи Львовны Пушкарёвой «Мёд и млеко под языком твоим». Тут «татары», по всей видимости (14-й век же), относятся к татаро-монголам, а не к современным национальностям.

А вы говорите французы!
4 комментария
20 ноября 2014 08:46

Химические карандаши

Помните такую штуку — «химические» карандаши? Похожи на простой карандаш, но если смочить написанное водой, то появится цвет — бирюзовый или малиновый. В детстве было счастье обнаружить такой, провалявшийся десятилетия забытым где-нибудь у бабушки дома в ящике стола. Для чего они использовались я не знал, оказывается — для копирования бумаг (пишем, смачиваем, прикладываем). Химический карандаш (33.92КБ) Другим применением (естественно для этого они не задумывались) была бытовая стеганография. Вот до этого я детстве не додумался, к сожалению. Несколько букв в словах выше (картинка взята из «Википедии») написаны химическим карандашом.

По виду это неотличимо, но стоит смочить и проступает скрытое послание — из цветных букв складывается «секрет» . Гениально!
8 комментариев
18 ноября 2014 09:02

Земсковы

Недавно писал про Трефила (Перфила) Антоновича Земскова, моего предка. После разгадки тайны имени, дальше всё пошло гораздо легче — бумаги по Старописьмянской слободе, где жили Земсковы, у меня все были, так что я за один вечер продвинулся на несколько поколений и дошёл до Якова Дмитриевича, который родился в 1775 году и умер примерно в 48 лет (1823).

Этот Яков Дмитриевич, мой прапрапрапрапрадед — самый дальний известный мне предок по линии Земсковых (его потомки получат эту фамилию гораздо позже его рождения). Особо интересен оказался тем, что именно он, похоже, определил фамилию своих потомков. Впрочем, самым дальним можно считать его отца — Дмитрия, но кроме имени и его жены мне тут ничего не известно.

Итак, Земсковы. Откуда вообще могла взяться такая фамилия? Ответ, в общем-то, очевиден: это люди как-то связанные с земством — был когда-то такой выборный орган самоуправления. Интернет говорит, что чаще всего фамилию Земсков получали земские писари. Думаю, это упрощение — нет никаких предпосылок такой определённости, скорее всего такую фамилию могли получить любые представители земства.

Земство брало на себя довольно широкие функции:  устройство школ, оборудование больниц, строительство дорог, позднее, с развитием единоличных наделов, — пропаганда агрономических знаний, создание курсов «повышения квалификации» для врачей, учителей, агрономов, статистиков, развитие ремёсел, кустарного производства. У земства были своя почта, школы, медицинские учреждения и так далее.

Очевидно, что крестьяне в земстве не работали, потому я и думаю, что именно Яков Дмитриевич сделал главный шаг к будущей фамилии. Дело в том, что он 30 ноября (11 декабря) 1795 года сменил сословие и из крестьянина стал бугульминским мещанином (горожаниным).

Это, кстати, косвенно говорит о зажиточности его родителей — в мещане он попал в возрасте 21 года, вряд ли к этому времени его собственное хозяйство так крепко стояло на ногах, а средств этот переход требовал немалых. Мещанин Яков Дмитриевич (96.20КБ) Такие случаи были вполне нормой: государственные крестьяне с выполнением некоторых условий могли стать мещанами. Моему предку, кстати, повезло — уже в следующем году требования ужесточились и подавать прощение о переводе могли только выполнившие рекрутские обязанности, то есть «отдавшие долг родине», как это сейчас называется.

Интересно, что Яков Дмитриевич в город не перебрался, а так и жил в Старой Письмянке. Его потомки тоже — в 1900 они обрабатывали землю: сеяли рожь, овёс, горох, коноплю. То и другое было против правил, но так же встречалось: крестьяне, бывало, переходили в мещане, чтобы не платить крестьянские подати, но в город не переезжали и землю всё-таки не отдавали — получая с неё доход. Занятия земсковых (90.82КБ) Впрочем, мои Земсковы всё же городские профессии освоили, параллельно с крестьянской деятельностью — в 1900 году видно, что Трефил Антонович ездил на заработки в Пермскую губернию — год работал там коновалом (ветеринаром), а два его племянника (на скане) ездили в Уфимскую — один работать приказчиком (менеджером), а второй коновалом, как и дядя.

Вряд ли они были коновалами от случая к случаю, ведь эта профессия требует обучения и практики. Скорее всего кто-то из них, а может и оба, работали в Бугульминском земстве (что и определило фамилию), лишь иногда выезжая на подработку (или на «курсы повышения квалификации») в другие губернии.
Комментировать
16 ноября 2014 17:55

Defer в PHP

В языке «Гоу» есть превосходная конструкция «defer», которая запускает переданное ей выражение, когда заканчивает выполняться текущий блок. Вот как это может выглядеть:
profile, e := os.OpenFile(oProfile, os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0777)
if e == nil {
    defer profile.Close()
    profile.WriteString("0:   0  0 0 0 ;\n0:   1  8 0 2 ;\n0:   9 63 0 2 ;\n0:   1 63 2 1 ;\n0:   1 63 1 0;")
}
Это маленький пример из одной моей реальной программы. Как только управление покинет блок «if», вызовется метод Close у profile и файл автоматически закроется. Пример маленький и всех удобств не раскрывает, но надеюсь они, как на ладони: если у вас много условий при которох управление может покинуть блок, то вам не нужно уничтожать все свои ресурсы в каждой такой ситуации, достаточно их один раз описать через «defer» и всё сработает само.

Одна из причин любить «Гоу».

В «Пайтоне» есть похожая концепция: у класса могут имется «магические» методы «__enter__» и «__exit__», которые срабатывают, соответственно, на входе и выходе в блок, но блок не любой, а специальный:
with open("/etc/passwd", "r") as f:
    print(f.read(10))
Объекты, у которых реализованы оба этих метода, могут быть вызываны из специальной конструкции «with», при входе в которую будет вызван метод «__enter__», при выходе — «__exit__», это нагляднее, чем в «Гоу» и тут невозможно забыть освободить какой-то ресурс, но недостаток в том, что надо реализовать эти методы, для какой-то внешней библиотеки нельзя каким-то образом автоматически вызвать тамошний эквивалент «free», придётся всё обернуть в класс.

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

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

В общем, хорошо, что в ПХП нет такого встроенного класса, его бы сразу начали активно использовать, что привело бы к куче сложноуловимых «багов». Вот это средоточие зла:
class Defer
{
    private $funcs;

    public function __construct(callable $func)
    {
        $this->funcs = [$func];
    }

    public function __destruct()
    {
        foreach ($this->funcs as $func) {
            call_user_func($func);
        }
    }

    public function __invoke(callable $func)
    {
        array_unshift($this->funcs, $func);
    }
}
Очень простой класс с тремя методами. Как же его можно использовать? (никак! не надо! нет!). Пример ниже, он, конечно, мегасинтетический, но что вы хотите от «совы» в семь утра, у меня ещё и мозг-то не работает.
function doSomePHP()
{
    for ($i = 0; $i<10; $i++) {
        $fp = fopen("/tmp/$i.tmp", "wb");

        $zone = new Defer(function() use ($fp) {
            fclose($fp);
        });

        // кстати, обратите внимание, а вот так можно сделать в Hack — это диалект PHP, здорово же:
        // $zone = new Defer(() ==> fclose($fp));

        // тут какой-то код и куча проверок, причём мы можем выйти в любой момент, а fclose вызовется

        fwrite($fp, "My number is $i");
    }
}
Что тут происходит? У нас тут, как видно, цикл, в котором открываются на запись 10 файлов, в каждый из них выводится некая строка, а посередине торчит неиспользумая переменная с моим новым объектом. В объект передаётся функция, которая будет вызываться (посмотрите на код объекта) в деструкторе. Как только переменная zone перетрётся (следующим её значением, у нас же цикл или при выходе из функции), объект будет помечен к удалению и когда-нибудь удалится.

Важно заметить две вещи: переменная, содержащая объект, должна затираться в нужное нам время и деструктор вызовется обязательно, но когда — мы не знаем. Первое — недостаток, второе — фатальный недостаток. Оба неустранимые.

Для чего нужен третий метод в класс Defer — «__invoke__»? В языке он появился для поддержки анонимных функций и вызовется, если попытаться вызвать объект, как функцию.

Тут я хочу кивнуть на ещё один хороший язык программирования — «Раст». В нём есть такая интересная штука как «Named lifetimes», не знаю как это перевести литературно, скажем «именованный срок жизни».

Напрягитесь, сейчас будет немного тяжело.
fn select<'r, T>(shape: &'r Shape, threshold: f64,
                 a: &'r T, b: &'r T) -> &'r T {
    if compute_area(shape) > threshold {a} else {b}
}
Выше код на «Расте», взятый из руководства по языку. Тут «'r» — это именованный срок жизни. Сроки жизни всех переменных, помеченных одним именем должны пересекаться. Очень грубо говоря, это значит, что язык не должен уничтожать одну переменную с тем же именем жизни раньше других. Пример выше вызовет ошибку компиляции — видно, что возвращаемое функцией значение пытается пережить остальные переменные с тем же именем — они-то уничтожатся при выходе из функции.

Это позволяет хорошо мирить в языке указатели и сборку мусора, а так же, уже на этапе компиляции ловить некоторые сложные ошибки.

Вернёмся к ПХП. Тут, конечно, всё и близко не так и цели другие, но немного похоже. Упомянутый мною метод был введён для постоения цепочек уничтожения. Например нам надо освободить ресурсы в определённом порядке (например, нужно прибрать за собой временные файлы и только потом убрать блокировку с lock-файла):
function doAnything()
{
    $fp = fopen('/var/lock/do.lock', 'r');
    flock($fp, LOCK_EX);

    $zone = new Defer(function() use ($fp) { fclose($fp); });

    // делаем что-то полезное от чего остался мусор

    $zone(function() use ($tmpfiles) { array_map('unlink', $tmpfiles); });

    // делаем что-то ещё
}
Функции-уничтожители вызовутся в порядке обратном объявлению и каждая последующая не вызовется раньше предыдущей. Вот эта связность и напомнила мне имена жизней в «Расте», хотя аналогия слабоватая, конечно.

В общем, я считаю, что языку ПХП пошла бы на пользу языковая конструкция, близкая к defer «Гоу», поскольку она очень гармонично решает проблемы процедурного программирования — эффективной работы с процедурным АПИ внешних ресурсов (а в ПХП оно почти всё такое).
4 комментария
14 ноября 2014 07:40

PHP: хинтование возвращаемого типа

Наконец-то в скором времени (вероятно в седьмой версии) в ПХП появится указание типа возвращаемого значения. Голосование по предложению добавить в язык эту возможность завершилось с огромным перевесом: 49 «за» и 3 — «против».

Вероятно уже в следующем году в языке можно будет указывать возвращаемый тип довольно стандартным образом:
function foo(): array {
    return [];
}
Такой синтаксис встречается во многих языках и понятен сразу. Указать можно будет (стандартно для ПХП): имя класса, «array» или «callable». Надеюсь, когда-нибудь можно будет указать и скалярные типы. Пока нет возможности задать тип так, чтобы вместо него можно было вернуть null (иногда это очень удобно), но есть некоторая вероятность, что и эта возможность в языке появится.

Пара слов для чего это надо: во-первых, больше ошибок будет отлавливаться при обращении к таким функциям или методам, во-вторых, специализированные редакторы кода смогут больше сказать программисту о том, что он собирается вызывать, в-третьих, вероятно на этом можно построить какие-то оптимизации при компиляции в байт-код и ещё больше ускорить язык.
4 комментария
13 ноября 2014 09:12

Трефил Антонович Земсков

Решил тут на днях одну головоломку. Есть у меня такой предок — прапрапрадед Трефил Антонович Земсков, коновал, родился 2 марта (или 19 февраля по-старому) 1848 года в Старописьмянской слободе Бугульминского уезда. Головоломка заключалась в том, что до него всё дерево простраивалось идельно, а вот после давало сбой — несмотря на наличие всех бумаг, всё было глухо. Трефил Антонович (50.52КБ) Не было никакого Трефила ни в переписи 1850 года, ни в подворках 1864-го. Была ещё такая подробность — в бумагах 1900 года (снимок выше) Трефилу 56 лет, а жене его — 55. Что даёт 1844 и 1845 года соответственно, а по моей информации его жена родилась в 1850—51, т.е. он должен быть примерено 1849—50 гг. Вообще, не редкость когда возраст так «плавает», почему-то особенно у старшего поколения в бумагах 1900-го года — видимо традиции отмечать дни рождения у крестьян не было и года свои сообщали примерно как помнили. А вот относительный возраст «я старше своей жены на год» вряд ли сложно было запомнить.

Тем не менее, отметим этот факт. Второй факт, на которым надо обратить внимание — как записано имя моего предка в метриках его детей. Чего там только нет — Трифон, Трофим, Трофимий, Трефил. Изгалялись как могли, то ли мой предок говорил очень невнятно, то ли его имя переписывалось откуда-то, где написано было очень неразборчиво. Я не в первый раз встречаю такие «трансформации», так что меня это не особо удивляет. «Плавает» всё — фамилии (Широкобоков → Широбонов), отчества (Елисеевна → Емельяновна), имена (Вонифатий → Нефёд).

Только сложив эти все вещи вместе можно найти семью моего предка. Вот она в 1850-м году: Трефил Антонович Земсков (27.50КБ) Как видно, это семья Антона Яковлевича, у которого три сына: Поликарп (который потом достоверно женился на Ксении Фадеевне), Тараc (его будущая супруга — Прасковья Гавриловна) и Перфил, который позже под таким именем нигде не появляется, зато есть совершенно созвучный ему Трефил Антонович подходящего возраста.

И вот посмотрите в семейном списке 1864 года мы видим первое искажение года рождения (записан 1847 вместо достоверно известного 1848) и само имя уже легко прочитать как «Трофимъ». Трофим? Антонович Земсков (44.56КБ) Что видимо один раз и произошло, а потом закрепилось. Ещё одна загадка благополучно разрешилась!
11 комментариев
9 ноября 2014 21:45

Чернение зубов

Как-то очень давно я прочитал об обычае чернить зубы у японцев («Охагуро»), удивился, но японцы по нашим меркам вообще странные, как инопланетяне. И тут оказывается, то же существовало и в России, причём у отдельных народов — до начала 20 века:
Довольно широкое овальной формы лицо, слегка скуластое, прямой нос, иногда довольно большой и с горбинкой, широкий разрез выразительных глаз, изредка поставленных косо, смуглый здоровый цвет кожи и сравнительно бедная растительность на лице придают  татарам довольно приятный вид. Татарки густо мажут лицо белилами, румянами, сурьмят брови и ресницы и чернят зубы.
Это «Географический очерк Сызранского уезда» Н. О. Рыжкова.

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

Кстати, в названии «таш-калы» всех моих знакомых татар смущает вторая часть. Возможно название записано неверно, либо слово уже не употребляется. Вряд ли много русских значит что такое «поелику» или в каких таких «сусеках» дед с бабой в сказке наскребли Колобка.
1 комментарий
9 ноября 2014 18:17

Русские имена на «Маке» после разархивации ZIP

Я вчера скачал несколько десятков зип-архивов, внутри которых тысячи файлов с русскими именами. Скачивал через браузер «Сафари» и этот поганец, как у него водится, услужливо мне их распаковал после скачивания. У меня время от времени вылетает из головы эта особенность, в общем, я получил кучу папок и файлов, которые выглядят вот так: Кракозябры (17.71КБ) Эта давнишняя проблема «Мака», проистекающая из родовой травмы зип-архивов — этот архиватор родился ещё во времена ДОСа и для совместимости сохраняет русские имена ещё в той, ДОСовской кодировке. Правда, лет 15 назад я ковырял формат и увидел, что в каких-то метаданных лежит оригинальное имя, но должно быть «Мак» про это поле ничего не знает.

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

Способ употребления такой: складываете всё испорченное в какую-либо папку и запускаете внутри fixzip. В процессе «ремонта» он будет показывать на экране восстановленные имена. Два раза запускать нельзя — имена снова будут испорчены.
12 комментариев
6 ноября 2014 09:45

Стрелковы-Шапкины

Есть у меня предки со стороны мамы — Стрелковы, которые по ошибке одно время были Шапкиными, я про это писал недавно. Эти ребята сводят меня с ума. Похоже в этой ветке близок тотальный тупик, бумаг нет, но и в ближайших поколениях я ещё не разобрался до конца. Вот так пока выглядит моя карта размышлений: Стрелковы (84.35КБ) Рабочая версия пока такова. В деревне Никольская (она же — Старая Чиркова) жил-был некий Матвей, времена это были стародавние — начало 19-го века, крепостное право ещё не отменили и был тот Матвей, по всей видимости, крепостным у дворян Шулешкиных (либо у Чириковых, см. ниже) — в тех краях они владели несколькими деревнями и сёлами. Даже почти век спустя деревенька, где он жил, была маленькая — в 1889 году там было всего каких-то шесть дворов: Старая Чиркова (63.81КБ) Старая Чиркова входила в состав Дымской волости Бугульминского уезда. На современной карте мне её вообще отыскать не удалось, на спутниковых снимках что-то похожее на дома виднеется, но я не уверен. Впрочем нет её и на картах Генштаба 1987 года.

У Матвея родились несколько детей — Роман, Степан и Егор, наверняка были и ещё (в те времена рожали около десятка детей), но их имена мне неизвестны. Степан Матвеевич родился в 1838 году, на год раньше своей будущей супруги — Анастасии Евфимовной. Оба они были крестьянами госпожи Шулешкиной.

В октябре 1856 года они поженились и через некоторое время, в августе 1858 у них родился их возможно первый ребёнок — Симеон, за ним Алексей, скончавшийся от кори (1861—1862), потом — Евгения (1862—1862), прожившая всего неделю, далее — Павел (1863), Тимофей (1874—1874), скончавшийся на девятой неделе от младенческой и последний известный мне ребёнок — Василий (1877). Анастасия Евфимова прожила недолго — 46 лет, скончавшись в марте 1884 года от рвоты.

Уверен в период между 1863 и 1874 были и ещё дети, но пока их обнаружить не удалось, так же как и запись о рождении Павла Степановича — моего прямого предка. Интересно, что Евгения (1862) родилась в Старом Чиркове, а Тимофей (1874) — уже в деревне Семыкина. Из чего, по всей видимости, надо сделать вывод, что их родители в этот промежуток жили в каком-то неизвестном мне населённом пункте, записи о котором мне ещё не встречались. Переезды (144.63КБ) Откуда они переехали в Семыкина неясно, но эта деревенька находилась в той же Дымской волости, хотя была несколько покрупнее — 40 дворов. Видимо после отмены крепостного права в 1861 году появилась возможность улучшить жилищные условия.

Их сын и мой прямой предок Павел Степанович «всплывает» уже совсем в другом месте — деревне Ново-Исаково Спасской волости, где он работал чернорабочим у владельца деревни — Шулешкина Александра Трофимовича.

После смерти Шулешкина в мае 1901, владение деревней принял Анечкин Валерий Иванович, а сын Александра Трофимовича — Николай Александрович застрелился в августе 1907 года в возрасте 38 лет.

В Ново-Искове Павел Степанович с супругой благополучно рожают нескольких детей, в том числе моего прадеда Степана Павловича (1902—1941). Интересно, что контактов со своими братьями и сёстрами Павел, видимо, не поддерживал — в крёстных его детей встречается лишь один его племянник — Галактион Егорович Стрелков, крестьянин деревни Семыкиной.

Главного доказательства — записи о рождении Павла Степановича у меня нет, но по всему видно, что семья определена верно — внутри она собирается вместе через общую фамилию, отчества и крёстных, а с моим предком объединена территориально и через Галактиона Егоровича — уж такое совпадение совершенно немыслимо. Но всё хочется разобраться — где же всё-таки родился Павел Степанович и где мыкались мои предки в период между Старым Чирковым и Семыкиной? Чириково (117.42КБ) Кстати, утром, на следующий день после написания заметки, выяснил очень примечательный факт — как называлось Старое Чиркова в 1805 году, то есть во время рождения моего предполагаемого предка Матвея. Прилагательного «старый» в её названии ещё не было, но и фамилия была другая — деревня Чирикова, а не Чиркова. Взгляните — это населённый пункт внизу в середине рисунка — справа чуть выше от него Дымска (на карте выше — мусульманское село Дымская), слева вверх по реке — Верхосулье (на более свежей карте — село Сула).

Это название безумно важно, потому что в другом архиве находится перепись 1811 года именно по этому названию, и где-то среди перечисленных там 21 семьи возможно присутствуют и мои предки. К сожалению, Матвея там нет (правда низ одного листа виден явно не до конца), но это ничему не противоречит, так как Матвей  мог родился до 1819 — по возрасту его известных детей подходит. Надо искать следующую перепись — 1834 года. Чирикова (48.40КБ) Кстати, сразу стаёт понятным название, посмотрите на скан. Там написано «сельца Чирикова покойного генерал-майора Чирикова детей Екатерины и Софии (или Марии, не разобрать) дворовых — 50, крестьян — 293». Бумага датирована 1795 годом.

А ещё есть книга «Бугульминское Земство. Дела, тревоги и мечты» В. Г. Сальникова, там деревня Старая Чиркова тоже упоминается и сказано, что в 1859 и 1900 годах она существовала, а в 2004 — нет.
12 комментариев
4 ноября 2014 19:43

Спать сидя

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

Спасть на таких лёжа затруднительно — в них спали полусидя, подкладывая гору подушек. Узнал ли я тогда это в первый раз? Шевельнулся какой-то червячок узнавания, но я не уверен. Недавно немного почитал на эту тему — этот обычай был распространён в Европе до начала 20-го века, а в Россию его привёз Пётр Первый. Точную причину рождения сна сидя сейчас не установишь, но «Первый канал» утверждает, что бывают чисто медицинские причины, возможно корни там.

Теперь обращаю внимание на размер кроватей в домах-музеях. Позавчера ездили с женой в Елабугу — посмотреть на город, побывать в музеях, были и в доме Бродельщиковых, где прожила 10 дней и повесилась Марина Ивановна Цветаева.

Постель Цветаевой, на мой взгляд, нормального размера, а вот Бродельщиков-старший, немаленький человек — кузнец, спал на довольно коротком сундуке. Сотрудница музея в ответ на вопрос, рассказала, что под кузнец подкладывал табуретку, но основная причина как он там размещался — спал полусидя. Сундук (113.11КБ) Как нам сказал экскурсовод, это было связано с тем, что спать лёжа боялись — считалось, что так лежат только покойники. То же самое мы слышали и на экскурсии в Андорре. Любопытно, что в Елабуге-то речь идёт о сороковых годах прошлого века — недавнее совсем время.

То ли в семье кузнеца были насколько живы прадедовы предрассудки, то ли сотрудник музея ошибается и он спал так просто из нужды — места больше не было.
3 комментария
4 ноября 2014 16:56

Звукосниматели из «Монтан»

«Монтана» (83.14КБ) Фото взято с форума «Клуб реконструкции войны в Афганистане 1979-1989».

Моё поколение помнит электронные часы «Монтана» — предел мечтаний мальчишек в постсоветских школах, умевших протрескивать несколько мелодий (кажется, до 16-ти в старшей модели). Никогда не слышал, чтобы с из них делали звукосниматели для гитар:
Я, когда в школе учился, играл в «каморке, что за актовым залом». Гитара Урал была настолько х███ая, что мы предпочитали играть на обычных акустиках с приклеенными к ним самодельными звукоснимателями. Выглядели, конечно, не так брутально, как с Уралами, но на акустиках можно было хоть нормально играть. Звукосниматели делали из динамиков от электронных часов «Монтана», паяли к ним два проводка и лепили на скотч на переднюю деку. Получался довольно чувствительный звукосниматель, кстати.
И хорошо, что не слышал, меня в детстве удар бы хватил от такого известия.
2 комментария
4 ноября 2014 09:19

Прототип Айфона

Прототип Айфона (62.21КБ) Выше — первый прототип Айфона, который назывался «Пурпурный» («purple»), так он выглядел в августе 2005 года, примерно за год до выхода окончательного варианта.
5 комментариев
31 октября 2014 14:03

Как скачать документ из АИС ЦГАСО-2

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

С просьбой что-то с этой проблемой сделать, мне написало около десятка человек, сегодня у меня наконец дошли руки посмотреть что изменилось. Как и в прошлый раз надо открыть окно консоли браузера и запустить скрипт (я проверял его в «Хроме»). Плохие новости в том, что скрипт будет работать относительно неспешно — 400 страниц обрабатывается примерно за 5—6 минут.

В конце работы в консоли будет длинная строка, начинающаяся с «dxo.itemsValue» и заканчивающаяся на «];». Её, как и в прошлый раз, надо будет скопировать в файл и передать в параметрах программе.
!function () {
    var id = '[id$=seadragonContainer] div div';
    var bt = '[id$=ForwardBtn]';
    var pages = {};
    var o = document.querySelector(id);

    !function _observe(undefined) {
        var ob = new MutationObserver(function() {
            var imgs = $(id+' img[src*=Pages]:first');
            if (imgs && imgs[0]) {
                var page = imgs[0].src.match(/id=([^&]+)/)[1];
                if (pages[page] == undefined) {
                    pages[page] = true;

                    ob.disconnect();

                    var next = $(bt);
                    if (next && next[0]) {
                        _observe();
                        next[0].click();
                    } else {
                        console.clear();
                        console.log("dxo.itemsValue=['" + Object.keys(pages).join("','")+"'];");
                    }
                }
            }
        });

        ob.observe(o, { childList: true, attributes: true, subtree: true });
    }();

    o.setAttribute('start', true);
}();
Вообще, можно было бы заморочиться и сильно ускорить сбор данных, но я не буду этого делать — меня результат вполне устраивает.

Внимание: скрипт должным образом я ещё не протестировал (просто не успел), так что на корректную работу пока не рассчитывайте!
20 комментариев
27 октября 2014 20:57

Кодировка JSON

Я всегда полагал, что кодировка данных в формате JSON («джейсон») должна быть ЮТФ-8. Оказывается в стандарте указано только, что она должна быть Юникодом. Более того, в стандарте указаны способы определения разных типов кодировок.

Так как первые два символа данных в формате «джейсон» всегда будут в первой половине таблицы ASCII (в самом деле, как не крути, первый символ — «{» или «[», а далее кавычка, буква «f» («false»), «n» («null»), «t» («true») или цифра), то легко угадать в какой именно кодировке встретился Юникод:
           00 00 00 xx  UTF-32BE
           00 xx 00 xx  UTF-16BE
           xx 00 00 00  UTF-32LE
           xx 00 xx 00  UTF-16LE
           xx xx xx xx  UTF-8
Как видите каких-либо маркеров для ЮТФ-8 не выделено, то есть во всех остальных случаях считается, что кодировка ЮТФ-8. Я посмотрел встроенные парсеры ПХП и Пайтона, они ни с какими другими кодировками Юникода, помимо ЮТФ-8, по всей видимости, не работают, то есть нарушают стандарт.
Комментировать
25 октября 2014 20:13