Previous Entry Share Next Entry
photo25

Живая Жизнь и мёртвая буква. Мемуар об адресах (репост)

Хорошая, годная, познавательная история.

Оригинал взят у krylov в Живая Жизнь и мёртвая буква. Мемуар об адресах
Читая блог golosptic, наткнулся на статью, которая меня, как бы это сказать… Не то чтобы заинтересовала. Скорее – «заскрипели ржавые скрепы в голове».

Статейка с Хабра про почтовые адреса. Перечисляющие проблемы, которые я решал в году 96-м примерно. Ну то есть до нашей эры.

А именно. Я занимался системами поддержки принятия решений (СППР). Технология, по которой тогда мы это делали, была – на тот момент – довольно-таки передовой. Сейчас всё это перестало быть актуальным: удавили как всё русское. Однако, повторяю, на тот момент это была не просто работающая, но и продаваемая система.

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

Так вот. Мне поручили простую вроде бы вещь: создать карточку для внутрироссийского (sic!) адреса. Не почтового – просто адреса. Но – для ВСЕХ вариантов. Заказчиками был ЧОП, которого интересовало, чтобы адрес можно было найти, скажем, по надписи на конверте. Или по внятному разъяснению. Или по нескольким невнятным. Но найти. А также учесть уже имеющийся адрес, с пониманием того, что это за строение такое, это им было тоже важно. И чтобы было известно, как этот адрес звучал раньше.

В общем, дали мне в помощники знающего человека и пару справочников, и я сел разбираться.

В принципе, многие вещи, связанные с почтовыми адресами, я знал – поскольку имел опыт массовой рассылки открыток в системе католожной книготорговли (т.н. «Книга-почтой»). Соответственно, я знал, насколько важен индекс, что номера домов бывают невероятно причудливыми, что р-н указывать ну очень желательно, а также в чём разница между с., д., п. и п.г.т. (не удивляйтесь, из этих мест в некоторых случаях можно было выписать обратно в Москву довольно редкие книжки). Так что тот факт, что номер дома – это ни в коем случае не число, а текстовая строчка, мне было понятно с самого начала. Правда, я-то знал, что бывают номера домов через дефис (типа д. 1-3), о чём авторы статьи на хабрахабре, похоже, не ведают. Равно как и о том, что адрес типа д. 11/1 может означать очень разные вещи – например, что это дом 11 строение 1, или что это корпус 1, или что это дом на пересечении улиц, и по одной из них он 11, а по другой – первый, а также и то, что этот дом ПРОСТО имеет номер 11/1, вот так его назвали он один как перст, а почему так называется – лишь один Бог ведает. Равно как и то, что адрес типа 5-я ул. 70-летия Октября д. 13А корп. 5/1 стр. 7 кв. 12Б – это не бред сумасшедшего, а нормальный такой адрес. Как и тот факт, что физически этот дом может находиться совсем даже не на 5-й улице 70-летия Октября (так его нет, сколько по этой улице не бегай), а где-то в районе 2-го Старомаломолозивного переулка, который не дай бог перепутать со 2-м Старомаломолозивным проездом, который вообще на другом конце города. Этим меня уже удивить было сложно. Как и тем, что бывают дома без улиц, например. Или что, пишучи в какую-нибудь отдалённое село, в некоторых случаях совершенно бессмысленно указывать дом (хотя формально он есть), а надо писать «село Верхняя Щельга, Кузьмичёву Василию Петровичу (агроному)». Потому что бывшего агронома, а ныне продавца в книжно-газетном ларьке при станции Василь-Петровича все знают, а то, что он проживает в доме 10, не помнит никто. Включая, может быть, и самого Василь-Петровича.

Но опытный товарищ, с которым я работал, раскрыл мне глаза на всю глубину моего невежества. Выяснилось, что реально я не знают ни-че-го. Потому что даже в жилфонде скрывались бездны. Например, всякие ужасы с номерами квартир – особенно в домах, где сохранились остатки коридорной системы, в общежитиях (особенно старых) и прочих таких местах. Или – что дом может иметь не только подвалы и чердаки (это-то я знал отлично, но что они ещё и нумерованы – нет, не догадывался), а также многочисленные пристройки, хозстроения, и все они имеют адреса, вплоть до трансформаторной какой-нибудь будки. Или, скажем, голубятни. У вас где ближайшая голубятня? У меня – рядом с домом.

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

