Бажов «За Советскую правду»

Прочитал на днях повесть Павла Бажова «За Советскую правду». Это тот самый Бажов, который написал когда-то знаменитые «Уральские сказы». Тут жанр совершенно иной — автобиографическая повесть, действие происходит в 1919 году, во время Гражданской войны.

Вроде ничего особенного, но повествование насыщено интересными деталями. Я прочитал на одном дыхании. Странно, но этот текст местами мной понимается куда меньше, чем более ранняя проза, скажем, — 19 века. Например, вот:

Есть и другое удостоверение: на имя Кирибаева — торгового агента по закупке товаров для кооператива. Удостоверение хорошее. Напечатано на машинке. Номер, печать с двумя руками, три подписи. Только полагаться на него все-таки нельзя. Подписи плохо сделаны. Да и мало одного удостоверения. Опыт показал.

Что за «печать с двумя руками»? Я было подумал, что у печатей того времени с боков что-то торчит, но просмотрел несколько десятков печатей на удостоверениях того времени и ничего такого не увидел. Моя лучшая версия — так называли колосья на гербе РСФСР внутри круглой печати, но подтвердить это не удалось.

Старый документ с синей печатью «Новая Комиссия» и красной рукописной надписью «Решение», датой 191 г. и текстом о фотографической карточке.
Удостоверение личности, выданное в 1919 году Петроградской трудовой коммуной (фото взято из Википедии); никаких рук по бокам

Или вот:

В комнате тепло. В простенках столики, накрытые вязаными скатертями. Около печи узкий, обитый клеенкой диван. Божества навешано через число. Из угла иконы повылезли в стороны и перешли в картины, тоже с божественным отливом: «Житейское море» «Афон-гора» и т. п.»

Что за «число», через которое «навешаны» «божества»? «Божества», я думаю, — это святые, а по поводу «числа» идей у меня нет.

И таких непонятных мест много. Удивительно прям.

9 комментариев

Спам через пуши

Как и планировал купил себе всё-таки новый смартфон — «Сяоми 14 Ультра». До этого у меня был «Хуавей», отлучённый от сервисов «Гугла», что, оказалось, отчасти благо. За более чем три года на «Хуавее» я не заметил, что мир сошёл с ума. Я и не подозревал сколько спама через пуш-уведомления теперь шлёт почти каждое приложение.

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

Ребята, вы совершенно долбанулись, нафига мне вся эта рекламная шелуха? Я лучше выключу пуш-уведомления вообще, чем буду её читать.

8 комментариев

«Халва, халва»

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

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

4 комментария

Про жизнь

Рука держит наручные часы с круглым циферблатом, на котором видны цифры от 01 до 12, стрелки и логотип с крыльями; фон — деревянная поверхность.
Разбил коллекционные часы «Луч», посвящённые первому советскому гоночному автомобилю

Что-то конец недели не задался. Несмотря на раннее солнышко в этом году, рано началась и аллергия в худшем своём проявлении — не помогает ничего, кроме как сидеть в помещении.

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

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

В общем, хочется, чтобы рабочий день побыстрее прошёл, надо бы расслабиться.

6 комментариев

Матрёна Григорьевна Степанищева

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

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

Пока этого не случилось, но мне иногда присылают прямо-таки уникальные выписки, в отдельных случаях касающиеся моих прямых предков.

Схема родословной: Константин Степанищев (1711–Умер) — отец Сергея Степанищева (1731–Умер) и Матрёны Степанищевой (Екимовой, 1731–1782).
Кусок моего родового дерева; мне не было известно как звали жену Констентина

Пару часов назад прислали документ из архива РГАДА (фонд 580, опись 1, дело 2353). Документ содержит челобитную, поданную 19 сентября 1753 года:

Всепресветлейшая державнейшая великая государыня, императрица Елисавет Петровна, самодержица Всероссииская, государыни всемилостивейшая

Бьет челом Старооскольского уезду, Заровенского Стану, села Средней Апочки аднадворец Яков Михаилов сын Жилин того ж села на жителку, вдову, драгунскую жену Матрену Григорьеву дочь Степанищеву, и на детеи ее, Ивана да на Сергея, Костентиновых детей Степанищевых, а в чем мое челобитье, тому следуют пункты

С прошлого 732-го году у вышеписанной вдовы Матрены Григорьевой дочери Степанищевой находился я, именованный, по 742 год в доме ее по найму в работниках, точию за те годы, как тогда, так и ныне, заработных денег, незнаемо для чего, не заплатила, чем меня, именованного, привела в самою бедность, за чем по отбытии, а мою от неи поныне никаким куренишкам (?) не собрался, и за тем остал плотежа подушного окладу

