Задать вопрос
  • Можно ли запустить программу на языке C в операционной системе FreeDOS или MSDOS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю можно. Поищи такие компилляторы как Watcom C, Borland C.
    Они умеют генерить код для DOS. На ваткоме кажется была написана
    игра Doom for DOS.

    UPD +Линка www.openwatcom.org
    Ответ написан
    Комментировать
  • Как хранить большое количество json в mysql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Когда обсуждают базу данных - то ее физический размер обычно не имеет значения. Она может быть и терабайт и пета-байт. Но важно подумать о том какие виды запросов вы будете там гонять. И какие индексы надо построить чтобы быстро искать нужный JSON.

    Хорошая коробочная поддержка JSON с индексами и бинарным представлением документа есть в Postgresql.
    Про MySQL я не в курсе. Но вот посмотрите эту статью https://habr.com/ru/companies/skillfactory/article...
    Может быть появятся мысли.

    Ваш вопрос требует создания POC + Benchmark. Безотносительно того что вам тут напишут в ответах - ваша
    задача создать прототип и загрузить туда 100К синтетических записей и понаблюдать как быстро MySQL будет
    делать поиск нужных значений.
    Ответ написан
    2 комментария
  • MySQL on duplicate key update. Как избавиться от увеличения ID?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дырки могут быть связаны с механикой кеширования sequence для каждого сеанса mysql.
    По сути если 10 сеансов хотят быстро и без конкуренции вставлять в таблицу то они должны
    прочитать пачку номеров. Например первый сеанс с 1 по 10 и второй с 11 по 20 и так далее.
    В разных БД это реализовано по разному но это в целом - механика оптимизации скорости.
    И если сеанс закрылся и недочитал 7, 8, 9 номер то и хер с ним. Диапазон уже был использован
    как туалетная бумага.

    У тебя-же нет желания доставать из ведра грязную бумагу и еще раз ее использовать?
    Ответ написан
    Комментировать
  • Бот не вносит данные в таблицу sqlite, в чем может быть ошибка?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эти два запроса - какая-то безсмыслица.

    SELECT Town FROM users WHERE user_id = (?)

    UPDATE users SET 'Town' = (?)

    Автор ты можешь прокомментировать словами что здесь происходит. Мне кажется что после обсуждения
    у тебя должны возникнуть другие вопросы.
    Ответ написан
    Комментировать
  • Как оставить java.util.date в gmt0?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Для java11 имеет смысл отказаться от использования java.util.date в пользу java.time.LocalDate, java.time.ZonedDateTime. И использовать API из time для переводов локальных времен.
    Ответ написан
    Комментировать
  • Как следить за изменением авторизации пользователя?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На протяжении 20 лет я наблюдаю за базами данных и механизмами стриминга событий, слежениями
    и прочее. Так вот. Это все НЕ РАБОТАЕТ. Не работает по причине идеологии ACID. Вы не можете операцию
    DML считать основанием для генерации события. Потому что DML это не транзакция. Если мы фиксируем
    DML commit/rollback операцией - то при этом неочевидно что должна видеть стриминговая платформа.

    Она не может откатывать события в обратную сторону. Такой механизм технически дорог. Поэтому
    основанием для стриминга событий может быть только событие внутри приложения. PHP, Node, Java e.t.c.
    вот там и генерируйте события.

    А база данных здесь вообще не помошник. Сканировать таблицу по скедулеру тоже не надо. Это дорого
    и не реал-тайм.
    Ответ написан
    Комментировать
  • Почему возникает django.db.utils.OperationalError: consuming input failed: Operation timed out?

    mayton2019
    @mayton2019
    Bigdata Engineer
    --prefix, менял postgresql.conf и pg_hba.conf только чтобы слушал во вне

    А попробуй тоже самое собрать но без этих изменений.
    Ответ написан
  • Как спарсить whatsapp web?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Почитай сначала раздел developers. Возможно там надо зарегистрироваться и просто взять готовый API
    и пользоваться.
    Ответ написан
    Комментировать
  • Как ускорить count в mongoose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если пролистать до старых страниц, допустим до 5000 страницы, то это происходит очень долго(примерно 10 секунд, даже с индексацией)


    Это нормально. 5000 за 10 секунд - это 500 страниц в секунду. Ни один человек так быстро читать не умеет.
    Если пользователь давит pagedown - то наверное он что-то не так делает. Дай ему опцию goto номер
    страницы.

    Count работает супер медленно, если брать загрузку самых свежих страниц, без него они загружаются за 15мс, но при использовании count (даже при условии того, что кол-во страниц ограниченно 5000, больше не нужно), задержка увеличивается до 3-5 секунд


    Это нормально. Ни в одной БД count не работает достаточно быстро чтобы показывать реал-тайм.
    Вообще если вспомнишь что базы бывают ACID то они считают не актуальное состояние таблицы
    а "срез таблицы в прошлом" на момент начала тразнакции подсчета.

    Запоминай последнее значение count в переменную и транслируй пользователю внизу странички
    как актуальное но в прошлом. Например 15 минут назад.
    Ответ написан
    Комментировать
  • - Спроектировать локальную базу данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обычно для игровой логики реляционные БД не нужны. Бери любой Key-Value и там тебе достаточно
    возможностей чтоб хранить паззлы. С некоторым допущением обычная файловая система
    может быть простой БД. Ключ - имя файла и value - тело файла.
    Ответ написан
  • Как исправить ошибку в телеграмм-боте, который должен переводить текст?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ничего они не конфликтуют. У тебя ошибка 401. Description: Unauthorized. Не авторизован.
    Сделай несколько шагов назад до того момента когда телеграм еще работал и добавляй
    переводчика шаг-за шагом.
    Ответ написан
    Комментировать
  • Как элегантнее переопределить реализацию одного из методов интерфейса для отдельно взятого объекта?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Я не понимаю что такое - "элегантно" в инженерном представлении. Это - ходить в смокинге с моноклем?
    В цилиндре с сигарой?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Поскольку алгоритм Озона не документирован - то мы можем только гадать.

    Сделай дамп сетевого трафика для случая с браузером и с ботом.
    Потом открывай в режиме split screen и сличай глазами. Где-то будет ключевая разница.
    Ответ написан
    Комментировать
  • Есть ли способ запретить доступ админу к внутренним (internal), приватным (private) проектам либо групам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В обстановке такого недоверия разрабатывать просто невозможно. Смените админа и хостинг.
    Админ должен быть частью вашей команды. Он должен есть с вами из одной тарелки и получать
    бонусы и премиии за успехи на проекте.
    Ответ написан
    Комментировать
  • Как в typeorm сделать id уникальным из 12 цифр?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В базах данных для обеспечения уникальности используются sequence.

    UUID возникает в распределенных системах где нет координации между нодами кластера но
    нужно хоть каким-то образом получить уникальность. Плюс там еще есть 4 типа этих UUID
    или 4 разных алгоритма как они получаются.

    Все это пока к безопасносни не имеет никакого отношения. Это просто продиктовано физической
    архитектурой (1 база или кластер).

    Вопрос безопасности нужно обсудить отдельно просто исходя из сценария угрозы. А пока сценария
    нету - вот просто нечего тут больше обсудить.
    Ответ написан
  • Можно ли использовать несколько сетей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Мне нужно чтобы весь интернет работало от корпоративной сети, а определенные приложения или веб адреса(запросы) исходили с другой интернет подключения.

    Расскажи словами как ты собираешся различать эти приложения?

    Грубо говоря что будет маркером что вот этот торрент клиент должен ходить на такой интерфейс
    а твоя любимая 1С-ка на корпоративный.

    Ответ с виртуалкой написанной выше - это скорее всего правильный ответ но я думаю что не самый лучший
    с точки зрения ресурсов машины. Виртуалка объективно потребляет больше чем на самом деле надо.
    Ответ написан
    Комментировать
  • Нужно ли делать защиту при делении на ноль?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вообще ты сам себе ответил на вопрос
    в разных отраслях для личного пользования.


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

    Какие вообще у тебя варианты по отработке неопределенностей? Я вижу такие.
    1) Возвращать бесконечность +Inf. Это нормально для floating-point. Но влияние результата на стек
    вызовов дальше надо учитывать. Эта бесконечность пойдет в другие формулы порождая новые бесконечности и т.п.

    2) Бросать исключение. Это не в духе С++ и не всегда удобно для выскокой производительности. Но языки высокого уровня этим часто пользуются. Здесь мы предполагаем что такой результат - крайне нежелателен и работа стека расчета векторов будет аварийно прервана.

    3) Возвращать специальный контейнер с результататом (Optional или Either) или пустой контейнер. Это в духе функционального кодинга. Но весь твой стек должен тоже быть адаптированным к таким Optional параметрам результатов.

    И есть еще вариант - просто найти такой базис вычислений в котором нет такой проблемы. Пускай допустим векторы так и остаются основным типом данных но расчеты ты будешь делать в каком-нибудь другом типе где эта операция на уровне математики - безопасна и всегда определена. Грубо говоря как в углах Эйлера. Чтоб не писать всякие проверки условий (if) - можно перейти к кватерниону и там вроде как вращение легче идет.
    Ответ написан
    Комментировать
  • Подскажете по архитектуре системы уведомлений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    При данной схеме тебе база и крон вообще не нужны. Пиши сразу в Rabbit. Если consumer обладает логикой неуспеха обработки - то пускай кидает необработанное вообщение в специальную мусорку (Dead-Letter-Quee) для анализа ошибок впоследствии.

    Какой возможен программный потолок количества отправляемых уведомлений в единицу времени, при такой архитектуре на одном сервере?

    На этот вопрос невозможно ответить. Цифры могут отличаться в разы в зависимости от выбранного железа. Но современные MQ настолько быстрые что с большей вероятностью твой софт не сможет их загрузить событями.
    Узким местом в такой системе будет скорее всего твой софт.
    Ответ написан
    2 комментария
  • Почему vscode грузить процессор на сервере?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Visual Studio Code - это не просто приложуха. Это среда в которой запускаются тыщи плагинов.

    Просмотри внимательно какие плагины у тебя установлены. Что они делают? Кто их ставил?

    Очень многие плагины имеют сомнительную цель и происхождение.
    Ответ написан
    Комментировать
  • Как подключиться к docker-контейнеру c PostgreSQL?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Кажется я так делал.
    docker network inspect .....

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