Muhammadjon's


Гео и язык канала: не указан, не указан
Категория: не указана


Software Engineer @ Google
Dasturchilik | Kanadadagi hayot | Kuzatuvlar | Shaxsiy fikrlar
Google haqidagi barcha fikrlar – shaxsiy, kompaniyaning nomidan emas.

Связанные каналы  |  Похожие каналы

Гео и язык канала
не указан, не указан
Категория
не указана
Статистика
Фильтр публикаций


Bu yilgi DevFestdagi spikerlar orasida o'zimizning tanishlar ko'p ekan:
Vohid Karimov
• Saidakmal Madjidkhodjaev
• Bekzod Abdullaev

Vohid Karimov, qachon qarasam, yo sayohat qilyapgan bo'ladi yoki O'zbekistonda bo'ladi. Android Autoda ishlar qolib ketyapti :)

#devfest

@muhammadjohns

388 0 1 15 22

O'zbekistonlik qizlar TechWomen'da g'olib bo'lishdi!!!

TechWomen – bu fan, texnologiya, muhandislik va matematika (STEM) sohasidagi lider qiz-ayollarni qo'llab-quvvatlashga qaratilgan mentorlik va almashinuv dasturi. Dastur 2011-yil AQSHning Ta'lim va Madaniyat byurosi tomonidan tashkil etilgan bo'lib, odatda San-Fransisko va Chikago shaharlarida 5 hafta davomida bo'lib o'tadi.

Bu yil shu dastur bo'yicha O'zbekistondan 5 kishi qatnashyapti. Ular o'zlarining "Bolalar orasida autizmni erta aniqlash va davolash" proyekti bilan TechWomen g'olibiga aylanishibdi 👏👏👏

Bu dastur tashkil etilganidan beri birinchi marta O'zbekiston jamoasining g'olib bo'lishi ekan!

@muhammadjohns


27-sentabr kuni Raqamli Texnologiyalar vaziri Sherzod Shermatov Palo-Altoda (Kaliforniya) o'zbeklar tashkil qilgan "Silkroad Innovation Hub"ga tashrif buyurdi. Tasodif bo'lib, o'tgan hafta men ham Kaliforniyada edim. Shu bahona ko'pchilik bilan tanishib oldik.

Tanish chehralar ham ko'p edi. Ohirgi rasmda – Toshkent shahridagi Inha Universiteti sobiq talabalari :)

@muhammadjohns


Видео недоступно для предпросмотра
Смотреть в Telegram


Bunaqasini "Silicon Valley" serialida ko'rgandim. Google'da ham bor ekan😆.

📍Saniveyl, Kalifornia

@muhammadjohns


Uzoq yillar Samsung smartfonlarini ishlatib, yaqinda boshqa smartfonga o'tdim:
Pixel 9 Pro XL.

10 kundan beri ishlatyapman, juda yoqyapti. Android ustiga qurilgan Samsungning "One UI"i ham ancha qulay edi, Pixelda esa – sof Android.

Yangicha dizayn, yangi Tensor G4 chip, AI qulayliklar/dasturlar, 48MP "selfie" kamera, yorug'ligi 3000 nits'gacha chiqadigan display va hokazolari bor.

"Video review" qilardimu, yaxshisi buni MKBHD ga qoldiraman. Chumchuq so'ysa ham, qassob so'ysin.

Bu yil Pixel smartfonlari savdosini o'zim qo'lga olmasam bo'lmaydi, shekilli. Shuning uchun 597 ta obunachilari bor kanalimga reklama qilyapman😆

@muhammadjohns


Kanada turistik vizasi haqidagi post esingizdami?

Ba'zi viza agentliklari odamlarga to'liq ma'lumot bermay, "Kanadaga 10 yillik viza olib beramiz, borib ishchi vizaga almashtirib olasiz" deb reklama qilishgan edi.

Ularga ishonib yoki o'zlari hujjat tayyorlab kelganlar sarson bo'lib yurishdi.

28-avgustdan boshlab, Kanada hukumati turistlarga ishchi vizasiga topshirishga ruxsat beradigan qonunni tugatdi.

