Блог Константина Фарактинова

Перевод римских и арабских чисел в Python

Изучаю тут Питон. Решил зафиксировать для истории решение одной задачи с Хекслета.

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

NUMERALS = {
    'M': 1000,
    'CM': 900,
    'D': 500,
    'CD': 400,
    'C': 100,
    'XC': 90,
    'L': 50,
    'XL': 40,
    'X': 10,
    'IX': 9,
    'V': 5,
    'IV': 4,
    'I': 1,
}


def descending(pair):
    return -pair[1]


def to_roman(arabic_num):
    roman_num = ''
    for roman, digit in sorted(NUMERALS.items(), key=descending):
        add = arabic_num // digit
        roman_num += roman * add
        arabic_num = arabic_num % digit
    return roman_num


def get_digit(roman, digit, symbol, arabic):
    if symbol == roman[:len(symbol)]:
        return get_digit(roman[len(symbol):], digit, symbol, arabic + digit)
    return roman, arabic


def to_arabic(roman_num):
    number = roman_num
    arabic_num = 0

    for symbol, digit in sorted(NUMERALS.items(), key=descending):
        number, arabic_num = get_digit(number, digit, symbol, arabic_num)
    if to_roman(arabic_num) == roman_num:
        return arabic_num
    return False

Кнопка «Закрыть комментарии»

В Эгее много внимания уделено синтаксису элементов интерфейса, но иногда игнорируется лексика. Вот, например, под заметкой есть раздел с комментариями:

Что должна делать кнопка «Закрыть комментарии к заметке»? Очевидно, что-то такое:

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

То есть, это не кнопка закрытия комментариев, это кнопка запрета комментирования. Но тогда она должна называться как-то так:

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

Живучесть блогов

Пост про то, что в интернете всё непредсказуемо недолговечно.

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

На практике же то, что собирается жить вечно, исчезает через пару лет, а то, что, на вид вот-вот загнётся, продолжает работать. Половина блогов на Эгее, за которыми я следил 5 лет назад, уже позакрывались, а посты пятнадцатилетней давности в ЖЖ спокойно лежат, гуглятся и читаются. Пример — Левенчук, который ведёт «Лабораторный журнал» года с 2004-го и в сегодняшних постах ссылается на собственные тексты из нулевых.

Ещё пример — проекты Сергея Короля «Вещи и сны» и «Мэдсканнер». Первые в своё время переехали из ЖЖ на собственный сайт. Сейчас сайт выдаёт ошибку Вордпресса, а ЖЖ-версия как была, так и есть.

«Вещи и сны»: Похоже, в вашей конфигурации PHP отсутствует расширение MySQL, необходимое для работы WordPress.
Так «Вещи и сны» выглядят сегодня

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

Мэдсканнер: большая часть картинок битые
Madscanner

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

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

Когда придёт веб 3.0 и децентрализация, должно стать надёжнее. Но пока так.

Эгея не создаёт страницы заметок после обновления

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

Как решил. В базе данных в phpMyAdmin из таблицы e2BlogAliases удалил строчки, соответствующие сломанным постам и назначил новые адреса в редакторе Эгеи. Например, сломалась заметка про Редимаг. Вот она в списке:

Окно phpMyAdmin со списком алиасов опубликованных постов

Удалил эту строку и заново подключился к базе данных в настройках блога — пост стал открываться, но урл из /readymag превратился в /2022/10/22/1. Когда возвращал старый адрес в редакторе, заметка снова ломалась. Так что поставил /readymag2.

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

Тире вместо двоеточия

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

«Он не сможет прийти: заболел»

«Он заболел — не сможет прийти»

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

Недавно прямо смешной случай попался.

Читал тут «Как писать книги» Елены Хаецкой. Она топит за грамотность, несколько глав посвящены грамматике, правильному употреблению знаков препинания и тому, как неверно поставленная запятая меняет смысл предложения. И тут такой отрывок:

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

Это что, такой способ определить пол человека? Не сделал карьеру в журналистике — женщина. Сделал — ну, видимо, мужчина.

И почти у всех так.

Редимаг — всё так же плохо

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

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

