Задать вопрос
  • Ошибка [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 комментария
  • Как погрузиться в начала/фундамент программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Как построенн язык программирования, например: Как понять, как устроенны ключевые слова; Препроцессорные процессы: define, include и др.; - Я правильно понимаю, нужно опустится на ещё более низкий уровень до ассемблера? - Ассемлер является той фундаментальной сущностью в программировании (не считая машинный код, который и так человек не должен понимать)?

    Лет 50 назад так было. Программист был физик-математик. И он обязан был знать как работает транзистор. Этот был "тот" уровень понимания требований к профессии. Сегодня знания ассемблера уже не являются обязательными. Можно прожить бурную и интересную жизнь будучи синьором-помидором разработчиком но так и не написать ни строчки на асмах. Профессия разделилась на узкие специализации и знать весь стек уже стало настолько трудно что это перестало быть необходимым.

    По второму пункту - я не понял что хотел автор. Хотел достичь какого-то дзена?

    Ну и вообщем, какие-то фундаментальные знания - на чём базуется/построенна програмированние и IT, тоже не помешало. Например рекомендуют SICP почитать, правильно ли я тогда пойду или это не то. Если да, можете ещё набросать ваши варианты? Буду признателен.

    Кажется один из авторов SICP сказал примерно следующее. Что современный инженер - это уже не создатель алгоритмов. Он - интегратор. Просто сама индустрия подталкивает к тому чтобы популярным стал язык Go а не Scheme. Хотя c моей кочки зрения Scheme интереснее и умнее, но увы. Прагматизм все решает. Для меня Scheme останется в разделе забавных мозговых экспериментов вроде брейн-фака. Ты решаешь задачу и получаешь от этого эндорфин. Как codewars. Вот такого эндорфина от Go нету. Хотя в резюме такое вписывать бесполезно наверное. Кому нужен Lisp-овед или Schem-щик?

    Кстати кто знает какие курсы в MIT сейчас читают? Поделитесь.
    Ответ написан
    4 комментария
  • Как менять параметр функции внутри другой функции?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для обобщенного метода интегрирования как раз удобно передавать не один параметр а всю лямбду.

    f = lambda x, y: x**n

    передавай эту всю колбасу как параметр для dbl_integral.
    Ответ написан
    Комментировать
  • Не правильно отображаются отступы в pdf после конвертирования в base64. Как правильно конвертировать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    base64 здесь скорее всего непричем. У него нет таких странных артефактов воздействия на отступы.
    Тут либо документ вообще был-бы сломан и не открылся либо он будет 100% побайтово соотвествовать
    оригиналу.
    Ответ написан
    Комментировать
  • Как узнать монотонное ли число?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    У меня какое-то дежа-вю. Кажется что вопрос повторяется. Ну вот рекурсивно. С дополнительным опциональным параметром.

    def isMonotonic(i:Int,o:Option[Int] = None) : Boolean = {
    	if (o.isDefined) (i % 10 <= o.get) else isMonotonic(i / 10,Some(i % 10))
    }

    Написан на Scala но можно без труда переделать в Java. Option/Optional там тоже есть.
    Ответ написан
    Комментировать