От ЭЦП к XVIII веку

В конце прошлого года был принят и подписан закон № 476-ФЗ, которым внесены поправки в федеральный закон «Об электронной подписи». Мне, как человеку, получившему ЭЦП ещё на универсальную электронную карту (УЭК), было особенно интересно, чем это закончится.

Каким образом размер финансового обеспечения УЦ, выросший с 30 до 100 и со 100 до 200 млн. ₽, позволит предотвратить мошенничества, не очень понятно. Такие действия совершают сотрудники организации, которые плевать хотели на размер её финансовой ответственности. Теперь же собственники должны будут и раскошелиться на страхование ответственности в увеличенном размере, и одновременно каким-то способом ужесточить внутренний контроль, то есть ещё больше увеличить расходы.

Закончилось всё предсказуемо — ужесточением требований к удостоверяющим центрам и ростом цен. ЭЦП на «красном свистке», за которую я в мае 2020 заплатил около 1500 руб., сейчас мне тот же удостоверяющий центр (УЦ) предлагает купить… за ≈6400 руб. Если в регионах цены поднялись на столько же, то это будет существенный шаг назад в быстром безбумажном обороте; мало кто в регионах, где зарплата около 30 тыс. считается хорошей, готов заплатить 5000 ₽ в год, а значит вместо быстрого электронного мы вернёмся в медленный и более дорогой бумажный — то есть поближе к веку XVIII-му.

Бастиа

Правительство Российской Федерации запретило ввоз дешевого бензина.

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

Уже очень давно Фредерик Бастиа написал работу «Что видно и чего не видно», в которой вполне исчерпывающе показал, что господин Прогибан, лоббирующий новый закон по запрету ввоза в страну дешёвого металла, приносит убыток в целом, потому что простой Жак принужден платить за металл 15 франков господину Прогибану, вместо того чтобы заплатить 10 за металл ввезённый и оставшиеся 5 — за какую-нибудь местную книгу или иной товар, который в новых обстоятельствах он себе более позволить не может. Следовательно, Жак (или, у нас, Иван) стал беднее, ибо на свои деньги он может позволить себе меньше. Одновременно беднее стал и местный книгоиздатель с автором, потому что у него ничего не купили. Обогатился только господин Прогибан.

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

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

Черный лебедь Фукуямы

Российский совет по международным делам выложил статью «„Чёрные лебеди” глобализации». Есть отличные цитаты.

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

Ну как тут не вспомнить Фукуяму с его «концом истории»? Ну и далее так же:

Во-первых, сторонники «черных лебедей» считают резкие исторические сломы аномалией, а не нормой. Мысль о том, что всего 70-80 лет назад мы жили в мире, где политическая карта постоянно менялась в результате революций, войн и потрясений, кажется теоретикам [чёрных лебедей] чем-то невероятным. Например, то, что мы называем «популизмом» и «недопустимой риторикой», было нормой в мире между двумя мировыми войнами. Почему наш мир — это вечная стабильность, а не, например, состояние между двумя периодами нестабильности, остается не проясненным.

Во-вторых, теория «черных лебедей» подчеркнуто внеисторична. Она исходит из постулата, что вся мировая история осталась в прошлом, а после 1960 или 1970 гг. наступил какой-то принципиально иной мир, в котором нет и не может рисков, революций, войн, потрясений, амбициозных и агрессивных политиков. Должно наступить «вечное спокойствие», в котором любой кризис — это аномальный «черный лебедь». Хотя почему, собственно, после 1970 г. мы должны вступить в мир без кризисов, войн и революций, остается под вопросом.

Теория «черных лебедей» игнорирует метод «обратной проекции»: осознания, что в мире и до нас были общества, считавшие что они достигли «вечной стабильности». В «Век Просвещения» Тридцатилетняя война (1618–1648 гг.) считалась «варварством, которое не повторится». В XIX в. «последней войной» считались Наполеоновские войны, а революции — недопустимой крамолой. (Все это очень напоминает модные концепции о необходимости сохранять стабильность любой ценой и «быть ответственными»). В том же XIX в. общепринятой была идея, что человечество в будущем пойдет по пути науки, счастья и прогресса, а Ф.М. Достоевский, утверждая обратное, казался едва ли не чудаком. Надо ли напоминать, что в последовавшую затем эпоху мировых войн либеральный и относительно мирный XIX в. казался воплощением наивности?

