Задать вопрос
  • Почему не работает исключение JAVA?

    mayton2019
    @mayton2019 Куратор тега Java
    Алексей Черемисин, зато передний ещё держится
  • Почему не работает исключение JAVA?

    mayton2019
    @mayton2019 Куратор тега Java
    IndexOfBound - это про массивы обычно. И непокрытые conditions ниже.

    Про такое говорят - фатальное стечение обстоятельств. Студенты говорят - не знал и забыл.
    Геополитики говорят - Черный лебедь прилетел.

    }catch(IndexOutOfBoundsException  e) {
               if (A<0) {
                    System.out.println("A меньше 0");
                } else if (B<0) {
                    System.out.println("B меньше 0");
                }
            }
  • Как написать данный SQL запрос на Laravel?

    mayton2019
    @mayton2019
    Обычно у всех ORM-фреймворков остается лазейка в виде native SQL query. Они просто исходят из практических соображений что всегда будет какой-то кейс когда обобщенных возможностей ORM не хватит и нужно будет вбить гвоздь. И в этом есть смысл.

    Хинты...
  • Какие параметры передать в format в JAVA?

    mayton2019
    @mayton2019 Куратор тега Java
    Что-то я не помню чтоб Formatter такое делал. Обычно он даты форматирует. Числа. И для фиксированного
    числа аргументов.
  • Заменить цикл на рекурсию - возможно ли в этом случае?

    mayton2019
    @mayton2019 Куратор тега Java
    Я когда-то решал похожую задачу толи на leetcode, толи на codewars. Вот мой вариант на Haskell с рекурсией.
    Смысл ответа - немножко другой. Но его легко переделать на нужный с группировкой и подсчетом.

    payment' :: Int -> [Int] -> [(Int,Int)] -> [(Int,Int)]
    payment' sum nom res
     | sum > 0   = if sum - h >= 0
                   then payment' (sum - h) nom $ (h,1) : res
                   else payment' sum (tail nom) res
     | otherwise = res
     where h = head nom
    
    payment :: Int -> [(Int,Int)]
    payment sum = payment' sum (reverse [1,2,5,10,50,100,500]) []


    Prelude> payment 951
    [(1,1),(50,1),(100,1),(100,1),(100,1),(100,1),(500,1)]


    По поводу переписывания циклов на рекурсии. Иногда - это не очень удобно. Лучше переосмыслить
    задачу и реализовать с нуля по новому.
  • Как сделать калькулятор который принимает целые выражения?

    mayton2019
    @mayton2019
    Главное чтоб калькулятор арифметики не пробил дыру в безопасности хоста.
  • Почему не видит data chunk?

    mayton2019
    @mayton2019
    MuffinLover, мало. Добавь на каждое событие chunkId, offset
  • В VS 2022 консоли Microsoft не выводятся русские буквы. есть вариант починить?

    mayton2019
    @mayton2019
    res2001, в топчик. На втором месте идет вопрос как в текстовом файле изменть строку номер X.
  • Почему не видит data chunk?

    mayton2019
    @mayton2019
    MuffinLover, будешь сидеть и ждать пока кто-то пофиксит твой исходник? Логи давай. Детальные.
  • No space left on device?

    mayton2019
    @mayton2019
    Давно, во времена MS-Dos был такой пакет Norton Utilities. Лечил диски. Дефрагментировал.

    Но интересно было другое. Он в textmode имитировал работу абсолютно графической мыши. Можно было не по позициям букв а по пикселам двигать.

    Вот так-то. А вы говорите курсором.
  • Почему не видит data chunk?

    mayton2019
    @mayton2019
    Вот это условие - никогда не выполняется
    if(chunk.chunkId == CT_data){
    почему - фиг его знает. Надо за шаг до этой проверки получить логгирование chunkId и offset из читаемого файла.
    И посмотреть внутрь самого файла. Соотвествует ли реальности.

    Или вообще файл - битый.
  • Как можно улучшить данный код?

    mayton2019
    @mayton2019
    Jepa,

    А как сортировать мап? Просто я не очень хорошо его знаю

    Тут - хитрость. Тебе вобщем-то не надо его сортировать. Тебе надо найти max из всей коллекции (мапы).
    Напечатать его на экране. И еще по заданию написано что надо сделать поиск таких-же максималов.
    Поэтому удаляем из мапы счастливчика и просто повторяем поиск max. И так далее пока количество голосов
    совпадает.

    Впрочем при случайном распределении голосов это маловероятно. Скорее всего счастливчик будет один.
    И в тестовых кейсах возможно 2 или 3.

    Если эти редкие кейсы все таки будут в тестировании твоего исходника - то возможно будет фейл по времени.
    Тогда план Б - конвертить в heap. Где-то даже процедура такая есть хипи-зация. Heapyfy. Или makeHeap.
    Она из коллекции делает квази-сортированный массив (куча или пирамида). И из него можно брать 2-3 счастливчика. Сохраняя свойство пирамиды.
  • Как можно ограничить доступ к docker registry gitlab определенным пользователям или пушить образы в registry приватного проекта?

    mayton2019
    @mayton2019
    Правила безопасности проще проектировать на принципах разрешения.
    Сначала всё запрещено всем. А потом дается разрешение на группу или на персоны.

    А в варианте автора - зайдет новый разработчих и пока будет проходить on-boarding - "хопа"! Внезапно окажется что он имеет доступы везде.
  • Как дома организовать просмотр видео?

    mayton2019
    @mayton2019
    Сергей, ну отпиши как получилось. Я-бы искал решение в виде тех протоколов которые транслируют видео с камер (типа RTSP).
  • Как можно улучшить данный код?

    mayton2019
    @mayton2019
    Jepa, да тут как-то слишком сложно написано. Зачем vector?
    Тут вот так надо

    std::map<int, int> mobileVotes;
    .... добавляем голоса. Наращиваем счетчик value.
    ....
    // сортируем по счетчику сообщений
    // печатаем результат
  • Как дома организовать просмотр видео?

    mayton2019
    @mayton2019
    С инженерной точки зрения - проще купить какой-нибудь HDMI-сплиттер и раздавать телевидение на кухню и в основную комнату.

    Беря во внимание затараты вообще на разработку и на конфигурирование, я-бы посчитал этот способ самым дешевым в реализации.

    Все другое будет либо ненадежным (надо саппортить самому не только одну единицу софта но и все его порты на все устройсва) либо просто дорогим в разработке. А у автора - настоящий зоопарк устройств. Вот как вы себе видите план по их поддержке? Я аж вообще никак. Тут иногда корпорации не могут поддержать несколько UI на Desktop и мобилы. А вы хотите в частном порядке.

    Кстати премиальная подписка youtube. Нажал на паузу в телефоне. Перешел на кухню. И там нажал своё видео - и продолжаешь смотреть. Тоесть частично уже реализовано.
  • Можно ли считать процессоры от AMD столь же универсальными, что и Intel?

    mayton2019
    @mayton2019
    В 90х когда я учился в универе мы покупали жлобское железо. Например процессоры AMD K6. Были такие. Так вот у них был свой уникальный набор команд 3-DNow для игр как раз. К сожалению я не знаю в каких играх он применялся. Но факт есть фактом. У AMD было своё над-множество команд которых не было у Intel.

    Сейчас насколько я понимаю 3D-Now похоронили.
  • Почему поиск без индекса быстрее поиска с индексом?

    mayton2019
    @mayton2019
    Могу сказать не по постгресу а по Ораклу. Но я думаю что инфа - релевантна. Использование индекса считается эффективным если выборка составляет от 3% до 7% datarows. В разные времена для разных версий эти цифры именялись. Это было справедливо в эпоху HDD.

    Очень сильно на эту оценку влияет тип носителя где лежит индекс (SSD). Обычно SSD ведут себя лучше для IOPS.
    А индексы - это какраз IOPS.

    Очень сильно влияет следующее: достаточно-ли оптимизатору ТОЛЬКО информации из индекса (count) или ему еще надо ДЖОЙНИТЬ индексный элемент с табличным.

    Ну и конечно - сбор статистики по таблицам. План. План и еще раз план.

    Самый плохой кейс для оптимизатора когда вы танцуете на грани двух типов запросов : OLTP-Analytics. В этом случае у вас гарантийно будут плохие планы и чтобы их стабилизировать надо вбивать гвозди типа "хинтов" или каких-то DBMS-специфичных SQL конструкций кооторые могут например запретить хождение в индекс.

    А грань эта может появлятся как-раз из-за объема выборки 100-100k-20mln. Оптимизатор в принципе не может
    работать в один план по такой сильно разной природе запроса. Первая цифра - четко тяготеет к точечной выборке (индексы) а последний кейс - требует FTS.

    Учитесь анализировать планы SQL. Без этого любая активность в оптимизации - это шаманство и игра в метод тыка.