Домейна nedko.info на 19 години

По темата от предишния пост – Мишо ми помогна да намерим доказателство кога е регистриран домейна nedko.info.

web.archive.org си показа, че първите записи са от 23 Май 2006, но исках да знам със сигурност.
Повечето whois сървиси показват датата в която след известно дропване на домейна си го купих наново – 2013 г. Единствени се оказаха (по мой и на Мишо рисърчи) тези от domaintools.com, които показаха датата на първото регистриране на домейна.

Как минава времето, а? 19 години са ми половината от живота.

Някой ден ще разпиша всичките приключения през които минах за да четете този блог. И за това как точно блога (и VPS-а на който стои той) ми помогнаха супер много за да сменя работата си от QA към DevOps.

Дали след 19 години ще напиша същия пост? Или ще съм ритнал камбаната вече. Ще видим. Stay tuned!

06.08.2025

Вчера направихме поредния страхотен разговор с Мишо – мой колега от Tinqin. Той е по средата (или към края по-скоро) на downsizing на оборудването си. Нещо, което се каня и аз да направя от вече не знам колко време.

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

Освен това, понеже съм почитател на web.archive.org, прегледах блога на Мишо и как то изглеждал преди години и видях списък с други блогове, което беше много модерно навремето – “Вижте другите блогъри какво пишат”. Разгледах някои от тях и както това винаги става – ми стана тъжно, защото доста голяма част от тях вече са мъртви (с изтекли домейни), а тези, които още живеят нямат ново съдържание от години. Много ми се иска моя блог да не стане такъв.

05.08.2025

Пак една от ония нощи, които ти взимат душата.

Днес прекарахме един великолепен ден с децата (миналата и тази седмица са при мен), водих ги на плаж, забавлявахме се, гушкахме се, кикотихме се. Изкъпах и двамата с една бутилка от 1л вода да им махна пясъка, имаше хубава вечеря, къпане, книжки. После Борко ме погледна в очите и каза – “Тати, когато съм при мама ти много ми липсваш. Пет дни са малко, искам повече при теб, не искам да ми липсваш”. Това ме пречупи (за пореден път).

Преди няколко дни усетих, че пак ще е трудна вечер и се качих на тренажора няколко дни след падането. Хора, въртях точно един час, това беше просто брутално. И не можах да приключа тренировката си даже. Часът е около 01:30, аз треперя над колелото, пот се стича от мен целия и ми се реве. Дори и след това и 20 минутното киснене в студена вана (правя експерименти със себе си) пак се въртях и заспах сигурно в 04:00.

Животът е отрватителен за всеки, но най-нечестното е когато на нас ни е гадно да правим гадно на хората, които обичаме. И толкова се старая да не предам кофти настроението си на децата …

Освен това съм opening lecturer на dev.bg all in one, което е нещо невероятно. Имам поне 15 страници А4 със записки, които са готови за презентация, повече от половин година ги мислих и все пак се чувствам абсолютно неподготвен и като абсолютен провал.

И понеже е блог ще впиша и намеренията си за уикенда за да се чувствам, че съм го казал на някого. Бих опитал да изкарам 300 км., но не съм сигурен дали ще имам времето, защото къщата също има нужда от ремонти и поддръжка. Ако не стане – 200 са ок по добре познатата права – Балчик – Вама Веке – Балчик (плюс баирите на Балчик на връщане).

Ако някой иска да ходи на dev.bg събитието да драсне един ред – имам отстъпка като лектор.

02062025 – Пет секунди в ада

На тренажора съм от 45 минути въртейки познатите интервали – няколко минути загрявка и след това 5 минути в червеното, после 5 минути въртене в зона 1 и така 5 пъти.

Васът е точно 0:25, аз съм се заклел пред себе си, че ще съм в добра форма за Дунав Ултра 2025 и въртя на тренажора. Пот се стича на вадички, краката горят, усещам познатото изтръпване на ръцете – усеща се като нежна паяжинка и след час не си усещаме пръстите.

Минали са 45 минути от началото на тренировката, но главата ми не се е изпразнила както обикновено. Онзи в мен още спи. Остават 10 минути.

Пулсът ми вече е в червено, краката ми леко треперят.

Остават пет минути.

Ето го. Мдам. Винаги, винаги към края идва моя така нужен букет от адреналин и хормони, които да събудят най-първичното в мен, да ми изпразнят главата и да кажат – “Днес ще се мре”.

Остават 2 минути.

Ето я дозата, която търсих последните 58 минути. Краката ми се изпълват с енергия, гърдите с топлина, а ръцете хващат с всичка сила кормилото.

Остават десет секунди.

Девет.

Осем.

Моето dies Irae идва.

Седем.

Шест.


Вдишване, изпъване и ето ги 700-те вата в педалите. Затварям си очите. Това ще боли.

Пет секунди. Усещат се като 5 минути.

Четири секунди. 700 вата, консистентно. Усещат се като 10 минути.

Три секунди. 700 вата. Усещат се като 20 минути.

Две секунди. 700 вата, без отклонение. Седемстотин, хора. Се-дем-сто-тин. Усещат се като половин час.

Една секунда. 700 вата. Очите ми са пълни с пот, не издържам и извиквам пронизително. Краката ми горят. Ръцете ми треперят. Пред очите ми е почти черно.

Финал.

Поглеждам Garmin Connect и се пуля докато се опитвам да си поема въздух. PR при първите шест дисциплини:

1 sec1112w
2 sec1101w
5 sec1093w
10 sec1027w
20 sec899w
30 sec631w

Хиляда сто и дванадесет вата за една откачено дълга секунда.

Краката ми треперят. Дописвам този литературен бъркоч и влизам да се изкъпя. И да мисля върху цифрите. И върху това наистина ли съм толкова зле? И това след работен ден, дълги срещи в полунощ.

Може би още мога?

Debug Kubernetes like a shrimp

Пиша за бъдещото си аз (и бъдеща статия за дейбъг на 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

7. Get k8s secrets directly (convert base64 secrets on the fly)

Когато работим със secrets или sealedSecrets ни се налага понякога да видим някой secret. Тяхната природа е да бъдат base64 кодирани и имаме още една стъпка в декриптирането. Е, с тази команда (забележете, че трябва да имате инсталиран jq):

kubectl get secrets some-secret -o jsonpath='{.data}' | jq -r 'to_entries[] | "\(.key): \(.value | @base64d)"'

7.1 Ако пък не искате да използвате горната команда (хинт – можете да си я сложите като alias) – можете да декодирате и кодирате стрингове по base64 директно в конзолата с:

~ echo "https://www.youtube.com/watch?v=dQw4w9WgXcQ" | base64
aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQo=

~ echo "aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1kUXc0dzlXZ1hjUQo=" | base64 -d
https://www.youtube.com/watch?v=dQw4w9WgXcQ


Edit – мислих да кръстя статията “Debug Kubernetes like a pro”, но съм много далеч от pro та за това – shrimp.

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%.

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

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