<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все посты подряд / Говнокод / Хабр]]></title>
    <link>https://habr.com/ru/hubs/code_wtf/posts/</link>
    <description><![CDATA[Говнокод – код, за который должно быть стыдно]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sun, 03 May 2026 14:30:09 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    

  

  
  <item>
    <title><![CDATA[Пост @walker — IT-инфраструктура (+3) — 06.02.2026 09:10]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/993408/</guid>
    <link>https://habr.com/ru/posts/993408/?utm_campaign=993408&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Яндекс.Музыка заблокировала доступ к сервису на уровне аккаунта. Уже 3 месяца поддержка “разбирается</strong>”</p><p>С ноября у меня полностью&nbsp;<strong>заблокирован</strong>&nbsp;доступ к Яндекс.<strong>Музыке</strong>&nbsp;на уровне аккаунта (<strong><a href="mailto:bearded-rocker@yandex.ru" rel="noopener noreferrer nofollow">bearded-rocker@yandex.ru</a></strong>). Не отдельный девайс, не браузер, не приложение — аккаунт целиком.</p><p><strong>TL;DR</strong></p><ul><li><p>Я использую официальный <strong>API</strong> Яндекс.Музыки</p></li><li><p>В какой-то момент доступ к Яндекс.Музыке для моего аккаунта был молча заблокирован</p></li><li><p>Блокировка воспроизводится во всех клиентах: веб, мобильные приложения, устройства</p></li><li><p>Смена токенов, переустановка приложений, другие устройства — не помогает</p></li><li><p>В поддержке заведены тикеты ещё с ноября</p></li><li><p>Прошло больше 4 месяцев — доступа нет, решения нет</p></li></ul><p><strong>Предыстория</strong></p><p>Осенью я начал пользоваться Яндекс.Музыкой и колонкой с Алисой. Чтобы не терять годы истории из Spotify, я <a href="https://github.com/SergeyLavrentev/spondex" rel="noopener noreferrer nofollow">написал небольшой сервис</a>, который синхронизирует мои плейлисты и треки через&nbsp;<strong><a href="https://Yhttps://yandex-music.readthedocs.io/en/main/" rel="noopener noreferrer nofollow">неофициальный API&nbsp;Яндекс</a></strong>.Сервис какое-то время нормально работал, после чего доступ к Яндекс.Музыке для моего аккаунта внезапно пропал полностью.</p><p>Симптомы выглядят так:</p><ul><li><p>Яндекс.Музыка не работает нигде:— веб— iOS / Android— устройства с Алисой</p></li><li><p>Это не связано с VPN, IP или устройством</p></li><li><p>Это не выглядит как клиентская ошибка</p></li><li><p>Это выглядит как account-level блокировка внутри сервиса</p></li><li><p>в Браузере получаю ответ (в dev tools):</p></li></ul><blockquote><p><code>{ "name": "forbidden", "message": "403 Forbidden: "{"name":"</code><strong><code>API access restricted</code></strong><code>","message":""}"", "requestId": "99f13438-a1c9-43a7-9d7d-7de00bd3ea49.1"}</code></p></blockquote><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/789/d2c/8a7/789d2c8a70dca839a99c01a97c5a27d1.png" alt="Яндекс.Музыка заблокировала доступ к сервису на уровне аккаунта. Уже 3 месяца поддержка “разбирается”" width="592" height="319"><div><figcaption>Яндекс.Музыка заблокировала доступ к сервису на уровне аккаунта. Уже 3 месяца поддержка “разбирается”</figcaption></div></figure><p>Я сразу обратился в поддержку Яндекс.Музыки. После стандартных проверок они подтвердили, что проблема не на моей стороне, и завели тикет “на инженеров”.</p><p>На сегодняшний день:</p><ul><li><p>есть два тикета, заведённых ещё в ноябре:&nbsp;<strong>25103113405032668,&nbsp;25121613434183682</strong></p></li><li><p>каждый новый оператор начинает диалог заново</p></li><li><p>снова предлагается “обновить браузер / переустановить приложение”</p></li><li><p>затем снова: «да, мы видим проблему, инженеры занимаются»</p></li></ul><p>Я не прошу ничего экстраординарного:</p><ul><li><p>Восстановить доступ к Яндекс.Музыке для моего аккаунта <a href="mailto:bearded-rocker@yandex.ru" rel="noopener noreferrer nofollow">bearded-rocker@yandex.ru</a>, я плачу за Plus, Алису-Pro и хочу пользоваться этими сервисами.</p></li></ul><p>Сейчас же ситуация выглядит так:</p><ul><li><p><strong>платный</strong> сервис недоступен</p></li><li><p>тикеты “живы”, но без движения</p></li><li><p>сроков, статуса и ответственного нет</p></li></ul><p>@yandex please help 🙏</p> <a href="https://habr.com/ru/posts/993408/?utm_campaign=993408&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 06 Feb 2026 06:10:08 GMT</pubDate>
    <dc:creator><![CDATA[walker]]></dc:creator>
      
      <category><![CDATA[яндекс]]></category><category><![CDATA[яндексмузыка]]></category><category><![CDATA[api]]></category><category><![CDATA[поддержка]]></category><category><![CDATA[плюс]]></category><category><![CDATA[инцидент]]></category><category><![CDATA[клиентскийсервис]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Segrey646 — Информационная безопасность (+1) — 03.02.2026 16:37]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/992326/</guid>
    <link>https://habr.com/ru/posts/992326/?utm_campaign=992326&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/fc0/2fb/56c/fc02fb56cfd64d4e6f642ff8379ea4e6.jpg" width="631" height="358"></figure><p>Кожаным вход запрещён! Что будет дальше с Moltbook?</p><p>Разбирая новости и сам проект, анализирую куда всё повернётся. Поделюсь взглядом — он может не оправдаться, воспринимайте это как мой сон.</p><p>Обогатятся лишь соратники-основатели. У сервиса своя крипта — впереди байки о «удачливых спекулянтах», стартовавших из развалюхи в глухом городишке, а ныне облюбовавших клочок рая в Карибском море.</p><p>Вполне вероятно: Трамп с Маском напишут о ней в соцсетях, взвинтив цену до нескольких десятков миллиардов. Окрестят «гениальным чудом» и «будущим уже сегодня».</p><p>Занятнее — впереди. Конкуренты адаптируют концепцию, опубликовав «собственные» версии. Назвав инновационными разработками, но под капотом это лишь перелицованный клон.</p><p>Развязка — типичная для крипты: взлёт на ажиотаже («эх, зря не вложился раньше!»). Влиятельные фигуры продадут активы взятые на старте — и моментальный спад.</p><p>Биография Мэтта Шлихта спорная. Доступные данные напоминают кейс Элизабет Холмс: от триумфа к краху.</p><p>P.S. Поддержать можно подпиской на телегам канал "<a href="https://t.me/infobase999" rel="noopener noreferrer nofollow">Инфобез</a>", рассказываю просто про информационную безопасность.</p> <a href="https://habr.com/ru/posts/992326/?utm_campaign=992326&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 03 Feb 2026 13:37:11 GMT</pubDate>
    <dc:creator><![CDATA[Segrey646]]></dc:creator>
      
      <category><![CDATA[Moltbook]]></category><category><![CDATA[Clawdbot]]></category><category><![CDATA[Claude]]></category><category><![CDATA[Искусственный интеллект]]></category><category><![CDATA[Машинное обучение]]></category><category><![CDATA[аналитика]]></category><category><![CDATA[я пиарюсь]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 23.01.2026 20:39]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/988396/</guid>
    <link>https://habr.com/ru/posts/988396/?utm_campaign=988396&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет!<br><a href="https://github.com/vaniacer/sshto" rel="noopener noreferrer nofollow">Sshto</a> может паралельно выполнять команды на нескольких серверах. Но вывод потом получается вразнобой. Исправил это. Добавил сортировку вывода по имени сервера.</p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/6e0/97b/b0f/6e097bb0f61048b1c6088935b72e4c9b.png" alt="было, стало" title="было, стало" width="380" height="148"><div><figcaption>было, стало</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/988396/?utm_campaign=988396&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 23 Jan 2026 17:39:40 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[ssh]]></category><category><![CDATA[sort]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 16.01.2026 16:44]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/985922/</guid>
    <link>https://habr.com/ru/posts/985922/?utm_campaign=985922&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Егегей!</p><p>Не <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'ем единым как говорится, подкрутил немного <a href="https://github.com/vaniacer/sshto" rel="noopener noreferrer nofollow">sshto</a>. Заменил 'scp -r' в командах download/upload на rsync. Теперь можно копировать информацию туда-сюда-обратно с докачкой)<br></p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/985922/?utm_campaign=985922&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 16 Jan 2026 13:44:04 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[ssh]]></category><category><![CDATA[rsync]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 13.01.2026 12:25]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/984752/</guid>
    <link>https://habr.com/ru/posts/984752/?utm_campaign=984752&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, с новым годом!)<br>Тоже корежит что в <code>kubectl get pods</code> нельзя добавить дополнительные поля? Конечно есть <code>-o=custom-columns</code> но оно же не добавляет поля а выводит вот те поля которые ты попросишь. При этом полезное поле READY через  <code>custom-columns</code>  не вывести. А <code>-o wide</code> слишком wide. Жри что дают. Это не наш метод. Давно собирался что-то с этим сделать но руки не доходили. И вот праздники, обнулился, сразу пришло решение как <a href="https://t.me/sshtobash/82" rel="noopener noreferrer nofollow">сделать</a>. Добавил это в <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>, теперь выбор стрючков выглядит так:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/870/3dd/d7e/8703ddd7eef22652cc69bcc907e2586d.png" alt="kubectl get pods с доп. полями NODE и IP" title="kubectl get pods с доп. полями NODE и IP" width="1270" height="632"><div><figcaption>kubectl get pods с доп. полями NODE и IP</figcaption></div></figure><p>Вся необходимая информация сразу на одном экране и все влезает т.к. не wide, ура)</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/984752/?utm_campaign=984752&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 13 Jan 2026 09:25:29 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[pods]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 25.12.2025 14:59]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/980504/</guid>
    <link>https://habr.com/ru/posts/980504/?utm_campaign=980504&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, небольшой апдейт, добавил возможность редактировать service в <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/574/d18/937/574d189373bac61c7b9bfce364752abc.png" alt="edit service" title="edit service" width="746" height="460"><div><figcaption>edit service</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/980504/?utm_campaign=980504&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 25 Dec 2025 11:59:19 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[service]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 17.12.2025 09:29]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/977558/</guid>
    <link>https://habr.com/ru/posts/977558/?utm_campaign=977558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, меня наругали за использование "порно" гифки в ридми <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'я, поддался, заменил на нейтральное вот такое:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/394/717/bf6/394717bf689af14ff2e132a004cefb09.gif" alt="kubectl user interface" title="kubectl user interface" width="814" height="348"><div><figcaption>kubectl user interface</figcaption></div></figure><p>Теперь это sfw. Старую гифку можно посмотреть <a href="https://github.com/vaniacer/kube-dialog/assets/18072680/d806e28f-07cb-435b-ac59-c967e3456102" rel="noopener noreferrer nofollow">тут</a>)</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/977558/?utm_campaign=977558&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 17 Dec 2025 06:29:10 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 11.12.2025 18:05]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/975832/</guid>
    <link>https://habr.com/ru/posts/975832/?utm_campaign=975832&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, приятно когда <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> увеличивается, даже если увеличился совсем чуть-чуть. Добавил команду <strong>helm uninstall</strong>.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/dc5/556/fc1/dc5556fc1def6277fce6c1e1476a3f75.png" alt="helm uninstall" title="helm uninstall" width="745" height="470"><div><figcaption>helm uninstall</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/975832/?utm_campaign=975832&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 11 Dec 2025 15:05:36 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[helm]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @Denis-KD — Веб-разработка (+3) — 08.12.2025 00:01]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/974292/</guid>
    <link>https://habr.com/ru/posts/974292/?utm_campaign=974292&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Участие в нескольких проектах снижает результаты работы — так ли это?</p><p>На одной из конференций прозвучал тезис: заказчику необходимо держать аутсорс-команду full-time. Потому что, работая на нескольких проектах одновременно, разработчики меньше погружаются в контекст каждой задачи, что в итоге сказывается на качестве кода и проекта в целом.</p><p>Была высказана и противоположная точка зрения, но хочется услышать мнение именно лидов и разработчиков, основанное на опыте.</p><p>Почему спрашиваю?</p><p>Люди, не связанные с разработкой, часто видят процессы иначе. Любой штатный сотрудник, например, в маркетинге или продукте, обычно ведёт несколько проектов и в день решает десятки разноплановых задач: от подготовки рекламной кампании и согласования креативов до контроля бюджета и аналитики. И сотрудники успешно справляются с этой нагрузкой, переключаясь между задачами.</p><p>Вопрос к сообществу:</p><p>Правда ли, что разработчик, участвующий в нескольких проектах part-time, будет менее эффективен, допустит больше багов и в целом ухудшит качество релизов? Или это миф, и всё зависит от процессов, коммуникации и личной организованности?</p> <a href="https://habr.com/ru/posts/974292/?utm_campaign=974292&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 07 Dec 2025 21:01:54 GMT</pubDate>
    <dc:creator><![CDATA[Denis-KD]]></dc:creator>
      
      <category><![CDATA[разработка]]></category><category><![CDATA[программирование]]></category><category><![CDATA[программисты]]></category><category><![CDATA[качество кода]]></category><category><![CDATA[аутсорс]]></category><category><![CDATA[full-time]]></category><category><![CDATA[Part-time]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 29.10.2025 20:49]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/961406/</guid>
    <link>https://habr.com/ru/posts/961406/?utm_campaign=961406&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, по случаю прикрутил к <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'ю немного helm'а. Можно посмотреть статус, историю, манифест и откатить релиз.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/fc6/7e3/08e/fc67e308efe4f4e7ba3c2b7dce0cfc5e.png" alt="Happy Helming!" title="Happy Helming!" width="725" height="1215"><div><figcaption>Happy Helming!</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/961406/?utm_campaign=961406&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Oct 2025 17:49:39 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[helm]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 22.10.2025 14:44]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/959048/</guid>
    <link>https://habr.com/ru/posts/959048/?utm_campaign=959048&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, подкрутил немного свой <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>. Добавил применение фильтра к подам в режиме подсматривания (<em>watch it</em>).</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/c48/031/2eb/c480312ebd1e28e042fe7ee9746666c8.png" alt="watch it" title="watch it" width="738" height="450"><div><figcaption>watch it</figcaption></div></figure><p>Теперь можно подсматривать только за интересными стрючками.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/959048/?utm_campaign=959048&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 22 Oct 2025 11:44:06 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[pod]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 20.10.2025 21:33]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/958452/</guid>
    <link>https://habr.com/ru/posts/958452/?utm_campaign=958452&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Эгегей, <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> еще немного окреп! Добавил команду 'rollout to revision'. Теперь можно откатывать деплои на определенную версию а не только на предыдущую.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/6c3/eaf/c84/6c3eafc842aafe0dcf91dd97fd465c4b.png" alt="rollout to revision" title="rollout to revision" width="797" height="892"><div><figcaption>rollout to revision</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/958452/?utm_campaign=958452&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 20 Oct 2025 18:33:09 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[deployment]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 13.10.2025 11:38]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/955934/</guid>
    <link>https://habr.com/ru/posts/955934/?utm_campaign=955934&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, небольшой апдейт. Добавил еще один тип k8s объектов который теперь можно тыкать <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'ем - <em>volumeattachment</em></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/9ef/bd3/c12/9efbd3c129f83d866539b288c048ca85.png" alt="volumeattachment" title="volumeattachment" width="611" height="762"><div><figcaption>volumeattachment</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/955934/?utm_campaign=955934&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 13 Oct 2025 08:38:32 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[pvc]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 10.10.2025 20:03]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/955470/</guid>
    <link>https://habr.com/ru/posts/955470/?utm_campaign=955470&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, как узнать % использования PVC? <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">Kui</a> поможет! Добавил команду <em>PVC Usage</em> </p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/3bc/932/8ae/3bc9328ae329d677af7cd37575af15d9.png" alt="PVC usage" title="PVC usage" width="712" height="484"><div><figcaption>PVC usage</figcaption></div></figure><p>PVC это абстракция поэтому прямого пути (команды) узнать использование PVC нет. Как сделано? Ищем стручек (pod) который использует искомый PVC:</p><pre><code class="bash">pvc_used_in=$(
    kubectl -n $namespace get po -o \
    jsonpath='{range .items[*]}{.metadata.name}{" "}{range .spec.volumes[*]}{.name}{" "}{.persistentVolumeClaim.claimName}{" \n"}{end}{end}' | \
    grep " $pvc_name "
)
raw=($pvc_used_in)
pod_name=${raw[0]}
mnt_name=${raw[1]}</code></pre><p>Находим точку <s>g</s> монтирования:</p><pre><code class="bash">pod_mount_name=$(
    kubectl -n $namespace get po/$pod_name -o \
    jsonpath='{range .spec.containers[*]}{range .volumeMounts[*]}{.name}{" "}{.mountPath}{"\n"}{end}{end}' | \
    awk "/$mnt_name /"'{print $2}'
)</code></pre><p>Проверяем использование диска (PVC):</p><pre><code class="bash">pvc_usage=$(
    kubectl -n $namespace exec po/$pod_name -- df -h $pod_mount_name
)</code></pre><p>Выводим результат:</p><pre><code class="bash">echo "PVC capacity: $pvc_capacity"
echo "PVC used in:"; echo "$pvc_used_in"
echo "PVC usage:"  ; echo "$pvc_usage"
PVC capacity: 750Gi
PVC used in:
kafka-dev-broker-1 data data-kafka-dev-broker-1 
PVC usage:
Filesystem      Size  Used Avail Use% Mounted on
/dev/rbd4       738G   44G  695G   6% /bitnami/kafka</code></pre><p>Бонусом добавил возможность прибивать PVCишки kui'ем, добавил команды <em>Delete</em> и <em>Terminate</em>.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/955470/?utm_campaign=955470&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 10 Oct 2025 17:03:55 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[pvc]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+2) — 08.10.2025 21:00]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/954734/</guid>
    <link>https://habr.com/ru/posts/954734/?utm_campaign=954734&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Эгегей! Радость, <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> снова подрос! Добавлена команда '<em>SSL update</em>' для обновления сертификатов и ключей в секретах типа '<em>kubernetes.io/tls</em>'. Как это работает? </p><ul><li><p>Кладете в какую-нибудь папку новый сертификай, файл должен называться <em>tls.crt</em> и ключ с именем tls.key </p></li><li><p>Запускаете <em>kui</em> в этой папке, находите секрет с сертификатом который необходимо обновить</p></li><li><p>Обновляете через '<em>SSL update</em>'</p></li></ul><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/55c/075/bad/55c075bad4c56118c82936a585ca7933.png" alt="SSL update" title="SSL update" width="737" height="466"><div><figcaption>SSL update</figcaption></div></figure><p>Под капотом, обновление выполняется вот такой командой:</p><pre><code class="bash">printf -v ssl_patch_data '{"data": {"tls.crt": "%s", "tls.key": "%s"}}' "$(base64 -w0 tls.crt)" "$(base64 -w0 tls.key)"
kubectl patch secret/&lt;secret_name&gt; -n &lt;namespace&gt; --patch="$ssl_patch_data"</code></pre><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/954734/?utm_campaign=954734&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 08 Oct 2025 18:00:41 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[ssl-сертификаты]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 01.10.2025 14:06]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/952436/</guid>
    <link>https://habr.com/ru/posts/952436/?utm_campaign=952436&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, потенциал <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> еще немного увеличился! Случилось то что случилось, в продской  cronjo<s>пе</s>b'е что-то застряло. Добавил в kui ручной запуск кронжоб и kui'ем протолкнул застрявшее в кронжобе ...</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/966/0f9/93b/9660f993bec2219867e5c43e435aa4c0.png" alt="manual run cronjob" title="manual run cronjob" width="733" height="543"><div><figcaption>manual run cronjob</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/952436/?utm_campaign=952436&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 01 Oct 2025 11:06:04 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[cronjob]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод — 03.09.2025 09:08]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/943394/</guid>
    <link>https://habr.com/ru/posts/943394/?utm_campaign=943394&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Какое сегодня сентября?)</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/d14/10e/65e/d1410e65e6b2bdd2bd533195e7d05588.png" alt="3-е" title="3-е" width="781" height="453"><div><figcaption>3-е</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/943394/?utm_campaign=943394&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 03 Sep 2025 06:08:05 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод (+1) — 13.08.2025 20:47]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/936922/</guid>
    <link>https://habr.com/ru/posts/936922/?utm_campaign=936922&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, смотрите че наговнокодил, вот такую вот проверку конфига для <code>haproxy</code></p><pre><code class="bash">if check '/etc/haproxy/haproxy.cfg'; then
