🏠: Viacheslav

Нутовые котлеты

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

IMG_20200323_203534.jpg
IMG_20200323_205357.jpg
IMG_20200323_210535.jpg

Торт для героя

Сын вычитал в комиксах рецепт торта:

IMG_20200317_201634.jpg IMG_20200317_201706.jpg

Вчера с ним воплотили этот рецепт в жизнь (флажками не заморачивались).

IMG_20200322_163832.jpg IMG_20200322_163849.jpg

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

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

Праздничные дни в Powershell

Сегодня у меня сработало оповещение о том, что базы Консультанта старые — скрипт смотрит на дату в файле [Путь к каталогу Консультанта]\RECEIVE\LAST_REC.TXT, и если эта дата раньше вчерашней и сегодня не понедельник, отправляет уведомление по почте.

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

Можно! В данном случае я нашёл сайт xmlcalendar.ru, где выкладывают производственный календарь в формате XML. Чтобы выгрузка с него была понятнее, я сделал некоторые преобразования. Вот скрипт:

# Скачивание XML
curl http://xmlcalendar.ru/data/ru/2020/calendar.xml -OutFile d:\temp\cal.xml
# Импорт
[xml]$cal = gc d:\temp\cal.xml -Encoding utf8
# Обработка
foreach ($day in $cal.calendar.days.day) {
$day.d = (($cal.calendar.year + '.' + $day.d) -as [datetime]).tostring("dd.MM.yyyy")

if ($day.t -eq 1) {$day.t = "Вых"}
elseif ($day.t -eq 2) {$day.t = "Сокр"}
elseif ($day.t -eq 3) {$day.t = "Раб"}

if ($day.h -match "\d") {$day.h = ($cal.calendar.holidays.holiday |? id -eq $day.h).title}
}
# Экспорт в CSV
$cal.calendar.days.day |Export-Csv "d:\temp\cal$($cal.calendar.year).csv" -Encoding utf8 -Delimiter ';' -NoTypeInformation

Результат:

d          t    h                                                                     
-          -    -                                                                     
01.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
02.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
03.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
04.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
05.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
06.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
07.01.2020 Вых  Рождество Христово                                                    
08.01.2020 Вых  Новогодние каникулы (в ред. Федерального закона от 23.04.2012 № 35-ФЗ)
23.02.2020 Вых  День защитника Отечества                                              
24.02.2020 Вых                                                                        
08.03.2020 Вых  Международный женский день                                            
09.03.2020 Вых                                                                        
30.04.2020 Сокр                                                                       
01.05.2020 Вых  Праздник Весны и Труда                                                
04.05.2020 Вых                                                                        
05.05.2020 Вых                                                                        
08.05.2020 Сокр                                                                       
09.05.2020 Вых  День Победы                                                           
11.05.2020 Вых                                                                        
11.06.2020 Сокр                                                                       
12.06.2020 Вых  День России                                                           
03.11.2020 Сокр                                                                       
04.11.2020 Вых  День народного единства                                               
31.12.2020 Сокр

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

Удобная альтернатива — https://www.isdayoff.ru

Судьба прадеда

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

Мой прадед по отцовской линии — Фёдор Степанович Булынкин — ушёл на фронт в сентябре 1941-го и не вернулся.

Предположительно, 1920-е годы.
Оттиск в левом нижнем углу — «Фотография Б. [И]. Клементьева г. Коломна с. Боброво»

За неимением информации, считалось, что он пропал без вести. Я запросил фамилию, имя и отчество на сайте «Память народа», который замечателен тем, что там выкладывают качественные копии реальных документов времён войны. Действительно, Фёдор Степанович нашёлся, но информация была так же скудна и подтверждала то, что и думали раньше:

bulynkinfs-missing-1.jpg bulynkinfs-missing-2-scaled.jpg bulynkinfs-missing-3.jpg
Фрагмент донесения № 69719, Коломенский ГОВК Моск. обл., 10.08.1946

Тем не менее, это уже, как-никак, реальный документ, с верным домашним адресом и именем жены — моей прабабушки. Но дата всё равно неясна — почему-то и день, и месяц написаны римскими цифрами — II\II-42г., то есть, непонятно, 2-е февраля или 11-е? А может, ноября? И почему в карточке на сайте написано «Дата выбытия 06.1942»?

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

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

Да он призван в том же военкомате! И домашний адрес тот же!

bulynkinfs-killed-in-action-1.jpg bulynkinfs-killed-in-action-2.jpg bulynkinfs-killed-in-action-37-scaled.jpg bulynkinfs-killed-in-action-44-scaled.jpg
Фрагмент донесения о безвозвратных потерях № 4058, упр. 358 сд, 30.03.1942

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

Служил он в 358-й стрелковой дивизии, входившей в состав 4-й ударной армии, а погиб в бою 10 февраля 1942 года в районе деревни Дубровка Демидовского района Смоленской области, недалеко от границы с Белоруссией.

4-я ударная армия в феврале 1942 г. участвовала в Велижской операции. Достаточно подробно о ней пишет командарм А. И. Ерёменко в 11-й главе своей книги «В начале войны»:

