Ново бебе, нова работа, нов рожден ден

В този порядък.

Злати е бременна и ще ставаме родители за втори път. Борката още няма идея какво го очаква, сигурно и ние. Последните 2 години си бяха roller coaster, но не мисля, че съм бил толкова щастлив някога. И толкова изморен. Но си струва всеки момент, всеки памперс, всяка усмивка. Мисля, че точно тези моменти са пикът в моя живот в който всичко е просто (макар и аз да го усложнявам многократно в главата си), Борко е щаслив да ме види, бяга да ме прегърне когато му щукне, Злати ме обича с цялото си сърце и наистина разчитаме мега много един на друг. Аз съм здрав. Ще чета този пост след още 8 години да видим колко съм бил прав.

In other news след три години като DevOps ще сменя работата (всъщност последния ми ден е този четвъртък) и ще продължа пътя към DevOps и Cloud Engineering с още по-голяма засилка и хъс. Освен това смятам да се пусна пак на QAChallengeAccepted като този път темата ще е свързана с връзката между QA и DevOps и вярвам, че ще е интересна на повечето. Познавам вече доста хора, които минаха доста успешно към тъмната страна и се справят повече от страхотно и вярвам, че ще посея семенцето в главите на хората. Или ще ме пребият на излизане, ще видим :D

