Forwarded from Узбекский ФинТех
Исследование Alif: iPhone vs Android в Узбекистане
Аналитики супераппа Alif изучили различия в поведении владельцев iPhone и Android на основе данных 1,6 млн пользователей (декабрь 2024 года).
Основные выводы:
• Android доминирует: 92% пользователей против 8% на iOS.
• В Ташкенте iPhone популярнее (29%), но в регионах Android удерживает >90%. В Сурхандарье разрыв максимальный: Android — 95%, iOS — 5%.
Средний чек у владельцев iPhone выше почти по всем категориям:
• Переводы: iOS — 6,9 млн сум, Android — 2,9 млн сум.
• Мобильная связь: iOS — 112 тыс сум, Android — 89 тыс сум.
• Авиабилеты: iOS — 7 млн сум, Android — 4 млн сум.
• Владельцы iPhone чаще выбирают международные рейсы (Ташкент — Абу-Даби), тогда как Android — Ташкент — Москва.
• Самый популярный Android-смартфон: Xiaomi Redmi 9A, iOS — iPhone 15 Pro Max.
Портрет пользователя:
• Возраст: iPhone чаще используют молодые до 24 лет (38%), Android — старшие группы, 93% пользователей старше 35 лет.
• Пол: Мужчины доминируют на обеих платформах (70% на iOS, 62% на Android).
Покупки:
• Владельцы обеих систем чаще покупают Xiaomi Redmi Note 13 Pro на Alif Shop.
В целом, Android остается массовой платформой, а пользователи iOS демонстрируют более высокую платежеспособность.
Наш сайт👉https://u-fintech.uz
ТГ канал👉 https://t.me/uzbekfintech
Аналитики супераппа Alif изучили различия в поведении владельцев iPhone и Android на основе данных 1,6 млн пользователей (декабрь 2024 года).
Основные выводы:
• Android доминирует: 92% пользователей против 8% на iOS.
• В Ташкенте iPhone популярнее (29%), но в регионах Android удерживает >90%. В Сурхандарье разрыв максимальный: Android — 95%, iOS — 5%.
Средний чек у владельцев iPhone выше почти по всем категориям:
• Переводы: iOS — 6,9 млн сум, Android — 2,9 млн сум.
• Мобильная связь: iOS — 112 тыс сум, Android — 89 тыс сум.
• Авиабилеты: iOS — 7 млн сум, Android — 4 млн сум.
• Владельцы iPhone чаще выбирают международные рейсы (Ташкент — Абу-Даби), тогда как Android — Ташкент — Москва.
• Самый популярный Android-смартфон: Xiaomi Redmi 9A, iOS — iPhone 15 Pro Max.
Портрет пользователя:
• Возраст: iPhone чаще используют молодые до 24 лет (38%), Android — старшие группы, 93% пользователей старше 35 лет.
• Пол: Мужчины доминируют на обеих платформах (70% на iOS, 62% на Android).
Покупки:
• Владельцы обеих систем чаще покупают Xiaomi Redmi Note 13 Pro на Alif Shop.
В целом, Android остается массовой платформой, а пользователи iOS демонстрируют более высокую платежеспособность.
Наш сайт👉https://u-fintech.uz
ТГ канал👉 https://t.me/uzbekfintech
Juniorlarda ko‘p uchraydigan xatolar
[1-qism]
Kecha yangi kitob o‘qishni boshlagan edim, muallifi podcast yuritar ekan. Eshitib ko‘rish uchun kirdim. Birinchi eshitib ko‘rgan mavzuyim Juniorlar haqida edi.
Juniorlarda ko‘p uchraydigan xatolar
Bilamiz-ki, ko‘p savollar Juniorlar orasida chiqadi. Middle va seniorlar savollari ancha kam va kam takrorlanadi. Bu yerda junior dasturchilarda uchraydigan xatolarning ba’zilarini keltirib o‘taman.
1. Bir vaqtda ko‘p narsa o‘rganish.
Bir vaqtda bir necha katta texnologiyani o‘rganishni boshlashadi. Python, JavaScript yoki MongoDB kabi texnologiyalarni kimdir ularga kerak degani uchun o‘rganishni boshlashadi. Bu esa salbiy natijalarga olib keladi. Biror tilni yaxshi tushunmaslik, kerak bo‘lmasa ham o‘rganishga vaqt sarflash yoki imkoniyatlarni aralashtirib tushunish va ertaga kerak bo‘lganida qo‘llay olmaslik kabi. Eng yomoni biror loyihani faqat shu aytilgan texnologiyada qilish mumkin deb o‘ylash.
Vaqti kelib keyin boshqasiga o‘tib olaverasiz.
2. Version contol’ni tushunmaslik.
Version contol juda ajoyib narsa. U bilan tarixga qaytish mumkin, dasturning turli variantlarini sinab ko‘rish mumkin, bir biriga xalal bermay ishlash mumkin. Gitdan yaxshisi bo‘lmasa kerak, lekin man SVNni yaxshi ko‘rar edim. Agar kimdir hali ham file va zip bilan versiya saqlab yurgan bo‘lsa, uzr siz hali junior darajasiga yaqin ham kelmabsiz.
Bu mavzuda nafaqat juniorlar, balki katta dasturchilar ham xato qilib turishadi. Vaziyatlar ham turlicha. Ba’zilarini keltirib o‘taman.
* Commit qilishni unutish
* Keraksiz filelarni repoga yuklash. Masalan, IDE ishlatadigan sozlama (config)lar, muhit (env) fayllari, vaqtincha va ishga tushuvchi fayllar (build, .class, .so va boshqalar)
* Begona shoxga (branch) kodni yuklash.
* Force-push buyrug‘ini ishlatish 🤯
* Keng tarqalgani, Commit qilib, Push qilmaslik. (Yuklashga tayyorlab, yubormaslik)
Bularni qilmaslik uchun juda ko‘p usullar va qoliplar mavjud. (GitFlow masalan).
3. Ma’lumotlar shakllarini bilmaslik
Ma’lumotlar bilan ishlaganda ko‘pchilik yosh dasturchilar ma’lumotning xotiradagi shaklini biladi. Integer, String va Array kabi. Hayotda esa ko‘proq CSV, JSon va XML lar bilan ishlashi kerak bo‘ladi.
Ko‘rinishidan juda sodda, ammo bilmaganlar uchun vaqt oladigan narsalar. Bu shakllar mohiyatini yaxshi bilmagan dasturchi ishi tushganida parser (o‘qigich) yasashga harakat qiladi. Vaholanki buning har biri uchun minglab parserlar allaqachon internetda bor.
Bu boradagi ba’zi maslahatlar:
CSV
* Barcha matn qiymatlarni qo‘shtirnoqqa oling.
* UTF-8 kodlashdan foydalaning.
JSON
* JSON va JavaScriptni farqini bilib oling.
* JSON to‘g‘ri bo‘lish tablarini o‘rganing.
* JSON ma’lumotingizni json schema yordamida tekshirishni biling.
XML
* Atributlar va elementlarni tushib oling.
* HTML bilan farqini biling.
* XQuery va XPath yordamida so‘rov yozishni o‘rganing.
* Case sensitive (bosh va kichik harflar bir xil hisoblanishi)ni hisobga oling.
* CData nima ekanini va mohiyatini tushunib oling.
davomi bor...
Bitta xabarga sig‘madi. Davomini keyingi postda.
16.01.2025 London
@DrAlgorithm
[1-qism]
Kecha yangi kitob o‘qishni boshlagan edim, muallifi podcast yuritar ekan. Eshitib ko‘rish uchun kirdim. Birinchi eshitib ko‘rgan mavzuyim Juniorlar haqida edi.
Juniorlarda ko‘p uchraydigan xatolar
Bilamiz-ki, ko‘p savollar Juniorlar orasida chiqadi. Middle va seniorlar savollari ancha kam va kam takrorlanadi. Bu yerda junior dasturchilarda uchraydigan xatolarning ba’zilarini keltirib o‘taman.
1. Bir vaqtda ko‘p narsa o‘rganish.
Bir vaqtda bir necha katta texnologiyani o‘rganishni boshlashadi. Python, JavaScript yoki MongoDB kabi texnologiyalarni kimdir ularga kerak degani uchun o‘rganishni boshlashadi. Bu esa salbiy natijalarga olib keladi. Biror tilni yaxshi tushunmaslik, kerak bo‘lmasa ham o‘rganishga vaqt sarflash yoki imkoniyatlarni aralashtirib tushunish va ertaga kerak bo‘lganida qo‘llay olmaslik kabi. Eng yomoni biror loyihani faqat shu aytilgan texnologiyada qilish mumkin deb o‘ylash.
Tavsiya: Bir vaqtda faqat bitta til yoki texnologiyani mukammal o‘rganishga harakat qiling.
Vaqti kelib keyin boshqasiga o‘tib olaverasiz.
2. Version contol’ni tushunmaslik.
Version contol juda ajoyib narsa. U bilan tarixga qaytish mumkin, dasturning turli variantlarini sinab ko‘rish mumkin, bir biriga xalal bermay ishlash mumkin. Gitdan yaxshisi bo‘lmasa kerak, lekin man SVNni yaxshi ko‘rar edim. Agar kimdir hali ham file va zip bilan versiya saqlab yurgan bo‘lsa, uzr siz hali junior darajasiga yaqin ham kelmabsiz.
Bu mavzuda nafaqat juniorlar, balki katta dasturchilar ham xato qilib turishadi. Vaziyatlar ham turlicha. Ba’zilarini keltirib o‘taman.
* Commit qilishni unutish
* Keraksiz filelarni repoga yuklash. Masalan, IDE ishlatadigan sozlama (config)lar, muhit (env) fayllari, vaqtincha va ishga tushuvchi fayllar (build, .class, .so va boshqalar)
* Begona shoxga (branch) kodni yuklash.
* Force-push buyrug‘ini ishlatish 🤯
* Keng tarqalgani, Commit qilib, Push qilmaslik. (Yuklashga tayyorlab, yubormaslik)
Bularni qilmaslik uchun juda ko‘p usullar va qoliplar mavjud. (GitFlow masalan).
Tavsiya: Gitdan foydalanish qoidalari va korxonalar ishlatadigan usullar bilan tanishib qo‘ying. Agar siz ishlayotgan joyda joriy qilinmagan bo‘lsa, kiritishga harakat qiling.
3. Ma’lumotlar shakllarini bilmaslik
Ma’lumotlar bilan ishlaganda ko‘pchilik yosh dasturchilar ma’lumotning xotiradagi shaklini biladi. Integer, String va Array kabi. Hayotda esa ko‘proq CSV, JSon va XML lar bilan ishlashi kerak bo‘ladi.
Ko‘rinishidan juda sodda, ammo bilmaganlar uchun vaqt oladigan narsalar. Bu shakllar mohiyatini yaxshi bilmagan dasturchi ishi tushganida parser (o‘qigich) yasashga harakat qiladi. Vaholanki buning har biri uchun minglab parserlar allaqachon internetda bor.
Bu boradagi ba’zi maslahatlar:
CSV
* Barcha matn qiymatlarni qo‘shtirnoqqa oling.
* UTF-8 kodlashdan foydalaning.
JSON
* JSON va JavaScriptni farqini bilib oling.
* JSON to‘g‘ri bo‘lish tablarini o‘rganing.
* JSON ma’lumotingizni json schema yordamida tekshirishni biling.
XML
* Atributlar va elementlarni tushib oling.
* HTML bilan farqini biling.
* XQuery va XPath yordamida so‘rov yozishni o‘rganing.
* Case sensitive (bosh va kichik harflar bir xil hisoblanishi)ni hisobga oling.
* CData nima ekanini va mohiyatini tushunib oling.
Tavsiya: Fayllar bilan ishlaganda avval u fayl kengaytmasiga mos dasturlar bor ekanini qarab chiqing. Tayyor kutubxonalarni o‘rganib, ishlatib ko‘ring.
davomi bor...
Bitta xabarga sig‘madi. Davomini keyingi postda.
16.01.2025 London
@DrAlgorithm
Juniorlarda ko‘p uchraydigan xatolar
[2-qism] (boshi avvalgi postda)
4. Hujjatlar havola qilinish uchun mavjud.
Yangi dasturlarga kirganlar yoki junior dasturchilarda ajoyib fikr bor. Ular hujjatlarga havola qilish yoki Googledan narsa qidirishni zaiflik deb bilishadi.
Bizning sohada izlamasdan, yoki bajargan ishingizda biror havola (link) qo‘ymasdan ishlab bo‘ladimi? Bugun yozgan kodingizni ertaga ko‘rsangiz, asabiy bo‘lib o‘tirasiz-ku axir.
Hujjatlarga havolar qiling. Ertaga hamkasbingiz bilan ishlaganda, har yarim soatda oldiga borib, "bu qanaqa edi?", "bunisini nima qilgan edik, eslatvor" deb so‘roqqa tutishgan ko‘ra, bir marta ko‘rsatib berilganida izoh yozib qo‘yish, topgan maqolangiz havolasini ko‘rsatish vaqt tejaydi, ish unumli bo‘ladi.
5. Ishlatadigan ish qurolini bilmaslik.
Barcha dasturchilar, shu jumladan junior dasturchilar, kod yozish uchun IDE (ish quroli)ni ishlatishadi. Ammo uni yaxshi bilmaslik, yoki barcha imkoniyatlaridan to‘g‘ri foydalanmaslik ish unumdorligiga salbiy ta’sir qiladi.
Ish qurolining ba’zi imkoniyatlarini ko‘rib chiqsak:
Debugging (yurib chiqish):
* kod qatorlarida harakatlanish, o‘zgaruvchilar qiymatlarini tekshirish, shartli va shartsiz to‘xtash tugunlarini yasash, o‘zgaruvchilarni kuzatish va stack zanjirini ko‘rish.
* Console.log ni ishlatish hech qachon yetarli emas.
Profiling (resurs monitoringi)
* kompyuter resurslarining asosiy tushunchalaridan xabardor bo‘lish
CPU ko‘p ishlatadigan kodni topish va tuzatish
Xotiradan ko‘p foydalanishni oldini olish (memory leak)
Qurish (Build) jarayoni
* turli build sozlamalarini ishlata olish (Debug, Release versiyalar)
* Turli qurilmalar uchun yasash (web, desktop, mobile)
Sinov ish qurollari (Testing)
* Unit test - qanday qilib ishlatish va hisobot olish
* kodning qaysi qismlari sinovdan o‘tganini aniqlay olish (code coverage)
Kod uslubi (code style)
* Formatting - IDE larda tayyor formatlash imkoniyati bor (andozaga solish), shuni doim ishlatib turish
* korxona kod uslubi (corporate code style) ga moslab andozaga solish (format). Shunga git formatlash bilan to‘lib qolmaydi.
Bu kabi hayotda ko‘p uchraydigan kamchiliklar doim bo‘ladi. 20-30 yil oldin ham bor edi, hali kelajakda ham ancha vaqt davom etsa kerak. Chunki hammamiz insonmiz.
Ammo, savol berish, xatolar ustida ishlash, yangilikka qiziqish bu kamchiliklar oldimi oladi. Shaxsiy rivojlanishimizga yordam beradi.
Izoh:
Repo - repository. Version control’da saqlanadigan joy nomi. Siz yozgan kodlaringiz yashaydigan shahar.
Force-push - gitga ma’lumot yuklash vaqtida xatolik yuz berganida, barcha boshqalarning o‘zgarishlarini inkor qilib, sizning kodni gitga yuklash.
SVN - Subversion. git chiqishidan avvalroq muomalada bo‘lgan version control dasturi.
IDE - Integrated Development Environment, kod yozish muhiti.
16.01.2025 London
@DrAlgorithm
[2-qism] (boshi avvalgi postda)
4. Hujjatlar havola qilinish uchun mavjud.
Yangi dasturlarga kirganlar yoki junior dasturchilarda ajoyib fikr bor. Ular hujjatlarga havola qilish yoki Googledan narsa qidirishni zaiflik deb bilishadi.
Bizning sohada izlamasdan, yoki bajargan ishingizda biror havola (link) qo‘ymasdan ishlab bo‘ladimi? Bugun yozgan kodingizni ertaga ko‘rsangiz, asabiy bo‘lib o‘tirasiz-ku axir.
Hujjatlarga havolar qiling. Ertaga hamkasbingiz bilan ishlaganda, har yarim soatda oldiga borib, "bu qanaqa edi?", "bunisini nima qilgan edik, eslatvor" deb so‘roqqa tutishgan ko‘ra, bir marta ko‘rsatib berilganida izoh yozib qo‘yish, topgan maqolangiz havolasini ko‘rsatish vaqt tejaydi, ish unumli bo‘ladi.
Tavsiya: Googledan narsa izlashga uyalmang. Foydali manbalarni saqlab qo‘ying. Kodingiz yonida (ReadME) foydalangan havolalar ro‘yxatini yig‘ib yursangiz bo‘ladi.
5. Ishlatadigan ish qurolini bilmaslik.
Barcha dasturchilar, shu jumladan junior dasturchilar, kod yozish uchun IDE (ish quroli)ni ishlatishadi. Ammo uni yaxshi bilmaslik, yoki barcha imkoniyatlaridan to‘g‘ri foydalanmaslik ish unumdorligiga salbiy ta’sir qiladi.
Ish qurolining ba’zi imkoniyatlarini ko‘rib chiqsak:
Debugging (yurib chiqish):
* kod qatorlarida harakatlanish, o‘zgaruvchilar qiymatlarini tekshirish, shartli va shartsiz to‘xtash tugunlarini yasash, o‘zgaruvchilarni kuzatish va stack zanjirini ko‘rish.
* Console.log ni ishlatish hech qachon yetarli emas.
Profiling (resurs monitoringi)
* kompyuter resurslarining asosiy tushunchalaridan xabardor bo‘lish
CPU ko‘p ishlatadigan kodni topish va tuzatish
Xotiradan ko‘p foydalanishni oldini olish (memory leak)
Qurish (Build) jarayoni
* turli build sozlamalarini ishlata olish (Debug, Release versiyalar)
* Turli qurilmalar uchun yasash (web, desktop, mobile)
Sinov ish qurollari (Testing)
* Unit test - qanday qilib ishlatish va hisobot olish
* kodning qaysi qismlari sinovdan o‘tganini aniqlay olish (code coverage)
Kod uslubi (code style)
* Formatting - IDE larda tayyor formatlash imkoniyati bor (andozaga solish), shuni doim ishlatib turish
* korxona kod uslubi (corporate code style) ga moslab andozaga solish (format). Shunga git formatlash bilan to‘lib qolmaydi.
Tavsiya: Ishlatadigan ish qurolingizni yaxshilab o‘rganing. Har hafta 2-3 ta yangi imkoniyatini o‘rganish orqali 1 yilda to‘liq o‘rganib olasiz. Boshqa dasturchilardan ular ishlatadigan ish qurollarini so‘rang.
Bu kabi hayotda ko‘p uchraydigan kamchiliklar doim bo‘ladi. 20-30 yil oldin ham bor edi, hali kelajakda ham ancha vaqt davom etsa kerak. Chunki hammamiz insonmiz.
Ammo, savol berish, xatolar ustida ishlash, yangilikka qiziqish bu kamchiliklar oldimi oladi. Shaxsiy rivojlanishimizga yordam beradi.
Shunday ekan, uyalmay izlaning.
Izoh:
Repo - repository. Version control’da saqlanadigan joy nomi. Siz yozgan kodlaringiz yashaydigan shahar.
Force-push - gitga ma’lumot yuklash vaqtida xatolik yuz berganida, barcha boshqalarning o‘zgarishlarini inkor qilib, sizning kodni gitga yuklash.
SVN - Subversion. git chiqishidan avvalroq muomalada bo‘lgan version control dasturi.
IDE - Integrated Development Environment, kod yozish muhiti.
16.01.2025 London
@DrAlgorithm
📱 Можно ли теперь на Windows собирать iOS приложения ?
После выпуска swift-build от Apple этот вопрос повис в воздухе
🔢 На официальном сайте Swift появилась статья посвященная выходу в опенсорс их билд-системы с Roadmap'ом проекта
Но самое главное, там есть такой топик:
А среди pull-request'ов есть Windows Build Fixes от стороннего разработчика
🤯 Я сам в это не верю но похоже теперь не обязательно покупать Mac для разработки под iOS
После выпуска swift-build от Apple этот вопрос повис в воздухе
🔢 На официальном сайте Swift появилась статья посвященная выходу в опенсорс их билд-системы с Roadmap'ом проекта
Но самое главное, там есть такой топик:
Репозиторий с открытым исходным кодом также поддерживает работу с Linux и Windows.
А среди pull-request'ов есть Windows Build Fixes от стороннего разработчика
🤯 Я сам в это не верю но похоже теперь не обязательно покупать Mac для разработки под iOS
Flutter Dev | Uzbekistan 🇺🇿
📱 Можно ли теперь на Windows собирать iOS приложения ? После выпуска swift-build от Apple этот вопрос повис в воздухе 🔢 На официальном сайте Swift появилась статья посвященная выходу в опенсорс их билд-системы с Roadmap'ом проекта Но самое главное, там…
Arzon narxlarda optom "Mac" lar sotib olamiz :)
Flutter Dev | Uzbekistan 🇺🇿
Channel photo updated
Eski manzilimiz rezervga olindi: @flutterblogs
Endi biz @flutterdevuz🧑💻 miz!
Guruhimiz: @dartdevuz🧑💻
Hali yaxshi logotip topmadim, ungacha shu "placeholder"
🚀
Endi biz @flutterdevuz
Guruhimiz: @dartdevuz
Hali yaxshi logotip topmadim, ungacha shu "placeholder"
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2🆒1
Flutter Dev | Uzbekistan 🇺🇿
Eski manzilimiz rezervga olindi: @flutterblogs Endi biz @flutterdevuz 🧑💻 miz! Guruhimiz: @dartdevuz 🧑💻 Hali yaxshi logotip topmadim, ungacha shu "placeholder" 🚀
Uzbek community of Flutter Developers
Official website: flutterdev.uz
Instagram: instagram.com/flutterdevuz
YouTube: https://youtube.com/@flutteruz
X: x.com/flutterdevuz
Official website: flutterdev.uz
Instagram: instagram.com/flutterdevuz
YouTube: https://youtube.com/@flutteruz
X: x.com/flutterdevuz
Internetda bir entuziast Swiftda Flutter kabi UI framework yozibdi.
Nomi: ShaftUI
Ha, u aynan Flutter, faqat "Dart" o'rniga, "Swift".
Kod namunasi:
Batafsil: https://medium.com/@xty/shaft-a-new-cross-platform-ui-framework-for-demanding-workloads-and-developer-ergonomics-9bc1ea2fba35
GitHub: https://github.com/ShaftUI/Shaft
@flutterdevuz
Nomi: ShaftUI
Ha, u aynan Flutter, faqat "Dart" o'rniga, "Swift".
Kod namunasi:
@Observable class Counter {
var count = 0
}
let counter = Counter()
class CounterView: StatelessWidget {
func build(context: any BuildContext) -> any Widget {
Column {
Text("Count: \(counter.count)")
Button {
counter.count += 1
} child: {
Text("Increment")
}
}
}
}Batafsil: https://medium.com/@xty/shaft-a-new-cross-platform-ui-framework-for-demanding-workloads-and-developer-ergonomics-9bc1ea2fba35
GitHub: https://github.com/ShaftUI/Shaft
@flutterdevuz
👍7⚡3
Psevdo Tasodifiylik: Haqiqiy Tasodifiylikdan Farqi va Dart Tilida Ishlatilishi
Kompyuterlarda tasodifiy sonlarni yaratish zarurati ko‘plab sohalarda uchraydi. O‘yinlar, shifrlash tizimlari, statistik modellashtirish va simulyatsiyalar tasodifiy sonlarga asoslanadi. Ammo, ko‘pchilik bilmagan haqiqat shuki, kompyuterlar haqiqiy tasodifiy sonlarni hosil qila olmaydi. Ular faqat psevdo tasodifiy sonlar (PRNG - Pseudo-Random Number Generator) yaratadi. Ushbu maqolada psevdo tasodifiylikning ishlash tamoyillari va Dart dasturlash tilida tasodifiy sonlarni qanday yaratish mumkinligi haqida batafsil tushuntiramiz.
---
🔰 1. Haqiqiy tasodifiylik va psevdo tasodifiylik farqi
Haqiqiy tasodifiylik tabiat hodisalariga asoslangan bo‘lib, oldindan bashorat qilib bo‘lmaydigan natijalarga ega. Masalan:
❇️ Radioaktiv parchalanish – Atom yadrolarining tabiiy parchalanishi
❇️ Termal shovqin – Elektron komponentlardagi tasodifiy termal harakatlar
❇️ Atmosfera shovqini – Tabiiy elektromagnit signallar
Bunday manbalar haqiqiy tasodifiy son generatorlari (TRNG - True Random Number Generator) uchun ishlatiladi.
Aksincha, psevdo tasodifiy son generatorlari (PRNG) kompyuter algoritmlariga asoslanib ishlaydi va oldindan hisoblab chiqiladigan natijalarni qaytaradi. Bu deterministik jarayon bo‘lib, agar bir xil boshlang‘ich qiymat (seed) ishlatilsa, natija ham bir xil bo‘ladi.
---
🔰 2. Dart dasturlash tilida tasodifiy sonlar yaratish
Dart tilida tasodifiy sonlarni yaratish uchun dart:math kutubxonasidagi Random sinfi ishlatiladi.
2.1. Oddiy psevdo tasodifiy sonlar
Quyidagi kod Random sinfi yordamida 0 dan 99 gacha tasodifiy butun son, 0.0 dan 1.0 gacha tasodifiy o‘nlik son va true/false qiymatlarini hosil qiladi:
Bu kod har safar ishga tushirilganda turli natijalar hosil qiladi, chunki Random avtomatik ravishda tizim vaqtiga asoslangan seed ishlatadi.
---
2.2. Seed bilan bir xil natijani olish
Agar biz seed ni qo‘lda belgilasak, har safar bir xil natijalar hosil bo‘ladi:
Ko‘rib turganingizdek, bir xil seed ishlatilganda, har safar bir xil tasodifiy sonlar qayta hosil qilinadi. Bu psevdo tasodifiylikning yaqqol belgisi.
---
2.3. Haqiqiy tasodifiylikka yaqinroq natijalar
Agar biz kriptografik xavfsiz random generator ishlatmoqchi bo‘lsak, dart:crypto kutubxonasidagi Random.secure() dan foydalanishimiz mumkin:
Random.secure() odatiy Random sinfiga qaraganda ancha kuchli bo‘lib, u kripto xavfsiz tasodifiy sonlar hosil qiladi.
---
🔰 3. Psevdo tasodifiylik qayerda ishlatiladi?
Psevdo tasodifiylik real hayotda ko‘plab sohalarda qo‘llaniladi:
Dart tilida Random sinfi ko‘pchilik holatlar uchun yetarli bo‘lsa ham, shifrlash va xavfsizlik talab qiladigan vaziyatlarda Random.secure() ishlatilishi tavsiya etiladi.
---
🔰 4. Psevdo tasodifiylikning cheklovlari
Psevdo tasodifiy generatorlar haqiqatdan ham tasodifiy emas, chunki:
1. Ularni bashorat qilish mumkin – Agar generatorning dastlabki seed qiymati ma'lum bo‘lsa, keyingi natijalar oldindan hisoblab chiqilishi mumkin.
2. Ular vaqt o‘tishi bilan takrorlanadi – PRNG-larning ko‘pchiligi bir muddatdan so‘ng o‘zining avvalgi holatiga qaytadi.
Kompyuterlarda tasodifiy sonlarni yaratish zarurati ko‘plab sohalarda uchraydi. O‘yinlar, shifrlash tizimlari, statistik modellashtirish va simulyatsiyalar tasodifiy sonlarga asoslanadi. Ammo, ko‘pchilik bilmagan haqiqat shuki, kompyuterlar haqiqiy tasodifiy sonlarni hosil qila olmaydi. Ular faqat psevdo tasodifiy sonlar (PRNG - Pseudo-Random Number Generator) yaratadi. Ushbu maqolada psevdo tasodifiylikning ishlash tamoyillari va Dart dasturlash tilida tasodifiy sonlarni qanday yaratish mumkinligi haqida batafsil tushuntiramiz.
---
🔰 1. Haqiqiy tasodifiylik va psevdo tasodifiylik farqi
Haqiqiy tasodifiylik tabiat hodisalariga asoslangan bo‘lib, oldindan bashorat qilib bo‘lmaydigan natijalarga ega. Masalan:
❇️ Radioaktiv parchalanish – Atom yadrolarining tabiiy parchalanishi
❇️ Termal shovqin – Elektron komponentlardagi tasodifiy termal harakatlar
❇️ Atmosfera shovqini – Tabiiy elektromagnit signallar
Bunday manbalar haqiqiy tasodifiy son generatorlari (TRNG - True Random Number Generator) uchun ishlatiladi.
Aksincha, psevdo tasodifiy son generatorlari (PRNG) kompyuter algoritmlariga asoslanib ishlaydi va oldindan hisoblab chiqiladigan natijalarni qaytaradi. Bu deterministik jarayon bo‘lib, agar bir xil boshlang‘ich qiymat (seed) ishlatilsa, natija ham bir xil bo‘ladi.
---
🔰 2. Dart dasturlash tilida tasodifiy sonlar yaratish
Dart tilida tasodifiy sonlarni yaratish uchun dart:math kutubxonasidagi Random sinfi ishlatiladi.
2.1. Oddiy psevdo tasodifiy sonlar
Quyidagi kod Random sinfi yordamida 0 dan 99 gacha tasodifiy butun son, 0.0 dan 1.0 gacha tasodifiy o‘nlik son va true/false qiymatlarini hosil qiladi:
import 'dart:math';
void main() {
var random = Random(); // Random generator yaratish
print(random.nextInt(100)); // 0 dan 99 gacha tasodifiy son
print(random.nextDouble()); // 0.0 dan 1.0 gacha tasodifiy son
print(random.nextBool()); // true yoki false
}
Bu kod har safar ishga tushirilganda turli natijalar hosil qiladi, chunki Random avtomatik ravishda tizim vaqtiga asoslangan seed ishlatadi.
---
2.2. Seed bilan bir xil natijani olish
Agar biz seed ni qo‘lda belgilasak, har safar bir xil natijalar hosil bo‘ladi:
import 'dart:math';
void main() {
var random1 = Random(42); // Seed 42 bilan generator yaratamiz
var random2 = Random(42); // Xuddi shu seed bilan yana bitta yaratamiz
print(random1.nextInt(100)); // 86
print(random1.nextInt(100)); // 3
print(random2.nextInt(100)); // 86 (Xuddi shunday natija!)
print(random2.nextInt(100)); // 3 (Xuddi shunday natija!)
}
Ko‘rib turganingizdek, bir xil seed ishlatilganda, har safar bir xil tasodifiy sonlar qayta hosil qilinadi. Bu psevdo tasodifiylikning yaqqol belgisi.
---
2.3. Haqiqiy tasodifiylikka yaqinroq natijalar
Agar biz kriptografik xavfsiz random generator ishlatmoqchi bo‘lsak, dart:crypto kutubxonasidagi Random.secure() dan foydalanishimiz mumkin:
import 'dart:math';
import 'dart:crypto';
void main() {
var secureRandom = Random.secure();
print(secureRandom.nextInt(100)); // Haqiqiy tasodifiylikka yaqinroq natija
}
Random.secure() odatiy Random sinfiga qaraganda ancha kuchli bo‘lib, u kripto xavfsiz tasodifiy sonlar hosil qiladi.
---
🔰 3. Psevdo tasodifiylik qayerda ishlatiladi?
Psevdo tasodifiylik real hayotda ko‘plab sohalarda qo‘llaniladi:
Dart tilida Random sinfi ko‘pchilik holatlar uchun yetarli bo‘lsa ham, shifrlash va xavfsizlik talab qiladigan vaziyatlarda Random.secure() ishlatilishi tavsiya etiladi.
---
🔰 4. Psevdo tasodifiylikning cheklovlari
Psevdo tasodifiy generatorlar haqiqatdan ham tasodifiy emas, chunki:
1. Ularni bashorat qilish mumkin – Agar generatorning dastlabki seed qiymati ma'lum bo‘lsa, keyingi natijalar oldindan hisoblab chiqilishi mumkin.
2. Ular vaqt o‘tishi bilan takrorlanadi – PRNG-larning ko‘pchiligi bir muddatdan so‘ng o‘zining avvalgi holatiga qaytadi.
Flutter Dev | Uzbekistan 🇺🇿
Psevdo Tasodifiylik: Haqiqiy Tasodifiylikdan Farqi va Dart Tilida Ishlatilishi Kompyuterlarda tasodifiy sonlarni yaratish zarurati ko‘plab sohalarda uchraydi. O‘yinlar, shifrlash tizimlari, statistik modellashtirish va simulyatsiyalar tasodifiy sonlarga asoslanadi.…
🔰 3. Haqiqiy tasodifiylik talab qilinadigan joylarda zaif bo‘lishi mumkin – Ayniqsa, kriptografiyada PRNG ishlatish xavfsizlik muammolariga olib kelishi mumkin.
---
Xulosa
Dart tilida Random sinfi psevdo tasodifiy sonlar yaratadi, ya’ni haqiqiy tasodifiy emas. Agar siz bir xil seed bilan Random yaratsangiz, har safar bir xil natijalar qayta hosil bo‘ladi. Agar haqiqiy tasodifiylik kerak bo‘lsa, Random.secure() yoki boshqa tashqi manbalar ishlatilishi lozim.
Haqiqiy tasodifiylikka erishish uchun radioaktiv parchalanish, termal shovqin, yoki atmosfera shovqini kabi fizik jarayonlardan foydalanadigan apparatli tasodifiy generatorlar talab qilinadi. Shu sababli, psevdo tasodifiylikning cheklovlarini tushunish va uni to‘g‘ri vaziyatlarda qo‘llash muhimdir.
@flutterdevuz
---
Xulosa
Dart tilida Random sinfi psevdo tasodifiy sonlar yaratadi, ya’ni haqiqiy tasodifiy emas. Agar siz bir xil seed bilan Random yaratsangiz, har safar bir xil natijalar qayta hosil bo‘ladi. Agar haqiqiy tasodifiylik kerak bo‘lsa, Random.secure() yoki boshqa tashqi manbalar ishlatilishi lozim.
Haqiqiy tasodifiylikka erishish uchun radioaktiv parchalanish, termal shovqin, yoki atmosfera shovqini kabi fizik jarayonlardan foydalanadigan apparatli tasodifiy generatorlar talab qilinadi. Shu sababli, psevdo tasodifiylikning cheklovlarini tushunish va uni to‘g‘ri vaziyatlarda qo‘llash muhimdir.
@flutterdevuz
Flutterchilarga qo'shimcha 4-5 soatlarini tejash uchun 2 ta tavsiya:
1. Hech qachon
2. Internet Connection Checker plugin oxirgi yangilanishi ortiqcha 4 sekund kutilshlarga sabab bo'lmoqda, sababi u internet aloqasini tekshirish uchun ko'plab domenlarga murojaat qilmoqda.
Yechim (adresslarni kamaytirish):
@flutterdevuz
1. Hech qachon
Postframecallback ichida push ishlatganda CupertinoNavigator ishlatmanglar. Buzuvchi qayta yasashlarga olib keladi. Mabodo manzil sahifada tarmoqqa murojaat bo'lsa, ortiqcha murojaatlar oqimi qayerdan ekanini bilolmay "boshingiz qotadi".2. Internet Connection Checker plugin oxirgi yangilanishi ortiqcha 4 sekund kutilshlarga sabab bo'lmoqda, sababi u internet aloqasini tekshirish uchun ko'plab domenlarga murojaat qilmoqda.
Yechim (adresslarni kamaytirish):
/// Network Info
di.registerLazySingleton(
() => InternetConnectionChecker.createInstance(addresses: [
AddressCheckOption(
uri: Uri.parse("https://google.com"))
]));
di.registerLazySingleton<NetworkInfo>(() => NetworkInfoImpl(di()));
@flutterdevuz
⚡7👍1
Где в Яндексе есть Flutter?
Недавно прошедший внутренний митап ознаменовал новую веху — в Яндексе появилось Flutter-комьюнити!
На митапе отлично повеселились, а заодно провели инвентаризацию команд, использующих Flutter — записывайте😯
1. Про — iOS | Android
2. Драйв — iOS | Android
3. Практикум — iOS | Android
4. Маршрутизация — iOS | Android
5. Афиша — iOS | Android
6. Авто.ру Бизнес — iOS | Android
7. Заправки — iOS | Android
8. Смена — iOS | Android
9. Маркет ПВЗ — iOS | Android
Ещё есть несколько мест, где Flutter встроен в Яндекс Go. Ну и на десерт. В десктопном Яндекс Браузере многие части UI — на Flutter😎
Ну чисто чтобы у вас не было сомнений по поводу количества продуктовых Flutter-команд в Яндексе☕️
https://t.me/flutterbro
Недавно прошедший внутренний митап ознаменовал новую веху — в Яндексе появилось Flutter-комьюнити!
На митапе отлично повеселились, а заодно провели инвентаризацию команд, использующих Flutter — записывайте
1. Про — iOS | Android
2. Драйв — iOS | Android
3. Практикум — iOS | Android
4. Маршрутизация — iOS | Android
5. Афиша — iOS | Android
6. Авто.ру Бизнес — iOS | Android
7. Заправки — iOS | Android
8. Смена — iOS | Android
9. Маркет ПВЗ — iOS | Android
Ещё есть несколько мест, где Flutter встроен в Яндекс Go. Ну и на десерт. В десктопном Яндекс Браузере многие части UI — на Flutter
Ну чисто чтобы у вас не было сомнений по поводу количества продуктовых Flutter-команд в Яндексе
https://t.me/flutterbro
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1🤬1
Forwarded from UzGeeks Community
Assalom alaykum!!!
UzGeeksʼda Mobile kuni!
📌 5-aprel, shanba kuni Najot ta'lim, Chimboy filialida "UzGeeks Community April2025 Mobile Day Meetup" boʻlib oʻtadi.
⭐️ MeetUpʼda quyidagi spikerlar ishtirok etadi:
1️⃣ Flutterda backend imkoniyatlari bormi? Dart dasturlash tili ushbu holatga tayyormi?
✨ Azizbek Kodirov (Flutter Developer @ Thinkland)
2️⃣ Dev, Staging, Production: Flutter Flavorlar bilan ishlash
✨ Madina Agzamova (Mobile Developer @ UIC Group)
3️⃣ Ilovangiz tarmoq jihatdan yaxshi himoyalanganmi? Interceptorlar bilan mustahkam ilovalar yarating
✨ Jahongir Qo'ziboyev (JAYSON KHAN) (Flutter Developer @ UIC Group)
🔄 Meetup odatiy ravishda bepul boʻlib, soat 14:00 da boshlanadi, unda qatnashish uchun UzGeeks.uz saytida roʻyxatdan oʻtish kerak.
📍Manzil: Najot ta'lim, Chimboy filliali
🎙Hamkorlar:
➡️ Najot ta'lim
➡️ Oʻzbekiston Respublikasi Raqamli texnologiyalar vazirligi;
➡️ Raqamli ta'limni rivojlantirish markazi;
➡️ Thinkland.
Sayt | Guruh | Kanal | Facebook
💫 Qo'llab quvvatlash uchun
UzGeeksʼda Mobile kuni!
📌 5-aprel, shanba kuni Najot ta'lim, Chimboy filialida "UzGeeks Community April2025 Mobile Day Meetup" boʻlib oʻtadi.
⭐️ MeetUpʼda quyidagi spikerlar ishtirok etadi:
1️⃣ Flutterda backend imkoniyatlari bormi? Dart dasturlash tili ushbu holatga tayyormi?
✨ Azizbek Kodirov (Flutter Developer @ Thinkland)
2️⃣ Dev, Staging, Production: Flutter Flavorlar bilan ishlash
✨ Madina Agzamova (Mobile Developer @ UIC Group)
3️⃣ Ilovangiz tarmoq jihatdan yaxshi himoyalanganmi? Interceptorlar bilan mustahkam ilovalar yarating
✨ Jahongir Qo'ziboyev (JAYSON KHAN) (Flutter Developer @ UIC Group)
🔄 Meetup odatiy ravishda bepul boʻlib, soat 14:00 da boshlanadi, unda qatnashish uchun UzGeeks.uz saytida roʻyxatdan oʻtish kerak.
📍Manzil: Najot ta'lim, Chimboy filliali
🎙Hamkorlar:
➡️ Najot ta'lim
➡️ Oʻzbekiston Respublikasi Raqamli texnologiyalar vazirligi;
➡️ Raqamli ta'limni rivojlantirish markazi;
➡️ Thinkland.
Sayt | Guruh | Kanal | Facebook
💫 Qo'llab quvvatlash uchun
This media is not supported in your browser
VIEW IN TELEGRAM
Biz qovurildikmi?
Flutterflow kompaniyasi ham kelajak texnologiyalari bilan poyga o'ynashga tushgan.
2 haftacha avval u DreamFlow nomli yangi startupni ishga tushirdi.
DreamFlow - Tasavvur qiling va Yasang.
Promt asosida dastur (mobil ilovalari yoki web ilovalar) yaratadi. Kodlari esa generatsiyadan keyinoq qo'lingizda bo'ladi (Flutter kodlari)
Sinab ko'ring: https://dreamflow.com/
Manba: Shu yerda
@flutterdevuz
Flutterflow kompaniyasi ham kelajak texnologiyalari bilan poyga o'ynashga tushgan.
2 haftacha avval u DreamFlow nomli yangi startupni ishga tushirdi.
DreamFlow - Tasavvur qiling va Yasang.
Promt asosida dastur (mobil ilovalari yoki web ilovalar) yaratadi. Kodlari esa generatsiyadan keyinoq qo'lingizda bo'ladi (Flutter kodlari)
Sinab ko'ring: https://dreamflow.com/
Manba: Shu yerda
@flutterdevuz
🤯9⚡1
⚡3👍1
Yangi trend: Bu mening shaxsiy o'yinchog'im :)
Prompt:
@flutterdevuz
Prompt:
"Create image. Create a toy of the person in the photo. Let it be an action figure. Next to the figure, there should be the toy's equipment, each in its individual blisters. 1) a flutter logo 2) A vs code logo 3) xcode logo 4) android studio logo. Don't repeat the equipment under any circumstance. The card holding the blister should be strong orange. Also, on top of the box, write 'Muhammad Aziz' and underneath it, 'Flutter Developer'. The figure and equipment must all be inside blisters. Visualize this in a realistic way."
@flutterdevuz
🎉4🆒1
