Задать вопрос
  • Питон,нейросеть, алгоритм выхода из лабиринта?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Автор ищет функцию следующего вида.
    def (pointA : point, pointB : point, figures : list) -> list

    На вход приходит например точка А. Это где мы стоим. И точка Б - это выход из лабиринта.
    Это впрочем мое видение задачи. Можно и изменить. И список фигур (полигоны) третьим
    аргументом. И результат - список координат - траектория движения. Как выбежать из лабиринта.
    Если решения не существует (например мы огородили точку А кольцом камней) то функция
    должна вернуть например None.

    В классическом варианте движение из точки А в точку Б в лабиринте реализуется на клеточном
    поле алгоримом Волны или Волновым алгоримом.
    https://habr.com/en/search/?target_type=posts&orde...]

    Для нашего случая, поверхность надо покрыть сеткой в любым достаточно грубым разрешением
    чтоб просто задача была решена. Это прозаично и работает.

    По поводу нейросетей. Тема модная и не сходит с топ обсуждений.

    Я предлагаю вместо нейросетевого решения обсудить кейсы когда решения не существует
    а НС об этом не знает или не умеет такое детектировать. Если мы будем подмахивать нейросети
    и подсовывать ей заведомо легкие решение (нет сплошной стены из фигур вокруг точки А например).
    то это решение будет туфтой. И также туфтой будет нейросеть сколь бы умно она не выглядела.

    Почему я решил пойти от негативного кейса? Мне кажется это - вопрос интересный и дискуссионный.
    Это как доказательство теоремы. В случае алгоритма волны - это возможно. Если волна заполнила
    все пространство вокруг А и не достигла Б - значит решения нет.

    Кроме нейросетей есть еще комбинирование рандомных решений с улучшениями (генетические
    алгоритмы)
    . С точки зрения лабиртнта это выглядит как построение большого количества
    случайных путей из точки А в точку Б с отбором тех путей которые
    - которые короче другие
    - которые не пересекают края фигур

    Для генетики признаком невозможности найти решение будет скорее всего количество эпох
    после которых мы так и не получили маршрут от А до Б без наезда на зеленые фигурки.
    Ответ написан
    Комментировать
  • Почему у меня при миграции возникла ошибка в laravel 10?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Предположительно ему не нравится сигнатура метода connect. Кажется он хочет 1 аргумент
    типа array $params.
    Ответ написан
  • Как защитить SPA от парсинга?

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

    Нужно сделать безсмысленной саму идею парсинга.
    Ответ написан
    4 комментария
  • Как обезопасить программу С# от взлома?

    mayton2019
    @mayton2019
    Bigdata Engineer
    C# позволяет линковаться с нативным кодом написанным на С++ или ассемблере.
    Напиши парочку ключевых функций на С++ и это сильно обломает потенциального
    школьника.
    Ответ написан
    2 комментария
  • Как называется это свойство набора кодов (словаря)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если твой парсер строк - это конечный автомат (Finite-State-Machine)
    то твой вопрос звучит как существуют ли запрещенные переходы внутри этого
    автомата.


    Как в английском это звучит я не знаю. Prohibited? Disabled? Короче я учил теорию
    автоматов по Совестким учебникам. Поищи сам.

    Не стоит циклиться на названии.
    Ответ написан
  • Как исправить аномальное снижение производительности при импорте модуля в Python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Создай 2 незвависимых процесса. Один пускай работает без ultralytics и передает
    результаты следующему процессу через файлы который уже в свою очередь
    будет подключать ultralytics.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Основной use-case при работе с любыми данными это "запрос".

    Ты должен задать себе вопрос как я буду эти данные искать? По каким атрибутам?
    Например базы данных семейства key-value почти всегда всем подходят и всем нравятся
    за высокую скорость и дешевизну. Но это - только при условии что вы делаете поиск по ключевым атрибутам.
    Но вы не сможете к ним сделать агрегации (group by).

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

    Из личного опыта. Часто выбирают какую-то БД из того что человек (команда) уже раньше
    с ней поработали и уже имеет опыт. И такое реально было и с Ораклом и с MS-SQL. Люди их
    выбирали не потому что они хороши а чаще всего потому что "так привыкли". И десяток
    лицензий были уже давно куплены. Почему-бы не использовать. Заказчик оплатил.
    Так жить проще. Так и живут. И так строят архитектуры.
    Ответ написан
    4 комментария
  • Как правильно выстроить архитектуру игры-головоломки про спички?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Плохо что ты не занимался радиотехникой. Цифры на экране - очень похожи на классический
    7-сегментный индикатор. И его состояние может быть представлено 7 битами.
    Например цифра 8 - горят все элементы можно представить как
    1111111
    Цифра 1 - горят соотвественно 2 и другие пять равны нулю. Отображение придумай сам.

    Итого у тебя будет матрица 7 х 5 бит. Эта матрица и будет состоянием игры.

    С точки зрения действия пользователя на UI, перенос спички - это выключение
    одного бита
    и включение другого. И тебе остается проверять что формула
    решена верно после каждого переключения.

    Что еще. В твоей игре будут запрещенные комбинации цифр которые надо отдельно проверить.
    Ответ написан
    1 комментарий
  • Как разумно поставить себе начало в программировании (C++ и C#)?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Капец много текста написал.

    Если кратко - то найди себе ментора. Это позволит тебе не выгорать а двигаться
    вперед.

    Должен был написан план с датами что изучать. С++ - очень сложный язык
    и в нем ного фичей. Даже его создатель рекомендует не брать все сразу
    фичи а изучать какое-то разумное подмножество.

    Должен быть учебный проект с внятным техническим заданием.

    Код должен содержать тесты и иметь какие-то критерии качества и эстетики кода.

    Параллельно с С++ тебе придется изучать железо и операционные системы. Без этого никак.
    Это язык - общесистемного программирования и делать чисто прикладные вещи на нем
    нет смысла. Ты должен быть погружен в систему.
    Ответ написан
    Комментировать
  • Как написать SQL запрос?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Более быстрый вариант
    SELECT city.name
    FROM city 
    WHERE city.name 
           IN (SELECT ad_cars.city FROM ad_cars)
    Ответ написан
    Комментировать
  • Как уменьшить кол-во case'ов, и просто подтянуть по другой таблице?

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

    Тебе на самом деле выгоднее не делать select а сделать один раз процессинг таблицы
    и декодировать поле baza один раз и сохранить его в другое поле.

    Это кажется называется enrichment. Обогащение. Хранимой процедурой можно.
    Ответ написан
    Комментировать
  • Можно ли демонстрировать или отображать программу .exe в окне своей же программы?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Да можно. Если речь идет например о том чтобы в HexEdit открыть сам HexEdit.
    Но некоторые ОС в момент исполнения файла могут накладывать на него блокировку
    поэтому редактировать его будет нельзя или перемещать тоже будет нельзя.
    Ответ написан
  • Git как востановить файлы?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Такое ощущение что ты до этого уже натворил делов и пришел с криком - "спасите помогие".
    Толку от твоего лога мало потому что уже поздно как говорицца..

    У тебя статус репы - "оторвана голова". Head detached. Вот надо из этого исходить.
    Видимо ты делал перемотку на какой-то конкретный коммит. И что характерно
    ты дальше зачем-то пытаешся сразу сделать новый коммит.

    Почитай как выйти из состояния head detached в другое состояние в котором можно работать.

    И если ты решил стать дерзким и смелым - то пожалуйста! тренируйся на учебном репо.! Ну на таком
    который тебе будет не жалко выкинуть потом.
    Ответ написан
    3 комментария
  • Какой аналог CryptoJS.AES.encrypt от js?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Симметричный шифр типа AES параметризируется многими настройками. В частности
    - длина ключа и длина блока. Например 128, 192, 256
    - вектором инициализации. Это что-то вроде виртуального первого блока. IV.
    - режимом сцепления блоков (ECB, CFB, CBC ... e.t.c.) в данном случае исходник на Python явным образом нам указывает и режим ECB является вобщем-то самым плохим и нежелательным для нужд криптографии.
    (на этот режим а в JS берется какое-то умолчание).
    - если мы генерируем ключ на основе парольной фразы то нам должен быть известен этот метод. Это не
    всегда преобразование символов в UTF-8. Могут быть нюансы.

    Для выравнивания хвоста открытого текста по границе блока есть еще режимы padding-a.
    Подозреваю что там - несколько вариантов может быть. Это - тоже надо прояснить.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если удаление произошло на MicroSD карточке то есть шанс восстановить известные форматы
    файлов типа JPG, MP3 и прочее. Под ОС Linux есть несколько утилит которые умеют по сигнатурам
    находить данные независимо от файловой системы и от статуса файла.

    Но самое первое что надо сделать - это срочно отключить телефон и прекратить любую дисковую активность
    с карточкой потому что любая запись - пишется поверх уже уделенных данных таким образом уменьшая
    вероятность такого восстановления.
    Ответ написан
  • Как задать url pattern для фильтра в Spring Framework?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Предположительно это может реализовано в AntPathMatcher. Посмотри как там документация
    описывает

    https://docs.spring.io/spring-framework/docs/curre...
    Ответ написан
    Комментировать
  • Зачем использовать кучу если есть стек? а так же где применяются указатели и ссылки?

    mayton2019
    @mayton2019
    Bigdata Engineer
    С точки зрения С++ есть команды new/delete которые управляют временем жизни долгоживущих
    объектов. Таких как массивы примитивов и более сложные объекты из парадигмы ООП,

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

    Если-бы мы эти временные переменные размещали в куче - то у нас возникла бы задача очень строгого
    контроля над деаллокацией. Нужно было-б гарантировать что delete сработает за мгновение до return,
    а это не всегда удобно в рамках С++ кода. И это может быть причиной сложных и трудноуловимых
    ситуаций с memory leak. Это когда программа в состоянии покая как будто бы начинает подъедать память
    кучи безо всяких видимых оснований. Это - проблема и с этим борются.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Xeon E5 2650 - это процессор серверного сегмента. У него много полезных фичей но для игр
    он не годится. Играть на нем - это все равно что ездить на пикник на танке к примеру.
    Ответ написан
    Комментировать
  • Не запускается сервер Minecraft на ядре Forge, как это исправить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Возможно такое. Серверная JDK поставляется без UI компонентов. Так называемая headless-версия.

    Проверить можно следующим тестом.
    assertEquals(true, GraphicsEnvironment.isHeadless());
    Ответ написан
    Комментировать
  • Куда двигаться дальше, чтобы создать web приложение?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Обязательно ли нужно уметь их писать? Я думал, что Spring будет автоматически создавать их, а от нас будет требоваться создавать контроллеры, модели и т.п.

    С точки зрения новых подходов к разработке backend (GraphQL) вообще нет смысла изучать
    методы DEL/GET/PUT. Все будет заменяться на POST, который делает всю работу и в нем-же будут
    коды ошибок и прочее.

    С этой точки зрения сервлет является таким-себе странным рудиментом. Вроде он существует.
    Обеспечивает команды HTTP-протокола. Но кому нужны эти все команды - непонятно?

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