red='\e[91m'
ylw='\e[93m'
DEF='\e[0m'
/usr/sbin/haproxy -c -f /etc/haproxy/haproxy.cfg || printf "
${red}WARNING!
${red}Haproxy config has errors!
${ylw} __
${ylw}|  \_____${red}︹${DEF}
${ylw}\        ${red}\ \ ${DEF}
${ylw}/  ______${red}/ / ${DEF}
${ylw}|__/     ${red}︺ ${DEF}
"
fi</code></pre><p>Выглядит вот так:</p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/a37/a34/56f/a37a3456f8a8bbcc553171e9cb082147.png" alt="ох..ая ошибка" title="ох..ая ошибка" width="212" height="131"><div><figcaption>ох..ая ошибка</figcaption></div></figure><p>Как вам?)</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/936922/?utm_campaign=936922&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 13 Aug 2025 17:47:17 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[haproxy]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Интерфейсы (+4) — 06.08.2025 13:24]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/934558/</guid>
    <link>https://habr.com/ru/posts/934558/?utm_campaign=934558&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, малюсенькое увеличение потенциала <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'я, добавил <code>pv</code> и <code>pvc</code> в список просмотра.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/39e/e98/bff/39ee98bff5429f214f2b518e83e31fd5.png" alt="pv and pvc" title="pv and pvc" width="596" height="743"><div><figcaption>pv and pvc</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/934558/?utm_campaign=934558&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 06 Aug 2025 10:24:46 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Говнокод — 01.08.2025 16:01]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/933226/</guid>
    <link>https://habr.com/ru/posts/933226/?utm_campaign=933226&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>С днём <a href="https://github.com/vaniacer/beer" rel="noopener noreferrer nofollow">пива</a> !)</p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/acb/362/728/acb3627283ced0b60aa4ae9254ce7779.gif" alt="beer'у beer" title="beer'у beer" width="80" height="83"><div><figcaption>beer'у beer</figcaption></div></figure> <a href="https://habr.com/ru/posts/933226/?utm_campaign=933226&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 01 Aug 2025 13:01:59 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @romanzhivo — HTML (+4) — 13.07.2025 15:17]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/927278/</guid>
    <link>https://habr.com/ru/posts/927278/?utm_campaign=927278&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Как немножко хакнуть Мосрег⁠⁠</strong></p><p>Всем привет!</p><p>При оформлении заявлений в детский сад на детей на <a href="http://uslugi.mosreg.ru" rel="noopener noreferrer nofollow">uslugi.mosreg.ru</a> столкнулся с тем, что если ранее было подано заявление и нужно какие-то данные в нём поправить, то выбрать год зачисления ребёнка в ДС можно только следующий. То есть, мы подали в 2024, а теперь можно выбрать только 2026 год, потому что текущий нельзя.</p><p>Мне показалось это не очень удобным, решил немножко изучить фронтенд сайта и обнаружил, что валидации на простановку года нет :)</p><p>В видео подробнее, как обойти ограничение</p><iframe id="6873a59cbaf52ff5b618c3d2" src="https://embedd.srv.habr.com/iframe/6873a59cbaf52ff5b618c3d2" class="embed_video embed__content" allowfullscreen="true"></iframe><p>P.S. На записи не видно контекстного меню в браузере, когда нажимаешь ПКМ, нас интересует последний пункт "Просмотреть код"</p> <a href="https://habr.com/ru/posts/927278/?utm_campaign=927278&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 13 Jul 2025 12:17:35 GMT</pubDate>
    <dc:creator><![CDATA[romanzhivo]]></dc:creator>
      
      <category><![CDATA[госуслуги]]></category><category><![CDATA[фронтенд]]></category><category><![CDATA[фронтэнд]]></category><category><![CDATA[фронтенд-разработка]]></category><category><![CDATA[валидация]]></category><category><![CDATA[html-верстка]]></category><category><![CDATA[html]]></category><category><![CDATA[дети]]></category><category><![CDATA[детский сад]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @dronperminov — JavaScript (+3) — 28.05.2025 13:34]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/913560/</guid>
    <link>https://habr.com/ru/posts/913560/?utm_campaign=913560&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Я устал от форматирования JSON файлов</strong></p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/8ba/b4a/aa0/8bab4aaa0e0f0e38420caf5fc5ee3d0f.png" width="968" height="566"></figure><p>Я много и часто просматриваю JSON-файлы: от конфигураций сервисов до API ответов и логов. Каждый раз, открывая очередной файл, я форматирую содержимое, чтобы было удобнее читать (ведь JSON не только machine-readable, но и human-readable). И каждый раз я грущу, что все сервисы (онлайн, встроенные средства IDE и даже плагины) предоставляют лишь две крайности: форматировать всё или ничего (минифицировать в одну строку).</p><p>Но что, если я хочу отформатировать JSON лишь до определённого уровня? Что, если у меня есть огромный список словарей (возможно, даже глубоких), который при форматировании выглядит как-то так:</p><pre><code class="json">[
    {
        "id": 1,
        "name": "Alice",
        "birthday": {
            "day": 5,
            "month": 4,
            "year": 1983
        }
    },
    {
        "id": 2,
        "name": "Bob",
        "birthday": {
            "day": 6,
            "month": 2,
            "year": 1945
        }
    },
    {
        "id": 3,
        "name": "Eve",
        "birthday": {
            "day": 10,
            "month": 11,
            "year": 1978
        }
    }
]</code></pre><p>Что, если я хочу оставить каждый словарь в более компактном (не совсем минифицированном) виде? Например, таком:</p><pre><code class="json">[
    {"id": 1, "name": "Alice", "birthday": {"day": 5, "month": 4, "year": 1983}},
    {"id": 2, "name": "Bob", "birthday": {"day": 6, "month": 2, "year": 1945}},
    {"id": 3, "name": "Eve", "birthday": {"day": 10, "month": 11, "year": 1978}}
]</code></pre><p>Или я хочу, чтобы в каждом словаре развёрнуты были только внешние ключи?</p><pre><code class="json">[
    {
        "id": 1,
        "name": "Alice",
        "birthday": {"day": 5, "month": 4, "year": 1983}
    },
    {
        "id": 2,
        "name": "Bob",
        "birthday": {"day": 6, "month": 2, "year": 1945}
    },
    {
        "id": 3,
        "name": "Eve",
        "birthday": {"day": 10, "month": 11, "year": 1978}
    }
]</code></pre><p>Да, многие текстовые редакторы вроде Sublime Text или VS Code дают возможность <strong>свернуть</strong> контент до определённого уровня. Но что, если я хочу оставить файл в этом промежуточном виде и просматривать его прямо в терминале, подключившись по ssh? Или я хочу посмотреть файл на гитхабе с телефона? Да, возможно, мои вкусы весьма специфичны, но в существующих реалиях я вынужден грустно довольствоваться лишь полностью развёрнутым вариантом (или делать это вручную). Встроенные средства форматирования JSON в JS или Python также не предоставляют простой возможности ограничить глубину (либо я так и не научился их готовить).</p><p>Поэтому я собрался с силами и написал <a href="https://dronperminov.ru/json-formatter" rel="noopener noreferrer nofollow">свой форматтер</a> с возможностью ограничить глубину. Помимо базового функционала вроде валидации, минификации и настройки количества отступов, в нём есть настройка максимальной глубины (по умолчанию она равна нулю, что соответствует привычному форматированию без ограничений).</p><p>Да, он вряд ли подойдёт, чтобы редактировать на лету гигантские JSON файлы. И он уж точно не пытается стать убийцей какого-либо из существующих онлайн сервисов. В первую очередь он призван решить мою проблему: сделать форматирование JSON чуточку более управляемым. А если и вы сталкивались с подобной проблемой, буду рад, если <a href="https://dronperminov.ru/json-formatter" rel="noopener noreferrer nofollow">сервис</a> поможет и вам!</p> <a href="https://habr.com/ru/posts/913560/?utm_campaign=913560&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 28 May 2025 10:34:37 GMT</pubDate>
    <dc:creator><![CDATA[dronperminov]]></dc:creator>
      
      <category><![CDATA[json]]></category><category><![CDATA[форматирование кода]]></category><category><![CDATA[валидация данных]]></category><category><![CDATA[javascript]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Интерфейсы (+1) — 22.05.2025 16:40]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/911898/</guid>
    <link>https://habr.com/ru/posts/911898/?utm_campaign=911898&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, развил тему пропихивания стручков (pod'ов) в кубернетис, добавил в меню выбора типа объектов команду <em>apply</em>. Теперь <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'ем можно приколачивать мYAMLики, создавая любые типы объектов. По умолчанию предлагает создать стручок:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/b01/a60/e72/b01a60e725aef6edae8e8bf429822d23.png" alt="создай свой стручок" title="создай свой стручок" width="592" height="746"><div><figcaption>создай свой стручок</figcaption></div></figure><p>Но с помощью кнопки <em>edit</em> можно изменить мямлик, изменения сохранятся в файл <em>~/.kyml.</em></p><p>С удивлением обнаружил что хаб <em>Кодобред</em> переименован в <em>Говнокод</em> О_о Чтож, так даже интереснее.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/911898/?utm_campaign=911898&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 22 May 2025 13:40:26 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[pod]]></category><category><![CDATA[kubectl]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред (+1) — 20.05.2025 10:05]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/910960/</guid>
    <link>https://habr.com/ru/posts/910960/?utm_campaign=910960&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, приспичило создать тестовый стручек (pod), проверить кое-что. Создал и добавил это в <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>, в секцию "быстрых" команд:</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/a7f/2cd/18c/a7f2cd18cebd9129999c4bde9aaa125e.png" alt="добавь свой стручек" title="добавь свой стручек" width="738" height="495"><div><figcaption>добавь свой стручек</figcaption></div></figure><p>Тестовый стручек создается вот такой командой:</p><pre><code class="bash">kube run $quick_pod_name $ns --image=$quick_pod_image --command -- $quick_pod_command 2&gt;&amp;1</code></pre><p>Для изменения названия, образа или команды стручка подредактируйте вот эти переменные в начале скрипта:</p><pre><code class="bash">quick_pod_name=busytest          # Pod name for simple test pod
