Pages: 1 2 3 4 5 6 7
RSS
# Re: GTK5 и Xorg
linux.14
Difrex(dynamic,1) — Andrew Lobanov
2023-01-21 10:37:08


По мне так Wayland давно готов(для меня). Из приложений только я.браузер через xwayland работает. Даже Emacs можно собрать с чистым gtk и он будет нативно в Wayland работать :)

# Re: боны поны и прочее
idec.talks
Difrex(dynamic,1) — ii.51t.ru
2023-01-21 10:32:27


> нифига не понял, почему это в develop

Да это мой косяк. Постил из браузера - он эху не ту подставил. Главное, что тред один и тот же и msgid не потерялись.

# Re: боны поны и прочее
develop.16
Difrex(dynamic,1) — iiii
2023-01-19 22:13:44


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

ЗЫ: хочу тянуть по 9000 сообщений

# Re: dumb
plan.9
Difrex(dynamic,1) — nvkv
2021-08-25 15:28:22


О, эта штука может пригодиться на очередном CTF :)

# Re: Точка Z
std.hugeping
Difrex(dynamic,1) — hugeping
2022-04-11 17:22:43


Кто-то убегает в другие страны подальше от РФ, а я наоборот возвращаюсь.

Надеюсь, что война как можно быстрее кончится нашей неизбежной победой.

+++ картошки хватит на всех

# Re: Новая работа
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2021-06-15 13:43:13


> Переезжаю в Питер, хотя сроки опять сдвигаются. Нода переедет на арендованный сервер из под дивана :)
Люблю Питер, очень атмосферный город. Следующий в списке на переезд после Минска :). Надо будет пересечься сеткой в Питере :)

# Re: Новая работа
pipe.2032
Difrex(dynamic,1) — vvs
2021-06-01 14:26:33


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

# Re: Новая работа
pipe.2032
Difrex(dynamic,1) — vvs
2021-06-01 12:57:33


> Комментарии и API - это другое дело.
Нет, не другое. Смотря какую документацию мы имеем в виду и что пишем. Если у тебя библиотека, которой будут пользоваться многие, то очевидно, что нужно документировать API(вместе с примерами).

# Re: Новая работа
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2021-06-01 09:22:53


Поздравляю!
В какой город переезжаешь? Что с нодой будет? :)

> Единственная проблема в том, что ребята не пишут документацию. Совсем. Как с этим бороться снизу? Есть истории успеха?
Начини сам писать документацию для своего проекта и добавь сборку оной в ваш CI. Я принес во все наши большие проекты sphinx.
Для некоторых проектов можно собирать документацию из docstring - это для документирования API. А для мелких часто хватает небольшого README.md в корне.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2021-05-02 13:16:45


> 1. Официальная программа для линукса почему-то перестала перепрошивать клаву, при попытке прошить программа наглухо зависает. Последнюю прошивку ставил из винды. Не исключено, что в будущем придется перейти на кастомную прошивку openannepro.github.io (но это хорошо что подобная хотя бы есть).

Странно, но у себя ничего подобного не замечал - прога работает нормально.

> 2. Месяца два назад начал замечать, что кнопка V иногда дает двойные нажатия

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

# dynamic.lessmore.pw deprecated
idec.talks
Difrex(dynamic,1) — All
2021-04-01 13:20:43


Да здравствует static.lessmore.pw!

На самом деле я не справился с javascript, точнее с его экосистемой. Это не язык плохой, а я ленивый, если что. Мне больше нравится когда я могу пол года не обновлять свой код, а потом
когда опять будет всплеск энтузиазма к какому-то проекту, то обновить я все смогу легко и ничего не поломается. Это я про Go сейчас.
Ну и приятнее мне все же писать на Go, а не typescript :). Опять же на работе у меня таких проблем нет, т.к. все проекты, в которые я коммичу, довольно акутальные и там обновляется все нормально.

Так вот!

== Что будет с нодой dynamic.lessmore.pw

* Репозиторий на github/gitea будет отправлен в архив
* Веб-интерфейс какое-то время еще будет доступен, потом будет сделано перенаправление на static.lessmore.pw
* Нода продолжит работать по прежнему url https://dynamic.lessmore.pw/idec/
* Прямой доступ к API поиска elasticsearch будет закрыт
* Фетчинг всего со всего из list.txt продолжится. dynamic останется главным источником для фетча для static
* UI будет трансформирован в поисковую систему, как уже когда-то было, но под другим именем и с нормальными фичами, типа автодополнения. Будет объявлено позже.

== А что со static.lessmore.pw?

Нода:

* Строка для подключения клиентом https://static.lessmore.pw/
* В бэкенде по прежнему Elasticsearch
* Фетчатся только некоторые эхи. В данный момент это:
* pipe.2032
* idec.talks
* linux.14
* develop.16
* std.club
* std.hugeping
* game.rogue.14
* difrex.blog
* music.14
* plan.9

Веб:

* Новый полностью статический SSR интерфейс доступен по https://static.lessmore.pw
* В процессе написания интерфейса на шаблонах Go получилось что-то типа микрофреймворка с переиспользуемыми компонентами - прикольно :)
* Основная ориентация по тредам по времени. Будет возможность смотреть треды без привязки ко времени, а по колличеству на страницу, как везде, но потом
* Т.к. я фетчил не все, то в веб-интерфейсе не видны все треды - есть сообщения без топ-поста. Но они доступны в IDEC API и все новые треды будут отображаться нормально.

== Поиск

На static теперь есть полностью работающий поиск!

Можно искать просто "linux". А можно сделать что-то поинтреснее, типа

message:"Поставил в qemu 9front" AND author:"hugeping"

то будет искаться только фраза целиком в сообщении от @hugeping. Для простого поиска по любому из слов - просто воткните их туда через пробел.
Ну и в кавычках можно искать по всему по любой фразе. Важно: слова должны боть полными и без опечаток. т.е. "жопа" найдется, а вот "жипа" уже нет - это штука не такая умная, как яндекс :)
А в целом там синтакс Lucene, так что, можно конструировать довольно сложные запросы.

Исходники в скором времени будут выложены - это все та же самая нода.
Постинг с регистрацией тоже в скором времени прикручу.

Ах да. Пока что интерфейс абсолютно не оптимизирован для мобилок. Так-то на мобилках есть IDEC Mobile, но работу на мобилках я тоже сделаю ^_^.

Пишите про баги.

# Re: Artist-mode в Emacs
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-12-29 08:15:55


А так, вроде, все просто там https://cloud.lessmore.pw/index.php/s/rkYMDEzwZXm7S7E

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

# Re: Artist-mode в Emacs
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-12-28 13:51:09


> Хочу присовать простые блок-схемы, но каждая попытка с открытыми мануалами приводит к какому-то месиву в буфере.

Использую artist-mode по работе - все норм. Но я рисую в *scratch*, а потом копипастю в нужный мне буфер.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-11-10 14:36:53


> Ещё резиновые колечки продают для смягчения, кто-то пробовал?
Я на пробел такие штуки поставил - взял у коллеги. Звук стал глуше, лязгает меньше.
Вместе с anne придут и оринги, планирую сразу поставить на все клавиши.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-11-10 06:54:56


> Что это значит? Не первый раз про мех клавы такое читаю, но у себя не замечал.
Сложно описать звук. Возьми кучку саморезов, положи в консервную банку и потряси вверх-вниз слегка, что-то вроде того. Конечно, не так громко и немного не так, но похожий звук добавляется к шуму свичей и стуку кейкапов :)

// Сам я, конечно, не проверял звук саморезов, но предполагаю, что это похоже должно быть

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — hugeping
2020-11-10 06:47:43


> но если выбираете между красными и синими/коричневыми
Поздно, уже едет посылка из китая с коричневыми свичами :)

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-11-09 07:53:51


