Пишу, по большей части, про историю, свою жизнь и немного про программирование.

Позднее Ctrl + ↑

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

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

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

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

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

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

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

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

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

Купил «Baseus GaN3 Pro Quick Charger Adapter 2C + 2U CCGP000101» на четыре порта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Дочка собрала игру «Охота на уток» Марка Робера

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

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

Официальный документации нет, но хорошие люди провели обратную разработку и задача выглядит как будто бы не очень сложно. Получаем токен, в сети через 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
}

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

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

Набор для самостоятельного изготовления «Охоты на уток» Марка Робера

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

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

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

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

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

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

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

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

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

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

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

Свил себе вчера у дочки в комнате гнездо и читал в нём книжки

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

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

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

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

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

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

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

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

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

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

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

Ранее Ctrl + ↓