14112025

В ранните часове на деня днес 14 Ноември Дейвид Ковърдейл пусна видео в което слага край на кариерата си.

И е разбираемо. Човека е на 74 и пее от … над 50 години. Интересен факт, който понякога забравяме е, че е бил вокал на Deep Purple от 1973 до 1976.

Винаги съм се възхищавал на гласът му и по негов повод довечера ще си налея едно докато слушам Too many tears в безкрайно специалното му изпълнение в Токио.

Сега отворих wiki страницата му – има снимка от неговия лик на едно от блокчетата в Каварна.

Whitesnake идваха може би 3-4-5 пъти в България, но така и не можах да ги чуя на живо за което страхотно много съжалявам.

Atlassian User Group talk

Последно събитие за годината (за сега!).

На 20.11 ще си говорим за тънкото изкуство да бъдем малко по-добри от преди, да започнем най-накрая да се гордеем с това, което правим (освен ако не трием бази по погрешка), да се доближим до изкуството да изпипваме нещата, които правим и да се доближим повече до нашите дядовци и бащи по майсторство, а не да останем завинаги code monkeys.

Copy, paste, replace. In our fast-paced industry, true craftsmanship feels like a lost art. We're pressured into mediocrity by constant deadlines and cognitive overload, rarely creating code we can truly be proud of.

But this art can be revived. This talk is a reflection on how we move beyond mediocrity, reclaim mastery, and find that deeper sense of pride in our work again.

Линк към събитието, което ще се проведе на 20.11.2025 в офиса на Немечек България, офис София. Ще се радвам да се видим и да поговорим. Ако носите биричка ще се радвам още повече.

13112025

От Сряда съм в София и спането по хотели не ми се отразява добре, ама никак. Снощи и онзи ден се събуждах през половин час, нищо, че снощи люснахме по 1-2 бирички със Сашо, мой колега. Не е за мен тази работа май.

Днес съм сам в стаята на девопсите и е сравнително спокойно. Копая по един terraform и уча нови неща почти постоянно.
И днес почти не слушах музика. Вчера със Сашо говорихме бая за музика и той като почитател на по-твърдата музика разказа за много свои приключения и докато се прибера, а и в хотела въртях някакви по-тежки неща.

Днес обаче съм на Чоплин и точно сега ми резнира много добре с вътрешното ми аз. Ето една интерпретация на Bruce Liu (не тоя с каратето, другия):

С уважително добро качество.