quick_pod_image=busybox:1.32     # Pod image for simple test pod
quick_pod_command="sleep 3600"   # Pod command for simple test pod</code></pre><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/910960/?utm_campaign=910960&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 20 May 2025 07:05:30 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[pod]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 12.05.2025 20:44]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/908778/</guid>
    <link>https://habr.com/ru/posts/908778/?utm_campaign=908778&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, зачастую после тыкания в какой-нибудь стручок (pod) приходится подниматься на уровень выше в деплой, стейтфулсет или даемонсет. Для этого в <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> надо было сначала посмотреть чем контролируется стручок, сделав <code>describe</code>, потом сменить тип объекта, найти нужный... Хватить теребонькать эти стручки! Добавил для стручков команду <em>Controlled by</em>, она сразу тыкает <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> в нужное место!</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/88c/ee0/32c/88cee032cc245ccd6808043529040d80.png" alt="controlled by" title="controlled by" width="789" height="845"><div><figcaption>controlled by</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/908778/?utm_campaign=908778&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Mon, 12 May 2025 17:44:23 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[kuber]]></category><category><![CDATA[pod]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 17.04.2025 16:45]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/901808/</guid>
    <link>https://habr.com/ru/posts/901808/?utm_campaign=901808&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, долгожданные новости из мира кубернетиса. Иногда надо посмотреть за подиками, как они там живут поживают, все ли (ре)стартанули или кто завис. В <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> для этого сделана кнопка RELOAD. Но постоянно жмякать кнопку это же дро...во какое-то правда? Хватит это терпеть! Добавил команду <code>watch it</code>, теперь можно залипнуть на какое-то время, глядя как подики ползают туда-сюда.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/344/f7e/b61/344f7eb6120cfdb58cea870c995088a6.png" alt="watch it" title="watch it" width="900" height="547"><div><figcaption>watch it</figcaption></div></figure><p>Оно будет с паузой в 3 секунды (+ время на обновление) постоянно показывать вывод <code>kubectl get ...</code></p><pre><code class="bash">NAME                      READY   STATUS    RESTARTS   AGE