В-третьих, понятие «черные лебеди» означает, что мировой порядок, созданный по итогам Второй мировой войны, — это норма на все времена. Любая подвижка в его рамках, будь то хрестоматийные распад СССР или теракты 11 сентября 2001 г., кажется невероятной и возникшей из ниоткуда. Создатель теории [чёрных лебедей] Нассим Талеб выделил несколько типов заблуждений, приводящих к излишней уверенности в собственной способности анализировать будущее: 1) склонность больше верить в информацию, полученную из своего окружения и/или информационного поля; 2) применение теории игр к реальной жизни; 3) ретроспективная вера в предсказание будущих событий на основании анализа произошедших. Я бы добавил и четвертый, более важный тип — вера в окончание исторических потрясений после Второй мировой войны.

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

Технологии технического авторинга

Довелось мне на днях побывать на собеседовании на должность технического писателя. Естественно, я поинтересовался, как технически построен процесс. А процесс построен следующим образом…

  • Технические писатели делают шаблон в формате MS Word, и отдают его разработчикам (!) для заполнения.
  • После этого переписывают за разработчиками их текст нормальным языком.
  • Версионный контроль за правками отсутствует, версии «хранятся» в именах файлов.
  • В случае необходимости замены большого количества текста вынуждены делать это руками, потому что парсить docx это то ещё удовольствие.

И эта компания много лет на рынке.

Я, скажем мягко, слегка удивился. Какую систему я предлагаю заказчику или работодателю:

  • Система построена на текстовых файлах, хранящихся в репозитории с версионным контролем, ветвлением и прочими положительными сторонами разработки программного продукта.
  • Текстовый формат позволяет отслеживать изменения, а использование регулярных выражений гарантирует как соответствие текста правилам типографики, так и возможность изменить что-то во всех текстах сразу.
  • Документы собираются собственной системой сборки и конвертируются в docx или pdf.

Я для себя выбрал reStructuredText в качестве исходников, его единственный минус том, что нужно написать фильтры для правильной его трансляции в docx.

Advent of Code 2019 D08

Восьмой день оказался для меня сильно проще остальных.

После того, как Санта наконец-то сумел выдать на ускорителях нужную тягу и вырваться из притяжения Юпитера и хаоса вращающихся вокруг него тел, эльфы радостно загрузили Санту новой задачей — нужно заскочить на Марс и перезагрузить марсоход.

Высадившись рядом с ним, выяснилось, что он уже перезагружается и ждёт когда кто-нибудь введёт пароль от его BIOS. Эльф сфотографировал пароль и отправил его Санте через космическую сеть цифровой связи.

К сожалению, изображения, отправляемые через эту сеть, кодируются в особый формат ФАК: формат для асинхронного космоса. Никто из эльфов не может вспомнить, почему так произошло… они отправляют сведения о том, как его раскодировать.

Прочитать, чем это закончилось …

Advent of Code 2019 D07

Чуть раньше я уже писал про Advent of Code — веселый конкурс для программистов, в котором нужно решать задачки и вытаскивать Санту из затруднительных ситуаций.

В задачке седьмого дня я столкнулся с тем, что называется «неполнота документации».

В шестом дне определялись орбиты объектов, но чтобы между этими орбитами переходить, нужно манипулировать ускорителями ракеты.

Прочитать, чем это закончилось (без кода программы) …

Палитры в ConEmu и Vim

Vim — почти идеальный редактор, и особенное удовольствие использовать его в терминале ConEmu, за исключением цветовых схем. Дело в том, что Vim может использовать более 16 цветов только выдавая гору ANSI-кодов, которые терминал должен интерпретировать. Для того, чтобы это хоть как-то пристойно заработало, необходима куча работы — включить соответствующие режимы в терминале, переключить терминал и настроить коды в самом Vim… и после этого наслаждаться очевидно медленной перерисовкой.

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

В качестве pet-project сделаю вот что: попробую написать на Lua генератор таких решений. Подаёшь ему на вход хотя бы первые 8 цветов палитры, он сортирует их по светимости в цветовом пространстве HSL, а также определяет цвет (Hue). После этого эти цвета могут быть расставлены по рангу и определены в схеме Vim как цвета фона или цвета текста. После определения цветовой «направленности» палитры можно создать 8 цветовых акцентов (дополнительные, контрастные, триады и иные цвета), которые полуслучайным образом будут назначены ключевым словам и иным элементам интерфейса.

Advent of Code 2019 D06

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

Я тоже не хотел остаться в стороне от этого развлечения, и дошёл пока с F# до шестого дня.

В Advent of Code задача дня делится на две части, и вторая часть выдаётся после решения первой. Юмор в том, что плохое решение первой половины после выдачи второй часто приходится сильно дорабатывать, если не переделывать полностью.

Первая половина задачи

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

За исключением общего центра масс, каждый объект в космосе вращается ровно вокруг одного другого объекта. В карте орбит каждое такое соотношение обозначается как AAA)BBB, что означает что BBB вращается вокруг AAA.

