Category: Блогинки

05.01.2023

Ако някога ви се случи да се логвате в (private) docker repo и тръгне да ви гърми с:

It reports: Error saving credentials: error storing credentials - err: exit status 1, out: status code not OK but 401: {"detail":"Incorrect authentication credentials"}

Първото нещо, което искате да направите преди да променяте конфигурацията в ~/.docker/config.json е да направите

docker logout

You’ll thank me later. Моя train of thought тръгна към друга посока и изгубих 15 минути докато се сетя да опитам да logout-на преди да дебъгвам по на дълбоко.

04.01.2023

Преди 12-13 години може би Габс ме покани с приятели да ходим във Винтидж33 да слушаме ПИФ и може би от този момент нататък не мисля, че съм изтървал и един техен концерт. Всеки път беше магия, основно защото не бяхме много хора, беше приятелско, виждахме едни и същи лица през повечето време, Димо се раздаваше винаги, ви-на-ги, както и другите от групата. Бяхме се посприятелили с Димо и остатъка от групата. Даже единия път ходихме в Болла и напих басиста им като свиня. И сега всеки път като си пусна нещо тяхно и ме стяга, защото вече няма ПИФ, няма Димо.

Но човек не си заминава ако хората се сещат за него, нали? Докато му пеят песните той още е жив, нали? Дано е така.

In other news:

  • Сам Къри пише за това авто индустрията е направо като разграден двор от гледна точка на сигурност. Така е когато са в “startup” mode – features first, security last;
  • Славчев има нов блог пост, нещо, което ме кара да бъда щастлив, че го познавам.

03.01.2023 – светлина в тунела!

Не съм писал два поста в един ден от бая време, но този си заслужава.

Клиент съм на суперхостинг от 2006 г. или малко след като започнаха да предлагат услугите си. През годините когато използвах cPanel и правих сайтове те ми бяха основния доставчик на услуги (хостинг и домейн). С времето мигрирах marvin към DigitalOcean, а домейните си към CloudFlare, но остана един, който е .be, а CF не ги поддържат още. Та през някакъв период от време имам взимане-даване със суперхостинг.

Мой приятел, който е в web dev бранша и работи с бълграрски клиенти (и предпочита cPanel решенията) ми беше споделил, че качеството рязко е спаднало, особено след като са придобили ICN, hostbulgaria и host.bg и това съвпадна с моите впечатения като цяло.

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

03.01.2023

Ще ми отнеме да спра да пиша 2022…

Малко за миналата година – оставаше ми ЕДИН работен ден и тъкмо сутринта по време на дейлито Злати ми звъни по спешност – бъбречна криза. За 8 минути карайки напълно безразсъдно се прибирам в нас, звъняхме на личния лекар, ходих до аптека, но в крайна сметка просто извикахме бърза помощ. Ако ви се наложи, понеже при бъбречната криза единственото, което може да се направи е да се изчака да мине, най-добрия вариант е да звъннете или отидете в Бърза помощ. Там ще бият един коктейл от болкоуспокояващо, спазмолитик и антиеметици. Започва да действа до минути. Повече инфо можете да прочетете тук.

Мина ѝ на Злати, всичко започна да тече по нормалния си път и на другия ден се събудих с отвратителен зъбобол. Запазих час, отидох, прегледаха ме, отложиха часа за 16:00 (последен работен ден за годината, последен час за лекаря, йей). Хайде сега дръж това вадене на зъб и корен, дръж тез 6 шева. 5 дни на антибиотици, йей.

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

Та дойде края на годината, всичко се стабилизира и бам – Борко вдигна температура. Вече се чудих дали да не се гръмна, но на следващия ден му мина, предполагаме, че е от ваксината, кояот му биха също.

Абе като цяло беше някакво много “приятно” изкарване на празниците, макар, че имаше и много хубави моменти между кризите.

