Задать вопрос
  • Как вычисляется 20 битный адрес путем сложения 16 бит адреса сегмента с 16 бит смещением в процессорах Intel 8086?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это проектировалось в 20-м веке. Тогда считалось что 1Мб памяти - это очень много. Вот и была сделана такая странная формула где любая комбинация сегмента + смещения всегда заворачивает вас в этот мегабайт.

    Сегодня нет смысла изучать Intel 8086. Я не знаю что за преподаватель толкает вам такое старье. Это все равно что на уроках химии изучать философский камень или четыре стихии огонь-земля и так далее.
    Ответ написан
  • Выбрать Rust или C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Rust создавался при разработке браузера Mozilla чтобы закрыть конкретные дефекты С++. Системообразующие дефекты такие как NPE, Buffer Overflow e.t.c. Сегодня доля Rust файлов в сорцах мозиллы составляет 40% от общего количества файлов. Это - достаточно чтобы считать успехом мероприятие.

    Нужно ли брать Rust при разработке игровых движков? ХЗ. Я-бы сказал что Rust важнее для тех приложений где важна инфо-безопасность. Я не спец в Rust, но я чисто из любопытва смотрел например как в Rust открыть файл (мне надо было парсить логи). Так вот открыв файл ты не просто не получаешь файловую переменную. Ты получаешь монаду Either (там кажется она называется Result<>) и вот пока ты ее паттерн матчингом не проверишь - никакого файла не получишь. Тоесть протокол работы с файлами строгий настолько, насколько это возможно. Срезать поворот - не получается. Это в сях можно взять fopen(..) и результат проe..ать.

    Вобщем rust по уровню строгости напоминает... ну не знаю Haskell наверное. Хотя в Rust тоже можно творить безпредел - но по крайней мере ты будешь явно декларировать операции как usafe. Это слишком очевидно вобщем-то. Дело техники на code-review просто отделить опасное и принять решение стоит ли так кодить или нет.

    Да и один финский парень обещал что в Rust скоро зайдет как второй язык разработки ядра Linux. Ждем пока.
    Ответ написан
    Комментировать
  • Как решить ошибку "string indices must be integers" в postgresql?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Здравствуйте, мне в наследство досталась база где в основной таблице индексом является текстовое поле.

    Это не является ошибкой. Возможно в дизайн закладывался текстовый ключ. Ну по крайней мере у тебя нет острой необходимости всё ломать сразу.

    Вообще такие страшные вещи которые ты затеял - делаются в специальные периоды времени. В окна обслуживания и предварительно всех предупредив.
    Ответ написан
  • Что не так в коде Java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    А распечатай чему равно month.

    System.out.println("Input = " + month);
    Ответ написан
  • Как сделать git@..., если gitlab настроен через nginx reverse proxy?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А сделай так
    GIT_TRACE=1 git clone ...
    будет больше отладочной инфы.
    Ответ написан
    Комментировать
  • Как создать такую структура FTP?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать завести пользователей с именем Отдел1-Группа1 и т.д.
    Ответ написан
    Комментировать
  • Как оптимизировать скорость работы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Странно всё это

    Проанализировал индексы и удалил те, которыми база не пользуется, но это помогло, возможно дело в другом.

    верни лучше взад.

    Что еще менялось кроме железа. Версия PG?
    Ответ написан
    Комментировать
  • Где найти полное руководство пользователя по Линуксу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот можно тут почитать. Это ядро. Я думаю это общее над всеми линуксами. Доминанта так сказать.

    https://github.com/torvalds/linux/

    Man pages. Тысячи их по всей сети. Я даже не буду линки приводить. По сути они скорее всего являются перекомпилляцией man формата в html. Вобщем вторичны они. Разве что из-за красивых шрифтов их можно читать.

    По поводу Mint. Сомнительно что кто-то будет специально создавать книгу. Кому это надо? Книги вообще щас устаревают через пол-года после выхода. Вот форум есть какой-то https://forums.linuxmint.com/
    Ответ написан
  • Допустимо ли "хардкодить" глобальные константы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да, можно. Вот константа Math.PI захардкожена в библиотеке математики и ни у кого не возникает с этим вопросов.

    По поводу констант в Dagger2. Я с ним 1 раз поработал на проекте Java/AWS/lambda стека. Для простых проектов где требуется инжекторный двигатель, но Spring затаскивать - лениво, Dagger - самое то.

    По поводу допустимо или нет - да допустимо. Тем более что ты пишешь что "один раз на проект". Вот к примеру имя таблицы. Ну кому в голову придет его менять? Это объем работ на самом деле в сто крат более тяжелый. И даже не в Даггере дело а в том что таблица к тому времени станет слишком родной для environment и дешевле будет поднять новую таблицу чем переименоввать старую. Уж повертье так оно бывает.

    Передавать через конструктор или нет? Смотри если для модульных тестов тебе надо их менять - то передавай через конструктор. Если тесты не нужны на эту компоненту - то делай как проще.

    Про константу PI конечно была шутка но в проекте есть два зла. Первое зло - заиграться в конфигурации и любой пустяк через них протаскивать. И второе зло - сделать проект неконфигурируемым. Я думаю что хороший проект - стоит где-то посередине.
    Ответ написан
    Комментировать
  • Как переименовать файл внутри докера при разворачивании образа docker-compose?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У докера есть своя философия. Его образ подготавливается как неизменный (immutable) а все что меняется - передается ему через переменные окружения (ENV) или просто как аргумены приложения entry point
    docker run -e key=val ...

    Вот так. Пересмотри свою логику чтоб она работала без переименований. А-то со стороны выглядит как грязный хак.
    Ответ написан
    3 комментария
  • Как сравнить по времени в таблицах, отбросив минуты и секунды до часов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Оракла есть короткий синтаксис внутренних соединений. Вообще JOIN не нужно указывать.

    SELECT 
      t1.ID, t1.TIME
    FROM 
      t1,t2 
    WHERE t1.ID = t2.ID
      AND trunc(t1.TIME, 'hh24') = trunc(t2.TIME, 'hh24')

    И есть общая рекомендация - выделять ключевые слова SQL в uppercase. Так их удобнее видеть.
    Ответ написан
    Комментировать
  • В каких случаях использование индексов в таблицах PostgreSQL может замедлить выполнение запроса?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня - очень угнетающее впечатление от практики применений библиотек. Ребята пытаются обучать нейросети даже не зная основ мат-статистики. У них сеть расходится. Переобучается. Выдает лажу на выходе которую они берут за чистую монету. Потом приходят в этот же форум и спрашивают почему opencv или tensor flow "глючит". Они даже вопрос не могут задать потому что не владеют терминологией.

    При этом я говорю без ревности там или обиды от конкуренции. Нету у нас конкуренции. У меня задачи другие. Мне за науку обидно. Будто в физ-лабораторию где коллайдеры и квантовые вычислители забежали мартышки и начали нажимать вообще на все-все кнопки на которые только можно. Спасибо языку Python и фреймворкам! Боже мой какое счастье!!

    Это я не в упрёк автору. Просто зачем пополнять зоопарк? Берите консервативную отрасль. Не из buzzwords а из современного и актуального завтра. Биохимия например. Нужная наука. И it там будет очень нужно.
    Ответ написан
    Комментировать
  • Как найти строки в файлах и изменить их с помощью python?

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

    Оригиналы архивов потом можно удалить. Лучше всего это делать в разных директориях чтоб не запутаться.
    Ответ написан
    Комментировать
  • Как влияет полное шифрование диска на срок его службы?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    При такой постановке задачи можно оставить только 1 предикат.
    if answer=='18':
    А все остальное всегда идет по линии else. И сравнивать строки даже можно.
    Ответ написан
    Комментировать
  • Как найти разработчиков python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот какой-то ресурс есть https://peps.python.org/

    Насколько я понял Pep - это аналог Java JEPs. Вобщем надо читать нудные рекомендации по внесению предложений. Хороший этап. Это так сразу... чтобы отсесять 99% инноваторов. Те кто выживут - достойны того чтоб их послушать :)
    Ответ написан
    Комментировать
  • Использовать методы или самому писать функции?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно писать программу так чтобы она была легко читаема для человека. И чтобы другие читающие
    быстро поняли что имелось в виду. Методы против функций - это холивар. В нем нет смысла.
    Лучше приведи свой код и попроси сделать code-review.
    Ответ написан
    Комментировать
  • Не удаляет данные из бд?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Надо проверить следующее.
    1) Вот эта штука возвращает число удаленных строк
    cur.execute ('DELETE FROM memorycfcb WHERE name = %s', (data,))

    проверь что там хотя-бы не ноль. Вообще - всегда проверяй коды состояний API.

    Любого API. И зимой и летом проверяй. Это просто как чистить зубы по утрам.

    2) Проверь что режим autocommit включен.
    Ответ написан
  • На сколько корректна такая реализация?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут зубчатый массив не нужен. Можно и одномерным прекрасно обойтись.
    for (int i = 0; i < heightGameField; i++)
          gameField[i] = new int[widthGameField];


    Тут всё поле можно не перерисовывать. Змейка это вообще - эконом-игра. В ней можно обновлять
    только голову змеи и хвост. И те места на карте где выпадает еда.

    for (int i = 0; i < heightGameField; i++)
        {
          for (int j = 0; j < widthGameField; j++)
          {
            switch (gameField[i][j])

    Я не кодил на SFML/Graphics.hpp. Моя С++ библиотека когда-то называлась Borland C++ BGI. Но там мне хватало
    вот такого частичного обновления экрана.

    Зачем этот метод? Он безсмысленный.
    int** getGameField(void)
      {
        return gameField;
      }

    Он взламывает инкапсуляцию класса. После него всё ООП должно пойди по звезде. Вобщем можешь его даже не делать.

    Вообще в данной игровой логике ООП не очень нужно. Ну тоесть я не вижу ниакой мотивации к ООП. Между змеей и локацией нет никакой секретности. Короче пиши набор функций и не парься. Если SFML жостко не требует ООП
    то и не беспокойся об этом. Шаблонизация тут как я понимаю важнее чем ООП. А об этом еще великий Степанов
    говорил.
    Ответ написан
    1 комментарий