Turist vizasini ishchi vizasiga almashtirishga ruxsat berish 2020-yilda boshlangan. Bunga sabab Kanadaga kelib, pandemiya tufayli chegaralar yopilishi oqibatida yurtiga qaytib ketolmaganlarga sharoit yaratish bo'lgan. Bunday o'zgarish 2025-yilgacha ko'zda tutilgan edi, lekin ertaroq tugatildi.

Kanada hukumati vebsaytida shunday yozib qo'yilibdi: "Ayrim g'araz niyatli odamlar chet el fuqarolarini Kanadada ruxsatsiz ishlashga yo'ldan ozdirish uchun bu siyosatdan noto'g'ri foydalanganliklaridan Kanada immigratsiya tashkilotining xabari bor."

@muhammadjohns

890 0 10 2 11

Ilovalar nega tez-tez yangilanadi?

Telefoningizda ko'p ishlatadigan ilovangizni ochdingiz... "dasturni yangilang" degan yozuv turibdi. Yangilab, yana ochsangiz, 2 ta holatdan biriga duch kelasiz:
• Nimadir o'zgargan.
• Hech qanday o'zgarish yo'q.

Birinchi holat tushunarli: demak, dasturchilar ilovaga o'zgarish kiritishgan.

Ikkinchisi-chi? Hech qanaqa o'zgarish yo'q. Qizig'i, 1-2 haftadan keyin bu yana takrorlanishi mumkin: "обновление" bor, o'zgarish yo'q.

Nega dasturlar ko'p yangilanadi (baribir vizual o'zgarish bo'lmasa)?

Bunga bir nechta sabablar bo'lishi mumkin:

1. Ko'zga ko'rinmaydigan o'zgarishlar. Dasturlardagi ko'p o'zgarishlar ko'zga tashlanadigan interfeysda bo'lmasligi mumkin. Qandaydir funksionallik o'zgarsa, foydalanuvchiga yetib borishi uchun yangi versiya chiqariladi, ya'ni ilova yangilanadi.

2. Muhim xatoliklar. Dasturda biror xatolik chiqib qolsa, foydalanuvchilarga noqulaylik bo'lmasligi uchun tezda to'g'rilab, ilova yangilanadi.

3. Doimiy rejadagi o'zgarishlar. Ba'zi kompaniyalar dasturni doimiy ravishda yangilab borishadi. Ular qandaydir muhim o'zgarish bo'lsagina emas, balki jadval bo'yicha buni amalga oshirishadi: har hafta, har 2 taftada, yoki har oy, va hokazo. Shunday ilova ishlatsangiz, doim ham vizual o'zgarishlarsiz yangilanishlarga duch kelishingiz mumkin.

4. Eksperimentlar. Dasturga biror yangi xususiyat ("feature") qo'shilsa, uni to'g'ridan-to'g'ri foydalanuvchilarga taqdim etish kutilmagan xatolik, dasturning sekinlashishi yoki yomon tajribaga sabab bo'lishi mumkin. Shuning uchun uni avval eksperimentdan o'tkaziladi: Masalan, foydalanuvchilarning ichidan tasodifiy 10% iga yangi feature'si bor versiyani chiqariladi. Yana 10% iga ilovaning o'sha feature'si yo'q lekin qolgan joyi bir xil bo'lgan versiya chiqariladi. Qolgan 80% foydalanuvchilarga yangilanish chiqarilmaydi. Oradan biroz vaqt o'tgach ikkita 10% lik guruhni solishtiriladi. Agar yangi feature kutilgan natijani bersa, keyin uni barchaga chiqariladi. Shunday vaziyatda siz ikkinchi 10% lik guruh (yangi feature yo'q) ga tushib qolsangiz, sizga ilova uchun yangilanish keladi, lekin o'zgarish sezmaysiz.

Yuqoridagilar va shunga o'xshash boshqa sabablar tufayli ilovani ko'p yangilashingizga to'g'ri keladi. Ayrim foydalanuvchilarga bu ma'qul kelmay, yangilanishni butunlay o'chirib qo'yishadi. Aslida yangilanishlar – juda yaxshi. Iloji bo'lsa, avtomatik yangilanishni (android, iOS) yoqib qo'yish kerak.