За тази година съм си решил да си направя един roadmap по който да действам и в професионален и в личен план и да споделям по него своя опит, пък да видим.

Плюс не можахме да запишем последния епизод на подкаста с Митака и Дидо с които щяхме да си говорим за бащинството, но скоро ще го направим и се надявам да си вземете нещо полезно от там.

Docker tips and tricks – choosing the right image

Some time ago I start an article about microservices but I got no time to continue the series. Nevertheless, I’ll publish the first one of the series. It’s a simple yet effective article on how to optimize often tremendous by size images to something that takes a lot less space and therefore can be run much faster.

The original code of a Dockerfile to run quite a simple python app looks like this:

FROM ubuntu:latest
WORKDIR /app
COPY ./app /app
RUN apt-get update && apt-get install python3 -y
RUN apt-get update && apt-get install python3-pip -y
RUN pip install requests==2.27.1
ENTRYPOINT [“echo”,”Hello”]

The result after we build the Dockerfile:

~/repo/docker-articles$ time docker build . -t original:0.1 --quiet
docker build . -t original:0.1 --quiet  0.10s user 0.09s system 0% cpu 35.108 total
$ docker images -a                                                                                                                                                                 REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
original     0.1       27cfff826324   7 seconds ago   438MB

Let’s optimize:

FROM python:3.8-alpine
WORKDIR /app
COPY ./app /app
RUN pip install --no-cache-dir requests==2.27.1
ENTRYPOINT ["python", "hello.py"]

Changes:

  • Update the docker image to a python alpine (use the latest python on lightweight Alpine Linux)
  • Remove install python & pip steps (they come prepackaged)
  • Use –no-cache-dir to save some space

Result:

~/repo/docker-articles$ docker images -a
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
optimized    0.1       f5036ae50ca7   16 seconds ago   55MB

Build time:

~/repo/docker-articles$ time docker build . -t optimized:0.1 --quiet
docker build . -t optimized:0.1 --quiet  0.08s user 0.07s system 2% cpu 7.027 total

Build size reduced by 155.375%

Build time reduced by 133.291%

Choosing the right image with Docker is crucial. With a simple change, we can save 155% on the container’s size and reduce build time by 133%! With the next tutorial we’ll see multi-stage builds and how we can produce miniature, yet completely working and idempotent docker containers adding just a little more code in our Dockerfile.

14.12.2022

Тези дни много се чудя дали да не изкарам наново Дунав Ултра, който изкарах 2018 г. и писах за това. Пет години по-късно не мога да го изгоня от главата си и остана там като някакъв малък белег, който винаги човек гледа докато се взира в огледалото. И още 2-3 бревета (от общо 20-тина може би?). Но ДУ ми остана в сърцето с планирането, карането, с Пешо, който беше от моя екип, с видинско-врачанската група, с брат ми, който ме взе от Дуранкулак и ми прибра тленните останки във Варна, за Златина, която беше ощетена откъм време заради моите маниакални тренировки.

Снощи четох интервюто на Богдан Кирчев и да кажем, че може би беше последната капка за да се надъхам до последно пак да се кача на колелото.


А какво е нужно за да мога да изкарам пак Дунав Ултра?

  • Тренировки за обем и скорост. Предния път средната ни скорост беше около 24 км/ч, което е много добре и над очакванията ми, но тази година ако съм в солово участие трябва да се боря за около 25.5км/ч-26км/ч
  • Няколко ултра карания за да мога да идентифицирам къде и кое ми куца. Например в последния ми бревет установих, че имам лимит от около 50 км. в които мога да карам без да почивам
  • Сваляне на личното тегло. В момента съм 108 кг. и физически изглеждам плачевно. Технически до Септември мога да сваля в реалистичния спектър 10 кг, а в оптимистичния такъв – 20 кг (по 2 кг месечно или по 250 гр. на седмица). Личната ми цел би била 95 кг.
  • Да намеря някой, който да ми се навие на акъла и да кара сервизния автомобил 48 часа
  • Технически ъпгрейди от типа на нов GPS (Garmin 530/830 е супер, защото има карта и шанса да се изгубя би бил минимален), нови гуми (Continental GP 500 например), гидолин (вече си взех Fizik Performance tacky 3mm), нов kit (джърси и панталон), нова каска (старата има четири падания и май са ѝ достатъчни).
  • Външна мотивация (блога е перфектното място за целта)

