Задать вопрос
  • Можете дать рекомендации и советы по ограничениям компьютеров в школах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    По поводу школ. Обычно назначается ответсвенный староста из школьников который их
    контролирует и отвечает за целостность техники после урока.

    Из физического анти-вандализма. Тут как-бы сложно что-то придумать. Я помню что на уроках
    биологии нам выдавали школьные микроскопы которые увеличивали там в 30-100 раз
    но при этом имели чуть ли не чугунное основание и штатив и ими можно было колоть орехи.
    Вобщем в таком вот аспекте смотрите. Насколько денег хватит.

    А еще из компьютерных клубов эпохи 90х. Я помню ходил посмотреть как в Quake играют.
    И смотрю что у всех системников (белый middle-tower) слоты где стоят CD диски закрыты железной
    пластиной и закручено на винтах. Я такой спрашиваю у сисадмина - а зачем типа? Он говорит
    что это против вандалов. Были такие хитрые что прямо во время игры втихаря отламывали
    пластиковую заглушку и могли засунув руку выдернуть планку памяти из материнки прямо
    и тихо унести.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    1 коммутатор прислал часть А 8600100 Б 8700100 длительность 50сек время вызова 2024-08-03 12:51:00
    2 коммутатор прислал часть А 8600100 Б 8700100 длительность 49сек время вызова 2024-08-03 12:51:00
    3 коммутатор прислал часть А 8600100 Б 8700100 длительность 50сек время вызова 2024-08-03 12:51:01

    Данная постановка для нейросетей выглядит достаточно ... натянутой что-ли.
    Обычно НС мы внедряем тогда, когда у нас нет возможности описать логику на if-else.
    В твоем-же случае если вектор параметров представить как { x1, x2, x3, x4 }, то
    нам достаточно проверить что параметры x3, x4 попадают в окрестность некого времени "эпсилон"
    (равной 1 секунда например) и после этого задача сведения трех записей в одну группу решается элементарно.

    Для более обобщенных случаев почитай про метод кластеризации (машинное обучение ) https://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B0%D...

    Но он в свою очередь потребует для твоих векторов { x1,x2,x3,x4 } ввести некую меру дистанции
    чтобы понимать насколько далеко один вектор убежал от другого (и не только по длительности звонка
    но и возможно по номеру А и Б).

    Это все сложные методы и я все таки повторю что лучше твою задачу решить простым способом
    если твой преподватель конечно не требует таких извращений.
    Ответ написан
  • Torrent клиент. Скачать файлы по "маске"?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Посмотри transmission-cli. Может там есть. Я им пользовался но для очень простых случаев когда 1 файл был.
    Ответ написан
    Комментировать
  • Не запускается код из-за ошибки Process finished with exit code 1, почему?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    У тебя
    Tables.check();
    не обрабатывает исключение.
    Ответ написан
  • Как исправить ошибку в python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    В таблице users уже есть пользователь с таким id. Бери следующий id.
    Ответ написан
  • Нейронные сети - как правильно подсчитать производную функции?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Первое замечание по картинкам. Ты видишь какой у тебя масштаб по OX, и по OY ? Там 10-кратная разница
    в цене деления. Как ты в таких условиях можешь адекватно оценить величину производной на графике?
    Ответ написан
    Комментировать
  • Как сравнить char в с++ на пустоту?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе надо читать документацию по этой библиотеке (com ?):

    char c = com.ReadChar(successFlag); // read a char

    и узнать что конкретно она возвращает в виде пустоты.

    Она может возвращать знаковое отрицательное число (int) -1 в качестве признака например.

    А для char - никакой пустоты не бывает. Обычно char - это 8 или 16 бит беззнаковое целое число (завист
    от компиллятора).
    Ответ написан
    Комментировать
  • Как из базы данных MySQL в Java получить результат запроса в виде объекта?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    [maiorow, mWbs0yt, 3, [1,8], [8,9,10,11,12], dir_str, ZXC120, 3, [7], [13], DirLid, ZXC121, 3, [2], [1,2,3,4,5,6,7]]

    Это какая-то чепуха полученная методом toString. Спутались запятые и вообще непонятно где
    объекты начинаются и где заканчиваются.

    Распечатай отдельно чему у тебя равен direction_json и object_types. И я не уверен что они являются
    строками. Возможно на уровне БД это более сложный объект. Короче узнай его тип.
    Ответ написан
    Комментировать
  • Как добавить автоматическое создание симлинков на две последние версии ядра?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Симлинк создается командой
    ln -s file linkfile
    и ты можешь сам это проделать для одного раза.

    Centos и Debian насколько я знаю сильно отличаются по менеджеру пакетов (yum/apt) и
    очень сомнительно что в centos можно переносить какие-то алгоритмы обновления ядер.
    Вернее сказать проще с нуля написать чем переносить.
    Ответ написан
    Комментировать
  • Как определить похожесть комплектации автомобиля?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Я предполагал представить каждую запись в датасете как вектор, и посчитать косинусную схожесть между векторами.

    Косинусная здесь не подходит. Косинус учитывает вес каждого параметра. Например слова "шалаш" и "кабан"
    содержат по 2 буквы "а" и это делает возможным введение косинусной метрики для дистанции двух слов.

    У тебя автомобили содержат просто булевы признаки. Например тип_двигателя_дизель = true.
    И сравнивать тебе выгоднее просто векторы такого вида { 1.0, 0.0, 1.0, 0.0 .... },
    Тут дистанция хемминга была бы проще и вернее.

    По поводу объема двигателя и года выпуска - решай сам. Но при численном сравнении
    у тебя возникнет дилемма крокодила. Типа крокодил более зеленый чем плоский? Или наоборот.
    Грубо говоря какой из параметров будет иметь БОЛЬШИЙ вес в при операциях сравнения.
    Ответ написан
    Комментировать
  • Задание на учебную практику у программистов колледжа?

    mayton2019
    @mayton2019
    Bigdata Engineer
    уровень студентов максимально разнообразный (от прям серьезный умников и умниц, до слабоватых ребят, но которые, тем не менее, что то пытаются делать)

    Такое задание для всех придумать невозможно. Попробуй сегментировать студентов на
    одаренных которые будут делать что-то фундаментальное. Машинное обучение или зрение.
    И середнячков которым веб-апишечка и базячка или хомяко-тапалка на мобилах.
    Ответ написан
    5 комментариев
  • Как гарантировать монотонное увеличение значения поля при параллельных транзакциях с максимальным быстродействием?

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

    В паралелльных системах для массовой загрузки например объекты продюсеры захватывают
    диапазоны номеров. Диапазо берется из объекта SEQUENCE. Умножатеся допутим на 10000.
    И получается что перый продюсер захватил номера с 1 до 10000. Второй - захватит с 10001
    до 20000 и так далее.

    Да у тебя не будет строгой последовательности но вопросы коллизий ключкей и performance
    будут решены сразу и не будет issues в будущем.
    Ответ написан
    Комментировать
  • Как научиться разрабатывать большие проекты на Java, если раньше писал на PHP?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Я много писал веб на PHP (с фреймворками), но давно хотел перейти на Java, Spring и т.д.

    Поздравляю. Ты теперь откроешь для себя целую вселенную и поймешь что Java - очень разная.
    Например стоило-бы отличать Java Android и все остальное.

    По поводу процесса компилляции. Почитай про технологии JSP-страничек. Она очень похожа
    на PHP по своей задумке. И там реакция на изменения кода чуть быстрее чем в Servlet-приложении
    хотя JSP идеологически является макросом над сервлетом.

    Но в топике верно выше написали что от серверного рендеринга сейчас уходят. И современные Java-веб
    приложения обычно делают 2 команды. Первая делает только дизайн фронта. Вторая - обычно микросервисы
    которые с этим фронтом взаимодействуют. Почитай также про GraphQL. Это полезно для развития.
    И многие вещи в Java были добыты эволюционным путем. В частности такая мануфактура как
    дизайн и бизнес-логика имеют четкое разделение и это правильно. Это стабилизирует релиз
    и позволяет бизнесу делать и тестировать фичи независимо. Например фича нового REST сервиса
    может быть создана и оттестирована еще до того как готов дизайн и наоборот. Дизайн на моках
    можно показать заказчику пока сервис только в разработке.

    Оказалось, что приложению надо 3-4 минуты, только чтобы стартануть на машине разработчика.

    Это нормально. Мне попадались очень тяжелые монолиты которые на мощных машинах стартовали
    по 30-40 минут. Да и такое бывает. Это тяжелая приставка *enterprise. И конечно это идеологически
    отличает Java от PHP. Для корпоративных приложений в принипе неважно сколько они стартуют.
    Главное когад они уже стартовали и 30 минут прогревали кеши из БД например то биржа будет
    работать быстрее в runtime. Вот. А подготовку к работе можно делать и 30 минут - это тоже ОК.
    Главное что клиент это не замечает в силу закрытого опер-дня и Blue-Green deployment.
    Тоже почитай про это кстати. Полезно.

    Из-за долгих перезапусков (тем более на новом для меня проекте) разработка шла долго и мучительно.

    Могу посоветовать сфокусироваться на модульных тестах. То как ты разрабатывал раньше, сверяя
    каждый символ с браузером - может быть не эффективным. По сути если ты написал бизнес-логику
    и дизайн для нее готов и твоя задача просто проверить что функии получили на вход инпуты
    и выдали верные аутпуты - то значит задача на 99% решена и можно релизить.

    С точки зрения например корпоративного процесса разработки - любая фича разрабатывается 1 день. Это я меряю
    по себе. Беря во внимание чтение ТЗ. Разработку. Цикл тестирование. Деплойменты. Аксептенсы и прочее.
    И если тебя просят покрасить кнопочку с красного цвета на синий - ты спокойно сообщай что
    это занимает 1 день в конвейере процессов. И это нормально. Это корпоративная бюрократия.
    И Java - бюрократична. И ты главное не стрессуй а просто используй эту бюрократию в свою
    пользу. Пей кофе. Читай книги пока идет deploy pipeline.
    Ответ написан
    2 комментария
  • Урезалась скорость при установке скрипта WireGuard?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Wiki пишет что WireGuard работает поверх UDP https://en.wikipedia.org/wiki/WireGuard

    Я-бы искал две проблемы. Первое. Поскольку это все таки VPN-клиент то он делает шифрование
    и часть ресурсов CPU тратит на траф и прежнюю скорость 3000 Мбит/с он как-то не вытягивает.
    Если у него есть настройки более легкого шифрования - можно поискать там варианты.

    И второе это UDP. Неизвестно как он поддерживается провайдером. Возможно он регулируется,
    шейпится и это вызывает эффект повтора отправки пакетов со стороны WireGuard.
    Ответ написан
    Комментировать
  • Как определить, что пользователь использует официальную версию клиента программы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос должен звучать так -
    Купил ли пользователь лицензию или достаточное число лицензий?


    А то что он сделал копию у соседа - это вобщем-то не должно вас волновать.
    Ответ написан
    Комментировать
  • Возможно ли идеальное шифрование?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Идеальным считается Шифр Вернама. В принципе это идея Книги Кодов или одноразового блокнота.
    При его использовании Алиса и Боб могли-бы спокойно переписываться и быть уверенными что никто
    их не читает. Но здесь возникает вопросы.

    Как Алиса и Боб ей обменяются?. Совершенно очевидно что
    классические цифровые каналы здесь не подходят. Нужна личная встреча. Иначе слабым местом
    в протоколе становится не Вернам а тот способ которым произошел обмен.

    Как ее сгенерируют?
    Нельзя использовать классические ГПСЧ иначе они станут еще
    одним слабым местом. Очевидно что книга кодов должна создаваться очень оригинальным
    и неповторимым методом который не дает злоумышленнику (Кларку например) никаких
    гипотез. Аналоговый шум радиоэфира. Рулетка. Игральные кости. Карты. Короче
    любые источники энтропии которые никак не связаны с цифровым миром где Кларк
    может строть гипотезы. Кроме того книга кодов (КК) должна быть достаточно
    длинной (я-бы рекомендовал терабайты) чтобы Алиса и Боб хотя-бы на пару
    лет могли не встречаться повторно для обмена новой книгой.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Лето. Жара. Щас многая техника не успевает охлаждаться. У меня зарядка на power station греется
    как утюг хотя зимой этого не наблюдалось.
    Ответ написан
    Комментировать
  • Что выбрать: sqlite или redis?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать вот эту фичу (Redis Queue)
    https://redis.io/glossary/redis-queue/

    Не должно быть "слишком долго". Как раз как хочет автор. :)
    Ответ написан
    Комментировать
  • Как провести миграцию для PK с int на BigInt в MySql 5.7?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Можно попробовать почистить таблицу от исторических записей PK и появится свободное место снизу.
    Допустим от ID=0 до 1 млрд. И потом потихоньку начать переиспользовать ключи снизу.
    Но я не уверен что это работает для авто-инкрементных ключей особенно если уже много логики было
    создано. В оракле проще. Есть отдельный объект SEQUENCE и его можно очень быстро пересоздать
    или сделать циклическим. Тоесть от 4 млрд он пойдет снова с нуля.

    Второй вариант - я-бы сделал копию ID INT с типом ID_BIG BIGINT. Это очень короткая блокировка. Надеюсь быстро.
    Потом в фоновом режиме (транзакционном) пообновлял бы все до полного синхронизма. И потом
    нужен регламент чтобы дропнуть ID и переделать все констрейнты быстро на ID_BIG.
    Тут надо подготовить заране скрипты.
    Ответ написан
    2 комментария