Programming ∀
1.34K subscribers
196 photos
4 videos
1 file
121 links
Ushbu kanalda dasturlashga aloqador turli expriementlarim, g'oyalarim, hulosalarimni ulashaman.
Download Telegram
Programming ∀
Photo
Oylik traffic 1 Petabyte bo’lishi yaxshigina natija.

Bu degani kuniga taxminan 33 TB va ~3Gbps

Etiborli tomoni esa cachix bu nix cache hosting. U yerda nix keshlar saqlanadi. Ammo bu yerda etiborimizni qaratadigan narsalar sal boshqa.

1. Cachix serveri open source. Dastur ochiq kodli va shunga qaramasdan biznes ham qilyabti.

2. Nix ekotizimi yetarlicha kattalashib boryabti, cachix, determinate systems va yana ko'plab kompaniyalar nix atrofida enterprays yechimlarni taqdim qilishyabti.

3. Nix infratuzulma yechimlari keng rivojlanmoqda texnalogiya va biznes tomondan ham. Masalan nix as build system kabi ideyalar.

4. Cachix juda kichik jamoa va kamchilik odamlardan tashkil topgan. Ammo shunga qaramay manashunday masshtabda ishlayabti.

5. Special: Cachix serveri Haskellda yozilgan 😎

Bu ma'lumotlardan ko'p hulosalar qilsak bo'ladi. Masalan Cachix ochiq kodli dasturlar qilib ham biznes qilyabti engineering team ham juda kichik va tech stack ham unchalik mashxur emas.
🤝1
Memory 100mb dan oshishi uchun apnsda 200+ concurrent request per second.

FCM esa taxminan 100 rps.

Nu juda ideal muhitda juda juda taxminimga ko'ra 50-100 rps bo'ladi.

Lekin rate limitlar, turli overheadlarni hisobga olsak bunaqa ko'rsatkichga chiqish qiyinroq. Shunda ham agar soniyasiga 50ta process qila olsa 1 soatda 150k request process qila olar ekan 100mb memory bilan.

Lekin bu raqamlar juda juda taxminiy. Metrikalarni setup qilib bir sanash kerak ekan :)

Nu xozir bazi joylarni yanada optimize qilib latency oshirsa bo'ladi, evaziga ko'proq memory beramiz. Lekin fikrimcha kerak emas :) Bizda xozir soniyasiga 100ta notificaiton ham bo'lmasa kerak.

Ammo qiziq, ancha bekorchiroq bo'lganimda apn, fcm servislarni prod bilan 1:1 simulate qilib teskhirib ko'raman latencyni.
👏2
O'ylab qarasam shuni o'zi yetar ekan qolgani bekor vaqtni sarflash. Oldin servisimiz manashu holda qanaqadir tupiklargacha borvosin. Da 700MB memory usage ko'p edi bazi runtime flaglar va kichik accumlationlarni yoqotib ko'rdim shular yetarli.

Servis o'zi shunchai notitifaction getway holos uyoqda asosiy narsa IO latency boshqa hechvaqo emas. Yani yog'liq narsani o'zi yo'q edi.

Bahonada kecha haskellda optimization haqida sal tayinli research qildim. Haskell runtime va GC haqida o'qidim, o'zi bu mavzular juda katta sekin sekin manashunaqa expirementlar doirasida ancha narsa o'rganib qo'ysa bo'ladi. Optimizatsiyalarga juda mukkasidan ketmaganman ammo o'ziga yarasha qiziq chunki Garbage collectorli til uchun bunaqa natijalar juda yoqimli. Haskellda corectess va perfomance juda balanced.

Endi keyingi qadamlar asosan biror narsalarni tezroq yakunlashga qaratilgan bo'lsa zo'r.

Yaqinda bir do'stim prikol qilgandi.

Tassavur qiling buyoqda kimdir ficha qanaqa bo'lishi kerakligini aytib turibti, siz esa eshitib yozyabsiz.