И как в том 742-м году от неи, вдовы Матрены Степанищевой, отшел, то за неимением у меня, имянованного, и у брата моего, аднадворца Еремы Жилина, собственного гумна, свозили к ней, Матрены, в гумне с поля своего хлеба, ржи шестьдесят копен ценою копна по одному рублю |Лист 1об|, авса тритцать копен ценою капна по сороку копеяк, всего по цене на семдесят на два рубли, и тот хлеб вышеозначенныя дети ее Матрены, Иван да Сергей Степанищевы с людьми своими, знатно, с позволения ее, перемолотили, а мне, имянованному, не знаемо для чего не возвратили ж

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

Всемилостивейшая государыня, прошу вашего императорского величества о сем моем челобитье решение учинить, 1753 году сентября 20 дня, к поданию надлежит в Старооскольскую Воеводскую Канцелярию, челобития писал Лантмилицкого Старооскольского полку ротной писарь Андрей Попов

К сей челобитной Ландмилицкого Староосколького полку ротнои писарь Ларион Панин вместо аднадворца Якова Жилина по ево прошению руку приложил

Текст длинный, но существенно для меня здесь всего несколько вещей: в 1753 году около Старого Оскола жила Матрёна Григорьевна Степанищева, вдова драгуна Констентина, у которой было два сына — Иван и Сергей.

Драгун Констентин с сыном Сергеем у меня имеется — это мой прямой предок. Написавший челобитную Яков Жилин, к слову, его двоюродный брат, с которым они когда-то дрались.

Получается, документ добавляет к моему дереву три существенные вещи — 1) к сентябрю 1754 года Констентин помер, 2) его жену звали Матрёна Григорьевна, а кроме того, 3) у него был ещё один сын — Иван.

У истории, кстати, есть продолжение — за Степанищевыми прислали людей, которые дальше пишут, что Сергея они не застали, так как тот был в отлучке в Яблоновском уезде, слободе Хмелевой, для продажи хлеба, а Матрёну и Ивана привели в Старооскольскую Воеводскую Канцелярию.

4 комментария

Зефирный тест

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

В процессе, помимо прочих наград, использовались зефирки, отсюда и название.

Эксперимент старый и известный, я его помнил, но для чего он производился и какие выводы сделали исследователи — забыл.

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

Получается это очень важная жизненная стратегия, раз она оказывает такое большое влияние на будущее. Если подумать, логика в этом как будто бы есть. «Зефирный тест» это ведь не только про зефирки.

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

Любопытно можно научиться или научить с этим справляться лучше, если изначально получается плохо? Где репетиторы по прохождению зефирного теста?

8 комментариев

Кирпич «ПС»

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

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

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

Кандидатов на это клеймо в моём справочнике формально трое:

  • Смирнов Пётр с заводом в Казани (учреждён в 1860, существовал по меньшей мере до 1889)
  • Сушенцев Пётр с заводом в Больших Клыках (начало 20-го века)
  • барон Симолин Павел с целой кучей заводов в Казани и окрестностях (начало 20-го века)

Но в реальности Смирнова, скорее всего, можно вычеркнуть — у меня есть теория, но клеймение кирпича докатилось до Казани достаточно поздно. Это вроде подтверждают даты постройки домов с клеймами в Казани (но я не разбирал все постройки, конечно же). Так что предполагаю, Смирнов свою продукцию просто не клеймил.

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

2 комментария

cmd.sh ★

Я тут случайно в спор ввязался — можно ли переписать бат-файл так, чтобы он запускался и выводил примерно одинаковый результат на трёх основных операционных системах — Виндоузе, Линуксе и МакОСи.

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

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

Что ж. Основная моя идея была в том, чтобы заменить команды батника на вызовы баш-функций, которые я спрячу в специальных конструкциях. В Виндоузе файл обработает обычный cmd.exe, на остальных операционках — bash.

То, что мне предстояло адаптировать начиналось вполне стандартно:

@ECHO off
CHCP 1251
CLS

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

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

:; @ECHO() { :;}; CLS() { clear; }; CHCP() { ENC="$1"; }

Следующее, чему надо научиться — выводить текст в указанной в батнике кодировке. Это просто:

:; ECHO.() { echo $@ | iconv -f "CP$ENC"; }