Но всё это меркло по сравнению с проблемой переименований. Реально любой адрес существует во времени, от такого-то числа по такое-то. Потом он может быть изменён, по миллиону причин, из которых переименование улицы – далеко не самая распространённая. Был дом 11/7, а стал 9Б. Почему? А вот так. Мой собственный дом превратился в результате какой-то химии из 4/6 в 4а. Хорошо хоть корпус не поменялся… Но это я имел в виду, так что с самого начала делал не карточку, а множественный связанный реквизит, завязанный на поле «промежуток времени». У меня хватило ума не встраивать проверку по временной шкале, а давать шкалам пересекаться, при этом вешая на них табличку с экспертными оценками достоверности.

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

Тут дело пошло веселее, так как появилась возможность вводить неформальные адреса – то есть те, по которым дома реально ищутся. Добавив несколько полей, включая такие, как «цвет» и «этажность», я сделал возможным ввод адреса вида или «жёлтая девятиэтажка на Кислопрудной». Товарищ, с которым я работал, эти новведения чрезвычайно одобрил со словами «вот теперь я вижу, что от вас толк есть». Я обрадовался и ввёл реквизит связи «поблизости от» с возможностью протянуть его к какому-нибудь известному адресу. Реквизит связи тут же расцвёл красками: «за», «перед», «справа», «слева», «вверх» и «вниз». Небольшая доработка позволила вводить данные вида «по Хитроклювской третий дом вверх от магазина «Весна» (предполагалось, что адрес «Весны» известен).

Отдельной песней были наименования строений. Их оказалось ну очень много. Особенный ад разверзся вне городских пределов. Например: я и раньше знал, что дача, садовый домик и дом в деревне – это разные типы строений с разным правовым статусом, но опытный товарищ и здесь явил мне какие-то пропасти, недра и хиатусы, особенно связанные с хозяйственными строениями. Словарь рос как на дрожжах. Не помню, вводил ли я определение «халупа», но был близок к этому. Учитывая же, что тип строения мог меняться в зависимости от разного рода махинаций и манипуляций, получалось нечто монструозное. Но и это наша системка перемалывала.

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

Я ещё там что-то подклеивал и подпиливал, а под конец, учтя вроде бы уже всё мыслимое, всё-таки оставил большое текстовое поле, привязанное к идентификатору – для описания тех подробностей, которые моя тщательно выстроенная сетка не отлавливала.

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

Так живая административно-хозяйственная жизнь в очередной раз посрамила интеллигентскую рефлексию, тщащуюся всё по полочкам разложить.

)(


  • 1
swamp_agr July 16th, 2015
Золотые слова.
Пару лет назад немножко коснулся бездны адресации в рамках адресной системы одного небольшого города. В статье какой-то ад написан, посмотрел API и тихо ужаснулся. Может, правильно, что не надо писать на хабр?

Edited at 2015-07-16 09:57 am (UTC)

Живая Жизнь и мёртвая буква. Мемуар об адресах (репост)

livejournal July 16th, 2015
Пользователь sergey_cheban сослался на вашу запись в своей записи «Живая Жизнь и мёртвая буква. Мемуар об адресах (репост)» в контексте: [...] Оригинал взят у в Живая Жизнь и мёртвая буква. Мемуар об адресах (репост) [...]

sergey_cheban July 16th, 2015
Вот ещё в тему. Про время. http://habrahabr.ru/post/146109/

zhengxi July 16th, 2015
Для времени ещё есть нерешённые проблемы.
Например, "принято" для конвертации времени из GMT в MSK применять сегодняшнюю разницу между часовыми поясами.
Даже к датам в прошлом (а разве какая-то либа хранит не только сегодняшнюю разницу но и всю историю административного перевода стрелок в каждом городе? ну или хотя бы в каждом крупном аэропорту?) и в будущем.

Edited at 2015-07-16 12:03 pm (UTC)

sagarasousuke July 16th, 2015
UTC! а дата-время события известы в таймзоне с декретным временем таким-то.

zhengxi July 16th, 2015
Самолёты по местному летают. Да и много чего ещё по местному делается.
И скажем в Марокко до 2012 года местное время равно UTC, а после уже нет.

zhengxi July 16th, 2015
И вы будете смеятся, но есть известные интернет-проекты (например Яндекс.Метрика) в которых нельзя выбрать UTC.
Только разные города, причём среди них нет ни одного с UTC (те ни Рейкявика ни Монровии).
Обработка данных скачанных из Янденс.Метрики (с приведением их к общей таймзоне без декретного времени, хоть бы и к UTC) предполагает костыли для решения этой проблемы: не только летнее или зимнее время было тогда, но и до или после указа президента об изменении таймзон.

Edited at 2015-07-16 12:31 pm (UTC)

sagarasousuke July 16th, 2015
и все пики едут к чертям?
тогда только ручные поправки вводить на диапазоны очередных "туды-сюды декретов", и пересчитывать в UTC (а диапазоны выявлять опытным путём... когда закон формально вступил в силу, а когда таймзоны на конкретном сервере обновились - ПЦ, небось даже в рамках одного набора размазываются?)

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

P.S. Ага, хвост ответа совпал с дополнением комментария %)