Передышки войска 4-й ударной армии, однако, не получили. С утра 22 января армия по приказу Ставки была передана в Калининский фронт. Командующий Калининским фронтом генерал-полковник И. С. Конев потребовал от 4-й ударной армии продолжать энергичное наступление, выйти в глубокий тыл и перерезать коммуникации вражеской группы армий «Центр», не дать войскам этой группы отойти на тыловые оборонительные рубежи и во взаимодействии с другими армиями Калининского и Западного фронтов создать условия для их уничтожения. Для выполнения этих задач 4-я ударная армия должна была развивать наступление в направлении Торопец — Велиж — Рудня и выйти в район Рудни к 29 января. Таким образом, Торопецкая операция без какой-либо паузы переросла в новую — Велижскую операцию.
Дивизии получили следующие задачи: […] 358-й стрелковой дивизии двигаться во втором эшелоне за 332-й стрелковой дивизией и перейти в район Горовахи […]

358-я стрелковая дивизия, двигавшаяся за бригадами в направлении Западная Двина, Ильино, по приказу командования армии выслала 24 января 1191-и стрелковый полк с задачей овладеть ст. Земцы и разобрать железную дорогу. В дальнейшем полк должен был прикрывать левый фланг армии и, продвигаясь на юг, выйти в район Демидова.
28 января 358-я стрелковая дивизия подошла к Крестам и сменила здесь части 48-й и 39-й стрелковых бригад, за исключением 1-го батальона 39-й бригады, который перехватывал дорогу из Крестов на Велиж. Дивизия начала готовиться к атаке Крестов.
Командование гарнизона Крестов поняло угрозу опасности и запросило помощи. В ночь на 29 января 3-й батальон 257-го пехотного полка, усиленный артиллерией, был направлен из Велижа на помощь гарнизону Крестов.
Отбросив роту 1-го батальона 39-й бригады, занимавшую Починок, вражеский батальон сумел прорваться к Крестам. Однако 1-му батальону 39-й стрелковой бригады удалось снова выйти в район Починка и закрыть выход из Крестов на юг. Этой же ночью 1187-й стрелковый полк 358-й стрелковой дивизии двумя батальонами подошел к Крестам с юго-запада и запада. Одновременно 1-й батальон 1189-го стрелкового полка этой же дивизии подошел к Крестам с севера. Это завершило окружение противника в Крестах. С утра одновременной атакой всех трех батальонов 1187-го и одного батальона 1189-го стрелковых полков Кресты были полностью очищены от противника.

3 февраля 332-я стрелковая дивизия, развивая наступление, завязала бой за окружение Демидова, но взять его не смогла из-за отсутствия артиллерийских снарядов.
Задержка наших войск на рубеже Демидова позволила противнику перебросить сюда из района Рудни 330-ю пехотную дивизию, которая вступила в бон с нашей 332-й дивизией.
358-я стрелковая дивизия, действовавшая по обеспечению левого фланга, 2 февраля вышла на рубеж Понизовье, Титовщина.
Таким образом, в начале февраля 4-я ударная армия вынуждена была раздробить свои силы по трем направлениям и вести затяжные бои с подтянутыми противником свежими частями.
Соседние армии, отставшие от нас более чем на 100 км, не только не могли помочь нам, но и сами нуждались в помощи.

И наконец, вероятно, тот самый последний бой 10 февраля: «358сд во взаимодействии с 39[стр] вела бой с частями 555пп, усиленного 5 танками.»

 Из журнала боевых действий 4-й ударной армии, стр. 110

Похоронен Фёдор Степанович в братской могиле на опушке соснового бора посёлка Пржевальское на берегу озера Сапшо, под той самой фамилией, написанной с ошибкой. В альбоме он записан под № 330. Ему было столько же лет, сколько сейчас мне.

bulynkinfs-grave-2-scaled.jpg bulynkinfs-grave-4-scaled.jpg

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

Подкручиваем HTTPS

Больше трёх лет назад я делал подобную заметку, настало время дальнейшего пересмотра настроек. Я мало смыслю в безопасности, но зато люблю, когда онлайн-проверки светятся зелёным. За прошедшее время появился протокол HTTP/2, который я включил в конце 2017-го, и TLS 1.3, а версии TLS 1.0 и 1.1 уже признаются устаревшими с марта этого года, и отправляются на заслуженную пенсию составлять компанию уже находящемуся там SSL.

Итак, чтобы выключить все протоколы, кроме самых новых и надёжных, нужно добавить в файл конфигурации Апача, например, /etc/apache2/sites-available/default-ssl.conf (у меня другой файл, который создаёт Let’s Encrypt), следующее:

# Set Forward Secrecy
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!aNULL:!MD5:!3DES

# Strict transport security
<IfModule mod_headers.c>
 Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
 Header always set Referrer-Policy "no-referrer-when-downgrade"
</IfModule>

С TLS 1.3, по ощущениям, действительно работает быстрее — ведь для установки защищённого соединения ему нужно меньше согласований. SSLHonorCipherOrder on — это включение расстановки приоритета алгоритмов шифрования самим сервером, что рекомендуется.

Также, я включил в Апаче поддержку OCSP Stapling — вроде бы полезная вещь — и, забавы ради, HSTS preloading, но это уже совсем необязательно.

Результат обстоятельного теста на Ssllabs после настройки:

Список других полезных тестов: