Ubuntu: как исправить ошибку snap “unexpected HTTP status code 408” и почему виснет ssh

Доброго дня. Представляю очередной небольшой детектив с внезапной развязкой.

В какой-то момент у меня перестала работать установка приложений через snap install или snap refresh. Вываливалась ошибка:

$ sudo snap refresh
ошибка: cannot refresh: cannot query the store for updates: got unexpected HTTP
              status code 408 via POST to "https://api.snapcraft.io/v2/snaps/refresh"

Это явно таймаут. При этом некоторые другие команды снапа (вроде поиска) работали.

Что конкретно предшествовало ошибке сложно сказать, потому что примерно неделю до увиденной ошибки комп использовался редко. Единственное — я сменил домашнего интернет-провайдера и домашний роутер. Позже это было замечено и на домашнем сервере с убунтой, который стоит дома.

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

Опубликовано
В рубрике blog Отмечено , ,

Как скрыть лишние сетевые интерфейсы в Ubuntu

Привет. Недавно я обновил Ubuntu 23.04 до 23.10, а по пути обновилась и KDE Plasma c 5.27.4 до 5.27.10. Помимо прочего, в системе установлен docker. И почти сразу начали мозолить глаза вот такие нотификации:

Заглянув в список сетей, я обнаружил тучу каких-то “левых” интерфейсов:

Как экспортировать коллекции из Postman и сконвертировать в http/curl/wget

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

Мы будем трогать постман.

Пользователь Postman каждый день

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

Пост пропитан лютой ненавистью к этому ржавому глюкавому дерьмодемону.

Опубликовано
В рубрике blog Отмечено , ,

Деревья без рекурсии

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

Ты наверняка знаешь что такое рекурсия. Она применяется в разных местах, но, как правило, это классические графовые алгоритмы (DFS, BFS, etc.), когда надо пройтись по веткам вширь, вглубь, туда, сюда и вообще. Однако рекурсия может обойтись дорого, учитывая, помимо прочего, ограничения стека и количество данных.

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

  • как узнать всех родителей некоего элемента в плоском связном списке (иными словами, восстановить иерархию без построения дерева; узнать путь до элемента);
  • как построить иерархическую структуру, имея на руках только плоский связный список его узлов;
  • как вывернуть эту иерархию обратно в плоский связный список.

Возможно, ты удивишься, но для решения всех трёх задач рекурсия не нужна. Ниже будут их решения. Они элементарны, но неочевидны (хотя казалось бы).

Быстродействие коллекций Laravel

Photo by Bruno Guerrero on Unsplash

Привет. Это небольшой пост-шпаргалка. В нём речь пойдёт о классах Illuminate\Support\{Collection, LazyCollection}.

Я обожаю коллекции Laravel. Они очень гибки и комфортны в использовании при обработке массивов данных. Однако это балует и расслабляет разработчика. Более того, вся философия Laravel и good practices вертятся вокруг гибкости и простоты написания кода. Всё это может плохо сказаться (и в итоге сказывается) на производительности бекенда.

Ниже рассмотрим несколько конкретных случаев, на которые следует обратить внимание.

Опубликовано
В рубрике blog Отмечено ,