19052025

Пиша за бъдещото си аз (и бъдеща статия за дейбъг на k8s). Тук ми е списъка с малките радости в живота при дебъг и по-точно:

  1. tail -f like experience with kubect get pods podname:
kubectl logs -f podname

2. За повече инфо около някой pod (особено когато вече е умрял и не можем да му видим логовете с горната команда) имаме:

kubectl describe pod

Имаме доооста информация включително и малко логове, имаме си и друга информация като volumes, портове, от къде се контролира (особено полезно ако като тепърва започвате с k8s и тръгнете да триете под и той след 5 секунди пак възкръсва като Марая Кери при падането на първата снежинка за годината) и още много.

3. Филтриране на подове и игра с output-а на kubectl. Ако искате да видите всички running pods какво правите? Мда, със сигурност не правите като мен – първичното решение да направите kubectl get pods и после да въртите разни bash тъпотии за да филтрирате. Можете обаче да използвате супер полезните field-selectors и да правите с output-а каквото си пожелаете. Нещо, което ми трябваше е да видя всички работещи pod-ове на кои node-ове живеят. Стана с една команда:

kubectl get pods --field-selector status.phase=Running -o wide

4. Какво става на клъстъра ми? Всеки се пита понякога, особено ако си хоствате сами k8s-а. Е, можете да намерите много информация с:

kubectl get events

Изсипва ви тонове с информация. Можете да сортирате по време с kubectl get events –sort-by=’.lastTimestamp’, но и нещо, което не знаех до момента в който не тръгнах да пиша тази статия. Можете да видите предишните stage-ове на вече умрели pod-ове! Което е супер полезно стига да им знаете името – kubectl get events podname

5. CPU/Memory usage per node/pod, особено както сега се боря като дебела женичка в добричка дискотека 2000 г.

kubectl top node nodename
kubectl top pod podname

6. Приключвам с най-верния ми приятел – kubectl exec, който ми позволява да се логна на pod-а и да видя логове и каквото друго ми е нужно. Тук е хубаво да отбележим, че докато работите по някой dockerfile, който е по-засукан можете да използвате root user-а. Не е стандартна, нито добра практика, но ще ни спести няколко билда. Като посвикне човек вече става интинктивно. Имайте предвид, че тук викаме bash, но ако ти каже, че няма използвайте sh:

kubectl exec -it podname -- bash

Също така можете да изпълнявте команди директно на пода, например искаме да видим всички env vars на pod-а:

kubectl exec -it podname -- env

14052025 – Long nights

Снощи Оги става 4 пъти, а аз – 6. Това ми осигури точно 4 часа сън. Днес денят беше дълъг и труден.

Но за друго пиша аз. Преди мноооого години, преди един цял живот, направих частично моето Голямо каране. Тогава бях със стоманената шосейка и мераци за това да направя за седмица няколкостотин километра. Беше бомбастично.

Но друго ми е сега в ума – през цялото време въртях OST-то на филма Into the Wild (който ми е в топ 10), което е на Eddie Vedder. Нямам думи да опиша великолепието на Еди и целия, це-ли-я албум. До ден днешен като чуя някоя от песните, особено Long nights ми замирисва на 6 сутринта, кафе на газово котлонче и чертаене на маршрута на деня.

От няколко години ми се върти в главата какво ли би станало ако десетина дни правя всеки ден по 100 км. и като цяло до къде би ми стигнала мотивацията. Ако намеря добра инициатива бих се включил, дори и от тренажора когато децата са с мен.

09052025

Един от най-големите ми quality of life improvements около моята ежедневна работа около VSCode е да направя така, че при отваряне на терминал той да бъде в директорията в която ми е редактора.

Защо?

Защото не харесвам visual git решенията и ми е много по-удобно да работя в терминал. Но добър пример е когато работя по няколко репота, но терминала отдолу ми е един. Така става, че работя по репо Х, но терминала ми е в репо Y. Трябва да обикалям по директории и да сменям за нещо елементарно като например един commit. И ето тук ни влиза в помощ един shortcut, който можете да намерите в Keyboard Shortcuts и потърсите за:

workbench.action.terminal.newWithCwd

Аз лично му сложиш command+T, защото вече ми е в muscle memory. Така ако правя нещо и искам да извърша някоя елементарна операция просто отварям нов терминал, върша си нещата и го затварям.

Това решение ми спестява тонова писане.

07052025 – ГГ “Градинарят и смъртта”

Мислих да запиша цял епизод за книгата, което и ще направя, но днес (вече вчера пишейки това в 0:04 часа на 07 Май) Георги Господинов сподели във фейсбук последната си страница на книгата.

И ме връхлетяха прекалено много спомени сещайки се за нея докато я слушах. Първо, че това стана малко след като си замина дядо, на който съм кръстен и второ, че периода сега, особено около развода, е чудовищно труден.

