X topicdagi chatga Y topicdagi vakansiyani joylamoqchi bo'lgan HRlarni nima qilish kerak ?
Man oldin ham aytganman HR degan pozitsiyani chopish kerak. Maksimum hodimni documentlari vaxkazo qog'ozbozliklarni qilsa yetarli.
Man oldin ham aytganman HR degan pozitsiyani chopish kerak. Maksimum hodimni documentlari vaxkazo qog'ozbozliklarni qilsa yetarli.
😁9💯1
Juda qiziq narsa topib oldim.
https://openzfs.github.io/openzfs-docs/Basic%20Concepts/VDEVs.html
ZFSda virtual device degan narsa bor VDEV. Agar VDEVga yaxshilab qarasa bu Object storage bilan deyarli birxil narsa. Faqat local!
Bizda ZIO ham bor yani ZFS scheduler, bu narsa read/write operationsni sync qilish uchun ishlaydi. Undan ham qiziq tomoni ZIOda async write scheduling degan narsa bor.
S3 based on ZFS
Bu yerda asosiy yutuq ZFS backend tayyorligida bizga raw blocklar uchun backend kerak emas bu narsa uje zfsda mavjud.
Ho'sh zfsda nimalar bor ?
Compression - LZ4 or Zlip native.
Bucket isolation -
Caching - ARC aynan ram adapdive va undan tashqari L2ARC ham bor. Bu narsa aynan VDEV yordamida metadata va small object blocklar saqlashga juda zor.
Snapshots/backup - zfs snapshot va olg'a!
OPS - zpool iostat, zpool status etc
ZFS tayyor s3 yoki block storage engine bo'la oladi.
Endi scaling perespektivasida raftni moslab ko'rish kerak. Bu biroz nozikroq lekin o'ylab ko'rsa bo'ladi.
Undan tashqari yana bir prikol bor. Masalan object sotrageda
Shunchaki prototip uchun object CRUD va bucket operations qilib ko'rish kerak.
https://openzfs.github.io/openzfs-docs/Basic%20Concepts/VDEVs.html
ZFSda virtual device degan narsa bor VDEV. Agar VDEVga yaxshilab qarasa bu Object storage bilan deyarli birxil narsa. Faqat local!
Bizda ZIO ham bor yani ZFS scheduler, bu narsa read/write operationsni sync qilish uchun ishlaydi. Undan ham qiziq tomoni ZIOda async write scheduling degan narsa bor.
S3 based on ZFS
Bu yerda asosiy yutuq ZFS backend tayyorligida bizga raw blocklar uchun backend kerak emas bu narsa uje zfsda mavjud.
Ho'sh zfsda nimalar bor ?
Compression - LZ4 or Zlip native.
Bucket isolation -
zfs create objectstore/bucket/test1 Caching - ARC aynan ram adapdive va undan tashqari L2ARC ham bor. Bu narsa aynan VDEV yordamida metadata va small object blocklar saqlashga juda zor.
Snapshots/backup - zfs snapshot va olg'a!
OPS - zpool iostat, zpool status etc
ZFS tayyor s3 yoki block storage engine bo'la oladi.
Endi scaling perespektivasida raftni moslab ko'rish kerak. Bu biroz nozikroq lekin o'ylab ko'rsa bo'ladi.
Undan tashqari yana bir prikol bor. Masalan object sotrageda
/x/y/z.txt bu path flat bo'ladi yani shunchaki x/y/z.txt degan key bilan saqlangan object. Lekin filesystemda unday emas bu flat namespace vs directory tree problemga olib keladi. Albatta bu narsani boshqacharoq uslubda design qilsa bo'ladi maslan hashing.Shunchaki prototip uchun object CRUD va bucket operations qilib ko'rish kerak.
Programming ∀
Bizni relago journaldagi muammolarni aniqlaydi va report tayyorlaydi. Qiziq joyi shundaki u ham systemd service bo'lib ishlaydi va hamma servislar kabi unga ham stdout va stderr beriladi. Odatad bu streamlar journalga ulanadi va agar shunday qilinsa qiziq…
Mana endi bizga kelgan reportlarni analiz qila olamiz.
❤1🔥1
Programming ∀
Mana endi bizga kelgan reportlarni analiz qila olamiz.
Ideya o'zini to'liq oqladi, eng qizig'i biz Opensearchga tayyor templatelar qilib qo'ya olamiz va report kelsa birdan manashu templatelar bo'yicha datani filter qilib ko'rsatadi.
Opensearch juda powerful tool ijod qilsa ancha narsalarni avtomatlashtirvorsa bo'ladi.
Opensearch juda powerful tool ijod qilsa ancha narsalarni avtomatlashtirvorsa bo'ladi.
🔥6
Programming ∀
Juda qiziq maqola. O'qishni tavsiya etaman. https://blog.haskell.org/a-couple-million-lines-of-haskell/
Umuman olganda 2-3 soatda kerakli hamma narsani setup qilib appga tegishli ko'p narsalarni tog'irlab oldim.
Bazi narsalarni test qilishga birmuncha ko'p vaqt ketdi nu asosan skill issuelar sabab.
Haskellda network application, backend yozish mavzusiga kelsak ecosystem mazza. Ammo bazi sal ezmaroq joylar bor, monad transformerlarni ko'proq practice qilish kerak. Yoki biror effect systemdan foydalanish kerak.
Infraga kerakli bazi narsalar bo'lmasligi mumkin. Ammo Bu ham unchalik muammo emas chunki unaqa narsalarga contribution qilish ham qiyin emas.
Masalan gpg keylar generatsiyasi uchun kerakli lib FFI ekan. Gpgmeda 2.0.0 versiyadan uje bazi eski apilar chopilgan. Repodan remove qivorilgan shu sababli buni o'zim fix qildim.
Huddi shunday gpg keylarni export qilish uchun libraryda apilar yo'q ekan bularni ham o'zim yozdim.
changes:
https://github.com/rethab/bindings-dsl/compare/master...lambdajon:bindings-dsl:relago
https://github.com/rethab/h-gpgme/compare/master...lambdajon:h-gpgme:relago
Kecha va bugun esa manashu narsalar chiqdi: https://github.com/xinux-org/relago-support/pull/5
Prototip uchun request paytida hamma narsani qivoradigan qildim. Ammo ideya o'xshadi muammosiz ishlayabti hammasi. Endi bazi narsalarni backgrounda process qiladigan qilish kerak. Masalan shu opensearch indexlar saqlashni,
Hademay productionga ham tayyor bo'ladi hamma narsa. Millionlab qator production codega ham ozgina qoldi ))
Hali boshqa qiziq joylari oldinda xozir juda ko'p narsalar ancha minimal holatda qilinyabti sherigim ham tezroq yetishib olishi uchun. Jamoada uje 2ta haskellist bo'lsa uje boost time keladi bizga.
Bazi narsalarni test qilishga birmuncha ko'p vaqt ketdi nu asosan skill issuelar sabab.
Haskellda network application, backend yozish mavzusiga kelsak ecosystem mazza. Ammo bazi sal ezmaroq joylar bor, monad transformerlarni ko'proq practice qilish kerak. Yoki biror effect systemdan foydalanish kerak.
Infraga kerakli bazi narsalar bo'lmasligi mumkin. Ammo Bu ham unchalik muammo emas chunki unaqa narsalarga contribution qilish ham qiyin emas.
Masalan gpg keylar generatsiyasi uchun kerakli lib FFI ekan. Gpgmeda 2.0.0 versiyadan uje bazi eski apilar chopilgan. Repodan remove qivorilgan shu sababli buni o'zim fix qildim.
Huddi shunday gpg keylarni export qilish uchun libraryda apilar yo'q ekan bularni ham o'zim yozdim.
changes:
https://github.com/rethab/bindings-dsl/compare/master...lambdajon:bindings-dsl:relago
https://github.com/rethab/h-gpgme/compare/master...lambdajon:h-gpgme:relago
Kecha va bugun esa manashu narsalar chiqdi: https://github.com/xinux-org/relago-support/pull/5
Prototip uchun request paytida hamma narsani qivoradigan qildim. Ammo ideya o'xshadi muammosiz ishlayabti hammasi. Endi bazi narsalarni backgrounda process qiladigan qilish kerak. Masalan shu opensearch indexlar saqlashni,
Hademay productionga ham tayyor bo'ladi hamma narsa. Millionlab qator production codega ham ozgina qoldi ))
Hali boshqa qiziq joylari oldinda xozir juda ko'p narsalar ancha minimal holatda qilinyabti sherigim ham tezroq yetishib olishi uchun. Jamoada uje 2ta haskellist bo'lsa uje boost time keladi bizga.
🔥3
Framework devayslarini prezintatsiyasi bo'lyabti ekan.
Nixoyat macbooklarni musorga o'tishimizga oz qoldi.
https://www.youtube.com/watch?v=uqFDIR00Mwo
Nixoyat macbooklarni musorga o'tishimizga oz qoldi.
https://www.youtube.com/watch?v=uqFDIR00Mwo
Programming ∀
Framework devayslarini prezintatsiyasi bo'lyabti ekan. Nixoyat macbooklarni musorga o'tishimizga oz qoldi. https://www.youtube.com/watch?v=uqFDIR00Mwo
Video ochmagan bo'lsa manashunga kirilar.
https://www.youtube.com/watch?si=WEAa0a5nSeGRp4Kx&v=rgZlzCd0DUU&feature=youtu.be
https://www.youtube.com/watch?si=WEAa0a5nSeGRp4Kx&v=rgZlzCd0DUU&feature=youtu.be
YouTube
Framework [Next Gen] Event | 2026 Launch Event
We went live on April 21, 2026 at 10:30am PT to announce the next generation of Framework at our [Next Gen] Event.
Correction: at 14:33, Dan Rogers, VP & GM of Intel CCG Client Product Team was incorrectly named onscreen.
Correction: at 14:33, Dan Rogers, VP & GM of Intel CCG Client Product Team was incorrectly named onscreen.
Bunaqa prikol narsalar ham bor. Juda sodda cli qivolsa bo'ladi shell o'zida.
https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#index-case
https://www.gnu.org/software/bash/manual/html_node/Conditional-Constructs.html#index-case
www.gnu.org
Conditional Constructs (Bash Reference Manual)
Next: Grouping Commands, Previous: Looping Constructs, Up: Compound Commands [Contents][Index]
Shunaqa payitda hamma joy jim jid, qo'shnilar ham baqir chaqir qilmaydi.
Alam qiladi bla.
Boya xonamda uchib yurgan pashsha ham yo'q.
Alam qiladi bla.
Boya xonamda uchib yurgan pashsha ham yo'q.
😁4
Programming ∀
Alamimni kimdan olayin ?
Error handling qilishda ko'p narsalarni skip qilib tashlaganim uchun endi juda qiziq fuckuplar bo'lyabti.
Masalan choq nimadir neto ketadi shu bilan cooked. Bunga o'xshab aynan compile timeda check bo'lmaydigan joylardan chiqyabti muammo ham ))
Hullas bizga reportlar encrypted keladi uni decrypt qilish uchun alohida gpg keylar bor. Man key generate qilganimda manashu key passphrase parametrni qo'yishda space esdan chiqarganman va secret key empty bo'lib qolgan. Ha xozircha keyni check qiladigan narsalar qilmaganman.
Shu narsani odamga o'xshab tiplarga o'girib qo'yganimda xozir shu muammo bo'lmas edi yani params record qivosam. Yetmaganiga error handling ham qilmaganman deyarli. Eng qizig'i esa man ishlagan keylar bilan ishlaydigan paket gnu gpg dan kelgan errorlarni beradi. Hullas buni fix qilishga uyoqdagi constantlarni haskelldagi tiplarga ham og'irish kerak adashmasam.
Absolute cinema haqiqiy samuraycha qibtashlaganman hamma joyni keyingi hafta endi shularni otirib tog'irlab chiqish kerak. Programmerga ish topish shart emas o'ziga o'zi topadi ishni deymanku mana misol.
Masalan choq nimadir neto ketadi shu bilan cooked. Bunga o'xshab aynan compile timeda check bo'lmaydigan joylardan chiqyabti muammo ham ))
Hullas bizga reportlar encrypted keladi uni decrypt qilish uchun alohida gpg keylar bor. Man key generate qilganimda manashu key passphrase parametrni qo'yishda space esdan chiqarganman va secret key empty bo'lib qolgan. Ha xozircha keyni check qiladigan narsalar qilmaganman.
Shu narsani odamga o'xshab tiplarga o'girib qo'yganimda xozir shu muammo bo'lmas edi yani params record qivosam. Yetmaganiga error handling ham qilmaganman deyarli. Eng qizig'i esa man ishlagan keylar bilan ishlaydigan paket gnu gpg dan kelgan errorlarni beradi. Hullas buni fix qilishga uyoqdagi constantlarni haskelldagi tiplarga ham og'irish kerak adashmasam.
Absolute cinema haqiqiy samuraycha qibtashlaganman hamma joyni keyingi hafta endi shularni otirib tog'irlab chiqish kerak. Programmerga ish topish shart emas o'ziga o'zi topadi ishni deymanku mana misol.
🤣4😭1
Man uchun azob.
commit comment yozish
PR description yozish
Doc yozish
Lekin barbir yozishga majburman manashu narsa doyim kompramisga sabab bo'lgan.
Generatorlarga berish mavzusiga ham skeptikman ishqilib kasbimni yoqimsiz qismi deb qabul qilganman bu mavzularni.
commit comment yozish
PR description yozish
Doc yozish
Lekin barbir yozishga majburman manashu narsa doyim kompramisga sabab bo'lgan.
Generatorlarga berish mavzusiga ham skeptikman ishqilib kasbimni yoqimsiz qismi deb qabul qilganman bu mavzularni.
💯2
Benchmarklarga qarab 10x tezroq narsani ishlatasiz ammo biror action 1 daqiqa davom etadi.
Eng tez backend framework ishlatishga xarakat qilasiz ammo productionda shunchaki k8s yoki biror orkestrator bilan cluster qivorasiz.
Garbage collectionsiz til ishlatasiz ammo o'zingizni GCni yasab qo'yasiz.
System design o'rganasiz ammo oddiy control flowni ham zo'rga yozasiz.
Hullas sanasa manashunday contraversal narsalar ko'p. Shu sabab hammasi eng oddiysidan boshlanishi kerak.
Falon narsani hal etdik tamam.
Unda qanday rivojlanamiz ?
Buning javobi ham oddiy. Shunchaki muammoni o'rganish kerak eng birinchi. Masalan bizda qandaydir
Okay xozir hayolga kelgani
Nu vaqt o'tdi endi bizga 3-variant qo'shildi
Biz ishlatadigan tilda qanday fichalar bor aynan shunaqa variantlar bilan ishlashga ?
savol oddiy ammo javob uchun yan detailarga kirish kerak status misolida bizga 2ta narsa muhim. 1 variantlarni elon qilish va ularni handle qilish.
Elon qilishga qandaydir tiplar masalan shu enum A yoki B
Handle qilishga esa manashu status ni handle qiladigan yechimlar: switch, match, case, etc...
Endi boshqa holatga duch keldik. Bizda birqancha variantli record yoki structlar mavjud bo'lishi mumkin. Masalan
Ho'sh buni qanday qilamiz ? Ha biz ADT va control flow haqida ko'p gaplashganmiz. Hamma tillarda ham ADT va pattern matching mavjud emas lekin yuqoridagi holatlar har qanday tilda code yozayotganingizda paydo bo'lishi mumkin bu degani shu til imkoniyatidan kelib chiqib qandaydir yechim qilasiz. Agar variantlar juda ham ko'p bo'lsa yana bu caselarni handle qilishga boshqa yechimlar qidirib ko'rasiz.
Tushunganingizdek masala mindsetda. Siz dasturchi bo'lib 10 yil tajriba qilishingiz mumkin. Ammo 10 yildan buyon birxil code yozyotgan bo'lishingiz muhmkin bunday holatda ham muammo emas. Chunki muammoni hal etyabsiz, ha code chiroyli emasdir, qayerdadir panic bo'lib crash bo'lar.
Muhim qismi o'zingizni aldamaslik. Agar sizga nimadir yoqmasa unda yoqadigan holatga keltirishga xarakat qilish kerak buning uchun esa alternativ narsalarni discover qilaverish kerak. Agar tanqid bo'lsa doyim nisbiy bo'ladi masalan sizdagi 10 turdagi variantni handle qiladigan 10ta if o'rniga boshqa yechim qilish mumkin edi. Balki siz ishlatyotgan dasturlash tili o'rniga boshqa til ishlatish mumkin edi. Hullas asosiy masa extiyojda. Hohlamaysizmi ? Okay bu sizni tanlovingiz. Boshqa optionlarni ko'rishni istamaysizmi ? Bu ham sizni tanlov.
10 yildan buyon ishlab kelyotgan narsani birdan rewrite qilish. Yoki shunchaki bor narsani sal boshqacha qilib qayta yozish kabi narsalardan esa umuman mano yo'q. Industryda juda ko'p narsani ko'rsa rewrite bo'lib yotibti ayniqsa rewrite rust kabi fenomenlar yoki qanaqadir yangi http frameworklar. Bunaqa narsalarga vaqt sarflashdan oldin o'ylab ko'ring bu qanchalik arzirli ekanini.
Eng tez backend framework ishlatishga xarakat qilasiz ammo productionda shunchaki k8s yoki biror orkestrator bilan cluster qivorasiz.
Garbage collectionsiz til ishlatasiz ammo o'zingizni GCni yasab qo'yasiz.
System design o'rganasiz ammo oddiy control flowni ham zo'rga yozasiz.
Hullas sanasa manashunday contraversal narsalar ko'p. Shu sabab hammasi eng oddiysidan boshlanishi kerak.
Falon narsani hal etdik tamam.
Unda qanday rivojlanamiz ?
Buning javobi ham oddiy. Shunchaki muammoni o'rganish kerak eng birinchi. Masalan bizda qandaydir
status mavjud. Statusga birqancha variantlar bor Fail va DoneOkay xozir hayolga kelgani
if status == `Fail`
then act1
else act2
Nu vaqt o'tdi endi bizga 3-variant qo'shildi
InProgress ho'sh endichi ?Biz ishlatadigan tilda qanday fichalar bor aynan shunaqa variantlar bilan ishlashga ?
savol oddiy ammo javob uchun yan detailarga kirish kerak status misolida bizga 2ta narsa muhim. 1 variantlarni elon qilish va ularni handle qilish.
Elon qilishga qandaydir tiplar masalan shu enum A yoki B
Handle qilishga esa manashu status ni handle qiladigan yechimlar: switch, match, case, etc...
data Status = Done | InProgress | Fail
case status of
Done -> act1
InProgress -> act2
Fail -> act3
Endi boshqa holatga duch keldik. Bizda birqancha variantli record yoki structlar mavjud bo'lishi mumkin. Masalan
apiResult bizga 2 turdagi qiymat qaytaradi Success { data:: SomethingType va Fail { reason:: String, code:: IntHo'sh buni qanday qilamiz ? Ha biz ADT va control flow haqida ko'p gaplashganmiz. Hamma tillarda ham ADT va pattern matching mavjud emas lekin yuqoridagi holatlar har qanday tilda code yozayotganingizda paydo bo'lishi mumkin bu degani shu til imkoniyatidan kelib chiqib qandaydir yechim qilasiz. Agar variantlar juda ham ko'p bo'lsa yana bu caselarni handle qilishga boshqa yechimlar qidirib ko'rasiz.
Tushunganingizdek masala mindsetda. Siz dasturchi bo'lib 10 yil tajriba qilishingiz mumkin. Ammo 10 yildan buyon birxil code yozyotgan bo'lishingiz muhmkin bunday holatda ham muammo emas. Chunki muammoni hal etyabsiz, ha code chiroyli emasdir, qayerdadir panic bo'lib crash bo'lar.
Muhim qismi o'zingizni aldamaslik. Agar sizga nimadir yoqmasa unda yoqadigan holatga keltirishga xarakat qilish kerak buning uchun esa alternativ narsalarni discover qilaverish kerak. Agar tanqid bo'lsa doyim nisbiy bo'ladi masalan sizdagi 10 turdagi variantni handle qiladigan 10ta if o'rniga boshqa yechim qilish mumkin edi. Balki siz ishlatyotgan dasturlash tili o'rniga boshqa til ishlatish mumkin edi. Hullas asosiy masa extiyojda. Hohlamaysizmi ? Okay bu sizni tanlovingiz. Boshqa optionlarni ko'rishni istamaysizmi ? Bu ham sizni tanlov.
10 yildan buyon ishlab kelyotgan narsani birdan rewrite qilish. Yoki shunchaki bor narsani sal boshqacha qilib qayta yozish kabi narsalardan esa umuman mano yo'q. Industryda juda ko'p narsani ko'rsa rewrite bo'lib yotibti ayniqsa rewrite rust kabi fenomenlar yoki qanaqadir yangi http frameworklar. Bunaqa narsalarga vaqt sarflashdan oldin o'ylab ko'ring bu qanchalik arzirli ekanini.
❤5👏2
Named function parametrs.
Haskellda
Buni mazza tomoni funksiya parametrlari ko'paysa parametrlar uchun alohida record tip yozib o'tirish shart emas. Shunchaki named arguments.
DTOlarsiz hayot mazza ))
Haskellda
named degan lib bilan huddi pythondagi named arguments kabi ishlasa bo'ladi.Buni mazza tomoni funksiya parametrlari ko'paysa parametrlar uchun alohida record tip yozib o'tirish shart emas. Shunchaki named arguments.
DTOlarsiz hayot mazza ))