Page 10 of 49

God of War: Ragnarok най-накрая излезе с дата за релийз

Една от основните причини да имам Playstation 5 е God of War – това е най-добрия gameplay с най-добрата графика (да не забравяме, че релийзната 2018 г.) и с най-добрата история. Нещо, което не вярвах, че ще изпитам пак. Прекарах безброй часове в обикаляне и трошене на глави с брадва, в разговори и лабиринти.

Преди 2 години тийзнаха, че ще има нова версия, но после Covid + проблемите с доставките на Playstation 5 (и не само) забавиха целия пазар.

И ето ни тук, датата е 06.07.2022 и най-накрая, след две години чакане, един тийзър и един трейлър (който съм гледал сигурно 50 пъти) излезе датата на релийза на God of War: Ragnarok – 09.11.2022. Нямам търпение да видя накъде ще се развие историята и какво ще се случи с Кратос (има много мнения по въпроса, но няма да ви тийзвам, спокич), с Atreus и с цялата посока на играта в края си.
Изчетох много фенски теории и честно казано доста от тях звучат много правдоподобно.

А да – не ме търсете на 09.11.2022 ако обичате, няма да отговарям!

Новия gameplay teaser:

И официалния трейлър, който ме държа хайпнат със седмици:

“You seem like calm and reasonable person”

Едит – сигурно си мислите – “Хм, датата не беше ли съвсем скоро? 11 Септември?!?” И ще сте прави. Моя е грешката, че не предвидих date format-а в сайта от който прочетох новината, който е MM/DD/YYYY, а не нашия DD/MM/YYYY. За мое огорчение датата е Девети Ноември, а не Единадесети Септември… Мда, и аз останах разочарован малко, но нищо – ще дебнем намаленията по празниците.

Едит 15 Август – излезе едно невероятно видео, което разказва историята на Кратос и Atreus от последната игра. Жената, която води клипа е невероятен разказвач, а art-а е супер добър. Бтв очаква се това да е най-важния релийз на игра за PS в последните години и други фирми започват да изместват датите на своите релийзи за да не се засекат с GoW: Ragnarok. Това само по себе си говори доста.

Едит 14 септември – излезе един story trailer, който е ЖЕСТОК:

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

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

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

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

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

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

#100daysOfHomeLab – day 3

Време е за сетъп на k8s, rancher и nextcloud! Юхууу!

Tip №1 – за да не теглите ISO на любимата ви дистрибуция на вашата машина и после да upload-вате към proxmox (аз съм с някакъв абсурден сетъп с рутерче за сигурно 10 лв. и wifi е болезнен) можете да го wget-нете направо на сървъра по този начин:

wget -P /var/lib/vz/template/iso  https://releases.ubuntu.com/22.04/ubuntu-22.04-live-server-amd64.iso

В първия пост по темата си говорихме за това, че искам да използвам k8s, но за тези, които просто искат инсталиран nextcloud (или и k8s + docker) просто могат да го направят от инсталатора на Ubuntu Server:

А какво правим когато не можем да спрем/рестаритраме машината заради Proxmox can’t lock file ‘/var/lock/qemu-server/lock-xxx.conf’ – got timeout? Първо опитваме с built-in инструмента на Quemu/KVM VMM:

qm unlock 100

Ако не стане ще се наложи по грозния начин – да изтриете lock файла. Първо намираме кое е VM ID-то, което ни е нужно и после трием lock файла ръчно. Това сработи при мен:

nedko@minimicro:~# ls -l /run/lock/qemu-server/

-rw-r--r-- 1 root root 0 Jun 17 16:27 lock--1.conf
-rw-r--r-- 1 root root 0 Jun 17 17:42 lock-101.conf

rm -f /var/lock/qemu-server/lock-101.conf