chi-cluster-dev01-0-0-0   2/2     Running   0          23d
chi-cluster-dev01-0-1-0   2/2     Running   0          23d
chi-cluster-dev01-0-2-0   2/2     Running   0          23d

Press x to stop watching this...</code></pre><p>Нажмите x когда надоест.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/901808/?utm_campaign=901808&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 17 Apr 2025 13:45:58 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vvroschin — Блог компании AvitoTech (+4) — 30.03.2025 13:05]]></title>
    <guid isPermaLink="true">https://habr.com/ru/companies/avito/posts/895716/</guid>
    <link>https://habr.com/ru/companies/avito/posts/895716/?utm_campaign=895716&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p><strong>Бинго разработчика: <s>ставь лайк</s> зачеркивай, если&nbsp;было</strong></p><p>В&nbsp;выходные не&nbsp;работаем, но&nbsp;развлекаемся, поэтому предлагаем вам сыграть в&nbsp;бинго разработчика! Правила&nbsp;— простые:</p><ol><li><p>сохраняйте/делайте скрин картинки из&nbsp;поста;</p></li><li><p>отмечайте клеточки с&nbsp;вашей разработческой жизой; </p></li><li><p>скидывайте в&nbsp;комментарии итог. Или&nbsp;можете просто писать в&nbsp;комментах то, что&nbsp;хотели&nbsp;бы зачеркнуть в&nbsp;этом бинго, ваши варианты особенно приветствуются)</p></li></ol><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/253/b9b/80b/253b9b80bd0a60fa171ffe512c8e52f8.jpeg" width="1280" height="1280"></figure><p>Ждем того, кто соберет все ачивки!</p><p>А&nbsp;как закончите с&nbsp;бинго&nbsp;— в&nbsp;нашем TG‑канале есть еще одна занимательная игра с&nbsp;кубиком и картами инженерного таро, которые предскажут ваше будущее! <a href="https://t.me/avitotech/2535" rel="noopener noreferrer nofollow">Переходите по&nbsp;ссылке</a> и развлекайтесь, на&nbsp;канал тоже подписывайтесь, там часто&nbsp;бывает всякое интересное.</p> <a href="https://habr.com/ru/posts/895716/?utm_campaign=895716&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Sun, 30 Mar 2025 10:05:29 GMT</pubDate>
    <dc:creator><![CDATA[vvroschin (AvitoTech)]]></dc:creator>
      
      <category><![CDATA[авито]]></category><category><![CDATA[бинго]]></category><category><![CDATA[разработка]]></category><category><![CDATA[игры для программистов]]></category><category><![CDATA[задачки]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 21.03.2025 11:08]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/892978/</guid>
    <link>https://habr.com/ru/posts/892978/?utm_campaign=892978&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, все знают(?) что данные в скрипт можно передать через аргументы, как-то так:</p><pre><code class="bash">$ cat test
