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
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
Double Booking Problem
Booking.com, Airbnb, Calendly va 42Mentors bularni barchasi bir toifadagi ishni bajaradi ya'ni siz uchun
• Uchrashuvlarni
• Ovqat, turar joy va boshqa turdagi narsalarni
band qila oladi. Ularda eng kam va shu o'rinda uchrashi mumkin bo'lgan eng yomon muammo bu double booking problem xisoblanadi.
Tasavvur qiling siz yaratgan tizimga ikki inson bir vaqtda kirishdi. Ikkisiga ham aynan 18-Aprel 20:00 vaqti yoqdi va buyurtma qilish tugmachasiga bosdi. Agar siz bunga qarshi chora ko'rmagan bo'lsangiz tizim ikkisiga ham muvaffaqiyatli buyurtma qildingiz deya javob qaytaradi. Ammo bu juda yomon 😢
Barcha misollar JS va PostgreSQL bilan keltirilgan!
Postni o'qish
@otabekswe
Booking.com, Airbnb, Calendly va 42Mentors bularni barchasi bir toifadagi ishni bajaradi ya'ni siz uchun
• Uchrashuvlarni
• Ovqat, turar joy va boshqa turdagi narsalarni
band qila oladi. Ularda eng kam va shu o'rinda uchrashi mumkin bo'lgan eng yomon muammo bu double booking problem xisoblanadi.
Tasavvur qiling siz yaratgan tizimga ikki inson bir vaqtda kirishdi. Ikkisiga ham aynan 18-Aprel 20:00 vaqti yoqdi va buyurtma qilish tugmachasiga bosdi. Agar siz bunga qarshi chora ko'rmagan bo'lsangiz tizim ikkisiga ham muvaffaqiyatli buyurtma qildingiz deya javob qaytaradi. Ammo bu juda yomon 😢
Postni o'qish
@otabekswe
#Experience
Sizga bir sir ochaman. Yaxshi va yomon dasturchi o'rtasidagi farq quyidagicha deb bilaman:
Yomon dasturchi:
1. Kod yozadi
2. Bug fix qiladi
3. Va yaxshilashni o'ylab ko'radi
Yaxshi dasturchi:
1. Loyihani dizaynini tuzadi va boshqalar bilan discuss qiladi
2. Kod yozib ishga tushiradi
3. Muhtojlik sezilganda yaxshilaydi
Kod yozish hech qachon 1-qadam bo'la olmaydi. Bo'ldimi, demak dastur emas muammo yaratibsiz degani!
@otabekswe
Sizga bir sir ochaman. Yaxshi va yomon dasturchi o'rtasidagi farq quyidagicha deb bilaman:
Yomon dasturchi:
1. Kod yozadi
2. Bug fix qiladi
3. Va yaxshilashni o'ylab ko'radi
Yaxshi dasturchi:
1. Loyihani dizaynini tuzadi va boshqalar bilan discuss qiladi
2. Kod yozib ishga tushiradi
3. Muhtojlik sezilganda yaxshilaydi
Kod yozish hech qachon 1-qadam bo'la olmaydi. Bo'ldimi, demak dastur emas muammo yaratibsiz degani!
@otabekswe
Signals
Linux operatsion tizimida signallar bor. Ba'zan ularni bilib, ba'zan bilmay ishlatasiz.
UNIX-like tizim ishlatsangiz terminalingizni oching va
PID, TTY, TIME, CMD kabi columnlar beradi. CMD - dastur, PID esa process ID degani. Istalgan PID raqamni tanlang. Endi esa uni to'xtatishni istasangiz,
Signal qismiga uni nima qilishni kiritasiz, misol uchun to'xtat demoqchi bo'lsangiz -3, yoki -9.
Har bir signalni o'z ma'nosi bor. Ba'zan dasturni to'xtatib qo'yishingiz ham mumkin. Va keyinroq kelgan joyidan davom ettirishni aytishingiz ham mumkin. Endi dasturlardan chiqish uchun X buttonni emas balkim terminal orqali
Bu haqda albatta keyinroq to'liq post yoziladi, hozircha shunisini o'qib turing!
P.S: Process tejash, resurs tejashdir!
@otabekswe
Linux operatsion tizimida signallar bor. Ba'zan ularni bilib, ba'zan bilmay ishlatasiz.
Ctrl + D
ni bosib terminal dasturdan chiqasiz. Ctrl + C
ni bosib dasturni interrupt qilasiz. Keling ajoyib qisqa masterpost bilan tushnib olamiz.UNIX-like tizim ishlatsangiz terminalingizni oching va
ps
buyrug'ini yuboring. U sizga hozir ishlab turgan processlar ro'yxatini beradi. Oddiyroq qilib aytsak, qachon kompyuteringizda dastur ishga tushirganingizda har bir dastur har xil process (ishchi)da ishlaydi. PID, TTY, TIME, CMD kabi columnlar beradi. CMD - dastur, PID esa process ID degani. Istalgan PID raqamni tanlang. Endi esa uni to'xtatishni istasangiz,
kill
buyrug'idan foydalanasiz. Masalan mana bunday:
kill -SIGNAL PID
Signal qismiga uni nima qilishni kiritasiz, misol uchun to'xtat demoqchi bo'lsangiz -3, yoki -9.
kill -9 13488
Har bir signalni o'z ma'nosi bor. Ba'zan dasturni to'xtatib qo'yishingiz ham mumkin. Va keyinroq kelgan joyidan davom ettirishni aytishingiz ham mumkin. Endi dasturlardan chiqish uchun X buttonni emas balkim terminal orqali
kill
buyrug'ini ishlatsangiz va o'zingizni hacker dek tutsangiz bo'ladi. Bu haqda albatta keyinroq to'liq post yoziladi, hozircha shunisini o'qib turing!
P.S: Process tejash, resurs tejashdir!
@otabekswe
Big Tech - Coding Interview
Barchani orzusiga aylanishga ulgurgan MAANG kompaniyalaridagi og'riqli jarayon haqida yozishga qaror qildim. Undan oldin esa turli xil shunday kompaniyalarda ishlaydigan do'stlarim bilan ko'p suxbat qildim va ushbu postda tayyorlanish, leetcode, yaxshi yechimlar, tushukunlik va boshqa kerakli ishlarni yozib o'tishga harakat qilaman.
Postni o'qish
@otabekswe
Barchani orzusiga aylanishga ulgurgan MAANG kompaniyalaridagi og'riqli jarayon haqida yozishga qaror qildim. Undan oldin esa turli xil shunday kompaniyalarda ishlaydigan do'stlarim bilan ko'p suxbat qildim va ushbu postda tayyorlanish, leetcode, yaxshi yechimlar, tushukunlik va boshqa kerakli ishlarni yozib o'tishga harakat qilaman.
Postni o'qish
@otabekswe
#SystemDesign
Justin Bieber post qo’ygan kuni Instagram serverlari dumalab qolardi. (Celebrity problem)
Instagram 2015 yillarda endi rivojlanib tanilayotgan paytlari edi. Millionlab foydalanivchilarni ma’lumotlari SQL databaseda saqlangan. Ammo nega bitta odamni posti serverni qiynab qo’ygan?
Instagram like’lar sonini sanash uchun quyidagiga o’xshash query ishlatishgan:
Celebrity’larda like’lar soni ko’p bo’lgani uchun uni xisoblash serverga og’irlik qilardi va buzulardi, cache qilishsa ham.
Uni oldini olish uchun Instagram jamoasi database denormalization qilib chiqishadi. Ya’ni likelar sonini doim xisoblash o’rniga, ushbu ma’lumotni alohida tablega saqlab borishadi va real-time update qilishni to’xtatishadi (eventual consistency).
Bu postdan maqsad: dastur yasadingizmi uni foydalanuvchilarga bering. Ular sizni o’rganishga va o’sishga majburlashadi.
@otabekswe
Justin Bieber post qo’ygan kuni Instagram serverlari dumalab qolardi. (Celebrity problem)
Instagram 2015 yillarda endi rivojlanib tanilayotgan paytlari edi. Millionlab foydalanivchilarni ma’lumotlari SQL databaseda saqlangan. Ammo nega bitta odamni posti serverni qiynab qo’ygan?
Instagram like’lar sonini sanash uchun quyidagiga o’xshash query ishlatishgan:
SELECT count(*)
FROM db
WHERE postId in user.likedPost
Celebrity’larda like’lar soni ko’p bo’lgani uchun uni xisoblash serverga og’irlik qilardi va buzulardi, cache qilishsa ham.
Uni oldini olish uchun Instagram jamoasi database denormalization qilib chiqishadi. Ya’ni likelar sonini doim xisoblash o’rniga, ushbu ma’lumotni alohida tablega saqlab borishadi va real-time update qilishni to’xtatishadi (eventual consistency).
Bu postdan maqsad: dastur yasadingizmi uni foydalanuvchilarga bering. Ular sizni o’rganishga va o’sishga majburlashadi.
@otabekswe
Math is Everywhere
Ushbu maqolada siz:
- Matematikani Algoritmlardagi o'rni
- Matematika bilan Leetcode masalalarini O(1) time da ishlash
- Maktabda sizga o'rgatilmagan sirlar
- Fourier transform formulasi orqali ovozlar bilan ishlash
...haqida yoritib o'tdim. Ketkazgan vaqtingizga achinmasligingiz uchun amaliyotlar va isbotlar qo'shdim.
Postni o'qish
@otabekswe
Ushbu maqolada siz:
- Matematikani Algoritmlardagi o'rni
- Matematika bilan Leetcode masalalarini O(1) time da ishlash
- Maktabda sizga o'rgatilmagan sirlar
- Fourier transform formulasi orqali ovozlar bilan ishlash
...haqida yoritib o'tdim. Ketkazgan vaqtingizga achinmasligingiz uchun amaliyotlar va isbotlar qo'shdim.
Postni o'qish
@otabekswe
Linux World (part I)
Ushbu postda:
- Linux operatsion tizimi haqida
- Qanday qilib tekinga linux container olish haqida
- File System mavzusi
- Access Control mavzusi
- Process Control mavzusi
haqida yoritib o'tdim.
Bu postni bog'cha bolasi o'qib, tushunganiga qoyil qolib yubordi. Siz ham o'qisangiz ko'p amaliyot qilib ko'rsangiz bo'ladi.
Postni o'qish
@otabekswe
Ushbu postda:
- Linux operatsion tizimi haqida
- Qanday qilib tekinga linux container olish haqida
- File System mavzusi
- Access Control mavzusi
- Process Control mavzusi
haqida yoritib o'tdim.
Bu postni bog'cha bolasi o'qib, tushunganiga qoyil qolib yubordi. Siz ham o'qisangiz ko'p amaliyot qilib ko'rsangiz bo'ladi.
Postni o'qish
@otabekswe
Linux World (part-II)
Ushbu postda:
- System Control
- Fork bomb xujumi
- Disk Space filler xujumi
- Hackerlik tuzog'imga tushgan do'stim
- Hackerlarni xujumiga qarshi amaliy choralar
...haqida yoritib o'tdim.
Bu narsalarni sizga hech kim o'rgatmaydi. Men esa ko'p xujumlar qilib ko'rgan va ularga qarshi turgan inson sifatida o'z tajribalarimni ushbu postda yoritib o'tdim. (Kernel haqida alohida post bo'ladi)
Postni o'qish
@otabekswe
Ushbu postda:
- System Control
- Fork bomb xujumi
- Disk Space filler xujumi
- Hackerlik tuzog'imga tushgan do'stim
- Hackerlarni xujumiga qarshi amaliy choralar
...haqida yoritib o'tdim.
Bu narsalarni sizga hech kim o'rgatmaydi. Men esa ko'p xujumlar qilib ko'rgan va ularga qarshi turgan inson sifatida o'z tajribalarimni ushbu postda yoritib o'tdim. (Kernel haqida alohida post bo'ladi)
Postni o'qish
@otabekswe
Bloom Filter
Telegram, Google, Instagram kabi tizimlar qanday qilib milliardlab foydalanuvchilar ichidan XYZ username bo'sh yoki olinganligini sizga tez ayta olishiga qiziqganmisiz?
System Design intervyularingizni buzib tashlashni istaysizmi?
Ushbu post aynan siz uchun. Hech qayerda bu mavzu haqida yozilmadi, birinchilardan bo'lganimdan xursandman.
Postni o'qish
@otabekswe
Telegram, Google, Instagram kabi tizimlar qanday qilib milliardlab foydalanuvchilar ichidan XYZ username bo'sh yoki olinganligini sizga tez ayta olishiga qiziqganmisiz?
System Design intervyularingizni buzib tashlashni istaysizmi?
Ushbu post aynan siz uchun. Hech qayerda bu mavzu haqida yozilmadi, birinchilardan bo'lganimdan xursandman.
Postni o'qish
@otabekswe
#scienceIn60Seconds
Firewall
Networking sohasida tajribalarim juda kam. Shunga qaramay Senior darajaga 6ta kompaniya bilan intervyu o'tkazganman. Xulosa natijasida eng ko'p berilgan savol bu Firewall haqida bo'ldi.
Firewall - bu xavfsizlik devori. Qadimgi xitoy urushlarida devorlarga olovli sharlar otilgan bo'lsa, hozirgi urushda jpriqlar sizni veb-sahifangizga xujum qilishadi. O'sha xujumlarni oldini olish uchun firewall ishlatishingiz mumkin.
Firewall ayrim siz bergan yoki oldindan berilgan qoidalar asosida ishlaydi. Backdoors, Spam, SQL Injection, DDoS va shu kabi ko'plab xujumlarni oldini olishda ham ishlatishingiz mumkin.
Networking haqida ham keyinroq post yozishni reja qilib turibman. Hozircha sizdan "Manejeriz bilan komfliktga tushib qolsangiz nima qilasiz?" deyishsaHashmap "Firewall" ishlataman deb javob bersangiz bo'ladi.
@otabekswe
Firewall
Networking sohasida tajribalarim juda kam. Shunga qaramay Senior darajaga 6ta kompaniya bilan intervyu o'tkazganman. Xulosa natijasida eng ko'p berilgan savol bu Firewall haqida bo'ldi.
Firewall - bu xavfsizlik devori. Qadimgi xitoy urushlarida devorlarga olovli sharlar otilgan bo'lsa, hozirgi urushda jpriqlar sizni veb-sahifangizga xujum qilishadi. O'sha xujumlarni oldini olish uchun firewall ishlatishingiz mumkin.
Firewall ayrim siz bergan yoki oldindan berilgan qoidalar asosida ishlaydi. Backdoors, Spam, SQL Injection, DDoS va shu kabi ko'plab xujumlarni oldini olishda ham ishlatishingiz mumkin.
Networking haqida ham keyinroq post yozishni reja qilib turibman. Hozircha sizdan "Manejeriz bilan komfliktga tushib qolsangiz nima qilasiz?" deyishsa
@otabekswe
Python: Memory Management
Ushbu postda siz:
・ Garbage collector
・ Reference count
・ Finalizer
・ Cyclic reference
・ Weak reference
・ Stack Tracer
... haqida o'rganasiz.
Postni yaxshilab o'qisangiz, keyingi interview`laringizni qiyqiriq feedback bilan o'tasiz.
Postni o'qish
@otabekswe
Ushbu postda siz:
・ Garbage collector
・ Reference count
・ Finalizer
・ Cyclic reference
・ Weak reference
・ Stack Tracer
... haqida o'rganasiz.
Postni yaxshilab o'qisangiz, keyingi interview`laringizni qiyqiriq feedback bilan o'tasiz.
Postni o'qish
@otabekswe
Python Interview Questions
Ushbu postda:
・Qiziq savollar
・Javoblar
・Best practice`lar
・Python internals
... va h.k.z advanced mavzularni qo'shdim. Bilimingizni sinab ko'rish vaqti keldi.
O'qing, o'qish foydali!
Postni o'qish
@otabekswe
Ushbu postda:
・Qiziq savollar
・Javoblar
・Best practice`lar
・Python internals
... va h.k.z advanced mavzularni qo'shdim. Bilimingizni sinab ko'rish vaqti keldi.
O'qing, o'qish foydali!
Postni o'qish
@otabekswe
Welcome to Functional World
Ushbu postda:
・Functional Programming nimaligi
・Procedural vs Functionl farqi
・Rekursiya Loopdan qimmatroq
・First-class va High-order funksiyalar
...va nima uchun FP zo'rligini yozib o'tdim.
Bu postdan keyin ko'plab dasturlashdagi tushunchalarni oson tushunasiz degan umiddaman.
Postni o'qish
@otabekswe
Ushbu postda:
・Functional Programming nimaligi
・Procedural vs Functionl farqi
・Rekursiya Loopdan qimmatroq
・First-class va High-order funksiyalar
...va nima uchun FP zo'rligini yozib o'tdim.
Bu postdan keyin ko'plab dasturlashdagi tushunchalarni oson tushunasiz degan umiddaman.
Postni o'qish
@otabekswe
FAANG'ga sayohat
2021: Facebookdagi amaliyot (internship) haqida eshitib qiziqishim juda oshgandi
2022: Amazon, Intel va Cloudflare dan rad javobi oldim
2023: Intel, BNY Mellon, Deloitte dan rad javobi
2024: Google (universitetdan keyin qaytaman), IBM, Dropbox va Meta offer.
2025: Loading…
Mana Linkedin, menga ergashib (follow qilib) qo'ying.
Yaxshi maqolalar: otabekswe.uz
@otabekswe
2021: Facebookdagi amaliyot (internship) haqida eshitib qiziqishim juda oshgandi
2022: Amazon, Intel va Cloudflare dan rad javobi oldim
2023: Intel, BNY Mellon, Deloitte dan rad javobi
2024: Google (universitetdan keyin qaytaman), IBM, Dropbox va Meta offer.
2025: Loading…
Mana Linkedin, menga ergashib (follow qilib) qo'ying.
Yaxshi maqolalar: otabekswe.uz
@otabekswe