tgindex
voidp
@voidplogКнигианглийский

Software Engineer, Mentor Portfolio: https://voidp.uz Books: @voidpbooks Don't get mad at me, if I always ask you "how it actually works?".

Последний пост
14 авг.
Последнее чтение
20:59
Постов за неделю
2
Всего постов
24
Тип
открытый
Язык
английский
Категория
Книги
В каталоге с
14 авг.
Подписчики
120
−1 за 3 дн.
Сутки
−1
−0,83%
Неделя
 
Месяц
 
Просмотров на пост
279
24 постов
Вовлечённость
232,5%
к подписчикам
Постов в день
0,3
всего 24
Упоминаний
0
каналов
Охват размещения
оценка
1/24сутки в ленте
69
1/48двое суток
79
1/72трое суток
85

Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.

Посты

  • #sys 📲 What Every Programmer should know about Memory Ulrich Drepper’s 2007 paper, foundational for low level system design. @voidplog

  • #c 👨‍💻 How I'm solving a subtle problem in Kinetic's memory mgmt. Allaqachon arena allocation ishlatyapman, butun request context alohida malloc'chalar emas bitta bump-allocate bo'ladi va bitta reset bo'ladi. Everything is fine, until it isn't. 👩‍💻 Repo:…

  • #c 👨‍💻 How I'm solving a subtle problem in Kinetic's memory mgmt. Allaqachon arena allocation ishlatyapman, butun request context alohida malloc'chalar emas bitta bump-allocate bo'ladi va bitta reset bo'ladi. Everything is fine, until it isn't. 👩‍💻 Repo: https://github.com/Samandar-Komilov/kinetic Xo'sh, o'zi nima gap? Ex bu TCP requestlar doim bittada to'liq kelganida edi... Lekin unday emas, bitta 2KB request 3 qismda (512KB, 1024KB, 512KB) kelishi mumkin. Va biz har chunk kelganda "keyingisi kelarmikan, qachon kelarkin endi u" deb kutib o'tirmaymiz, shart parserga berib yuboramiz (FSM aniqlaydi, request complete'mi, errormi yo yana kutish kerakmi). Yaxshi, lekin o'sha kelgan chala requestni ham qayerga o'qiymiz? Arenagami? Arena resizing uchun terrible, a bizda esa chunk_size ma'lum emas, xohlagancha kelishi mumkin. Bu active resizing talab qiladi, va intuitiv tarzda biz shunchaki malloc/realloc ishlatib qo'yaqolamiz. Har chunk kelganda yangi temporary heap, uni keyin connection bufferga copy (resize boladi). Bu degani har bitta chunk uchun nechta system-call ishlatyapman? O'zi arenadan maqsad ortiqcha syscallarni yo'qotish edi, xo'sh endi nima? Research qilsam, bu holatda global pool ishlatish to'g'riroq qaror bo'lib chiqdi: MAX_CONN=1024 va har bir pool_slot_size=8192 qilib 8MB lik heap pool ochib olaman (nima uchun static emas heap, nima deb o'ylaysiz?). Har chunk kelganda yangi malloc emas, o'sha 8KB slotga yozib qo'yaman. Lekin endi connectionga alohida copyni oldini olish uchun poolni connection-owned qilaman. Va tema hal - butun connection davomida pre-process raw datani qabul qilish uchun shu poolni ishlatishim mumkin. ✅ Lekin, yechim boshqa muammoni ko'tarib keladi - endi men max 1024 ta connectionni serve qila olaman, sababi har bir slot butun connection lifetime davomida uniki bo'ladi. Config fayldan dynamic boshqaraman, max_connections=100000 qilib qo'yaman deysizmi? Har server ishga tushganda RAMdan ~780MB yemoqchimisiz, hech nima qilmasa ham? Yo'q bunaqasi ketmaydi. ❓ Bu muammoni yechish uchun qanday yo'l tutishim mumkin, nima deb o'ylaysiz? Keyingi post shu haqida. @voidplog

  • #c ⏳ New Post Series is Pending... @voidplog

  • видео или голосовое, без подписи

  • #sys 🔄 HTTP Connection Lifecycle State Diagram 1st image shows how I built my previous HTTP server, while 2nd is the official RFC-compliant server. See the difference? Biggest mistakes we can make: 1. Reading HTTP requests as ASCII chars (char*) instead of octet-streams (uint8_t); 2. Considering Response generation a separate lifecycle, generating responses with separate heap alloc; 3. Thinking everything is sequential, while 2nd request may come before you send response to the 1st (no pipelining support); 4. Thinking IDLE state somehow finishes (no timers); 5. Assuming body is not chunked/dropping them off; 6. Forgetting to flush memory after connection completes. @voidplog

  • #c 👩‍💻 Nginx clone - phase 2 CServe'ning 1-fazasida qilingan ishlarga qarab, bu bir toy projectcha bo'lganini tushunib yetdim: - Messy codebase - no documentation - no proper testing - no pluggable module system 🏆 Natijada challenge'ga 2-faza kerak ekani…

  • How Agentic Development affected my state of mind (in 6 months)? - The internal clock is now ticking way faster. I'm always in a hurry, time is not enough, even though AI was supposed to "improve" my efficiency. - Extreme distraction. AI meant we can do more and more concurrent tasks (e.g. multiple projects with parallel Claude sessions (multi-waiting sessions' auto mode)). Yet I'm now losing track of my own codebases, not writing a single line of code caused brain to fear from touching code and prefer "just ask Claude". - Loss of a deep work. Brain has much less resistance now. The very thing I actually need to grow is being treated as a barrier to growth. "Why bother facing with infra issues, just give Claude SSH access" - this is how far I got. Today I realized how far I moved from who I was a year ago. I willingly allowed the hype to take my resources and vision. Well, we'll get them back with force, killing CC dependency first. @voidplog

  • #c 👩‍💻 Memory Allocation Strategies Memory allocation desa faqat malloc() va free() ni tushunadigan bo'lsak, bu article aynan biz uchun. Memoryni har safar kernelga syscall qilib olish shart emasligi, bu uchun turli strategiyalar borligi haqida ajoyib tushunchalar berilibdi. Xususan: - Linear & Arena Allocators - Stack Allocators - Pool Allocators - Free List Allocators - Buddy Allocators @voidplog

  • 6 июн.288122

    #geo ⚠️ Geospatial data bilan ishlayotgan backendchilar uchun bu yerda kerak manbalar bo'lishi mumkin. 🗺 Xaritalar o'qish va chizish men uchun doim qiziqarli bo'lib kelgan. Best source to have fun. 10 yil oldin Paintda Orol dengizi qurishini chizganimda bir kun maxsus program bilan haqiqiy karta chizaman deb niyat qilardim. Yillar o'tib esimdan ham chiqib ketgan ekan, endi esladim. Bu xarita juda sodda bo'lsa-da o'sha niyatimga erishish mumkinligini amalda isbotladi. Foydalanildi: - QGIS 3.44, - Natural Earth Starter Kit Dataset, - QGIS tutorials @voidplog

  • #p ⚙️ Nihoyat 2 haftalik urinishlardan keyin Elevenlabs AI Agent bilan onlinePBX.ru SIP trunk (tel raqam) ni bitta UZ server orqali uladik. SIP requestlar 5060 UDP port orqali borsa-da Elevenlabs uni qabul qilmay turgandi. Asteriskni turli usullarda config qilib ko'rdik, o'xshamadi. Oxiri TLS config bilan SIP requestimizni oldi. Progress bor, shukr. O'zi VoIP nima, modern AI call center agentlar qanday ishlashi haqida o'tgan hafta draft post yozgandim, hali editlik ishi bo'lsa-da o'qisangiz bo'ladi: - How Your Voice Travels the Modern Internet @voidplog

  • 🔋 Battery Optimization Techniques Ko'pchiligimiz kompyuterni ishlatish tartibimiz by default quyidagicha: 100% -> unplug charger -> 20% -> plug charger -> 100% ... Ayniqsa, turli eski zamonlardan qolgan miflarga qanchadir miqdorda ishonamiz: batareyani to'liq 0 qilib turish kerak, to'liq 100% qilmasa kichrayib boradi, etc. Lekin zamonaviy litiy-ion batareyalar umuman boshqacha treat qilinishi kerak. Linuxda (Fedora misolida) buni tlp servisi bilan amalga oshirish mumkin. 1. Enabling Sleep Mode Modern komplarda ekranni yopsa ham komp o'chmasligi yoki light sleepga tushishi batareya ekran yopiqligida ham tez ketishiga sabab bo'lyapti. TLP orqali deep sleep qilishini ta'minlaymiz: MEM_SLEEP_ON_AC=deep MEM_SLEEP_ON_BAT=deep 2. Setting Charge Threshold Kompingiz zaryadi to'lsa ham tokda turganda batareya toshib ketmaydi, aksincha u directly tokni ozidan foydalana boshlaydi. Bu imkoniyatni o'z foydamizga ishlatamiz - zaryad 80 dan oshsa batareyani uzib tokni o'zini ishlat: START_CHARGE_THRESH_BAT0=0 STOP_CHARGE_THRESH_BAT0=80 Bu juda efficient usul bo'lib, kamroq charge, kamroq cycle count bo'lishi va natijada sog'lom batareya uzoqroq saqlanishini ta'minlaydi. 3. CPU optimizations Agar processoringiz kuchli bo'lsa, shunga mos energiya ham yeydi. Uni cheklash orqali energiyani tejashimiz mumkin: CPU_SCALING_GOVERNOR_ON_AC=performance CPU_SCALING_GOVERNOR_ON_BAT=powersave CPU_ENERGY_PERF_POLICY_ON_AC=balance_performance CPU_ENERGY_PERF_POLICY_ON_BAT=power CPU_BOOST_ON_AC=1 CPU_BOOST_ON_BAT=0 CPU_MAX_PERF_ON_AC=100 CPU_MAX_PERF_ON_BAT=60 Bular ishlashi uchun TLP servisini install qilishingiz, systemd service sifatida enable qilishingiz va config change bo'lganda restart qilishingiz kerak bo'ladi. Shuningdek shortcut, agar zaryad ulanmagan paytda ham tez ishlashini istab qolsangiz, profile change qilish tezroq solution bo'ladi (config changedan ko'ra): sudo tlp ac Bu orqali AC modega o'tamiz va komp tok ulangandagi performanceda ishlashni boshlaydi. @voidplog

  • 25 мая229161

    #ai Miyangiz hatto o'ylashga ham erinib qolgan bo'lsa, o'sha AI instructioniga shunday prompt qo'shib qo'ying: - Act like a Socratic mentor, always ask questions. Don't just give the answer, even if I beg for it. Make me think and find the path myself. Claude misolida sinab ko'ryapman, ochig'i miyani og'rityapti. Og'riq qancha kuchli bo'lsa siz AI ga shunchalik qaramsiz do'stim. @voidplog

  • 🔥 Brat ichimdagi olovni qayta yoqdi Prosta iste'molchi bo'lmasdan, biroz contribute ham qilib turish kerak! (Hali PRim merge bo'lgan levelga chiqmagan bo'lsam-da, o'zim uchun eslatma) @voidplog

  • #os 🪐 MITda operatsion tizimlar darsini haqiqiy Unix-like OSni studentlar qo'liga tutqazib o'rgatishar ekan. xv6 tizimi 1975-yilgi Unixning 6-versiyasidan ilhomlanib yozilgan OS bo'lib, oldin x86 uchun yozilgan bo'lsa keyinchalik zamonaviy RISC-V ga o'tishgan. Full C code. Tinker qilishga ermak. Zato faqat nazariy kitobni emas actual kodni o'qish imkoni bor. Buniyam X dan topdim) @voidplog

  • 9 мая373102

    #sys ⚠️ So'z bilan uradigan post. Bu brat aytgan narsalar oldida o'zimni API plumber his qildim. Haqiqatan, experiment qilishlarni to'xtatib qo'ydik. Comfort (AI)ga yotib olyapmiz do'stlar. @voidplog

  • #sys Siz bu yerdagi tushunchalardan nechtasini izohlab bera olasiz? AI yordamisiz, raw miyangiz bilan? Qaytaraman, idea ham olmagan holda. My humble score: 13/40. Active va passive bilimni ajratib olish uchun yaxshi post ekan @voidplog

  • https://t.me/nnolan_labs/869

  • #rs 👩‍💻 Obscura - Rustda yozilgan headless browser. Tashqi dependencylar (chromium, firefox) talab qilmaydigan single executable ekan. Playwright/Puppeteer bilan ham ishlatsa boʻladi. Benchmarklari ham ajoyib. Sinab ko'rish kerak. 16 yosh bola yozganini ko'rib esa ham shubhalanasan, ham hayratlanasan kishi) @voidplog

  • #os 🏎 Process is a running program. So what? Aksarimiz hozirgacha tasavvur qilgan, introductory kitoblarda osonroq bo'lsin deb aytilgan bir yolg'oncha bor: CPU processlarni schedule qiladi, processlar CPU timeni oladi. Aslida ham shundaymi? Batafsil postda. @voidplog

voidp — tgindex