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

Обновил конфиги 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 года.

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

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

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

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

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

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

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

Далее

Математики добрались до нейронных сетей

На arxiv.org выложен интересный препринт: Every Model Learned by Gradient Descent Is Approximately a Kernel Machine.

Как видно из названия, исследователи утверждают, что нейронные сети, обученные методом градиентного спуска (один из самых распространённых вариантов обучения) близки такой штуке как kernel machines — одной из техник машинного обучения «предыдущего поколения».

У kernel machines есть несколько интересных особенностей:

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

Из этого может неслучиться несколько интересных вещей.

  • «Готовая» математика упростит сети и/или улучшит их результат и/или ускорит/удешевит обучение.
  • Область возможностей сетей очертится более чётко — окажется, что они не выделяют никакие новые признаки, а используют только «запутанные» данные из обучающей выборки.

Оба варианта выглядят довольно интересно.

Обсуждение на ycombinator.com

Тарантога: мемплексы

Про метаинформацию поговорили, теперь можно поговорить и про тексты. Затронем в том числе и поднятый в предыдущем эссе вопрос: является ли текст отдельной сущностью или утверждением метаинформации.

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

Сначала определимся с тем что такое текст.

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

Поэтому под текстами я имел в виду не «последовательность символов», а скорее «текстовый документ», который может содержать разнородную информацию, включающую и сам текст и какие-то медиа-объекты.

Далее под текстом я буду понимать именно «текстовый документ», если явно не будет указано обратное.

Далее

Экзокортекс: метаинформация

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

Но сначала внесём некоторую ясность в терминологию. Я тут пишу «экзокортекс то», «экзокортекс сё», но ведь софт, о котором я говорю, является только частью экзокортекса. Говорить про него как про целый экзокортекс в корне неправильно. Это, в конце-концов, путает.

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

Напомню примерный перечень метаинформации из описания минимальной функциональности Тарантоги:

  • Уникальные сущности, которые упоминаются в тексте: компании, продукты, персоны, географические объекты, события.
  • Источник текста: полный url, идентификатор источника (например, «Хабр»).
  • Тип текста: комментарий, пост, etc.
  • Характер текста. На Хабре это может быть «урок», «перевод».
  • Темы текста. Можно определить по хабу на Хабре, разделу форума или упоминаемым сущностям.
  • Время создания, обновления.

Далее