Если теперь сделать файл запускаемым и добавить впереди #!/bin/bash (и пренебречь тем, что cmd.exe успевает ругнуться на эту строку до очистки экрана), у нас получится следующий файл, работающий во всех трёх операционках (кодировка должна быть Windows-1251):

#!/bin/bash
:; @ECHO() { :;}; CLS() { clear; }; CHCP() { ENC="$1"; }
@ECHO off
CHCP 1251
CLS
:; ECHO.() { echo $@ | iconv -f "CP$ENC"; }
ECHO. Всем привет

А вот дальше сложнее. Само меню организовано в оригинале так:

SET /p opt=Введите цифру:

IF %opt%==1 GOTO dns_auto
IF %opt%==2 GOTO dnschange
IF %opt%==3 GOTO exit

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

Как быть? Во-первых, сэмулировать функцией команду SET, во-вторвых, упростить это место, чтобы меньше было писать кода на «баше»:

:; SET() { shift; ECHO. -n "${@#*=}"; read -n1 "${1%%=*}"; echo; }
:; CALL() { eval "$(sed 's/%\(.*\)%/$\1/g' <<< "$1")" 2>&-; }

SET /p opt=Введите цифру:
CALL :menu_%opt%

Первая функция парсит команду SET выводит строку после равно, ждёт ввода и записывает значение в имя переменной, указанной слева от равно.

Вторая — заменяет CALL. В ней %variable% заменяется на $variable, выполняется подстановка переменной и получившееся имя выполняется как команда или функция «баша». Конструкция 2>&- нужна, чтобы избежать вывода ошибки в ситуации, если пользователь введёт что-нибудь не то.

Теперь надо как-то научиться определять функции так, чтобы их нормально «видел» и cmd.exe, и «баш». В батнике функции — просто любое место программы, начинающееся с метки и заканчивающееся вызовом GOTO :EOF:

:function_1
ECHO это якобы функция
GOTO :EOF

В «баше» то же самое могло бы выглядеть, например, так:

function_1() {
    echo это функция
}

Как это объединить? Я придумал следующий подход:

:; GOTO() { :; };

GOTO ;#start
:function_1 (){
ECHO. это [якобы] функция
GOTO :EOF
:; }

:;#start

В первой строке определяется пустая функция для «баша», потому что эта часть синтаксиса бат-файла нам не нужна.

Ниже идёт строка GOTO ;#start. С точки зрения «баша» тут две конструкции — GOTO, которая вызывает определённую выше пустую функцию и #start — строка комментария, так как в«баше» с «решётки» начинаются комментарии.

В «батнике» же эта же строка будет означать переход к метке с именем ;#start. Этот переход нужен нам, чтобы «обогнуть» строки, которые определены ниже, иначе cmd.exe начнёт сразу их выполнять, а нам этого не нужно. Их нельзя «спрятать» ниже основной программы, так как в «баше» функции должны определены раньше их вызова.

Что происходит дальше? С точки зрения cmd.exe ниже расположена метка :function_1 (как показывают мои эксперименты, часть после пробела просто отбрасывается), потом тело функции, команда её завершения GOTO :EOF и метка с именем :;}.

С точки зрения «баша» там определяется функция с именем :function_1, ниже идут вызовы уже определённых мною функций ECHO. и GOTO, а ещё ниже — уже знакомая нам пустая команда : и фигурная скобка, завершающая тело функции.

Соединяем всё вместе и получается следующая программа:

#!/bin/bash
:; @ECHO() { :;}; CLS() { clear; }; CHCP() { ENC="$1"; }
@ECHO off
CHCP 1251
CLS

:; GOTO() { :; };
:; ECHO.() { echo $@ | iconv -f "CP$ENC"; }; PAUSE() { read; }; 
:; SET() { shift; ECHO. -n "${@#*=}"; read "${1%%=*}"; }
:; CALL() { eval "$(sed 's/%\(.*\)%/$\1/g' <<< "$1")" 2>&-; }

GOTO ;#start

:menu_1 (){
ECHO. Пункт первый
GOTO :EOF
:; }

:menu_2 (){
ECHO. Пункт второй
GOTO :EOF
:; }

:;#start

SET /p opt=Введите цифру:
CALL :menu_%opt%

Мой оппонент признал, что в споре я победил.

2 комментария

«Алиса» молчит

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

