How to create a good mobile application with Python:
Step 1. Don't do that.
Step 2. Jump to the step 1.
Step 1. Don't do that.
Step 2. Jump to the step 1.
😁50👍1
Asosiy servislarimizdan biri bilan bitta third-party service o'rtasida ma'lumot almashish uchun pollingdan foydalanamiz (nega webhook emas deb so'ramang). O'tgan juma kuni productionga bugi bor featureni release qilish sabab serverdagi ba'zi configurationlar o'zgarib ketibdi. Natijada dam olish kunlari bizning serverimiz ularning serveriga yaxshigina RPS bilan to'xtovsiz request yuboribdi. 2+ kun davomida, to'xtovsiz.
Ularning ham DDoSga qarshi himoyasi yo'q shekilli, blok qilishmabdi. Yaxshi-ki, dam olish kunlari sabab ularning serverida boshqa load kam bo'lgan. Bo'lmasa serveri o'chib qolib boshimiz baloga qolishi mumkin edi 😅.
Behavioural interviewda "Qovun tushirgan vaqtingni gapirib ber" deb so'rab qolishsa aytib beradigan story bo'ldi.
O'rgangan darslarim:
1. Third-party toollar ixtiyoriy vaqtda kutilmagan natija berishi mumkin. Hatto eng ishonchlilari ham.
2. Serverni monitoring qilish uchun ketgan resurslar o'zini oqlaydi.
3. Testlar hech qachon yetarli emas.
4. Juma kuni kechki vaqt deploy qilish yaxshi fikr emas.
Ularning ham DDoSga qarshi himoyasi yo'q shekilli, blok qilishmabdi. Yaxshi-ki, dam olish kunlari sabab ularning serverida boshqa load kam bo'lgan. Bo'lmasa serveri o'chib qolib boshimiz baloga qolishi mumkin edi 😅.
Behavioural interviewda "Qovun tushirgan vaqtingni gapirib ber" deb so'rab qolishsa aytib beradigan story bo'ldi.
O'rgangan darslarim:
1. Third-party toollar ixtiyoriy vaqtda kutilmagan natija berishi mumkin. Hatto eng ishonchlilari ham.
2. Serverni monitoring qilish uchun ketgan resurslar o'zini oqlaydi.
3. Testlar hech qachon yetarli emas.
4. Juma kuni kechki vaqt deploy qilish yaxshi fikr emas.
👍24😁10
Engineering Notes
Meme explained
Instance methodlar boshqa tillarda qanday implement qilingan?
Biladiganlar commentda qisqacha ma'lumot bersangiz xursand bo'lardim.
Biladiganlar commentda qisqacha ma'lumot bersangiz xursand bo'lardim.
Engineering Notes
What is the output of the following code?
Mana bu kod error chiqaradi.
Bunga sabab esa Python Method Resolution Order(MRO)ni aniqlash uchun ishlatadigan algorithm – C3 Linearization.
C3 Linearization algorithmining vazifasi biror classning hamma ancestor(ajdod)larini ma'lum qonuniyat asosida chiziqli tartiblash (bu orqali method overriding/overloading hal qilinadi).
Bu algorithm biroz murakkab bo'lsa-da, u monolith xususiyatini saqlab qola oladi. Bundan oldin ishlatilgan "Depth-first, left to right" (Python 2.2 gacha ishlatilgan) algorithmi tuzilishi jihatdan juda sodda bo'lsa-da, u monotonic emas edi (ya'ni multiple inheritance vaqtida order almashib ketishi mumkin edi).
Yuqoridagi misolda algorithm E classning ancestorlarini linearize qilishda dead lockga o'xshash muammoga duch keladi va TypeError chiqaradi.
C3 ning qanday ishlashi haqida esa hali yana gaplashamiz.
Manbaa:
https://www.python.org/download/releases/2.3/mro/
@boboshersnotes
Bunga sabab esa Python Method Resolution Order(MRO)ni aniqlash uchun ishlatadigan algorithm – C3 Linearization.
C3 Linearization algorithmining vazifasi biror classning hamma ancestor(ajdod)larini ma'lum qonuniyat asosida chiziqli tartiblash (bu orqali method overriding/overloading hal qilinadi).
Bu algorithm biroz murakkab bo'lsa-da, u monolith xususiyatini saqlab qola oladi. Bundan oldin ishlatilgan "Depth-first, left to right" (Python 2.2 gacha ishlatilgan) algorithmi tuzilishi jihatdan juda sodda bo'lsa-da, u monotonic emas edi (ya'ni multiple inheritance vaqtida order almashib ketishi mumkin edi).
Yuqoridagi misolda algorithm E classning ancestorlarini linearize qilishda dead lockga o'xshash muammoga duch keladi va TypeError chiqaradi.
C3 ning qanday ishlashi haqida esa hali yana gaplashamiz.
Manbaa:
https://www.python.org/download/releases/2.3/mro/
@boboshersnotes
👍15
Ertalabdan (USda deyarli yarim tun) production serverimizda muammo chiqqan. Yarim soat loglar bilan (test qilingan) kodlarni yonma-yon analiz qilib aniqladim-ki, bug biz yozgan kodlarda emas, biz background tasklar uchun ishlatadigan open-source software – Celeryda ekan.
Umuman olganda, bu birinchi marta Celery bilan bog'liq muammoga duch kelishim emas. Mana bu va ishdan tashqari yana bir nechta vaziyatlarda ham Celery pand bergandi. Umuman olganda, ko'p vazifalarni qoyillatib bajarsa-da, ba'zi eng oddiy vazifalarni bajarishda oqsaydi.
P.S. Menimcha Celeryga contribute qilib undagi buglarni fix qilishdan ko'ra yangi soddaroq alternativ yozib chiqish osonroq bo'lsa kerak.
P.S.S. Interviewlarda aybni boshqa birovning bo'yniga ilib qo'ygan vaqting haqida gapirib ber deb so'rashsa aytib beradigan story bo'ldi 😅.
@boboshersnotes
Umuman olganda, bu birinchi marta Celery bilan bog'liq muammoga duch kelishim emas. Mana bu va ishdan tashqari yana bir nechta vaziyatlarda ham Celery pand bergandi. Umuman olganda, ko'p vazifalarni qoyillatib bajarsa-da, ba'zi eng oddiy vazifalarni bajarishda oqsaydi.
P.S. Menimcha Celeryga contribute qilib undagi buglarni fix qilishdan ko'ra yangi soddaroq alternativ yozib chiqish osonroq bo'lsa kerak.
P.S.S. Interviewlarda aybni boshqa birovning bo'yniga ilib qo'ygan vaqting haqida gapirib ber deb so'rashsa aytib beradigan story bo'ldi 😅.
@boboshersnotes
👍29😁8
Birinchi marta Leetcodeda hard darajadagi masalani yarim soatdan kam vaqtda yechdim. Menimcha bu masala harddan ko'ra ko'proq mediumga tortadi.
Link: https://leetcode.com/problems/reverse-nodes-in-k-group/
Link: https://leetcode.com/problems/reverse-nodes-in-k-group/
👍22
Mana bu savol xuddi language grammarga o'xshash ekan.
Yaqinda universitetda shu haqida o'rgangandik. Baribir 40 minut ketdi.
Link: https://leetcode.com/problems/valid-number/
Yaqinda universitetda shu haqida o'rgangandik. Baribir 40 minut ketdi.
Link: https://leetcode.com/problems/valid-number/
Leetcodeda bugungi daily challengeni O(n) time, O(k) space complexityda yechdim.
Biladiganlar "fisht" deb yuboringlar, shuni O(1) space complexityda yechish mumkinmi?
Biladiganlar "fisht" deb yuboringlar, shuni O(1) space complexityda yechish mumkinmi?
😁13👍3
Hozir ko'rdim, leetcode daily challenge bugun ham backtrackingga oid ekan. Kechagi problemga bir-ikkita o'zgarish kiritib submit qilaversak ham bo'ladi.
👍12
AI yaqin kelajakda dasturchilarning ishini to'liq tortib oladimi?
Qisqa javob: Yo'q.
Uzunroq javob: Hozirgina aytdim-ku yo'q deb.
Qisqa javob: Yo'q.
Uzunroq javob: Hozirgina aytdim-ku yo'q deb.
😁31👍2
Aytgancha, ertaga JSchilar meetup qilishayapti ekan. Razvedkaga boramiz.
😁27🍾7👎1
O'tgan hafta ishda va mocklarni qo'shib hisoblaganda 5 ta interview o'tkazdim. Barchasi backend yo'nalishida, middle daraja uchun.
Deyarli barchada bir umumiy muammo kuzatdim. Dasturlashdagi g'oya, muammoga yondoshuv o'ta texnik. Ayniqsa OOP va umuman, paradigmlar borasida bu ancha sezildi. OOP haqidagi deyarli barcha savollarga o'ta texnik javoblar oldim. Implementatsiya bor, g'oya yo'q. Xuddiki tana bor, lekin unda jon yo'q.
Nimadir xato. Yoki men bu mavzularda ancha injiqman yoki boshqa muammo bor.
Deyarli barchada bir umumiy muammo kuzatdim. Dasturlashdagi g'oya, muammoga yondoshuv o'ta texnik. Ayniqsa OOP va umuman, paradigmlar borasida bu ancha sezildi. OOP haqidagi deyarli barcha savollarga o'ta texnik javoblar oldim. Implementatsiya bor, g'oya yo'q. Xuddiki tana bor, lekin unda jon yo'q.
Nimadir xato. Yoki men bu mavzularda ancha injiqman yoki boshqa muammo bor.
😁16👍4
Cantor's diagonalization argumentiga yaxshi tushuna olmayapman. Shu haqida ma'lumot biladigan va ba'zi savollarimga javob topishga yordam bermoqchi bo'lgan biror kishi bo'lsa DM yoki commentga yozishingizni iltimos qilaman. Kunning yarmini bir savolga javob izlashga sarfladim. Endi ertaga davom etamiz.
P.S. Bu post dasturlash emas, matematika haqida.
P.S. Bu post dasturlash emas, matematika haqida.
Wikipedia
Cantor's diagonal argument
Cantor's diagonal argument (among various similar names) is a mathematical proof that there are infinite sets which cannot be put into one-to-one correspondence with the infinite set of natural numbers – informally, that there are sets which in some sense…
👍3