И да – 36. И още съм жив. Йейй. Блогът стана на ОСЕМ години за бога. Когато започвах да го пиша изобщо не си представях живота си в този ред – и личния и професионалния. И мога да бъда щастлив за това как се стекоха обстоятелствата покрай мен, на Златина, че ме направи баща, за Борко, че ме прави по-добър човек и за бебе две, което нямам търпение да срещна Октомври месец и пак да се правя, че някаква муха ми е влязла в двете очи. И това, че родителите ми и най-близките ми са живи и здрави. Благодаря на тези, които го четат от време на време. Знам, че не е в тренда да имаш блог, но моя ми помогна да науча супер много за моята професия (от хостването му до писане на статии в него, особено и сега със серията за 100daysOfHomeLab.

А относно спорта – започнах пак, тази година малко по-сериозно. До този момент имам 57 часа на колелото на общо 42 карания и изминати 990 км. Мога повече, много повече, но направих своя избор. Последно време съм се съсредоточил към малко по-големи маршрути в обедните си почивки – например днес направих 40 км за малко под два часа и се чувствам изморен, но добре.

#100daysOfHomeLab – day 1

Днес почистих HP MicroServer gen8 машината – смених паста, почистих от прахта, малко cable management и почистих кутията. Температурите спаднаха със средно градус-два като се замислям да сложа някакъв по-тих и с по-голям дебит вентилатор, но HP-тата винаги са били ********* и си ползват свои собствени стандарти и смяната на всеки вентилатор е болезнено и рисково. Освен това възнамерявам да ъпгрейдна към Xeon E5-1225 v2, който е почти 70 вата (срещу 17вата на текущия процесор) и още един вентилатор би му дошъл меко казано добре.

Освен това ъпгрейднах и iLO4 от 2.78 към 2.80. С времето iLO ми стана неизменен помощник и е супер полезен за много неща, някои от които:

  • Мога да управлявам машината без да закачам периферия по нея, директно през iLO като най-якото е, че имам достъп до него и когато машината НЕ Е ПУСНАТА!
  • Мога да инсталирам OS директно през iLO без да има нужда да правя USB-та и CD-та, мега удобно е
  • За някои системи можете да си наблюдавате и консума
  • Хардуерен мониторинг на системата
  • Insight agent
  • SNMP съобщения при определени събития (например така разбрах, че единия ми диск е гръмнал докато нямаше още го тествах и нямах мониторинг на него)

2.80 можете да изтеглите от тук, а след като го изтеглите можете да използвате този snippet за да разархивирате:

chmod +x ilo4_2.80.scexe

./ilo4_2.80.scexe --unpack=./iLO4

И ъплоудвате ilo4_28.bin в контролния панел на ILO. след 2-3 минути и рестарт на ILO всичко си идва на мястото.

Happy labbing!

Говорих пред деца за ИТ и останах изумен

Kiber One speak

Миналата неделя бях поканен да споделя част от опита си със завършващите курса на https://kiber-one.bg с възрастова група от 6 до 14 и да раздам дипломите на най-малките. Реших да говоря за това как съм започнал аз, как любопитството ме е тласнало напред, как сме играли игри на черно-зелени екрани от дискети, как сме си писали сами игрите на BASIC и сме чели документация от хартиен носител, какво правя сега, сегментирането на сектора (често споменавам като говоря пред ученици това, че IT не е само програмиране, да им покажа част от спектъра включвайки дизайн, QA, програмиране, PM и т.н. и т.н.) съответно с опит това да звучи колкото се може по-близко до наруталния език.

Отивам в юнашкия дом във Варна и ме посрещат 50-тина деца, които си стоят по столовете и чакат, родителите бяха на втория етаж и все пак нямаше нито едно дърпане на коси, сбиване или лигавня. Повечето деца бяха в границата между 6 и 9 годишна възраст.

Започна събитието и имаше демо на 5 проекта на деца от 7 г. до 9 г. С огромен интерес наблюдавах какво правят децата и след второто демо си зачеркнах половината ключови думи по които щях да говоря. Нямаше да им кажа нищо ново. Демата бяха на Scratch и Tynker и след като едно момиченце на 7 години показа демо пред 100+ човека на имплементация на Flappy Bird в която си имаше своите условия, sprites, различни екрани и т.н. аз бях – “Чакай, чакай”, дойде друго дете, показа 3D модел на Tynker на слънчевата система с акуратни размери на планетите, орбитите и скоростта на движението им, показа кода, обясни го. Бях супер приятно изненадан.

Това, което видях са деца, които:

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

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

Edit – Забравих да добавя, че след края на цялото нещо излизам от залата и едно момченце (7-8 да речем) се отдели от родителите си, дойде при мен и каза – “Господине, много хубава реч, хареса ми.” Прибрах се нахилен като пача. Явно е имало смисъл.

13.05.2022 – docker stats

Днес трябваше да дебъгвам малко докер images и се сетих за нещо, което е полезно, но не винаги е очевидно при дебъгването. Днес ще си говорим за docker stats.

[email protected]$ docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b1075225ec45 dreamy_blackwell 1.07% 599.2MiB / 7.697GiB 7.60% 18.2MB / 9.06MB 53.1MB / 23.1MB 132
36d367f20b13 zealous_elbakyan 1.20% 585MiB / 7.697GiB 7.42% 29.1MB / 20MB 67.9MB / 23.1MB 131
16b464b3eadc relaxed_bell 1.20% 640.9MiB / 7.697GiB 8.13% 30.7MB / 21.5MB 118MB / 23.1MB 130
b139b36a1c5c focused_night 1.22% 602.2MiB / 7.697GiB 7.64% 18.5MB / 9.44MB 119MB / 23.1MB 132

И ето, че имаме статистики за CPU/Memory usage/limits (ако не е сме ограничили използването на RAM памет на контейнера обикновено е лимита на хоста върху който върви), Network и Disk usage и PID.

Като изпълните docker stats ще се учудите защо премига така – това е заради постоянния refresh на статистиките. docker stats приема и четири много полезни параметъра, които често използвам и аз:

-aПоказва всички контейнери, пo default показва само тези, които са running
-formatМожете да използвате Go template за да изберете какво точно да виждате, пример по-долу
–no-streamДа покаже само първите резултати и да не рефрешва постоянно
–no-truncДа показва пълните ID-та на контейнери, например 7c37df0bd781b924e92218bd006a950fcc2871e26f17886f98c281de49c91216 вместо 7c37df0bd781
docker stats parameters

Както видяхте по-горе в импровизираната табличка можем да използваме –format и да output-нем JSON dada например.

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

25.03.2022

Айде започвам с новините като Ана Цолова и Юксел Кадриев:

  • Microsoft потвърди, че са ги издумкали от Lapsus$ – 37GB включително и сорс код на Bing, Cortana, Bing и множество вътрешни проекти;
  • На трети март пък хакнаха nVidia и изтеглиха данните на 71000 служителя, пак от същата група – Lapsus$;
  • Интересно четиво за outage-а на github от преди няколко дни;
  • Ако помните преди година се запали datacenter-a на OVHcloud та направиха репорт по темата. До сега никога не съм присъствал физически в datacenter, но съм чел и гледал доста и там нещата са наистина сериозни във всяко едно отношение – от UPS-ите, през системите за безопасност и 1000-та защити от пожар. Е – единия datacenter на OVHcloud се оказа, че е живял в сграда с дървен таван, БЕЗ поражогасители и без cut-out (което е нещо като физически бушон, който прекъсва тока до част или целия datacenter преди да стане съвсем лошо). Та колкото повече човек чете толкова повече стига до извода, че сървърите не са най-скъпото в тези DCs.

24.03.2022

Вчера ми излезе спомен от фейсбук като ходихме с Дидо във ВИНС-а и Технически Университет – Варна да говорим на студентите за бранша – какво да очакват от бизнеса и какво бизнеса би очаквал от тях. И в двата университета се получи доста добре, но ТУ имаха предимство – първо залата беше огромна и имаше хора, второ – бяха вече на вълна, че като завършат ще се наложи да работят и няма да е зле ако някой им каже дали са на правилния път плюс им беше искрено интересно. Е – не ги закарахме на биропой след това, че беше от сутринта лекцията (когато говорих във ВИНС преди няколко години в техния Master Class след часът в който никой не каза и дума ги закарах в Алба-та и след няколко бири разговорите се случиха доста по-добре), но пак се получи.

Така, че съвет от мен – когато имате възможност – ходете по такива събития, защото биснесът, в случая аз и Дидо говорихме от името на Немечек, много компактно обяснява какви очаквания има към бъдещите си колеги, а това е безценно. По мое време, с риск да прозвуча като пенсионер, такива неща не е имало (или поне в Добрич е нямало …) и когато започнах първата си работа имах ОГРОМНИ дупки в някакви common sense неща – офис пакет (преди да сте се заляли от смях макросите в Ексел могат да бъдат сравнени с нисък левел демон от някоя особено гадна точка на дупката в която живее), комуникация с колегите (няколко години бях най-малкия от почти 200-те колеги и ми беше наистина трудно да започна да си говоря за тях на теми като смяна на ангренажни ремъци, болки в колената или някакви там други неща) и т.н.

13.03.2022

Последната седмица беше интересна – в офиса се борих като прасе на наркотици в тресавище пълно с побеснели котки (да речем) с PostgreSQL и други забави, в личен план реших да продам vortex, защото факта, че не мога да сменя вентилаторите му с по-тихи такива (оригиналните са практически вечни и супер ефективни, но са толкова шумни, че при стартиране на машината когато завъртят на 100% не мога да стоя в същата стая) ме подлуди. Търсих няколко месеца решение и всичко, което излезе беше неприемливо и се примирих с това, че ще downgrade-на към нещо много по-практично – HP Microserver gen8 изглежда като читав вариант. Ще видим идните месеци. Още не ми се иска да продам машината, защото е първия ми досег с bare-metal, но няма как. Но пък уроците, които научих бяха безценни. gen8 предлага подобни функционналности – безценния за мен iLo management, redundant BIOS, build quality над повечето потребителска техника и т.н. и т.н.


В още по-личен план в нас е тотална забава – бебе Борко вече не е бебе, а момченце на цели 1.4 годинки (така ли се изписват годинка и четири месеца?) – вече си сочи какво иска, хапва с вилица и лъжица, играе си с все по-сложни играчки, бяга много, смее се много, става все по-похватен, супер е обичлив, кефи се много да чете книжки и често ни милва или гушка. А с котката Иво вече са почти приятели. Зуза от своя страна е супер майката – грижи се за него през моментите в които не съм в нас, играе си с него на супер интересните и поучителни игри, възпитава го страхотно и даже още не е изперкала.

Освен това преди време питах във Фейсбук дали някой идиот няма да ми се навие на акъла да отидем на караме Дунав Ултра, която изкарах 2018 г. за (под) 48 часа, но никой не отвърна така, че може би ще се откажа. Едно от основните ми неща са липсата на бензиностанции по пътя и сервизна кола. Така 700-те км. се превръщат в оцеляване. В края на месеца ме чакат 500 км. (два бревета в два дни – събота 200 км и неделя 300 км) за два дни, което ще ми начеше крастата за доста време напред. И да се оплача на всички и тук – преди няколко години промениха маршрута на 300 км. бревет и денивелацията от 1400 метра надморска височина сега е над 3500 … Това. Ще. Бъде. Грозно.

Те така. Както сте видели и правя експерименти с нов дизайн, използвам GeneratePress и изглежда, че с малко tweaks може и да стане моята тема, макар, че май държа доста на това потребителите да си избират цвета на темата – дали да е тъмен или светъл. Ке видим.
Ако имате някаква интересна тема в главата може да я споделите тук като коментар.

How to export postgresql query to CSV

Today I’ve had a task to export couple of PostgreSQL (v10) to a CSV for some data analytics. Here’s how I did this:

\copy (select * from supersecrettable;) To '/home/nedko/supersecrettable.csv' With CSV DELIMITER ',' HEADER

It’s super easy, but, BUT how do you do the same exercise but with multi-line query? I hit the дърво before I find the way. Because if I paste the query with the \copy parameter and everything else I violate some parameter requirements and I got

\copy: parse error at end of line

I’ve found a workaround (not the cleanest way to do this, but it works at least). Just paste the query without the \copy and then navigate back to the beginning to add it manually.

28.02.2022

О вие, величествени люде. С това реших да започна и започнах!

Понякога гледам как хората стигат до моя блог и когато видя ключовите думи понякога ми трябват два аналгина и кофичка кисело мляко за да разсеят мигрената, която ме напада. Вече съм споменавал и преди в далеч по-подробен анализ, но всеки път ме напушва на смях ей това търсене:

Как се е справил горкия човек, как е стигнал от гугъл до моя блог … неведоми са пътищата …

Ваксиниране

Ужас с новата ваксина. Прочетете!

Днес се ваксинирахме със Златина и искам да споделя отвратителния experience от цялата ситуация. Пиша думите с треперещи вече ръце, очите ми са пълни (както и аз де).

Днес дойде ред да се ваксинираме срещу Covid-19 и започна ужаса. Първо – колата цялата беше мега мръсна и си изцапах дънките, после Борко малко поплака, но беше ок, после не можах да намеря къде да паркирам и се въртях като контрольор в БДЖ, докато паркирам, докато отидем до поликлиниката …

После се наложи да говорим с рандом жена с дете за общи неща и беше доста неудобно.

После ни ваксинираха – всичко мина леко, нямаме оплаквания.

После докато се приберем си изцапах обувките, после трябваше да нося малко вода в нас…

Та така де, пазете се!

Написано на 26.02.2021 г.