Задать вопрос
  • Стоит ли использовать Object как тип возвращаемого значение метода в java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Что с этим Object будет делать вызывающий? Непонятно.

    Я-бы обсудил контракт этого метода. Если он должен вернуть заглушку которая просто символизирует пустой результат вызова - то можно использовать Optional и указать опциональный тип. Если пустой список - то Collection.emptyList().

    Я не вижу никакого смысла в бизнес-приложении использовать тип Object. Он - технический. А не прикладной.
    Ответ написан
    5 комментариев
  • Более быстрый способ нахождения всех делителей числа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Суть вопроса - алгоритм факторизации.

    Чтобы ускорить факторизацию есть много путей. Во первых - отказаться от языка Python в пользу C++ или Rust.

    Во вторых - запоминать найденные primes и использовать их для следующего шага. Грубо говоря факторизация требует эффективного генератора primes. А он в свою очередь... Саморекурсивен. Требует такого-же генератора меньшей мощности.

    И step надо делать не по 1 элементу а по нечётным начиная с 3.

    Есть ещё алгоритм Эратосфена. Обрати внимание.

    И есть очень глобальная задача, такая как доказательство простоты. Для нее есть целый список алгоритмов. Они сложные и интересные. Часть из них - вероятностные. Используются в критпографии.
    Ответ написан
    Комментировать
  • Делаю changelog на pgsql выходить ошибка, как решить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Что за вертикальная палочка? Зачем она?

    ALTER TABLE sl.lesson {
        DROP CONSTRAINT lesson_timetable_id_fkey |
        DROP COLUMN timetable_id
    }


    А это что?
    liquibase.exception.ValidationFailedException: Validation Failed:


    Изменял change-sets грязными руками? Этого нельзя делать. То что установлено в репо - маркируется контрольной суммой и нельзя фиксить задним числом. Создаёшь новый changeset который исправляет.
    Ответ написан
    Комментировать
  • Какой самый легкий путь для создания модели с помощью машинного обучения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что рынок "машинного обучения" сильно перегрет. Каждый newcomer решает любую задачу маш-обучем даже если ему надо сложить 2 + 2. Я не шучу это действительно так. Доходит до смешного. Там где нужен фильтр низкой частоты или расчет арифметического среднего все пытаются втащить методы которые на два порядка сложнее и энергозатратнее.

    По поводу вопроса. Допустим ты играешь в PacMan (желтый колобок который кушает белые точки на черном фоне) и ты хочешь просто найти пакмана - то тебе достаточно к примеру уменьшить размер экрана в 32 раза и тогда колобок станет размером в 1 пиксел (я предполагаю что он был размером 32 на 32). При усреднении цвета - брать max. Между черным и желтым - всегда выбирать желтый. Далее после того как колобок найден на мелком поле - и известны его координаты - можно двигаться в обратную сторону увеличивая масштаб. И за 5 итераций найти точные координаты ПакМана. В моём алгоритме вобщем-то нет никакого opencv. И я утверждаю что мой алгоритм менее ресурсоёмок чем все прочие подходы.

    Впрочем это - просто идея. Ее можно бесконечно упрощать или улучшать. Возможен кейс когда враги скушали пак-мана и он будет плохо распознан моим методом. Вобщем есть огромное пространство для фантазии и алгоримизации без машинного обучения.
    Ответ написан
    2 комментария
  • Как до обучить Pytesseract под свой шрифт?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Системы, распознающие текст содержат обычно несколько уровней распознавания. Один - это собственно нейросеть которая видит с разной вероятностью символы-кандидаты. Второй уровень - это семантика слов и предложений. Тоесть когда ты распознаешь осмысленный текст - то ты обладаешь бОльшей информацией о том как достроить неверно распознанные символы.

    В случае с билибердой написанной как

    fffjjj ....

    второй уровень даёт сбой. Он не видит знакомых слов.

    На самом деле я не знаю как работает тессеракт. Надо читать его настройки. Но если-бы я распознавал билиберду из символов - то я-бы искал именно эти языковые семантические настройки.
    Ответ написан
    Комментировать
  • На каком ЯП стоит писать программу для управления компьютерным клубом (десктоп)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут наверное главный вопрос не язык а ОС и платформа. Подозреваю что клуб работает на Windows десктопах. И нужно искать тот инструмент который ближе (нативнее) по отношению к этой ОС. Разумеется глупо выбирать Java/Python. Надо брать технологии которые опираются на .Net. VB/C#/F#. Да много их.
    Ответ написан
    Комментировать
  • Бот не отправляет переменные?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это не будет работать. Последнее несколько чисел в номере карты - контрольные. Они страхуют ввод номера карты от опечаток. Посмотри что такое алгоритм Луна.

    И первые несколько цифр показывают обычно код банка и код платежной системы (Viza, Maestro). Нагуглишь сам.
    Ответ написан
    Комментировать
  • Какие книги по машинному обучению стоит изучить?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я бы очень хотел чтобы в книге разбирались конкретные библиотеки (tensorflow например), а не просто голая теория.

    Тут что-то не то. Вопрос не так поставлен. Ведь ТензорФлоу это чертов API и по сути тоже теория. Твой вопрос наверное звучит так что нужны какие-то практические задачи с решениями. Верно?
    Ответ написан
    1 комментарий
  • Кто знате в чем проблема с SQLite3?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно на пустоту (None) проверяют так.

    if USERDATA is None:
    Ответ написан
    Комментировать
  • Словарь для брута rar архива возможно сделать через Блокнот?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я-бы предложил сначала придумать выражение типа регулярки, которая просто обобщит все варианты которые возможны. Из частного случая

    *!Tomsk2018*Oksana!  
    *06Tomsk08*Oksana18!*


    Можно предположить что есть два произвольных ASCII-NUM-CTRL символа. Потом Tomsk. Потом календарная дата от 2008 до 2018 года в двух форматах YYYY, YY. Потом женское имя. И потом опционально еще раз календарная дата и 2 ASCII-NUM-CTRL символа.

    Давайте посчитаем количество. Пускай для простоты ASCII-NUM-CTRL = 128 символов.
    Даты - 10 лет и еще 2 формата итого 20 штук.

    Итого. 128 * 20 * 20 * 128. Но у нас еще есть пустая комбинация NULL (опция). Для простоты просто добавим +1 к каждому множителю и таким образом закроем эти опциоанльные строки. Получается

    129 * 21 * 21 * 129 = 7338681

    Семь мильонов. Словарь - детского размера. Вобщем подбор вполне осуществим.

    P.S. Я надеюсь что мы не нарушаем правил qna обсуждая такие вещи. И я надеюсь что автор честен и спрашивает это только для личного пользования.
    Ответ написан
    7 комментариев
  • Каким образом посчитать большое кол-во чисел после запятой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Python 2.x, 3,x были разные формы представления числа типа int.

    Поэтому я бы выбирал тот тип данных который даёт arbitrary precision.

    Разумеется плавающая точка здесь не помощник.
    Ответ написан
    Комментировать
  • Как узнать место пересечения луча со сферой?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне нужна функция которая возвращает координаты столкновения луча со сферой

    Сразу замечание. Давайте перечислим ситуации которые могут быть.

    1) Луч пересекает сферу в 1 точке (касательная). Или луч испускается изнутри сферы.
    2) Луч пронизывает сферу в 2 точках (наиболе общий кейс)
    3) Луч не попал в сферу.

    Наша функция (какая-бы она не была) должна возвращать 3 типа этих результатов. Или просто список от 0 до 2х векторов в пространстве (x,y,z). Я-бы предпочел перечисление из 3х типов результатов. Мне кажется что это достаточно важно.
    Ответ написан
    Комментировать
  • Как гарантировать отправку в кафку некоего события?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нет никакого смысла страховать Кафку. Она совершенно самодостаточна. Есть настройка message delivery semantics. Почитай про нее. Вобщем идея такава что - каждый сам себе в зависимости от бизнес требований выставляет такие параноидальные настройки producer/consumer, чтобы было и быстро и надёжно одновременно.
    Ответ написан
    Комментировать
  • Можно ли обучить бота повторять действия в игре?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если речь идет о computer vision - то да. Скорее всего можно. Но мне жаль ваш талант. Если вы действительно создатите такого бота который обучается по картинке то вас можно нанимать на работу и платить столько денег что дешевая прокачка Эльфа в какой нибудь MMORGPG вам станет просто не нужна. Сможете купить все.
    Ответ написан
    Комментировать
  • Нужно нагрузить сеть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть много способов устроить нагрузочное тестирование. Как вариант - приложение JMeter https://jmeter.apache.org/

    При чем здесь Wifi - непонятно. Обычно тестируют приложение а не частные куски сетей.
    Ответ написан
    Комментировать
  • Как мониторить Spring Boot процесс (вылетает)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Трудно поверить конечно, что в логах у тебя ничего не написано. Как вариант - ты упираешся в какие-то прикладные ограничения который сам и создал.

    Для начала тебе надо посмотреть чем заняты потоки в обычно (стационарном режиме) и в тот момент времени когда системе стало плохо. Когда именно - ты сам определишь. Пишешь дескыть "оно останавливается" - значит есть какой-то субъективный способ понять что беда уже случилась.

    Значит тебе надо дважды вызвать вот эту утилиту

    $ jstack --help
    Usage:
        jstack [-l][-e] <pid>
            (to connect to running process)
    
    Options:
        -l  long listing. Prints additional information about locks
        -e  extended listing. Prints additional information about threads
        -? -h --help -help to print this help message

    и сохранить в текстовый файл что она выдаст. Потом сравнить. Разница - будет подсказывать причину.

    И еще понаблюдай глазами за памятью через JVisualVM. Может что-то раньше увидишь.
    Ответ написан
    Комментировать
  • Что нужно чтобы написать ИИ который будет обучаться и угадывать которое число ты выберешь из 3 вариантов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это наверное к ИИ не имеет отношения. Просто статистика. Марковские сети. И наверное теория игр.
    Все это было создано задолго до термина ИИ в современном его понимании.
    Ответ написан
  • Куда поместить 2 миллиарда строк?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А попробуй сделай так

    create index name_idx on emails(name);

    и повтори свой запрос еще разик.
    Ответ написан
  • Как ускорить алгоритм скользящего среднего?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для расчета среднего нам нужна сумма элементов и количество. Количество - это константа.

    Сумма конечно меняется. Но если у нас уже есть расчитанная сумма от 1 000 000 элементов то
    следующее скользящее среднее будет не сильно отличаться. Нужно от сумма забрать первый элемент
    и добавить элемент с индексом 1 000 001. Это и есть оптимизация.

    Тоесть первая итерация расчитывается полностью. Следующая - на основании предыдущей. Как в численных
    методах.
    Ответ написан
    Комментировать
  • Как самостоятельно изучать теоретическую информатику?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего - никак. Информатика (и вычислительная техника) это все практические науки. Их надо изучать параллельно делая что-то руками. Все что вы перечислили. Теория игр. Криптография. Должно быть подкреплено реальным проектом где это используется.

    В противном случае - эти знания бесполезны и забудуться. Это я по себе говорю. Такой мой опыт.
    Ответ написан
    Комментировать