Casio WQV-3

К заметке, где я писал про камеру для «Флиппера», один из читателей прислал ссылку на часы «Casio WQV-1» начала 2000-х. Интересны они тем, что у них тоже есть камера, позволяющая делать чёрно-белые снимки в оттенках серого с разрешением 120×120.

Разумеется я загорелся их купить.

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

Оцените какой ретро-футуристичный дизайн! Как будто из второй части трилогии «Назад в будущее».

Всего в линейке таких часов было четыре модели с номерами «1», «2», «3» и, почему-то, «10». Третья модель, которую я и купил, отличается от первой внешним видом и другой камерой — цветной с разрешением 176×144. Правда экранчик цвет не показывает, да и снимок умещается не весь — при просмотре видно только центральную часть.

Серебристые наручные часы Casio Wrist Camera с цифровым экраном, надписями «COLOR DATA», «SHUTTER», «IR BEAM» и металлическим браслетом на сером фоне.

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

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

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

Я немного посмотрел АПИ для работы с инфракрасником во «Флиппере» и, пока не забыл узнанное, сделаю заметки для себя.

Для передачи сигналов подойдёт одна из двух функций. Если повезёт это будет infrared_send, которая принимает команды в одном из стандартных кодеков, либо infrared_send_raw_ext, где придётся возиться с ручным кодированием битов.

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

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

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

Фигня мелкая

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

Её научное название «Fignya melkaya» (то есть, натурально, «фигня мелкая»). Это название ей дали в 2009-м году сотрудник Ульяновского педагогического университета Алексей Соловьёв и основатель мюнхенского энтомологического музея Томас Витт.

Есть подозрение, что за названием всё-таки больше стоит Соловьёв. Интересно как он объяснил своему немецкому коллеге свой выбор?

Два образца бабочек: F. melkaya, HT (слева) и F. ravalba, HT (справа), каждый с масштабной линейкой 5 мм, на белом фоне.

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

Мороз и собачий язык

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

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

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

ТЭЖЭ с Некрасова

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

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

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

Зелёная стеклянная бутылка с оттиском «ТЭЖЭ» и символом на дне, рядом — чёрно-белая реклама «Тройной одеколон №3» Наркомпищепрома СССР, «Лучшее освежающее средство».
Найденный бутылёк. Рядом реклама тройного одеколона ТЭЖЭ из газеты «Правда», №32, 2 февраля 1938 г

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

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

Справка о тресте ТЭЖЭ РСФСР: заводы парфюмерной, жировой и костообрабатывающей промышленности в Москве и филиалы по СССР с перечнем производств.
Страница справочника «Вся Москва : адресная и справочная книга», Москва: товарищество А. С. Суворина «Новое время», 1930 год

«ТЭЖЭ» был огромным трестом, объединяющим в себе целый список фабрик. В 1928 году на него работали более 7000 рабочих. Трест имел следующие основные производства: парфюмерно-косметическое, мыловаренное, свечное, клееваренное, желатиновое и аппретурное, где обрабатывали текстильные материалы специальным составом — аппетром, чтобы придать им жёсткости и несминамости.

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

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

99 бутылок: препроцессор Си

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

С тех пор как мне много лет назад кто-то показал как можно на нём писать программы, меня не оставляла идея написать на нём «песню о пиве».

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

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

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

#if 0
Bolknote.ru, 2024.11.05
To run:
gcc -P -E - < 99 | sed 's/\\n */\n/g'
#endif

#define CAT(a, b) a##b
#define SECOND(a, b, ...) b
#define TEST(...) SECOND(__VA_ARGS__, 0)
#define LF \n

#define DEC(n) CAT(DEC_,n)
#define DEC_0 9
#define DEC_1 0
#define DEC_2 1
#define DEC_3 2
#define DEC_4 3
#define DEC_5 4
#define DEC_6 5
#define DEC_7 6
#define DEC_8 7
#define DEC_9 8

#define DEC_X0(a, b) IF_ELSE(ISZERO(b)) (DEC(a)) (a)

#define ISEND(a, b) TEST(ISEND_ ## a ## b)
#define ISEND_01 ,1

#define ISZERO(n) TEST(ISZERO_ ## n)
#define ISZERO_0 ,1

#define ISONE(n) TEST(ISONE_ ## n)
#define ISONE_1 ,1

#define IF_ELSE(b) CAT(IF_, b)
#define IF_0(i) ELSE_0
#define IF_1(i) i ELSE_1
#define ELSE_0(e) e
#define ELSE_1(e)

