Пора перенести измерение длины на «Флиппер»

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

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

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

Полтора

Не раз приходила в голову мысль, что «полтора» — это какое-то странное слово. Что за «тор» такой, половина которого даёт один с половиной?

Сегодня я узнал, что «полтора» — это «полвтора». Была когда-то такая форма числительного в русском языке. Дальше шло «полтретья», «полчетвёрта» и так далее.

Полвторого на часах — это ровно то же самое.

На странице книги выделено слово «полседьма» в контексте указания глубины моря на Дону: «шесть и полседьма фута Голландских».
«Деяния Петра Великого, мудрого преобразителя России : собранные из достоверных источников и расположенные по годам», И. И. Голиков, М., Университетская типография у Н. Новикова, 1788—1789

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

ARM бывают разные

Преодолев внутреннее сопротивление, я всё-таки занялся переносом векторизованной функции измерения длины строки на «Флиппер Зеро». Почти сразу выяснилось, что моя интуиция меня не обманула — на этом пути куча проблем.

Во «Флиппере» стоит процессор ARM, а они, как оказалось, бывают очень разные.

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

Ошибка компиляции: не удалось выполнить инлайн-вызов встроенных функций NEON (vdupq_n_u8, vaddq_u8, vandq_u8) из-за несоответствия целевых опций сборки для arm-none-eabi.
Некоторые ошибки компиляции упомянутой функции под «Флиппер Зеро»

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

Сначала компилятор заявил мне, что не нашёл некоторые векторные функции, в частности функцию нахождения минимума vminvq_u8 и суммы vaddvq_u8.

Ветку с vminvq_u8 я временно убрал, а функцию суммы vaddvq_u8 решил заменить на поэлементное сложение (vaddq_u8), которая, вроде, компилятору знакома.

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

uint8x16_t len_v = vdupq_n_u8(0);
int reset = 0;

// тут у нас цикл
uint8x16_t gt = vcgtq_s8(operand, threshold);
len_v = vaddq_u8(vandq_u8(gt, delta), len_v);

if (++reset >= 255) {
    for (size_t i = 0; i < sizeof(uint8x16_t); i++) {
        len += *((uint8_t *)&len_v + i);
    }

    reset = 0;
    len_v = vdupq_n_u8(0);
}

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

Сборка заругалась на ошибку target specific option mismatch, означающую, что указанное при компиляции железо не поддерживает те возможности, которые я пытаюсь использовать в коде. Пришлось лезть в тулчейн, чтобы разобраться какие ключи компиляции сейчас используются.

В файле compile_commands.json можно увидеть, что при сборке используется ключ -mfpu=fpv4-sp-d16, тогда как мне, чтобы использовать нужные команды векторизации нужен ключ -mfpu=neon.

Так как ключи компиляции указывали разработчики «Флиппера», думаю, они в точности знали в какие значения их выставить. Согласно спецификации на борту использованного во «Флиппере» процессора SIMD есть, но, видимо, какой-то другой. Так как SIMD написано в разделе DSP Extension, надо смотреть что это такое, может всё-таки можно использовать эти команды для ускорения.

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

DSP SIMD для Flipper Zero

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

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

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

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

#include <arm_acle.h>

size_t strlen_arm_utf8(char * str) {
    uint32_t len = 0;
    int8x4_t zero = 0x00000000;
    int8x4_t one  = 0x01010101;
    int8x4_t threshold = -1077952577; // -65, -65, -65, -65

    for (;;) {
        uint8x4_t result;
        int8x4_t vec = *(int8x4_t *) str;

        __uadd8(0xFFFFFFFF, vec); result = __sel(zero, one);
        if (result > 0) {
            if (result == 0x01000000) {
                __ssub8(threshold, vec); result = __sel(zero, one);
                return __usada8(result, 1, len);
            }
            break;
        }

        __ssub8(threshold, vec); result = __sel(zero, one);
        len = __usada8(result, zero, len);

        str += sizeof(uint8x4_t);
    }

    for (signed char c; (c = *str); str++) {
        if (c >= -64) {
            len++;
        }
    }    

    return len;
}

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

«Щенячья школа»

Интересно, что дочка частенько вдохновляется в своих поделках фильмами, которые мы смотрим. Если они ей нравятся, разумеется.