Днес е голяма забава. Оказа се, че при инсталацията на Ubuntu 22.04 LTS при Proxmox & VMWare спира при curtin command in-target. Разрешението, както е описано е да се инсталираме Ubuntu без networking и в последствие да си го пуснем. И понеже трябва да си напишем yaml-а на ръка и е малко пипкаво оставям тук моето решение (което е стандартно такова, не съм открил топлата вода). Първо трябва да си знаем името на интерфейса, което ще вземем от /sys/class/net/ защото по default например нямаме netstat в ubuntu server така, че горното решение ще свърши работа при всяка Debian based машина:

nedko@k8s:~$ ls /sys/class/net/
ens18  lo
 
nedko@k8s:~$ sudo vim /etc/netplan/01-network-manager-all.yaml

Приемайки, че нашата мрежа е 192.168.1.1/24 с gateway 192.168.1.1 (и използваме DNS на Cloudflare, които предпочитам по ред причини) резултата изглежда такъв:

network:
    ethernets:
        ens18:
            dhcp4: false
            addresses: [192.168.1.110/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [8.8.8.8,8.8.4.4,192.168.1.1]
    version: 2

След това apply-ваме промените (с –debug за да видим детайли ако нещо се омаже):

nedko@k8s:~$ sudo netplan --debug apply

И от толкова греди не ми остана време да инсталирам docker, rancher & k8s. Next time!

#100daysOfHomeLab – day 2

Понеже последно време покрай ОГРОМНИЯ избор на проекти, които мога да хостна и чуденките ми кой как да свържа с другия за да ми паснат на use case-а изпаднах в нещо наречено analysis paralysis, което в същността си е “задръстването” от информация, която поемаме за да направим нещо. Обикновено е съчетно и с желание за идеален сетъп от първия път, а това освен много напрежение ни добавя и нереалистични представи понякога.
Та когато се усетих, че съм си набелязал 20-тина сървиса и гледам някакви advanced pi-hole techniques и се спрях. Първата ми цел ще бъде да тествам nextcloud – проект, който искам да тествам в production от доста време.

И понеже старото ми аз би направило нова виртуалка на която да вдигна nextcloud се спрях и си реших да приключа веднъж завинаги с това и да започна да уча по-интензивно kubernetes, защото ще ми бъде много полезно за в бъдеще. И така планът е:

kubernetes на който върви Nextcloud –> да използвам volumes за mySQL (или noSQL по възможност, ще бъда щастлив) и основните директории на nextcloud (/var/www/html{custom_apps,config, data, themes}). Този целия сетъп след някакво време като дойде време за network hardening-а ще отиде на отделен VLAN и ще му орежа доколкото мога достъпа отвън за да няма изненади в последствие.

Също така тряба да се науча да правя и къдърни графики, че това с –> ми е навик от малък и не носи никаква информация освен ако не е нещо линейно.

#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!

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

Миналата неделя бях поканен да споделя част от опита си със завършващите курса на 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 да речем) се отдели от родителите си, дойде при мен и каза – “Господине, много хубава реч, хареса ми.” Прибрах се нахилен като пача. Явно е имало смисъл.

100 Days of HomeLab – The HomeLab Challenge

TechnoTim даде една страхотна идея. Сто дни биха били достатъчни човек да изгради солиден навик. И понеже той е tech youtuber на който доста се кефя се зачудих като видях заглавието на клипа. Оказа се обаче, че не е само той, а буквално ВСИЧКИ технически youtubers,които говорят зa homelabs, инфраструктура, proxmox и хардуер. Ако сте фенове ви го препоръчвам.

Та по негов пример смятам да ъпдейтвам тук в блога какво съм правил и правя по моя homelab. Ще зацапам блога с много и кратки постове, но е по-добре отколкото един огромен пост тип changelog. Мислих си и за едно git repo (или gist), но така exposure-a ще е много по-малък и няма да усещам peer pressure-а :D Понеже няма как да правя всеки ден неща в продължение на толкова време си слагам таргет от 3 пъти седмично като това може да включва целия спектър – от стратегия през provisioning, хардуер и до networking. Надявам се да ви в полезно и да надъхам някой да направи същото или поне да се зачете за контейнери/хардуер/networking и т.н.