#define PLUR(n) IF_ELSE(ISONE(n)) (bottle) (bottles)

#define PRINT_PLUR(a, b) IF_ELSE(ISZERO(a)) (b PLUR(b)) (CAT(a, b) bottles)

#define PRINT_B(a, b) IF_ELSE(ISZERO(b)) \
        (IF_ELSE(ISZERO(a)) \
            (No bottles) \
            (PRINT_PLUR(a, b)) \
        ) \
        (PRINT_PLUR(a, b)) of beer

#define PRINT_ROW(a, b) \
    PRINT_B(a, b) on the wall, PRINT_B(a, b)! LF \
    Take on down, pass it around, LF \
    PRINT_B(DEC_X0(a, b), DEC(b))! LF LF


#define STOP(...) No more bottles of beer on the wall, LF \
No more bottles of beer! LF \
Go to the store and buy some more, LF \
PRINT_B(9, 9) on the wall!

#define EMPTY()
#define DEFER(...) __VA_ARGS__ EMPTY()

#define CROSS1(a, b) PRINT_ROW(a, b) \
    DEFER(IF_ELSE(ISEND(a, b)) (STOP) (CROSS2)) (DEC_X0(a, b), DEC(b))

#define CROSS2(a, b) PRINT_ROW(a, b) DEFER(CROSS1) (DEC_X0(a, b), DEC(b))

#define MUL0(...) MUL1(MUL1(MUL1(MUL1(__VA_ARGS__))))
#define MUL1(...) MUL2(MUL2(MUL2(MUL2(__VA_ARGS__))))
#define MUL2(...) MUL3(MUL3(MUL3(MUL3(MUL3(__VA_ARGS__)))))
#define MUL3(...) __VA_ARGS__

#define RUN(a, b) MUL0(CROSS1(a, b))

RUN(9, 9)

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

«Мото-трек» с Некрасова

Продолжаю описывать находки с чердака дома на Некрасова.

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

Ветхая коробка советской настольной игры «Мото-трек» с изображением мотогонщиков и трассы; надпись: «Выигрывает тот, чей мотоциклист первым преодолевает девять кругов!

Это детская игра «Мото-трек», выпущенная в декабре 1982 года на заводе «Маяк» посёлка Гвардейское Хмельницкой области. Игра помещается в довольно объёмную пенопластовую коробку с картонной крышкой, пострадавшей от времени и условий хранения.

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

Разобранный советский детский конструктор «Автодром»: чёрные и серые элементы трассы, красные детали, инструкция с рисунками сборки и лист с таблицей на деревянном полу.

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

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

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

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

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

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

Ногтей насыпал…

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

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

Остроумно, на самом деле, примерно на уровне «сцеплера», если не круче.

Но я тут намедни, третьего дня прочитал в гиперлетописи 2002-го года по языку INTERCAL следующее:

A famous thinker has compared parentheses with disgusting nail clippings.

Или, если по-нашему:

Один известный мыслитель сравнил круглые скобки с отвратительными обрезками ногтей.

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

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

В какой кодировке?

Попался мне недавно на глаза вот этот разворот из детской книжки «Энциклопедия профессора Фортрана» 1991-го года. На ней, как мы видим, высоколобый Новосельцев с указкой говорит, что справа закодирована фраза «ПРОЧИТАЙ ГЛАВУ „ЯЗЫКИ ПРОГРАММИРОВАНИЯ“».

Кот и мужчина у доски: фраза «ПРОЧИТАЙ ГЛАВУ "ЯЗЫКИ ПРОГРАММОВАНИЯ"» в машинном коде выглядит как столбцы нулей и единиц.

Сразу бросается в глаза, что бинарные строки справа не восьмибитные, как мы все привыкли, а на бит короче. Ещё, при внимательном рассмотрении, в закодированных числах узнаются пробелы, у них код 32 или 0100000. Только первый почему-то на одиннадцатой позиции, а не на девятой, как в фразе на русском.

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

Воспользовавшись программой для распознавания, я перевёл текст на картинке в буквы и цифры, вырезал оттуда закодированное и попробовал перегнать этот кусок в буквы. Получилась следующая строка: pro~itajte glawu "qzyki programmirowaniq".

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

Теперь осталось понять что это за кодировка. Не уверен, что я когда-либо в жизни сталкивался с КОИ-7, но название такое слышал. Предположил, что это она и не ошибся.