Но да се върнем на книгата. Никога през живота си не съм ревал на книга толкова, колкото на тази. Връзката, която Господинов има с читателя е феноменална. Всичките му романи са рефлекция на нашите собствени вътрешни светове, страхове и възгледи. Помня как веднъж стоях в едно заведение и пиех кафе и слушах книгата с великолепния глас на Владо Пенев и просто не мога да спра да рева. Спирах сигурно 3-4 пъти и то през всеки 5 изречения ново копие, което те раздира вътрешно и се сещаш за твоя си баща, за твоя дядо, за себе си ако щеш. И боли ли, боли.
Първите 50-60% са много трудни са четене/слушане, после може би става маааалко по-лесно, но пак си е трудна работа.

06052025

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

Идеята беше първо да покарам стотина км, което са долу-горе до Балчик и обратно, но реших да спазвам идеите за малките навици и реших да не се самоунищожавам и да подходя малко по-рационално. Реших да завъртя 50-тина км. до Белослав, оттам с ферибота до Страшимирово и оттам обратно към Варна.

Не разбирам защо, но през половината време бях в топ форма, даже по-ското 65% от времето. На 4% изкачване карах с 13 км/ч, което за мен си е над средното.

Как да е, преди да видя табелата Варна бях със срена скорост от 23 км/ч, което за мен си е мечта.

През голяма част от времето карах като активно се опитвах да не мисля за нищо, защото иначе сигурно нямаше да мога да финиширам, а в ушите ми звучаха новооткритите французи Landmvrks (препоръчвам Creature, Sulfur, Blood Red и Funeral).

По времето в което бях на ферибота явно се поотпуснах малко и връщането съчетано с умерения насрещен вятър си казаха думата и чисто и просто си страдах. Но пък за това главата ми беше празна, за което съм благодарен. Това не се беше случвало от прекалено много години.

На връщане обаче реших да мина през най-трудния маршрут, а именно през Евксиноград (където скоро ще стане година откакто тече ремонт и едното платно е затворено) и през Аладжа Манастир. Там се и намиараше най-голямото изкачване през целия маршрут. Преди това има и още един няколокилометров баир. В общи линии последните баири с обща дължина от 8 км. изкарах на 150 пулс.

Болеше.

И то здраво. Краката се усещаха напомпани до пръсване, ноооо все пак липсата на тренировки си казва думата. Изкарах последния и най-зъл баир и исках да легна в тревата, но реших да не съм мелодраматичен и се прибрах вкъщи. Спусканията е излишно да казвам, че ги взимах в ТТ позиция, която да кажем, че … не е съвсем безопасна. Напъването беше на 100%.

И все пак никога след тренировка не съм се оплаквал, че съм излязал. Този път не е изключение.

Сега е време да потъна пак в скръбта, но днес, за малко над три часа имах свободата да бъда със себе си и да бъде тихо в главата ми.

05052025

Часът е 0:50, а аз след като съм нахранил, изкъпал (с косите, което си е екшън с Оги), прочел няколко приказки и приспал беше време да измия чиниите, да оправя малко и да приготвя раничките и на двамата за детска/ясла. Та от час и нещо push-вам, ръгам нашия dev k8s cluster и издевателствам над нещо по (не)обичайни начини.

И понеже на тихо живота започва да извира и да те кара да мислиш за неща, които не би искал да мислиш точно сега съм си надуй ей тия сладури, които много ми приличат на последните ми две мозъчни клетки преди да залепя буза на клавиатурата:

03052025

Има нещо сърцераздирателно в кавъра на Lenard Cohen на U2 – Tower of song.

Yeah, my friends are gone and my hair is gray
I ache in the places where I used to play
And I’m crazy for love but I’m not coming on
I’m just paying my rent every day in the Tower of Song

Leonard Cohen е вероятно единствения артист, който харесвам безкрайно много повече когато е прехвърлил своите 60 години отколкото в неговата младост.

HOLY SHIT – оказа се, че tower of song е оригинално на Leonard Cohen, а не на U2. Вълшебния свят на изкуството и copyright-а …

02052025

Днешната борба е с nodejs и Azure pipelines. Няколко неща, които знам, но забравям понякога:

  1. MacOS си има команда, която взима stdout и го праща към clipboard-а –> cat package-lock.json | pbcopy После paste където си пожелаете, но ако искате по някаква причина да го направите през конзолата можете с pbpaste
  2. Можете да генерирате package-lock.json с npm i --package-lock-only. Така няма да проверява node_modules и да тегли dependencies
  3. Azure си имат много приятен списък с всичко инсталирано по техните runnenrs на база image. Можете да намерите например списък с всичко по техния Ubuntu 22.04 image
  4. Може и да има по-добро решение, но когато имам някаква дебъг сесия и имам да проверя няколко лога и/или файла които са на runner-a предпочитам да направя една стъпка, която прави job artifact в който мога да навигирам спокойно. Изглежда по този начин. Това например днес ми спести няколко допълнителни run-а за да видя няколко конфигурации, логове и .npmrc.

