#  Ограничиваем в правах Firefox с помощью apparmor
Difrex (tavern,23) → All  –  09:45:36 2018-11-27

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

© Wikipedia.org

Самое опасное приложение на десктопе, как я считаю, - это браузер. На меня напал очередной приступ паранои и я написал профиль apparmor для Firefox.

## tl;dr

Ставим утилиты:


pacman -S apparmor audit


Apparmor входит в ядро, так что нужно только его включить передав соответствующие параметры в cmdline Linux. Правим /etc/default/grub:

>> Читать далее
#  Читаем почту в GNU Emacs
Difrex (tavern,23) → All  –  13:00:20 2018-08-21

И так по обсуждению из вот этого вот треда(стартовый пост) у меня получилось настроить Gnus для работы с пятью почтовыми аккаунтами и отказаться от Evolution.

На самом деле связка получилась такая: fetchmail забирает письма, раз в 5 минут и запускает procmail для фильтрации сообщений, procmail сохраняет сообщения в $MAILDIR, дальше уже Gnus читает почту и показывает ее. Чтобы иметь нормальные уведомления я использую индексер почты mu, i3blocks запускает раз в 30 секунд скрипт проверки на новые письма и отправляет уведовления через libnotify, ну и иконку на панели рисует.

Вот так примерно это выглядит в ASCII-арте:


+-----------+ +------------+ +------------+ +------------+
| fetchmail | |procmail | |Maildir | |Gnus |
| +-----+filters +----+ +----+ |
+----+------+ +------------+ +-----+------+ +------+-----+
| | |
| | |
| | |
| +--------------+ +-----+------+ +-----+-----+

>> Читать далее
#  Автодополнение для python с LSP в GNU Emacs
Difrex(mobile) (tavern,23) → All  –  14:40:10 2018-07-30

The Language Server Protocol (LSP) - это открытый, основанный на JSON-RPC протокол для использования между редакторами исходного кода и серверами, которые предоставляют специфические для языка программирования функции. Цель протокола заключается в том, чтобы обеспечить поддержку автодополнения языка программирования независимо от любого редактора или среды IDE.

LSP дает реально крутые штуки, такие как:

* Показ документации для модуля под курсором

* Автодополнение по точке. На самом деле это `company-lsp`, но про это будет дальше.

* Интеграция с flycheck

И еще кучу всего на самом деле. Все возможные настройки можно будет увидеть по `M-x customize RET lsp RET`.

## Конфигурация

Для начала нужно установить сам language server для python. Для Arch/Manjaro установка будет выглядеть так:

>> Читать далее
#  Рига
Difrex(mobile) (tavern,23) → All  –  06:40:49 2018-07-30

Съездили тут на днях погулять в Латвию. Сели в машину и поехали. Границу пересекали в Бемякони, туда(к литовцам) въехали за два часа - нормалек.

Периодически шел дождь, но в целом погода была ничего.

## Рига

От границы до Риги дорога заняла часа 4-5. Старый город порадовал, красив.

Заехали на море(Рижский залив точнее). Пустынный солнечный пляж - это прикольно, но ледяной ветер не давал вдоволь насладиться видом и пробыли мы там всего минут 30.

Помимо Риги заезжали еще в несколько мест.

## Цесис

## Бауска

>> Читать далее
#  Минск 08.05.2017
Difrex(mobile) (tavern,23) → All  –  06:40:49 2018-07-30

Фотки без обработки, тупо RawTherapee -> export.

## Верхний город

## Центр

## Площадь независимости

Ссылка: https://difrex.lessmore.pw/post/minsk-08-05-17/
#  Пилим i3wm
Difrex(mobile) (tavern,23) → All  –  06:40:49 2018-07-30

Я тут на ЛОРе недавно постил скриншот и, вроде, людям понравилось. Попробую разобрать тут свой конфиг.

## Софт

Я использую Ubuntu 16.04, так что все действия актуальны для нее.

* i3-gaps

Это форк оригинального i3, где добавляются гапсы(отступы между окнами).

Сборку и установку производим так:


git clone https://github.com/Airblader/i3 -b 4.13
cd i3

>> Читать далее
#  Фест Эпоха рыцарства 2017
Difrex(mobile) (tavern,23) → All  –  06:40:48 2018-07-30

Будет много фоток. Пост весит 16Мб.

Под Минском в д. Озерцо проходил фестиваль "Эпоха рыцарства" на котором в первый день я и побывал.

Было солнечно и тепло. В палатках продовались домашняя медовуха и сбитень.

Уже на подходе к самому месту проведения заметили палатки и косплееров на коняшках.

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

Во второй половине дня начался турнир рыцарей. Это там, где они пиками друг-друга тыкают. Ведущий что-то постоянно рассказывал и комментировал.

Вышли сами рыцари с флагами и на конях.

