Задать вопрос
  • Массовое сравнение сток, поиск пересечений, каким инструментом воспользоваться?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Коробочное решение - это библиотеки обработки текста Apache Lucene, Sphinx. Но их нужно программировать - следовательно вам надо искать разработчика.

    ElasticSearch/Solr (под капотом это тот-же Lucene) - вариант но вам надо будет его конфигурировать и тщательно подбирать настройки Analyzer чтоб не получать ложно-позитивных срабатываний. Возможно в дефолтном варианте он слишком умный и делает стемминг там где не надо.

    Если самостоятельно программировать то мы имеем такую complexity : 100 000 слов проверить в 150 текстах - это примерно 15 миллиардов тривиальных проверок. Типа поиска строки в строке. Хочется от этого уйти. Поэтому надо искать какие-то структуры данных работающие на exists(..). Например Фильтры Блума. При 150 тыщ элементов он будет достаточно компактен. Или сортирующие и хеширующие структуры (R&B Trees). Тогда вместо 15 млрд мы сведем к 100 либо к 150 тыс циклов по одному из измерений как будет выбрано.
    Ответ написан
  • Насколько реально создать музыкального дискорд бота который поддерживает воспроизведение музыки из вк,яндекса и youtube?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно, зачем бот должен быть посредником в этом деле? Ну допустим его основная услуга - это поиск и тегирование интересной музыки. Дальше просто делаем форвард на нужный альбом и трек и слушаем с YouTube.
    Ответ написан
    Комментировать
  • Как получать сообщения из больших Telegram-каналов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего такого чата не существует или имя задано как-то неточно.
    @client.on(events.NewMessage(chats=("Binance Announcements")))

    Попробуй другие правила например
    @client.on(events.NewMessage(pattern='(?i)hi|hello'))
    чтоб просто убедится что библиотека рабочая.
    Ответ написан
    Комментировать
  • Как можно ускорить алгоритм?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Какое-то время я посвятил играм с простыми числами. В студенчестве еще.
    Вот тут не надо каждый раз прибавлять единичку.
    if (K % (i + 1) == 0) {
    Ее просто надо учесть в условиях цикла.
    if (K % i == 0) {
    Далее. Если нужно найти первый попавшийся делитель - то не надо перебирать все числа. Достаточно только 2 и все нечетные. Или даже лучше задать хард-кодом таблицу простых чисел до 2^16. Это как раз будет половина разрядной сетки int32.
    int primes[] = { 2,3,5,7,11,13,17...... 65521 }
    Это даст хорошее ускорение для поиска. Хотя время загрузки executable может увеличится. Кстати у меня много вопросов к бенчмаркам где стоит запредельно короткое время инициализации (0.25 s). Здесь - практически невозможно вычленить где время занимает алгоритм а где - просто запуск процесса операционки. Обычно когда меряют что-то подобное - меряют длительные процессы хотя-бы порядка минут но никак не секунд.
    Ответ написан
    2 комментария
  • В чем ошибка sql-запроса?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня в Postgres вот так работает.
    CREATE table courses
    (id INT PRIMARY KEY,
    faculty VARCHAR(55) NULL,
    number INT NULL);

    Кстати. Бывают разные диалекты SQL. И где-то вместо varchar используется text или string.

    Вообще надо указывать тип БД который используется.
    Ответ написан
    Комментировать
  • Как правильно обслуживать базу 1с на Pоstgresql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зачем делать reindexdb для всего подряд? Это-ж делается в аварийно-ремонтных работах когда точно известно что сегмент индекса поврежден.
    Ответ написан
    Комментировать
  • Как подключится из Беларуси к российскому серверу, если заблокирован доступ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне кажется проще найти другую букмекерскую контору и не нарушать законы своего государства.
    Ответ написан
    4 комментария
  • Как восстановить файл docx?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю - поздняк метаться. 99% что уже ничего не восстановить. Ничего бывает. У меня друг тоже пол-курсового так потерял. Ничего. Сел. За ночь всё восстановил по памяти.
    Ответ написан
    Комментировать
  • Как оптимизировать рендеринг?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Зачем пользователю видеть 400 строк на экране? Да их столько туда не влезает.
    Ответ написан
  • Rust мёртв, или только развивается?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотря для кого. Rust создавался как альтернатива C++ при разработке критичных к безопасности частей кода браузера Mozilla. По бенчмаркам он реально конкурирует с C++ но главное преимущество наверное в том что из него принципиально убрали возможность совершать тупые ошибки такие как использование null-pointers. Тоесть он - безопаснее чем С++. Но мне кажется что решение за использованием Rust - корпоративное а не частное.

    Надо просто мониторить появление соотв. вакансий.

    Ну а если вы - кодер бизнес-логики на Java/C# то вам Rust скорее всего не нужен.
    Ответ написан
    Комментировать
  • Как можно оптимизировать процесс?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для поиска делителей достаточно искать до sqr(n). И не для всех чисел, а только для нечётных. Предварительно только на четность проверит n.
    Ответ написан
    Комментировать
  • На сколько критичен сдвиг в массиве для алгоритмов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На проблему надо смотреть в комплексе. На самом деле еще важный вопрос - как вы найдете этот элемент в массиве. Это - тоже часть алгоритма.
    Ответ написан
    Комментировать
  • Backend для бухгалтера. С чего начать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такого факультета как backend не существует. Программирование (оно-же кибернетика и информатика и вычислительная техника) это совокупность наук которые вращаются вокруг железа и софта. С железом все понятно. Это всё что вас окружает. С софтом - это в основном языки программирования и ОС.

    Backend - это модное слово последнего времени и на него нет точного определения. В некоторых случаях back-end-ом могут называть один компиллятор по отношению к другому.

    По вопросам.

    1) Да Python прекрасно подходит. Это очень распространённый язык для автоматизации и тестирования и еще много-много чего например в области data-science. Желаю конечно чтобы это был не последний ваш язык.
    2) Подходит Java и C#. Их сильная сторона - это строгая типизация и как следствие меньше ошибок рантайма. Это кстати одна из причин по которой большие проекты на Python труднее поддерживать в рабочем состоянии.
    3) С книгами - сложнее. Можете начать с Алгоритмов и структур данных Вирта. Там - самый минимум.
    Кнута - не читайте. Это уведет надолго в глухую теорию со слабой практической ценностью.
    Ответ написан
  • Что не так, в чем ошибка?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В С++ массивы нумеруются от нуля до (n - 1).
    Ответ написан
    6 комментариев
  • Доказано ли, и можно ли сжать произвольные данные до 20 байтов к примеру?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В 4 байта можно втиснуть 4 миллиарда состояний. Или в терминах игровой индустрии - возможно создать процедуральный генератор миров или локаций где из одного целого числа можно создать 4 млрд миров. Но качество самих миров будет скорее всего плохое. Как раз по причине этих жалких четырех байтов. У нас не будет детального контроля над ландшафтом и другими свойствами мира. Согласитесь иметь 32 переключателя или 4 регулятора по 250 уровней (как угодно смотреть на это) - это маловато.

    По поводу обратной задачи. Всё будет зависеть от формы как представлены исходные данные. Но мне кажется что делать такой архиватор безсмысленно. Достаточно просто грамотно сохранить тот мир который нарисовал дизайнер миров. В игре kkreiger достаточно лаконично в 64 килобайта была втиснута Quake-подобная локация.

    Хотя если долго в нее поиграть видны дефекты мира. Процедуральные текстуры как будто повторяются. И геометрия мира какая-то повторяющася.
    Ответ написан
    Комментировать
  • Как из неизвестного чисоа вычесть дробную часть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Наверное имелось в виду целочисленное деление для длинных чисел.

    Python 3.8.10 (default, Mar 15 2022, 12:22:08) 
    [GCC 9.4.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    >>> 1090246098153987172547740458951748 // 36028797018963968
    30260408016957373


    В обычных языках программирования первое число уже не влезает в разрядную сетку double/long поэтому его даже трудно инициализировать. Взял ради примера Python3. Он вроде понимает arbitary precision.
    Ответ написан
    Комментировать
  • Оптимальное хранение данных в БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    EAV и JSON в филдах решают одни проблемы но подкидывают новых.
    Ответ написан
    Комментировать
  • На сколько правильно разбить один запрос на три более маленьких?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если ты разбиваешь 1 запрос на 3 мелких - то тебе нужно оборачивать их транзакцией или доказывать что между запросами не будет посторонних модификаций данных. Иначе 3 запроса не будут эквивалентны первому. Это кстати типичная джуниорская ошибка - неучет ACID.
    Ответ написан
  • Как включить графический видео режим в защищенном режиме?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да что за ВУЗ и что за преподаватель такие задачки ставит? ОС написать... Капец.

    Может это не ОС а просто tech-demo графического режима? Просто на ОС семестра не хватит.
    Ответ написан
  • Как можно максимально себя анонимизировать в сети?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никак нельзя. Провайдер по запросу спецслужб предоставляет IP-адреса и время выхода в сеть.
    Ответ написан