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
Menda Leetcode VPNsiz ishlamayapti. Ishqilib, bu faqat mendami?
Engineering Notes
Menda Leetcode VPNsiz ishlamayapti. Ishqilib, bu faqat mendami?
Boya StackOverflow ham ishlamayotgan edi, hozir ikkalasi ham ishlayapti. CloudFlareda network bo'yicha muammo bo'layapti ekan, shunga deb umid qilaman.
👍8
UNIX nega bunday atalishiga hech qiziqib ko'rganmisiz?

1964-yilda MIT, Bell Labs va General Electric birgalashib MULTICS (Multiplexed Information and Computing Service) tizimini ishlab chiqishadi. MULTICS hozirgi operatsion tizimlarning eng katta bobolaridan.

1969-yili Bell Labs loyihadan chiqib ketishi natijadasida Bell Labs mutaxassislaridan biri Ken Thompsonning MULTICSga bog'liq ilmiy izlanishlari to'xtab qoladi. Shunda Ken o'zi uchun MULTICSning kichkinagina versiyasini yozib chiqishga qaror qiladi. Bir kuni Kenning bir hamkasbi hazillashib "Bu dasturing xuddi MULTICSga o'xshar ekan, faqat bir vaqtda ko'p ishni (MULTiplexed) emas, bitta ishni (UNiplexed) qila oladi. Bundan chiqdi dasturingning nomi UNICS ekan" deydi.

Shu-shu tizim nomi UNICS bo'lib qoladi. Talaffuzi sabab keyinchalik "CS" "X" ga o'zgarib UNIX bo'ladi.
👍23👎1
👎12👍3😁2
Engineering Notes
UNIX nega bunday atalishiga hech qiziqib ko'rganmisiz? 1964-yilda MIT, Bell Labs va General Electric birgalashib MULTICS (Multiplexed Information and Computing Service) tizimini ishlab chiqishadi. MULTICS hozirgi operatsion tizimlarning eng katta bobolaridan.…
Nom berish bo'yicha dasturchilarga keladigani bo'lmasa kerak:

Har xil paradigmlarni support qiladigan dasturlash tili yaratdik, nima deb nom qo'yamiz?
— CPL, Combined Programming Language (aralash dasturlash tili) deb nom qo'yamiz.

— CPLning oddiyroq variantini ishlab chiqdik, nima deb nom beramiz?
— BCPL, Basic (oddiy) CPL deb ataymiz.

— Bu til BCPLning juda cheklangan ko'rinishi, nima deb nomlaymiz?
— Cheklangan BCPL? Unda qisqa qilib B deb ataymiz.

— B tilining davomchisini ishlab chiqdik, qanday nomlaymiz?
— B ning davomi? C bo'laqolsin. (Alphabetda B dan keyin C keladi)

— C tiliga yangi xususiyatlar qo'shdik, bunisini nima deb ataymiz?
— C ning ustiga qo'shilgan? Unda C++ deb ataymiz.


P.S. Bugun men uchun asosan tarix darsi bo'ldi.
👍31😁16🤯1
Atrofingizga qarang, qanday ahvoldamiz. Bizni ilmsizlik shu holga olib keldi va faqatgina ilm qutqaradi. Bizni umrini kasbiga bag'ishlagan o'qituvchilargina qutqara oladi.

Bugun o'qituvchilar bayrami. Imkoningiz bo'lsa, o'qituvchilaringizni ko'rgani boring, bo'lmasa telefon qilib tabriklang. Muvaffaqiyatlaringizni ayting. O'qituvchingizning mehnati bekor ketmayotganini ko'rsating. Ularni xursand qiling. Zero, ular taslim bo'lsa xalqni hech kim ilmsizlikdan qutqara olmaydi.
👍73
OS development bo'yicha tajribam yo'q, lekin bir savol o'ylantirayapti. Nega Linuxda to'g'ridan-to'g'ri boshqa core image bilan process create qilishning iloji yo'q? Nega avval fork orqali parent processni duplicate qilib, keyin exec orqali imageni almashtirish kerak? Men ko'rgan caselarda har doim process fork qilinganidan keyin child process core image baribir o'zgartirilgan.

Javobingizni commentda qoldirsangiz xursand bo'lardim.
👍8
#quiz

What is the result of running the code above?
Comment your answer and explain, if possible.
👎17👍6
👎7👍2
What is the result of the code above?
Anonymous Quiz
22%
0 1
7%
1 2
26%
1 3
12%
0 1 2
33%
0 1 3
👍7👎6
Bugun ICPC komandamiz bilan praktika qilayotgandik, bir masalani qancha optimal yechishga harakat qilsak ham time limit olaverdik. Juda hayron bo'ldik, sababi algoritm O(n) vaqtda ishlashi kerak edi va hamma testcaselarga n < 10 ^ 5 limit qo'yilgan. Keyin bilsak, muammo kodda emas, tilda ekan. Python standard inputda 1 ta linedan 10 ^ 5 ta character o'qiyman deb tiqilib qolgan ekan. Xuddi shu yechim C++ da hamma testlardan o'tdi.

P.S. CPda ham Python ishlatasilarmi deydiganlar uchun: Bu shunchaki practice bo'lgani uchun sherigim qiziqib Pythonda yozib ko'rgandi. Contestda doim C++ ishlatamiz.
👍22😁4👎1
😁38😢2
"Foydasiz" data structure haqida eshitganmisiz? Ya'ni struktura saqlanadi, lekin hech qanday foydali ma'lumot saqlanmaydi. Masalan, klassik singly linked list nodeda value va keyingi nodega pointer saqlanadi. Endi tasavvur qiling, shu yerdan valueni olib tashlab, faqat next pointerni qoldirsak nima bo'ladi? Haliyam linked list, lekin foydali biror narsaga ishlatish qiyin, sababi unda ma'lumot saqlashning iloji yo'q.

Aniqrog'i, shunday deb o'ylardim. Bugun qiziq bir narsa ko'rib qoldim. Ko'pchilik zamonaviy OSlarda free memory linked list va/yoki bitmap sifatida saqlanadi. Linked list sifatida saqlanganda har bir free blockning boshida node joylashib, block haqida metadata (masalan, block uzunligi) va keyingi free block'ka pointer saqlaydi. Lekin metadata saqlashga hojat bo'lmasachi? Masalan, virtual memoryda free pagelarning uzunligini metadata sifatida saqlash shart emas, sababi bu hamma uchun bir xil va o'zgarmaydi. Shunda hech qanday ortiqcha metadatasiz shunchaki page boshlanish joyining addressini bilish yetarli bo'ladi. Shunday holatlarda tepada aytilgandek "foydasiz" strukturalarning ham foydasi tegib qolar ekan.
👍17
Ertaga ICPCda qatnashayotganlar bormi?
👍6😁4