#!/bin/bash
var=$1
echo $var

$ ./test bla
bla</code></pre><p>Но в какой-то момент аргументов становится слишком много, а так чешется всунуть что-то еще)<br> Куда всунуть? Как? В каком порядке? Сначала сунуть это, потом то? Городить гетопс?<br> В этом случае бывает удобно использовать переменные окружения!</p><pre><code class="bash">$ cat test
#!/bin/bash
var1=$1
var2=$2
var3=$3
var4=$4
var5=$5

echo $var1 $var2 $var3 $var4 $var5 $one_more_var

$ one_more_var=ble ./test
ble</code></pre><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/892978/?utm_campaign=892978&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 21 Mar 2025 08:08:42 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 18.02.2025 08:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/883418/</guid>
    <link>https://habr.com/ru/posts/883418/?utm_campaign=883418&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, иногда хочется утащить из скрипта переменные или функции. Это можно легко сделать используя <code>source</code>. Но есть заковыка. Скрипт-источник будет выполнен, что не всегда удобно. Пример:</p><pre><code class="bash">$ cat test
#!/bin/bash

var1=bim
var2=bom

echo you should not see this $var1 $var2</code></pre><p>Пробуем засорсить:</p><pre><code class="bash">$ var1= var2=; . ./test; echo $var1 $var2
you should not see this bim bom
bim bom</code></pre><p>Мы получили вожделенные переменные но при этом выполнился нежелательный код. Как этого избежать? Можно немного модифицировать скрипт:</p><pre><code class="bash">$ cat test
#!/bin/bash

