Otabek’s I/O
1.25K subscribers
50 photos
3 videos
63 links
Staff Software Engineer @Dropbox | Mentor @qirikki

I write about Backend, Infrastructure, Math, ML/AI, and Computer Science.
Download Telegram
Oltinga teng loyihalar

Ilm olishni hamma eplaydi. Ammo olingan ilm orqali muammolar yechishni hamma ham eplay olmaydi.

Loyiha qilish menga kompaniya bera olmaydigan tajribalarni bergan. Ayniqsa yangi til va texnologiyani tez o'rganib ketishimga sababchi bo'lgan.

Misol uchun:

gylo - Ushbu loyiha menga Cloudflare bilan interviewni olib bergan loyiha xisoblanadi

Menda bunday qiziq loyihalar ko'p afsuski ular private, rasmiyatchilikda aylanay 😉

Tez orada ba'zilarini public qilish niyatidaman. Ammo hozircha dsalgo.uz ustida ishlayabman )

@otabekswe
Please open Telegram to view this post
VIEW IN TELEGRAM
Kamchilik nimada?

Bir tanishim bilan project qilish bo'yicha suxbat qilib ba'zi fikrlarni muhokama qildik. Hozir ishga topshiruvchilarni fail bo'lishini asosiy sababi ular qilayotgan yoki qilishni istagan projectlarda ekan.

Kimni qarasa E-Commerce, VideoStream ishlarni qilishadi. Vaxolangki bunda projectlarga misollar internetda qalashib yotibdi va eng qiziq tomoni shundaki soxani chala o'rganib olib, kodlarni ko'chirib, tutorialga ergashib qilgan ishini githubga "kerilib" yuklab qo'yishadida "mana shunday ishlar qilganman" deyishadi.

Kompaniyalarda ko'p shunday projectlar qilinishi to'g'ri ammo bu degani siz ham shunday ish qilishiz kerak degani emas. Loyihalar qachon ko'zga tashlanadi qachonki biror ishni nargisidan (loyihadan) yaxshiroq qila olsa. Yoki ko'pchilik qilmaydigan ishlarni qilishda misol uchun DB yaratib ko'rish, tool yaratish generic ishlatish uchun.

Loyiha yasang, faqat o'zingiz uchun emas barcha uchun xizmat qiluvchi loyiha yasang. Bor loyihani qayta yasang, ammo sizniki qaysidir jihatlama yaxshiroq bo'lsin narigisidan.

@otabekswe
Forwarded from Otabek Nurmuhammad
Davis Steve: Falcon 1 raketasi uchun aktuator kerak!
Elon Musk: Necha pul ekan bozorda?
Davis Steve: 120 000$
Elon Musk: Garajning qulfi kabi sodda matox bu, bor o'zing yasa. Tannarxi 5 000$ dan oshmasin!

9 oydan so'ng:
Davis Steve: Aktuator yasadim va narxi 3 900$ ga tushdi
.
.
2004 - yil Ilon Mask va SpaceX injeneri Stiv Davis o'rtasidagi suxbat ekan.
Ilon Mask boshqalar oddiy qabul qilib ketgan narsalarni ham so'roqga tutib ko'p texnologiyalarni 0 dan yaratishga sababchi bo'lgan ekan.

@otabeknurmatov_1
#TechTalks 2-soni efirda!

Applied Labs kompaniyasida Software Engineer bo'lib ishlagan, Backend va Data Engineering sohasiga aloqador ko'plab foydali postlar yozgan mexmon - Bobosher Musurmonov bilan o'zgacha suxbat.

Ushbu suhbat ochiq, samimiy va boshqalaridan qiziq bo'ladi, ishonavering. Sizga qiziq bo'lgan savollarni esa izohlarda qoldiring.

Vaqt: 21:00 (Toshkent vaqti bilan)
Sana: 26-Noyabr
Mavzu: Trip to Database internals

@otabekswe
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Data Representation Formats

