Задать вопрос
  • Чем посмотреть MySQL базу под windows10?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такие задачи я делал просто в текстовых редакторах. Надо только найти тот который загрузит файл на 1.4Гб.
    Попробуй Notepad++. Потом визуально можно просто отметить номера строк для резки. И уже порезать консольными утилитами типа head/tail

    Если вообще не осилил - тогда качай докер. Потом mySQL https://hub.docker.com/_/mysql Ну и дальше погнал. Загружай.
    Ответ написан
    Комментировать
  • Как заставить Ubuntu использовать новый свободный раздел на диске?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Выделил 15 Гб == пожадничал. У меня кажется 250 Гб сразу отдано под нужды root раздела. Впрочем я могу вечером посмотреть цифры.

    До того как форматировать и двигать разделы - посмотри через графическую утилиту "Disk Usage Analyzer" какие фолдеры сколько занимают. Они в виде круговых диаграмм будут нарисованы. Очень удобно. У меня так один раз пара телесериалов лежала в FullHD качестве. Просто забыл удалить.
    Ответ написан
  • Как решить проблему с нехваткой памяти у сервера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Очень странно что падает база. Обычно чаще приложения падают. Мне кажется что базу можно завалить бесконтрольным ростом числа сессий (коннектов) или долгими сортировками одной большой таблицы. Здесь надо смотреть детальнее. Что там за база? Что пишет в логах перед падением?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот был документик. Про семантическое версионирование https://semver.org/lang/ru/
    Ответ написан
    7 комментариев
  • Как лучше организовать промежуточную таблицу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не нужна тебе никакая промежуточная таблица. Соедини все 3 штуки в одну таблицу по Id и будет все прекрасно.
    Ответ написан
    Комментировать
  • Почему современные языки отказываются от ООП?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Они не отказываются. Скорее происходит отказ от "парадигмы" разработки. Языки стали мульти-парадигменные. Посмотрите на С++20 или Scala. Их невозможно положить в коробочку ООП или ФП. В них есть почти полный набор фич и оттуда и отсюда. И с каждым годом число фич растет и граница размывается. Нашим потомкам будет вообще непонятно где идет раздел.

    По поводу golang. Это язык ограниченной разработки. Его создавали специально чтобы порог вхождения был низкий. Фактически делали лайтовый С++ которому можно обучить школьника за 14 дней. Но с перформансом выше чем у Питона. Поэтому выражать какие-то сложные конструкции на типах там скорее всего не получится. У golang есть свой манифест. Я забыл как он называется и где он. Вобщем там довольно четко обоснованно почему такие принципы и почему такая идеология.
    Ответ написан
    1 комментарий
  • Как реализовать досрочное завершение команды в bash?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Непонятно зачем тут google? Если тебе нужен доступ к деловым ресурсам по работе - то и пингуй их.
    Даже более того. Не пингуй а просто сигнализируй когда твои jobs упали. А то куча ненужных событий
    идет. Мы и так живем в мире переизбытка информации...
    Ответ написан
  • Правильно ли я использую исключения в java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Не очень понятно какая решается задача. Если это школьная лабораторная на тему изучения Exceptions - то нормально.

    Но обычно на исключения строятся такие кейсы которые неудобно ловить проверкой условия. Например ошибки I/O. И логика обработки этих ошибок обычно глобальна. Например целая процедура завершается когда нет доступа к сети. И безразлично где конкретно процедура упала. Нет сети - сразу на выход.

    И тут надо не 2 попытки делать а цикл do-while:

    do {
       input = askForInput();
    } while(input < 0);


    Кроме того sc.nextInt() бросает 3 вида исключений которые ты как-то не заметил. Их тоже надо отработать.
    Ответ написан
    Комментировать
  • Правильное ли решение к задаче про "среднее время доступа к слову"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Откуда взято это утверждение?
    Если показатель успешного поиска в кэш-памяти составляет 95 %
    Ответ написан
  • Где применяют python помимо веба и data science?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Питон активно применяется инженерами НЕ из сегмента It. Химиками. Физиками. Металлургами. Строителями.

    Жестокая ирония но часто его выбирают не по желанию а потому что ничего другого бесплатного под рукой не оказалось. Вот отсюда и проистекает его широкое распространение. А по рейтингам tiobe, он перегнал С++ и Java.

    Тоесть реально на вопрос "где" можно ответить - "везде".
    Ответ написан
    Комментировать
  • Python в образе на базе alpine - все плохо?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Python в образе alpine это не плохо. Это просто параноидально секюрно. Безопасники считают что alpine настолько ограничен что потенциальный злоумышленник даже если получит консоль - все равно ничего не сделает. Даже листинг файлов не просмотрит. Вот такая парадигма. Плюс альпин - маленький. Грузится быстро. Хотя кому какое дело? Мне вообще все равно сколько образ грузится. Плевать короче. Но может комуто важно.

    Если вам такой параноидальный уровень безопасности не нужен - то берите спокойно дебиан. Не надо себя мучить каким-то бондажом с наручниками и альпином.
    Ответ написан
    Комментировать
  • Как обеспечить консистентность данных между БД и поисковым движком?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В любой информационной системе я-бы выделял single-source-of-truth (типа главный источник правды) и этот главный источник должен быть согласован сам с собой всегда. Будет ли это дисковый файл. Kafka, или база PG - неважно. Важно что он будет арбитром в спорных ситуациях.

    В ситуации с потерей электричества что вы описали - совершенно невозможно правильно восстановить обе системы. Одна из ник полюбому будет опережать другую. В high-load системах она будет опережать не на 1 на на сотню транзакций например. Честно я даже не могу придумать алгоритм восстановления. Особенно если часы где-то разошлись на милисекунду и одна из систем сделала update на уже вставленные данные.

    Мне нравится вариант когда мы сразу пишем информацию в Postgres и делаем commit (по правилам которые нужны бизнесу) и дальше уже индексируем содержимое базы эластиком. После аварийного ребута я будут знать что PG содержит именно то что было закоммичено. То что нужно тоесть. Эластик будет просто догонять.
    Ответ написан
    Комментировать
  • Параллельные запрос как уязвимость?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Эта проблема к браузерам не имеет никакого отношения. Это можно рассмотреть как несогласованность транзакций при работе с балансом пользователя. Если развивать идею то так можно и 2 кредита взять.
    Воспроизвести ее можно и без бразуеров.

    Вобщем если 2 потока работают с одной разделяемой volatile переменной баланса то возможна ситуация когда проверка баланса и его обновление выполняются в различных потоках что приводит к ошибке списания средств. 100% новичков попадают в эту ловушку просто не зная что мультипоточка - коварна и может прервать выполнение вашего треда в любую милисекунду и передать управление другому потоку в этом же коде.

    Гипотетический код на несуществующем языке который делает блокирование баланса перед проверкой.
    boolean withdraw(account : Long, amount : Decimal) : boolean = {
      with(account.lock()) {
        if (account.balance >= amount) {
          account = account - amount;
          return true;  
        } else {
          return false;
        }
      }
    }

    И код на SQL (ближе к Oracle-диалекту).

    SELECT amount FROM accounts WHERE accountID = :accountId FOR UPDATE;
    
    UPDATE ... 
    
    COMMIT ...;
    Ответ написан
    Комментировать
  • Как включить mod_rewrite в docker compose (nginx-proxy + php:*.*.*-apache)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй взять образ jwilder/nginx-proxy и внести в него нужные изменения. Я думаю там будет 1 строчка.
    Ответ написан
  • Путь развития сетевого инженера/администратора?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Иди на гос-предприятие. Там легче устроится. Потом оглядись и дальше как пойдет.
    Ответ написан
    Комментировать
  • Зарезервированные СНИЛС?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Хм. Там как в банковской карте - последняя цифра контрольная. 9 цифр + 1.
    Тоесть всего 1 млрд корректных номеров и 9 млрд некорректных которые никогда
    никому не выдадут. Отключи в своей системе контроль этой цифры и бери рандомное
    из диапазона вот этих некорректных.
    Ответ написан
    2 комментария
  • Как называется символ "?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше всего искать в справочниках Unicode https://en.wikipedia.org/wiki/List_of_Unicode_char...
    В разделе базовой латиницы его называют Quotation Mark. Українською мовою этот символ называют "в лапках".
    Еще называют двойная кавычка. В XML его называют & quot ;
    Ответ написан
  • Почему может не запускаться autovacuum?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А если ты вручную запустишь вакуум - это влияет на LiveTuples / DeadTuples ?
    Ответ написан
  • Фильтр по части строки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Значит сразу скажу что у меня для вас - плохие новости. DynamoDb как и многие ему подобные облачные key-value решения расчитаны на выборку по сету ключевых полей. Обычно это хеш-ключ и ключ диапазона. В этом случае вы платите немного. Если вдруг вы решили выбирать по не-ключевым полям это уже будет другое тип запроса. Называется scan. Его можно писать на любом языке разработки но суть в том что будет выбрана ВСЯ таблица. Если она большая - то charge за текущий период вас неприятно удивит. Фиксить это почти невозможно. Это неправильный дизайн и неправильное использование AWS Dynamo. Вам следует вообще отказаться от использования Dynamo и думать над тем как НЕ делать сканов в будущем. Можете теоретически создать индекс по хвосту от строки. Но индекс с точки зрения Динамо - это копия таблицы просто по другому расположенная и реплицируемая. Вобщем не советую тоже.
    Ответ написан
    3 комментария