var1=bim
var2=bom
[[ $1 == only_vars ]] &amp;&amp; return
echo you should not see this $var1 $var2</code></pre><p>Теперь если сорсить скрипт с параметром only_vars, нежелательный код будет опущен, пробуем:</p><pre><code>$ var1= var2=; . ./test only_vars; echo $var1 $var2
bim bom</code></pre><p>Важно использовать именно <code>return</code>, <code>exit</code> закроет текущую оболочку.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/883418/?utm_campaign=883418&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 18 Feb 2025 05:51:24 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[bash-программирование]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 29.01.2025 20:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/877750/</guid>
    <link>https://habr.com/ru/posts/877750/?utm_campaign=877750&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, когда смотришь логи подов через <code>kubectl</code> и вдруг у пода оказывается несколько контейнеров, <code>kubectl logs ...</code> завершается ошибкой:</p><pre><code class="bash">error: a container name must be specified for pod pod-name-0, choose one of: [...]</code></pre><p>Хватит это терпеть! Мой <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> идет на помощь! Добавил команду <code>logs all</code> она показывает логи сразу всех контейнеров без необходимости выбора!</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/da9/25b/65a/da925b65af19211a61ea6df658aa34c4.png" alt="смотри все логи сразу" title="смотри все логи сразу" width="795" height="813"><div><figcaption>смотри все логи сразу</figcaption></div></figure><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/877750/?utm_campaign=877750&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 29 Jan 2025 17:51:31 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[pod]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 17.01.2025 12:43]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/874370/</guid>
    <link>https://habr.com/ru/posts/874370/?utm_campaign=874370&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, все знают как прочитать содержимое файла в линукс терминале(?), для этого используется <code>cat</code>:</p><pre><code class="bash">$ cat file