Ma'lumotlar network orqali bir joydan ikkinchisiga ko'chib o'taveradi. Ammo ularni qandaydir formatda clientga ko'rsatish kerak bo'ladi. Bir paytlar bitlarni encode qilib represent qilish muammo edi hozir esa XML va JSON kabi formatlar mavjud. Hop bu postda aynan shu ikki type haqida gaplashamiz.


XML
Agarda GraphQL orqali biror backend dastur, HTML orqali biror vector rasm qilib ko'rgan bo'lsangiz bu formatni juda yaxshi bilasiz. Siz bilgan SOAP (servicelar o'rtasida aloqa almashish protokoli), RSS, HTML5, SVG va boshqalar technologylarnini misol qilishimiz mumkin. Ularning barchasi XML formatidan foydalanadi. Balkim bilarsiz balkim yo'q docx degan bu microsoft documentation (word) ham xattoki document in xml format degan ma'noda docx ishlatadi. Ya'ni ma'lumotlarni webda ham xatoliklarsiz ishlashini ta'minlash uchun.


JSON
REST desa hayolingizga birinchi bo'lib json datalarni almashishi kelishi tabiiy. AJAX xisobiga mashxurlikga erishgan, hamda hozirda deyarli barcha loyihalarda aynan ishlatilishini sababi ham shu deb tahmin qilaman.


JSON zo'r XML yomon emas ular nimaligi haqida tushunishingiz kerak. XML juda kuchli va ba'zan JSONdan ham yaxshi ko'rsatkichlar ko'rsata oladi ayniqsa validationlar bilan. JSONda esa bunday featurelar mavjud emas. Ammo JSON readable va more flexible bo'lgan bir paytda XML complex va less flexible xisoblanadi. Ya'ni ikkisida ham pros-conslar mavjud.

Bizda boshqa formatlar ham bor misol uchun YAML (Yet another markup language), TOML va h.k.z. Agar bu postdan ma'no topa olmasangiz o'zim aytib o'taman, bu sizga kelasi postlar nima haqidaligi haqida xabar bermoqda.

Kelasi postlar nima haqidaligini topdingizmi?

@otabekswe
Functional Programming

Sodda va oddiy tilda ajoyib blog post yozdim. Bu sizga aniq nimadir o'rgata olishiga ishonaman.

Ushbu postda siz:
- Lambda Calculus bilan tanishasiz
- Ajoyib bir misolga yechim topasiz
- Bilimlaringizni amaliyotda sinay oladigan bo'lasiz.

Postni o'qish

@otabekswe
Yaxshi bilish muhim

O'zingiz ishlatadigan "tool"larni yaxshi bilish juda ko'plab foyda olib keladi. Ko'plab loyihalar yaratishimda yoki muammolar yechishimda bu bilimlarim juda azq otgan. Masalan gylo.io (tez-kunda) ni yaratishda SSHdan boshlaganman. Birinchi ta'surot "WOW, I built it!" deganim esimda. Hozir Goda yozayabman.

Doim OSni yaxshi tushunishga harakat qiling resurslarni qadrlay boshlaysiz. O’rganayotgan dasturlash tilingizni yaxshi o’rganing, so’zdagi yoki go’yadagi loyihalarni bemalol qura olasiz va frameworklarda qiynalmaysiz. Networking o’rganing ko’plab muammolar ba’zan backend yoki frontendda emas balkim networkda ham yuz berishi mumkin. Database yaxshi o’rganing, ma’lumotlarni samarali va kamchiqim saqlashga harakat qilasiz.

O’rganishni o’rganing, shunda yutasiz!

LinkedIndagi so’ngi postimni o’qing tunneling qilishni o’rganasiz 😎

@otabekswe
SystemD yoxud System Daemon

Dasturlashga endi kirib, birinchi loyihamni ahost.uz ga joylaganimni eslayman. O'sha payt python dasturlarimni qanday internetda 24/7 ishlab turishini ta'minlash haqida o'ylardim. Terminalga kirib python falonchi.py deyishim bilan dastur ishlar ammo terminalni yopishim yoki browserdan chiqishim bilan dastur o'chib qolardi. Birdan nohup buyrug'iga ko'zim tushdi va u haqida o'rganishni boshladim.

nohup linux operatsion tizimidagi buyruq bo'lib shell yoki terminaldan chiqib ketgan taqdiringizgda ham process ishlab turishini ta'minlaydi (har bir dastur bitta processda run bo'ladi va uni ko'rish uchun htop, top yoki ps aux buyruqlarini terminalga yozish kifoya qiladi). nohup odatda SIGHUP (signal Hang UP) signalini qabul qilishdan qochishga yordam beradi. Ammo bu juda yomon yechim edi. Chunki har safar dastur o'chib qolsa yoki tizim reboot (qayta yonsa) bo'lsa uni qo'lda yana ishga tushirishni talab qilardi.

Keyinchalik Linux o'rganayotib systemd tushunchasiga ko'zim tushdi. systemd bu tizim sozlamalari va servicelarni ishga tushuruvchi tizim ekan. U har bir topshiriqlarni unitlarga bo'lib chiqar ekan. Va eng asosiysi virtual mashina boot (yonish) ketma-ketligida systemd har bir unit (service fayl)larni uyg'otib chiqar ekan. Bu ham mayli o'chib qolsa restart qilishni ham buyrusa bo'lar ekan. Menga juda yoqdi va bu haqida o'rganishni boshladim va muammoga yechim topdim.

Agar dasturlaringizni serverga deploy qilishda muammolaringiz bo'lsa yoki bilmayotgan bo'lsangiz mana bilib oldingiz )