... manashunaqa narsalar bo'lishi kerak, qachon tayyor bo'ladi ?

— Aytilgan gaplarni tiplarga o'girib, servantda apilarni shaqillatib tashlaysiz va... Uje tayyor bo'ldi.

Ko'pchilik aytishi mumkin eyay bilan uje shunaqa holatdamiz deb. Ammo bizda no AI/LLM policy. Shu sabab development timeni ham raqobatdosh qilishimiz kerak. Bular juda juda context dependent mavzualr ammo o'zimga ham qiziq anchalik development timeni improve qila olamiz va buning uchun skilldan tashqari yana nimalar kerak. Masalan ekotizim qanday bo'lishi kerak etc...
Dasturchilarni aynitgan platformalar.

1. Linkedin.
2. Leetcode.
3. Aws/gcp/azue etc clouds.

Endi degradatsiyaga olib kelyotganlari esa.

Birbalo AI, LLM servislar vaxakazo. Ro'yxat uzun ekan.
💯14🤔1
Programming ∀
Xinux jamoasiga qo'shilgani roadmap.
Bizda rustdan tashqari haskell uchun ham 1ta vakansiya potensiali bor.

Qisqa aytganda manga yana bir sherik kerak. Xozir haskellistlar 2ta jamoada, 3ta qilish niyatimiz bor.

Xinux jamoasida Haskell asosan server va infratuzulmaga aloqador dasturlar ishlab chiqishda ishlatilinadi. Bazida boshqa jamolarga ham nimadirlar qilib berishimiz mumkin masalan xozir man qilyotgan notification getway kabi.

Hiring masalasida esa quyidagicha uslub.

Xozirda talant poolni kattalashtiryabmiz, hohlovchilar bilan oldin biroz kelishib ishlab ko'rishimiz kerak. Chunki bizning hiring uslub shunday, hechqanaqa interview vaxakazolar yo'q. O'rganishiga yordamlashamiz, qandaydir loyihalarda birga ishlab ko'ramiz va bizga kerakli sifatlarni tekshiramiz shunga qarab kegin ishga taklif berishimiz mumkin.

Kandidatlarga kelsak background uncha muhim emas. Eng muhim narsalar.

1. Openminded va tanqidiy firklash yaxshi bo'lishi.
2. O'rganish va izlanishga tayyor bo'lishingiz kerak. Qo'rqmasdan masuliyat olib expirementlar qila olishingiz juda muhim.

Kandidat haskellni bilishi shart emas, biz o'rganishi uchun vaqt va resurs beramiz. Ammo devayslar berolmasligimiz mumkin. Lekin savollariga javob, "roadmap" masalalarida yordam beramiz. Shunga yarasha yaxshi distiplina va impactni talab qilamiz.

Backgroundga kelsak, agar siz boshqa tillarda ozgina bo'lsa ham tajribaga ega bo'lsangiz yetarli daje real projectlar qimagan bo'lsangiz ham sinab ko'rishingiz mumkin o'zingizni. Biz haskell hamjamiyatida allaqachon roadmapni ham tayyorlab qo'yganmiz buyoqda ko'rishingiz mumkin: https://github.com/haskelluz/resources

Lekin tajribamiz doirasida ko'rdiki o'rganish uchun eng yaxshi resurslardan biri bu Haskell MOOC ekan: https://haskell.mooc.fi/

Xinux jamoasi haqida.

Jamoamiz hali yosh, ammo o'rganish va izlanishga doyim ochiq. Biz NixOs ustiga qurilgan distrubutiv ustida ishlaymiz va ushbu operatsion tizim nomi Xinux, jamoamiz Xinux atrofiga ekotizim qurish bilan ham shug'ullanadi. OS ekotizimini oddiy foydalanuvchilar uchun ham mos keladigan darajaga olib kelishga xarakat qilyabmiz, qilyotgan ishlarimizni hammasi ochiq: https://git.oss.uzinfocom.uz/xinux/