one
two
three</code></pre><p>Но иногда возникает необходимость прочитать файл с конца, задом наперед. Как это сделать? Tac!</p><pre><code class="bash">$ tac file
three
two
one</code></pre><p>Для тех  кто в танке <code>tac</code> это <code>cat</code> наоборот.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/874370/?utm_campaign=874370&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 17 Jan 2025 09:43:10 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[терминал]]></category><category><![CDATA[cat]]></category><category><![CDATA[tac]]></category><category><![CDATA[linux]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 19.12.2024 17:13]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/868088/</guid>
    <link>https://habr.com/ru/posts/868088/?utm_campaign=868088&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет! Подкрутил немного анимацию <a href="https://github.com/vaniacer/spinner" rel="noopener noreferrer nofollow">spinner</a>'а, теперь выглядит так:</p><figure class=""><img src="https://habrastorage.org/getpro/habr/upload_files/f75/0c2/4d5/f750c24d531ed12238af53a74a33e125.gif" alt="бынь-бынь" title="бынь-бынь" width="100" height="39"><div><figcaption>бынь-бынь</figcaption></div></figure><p>Spinner - это небольшой скриптик чтобы заполнить пустоту экранного пространства во время работы какого-нибудь долгого процасса, не выводящего ничего. Работает как-то так:</p><pre><code class="bash">$ ./spinner sleep 5

Please wait [0:0:3] (* )  ( *)</code></pre><p>Ну и оно там вот так пульсирует, быньк-быньк)</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/868088/?utm_campaign=868088&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 19 Dec 2024 14:13:55 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Ненормальное программирование (+1) — 05.12.2024 13:23]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/864124/</guid>
    <link>https://habr.com/ru/posts/864124/?utm_campaign=864124&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, часто в скриптах встречаю бесполезное использование кавычек, вот такое вот:</p><pre><code class="bash">var_b="$var_a"
var_c="$(...)"</code></pre><p>Понятно с какой целью это делается, типа вдруг дам пробелы и оно сломается, давайте посмотрим сломается или нет:</p><pre><code class="bash">$ echo $var_a
1 2

$ var_b=$var_a
$ echo $var_b
1 2

$ var_c=$(echo 3 4)
$ echo $var_c
3 4</code></pre><p>Вроде не сломалось и без кавычек все прекрасно уместилось в переменные.<br>Кавычки нужны только для "склеивания" данных или переменных:</p><pre><code class="bash">$ var_a="1 2"
$ echo $var_a
1 2

#а без кавычек:
$ var_a=1 2
2: команда не найдена

#и с переменными:
var_a="$var_b $var_c"

#без кавычек:
$ var_a=$var_b $var_c
3: команда не найдена</code></pre><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/864124/?utm_campaign=864124&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 05 Dec 2024 10:23:09 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @General_Failure — Читальный зал (+1) — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/854556/</guid>
    <link>https://habr.com/ru/posts/854556/?utm_campaign=854556&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/35b/e61/1bf/35be611bfdbfae5fa0b6844d7244582c.png" width="604" height="242"></figure><p>В заросшей репе есть очень грязный код<br>Забыт в нём SOLID, и не понять подход<br>Сказать я пытался: «Профанов нету в гите»<br>Но тут же раздался противный голос в мите<br>Голос в мите</p><p>«Мне больно видеть чистый код, пишу сплошной огромный баг<br>Я очень много лет хочу чтоб невозможен был дебаг<br>Мне некомфортно в чистоте, и я мечтаю об одном:<br>Скорее SOLID разнести, раздуть свой старый жирный код<br>Проклятый старый код»</p><p>Жил былдокодер, тупой и жутко злой<br>Никто не вспомнил о нём зимой дебажной той<br>Коллеги не стали его клинкоду учить<br>Макбуки достали, решили сами чинить<br>Глюки и баги</p><p>«Мне больно видеть чистый код, пишу сплошной огромный баг<br>Я очень много лет хочу чтоб невозможен был дебаг<br>Мне некомфортно в чистоте, и я мечтаю об одном:<br>Скорее SOLID разнести, раздуть свой старый жирный код<br>Проклятый старый код»</p><p>И эту репу стороной обходит айти люд<br>И суеверные твердят: «Там ламеры живут»</p><p></p> <a href="https://habr.com/ru/posts/854556/?utm_campaign=854556&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 31 Oct 2024 04:01:00 GMT</pubDate>
    <dc:creator><![CDATA[General_Failure]]></dc:creator>
      
      <category><![CDATA[halloween]]></category><category><![CDATA[КиШ]]></category><category><![CDATA[юмор]]></category><category><![CDATA[чистый код]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред (+4) — 11.10.2024 20:51]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/850120/</guid>
    <link>https://habr.com/ru/posts/850120/?utm_campaign=850120&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Пятница, вечер, а я все продолжаю тыкать свой <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a> в ноды кубернетиса.</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/c25/533/736/c255337368d1b2a878bdbe6b56d1853a.png" alt="Node pods" title="Node pods" width="1055" height="590"><div><figcaption>Node pods</figcaption></div></figure><p>Натыкал такое, добавил две новые команды: <em>Node pods</em> и <em>Top node pods</em>. Первая позволяет посмотреть все поды ноды. А вторая сделать топ поды ноды. </p><p>И если поды ноды <code>kubectl</code> умеет показывать из коробки, как-то так:</p><pre><code class="bash">kubectl get po -A --field-selector spec.nodeName=&lt;node_name&gt;</code></pre><p>То с топами подов нодов пришлось немного повозиться, <code>kubectl</code> не может сам сделать топ поды ноды, говорит такое:</p><pre><code class="bash">kubectl top po -A --field-selector spec.nodeName=&lt;node_name&gt;
