Задать вопрос
  • Как добавить несколько наименований в одну метку?

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    Сгруппируйте данные по координатам:

    const grouped = productData.reduce((acc, n) => (
      (acc[n.coordinates] ??= []).push(n),
      acc
    ), {});

    Соответственно, когда будете собирать строку для ballonContent метки, вместо одного объекта придётся пробежать по массиву объектов:

    for (const [ coord, data ] of Object.entries(grouped)) {
      const placemark = new ymaps.Placemark(
        coord.split(',').map(parseFloat),
        {
          balloonContent: data
            .map(n => `
              <div>
                ${n.address}
                <br>
                <a href="${n.productURL}">Подробнее</a>
              </div>`)
            .join(''),
        },
        {
          preset: 'islands#blueDotIcon',
          maxWidth: 300,
        }
      );
    
      map.geoObjects.add(placemark);
    }

    Или, воспользуйтесь кластеризатором:

    const placemarks = productData.map((n, i) => new ymaps.Placemark(
      n.coordinates.split(',').map(parseFloat),
      {
        balloonContent: `${n.address}<br><a href="${n.productURL}">Подробнее</a>`,
        clusterCaption: `Адрес №${i + 1}`,
      },
      {
        preset: 'islands#blueDotIcon',
        maxWidth: 300,
      }
    ));
    
    const clusterer = new ymaps.Clusterer({
      clusterDisableClickZoom: true,
    });
    
    clusterer.add(placemarks);
    map.geoObjects.add(clusterer);
    Ответ написан
    1 комментарий
  • Как работает math.sin и math.cos. Почему считает неправильно?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Он рассчитывает в радианах, а не градусах
    Ответ написан
    Комментировать
  • Почему в CoreCLR Int32.TryParse сделано не самым оптимальным образом?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Причина 1 (расширяемость)
    Если в будущем добавлять новые варианты NumberStyles, которые null должны обрабатывать иначе, либо какую-нибудь комбинацию, которая при null возвращает int.MinValue (например), то при проверке на null код сработает неправильно.

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

    Причина 3 (легаси/совместимость)
    Может в старых версиях (.NET Framework) было такое поведение - исключение при неправильных данных
    Ответ написан
    2 комментария
  • Как получить маршрут Google Directions API?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А что конкретно вам не понятно в официальной документации?
    https://developers.google.com/maps/documentation/routes
    Вопрос у вас звучит "не понимаю как сделать задачу" полностью, вообще. Тут нужно задавать конкретные вопросы, а не общие абастрактные. Иначе не понятно что вам требуется, курс по программированию, или сделать проект за вас.
    Ответ написан
    1 комментарий
  • Как борются с взломом нейросетей?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Существует только один способ улучшать работу нейросетей - продолжить обучение на новых данных.

    Сам термин взлом здесь не применим. НС оперируют нечеткой логикой поэтому никакого взлома
    нет. Есть просто детерминированное поведение выхода в зависимости от входа.
    Ответ написан
    Комментировать
  • Почему с отладкой нет ошибки, а без отладки есть?

    fixed(TestStruct*ptrT = &t){ 
              tS = ptrT; 
          }

    Не стоит сохранять указатель на стек в поле класса - класс легко может пережить практически любую такую ссылку.
    Тем более что тут ты сохранил указатель на локальную переменную, в которой хранится указатель на структуру.

    В твоём случае я вообще не вижу необходимости в хранении указателей на структуру и в unsafe вообще- ты можешь просто копировать её, тк она не очень большая.
    Ответ написан
    1 комментарий
  • Как Jit Компиляторы обнаружат недостижимой код и лишние проверки?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Если я правильно понял вопрос, то наличие JIT-компилятора не отменяет обычный. Т.е. код сначала "предкомпилируется" к некий кроссплатформенный код, который уже потом исполняется на виртуальной машине (JVM).
    Вот на этапе предварительной компиляции и происходит проверка "статики": скобку не поставил, задал индекс явно не в границах массива, оставил какой-то код после return, забыл вернуть значение из метода, напутал с типами и т.п.
    Но это не спасает от ошибок в рантайме: если индекс для массива вычисляется, а потом ты пытаешься достать элемент по этому индексу, то проверка на границы - на твоей совести, а железка, если что, просто упадёт с исключением :)
    Ответ написан
    Комментировать
  • Как переносить персонажа на другую сцену с сохранением всех параметров в Юнити 3D?

    xzripper
    @xzripper
    0xC0000005
    MoveGameObjectToScene

    SceneManager.LoadScene(game_scene_2, LoadSceneMode.Additive);
    SceneManager.MoveGameObjectToScene(player.gameObject, game_scene_2);
    SceneManager.UnloadScene(game_scene_1);
    Ответ написан
    Комментировать
  • Как определить размер функции в байтах Машиного кода?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Язык программирования тебе это не подскажет. Он не знает.
    Об этом может знать компилятор, но для компиляторов такой "функции" как get_machinecode_instruction_length нету. Компилятор может генерировать не прямой код трансляции команд С++ в машинный код. Он может оптимизировать вызовы под конкретный процессор/архитектуру, по опциям для оптимизации загрузки данных в память и так далее.
    Просто посмотреть машинные коды - нужно читать datashit конкретной архитектуры, они более-менее стабильные.
    Ответ написан
    Комментировать
  • Как выделить память по заданному адресу?

    Vindicar
    @Vindicar
    RTFM!
    Первый вопрос: а на кой тебе это?
    Второй вопрос: ты имеешь ввиду логический адрес, или физический?

    Если логический, то дёрни функцию WinAPI VirtualAlloc(). Но имей ввиду две вещи:
    1. Адрес будет округлён вниз до размера страницы памяти, т.е. твой искомый адрес может оказаться в середине страницы или даже ближе к концу. Возможно, стоит выделить память с запасом.
    2. Разумеется, если одна из запрошенных тобой страниц уже занята какой-то памятью, то ничего не поделаешь.

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

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему не переписать вместо этого
    add ebx,dword ptr [rbp+ECX*4+10h]

    Буквально так написать нельзя, потому что нет такого режима адресации в котором можно было бы использовать вместе Rbp (64-битный) и Ecx (32-битный). Можно было бы написать add ebx,dword ptr [rbp+rcx*4+10h], но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.

    Другое дело, что из исходного кода очевидно, что при обращениях к памяти i не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода.
    Ответ написан
    Комментировать
  • Какой нормальный онлайн декомпилер?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    IDA + HexRay
    Все остальное мусор и даже с этим инструментом нужно уметь работать.
    кстати 400 мегов это разве много?
    Ответ написан
    1 комментарий
  • Как выводить список адресов по геолокации пользователя?

    vndrussia
    @vndrussia
    Вроде разработчик,а вроде и нет
    Он выводит не только москву
    2023-08-18-153432197.png
    Но можно передавать координаты в ссылку в поля: &ll=66.826392%2C52.878285 и в &sll=66.826392%2C52.878285
    Так же там можно и город moscow менять.
    P.S если открыть вашу ссылку в браузере она станет более "полной" и содержащей данные поля.

    А в обще есть шикарная дока https://yandex.ru/dev/geosearch/doc/ru/
    Ответ написан
    2 комментария
  • Как связать свою кнопку с соответствующим маркером google maps?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Маркеры сложить в массив, по клику на кнопки доставать из массива маркер с тем же индексом, что и у кнопки, триггерить на нём событие клика. Как-то так.
    Ответ написан
    Комментировать
  • Поддерживает AOSP прошивка Dual GPS?

    @pfg21
    ex-турист
    функциональность использования L5 находится внутри модуля жпс.
    Андроиду модуль выдает готовые геоданные, несколько дополнительных показателей (та же точность геоданных, видимость спутников) и дает доступ к некоторым управляющим функциям (a-gps загрузить).
    какие жпс-системы и какие ихние каналы использует модуль андроиду до лампочки.

    т.е. в андроиде должен быть драйвер для конкретного модуля жпс.
    если его нет - то и суда нет.
    Ответ написан
    2 комментария
  • Почему WinForms все равно обращается к свойству, которое скрыто через new?

    Winforms тут непричём - это база C#.
    Читай как работает полиморфизм.

    Потому что new никак не влияет на виртуальные вызовы.
    Тебе нужно либо делать override, либо реализовывать интерфейс, чтобы всё работало.

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

    hint000
    @hint000
    у админа три руки
    нашел вот такое ...
    Простым хождением по ссылкам с этой же найденной вами страницы можно в два-три клика (буквально) найти больше:
    https://en.wikipedia.org/wiki/Cartographic_general...
    Comparison of several common line generalization algorithms. Gray: original line (394 vertices), orange: 1973 Douglas-Peucker simplification (11 vertices), blue: 2002 PAEK smoothing (483 vertices), red: 2004 Zhou-Jones simplification (31 vertices). All were run with the same tolerance parameters.

    800px-Line_generalize.png
    https://en.wikipedia.org/wiki/Visvalingam–Whyatt_a...
    https://en.wikipedia.org/wiki/Smoothing (в сводной таблице сравниваются аж 17 разных алгоритмов)

    А ещё, когда говорим о любой оптимизации чего угодно, нужно в первую очередь сформулировать критерий оптимальности, иначе разговор потеряет смысл с математической/алгоритмической точки зрения. Т.е. нужно формальное определение цели, к которой стремимся. Например, цель - максимальная простота алгоритма и уменьшение количества точек в N раз. Очевидный алгоритм, достигающий этой цели - оставить каждуую N-ную точку по порядку, остальные удалить. Можно только догадываться, что такой вариант вам не интересен, но для выбора конкретного алгоритма цель должна быть сформулирована конкретно.
    Ответ написан
    Комментировать
  • Как начать понимать/изучать Unity?

    Я сомневаюсь, что нужно глубоко погружаться в изучение C#, если я хочу создавать простые 2D-проекты

    Зря.

    используя нейросети и видеоролики

    Зря.

    создавал несколько простых проектов по гайдам

    Зря.

    мой процесс поиска включал в себя не просто тупой копипаст

    Выглядит так, будто как раз тупой копипаст, тк три пункта выше.

    По вашему описанию всё звучит так, будто вы вообще систематически ничего не изучали - только смотрели чужие примеры и пытались повторить с небольшими изменениями.
    Рекомендую открыть какую-нибудь книгу по C# чтобы заполнить все пробелы в нём.
    А также какой-нибудь курс по Unity (благо куча материалов доступна бесплатно на торрентах) - главное чтобы это был именно полноценный курс, в котором объясняется всё от простого к сложному и по порядку.
    Ответ написан
  • С# 'Input' does not contain a definition for 'GETTOUCH', Как исправить?

    hint000
    @hint000
    у админа три руки
    А почему GETTOUCH у вас написано большими буквами?

    GetTouch
    Ответ написан
    1 комментарий
  • Какая разница между валидационным и тестовым наборами данных?

    Maksim_64
    @Maksim_64
    Data Analyst
    Смотри в теории машинного обучения есть такая важная тема как Resampling Methods. Это методы случайной выборки из данных которые у тебя есть. Есть два основных это Cross Validation и Bootstrap. Обычно во всяких обучающих материалах используется Cross Validation да и на практике он тоже очень популярен. Что он из себя представляет мы берем например делим случайным образом датасет на 5 частей. Сначала треним на 4 потом тестим на одном что остался, потом на других 4 и тестим на одном что остался и т.д. Так вот каждый такой набор (на котором мы тестим) называется валидационным набором. Например наша метрика MSE мы получим 5 MSE по каждому валидационному набору потом обычно берут среднее по ним.

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

    Используют и то и то. Это инженерное решение и ты будешь видеть оба подхода. Ну и на каких то обучающих историях, ты можешь увидеть отсутствие кросс-валидации и только разбиение train_test_split.

    В идеале все выглядит вот так. Единственное существует огромное количество разных кросс-валидаций.

    64bcbf8e217a9092904980.png

    Это пример где кросс-валидация используется для тюнинга гиперпараметров, но точно также она будет использоваться и для других целей, каждый синий Fold это и есть валидационный набор.
    Ответ написан
    4 комментария