en
Feedback
Algo Vision

Algo Vision

Open in Telegram

Computer Vision - Algorithm for commercial questions @mlenginer

Show more
488
Subscribers
No data24 hours
-47 days
-2230 days
Posts Archive
Tassavur qiling sizni ma'lumotlar bazangiz PostgreSQL da va siz bazaga qandaydir so'rov yubormoqdasz. Oldizda bir xil muammoni yechadigan ikki xil turdagi so'rov bor. Ayni paytda bazada ma'lumot juda kam va ikki xil so'rov ham bir xil vaqtda ishlamoqda. Xo'sh siz qaysi so'rov yaxshiroq optimalroq ekanligini bilish uchun nimadan yoki qanday usuldan foydalansz? izohlarda fikrilarni kutaman!

Agar kimgadir qiziq bulsa. Yaxshi kompaniya yaxshi tulaydi. Faqat russian, english yaxshi bulishi kerak. Мы в активном поиске С++ Software Engineer, скажите, пожалуйста, рассматриваете ли для себя новые предложения? Больше о нас: https://www.usadynamics.com/ Ссылка на вакансию: https://hh.ru/vacancy/120846562?hhtmFrom=employer_vacancies Polina Kiman

This is how we conduct high-load testing.

photo content

bunda -n 10000 - umumiy 10 000 surov yuborilishini bildiradi. -c 200 - 200 ta paralel surov yuboriladi. Natijasi qo'yidagi rasmga uxshaydigan bo'lishi kerak 🔽🔽🔽👇👇👇👇👇👇👇

Backendni AB testlashni kurib utamiz. Bazida API dagi vaqtni RPS (request per secondni) aniqlashga to'gri keladi. Foydalanuvchilar soni yoki surovlar ko'payib borganda bu juda muhim. API ni benchmarkni (tezligini) testlash uchun bir nechta utils lar mavjud. Ularni eng oddiysi bu Apache Benchmark Siz serverni uzingiz xohlagan framework yoki tilda tuzishiz mumkin men shunchaki C++ da userverda kursataman. Aslida Google Benchmark userver kabi frameworkda avtomatik ulangan . Demak Server Template yuklab olamiz keyin configs ga utib static_config.yaml ga biroz ishlov beramiz.
components_manager:
    task_processors:
        main-task-processor:
            worker_threads: 4

        fs-task-processor:
            worker_threads: 2

    default_task_processor: main-task-processor

    components:
        server:
            listener:
                port: 8080
                task_processor: main-task-processor
        logging:
            fs-task-processor: fs-task-processor
            loggers:
                default:
                    file_path: '@stderr'
                    level: info
                    overflow_behavior: discard
        dynamic-config:
            defaults:
                HTTP_CLIENT_CONNECTION_POOL_SIZE: 1000

        testsuite-support: {}

        http-client:
            load-enabled: false
            fs-task-processor: fs-task-processor

        dns-client:
            fs-task-processor: fs-task-processor

        tests-control:
            load-enabled: false
            path: /tests/{action}
            method: POST
            task_processor: main-task-processor

        handler-ping:
            path: /ping
            method: GET
            task_processor: main-task-processor
            throttling_enabled: false
            url_trailing_slash: strict-match

        handler-hello:
            path: /hello
            method: GET,POST
            task_processor: main-task-processor
keyin esa CMakeList.txt dan serverga aloqasi bulmagan qismni olib tashlaymiz
cmake_minimum_required(VERSION 3.12)
project(service_template CXX)

# Adding userver dependency
find_package(userver COMPONENTS core postgresql QUIET)
if(NOT userver_FOUND)
    set(USERVER_FEATURE_CRYPTOPP_BLAKE2 OFF CACHE BOOL "" FORCE)
    set(USERVER_FEATURE_GRPC_CHANNELZ OFF CACHE BOOL "" FORCE)
    set(USERVER_FEATURE_REDIS_HI_MALLOC ON CACHE BOOL "" FORCE)

    if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/userver)
        message(STATUS "Using userver framework from third_party/userver")
        add_subdirectory(third_party/userver)
    else()
        message(FATAL_ERROR "Either install the userver or provide a path to it")
    endif()
endif()

userver_setup_environment()

# Common sources
add_library(${PROJECT_NAME}_objs OBJECT
        src/hello.hpp
        src/hello.cpp
)
target_link_libraries(${PROJECT_NAME}_objs PUBLIC userver::core)

