Задать вопрос
  • Как скачать все файлы лежащие на сайте в статике?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что http-протокол не поддерживает команду DIR. Тоесть мы не можем спросить перечень файлов.
    Можем только сказать GET /url когда точно-точно знаем путь.

    Хотя некоторые старые сервера типа Apache поддеживают auto-index mod. Который просто генерит такие html-листинги. Но это опция. Ее могут включать а могут нет. Некоторые поддерживают редирект на ошибку. Но это тоже опция.

    Вот пример такого листинга https://repo1.maven.org/maven2/
    Ответ написан
    Комментировать
  • Как создать папку с помощью докера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    RUN mkdir создает папку внутри docker-image.
    Поэтому ее не видно невооруженным глазом.
    Тоесть это подготовка артифакта дистрибутива а
    не манипуляции с твоими каталогами.
    Ответ написан
  • Можно ли делать так чтобы константный текст брался на этапе "(пре)компиляции" из фаила который не являеся source code?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Совершенно непонятно зачем это надо? Константы можно просто объявлять в исходнике.

    Тут зря автор смешал в кучу теги Go и С++. Это слишком разные философии разработки.
    Я-бы сказал что в Go многие вещи сознательно упрощаются или выбрасываются. И обсуждать
    вот так вот просто через запятую Go и С++ немыслимо.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я обычно оцениваю на глазок просто мысленно предполагая что данных очень много.
    Например строка длиной 2 млрд символов.
    В этом случае 3 линейных поиска по ней (indexOf) дадут нам формулу

    O(n)

    Это в негативном сценарии когда мы не нашли скобочек трех типов.

    Но в позитивном сценарии если мы нашли - начинает работать еще более хардкорная логика
    реплейсмента которая ... ну я не знаю как работает. replace(..) которая под капотом тоже имеет
    свою complexity. Наверное тоже линейную если стоит билдер строк. Получается что линейная вложена
    в другую линейную. Получается квадратичная.

    o(n^2)

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Предположительно BinHex. Но надо проверить все символы.
    Ответ написан
    Комментировать
  • Зачем нужна база данных если можно хранить данные в json файлах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    movchans ваша фраза (заголовок вопроса) просто выдает в вас неопытного разработчика который еще с базой не работал.

    MongoDb помимо хранения json файлов (на самом деле внутри она хранит bson) предлагает опции масштабирования (можно поднимать несколько нодов одной базы) и командную строку запросов. Кроме того можно создавать индексы, по разным полям документа - это коробочная фича Mongo.

    И я даже не знаю сколько у вас уйдет времени на то чтобы просто повторить этот функционал. Даже атомарная работа с документами. Если вы не опытный разработчик - то работая с файлами вы наделаете таких дел что ойойй. Я готов даже спорить на коньяк что наделаете. Интуиция такая вот.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Первое. Тема топика Python + PowerShell. Тоесть непонятно тебе нужно программировать и развивать этот софт или решить задачу 1 раз и забыть. В зависимости от желания - будет разная реализация.

    Второе. Есть коробочные утилиты fc (Windows) diff (Linux) которые такое сравнение делают. Но обычно для исходников и при условии что изменений мало. Почитай про них. Возможно это частично решит твою задачу.

    Третье. Ты хочешь сравнивать одну строку со всеми из другого файла. Это декартово произведение. В данном случае тебе можно сортировать оба файла и тогда одинаковые значения будут кластеризованы рядом. Sort + Diff решают твою беду.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    В науке это называется факторизация или разложение числа на простые множители.

    $ factor 50
    50: 2 5 5

    50 раскладывается на 2 умножить на 5 в квадарте.

    Но ты почему-то решил что надо делить только на 2. Да еще и с каким-то недоказанным округлением.
    Ответ написан
  • Как начать парсинг csv с нужной строки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если csv.reader поддерживает интерфейс iterable то можно сделать фильтр как тут пишут https://learnpython.com/blog/map-filter-reduce-python/

    filter(function, iterable)
    Ответ написан
    Комментировать
  • Как строку или таблицу превратить Map?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Вот заготовка.
    Map<String, List<Integer>> list = new LinkedHashMap() {{
               put("Петя", Arrays.asList(1, 2, 3));
               put("Развитие", Arrays.asList(3, 4));
            }};
    
            String res = list.entrySet().stream().map(
                    entry -> entry.getKey() + " ; " + entry.getValue()
            ).collect(Collectors.joining("\n"));
    Ответ написан
    Комментировать
  • Как оставить в UTF-8 строке только 2х байтовые символы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот по такой маске 110xxxxx 10xxxxxx (где x - это произвольный бит) можно выделить двухбайтные символы.
    Со ссылкой на вики https://en.wikipedia.org/wiki/UTF-8

    Но я думаю что ты делаешь что-то не то. Тоесть тебе надо делать другое.
    Ответ написан
  • Влладалаьаьыджввла?

    mayton2019
    @mayton2019
    Bigdata Engineer
    но к сожалению спустя чуть меньше чем через 1,5 месяца работы был забанен(разрабы юзают easy anti cheat).И после бана у меня встал вопрос продолжать двигаться к очеловечиванию бота или же меня подвела винда(как я предполагаю она выдаёт эмулированные действия,это я вычитал на каком то форуме)

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

    При чем тут винда? Как ты решил что винда? Какие были логи? Нужно - больше фактов.

    Меня лично тема ИИ и НС интересует. И я готов ее обсуждать. Но я сейчас вообще не нахожу ни одного основания что здесь обсудить.

    Вобщем подумай над анализом. Ты еще создашь 100500 ботов. Но тебе нужен лог сетевого трафика и полный анализ действий во времени. Без этого никак.
    Ответ написан
  • Как получить прошлые версии сайтов на githab.io?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можешь сделать
    git log
    и посмотреть историю изменений
    Потом
    git checkout xxxxxx
    и указать хеш коммита.
    Ответ написан
  • Чем асинхронность лучше многопоточности для чат-бота?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насчет чят бота не скажу. Вообще скажу.

    Если задача связана с вычислением численных метдов например. Или рендерингом 3D. Или крипто-майнингом. Или нейро-сетей - где
    CPU -> 100%, I/O -> 0% то тогда тебе прямая дорого в мультипоточность (мультипроцессность). Количество тредов расчитывается обычно по формуле = количество ядер (иногда АЛУ/Threads) умноженное на коєффициентик. Подбирается экспериментально для конфигурации и среды исполнения. У меня для Java-11 выходило что на 4 ядра Core-i3 надо было 5 вычислительных потоков.

    Если в задаче главным дирижёром является канал I/O а нагрузка на расчет малаая (парсер) - то используют технологи асинхронизма. Это когда ваши вычисления подписываются на события I/O и 80% времени ничего не делают а только ждут события от I/O. При благоприятных условиях хендлеры могут потреблять вообще 0% ресурсов. Нет событий. Поэтому таких хендлеров можно поднять очень много. Пример - акторные технологии. Хендлер. Актор. Горутина. Пример 10 000 акторов обслуживается 10 потоками исполнителями.
    Ответ написан
    2 комментария
  • Раньше, файл создавался сам, а теперь перестал, почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Обработай Exception

    except Exception as e:
            print 'Reason: ' + e.errno
    Ответ написан
    Комментировать
  • Как установить Windows 98 на телефон?

    mayton2019
    @mayton2019
    Bigdata Engineer
    А я поддержу автора. Но в другой части. Не в Windows 98.

    Иногда возникает желание позапускать на телефоне некоторые REPL command line приложения.
    Вот изучал недавно Clojure. Возник такой интерес. Язык я все равно не изучил но сознание себе
    расширил.

    Можно конечно запускать ideone. Но... ощущения не те.
    Ответ написан
    Комментировать
  • Как правильно написать мультипоточность на питоне?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Blankspace у

    1) тебя все задачи - независимые. Ты можешь запускать 6 отдельных процессов на Python. В таком случае тебе не надо думать о синхронизации потоков.
    2) ты описал задачу максимальной утилизации ресурсов. Это - неверная задача. Это все равно что ты захотел сжечь побольше бензина. Цель - быстрее закончить парсинг N сайтов например используя M proxy серверов.
    3) Твой вопрос
    Сколько максимально я могу парсить сайтов по такой схеме, ориентируясь на мощность процессора

    Ответ - никто не знает. Не существует такой расчетной формулы. Есть скорее сет экспериментов которые ты сам будешь запускать на своей конфигурации и в зависимости от параметров (M,N) и получать результирующее время в секундах или в минутах. Процессорные мощности здесь скорее всего нипричем. Здесь сильнее влияет канал ввода вывода. Тоесть скорость сети и скорость с которой ты сохраняешь на диск разобранные данные.

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

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

    Почитай также про закон Амдала. Он сработает в твоём случае.
    Ответ написан
    Комментировать
  • Как отдать объект без некоторых полей?

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Попробуй так

    strace -p <pid> 2> file
    Ответ написан
    6 комментариев
  • Стоит ли учить assembler для реверсинга?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Под реверсингом насколько я понял имеется в виду реверс-инжинеринг. Скорее всего - по ситуации. Какими тулами ты пользуешся? Если они выдают достаточно информации - то тогда не надо.

    Но я-бы учил не для реверса а для понимания например железа и архитектуры. Просто это часть стека который мы каждый день используем. Как арифметика в быту. Деньги считаем. Значит знаем.

    Хотя мне кажется что в наше время зарабатывать на реверсе так-же бесполезно как и на трейдинге. Какие-то редкие случайные заказы. Вот на собственной разработке - поднимешь больше всегда.
    Ответ написан
    2 комментария