Задать вопрос
  • Как массиве с повторяющимися нулями, перенести их вперед?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Тут - задача на смекалку. Ничего перемещать не надо. Просто фильтуем ненулевые и накапливаем их. Ведем подсчет нулевых (k штук). И формируем новый массив как конкатенацию k нулей и накопленных.

    Очень похоже на сортировку подсчетом.
    Ответ написан
  • Какая разница между фронт-энд разработчиком и разработчиком JS?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос звучит типа - какая разница между машиной и ее двигателем. Ну... как-то оочень безграмотно поставлен.
    Очевидно что фронтовик должен знать JS. Иначе он не фронтовик а какой-то заяц плюшевый.
    Ответ написан
    Комментировать
  • Хочу заняться программирование БПЛА/ ИИ на БПЛА, с чего начать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не знаком с авиацией. Но предположу что современный БПЛА такой же сложный как и хорошая операционная система. В нем будет несколько уровней управления. Или несколько одновременно работающих и независимых систем. Одна из них будет - автопилотом. Это то что будет контролировать азимут и тангаж и высоту и прочее. Компенсировать ветры и воздушные ямки. Будет другая система связанная с полу-ручным управлением. Будет третья система связнная с тактической задачей. И еще много чего. То что автор называет ИИ - это может быть либо одна из этих систем, либо все вместе взятые. Все вместе - автор не потянет. Тут нужны специальные знания из авиации. Взять какую-то одну из систем (то что он называет ИИ) и просто начать ее программировать - это профанация с моей точки зрения. Или очень поверхностный подход. Я просто не верю в эффективность подобного метода когда речь идет о технике которая дорого стоит. Но потренироваться на симуляторах - вполне себе можно.
    Ответ написан
    Комментировать
  • Как в Си вывести в консоль без записи в буфер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть ли какая другая команда вывода, которая будет текст выводить только в терминал, без записи в файл?

    Да есть. Ты можешь выводить в STDERR и тогда это будет печататься на экране но в лог файл не попадет по причине такого скрипта
    ./a.out > file.log'
    Чтобы оба потока писались в лог - нужно делать так
    ./a.out 2>&1 > file.log'
    Но кажется что ты борешся не с той проблемой и не так. Для логгирования в файлы - есть специальные библиотеки.
    А работа с STDOUT/STDERR - это просто базовые абстракции любого Unix-процесса.
    Ответ написан
    4 комментария
  • Ошибка [Errno 2] No such file or directory при, что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я вот щас попробовал os.listdir. Там надо бекслеши экранировать или буквочку r добавлять. Проверь.

    import os
    
    os.listdir('c:\\tmp')
    
    os.listdir(r'c:\tmp')
    Ответ написан
  • Можно ли так зашифровать компьютер?

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

    Я не считаю что хранение ключей доступа где-то более безопасно чем локально, пока мы не обсудили протокол их получения. Также полезно обсудить модель потенциальной угрозы. С чем мы боремся?
    Ответ написан
    Комментировать
  • Как лучше всего организовать работу с большими списками в Python?

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

    Мне не нравится ваше решение. Чисто технически C#/Net - генерирует более совершенный исполнимый код. И он и должен работать быстрее.

    Дайте шанс c# приложению. Запустите под профайлером и найдите тот алгоритм или кусок кода который работает медленно.

    Иначе вместо одной проблемы вы получите две новых. Python не славится рациональным хранением коллекций в памяти. Может быть еще хуже.
    Ответ написан
    Комментировать
  • Как декодировать JSON содержащий кириллицу?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать через

    $ iconv --from-code=win1251 --to-code=utf-8 ............
    Ответ написан
    Комментировать
  • Почему именно при таком обращении к матрице мы получаем все ее элементы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ты работаешь скорее всего не с матрицей а с зубчатым массивом (jagged array). Или его еще называют
    массив массивов. Кстати строки этого массива вовсе не обязаны быть равными. Тоесть не квадрат.
    Их можно делать разного размера. И если смотреть на них сбоку - то получается картинка "зубов".

    *(*(matrix + i) + j)
    в данном выражении идет 2 разыменования. Первый - прыжок на зуб. И второе - прыжок к нужной ячейке
    массива зуба.

    В альтернативном варианте - можно создать просто массив из 100 элементов и доступ получать по формуле

    matrix = new int[100];
    cout << matrix[j + i * 10]


    И этот подход более рациональный с точки зрения менеджера памяти. Мы выделяем 1 кусок а не 10.
    Что вобщем экономит память т.к. аллокатор может резервировать больше памяти чем мы запрашиваем.
    И с точки зрения когерентности по памяти это лучше т.к. мы точно знаем что соседние строки матрицы
    лежат физически рядом а не разбросаны черт знает где.
    Ответ написан
    3 комментария
  • Возможно ли использовать смартфон в качестве устройства графического вывода компьютера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В этом нет особого смысла. Ведь смартфоны всегда меньше чем стандартные мониторы.

    Вот в некоторых смарт-телевизорах есть схема работы наоборот. Когда телефон - транслирует по wifi картинку а телевизор показывает. Вот это я понимаю.
    Ответ написан
    Комментировать
  • Почему нельзя использовать ^ в коде?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На всякий случай. Домик - это не возведение в степень а булева операция xor.
    Ответ написан
    2 комментария
  • Изменить текст в clob по все таблице?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если CLOB длиной меньше чем 32 килобайта то его можно конвертить в varchar и решать задачу как с обычной строкой.

    Вот описание пакета DBMS_LOB и функции SUBSTR https://docs.oracle.com/cd/B19306_01/appdev.102/b1...
    Ответ написан
    Комментировать
  • Какую выбрать СУБД, если в день может быть более 11млн записей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    11 миллионов inserts в день - это 127 в секунду. При такой нагрузке справится любая современная БД. Ну я не знаю таких чтоб не справлялись. Делайте только короткую буферизацию и batch-insert пачками по 100 - 1000 чтобы оптимизировать сетевой roundtrip.

    Есть специализированные NoSQL системы такие как RocksDb, Tarantool в которых именно много оптимизаций сделано было для быстрой вставки. Они выдерживают и во много раз быстрее.

    И в данной задаче нужно также спросить бизнес - как быстро данные нужны к чтению пользователя. Нужно сию секунду чтоб они отобразились на UI или можно подождать пару минут или часов.
    Ответ написан
    1 комментарий
  • Как избавиться от неспособности придумать адекватное название блокам?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я где-то читал что астрономы уже давно не дают названия планетам и звездам. Закончились у них названия. Они их нумеруют. Может быть в какой-то степени это оправдано. Если для блоков веб-дизайна нет названий то возможно им стоит давать хотя-бы номера из sequence. Или если есть указание на относительную ориентацию (север-юг или слева внизу) то можно добавлять там какой-то символ. Вот. А если у автора возникнет именно задача тесной работы со слайдером - то тогда он его просто переименует в slider и будет работать. Похоже конечно на обфускацию больше чем на конвенцию по именам. Но может быть имена не так уж важны в данном процессе.
    Ответ написан
    Комментировать
  • Как сравнить два списка с помощью хеш-кода?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Насколько я вижу хешкод нигде не хранится для ArrayList а расчитывается каждый раз. Поэтому твоя попытка срезать на повороте - скорее всего неудачна.

    int hashCodeRange(int from, int to) {
            final Object[] es = elementData;
            if (to > es.length) {
                throw new ConcurrentModificationException();
            }
            int hashCode = 1;
            for (int i = from; i < to; i++) {
                Object e = es[i];
                hashCode = 31 * hashCode + (e == null ? 0 : e.hashCode());
            }
            return hashCode;
        }


    Используй метод equals. Это будет правильный ответ на собеседовании.
    Ответ написан
    Комментировать
  • Как правильно выделить память для двумерного массива большого размера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это не большой размер

    2000 * 500 * sizeof(int) = 4 000 000

    4 мегабайта на каждую матрицу целых чисел. Когда-то давно во времена DOS этой памяти хватало чтобы поиграть в DOOM.
    Ответ написан
    Комментировать
  • Как сделать вложенность кэша?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ты сам себе создал проблему. Вот какую пользу тебе дает вложенность?

    Бери правило Паретто. Вот если метод method_2 покрывает 80% нагрузки - то кешируй только его а на остальное - забей. Это будет проще и надёжнее чем придумывать какие-то немыслимые ВЛОЖЕННОСТИ которые никакого
    отношения к техникам кеширования не имеют.
    Ответ написан
    Комментировать
  • Что лучше использовать ИИ или готовые библиотеки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я ниразу не использовала ИИ и для меня будет это трудно, но есть билибиотеки для работы с аудио и переводами

    Конечно нужно брать готовые решения.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    хорошие книги для глубокого изучения Linux


    Есть книга Linux System Programming - Robert Love. Она где-то 2008 года. Но мне кажется что еще не утратила своей актуальности. Думаю что многие вещи из нее актуальны в части API.
    Ответ написан
    1 комментарий
  • Как rsync сжимает при передаче данных?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Просто на сервере дай бог 10 гб свободного места осталось. Не будет ли он на сервере создавать какие то архивы?
    А передать надо много, гб 200

    Можешь отдельно заархивировать кастомным архиватором и порезать на тома и добавить контрольные суммы для восстановления.
    200 Гб - это тот размер когда стоит дополнительно сделать проверки на целостность.
    Ответ написан
    3 комментария