Недавно смотрели документальный фильм про обучение собак-поводырей «Щенячья школа». Очень рекомендую, кстати, не знал, что таких собак настолько сложно готовить.

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

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

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

Энтекофобия

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

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

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

Замеры strlen_uft8 на «Флиппере Зеро»

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

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

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

FuriHalRtcDateTime curr_dt;
furi_hal_rtc_get_datetime(&curr_dt);
uint32_t start = furi_hal_rtc_datetime_to_timestamp(&curr_dt);

for (int i = 0; i<1000000; i++)
len += strlen_utf8("This is a test и русских букв тоже");

furi_hal_rtc_get_datetime(&curr_dt);
uint32_t stop = furi_hal_rtc_datetime_to_timestamp(&curr_dt);

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

Интерфейс с оранжевым дисплеем, показывающим число 340000005, кнопками «BACK», «SAVE SCREENSHOT», «LOGS», статусом «READY.» и навигационным джойстиком.
Скриншот экрана «Флиппера», снятый через специальную программу; отображается суммарная длина и время работы — пять секунд

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

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

Небольшой отпуск

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

Заставляю себя не думать о работе, но по инерции мысли всё равно туда скатываются. Ну хотя бы рабочие чаты удаётся не читать. А вот что не удаётся — это выспаться. Я, как уже много раз писал, — «сова», а поскольку дочку надо отправлять в школу (она ездит на школьном автобусе), вставать приходится в обычные 6:30 утра.

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

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

Репер 1890 года

Ходил сегодня в музей Лобачевского на территории КФУ — вуза, где я когда-то учился. Музей организовали совсем недавно, до этого я в нём не был и даже про него не знал. В КФУ вообще множество музеев, но все они открыты в очень неудачно время — когда я на работе. Поэтому, пока в отпуске, решил попасть хоть в какой-нибудь.

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

Ржавая круглая металлическая табличка с надписью «ИНВЕНТАРНЫЙ № 1890 КАО» на белой стене.
Репер на здании кафедры астрономии и космической геодезии

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

Дискета на 90 мм

Некоторое время назад я прочитал в «Википедии», что дискета на 3,5 дюйма на самом деле метрическая и её ширина — 90 миллиметров, а вовсе не 88,9 как должно было бы быть. Поскольку «Википедия» источник сомнительный, я решил это проверить — нашёл дома дискету и ещё одну купил. Замерил обе линейкой. Получилось примерно 88,9 миллиметров.

Многие засомневались в точности моей линейки, несколько читателей даже замерили свои дискеты штангенциркулем и все замеры совпали с тем, что написано в «Википедии» — получилось 90 миллиметров.

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

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

Заодно разобрал дискету и померил сам диск. Получилось что-то около 86,5 мм. Тоже не 3,5 дюйма.

Рука измеряет штангенциркулем ширину чёрного прямоугольного устройства, установленного на колене в джинсах; фон размыт, виден белый коробок слева.
Дискета 3,5 дюйма на самом деле метрическая — 90 миллиметров

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

Любовь и химия

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

Ну там прервать несчастную любовь или возродить погасшую. Не знаю какая там статистика по сердечным страданиям, а по разводам слышал, что в России распадается более 70% браков. Как мне кажется, это очень много. Хочется думать, что сходились эти пары по любви, ну хоть в большей части.

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

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

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

Возвращаясь к науке.

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

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

Какой же купить смартфон?

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

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

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

Скриншот экрана смартфона с виджетом погоды в Казани: -15°C, 17 октября, суббота; видны иконки Gmail, Календарь, Карты, Финансы, Галерея.
Плёнка на экране за год стала очень некрасиво отклеиваться, видимо надо менять

Второй набор претензий к самому устройству, — у меня раскладной Mate Xs 2. Несмотря на то, что это не первое поколение раскладных устройств, недостатков у него хватает — довольно компромиссная камера, временами неустойчивый приём, аккумулятора хватает только до вечера, иногда с натягом.

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

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

Пока фаворит по всем моим хотелкам — Oppo Find X7 Ultra. Стандартный магазин приложений, бомбические камеры, глобальная гарантия на весь мир, топовое железо. Хотя до сих пор продолжаю изучать рынок, всё больше склоняюсь к покупке именно этого устройства.

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

