Обновить
14
0.1
Tony Soloviev@Tony-Sol

Dev-To-Ops transworker

Отправить сообщение

Наконец я нашел в чем была моя проблема. Очень помогло продебажить nc с помощью strace:

strace -e verbose=all -f nc raspberry-01.local 22

В выводе увидел, что:

openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnss_resolve.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/libnss_resolve.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/libnss_resolve.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/libnss_resolve.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Так что все оказалось довольно тривиально - конструкция hosts: files resolve [!UNAVAIL=return] dns в /etc/nsswitch.conf была верной, просто от моего внимания ускользнуло то, что libnss-resolve не был установлено в ubuntu, а в arch он видимо ставится еще archinstall'ом

Кажется вы (хотя может быть и я) не поняли за сарказмом посыл - sim-рабство это в целом плохо и любой случай, когда сервис отвязывается от "для входа номер телефона обязателен" это хорошо

это уже ни фига не "оптимизация", это уже из области "да вы охренели, что ли?"

Нет, скорее это из области "прочел документацию - узнал как надо было делать изначально", multi-stage build это буквально база того, как упаковывать в образ компилируемые приложения.

изобрели meshtastic/meshcore

скорее OpenMANET

Пользуюсь hyprland и это love/hate relationship - он мне нравится ровно до момента взаимодействия с его "экосистемой": очень не хватает остального окружения для единой среды.

Своей (имею ввиду не встроенную, а от hyprwm) панели нет, нужно что-то типа waybar (а конфигурация его компонентов вызывает у меня боль), app launcher'а своего нет, нужен rofi/wofi/etc. (да, есть hyprlauncher который сломан полностью - (segfault'ы на ровном месте каждый вызов, игнор флагов запуска), xdg-desktop-portal-hyprland кастрирован в сравнении с kde'шным.

Зато color picker есть, очень нужная вещь (имхо - нет)

  1. как хоткеем переместить окно на другой рабочий стол?

  2. Как хоткеем открыть окно на пол экрана?

  3. Как открыть ссылку в браузере в новой вкладке? Или закрыть вкладку? Гном - тап тремя пальцами

К моменту выхода tahoe у меня уже нет мака, но раньше все это (и далее по комментарию) без проблем задавалось в настройках.

Вместо z могу порекомендовать zoxide - то же назначение, только не плагин, а самостоятельная утилита

Получается что видимо таки подразучились, раз нано- стало микро-

nushell имхо действительно похож на powershell в своей идее "передаем осмысленные объекты, а не просто строки", но с гораздо более приятным синтаксисом комманд - командлеты в powershell каждый раз напоминают мне FuzzBuzzEnterpriceEdition своими именами

Ну так это 2-3, т.е. разумное количество (хотя я же не знаю что за плагины у вас включены)

У меня используется 7, и иногда лаг заметен (в основном из-за git-aware, но и в целом есть очень много мест, где можно улучшить конфиг), но когда эти же плагины использовал вместе с oh-my-zsh лаг был не "иногда"

Из фреймворков для zsh, как будто powerlevel10k выглядит наименьшим из зол

Я конечно по взглядам одобряю лолы и кеки над коммунистами, но тут это просто вообще не месту, типа - вот вообще не понятно как это приплетено

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

UPD: пришла в голову аналогия, что для меня warp в мире терминалов, это как windows 11 в мире операционных систем - кругом из всех щелей "эйай-эйай-эйай", чтобы плюшки работали "sign in or sign up", а под капотом все тот же старый win32 bash и тонны телеметрии, зато красивое

Слишком большой массив всего, что связано с sh/bash/zsh/etc. чтобы начать пользоваться pwsh вне windows среды. Это и тонны мануалов, гайдов, хаков, плагинов, и огромное комьюнити, и большая временая фора.

Вот и получаем, что "экосистемы нет, потому что комьюнити нет, а комьюнити нет - потому что привлечь никого не могут, а привлечь никого не могут - потому что экосистемы нет".

Хотя сама идея в основе - "оперировать не строками, а объектами", лично мне импонирует.

А wezterm пробовали? Все хайпят этот ghostty, но пока не встретил ниодного преимущества чтобы на него перейти - чем он вам понравился?

Как это вообще почуствовать, что шел тормозит?

Например, в контексте zsh, поставить (ИМХО) б-гмерзкий oh-my-zsh и все в нем поставить на ВКЛ - prompt-lag и command-lag будут ощутимы

В конфиге systemd-resolved (/etc/systemd/resolved.conf) у меня включен MulticastDNS, нигде он не переопределяется. NetworkManager я отключил и включил вместо него systemd-networkd без дополнительных конфигов.

Сам resolvectl то видит все и моментально все резолвит, но все что идет через getaddrinfo ломается

Пример
❯ ip route show
default via 192.168.31.1 dev eth3 proto kernel metric 40
100.100.1.1 dev eth2 proto kernel scope link metric 5
100.100.10.86 dev eth2 proto kernel scope link metric 5
100.100.10.176 dev eth2 proto kernel scope link metric 5
100.100.100.100 dev eth2 proto kernel scope link metric 5
100.114.245.99 dev eth2 proto kernel scope link metric 5
100.122.227.101 dev eth2 proto kernel scope link metric 5
192.168.31.0/24 dev eth3 proto kernel scope link metric 296
192.168.31.1 dev eth3 proto kernel scope link metric 40
❯ resolvectl status
Global
         Protocols: -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: foreign