Yuqorida keltirib o'tilgan sabablarning ichida 3- va 4-lar – juda qiziq. Ular haqida keyingi postlarimda batafsil yozaman.

@muhammadjohns


Dasturchi nima ish qiladi?

– "Universitetdan kim (qaysi soha mutaxassisi) bo'lib chiqasan?"
– "Dasturchi"
– "Dasturchi nima ish qiladi?"

~~~

2014-yil Toshkent shahridagi Inha Universitetida o'qishni boshlaganimda uzoq-yaqin tanishlar shunaqa savollarni ko'p so'rashardi. U paytda o'zim ham yaxshi bilmaganim uchun "dasturchi ilova, vebsaytlar yaratadi" deb javob berardim.

O'ylab qarasam, bor-yo'g'i 10 yil oldin ham dasturchilik kasbi O'zbekistonda odatiy kasb hisoblanmagan ekan. Ko'p odamlar dasturchilar nima ish qilishini bilishmagan. Hozir ko'pchilikda dasturchi deganda qandaydir tushuncha bor.

Quyida dasturchi qiladigan asosiy ishlar:

● Dizayn yaratadi. Dasturni qanday qurish kerakligi, har xil qismlar bir-biri bilan qanday bog'lanishi kerakligini, yoki dasturning kichik bir qismi qanday ishlashi kerakligini ko'rsatib beradigan dizayn. Xoh butun bir dastur uchun, xoh uning bir qismi uchun bo'lsin, aksariyat dasturchilar dizayn yaratadi (ilova qanday ko'rinishi kerakligi haqidagi dizayn bilan adashtirmang).

● Reja tuzadi. Proyektdagi qilinishi kerak bo'lgan ishlarni rejalashtiradi. Bu shunchaki bir o'tirishda qilinadigan reja emas. Ba'zi dasturchilar butun jamoa uchun reja tuzishiga to'g'ri keladi: kim nima ish qilishi kerak, qancha vaqt ketadi, qanday risk bo'lishi mumkin, ... .

● Kod yozadi. Yuqoridagi dizayn va rejaga asoslanib, dasturlash tillaridan foydalangan holda kompyuter tushunadigan ko'rsatmalar to'plamini yozib chiqadi. O'sha ko'rsatmalar to'plami "kod" deb ataladi. Dasturchi kod yozadi, kod o'chiradi, kod o'zgartiradi.

● Yana kod yozadi. O'zi yozgan kodni tekshiradigan, to'g'ri ishlashini isbotlab beradigan kod yozadi. Bunday kod "test" deyiladi.

● Kod o'qiydi. Dasturchi odatda boshqa dasturchilar bilan birga ishlaydi hamda oldin boshqalar yozib ketgan kodlarni rivojlantiradi. Shuning uchun ishlash davomida juda ko'p kod o'qiydi. Yozganidan 10 barobar ko'proq kod o'qishiga to'g'ri keladi.

● Kod tekshiradi. Dasturchi o'zining va boshqalarning kodini yaxshilab tekshiradi. Kamchiliklar bo'lsa to'g'rilaydi yoki boshqalarga aytadi.

● Dasturdagi xatoliklarni to'g'rilaydi. Deyarli har doim dasturda katta-kichik xatoliklar chiqib turadi. Uni "bug" deymiz. Dasturchi shunday xatoliklarni to'g'rilaydi, ya'ni "debug" qiladi.

● Uzoq vaqt o'ylanib yuradi. Ayrim "bug"larni to'g'rilash oson bo'lmaydi. Ular qayerdan kelayotganini topish bir necha daqiqadan bir necha kungacha cho'zilishi mumkin. Ba'zi dizaynlar juda murakkab bo'ladi va chuqur e'tibor talab qiladi. Shunday paytda dasturchini o'ylanib yurganini ko'rasiz.

● Dasturni doim yaxshilab boradi. Dastur bir marta qurib, tugatiladigan narsa emas. Uni doim rivojlantirib bormasa, vaqt o'tishi bilan eskiradi.