Латинские символы видно, потому что эта кодировка содержит в себе несколько наборов символов, которые надо переключать специальным кодом. Русские символы находятся в тех же позициях, что и латинские, а поскольку кодировка ЮТФ-8, который мы все пользуемся, совместима с латинским набором КОИ-7, мы видим не бинарный мусор, а какие-то буквы.

В конечном счёте, я написал небольшую программу на Перле, чтобы вывести строку на русском:

#!/usr/bin/perl
use Text::Iconv;

my @codes = qw(
    1110000 1110010 1101111
    1111110 1101001 1110100
    1100001 1101010 1110100
    1100101 0100000 1100111
    1101100 1100001 1110111
    1110101 0100000 0100010
    1110001 1111010 1111001
    1101011 1101001 0100000
    1110000 1110010 1101111
    1100111 1110010 1100001
    1101101 1101101 1101001
    1110010 1101111 1110111
    1100001 1101110 1101001
    1110001 0100010
);

$conv = Text::Iconv->new("KOI-7", "UTF-8");

# ПРОЧИТАЙТЕ ГЛАВУ "ЯЗЫКИ ПРОГРАММИРОВАНИЯ"
print $conv->convert(chr oct "0b$_") for @codes, "\n";

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

В конечном счёте раскодированный текст выглядит так: ПРОЧИТАЙТЕ ГЛАВУ "ЯЗЫКИ ПРОГРАММИРОВАНИЯ". Лобастый Новосельцев немного нас обманывает.

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

Монета с Некрасова

Ну и последняя находка с чердака дома на Некрасова.

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

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

Две крупные потёртые монеты и две мелкие: одна с надписью «10. КОПѢКЪ 1802. С.П.Б.», другая с двуглавым орлом.

Оказалось, что это 10 копеек 1802-1805 годов, то есть монета времён Александра I. Судя по всему, её сильно чем-то тёрли — в диаметре она не изменилась, а вот в весе потеряла — в интернете пишут, что она должна быть 2,07 грамма, а у меня всего лишь 1,7, солидный недовес.

Внизу фотографии я поместил пример того как она могла выглядеть то того, как потеряла часть своего веса.

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

Накрыло «Гопником-2»

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

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

Скриншот текстового квеста: описание стычки банд и списки участников «Ваша басота» (зелёные) и «Их басота» (красные) с уровнями.
Меня позвали на «стрелку» в игре «Гопник-2», если бы не шокер, я бы не выжил

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

Приехали «The Sensor Watch»

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

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

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

Купил сразу три штуки — одну себе, остальные заказали два моих друга.

Три прозрачных пакета с платами датчиков OSO-SWAT-B1 от Oddly Specific Objects, на этикетках указано: Sensor Watch Lite, количество 1, знаки CE и UKCA.

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

PVS-Studio и «Гопник-2»

Скриншот VS Code: файл run.cpp и вкладка PVS-Studio с предупреждениями V690, V614, V601, V786, V547, V801, V815.

Много читал об инструменте статического анализ PVS-Studio — на «Хабре» постоянно выходят статьи с разбором ошибок, которые он помогает найти. Выглядит действительно очень здорово. Несмотря на неизбежные ложные срабатывания, находится много такого, что пропустил программист.

PVS-Studio — платный инструмент, но утром за завтраком мне стало интересно, нет ли там какой-нибудь триальной версии, чтобы можно было на практике познакомиться с тем как он настраивается и чем может быть полезным. Оказалось, что у него есть восьмидневная бесплатная лицензия и я решил глянуть что он сможет найти в коде «Гопника-2».

Нашлось несколько интересных ошибок. На скриншоте одна из них. Как видно, str_enemy_amount проверяется два раза, тогда как после первого условия там гарантировано ноль. Очевидно автор этого куска кода его скопипастил, но забыл во втором куске исправить enemy на hero.

Я бегло посмотрел все ошибки, которые он мне выдал, надо будет внимательно посмотреть каждую, но как будто бы всё по делу, ноль ложных срабатываний.

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

Марковские цепи

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

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

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

Засовываем в неё готовый осмысленный текст, цепь подсчитывает вероятности перехода между токенами (чаще всего это слова) и дальше её можно попросить продолжить произвольный текст на ту же тему.

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

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

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

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

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

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

Собираю «The Sensor Watch»