А докато пиша за класическа музика и качество просто няма шанс да не спомена и моите любими лелички, които разцепват всички мивки (целия канал е с такова великолепно качество:

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

12112025

НАЙ-НАКРАЯ СЕ СЛУЧВА!
На 05 12 2025 ще излезе осмата част на може би най-любимата ми криминална поредица на Робърт Галбрейт – “Жигосаният“. Тази ще е малко по-малка от предната и няма да чукне 1000 страници, а ще е “едва” 966.


Нямам търпение да излезе!

20251011

Един много готин ресурс – всички open source игри, които са в github. Списъка е огромен така, че enjoy:

https://github.com/leereilly/games

И една много интересна идея – replacement на zsh/bash history с SQLite и fully encrypted sync (това не мога да го преведа без да звуча като 85 годишен доцент по математика). Синхронизацията е върху ВАШ сървър, а не върху техен, кудос за което. Кудос и за името на проекта:

https://github.com/atuinsh/atuin

New pet project in town – cdn-check

Първи път от години в който стоя до почти 5 сутринта да си копая свой pet project.

Снощи мой приятел ме пита за tool с който да види кой сайт кой CDN използва. След като дадох 2-3 примера (които бяха много технически) в 9 и нещо вечерта ми светна – защо пък да не направя един такъв pet project?
И с помоща на Claude 4.5 vibe code-нах https://github.com/nedkoHristov/cdn-check, изсипах му добри практики, deployment pipelines, testing image, поиграх си с GitHub като artifactory, научих много покрай GitHub Security и SARIF, поиграх си с nginx за да си подкарам нещата, поиграх си и с docker/docker compose.

И последния ми commit е някъде около 4:30 и до приключване на таска си отиде почти 5. Отдавна не ме беше тресло такова въодушевление от това да направя нещо за себе си. Все не остава време, желание, енергия. Но в края на деня е много яко да имаш нещо, което е твое, живее и си го поддържаш.

Има още много трески за рязане, но за няколко часа работа за мен си е тих празник.

И понеже няма как да не кажа и 2 думи за AI – в този случай покрай python кода нямах почти никакви проблеми, но boy oh boy покрай pipelines имаше какво да се желае. Но ако не забравяме, че ако третираме AI като пиян developer/devops който има 2-3 синдрома и го държим за ръчичка през целия път с правини промптове и знаейки технически какво искаме (и си дописваме това-онова от време на време) нещата за личен проект може да се случат.

Демо на проекта можете да намерите на https://www.nedko.info/cdn-check/

09112025

Днес ми се наложи да копирам един python проект към marvin, но не исках да включвам venv-а му и се зачудих има ли начин при копиране да respect-ваме .gitignore. Оказа се , че има много елегантен:

❯ rsync -avz --filter=':- .gitignore' . [USER]@[HOST]:[PATH]

sending incremental file list

[REDACTED list of files]

sent 49,200 bytes  received 2,928 bytes  11,584.00 bytes/sec
total size is 147,523  speedup is 2.83

И така вместо 43 мб (!!!) копирах няколко килобайта.

И татко може S1E4

Последните почти три седмици бях с децата и беше много, много забавно.

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

Та! Списъка не е дълъг, но за това се сещам:

  1. Брюкселско зеле – варим 3-4 минути, после в тигана с масло и 1-2 скилидки чесън. На децата им беше супер интересно да белят горните листа на зелките, но съвсем очаквано – не им хареса
  2. Кюфтенца на airfryer от Lidl – неподправени, разделени на малки кюфтенца стават бомбастични на air fryer на грил плочата без никакви подправки или допълнителна мазнина. Даже излишната такава се изтича, което ги прави и мааааалко по-здравословни. Успеваемост – висока, особено при Оги
  3. Яйца варени – гледам да не са преварени и жълтъка им да е леко течен. Дори и аз не харесвам преварени яйца, камо ли деца на 3 и 5. Задължително “обилно” поръсваме със сол (мамя ги, че слагам много, а слагам 2-3 зрънца :D ). Вървят добре с нарязана на 4 краставица
  4. Яйца на очи. Учудващо, но до сега не бяха яли! Вчера им направих едни и им докарах жълтъка до течен такъв. При приготвянето им сложих масло и бяха на слаб огън (от 1 до 9 бях на 5) и сложих капак на тигана (аз нямам и използвам чиния). Така ускоряваме времето за приготвяне и ако нацелим добре температурата и сложим веднага тигана няма нужда да ги обръщаме. С това направих и по една филийка черен хляб на air fryer-а с малко масло и естествено “обилно” със сол. Чудя се кога ще осъзнаят, че тези 2-3 зрънца не са точно “обилно”
  5. Гъби печурки – около 40 минути с децата пощихме 500 гр печурки и си говорихме изцяло за царството на гъбите. И двамата бяха запленени плюс това им разреших да ги режат с техните си детски ножчета. Бяха в екстаз. Приготвянето е отното елементарно – отделяме пънчетата на които режем отдолу и огроте краищата, махаме гония слой на шапчицата на гъбата, режем на 1/2 и мятаме в тиган на среден (от 1 до 9 аз избрах 6) огън, покрих ги с капак и след като си намалиха криво-ляво на 1/2 обема и водичката им извря ги извадих. Съвсем очаквано кусаха по едно парченце и не им хареса
  6. Ориз с пилешко – приготвено от баба им. Тя го прави страхотно, защото пилешкото беше чисто месце, а орица – съвсем малко ал денте (а не преварен). Счупиха се да го ядат
  7. Грах със свинско – отново от баба им. Много просто ястие, което децата много обичат
  8. Спагети със сос от Лидл – добавям едно пакетче надязани на по 5-6 мм детски кремвиршчета в касерола и малко мазнина за да се запържат малко и после изливам соса. Готов е когато се редуцира малко и стане по-гъст. Спагетите ги пробвам и не разчитам на таймер. Харесваме ал денте. Докато заври водата слагам малко сол и малко зехтин. Сервирам чисти спагети и те от извесно време усетиха, че със сос е по-вкусно и сами си искат. Съвет – ако ще им давате такъв сос се примирете, че ще има изцапано. Слагате им стари дрехи, показвате им (напомняте им) как се яде и давате пример. Моя малкия син обича да ги яде с лъжица и бога ми – не знам как го прави, но последните пъти една капка не му е капнала по дрехите. Trust the process. Bonus points ако сложите и малко царевичка, но аз я използвам за лост – “Ако х тогава ще сложим царевичка”. Сервирам я отделно и всеки сам си слага. Научиха се да се саморегулират и вече няма нужда от делене на 2
  9. Салата от салата Айсберг, доматки, репички, лук и краставица – правихме с децата заедно и те я направиха на 80%. Но си пригответе 40 минути и търпение. Показвах им как изглежда репичката, листенцата ѝ, после как се реже домат, как се реже лук на ситно. Малкия ми е голям фен на лука (???), а големия – на доматките. В процеса всеки си хапна хубаво салатка. Дадох им да опитат от моята, която беше овкусена и им хареса, но повече им хареса без нищо (???)
  10. Десерт – кроасан от Лидл (или бриош, писал съм за него и преди) – слагам кроасана с масло в микровълновата за десетина секунди за да стане пухкав, давам им една лъжичка със сладко отстрани и те противно на очакванията ми да избухат лъжичката се научиха почти сами да си мажат кроасанчетата сами
  11. Цяло печено пиле – в някои клонове на Лидл имат печено пиле и честно казано си е доста добро, а моите си умират за кожичка. Сервирам им не само бяло месо, а от всичко, плюс всеки си получава по едно бутче, което варварски да дърпа и дъвче

07112025

Преди няколко дни ми попадна забравена от мен песен на Таралежков – Татко:

И ми стана любима. Простото великолепие на барда Таралежков е удивително. Става ти мило и свидно.

И се сетих автоматично за романа на Георги Господинов – Градинарят и смъртта за който писах, макар и малко.

И се замислих за децата си – те са в абсолютния център на моя живот и всичко покрай тях го изпитвам с болезнена радост и/или тъга. И това какво ще е един ден когато ме няма – дали ще бъда непрежалим или просто ще е … чакайте, как го беше казал Жлъч/Гривогор:

Нашата смърт е обща
Остарявам като катедрала и това е първата ѝ копка
В мръсна почва стъпват хора
Твърда плоча
Плачат, точат сълзи
Сочат с пръсти
Със вързопче карамфили
Сто бутилки, сладки, жито
После всички карат пили
Танци в името на изхабените напразно сили
Невероятно стилни
Траурът ни отива
Пали се молитвеника, сауна…
…в дива зима няма…
…нито има, пада…
…гилотина

Каквото и да става, всичко спира

Гримираният труп във изискан костюм
А ковчегът му е като връхна дреха
Спокойно спи, но е само обвивка
Използвам найлонов плик
Само че се разгражда доста по-бързо
Поредният тържествен повод
Да държим чашите си вечно горе
И да се питаме има ли нещо ново
При мен – не

03112025

Идвам да напомня да внимаваме с terraform state – дали ще е drift или ще забравим да си сложим versioning на s3 bucket-а, който пази terraform state-а.

И също така, че ако тестваме нещо (както аз като създавам ASG в AWS) и трябва да го затрием няколко пъти вместо да изтрием ресурса и да направим drift между state и actual state правим:

❯ terraform destroy -target=module.REDACTED.aws_autoscaling_group.REDACTED

И да не забравяме като си правим плановете да ги output-ваме във файл:

❯ terraform plan -destroy -out destroy.tfplan
❯ terraform apply destroy.tfplan

Така ако стане някакво разминаване между плана и изпълението му (например работите няколко човека върху тази среда) ще избегнете много проблеми.

Edit- присетих се, че в transportapi си бях добавил terraform plan/apply по горния начин като alias:

alias tp="terraform plan -destroy -out destroy.tfplan"
alias ta="terraform apply destroy.tfplan"

Така всичко става доста лесно. А ако искате нещо по-sophisticated можете да си напишете един bash скрипт, който да добавите в tp/ta за да има допълнителен safety net за да не затриете някой prod среда, например.