«99 бутылок» на баше без цикла

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

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

#!/bin/bash
len=$(wc -c<"$0"); : https://bolknote.ru 2021
echo -e "99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.\n"
: ${i:=99}; ((--i)) && (grep -B5 -m1 ^G "$0" |
sed "s/9[8]/$(($i-1))/g;s/9[9]/$i/g;s/ [0] / no /;s/\([1] b[^s]*\)s/\\1/g" >> "$0") ||
(echo 'No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.';truncate -s "$len" "$0")
:;

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

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

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

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

Загадка: что за устройство? (разгадано)

Вчера гуляли с дочкой по музеям — ей нравится рассматривать старинные вещи. Начали с музея Ленина, потом на арендованном самокате доехали до дома Боратынского, оттуда — заглянули к Бренингам.

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

Рука держит старинный ручной сифон для газировки с деревянным рупором перед деревянным шкафом и рамками с историческими фотографиями на стене.
Загадочное устройство в казанском музее Бренингов

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

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

Разгадка

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

Старая обложка руководства для вибрационного массажа шведским «Медико-Вибратовом», с изображением рук, держащих массажёр, и указанием издателя Р. М. Портъ, г. Одесса.
«Руководство для вибраціоннаго массажа шведскимъ „Медико-вибраторомъ“», Одесса, тип. А.И. Короленко, 1913

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

Старый брошюра «Медико Вибраторъ» с оглавлением болезней и иллюстрацией устройства; текст на русском языке, типография А. И. Королёнка, Одесса.
«Руководство для вибраціоннаго массажа шведскимъ „Медико-вибраторомъ“», оглавление

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

В общем, занятная вещица, я много хожу по музеям, а такая встретилась мне впервые.

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

Нас всех чипируют

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

Повод нашёлся неожиданный — Леонид, помимо всего прочего, программирует и мастерит различные железки, для чего написал собственный фреймворк с самописным скриптовым языком программирования «СИФАК», на который я однажды наткнулся и решил что-нибудь на нём написать, — на меня иногда накатывает желание попрограммировать на чём-нибудь странном.

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

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

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

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

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

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

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

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

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

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

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

Вопрос про гребной тренажёр

Если вкратце, то вопрос такой: надо ли что-то добавлять в воду, чтобы она не цвела?

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

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

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

Вертикально сложенный деревянный гребной тренажёр с чёрным сиденьем, педалями и водяным колесом, стоящий на светлом ламинате у белой стены.
Водный гребной тренажер VictoryFit VF-WR800, когда не надо грести, можно поставить вертикально

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

Гребные тренажёры не очень-то компактные, зато многие из них можно ставить вертикально и места в таком положении они почти не занимают.

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

Отсюда вопрос, чёткий ответ на который я нигде не могу найти: надо ли что-то дополнительно добавлять в воду, которую заливаешь в тренажёр, чтобы она не цвела? В одних местах написано, что ничего добавлять не надо и воды из бытового фильтра (у меня его фильтр обратного осмоса дома) хватит на год, другие утверждают, что в воду нужно кидать некие хлорные таблетки, но я опасаюсь, что они «съедят» уплотнитель.

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

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

Эффект плацебо

Из статьи «Эффект плацебо. Можно ли силой мысли вылечиться от всех болезней» с сайта «Постнаука»:

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

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

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

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

Грека и рак ★

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

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

Ехал грека через реку,
Видит грека: в ре́ке рак,
Сунул грека руку в реку,
Рак за руку греку цап!

Сегодня веселил этим дочку и она, отсмеявшись, задала очень интересные вопросы: что за грека? через какую реку и куда он ехал? и зачем он засунул руку в реку?

Текст описывает сцену в клубе: обсуждение мировой коммуны, скороговорку про грека и рака, а также визит Зины и чаепитие у Елтышева с маковыми баранками.
Грека едет через реку в литературно-художественном и научно-публицистическом журнале «Красная Новь», №4, 1924 год

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

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

А во-вторых (и тут нас ждёт небольшое открытие), нашёлся ранний (1924 года) вариант скороговорки, в котором история несколько меняется! Он на скриншоте, в этом варианте грека «и рукою рака цап» и это совершенно другое дело.

Вообще в двадцатом веке вариантов концовки было множество: «грека за руку рак — цап!» (Георгий Никифоров, «Кимба», 1926), «рак у грека руку цап» (Бирюков, «Крылатые слова на Урале», 1960) или тот, что на скриншоте (Б. Д. Четвериков, «Атава», 1924 год).

Мне хочется верить, что самый ранний вариант, — опубликованный Борисом Дмитриевичем Четвериковым в «Красной Нови», является исходным, так как в нём больше логики. Если это так, то по меньшей мере один вопрос в истории про греку отпадает сам собой.

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

… машинка

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

Удивительно, но мой небольшой эксперимент утверждение подтверждает.

Чёрная пишущая машинка Stoewer Record с золотыми надписями и декоративными элементами стоит на деревянном столе перед кирпичной стеной.
Машинка производства компании «Stoewer Record» (сфотографировал в ресторане «Максимилианс», г. Казань)

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

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

← сюда туда →