30042025

Набързо, преди да съм забравил:

  1. Във VSCode често работя по повече от един проект, но понякога стават грешки ако терминала на IDE-то е в друга директория. За това в keyboard shortcuts търсим workbench.action.terminal.newWithCwd и нашиваме удобен shortcut (в моя случай си избрах command+T). Така всеки път когато натисна command+T ми се отваря нов терминал във VSCode, който е в директорията на текущия ми отворен файл;
  2. Shame on me, но днес научих за pushd и popd. Ще ги използвам по-често в bash скриптовете си като се наложи да работя повечко с директории
  3. Нещо интересно и по-скоро за статията git магии , но можете да направите бърз списък със само модифицирани, но не и push-нати файлове в git repo бързо и лесно с git status -uno –porcelain. Повече инфо можете да видите в един от любимите ми сайтове – explain shell. Също така е и добър флекс ако искате да се заиграете с някой колега като му кажете, че “uno” и “porcelain” са валидни параметри в git
  4. Една чудесна статия за това как да си докреризираме react app директно от docker.com за начинаещи в docker.

12042025

СОФИЯ ГРАД, ДУШЕЯД – Миленита / Жлъч / Гена – ремикс

Аз съм “няма кинти”, аз съм “няма ‘леб”
Мушни се зад мене, че съм най-отпред
Аз съм тоя дебил, дет’ кара пил върху тротоара
Аз съм “kill, kill, kill” и “бате дай една цигара”
Аз съм помияра, яката дупара
Водката менте я пия всяка вечер в бара
Твоето момче цял ден бъхти и после кърка
Лошото ченге в квартала, дето го пребърква
Как ше ме убиеш като аз съм килъра?
В царството на слепите най-сляп е дилъра
Сирия на три морета, харе кришна, многя лета
Щом па си решил да газиш, бате – дай на пета
София град – душеяд
Аз съм тая гад, аз съм тая гад
София град – душевад
Тука всеки ми е свиден, тука всеки ми е брат
София град – душеяд
Аз съм тая гад, аз съм тая гад
София град – душевад
Тука всеки ми е обиден, тука всеки ми е враг
Веган-хомофоб, математик, антрополог
Радикален еколог, аз съм жесток, направо съм Бог
Аз съм нощен труд – нисък, грозен, злобен, луд
Аз съм шизо и съм наблизо
В смога над Ариана, в медицинска марихуана
В скромната ти сянка, в твойта (ха-ха) “лична банка”
Цигането във кашона, дет’ не го лови закона
И пичето, което ти чати срещу левче от телефона
Аз съм болната фантазия на фалшивата буржоазия
Лицемерната куртоазия на богатата жена
Аз съм салон за красота – яко, яко самота
Грим, галерии, калмари, пепел от рози, кич, кампари
Аз съм лъжата, аз съм лъжата, аз съм лъжата
Аз съм лъжата, в погледа на излъгано дете
Аз съм Витошки, площади
Аз съм стъклените сгради, в които се перат души
Аз съм ти. Да бате – аз съм ти
Ти ръждива катерушка, ти, заплатка ако слушкам
И последния ми опит за живот между тоя изтещял народ
Да бате – аз съм ти
Щом па си решил да газиш, бате – дай на пета


Копеле, слушай ме внимателно, слушай, ше ти ка’а защо
Ако искате, ше има надежда, вяра и любов, захар и канабинол
Но ако се ебавате ще има кръв и караминьол
Израснал във смог, омесен от странно тесто
Хляб съм и сол, аз съм златен и нов
Аз съм гладен и гол, аз съм
Корумпирания катаджия, който сега събира
Кинти да изучи двете си деца в чужбина
Тегаво е под полите на Витоша
Доста по-лесно е под други поли в които шавам
Нали съм хитро шано, ще си купя младост
Ще си купя чистота и после някой друг ще я плати с душа
А не мо’ат си напишат правилно и завещанието
Идвам от “Майчин дом”, дишал съм в “Дружба I”
Бил съм при кръстовището на “Драган Цанков” и “Самоков”
Бил съм до “Каблешков”, до “Княз Борис” и “Цар Симеон”
Където Фреди от Ирак готви магическо агнешко
Хвърчал съм през “Летище София”, през терминал едно
И накрая ме посрещат като шибан цар у Княжево
Копеле, слушай ме внимателно, гледай, ще разбереш веднага защо
Ако искаш – ше има надежда, вяра и любов
Ако не искаш – София много бързо ти дава урок
Добър вечер, драги зрители
Да ви пускам новините ли?
Или да си помълча?
Така е хубаво след дъжда –
Като съм тиха
Като съм тиха
Като съм тиха.