Bahriddin Mo'minov 💡 Blog


Kanal geosi va tili: O‘zbekiston, O‘zbekcha
Toifa: Bloglar


I'm Bahriddin, a Software engineer.
I write here various interesting and useful things.
Anonymous question:
http://t.me/amafree_bot?start=clxbcj8jv00di8d2l39noebng
Donation:
https://tirikchilik.uz/bahriddin
Fikrlarim:
@live_notion

Связанные каналы

Kanal geosi va tili
O‘zbekiston, O‘zbekcha
Toifa
Bloglar
Statistika
Postlar filtri


Ko'p joyda ko'rdim. Anonim savol berishyapti ekan, biz ham qolib ketmaylik. :)

Quyidagi link orqali o'tib, menga anonim savol berishingiz mumkin.

Anonim savol berish

@bahriddin_blog


Engineering Notes dan repost
Davomi

3. Engineerga vazifa emas, muammo bering. Tayyor yechimni implement qilish oson, yechimni va ayniqsa yaxshi yechimni topish qiyin. Agar manager yoki team lead sifatida engineerlarga "A tildagi B frameworkda C arxitekturada web server yoz, databaseda X, Y, Z tablelar bo'lsin" shaklidagi vazifa berayotgan bo'lsangiz unda birinchidan siz engineerlardan to'liq foydalanmayapsiz, ikkinchidan siz o'ylagan yechim optimal bo'lmasligi mumkin. Yaxshisi, "bizda A muammo bor, shuni hal qilish uchun bizga B imkoniyatga ega yangi servis kerak" deb muammoni o'rtaga tashlang. Shunda bir qancha alternativ yechimlarni ko'rib, hamma tomondan analiz qilib, eng yaxshi yaxshi yechimni tanlash imkoni bo'ladi. Lekin odatda call davomida yaxshi yechim o'ylab topish ko'p vaqt va ma'lum bir sohada chuqur bilim talab qilishi mumkin. Bunday holatda bir kishiga muammoni chuqur o'rganish va potensial yechimlar ustida ishlash vazifa qilib beriladi (yechimni implement qilish emas) va keyin berilgan yechimlarni butun jamoa bilan analiz qilib, qaror qabul qilishingiz mumkin. Implement qilish shundan keyingina boshlanadi.

4. Djangochi emas, engineer bo'ling. Bugun application serverda, ertaga databaseda, indinga networkingdagi muammoni hal qilishingizga to'g'ri kelishi mumkin. Albatta ishga kirishdan oldin bularning hammasini chuqur o'rgana olmaysiz, shuning uchun "T shaped" engineer bo'lishga harakat qiling. Ya'ni bilimingiz T harfidagiga o'xshab biror tor sohada chuqur bo'lishi bilan birga boshqa ko'plab sohalardan ham ma'lum darajada xabardor bo'lishingiz siz uchun ancha foydali, shunda zarur bo'lganida boshqa bir sohani chuqurroq o'rganishingiz oson bo'ladi (ya'ni T ni π ga aylantirish oson bo'ladi). Menimcha lokal bozordagi eng katta muammolardan biri ko'p sohalarni yuzaki biladigan lekin birortasini chuqur tushunmaydigan (– shaped) yoki bir tor sohani chuqur biladigan lekin boshqa sohalarni umuman tushunmaydigan (I shaped) engineerlar. Bundan tashqari bir narsani chuqurroq o'rganib olib, keyin hamma joyga shuni tiqishtiradigan (L shaped) engineerlar ham odatda jamoaga foydadan ko'proq zarar keltiradi, ToDo app qilish uchun ham microservice quradiganlar bunga misol.

