• Что не так

    Один из самых дурацких вопросов — “что не так с X”. Примеры:

    • Мы в редакции не используем букву ё.
    • Что не так с ё?

    • Мы перешли с Node.js на Python.
    • Что не так с Нодой?

    • Новый ролик я монтировал в Final Cut, а не Premiere.
    • Что не так с Премьером?

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

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

    Заметил, что подобный вопросы задают тролли, которым нужна подобная интонация. Либо человек, которым движет вера. Что бы вы ни сказали, он будет гнуть свою линию. Отсюда эта лёгкая дерзость: во фразе “что не так с X” уже слышится претензия.

    Подобные вещи я либо игнорирую, либо прошу задать вопрос правильно. Что ты имеешь в виду? Я не говорил, что с X что-то не так. Объясни, чего хочешь.

    Кидайте эту заметку тем, кто злоупотребляет “что не так с X”.

    См. также Whataboutism.

  • Второе издание

    У меня большая радость — выпустил второе издание книги “Clojure на производстве”. Сел за него спустя полгода после первой публикации. Процесс занял четыре месяца, и вот — готово.

    Исправил опечатки и неточности, о которых сообщили читатели. Низкий поклон всем, кто их прислал.

    Некоторые разделы урезал, другие, наоборот, дополнил. Так, в главе про спеку мне показался слабым пример, где парсим конфигурацию через s/conform. Опыт подсказывает, что так не делают в проде, поэтому удалил эту часть. Заменил ее на парсинг структур данных — задачу, которую решал в либе Etaoin.

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

    Самое важное — в книге наконец-то шрифт нормального размера. Вы будете смеяться, но в первом издании на титульном листе был незакрытый тег \small, из-за которого остальной текст был на один пункт меньше. Глаз замылился, и я заметил это уже когда сдал макет в печать. Позже получил несколько писем о том, что шрифт маловат. Теперь это исправлено, но и книга потолстела — с 360 до 444 страниц, то есть на четверть.

    Купить книгу можно все теми же способами:

    Почти все магазины обновили обложку, но если вы видите старую, не страшно: напечатают всё равно второе издание.

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

    Ну и самое важное — провел эксперимент. Отпечатал двадцать пробных книжек формата B5 в твердой обложке. Это нечто среднее между А5 и А4. После первого издания книга смотрится неприлично большой. Даже если не выстрелит, ей можно ударить по голове ©. Зато очень легко читать и листать.

    Несколько фотографий. В мягкой глянцевой обложке, обычный формат А5:

    Read more →

  • Помидор

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

    Помидор — это когда вы работаете интервалами по 20-25 минут с перерывами по пять минут. Отвлекаться на что-то, не связанное с задачей, нельзя. Сюда входит почта (вдруг что-то пришло), Телеграм (вдруг написали важное), Ютуб и левые сайты. После четырёх помидоров положен долгий отдых в 20 минут. Идеальный случай — сделать восемь помидоров за день.

    Сперва кажется, что это мало — всего-то 8 * 20 = 160 минут, или 2.5 часа. Это ошибка, которую допускают те, кто не пробовал. Два с половиной часа чистой, ничем не разбавленной работы — это офигеть как много. Учтите, что сюда не входят звонки, обед, походы в туалет и за чаем, офисные разговоры и Ютуб. Всё это занимает три часа и больше. Добавим сюда те якобы жалкие два часа работы, и вот он, ваш рабочий день.

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

    Так вот, помидор. Он сто раз описан в книгах, нет смысла повторяться. Перечислю то, что зашло лично мне.

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

    • Не рассматривал физический таймер. Это мило, но лишняя вещь на столе, плюс он тикает (спираль, шестеренки), а мне это не нравится. Если же электронный вариант, то он будет такой же ужасный, как мобильное приложение.

    • Под мак нашлось настольное приложение pomidorko (см. картинку). Выше всяких похвал: минимальное, одна кнопка, пара опций. И плевать, что чего-то не умеет: лучше меньше, да лучше. Поддержите автора деньгами, в подвале сайта ссылки.

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

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

    • К помидору трудно привыкнуть. Начинается классическая ломка: хочу Ютуб, а нельзя. Хочу Телеграмчик, а тоже нельзя. Всё это заставляет задуматься: что же это за работа, если постоянно тянет отвлечься? Неужели так трудно хранить фокус двадцать минут? Но потом ломка проходит, и с каждым помидором испытываешь гордость за самоконтроль.

    • Если 20 минут для вас много — выставляйте на 15 или даже 10, никто не вправе вас за это стыдить. Главное — следовать основному правилу (не отвлекаться) и не обманывать себя. Других вы обманите запросто, а себя — нет.

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

  • Exceptions in Clojure

    Clojure in Production

    In This Chapter

    Exceptions

    This chapter considers exceptions in Clojure. How do they work and how do they differ from their Java counterparts? When is it better to throw and when to catch exceptions? What and how to write in logs to investigate an incident quickly?

    Somebody might find it strange to devote an entire chapter to exceptions. The topic, after all, is simple: exceptions can only be thrown, caught, and logged. Theoretically, this is enough to work on a project.

    Exceptions are technically simple, but they have rich semantics. When exactly should you throw and catch exceptions? What useful information do they carry? Where to write exceptions? Can we catch them with predicates? In practice, we are overwhelmed with countless specific cases.

    Newbies tend to follow the positive path. They write code such as there basically cannot be exceptions in their work. This is why it is so hard to troubleshoot errors afterwards. Why did the server respond with code 500? There are innumerable possible reasons why the request failed. However, the log entry provides too little information to understand what has happened.

    A good programmer pays close attention to errors. With experience, it becomes clear – refusing exceptions does not pay off. Without them, we will complete the task faster, and there will be less code – that is right. But later, you will have problems with detailing and fixing said errors.

    Exceptions in code are just as important as normal behavior. If you think this kind of problem will not happen to you, think again. If your project encounters trouble due to uncaught errors, then it is time to study the topic.

    Read more →

  • Ссылки на выходные (выпуск 33)

    Почитать

    • Большое интервью Юрия Стоянова на Медузе

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

    • Константин Богомолов. Похищение Европы 2.0

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

    Посмотреть

    Телеспектакль “Хранители” по мотивам Толкиена. Постановка и актёры за гранью добра и зла, нужно просто увидеть. Ну и коменты на Ютубе почитать.

    Первая и вторая части:

    Приятного просмотра.

    См также прошлый выпуск.

  • О заголовках

    Совет тем, кто пишет:

    НЕ ВЫПЕНДРИВАЙТЕСЬ С ЗАГОЛОВКАМИ

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

    Иные авторы пишут хорошие статьи, но с заголовками у них беда. Почему-то считается, что простой понятный заголовок — это зашквар. Например, в тексте автор тестирует процессоры. Вместо “Тестирование процессоров Ryzen” он пишет “Ryzen и все-все-все”. Или вместо “Запуск Kafka в продакшене” у него закос под былину: “Как я Kafka на сервере поднимал”.

    Автор думает, что оригинален и неповторим, а на самом деле это лютый колхоз. Первый пришедший в голову штамп. Лично мне от таких заголовков стыдно.

    Другие примеры: “Чтобы сказку сделать былью”, “вновь продолжается бой” — советская тема. Былинный порядок слов: “как я то и сё делал”. Винни-Пух: “…и все-все-все”. Просто штампы: не чем-то единым. Двойное название: “То-то то-то, Или это-это”. Цитаты: “в чём сила, брат”, “вы нам за X ответите”. “Но это уже другая история” и так далее.

    Как только вам в голову пришёл штамп, одумайтесь и не пишите его. Пусть заголовок будет простым, скучным, но не затасканным. Люди думают одинаково, и фраза из Брата 2 приходит в голову всем, не только вам. Это ни разу не стиль, а слабость.

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

    Еще раз:

    НЕ ВЫПЕНДРИВАЙТЕСЬ С ЗАГОЛОВКАМИ

  • Systems in Clojure

    Clojure in Production

    In This Chapter

    In this chapter, we will talk about systems, i.e., collections of interrelated components. We’ll look at how large projects are assembled of small parts as well as how to overcome complexity and make all the parts work as one.

    The concept of a system is related to the configuration we discussed recently. The configuration answers the question of how to get the parameters, and the system knows how to use them.

    Systems emerged when the demand for long-running applications arose. We don’t require such things from scripts and utilities as they have a short runtime and a state that does not last long. When scripts and utilities finish their work, resources get released, so there is no point in monitoring them.

    Things are different for server applications: they work all the time, and therefore, are designed differently than scripts. The application consists of components that run in the background. Each component performs its specific task. At startup, the app enables components in the correct order and builds connections between them.

    Read more →

  • Не подчёркивайте в книгах

    Вы наверное видели, как успешные люди подчёркивают фразы в книгах. Со стороны это смотрится супер-круто: сидит такой мега-мозг, водит карандашом и всё запоминает. Плюс сто к интеллекту.

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

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

    Второе — поскольку я не авторитет, обратимся к Барбаре Оакли. Она как Дональд Кнут, только женщина. В книге “Думай как математик” Барбара пишет:

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

    Внезапно, да? Вот что пишет научный руководитель Барбары:

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

    Далее:

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

    Один из главных пунктов в конце книги:

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

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

    Итак, что же делать, чтобы материал запомнился? Вот список.

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

    Этого достаточно, чтобы запомнить материал. Если вы часто скачете по книге, пригодятся обычные закладки. Но не надо чиркать — даром что книгу испортили, так и обманули себя.

    На тему выделений цветом см. также заметку об Экселе.

  • Обновил зипперы

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

    А потом вспомнил, что полгода назад написал руководство по зипперам. Оно разбито на восемь постов и по объёму тянет на главу книги — около 30 страниц. Сразу после выпуска я вернулся к ним и отредактировал: почистил текст, доработал примеры и код.

    Уверен, в интернете нет более подробного текста по зипперам на русском. Да и на английском не густо: обрывочные посты в блогах и бородатые пейперы. Последние хороши, но на Хаскеле, что не наш метод. А у меня — сплошной шоколад. Скоро будет версия на английском.

    Пользуйтесь!

    Оглавление

  • Тултипы

    Дизайнеры Гугла совсем офонарели. Всплывающее окно показывает другие всплывающие элементы. Никого не парит, что места с гулькин нос, и ничего не видно.

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

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

Страница 1 из 52