Programming ∀ – Telegram
Programming ∀
1.2K subscribers
42 photos
1 file
44 links
Ushbu kanalda dasturlashga aloqador turli expriementlarim, g'oyalarim, hulosalarimni ulashaman.
Download Telegram
Linuxda process crash bo'lsa core dump ushbu process memorydan snapshot oladi.

Ushbu signallarni handle qilib biz crashlar sababini aniqlashimiz mumkin.

/proc/sys/kernel/core_pattern yerda esa coredump structureasini ko'rishimiz mumkin, ikkinchi rasmda ko'rsatilgan.

Ushbu crashlar journalga ham manashu struktura bilan tushadi. Afsuski cordumpctl ni command qilib ishlatilgan versiyasini topdim xozircha, balki lib ham bordir.

Xinux uchun automatic bug reporter ustidagi researchlardan kegin. Xozircha eng sodda signal crashlarni qayerdan topishni yaxshigina o'rganib oldim.

Ammo hali crashlar turlari ko'p, masalan Out of Memory bo'lganida aniqlash, jvm exeptions etc..

Undan tashqari muhim muammolardan biri bu xorg, Systemd service failures.

Core dump bilan bu yerda tanishsangiz bo'ladi: https://github.com/systemd/systemd/tree/main/src/coredump

PS: Hammasi qiziq ketyabti, oldin sodda monitoring agent qilib ko'rgan edim ammo unda parsing yoqmagan edi. Lekin o'zingiz bilgan tilda agentni yozish osonroq edi, xozirda unday emas ha hamma narsani o'zingiz bilgan tilda qilsangiz bo'ladi ammo examplelar ko'pi C da vaxakazo. C codeni ko'raverib ko'zlarim achishib ketyabti.
Study va reality vapshem boshqa boshqa. Tanenbaun o'qiyotganda ko'p mavzularni bemalol tushungan, qiynalmasdan expirementlar qilgan edim. Ammo real projectda kernel interactionlar ham, liblar bilan ishlash ham haqiqiy gemaroy. O'shanda kam code yozgananim ancha sezildi, kitobni o'qigan edim ammo practice qilmaganman ancha narsa esdan chiqibti ham. Man endi distrubutiv developmentda qatnashyabman ammo ehhe ancha narsalar discover qilyabman.
3
Kompyuter reklamasi 1980-yil.

10mb xotira. Xozir sizbyozgan ‘hello world’ dasturi to’ldirishi mumkin bu kompyuter xotirasini.
😁15🔥2😐1
Ancha azob uqubatlardan so'ng errorlarni trace qilish g'oyasi ishladi.

Afsus, xozircha rustda journalni watch qilishga effectiveroq yechim topolmadim va tinmay journalctl qilib o'tiribti.

Endi ertadan journalga ulanamiz va uni parse qilib OSda sodir bo'lgan crashlarni, signallarni detect qilishni boshlaymiz.
🔥8
Masalan linuxda OOM sodir bo'lsa qanaqa diagnostics qilish bo'yicha buyoqdan qarasangiz bo'ladi.

https://linuxblog.io/how-to-diagnose-oom-errors-on-linux-systems/

Jarayon yomon ketmayabti: "fuck my life as linux app developer" started successfully.

Linuxni o'zini kaypi bor, masalan eng qiyin debugger bu kernelni debuggeri. Kernel o'zi esa eng insoniyat ishlab chiqgan murakkab dasturlardan.
👏1
C da yozilgan repolarga qo'ziqorin yeb qarasangiz ham yemasdan qarasangiz ham birxil ko'rinadi.
😁11
OOM killer aslida samuray agar dastur o’zi OOM bo’lsa harakiri qiladi.
😁4
31
Manashu matax 6 oy oldin ham 50$ atrofida edi adashmasam.
Hmm, 5 kun dam ekan nimadir cook qilish kerak.
7🥱1
Professionalism shunday narsaki unga amal qilinsa har qanday odam bilan birga ishlash mumkin.

Masalan man ishlagan kompaniyalarda turli millat, din vakilari bo'lgan. Lekin hamma birgalikda nimadirlar qilar edi. Bir narsani g'oyadan boshlab foydalanuvchigacha borguncha bo'lgan jarayonda ko'plab roldagi odamlar mehnat qilgan yoki qilmagan ).

End userga borguncha bo'lgan jarayonda turli muammolar bo'ladi va muammolar turli kategoriyaga bo'linadi.