5. Qilgan har bir ishingizni va o'ylagan har bir yechimingizni yozib boring. Projectda to'g'ridan-to'g'ri sizga bog'liq narsalar minimal bo'lishi kerak, yechimlar va g'oyalar ham shular qatorida. Ertaga siz ishdan ketsangiz ham yozgan narsalaringiz turadi. Bu kelajakda boshqalarning vaqtini isrof qilmaslik uchun qilishingiz mumkin bo'lgan eng yaxshi narsalardan biri. Bundan tashqari menga o'xshab xotirangiz yomonroq bo'lsa 1 hafta oldin tugata olmagan ishingizga qaytganingizda oldingi safar nima qilganingiz/qilmoqchi bo'lganingizni yozib qo'yganingiz uchun o'zingizga o'zingiz rahmat aytasiz.

@boboshersnotes


Engineering Notes dan repost
Hozirgi ish joyimga kirganimga 2 oy bo'ldi. Yangi jamoada texnik bilimlardan tashqari "work culture" tomondan ham ko'p narsa o'rganayapman. Quyida shaxsiy fikrimcha bizda ham kengroq adaptatsiya qilishga arziydigan ba'zi qoidalar. E'tibor qilsangiz bularning hammasi oddiy narsalar, lekin negadir ba'zilar shularga ham amal qilmaydi.

1. Sizning vaqtingiz qimmat, boshqalarniki undan ham qimmat. Hamkasbingizning ishi sizga bog'liq bo'lsa iloji boricha tezroq bajarib bering yoki eng kamida qachon qilib bera olishingzni ayting. Schedule qilingan call/meetinglarga vaqtida qatnashing, biror sabab bilan kech qolsangiz yoki qatnasha olmasangiz qolganlarni bu haqida iloji boricha ertaroq ogohlantiring. Managerlar va team leadlar uchun: callga faqat kerakli odamlarni chaqiring va iloji boricha tezroq tugating. Daily standupda jamoadagi faqat 1 kishiga aloqador task ustida gaplashish uchun butun jamoani 1 soat ushlab turmang.

2. Vaqt qimmat, fokus undan ham qimmat. Fokusning 2 ta asosiy dushmani bor, shulardan iloji boricha qochishga harakat qiling:
a) Context switch, ya'ni bir vazifadan boshqasiga o'tish. Masalan, fokus bilan ishlayotgan jamoadoshingizga "hey, tezda mana bu narsani qilib bera olasanmi, 5 minut vaqt ketadi" desangiz u ishning o'zini qilishga 5 minut vaqt ketishi mumkin, lekin jamoadoshingiz yana o'zining ishiga qaytib avvalgidek fokus qilishiga yana kamida 10-15 minut ketadi.
b) Unpredictibility, ya'ni oldindan rejalashtirilmagan ishlar. Masalan, jamoadoshingiz yoki qo'l ostingizdagi ishchini oldindan ogohlantirmasdan "hey, hozir 10 minutlik qisqa callga qatnasha olasanmi" desangiz u callga kirib nima bo'layotganini tushunib olgunicha va calldan keyin oldingi qilayotgan ishiga qaytgunicha ancha vaqt o'tadi. Lekin call oldindan belgilangan bo'lsa u ma'lum darajada tayyor bo'ladi va context switch ancha oson kechadi.

Davomi keyingi postda

@boboshersnotes


Botir Ziyatov dan repost
Google: Rust tiliga o‘tganidan keyin besh yil o‘tib, Android xotira xavfsizligi zaifliklarini 24% gacha kamaytirdi, bu esa sanoat standartidan ancha yaxshi natija.

2019-yildan beri Google Android tizimidagi xotira xavfsizligi muammolarini kamaytirish maqsadida Rust dasturlash tiliga o‘tishni boshlagan edi.

2021-yilning aprelida Google Android tizimida Rust dasturlash tilini qo‘llab-quvvatlash rejalarini rasman e’lon qilgan.

@botirziyatov


Daily Shakhriyor dan repost
Assalomu Alaykum qadrli kuzatuvchilar, keling ma’lumot almashinuv uchun hozirda ko’plab xizmatlar orasida ishlatilayotgan eng mashhurlaridan bo’lgan ikki turini solishtirib ko’ramiz.

🌐 Polling va Webhooklar

🔄 Polling