@otabekswe
Please open Telegram to view this post
VIEW IN TELEGRAM
TCP Handshake yoxud qo'l tashlang BRAT 2-qism

Ushbu qismda siz,
- Paketlar almashinuvini kuzatish
- Server va Client o'rtasidagi suxbat
- Paketlar xajmi
- Nima uchun connection ochish qimmatligi

va menga kofe olib berishingiz mumkinligini o'rganasiz.

Postni o'qish

@otabekswe
Keyingi qadam nima?

So'ngi 2-yil ichida eng ko'p beriladigan savolga o'z fikrimni yozdim.

Bu hammasi emas,
- qanday loyihalar yaratish kerakligini,
- 42.uz serverini yoqib yuborganimni,
- loyiha yaratishni qayerdan va nimadan boshlashni,
- networking qilish foydalarini o'rganasiz.

Postni o'qish

@otabekswe
SQL Execution order

Postni yaxshilab qaytadan yozib chiqdim.

Esingizdan chiqgan bo'lsa takrorlab oling...

Postni o'qish

@otabekswe
Tez kunda...

@otabekswe
How authentication works

Internet asosan HTTP(S) protokolida muloqot qiladi. Ammo bu protokol stateless (ya'ni state - xolatlarni saqlab bormaydi degani). Endi tasavvur qiling, agar internet stateless bo'lsa unda u bizni authentication qilgan xolatdamizmi yo'qmi qanday biladi?

Tizimlar foydalanuvchilarni ikki xil ko'radi, authenticated user va unauthenticated user. Authenticated userlar tizimga login/sing in qilib kirgani uchun va tizimda bu foydalanuvchi haqida ba'zi ma'lumotlar borligi uchun uni taniydi.

Unauthenticated userlar esa tizimga login/sign in qilmasdan kirgan foydalanuvchilar bo'lib tizimda bu foydalanuvchi haqida hech qanday ma'lumot yo'q va unga ba'zi ishlarni qilishni cheklashi ham mumkin (chunki u be-ga-na, ha beganada hay).

Postni o'qish

@otabekswe
Ha azizlar...

Kofe kelmay qo’ydi🥲

@otabekswe
Please open Telegram to view this post
VIEW IN TELEGRAM