<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AZ-Way</title><link>https://az-way-blog.web.app/</link><description>Recent content on AZ-Way</description><generator>Hugo</generator><language>kk</language><lastBuildDate>Mon, 09 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://az-way-blog.web.app/index.xml" rel="self" type="application/rss+xml"/><item><title>Angular 6 → 22: жаңарту жолы және неден сүрінесің</title><link>https://az-way-blog.web.app/posts/angular-6-to-22/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/angular-6-to-22/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Angular-ды көп нұсқадан аттап жаңартудың бір ғана жолы бар: бір уақытта бір мажорлық нұсқа, әрқайсысынан кейін жасыл құрастыру мен тесттер. Үлкен бұзылулар сирек болады, бірақ оларды алдын ала болжауға болады: рендеринг қозғалтқышының ауысуы, құрастырушының ауысуы, standalone, сигналдар, zone.js. Төменде — 6-дан 22-ге дейінгі жол картасы, соңғы қадамдарда бізде не бұзылды (импорт сақиналары, бәрінің үстіндегі оверлейлер, zone.js) және монорепозиторийде мұның неге он рет емес, бір рет жасалатыны.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="бірінші-ереже-бір-бірден-нұсқа"&gt;Бірінші ереже: бір-бірден нұсқа&lt;/h2&gt;&#10;&lt;p&gt;Angular мажорлық нұсқаны шамамен жарты жылда бір рет шығарады. Жаңарту командасы:&lt;/p&gt;</description></item><item><title>Angular-монорепозиторийдегі Sentry: «пайдаланушылар шағымданбайды» дегеннен бір топтағы 6889 оқиғаға дейін</title><link>https://az-way-blog.web.app/posts/sentry-angular-monorepo/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/sentry-angular-monorepo/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Пайдаланушылар багтар туралы ешқашан дерлік жазбайды: олар бетті жаңартып, ренжиді де, әрі қарай кетеді. Sentry әр пайдаланушының браузерінен қателерді түсінікті стекпен және контекстпен жинайды. Төменде — оны бір монорепозиторийдің 17 қолданбасына бірден қалай қостық, source maps-сыз ол неге пайдасыз, дұрыс жіберілмеген бір қате 157 адамнан 6889 оқиғаны қалай жинады және Sentry пайдаланушы туралы нені білмеуі керек.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="бұл-не-үшін-керек"&gt;Бұл не үшін керек&lt;/h2&gt;&#10;&lt;p&gt;Пайдаланушы браузеріндегі &lt;code&gt;console.error&lt;/code&gt;-ді ешкім көрмейді. Тестілеуші бір браузерді және бір деректерді тексереді. Нақты пайдаланушылар — жүздеген комбинация: жұмыс компьютеріндегі ескі Chrome, кешеден бері ашық тұрған қойынды, баяу желі, командада ешкімде жоқ құқықтар.&lt;/p&gt;</description></item><item><title>Java OCA 8 frontend-әзірлеушінің көзімен</title><link>https://az-way-blog.web.app/posts/java-oca-8-frontend/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/java-oca-8-frontend/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Мен Angular мен TypeScript-тегі frontend-әзірлеушімін және Boyarsky мен Selikoff кітабы бойынша Oracle Java SE 8 Programmer I (1Z0-808) сертификаттауына дайындалып жүрмін. Мақсат — Java (Spring) backend бойынша junior/тағылымдамашы сұхбаты. Жазбада — сандармен прогресс, алты тараудың әрқайсысында не бар, TypeScript әдеттері қай жерде қате жауапқа апарады және әр тарауды кодпен бекіту үшін бір-екі LeetCode есебінен. Java мен TypeScript-тің синтаксисі ұқсас, сондықтан ең қулық жерлер — код таныс көрінетін, бірақ басқаша жұмыс істейтін жерлер.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-java-және-неге-осы-емтихан"&gt;Неге Java және неге осы емтихан&lt;/h2&gt;&#10;&lt;p&gt;Мақсат — тек frontend емес, Java/Spring-де backend жаза білу. Сертификаттың өзі жұмыс бермейді. Бірақ оған дайындық тілдің негізін «Stack Overflow деңгейінде» емес, ұсақ-түйегіне дейін үйренуге мәжбүрлейді. Емтихан дәл ұсақ-түйекті тексереді: бұл код компиляцияланады ма, не басып шығарады, қандай ерекшелік лақтырады.&lt;/p&gt;</description></item><item><title>Nx affected-пен нөлден CI: «пайплайн жоқтан» барлық staging-қолданбаларға 9 минутқа дейін</title><link>https://az-way-blog.web.app/posts/ci-nx-affected/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/ci-nx-affected/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Ондаған қолданбасы бар монорепозиторийде әр коммитке бәрін құрастыру — ұзақ әрі мағынасыз: қолданбалардың көбін өзгеріс қозғамаған. Nx нені қозғағанын санай алады — &lt;code&gt;nx affected&lt;/code&gt;. Қиындық командада емес, «неге қатысты қозғалған?» деген сұрақта. Төменде — скриптермен қолмен деплой жасаудан MR-ды тексеретін және тек керегін құрастыратын пайплайнға дейінгі жол, және жолда басқан төрт тырма.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="нөлдік-нүкте-қолмен-деплой"&gt;Нөлдік нүкте: қолмен деплой&lt;/h2&gt;&#10;&lt;p&gt;Алғашында пайплайн болған жоқ. Shell-скрипт болды: қолданбаны жергілікті құрастырып, файлдарды серверге көшіру. Мәселелер айқын:&lt;/p&gt;</description></item><item><title>Ерік-жігердің орнына профиль: AZ-Way Lock iPhone, iPad және Mac-та назарды қалай ұстайды</title><link>https://az-way-blog.web.app/posts/az-way-lock/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/az-way-lock/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Мен «телефонда аз отыруға» ерік-жігер арқылы тырыспаймын. Apple Configurator-да iPhone, iPad және Mac-тан ойын-сауықты алып тастайтын және оның оралуын қымбатқа түсіретін конфигурация профилін жинадым. Ішінде не бар екенін санасаң, бастысы көрінеді: бұғатталған сайттардың 44 %-ы және бұғатталған қолданбалардың 31 %-ы мазмұнның өзі емес, оған апаратын айналма жолдар. Профильді орнатқаннан кейін az-log-та &lt;code&gt;phone&lt;/code&gt; себебі дерлік жоғалды: алғашқы күні 5 жағдайдың 4-еуі, ал келесі сегіз күнде 24-тің 1-еуі.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-ерік-жігер-емес-профиль"&gt;Неге ерік-жігер емес, профиль&lt;/h2&gt;&#10;&lt;p&gt;&lt;a href="https://az-way-blog.web.app/posts/az-log/"&gt;az-log&lt;/a&gt; жазбасында кестенің алғашқы жолы-ақ нені көрсеткенін айттым: бес намаздың төртеуін телефон кесірінен қаза қылдым не кейінге қалдырдым. Қорытынды «көбірек тырысу керек» емес, «жағдайды өзгерту керек» болды.&lt;/p&gt;</description></item><item><title>Көшірілген 10+ Angular-жобадан бір Nx-монорепозиторийге</title><link>https://az-way-blog.web.app/posts/nx-monorepo-from-copies/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/nx-monorepo-from-copies/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Бізде бір Angular-қолданбаның оннан астам көшірмесі болды — әр аймақтық тапсырыс берушіге біреуден. Багты он рет түзейтінбіз, фичаны он рет қосатынбыз, әр жолы бір жерде ұмытып кететінбіз. Бәрін бір Nx-монорепозиторийге жинадық: ортақ код кітапханаларда, ал аймақ қолданбасы ~25 файлдан тұратын жұқа қабыққа айналды. Төменде — қандай ретпен көшіру керек, кітапханалар арасындағы шекараны қалай жүргізу керек және неден күйіп қалдық.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="мәселе-көшірме--өсіп-отыратын-қарыз"&gt;Мәселе: көшірме — өсіп отыратын қарыз&lt;/h2&gt;&#10;&lt;p&gt;Сызба таныс. Бірінші тапсырыс берушіге арналған қолданба бар. Екіншісі келеді: «бізге де дәл осындай, бірақ біздің логотиппен және бір-екі айырмашылықпен». Ең жылдамы — папканы көшіру. Бір жылдан кейін көшірмелер он болады, және:&lt;/p&gt;</description></item><item><title>Қайталанатын қателерден қорғаныс ретінде өз ESLint-ережелерің</title><link>https://az-way-blog.web.app/posts/custom-eslint-rules/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/custom-eslint-rules/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Код-ревью қатені бір рет ұстайды. Линтер ережесі оны әрдайым ұстайды: әр коммитте, әр әзірлеушіде, CI-да. Менің ережем қарапайым: бір қате ревьюге екінші рет жетсе, бұл енді адамның қатесі емес, құралдардағы саңылау. Әрі қарай — үш сатылы баспалдақ (дайын ереже → хабарламасы бар шектеу → өз ережең), өз ережеңді қадамдап талдау және оның жалпы жұмыс істейтінін қалай түсінуге болатыны.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="неге-ревью-жеткіліксіз"&gt;Неге ревью жеткіліксіз&lt;/h2&gt;&#10;&lt;p&gt;Ревьюді адам жасайды. Адам шаршайды, асығады, логикаға қарап, он рет көрген ұсақ-түйекті өткізіп алады. Ал командадағы жаңа әзірлеуші бұл ұсақ-түйекті мүлде білмейді: ол бір кезде соның кесірінен продты жөндеген адамдардың басында ғана өмір сүреді.&lt;/p&gt;</description></item><item><title>Өздері жөндейтін ESLint-ережелер: fixer, suggestions және Angular-шаблондар</title><link>https://az-way-blog.web.app/posts/eslint-fixer-angular-templates/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/eslint-fixer-angular-templates/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Өткен &lt;a href="https://az-way-blog.web.app/posts/custom-eslint-rules/"&gt;custom-eslint-rules&lt;/a&gt; жазбасында ереже қатені тек табатын. Келесі қадам — оны түзетуі. Мұнда басты нәрсе техника емес, шекара: &lt;code&gt;eslint --fix&lt;/code&gt;-ке тек &lt;strong&gt;код мінез-құлқын ешқашан өзгертпейтін&lt;/strong&gt; түзетуді ғана сеніп тапсыруға болады. Қалғанының бәрі — адам өзі қолданатын кеңес (suggestion). Қосымша Angular-шаблондарға арналған ережелер: олар да солай құрылған, тек ағашы басқа.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="көмектің-үш-деңгейі"&gt;Көмектің үш деңгейі&lt;/h2&gt;&#10;&lt;p&gt;Ереже үшеуінің бірін істей алады:&lt;/p&gt;&#10;&lt;div class="az-table-wrap"&gt;&#10; &lt;table class="az-table"&gt;&#10; &lt;thead&gt;&#10; &lt;tr&gt;&lt;th&gt;Деңгей&lt;/th&gt;&lt;th&gt;Не істейді&lt;/th&gt;&lt;th&gt;Кім шешеді&lt;/th&gt;&lt;th&gt;Қашан қолданылады&lt;/th&gt;&lt;/tr&gt;&#10; &lt;/thead&gt;&#10; &lt;tbody&gt;&#10; &lt;tr&gt;&lt;td&gt;Тек хабарлама&lt;/td&gt;&lt;td&gt;Қатені ерекшелейді&lt;/td&gt;&lt;td&gt;Адам қолмен түзейді&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Suggestion&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;1+ түзету нұсқасын ұсынады&lt;/td&gt;&lt;td&gt;Адам редакторда таңдайды&lt;/td&gt;&lt;td&gt;Шерткенде, &lt;code&gt;--fix&lt;/code&gt; оларға &lt;strong&gt;тиіспейді&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&#10; &lt;tr&gt;&lt;td&gt;&lt;strong&gt;Fix&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;Өзі түзейді&lt;/td&gt;&lt;td&gt;Машина&lt;/td&gt;&lt;td&gt;&lt;code&gt;eslint --fix&lt;/code&gt;, «fix on save», CI&lt;/td&gt;&lt;/tr&gt;&#10; &lt;/tbody&gt;&#10; &lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;Таңдау ережесі біреу: &lt;strong&gt;fix — тек түзету 100 % жағдайда қауіпсіз болса ғана.&lt;/strong&gt; Егер ол кем дегенде бір жағдайда мінез-құлықты өзгертуі мүмкін болса, бұл suggestion. &lt;code&gt;--fix&lt;/code&gt; жиі өзі іске қосылады — файлды сақтағанда немесе pre-commit-хукта. Оның әр түзетуіне ешкім қарамайды, сондықтан автофикс қатесі — ешкім байқамаған баг.&lt;/p&gt;</description></item><item><title>Үлкен монорепозиторийде Tailwind v3 → v4 миграциясы</title><link>https://az-way-blog.web.app/posts/tailwind-v3-to-v4-monorepo/</link><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/tailwind-v3-to-v4-monorepo/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Tailwind v4 конфигурацияны JavaScript-тен CSS-ке көшірді және кластарды файлдардан өзі іздейді. Қарапайым жобада бұл ыңғайлы. Кластар қолданбадан тыс ондаған кітапханада тұратын монорепозиторийде бұл жаңартудан кейін «стильдер жоғалып кетуінің» бірінші себебі. Төменде — не өзгереді, онсыз болмайтын төрт директива (&lt;code&gt;@import&lt;/code&gt;, &lt;code&gt;@config&lt;/code&gt;, &lt;code&gt;@source&lt;/code&gt;, &lt;code&gt;@reference&lt;/code&gt;), Sass-пен не істеу керек және нәтижені CI-дағы тексеріспен қалай бекіту керек.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="v4-те-не-өзгерді-қарапайым-тілмен"&gt;v4-те не өзгерді, қарапайым тілмен&lt;/h2&gt;&#10;&lt;p&gt;Tailwind — CSS генераторы. Ол файлдарыңды оқып, ішінен кластарды (&lt;code&gt;flex&lt;/code&gt;, &lt;code&gt;bg-primary&lt;/code&gt;, &lt;code&gt;px-4&lt;/code&gt;) табады және тек шынымен қолданылатындарына ғана CSS жазады.&lt;/p&gt;</description></item><item><title>az-log: күніне бір жол және телефонымды құлыптаған профиль</title><link>https://az-way-blog.web.app/posts/az-log/</link><pubDate>Sat, 07 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/az-log/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;az-log — бұл Google-кесте: бір жол бір күнге тең, ал бағандар төрт салаға бөлінген: сенім, денсаулық, отбасы және табыс. Алғашқы күні-ақ кесте бес намаздың бәрін өткізіп алғанымды көрсетті, оның төртеуінің себебі біреу еді: телефон. Содан кейін iPhone мен iPad-қа Apple Configurator арқылы профиль орнаттым: ол ойын-сауық қолданбалары мен сайттарын алып тастайды және өзін өшіртпейді.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="кесте-қайдан-шықты"&gt;Кесте қайдан шықты&lt;/h2&gt;&#10;&lt;p&gt;Жылдық мақсаттарым жазбаларда төрт сала бойынша жазылған. Мәселе мынада: ай соңында оларды орындадым ба, жоқ па — адал жауап бере алмайтынмын. «Жаман емес сияқты» деген сезім болатын, ал сезім ештеңені дәлелдемейді.&lt;/p&gt;</description></item><item><title>Иммунитет және шынықтыру: зерттеулер бойынша не көмектеседі</title><link>https://az-way-blog.web.app/posts/immunity-cold-hardening/</link><pubDate>Wed, 04 Nov 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/posts/immunity-cold-hardening/</guid><description>&lt;div class="az-alert az-alert--info" role="status"&gt;&#10; &lt;span class="az-alert__title"&gt;Қысқаша&lt;/span&gt;&#10; &lt;div&gt;Иммунитетті бір таблеткамен «көтеру» мүмкін емес. Зерттеулер бойынша бес нәрсе жұмыс істейді: тұмауға қарсы екпе, кемінде 7 сағат ұйқы, тұрақты кардио, қол жуу және жетіспеген жағдайда D дәрумені. Шынықтыру, тамақты шаю, пробиотиктер мен сауна шамалы немесе күмәнді әсер береді. Сарымсақ, зімбір, «барлығына» C дәрумені және «иммуномодуляторлар» алдын алуда іс жүзінде әсер етпейді.&lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="дәлел-деңгейлерін-қалай-оқу-керек"&gt;Дәлел деңгейлерін қалай оқу керек&lt;/h2&gt;&#10;&lt;p&gt;Төмендегі әр тармаққа төрт деңгейдің бірі қойылған:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;Күшті дәлелдер&lt;/strong&gt; — көптеген РБЗ-ның жүйелі шолуы немесе мета-талдауы, әсері тұрақты.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Орташа&lt;/strong&gt; — бірнеше РБЗ немесе бір үлкен зерттеу; әсері бар, бірақ ескертулермен.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Әлсіз&lt;/strong&gt; — бір шағын РБЗ, бақылау деректері немесе шекарадағы әсер.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Әсер етпейді&lt;/strong&gt; — тексерілген, әсері жоқ.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;РБЗ — рандомизацияланған бақыланатын зерттеу: адамдар топтарға кездейсоқ бөлінеді, сондықтан топтар арасындағы айырмашылықты қатысушылардың өмір салтына емес, араласудың өзіне жатқызуға болады.&lt;/p&gt;</description></item><item><title>OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide</title><link>https://az-way-blog.web.app/books/java-oca-8/</link><pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/books/java-oca-8/</guid><description>&lt;h2 id="неге-оқып-жүрмін"&gt;Неге оқып жүрмін&lt;/h2&gt;&#10;&lt;p&gt;Мақсат — тек frontend емес, Java/Spring-де backend жаза білу. Сертификаттың өзі жұмыс бермейді. Бірақ оған дайындық тілдің негізін «Stack Overflow деңгейінде» емес, ұсақ-түйегіне дейін үйренуге мәжбүрлейді.&lt;/p&gt;&#10;&lt;h2 id="тараулар-бойынша-жазбалар"&gt;Тараулар бойынша жазбалар&lt;/h2&gt;&#10;&lt;p&gt;Алты тараудың әрқайсысының талдауы — TypeScript әдеттері қай жерде қате жауапқа апаратыны және тарауды қандай LeetCode есептері бекітетіні — &lt;a href="https://az-way-blog.web.app/posts/java-oca-8-frontend/"&gt;Java OCA 8 frontend-әзірлеушінің көзімен&lt;/a&gt; жазбасында.&lt;/p&gt;</description></item><item><title>Техника</title><link>https://az-way-blog.web.app/tech/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://az-way-blog.web.app/tech/</guid><description>&lt;p&gt;Қолданатын және жақын арада алмақ құрылғыларым.&lt;/p&gt;&#10;&lt;h2 id="қолданамын"&gt;Қолданамын&lt;/h2&gt;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--wealth"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;path class="az-ill__soft" d="M8 20 L24 13 L40 20 L24 27 Z"/&gt;&#10; &lt;path class="az-ill__line" d="M8 20 L24 13 L40 20 L24 27 Z M8 20 V26 L24 33 L40 26 V20 M24 27 V33"/&gt;&#10; &lt;circle class="az-ill__accent" cx="32" cy="27.6" r="1.4"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Mac mini (2024)&lt;/h3&gt;&#10; &lt;div&gt;Компьютер: M4, 16 ГБ жедел жады&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--wealth"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;path class="az-ill__soft" d="M7.5 14.5 Q24 17.5 40.5 14.5 V28 Q24 31 7.5 28 Z"/&gt;&#10; &lt;path class="az-ill__line" d="M4 11 Q24 15 44 11 V31 Q24 35 4 31 Z M24 34 V39 M16 40 H32"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Dell P3421W&lt;/h3&gt;&#10; &lt;div&gt;Монитор&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--wealth"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;rect class="az-ill__line" x="4" y="15" width="40" height="18" rx="3"/&gt;&#10; &lt;path class="az-ill__line az-ill__keys" d="M9 20 H39 M11 24.5 H37"/&gt;&#10; &lt;rect class="az-ill__accent" x="15" y="27.5" width="18" height="2.5" rx="1.25"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Logitech MX Keys Mini&lt;/h3&gt;&#10; &lt;div&gt;Пернетақта&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--wealth"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;path class="az-ill__line" d="M24 6 C33 6 36 14 36 24 C36 35 31 42 24 42 C17 42 12 35 12 24 C12 14 15 6 24 6 Z M24 6 V18 M12.5 19 Q24 22 35.5 19"/&gt;&#10; &lt;rect class="az-ill__accent" x="22.5" y="9.5" width="3" height="6" rx="1.5"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Logitech MX Master 3S&lt;/h3&gt;&#10; &lt;div&gt;Тінтуір&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&lt;h2 id="алмақпын"&gt;Алмақпын&lt;/h2&gt;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--health"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;path class="az-ill__line" d="M19 14 L20 5 H28 L29 14 M19 34 L20 43 H28 L29 34 M35 22 H37 V26 H35"/&gt;&#10; &lt;circle class="az-ill__line" cx="24" cy="24" r="11"/&gt;&#10; &lt;path class="az-ill__accent-line" d="M24 17 A7 7 0 1 1 17.42 26.39"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Garmin Forerunner 265&lt;/h3&gt;&#10; &lt;div&gt;Сағат&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;&#10;&#10;&#10;&lt;div class="az-card az-card--icon"&gt;&#10; &lt;span class="az-card__icon az-card__icon--health"&gt;&lt;svg viewBox="0 0 48 48" width="48" height="48" focusable="false" aria-hidden="true"&gt;&#10; &lt;path class="az-ill__accent-line" d="M5 12 H14 L17 6 L21 17 L24 10 L26 12 H43"/&gt;&#10; &lt;rect class="az-ill__line" x="4" y="25" width="40" height="6" rx="3"/&gt;&#10; &lt;rect class="az-ill__bg az-ill__line" x="16" y="22" width="16" height="12" rx="6"/&gt;&#10; &lt;circle class="az-ill__accent" cx="24" cy="28" r="1.6"/&gt;&#10;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;div class="az-card__body"&gt;&#10; &#10; &lt;h3 class="az-card__title"&gt;Garmin HRM 600&lt;/h3&gt;&#10; &lt;div&gt;Пульсометр&lt;/div&gt;&#10; &lt;/div&gt;&#10;&lt;/div&gt;</description></item></channel></rss>