Вот этот с гусем на голове был особо приколен.

>> Читать далее
#  Отправляем логи в удаленный logstash
Difrex(mobile) (tavern,23) → All  –  06:40:47 2018-07-30

Все привыкли пользоваться связкой ELK. А что делать, если хочется отправить логи в уже существующий ELK с хоста на котором памяти в обрез?

У меня получилось так, что на виртуалке с сайтиком всего 512Мб памяти и логстешь при запуске просто выжирал ее всю и падал. Никакие Xmx Xms не помогали. Самое интересное, что логи-то nginx я заставил писать в JSON, а значит logstash выступает просто проксей до эластика.

Вот так можно заставить писать nginx в JSON. Добавляем это в nginx.conf.


log_format logstash_json '{ "@timestamp": "$time_iso8601", '
'"remote_addr": "$remote_addr", '
'"remote_user": "$remote_user", '
'"body_bytes_sent": "$body_bytes_sent", '
'"request_time": "$request_time", '
'"status": "$status", '
'"request": "$request", '
'"request_method": "$request_method", '

>> Читать далее
#  Go в GNU Emacs
Difrex(mobile) (tavern,23) → All  –  06:40:47 2018-07-30

На самом деле это выжимка вот этой статьи. Ну, а еще некоторые вещи в ней устарели, по-этому немного обновленная версия.

# tl;dr

Поставим нужные пакеты в Емакс


(use-package exec-path-from-shell)
(use-package rainbow-delimiters)
(use-package go-snippets)
(use-package go-guru)
(use-package go-autocomplete)


Настроим go-mode

>> Читать далее
#  API поиска на dynamic.lessmore.pw
Difrex(mobile) (tavern,23) → All  –  06:40:46 2018-07-30

## Поиск на dynamic.lessmore.pw

Как это ваще устроено??? На самом деле API - это открытый всем Elasticsearch, который предоставляет гору возможностей для поиска за счет движка Lucene. Давайте что-нибудь найдем!

Вот в этом вот комменте я пообещал рассказать как это все сделать. Приступим.

Давайте для начала попробуем поискать этот самый коммент: ii://XWShDDcuR4C8PcrTFdGl. Здесь и далее мы будем использовать только curl.


curl -XPOST -d '{"query": {"query_string" : {"fields" : ["msgid"], "query" :"XWShDDcuR4C8PcrTFdGl"}}}' https://dynamic.lessmore.pw/search


Нам вернется такой вот ответ



>> Читать далее
#  Про IDEC
Difrex(mobile) (tavern,23) → All  –  06:40:42 2018-07-30

IDEC - это протокол обмена сообщениями совместимый на базовом уровне с ii. Расшифровывается, как ii-like Data Exchange Convention. Главная фишка его - это простота и возможность работать поверх чего угодно, например, ssh. Но практически все реализации сейчас работают поверх http.

Цитата из официальной документации

> Есть несколько серверов (грубо говоря, сайтов), за каждым из которых закреплены свои пользователи (поинты). Поинты пишут сообщения каждый на свой сервер. Через каждые 10-20 минут сервера скачивают друг у друга новые сообщения. В итоге на всю сеть одна общая база данных. Для установления цепочек синхронизации владельцы серверов сначала договариваются.
>
> Всё общение разделено на так называемые эхоконференции или эхи (см. терминология). Эха - это что-то вроде ленты твиттера или темы на форуме. Пользователи могут свободно подписываться на интересные им эхи и писать туда сообщения в пределах одной станции. Держатели серверов синхронизируют между собой (по общему согласию) самые популярные и нужные пользователям эхи, и сообщения оттуда расходятся по всей сети.

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

## Общение

В стандарте предусмотрена очень полезная фича, как /list.txt(это может быть на самом деле файл или путь в строке адреса в браузере). На запрос list.txt сервер возвращает нам список эх(публичных) с описанием и количеством сообщений в них. Так при первом попадании на сервер, клиент сможет сразу знать какие эхи он хочет читать.

Стандарт и все реализации серверов поддерживают создание эхи пользователем. Для этого нужно всего лишь написать в нее. Такая эха не будет отображаться в list.txt и получить из нее сообщения можно, только зная название. Шифрования в стандарте нет, но это и не нужно, ибо приносит только усложнение. Для приватного общения можно использовать скрытую эху и GPG.

>> Читать далее
#  eshell в качестве шелла
Difrex(mobile) (tavern,23) → All  –  06:40:39 2018-07-30

Я тут подумал: а чей-то я использую в качестве шелла zsh, когда можно юзать емаксовый eshell?

Быстренький гайд.

## Делай раз

Для начала, чтобы темы отображались правильно нужно сгенерировать terminfo. В 26.1 емаксе можно работать с 24-битным терминалом. Напишем файл terminfo-24.src:


# Use colon separators.
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.

>> Читать далее