Итак, с апреля месяца сижу на механике - офигенно, понравилось!

Немного про ощущения от qcyber dominator tkl после более чем полугода использования. По более чем 8 часов в день.

* Клава шумная, но шумят не свичи, а кейкапы об металлическую панель.
* Space, return, backspace песочат. Пробел гремит. Орингами ситуация с пробелом немного исправляется, но совсем чуть-чуть.
* Скелетон выглядит круто только первое время - потом уже не кажется таким крутым.
* Сборка качественная, до сих пор ничего не скрипит и не разваливается.
* Кейкапы хорошие - двойная печать. Ничего не потерлось.
* Слепая печать улучшилась :)
* ISO enter отстой - до него дольше тянуться, чем на ANSI расскладке.

В целом клава неплохая и за свои деньги это точно нормальный вариант. Но нужно быть готовым к тому, что она шумит. Клоны свичей cherry red качественные. Разницы между ими и оригиналами не почуствовал.

За это время понял, что хочеться тактильных свичей. Заказал себе Anne Pro 2 на Kailh Box Brown. Эти свичи еще и водонепроницаемые.

Теперь не хочу возвращаться на мембранку :)

// Да, чистить клаву удобно малярной кисточкой. Снимаешь кейкапы и выметаешь все говно, которое там скапливается. Кейкапы влажной губкой протереть и как новые.

# Re: Plan 9: экстремальный KISS #1
std.hugeping
Difrex(dynamic,1) — btimofeev
2020-10-28 14:15:04


> Шелл конечно аскетичный, надоедает каждый раз вводить команду заново
Кстати, а нет ли порта bash под plan9?

# Re: Ставлю цели на лето и копаюсь в себе (+org-mode)
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-10-22 10:17:25


> Путин не вечный, а наш текущий строй предполагает сменяемость власти
Нужно Димона вернуть. Он лучше был.

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

# Re: no-https-services
idec.talks
Difrex(dynamic,1) — oldpc
2020-10-19 08:38:31


Вот еще по http зеркало dynamic http://ideclubzduruedpzzrxxbt2hk6apecuhni5vnjlsqg2t3gdet26fjyid.onion/ но в TOR :)

А вот на Таверну залил документацию http://idec.spline-online.tk/s/download/idec/docs.tar.gz из master гита

# Re: no-https-services
idec.talks
Difrex(dynamic,1) — oldpc
2020-10-18 08:34:21


Документация нет доступной без https, но есть в гите.

Еще Таверна по http работает http://idec.spline-online.tk/

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-14 22:14:25


Пофиксил, фетчу тебя :)

# Автоматический тайлинг в Sway
difrex.blog
Difrex(tavern,23) — All
2019-04-07 15:08:45


Я давно использую i3wm в работе, а после выхода версии 1.0 Sway я перешел на него с i3. Sway - это пракатически полностью совместимый с i3 композитор Wayland. По-этому перейти на него оказалось очень просто. Мои конфиги Sway можно посмотреть на Github.

Почему-то я долгое время думал, что мне в i3/sway не хватает полностью ручного тайлинга, я пробовал различные оконные менеджеры с ручным тайлингом, такие как, `bspwm`, `herbstlutfwm` и другие, но они не заходили. Потом я решил попробовать AwesomeWM, все-таки это по сути фреймворк и на Lua можно написать все, что угодно. В нем мне очень понравилась стандартная возможность автоматического тайлинга. Вот, что мне переодически нужно, подумал я. Но во всех WM, что я пробовал не было нормальной поддержки скретчпадов - это такие плавающие окна, которые большую часть времени скрыты, и показать их можно, например по комбинации клавишь. Что же мне на самом деле хотелось от WM - скретчпады, полуручной и автоматический тайлинг, возможность менять поведение скриптами на любом языке. По всем параметрам подходил Sway за исключением автоматического тайлинга. Было решено добавить его самостоятельно.

После небольшого иследования этого вопроса оказалось, что у sway есть IPC с возможностью подписки на определенные события. Проблема возникла в том, что существующие биндинги к i3 ipc не подходили, т.к. формат дерева в JSON у Sway отличается, а так же добавляются новые возможности, типа, получения устройств ввода, чего не было в i3.

Так я решил написать(и написал) биндинг к Sway IPC на Go. И уже поверх этого начал писать демона, который реализует автоматический тайлинг.

На данный момент я реализовал `spiral` layout, который работает, так как я хочу и полностью меня устраивает. Так же на начальном этапе реализован `left` layout. Демонстрацию этих режимов можно посмотреть в видео ниже.

## Как этим воспользоваться?

Для начала нужно скомпилировать swaymgr. Из зависимостей только Go - поставь его из репозиториев твоего дистрибутива.


git clone https://github.com/Difrex/gosway
cd gosway/swaymgr
go get -t -v ./...
go build -o ~/.local/bin/swaymgr


Теперь можно добавить swaymgr в конфигурацию sway. Добавь следующие строчки в `~/.config/sway/config`


exec_always ~/.local/bin/swaymgr
bindsym $mod+Alt+m exec ~/.local/bin/swaymgr -s 'set manual'
bindsym $mod+Alt+l exec ~/.local/bin/swaymgr -s 'set left'
bindsym $mod+Alt+s exec ~/.local/bin/swaymgr -s 'set spiral'


Комбинации клавишь меняй по своему вкусу.

Swaymgr запоминает свою расскладку для каждого рабочего стола, а состояние хранит в `~/.autotiling.bolt`. В репозитории ты так же найдешь скрипт, который можно использовать, например, с `i3blocks`.

## Про внутреннее устройство

Если вдруг тебе захочется помочь в разработке, то вот небольшой гайд по тому, как правильно это сделать.

Swaymgr - это отлельное приложение, которое использует `gosway/ipc`.

Для того, чтобы взаимодействовать со Sway через unix-socket необходимо два подключения:

1. Соединение для передачи различных комманд
2. Соединение на которое будут приниматься события от оконного менеджера

Так же для хранения настроек рабочих столов используется встроенная, минималистичная база данных Bolt. Функция `newManager() (*manager, error)` создает все необходимые подключения и вызывает функцию инициализации интерфейсов `Layout`. Возвращаемая структура имеет такой вид:


type manager struct {
commandConn *ipc.SwayConnection
listenerConn *ipc.SwayConnection
store *store
layouts map[string]Layout
}


Главный интерфейс, с помощью которого реализуются все режимы - Layout, выглядит он так: Файл `swaymgr/layouts.go`


type Layout interface {
// PlaceWindow must receive an *ipc.Event
// and do the container manipulation
PlaceWindow(*ipc.Event) error
// Manage must store WorkspaceConfig in the database with
// the workspace name, layout name and with the Managed: true
Manage() error
}


У этого интерфейса есть всего два метода:

* `Manage() error` - вызывается тогда, когда текущий рабочий стол переключается в какой-либо режим
* `PlaceWindow(*ipc.Event) error` - вызывается тогда, когда создается новый контейнер на рабочем столе, который является управляемым.

### Как работает spiral layout

Я рассмотрю управлене окнами на примере реализации режима spiral.

Структура этого режима состоит всего из двух полей:

* `Conn *ipc.SwayConnection` - Коммандное подключение к unix-сокету Sway
* `store *store` - Открытое соединение к базе данных, в котой хранятся текущие настройки рабочих столов

При наступлении события создания нового окна, и если текущий рабочий стол управляется, данное событие передается в метод `PlaceWindow(event *ipc.Event)`. Для начала необходимо найти текущее окно на котором находится фокус:


nodes, err := s.Conn.GetFocusedWorkspaceWindows()
if err != nil {
return err
}
var result ipc.Node
for _, node := range nodes {
if node.Focused {
result = node
break
}
}