● Hujjatlar yozadi. Ha, dasturchilar ham hujjat ishlari bilan shug'ullanadi:
- yuqorida aytib o'tilgan dizayn ("design doc");
- dasturni qanday ishlashini tushuntirib beradigan hujjat;
- proyekt plani;
- o'zgarishlar tarixi;
- proyektni vaqtida tugatishga halaqit berishi mumkin bo'lgan omillar;
- va hokazolarni yozib boradi.

● Boshqalar bilan birga ishlaydi. Dasturchi boshqa dasturchilar, proyekt menejerlari, har xil jamoalar bilan hamkorlikda ishlaydi. Mitinglarda qatnashib, proyekt qanday ketayotgani haqida report beradi va boshqalardan report qabul qilib oladi.

● Yangi texnologiyalar o'rganadi. Dasturchilar ishlatadigan texnologiyalar yildan-yilga yangilanib turadi. Dasturchi shularni o'rganib, o'z bilimlarini sayqallab boradi.

● Boshqalarga bilim ulashadi. Dasturchi o'z bilganlarini boshqalarga o'rgatadi. Ko'pincha tajribali dasturchi o'zidan tajribasi kamroq bo'lgan boshqa dasturchilarga yo'l-yo'riq ko'rsatadi.

~~~

– "Dasturchi nima ish qiladi?"
– "Programma yaratadi."
– "Ha, mening bir tanishim ham programmist. Telefon bozorda telefonlarni programma qiladi."

@muhammadjohns

2k 0 16 4 35

Bugun O'zbekiston vaqti bilan 22:00 da "Made by Google 2024" boshlanadi (10 am PDT). Uni YouTube'da da tomosha qilishingiz mumkin.

Kutilayotgan asosiy yangiliklar – Pixel mahsulotlari:
● Pixel 9
● Pixel 9 Pro
● Pixel 9 Pro Fold
● ...
hamda AI ga oid so'nggi yangiliklar.

#MadeByGoogle

@muhammadjohns


O'zbekiston va Kanada Olimpiadani medallar bo'yicha ketma-ket o'rinlarda yakunlashdi!

🇺🇿🤝🇨🇦

@muhammadjohns


Kanada ko'chalarida shunday qutichalarni uchratishingiz mumkin.

Tekin yegulik, tekin kitob. Kimga kerak bo'lsa, olib ketaveradi. Kimda imkoniyat va xohish bo'lsa, boshqalarga ulashadi.

@muhammadjohns


Barchaga Qurbon Hayiti muborak bo'lsin!!! 🐏🎉🥳

@muhammadjohns


Google'da menga yoqadigan narsalardan biri oldin hech qayerda ko'rmagan muammolar ustida ishlashimizdir.

2023-yil iyul oyida WearOS (soatlar uchun Android tizim) uchun Gmail ilovasini kompaniya bo'ylab ichki test, ya'ni betaga chiqardik. Avgust oyida beta-foydalanuvchilardan izoh va baholarni oldik.

O'rtacha baho 5 ballik tizimda 3.78 edi. Eng asosiy muammolaridan biri – ilovaning ishga tushish tezligi foydalanuvchilarga ma'qul kemabdi: "P50 (50th percentile) cold startup latency" tahminan 3.5 sekund bo'lgan.

Uni tezlashtirishimiz uchun 3 hafta vaqtimiz bor edi. Jamoaning ko'p a'zolari, shu jumladan men ham, bor e'tiborimizni shunga qaratdik:

1. Ilovaning "trace"ini olib, uni tahlil qilib chiqdik. Soatlardagi CPU unchalik kuchli bo'lmaganligi sababli ilova ishga tushayotgan vaqtda ko'p protseslar CPU uchun kurashib, asosiy thread'ni band qilib qo'yayotgan ekan. Shunday protseslarni kamaytirish uchun zarur bo'lgan o'zgarishlarning ro'yhatini qilib, eng ko'p foyda beradigan 3-4 tasini tanlab oldik:
● Animatsiyalarni kamaytirish.
● "Splash screen" ni uzoqroq ushlab turish.
● Server uchun kerakli obyektlarni ertaroq yaratish/yuklash.