Има още много вода да се изтече, но щом съм си го наумил не виждам причина поне да не опитам. Ако не мога поне мога да го изкарам за по-големия интервал до 5 дни (за жалост няма 3 дни, които биха били идеални).

Metallica и Manowar с нови песни

Е, случи се, Металика пускат нова песен:

Anticipation
In domination
A sea of hearts beat as one, unified
Magnification
All generations
Approaching thunder awaiting the light

Full speed or nothing
Full speed or nothing

Lux Æterna
Lux Æterna, yeah!

Exhilaration
Frenzied sensation
Kindred alliance connected inside
Commiseration
Sonic salvation
Cast out the demons that strangle your life

Full speed or nothing
Full speed or nothing

Lux Æterna
Lux Æterna, yeah!
Lux Æterna

Emancipation
Kill isolation
Never alone for the feelings alike
Amplification
Lightning the nation
Never alive more
Than right here tonight

Full speed or nothing
Full speed or nothing

Lux Æterna
Lux Ætеrna, yeah!

Light it

Освен това изненадващо за мен и Manowar са пуснали ново парче:

Brothers one and all fight hear the call
Here we ride death is all we bring
Brothers on that sail, immortal victory hail
Into glory ride by the blood of kings
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!
Honour calls the brave of righteous will be saved
All the rest shall die their blood will be our ride
Thunder strike blood shall rain
Bone will break with fearsome pain
When black arrows fly the end will shake the sky
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!
Fly into the sun on golden wings
Recall thy pledge we sons of kings
The final sunrise eternity into thy hands
My sword and soul all that I am all that i feel
Now is the time return to the kingdom of Steel
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!
Side by side never fail
Immortal victory hail
None left standing in our way
Immortal victory today!

22.11.2022

Последните дни минават без много музика и с много kubernetes. Днес след като си приключих една много закучила се задача реших за следващата, която е много интересен CI подход (за CI като цяло ако ви е интересно сигнализирайте за да пиша, имам какво да споделя) си пуснах може би песента ми за 2022 – един концерт на Linkin Park за който писах , завъртях я 10-15 пъти и после си пуснах auto play (в youtube) и изненадата ми беше много приятна като тръгна малко по-бавната, но също толкова заредена като студийния оригинал Hearts of steel на Manowar.

Писах няколко дни преди последния им концерт в България в пост със заглавие Manowar – една моя стара любов в който вложих наистина много за да си припомня детайли и моменти, за да си възродя наново чувството за първия голям концерт, за първите Manowar, за тогавашното ми аз. Понякога се връщам да го прочета наново и се присещам друго детайли. Сещам се за Стефан с който не сме се чували от години и виждали от поне 8-9, за това КОЛКО ЯКО беше на тревата на мястото в което чух първите китари, барабани и накрая – гласът на Ерик Адамс, на мястото на което те отпраха като последните изруди 5 часа концерт, на мястото в което се чувствах на място с моите 60-тина кила, къса коса и черна тениска.

