Эссе о разработке игр, мышлении и книгах

Обновил конфиги Emacs

Скриншот полноразмерного Emacs на моём мониторе не влезает сюда, поэтому вот вам его кусочек.

Скриншот полноразмерного Emacs на моём мониторе не влезает сюда, поэтому вот вам его кусочек.

В конце ноября смотрел чего наворотили в актуальных текстовых редакторах, вроде Atom и VS Code, в итоге нажаловался на них в facebook. Дескать даже файл открыть без мышки не могут. А для меня, как емаксера, тягание мыши — стресс и выпадение из потока — чистые боль и страдание.

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

Кстати, по поводу «не в первый раз». У меня сложилось стойкое ощущение, что Emacs и Vim стали своего рода глобальными локальными оптимумами в пространстве возможных текстовых редакторов. Отказаться от них тем сложнее, чем дольше и глубже с ними знакомишься. А я с Emacs уже лет 12, видимо слезть с него совсем шансов нет.

Так вот. На обновление конфигов у меня ушло примерно 7 рабочих дней :-D И ещё дней 5 на автоматизацию настройки системы с помощью ansible — давно хотел сделать, но всё руки не доходили, а тут за компанию само пошло.

Вот она — прелесть безработности творческого отпуска — можешь неделю настраивать Emacs и никто тебе слова поперёк не скажет.

Если вы начинающий емаксер или просто интересуетесь, не пугайтесь сроков. Emacs — сложная штука, но не на столько. Просто я упоротый и полез делать собственное окружение, а для нормальных людей есть готовые и проверенные сборки: Spacemacs, Doom Emacs и прочие, которые должны работать сразу после установки.

Далее расскажу как я искал нужные библиотеки, какое мнение сформировал о текущем состоянии Emacs и что в итоге получилось.

Итоговый конфиг лежит на github. Если его разместить в /home/<user_name>/.emacs, то при следующем запуске Emacs сам скачает и установит все нужные библиотеки. Будет работать всё, кроме некоторых фич в режиме редактирования Python — для их включения смотрите определение переменных python‑binaries, python‑interpreter, python‑pylint.

Далее

О книге «Мир позавчера»

Обложка книги «Мир позавчера» Даймонда Джареда.

Даймонд Джаред — довольно известный автор антропологических книг, которых у него уже прилично выпущено. «Мир позавчера» — на текущий момент его предпоследняя книга от 2012 года.

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

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

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

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

  • Социальные связи и владение территорией.
  • Мир и война.
  • Отношение к молодости и старости.
  • Отношение к опасности.
  • Религия, язык и здоровье — тут натягивают сову.

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

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

Далее

Мысли о языках программирования

Картинка с разными языками программирования

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

Далее

Организация информации

Стопки книг, иллюстрирующие складирование информации.

Стопки книг, иллюстрирующие складирование информации.

Тезисно скажу пару слов об организации информации: зачем это нужно, на что влияет и от чего зависит.

Не в контексте программирования, а «вообще» в процессе жизнедеятельности. Конечно, к программированию всё сказанное тоже относится.

Далее

Ремонт сложных систем

Пример сложной системы, вид из космоса.

Пример сложной системы, вид из космоса.

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

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

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

Далее