Programming ∀ – Telegram
Programming ∀
1.2K subscribers
41 photos
44 links
Ushbu kanalda dasturlashga aloqador turli expriementlarim, g'oyalarim, hulosalarimni ulashaman.
Download Telegram
Mandagi variantlar:

1. Haskell
2. Lean4
3. Antelang
4. Rust
5. Effekt
6. Ocaml
7. Idris2

Yana 5ta topsam bo'ldi.
🔥71
Reset password qilish uchun eng xafsiz uslubni aytaymi ?

Masalan tizim har N vaqtda passowrd yangilashga majburlaydi, hashlarni match qilgani uchun esa har safar birxil password qo'yib bo'lmaydigan qilish mumkin.

Ideya: Reset password uchun hech qanday email, sms, verification qilmaslik kerak. Balki eng zo'r uslub barcha passwordlar rotatsiyasini yozib chiqish.

Maslaan user biror tizimdan foydalanish jarayonida aytaylik todo appdan foydalanish jarayonida. Bunaqa passwordlar qilgan.

1. Password
2. PasswordV1
3 PasswordV2

Endi negadir password reset qilish kerak, demak user PasswordPasswordV1PasswordV2 yozishi kerak shundan kegin reset password qila oladi.

Mobodoga man faqat "xavfsiz reset password" dedim.
🤣10🤔5😁41🥱1
Bu anikdod edi.
😁8
Programming ∀
Reset password qilish uchun eng xafsiz uslubni aytaymi ? Masalan tizim har N vaqtda passowrd yangilashga majburlaydi, hashlarni match qilgani uchun esa har safar birxil password qo'yib bo'lmaydigan qilish mumkin. Ideya: Reset password uchun hech qanday email…
Hayronman odamlar passwordni eslab qololmaganlanlar qiynaladi deyishyabti.

Axir bunga ham yechim borku, har safar tizimga login qilsin shunda eslab qoladi.

Bonusga security credits !
😁911🥱1
Forwarded from Uzinfocom Open Source ()
Xinux 25.11 stabil versiyasi tayyor! 🎉

Xinux operatsion tizimi — kundalik hayotda kerak bo‘ladigan dasturlar bilan birga keladi. Ushbu versiyada quyidagi dasturlar va yangilanishlar mavjud:

1. LibreOffice — pullik Microsoft 365 dasturlariga bepul va ochiq kodli muqobil bo‘lib, hujjatlar bilan ishlash imkonini beradi.
2. Software Center — NixOS paketlarini qulay grafik interfeys orqali o‘rnatishga yordam beruvchi menejer.
3. GNOME 49 — ish stoli muhiti yangilandi va unga o‘zbek tili qo‘shildi.
4. O‘zbekcha klaviatura tartibi — ʻ (okina), ʼ (tutuq belgisi), qo‘shtirnoq, tire va boshqa kerakli belgilar tizim klaviaturasiga qo‘shildi.
5. E-IMZO Manager — E-IMZO raqamli imzo servisi uchun shaxsiy kalitlarni boshqarishga mo‘ljallangan qulay dastur.
6. Sayohat — Xinux bo‘ylab tur va kutib olish xizmatlari uchun mo‘ljallangan dastur.
7. @mountops kanali tomonidan taqdim etilgan yangi orqa fonlar qo‘shildi.

Rasmiy xinux.uz/download sahifasidan stabil yoki so‘nggi nostabil versiyani yuklab olishingiz mumkin.
USB fleshka orqali o‘rnatish uchun Rufus, balenaEtcher, virtual mashinaga o‘rnatish uchun esa GNOME Boxes (Linux) yoki VMware Player (Windows) dasturlaridan foydalanishingiz mumkin.

Minimal tizim talablari:
(64-bit) protsessor [x86_64]
Kamida 8 GB operativ xotira (16 GB yoki undan ko‘p tavsiya etiladi)
Diskda kamida 128 GB bo‘sh joy
O‘rnatish jarayoni uchun internetga ulanish talab etiladi.
👏52🎉2
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