Далее вся логика позиционированния окон помещается в 7 строчек:


if result.WindowRect.Width > result.WindowRect.Height {
_, err := s.Conn.RunSwayCommand(fmt.Sprintf("[con_id=%d] split h", event.Container.ID))
return err
} else {
_, err := s.Conn.RunSwayCommand(fmt.Sprintf("[con_id=%d] split v", event.Container.ID))
return err
}


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

## Зарезервированные режимы

Я заранее зарезервировал некоторые режимы которые очень хочется реализовать. Вот они:

* `type FiberLayout struct{}` - режим подсмотренный в AwesomeWM. Окна размещаются симметрично друг под другом и вдоль
* `type TopLayout struct{}` - самое большое окно размещается вверху экрана, остальные внизу разделяясь по горизонтали
* `type BottomLayout struct{}` - тоже самое, что и для TopLayout, но главное окно находится внизу
* `type RightLayout struct{}` - тоже самое, что и LeftLayout, но главное окно размещается справа

Проект на Github. Учитывай, что это пока самая ранняя реализация и тут могут быть баги в больших колличествах, правда ничего критичного я пока не находил - пользоваться можно. Буду очень рад баг-репортам и фич-реквестам, а так же особенно пулл-реквестам. Лицензия проекта: Apache.

Ссылка: https://difrex.lessmore.pw/post/sway-autotiling/

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


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

© Wikipedia.org

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

## tl;dr

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


pacman -S apparmor audit


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


GRUB_CMDLINE_LINUX="apparmor=1 security=apparmor audit=1"


Включаем сервисы:


systemctl enable apparmor
systemctl enable auditd


Разрешаем себе читать audit.log


groupadd -r audit
gpasswd -a USERNAME audit


В /etc/audit/auditd.conf прописываем только что созданную группу: `log_group = audit`

Перезагружаемся

Проверяем статус apparmor:


apparmor_status
apparmor module is loaded.
62 profiles are loaded.
49 profiles are in enforce mode.
...
SKIP
...


Пишем профиль /etc/apparmor.d/usr.bin.firefox


#include <tunables/global>