Перед тем как эту карту использовать, нужно убедиться, что она не повреждена при скачивании. Для этого используются контрольные суммы — число прямых и косвенных орбит в карте. То есть, если A вращается вокруг B, а B вращается вокруг C, то A косвенно обращается вокруг C.

После этого даются тестовые данные.

Прочитать, чем это закончилось (есть код на F#) …

Статистика сахара

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

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

Похоже, кабинетные счетоводы плохо знают свой народ.

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

Я числа 4-го сходил и купил тестю шесть килограммов сахара, сделав свой скромный вклад в статистику.

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

Так что я бы поделил на два как «заедание сладким», так и «снижение потребления крепкого алкоголя».

Полярный мир

Довольно давно (с тех самых пор, как Лавров при каждом удобном случае об этой многополярности заговаривал) я хотел написать о «полярности» мира, но всё как-то руки не доходили. Если цитаты не врут, сегодня президент опять эту тему затронул — в своей пресс-конференции.

Для того, чтобы понимать «ценность» многополярного мира, нужно либо немного подумать, либо почитать что-нибудь из политической философии. У меня в ходу «The Tragedy of Great Power Politics», John Mearsheimer. В принципе, достаточно понимать, что мир — это такая же экология, где каждое государство друг другу и хищник и добыча, конкурируют они за ресурсы и призваны обеспечить собственную безопасность, а в идеале — полное и безоговорочное доминирование. Миршаймер, конечно, развивает эту тему куда детальнее, показывая слабую предсказательную силу иных, в том числе «либеральных» концепций (это очень широкое понятие, охватывающее целый класс теорий), предполагающих, в числе прочего, что внутренние свойства системы (напр., «демократия») изначально лучше других («диктатуры»). Поэтому для либералов есть «хорошие» государства и «плохие»; «хорошие» следуют общим правилам и не начинают войн, а «плохие» — напротив. Более того, «либералы» считают, что скрупулезный подсчёт соотношения сил для объяснения поведения «хороших» государств не важен. «Плохие» государства склонны приобрести дополнительные ресурсы за счёт других государств, но это только потому, что они плохо управляются, так что в идеальном мире, где есть только «хорошие» государства, сила не будет иметь значения.

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

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

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

Мне представляется, что агрессивный реализм куда ближе описывает действительность, хотя влияние факторов выше тоже присутствует. Но основной смысл моего текста состоит в том, что многополярный мир — это мир, в котором война максимально близко.

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

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

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

Возвращаясь к многополярному миру: мир задыхается от мусора и ядов; океаны становятся всё более пустыми из-за загрязнений и хищнического лова; планета окружена кольцом из мусора уже космического. Однополярный мир позволил бы устранить эти проблемы одним запретом, которому бы повиновались все. Многополярный мир ведёт нас к очередной войне и не даёт никаких преимуществ, а угрозы тирании, которые возникают в однополярном мире, для каждого в отдельности столь же реализуемы и в мире многополярном, где каждое государство с его царьком творит что хочет на подведомственной ему территории, и никто не готов вмешиваться. Достаточно подумать, сколько ресурсов бы высвободилось, если бы не нужно было держать оборону друг против друга.

Единственное преимущество многополярности — удовлетворение раздутого самомнения элит.

Rollback RX и образ диска

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

Отсюда и всякие заморочки типа снимков системы и периодического создания резервного образа диска.

Однако, даже снимки диска могут подвести.

В настоящее время у меня на основной машине стоит уже упоминавшийся Rollback RX. При этом в систему категорически не желает ставиться Hyper-V, который нужен мне для практики с Docker, который в свою очередь имеет своё место в программировании и администрировании систем. И поскольку я не знаю, какие детали системы меняет Hyper-V, и может ли Rollback RX ему мешать, я решил попробовать удалить Rollback RX, и попробовать установить Hyper-V. Естественно, все системные требования к виртуализации у меня соблюдены.

Чтобы в случае чего вернуться к «нормальной» системе, я решил сделать образ системного диска со всеми его разделами, чтобы потом, если что, развернуть его обратно.

Однако, как это часто бывает, всё пошло не совсем по плану.

Hyper-V не поставился (1803). Забегая вперёд, скажу, что последний доступный мне дистрибутив Windows 10 (1909) этой проблемы не имеет.

Развернув образ диска обратно, я обнаружил, что Windows 10 отказывается загружаться. BCD, насколько я могу судить, никаких изменений не претерпел, но тем не менее сохранение и развёртывание образа систему сломало.

В процессе изучения проблемы (а в загрузчиках и тем более деталях поведения UEFI я не силён) было установлено, что Rollback RX прописывается в загрузочном разделе, и загружается до передачи управления загрузчику Windows 10. Одновременно Rollback RX производит непонятные манипуляции с загрузчиком раздела, на котором установлена операционная система, в результате чего содержимое этого раздела из сторонних средств просмотра недоступно, и становится доступным только после «починки» (поиска и восстановления) этого системного раздела. Если этот загрузочный сектор системного раздела починен, то Rollback RX ломается и в Windows 10 перестаёт работать (UEFI pre-boot работает нормально).

Осмотр BCD на системном разделе никаких проблем не показывает (как будто я разбираюсь). Впрочем, если удалить BCD.DAT и выполнить какую-то команду типа bcdedit /bootrestore (не помню точно), то система опять-таки будет загружаться нормально (конечно, уже без Rollback RX).

Сейчас нет возможности проверить, однако возможно, что эта проблема вызвана режимом взятия образа диска: вместо Raw я выбрал стандартный, а он может по каким-то своим соображениям игнорировать те или иные служебные сектора.

В конечном итоге мне оказалось проще зайти в этот pre-boot от Rollback RX и выполнить его деинсталляцию с откатом к одному из образов системы (он видит все сохраненные образы, только из-под Windows 10 работать отказывается). После этого нормально загружаемся в систему… и ставим его заново.

На будущее я-таки сделал RAW-образ диска, однако исследовать и разворачивать его заново я сейчас не хочу.

Допускаю, что проблема даже не в образе диска, а где-то глубже, в деталях поведения UEFI и загрузчика операционной системы.

Меры по отключению Windows Update

Борьба с обновлениями Windows (да, я знаю что некоторые считают уместным оставлять обновления на усмотрение Microsoft, но моё мнение строго противоположное) имеет вполне очевидные решения — просто блокировкой адресов соответствующих серверов либо на уровне windows filtering platform, либо на маршрутизаторе типа моего Mikrotik или любого другого, позволяющего чёрные списки.

Однако меня раздражает, что в Windows 10 есть сущности, неподвластные даже пользователю категории «Администратор». К таковым, в частности, относятся сервисы Update Orchestrator Service (UsoSvc), Windows Update Medic Service (WaaSMedicSvc), а также событие планировщика под названием performremediation. Перечисленные объекты невозможно отключить, выполнение команд:

Set-Service -Name WaaSMedicSvc -StartupType Disabled
Set-Service -Name UsoSvc -StartupType Disabled
Set-Service -Name wuauserv -StartupType Disabled
Disable-ScheduledTask -TaskPath "\Microsoft\Windows\WaaSMedic\" -TaskName "performremediation"

даст ошибку «Access denied», то есть у администратора недостаточно прав… Собственно, установив на компьютер Windows 10, вы подписались на то, что компьютер будет делать то, что хотят другие…

Для решения почти всех проблем есть два способа. Оба позволяют запустить консоль с повышением прав с пользователя-администратора до TrustedInstaller или до System. В первую очередь это nsudo, но можно воспользоваться и PsExec от Руссиновича (Sysinternals).

После скачивания nsudo я бы рекомендовал переименовать nsudoc (консольную версию) в nsudo и наоборот.

Запускаем ту или иную (cmd или powershell) консоль под локальным администратором, после чего выполняем nsudoс -U:T powershell, и открывается окно powershell с привилегиями TrustedInstaller. Там уже можно выполнить либо

Set-Service -Name WaaSMedicSvc -StartupType Disabled

либо написать скрипт, который будет отключать сервисы по списку, вроде этого:

$srv = "BITS","UsoSvc","WaaSMedicSvc","WSearch"

$srv | foreach { Set-Service $_ -StartupType Disabled }

Конечно, следует не забыть отключить и задачи планировщика:

Disable-ScheduledTask "\Microsoft\Windows\UpdateOrchestrator\Schedule Retry Scan"
Disable-ScheduledTask "\Microsoft\Windows\UpdateOrchestrator\Schedule Scan"
Disable-ScheduledTask "\Microsoft\Windows\UpdateOrchestrator\USO_Broker_Display"
Disable-ScheduledTask "\Microsoft\Windows\WindowsUpdate\Scheduled Start"
Disable-ScheduledTask "\Microsoft\Windows\WindowsUpdate\sih"

Облачные хранилища

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

Так что довольно быстро Dropbox начал меня страшно злить своей излишне ограничивающей политикой, и я переехал на Mega.

А вот облаком, которым я до недавнего времени не пользовался, был Google Drive. Microsoft OneDrive я пока тоже не рассматриваю, хотя может быть и стоило бы.

В чём недавно обнаружившийся для меня несомненный плюс Google Drive — всё, что ты посмотрел на чужих дисках, сохраняется у тебя, и к этим файлам, если они не закрыты владельцами, можно вернуться! А мне пару раз удалось напасть на настоящие залежи ценного мне контента, и всё доступно онлайн (в частности, более 5Тб отборной музыки во flac, а также гора обучающих видео по .NET / C# / F#, которыми я в настоящее время активно занимаюсь), но в тот момент (с телефона) скачать не было возможности.

Список файлов в целом получается огромный, и через веб-интерфейс по нему лазить страшно неудобно; я озаботился интеграцией g-drive диска «доступное мне» в систему.

Стандартное приложение для Google Drive я ставить не стал, а после некоторых поисков нашёл совершенно неизвестный мне до этого RaiDrive — симпатично, удобно. Из минусов — необходимо регистрироваться на их сайте или логиниться через учётную запись Google. Перед этим можно поставить приложение, и зайдя уже в само приложение, подключить нужный тебе диск (из доступных дисков и Google Drive, и Dropbox, и Mega и много чего ещё). После этого буква соответствующего диска появляется в «проводнике».

QGIS

Когда коту делать нечего, он яйца лижет; когда у меня нет срочных дел, я программирую и делаю что-нибудь в сфере своих интересов.

Одной из таких сфер является картография.

Впервые я сделал карту в период работы в ЦПКиО им. М. Горького, потому что работать по большим чертежам неудобно, и хорошо бы иногда делать собственные фрагменты той или иной местности.

Изначально я, конечно, не знал о разных системах координат и переходах из одной в другую, МГГТ и прочих, но постепенно втянулся. Со временем карты пришлось переделать из геоцентрической в нормальную декартову местную систему координат.

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

На самом деле всё довольно просто.

Для начала заносим в базу нужные нам объекты недвижимости с их геометрией и структурированным адресом, и выгружаем координаты в формате WKT в CSV вместе с адресами. Так проще потому, что база данных объектов у меня была на Drupal & Openlayers, то есть на PHP+MySQL, а QGIS (как и любой другой известный мне картографический софт) подключаться к MySQL и извлекать пространственные данные не умеет. В Drupal такая выгрузка настраивается довольно просто, и CSV скачивается на компьютер просто при обращении по определенному адресу.

На выходе получается приблизительно такой файл формата CSV (разделенный табулятором).

Address Korpus KadNum KadArea WKT
░░.░░░░░░░ ░.░░ стр.16 3 ░░:░░:░░░░░░░:1081 3771,30 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.17 6 ░░:░░:░░░░░░░:1082 1723,60 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.18 112а ░░:░░:░░░░░░░:1033 7881,20 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.19 118 ░░:░░:░░░░░░░:1034 5304,20 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.2 112 ░░:░░:░░░░░░░:1067 9909,80 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.20 26Б ░░:░░:░░░░░░░:1041 349,90 POLYGON (…)
░░.░░░░░░░ ░.░░ стр.21 118А ░░:░░:░░░░░░░:1040 7947,60 POLYGON (…)
/images/2019-11-27_125708.png/images/2019-11-27_125827.png

При загрузке такого CSV в качестве слоя в QGIS мы получаем контуры зданий (из поля WKT в CSV) и связанные с ними адреса.

/images/2019-11-27_130047.png

Таблички от отдела электрохозяйства с перечнями подстанций выглядели приблизительно так:

N TPName Address Inventory
5 ТП-7 (РП 5409) 6 кВ и ТП-7А (РП 5419) 6 кВ ░░.░░░░░░░ ░.░░ стр.26 20123
6 ТП-8 (РП 5424) 6 кВ ░░.░░░░░░░ ░.░░ стр.58 20136
7 ТП-9 (РП 5410) 6 кВ ░░.░░░░░░░ ░.░░ стр.14 20103
8 ТП-11 6 кВ ░░.░░░░░░░ ░.░░ стр.62 20143

Тут, очевидно, необходимо дорабатывать текст до придания ему единообразия (в данном примере адреса мною уже приведены к единообразному формату); к примеру, РП-* вынести в отдельную колонку. Но главное тут есть — привязка адреса здания к подстанции. Формат адреса в этой таблице должен строго соответствовать адресу здания из списка с координатами. Я доработал его следующим образом:

N TPName Address Inventory
5 ТП-7 ░░.░░░░░░░ ░.░░ стр.26 20123
6 ТП-8 ░░.░░░░░░░ ░.░░ стр.58 20136
7 ТП-9 ░░.░░░░░░░ ░.░░ стр.14 20103
8 ТП-11 ░░.░░░░░░░ ░.░░ стр.62 20143

Конечно, в зависимости от потребностей записи «6кВ» и «10кВ», к примеру, можно было бы вынести в отдельную колонку и отображать их на карте, но для примера мы список предельно упростим.

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

/images/2019-11-27_130139.png

Теперь создадим виртуальный слой.

/images/2019-11-27_131025.png

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

/images/2019-11-27_131934.png/images/2019-11-27_131946.png/images/2019-11-27_132112.png

Запрос:

select Centroid(obj.geometry), obj.Address, tps.Name from obj, tps where obj.Address == tps.Address

Из таблиц obj и tps в новую таблицу мы выбираем поля адреса, имени подстанции и геометрического центра объекта, для которого адрес в таблице зданий совпадает с таблицей трансформаторных подстанций.

/images/2019-11-27_134613.png

Что важно — при редактировании виртуального слоя он каждый раз при нажатии кнопки «Добавить» создаётся заново, и если есть проблемы с системами координат, точки центроидов в видимом поле могут не появиться, и нужно выходить из диалога редактирования виртуального слоя и задавать нужную систему координат вручную. В моём наборе данных использовалась EPSG:4326, та же система будет использоваться и в производных слоях. Чтобы отображать объекты в плоскости, нужно использовать декартову систему координат (МГГТ или любую МСК), или EPSG:3857.

Для созданного виртуального слоя можно и нужно создать подписи, которые будут обозначать подстанции.

Теперь построение связей.

Для начала нужно загрузить CSV «Кабельный журнал высокого напряжения» с атрибутами, который в самом простейшем варианте состоит из двух колонок: пары вида подстанция¹ — подстанция², то есть какая подстанция с какой соединена. Имена подстанций должны соответствовать тем, что указаны в перечне подстанций, иначе их невозможно будет сопоставить.

/images/2019-11-29_141618.png
SELECT SRC, TRGT, make_line(Centroid(objFrom.geometry), centroid(objTo.geometry)) FROM hvolt
JOIN tps tpsFrom  ON hvolt.SRC == tpsFrom.Name
JOIN tps tpsTo    ON hvolt.TRGT == tpsTo.Name
JOIN obj objFrom  ON tpsFrom.Address == objFrom.Address
JOIN obj objTo    ON tpsTo.Address == objTo.Address

В виртуальный слой попадает три колонки: колонки SRC и TRGT из таблицы «Кабельный журнал высокого напряжения», которую для удобства переименовали в hvolt, а в поле геометрии создаваемого объекта попадает результат работы функции, создающей из двух точек линию. Точки выбираются отдельными запросами (tpsFrom + objFrom для исходной точки, tpsTp + objTo для целевой).

Опционально можно создать подписи к генерируемым линиям, например указав concat('← ',TRGT) в поле подписи (Label), тогда рядом с линией будет показываться направление и цель. Конечно, вместо линии можно отрисовывать стрелку.

Я пока не понимаю, возможно ли в QGis рисовать дуги при генерации геометрии, потому что прямые линии не вполне удобны.

В итоге это может выглядеть так:

/images/2019-11-29_144053.png

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

Прекариат

В 1970-е годы умами политиков завладела группа идейно настроенных экономистов. Главный принцип их неолиберальной модели состоял в том, что экономический рост и развитие зависят от рыночной конкурентоспособности и нужно сделать все для максимального повышения соревновательности и конкуренции так, чтобы рыночные принципы проникли во все аспекты жизни.

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

Такими словами начинается книга Гая Стэндинга «Прекариат — новый опасный класс». Оригинал книги вышел в 2010 году, то есть почти 10 лет назад, а в России её выпустили в 2014-м издательство Ad Marginem совместно с Музеем современного искусства «Гараж», что в Парке Горького на Крымском валу.

Одно неолиберальное требование, окончательно оформившееся в 1980-е, заключалось в том, что страны должны стремиться к «гибкости рынка труда». Если рынок труда не станет более гибким, затраты на оплату труда возрастут и корпорации будут переводить производство и инвестиции в места, где такие затраты меньше, и финансовый капитал будет инвестировать в эти страны, а не в «родные». Гибкость включала в себя много аспектов: гибкость заработной платы означала скорейшее приспособление к необходимым изменениям, особенно в сторону понижения; гибкость занятости — возможность для фирм быстро и без трат менять уровень занятости, тоже преимущественно в сторону понижения, причем с сокращением гарантий обеспечения занятости; гибкость должностей означала возможность перемещать наемных работников внутри фирмы (с одной должности на другую) и менять структуру должностей с минимальным сопротивлением или затратами; гибкость профессиональных навыков означала, что работника легко можно переучить.

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

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

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

Постараюсь вернуться к этому вопросу ещё несколько раз.

Угадай страну

Рубрика «угадай страну по тексту»:

…новое поколение отличалось неприятием власти и «комплексом диссидента», при котором любая официальная пропаганда априори воспринималась как ложь, а все, что приходило ░░░░░░░ — как информация, заслуживающая внимания. Новое поколение уже не помнило времена той нищеты, из которой ░░░ ░░░░ ░░ вытащил страну, и более обращало внимание на те проблемы, которые стали следствием подобного рывка.

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

И ещё одно:

Газету шокировал не столько «аморальный облик» молодежи, сколько то, как она воспринимает современное ей общество. 91 % опрошенных заявили, что ░░░░░░░░░ общество насыщено коррупцией, но 41,3 % воспринимают ее как приемлемый способ выживания и считают естественным нарушать закон, если тебя никто не видит. 28,4 % готовы дать взятку, если это позволит решить их личные проблемы, а 33 % предпочтут, столкнувшись с проявлениями коррупции, из соображений личной безопасности сделать вид, что ничего не заметили.

16 % заявили, что они готовы «погрязнуть в коррупции» и отсидеть 10 лет в тюрьме за 1 млрд., а 22,7 % сказали, что ничего не имеют против нарушения закона, если это принесет пользу их родственникам или друзьям. В ответ на вопрос о причинах распространения коррупции 64 % назвали неадекватные наказания, а 29,9 % сослались на распространенное утверждение том, что жить, не нарушая закон, нельзя.

Правовая природа публичных средств

Некоторое время назад меня занимала природа денежных средств бюджетов. Возникла она после того, как в одном из органов власти города Москвы мне на вопрос о том, куда и как идут бюджетные средства, заявили, что это коммерческая тайна. Коммерсанты, блин.

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

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

О смертной казни

Прекрасные новости о согражданах:

52% респондентов считают, что в России следует вернуться к применению смертной казни, 30% — за продолжение моратория на неё, и всего 4% — за полную отмену. Также россиянам был задан вопрос: «За какие преступления допустимо применять смертную казнь?» 68% участников опроса считают допустимым применение смертной казни за сексуальное преступление против несовершеннолетних. Несколько реже, но тоже большинством люди поддерживают смертные приговоры за убийство (57%), терроризм (53%) и изнасилование (52%).

И один из множества фактов:

Школьного учителя оправдали в Петербурге по делу о педофилии. Следствие заставляло 9-летнюю девочку лгать о сексуальных контактах в подсобке

В Петербурге вынесен оправдательный приговор учителю 375-й школы Красносельского района ░░░░░░░ ░░░░░░░, которого обвиняли в сексуальном насилии над девятилетней девочкой. Экспертиза признала, что следователь диктовала ей описание интимных тонкостей. <…> Мать школьницы созналась, что показания были написаны под диктовку девушки-следователя Красносельского отдела ГСУ СК Петербурга.

░░░░░░░ 61 год. В СИЗО он провел больше года и еще два месяца — под домашним арестом. Меру пресечения отменили и признали за ним право на реабилитацию.

Все аргументы «за» и «против» смертной казни были разобраны уже больше ста лет назад (см., к примеру, «Исследование о смертной казни» Кистяковского А.Ф. 1897 г.) со вполне однозначными выводами:

Когда окончена работа создания государств, когда добыто формальное единство, умственное, нравственное и религиозное - потребности человека изменяются. Государство и его учреждения приобретают такую крепость, что для поддержания их нет нужды в жестоких мерах. Благодаря государственной жизни человек достигает той степени экономического, общественного и умственно-нравственного развития, для дальнейших успехов которого необходимо принятие целесообразных мер, а не жестокая система наказания. Естественным следствием всестороннего обеспечения является смягчение нравов, с чем тесно соединено исчезание нравственной необходимости смертной казни. В это-то время является и философское сознание, что смертная казнь есть наказание несправедливое, бесполезное и ненужное.

Итак, самый неоспоримый факт, что по мере развития народов необходимость применения и самое применение смертной казни более и более уменьшаются. Процесс этого уменьшения, хотя и очень медленный, но до такой степени однохарактерный и постоянный, что тождественность направления его в будущем не подлежит сомнению; совершившееся уменьшение слишком громадно, а оставшиеся случаи смертной казни слишком незначительны для того, чтобы уменьшение остановилось и не окончилось полною отменою. <…> Общественные перемены зависят от нарождения новых потребностей; осуществление их можно замедлить, но предотвратить их нет возможности. В начале нынешнего столетия усилия дальновидных людей Англии, направленные к тому, чтобы отменить смертную казнь за многие преступления, оказались безуспешны. Но едва только совершилась парламентская реформа, как непосредственно за тем последовал целый ряд законов, сокративших применение смертной казни. То же самое повторилось и во Франции: парламентская перемена непосредственно сопровождалась отменою смертной казни за многие преступления. Ручательством за неизбежность отмены служит то, что отмена смертных казней происходит не столько от рефлектированных убеждений нескольких мыслителей, не столько по воле законодателя, сколько вследствие тех полустихийных, полурефлективных перемен, которые совершаются в более или менее значительной массе народа. Кто определенно и когда именно научил европейские народы не применять смертную казнь за религиозные и нравственные преступления? Разве многие из присяжных, не допускавшие и не допускающие смертной казни за преступления против собственности, читали сочинение Беккариа или другого писателя, противника смертной казни, или даже слышали их имена? Разве есть какой-нибудь закон или какое-нибудь положительное определение о крайне ограниченном в действительности применении смертной казни за некоторые преступления, за которые до сих пор, так же как и прежде, закон угрожает этим наказанием? Кто внушил европейским народам то отвращение, которое они питают к обязанности и личности палача?

<…>

Существование элементов и сил, на которых держится смертная казнь, дает поддержку тем мыслителям, которые отстаивают справедливость и необходимость смертной казни. Но не следует забывать, какое значение и какой смысл имеет нынешняя философская защита справедливости и необходимости смертной казни. В XVIII в., накануне отмены пытки, записные специалисты с непоколебимым убеждением излагали теорию справедливости пытки и рисовали падение правосудия с ее уничтожением. А в настоящее время разве не назовут варваром или сумасшедшим того, который бы вздумал отстаивать муки застенка? Когда в XVIII в. шла речь об отмене изысканных казней, много было пророков, которые предсказывали европейским народам страшное увеличение тяжких преступлений от уничтожения столь справедливых наказаний, как колесование, четвертование, сожжение и др. И однако ж какой образованный европеец станет в настоящее время доказывать справедливость квалифицированной смерти? В 1862 г. генеральный прокурор Бельгии восстал на защиту смертной казни, доказывая ее необходимость и предсказывая падение правосудия с ее уничтожением. Один из членов Бельгийской ассоциации содействия отмене смертной казни так отвечал ему: «Господин де Бави верит в необходимость смертной казни и опасность ее отмены. Такова история всех гнусных учреждений, которыми некогда было наполнено уголовное право и которые ныне отвергнуты; такова история пытки, которую Мюйар де Вуглан, тоже или почти тоже генеральный прокурор, признавал необходимою в конце XVIII в., в ту самую минуту, когда собирались ее уничтожить; такова история клеймения, которое Тарже, другой знаменитый магистрат, провозгласил спасительным и необходимым для преследования злодеев; такова история отрезывания кисти у отцеубийц, которое считали необходимым для того, чтобы воспрепятствовать детям убивать отцов и матерей; такова история публичной выставки, которую считали необходимою и которую не осмелились уничтожить во Франции в 1832 г., боясь подвергнуть опасности общественную безопасность; такова история преступлений подлога, воровства и других, за которые считали необходимым определять смертную казнь, если они сопровождаются известными отягчающими обстоятельствами; такова история палок, которые считались необходимыми для поддержания дисциплины солдат; такова история четвертования, колесования и пр., которые общество считало необходимыми и о которых оно ныне не может вспомнить не краснея; такова, наконец, история всех злоупотреблений и всех успехов». Замечательно, что за исключением самого незначительного числа схоластиков, для которых события не существуют и которые потому отстаивают абсолютную справедливость и необходимость смертной казни, почти все остальные приверженцы смертной казни защищают ее не в принципе, а ради временной ее необходимости и полезности, ради того, что общество еще не доросло до отмены.

Придётся сделать вывод, что половина общества Российской Федерации до отмены смертной казни пока нравственно не доросла.

Закон Паркинсона

Закон Паркинсона, который мы сегодня знаем, звучит так: «Работа всегда занимает ровно то время, которое на неё отведено». Эту фразу он написал в 1955 году в статье в журнале «Economist».

Мало кто знает, что основным предметом исследования была британская бюрократия. В статье он указал, что несмотря на снижение между 1914 и 1928 годом количества кораблей военно-морского флота на ⅔ и числа служащих военно-морского флота на треть, число чиновников ежегодно росло на 6%. Работы было меньше, но управленческий аппарат разросся, и Паркинсон утверждал, что от нужд военно-морского флота это не зависело никак.

Стефан Тёрнер в одной из своих работ исследовал правительства почти 200 стран, и обнаружил, что размер кабинета министров находится в обратно пропорциональной связи с эффективностью правительства, политической стабильностью, политических свобод по рейтингу Всемирного Банка и индексу человеческого развития ООН (в который входит ожидаемая продолжительность жизни, образование и качество жизни).

Взято отсюда.