Что-то со вчерашнего вечера жутко болит голова. Попробую себя чем-нибудь отвлечь, например, вставлю платку «The Sensor Watch», которая так долго ко мне ехала, в часы-донор.

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

Рабочий стол с ноутбуком, на экране которого показано пайка платы, рядом лежат инструменты: паяльник, отвертки, набор бит, часы, провода, свеча в подсвечнике и бюст.
Ну что, погнали?

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

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

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

Поставил свою игру на часы

С процессом заливки своей игры на мои новые кастомные «Касио» разобрался. Процесс несложный.

Если у вас, как у меня, «Мак», скачиваем специальный компилятор, переходим по инструкции в нужный каталог той прошивки, куда добавлена игра, и запускаем команду make COLOR=RED. RED — потому что платы есть разных версий, у меня именно «красная».

Потом разбираем часы, вынимаем плату и подключаем её к компьютеру через шнурок микро-USB-B. У меня такой нашёлся, но пришлось втыкать в переходник — на другом конце у него USB-A, а таких разъёмов на моём «Макбуке» не водится.

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

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

Она перепишется достаточно быстро, после чего светодиод погаснет, а диск отключится.

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

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

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

Исследование странного кругляка

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

Цифровой штангенциркуль измеряет диаметр старой монеты, показывая 49,80 мм; на корпусе видны надписи «inch/mm», «STAINLESS HARDENED» и кнопки OFF, ON, ZERO.

Сегодня мы туда опять съездили. Спешу сообщить что удалось выяснить.

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

Диаметр — около 49,8 мм, а толщина — около 5,74 мм. Отсюда можно вычислить примерный объём — 11,18047794 cм³ и плотность — 8,5 см³/г, что соответствует плотности латуни.

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

Добавлено: после уточнения плотность стала приближаться к серебру.

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

Старинный дом около школы

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

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

Разрушающееся кирпичное здание с обвалившейся кладкой и деревянной дверью под крышей, рядом пристройка из шифера и дерева на фоне ясного голубого неба.
Это я его ещё в мае сфотографировал, в прошлый приезд
Ржавая желтая металлическая дверь с навесным замком в арочном проеме обветшалой красно-белой кирпичной стены с разбитыми окнами по бокам.
Жёлтая дверь
Две ржавые навесные замки на массивной цепи, закрывающей створки старой желтой металлической двери с заклепками и следами коррозии.
Элемент жёлтой двери
Ржавый железный засов на старой желтой двери с металлическими планками и заклепками.
Другой элемент жёлтой двери
Ржавая кованая решётка с волнистым узором, за которой видны картонные коробки и мусор в тёмном помещении у белой кирпичной стены.
Решётка окна, выходящего на дорогу
Ржавая металлическая дверь с двумя навесными замками, кольцом-ручкой и заклёпками, прикреплённая к стене.
Элемент ржавой двери
Ржавый засов на серой деревянной двери, запертый на чёрный навесной замок с надписью «APEC» и «HARDENED» на дужке.
Элемент деревянной двери

Всего у этого здания три двери. Я их назвал жёлтая, ржавая и деревянная. Шиферный пристрой скрывает вход в подвал, в нём ничего интересного — грязь на полу, стены, потолок, характерных деталей нет.

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

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

Несмертная Нокия

Очень люблю фильм «Безумный Макс: Дорога ярости». Смотрел его несколько раз, два из них — в кинотеатре, когда фильм только вышел. Люблю его за драйв, адреналин, который разливается по венам при его просмотре, за скорость повествования и сильные эмоции. Совершенно не согласен с теми, кто его критикует за сюжет — это, на мой взгляд, как ругать за сюжет русские горки или прыжок с парашютом.

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

Но речь, на самом деле не про это. Второй день хрюкаю от смеха и не могу успокоиться — на груди главного антагониста, Несмертного Джо, на его «доспехах» отчётливо видна плата телефона Нокия 3105 (это вариант модели 3100, только стандарта CDMA), а чуть выше (на моей картинке плохо видно) — клавиатура от Нокии 7250i.

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

Печатная плата с микросхемами, разъёмами и компонентами, частично покрытая жёлтым защитным слоем, на светло-сером фоне.

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

Столовая в Антоновке

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

Когда я занимался игрой «Гопник-2», столкнулся с тем как тяжело найти нужные мне детали на чужих фотографиях 2000-х годов. Например, мне были интересны цены на фастфуд.

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

