January 2023

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.

Равносметката за 2022

Фю, 2022 си беше предизвикателство. Този път започвам с хубавото:

  • РОДИ СЕ ОГИ. Е на, каня се от септември месец да пиша за това, но търся муза и така и не писах, но имаме второ детенце, което носи огъня в себе си – Огнян. В ретроспекция съм убеден, че това биха били най-добрите години в живота ми.
  • Здрави сме.
  • Смених работата, нещо за което вече писах.
  • Време беше да поговорим открито за депресията.
  • Бях на Hills of Rock където откровено си откъснах главата на Slipknot, на Sabaton, на Testament. Пихме от обед, стояхме до късно, два дни бях с пусната коса, видях се с Вальо и Вельо, с Тошко и със Стаката, с Дима и Сашо, сигурно и с някой друг, вече не помня. Душата ми още потръпва като се подсетя за моментите.
  • Кафето освен основен стимулант в моя живот се затвърди като страст тази година. Реших да вдигна нивото и да сменя кафеварката (с която Златина ме зариби по specialty coffees) с нещо по-сериозно. Първо взехме Saeco Exprelia, но не се харесахме и реших да мина на ултимавитната Gaggia Classic с няколко подобрения. Към момента търся правилната рецепта за това колко ситно да го смеля, колко грама да сложа и колко грама да ми е екстракцията, но има хубави дни в които се получава повече от задоволително. (Освен това Злати ми подари и Wacaco Nanopresso, което със сигурност ще нося на Дунав Ултра!)

Какво не се случи:

  • Не карах толкова, колкото ми се искаше, НО направих почти 1200 км за миналата година (в първите три месеца основно).
  • Борбата с килограмите продължава.
  • Не свирих колкото ми се искаше.
  • Не писах колкото ми се искаше.
  • Оги се роди две седмици по-рано и се наложи да отложа в последния момент участието си в QA:Challenge Accepted, нещо, което ще поправя идната година.

Какво следва:

  • Да стана още по-добър татко и съпруг.
  • В професионален план – много, ама много. Имам да уча още много, много, много, нещо, което ме прави много доволен.
  • Преди час (в 1:30 някъде) си купих билет за Дунав Ултра 2023 така, че познайте дали няма да пиша през ден за подготовката ми!
  • Чакат ме няколко много вълнуващи бревета.