Адаптация дочки в новом садике
Я уже рассказывал, о том как мы планировали перевести дочку в новый садик —
В комментариях там просили рассказать про то как пройдёт адаптация, выполняю просьбу, правда рассказ выйдет недолгим.
К концу февраля мы начали водить дочку в два садика — на несколько часов в новый и на остаток дня в прежний, ориентируясь на желания самой дочки. Ожидалось, что этот процесс затянется, но дочка сама его форсировала — уже на третий, кажется, раз попросив, чтобы её оставили в садике на весь день.
Первое время мы её с затаённой тревогой расспрашивали всё ли ей нравится, но услышав, что всё хорошо, что у неё уже шесть друзей и ей очень нравится чернокожая учительница (она английский там преподаёт), успокоились.
В общем, такое ощущение, что адаптация уже кончилась, причём неожиданно скоро — всего за несколько дней.
«Курчане»
Любопытно какие детали иногда всплывают по случайности в людской памяти. Недавно рассказывал маме про наши курские корни (по заметной части веток мы — потомки переселённых
Говорит, что когда мой дед (её папа) выпивал, иногда в разговоре говорил
Думаю, слово появилось в его обиходе с подачи отца тёщи, моего прапрадеда Никанора Ивановича Литвинова, потомка Якова Тимофеевича Калетинова, купленного в качестве крепостного в 1829 году в деревне Копцева Старооскольского уезда — это как раз под Курском. Мама рассказывала, что Никанор Иванович отлично помнил своих предков, наверняка знал и откуда он.
Кстати, я так и не понял как Калетиновы превратились в Литвиновых. Может в документы вкралась ошибка, которая потом закрепилась, впрочем, Яков Тимофеевич (отчество было давно по крёстному) был незаконнорожденным, мало ли какая там история стояла за сменой фамилии.
Например, Яков мог быть незаконорожденным сыном некого дворянина Калитвинова,
Но это только версия, конечно.
Позже: списался с исследователем Курской губернии, вот что он ответил:
Посмотрели сказки
8-й ревизии помещиков Елисеевых. Указанных вами персон в этих ревизиях нет. Кстати, нет и Герасима Матвеевича Елисеева.
Герасим Матвеевич — это тот, у кого был куплен мой предок. Если его не оказалось в восьмой ревизии (это перепись 1833—1834 годов), то куда же он делся?
PHPFuck для PHP8
Немного про программирование.
Один из читателей написал, что программа PHPFuck (это способ писать программы
В самом деле, восьмая версия стала куда строже к программисту,
<?=[[$_=@([].[]),$___=-!![],$$_=![]+![],$$_=$$_*$$_,$__=$$_+![],$$__=$$_+$__,
$____=$_[-![]-![]],$$___="{$$__}"^$____,$$___=($$___^"$___"). ($$___^"{$$__}"^"$___"^"{$$_}").
($$$_=$$___^"{$$_}"). $$$_.($_____="{$$__}"^"{$$_}"^++$____).("$___"&$____).
([$$___=$_[+![]],"{$$_}"|++$$___][+![]]).$_____.$_[+![]].$$$_. ("$__"^$_[-![]-![]]^"$___")
],$$___][+![]];Выше новая версия.
Кстати, она компактнее, но при этом выводит больше текста — «hello world», вместо «Hello!» предыдущего варианта. Ниже я немного расскажу откуда взялась экономия и с чем ещё пришлось столкнуться.
Принцип формирования текста остался, в общих чертах, прежним — корнем всего является комбинация @([].[]), которая даёт слово ArrayArray
Из этой строки потом рождаются все остальные символы. Дело в том, что в ПХП над символами можно производить некоторые бинарные и математические операции, что иногда позволяет получить другие символы. Например, первая буква — h в слове hello получается из сочетания '9' ^ 'a' ^ '0' (где ^ — бинарная операция «исключающего или»).
При этом цифры я получаю довольно простым способом — 0 как +!![] (преобразованием false в число), «девятку», — набирая нужные цифры по единицам (из +![]), а a — как предпоследнюю букву из полученной ранее строки ArrayArray, то есть @([].[])[-2] (аналогично, -2 получается тут из двух замаскированных единиц со знаком «минус»).
По сравнению с предыдущим вариантом в новом коде сделаны следующие изменения.
В этой связи весь код теперь — большое выражение, все переменные в нём лежат внутри массива. Если давать им нормальные имена, то основной принцип выглядит
Кроме того, мне надоело подбирать буквы вручную, вместо этого я написал небольшую программу, которая делает это за меня. Я не стал придумывать алгоритм, который бы анализировал какие биты нужно изменить, а решил задачу полным перебором.
Ниже приведен листинг этой программы, вдруг
<?php
declare(strict_types=1);
// Доступный алфавит
$abc = str_split(count_chars("Array0123456789", 3));
// буквы, которые надо получить
$need = str_split(count_chars("hello world", 3));
function gen(array $chrs): Generator
{
// чем операции длиннее, тем ближе к концу
// это нужно, чтобы более короткие конструкции выигрывали
foreach ($chrs as $ch) {
yield $ch => [$ch, $ch];
}
// возврат: из чего делаем, [как выглядит, значение]
foreach ($chrs as $ch) {
yield $ch => ["~$ch", ~$ch];
}
// для символа инкремент работает, а декремент — нет (особенность ПХП)
foreach ($chrs as $ch) {
$value = $ch;
yield $ch => ["++$ch", (string)++$value];
}
}
function eval_op(string $op, string $a, string $b): string
{
return ([
'|' => fn($a, $b) => $a | $b,
'&' => fn($a, $b) => $a & $b,
'^' => fn($a, $b) => $a ^ $b,
][$op])($a, $b);
}
function generate(array $set): Generator
{
foreach (gen($set) as $src1 => [$p1, $ch1]) {
foreach (gen($set) as $src2 => [$p2, $ch2]) {
foreach (['|', '&', '^'] as $op) {
$result = eval_op($op, $ch1, $ch2);
if ($result !== $ch1 && $result !== $ch2) {
yield [
$src1,
$src2,
"$p1 $op $p2",
$result,
];
}
}
}
}
}
function out(string $str): string
{
return preg_replace_callback(
'/[\x00-\x1F\x80-]/s',
fn($m) => sprintf("\\x%02X", ord($m[0])),
$str
);
}
$set = $abc;
do {
foreach (generate($set) as [$src1, $src2, $str, $res]) {
$idx = array_search($res, $need, true);
if (!isset($rules[$res])) {
$rules[$res] = $str;
}
if ($idx !== false) {
if (!in_array($src1, $abc, true)) {
echo out("{$rules[$src1]} = '$src1'"), "\n";
}
if (!in_array($src2, $abc, true)) {
echo out("{$rules[$src2]} = '$src2'"), "\n";
}
echo out("$str = '$res'"), "\n\n";
unset($need[$idx]);
}
$set[] = $res;
}
$set = array_unique($set);
} while ($need);Это ни в коем случае не инструмент для оптимизации программ в такой технике, а набросок, позволяющий ускорить подбор букв.
Для более глубоких оптимизаций нужно научить эту программу дробить выражения, которые уже вычислялись, на куски и эффективно использовать их, а так же подбирать частоиспользуемым кускам имена переменных меньшей длины.
У меня дробления нет, я использую предыдущие выражения целиком, а имена переменным моя программа вообще не подбирает.
О двенадцати хоботах
На днях читал
Сначала, было, отмахнулся от этого воспоминания как от ложного, а потом решил погуглить, вдруг правда и была такая сказка? И действительно, — хоботы в сказках упоминаются.
Так откуда же у русских драконов взялись хоботы?
Разгадка в том, что слово «хобот»
«Робинзонъ Крузо»
Раньше нередко посещал казанский блошиный рынок — ходил как в музей, покрутить в руках разные необычные вещи, а редкий раз
Но вот сегодня вырвался прикупить
На пластинки глаз не лёг, зато удивительным образом лёг на дореволюционное издательство «Робинзона Крузо», я и раньше нередко рассматривал
Не вполне понятно зачем оно мне, но хоть удовольствие от покупки получил. Я совершенно не специалист в том сколько должны стоить такие книги, но, кажется, не переплатил — книга лежит уже год, за это время подешевела втрое и я, пользуясь ненастной погодой, сторговал ещё 500 рублей.
Попробую извлечь практическую пользу из покупки — прочитать книгу, тем более, что я её ни разу не читал, хоть и смотрел в детстве
Приложенную карту, кстати, я поизучал не без интереса. Немало товарищ Робинзон поколесил по свету в своих трёх путешествиях, побывал и в России, в трёх городах — Архангельске, Тобольске и Нерчинске.
Проницательные люди
Как известно, у Шерлока Холмса был реальный прототип, сравнимый с ним по способностям — доктор Джозеф Белл, британский
Вряд ли я могу похвастаться знакомством
Мне очень тяжело с такими разговаривать. Совершенно неважно с какой степенью открытости ты им рассказываешь о себе или других людях, они отметают всё, что им кажется чересчур простым и очевидным и пытаются сделать
Хорошо, если в качестве ответной любезности такой человек расскажет как он тебя понял, можно хотя бы попытаться скорректировать наскоро его мнение, авось
Всё никак не могу к этому привыкнуть.
Эхо
Краем уха слушая сейчас как коллеги по работе в переговорной ведут разговор с другим городом с эхом в канале, я вдруг понял почему в детстве, когда я смотрел военные парады на Красной площади по телевизору, руководители нашей страны говорили настолько, как мне казалось, торжественно — медленно и с паузами.
Думаю дело в том, что усиливающая звук техника даёт на Красной площади очень сильное эхо (до сих пор помню это «Здравствуйте, товарищи! …ищи! …ищи! …ищи!»). По себе знаю насколько эхо мешает и сбивает. Единственный способ с ним бороться — говорить медленнее, чтобы не терять мысль, и делать паузы, чтобы оно успевало стихать.
Скопинский маньяк
Очень нетерпимо отношусь к любым сериалам на криминальную тематику, совершенно не поклонник отечественных «Бригады» и «Бумера», не смог посмотреть дальше несколько серий сейчас ещё довольно известные сериалы «Дексер» про маньяка и «Во все тяжкие» про наркоторговца, несмотря на отличную игру актёров.
Не знаю с чем это связано, не уверен, что мне вообще тут есть что анализировать, мне кажется это и должно быть нормой, неужели это нормально — сопереживать убийцам и наркоторговцам?
Кажется впервые я почувствовал, что меня задевает эта тема ещё в детстве,
Сейчас мне кажется, что моя детская психика таким образом закрывалась от того, что было уже тогда для меня неприятным — концепции романтизации преступного мира и оправдания действий преступников.
Осознал это я всего несколько лет назад, а до того недоумевал что же мне так не заходят некоторые сериалы, действительно хорошо снятые и сыгранные.
Все эти эпизоды не так уж отравляли моё существование, но на днях мою ленту во всех соцсетях затопили отзывы об интервью Ксении Собчак, которое он взяла у Скопинского маньяка, недавно вышедшего на свободу. Известен он тем, что почти четыре года держал в плену двух девушек, которых всё это время насиловал.
Хочешь не хочешь, а краем глаза я увидел столько текста на эту тему, что вполне составил впечатление и о кокетливом ключе этого интервью, и том факте, что маньяк мало того, что не раскаялся, так ещё, по сути, пообещал одной из своих жертв, что скоро до неё доберётся ещё раз:
Катя там жила — она не рожала, а Лена рожала. А сейчас наоборот получилось: Катя родила, а Лена нет. От меня родила и больше не рожает. Надо опять мне заняться ею.
Не знаю как описать мои чувства от того, что Собчак решила популяризировать такого персонажа… «Гнев», наверное, наиболее подходящее цензурное слово. Как по мне, такие люди должны умирать в полной изоляции и безвестности.
Постаревшие дети
Во времена учёбы в вузе я был тот ещё фанат прокрастинации — всегда старался отложить подготовку к сессии на последний момент. А чтобы проверить не наступил ли он ещё, обзванивал своих сокурсников. Если находил хоть
Мне эта история вспомнилась, после того как я в очередной раз встретил
Наверное расстрою тех, кто так считает — это неправда. Позволю себе разбить вашу иллюзию. Мне 43 года и я не ощущаю, что мне, к примеру, 18, увы. Не скажу, что у меня есть
Мне кажется, комментаторы под такими постами как будто проверяют — не настал ли последний момент, не пора ли взрослеть, много ли вокруг ещё «постаревших детей»? Со своим опытом из студенчества я могу их понять — когда не хочется
Но так не у всех, ребят.