Песенный и разговорный языки

В последнее время часто смотрю разборы преподавателем вокала Джоном Каллиганом творчества различных исполнителей. У меня как будто бы неплохой слух, но я совершеннейший ноль в теории, несмотря на то, что в детстве занимался музыкой и даже немного попел в хоре. Без особого успеха, правда.

В общем, мне интересно это посмотреть, как раз потому что я ничего в этом не понимаю.

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

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

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

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

Киргизский самовар

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

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

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

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

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

Бронзовый самовар с гравировкой: герб, надпись «ТОВАРИЩЕСТВО ТОРГОВАГО ДОМА БР. ШЕМАРИНЫХЪ» и изображения монет с датами 1894, 1896, 1903–4.
Дореволюционный самовар на дороге на Иссык-Куль, таких там несколько десятков

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

Шутка, которая не работает

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

Проблема тут в том, что вызов os.remove умеет удалять только файл, тогда как System32 — папка, знакомая многим пользователям Виндоуз. Я не уверен точно, но думаю, что при её удалении система будет сопротивляться. Она, вроде, как-то защищена от такого.

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

Дело в том, что шутка написана под ОС, под которой она работать не будет, но смешно то, что под ОС, на которую она рассчитана не была, она вполне может заработать.

В Линуксе или МакОСи надо в любом месте, где будет запускаться эта программа, создать папку C:, в ней — папку Windows, а в ней — файл System32, который и удалится, если выпадет искомое число на рандомайзере.

Скриншот кода russian_roulette.py: импорты random, os. Проверка случайного числа 0-6. Если 1 — удаление C:\Windows\System32.

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

Надо бы добавить мой strlen во «Флиппер»

Можно подумать, что я забросил возню с «Флиппером», так как какое-то время писал об этом часто, а сейчас поутих. На самом деле я всё жду, когда разработчики прошивки вмержат мой коммит для поддержки Юникода, плюс потихоньку вожусь со своей векторной реализацией функции для определения длины строки в кодировке UTF-8.

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

Будем считать, что с этим вопросом я закончил, хочу теперь попробовать добавить этот код в прошивку «Флиппера». Остались сделать два шага.

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

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

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

«Жгонский язык» А. В. Громова

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

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

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

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

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

Разворот словаря с определениями слов на русском языке, включая «Балзи́мко», «Безми́жово», «Белёхово» и другие, с пояснениями и примерами употребления.
Разворот книги «Жгонский язык» А. В. Громова

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

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

Если нет, подарю книжку своему другу, уберу соблазн с глаз долой.

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

Сделал PR с новой strlen во «Флиппер»

Спасибо Шурику Бабаеву за помощь, добавил свой коммит с векторизованной функцией для измерения длины строки в кодировке UTF-8 в кодовую базу прошивки «Флиппера».

Попутно выяснилось, что «Флиппер» использует функцию замера длины из библиотеки M*LIB. Можно было бы закоммитить новую версию в неё, но не стал этого делать по двум причинам.

Во-первых, моя версия заточена под конкретную платформу, а M*LIB, кажется, универсальная библиотека. Во-вторых, если бы мой коммит в неё и приняли, надо было бы ещё каким-то образом добиться обновления библиотеки в прошивке «Флиппера», а это, наверняка, непростая задача.

Кстати, сделал итоговые замеры. Миллион итераций с четырьмя короткими строками (от ЯБ12341 до ЯБ12341234) моя версия делает за шесть секунд, тогда как прежняя — за 39.

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

IAndex.Music

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

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

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

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

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

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

Отложенные сообщения

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

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

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

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

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

Проблемы лысых

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

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

«Аватар: легенда об Аанге»

Недавно по приходе с работы застал дочку, прыгающую по дивану и выкрикивающую «Аппа, Аппа, йип-йип». Влияние школы — сверстники заинтересовали аниме-сериалом «Аватар: легенда об Аанге».

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

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

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

В кадр попала другая её поделка — кошелёк из кожи, к «Аватару…» он отношения не имеет, просто рядом лежал.

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

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

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

← сюда туда →