AzizDev | Dashturlash
118 subscribers
59 photos
1 video
1 file
75 links
🧬 Young Lord of Code
👨‍💻 Backend Engineer from the Future
⚙️ Laravel | Scaling | Microservices
🐲 Dragon-born ideas & legendary code
📡 Connect: @Isroilov_Azizbek
Download Telegram
📢 Microsoft va Zero-Day mojarosi

Security researcher Microsoft'ga bir nechta kritik Windows zaifliklarini topib berganini aytmoqda.

Uning da’vosiga ko‘ra:

• Bug bounty(mukofot) berilmagan
• Microsoft account'i yopilgan
• GitHub account'i bloklangan

Shundan so‘ng u ketma-ket Windows uchun bir nechta zero-day-larni public qilgan.

Eng xavotirli tomoni — ulardan ayrimlari real hujumlarda ishlatilgani haqida xabarlar mavjud.

Microsoft esa bu tarzdagi oshkor qilish foydalanuvchilarga xavf tug‘dirishini va yuridik choralar ko‘rilishi mumkinligini bildirgan.

💬 Bu voqea cybersecurity hamjamiyatida katta bahsga sabab bo‘lmoqda.

Bir tomonda — researcher'larning haq-huquqlari.
Ikkinchi tomonda — millionlab Windows foydalanuvchilarining xavfsizligi.

#news #cybersecurity
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Bugun Dushanba va 1-chi sana nimadur boshlashni ayni vaqti ekan : )
😁6
Sun'iy intellekt hali foyda keltiryaptimi?
Javob: Yo'q

link
👍5
🔥 phpredis vs predis— qaysi biri yaxshiroq?

Laravel loyihalarda Redis bilan ishlashda asosan 2 ta variant bor:
phpredis
predis

📌 phpredis
C tilida yozilgan PHP extension
Juda tez ishlaydi
Kamroq RAM ishlatadi
Production uchun tavsiya etiladi
Redis'ning yangi imkoniyatlarini tezroq qo‘llab-quvvatlaydi

📌 predis
Toza PHP kutubxonasi
O‘rnatish oson (composer require predis/predis)
Serverga extension o‘rnatish shart emas
Development va shared hosting uchun qulay

⚡️ Performance bo‘yicha:
phpredis deyarli barcha holatlarda predis'dan tezroq va kamroq resurs sarflaydi.

🎯 Xulosa:
Production server → phpredis
Shared hosting yoki extension o‘rnatib bo‘lmaydigan muhit → predis
Laravel loyihalarda imkon bo‘lsa phpredis ishlatishni tavsiya qilaman. 🚀
#php #laravel #redis #production
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥6
📦 Laravel 13.13 da yangi imkoniyat — Bus::bulk()
Endi minglab joblarni queue'ga yuborishda dispatch() ni qayta-qayta chaqirish shart emas.
Bus::bulk(
$users->map(fn ($user) => new ProcessUser($user))
);

Bus::bulk() joblarni queue va connection bo‘yicha guruhlab, bir martada yuboradi. Natijada kamroq so‘rov va tezroq dispatch.
Katta hajmdagi email, SMS, import va report joblari uchun foydali.
📖 Batafsil:
https://laravel.com/docs/13.x/queues#bulk-dispatching
#Laravel #PHP #Queue
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Вентилятор Tarixi 😄

Men Вентилятор oldim va xonamga qoydim va uni uzoqroqga qoydim va uni ochirib yoqish juda azobli edi men borib ventilyatorni ochirib keyin joyimga otirishim kerak edi bu juda og'ir ish va men oyladim shuni avtomatlashtirsamchi deb va izlanib aqilliy r = розетка topdim va sotib oldim uning ilovasi bor ekan ochirib yoqasiz timerlari bor scheduler bor ekan juda qulay lekin telefonda qilish kerak ekan yana minus men yana komp da mazza qilib otirganimda telefonimni blokdan chiqarib wifi yoqib ilovaga kirib switch ni o'chirishim kerak edi bu juda azob edi men nima qildim osha qurilmani API si bor ekan oshani izlab topib ozimni telegram botimga ulab qoydim va endi bemalol kompyuterimdan o'chirib yoqa olaman xayot ancha yengillashdi ana endi qiz topsam boldi 😁

r = розетка qilganim r o'zgaruvchini qayerdadur ishlataman deb aqilliylik qilmoqchi edim ishlatmadim baribir 😄
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍1👏1
🚨 Queue dispatch qilishda yashirin muammo

Quyidagi kodni ko'rganmisiz?
DB::transaction(function () use ($userData) {
$user = User::create($userData);

SendWelcomeEmailJob::dispatch($user);
});

Hammasi to'g'ridek ko'rinadi.
Lekin queue worker juda tez ishlasa, job transaction commit bo'lishidan oldin ishga tushishi mumkin.