Current DNS Server: 10.255.255.254
       DNS Servers: 10.255.255.254
        DNS Domain: skate-rockhopper.ts.net

Link 2 (eth0)
    Current Scopes: none
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 3 (eth1)
    Current Scopes: none
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 4 (eth2)
    Current Scopes: mDNS/IPv4 mDNS/IPv6
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 5 (loopback0)
    Current Scopes: none
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 6 (eth3)
    Current Scopes: mDNS/IPv4 mDNS/IPv6
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported

Link 7 (eth4)
    Current Scopes: none
         Protocols: -DefaultRoute -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
❯ resolvectl --cache=no query github.com
github.com: 140.82.121.4

-- Information acquired via protocol DNS in 66.8ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
# tailnet magicDNS включен, сам tailscale работает на хостовой windows, в ubuntu внутри wsl пробрасывается resolv.conf
❯ resolvectl --cache=no query raspberry-01.skate-rockhopper.ts.net
raspberry-01.skate-rockhopper.ts.net: 100.100.10.176

-- Information acquired via protocol DNS in 3.6ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
# та же самая машина, просто не через tailnet, а напрямую в рамках одной wi-fi сети
❯ resolvectl --cache=no query raspberry-01.local
raspberry-01.local: 192.168.31.214             -- link: eth3

-- Information acquired via protocol mDNS/IPv4 in 116.0ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
# но через все что идет через getaddrinfo ломается с mnds:
❯ nc -v -z github.com 22
Connection to github.com (140.82.121.3) 22 port [tcp/ssh] succeeded!
❯ nc -v -z raspberry-01.skate-rockhopper.ts.net 22
Connection to raspberry-01.skate-rockhopper.ts.net (100.100.10.176) 22 port [tcp/ssh] succeeded!
❯ nc -v -z raspberry-01.local 22
nc: getaddrinfo for host "raspberry-01.local" port 22: System error

Мне кажется что проблема где-то в неправильной конфигурации nsswitch'а, но в упор не вижу где здесь

hosts:          files resolve mdns_minimal dns myhostname

мог ошибиться

Занятно, что наткнулся на статью в попытках решить такую же проблему. Хотел переехать с avahi на systemd-resolved в ubuntu внутри wsl, потому что резолвинг .local имен в 5 секунд (не миллисекунд!) настоящая боль. Что более бесящие - на другом ПК в wsl стоит arch и там все работает на таких же (плюс-минус) конфигах :/

Он (был год назад, как сейчас не знаю) очень скуден по функционалу - единственное чем fleet может конкурировать, так это работой с jb'шной разработкой psi, которая местами лучше, чем language server'а. При этом ресурсов жрет больше, чем vscode и возникает закономерный вопрос - а почему бы тогда просто intelij idea и не пользоваться. Плюс множество бесящих багов, начиная с неспособности его сохранять и читать собственные конфиги maven'а (хотя это вечная "фишка" - idea тоже постоянно "забывала" про переопределения путей и настойчиво пыталась гадить .m2 в домашнюю директорию) и продолжая неработающим дебаггером для kotlin (!) при работе над teamcity-kotlin-dsl (!!). Итого снес я его спустя день мучений и вернулся в idea.

Сама задумка то как будто бы была неплохая - "мощь intellij idea в легковесном исполнении", но видимо не для меня

Пытался пользоваться zed еще с времен когда он был только на macos. Он безусловно развивается, небо и земля в сравнении с тем что было раньше (а раньше пример не было даже интеграции с git - нельзя было из него просматривать изменения/коммитить и тд), но естественно это процесс не быстрый. Плюс нужно учитывать, что сами плагины также на rust, а это, несмотря на всю его "хайповость" сильно уменьшает комьюнити, которое эти плагины и будет делать (это не на ts для vscode писать, да). Быстродействие действительно ощущается, вот например открыт один и тот же проект внутри wsl в vscode и в zed:

zed vs vscode лицом к лицу
zed vs vscode лицом к лицу

Другое дело, что такая драматическая разница в потребляемой памяти обуславливается скорее количеством плагинов, которыми обвешан vscode и которых нет у zed (github/gitlab интеграции, панели управления docker/kubernetes, интеграции с mise/taskfile и кучей всякого другого).

Вот еще немного скриншотов:

работа с git
работа с git
терминал и расширения
терминал и расширения

Я его оставлю (в отличии от богомерзкого jetbrains fleet) и буду следить за развитием (надеюсь приблизится к vscode по функциональности), но у него не понятная для меня ниша - в качестве "легковесного редактора с подсветкой" для меня он не заменит neovim, а в качестве "полноценной ide" - не заменить intellij idea vs/vscode с тонной плагинов.

Везде где можно, пользуюсь темой catppuccin tokyonight в вариантах night/day для темного и светлого оформления соответственно.

ИМХО, намного более полезным выглядит подобное решение, с затенением всего вне текущего контекста курсора

Скрытый текст

Информация

В рейтинге
3 260-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, DevOps-инженер
Старший
От 6 000 $
PHP
Docker
CI/CD
Golang
GitLab
Ansible
SRE
DevOps
Git
Kubernetes