Задать вопрос
  • Можно ли (если да, то как?) заменить первую строчную букву первого слова на заглавную через регулярные выражения в java?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Правильный ответ - нет. Функционал регулярок - это найти и указать найденное. Вы можете посмотреть как работает Pattern/Matcher в паре. Они просто находят группы выражений и указывают пальцем дескыть вот здесь матчинг подошел.

    Но есть API языков программирования такой как String::replace который позволяет с ИСПОЛЬЗОВАНИЕМ
    регулярок найти-и-заменить одной операцией.

    Но данную конкретную операцию - капитализацию первой буквы в Java-строке я-бы сделал просто через substring() и toUpper(). Это будет по времени в сотни раз быстрее т.к. мы не будем вовлекать в процесс компилляцию паттерна регулярок. Грубо говоря если ты решил пальнуть по птичкам - то бери рогатку. Пушка тебе не нужна.
    Ответ написан
    Комментировать
  • Медленный скорость на флешку, почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не все MicroSD-шки одинаковые. Есть понятие класс скорости. У них на корпусе написано в кружочке:

    class(4)

    например.

    Эту карточку выкинь. Она тебе не подходит. И купи классом повыше.

    В топике - правильно пишут. Не надо жадничать. Покупай нормальный товар а не по цене мусора.
    Ответ написан
    Комментировать
  • Производительность SSD дисков 15 Мб/сек на VPS в облаках, это много или мало?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Надо читать полный прейскурант продаваемых Яндексом виртуалов. Я думаю что гарантии по скорости и доступности ssd блинчиков просто учтены в цене на саму виртуалку. И надо просто доплатить денег.
    Ответ написан
    Комментировать
  • Как при помощи выходного тепла ПК расчитать сколько Watt он потребляет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У вас у всех в коридоре висит идеальный ваттметр. Электросчетчик. Заменяйте его показания с включенным ПК за интервал времени и заменяйте с выключенным. Дальше - школьная арифметика.
    Ответ написан
    Комментировать
  • Какой язык программирования лучше подходит для встраиваемых решений с требованием к повышенной надёжности и безопасности?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По надежности рантайма - хорошо идёт Erlang. Он способен накатывать патчи без ребута приложения. Его даже не рекомендуют запускать в докере т.к. его преимущества теряются из-за контейнера.

    По надежности языка разработки - согласен с предыдущими ораторами насчет Ады. Но насчет перспектив - я ХЗ. Не знаю как там для современной разработки.

    Современная восходящая звезда надёжности фазы компилляции - это Rust. Его изначально создавали с целью фиксить дефекты С++. Просто на основании опыта накопленного в Mozilla. И на основании анализа уязвимостей из тех которые уже были внедрены в код Мозиллы из за фундаментальных дефектов языка С++.
    Ответ написан
  • Читабельность кода или скорость его выполнения?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Несколько мыслей.

    1) Существуют языки программирования в которых рекурсия вообще заменяет цикл (Haskell, Erlang) и другого способа описать итерацию кроме как через рекурсивную функцию - нету. Но наверное в топике тема рекурсии - не основная - а просто частный пример.

    2) Во всех случаях всегда надо выбирать "читабельность". Прошли времена когда программисты отдавали дань ассемблеру или указателям на сырую память. Сегодня так пишут все меньше и меньше. И основная задача написания кода - сделать его понятным для вашего коллеги. Цитата : "Код пишется человеком для прочтения человека и лишь в очень редких случаях - для машины".

    Вобщем пишите код. Просите коллег чтоб они его посмотрели и ПОНЯЛИ что вы имели в виду. И если коллеги будут кричать WTF! - фиксируйте их замечания и доводите до такого состояния чтобы ни у кого не было вопросов.
    Это будет идеальный код по Роберту Мартину.
    Ответ написан
    Комментировать
  • Как обойти распознавание лица на фото?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тема интересная. Находится на стыке развития систем распознающих образы и обще-человеческой медицины.

    Защитить - скорее всего можно. Только после этого фото станет недоступным для человеческого восприятия. Простые фильтры дисторсии (distort), бочка, подушка, кручение (twirl). Просто какие-то варпы, которые изменяют пропорции лица, например вытягивают глаза и прочее - могут сломать систему поисков по совпадению.

    Но если вы решили играть в кошки-мышки с государством то ничего у вас не выйдет. Вас все равно поймают. А дистортнутые фотографии в вашей соц-сети просто будут вызывать удивление и подозрение.

    Может если вы не хотите чтоб вас искали - то лучше наверное вообще ничего не публиковать.

    Поэтому диклеймер - интерес этого топика - исключительно академический.
    Ответ написан
    Комментировать
  • Зачем нужно знать эффективность\сложность алгоритма?

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

    А если говорить простыми словами то все подмножество алгоритмов делится на константные O(1) - это поиск в хеш-табличке. Логарифмические O(Log n) - это поиск в дереве или сортированной коллекции. Линейные - любой поиск в произвольнйо коллекции O(n). И дальше идут полиномиальные (это всегда цикл в цикле) экспоненциальные O(exp n). Здесь начинается криптография. И комбинаторные, в формулу которых входит факториал от N или еще апроксимируется O(n^n). Последние как-раз и создают тот самый класс нерешаемых наукой алгоритмов для которых пытаются строить квантовые устройства работающие совсем на других физических принципах.
    Ответ написан
    Комментировать
  • Как лучше обработать изображения для обучения сети?

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

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я не специалист в MySQL но обычно транзакция заканчивается командой commit.
    Проверь где ты явно завершаешь (фиксируешь транзакцию) или у тебя в свойствах соединения должен быть включен авто-коммит. Хотя авто-коммит это плохой вариант если ты удаляешь много строк.
    Ответ написан
    Комментировать
  • Почему не запускается дочерний поток?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Здесь заложена потенциальная ошибка гонок. Главный и дочерний потоки не синхронизируются через объекты синхронизации. Это означает что если дочерний объект тупанул в фазе например JIT компилляции то главный его не будет ждать и завершит приложение. И мы можем (теоретически) не увидеть даже следов работы дочернего потока. Искусственные паузы sleep() не являются механизмом синхронизации и их не стоит использовать для той цели которую хочет достичь автор. Нужен нормальный join. Или ожидание финала ThreadPool.
    Ответ написан
  • Как убрать из json лишние тэги map и MyArrayList?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    1) Что такое data? Почему ты названия классов пишешь с маленькой буквы? Это вроде бы пустяк но это раздражает читающего твой код. Возникает подозрение об ошибке или о некорректной копи-пасте.
    2) Очень сложно понять что ты хотел получить на выходе. Нарисуй образец желаемого документа в Json и тебе помогут быстрее.
    Ответ написан
    1 комментарий
  • Возможно ли использовать нейросеть на ГСЧ?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я думаю если автор сможет спрогнозировать например следующее число из какого-нибудь SecuredRandomGenetator - то весь мир криптографии вздрогнет.

    Неважно там... нейросеть или просто какие-то стат-методы. Это будет прорыв покруче этих ваших взломов SHA-1.

    Вобщем цена этой задачи - как минимум премия по теории чисел.
    Ответ написан
    Комментировать
  • Как исправить ошибку SLF4J: Failed to load class?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    В третьей строке лога приведена ссылка на решение проблемы.

    slf4j - это просто переходник. За ним стоит обычно любая имплементация. Например эта.
    group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.30'

    Подключи ее в артифакты проекта.
    Ответ написан
    Комментировать
  • TCP - как создать свой пакет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    C TCP обычно не работают пакетами. Работают потоками или Streams. Это нормальный левел прикладного программиста. И я почти не знаю задач кроме студенческих лаб где кому-то вдруг понадобился пакет как таковой.

    Примеров полно. API: socket(), connect(), bind() ,listen().

    Поэтому может быть автору нужен принципиально другой протокол. Прикладной UDP. Или более системный IP но с последним сложнее работать т.к. операционки запрещают его напрямую. Через него легко устраивать различные Syn-Flood атаки. Нужно как-то повышать привилегии или пользовать сторонние либы.
    Ответ написан
    2 комментария
  • Что посоветуете для криптования раздела где установлен Windows?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Нужно понять от кого автор защищается. От лоха - да это прокатит.

    1) Если диск будут смотреть специалисты - они увидят подозрительную разность в физическом объёме диске и доступное место на фейковом диске.

    2) Я пока себе не представляю алгоритм. Симметричная криптография нигде не хранит ключ. Поэтому реализовать этот выбор фейковая-нефейковая мне пока не представляется никак возможным. Просто в случае кривого пароля у вас не поднимется никакая ОС.

    А хранения пароля для проверки - противоречит тому о чем я писал выше.
    Ответ написан
    3 комментария
  • Как правильно параллельно обрабатывать файлы на c++?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Это видимо учебная задача. Практического смысла параллелизма здесь мало.

    Обычная дисковая подсистема на домашнем ноутбуке состоит из 1 HDD/SDD. И он не параллелится. Тоесть это такое жлобское устройство которое в 1 момент времени может обслуживать чтение и запись 1 блока файловой системы (или сектора или кластера неважно). Поэтому параллелизм толком ничего не дает. Однако если у вас какие-то RAID массивы или сеть хранения данных то она может обеспечить такие действия.

    Что еще в задаче плохо.
    while(!InputFile.eof())
        {
          getline(InputFile, tmpString);
        }

    Непонятно что здесь происходит? Перемотка в конец файла? Почему так дорого? Почему мы должны каждый раз получать строки? Ведь нам нужна только последняя? Может надо было взять первую? Вобщем непонятно.

    Вот если-бы автор решал задачи наподобие map-reduce где работают с большими файлами тогда параллелизм был бы понятен. Там чтение блока файла чередуется в вычислениями.

    Здесь вычисления - мелкие. И большая часть процессорного времени зря сгорит в старт-стопах потоков и в финальном join потоков (которые я кстати не вижу).
    Ответ написан
    Комментировать
  • Как создать алгоритм, который определяет на видео в реальном времени цифры ( от 0 до 9) и цвет?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тут наверное OpenCV не надо. Просто замерять цвета нескольких точек в течение 3-5 секунд (как фотик наводит резкость) и брать их среднее значение.

    Этот алгоритм прост - как автомат Калашникова. А все что простое - работает быстро. Как будет работать OpenCV на Raspberri мне даже страшно представить. Скорее всего плохо т.к. OpenCV проектировалась сразу для сильного железа а Распберри это больше игрушка для энтузиастов чем платформа для видое-обработки.
    Ответ написан
    2 комментария
  • Почему replace не убирает пробелы в java (groovy)?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Это Груви? Как это вообще скомпилировалось? Справа что стоит? Символ или строка?

    value = value.replace(' ','');
    Ответ написан
  • TCP - как лучше передавать данные?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лучше всего простой текстовый протокол.

    json при данной постановке - вторичен. Когда будет написана основная игровая логика то перейти на json будет не сложно.
    Ответ написан
    Комментировать