Engineering Notes
رفتن به کانال در Telegram
Kanalda asosan backend engineeringga oid postlar yozib boriladi. Ba'zi postlarda xatoliklar bor. Postlar foydali bo’lgan bo’lsa adminni duo qilib qo’ying. Rahmat. Contact: @Bobosher_Musurmonov LinkedIn: https://www.linkedin.com/in/bobosher-musurmonov
نمایش بیشتر2 573
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+37 روز
+1830 روز
آرشیو پست ها
2 573
Fakt: Pythonda classlarning o'zi ham aslida boshqa classdan olingan object.
Kuningiz yaxshi o'tsin ))
2 573
Repost from Engineering Notes
Concurrency Control
Zamonaviy ma'lumotlar bazalarida bir vaqtda bir nechta foydalanuvchi tomonidan parallel operatsiyalarni amalga oshirish imkonini beradi. Agar bu operatsiyalar aynan bitta resurs ustida bo'lsa (masalan, 2 ta process bir vaqtda bitta ma'lumotni o'zgartirishga harakat qilsa) ular bir-biriga konkurrent bo'ladi va bu ma'lumot yo'qotilishi bilan bogʻliq bir qancha muammolarga olib keladi.
Konkurrent operatsiyalarni xavfsiz boshqarish uchun Concurrency Control (Konkurrensiya Nazorati) mexanizmlari mavjud bo'lib, ularning asosiy vazifasi konkurrent operatsiyalar natijasida ma'lumot buzilishining oldini olish.
CC mexanizmlari konkurrensiyaga bo'lgan munosabatiga qarab 2 ta kategoriyaga bo'linadi: Optimistic CC va Pessimistic CC.
1) Optimistic CC. Bu yondoshuvga ko'ra konkurrensiya holatlari kamdan-kam sodir bo'ladi va doim alohida tayyorgarlik ko'rishga arzimaydi. Bu usul xuddi bahorda ko'chaga soyabonsiz chiqishga o'xshaydi. Yomg'ir yog'masligiga umid qilasiz, lekin yog'sa jiqqa ho'l bo'lasiz.
Kam resurs talab qiladi, lekin operatsiya muvaffaqiyatsiz tugashi mumkin.
Bu usulda ishlaydigan usullardan eng keng tarqalganlari Timestamp-Based Concurrency Control (TBCC) va Multi-Version Concurrency Control (MVCC) mexanizmlari.
TBCC har bir tranzaksiyaga unikal timestamp berish orqali tranzaksiyalarning qat'iy ketma-ketligini ishlab chiqadi va har bir obyektga uni oxirgi marta o'qigan/o'zgartirgan tranzaksiyaning timestampini yozib boradi.
Tranzaksiyadagi har bir operatsiyani bajarishdan oldin o'qilayotgan/o'zgartirilayotgan obyektda ko'rsatilgan timestampga qarab 3 ta variantdan birini tanlaydi: bajarish, kutish yoki bekor qilish. Agar birorta operatsiya muvaffaqiyatsizlikka uchrasa (bekor qilinsa) butun tranzaksiya bekor qilinadi (yomg'ir yog'ib ho'l qiladi).
Ma'lumotlarni yagona versiyada saqlaydigan tezkor, yengil lekin ishonchsiz CC mexanizmi.
MVCC ham xuddi TBCCga o'xshab har bir tranzaksiyaga unikal ID berish orqali ularning tartibini aniqlaydi. Lekin uning ustun jihati bir vaqtning o'zida aynan bitta ma'lumotning asosiy (ishonchli) versiyadan tashqari har bir tranzaksiya uchun alohida versiyalarini saqlay oladi. Natijada muvaffaqiyatsizlikka uchraydigan operatsiyalar nisbati va kutish vaqti kamayadi.
Har bir ma'lumot bir nechta versiyaga ega va uning biror versiyasi hammaga emas, faqat ma'lum tranzaksiyalargagina ko'rinadi. Buni aniqlash uchun tranzaksiya IDlari va izolyatsiya darajalaridan foydalangan holda bir qancha murakkab qoidalardan iborat visibility check (ko'rinish tekshiruvi) o'tkaziladi. Ma'lumot yozish esa TBCCdagiga o'xshashroq. Umuman olganda, MVCC TBCCning ancha murakkab ko'rinishi.
2) Pessimistic CC. Bu yondoshuvga ko'ra konkurrensiya tez-tez sodir bo'ladigan jarayon va har doim unga tayyor bo'lishi kerak. Ya'ni har ehtimolga qarshi har doim soyabon olib yurish kerak. Biroz og'irroq, lekin sodda va ishonchli usul.
Bu usulning eng keng tarqalgan ko'rinishi Two-Phase-Locking (2PL) bo'lib, ishlashi juda oddiy. Tranzaksiya biror ma'lumotni o'zgartirishidan oldin uni lock(qulf) qiladi va tranzaksiya oxirigacha saqlab turadi. Bu vaqt davomida o'sha ma'lumotdan foydalanmoqchi bo'lgan boshqa tranzaksiyalar lock ochilishini kutib turadi. Natijada bazada yagona versiyali, ishonchli ma'lumot saqlanadi.
Bu CCning turlari haqida qisqacha ma'lumot edi. Aslida bu usullarning har biri haqida diplom ishi yozish mumkin.
@boboshersnotes
2 573
Anaqqisa C#, Javachilarga challenge. Leetcodedagi bugungi daily problemga single line solution yozing.
2 573
Repost from Sardor og'a | AI bilan rivojlanamiz
Bugun Python meetupda qatnashdim. Juda yaxshi o'tdi.
Sun'iy intellekt va Data Science uchun o'rganish kerak.
Yana bir narsa, buyog'iga ikki xil dasturchilarga ko'proq talab oshadi deb o'ylayman:
1) Sun'iy intellekt bilan shug'ullanadigan dasturchilar
2) Sun'iy intellektdan, u yordamida ishlab chiqilgan texnologiyalardan foydalana oladigan dasturchilar
Lekin bir narsani tushuning, hammaga ham emas Sun'iy intellekt bilan shug'ullanish.
Qiyos qilib tushuntiraman: kimdir Kimyo fanidan yaxshi o'qigan, o'zi ham yaxshi ko'radi, yoki matematikani olaylik. Hammadan ham yaxshi Kimyogar yoki Matematik chiqavermaydi. Insonni qiziqishi salohiyati har xil. Shuning uchun o'zingizni hamma o'zini urayotgan tarafga urishdan oldin, mengami o'zi bu deb savol bering.
Bu yo'nalish oson yo'nalish emas web yo'nalishdaka.
Shuning uchun sun'iy intellektda o'zizni ko'rolmayotgan bo'lsangiz web yo'nalishda PHPni o'rganib qo'yavering, osoni shu 😊
PS: rasmdagi pitonchilar orasida o'tiribman qo'ziqoringa o'xshab
2 573
Roses are red, violets are blue... There's always an abstraction layer lower than you.
Credit: @programmer_humor
2 573
Repost from Azimjon's Fikrlog
Tanishing, bu qush - kanareyka.
Ko'p insonlar hayotini saqlab qolgan.
1800-yillarda, ko'mir konidagi hidsiz bo'lgan uglerod oksidi oqibatida ko'p insonlar vafot etishgan.
- Aaa, demak kanareyka sezarkanda deb o'ylayapsizmi?
Yo'q, kanareyka ham sezmaydi, darrov o'lib qolarkan - lekin insonlarga nisbatan tezroq. Bu esa odamlar kondan chiqib olishiga imkon beradi.
Rasmdagi qafas ustida kislorod balonini ko'rishingiz mumkin. Bu xushdan ketgan kanareykani hayotga qaytarish uchun ishlatilgan.
Asrlar o'tib, hozirgacha "kanareyka testi" g'oyasi saqlanib qolgan - ayniqsa dasturlashda.
Muhim servislar ishlab turganini, ya'ni "tirikligini" tekshirish uchun "canary test"lar yoziladi va har zamonda yuritib turiladi.
Nihoyatda go'zal.
2 573
1. The cake was baked by my sister for my birthday.
2. The book was written by a famous author.
3. The window was broken by a stray ball.
4. The news was announced by the president on national television.
5. The house was decorated with festive lights for the holidays.
6. The car was repaired by a skilled mechanic.
7. The package was delivered by the mailman this morning.
8. The flowers were planted by my grandmother in the garden.
9. The painting was created by a talented artist in the 19th century.
10. The food was cooked by a professional chef in the restaurant kitchen.
2 573
1. Tortni singlim pishirgan.
2. Xat tez orada men tomonidan yuboriladi.
3. Taomni oshpaz tayyorlagan.
4. Konsert chiptasini do'stim sotib olgan.
5. Kitob mashhur muallif tomonidan yozilgan.
6. Daraxtni bog‘bon ekgan.
7. Uyni xizmatchi tozalagan.
8. Mashinani mexanik ta'mirlagan.
9. Paket kurer tomonidan yetkazib berildi.
10. Film mukofotga sazovor bo'lgan rejissyor tomonidan suratga olingan.
2 573
Matritsa rangi
Lokal universitetlarda aniq fanlar yoki muhandislik yo'nalishida o'qiydigan tanishlarim bilan tez-tez fikr almashib turamiz. Shunday suhbatlarda men kamida 2 marta duch kelgan mavzu "Matematik matritsaning rangini hisoblash" bo'lgan. Ingliz tilida bu bo'yicha umuman ma'lumot topa olmaganimdan keyin nimaligiga ham, qanday hisoblanishiga ham e'tibor bermagandim.
Bugun 2021-yil TATU talabasi tomonidan openscience.uz'da chop qilish uchun kiritilgan "Methods for calculating the color of the matrix" nomli ilmiy maqolaga ko'zim tushib qoldi. Maqola o'zbek va ingliz tillarida yozilgan.
Maqolada matritsa rangini hisoblash formulasi deb determinantlar yordamida matritsa "rank"ini* hisoblash formulasi ko'rsatilgan ekan. Tushundim. "Rang" so'zi "rank"ning o'zbekcha talaffuzidan kelib qolgan ekan. Undan ham yomoni maqolaning inglizcha versiyasida bu so'z "color" deb tarjima qilingan.
Avval kuldim, keyin achindim. Boshqa tildagi adabiyotdan tarjima qilishdagi kichkina xatolik sabab o'zbek tilidagi matematik adabiyotlarga umuman noto'g'ri termin va tushuncha kirib qolgan. Va bu yagona holat emas.
Biologiyaga oid adabiyotlarda shunga o'xshash jiddiy xatoliklar borligi haqida eshitgandim. Lekin matematikada bu holatga birincha marta duch keldim.
Xulosa qilsak, fanga hissa qo'shishning mas'uliyati juda katta. Kichkinagina xato ham boshqalar uchun qimmatga tushishi mumkin.
*Matritsada rank, ya'ni daraja deb nomlangan xususiyati bo'lib, matritsa ustunlari yordamida yasalgan vector-space o'lchamini, boshqacha qilib aytganda matritsadagi mustaqil ustunlar sonini ifodalaydi.
P.S. Shuning uchun ham ingliz yo rus tilidagi manbaalardan foydalanishni tavsiya qilaman.
P.S.2 Muallifni hurmat qilgan holda maqolaga link bermayman.
2 573
Repost from Sardor og'a | AI bilan rivojlanamiz
Qarang…
1988-yilda matematika oʻqituvchilari va boshlang’ich sinf ustozlari kalkulyatorga qarshi norozilik bildirib namoyishga chiqqan ekan.
O’sha payt yoshlarning bilimini qay ahvolga kelishini sezgan boʻlishsa kerak…
Mana hozir biror joyda jamoviy ovqatlansa umumiy 160 000 so’m to’lov kelsa, 4 kishiga qanchadan tushishini bilishga darrov telefonidagi kalkulyatorga yopishadigan avlod paydo bo’ldi.
Yaponiya, Koreya va Xitoy kabi mamlakatlar hozir qadimda hisoblashda keng foydalanilgan abakusda hisoblashni ta’limga qaytarishga urinishmoqda.
2023-yilda o’qituvchilar endi ChatGpt’ga qarshi namoshish o’tkazsa kerak.
Bu sun’iy intellektga asoslangan texnologiya kalkulyatorlarga qaraganda ming karra xavfliroq.
Chunki ChatGPT insonlardan fikrlash va o’ylash kabi qobiliyatlarni tortib olmoqchi…
Abdulloh Karimov sahifasidan