А защо го правя ще се запитате? Ще попитате нямам ли дете, бременна жена, семейство, хоби и т.н.? И ще ви отговоря. Освен, че ми е супер интересно тези предизвикателства са и супер полезни в професионален план. Пример – всеки е разцъквал docker, но до къде? Да вдигне един hello world или както направих аз да взема един прост ruby script и да го изпълня? Хубаво ама в реални условия може да речем да вдигнете един домашен plex за да си имате библиотека с филмите и сериалите, но искате достъпа до persistent volume-а да става от друга машина? Или да се стартира автоматично при пускането на машината? Или да се вдига наново ако нещо се строши? Това са елементарни примери, но са извън обикновеното – “Я да разгледам тоя docker” и всичко да приключи след 2 примера от нета. А кога сте правили конфигурирали VLAN за да сегментирате трафика между устройства? Това са все неща, които всеки е чувал как работят, някои са цъкали малко, но рядко някой е поддържал такива системи и лично е отговарял за тях поради една или друга причина. И точно тук идва моето нещо – цяла екосистема, която да е съвсем истински production за който аз да съм отговорен и да съм направил цялата архитектура и всичко около него. Това за мен би било супер близко до това, което правя на работа.

Най-накрая излезе Apple silicone M2

Версията на тази статия я има записана и в подкаста за по-голямо удобство

Чаках повече от година докато се наканя да взема Apple Air M1 като чаках основно за втората генерация на процесора, който създаде солиден buttpain на Intel и разбута доста пазара на performance ultra-low voltage процесори (демек леки, но бързи лаптопи и ултрабуци чиито батерии държат повече от един работен ден). Та бях убеден, че ще итерират нова версия след година, но се оказа, че пуснаха performance версиите Pro/Max). Малко отклонение, но се оказа, че М серията е измислена бриляантно, защото може да се закачат серийно n-брой процесори и така MAX представлява ъпгрейд по силата на два или повече М1 base процесора. Това осигурява почти безкрайни възможности за ъпгрейд. Минуса е, че използва unified memory, която е много бърза (в процесора), но до 16ГБ (при М1) така и не може да се ъпгрейдва. Може би към момента М серията не би била готова за sever grade решения (но съм убеден, че ще видим и това в някакъв момент, както виждаме Atom процесори в server grade инфраструктура).

Та чаках новия М2, чаках и накрая си взех М1, която е бру-тал-на машина, страхотно тънка, лека, по-бърза от моите така или иначе високи очаквания и невероятно тиха защото единственото подвижно нещо в нея е … копчетата на клавиатурата :D MacBook Air в комбинация с M1 или М2 процесор няма вентилатор. Toва, без да влизам в подробности, е заради двата вида ядра в процесора, подобни на тези, които имаме в телефоните – такива, които отговарят за леките операции и performance ядра, които се включват само като пуснете нещо тежко. Иначе като съпоставка можем да сравним М1 с предишния top of the line Intel i7 (използван Macbook Air от 2018г.) като М1 държи 7 вата (!!!) в idle и 39 вата максимум натоварване, докато i7 държи 20 вата в idle и 122 в максимум натоварване.

Apple Macbook Air M2

