Engineering Notes
2.46K subscribers
137 photos
5 files
208 links
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
Download Telegram
Forwarded from UzGeeks Community
Assalomu alaykum

27-avgust kuni bo’lib o’tgan, UzGeeks Meetupining DATABASEga bag’ishlangan sonida “Indekslash haqida gaplashamiz” mavzusida Bobosher Musurmonovning dokladi.

PS: Meetup juda ajoyib o'tdi, ko'p foydali ma'lumotlar berildi.

Videoga havola:

https://youtube.com/watch?v=w0NeUPZOjW8&feature=youtu.be
👍13
Uber Engineering blogida juda zo'r maqolalar chiqadi. Mana bu yerda Uber 2016-yil nega PostgreSQLdan MySQLga o'tishganini va bu jarayon qanday bo'lganini chiroyli qilib tushuntirilgan. Endi MySQLdan MyRocksga o'tishayapti ekan. Hali maqolani vaqt topib o'qimadim. Ungacha o'qib, fikrlaringizni commentda yozib turing:
https://www.uber.com/blog/mysql-to-myrocks-migration-in-uber-distributed-datastores/
👍15
"To change a lightbulb" challenge qilamizmi (bilmasangiz googledan izlab ko'ring)?
Faqat dasturlash sohasida.
Qiziq bo'lsa discussion guruhida yoki shaxsiy kanalingizda davom ettiring.
👍3
— How many programmers does it take to replace a lightbulb?
— None. They don't wanna change the lightbulb because light attracts bugs.
👍10😁5
— Lampochkani almashtirish uchun nechta dasturchi kerak?
— 3 ta. 1 tasi lampochkani almashtiradi, qolgan 2 tasi Python yoki PHP zo'rligi haqida janjallashib turadi.
😁24👍2
— Lampochkani almashtirish uchun nechta Apple user kerak?
— Kerak emas. Ular yaxshisi yangi uy sotib olaqolishadi.

© Redditdan
😁23👍5
— Lampochkani almashtirish uchun nechta dasturchi kerak?
— Kerak emas. OOP prinsiplariga ko'ra lampochka o'zini-o'zi boshqara olishi kerak.
👍18😁5👎3😢1
— Lampochkani almashtirish uchun nechta Uztelekom Operatori kerak?
— 1 ta. Sizning tartib raqamingiz to'qson sakkiz.

© Kommentdan
😁22👍2
— Lampochkani almashtirish uchun nechta C developer kerak?
— Esing joyidami, ular sham yoqishadi-ku
😁29👍1
— Lampochkani almashtirish uchun nechta outsourcedagi developer kerak?
— 2 ta developer olsangiz bo'lsa 1 yilda almashtirib bo'lishadi, 5 ta bo'lsa 4 oyda tugatishadi. Lekin baribir 1 haftadan keyin buziladi.
😁11👍1
Forwarded from Programming ∀
—Lampochkani yoqish uchun nima qilay ?
— Sizda lampocha yonmaydimi ? Unday bo'lsa bizning XYZLamp Education markazimizda o'qib. Lamp yoqish sirlarini o'rganing. Markazimizdagi tajribali Lamp mutaxasisslar sizga ushbu kasb sirlarini mukammal o'rgatishadi....
😁18👍1
— Lampochkani almashtirish uchun nechta JS developer kerak?
— 1 ta React developer, 1 ta NodeJS developer. Jami 11 ta.
😁34👍3👎1
— Lampochkani aylantirish uchun nechta dasturchi kerak?
— 2 ta. Bittasi lampochkani ushlab turadi, ikkinchisi dunyoni aylantiradi😎
👍7😁3
— Lampochkani almashtirish uchun nechta dasturchi kerak?
— Open-close prinsipiga ko'ra lampochkani almashtirish mumkin emas. Yaxshisi, yoniga yana bitta lampochka qo'sh.
😁5
😁19👍3
😁34😢7
Qaysi manbaalardan ma'lumot olishni, qanday qilib o'rganishni, qanday qilib "zo'r" dasturchi bo'lishni so'rab tez-tez yozib turishadi. Odatda, faqat resurs beraman. Qanday qilib o'rganish, qanday qilib dasturlashni "his qilish" haqida esa iloji boricha maslahatlar (tips) bermaslikka harakat qilaman. Nega?

Well, men sizga bera olishim mumkin bo'lgan maslahatlar albatta, o'z tajribamdan o'tgan va qaysidir darajada foyda (yoki zarar) bergan caselardan chiqarilgan xulosalar to'plami. Ularni shartli ravishda 2 ta turga bo'la olaman:
1. Hamma uchun ishlaydigan "universal" tavsiyalar.
2. Menga bog'liq faktorlari mavjud bo'lgan tavsiyalar.

Keling, bu ikkalasini biroz analiz qilib ko'ramiz.
1. Hamma uchun ishlaydigan tavsiyalar. Masalan, ko'proq kitob o'qing, dissipliniya bilan o'rganing, dunyoqarashingizni kengaytiring yoki shunga o'xshash. Gap shundaki, bu gaplarning deyarli barchasi hamma (shu jumladan siz ham) biladigan, lekin ko'pchilik amal qilmaydigan gaplar. Siz allaqachon biladigan, lekin amal qilmaydigan gaplarni yana bir marta aytishdan nima foyda? Shuning uchun bunday tavsiyalarni bermayman (agarda kitob o'qish foydali ekanini bilmaysiz deb o'ylamasam).

2. Mening vaziyatimga bog'liq bo'lgan tavsiyalar. Masalan, men bilan bo'lganidek self-study qiling, top-down approachda o'rganing yoki PHPni emas Pythonni tanlang degan gaplarni aytishim mumkin. Sababi, men aynan shunday qilayapman. Lekin gap shundaki, bu tavsiyalar menda "ishlashi"ga ta'sir qilgan intellektual, iqtisodiy, diniy va hatto geografik faktorlar ham bor. Menga foyda bergan usullar sizga foyda bermasligi yoki umuman teskari natija berishi ham mumkin. Shu sababdan ham muvaffaqiyatga erishishning yagona qoidalar to'plami yo'q (aks holda hamma muvaffaqiyatli bo'lgan bo'lardi). Bu degani, agar siz butun hayotingiz davomida xuddi Elon Musk, Einstein yoki Al Xorazmiyga o'xshab yashasangiz ham ular kabi muvaffaqiyatli bo'lmasligingiz mumkin.

Xo'sh, "sizga maslahat bera olmayman" deyish uchun shuncha gapni yozdimmi? Albatta yo'q. Balki boshqalar yurgan yo'lni roadmap qilib olgandan ko'ra ulardan va o'zingizning shu vaqtgacha yurgan yo'lingizdan xulosalar chiqarib, o'zingiz uchun roadmap tuzing. "Muvaffaqiyat siri"ni izlagandan ko'ra bu yo'ldagi muammolaringizni analiz qilib, yechim toping. Masalan, ko'pchilik 10 minutdan ko'proq kitob yoki article o'qiy olmasligini aytib shikoyat qiladi. Lekin bu muammoning sababi boshqa muammo(lar). Masalan, attention span kamligi bo'lishi mumkin. Lekin nimani boshqa narsalarga chalg'imasdan 2-3 soat qila olasiz? Social media? Tabriklayman, siz ko'pchilik (men ham) chalingan, allaqachon bir nechta yechimlar topilgan, lekin juda kamchilik qutula oladigan "kasallik"ka chalinibsiz. Masalan, social media addictionga qarshi dopamine detox qilishingiz mumkin. Dopamine detox esa discipline talab qiladi. Sizda discipline yo'q bo'lsa avval bu muammoni hal qilishingiz kerak bo'ladi. Xullas, muammo/sabablardan iborat bu linked list hali ancha cho'zilishi mumkin. Muammolarni hal qilishni qancha chuqurroqdan boshlasangiz shuncha "solid" yechim qilgan bo'lasiz, faqat asosiy maqsaddan chalg'ib qolmang.

Xullas, "muvaffaqiyat formulasi"ni boshqalardan qidirmang. Izlaning, xato qiling, analiz qiling va davom eting. Bollar, biz yutamiz.
👍40
Bugun Pythonda bir narsani test qilayotganda qiziq holatga duch keldim.
Men bilishimcha Python thread bu OS thread ustiga qurilgan instance va bitta CPU coreda ishlaydi.
Lekin AYNAN bitta coreda turib, faqat shu coreda ishlaydimi yoki bir vaqtda QAYSIDIR bir coreda ishlab, birozdan keyin boshqa coreda ishlashi mumkinmi shuni topa olmadim.

Buni tekshirish uchun sistemadagi loadni minimallashtirib, CPU-intensive threadlar va processlarni bir nechta kombinatsiyada run qilgan holda CPU loadni kuzatdim. Natijalar meni hayron qoldirdi:

a) Single thread, single process. Bir vaqtda 1 ta CPU corega load tushdi, lekin o’sha load tushgan core almashib turdi. Masalan, hozir 1-coreda load bo’lsa birozdan keyin 2-corega load tushdi. Demak, OS thread ishlash davomida u ishlayotgan CPU coreni almashtirdi deb xulosa qilish mumkin.

