Задать вопрос
  • Стоит ли строить локальную сеть на базе коаксильного телевизионного кабеля?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю что скорость современных адаптеров Wifi (5G/900Mb) будет лучше чем 10 мегабит по коаксиалу.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Корректно. Но если вы не пользуетесь билдером то вам придется вручную отслеживать открывающие и закрывающие скобки в тек местах где есть приоритет и вручную форматировать отступы и переносы если есть такое требование. Тоесть в какой-то момент времени сложность кодогенерации перейдет с билдера в ваш рукотворный код и вам эту сложность также придется поддерживать и объяснять ее происхождение коллегам.

    Кстати на каком языке вы разрабатываете? Для Java есть готовые билдеры в QueryDSL, JooQ.
    Ответ написан
    3 комментария
  • Как объединить строки в bash скрипте?

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

    cat src1.txt ${line} >> src1.txt
    Ответ написан
  • Как понять в коде сложность алгоритма?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Понимать сложность алгоритмов - сложно. В общем случае глядя на исходних достаточно трудно сказать какое там o(n). Особенно если есть рекурсии и предикаты которые срабатывают с вероятностью которую мы не знаем.

    Вообще, нарабатывая опыт. Например обход элементов квадратной матрицы имеет квадратичную стоимость а обход куба - кубическую. Это из простого. Шаблоны дихотомического поиска почти всегда содержат в основе своей формулы логарифм по основанию 2. И комбинаторные алгоритмы (сочетания и перестановки) - практически всегда содержат в своей основе n под факториалом.

    Кстати если формула содержит суперпозицию факториала и полинома - то полином можно выкинуть. Т.к. в сравнении пределов факториал улетает в бесконечность быстрее и соотв. решение зависит только от факториала.

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

    По поводу Дональда Кнута. Ничего он не поймет. Кнут писал 40 лет назад. Писал про железо которого уже не существует (ленточные накопители) и продавливал свои идеи алгоритмизации на ограниченном числе ресурсов. Кнут просто издевается над современным читателем имеющим ноутбук и смартфон тем фактом что заставляет изучать несуществующий компьютер MMIX (это такая себе машинка-калькулятор вроде Феликса или Энигмы, такие вот у меня ассоциации) и под него-же писать и читать код. Ну кому это надо!

    Сегодня я снимаю шляпу перед тем трудом который он сотворил. Но если студент хочет ПРОСТО освоить тему оценок сложностей алгоритмов то можно взять что-то более быстрое и эффективное. Вирт. Седжвик. Даже Кормен.
    Ответ написан
    Комментировать
  • Мало памяти на компьютере. Что делать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для жлобских ноутбуков можно попробовать поставить Linux с десктопом XFCE (Xubuntu). Там 8 для ОС надо.

    По поводу чистки - полностью согласен. Часто бывает что лежит хлам который годами не нужен. Апдейты. Софт который не был корректно удалён. Я сам этим грешил. Вобщем надо просто критически посмотреть что вообще за файлы там лежат. Может рука дрогнула и телесериал был залит случайно в \windows.
    Ответ написан
    Комментировать
  • Как повысить точность вещественного деления в среде C++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нормально все считается. У меня вышло

    sizeof(double) = 8 bytes
    z = 16.66666666666666785090


    gcc version 9.4.0
    Ответ написан
    2 комментария
  • Алгоритмы для эффективной нагрузки на сервис со стороны клиента?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Скорее всего прямой формулы не существует. Есть сравниительные подходы. Тоесть к примеру вы знаете уже такую конфигурацию которая "держит" 10 млн запросов. Вот смотрите как она реализована. Скорее всего это не один сервис а целый грид сервисов которые географически разбалансированы так чтобы каждая нода брала на себя часть нагрузки.

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

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Вместо вот этой колбасы
    for (int c = zis.read(); c != -1; c++){
          out.write(c);
    }

    следует использовать из библиотеки Apache Commons IO
    import org.apache.commons.io.IOUtils;
    
       IOUtils.copy(zis, out);
    Ответ написан
    1 комментарий
  • Как эффективно хранить canvas попискельно в БД с последующим отображением?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Для оптимизации загрузки landing page, можно хранить копии этой картинки в уменьшенном виде. 2000х1000 => 1000x500 => 500x250 e.t.c. Так игроделы делают для быстрого рендеринга текстур. Mip-уровни кажется называется.
    Обновлять эти mip уровни можно не спеша. Через минутку.

    База mysql вам вобщем-то не нужна. Картинку можно в реальном времени править atomic операциями и хранить в raw формате. Не знаю делают ли такое на PHP. Возможно вам нужен рукастый програмист на C++ или еще на каком-то языке чтобы подружить PHP с С++ и сделать сервис для этой картинки.
    Ответ написан
    Комментировать
  • Как убрать дождь и туман с фото?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать сделать 2 фото. Одну во время дождя. А другую в ясную погоду. Со штатива и не двигая между снимками. Потом попробовать сравнить 2 фотки и посмотреть какие артефакты дает дождь.

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

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

    Вот нарисовать такой граф я не могу. Это наверное автор может.
    Ответ написан
  • Разница между if else и try catch?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    try-catch - это эволюционно развитый if-else. Вот те кто кодили на "C" знают как тяжело работать с файловыми операциями. Любой fopen,fread e.t.c. надо проверять на код возврата и обеспечивать аварийный выход с очисткой (!) всех ресурсов. И вот отслеживание всех ресурсов и их состояний это нетривиальная задача. Для этого создали try-with-resources. И вообще возврат в это тяжелое мракобесное время проверок errorcode - никому не советую.

    В случае с делением на 0 (ArithmeticException). Если вы рисуете на экране график функции - то возможна ситуация
    где будет много делений на нуль. Тогда обработка исключений может стать performance issue. Это правда.

    Может помочь декомпозиция формулы с делением на результат с Option[Int] (в Scala и Java это уже рабоатет) и возвращать неопределенное значение None в случае когда в знаменателе стоит ноль. Вообще в языках ФП данный подход очень рекомендуется т.к. в этих языках есть синтаксический сахар для быстрого сворачивания (flatMap) списков таких опциональных значений.

    Тоесть если вы из функции хотите вернуть пустоту - то возвращаете None вместо бросания прикладных исключений.
    Ответ написан
    8 комментариев
  • Как логически объединить два XPath?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не спец в питонах. Но если getAll возвращает списки то их можно соединить через +.

    list1 = xpath('//li[@class="section-list-item"]/a/@href').getall()
    list2 = xpath('//a[@class="article-list-link"])/a/@href'). getall()
    result = list1 + list2
    Ответ написан
    Комментировать
  • Как сделать музыку на сайте так же как в вк?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Насколько я понимаю автору не нужно хостить всю музыку а только лишь делать по ней текстовый поиск.

    Можно посмотреть в каталог MuzicBrainz https://ru.wikipedia.org/wiki/MusicBrainz
    Ответ написан
    Комментировать
  • Как можно реализовать пагинацию в Java, в том случае, когда данные для фильтрации должны браться из двух разных микросервисов?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Ключевая фраза

    Если отфильтровать данные по пользователю а затем по работе, то пагинация сломается (записей будет меньше, чем мы ожидали бы увидеть)


    Мне кажется что здесь надо просто с бизнесом обсудить что собственно надо публиковать. С фильтрацией или без. А пагинация - это просто технический приём. К корректности результата вобщем то не имеет прямого отношения.
    Ответ написан
    Комментировать
  • Законно ли скачивать через торрент в Чехии?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дело в том что торрент архитектурно не различает качающих и раздающих. Все - суть участники одного сомнительного процесса обменом файлами. И ты становишся раздающим как только закачка достигает 100%.

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

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

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Можно посмотреть стандартный туториал по Spring+Mongo https://spring.io/projects/spring-data-mongodb
    Ответ написан
    Комментировать
  • Как работает поиск в хэш-таблицах?

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

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

    Вообще русская wiki достаточно хорошо описывает ХТ и можно начать читать с нее и далее по ссылкам.
    Ответ написан
    Комментировать
  • Какой есть алгоритм шифрования с 2 ключами?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно брать любой симметричный алгоритм и разделив его ключ на 2 половинки передать его лицам принимающим решение. Получается что-то вроде схемы Шамира. Нужен кворум людей чтобы сделать какое-то важное дествие.

    Если я верно понял вопрос.
    Ответ написан
  • Как улучшить мою сверточную нейронную сеть?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Возможно топик уже неактуален. Но я спрошу.

    В наше время все хотят затащить в проект НС потому что это стильно и модно и кроме того наличие тега НС очень сильно может впечатлить заказчика. Но может быть настало время переосмысления НС и рассмотрения старых добрых проверенных методов?

    Почему-бы не попробовать авто-корреляционную функцию. И если она будет лучше и проще - разве это не будет решением задачи?
    Ответ написан
    Комментировать