Обновление прошивки автомобиля
Казалось бы, пора привыкнуть — у меня дома даже выключатели имеют прошивку, на которую иногда прилетают обновления через интернет.
При этом ещё больше изумляет, что в машине появляются новые возможности, которых раньше не было. Хотя мне, как будто бы, по роду занятий положено воспринимать это вполне обыденно.
Опасаюсь, что подсяду на эти положительные эмоции, и без них, когда обновления кончатся, будет
Конец ускоренной strlen на «Флиппере»
В итоге, эпопея с ускорением функции замера длины строки в кодировке
У меня с самого начала этой затеи были сомнения. Я понимал, что для того, чтобы решить
Тем не менее, я с удовольствием повозился инструкциями SIMD. До этого
Моя функция, кстати, претерпела некоторые изменения:
size_t furi_string_utf8_length(FuriString* str) {
size_t len = string_size(str->string);
const char * cstr = string_get_cstr(str->string);
const char* end = cstr + len;
if(len >= sizeof(uint8x4_t)) {
const char* vend = end - sizeof(uint8x4_t);
int8x4_t zero = 0x00000000;
int8x4_t one = 0x01010101;
int8x4_t threshold = -1077952577; // -65, -65, -65, -65
do {
int8x4_t vec = *(int8x4_t*)cstr;
__ssub8(threshold, vec);
uint8x4_t result = __sel(one, zero);
len -= __usada8(result, zero, 0);
cstr += sizeof(uint8x4_t);
} while(cstr <= vend);
}
while(cstr < end) {
signed char c = *cstr++;
len -= c < -64;
}
return len;
}Оказалось, что тип FuriString хранит в себе бинарную длину строки, поэтому я переделал код, чтобы он не пытался читать чужую память. В векторизованой части это было вероятно, но своих рассуждений и дискуссии по коммиту я сделал вывод, что в случае «Флиппера» это не имеет
Тем не менее, если использовать бинарную длину, код получается более аккуратным и немного упрощается, так что грех не воспользоваться. Интересно бы, кстати, измерить наивный алгоритм без векторной части, но с использованием бинарной длины, наверное займусь этим в ближайшее время.
В итоге, решая эту, возможно несуществующую, проблему, я опробовал на практике векторные инструкции расширений NEON и DSP SIMD, научился делать два параллельных запроса на вливание в «Гитхабе» и ещё раз вспомнил как компилировать и заливать свою прошивку во «Флиппер Зеро».
Опять голова болит
Блин, какой день уже болит голова, лишая сил. Внутри всё рвётся от миллиона дел, которые хочется сделать, но сил никаких нет. Не то, чтобы я лежу пластом, рутину вполне удаётся делать,
Головная боль вообще мой бич — иногда голова так болит, что не сплю несколько дней. Такое было несколько раз в жизни. К счастью не в этот раз.
К сожалению, врачи не нашли у меня ничего им понятного, такого что можно было бы исправить и эти боли прекратились бы. Она так меня достаёт, что одна из первых заметок на этом сайте была о головной боли.
Как же я устал.
М. Г.
Рассматривали тут с приятелем книгу с дореволюционными шрифтами, заметили непривычное сокращение — «М. Г.». Долго думали что это такое, потом меня осенило, что это «милостивый государь» или «милостивая государыня».
Сгорели две GaN-зарядки
Сгорели в момент включения с разницей всего в несколько дней. Вставлялись в две разные розетки, я их посмотрел потом тестером розеток — ничего необычного. Ничего не понимаю. Что это? Дефект партии (я их сразу две покупал)? Запланированное старение?
Собачий возраст
Сегодня были у мамы жены, повод печальный, но я не хочу об этом. У неё живёт лабрадор Челси, которой 16 лет. Я не раз уже слышал, что возраст собаки надо умножать на семь, чтобы получить эквивалентный человеческий возраст.
Мне всегда это казалось сомнительным, ведь очевидно, что хотя бы в начале и конце этой шкалы соответствия нет — половая зрелость у собак наступает в год или полтора, а шестнадцатилетний лабрадор не ведёт себя и не двигается так, как человек, которому за сто.
Погуглил и нашёл более точную форуму — надо взять натуральный логарифм от возраста собаки, умножить на 16 и прибавить 31. Таким образом, «человеческий» возраст Челси — 16 × ln(16) + 31 ≈ 75 лет. Это куда больше похоже на правду.
«Аватар: легенда об Аанге»
Недавно по приходе с работы застал дочку, прыгающую по дивану и выкрикивающую «Аппа, Аппа,
Дочка им очень увлеклась и вот уже какую неделю смотрит. Аппа — это магический летающий бизон, друг главного героя,
При этом больше всего она зафанатела
Поскольку дочка очень любит изготавливать всё, что её впечатлило, Зуко тоже был немедленно воплощён — под него был загримирован и одет платонический друг
В кадр попала другая её поделка — кошелёк из кожи, к «Аватару…» он отношения не имеет, просто рядом лежал.
Не особо жажду смотреть оригинальный сериал, но планирую попробовать на вкус тематическую поделку от «Нетфликса». Фанаты её ругают,
Проблемы лысых
У обеих наших машин панорамная крыша — стекло, прикрытое шторкой. Жена любит ездить с открытой шторкой, так как стекло сверху даёт ощущение простора. Я это могу понять, мне самому нравится. Чего, надеюсь, никогда в полной мере не поймёт моя жена — почему в мороз иногда мне приходится ездить в шапке. Шторка дают дополнительную теплоизоляцию, без которой у меня мёрзнет голова — я её брею налысо уже много лет.
Отложенные сообщения
Для меня один из самых важных рабочих инструментов «Телеграма» — отложенные сообщения. Я крайне редко использую их в личной переписке, зато постоянно по работе.
Как правило, на работу я приезжаю примерно за полчаса до начала рабочего дня. Потихоньку настраиваюсь на работу, просматриваю свои списки с задачами и создаю несколько отложенных сообщений, которые попадут в групповые чаты или личные сообщения с началом рабочего дня. Как правило это напоминания о регламентных работах или зависших вопросах.
Второй сценарий — когда мне приходит в голову
Разумеется есть несколько более редких сценариев использования, просто эти два у меня возникают постоянно. Если вы не используете отложенные сообщения, но у вас в голове иногда мелькает мысль
IAndex.Music
Почти пять лет назад я рассуждал про грядущую культурную разобщённость — думаю, что персонально генерируемый контент напрочь убьёт некоторые темы для разговоров. Не с кем будет обсудить понравившиеся фильм или книгу — как это сделать, если у каждого они свои?
За пять прошедших лет нейросети пока ещё не развились до такого уровня, но уже появилась возможность проверить мои рассуждения на практике. С момента появления сервиса «Моя волна» в «Яндекс.Музыке», я почти всю музыку слушаю там, совершенно не утруждая себя запоминанием исполнителей или отдельных композиций, которые в данный момент хорошо легли на моё настроение.
Кажется я мало подвержен музыкальной ностальгии, поэтому если трек вернётся в следующий раз, — очень хорошо, не вернётся — ну послушаю
Сделал PR с новой strlen во «Флиппер»
Спасибо Шурику Бабаеву за помощь, добавил свой коммит с векторизованной функцией для измерения длины строки в кодировке
Попутно выяснилось, что «Флиппер» использует функцию замера длины из библиотеки M*LIB. Можно было бы закоммитить новую версию в неё, но не стал этого делать по двум причинам.
Кстати, сделал итоговые замеры. Миллион итераций с четырьмя короткими строками (от ЯБ12341 до ЯБ12341234) моя версия делает за шесть секунд, тогда как прежняя — за 39.
«Жгонский язык» А. В. Громова
Один из друзей поделился проектом по некоторым узким разделам истории Казани, который он делает потихоньку в свободное время. В рамках этого проекта он разыскивает целую гору различной редкой литературы, которой не то что онлайн, даже в твёрдом виде сложно отыскать.
Я ему попытался помочь и в некоторых позициях даже преуспел. Особенно хочу выделить книжку Александра Вячеславовича Громова «Жгонский язык», которую
Книжка редкая — выпущено было всего 500 экземпляров, но интересна, конечно, только очень узким специалистам.
Жгонский язык — тайный язык ремесленников, изготавливавших валенки. Как следует из слова «тайный», нужен был, чтобы оберегать профессиональные секреты от посторонних.
Был очень распространён в деревнях и сёлах около Костромы, но к настоящему моменту почти вымер. На Ютубе можно найти отдельных людей, которые ещё его используют, но и они не вечные.
Книжка пришла, и у меня дилемма. С одной стороны, я очень трепетно отношусь к авторским правам — следую принципам добросовестного цитирования, всегда смотрю лицензию используемых изображений и так далее. С другой стороны книга «Жгонский язык» как будто бы совсем не коммерческий проект, но автор умер и из каких соображений он её издавал точно сказать нельзя.
В общем, мне хочется её отсканировать и выложить в открытый доступ, чтобы люди могли воспользоваться уникальным справочником, если он им нужен для исследований. С другой стороны — авторские права и всё такое. Попробую почитать на тему того не оставил ли Громов
Если нет, подарю книжку своему другу, уберу соблазн с глаз долой.
Надо бы добавить мой strlen во «Флиппер»
Можно подумать, что я забросил возню с «Флиппером», так как
До недавнего времени я её надеялся ускорить, поэтому пытался вносить
Будем считать, что с этим вопросом я закончил, хочу теперь попробовать добавить этот код в прошивку «Флиппера». Остались сделать два шага.
На замерах моя реализация обогнала встроенную на порядок — восемь секунд против 55 на двух миллионах итераций по небольшой строке. Но теперь надо воткнуть её в прошивку, чтобы учесть влияние реализации строкового типа FuriString, в котором будет использоваться эта функция и провести новые замеры. Надеюсь сделать это в ближайшие выходные.
Второй шаг для меня сложнее. У меня уже есть выписанная прошивка «Флиппера», в которой торчит непринятый коммит. Я никогда раньше не создавал на «Гитхабе» два разных запроса в рамках одного чужого проекта, не знаю как это делается. Если
Шутка, которая не работает
Тут в чате бывших коллег, где мы постим мемы, пробежала картинка, которая больше повеселила меня не смыслом, который в неё вкладывал автор, а тем, что на системе, под которую написан код на ней (Виндоуз, очевидно), она не выполнится.
Проблема тут в том, что вызов os.remove умеет удалять только файл, тогда как System32 — папка, знакомая многим пользователям Виндоуз. Я не уверен точно, но думаю, что при её удалении система будет сопротивляться. Она, вроде,
Возможно, кстати, код и не предполагалось делать рабочим, а шутка немного тоньше — ведь вызов os.remove можно прочитать как «удалить операционную систему», не знаю, я в любом случае хотел рассказать не об этом.
Дело в том, что шутка написана под ОС, под которой она работать не будет, но смешно то, что под ОС, на которую она рассчитана не была, она вполне может заработать.
В Линуксе или МакОСи надо в любом месте, где будет запускаться эта программа, создать папку C:, в ней — папку Windows, а в ней — файл System32, который и удалится, если выпадет искомое число на рандомайзере.
Киргизский самовар
Почти три года назад я летал на международный форум в Киргизию и до сих пор иногда вспоминаю ту поездку. Принимали нас по высшему разряду, большое спасибо киргизской стороне, тут выше всяческих похвал.
Но чаще всего я вспоминаю совершенно неожиданное — самостройное место для отдыха по пути
Выглядит оно довольно простенько, но меня сильно зацепил там один нюанс. Дело в том, что на первой линии там стоят огромные дровяные самовары, которые я рассматривал бы, наверное, часами, дай мне волю.
Все самовары, которые мне удалось рассмотреть (а времени было не так уж много), — дореволюционные, очень красивые, с клеймами производителей и медалями за победу во всевозможных выставках.
Каждому более ста лет, где их взяли — ума не приложу. По всей видимости, специально никто именно дореволюционные не подбирал, думаю соображения сугубо практические — с электричеством на этом островке плохо, а дровяные самовары именно тогда делали очень качественные, да ещё огромных объёмов.
Песенный и разговорный языки
В последнее время часто смотрю разборы преподавателем вокала Джоном Каллиганом творчества различных исполнителей. У меня как будто бы неплохой слух, но я совершеннейший ноль в теории, несмотря на то, что в детстве занимался музыкой и даже немного попел в хоре. Без особого успеха, правда.
В общем, мне интересно это посмотреть, как раз потому что я ничего в этом не понимаю.
Так вот, Джон, в разборе вокала Шевчука, сказал интересную штуку, о которой я
На английском мне всегда было гораздо сложнее понимать песни, даже в те периоды, когда я хорошо понимал английскую речь (уровень аудирования у меня постоянно скачет в течение жизни).
Возможно это потому, что я чаще тренируюсь распознавать речь и этот навык мало что даёт в плане распознавания слов в песнях
Какой же купить смартфон?
Продолжаю неспешно выбирать себе новый смартфон. Как я уже ворчал, на третий год жизни с «Хуавеем» у меня накопилось много претензий и хочется переехать
Главная претензия связана с тем, что «Хуавей» отлучили от сервисов Гугла.
Я думал, что смогу с этим жить, в момент покупки это не выглядело проблемой, но на долгосрочной дистанции сильно задолбало.
Второй набор претензий к самому устройству, — у меня раскладной Mate Xs 2. Несмотря на то, что это не первое поколение раскладных устройств, недостатков у него хватает — довольно компромиссная камера, временами неустойчивый приём, аккумулятора хватает только до вечера, иногда с натягом.
Широкий экран — это шикарно, но поверх него специальная плёнка, которую
В общем, очень я настроился смартфон поменять. Только вот на что? Посмотрел несколько обзоров, даже вспомнил, что знаю одного из техноблогеров с канала «Дроидер» — снимали
Пока фаворит по всем моим хотелкам — Oppo Find X7 Ultra. Стандартный магазин приложений, бомбические камеры, глобальная гарантия на весь мир, топовое железо. Хотя до сих пор продолжаю изучать рынок, всё больше склоняюсь к покупке именно этого устройства.
Любовь и химия
Интересно, но при всей своей увлечённости наукой — я подписан на очень много разноплановых
Ну там прервать несчастную любовь или возродить погасшую. Не знаю какая там статистика по сердечным страданиям, а по разводам слышал, что в России распадается более 70% браков. Как мне кажется, это очень много. Хочется думать, что сходились эти пары по любви, ну хоть в большей части.
В выходные вёз дочку на такси за город. Обычно я не люблю разговаривать с таксистами, но тут дорога была дальняя, дочка спала. Таксист оказался неплохим парнем и мы много чего с ним обсудили. В основном он мне рассказывал про свою жизнь, а я слушал.
Я и раньше знал, что есть пары, которые живут как соседи, — среди моих знакомых такие встречаются. Вместе
С таксистом эту тему я не стал развивать —
Возвращаясь к науке.
Вот интересно — я на такие исследования не натыкался, потому что не искал или просто их нет
Дискета на 90 мм
Некоторое время назад я прочитал в «Википедии», что дискета на 3,5 дюйма на самом деле метрическая и её ширина — 90 миллиметров, а вовсе не 88,9 как должно было бы быть. Поскольку «Википедия» источник сомнительный, я решил это проверить — нашёл дома дискету и ещё одну купил. Замерил обе линейкой. Получилось примерно 88,9 миллиметров.
Многие засомневались в точности моей линейки, несколько читателей даже замерили свои дискеты штангенциркулем и все замеры совпали с тем, что написано в «Википедии» — получилось 90 миллиметров.
Поскольку покупать штангенциркуль мне не хотелось, поспрашивал по друзьям и знакомым. У одного из товарищей
Всё это время мы никак не могли пересечься, но сегодня он
Заодно разобрал дискету и померил сам диск. Получилось
Репер 1890 года
Ходил сегодня в музей Лобачевского на территории КФУ — вуза, где я
После музея немного погулял по территории и на здании кафедры астрономии и космической геодезии увидел репер — геодезическую метку. Я только недавно начал обращать на них внимание, когда узнал, что в нашем городе есть несколько ещё дореволюционных времён.