Поковырял первую попавшуюся библиотеку, выглядит несложно — получаем любым способом OAuth-токен «Яндекса» (я взял от «Яндекс.Музыки»), с его помощью запрашиваем структуру для работы с колонками, формируем команду и шлём её на порт 1961 по протоколу WebSocket.

Бился-бился, получаю ошибку. К сожалению, я поленился качать себе библиотеку и формировать запрос через неё. Мне казалось, что тут приключение на пятнадцать минут, но ошибся. Надо было начинать с библиотеки. Учитывая, что сейчас даже самые простые библиотеки пишут, подражая Льву Толстому, иногда очень сложно сходу разобраться что там формируется в конце. Возможно упустил какое-то поле.

Скриншот терминала: команда curl с WebSocket-запросом к localhost:1961, ответ HTTP 500, сервер WebSocket++/0.8.2; часть токена скрыта.
Никак не удаётся заставить «Алису» принять команду

6 комментариев

Что-то странное с поиском у интернет-базаров

Что-то странное происходит с поиском «Озона» и «Вайлдберриза». Есть несколько импортных расходных товаров, к которым я привязался, но которые всё сложнее и сложнее находить по вменяемым темам.

Например, дезодорант «Schmidt’s», если кому-то нужна конкретика. Цена ему — рублей 400, но и в «Озоне», и в «Вайлдберризе» дезодорант этой фирмы находится только по цене от трёх тысяч и выше. При этом, в моих заказах я могу перейти на товар по нормальной цене и купить.

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

3 комментария

Купил ещё зарядку GaN

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

То ли партия такая, то ли мне сказочно не повезло. В интернете я что-то ничего не нашёл про подобные случаи.

Все три зарядки иногда немного хлопали, когда я их вставлял в розетку. У меня есть ещё «Базеус» (Baseus) той же мощности, с ней такого эффекта нет. Так что я всё-таки думаю, что это какая-то партия с браком.

Моя вера в качество продукции компании «Сяоми» сильно пошатнулась. Не то, чтобы я решил совсем ничего не покупать, но их зарядки точно брать не буду. Купил пока на пробу ещё одну «Базеуса», стоваттную, посмотрим как она будет работать.

Черный адаптер Baseus с подключенными белым и черным кабелями на деревянном столе; рядом открытая книга с надписью «ПОВОЛЖСКИЙ УДОСТОВЕРИТЕЛЬНЫЙ ЦЕНТР» и цветочным рисунком.
Купил «Baseus GaN3 Pro Quick Charger Adapter 2C + 2U CCGP000101» на четыре порта

13 комментариев

Личное пространство

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

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

Известно, чем скученнее живут люди, тем меньше у них личное пространство. Сначала у меня родилось предположение, что в 40-е люди в городах жили плотнее (в коммуналках, например) и для того времени нормально так близко стоять для почти чужих людей. Но в других фильмах я такого не припомню.

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

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

5 комментариев

Научная нотация

Недавно я узнал, что некоторые люди не воспринимают числа, записанные в так называемой «научной нотации» (она же — экспоненциальная запись). Ну то есть числа 1,9×10⁹ или 1,602176634E−19 им ни о чём не говорят.

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

Меня это ставит в тупик.

27 комментариев

Юникод во «Флиппере»: глубока ли кроличья нора

Юникод во «Флиппере» неисчерпаем, как атом.

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

К моим коммитам отнеслись довольно благосклонно, но в один момент дело застопорилось — авторы прошивки решили обновить сторонний фреймворк для вывода на экран, что могло повлиять на мои изменения, поэтому работу над ними я отложил. Но уже тогда у меня возникла мысль, что надо бы добавить Юникод и в библиотеку работы со строками, которую использует «Флиппер Зеро».

Пока я ждал обновления, занял себя векторизацией функции подсчёта длины строки в кодировке UTF-8, а когда коммит отклонили, поставил всю эту движуху на паузу.

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

Размер доработок всё ширится, а результат всё дальше. Интересно, насколько глубока кроличья нора?

1 комментарий

«Охота на уток» Марка Робера

Дочка собрала конструктор Марка Робера, который мы недавно получили. Я был готов помочь чем-нибудь, всё-таки он рассчитан на возраст «8+», но в итоге я только сидел рядом и иногда подавал детали.

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

Теперь дилемма — дочка хочет ещё, но, блин, в данном случае ей больше понравилось собирать, чем играть в него. Получается какое-то одноразовое развлечение, при этом недёшевое. У Марка Робера конструкторов много, минимум десять коробок. И после сборки они будут просто пылиться? Такое себе.