ESLATMA:

Bilaman O'zbekistonda bunday vakansiya deyarli yo'q, technical stack ham shunday yani rust, haskell, nix stackda ish topish qiyin va mutaxasisslar ham shunga yarasha mavjud emas yani tajribalilari. Jamoamiz bilan manashu riskni tushungan holatda o'zimiz talant pool qilishga, o'zimiz study program qilishga tayyormiz evaziga bizga kerakli hodimlarni ajratib olishimiz mumkin.

Shaxsiy fikrim:
Istesno doyim bo'lgan va bo'ladi. Bazi narsalarda shunchaki gamble qilish kerak degan fikrdaman. O'zingizga past baho bermang imkon bormi sinash kerak. Raqobatdan qo'rqmang qaytangi manashu eng qiziq jarayon.

Ushbu post xozircha spoiler ko'rinishda yozildi agar kim yangi stackga o'tishni istasa yoki umuman koryerasini yorqin boshlamoqchi bo'lsa oldindan tayyorlanishga bir imkon.

Muhokama uchun commentlarni ochib qo'ydim agar savollar bo'lsa bemalol yozishingiz mumkin.
🔥8❤1
Bolajonlar bu hali to'liq vakansiya emas. Xozir spoiler qilib qo'yabmanki agar kimdadir qiziqish oshsa deb.

Learning path borasida ham birinchi navbatda manashu resurslar default. Siz bularni o'rganib oldindan tayyorlanib tursangiz bo'ladi.

Rust uchun rust book: https://doc.rust-lang.org/stable/book/

Haskell uchun: https://haskell.mooc.fi/
🔥4
Programming ∀ pinned «Bizda rustdan tashqari haskell uchun ham 1ta vakansiya potensiali bor. Qisqa aytganda manga yana bir sherik kerak. Xozir haskellistlar 2ta jamoada, 3ta qilish niyatimiz bor. Xinux jamoasida Haskell asosan server va infratuzulmaga aloqador dasturlar ishlab…»
Programming ∀
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…
Yaqinda xinuxda biror report keladigan bo'lsa bizda manashunday ko'rinishda issue paydo bo'ladi.

2-rasmda esa userdan kelgan barcha report loglarni ko'rish mumkin.

Eng qiziq qismi esa errorlarni detect qilish mexanizmlari avtomatlashtirildi.

Buning uchun esa ECS dan foydalandim. Blya qachondir devopslik qilganimdan vanihoyat hursand bo'ldim 😁
😁2🔥1
Manashunday ko'rinishda schemalar yasab ularni classify qilib chiqaman.

Kegin yozilgan indexlardan manashu patternlar match qilinadi. Yani har bir rule alohida match qilinadi, qancha ko'p rule bo'lsa shuncha ko'p edge case bo'ladi demak, shuncha ko'p muammoni detect qilsa bo'ladi avtomatik.

Ammo bundan ham yaxshiroq ideya bor. Classify qilishni o'zini haskellda yozib ko'raman. Bu yerda asosan regex match qiladi hamma narsani. Lekin bu ortiqcha ish yani ad-hoc narsalar ko'payadi barbir.

Shu sababli data classification o'zini haskellda eplab oladigan bo'lsam, kegin sekin datasetga o'girsa bo'ladi va qarabsizki kamina machine learning engineer bo'lib turibti 😎