Shularning shu muammolarning bir kategoriyasi sotsial masala. Bilamizki sotsial so'zi ishtroki bilan siyosat boshlanadi. Qarashlar qaramaqarshiligi, maqsadlar kesishmasligi kabi masalalar ko'payadi. Bir loyihani ishlab chiqish jarayonida insonlar birlashmasa ish bitmaydi va hammaning natijasi turlicha bo'lgani sababli qarashlar qaramaqarshiligi yuzaga keladi. Kimdir A muhim desa boshqasi B muhim deydi. Qisqa aytganda odamlar birlashib nimadir qilishida doyim conflict of interest boshlanadi va siyosat qilish kerak bo'ladi.

Jamiyat esa boshqa kichik jamiyatlardan va shaxsiyatlardan tashkil topadi. Va shu jamiyatlar nimadir maqsadlar asosida birlashadilar, ishda bu narsa biror ishni bitirish bo'ladi, ishni bitirishdan maqsad esa natijani olish afsuski natija turlicha bo'lishi mumkin.

Kimdirlar ish bitrishdan natija deb tajribani oladi. Kimdirlar maoshni ustun ko'radi. Hullas manaviy va moliyaviy maqsadlar va bu narsalar turli insonlarda turlicha prioritetga ega.

Ho'sh, professionalism manashu masalalarda focus qilish uchun framework. Shu orqali siz natijaga bo'lgan resurslar sarfini kamaytirasiz va kamroq resurs sarflab kattaroq natija olasiz.

Oddiy misol, ishni reja qilish. Agar ishni reja qilishni bilmasangiz, demak bazi ishlarni qanday boshlashni ham bilmaysiz va ko'p vaqt yoqotasiz. Ishni reja qilish uchun esa albatta kanban board qivolib jiraga task yozishingiz shart emas.

Roldan kelib chiqib impact berish. Masalan siz professional dasturchisiz, jamoangiz yangi funksional reja qilyabti ammo ularni rejasidagi ishlar natijasi security muammosiga olib kelishini bilasiz, demak buni report qilish kerak. Bu bilan birgalikda siz dasturchi perespektivasidan ushbu funksional rejasiga o'z fikrlarizni ham aytishiz kerak. Demak o'sha domaindagi termni dasturlashdagi termga o'girish kerak va bu yerda sizda ham masuliyat bor. Sizdagi profesionalism kelayotgan ma'lumotlarga qarab feedback berishi kerak. Bazida negative bazida positive. Ushbu qarorlarga esa yana boshqa narsalar aralasha boshlaydi, masalan natija uchun resurslar sarfi, demak siz iqsodiyotni ham biroz tushunishingiz kerak, aytaylik X muammoni hal etish uchun Y servis ishlatish kerak ammo uni ishlatatishga N budjed bormi ? Siz siyosatni ham tushunishingiz kerak, X funksionalni Y uslubda qilidingiz ammo boshqa hamkasblar Z uslubni tavsiya qilyabti, demak ular bilan kelishish kerak.

Yuqorida aytganimdek biror domaindagi termni boshqa domainga o'girish doyim ham ishlamaydi. Real misol qilib insonlar gaplashadigan tillarni olsak, bilamizki hamma tillarda bazi so'zlar bor va ularni boshqa tilga umuman o'girib bo'lmaydi. Bazida manosi yaqinroq so'zlar yoki o'sha manoga olib boradigan gaplar ishlatilinadi. Professionalism esa manashunday mappinglar qilishga ham yordam beradi.
👌1
Huddi soft va hard skillar mavzusiga o'xshab qoldi-a ? O'zi maqsad ham manashu edi, sizga hechkim aniq kerakli bo'lgan yoki o'ta muhim skillar ro'yxatini yoki retsepni berolmaydi. Hamma taxminan aytadi yoki umumiylashtiradi. Shu bilan birga hamma muhimlik darajasini turlicha belgilaydi. Ammo muhim narsa bu bog'liqliklar, sizga kerakli skillar siz sizning muhitga bog'liq, qayerdadir juda ham gapga usta bo'lish kerak qayerdadir linuxni juda zo'r bilish kerak. Va yana muhim narsa shundaki sizga kerakli "fundamental" bilimlar ham unchalik umumiy emas bu ham nima qilishingizga bog'liq. Ha ko'pchilik dasturlash foundation deb imperativ tillardagi asosiy narsalarni o'rganadi bu yomon emas ammo tillar foundationi ham til o'ziga bog'liq ochig'ini aytsam. Bir til boshqa tilga to'laqonli asos bo'lishi qiyin yoki tillardagi bazi narsalarni boshqa tillarda kuzatmaysiz yoki boshqacha ishlaydi.