Думаю, может купить, раз дочке нравится, но после сборки разбирать и продавать как б/у?

Ребёнок собирает деревянный конструктор с синей лентой и жёлтыми деталями, рядом лежит инструкция с QR-кодом и надписью «CRUNCHLABS.COM/DU».
Дочка собрала игру «Охота на уток» Марка Робера

16 комментариев

Управление «Алисой»

Хочу попробовать решить одну прикладную задачу, пока не буду описывать какую. Для этого надо научиться управлять яндексовской «Алисой» из локальной сети. В идеале — проговаривать произвольную фразу. Почитал интернет, посмотрел как это делается.

Официальный документации нет, но хорошие люди провели обратную разработку и задача выглядит как будто бы не очень сложно. Получаем токен, в сети через mDNS по имени _yandexio._tcp.local. ищем нужную колонку, находим, команды отдаём по протоколу WebSocket.

Так как я сейчас стараюсь больше времени проводить за книгой, чем за компьютером, всё, что успел — освоить модуль zeroconf для Гоу, чтобы по имени колонки получать её айпи-адрес и порт.

Получившийся код выглядит так:

import "github.com/grandcat/zeroconf"
// …тут остальные импорты…

const Service = "_yandexio._tcp"
const Domain = "local."

func getAlisaAddr(instance string) (*zeroconf.ServiceEntry, error) {
    resolver, err := zeroconf.NewResolver(nil)
    if err != nil {
        log.Fatalln("Failed to initialize resolver:", err)
    }

    entries := make(chan *zeroconf.ServiceEntry)
    ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)

    err = resolver.Lookup(ctx, instance, Service, Domain, entries)
    if err != nil {
        return nil, err
    }

    entry := <-entries
    cancel()

    <-ctx.Done()

    if entry == nil {
        return nil, fmt.Errorf(
              "Failed to lookup for service instance '%s'",
              instance
       )
    }

    return entry, nil
}

Теперь надо разобраться где взять токен и как выглядят команды.

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

Канал Марка Робера

Коробка от Crunch Labs с надписью «BY MARK ROBER» и логотипом Duck Game, держится в руке на фоне снега; видна адресная этикетка UPS Ground.
Набор для самостоятельного изготовления «Охоты на уток» Марка Робера

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

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

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

В один момент реклама подействовала, и дочка начала просить купить один из наборов. Я не стал сопротивляться — самому интересно как выглядят наборы вживую и насколько их будет интересно собирать. Выбрали на «Ебее» подешевле — из подержанного. Я решил новый не брать, вдруг собирать их не понравится.

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

9 комментариев

Книга против компьютера

У меня ноутбук и я частенько дрейфую по дому с ним — либо работаю, либо развлекаюсь. Так просто одно от другого не отличить. Для моих близких это создаёт проблему — совершенно непонятно можно меня отвлечь или нет. Из-за этого, насколько я заметил, жена и дочка стараются меня не трогать, если я с ноутбуком. В итоге, им не хватает меня, а мне — их.

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

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

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

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

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

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

В-четвёртых, подобрал несколько каналов на «Ютубе», которые интересно было бы смотреть всем. За выходные, когда меня тянуло обратно онлайн, мы совокупно несколько часов провели на всяким условно-познавательным контентом, типа адвоката Егорова или Фроста.

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

2 комментария

Спойлеры по длине

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

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

Интересно как на них влияет самый главный спойлер — длина произведения. Надо будет спросить.

Я прямо сейчас отложил чтение книги «Идеальный хищник» супругов Стефани Стратди и Тома Паттерсона, чтобы написать этот текст. Это документальная книга о том как жена боролось за своего мужа, подхватившего во время путешествия по Египту супербактерию, устойчивую ко всем известным антибиотикам.

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

В этой книге есть ещё и ненавистная многими любителями твистов «сценарная броня» — главный герой книги гарантированно не умрёт, иначе как бы он смог поучаствовать в написании книги.

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

2 комментария

«Телефон»

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

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

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

Если вы тоже редко звоните, оно там лишнее. Поместите туда что-нибудь такое, чем вы пользуетесь чаще.

Экран смартфона с обоями в виде рыбы-клоуна среди морского анемоны; видны иконки приложений: Телефон, Сообщения, WhatsApp, Покупки, OpenConnect, Квартира, Opera, Камера, Telegram.
Экран моего смартфона — приложение «Телефон» на первом экране, но не в строке самых частых приложений

10 комментариев