Потёртый металлический указатель с белой надписью «СТОЛОВАЯ» и «совхоза «Антоновский», прикреплённый к деревянной стене старого здания.

В данном случае это фотография вывески заброшенной рабочей столовой в селе Антоновка Спасского района.

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

Исследование странного кругляка-2

Наконец-то готова трёхмерная модель загадочного кругляка из музея Куралова. В итоге, его уточнённый объём — 10,2223 см³, что даёт плотность ≈ 9,39 г/см³. Надо учитывать, что вес у нас тоже неточный, думаю с погрешностью порядка нескольких процентов.

В любом случае, плотность выше, чем у меди и только чуть не дотягивает до серебра — у него 10,3. По всей видимости, это всё же никакая не медь, а какой-то сплав, возможно даже серебряный, но какой-то очень низкой пробы — около 500-й. Пятисотая проба и даже ниже вполне себе использовались в Российской Империи.

Рука настраивает круглый объект с монетой и точками под фиолетовым светом 3D-сканера Creality на столе рядом с ноутбуком и стеклянным шкафом.
Сканируем кругляк в музее, рука в кадре — моего друга Славы, оборудование тоже его

Теперь взглянем на сам герб, благо у нас теперь есть скан. Что мы видим? Двуглавый орёл под единой короной с расправленными крыльями, на которых видны по четыре щита. В лапах у орла скипетр и держава. Герб с таким описанием впервые появился в указе сената 11 апреля 1857 года, то есть во время царствования Александра II.

В 1882 году, при Александре III герб снова изменился и просуществовал уже неизменным до революции.

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

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

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

Это и не печать. Была такая версия, но она отпадает — герб на печати был бы изображён зеркально.

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

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

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

Загадочная трубочка

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

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

Не уверен, что это зачем-то нужно знать, тем не менее, трубочка весит 4,65 грамма, в длину она 63,24 миллиметра, а её диаметр в самом широком месте — 9,16 миллиметров. Раз уж мы взяли с собой штангенциркуль и ювелирные весы, грех было не замерить.

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

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

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

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

Кофеин, чай и кофе

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

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

Рука с черными гранулами чая и двумя зелеными листьями на фоне промышленного оборудования для обработки чая.
2014 год, Шри-Ланка, мы на чайной фабрике, экскурсовод загребает ладонью пыль, которая скапливается около станка и шутит (надеюсь), что это именно то, что они кладут в чайные пакетики

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

Вывод: в чашке чая кофеина меньше, чем в кофе того же объёма, и усваивается он медленнее.

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

«Вампус» для The Sensor Watch

Мою игру для часов, порт текстового квеста 1970-х «Охота на Вампуса» так что-то и не приняли в репозиторий прошивки, никакой реакции, тишина. Хотя есть уже несколько поигравших — написали в комментарии к коммиту и в почту.

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

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

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

Проморолик нашей компании

Снялся на днях в проморолике нашей компании, который появился в телеграм-канале министра цифрового развития Республики Татарстан.

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

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

Часть этой «аудиорыбы» можно прочитать у меня по губам в соответствующих местах.

Бородатый лысый мужчина в бежевом свитере сидит в красном кресле среди зелёных растений в светлом помещении.
Я удобно устроился в кресле нашей зоны отдыха

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

Си 23

Как-то незаметно вышел Си23. В компиляторе GCC 15 даже решили использовать его по-умолчанию. К слову, у языка какая-то странная нумерация. Получается, что Си89 старше, чем 23 и 99. Вам это голову не ломает?

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

Удалили старый синтаксис функций, где можно было описывать типы аргументов после определения функций. А я про него и узнал-то только недавно — два года назад.

Атрибуты функций можно теперь писать в синтаксисе Си++, то есть в виде [[атрибут]]. Это очень хорошо. Так они лучше различимы, в отличие от спецификаторов, и имеют собственное пространство имён.

Изменили действие ключевого слова auto. В Си оно обозначало класс хранения, причём по-умолчанию он как раз auto, так что в живом сишном коде я никогда это слово не видел. Теперь оно будет означать автоматический вывод типа переменной, прямо как в Си++. Это хорошо — со временем из кода можно будет выкинуть __auto_type.

Функции с пустым списком аргументов будут обрабатываться, как функции без аргументов. Это тоже хорошо, потому что раньше было неочевидно. В своё время для меня открытием было, что функции без аргументов должны в Си задаваться через синтаксис func(void), правда я в коде так всё равно не делаю.