2. Xattoki kichik animatsiya ham soat uchun og'irlik qiladigan bo'lib chiqdi. Ba'zi animatsiyalarni statik rasmlarga o'zgartirdik.

3. Odatda, ilova ochilayotgan paytda ko'rsatiladigan birinchi sahifa "splash screen" bo'ladi. Shu sahifani uzoqroq ushlab turadigan qildik. Natijada undan keyin keladigan ba'zi animatsiyalar CPU uchun kurashmaydigan bo'ldi.

4. Kerakli obyektlarni yaratishni splash screen bilan parallellashtirdik va ma'lumotlarni serverdan tezroq qabul qilib oldik.

5. Har bir o'zgarish foyda berayotganini bilish uchun A/B testlar qildik.

Yuqoridagilarni tugatganimizdan so'ng ilovaning o'rtacha ishga tushish tezligi 3.5 dan 1.8 sekundga tushdi.

Shu hamda beta-foydalanuvchilar topgan boshqa muammolarni ham to'g'rilaganimizdan keyin ularning o'rtacha bahosi 4.30 ga ko'tarildi.

Yaqinda developers.android.com vebsaytida shu ishimizni "case study" sifatida yozib chiqishibdi. Androidchilarga o'qib chiqishni maslahat beraman.

Kompaniyada ichki ilovalarning ishlashini yaxshilaganlarni har yarim yilda e'tirof etib turiladi. Biz ham shu qilgan ishimiz uchun "kumush medali 🥈"ni oldik.

@muhammadjohns


Siniq oynalar qoldirmang

Qachondir biror tashlandiq binoga deyarli barchamizning ko'zimiz tushgan: Oynalari singan, devorlariga nimalardir yozilgan, chizilgan, qarovsiz bino. Xuddiki, bu binoga nima bo'lishi bilan hech kimning ishi yo'q.

Kriminologiyada "singan oynalar" teoriyasi bor. Unga ko'ra, shaharning bir joyidagi tartibsizlik (binoning yomon ahvoli, yo'l chetidagi axlatlar, jinoyatchilik) yanada ko'proq tartibsizlikka sabab bo'ladi.

O'sha biz ko'rgan tashlandiq bino ham qachonlardir yaxshi holatda bo'lgan... toki birinchi marta kimdir oynasini sindirgungacha. Shundan so'ng bino qisqa muddatda yomon ahvolga kelib qolgan.

Bu teoriyani dasturchilikka ham tadbiq etsa bo'ladi. Agar bir proyektning kodi pala-partish, aniq bir qoida-uslublarsiz yozilgan bo'lsa, u holda boshqalar ham shu yo'sinda davom etadi. Kod tez orada tozalash qiyin bo'ladigan "mahluq"qa aylanadi. Aksincha, agar kod juda tartibli, "toza" yozilgan bo'lsa, boshqalar ham shu tartibni hurmat qiladi va proyektning kodini o'zgartirishda juda e'tiborli bo'lishadi.

Kodni yaxshi holatda saqlash uchun:
● Proyekt kodida qo'llanilgan uslub va qoidalarni hurmat qiling. Kodga egalik qiladigan jamoa a'zolari kelishib kodni ma'lum uslubda yozishadi. Siz ham shunday yozing. Agar aniq uslub bo'lmasa, kod yozilgan til uchun belgilangan qoidalardan (style guide) foydalaning. Shaxsiy uslubingizni proyektdagi uslubdan ustun qo'ymang.
● Vazifalarni tezroq qilish uchun sifatni ikkinchi darajaga qo'ymang.
● Kommentga olingan kod qoldirmang. Agar shunday qilishga tayinli sababingiz bo'lsa, kod nimaga kommentga olinganini tushuntirib yozib keting.
● Kodni tez-tez refaktor qiling va tozalab turing.
● Ko'proq test yozing.
● ...

Yuqoridagilarga e'tiborli bo'lmasangiz, kodning yomon holatga kelishiga sababchi bo'lib qolishingiz mumkin.

Kodning "oynasini sindirib" qo'ymang.

@muhammadjohns



Показано 16 последних публикаций.