Bu tashqi xizmat yoki endpointni muntazam ravishda so'rab, yangilangan ma'lumotlarni olish jarayonidir. Bu, xuddi: "Sizda men uchun yangi biror narsa bormi?" deb doimiy ravishda so'rashga o'xshaydi, hatto yangilanishlar bo'lmaganda ham. Bunday yondashuv ko'p resurslarni talab qiladi va ko'pincha samarasiz bo'ladi. Ma'lumotlar faqat siz ularni so'raganingizda yangilanadi, bu esa real vaqtdagi dolzarb ma'lumotlarni o'tkazib yuborishingizga olib kelishi mumkin. Biroq, dasturchilar ma'lumotlarni qachon va qanday olishni nazorat qilish imkoniyatiga ega bo'lishadi.

📩 Webhooklar

Webhooklar o'rnatilgan bildirishnoma tizimi kabi ishlaydi. Doimiy ravishda ma'lumotlarni so'rash o'rniga, siz o'zingizning serveringizda endpoint yaratib, uni tashqi xizmatingizga (masalan, to'lov tizimi yoki yetkazib berish xizmati) taqdim etasiz. Muhim bir narsa sodir bo'lganda, tashqi xizmat o'zingizning endpointingizga murojaat qilib, ma'lumotlarni yuboradi. Bu webhooklarni real vaqtdagi yangilanishlar bilan ishlash uchun ideal echimga aylantiradi, chunki ma'lumotlar mavjud bo'lganda darhol dasturga yuboriladi.

🎯 Qachon foydalanish kerak:

▪️ Polling, agar webhooklardan foydalanishga to'sqinlik qiluvchi infrastruktur cheklovlari mavjud bo'lsa, maqsadga muvofiqdir. Shuningdek, webhooklar tarmoq muammolari tufayli bildirishnomalarni o'tkazib yuborishi mumkin, shuning uchun qayta urinish mexanizmlari kerak bo'ladi.
▪️ Webhooklar ma'lumotlarni darhol yetkazib berish muhim bo'lgan dasturlar uchun tavsiya etiladi va ular resurslardan foydalanish jihatidan samaraliroqdir, ayniqsa, katta yuklama sharoitlarida.


wayd dan repost
Geometrik illuziya


Asosiy foydalanadigan kompyuteringizda qaysi operatsion tizimdan foydalanasiz?
So‘rovnoma
  •   Windows
  •   MacOS
  •   Linux
  •   Boshqa (izohlarda yozaman.)
  •   Kompyuterdan foydalanmayman
52 ta ovoz


e shoppingg dan repost
Dastruchi akalarimizdan ustozdan 2ta laptop sotiladi, chapdan o'ngga qarab harakteristikasini yozamiz.

Oladigan yaxshi odamlarga yaxshi chegirmalar bor 😊, xudo hohlasa.

Model: Lenovo Legion 5 PRO,
CPU: AMD Ryzen 7 6800H,
RAM: 16GB DDR4, 32GB MAX,
HDD: 512GB NVME SSD,
Graphics: 16 inch 2560 x 1600 165Hz Display,
Holati: B.U, yahshi.

🎼 ~880$


Model: Apple MacBook Pro 13,
CPU: M1 Pro,
RAM: 16GB,
HDD: 512GB SSD,
Battery: 152 cycle count, 88% capacity
Holati: B.U, yahshi.

🎼 ~1200$

@mirsaidoff


Otabek Kholmirzaev | IT blog dan repost
Dasturchilar uchun qaynoq yangilik...

Assalomu alaykum!

O'zbekistonlik dasturchilar uchun FAANG kompaniyalariga (Facebook yoki Meta, Amazon, Apple, Netflix, Google, ...) tayyorgarlik ko'rish va tajriba almashish maqsadida yangi hamjamiyat (community) tashkil etildi. Agar siz ham yuqori darajadagi texnologik kompaniyalarga intervyu topshirishga tayyorlanayotgan yoki bu sohada bilim va ko'nikmalaringizni oshirishni xohlasangiz, ushbu hamjamiyatga qo'shiling!

Hamjamiyatimizda:

