• Пример простого способа поиска изображения?

    @D3Nd3R
    Надо идти от простого. С openCV такую задачу можно решить за пару часов.
    Воспользуйтесь разностным коррелятором и проходите по последовательно по всем пикселям.
    Или surf/sift, не уверен можно ли обнаружить несколько одинаковых объектов.
    Если расположение регионов не меняется. То просто задайте ROI и с помощью коррелятора просто определяйте к какому классу относится та или иная область.
    Ответ написан
    Комментировать
  • Unity ADS точно платит от 6$ до 12$?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Ютуб платит около 0,8$ за 1000 показов. Там есть уникумы с 50+ миллионов подписчиков с доходом в 150k$ в месяц. Это Вас не смущает?
    Вот пример:
    https://www.youtube.com/user/PewDiePie/about?disab...
    за время жизни канала (с 2010 года) было 16 665 142 435 просмотров умножаем на 0,8 делим на 1000 и получаем 13M$ c хвостиком, минус шведские (могу ошибаться) налоги 40% итого чел в плюсе на 8 миллионов долларов за 7 лет.
    И проблема совсем не в выплатах, проблема в 16 миллиардах просмотров. Сделайте мне такие просмотры и я сам Вам с радостью отдам 0,34 за каждую тысячу. Потому что заработаю в разы больше.
    Ответ написан
    6 комментариев
  • Как в Vue отсортировывать массив по алфавиту определенного свойства, если определенный checkbox true?

    0xD34F
    @0xD34F Куратор тега Vue.js
    Сделайте вычисляемое свойство, которое в зависимости от состояния чекбокса будет представлять массив в дефолтном порядке или алфавитном:

    <input type="checkbox" v-model="sort">
    <div v-for="dog in sortedDogs">

    data: () => ({
      sort: false,
    }),
    computed: {
      sortedDogs() {
        return this.sort
          ? [...this.allDogs].sort((a, b) => a.breeds[0].name.localeCompare(b.breeds[0].name))
          : this.allDogs;
      },
    },
    Ответ написан
    2 комментария
  • Как puppeteer заставить работать через socks5 прокси?

    Поставьте локальный прокси, который не будет требовать авторизации и пробрасывать на родительский, например в 3proxy конфигурация что-нибудь типа

    auth iponly
    fakeresolve
    internal 127.0.0.1

    allow *
    parent socks5+ proxyhost 8080 user password
    socks -p1080

    и используйте в браузере 127.0.0.1 1080.
    P.S. но вообще в браузерах лучше использовать http/https прокси, в них хендшейк короче.
    Ответ написан
    2 комментария
  • Почему puppeteer js при парсинге не дожидается селектора, который отображается в браузере?

    @EVOSandru6 Автор вопроса
    await page.waitForSelector('.textdivresp').then(() => {
            console.log('textdivresp_ololo');
        });
    
        await page.evaluate(() => {
            let elements = document.getElementsByClassName('textdivresp');
            elements[1].click()
        });
    Ответ написан
    Комментировать
  • Курс по Vue.js с тяжелым проектом?

    tema_sun
    @tema_sun
    Ситуация такова, что устроился в компанию...


    Вы сейчас проходите самый лучший курс. Мало того, вам за это еще и платят!
    Ответ написан
    Комментировать
  • Курс по Vue.js с тяжелым проектом?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    Ни один курс вам тут не поможет. Только практика. Теория хороша, но она должна быть к месту.
    Изучайте проект. Нашли проблему — гуглите или спрашивайте про способы решения.

    Не знаете как организовать код?
    Вам помогут:
    https://vuejs.org/v2/style-guide/
    Читайте про паттерны проектирования какие плюсы минусы у каждого, где и какой стоит применять. И не только для Vue а для всего JS.

    Или скажем, у вас есть несколько компонентов которые дублируют друг друга — начните рефакторить. Столкнетесь с проблемой — гуглите как её решить. Только не задавайте вопросы "Как рефакторить?". Рефакторинг призван изменить код чтобы решить одну или несколько проблем (не багов, а именно архитектурных проблем). Но для этого вы должны эти самые проблемы выявить. И тогда искать способ решения конкретно для них.

    Или с кажем вы найдёте проблему с производительностью. Гуглите как проводить аудит, определите узкое место вашего приложения, определите проблему и гуглите как её решить.

    Только такого рода обучение "Найти проблему — найти решение" даёт какой-либо результат. И это не зависит от "размеров" проекта.

    Собственный проект тоже хорошо подходит. Но не для всех. У вас должно быть стремление постоянно его улучшать, доводить до идеала, не только с точки зрения пользователя, но и сточки зрения разработчика. Чтобы и работало быстро, и интерфейс был удобным и прогать было сплошное удовольствие. Если у вас есть этот внутренний вдохновленный перфекционист, то он поможет вам находить "проблемы" в вашем приложении и даст стимул искать решения.

    UPD
    С большими и старыми проектами есть такое дело, что порой, самая упоротая дичь, которая там может быть написана — написана не просто так. Учитывайте, что то что вы сейчас собираетесь исправлять, существует по какой-то причине и не всегда очевидной. Возможно 10 месяцев назад была очень узко направленная задача (учто-то в духе, страница для печати отчета бухгалтерами), решить которую можно было только огромным костылем. И сейчас все о ней уже забыли. И убрав этот костыль вы можете сломать что-то. И хорошо если это всплывёт сразу, а не ещё через 10 месяцем.
    Ответ написан
    Комментировать
  • Курс по Vue.js с тяжелым проектом?

    @Sashqa
    Не очень понимаю, каким образом "урок по разработке большого проекта" поможет Вам разобраться в проекте компании, который пишут уже больше года.

    Лучший учитель - практика. Применяйте новые знания на практике.
    От того, что вы сделаете "большой проект" под копирку по уроку, мозгов не прибавится. Придумайте что-то свое и в путь
    Ответ написан
    2 комментария
  • Three.js или Unity?

    svaa1982
    @svaa1982
    Web разработчик с трёхмерным уклоном
    Вопрос сложный, ибо пока в Unity нету нормальной поддержки WebGL, three.js же изначально затачивается на работу в браузере. Всё определяется вашей готовностью ждать и сложностью проекта, который вы намереваетесь сделать. Можете посмотреть другие движки, например blend4web, он более продвинутый чем three.js, но требует денег в случае если вы захотите разрабатывать коммерческие решения.
    Ответ написан
    Комментировать
  • Как верстаются блоки со сложным вырезом?

    RAX7
    @RAX7
    на SVG вырез можно сделать хоть в форме котенка
    Ответ написан
    4 комментария
  • Как разрешить ввод только 2х знаков после запятой?

    0xD34F
    @0xD34F Куратор тега Vue.js
    val => (val.split('.')[1] || '').length < 3 || 'Не более двух знаков после запятой'
    Ответ написан
    Комментировать
  • Крестики нолики 5x5 с непобедимым искусственным интеллектом?

    dummyman
    @dummyman
    диссидент-схизматик
    https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B5%D...
    https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D0%BC%D...

    Просто выберите для себя версию правил, а игруху с исходными кодами найдете на любую платформу

    Есть еще турнир AI по гомоку
    Ответ написан
    Комментировать
  • Как проверить совместимость железа с ubuntu?

    Compolomus
    @Compolomus
    Комполом-быдлокодер
    Да убунту у меня поднялась даже после смены всего железа, без переустановки, тогда как винда сдохла) , а кто бы мог подумать лет 10 назад
    Ответ написан
    2 комментария
  • Как проверить совместимость железа с ubuntu?

    @nukler
    местный юродивый
    Не партесь. у меня бубунта пережила 3 переезда, в том числе с Интел на Амд, ничего не отвалилось, никуда ничего не делось.
    Если уж совсем прижмет, поменяйте дистр на тот который Вам больше понравится.
    Ответ написан
    1 комментарий
  • Как работает алгоритм минимакс?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    При проходе по ветвям дерева, просот скипаются лишние шаги по определенным критериям, с ограниченной глубиной.

    Например первый шаг - у нас выбор из двух вариантов.
    Второй шаг - выбор из четырех вариантов
    Третий шаг - выбор из восьми вариантов.

    Можно перебрать все варианты, а можно пропускать некоторые из них

    Например на втором шаге, можно посчитать что какой-то из вариантов на этом этапе дает меньше очков, и на третьем шаге вообще не рассматривать эту ветку.
    Несмотря на то, что возможно на третьем шаге именно там был бы выигрыш.

    Тут все зависит от того, как правильно расставишь стоимость промежуточных выборов, чтобы определять какие ветки пропускать, с какими продолжать работать.
    Ответ написан
    Комментировать
  • Стоит ли переходить с Java?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Опять 25. Я уже, наверное, в сотый раз пишу, что на фрилансе шансов нет, если не дорос в офисе до мидла. Студент должен открыть hh.ru, поискать вакансии программистов в своё городе, а потом изучать то, что для них требуется.
    Ответ написан
    2 комментария
  • Видел кто-нибудь быстрый алгоритм динамической генерации бесконечного пещерного лабиринта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Условие простое: чтобы всегда был выход нужно сохранять зазор разворота - минимум 2 тоннеля рядом. Разворот - делать вдоль своего "тела" наружу, чтобы не упереться в тупик.
    (Т.е., тут алгоритм предотвращения запутывания змейки)
    Ответ написан
    Комментировать
  • Как найти эффективное решение задачи (Java)?

    @krka92
    Джаву, увы, не знаю
    procedure WriteCheckLine(Len: Integer; Offset: Byte);
    var i: Integer;
    begin
      for i := Offset to Len - 1 + Offset do
      begin
        if i and 1 > 0 then Write('*')
        else Write('-');
      end;
      WriteLn;
    end;
    
    procedure WriteCheckBoard(N: Integer);
    var i: Integer;
    begin
      for i := 0 to N - 1 do WriteCheckLine(N, i and 1);
    end;


    или без вызова
    procedure WriteCheckBoard(N: Integer);
    var i, j, Offset: Integer;
    begin
      for i := 0 to N - 1 do
      begin
        Offset := i and 1;
        for j := Offset to N - 1 + Offset do
        begin
          if j and 1 > 0 then Write('*')
          else Write('-');
        end;
        WriteLn;
      end;
    end;


    Как удобнее будет
    Ответ написан
    Комментировать
  • Как найти эффективное решение задачи (Java)?

    jamakasi666
    @jamakasi666 Куратор тега Java
    Просто IT'шник.
    Виктор Мальков,
    еще в копилку, не короче но вызовет приступ у ненавистников лямбд и стримов
    IntStream.rangeClosed(1, n).forEach(i -> {
                IntStream.rangeClosed(1, n).forEach(j -> 
                    System.out.print((i + j) % 2 == 0 ? '*' : '-'));
            System.out.println();});


    Еще изврат, правда будет работать только с нечетными числами но зато в один цикл! =).
    IntStream.rangeClosed(1, n*n).forEach(i -> System.out.print(i % n != 0 ? (i % 2==0 ?'*':'-') : '\n'));
    Ответ написан
    Комментировать