O'ylashimcha bu qandaydir kichik research project sifatida juda juda zo'r bo'ladi sababi LLM vaxakazlarsiz aynan loglardan o'zim model train qilib aynan Xinux va NixOs distrubutivlariga moslashgan problem detection qilish vapshe zo'r tema.
😁9💯3
UOSS jamoasiga qo'shilganimga 1 yil bo'libti 😎
🔥15🎉2
gap yo'q.
🤣18
Programming ∀
Dasturchilarni aynitgan platformalar. 1. Linkedin. 2. Leetcode. 3. Aws/gcp/azue etc clouds. Endi degradatsiyaga olib kelyotganlari esa. Birbalo AI, LLM servislar vaxakazo. Ro'yxat uzun ekan.
Leetcode - leetcode competitive programming platform emas. Masalan codeforces, atcoder kabi platformalar va uyoqdagi savollar ozgina farqli distiplinada. Yani olimpiyada uchun informatika olimpiyadalaridagi distiplinani mashq qilsa bo'ladi. Leetcode unday emas, uyoqda "top" companylarga interviewdan o'tish uchun tayyorlaniladi. Aslida g'oya ajoyib, malum kompitensiyani yeg'ish kerak va buning uchun tayyor platforma bor u yerda mashq qilasiz va maqsadga erishish osonlashadi

Muammo shundaki, bu narsa steriotip darjasiga chiqib qolgan. Masalan luboy random kompaniyada coding interview shu "top" companylardan chopilib tadbiq qiliishi mumkin. Ammo bunaqa odam sizga kerakmi, sizdagi ishni qila oladigan sifatlari bormi buni aniqlash doyim muammoligicha qolaveradi. Huddi shunday siz leetcodega tayyorlanasiz rossa, ammo real ishda asosan rutine narsalar qilasiz. Ammo leetcode dasturchilar orasida fenomenga ham aylannib qolgan, doxrena masala ishlasa demak cool programmer.

2. Cloud providerlar - Ko'rinishidan rivojlanishning yana bir natijasi. Tayyor servislar, Pass, Sass yana birbalo ass. Qog'ozda juda zo'r siz falon muammoni hal etgani shunchaki X servisdan foydalanasiz va tamam. Sizga kerak emas serverlarni setup qilish, uyoqda yana butun infratuzululmani sozlash kabi ortiqcha bosh og'riqlar cloud bilan hal etasiz.

Amalda unday emas, cloud servislarni yaxshi bilmasangiz qaytangi biror kichik muammo ham gemaroyga aylanishi mumkin. Yani siz huddi oddiy serverlar bilan ishlashni o'rgangandek, cloudni ham o'rganasiz yani learning curve temasi. Tog'ri o'rganishga resurs ko'p, offical darslar, certificationlar bor. Ammo prikol ham shunda, masalan aws certification olishingiz uchun amazonga pul to'laysiz :) tog'ri bu jarayonlar must have talab emas. Ammo bu perespektivadan qarasak amazon/google/microsoft daje learning curveni ham pullik qilgan.

Cloudlarda ishlar ekansiz endi sizga ko'proq political, economic skillar ham kerak bo'ladi. Masalan qanaqadir discoundlar olish, cost optimization temalari. Bu ishlarni ham shu daturchilarni o'zlari qiladilar. Maslan cloud providerlar startuplarga credit ajratadi ulardan foydalansangiz oradan vaqt o'tib sizni infratuzulma anashu cloud platformga to'liq qaram bo'lib qolishi mumkin.