Новия Apple MacBook Air идва с новия M2 чип като освен това разликите са и:

  • Нов дизайн с по-тънка рамка (bazel), идва с notch (на който вече са му оправени голяма част от първоначалните софтуерни проблеми, а зад notch-а се крие и новата 1080Р камера. Лаптопа вече прилича повече на два iPad-а един върху друг – няма скосяване при китките, изглежда доста квадратен, но с приятен дизайн. Линията има и нови цветове – silver, space gray, starlight, midnight. Няма вече розов цвят така, че сори, Злати, но следващия лаптоп няма да ти е розов.
  • Нов порт – така желания magsafe се връща обратно в играта и така лаптопа става с два Thunderbolt/USB type-C и един аудио жак. Magsafe зарежда вече с цели 64 вата (около 50% за час) като ще има и версия с два Thunderbolt/USB type-C за да си зареждате две устройства едновременно, но с мощност до 35 вата
  • Колонките, които са абсурдно добри за такава машина вече ще са разпределени на четири части, а микрофона, който също е доста добър вече поддържа и beamforming audio
  • Дисплея по традиция е нечовешки като в новия MacBook Air M2 ще е, както написах и по-горе, с по-тънък безъл, 13.6″ размер на дисплея, по-ярък с до 500 нита (като 13″ MacBook Pro), bazel и нова 1080Р камера
  • Процесора е вече с 4 милиарда транзистора в повече, до 2 GPU ядва отгоре повече, TDP и честота още не са анонсирани в сайта на Apple, 8 TOPS повече (Trillion Operations per Second) за neural engine процесора, до 24ГБ unified RAM (преди максимума беше 16GB), memory bandwidth-а е ъпгрейднат до жестоките 100GBps (за справка преди беше 68,25GBps използвайки LPDDR4X RAM) с поддръжка на новата LPDDR5 RAM, процесора, както и предшественикът му използват 5nm процес, М2 е с около 20% по-бърз и между 30 и 35% по-бързо GPU
  • Батерията продължава да е жестока и с 18 часа живот (при video playback, 15 при браузване) и е 52.6 watt-hour
  • Разновидности на MacBook Air m2 – разликите са малки, по-скъпата версия има две GPU ядра в повече, 512GB SSD (и двете версии могат да се конфигурират до 2ТБ)
  • Цените са $1199 за базовата версия с М2 чип, 8GB RAM и 256GB SSD и $1499 за версията с повече GPU cores, 16GB RAM и 512GB SSD
  • Fun fact – MacBook Air M1 2020 ще продължи да се продава, но цената му остава същата – $999.
  • Ще има и MacBook Pro 13 М2 като разликата с MacBook Air М2 са потресаващи и на 90% в полза на Air. Същия разполага с нов дизайн, по-лек е, по-добър дисплей, има magsafe, по-бърз fast-charge, нова камера, повече портове. Toва в което Pro е по-добър е, че има вентилатор и малко по-голяма батерия…
  • Не толкова fun fact е, че М2 продължава да поддържа само един външен дисплей (до 6К резолюция).

A заслужава ли си?


Според мен – зависи. М1 е изключително адекватна машина, която има много плюсове и макар и М2 да е добра не е с порядъци за да бъде следващото нещо, което бих искал да си купя. А и с цена от $200 повече не е първото нещо, което бих избрал.

Edit – Linux Tech Tips имат стра-хот-но видео с много повече информация и по-дълбок поглед над новия MacBook Air M2, препоръчвам ви го:

19.05.2022 – git и търсене по commit

Днес ми се наложи да търся дали някой commit е влязал в tag-ната версия в git и понеже е лесен onliner споделям с вас.

Отбелязка, че много зависи какъв ви е git workflow-а. Проектът, който си избрах на рандом е този – gRPCurl.

Та имаме commit ID да речем 8ee6c9. Единия начин е да отидем в Releases на проекта и да търсим на ръка в ляво, изглежда ей така:

Но вече се досещате, че ако работите в някой огромен проект не можете да търсите на ръка 150 страници с релийзи, а за това идва в помощ git cli tool-a:

[email protected]:[~/repo/code/grpcurl] $ git log --oneline | grep "8ee6c94"

8ee6c94 can't build s390x docker images; skip for now (#265)

Ето, че виждаме съобщението, а сега вадим и таг-а:

[email protected]:[~/repo/code/grpcurl] $ git tag --contains 8ee6c94 | head -1
v1.8.5

Без head -1 вади всички тагове, които съдържат този commit (благодаря на Владо за дописването и коригирането)

[email protected]:[~/repo/code/grpcurl] $ git tag --contains 8ee6c94 | head -1
v1.8.5
v1.8.6

13.05.2022 – docker stats

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

nedko@vortex$ 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 например.

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