# The Service
add_executable(${PROJECT_NAME} src/main.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}_objs)


# Install
include(GNUInstallDirs)

if(DEFINED ENV{PREFIX})
    message(STATUS "Set install prefix: $ENV{PREFIX}")
    file(TO_CMAKE_PATH "$ENV{PREFIX}" PREFIX_PATH)
    set(CMAKE_INSTALL_PREFIX "${PREFIX_PATH}")
endif()

file(GLOB CONFIGS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/configs/*.yaml ${CMAKE_CURRENT_SOURCE_DIR}/configs/*.json)

install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT ${PROJECT_NAME})
install(FILES ${CONFIGS_FILES} DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/${PROJECT_NAME} COMPONENT ${PROJECT_NAME})

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy
        ${CMAKE_CURRENT_SOURCE_DIR}/configs/static_config.yaml
        $<TARGET_FILE_DIR:${PROJECT_NAME}>/config_dev.yaml
        COMMENT "Copying static_config.yaml to binary dir as config_dev.yaml"
)
Build qilamiz va ishga tushuramiz.
mkdir build && cd build
cmake ..
make
./main --config ../static_config.yaml
2 - LEVEL ab yordamida testlaymiz
ab -n 10000 -c 200 http://127.0.0.1:8080/hello

Ko'pchilik zerikdi Juda sodda masala (hamma tushunadigan ) A. Kvadrat yil ⏱️ Vaqt cheklovi: 1 soniya 💾 Xotira cheklovi: 256 MB 2025 sonini (20 + 25)² = 2025 ko‘rinishida yozish mumkinligini payqadingizmi?
Sizga 4 xonali yil beriladi (masalan: 0001, 0185, 1375). Sizning vazifangiz bu yilni (a + b)² ko‘rinishida yozish mumkinligini aniqlash? Bu yerda a va b — butun, manfiy bo‘lmagan sonlar. Agar bo‘lsa, a va b ni chiqaring. Aks holda, -1 deb chiqarish kerak. 🧩 Kirish: Birinchi qatorda t — testlar soni (1 ≤ t ≤ 10⁴) Keyingi t qatorda har biri 4 xonali son bo‘lgan yillar (s) beriladi. 🧾 Chiqish: Har bir yil uchun: Agar mavjud bo‘lsa: a b Aks holda: -1
Misol: Kirish:
5  
0001  
1001  
1000  
4900  
2025
Chiqish:
0 1  
-1  
-1  
34 36  
20 25
Javoblaringizni izohlarda qoldiring. Yechimlar juda ko'p variantda bo'lishi mumkin. Sinovlarni bu yerda o'tkazishiz mumkin.

Shu bugungacha drogon frameworkni contribut qilayotgan edim. Endi astalik bilan Yandex ning userver frameworkiga otaman. Sizham biror nimaga contribut qilayapszmi? Izohlarda yozib qoldiring

Let's find bug! Leetcode linki shu yerda Masala mazmuni qisqacha shunday
Sizga nums nomli butun sonlardan iborat massiv berilgan. Shunday answer massivini qaytaringki, answer[i] qiymati nums[i] dan tashqari nums dagi barcha elementlar ko'paytmasiga teng bo'lsin. Massivning har qanday prefiksi yoki sufiksining ko‘paytmasi 32-bitli butun songa sig‘ishi kafolatlangan. Misol 1: Kiritish: nums = [1, 2, 3, 4] Chiqish: [24, 12, 8, 6] Misol 2: Kiritish: nums = [-1, 1, 0, -3, 3] Chiqish: [0, 0, 9, 0, 0] Cheklovlar: 2 <= nums.length <= 10⁵ -30 <= nums[i] <= 30 Kiritilgan qiymatlar shundayki, answer[i] 32-bitli butun songa sig‘ishi kafolatlangan.
Qo'yida kod keltirilgan sizning vazifangiz aynan qaysi holatlarda bu kod ishlamay qolishi mumkin. Yane bug ni topish. Javoblarni izohda kutib qolaman
class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
         int n = nums.size();
         std::vector<int> ans;

         int prod = std::accumulate(nums.begin(), nums.end(), 1, 
                                                        std::multiplies<int>());//barcha elementlar ko'paytmasi
         for(int i = 0; i < n; i++){
            ans.emplace_back(prod / nums[i]);
         }

         return ans;
    }
};

CLion endi bepul non commercial shaklda chiqdi. C/C++ ning eng yaxshi IDE barcha commercial proektlarda aynan shu IDE ishlatiladi. Endilikda talabalar yoki C++ qiziquvchilari bepul ko'rinishdan foydalanishi mumkin.

Galati qurilmacha berishdi 😂

Saudiya Arabistoni bilan birgalikda GM 🚖 niham kayfiyati buzildiyu 😂

Bunaqasu bulmagan 2:0 Hakam sotilgan bulsayam bizni jamoaa yutdi 🤩

Kimdir bormi Yandex Dev Meet UP 2

Video message00:16

👩‍💻🧑🏻‍💻Yandex Uzbekistan dasturlash va matematika bo‘yicha intellektual tanlov — Coding and Math Contest'ni tashkil etmo
👩‍💻🧑🏻‍💻Yandex Uzbekistan dasturlash va matematika bo‘yicha intellektual tanlov — Coding and Math Contest'ni tashkil etmoqda. Bu o‘z bilimlaringizni sinovdan o‘tkazish, dunyodagi yetakchi ekspertlar tomonidan tayyorlangan topshiriqlarni bajarish va qimmatbaho sovg‘alarni qo‘lga kiritish imkonini beradi. Kimlar ishtirok etishi mumkin: • O‘zbekiston oliy o‘quv yurtlari talabalari, • O‘zbekistonda ishlaydigan IT-mutaxassislari. Ishtirok etish uchun talablar: Zamonaviy dasturlash tillari, algoritmlar, statistika, ehtimollar nazariyasi, matematik analiz va chiziqli algebra bo‘yicha bilimlar talab etiladi. Tanlov formati: • Ikki onlayn bosqich — dasturlash va matematika bo‘yicha har biri 6-10 ta vazifadan iborat. • Til: inglizcha. • Ishtirok: bepul. • Final: oflayn mukofotlash marosimi, Yandex Uzbekistan tomonidan sovg‘alar va mukofotlar. Nega ishtirok etish kerak? • O‘zingizni sinovdan o‘tkazing — vazifalar xalqaro olimpiadalar va ICPC darajasidagi topshiriqlarga teng. • Tan olinish va mukofotlar olish — 65 mln so‘mlik mukofot fondi 8 ta eng yaxshi ishtirokchi orasida taqsimlanadi, qolgan ishtirokchilar esa qimmatbag‘o sovg‘alarga ega bo‘lishadi. • Hamjamiyatga qo‘shiling — tanlov dasturlash va matematikadan ishtiyoqi baland talabalar va yosh mutaxassislarni birlashtiradi. Qanday ishtirok etish mumkin? Ro‘yxatdan o‘tish: 18 aprelga qadar havola orqali. Hamkorlar: New Uzbekistan University, ML Community (INHA University), Yandex ma’lumotlarni tahlil qilish maktabi. O‘z mahoratingizni sinovdan o‘tkazing, intellektual hamjamiyatga qo‘shiling va Yandex Uzbekistan Coding and Math Contest'da g‘olib bo‘ling!💥

Demak (i,j,k) uchta index tanlash kerak ki i < j < k bo'lsin va (nums[i] - nums[j]) * nums[k] eng katta nomanfiy son bo'lishi kerak. yuqoridagi namunaga bersak (3 - 1) * 2 eng katta qiymatga ega bo'ladi. Bu degani nums[i]—>eng maximum son nums[j] esa eng minimum son nums[k]->esa ikkinchi eng katta son bo'lishi kerak lekin muammo shunda ki bular ketma ket kelishi kerak Tassavur qilamiz biz i- urinda turibmiz yane [12,6,1,7] sonlar berilganda biz 6 sonini ko'rayotgan bo'lsak shu songacha bo'lgan chap tomondagi eng katta son bu 12 o'ng tomondan hisoblaganda esa eng katta son 7 bo'ladi demak ikkita massiv tuzamiz prefixMax - bu massiv 0..i - songacha bo'lgan eng katta elementni joylashtiramiz. postfixMax - |n| .. i (o'ngdan chapga) bo'lgan eng katta elementni joylashtiramiz. [12,6,1,7] shu massiv asosida bizni prefix postfix Maximumlarimiz qo'yidagicha bo'ladi. prefixMax = [12, 12, 12, 12] postfixMax =[12, 7, 7, 7] bizda chap va o'ng tomondagi eng katta elementlar bor massivni 1 - elementidan boshlab oxiridan bitta oldingacha bo'lgan elementlarni nums[j] o'rniga joylashtirib eng katta qiymatni olamiz
class Solution {
public:
    long long maximumTripletValue(vector<int>& nums) {
       int n = nums.size();    
       std::vector<int> leftPrefixMax(n), rightPostfixMax(n);

       leftPrefixMax[0]       = nums[0];
       rightPostfixMax[n - 1] = nums[n - 1];
       
       for(int i = 1; i < n; i++){
          leftPrefixMax[i]           = std::max(leftPrefixMax[i - 1], nums[i - 1]);
          rightPostfixMax[n - i - 1] = std::max(rightPostfixMax[n - i], nums[n - i]); 
       }

       long long maxTripletValue = 0;
       for(int j = 1; j < n - 1; j++){
           long long currentValue = (leftPrefixMax[j] - nums[j]) *1ll * rightPostfixMax[j];
           maxTripletValue        = std::max(maxTripletValue, currentValue);
       }

       return maxTripletValue;
    }
};
PS: bunda biz O(N) vaqt va O(N) xotira ishlataypmiz. qo'shimcha xotiradan voz kechish mumkin harakat qilib ko'ring!

Let's solve the Daily Leetcode task. 2874. Maximum Value of an Ordered Triplet II
Bizga nums butun sonlar massivi berilgan. 
Biz shunday uchlikni topishimiz kerakki uchlik ketma ket (i,j,k va i < j < k) kelsin
va (nums[i] - nums[j]) * nums[k] mumkin bo'lgan eng katta manfiy bo'lmagan qiymatga ega bo'lsin.
Agar barcha uchliklarni qiymati  manfiy bo'lsa 0 qaytarilishi kerak. 
Kirish: nums = [12,6,1,2,7] Chiqish: 77 biz (0,2,4) indexlarni tanlasak biz eng katta musbat qiymatga ega bo'lamiz. (nums[0] - nums[2]) * nums[4] = (12-1) * 7 = 77
Kelilar masalani qism masalaga bo'lamiz va birgalikda ishlashga harakat qilamiz. Qo'yidagicha oldimizga Task qo'yamiz Bizga butun sonlar massivi berilgan biz undan shunday uchta son tanlashimiz kerakki (a,b,c) (a - b) * c maksimal qiymatga ega bo'lsin Masalan [1,2,3] tartibni hisobga olmasak bizda bir nechi variant bor. (1 - 2) * 3 (1 - 3) * 2 (3 - 1) * 2 (3 - 2) * 1 Xo'sh yechimni keyingi qismiga o'tishimiz uchun shu joyda to'xtalib bitta savolga izohlarda javob qoldirishga harakat qilamiz Qachon (a-b)*c eng katta qiymatga ega bo'ladi?

Biror kompaniyada ishlash bu shunchaki qora ishchi bo'lish xolos! To'gri boshida hamma shunday boshlaydi va ancha muddat ishlaydi. lekin shu bilan birgalikda albatta o'zi qandaydir loyiha ustida ishlab borishi kerak. Gap qaysidir dasturlash tilidiyam emas yoki texnik bilimdayam emas. Hamma gap odamlarni ishini osonlashtirshda! va yanada aniqroq qilib aytsik biznesni IT yordamida boshqarishda! PS: Ertalab bitta shogirdim telfon qilib biz oz'imiz loyiha tuzdek unga hattoki mijoz ham topdik deganiga juda xursand bo'ldim. Bitta lampani kashf qilishda 1000 marta o'rinish qilishgan ekan Xullas harakatdan to'xtagan odam boshqalarni maqsadlarini va orzularini shunchaki ruyobga chiqaradi(bizga uxshab).
Doimo harakatda bo'lish shart! Maqsad quyish kerak va unga albatta erishish uchun maksimal harakat qilish kerak!
Xuddi oldizda qandaydir Task-Masala berilganda hamma tomonlama harakat qilayotgandek kimdir GPTdan kimdir uzi yana kimdir ustozlaridan .... yane umumiy qilsak Qo'yilgan muammoni yechish uchun HARAKAT!