b) Multiple thread, single process. (2, 3 va 4 ta threadda sinab ko’rdim). Bir vaqtda 1 ta corega load tushdi, lekin qizig’i load tushgan core o’zgarmadi. Ya’ni process boshidan oxirigacha aynan bitta coreda ishladi.

c) Multiple thread, multiple process (har birida 1 tadan thread bo’lgan 2-4 ta processda sinadim). Bir vaqtda bir nechta corega load tushdi va active corelar o’zgarib turdi. Masalan, hozir 1, 2, 3 corelar ishlayotgan bo’lsa, birozdan keyin 2, 4, 5 corelar ishlayapti.

Bu tajribadan keyin menda 3 ta savol tug’ildi:
1. Process ishlash davomida 1 ta coredan boshqasiga o’tadimi va agar shunday bo’lsa nega? Agar shunday bo’lsa, bu kim tomonidan bajariladi? Application, OS yoki undan ham pastroqdami?
2. Agar process ishlayotgan core OS tomonidan almashtirib turilsa unda resourcelar (RAM va balki CPU cache ham) qanday qilib share qilinadi?
3. Agar shunday bo’lsa nega multi thread, single process holatda (b) core o’zgarmadi?

Agar shu narsalar haqida ko’proq ma’lumot yoki resurs bilsangiz, kommentlarda qoldirsangiz xursand bo’lardim.
👍27
Bugun volatile memory haqida juda qiziq ta'rif o'qib qoldim:

No money – no honey,
No power – no memory.


© Manbaa
😁25👎3