- Intervyu savollari va ularning yechimlarini muhokama qilish,
- Dasturlash masalalari va texnik savollarga birgalikda javob izlash,
- Intervyu tajribalarini o'rtoqlashish va foydali maslahatlar berish,
- Birgalikda o'qish va o'zaro ko'mak berish,
- Tajribali dasturchilar bilan tanishish (networking),
- Resume'ni ko'rib chiqish (review),
- Referal olish imkoniyatlari haqida ma'lumot olish,
- FAANG kompaniyalariga kirish bo'yicha yo'nalishlar olish

mavzulari muhokama qilinadi.

Qo'shilish uchun havola: https://t.me/faanguzb

(Hamjamiyatimiz ko'proq insonlarga foydali bo'lishi uchun, dasturchi do'stlaringiz va tanishlaringizni ham taklif etishni unutmang!)


Yii2 Frameworkida quyidagicha configlar bor ekan 🥹

Shuncha vaqtdan beri ko'rmagan ekanman.
Bundan foydalanib ko'rganlar bormi?

Bu narsa anchaa zo'r narsa, proyektingizni kengaytish (scale-out) qilish uchun rosa qo'l keladi.

#php #yii2 #scale #db #master #slave
@bahriddin_blog

118 0 0 12 15



Siz nima deb o'ylaysiz, dasturchi uchun kompyuterdan talab qilinadigan eng muhim narsalar qaysilar? (Nima ko'proq va tezkorroq bo'lishi kerak?)
So‘rovnoma
  •   CPU | Markaziy protsessor
  •   RAM | Tezkor xotira
  •   Storage | Doimiy xotira
  •   Internet tezligi
  •   Qulay stol/stul
  •   Qulat klaviyatura va sichqoncha
  •   Sifatli/ko'proq monitor
  •   Dasturchi emasman
45 ta ovoz


OpenAI arzonroq GPT-4o modelini yana ham arzonlashtirmoqda.
2-oktabr, chorshanba kuni GPT-4o modeli yangilanadi, gpt-4o-2024-08-06.

Eng so'nggi GPT-4o modeli kirish(input) tokenlari uchun 50% arzonroq, chiqish(output) tokenlari uchun 33% arzonroq va Strukturaviy chiqishlarni(Structured Outputs) qo'llab-quvvatlaydi.
Yangi versiyani hozir oʻrganish uchun APIda model parametri sifatida gpt-4o-2024-08-06 ni belgilang.

Lekin, ularni barchasi "Up to Oct 2023" yani 2023 yilning oktabrigacha bo'lgan (to'plangan) ma'lumotlar asosida ishlaydi.

#openai #gpt4o #chatgpt #ai
@bahriddin_blog


Bugun GDG Tashkent bo'larkan.
Aynan Web Development bo'yicha.

Borvorishli joyi lekin.


🔐 Nega SSH ni o'rganish har bir professional uchun muhim 🔐

Secure Shell (SSH) dastlab qo'rqinchli tuyulishi mumkin, ammo bu raqamli dunyoda chinakamiga o'yinni o'zgartirdi.
Masofaviy serverlarni boshqarish, fayllarni xavfsiz uzatish yoki vazifalarni avtomatlashtirish bo'ladimi, SSH sizning ish jarayonlaringizni yanada xavfsiz va samarali qilish kalitidir.

Nega SSH ni bilishingiz kerak?


1️⃣ Maksimal xavfsizlik: Kibertahdidlar avj olayotgan bir paytda, SSH sizga tizimlaringizga shifrlangan kirishni taqdim etadi, bu sizning ma'lumotlaringiz begona ko'zlardan himoyalanganligiga ishonch hosil qiladi. Ulanishlaringiz deyarli buzilmas bo'lishi kafolatlanganligini tasavvur qiling. 🚀

2️⃣ Masofaviy kirish (Remote Access): Siz dasturchi, tizim admini yoki shunchaki tizimlarni uzoqdan boshqarishingiz kerakmi, SSH sizga masofaviy serverlarga xuddi o'sha joyda bo'lgandek kirish imkonini beradi. Bu xuddi butun ofisingizni cho'ntagingizda olib yurgandek. 😅