Прекращена поддержка триграфов. Это, конечно, хорошо, но жалко. Речь идёт об альтернативных конструкциях в языке, которые были введены когда-то для поддержки некого древнего оборудования. Например, ??/ это альтернативный синтаксис для обратного слеша. Триграфы приводили к редким багам парсинга, пугали народ, но их было весело использовать в своих проектах.

Добавили конструкцию #embed, которая позволяет включать в код бинарные данные. Тоже здорово, в игре «Морской бой», выпущенной ко Дню радио мне пришлось включать игру на Луа внутрь сишного кода внешними утилитами, а теперь можно это делать одной директивой.

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

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

Грязный снег

Рука с завитыми волосами указывает на экран цифрового микроскопа, показывающий увеличенные объекты на синем фоне; устройство стоит на деревянном столе среди бытовых предметов.

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

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

Надеюсь простуженное горло из-за поедания снега останется в прошлом. Хотя бы на эту зиму.

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

Технология предков — IrDA

Недавно я купил Casio WQV-3. Это очень интересные часы из 2000-х — в этой линейке производитель впервые вставил камеру в свои часы. Достаточно редкая для России штука, но я не ожидал, что купить для них инфракрасный приёмник будет сложнее, чем само устройство.

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

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

Серебристые цифровые часы Casio Wrist Camera с USB-кабелем и CD-диском в бумажном конверте на синей ковровой поверхности.

Теперь нужен третий компонент — компьютер с чем-нибудь, типа Windows XP. У меня дома где-то лежит баребон с четвёртым «Пентиумом», можно было бы на него, но я что-то пока его не нашёл. Не пользуюсь им уже лет 20, наверное.

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

Теория мёртвого интернета

Есть многое на свете, друг Горацио, что и не снилось нашим мудрецам. Есть, например, теория мёртвого интернета — конспирологическая теория, последователи которой считают, что в интернете почти не осталось живых людей.

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

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

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

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

Попытка подключить IrDA

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

Необходимое оборудование я купил и даже нашёл на работе ноутбук с Windows XP, эта операционная система должна была подойти.

Попутно пришлось решить неожиданную проблему — оказывается корневые сертификаты, которые имеются у Windows XP настолько устарели, что сайты через HTTPS не открываются. Эта беда решается сторонней утилитой. Попутно пригодился браузер supermium — это сборка «Хромиума», которая поддерживает старые операционки.

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

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

Ноутбук Toshiba Portege на столе с наушниками, блокнотом, клавиатурой, диском и флешкой. На экране — интерфейс программы с красными строками и логотипом DSI.
Ноутбук Toshiba Portege M400 с инфракрасным приёмопередатчиком Arkmicro ARK3116T

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

Bash The Wumpus

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

Директории будут комнатами, ходить туда-сюда можно будет стандартной командой смены директория — cd, игровые предметы или монстры должны быть файлами, ну и так далее.

Для реализации выбрал тот же классический квест 1970-х, который я переписывал для The Sensor Watch — «Hunt The Wumpus». Вампус там живёт в пещере, который представляет с собой граф из двадцати помещений, соединённых в додекаэдр.

Скриншот текстовой игры: список команд (LS, CD, RM, EXIT), вывод «I SMELL A WUMPUS, BATS NEARBY», команда «rm 12 3 2 3 4» и сообщение «AHA! YOU GOT THE WUMPUS!
Самая быстрая моя победа, я даже не задумался, что если бы стрела не убила Вампуса сразу, то следующим ходом убила бы меня

В соответствии с идеей, помещения у меня представлены директориями, а переходы между ними — символическими ссылками. Соответственно, Вампус и прочие опасности, — ямы и летучие мыши, стали файлами.

В первой версии у меня всё было организовано обычными командами. Кроме упомянутой cd, вполне естественным способом заработали ls и pwd, а так же команда rm, которая уничтожала файлы-монстры.

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

Текст игры «Hunt the Wumpus» в терминале: команды ls, cd, rm, сообщения о запахах, сквозняках, летучих мышах и финальное «OUCH! ARROW GOT YOU!
Тут мне повезло меньше

Сначала я сделал проверки через trap сигнала DEBUG и обработку произошедшего через скрипт, который запускается из переменной подсказки PS1, но в итоге пришлось подменить ряд команд алиасами и вызовами функций.

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

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

Игра, как обычно, выложена на «Гитхабе».

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

← сюда туда →