Error from server (BadRequest): "spec.nodeName" is not a known field selector: only "metadata.name", "metadata.namespace"</code></pre><p>Пришлось ему немного помочь, сначала я запомнил поды ноды в переменную <code>np</code> </p><pre><code class="bash">np=$(
   kubectl get po -A --field-selector spec.nodeName=&lt;node_name&gt; | \
   awk '{print $2}'
)</code></pre><p>Потом сделал топ всех подов и грепнул поды ноды</p><pre><code class="bash">kubectl top po -A | grep -F "$np"</code></pre><p>И еще там были сопутствующие изменения и вот это вот все.</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/850120/?utm_campaign=850120&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 11 Oct 2024 17:51:31 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[k8s]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[terminal]]></category><category><![CDATA[node]]></category><category><![CDATA[grep]]></category><category><![CDATA[awk]]></category><category><![CDATA[kubernetes]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред (+4) — 01.10.2024 09:44]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/847286/</guid>
    <link>https://habr.com/ru/posts/847286/?utm_campaign=847286&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, снова я со своим <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'ем!)</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/234/9d7/e25/2349d7e25e8fb2e9f192995b206a6095.png" alt="top nodes" title="top nodes" width="1095" height="605"><div><figcaption>top nodes</figcaption></div></figure><p>Позанимался немного с нодами и подумал что удобно было бы выбирать ноды из вывода <code>kubectl top no</code>, добавил это. Команда (top) доступна на первом шаге (выбор кластера) и через "быстрые команды".</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/847286/?utm_campaign=847286&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 01 Oct 2024 06:44:39 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash-scripting]]></category><category><![CDATA[k8s]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[terminal]]></category><category><![CDATA[node]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-программирование]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред (+2) — 25.09.2024 13:14]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/845950/</guid>
    <link>https://habr.com/ru/posts/845950/?utm_campaign=845950&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Привет, небольшой апдейт для <a href="https://github.com/vaniacer/kui" rel="noopener noreferrer nofollow">kui</a>'я</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/7ac/ec9/395/7acec9395a7ccbbd4867c52b9ad88f2f.png" alt="delete cronjob" title="delete cronjob" width="1002" height="534"><div><figcaption>delete cronjob</figcaption></div></figure><p>Добавил команду удаления для кронжобов.<br><br>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/845950/?utm_campaign=845950&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Wed, 25 Sep 2024 10:14:33 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[k8s]]></category><category><![CDATA[cronjob]]></category><category><![CDATA[bash-scripting]]></category><category><![CDATA[kubectl]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред (+1) — 06.09.2024 18:59]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/841442/</guid>
    <link>https://habr.com/ru/posts/841442/?utm_campaign=841442&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Глаза превращаются в...</p><figure class="full-width "><img src="https://habrastorage.org/getpro/habr/upload_files/d9c/871/cb6/d9c871cb6155a5d5f089929befe8122b.png" alt="info-bar" title="info-bar" width="811" height="116"><div><figcaption>info-bar</figcaption></div></figure><p>Использую такую штуку в терминале <a href="https://github.com/vaniacer/info-bar" rel="noopener noreferrer nofollow">info-bar </a>о которой я писал <a href="https://habr.com/ru/articles/512354" rel="noopener noreferrer nofollow">тут</a>, инфо бар показывает <code>git status</code>, если <code>$PWD</code> содержит папку <code>.git</code>. Сегодня занимался с репами, крутил вертел по разному, в какой-то момент вкладка терминала зафризилфсь. Оказалось что info-bar плохо переносит большое количество информации от <code>git status</code>'а</p><pre><code class="bash">$ git status -sb | wc -l
9451</code></pre><p>Пришлось ограничить вывод 50 строками, теперь так:</p><pre><code class="bash">git_sts_depth=50
...
git -c color.ui=always status -sb | head -$git_sts_depth</code></pre><p>Заодно смердил в мастер новую версию в которой глаза заменены на, эм, ну увидите)</p><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/841442/?utm_campaign=841442&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Fri, 06 Sep 2024 15:59:53 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash-scripting]]></category><category><![CDATA[git]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-скриптинг]]></category><category><![CDATA[cli]]></category><category><![CDATA[terminal]]></category><category><![CDATA[interface]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — 05.09.2024 11:10]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/841036/</guid>
    <link>https://habr.com/ru/posts/841036/?utm_campaign=841036&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Наткнулся на такой вопрос на SO <a href="https://stackoverflow.com/questions/3236871/how-to-return-a-string-value-from-a-bash-function" rel="noopener noreferrer nofollow">Как передать строку из функции в переменную?</a> В баше переменные по умолчанию глобальные, просто используйте этот факт:</p><pre><code class="bash">fun1(){
  var1=$1
}

$ fun1 test
$ echo $var1
test</code></pre><p>Но если сильно зудит можно попробовать что-то типа такого:</p><pre><code class="bash">fun2(){
    local var_name=$1; shift 1
    printf -v $var_name '%s' "$@"
}

$ fun2 v2 some data
$ echo $v2
somedata</code></pre><p>Или используя <code>read</code> вместо <code>printf</code>:</p><pre><code class="bash">fun3(){
    local var_name=$1; shift 1
    read $var_name &lt;&lt;&lt; "$@"
}

$ fun3 v3 some data
$ echo $v3
some data</code></pre><p>Творите, выдумывайте, пробуйте!)</p> <a href="https://habr.com/ru/posts/841036/?utm_campaign=841036&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Thu, 05 Sep 2024 08:10:11 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash-scripting]]></category><category><![CDATA[variables]]></category><category><![CDATA[functions]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

    

  

  
  <item>
    <title><![CDATA[Пост @vaniacer — Кодобред — N/P]]></title>
    <guid isPermaLink="true">https://habr.com/ru/posts/840390/</guid>
    <link>https://habr.com/ru/posts/840390/?utm_campaign=840390&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
    <description><![CDATA[<p>Зачем я перевернул календарь?</p><iframe id="66d600036748d7d46ff398e3" src="https://embedd.srv.habr.com/iframe/66d600036748d7d46ff398e3" class="embed_video embed__content" allowfullscreen="true"></iframe><p>Песня "3-е сентября" стала знаковым культурно-социальным явлением, на юбилей песни решил добавить в <a href="https://github.com/vaniacer/piu-piu-SH" rel="noopener noreferrer nofollow">piu-piu</a> знаменитый куплет целиком. Пришлось немного повозиться c переделкой но в итоге получилось добавить новый функционал не сломав старый. Теперь текст для рекламных самолетов можно задать как переменной так и массивом. Каждый следующий самолет будет выводить новую строку текста из массива по кругу.<br>Я календарь переверну...<br><br>Творите, выдумывайте, пробуйте)</p> <a href="https://habr.com/ru/posts/840390/?utm_campaign=840390&amp;utm_source=habrahabr&amp;utm_medium=rss">Читать дальше &rarr;</a>]]></description>
      
    <pubDate>Tue, 03 Sep 2024 06:04:17 GMT</pubDate>
    <dc:creator><![CDATA[vaniacer]]></dc:creator>
      
      <category><![CDATA[bash-scripting]]></category><category><![CDATA[массивы]]></category><category><![CDATA[bash]]></category><category><![CDATA[bash-скрипт]]></category><category><![CDATA[bash scripting]]></category><category><![CDATA[bash-скриптинг]]></category>
  </item>
  

	
  

  

  

      

      

      

    
  </channel>
</rss>
