Reduce

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

По Пайтону соскучился — он мне нравится, а я всерьёз не программировал на нём несколько лет. С удовольствием смотрю что наворотили в третьей версии, которую я почти не трогал. Бо́льшая часть языка легко и почти сразу вспоминается, но долгое отсутствие практики всё же сказывается.

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

from functools import reduce

def read():
    with open('p067_triangle.txt') as f:
        for line in f.readlines()[::-1]:
            yield tuple(int(x) for x in line.strip().split(' '))

reduce(lambda cur, prv: [max(cur[pos:pos+2])+v for pos, v in enumerate(prv)], read())

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

Результат мозговых усилий выше. Код сократился до одной строки (функция над ней — просто чтение данных).

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

На закуску вот вам фолдинг на «Баше», взятый из комментария со «Стека Оверфлоу»:

foldl() {
    echo $(($(</dev/stdin)$2))
} < <(tr '\n' "$1" <$3)

# Sum 20 random ints from 0-999
foldl + 0 <(while ((n=RANDOM%999,x++<20)); do echo $n; done)

Тут суммируются двадцать псевдослучайных чисел из диапазона 0—999.

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

Автокондукция

Мужчина в костюме стоит внутри цилиндрической металлической клетки, проходя процедуру автокондукции (электротерапии).
Пациент, проходящий автокондукционное лечение. Иллюстрация из книги «Principles of electro-medicine electro-surgery and radiology», Dr. A. Matijaca, 1917

Дочитывал сегодня один детектив с действием в дореволюционной России, там ближе к концу упоминался «салон автокондуктивного массажа», которым владел один из антагонистов. Никогда не сталкивался с таким видом массажа, да и сам термин вижу впервые. Из любопытства погуглил.

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

Автокондукция, — насколько я понял, один из вариантов дарсонвализации, метода лечения высокочастотным током, придуманного французским физиологом и физиком Жаком Д’Арсонвалем в конце 19-го века.

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

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

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

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

Сборка пакетов под POWER8

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

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

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

Если пакет существует для другой архитектуры, то черновую спецификацию для него можно получить через утилитку rpmrebuild. Она предназначена для создания RPM из уже установленного пакета и умеет создавать спецификации автоматически.

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

echo|EDITOR=cat rpmrebuild -e php-pecl-imagick 2>&- > /tmp/php-pecl-imagick.spec

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

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

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

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

Судьба патефона ★

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

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

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

Прежде на патефон жалко было смотреть, а сейчас вид вполне музейный, небо и земля. И звучать стал очень хорошо — мастер оценил на «4+», я на столько даже и не рассчитывал.

Заодно попросил оценить все пластинки, которые перешли к нам вместе с патефоном. Их оказалась 31 штука, почти все — 50-х годов выпуска, кроме «Песни нефтяника / Кавказской застольной», произведённой в 1948 году. Оказалось, все пластинки в превосходном состоянии.

Виниловая пластинка с этикеткой «Кавказская застольная» в исполнении Рашида Бейбутова и Т. Кулиева (фортепиано), выпущенная трестом местной промышленности Коминтерновского района.
Пластинка «Песня нефтяника / Кавказская застольная», Завод металлопластмасс, 1948 год

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

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

Очень надеюсь, что когда дочка подрастёт, ей будет интересно узнать какие песни любили слушать её прадедушка и прабабушка.

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

Ё

Текст о решении комиссии: после исключения буквы ѣ из алфавита использование буквы ё признано желательным, но не обязательным.
Выдержка из брошюры «Предварительное сообщеніе Орѳографической Подкомиссіи», Санктпетербургъ, 1904

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

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

Большевики в своей реформе напрямую опирались на «Постановления Орфографической Подкомиссии» 1912 года — результат многолетней работы Академии Наук. В декреты попало не всё, так например было исключено предложение не писать мягкий знак на конце слова за буквами «ж», «ш», «щ» и «ч»: «ноч», «вещ», «даш», «рож».

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

Пункт 5: признать желательным, но не обязательным употребление буквы Ё (нëс, вëл, всë); объясняется исключением буквы Ё и примерами различения ВСЕ и ВСЁ.
Выдержка из брошюры «В защиту нового русского правописания», Томск, 1919 год

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

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

Вино с привкусом ног ★

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

В кадре из фильма «Укрощение строптивого» 1980 года, который я приложил к этой заметке, Адриано Челентано давит ногами виноград. В фильме это позитивная сцена — он соревнуется с машиной в искусстве выжимать сок для вина и все рады, что человеческий навык главного героя победил бездушный механизм.

Что в детстве, когда я впервые посмотрел это кино, что сейчас эта сцена мне кажется донельзя противной. Сейчас даже больше, так как я вооружён статистикой (у каждого третьего — грибок стопы, с человека осыпаются десятки тысяч чешуек кожи, см. книгу Йаэль Адлер «Что скрывает кожа…»), остаётся только надеяться, что мне не довелось контактировать с вином, полученным таким способом.

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

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

Как вы относитесь к такому способу получения сырья для вина? Если вы живёте в Италии, то как относятся там?

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

Двухрежимные лампочки

Годы назад, волею судеб мы с женой купили в магазине две лампочки фирмы «Осрам» с двумя режимами. При первом включении в них загораются два неярких светодиода, при повторном — разгорается энергосберегающая лампа в 21 Вт (светит как девяностоваттная лампа накаливания).

Очень удобно ночью — не режет глаза.

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

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

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

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

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

← сюда туда →