3️⃣ Avtomatlashtirish va samaradorlik: Takrorlanuvchi vazifalardan charchadingizmi? SSH sizga bir nechta tizimlarda skriptlar va buyruqlarni avtomatlashtirish imkonini beradi. Bu nafaqat vaqt tejash, balki samaradorlikni oshirishdir. Yuzlab serverlarga yangilanishlarni bitta buyruq bilan amalga oshirishni tasavvur qiling! ⚡️

4️⃣ Fayllarni uzatish: FTP kabi xavfsiz bo'lmagan usullarni unuting. SSH yordamida siz tizimlar o'rtasida fayllarni xavfsiz tarzda uzatishingiz mumkin, shunda maxfiy ma'lumotlaringiz o'g'irlanmasligiga va shikastlanmasligiga ishonch hosil qilishingiz mumkin. Bu ayniqsa maxfiy ma'lumotlar bilan ishlaydigan korxonalar uchun juda muhimdir. 📁

Texnik sohada bo'lasizmi yoki yo'qmi, SSH ni o'rganish sizga raqobatbardosh ustunlikni berishi mumkin. Ushbu vositani o'zlashtirishni ustuvor vazifa qilib oling va bu sizning raqamli hayotingizni qanday o'zgartirishini kuzating.


🔑 Pro Tip: Kichikdan boshlang - asosiy SSH ulanishini qanday amalga oshirishni o'rganing. Buni o'zlashtirganingizdan so'ng, kalitlarni boshqarish va SSH tunnellash kabi qiyinroq xususiyatlarga kirishingiz mumkin.

P.S. SSH bilan birinchi avtomatlashtiradigan (yoki buzgan 😅) narsangiz nima? Quyida izoh qoldiring! 👇

#ssh #security #shell #remote
@bahriddin_blog


🎈 PG Bouncer haqida bilasizmi?
Agar PostgreSQL bilan ishlasangiz, ehtimol PG Bouncer haqida eshitgansiz.
Bu sizga yuqori yuklanishlarda ham bazangizni tez va samarali boshqarishga yordam beradi.

PG Bouncer nima va u qanday ishlaydi?
Tasavvur qiling, sizda bir nechta mijozlar PostgreSQL serveringizga ulanishga harakat qilmoqda. Har safar yangi ulanish ochilganda, bu serverga qo'shimcha yuk ortadi. Aynan mana shu yerda PG Bouncer ishga tushadi. Bu vosita sizning barcha ulanishlaringizni boshqaradi va ularni optimallashtiradi.

Uning afzalliklari:

- Resurslarni tejash: PG Bouncer kamroq xotira va CPU sarflaydi, bu esa serveringizda resurslarni bo'shatishga yordam beradi.
- Yuqori ulanish samaradorligi: U ulanishlar sonini kamaytiradi va bir nechta ulanishlarni bitta ulanishga birlashtiradi.
- Uzoq muddatli ulanishlarni boshqarish: Agar sizning ilovangiz uzoq muddatli ulanishlardan foydalanadigan bo'lsa, PG Bouncer ularni optimallashtirib, samaradorlikni oshiradi.

Qachon PG Bouncernidan foydalanish kerak?
Agar sizning PostgreSQL serveringizda ko'p ulanishlar bo'lsa yoki ulanishlar soni ortib borayotgan bo'lsa, bu vosita sizga katta yordam beradi. Ayniqsa, katta hajmli ilovalar yoki yuqori trafik bilan ishlaydigan tizimlarda.

Xulosa:

PG Bouncer - bu PostgreSQL serveringiz samaradorligini oshirishning ajoyib usuli. U server resurslarini tejaydi va ulanishlar samaradorligini oshiradi.
Uni o'rnatish va sozlash esa juda oson. Agar siz PostgreSQL bilan ishlasangiz va ulanishlar bilan bog'liq muammolarga duch kelsangiz, PG Bouncer albatta sizning yechimingiz bo'lishi mumkin!