Все редимаговские сайты открываютя одинаково: сначала браузер думает пару секунд, потом появляются цветные плашки, затем в случайном порядке подгружаются изображения и куски текста. Бывает, последние элементы дорендериваются уже когда успел досмотреть до середины. Вот как обычная страница с буквами и картинками может грузиться несколько секунд и тормозить на топовом железе?! Ладно бы графика, но даже простой текст отображается не сразу!

Для примера — страница с сайта про школу Горбунова рандомная страница, собранная в конструкторе. Засеките, сколько будут подгружаться несколько абзацев текста с картинками.

И сравните с последним сайтом Бирмана [на тот момент], на котором контента столько же, но при этом всё загружается и реагирует моментально.

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

Лекция Эркена Кагарова в Иркутске

16 декабря сходил на лекцию «Предмет и фон» в краеведческом музее. Остался доволен.

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

Я сформулировал для себя посыл лекции так: «Все объекты материального мира взаимодействую друг с другом, и вообще мир устроен довольно сложно, но вот есть несколько закономерностей, которые полезно знать».

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

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

Спасибо организаторам: Маше Комаровой и Федору Желудкову. Сходить на лекцию Эркена Кагарова стоит 500 рублей, посидеть в баре с топовым российским дизайнером — бесценно.

Стоковый протеин

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

Моя картинка с протеином на 0:52 и 1:31.

БДСЛ: домашнее задание

Учел замечания Игоря Штанга и переделал плакат из поста про лагерь. По-моему, получилось неплохо. Заголовок стоит увереннее, композиция более динамичная, по сравнению с первой версией.

Было так:

БДСЛ 2016

Съездил в Байкальский дизайнерский специальный лагерь, который проходил с 26 по 28 августа в Бугульдейке. Было круто. Мне понравилось.

BDSL

За полных два дня было шесть лекций, занятие по рисованию, дизайнерские посиделки у костра, походы в мраморный карьер, на гору и до Байкала. На занятиях говорили о профессиональном развитии, управлении собой, типографике, шрифтах, верстке и композиции.

Евгений Арутюнов рассказал про «допинг дизайнера»: о саморазвитии и принципах, помогающих в работе. Многое было знакомо по Школе стажеров: метафора осьминожки, метод прогрессивного джипега, умение говорить «нет», разговор в мире клиента, верность своей методике.

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

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

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

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

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

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

Лекция Евгения Арутюнова в мраморном карьере
Фото Марии Глазковой

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

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

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

Запомнилась грибная метафора про обратный контраст: в плохом шрифте у буквы Т тонкая ножка и массивная шляпка, как у поганки, в хорошем — наоборот:

Слева поганка, справа — хороший, годный гриб

Вадим Паясу рассказал немного обо всем: о постановке и достижении целей, о своем понимании дизайна, о свете, тени и перспективе в иллюстрации, о работе мозга. Больше рассказать не успел: нужно было идти на лекцию Штанга.

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

В конце предполагалось практическое задание, но на него не осталось времени. Задание ушло на дом. Нужно было сверстать плакат с рецептом варенья из сосновых шишек. Я сделал так:

Комментарии Игоря Штанга

Идея хорошая, исполнение не очень
1. Заголовок не нашел своего места, иллюстрации стоят неуверенно.
2. Я бы выбрал шрифт поплотней и повыразительней.

У тебя все варианты статичные. Горизонтальный блок текста внизу усиливает это впечатление. Попробуй поставить элементы поживее.

Жили в имении «Заречном». Это такой деревенский двор, переделанный под размещение туристов. По ночам было прохладно, приходилось спать в одежде. Ели в местной столовой. Еда нормальная, но если привык питаться в своем режиме, в следующий раз лучше взять еду с собой.

Говорят, некоторым было тяжело много ходить. До мраморного карьера идти час в гору, до Байкала — минут 40. К этому нужно быть готовым.

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

Рекомендую ехать на БДСЛ всем, кто интересуется дизайном, хочет побывать на Байкале и пообщаться с единомышленниками. Я не адепт нетворкинга, но даже у меня случилось несколько интересных знакомств.

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

Будем ждать БДСЛ 2017.

Ранее Ctrl + ↓