Hulosa: Ko'pchilik ishlashni istagan corplar suniy ravishta trendni qilishadi. Masalan falon corp bunaqa qilibti deb ko'pchilik ularga follow qiladi. Uyoqlarda juda top engineerlar ishlaydi deb o'ylashadi. Ammo ular o'zlari belgilagan qiyinchiliklarni, shunchaki ularda resurs ko'p bo'lgani uchun ideal qanday bo'lishini belgilab berishadi va shu asosida o'z bizneslarini qilishadi. Masalan cloudlar uyoqda rossa ko'p aynan soqqa qilishga qaratilgan mavzular, politics bor. Certificatinolar temasi ham bir absdurd narsa chunki bundan ham soqqa qiladi o'sha corplar. Nega dasturchilarni aynitgan degan masalaga qaytsak. Manashunday spekulatsiya va propagandalar. Dasturchilarni ko'proq vaqtini technical narsadan ko'ra ko'proq boshqa narsalarga sarflashiga sabab bo'lyabti. Masalan bitta dolban managerga uning dolban ekanini aytolmaysiz sababi bu reputatsiyangizni "soft skiill"lar degan bo'limga katta minus qiladi. Huddi shunday soxta avtoritariya bo'ladi, masalan falonchi man "FAANG"da N yil ishlaganman va falon darajaga chiqganman deb maqtanadi. Ammo shuncha ishlagan bo'lsa ham haligacha govnokod yozgan bo'ladi, yoki bo'lmasa githubi o'lik bo'lishi mumkin. Yani u faqat commerce code yozgan odam.
🔥7❤1
Yaqinda bo’lgan safarda tog’rda balandlikdan sakrab sirg'anib kettim. Hech qanday jiddiy jarohat olmadim, lekin qiziq holat bo'ldi.

Gid shunchaki qaradi va indamadi. Chetroq o'tib yaralarimni tozalab kegin yo'lni davom etdim. Yani bularni o'zim tajribamdan kelib chiqib qildim. Lekin tushunishimcha gidlar dastur boshlig'i o'laroq birinchi tibbiy yordam amaliyotini bajarishi kerak.

Bu narsaga juda ko'p guvoh bo'lganman masalan bazi odamlar lanshaftda qanday xarakat qilishni ham bilishmaydi. Yoki qo'rquv, risk bilan ishlashni bilishmaydi. Masalan boshida manam balandlikdan biroz qo'rqar edim ammo bu katta muammo bo'lmagan sababi bundan oldin ham qo'rquv bilan juda ko'p ishlagan edim. Ammo hammada ham unaqa emas bazilar hayotida jaroxat olmasdan katta bo'lgan bo'lishi ham mumkin ular notanish muhitda tabiyki qo'rqadilar va o'zlarini nazorat qilolmaydilar. Bazi gidlar esa bunday narsani nazorat qilishni doyim ham eplolmaydilar yoki bo'lmasam o'ylab ham ko'rishmagan.

Yana bir qiziq narsa tabiat qo'yniga ko'pchilik rasmga tushgani ham tushadi. Ammo kengroq qarasangiz u yerdagi flora/faunaga guvoh bo'lasiz. Masalan turli o'simliklar ularning hususiyatlari haqida ko'pchilik o'ylab ham ko'rmagan.

Aslida sayohatga chiqar ekansiz juda ko'p tajriba, bilim olish imkoni mavjud. Bu narsalar sizga kundalik kerak bo'lmasligi mumkin lekin rivojlanishga katta yordam beradi deb o'ylayman. Turizm yengil narsa bo'lib ko'rinadi lekin boshqa tomonidan qarasak turizm bizda yashashga kurashni oshiruvchi yaxshi instrument hisoblanadi. Ammo ko'p turistlar manashu qismigacha yetib borishmaydi yani bunday instrumentdan foydalana olishmaydi.

Huddi shunday turizm sotsalizatsiya muammosini hal etadi. Masalan man tog'larga chiqib bazi sotsial muammolarimni hal etganman. Tog'ga chiqish esa sizga vaziyatni baholashni yaxshi o'rgatishi mumkin faqat alpinizm emas oddiy treklar ham. Masalan bor energiyani ishlatib tepaga chiqasiz-u ammo tusha olmaysiz. Hamma cho'qqini zabt etishni istaydi ammo kamchilik orqaga omon qaytish haqida o'ylab ko'rgan.

Sport yoki boshqa insturmentlar kabi turizm ham rivojlanishning bir vektori. Ammo bundan foydalanish haqida ko'pchilik o'ylamagan. Madaniy masalalar esa umuman boshqa mavzu. Kamchiliklarni eng boshi individual holatad.
🔥5
balanced