Edited at 2015-07-16 12:55 pm (UTC)

zhengxi July 16th, 2015
Я на это и пытаюсь намекнуть: единая база туды-сюды декретов, в мировом масштабе, была бы зело полезна.
Только вряд ли кто её сделает и будет поддерживать.
Разве что какой-нибудь ЧОП закажет...

sagarasousuke July 16th, 2015
эт` точно!

sagarasousuke July 16th, 2015
причем там тоже будет многозначность "по версии Китая, который Тайвань", и "по версии КНР"

justy_tylor July 16th, 2015
https://en.wikipedia.org/wiki/Tz_database
Используется в большинстве операционок.

zhengxi July 16th, 2015
Супер! Спасибо

sagarasousuke July 16th, 2015
мысль вслед - а если дать к статистике доступ левому аккаунту зарегистрированному с таймзоной чего-нибудь нейтрального и без летнего-зимнего сдвига (Исландия и т.п.)? На случай если там внутри таки UTC, а пересчитывает "на лету" под пользователя...

sergey_cheban July 16th, 2015
https://en.wikipedia.org/wiki/Tz_database
The database attempts to record historical time zones and all civil changes since 1970, the Unix time epoch.

А вот с будущим всё плохо: наши президенты играют со временем не хуже Гая Юлия Цезаря и Октавиана Августа. Лично я, видя такое дело, начал потихоньку привыкать к UTC.

109 July 16th, 2015
> Даже к датам в прошлом (а разве какая-то либа хранит не только сегодняшнюю разницу но и всю историю административного перевода стрелок в каждом городе? ну или хотя бы в каждом крупном аэропорту?) и в будущем.

просто хранить две даты, local time and utc. тогда историю таймзон хранить не надо. денормализация.

black_eric July 16th, 2015
Супер. Утащу к себе. Глядишь, когда-нибудь пригодится.

belezbar July 16th, 2015
Вот это, понимаю, подход!

Живая Жизнь и мёртвая буква. Мемуар об адресах (репост)

livejournal July 16th, 2015
Пользователь black_eric сослался на вашу запись в своей записи «Живая Жизнь и мёртвая буква. Мемуар об адресах (репост)» в контексте: [...] Оригинал взят у в Живая Жизнь и мёртвая буква. Мемуар об адресах (репост) [...]

vit_r July 16th, 2015
Это зависит от организации общественной жизни. Когда чиновникам что-то нужно, они это пронумеровывают в обязательном порядке.

juan_gandhi July 16th, 2015
Хороший текст.

С телефонами бывают похожие проблемы, но не настолько.

А еще если брать адреса по всей планете. BBC, Bushhouse, London. Ну или по-японски, где нужно указывать чоме. И т.д. Мир бесконечено.

nponeccop July 16th, 2015
Имена ещё.

juan_gandhi July 16th, 2015
Имена это каюк. Отличить Bob E. Rogers IIIrd от Robert Rogers...

(Anonymous) July 19th, 2015
история действительно познавательная и очень грустная.

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

  • 1
?

Log in

No account? Create an account