Profesionalismga erishish uchun esa kerakli skillarni ham doyim ham bilib bo'lmaydi bu narsa ham turli narsalarga bog'liq. Yuqorida aytganimdek jamiyatlar shaxsiyatlardan tashkil topadi. Shaxsiy rivojlanish ham shaxsiy qarashlar va qiziqishlarga bog'liq. Buni ham umumiylashtirib bo'lmaydi, hammaning qarashi farqli bo'lishi mumkin. Demak bu yerda bizga yordam beradigan narsalardan biri shunchaki openminded bo'lish, tanqidiy fikrlash, learning curve kabi narsalar bo'lib qolyabti. Biz boshqalardan maslaxatlar olamiz, hulosalarni muhokama qilamiz ammo boshqalar yo'li bizga ishlamasligi mumkin. Demak tajriba qilishdan ham qo'rqmasligimiz kerak. Ko'p narsalarni tajriba qilyabmiz ammo haligacha ish topolmayabmiz, buyoqda iqsodiyotni ko'tarish kerak "soqqa kerak Abdullajon" demak focusni toraytirish kerak, spitsalist bo'lish kerak. Bu role yoqmayabti hadeb birxil turdagi narsalar qilishdan charchadim, demak yangi rolega o'tish kerak. Bu OS yoqmayabti, demak yangi OSga o'tish kerak. Ho'sh bu qanchalik muhim ?
Falon tilni o'rganib ko'rsamchi ? Ho'sh bu til man ishlatadigan tildan qanchalik farqli ? Unchalik farqi yo'q ekan undan ko'ra X til o'rganish qiziqroq uyoqda umuman boshqa conceptlar va mening dunyo qarashimga katta foyda beradi. X tilning communitysi bo'lmas ekan o'rganmayman.
Shunaqa fikrlar kelaveradi, muhimi o'zingizga holis bo'ling. Odam o'ziga o'zi k*tlik qimasa hammasi yaxshi bo'ladi.
4👏1😁1🤔1🕊1
When terms roasted you.
😁2🔥1🥱1
Lol hattoki phpda async/await reja qilinyabti ekan.

https://wiki.php.net/rfc/true_async

Imperativ tillarni bir biridan deyarli farqi qolmayabtiku. Lekin phpchilar kallasi ishlabti async/await oddiy funksiya sifatida qilinyabti.

Bundan oldin phpda |> pipe operatorni ko’rgan edim. Ha pipe bilan kod yozish biroz elegantroq, lekin barbir php syntax man uchun horrible.

Phpchilar bo’lsa maslaxatim shu syntaxga async await qo’shishga maksimal qarshi chiqaverilar agar biror surwaylar qilishsa. Bo’lmasa kegin siqilib o’tirasilar colouring bilan.
😁111🥱1
Ishqilib 18 yoshlik Teamlead CEO/CTO Co Founder investor super mega startupper emasmisiz demak hali shans bor.

TustMeBro ODaM Bo'LAsIz!

MAN JiDDiY AyTdIM YoZUV SiGNaturidan Ma'NO QIDirMANg
🤣236😁5🔥1🫡1
Deep research.

Izlanishdan maqsad ma'lumotga egalik, ma'lumotga egalikning maqsadi bo'lsa undan foydalanish.

Ha, hammasi qiziqishdan boshlanadi, siz nimagadir qiziqib qolasiz, izlanish qilasiz.

Ammo sizga kelgan hamma ma'lumotlardan ham foydalana olmasligingiz yoki notog'ri foydalanishingiz mumkin. Shu sababli siz bergan ma'lumotlarga feedback doyim kerak bo'ladi.

Eng muhim narsa manashu huddiki siz nimadir o'rganganib uni qanaqadir outputga aylantirganingizda chiroyli bir qilich shakilga keladi, ammo qilchingiz hali o'tmas sizga kelgan feedbacklar manashuni charxlaydi. O'tkir qilichi bor samuray bo'lishni istasangiz demak feedbacklardan hulosa qilishni o'rganishingiz kerak.

Sizga feedackni esa o'zingiz qidirib topishingiz kerak va aynan qaysibiri sizni qilichni charxlashini bilmasligingiz mumkin, shu sababli ham bir talaba ortida ko'plab uztoz bo'ladi va shu sababli insonlar baxlashadilar yoki tanqid qiladilar.
🔥91
Shu feedback olishni esa huddi compilerlarga o'xshataman. Kimdirni compileri yani feedback beradiganlari juda ham week, yani yozilgan kodda ko'p muammo chiqishi mumkin.

Kimdirni compileri esa juda aqilli. Juda zo'r feedbacklar keladi, ha biroz "achitadi" lekin yaxshi feedback keladi. Xatolarni kamaytiradi.

Bo'ldi falsafa darsi tugadi endi. Foydaliroq narsalarni qililar, Σboy bo'lish manga emas ekan.
6😁2
You absolute right...

© AI assisants
🤣182😁1