Вече доста поостарели Manowar не спират да правят шоу тяхната мамица. Последното, което беше в България, 2019 година, беше не по-малко епично от първото. Огромен минус беше озвучението в зала Армеец, но пък всичко останало вече от много. Бяхме заедно с Валь и Вельо, мои бивши колеги и текущи приятели, беше безбожно великопелно. Сещам се и как посрещнах изгрева на пейка докато чакам автобуса, който да ме заведе към летището, раницата с 5 неща в нея, като се видяхме с Вальо, после и с Вельо, с още 4-5 познати пред залата, бирите, които пихме с други метъл братя (metal brothers, преведено звучи тъпо).
Разбира се на Slipknot концерта беше божествен, на Металика, на Рамщайн, на Rotting Christ, на още много, но първия концерт, първия голям винаги ще има място в душата ми.
Представям си се като дядка, който като му пуснат Manowar на 85 да клати глава и да вдига ревматични показалец и кутре във въздуха.

16.11.2022

Имам страхотни колеги. С това ще започна и свърша увода си. Един от колегите с които си говорим ежедневно спомена, че в последната версия на RouterOS има native support на docker, което е fucking mindblowing. С native support можете да си вземете един Mikrotik hAP lite за 50-60 лв и на него да си сложите, пак казвам, съвсем native, без нужда от префлаш, опасност от brick-ване и подобни приключения, един piHole с който да си филтрирате рекламите в youtube на телевизора и телефоните, например. Или да си защитите homelab-а с някакъв читав firewall или пък да си сложите един wireguard и си имате VPN.

Случая с моя Mikrotik, който събира прах по рафтовете е, че е старичък. Всъщност толкова стар, че wireless-а му работи само на 2.4GHz, а LAN портовете му на 100mbps. Реших все пак да опитам да ъпдейтна една major версия нагоре (от 6.х на 7.х) да видим дали ще се поддържа и о, чудо – ъпдейта мина супер flowless. Браво на Mikrotik, че си запазват поддръжката на ОS-а дори и при стари устройства.

Ако и на вас ви е интересно как стана магията всъщност беше супер лесно. Първо си ресетнах рутера като при изваден захранващ кабел натиснах reset бутона, след това сложих кабела и изчаках да започне да мига лампичката на USR. След това логин с admin без парола и отгоре в дясно, където са Quick Setup, WebFig и Terminal избрах Terminal (може и по сериен порт или ссх, но web е удобно ако човек иска да свърши нещо много бързо и не му се занимава със сертификати и подобни.

След това изпълних следните команди:


[admin@MikroTik] > system check-installation  

  status: installation is ok

[admin@MikroTik] > system package update set channel=upgrade 

[admin@MikroTik] > system package update check-for-updates  

            channel: upgrade

  installed-version: 6.49.6

     latest-version: 7.6

             status: New version is available

[admin@MikroTik] > system package update download

            channel: upgrade

  installed-version: 6.49.6

     latest-version: 7.6

             status: Downloaded, please reboot router to upgrade it

[admin@MikroTik] > system reboot 

Reboot, yes? [y/N]: Y

След успешен ъйдейт (логото горе в ляво ще ви покаже текущата весия) можем да разрешим и контейнерите. Имайте предвид, че за да направите това ви е нужен физически достъп до рутера, защото след изпълняване на долната команда трябва да го рестартирате. Може да ви е странно, но това е добра валидация, че собственика на рутера иска да разреши контейнерите (които са огромен security hole), а не някой, който е налучкал credentials.

[admin@MikroTik] > /system/device-mode/update container=yes  update: please activate by turning power off or pressing reset or mode button in 4m49s -- [Q quit|D dump|C-z pause]

Веднъж разрешени можете да започвате да си играете с контейнерите. Повече информация и настройка (networking, storage, etc) можете да прочетете тук – https://help.mikrotik.com/docs/display/ROS/Container

11.11.2022

Днес цял ден се боря с kubernetes. Ще станем приятели, но ще боли. :D

In other news:

  • Accidental $70k Google Pixel Lock Screen Bypass – ето как понякога не е нужно да разпоявате интегрални схеми за да дъмпите съдържанието на EEPROM-a на някое embedded device или в случая телефон. Тези логически flows са трудни за намиране и компании като гугъл понякога, както виждате, пускат неща, които не са перфектни.