Natijada:
User::find($id);

null qaytaradi 😬
Chunki ma'lumot hali database'ga yozilib ulgurmagan bo'ladi.

Laravel'dagi yechim:
DB::transaction(function () use ($userData) {
$user = User::create($userData);

SendWelcomeEmailJob::dispatch($user)
->afterCommit();
});

Endi job faqat transaction muvaffaqiyatli yakunlangandan keyin queue'ga yuboriladi.

🎯 Qachon ishlatish kerak?
• Email yuborishda
• Notification jo'natishda
• Webhook dispatch qilishda
• Event publish qilishda
• Boshqa service'larga xabar yuborishda


Qisqasi, job database'dagi yangi ma'lumotga tayanadigan bo'lsa, afterCommit() ishlatishni unutmang.

Laravel'dagi eng underrated metodlardan biri 🔥

#laravel #tip #queue
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🚨 Race Condition nima?

Tasavvur qiling, account'da 100 000 so'm bor.
Ikki xil request bir vaqtda keladi:

1-request:
- Balansni o'qidi: 100 000

2-request:
- Balansni o'qidi: 100 000

1-request:
- 80 000 yechdi
- Balans: 20 000

2-request:
- 80 000 yechdi
- Balans: 20 000

Natija:
Xar ikki request parallel ishladi va ikkisi xam balansni 100 000 deb oqidi
Foydalanuvchi 160 000 so'm ishlatdi,
lekin hisobida atigi 100 000 so'm bor edi 😬

Mana shu Race Condition.

Ko'pchilik transaction ishlatdim, demak xavfsiz deb o'ylaydi.
Lekin transaction har doim ham Race Condition'dan himoya qilmaydi.
Laravel'dagi yechimlardan biri:
DB::transaction(function () use ($walletId) {
$wallet = Wallet::where('id', $walletId)
->lockForUpdate()
->first();

// balans bilan ishlash
});

lockForUpdate() satrni lock qiladi va boshqa transaction'larni kutishga majbur qiladi.

Shu sababli moliyaviy tizimlar, bonuslar, ombor va to'lov sistemalarida lockForUpdate() juda muhim.

#laravel #tip #race_condition
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥1
Qarmoq,baliq va men

Men ora-orada saytlarga hujumcha qilib turaman va ko‘pchilik e’tiboriga olmaydigan narsa bor — rate limiting.Registerda yoki boshqa endpointlarga qo‘yishmaydi. 🫢 Aslida, loyihada iloji bo‘lsa, bo‘lmaydi deganda bitta global rate limit qo‘yib qo‘yish kerak barcha routelar uchun. Muhim routelar uchun esa alohida qilib qo‘yish kerak, masalan, register uchun OTP ketadigan bo‘lsa va hokazo.
Agar rate limiting yo‘qligini bilib qolsam qaysidur saytda, joyida Open Code Editor -> app.js -> parallel 10 ta request va kamida 10 ta process bilan, va cooked. 😬

Va ikki tomonlama(back + front) validatsiya ham juda muhim narsa.

Bugun shunchaki domain izladim. Menga yoqqan domain band ekan, qiziqib kirib register qildim. Portfolio joylasa bo‘lar ekan va portfolio uchun rasm yuklasa bo‘lar ekan. 😁
Loyiha toza PHP’da ekan va portfolio qo‘yganda rasm yukladim. Rasmni tanlashingiz bilan serverga ketar ekan, alohida endpointga, va yuklanadi ekan. Men qiziqdim, max nechi MB ekan deb.
UI’da cheklov qo‘yibdilar. Men Postman bilan qildim: headerdan cookie’ni oldim, CSRF tokenni formadan oldim va 142 ta 4.32 MB’lik rasm yukladim. Validatsiya yo‘q ekan. 😬
142 × 4.32 = 613.44 MB va men bu uchun shunchaki script yozib, avtomat 10–15 marta yoki undan ko‘proq qilsam, serverning xotirasini to‘ldirib qo‘yishim mumkin edi. Bu serverning qotishiga va o'chib qolishiga ham sabab bo‘lishi mumkin.

#security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
🚀 Laravel 13.16.0 da yangi php artisan dev command qo'shildi.
Endi development uchun:

php artisan dev

bitta buyruq bilan:
• Laravel server
• Queue worker
• Pail log viewer
• Vite
parallel ishga tushadi.

Bundan tashqari o'zingizning commandlaringizni ham qo'sha olasiz (reverb:start, stripe listen va hokazo).

Batafsil pull request
#laravel #php #news
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Tassavur qililar click productionda ishlamayabti 502 bad gateway va hodimlariga aytsam qachondan beri ishlamayabti deb mendan sorab turibti men aytgandan keyin 502 gatewaydan Database connection failed ga o'tdi 😅 Qayerga qarayabsilar
😁9
Yana bir jabrlanuvchi turk sayti 😄

