Docker Hub заблокирован, как исправить ошибку 403

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

По состоянию на 03.06.2024 хаб разблокирован на стороне docker.com. Надолго-ли — непонятно, поэтому рекомендую не расслабляться, а всё-таки подготовить машину и почитать ссылки в конце.

Я решил собрать здесь сводную инфу по решению вот такой ошибки:

Error response from daemon: pull access denied for nginx, repository does not exist or may require 'docker login': denied: <html><body><h1>403 Forbidden</h1> Since Docker is a US company, we must comply with US export control regulations. In an effort to comply with these, we now block all IP addresses that are located in Cuba, Iran, North Korea, Republic of Crimea, Sudan, and Syria. If you are not in one of these cities, countries, or regions and are blocked, please reach out to https://hub.docker.com/support/contact/ </body></html>
Опубликовано
В рубрике blog Отмечено ,

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.), когда надо пройтись по веткам вширь, вглубь, туда, сюда и вообще. Однако рекурсия может обойтись дорого, учитывая, помимо прочего, ограничения стека и количество данных.

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

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

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