🔄 Agar bu post sizga foydali bo'lsa, do'stlaringiz bilan bo'lishishni unutmang!

#pgbouncer #postgresql #pgsql
@bahriddin_blog

P.S. Siz PG B
ouncer bilan ishlaganmisiz? Fikrlaringizni quyidagi izohlarda kutib qolaman!


📰 OpenAI-ning yangi sun'iy intellekt modeli "Strawberry" shu kuzda taqdim etiladi!

🤖OpenAI kuzda 🍓 "Strawberry" nomli yangi sun'iy intellekt modelini chiqarishni rejalashtirmoqda, u joriy modellar qo'lidan kelmaydigan muammolarni hal qilishga qaratilgan.


✖️ Murakkab imkoniyatlar: 🍓"Qulupnay" yangi matematik muammolarni hal qilish, bozor strategiyalarini ishlab chiqish va chuqur tadqiqotlar o'tkazish kabi murakkab vazifalarni bajaradi.

Inson darajasidagi mulohazalar: Model sun'iy intellektning mulohazalari chegaralarini kengaytirish uchun mo'ljallangan, ta'minot zanjiri boshqaruvi va mijozlarning shaxsiy tajribasi kabi sektorlarni inqilob qilishi mumkin.

So'nggi ishlanmalar: OpenAI yaqinda bir nechta yangilanishlarni taqdim etdi, jumladan ChatGPT uchun ovozli xususiyat, SearchGPT vositasi va kichikroq GPT-4o mini modeli, bularning barchasi AIning real vaqtda o'zaro ta'siri va mulohazalarini yaxshilaydi.

#openai #strawberry #qulupnay #ai
@bahriddin_blog


http {
server {
listen 80;
server_name example.com;

location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# Custom headers
add_header X-Proxy-Cache $upstream_cache_status;
add_header X-Served-By $hostname;
}
}

upstream backend_servers {
# Round Robin (default)
server 192.168.1.10:8080;
server 192.168.1.11:8080;
server 192.168.1.12:8080;

# Least Connections
# least_conn;

# IP Hash
# ip_hash;

# Weighted Round Robin
# server 192.168.1.10:8080 weight=3;
# server 192.168.1.11:8080 weight=2;
# server 192.168.1.12:8080 weight=1;
}
}

Nginx orqali oddiy Reverse Proxy sozlamasi.
Bu yerda Loadbalancer ham qilingan

#loadbalancer #nginx #reverse #proxy
@bahriddin_blog


😇


UzGeeks Community dan repost
Assalom alaykum!!!
UzGeeks'da Python kuni!

📆 24-avgust, shanba kuni Toshkent shahri Raqamli texnologiyalar vazirligi binosida "UzGeeks August2024 Python Day Meetup" bo'lib o'tadi.

📚 Meetup quyidagi bo'limlardan tashkil topgan:

1️⃣ "Queue va stack pythonda qanday ishlaydi?" - Xojarbu Xaitmetova (Software Engineer, Epam)

2️⃣ "CPython qanday ishlaydi?" - Bobosher Musurmonov (Software Engineer, Epam)

3️⃣ "Odoo bilan birga yuksalamiz! Low Code, No Code..." - Erkin Isoyev (UIC Group, Aurora+)

4️⃣ "Python da sun’iy intellekt bilan ishlash" -
Ayubxon Ibrohimzoda (Python backend o'qituvchi, Ustudy IT Akademiya)

🕰 Meetup odatiy ravishda bepul bo'lib, soat 14:00 da boshlanadi, unda qatnashish uchun UzGeeks saytida ro'yxatdan o'tish kerak.
Manzil: Toshkent shahar, Mirzo Ulug'bek tumani, Muminov ko’chasi, 4A(Raqamli texnologiyalar vazirligi binosida)


Hamkorlar:
O'zbekiston Respublikasi Raqamli texnologiyalar vazirligi
Raqamli ta'limni rivojlantirish markazi
Thinkland

🌐 UzGeeks.uz

20 ta oxirgi post ko‘rsatilgan.