Men YouTube’da bir turk dasturchi qizni ko‘rib qoldim. U Python’dan bir nechta darsliklar qo‘ygan ekan va oxirgi videosida mening sevimli akamning yaratgan o‘yini deb saytni reklama qildi.

O‘yinni tushunganim yo‘q, tushunarsiz qandaydir sayt ekan, lekin userlar active, zo‘r. Men register qilmoqchi bo‘ldim, OTP ketar ekan. Yaxshi, soxta email bilan kirolmadim va urinishlarni ko‘paytirgan edim, 60 daqiqaga IP addressni blokladi.

Hmmm, yaxshi, lekin minusi bor ekan. Google akkaunt bilan kirdim va profile rasm yuklash joyi bor ekan. Birinchi yuklagan rasmimning path’ini olib qo‘ydim, uni o‘chirarmikan deb.

Keyin rasmda ko‘rishlaring mumkin, 5 ta process ketmoqda. Har biri 1000 marotabadan yuklaydi. Rasm esa 1.5 MB’lik rasm (validatsiya bor ekan, max limit 2 MB). Bu degani 1.5 GB bo‘ladi har bir process.

Men buni kamida 10 marotaba qilib ko‘rdim, ya’ni 10 ming request, 15 GB data. 😄 Va kun bo‘yi qilib o‘tirishim mumkin.

Qisqasi, bu turk sayti ham pishadi. Bitta bizda emas ekan bunday muammolar. Boshida olib qo‘ygan path’imdagi rasm o'chib ketmabdi, bu degani tozalamayapti. Yangi rasm yuklaganda eskisini o‘chirmas ekan. 😄
😁51
🚀 RAG va MCP nima?

Ko'pchilik ularni raqib deb o'ylaydi, ammo vazifalari turlicha.

📚 RAG (Retrieval-Augmented Generation)
AI'ga tashqi ma'lumotlarni topib beradi.
Misol: "Kompaniyamizning refund siyosati qanday?" deganda, RAG hujjatlardan ma'lumotni topib AI'ga uzatadi.
👉 RAG = "Ma'lumotni qayerdan olamiz?"

🔧 MCP (Model Context Protocol)
AI'ni tashqi tizimlar bilan bog'laydi.
Misol: "Bugungi buyurtmalar sonini ko'rsat" deganda, MCP database'ga so'rov yuborib natijani olib keladi.
👉 MCP = "Ishni qanday bajaramiz?"

💡 Xulosa:
• RAG → Hujjatlarni o'qiydi 📚
• MCP → Tool va servislarni ishlatadi 🔧

🔥 Zamonaviy AI agentlar RAG + MCP kombinatsiyasidan foydalanadi: RAG ma'lumot topadi, MCP ishni bajaradi.

#ai #rag #mcp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
🚀 Laravel Performance Tip: whereDate() bilan ehtiyot bo'ling

whereDate() juda toza va o'qilishi oson ko'rinadi:
Post::whereDate('created_at', today())->get();


Lekin katta jadvallarda bu odatda:
WHERE DATE(created_at) = '2026-06-27'

ko'rinishidagi query'ga aylanadi. DATE() funksiyasi ustunga qo'llanilgani sababli, ma'lumotlar bazasi ko'p hollarda indeksdan (INDEX) samarali foydalana olmaydi.

Katta jadvallar uchun diapazon (range) query ishlating:
Post::whereBetween('created_at', [
now()->startOfDay(),
now()->endOfDay(),
])->get();

Bu yondashuv created_at indeksidan to'liq foydalanish imkonini beradi va millionlab yozuvlar bo'lgan jadvallarda sezilarli darajada tezroq ishlaydi.

🎯 Qoida:
whereDate() → kichik jadvallarda muammo emas.
whereBetween() yoki >= / <= → katta jadvallar va production uchun afzal.
Kichik o'zgarish. Katta hajmda esa juda katta farq. 🚀

#laravel #mysql #oerformance #eloquent
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2🤯1
🚀 TrueAsync — PHP uchun native asynchronous runtime va HTTP server loyihasi.

Maqsad — PHP'ga coroutine, async/await va non-blocking I/O olib kirib, bitta process ichida minglab so‘rovlarni samarali qayta ishlash.

🔥 Hozir Laravel va Symfony adapterlari ustida ish ketmoqda. v1.0 Stable relizi esa PHP 8.6 bilan birga 2026-yil noyabriga rejalashtirilgan.

PHP asta-sekin Node.js va Go darajasidagi asinxron imkoniyatlarga yaqinlashmoqda.

The "PHP IS DEAD" theory is a big mistake.

#php #async
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍1🤯1