/usr/bin/firefox {
#include <abstractions/base>
#include <abstractions/bash>

# Даем доступ к видео, памяти и tty
/dev/dri/** wr,
/dev/dri/ r,
/dev/shm/ r,
/dev/tty* rw,
/dev/shm/* rw,

# Даем доступ к конфигам, а так же сети и SSL
/etc/fonts/** r,
/etc/drirc r,
/etc/mime.types r,
/etc/pulse/client.conf r,
/etc/nsswitch.conf r,
/etc/ca-certificates/** r,
/etc/resolv.conf r,
/etc/host.conf r,
/etc/ssl/openssl.cnf r,
/etc/hosts r,
/etc/gai.conf r,
/etc/machine-id r,

# Разрешаем исполнение самого себя
# /usr/bin/bash ix,
/usr/bin/firefox rix,
/usr/bin/chrome-gnome-shell rix,
# Разрешаем грепать
/bin/grep ixr,

# Доступ к библиотека на чтение/подключение
/usr/lib/* rm,
/usr/lib/dri/* rm,
/usr/lib/python3.7/** rm,
/usr/lib/firefox/** rixm,

# Доступ к системным FS
/sys/devices/system/cpu/present r,
/proc/** r,
/sys/devices/** r,

/usr/share/hunspell/ r,
/usr/share/fonts/** rwkl,
/usr/share/sounds/** r,
# тут 1000 нужно заменить на id своего юзера
/run/user/1000/** r,

# Разрешаем писать во временную директорию
/tmp/** rwk,

# Даем права на чтение/запись/лок/линкинг
/run/user/1000/** rwkl,
# Разрешаем писать в сокет dbus
/var/run/dbus/system_bus_socket w,

# Шрифты/значки и.т.д
/var/cache/fontconfig/** r,
/var/lib/flatpak/exports/** r,
/usr/share/fonts/ r,
/usr/share/icons/** r,
/usr/share/glib-2.0/** r,
/usr/lib/firefox/** rwkix,
/usr/share/ca-certificates/** r,
/usr/lib/gtk-3.0/** rmk,
/usr/share/applications/kde4/ r,
/usr/share/pixmaps/ r,
/usr/share/icons/ r,
/usr/share/libthai/thbrk.tri r,
/usr/local/share/applications/ r,
/usr/local/share/applications/* r,
/usr/local/share/mime/mime.cache r,
/usr/share/applications/ r,
/usr/share/applications/* r,
/usr/share/gdm/applications/ r,
/usr/share/gdm/applications/* r,
/usr/share/locale-langpack/** r,
/usr/share/gtk-3.0/** r,
/usr/share/mime/** r,
/usr/share/myspell/** r,
/usr/share/themes/** r,

# Назначаем Firefox влядельцем ~/.mozilla и даем ему там все права
# кроме исполнения и подключения библиотек
owner @{HOME}/.mozilla/** rwkl,
@{HOME}/.cache/fontconfig/** r,
@{HOME}/.cache/mozilla/** rwk,
@{HOME}/.cache/thumbnails/** r,
@{HOME}/.config/dconf/* rkw,
@{HOME}/.fonts/ r,
@{HOME}/.local/share/icons/** r,
@{HOME}/.cache/mesa_shader_cache/index rwk,
@{HOME}/.local/lib/python3.7/** rm,
@{HOME}/.config/fcitx/dbus/* r,
@{HOME}/.local/share/recently-used.xbel rk,

# Определяем каталоги в домашней директории куда можно ходить
# Firefox и с какими правами.
# В моем случае браузер не может даже получить список
# каталогов, но может читать в разрешенных местах и писать в ~/Загрузки
@{HOME}/Изображения/ r,
@{HOME}/Документы/ r,
@{HOME}/Загрузки/ r,
@{HOME}/Видео/ r,
@{HOME}/Музыка/ r,
@{HOME}/soft/ r,
@{HOME}/Изображения/** r,
@{HOME}/Документы/** r,
@{HOME}/Музыка/** r,
@{HOME}/Загрузки/** rwk,
@{HOME}/Видео/** r,
@{HOME}/soft/** r,

# Кэши и локальные конфиги
@{HOME}/.local/share/fonts/ r,
@{HOME}/.fonts/** r,
@{HOME}/.ICEauthority r,
@{HOME}/.Xauthority r,
@{HOME}/.adobe/**/ r,
@{HOME}/.config/* r,
@{HOME}/.cache/* wrk,
@{HOME}/.config/gtk-2.0/* r,
@{HOME}/.config/gtk-3.0/* r,
@{HOME}/.fonts.conf r,
@{HOME}/.icons/ r,
@{HOME}/.local/share/applications/ r,
@{HOME}/.local/share/applications/* r,
@{HOME}/.local/share/fonts/** r,
@{HOME}/.local/share/icons/ r,
@{HOME}/.local/share/mime/mime.cache r,
@{HOME}/.pulse-cookie krw,
@{HOME}/.config/pulse/** krw,
}


PULL THE LEVER


aa-enforce /etc/apparmor.d/usr.bin.firefox
Назначение /etc/apparmor.d/usr.bin.firefox принудительного режима.


Теперь можно запустить браузер и проверить его работоспособность. Наблюдаем через `tail -f /var/log/audit/audit.log | grep DENIED` что было запрещенно Firefox.

Для меня, например, это:


type=AVC msg=audit(1543307263.804:81037): apparmor="DENIED" operation="open" profile="/usr/bin/firefox" name="/etc/passwd" pid=31159 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
type=AVC msg=audit(1543307263.884:81039): apparmor="DENIED" operation="exec" profile="/usr/bin/firefox" name="/usr/bin/lsb_release" pid=31177 comm="firefox" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0
type=AVC msg=audit(1543307263.991:81040): apparmor="DENIED" operation="open" profile="/usr/bin/firefox" name="/dev/" pid=31156 comm="firefox" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
type=AVC msg=audit(1543307266.698:81043): apparmor="DENIED" operation="open" profile="/usr/bin/firefox" name="/usr/bin/" pid=31493 comm="chrome-gnome-sh" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
type=AVC msg=audit(1543307266.944:81044): apparmor="DENIED" operation="exec" profile="/usr/bin/firefox" name="/usr/bin/ldconfig" pid=31533 comm="chrome-gnome-sh" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0
type=AVC msg=audit(1543307266.968:81045): apparmor="DENIED" operation="exec" profile="/usr/bin/firefox" name="/usr/bin/gcc" pid=31534 comm="chrome-gnome-sh" requested_mask="x" denied_mask="x" fsuid=1000 ouid=0


Зачем браузеру запускать компилятор я категорически не понимаю.

Смотрим еще раз в `apparmor_status`, в конце должно быть что-то подобное:


...
9 processes are in enforce mode.
/usr/lib/firefox/firefox (587) /usr/bin/firefox
/usr/lib/firefox/firefox (3857) /usr/bin/firefox
/usr/lib/firefox/firefox (31156) /usr/bin/firefox
/usr/lib/firefox/firefox (31212) /usr/bin/firefox
/usr/lib/firefox/firefox (31298) /usr/bin/firefox
/usr/bin/python3.7 (31491) /usr/bin/firefox
/usr/lib/firefox/firefox (31516) /usr/bin/firefox
/usr/bin/ntpd (1462) /usr/{bin,sbin}/{,open}ntpd
/usr/bin/dnsmasq (1510) dnsmasq


Все довольно просто в отличии от того же SELinux. А еще у apparmor есть очень хорошая документация с quick guide.

Ссылка: https://difrex.lessmore.pw/post/apparmor-firefox/

# Читаем почту в GNU Emacs
difrex.blog
Difrex(tavern,23) — All
2018-08-21 14:00:20


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

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

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


+-----------+ +------------+ +------------+ +------------+
| fetchmail | |procmail | |Maildir | |Gnus |
| +-----+filters +----+ +----+ |
+----+------+ +------------+ +-----+------+ +------+-----+
| | |
| | |
| | |
| +--------------+ +-----+------+ +-----+-----+
| |i3blocks | |mu indexer | |BBDB |
| |libnotify +----------+ | |contacts |
| +--------------+ +-----+------+ +-----------+
| |
| |
| +-----+------+
+------------------------------+systemd user|
|and timers |
+------------+


> Такие cхемки, кстати, очень удобно рисовать в artist-mode

Я настраивал все на Arch Linux, но на самом деле это все заработает в любом GNU Linux.

## Ставим пакеты

Ставим пакеты:


sudo pacman -S mu fetchmail procmail


Ставим BBDB в Emacs


M-x package-install RET bbdb RET
M-x package-install RET all-the-icons-gnus RET


BBDB нам нужен для автодополнения контактов в поле To. Да и вообще это хорошая быстрая база контактов для Emacs. А вот пакет all-the-icons-gnus рисует красивые иконки :).

## Правим конфиги

### fetchmail

Для начала нам необходимо настроить fetchmail, который будет забирать почту по IMAP/POP.

Редактируем ~/.fetchmailrc:


set daemon 300 # fetch mail every 5 minutes
set logfile ~/Mail/fetchmail.log # Logfile

poll imap.gmail.com with proto IMAP
user 'YOU_USER' there with password 'YOU_PASSWORD'
options ssl keep
mda 'procmail -d %T'


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

Чтобы не использовать пароли в открытом виде можно наложить патч на fetchmail.

### procmail

Для фильтрации почты и расскидывания ее по каталогам будем использовать procmail - у него отличная гибкая система фильтров на регекспах.

Редактируем ~/.procmailrc:


MAILDIR=$HOME/Mail # You'd better make sure it exists

DEFAULT=$MAILDIR/mbox/
LOGFILE=$MAILDIR/log
LOCKFILE=$HOME/.lockmail

:0 # socials
* ^From.*@.*(twitter|vk\.com|facebook|golos\.io)
social/

:0 # JIRA
* .*Subject.*(\[JIRA\]|\[WGJIRA\]).*
jira/

:0 # Gitlab
* ^From.*gitlab@gitlab.*
Gitlab/


Свои фильтры пишем дальше аналогично - тут все просто. Да, и убедитесь, что каталог `$MAILDIR` существует.

### msmtp

msmtp эта штука, которая позволяет отправлять письма через нужный сервер smtp. Определяет аккаунт она по полю From.

Редактируем ~/.msmtprc:


defaults
auth on
tls on
logfile ~/.msmtp.log
tls_certcheck on
tls_trust_file /etc/ssl/cert.pem

account difrex
host smtp.googlemail.com
port 587
from my.mail@gmail.com
user USERNAME
password PASSWORD


Аналогично для остальных аккаунтов.

### Systemd

Теперь необходимо написать нужные юниты и таймеры. Юнит для fetchmail будет выглядеть так:

~/.config/systemd/system/fetchmail.service


[Unit]
Description=Fetchmail
After=network-online.target

[Service]
Type=forking
ExecStart=/usr/bin/fetchmail

[Install]
WantedBy=default.target


Включаем и запускаем его:


systemctl --user enable fetchmail.service
systemctl --user start fetchmail.service


Теперь fetchmail будет стартовать после успешного логина в систему.

Настроим индексацию почты в mu:

~/.config/systemd/user/mu.timer


[Unit]
Description=mu mail indexer timer
Documentation=man:mu(1)

[Timer]
OnCalendar=*:0/5

[Install]
WantedBy=timers.target



И сервис

~/.config/systemd/system/mu.service


[Unit]
Description=mu email indexer
After=fetchmail.service

[Service]
Type=oneshot
ExecStart=/usr/bin/mu index
Environment=MAILDIR=/home/difrex/Mail # тут нужно указать свой MAILDIR


Включаем и стартуем


systemctl --user enable mu.timer
systemctl --user start my.timer


### i3blocks

Настроим вывод значка с колличеством непрочтенных писем в i3bar и отправку уведомлений. Для этого напишем простой скрипт на bash.

~/.config/i3/mail.sh


#!/bin/bash

MAILDIR=/home/difrex/Mail; export MAILDIR # тут нужно указать свой MAILDIR
COUNT="$(/usr/bin/mu find date:15m..now and flag:unread 2>/dev/null | wc -l)"

# Write notify lock
write_notify_lock() {
mkdir -p ~/.cache
echo $COUNT > ~/.cache/.mail_notify_lock
}

# Cleanup lock
clean_notify_lock() {
rm -f ~/.cache/.mail_notify_lock
}

if [[ $COUNT -gt 0 ]]; then
if [[ ! -f ~/.cache/.mail_notify_lock ]] || [[ $COUNT -gt $(/usr/bin/cat ~/.cache/.mail_notify_lock) ]]; then
write_notify_lock
/usr/bin/notify-send 'New mail' "$(/usr/bin/mu find date:15m..now and flag:unread 2>/dev/null | tail -1)"
fi
else
if [[ -f ~/.cache/.mail_notify_lock ]]; then
clean_notify_lock
fi
fi

echo $COUNT


> Не забываем сделать скрипт исполняемым

И в конфиг i3blocks.conf нужно добать секцию с нашим скриптом:


[mail]
label=
interval=30
command=~/.config/i3/mail.sh


Выглядит иконка в баре вот так:

А уведомление в dunst так:

## Gnus

Переходим к самому интересному, а именно к настройке Gnus.

Редактируем файл ~/.gnus.el.


;;; .gnus.el --- GNUs configuration
;;; Commentary:
;;; Code:

(require 'all-the-icons-gnus) ;; Наводим красоту
(all-the-icons-gnus-setup)

(setq user-mail-address "my_email@example.com") ;; Будет по-умолчанию в поле From
(setq user-full-name "Denis Zheleztsov") ;; Устанавливаем, как нас зовут

;; Показываем, что нужно смотреть в MAILDIR
(setq gnus-select-method
'(nnmaildir "mail" (directory "~/Mail"))
mail-sources '((maildir :path "~/Mail" :subdirs ("cur" "new")))
mail-source-delete-incoming nil)

;; arbitrary name after "nnmaildir+"
(setq gnus-message-archive-group "nnmaildir+mail:outbox")
(setq message-sendmail-envelope-from 'header)
(setq mail-envelope-from 'header)
(setq message-send-mail-function 'message-send-mail-with-sendmail)

;; Устанавливаем в качестве программы для отправки писем msmtp
(setq sendmail-program "/usr/bin/msmtp")
(setq message-sendmail-envelope-from 'header)

;; Сортируем письма по дате
(setq gnus-thread-sort-functions '(gnus-thread-sort-by-most-recent-date))

;; Добавляем автодополнение по TAB для поля To
(add-hook 'message-mode-hook
(function (lambda()
(local-set-key (kbd "<tab>") 'bbdb-complete-mail))))

;; Если адресса получателя нет в базе BBDB - добавляем
(add-hook 'message-setup-hook 'bbdb-mail-aliases)

;; Добавляем в базу контактов адресатов из входящей почты
(bbdb-initialize 'gnus 'message)
(bbdb-mua-auto-update-init 'gnus)
(setq bbdb-mua-auto-update-p 'create)

;; Говорим демону Gnus проверять новую почту каждые пять минут
(gnus-demon-add-handler 'gnus-demon-scan-news 5 t)
(gnus-demon-init)

;;; .gnus.el ends here


Все! Нажимаем `M-x RET gnus RET` и радуемся.

Так выглядит буфер с группами и непрочитанными сообщениями:

А так список сабжей в группе(синим цветом показаны прочитанные сообщения):

> Обновлять групповой буфер можно по g, а написать новое сообщение по m. Отправить набраное сообщение через C-c C-c. Ответ на сообщение с цитатой R, без - r.

Ссылка: https://difrex.lessmore.pw/post/gnus-multi-accounts/

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — Andrew Lobanov
2020-09-14 19:41:40


> У меня даже emacs в файлах в конце '\n' ставит :)
У меня тоже. Но это все таки данные не совсем для человека.

Ты же не будешь править тело сообщения поинта если оно пришло без \n в конце, а просто запишешь в базу.

// Newline в конце добавлю, но фетчер у меня умеет и так и так.

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — Difrex
2020-09-14 13:35:35


Т.е. я считаю, что "\n" - это разделитель списка и если в конец вносить его, то получится, что последний элемент списка - это всегда пустая строка.

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

> В системе, когда у нас последняя строка не содержит \n, мы не можем отличить ситуацию, прочиталась ли строка целиком?
Это справедливо только для имен эх, а вот id сообщения всегда можно понять прочитался ли он полностью.

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-14 13:29:10


Ну, в общем давай подождем остальных, что скажут. По мне так '\n' в конце списка эх необязателен, т.к. не относится к данным.

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-14 08:57:21


> Мне не сложно подправить, но это именно будет хак. Дополнительный блок условный.
А почему так? Я код не хочу ща читать - лень, но ты разве не разбираешь ответ в слайс? Типа,

messages := make(map[string][]string)
echoList := strings.Split(getBody(resp.Body))
var currentEcho string
for i := range echoList {
  if echoList[i] == "" {
    continue
  }
  if isEcho(echoList[i]) {
    currentEcho = echoList[i]
  }
  if isMessage(echoList[i]) {
    messages[currentEcho] = append(messages[currentEcho], echoList[i])
  }
}

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-14 06:54:27


Хм, вот про newline в конце интересно. Это у нас нигде не описано, но и проблем ни у кого не возникало

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-13 20:37:29


Fixed

# Re: Что с станцией lessmore?
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-13 17:26:43


Хм. Это я сломал что-то в базовом протоколе :).

Работает только со смещением сейчас
curl https://dynamic.lessmore.pw/idec/u/e/difrex.blog/-250:250
difrex.blog
2fDZ67P8JkchA9Rh4If4
2NszlFTgvhakzz7dIfvc
ML8cpSyzyOKaFA6Lx1NF
8TtPHu5T7oo3GSXdDYc5
U6ZYZxgYz2sq01L96zZz
igt9lCsui5qE9AICtdgP
mTWsJXVOAljita3sgDOK
V0hj3Z0QjFxpluaaiKvI
b91aGfRgRLJWfB1q60bg
pNfzXBddGbSy7AW7slpz
4fmEizz5kjk4UcQf7VIJ
OxdmEiQJIZqrqjCUNp2i
ojRAXNp7wzVIF9GBetZn
z5UV57mUeyhAmFsaMUq0

Спасибо, поправлю.

# Re: Пишу ноду ii/idec на go
idec.talks
Difrex(dynamic,1) — hugeping
2020-09-09 12:02:37


> Прошу всех, кто с меня фетчит, переходить на hugeping.tk и отписаться о возникновении проблем.
Фетчу тебя. Пока все идет нормально.

# Re: Пишу ноду ii/idec на go
idec.talks
Difrex(dynamic,1) — Peter
2020-09-09 07:02:33


> @base64: имя файла - всё, что после этой строки берется как base64 аттач демка тут
Т.е. этот тег должен находится в конце тела сообщения?

# Re: Политосрач
pipe.2032
Difrex(dynamic,1) — vmg
2020-08-15 17:39:28


> Узнав слухи о каких-то жутких избиениях женщин и детей сотрудниками милиции, я понял, что интернету лучше не верить.
Это не слухи! Я тут нахожусь, вижу много своими собственными глазами! Тебе нужны видео и фото?

Вот почитай:

* Избитый школьник https://news.tutby.news/society/696793.html
* Люди, которые оказались в больнице после нахождения нескольких суток в отделенеии https://news.tutby.news/society/696741.html
* Еще школота 16 лет https://news.tutby.news/society/695851.html
* Ну и очень классное видео https://www.youtube.com/watch?v=Ylyv3HuRyds&feature=youtu.be

# Re: Политосрач
pipe.2032
Difrex(dynamic,1) — Difrex
2020-08-14 11:08:16


Массовые забастовки по всей стране - это просто охренительно! И главное, что все мирно. В заявлениях власти какой-то сюр. Попозже попробую большой пост накатать.

# Re: Политосрач
pipe.2032
Difrex(dynamic,1) — vit01
2020-08-13 19:18:15


Короче, про наш офис - это фейк оказался, но все свалили на всякий случай :)

# Re: Политосрач
pipe.2032
Difrex(dynamic,1) — Difrex
2020-08-13 12:37:46


Офисы Яндекса и убера захватили силовики. В наш офис(wg) едут тоже, все срочно эвакуируются.

# Re: Политосрач
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-08-11 15:31:19


А я все-таки наброшу политоты.

Сейчас сижу через VPN через Руанду, все очень плохо, скорее всего не смогу нормально сюда выходить.

Надеюсь, что усатого скинут.

Если интересно, то за ситуацией у нас в Беларуси можно наблюдать тут https://t.me/nexta_live. Сегодня опять будут протесты, возможно, что больше, чем вчера.

# Re: 1.5к игрушек и не только на itch.io
pipe.2032
Difrex(dynamic,1) — Peter
2020-06-16 19:14:59


Мой список(пока):

* night in the woods
* celeste
* bleed/bleed 2
* tonight we riot
* gladiabots
* mable & the wood

# 1.5к игрушек и не только на itch.io
pipe.2032
Difrex(dynamic,1) — All
2020-06-11 08:12:06


На itch.io можно взять бандл с примерно полутора тысячями игр, ассетов(спрайтов для создания игр и.т.д) и прочего за 10$ или больше.
Множество всего имеется под GNU/Linux. DRM Free.

https://itch.io/b/520/bundle-for-racial-justice-and-equality

# Re: Подкасты
pipe.2032
Difrex(dynamic,1) — vit01
2020-05-23 11:45:15


> Про отсылочку к IDEC я так и не понял. Ты написал плагин к Grafana на Go, который делает несколько запросов с её стороны и группирует в таблицу, или ты этот плагин запилил на бэкенде dynamic’а и выкидываешь в Grafana уже готовые для переваривания куски данных?

В том то и дело, что пока не написал, и в табличке to 10 threads вместо сабжа topicid. Теперь же можно написать плагин, который сделает несколько запросов в эластик и отдаст во фронтенд уже правильные данные.

> Sourcehut ты слишком хипстерским назвал, видимо работал с ним уже. У них на сайте говорится про continuous integration фишки, но сайт с проектом у них слишком отстойный по качеству документации. Можешь пояснить за эту тему?

На счет хипстерства - это я так пошутить пытался. а вообще sh с точки зрения разработки, а не социальности удобнее гитхаба. Т.е. там все сосредоточенно именно на принятии патчей, ревью и.т.д, а не как на гитхабе на обсуждениях и лайках. Плюс sh полностью свободен. Документация у них в манах по каждому из компонентов. Дизайн его меняется в лучшую сторону со временем -- все же стоит учитывать, что это все пока в альфа находится. Про CI ничего сказать не могу, т.к. пользуюсь Drone+Gitea, а на работе Gitlab CI.

# Re: Подкасты
pipe.2032
Difrex(dynamic,1) — Difrex
2020-05-22 20:52:45

# Re: Подкасты
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-05-08 08:10:33


Из подкастов слушаю вот этих ребят с недавнего времени https://devopskitchentalks.podbean.com/.

спойлер: в следующем подкасте я буду :)

# Re: FIDO жив?
pipe.2032
Difrex(dynamic,1) — Mirage
2020-04-19 18:48:04


> В каком смысле?
Ну, у нас есть пхп-нода, питононода, гошная нода и еще кучка. А у тебя на какой станция работает? Или эта с нуля написана и исходников пока нет?

# Re: FIDO жив?
pipe.2032
Difrex(dynamic,1) — Mirage
2020-04-19 14:50:11


> Сделал регу на web-ноде idec.md0.ru.
> Сообщения от новых пользователей премодерируются, так что спам и т. п. в сеть не пройдет.
Хм, а что за нода в бэкенде исрользуется?

# Re: Самоизоляция
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-04-16 07:35:22


У нас тут в Минске вирус не летает, но всех отправили на удаленку. Уже почти месяц из дома работаю. Мне не очень нравится. Рабочего места нормального дома нет :(. Жена тоже на удалёнке, но ей работа из дома очень заходит.
По слухам это все может затянуться до июня. Чтобы не стать ещё толще, чем сейчас, работаю в режиме помодоро и в перерывах отжимаюсь :).

+++ картошки хватит на всех

# Re: Механические клавиатуры
pipe.2032
Difrex(tavern,23) — Difrex
2020-04-03 17:55:45


Покодил я сегодня весь день на этой клаве.
Вполне ок, немного непривычно, но точно лучше чем макбук. Клава бездровная, подсветка настраивается через fn+scrollock, можно создавать свои варианты.
Довольно шумная, но тут ничего не поделаешь.
Сборка отличная - ничего не скрипит, под кнопками металлическая панель.
Смущает только то, что кейкапы очень легко снимаются, но может так и должно быть.
Фотку залил в файлэху.

+++ картошки хватит на всех

# Халява на GoG
pipe.2032
Difrex(dynamic,1) — All
2020-04-03 16:56:03


На GoG раздают Symmetry https://www.gog.com/game/symmetry. Под Linux нет, но из жадности забрал :)

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-04-01 19:09:04


В общем подумал я и решил ещё раз попробовать механику :). Взял вот эту клаву: https://www.ttn.by/computers_and_networks/input_devices/keyboards/qcyber_dominator_tkl_code343774?utm_source=eSputnik-trigger&utm_medium=email&utm_campaign=Trigger_po_zakazam_%7C_Zakaz_prinjat&utm_content=463724457. В пятницу привезут - расскажу, как она.

+++ картошки хватит на всех

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — vmg
2020-04-01 11:24:47


>> Вот подсветка - это и правда бесполезно
vmg> Давай объясним это девочкам, которые визжат от восторга при виде переливающихся огонёчков.
Ну, кстати, подсветка не такая и бесполезная. Особенно ночью, в полной темноте :)


+++ At work. idec.el/0.1

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — vit01
2020-04-01 11:18:47


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

> И, кстати, приятно удивил знак тильды рядом с левым шифтом, это удобно оказалось.
Тоже отстой. И гнутый ентер - отстой. А еще непонятно кто додумался делать кнопку выключения над backspace(там, где везде delete) такой же, как и остальные. Бесит неимоверно.

> Другое дело, что гном по юзабилити не идеален, но это уже вопрос десятый
Макось тоже. Снес её со своей прошки через месяц страдания. Без всякий дуалбутов. Система ущербная.
А еще, например, в макоси если настроить лок на Super+l, то она пробрасывает эту комбинацию дальше в активное приложение.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-03-31 12:37:19


Кстати, а бывает ли механика с мультимедиа клавишами? Мне хотябы для управления звуком, чтобы были.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — vit01
2020-03-27 19:53:06


> Вот тут Денис про макбуки написал, я тут сам сейчас с макбука пишу, с Air 2017 года, который купил недавно. Клава тут достаточно классическая для ноутов, ничего необычного, легко клавиши нажимаются.

Слишком низкие клавиши, а ещё на моем еврораскладка, а это лютый отстой. Ещё непонятно зачем на маках выносят знаки, типа, параграфа на отдельную клавишу. Тачпад норм, да. Но в последних прошках он стал просто огромным.
Жесты вполне себе работают и в гноме с расширением extended gestures. Но мне это не нужно, т.к. работаю я в sway, а гном на личном thinkpad, где тачпад тоже хорош. В общем за 3.5 года, что у меня этот рабочий макбук, я к его клаве так и не привык - ругаю при любом случае.

+++ картошки хватит на всех

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — Difrex
2020-03-27 14:09:40


Difrex> Попозже напишу, что именно, но он доволен.
Короче, узнал. Вот этой клавой он пользуется https://mechanicalkeyboards.com/shop/index.php?p=2920&l=product_detail с красными свичами

+++ картошки хватит на всех

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-03-27 11:41:31


> А чем не нравятся?
Слишком высокие клавиши. Люблю когда небольшой ход, но не настолько маленький, как у макбука.

# Re: Механические клавиатуры
pipe.2032
Difrex(dynamic,1) — btimofeev
2020-03-27 07:29:09


Сам я не люблю механические клавиатуры. Использую уже около 7 лет microsoft comfort curve 3000(или как-то так модель называется). А вот мой брат любитель механики - долго сидел на razer со свичами cherry, а сейчас у него какая-то маленькая розовая механика. Попозже напишу, что именно, но он доволен.

+++ картошки хватит на всех

# Re: Strange
pipe.2032
Difrex(dynamic,1) — libra
2020-03-11 04:54:12


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

+++ картошки хватит на всех

# Re: No subject
pipe.2032
Difrex(dynamic,1) — libra
2020-02-29 16:53:57


libra> Всем sup, сетяне.
И тебе привет ^_^

libra> Ждём наступления весны?
Чувствую, что весна(первую половину) будет тут такой же, как и осень и зима - дождь и 2-5 градусов тепла.
Зимы вообще не было, снег выпадал только пару раз и не держался дольше дня. Про лыжи пришлось забыть :)

+++ картошки хватит на всех

# Re: bugs
pipe.2032
Difrex(dynamic,1) — libra
2020-02-01 14:49:09


> А суть, зачем три виртуалки?

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

> Расположено всё в одной зоне?! На одном железе?

Россия+Америка. Железо, как сам понимаешь, я не знаю какое - vps же.

> Что делает каждый сегмент?!
Предоставляет вычислительные мощности. И если вдруг я захочу, чтобы какой-то мой сервис пускался только в одном дц, то мне нужно изменить всего одну переменную:

sed 's/datacenters = ["byte", "do"]/datacenters = ["do"]/g'
и запушить в гит. Оно всё само переедет, причем без даунтайма и какого-либо ручного вмешательства.

# Re: bugs
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-01-30 14:47:13


Куда-то в твоих мессагах пропадает репто, а ещё конкретно это пришло 2 раза.

# Re: bugs
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-01-30 07:24:42


В общем, проблемы решаемы, но проблемы есть. Каждый же в праве использовать те расширения, которые хочет :)

Меня idec устраивает, как полностью текстовый протокол. Только лички не хватает.

# Re: bugs
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2020-01-29 14:19:58


> Этот вопрос решается административно.

Ага. Уехал в отпуск - за это время попал в список ркн.

# Re: bugs
pipe.2032
Difrex(dynamic,1) — libra
2020-01-29 06:43:17


> Ну т.е. само собой напрашивается, что всё, какой-то адекватный минимальный регламент должен быть...
Иначе получается можно кого-то оскорбить, унизить, расжечь пожар войны и нарушить в принципе законы какой-нибудь страны;
разместив изображения не свойственного характера= например уточку для ванны. ;\

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

# Re: Перекличка
pipe.2032
Difrex(dynamic,1) — vit01
2020-01-26 08:52:57


Я тут, я живой! :)

# Re: bugs
pipe.2032
Difrex(dynamic,1) — jmaks
2020-01-26 08:51:33


> Что за облако? На чём-где-когда, что за ттх?
"Облако" так называемое на трех виртуалках. На Nomad+Consul+Traefik.

> А субд у тебя какое используется? Как настроено?
БД - Postgres. Настроенно обычно:
create_user -P gitea
create_db gitea -O gitea;

# Re: bugs
pipe.2032
Difrex(dynamic,1) — jmaks
2020-01-08 08:41:32


> какой-то баг похоже затесался в ui, или же в db -- не отображает корректно время в подписях к коммитам

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

# Re: Сертифицированный пользователь ОС РОСА "Кобальт"
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-12-20 05:39:09


> Нафига меня на эти курсы направили не представляю.
Чтобы бумажка была, что ты сертифицированный пользователь =)

# Re: Стол
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-12-16 14:58:50


> Может, устроим в pictures флешмоб по обмену фотками домашних рабочих мест? :)
Мне нечего фоткать - сижу на диване с ноутом на коленях :)

# Re: Перекличка
pipe.2032
Difrex(dynamic,1) — btimofeev
2019-12-16 06:48:02


> где как угорелый прыгал под группу "Дайте Танк (!)"
А в каком жанре играют? Поделись ссылкой, чтобы послушать можно было альбомом, если есть :)

# Re: Перекличка
pipe.2032
Difrex(dynamic,1) — vit01
2019-12-16 06:44:49


Я живой. Читаю всегда, но писать не получается.

Сейчас вот решил перетащить все свои сервисы в nomad. Понял, что будет неправильным тащить с работы написанный ansible, по-этому пишу с нуля - потом открою. А ещё пишу статейку в блог про это все, там будет и wireguard и прочие штуки.

Могу вообще по прогрессу писать в idec небольшие посты. Только вот в какую эху, ii://linux.14 ?

# Re: Блоггинг, за жизнь и форматы данных
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-12-05 11:20:51


> В общем, за пределами текстового видеорежима 80х25 или 80х50 оно выглядит неудобно.
Но ты же код не пишешь в 200 символов на строку.

> На широких окнах будет узкая колонка текста.
Если зайти, например, на idec.spline-online.tk, то там мы увидем ограничение ширины для удобства чтения постов, как раз узкая колонка текста :).
Проблема в том, что вот этот вот подход с не расстановкой переносов работает для печати или для известной ширины.
Когда у тебя нет ограничения по ширине оно выглядит не особо удобным. Цезий на fullhd https://images.lessmore.pw/media/images/2019-12-05_314-18-33.png.
Неудобно читать такие длинные строки.

> Добавь просто в хук на читалку включение автопереноса и всего делов :)
Добавил.

# Re: Блоггинг, за жизнь и форматы данных
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-12-04 12:30:42


> Лишние символы переноса строки внутри абзаца есть моветон и кю :)
Где про это можно почитать?

# Re: Блоггинг, за жизнь и форматы данных
pipe.2032
Difrex(dynamic,1) — vit01
2019-12-02 07:18:35


Немного не по теме. Можно тебя попросить делать строки не такими длинными в посте?
Ограничиться, например, в символов 100. Иначе приходиться включать *visual-line-mode* :)

+++ At work. idec.el/0.1

# Re: Блоггинг, за жизнь и форматы данных
pipe.2032
Difrex(dynamic,1) — vit01
2019-11-26 07:14:47


> 1. В каком формате лучше публиковать картинки? Имеет ли смысл просто вставлять ссылки на них или лучше загружать в файлэху?
Я за ссылки. Поддержка фэх, как я понимаю, сейчас включена только у тебя и Андрея.

> 2. Имеет смысл постить всё в ii://pipe.2032 или стоит закидывать в отдельную эху?
Можно прямо в ii://pipe.2032, но и собственная эха тоже нормально. Только анонс её сюда скинуть было бы неплохо.

> 3. Как организовать автоматический кросспостинг между idec и веб-интерфейсом (например, через RSS или отдельного бота) и стоит ли заниматься этим вообще? (есть вариант просто делать 2 немного разных поста и там, и там)
Лучше два отдельных поста, наверное. Хотя, я свой блог транслирую сюда автоматом через RSS бота.

# Re: echo ping
pipe.2032
Difrex(dynamic,1) — jmaks
2019-11-03 20:56:34


Pong

+++ картошки хватит на всех

# Re: Тишина
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-10-31 08:21:19


> Попутно написал новую наноигру на инстеде (на конкурт КОНТИГР-2019). Посомтреть на это недоразумение можно тут: instead-games.ru/game.php?ID=338

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

# Тишина
pipe.2032
Difrex(dynamic,1) — All
2019-10-17 14:50:47


Сабж.

Времени нет совсем. Но я тут :).
Чекаю сообщения раз в день минимум.

У нас из отдела тут уходят наши джависты, и теперь приходится писать новую CMDB. Выбрали PG на бэкенд, фронтенд с GraphQL на хаскелле :).
Вообще предстоит огромный фронт работ, так что на общение времени мало :(.

# Столлман в Москве
pipe.2032
Difrex(dynamic,1) — All
2019-08-22 05:41:02


Сабж!

В этот вторник(27.08.19) в политехе https://mospolytech002.timepad.ru/event/1039245/

Лечу из Минска смотреть на дедушку, надену майку Emacs ^_^

# Re: Осмысленное общение, лень и интерфейсы
pipe.2032
Difrex(dynamic,1) — vit01
2019-08-13 09:57:49


> Но если там удобно работают черновики с фетчем
Не знаю, что за черновики с фетчем в Емаксе, но реализовать ты это можешь набирая текст в каком-нибудь файле и синкая его через owncloud(или подобное). Мне это не нужно просто.
Но ты можешь поставить задачу. Но я все-равно не понимаю, как ты предполагаешь делать синк? Поднимать
сервак свой для синка я не хочу.

> Просто когда я последний раз его пробовал, то были глюки с запуском idec-mode.
Просто так вызывать idec-mode не нужно.
Точки входа:
* `idec-local-browse' чтение загруженных сообщений
* `idec-online-browse' чтение эх в онлайне(писать от туда тоже можно)
* `idec-online-browse-hidden' чтение в онлайне скрэтоэхи
* `idec-load-new-messages' фетч новых сообщений
* `idec-browse-local-echo' переход сразу в локальную эху

> есть сортировка мессаг по дате
Изначально она там была, но потом я перевел сортировку сообщений по порядку поступления, т.е. как в Цезии.
Собственно, могу добавить сортировку по времени и опцию в customize, если очень надо.

Но порог вхождения в idec.el(как и в Емакс в целом) высок, да :)

# Re: Осмысленное общение, лень и интерфейсы
pipe.2032
Difrex(dynamic,1) — vit01
2019-08-09 08:24:26


> У нас есть Цезий и CutieFeed из десктопного
Еще idec.el :P

> Вот в Email это сделано удобнее всего, потому что черновики автоматом синхронизируются
Это не везде так.

# Re: FIDO жив?
pipe.2032
Difrex(dynamic,1) — Peter
2019-08-08 09:54:14


Peter> В фидо и в idec ламповость есть, а федиверсе - это калька с веб2.0, будь он неладен.
Согласен. Вход через почту есть, например, на динамике, мире и таверне.
У меня в планах есть сделать регу.

+++ At work. idec.el/0.1

# Re: FIDO жив?
pipe.2032
Difrex(dynamic,1) — Peter
2019-08-07 12:01:25


Да, фидо скорее мертво, чем живо.

Peter> Сама идея свободной/некоммерческой сети, такой, какой была Fido и такой, какой могла бы стать IDEC (но не станет, я имею в виду в первую очередь, отсутствие популярности/роста узлов) - греет душу. Но, похоже, время ИТ-романтики безвозвратно ушло. Да и дедам пора смиряться с тем, что они -- деды :)
У нас в IDEC тоже вход сложный, по-этому и не взлетаем.

А из некоммерческих сетей есть fediverse же. Оно взлетело вполне -- цветет и пахнет.

+++ At work. idec.el/0.1

# Re: Флоппинет жив!
pipe.2032
Difrex(dynamic,1) — vit01
2019-07-26 12:17:21


> Да, битая. Такое всё-таки иногда бывает с флехами.
Не так уж и редко такое бывает :(

У меня когда-то(~2000г) был жесткий IDE в мобил-раке, ходил с ним по друзьям :)

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — Peter
2019-07-23 15:55:06


Появилась штука, которая меня сейчас очень бесит!

В sway вместо dunst есть менеджер уведомлений mako. До недавних пор в нем не было фичи истории, как в dunst.
А 3 дня назад появились какие-то наработки и даже написал скрипт. Но оно, сука, работает хреново!

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — Peter
2019-07-20 08:17:04


Хм, а может и скролл. Главное, что в том же месте светится :)

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — Peter
2019-07-20 07:08:35


А у меня лампочка numlock показывает русскую расскладку :P

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — vit01
2019-07-19 09:40:42


Peter>> 3) Когда в туалете пользуются сушилками рук.
vit01> Норм, не раздражает
Вспомнил, меня раздражаю сами по себе сушилки для рук, потому что этой штукой
руки не высушить нормально. Люблю бумажные полотенца.

+++ At work. idec.el/0.1

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — vit01
2019-07-19 08:49:05


> 7) Когда очередной дистрибутив дропает поддержку 32-бит
А зачем она тебе? Если хочется 32 бита, то есть всякие специальные
маленькие дистрибутивы. Не просто так же дропают поддержку, а для того, чтобы
меньше тратить ресурсов. А ресурсы -- это деньги.

+++ At work. idec.el/0.1

# Re: Что меня раздражает
pipe.2032
Difrex(dynamic,1) — Peter
2019-07-17 09:19:31


Peter> Что меня раздражает:
Peter> 1) Когда идет дождь и кто-то курит на остановке ОТ, а я вынужден мокнуть. Курильщик, знай, ты поступаешь подло!
Я, даже когда дождь идет, не курю на остановке -- иду под дождь.

Peter> 4) Когда смотрят в мой монитор.
По-моему это раздражает ваще всех :)

--
Когда решил музычку на работе послушать, нацепил наушники, в Емаксе сказал плей, а звук идет из ноута, а не наушников,
потому что забыл штекер воткнуть. В итоге коллеги какое-то время вынуждены слушать каких-нибудь Cannibal Corpse.

Когда тормозит долбанный python-jedi.

Блин, сейчас вот понял, что меня раздражают совсем немногие вещи :)


+++ At work. idec.el/0.1

# Re: Жизнь, учёба и поездки
pipe.2032
Difrex(dynamic,1) — vit01
2019-07-10 13:43:52


Блин, очень хочется попасть к вам нам Байкал. Взять джип и палатку. Эх.

Круто у тебя с экзаменами. Я забивал часто и так и не окончил. Но для моей профессии это не критично, уже даже Гугл убрал требования о вышке.

// Лежу у бассейна, пластиковый "гипс" позволяет купаться :)

# Re: Первый раз сломал руку
pipe.2032
Difrex(dynamic,1) — Difrex
2019-06-25 09:08:28


Всем спасибо за поддержку ^_^

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

+++ At work. idec.el/0.1

# Первый раз сломал руку
pipe.2032
Difrex(dynamic,1) — All
2019-06-20 18:17:10


Сабж.
Это довольно неприятно. Особенно учитывая то, что я собрался на море.
Всегда надевайте защиту, вот что я хочу сказать. Это был тот раз когда я надел ролики и забил на защиту. Теперь мне носить гипс от 5 до 6 недель. Ничего не поделать, гипс наложен, катание под вопросом (ближайшее).

# Re: Почти халява
pipe.2032
Difrex(dynamic,1) — btimofeev
2019-06-10 09:47:26


> В PlayStation Plus вторую часть в этом месяце бесплатно раздают
А она под третью плойку есть?

# Re: Почти халява
pipe.2032
Difrex(dynamic,1) — geomaster
2019-06-06 09:38:37


Спасибо!

Настало время заценить эту игру.

# Re: За жизнь
pipe.2032
Difrex(dynamic,1) — Andrew Lobanov
2019-05-15 12:52:16


> А как дела у вас?
Загружен работой, еще нужно делать ремонт, но это хорошо, наконец-то мой дом достроили и я смог зарегить квартиру.

Купил на работу PS3 -- это просто офигительно расслабиться после обеда :)

+++ dynamic web

# Re: matrix: кто то пользуется?
pipe.2032
Difrex(dynamic,1) — Peter
2019-05-02 07:40:56


Только тематические чаты. Знакомых в матриксе нет.

# Re: matrix: кто то пользуется?
pipe.2032
Difrex(dynamic,1) — Peter
2019-04-29 08:57:01


Я пользуюсь периодически.

Сидел на лоровском серваке, пока его не прикрыли. Иногда забегаю в matrix.org.
Клиент для Емакса работает адекватно, почти все есть, даже аттачи драг-анд-дропом.

+++ dynamic GUI

# Re: Халява, сэр!
pipe.2032
Difrex(dynamic,1) — geomaster
2019-03-22 07:16:40


Спасибо, забрал.

Pages: 1 2 3 4 5 6 7