• Почему WinForms все равно обращается к свойству, которое скрыто через new?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    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?

    vabka
    @vabka
    Токсичный шарпист
    Я сомневаюсь, что нужно глубоко погружаться в изучение 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 комментария
  • Почему логическое "И" & в C# возвращает 1?

    @Iv_and_S
    "&" - это синтаксис - "полные вычисления".
    вычисляются ВСЕ операнды. а значит firstNumber++ отработает.

    "&&" - это синтаксис - "сокращенные вычисления".
    до оперенда , secondNumber++ вычисление просто не дойдет, т.к. в этом нет смысла. оно уже false.

    p.s. вместо "ума не приложу"- внимательно, в любой книге, раздел "условные выражения".
    Ответ написан
    Комментировать
  • Почему логическое "И" & в C# возвращает 1?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    0 возвращает не &.

    & - жадный оператор. И левый, и правый операнд будут вычислены.
    && - ленивый. Если значение левого операнда false, то второй операнд даже не будет вычисляться.

    Получается, что в первом случае выражение вычисляется полностью:
    true & false & false -> false
    Выражение firstNumber++ > 0 имеет значение false, тк это пост-инкремент.
    В результате значение firstNumber=1 тк инкремент был вызван.

    Во втором случае инкремент не будет вызван, тк значение выражение будет очевидно в самом начале:
    (true && false)&& ... -> false
    Тк инкремент не вызван, secondNumber=0
    Ответ написан
    Комментировать
  • Есть ли ещё движки, кроме Unity, код в которых можно написать на C#?

    @oleg_ods
    649d8b0360487355144904.jpeg
    Ответ написан
    Комментировать
  • Почему при изменении масштаба смещается маркер?

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    проблема в том, что один из маркеров уезжает на реку Нева

    Оба маркера уезжают. Из Петербурга под Вязьму. Или даже в Иран. Что, не пробовали масштаб уменьшать?

    Среди настроек маркера есть iconImageOffset - разберитесь, что это, для чего предназначена. А потом укажите какое надо значение.
    Ответ написан
    1 комментарий
  • Имеет ли вес хеш сумма в юридической практике?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    Почему бы и нет? Главное - укажите это в договоре, как подтверждение того, что обе стороны принмают этот способ контроля целостности передаваемых файлов.
    В договоре необходимо указать :
    - что именно передаётся, с материальной точки зрения. В Вашем случае - указывается перечень файлов, и их основные описательные характеристики;
    - как именно передаются файлы (например - на носителе), согласно акта приёма-передачи. Стороны договорились о том, что целостность файлов подтверждается контрольной (хеш) суммой, которая рассчитыватся согласно алгоритма (MD5, SHA и т.д.) применительно к каждому бинарному файлу. Соответственно, в акте приёма-передачи указываете эти контрольные суммы, фразу что принимающая сторона проверила файлы и подтверждает что хеш суммы соответствуют указанным.
    Ответ написан
    Комментировать
  • Как подобрать начальные входные весовые коэффициенты (веса) для нейронной сети?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну это инженерное решение, тут единственного правильного подхода нет. Случайная выборка, как от 0 до 1 например или случайная выборка от -1 до 1. Или по формулам разным Случайная выборка осуществляется из равномерного распределения или из нормального.

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

    Adler_lug
    @Adler_lug
    В Visual Studio есть настройка отладки позволяющая указать параметры командной строки. Вбивайте туда путь к файлу и смотрите, что происходит в коде.
    Ответ написан
    Комментировать
  • Как сделать 2 static list одинаковыми, но чтобы ссылались на разные данные в памяти?

    GavriKos
    @GavriKos
    Дело не в списках, а в том что это один и тот же device. Нужно делать копию device в таком случае. Т.е. вот как то так:

    devices.Add(device);
    dgvDevices.Add(new deviceMySql(device));


    Естественно написав сначала конструктор копирования.
    Ответ написан
    3 комментария
  • В чём деловая польза нейросетей?

    vpetrov
    @vpetrov
    частный SEO-специалист, textarget.ru
    Странный вопрос.
    Нейросеть способна обработать такой объём данных, который никакой человек обработать физически не в состоянии. Если вам нужны найти скрытые связи, из монолита вычленить скульптуру, вообще работать с данными - тут нейросеть незаменима.
    То, о чём вы говорите - это крайне попсовое и глупое применение мощнейшего инструмента. И этот инструмент в доступе уже лет примерно 20. Просто кожаным показали самые примитивные возможности - и этого хватило, чтобы массы забились в оргазме и ужасе.
    Ответ написан
    Комментировать
  • Есть ли статьи, которые приводят наглядные примеры того, как код на rust превосходит код на других языках?

    vabka
    @vabka
    Токсичный шарпист

    Особенно там, где был использован язык Си или С++

    (если исключить memory safety и fearless concurrency)
    1. Хороших плюсовиков найти всё сложнее, ибо молодые разработчики часто хотят что-то более современное/простое/приятное.
    2. Переход с какого-нибудь более высокоуровнего языка на Rust гораздо легче, чем на C++
    3. DX у Rust на порядо лучше.
    4. Код на Rust на порядок более выразительный, чем код на Си

    За счёт этого поддержка кодовой базы на Rust заметно дешевле выходит

    Например вот что Тинькофф пишет:

    Наш Процессинговый Центр занимается разработкой финансовых систем, критичных к даунтайму и времени обработки. Изначально мы делали все свои продукты либо на чистом Си, либо на плюсах (C++14), однако пару лет назад мы переписали большой кусок нашего бэкенда на Rust, и нам настолько понравилось, что теперь все наши новые процессинговые сервисы пишутся на нём.



    Мне бы хотелось видеть какое-то сравнение, что вот так стало сильно лучше и безопаснее, а вот было так написано изначально на оригинальном языке

    Это можно будет определить только если ведётся статистика по багам и они классифицируются по причинам возникновения, но такую статистику ведут не все.
    В среднем статистика показывает, что багов связанных с неправильной работой с памятью в проектах на Rust на порядки меньше, чем в проектах на C++.


    ну тут все-равно unsafe

    В проектах на Rust он явный и от него можно избавиться, завернув в безопасную обёртку, которая будет гарантировать корректную работу с памятью и ffi.
    В проектах на C++ у тебя по факту всё является unsafe.

    ну, нам еще нужен подсчет ссылок

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    152 фз. Европейская и США отмазки того же типа.
    Договор офферты.
    Пользовательское соглашение.

    Отдельно документы для каждого вида деятельности (то есть для продавца, сервиса оценки и так далее)
    Ответ написан
    Комментировать
  • Является ли музыкальный плеер на сайте нарушением авторских прав?

    GavriKos
    @GavriKos
    Сам плеер - нет, не нарушает права. Пока через него не начнут распространять нелицензионный контент. Распространяйте только лицензионный (с открытой лицензией) контент и не будет проблем.

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

    @rPman
    c открытой лицензией

    могла отвечать на вопросы

    из самых крупных открытых мультимодальных языковых моделей (именно они проявили способности близкие к интеллекту), что мне известна, это bloom, размер в 13b даже можно на потребительском железе запустить (следующий размер 170B и для его запуска придется городить кластер с десятками секунд на токен) и ее качество в разы (десятки процентов) ниже llama, а у llama хуже chatgpt35 (да на считанные проценты), и тут такое дело что каждый следующий процент - это почти вселенная. Этой моделью я не игрался, но как я понял она лучшая из открытых мультимодальных (бери с префиксом -mt, они мультиязычные).

    Еще есть facebook/opt

    Оцени модели на самом сложном бенчмарке MMLU, opt66b - 35, bloom175b - 39, llama65b - 68, gpt35 - 70, gpt4 - 86

    Настоятельно рекомендую освоить prompt/p-tuning, lora finetuning и т.п. (например peft) под свою задачу, именно таким образом у модели повышают качество работы на десяток другой процентов (сам я еще не дошел до практического применения, только изучаю). На худой конец используй OneShot/MultiShot (когда к запросу спереди добавляется один или несколько примеров вопрос-ответ, что сильно улучшает ответ но увеличивает нагрузку так как запрос увеличивается кратно).
    spoiler
    Само собой llama - лучшее из доступных решений, но не легальное. Бери минимум 30B лучше 65b, можешь взять оттененную версию от OpenAssistent, 8bit или 4bit quantization вполне себе здраво работает на процессоре с помощью llama.cpp, причем на столько что юзабилити его выше чем штатный питоновский код от huggingface, который мало того что заточен под серверные видеокарты, так еще и не оптимизирован (чего стоит чтение файла с моделью в кеш ОС вместо постоянной загрузки копированием, утилита запускается моментально и не нужно городить сервер с api как это надо в случае с питоном). 6-ядерный i5 12600 пережевывает например 1784b русский текст, а точнее 1981b запрос определить категорию - 239 сек (616.46 ms per token) + ответ в 31токен 32 сек (1055.86 ms per run), требуя для работы 47gb ram

    Что лучше openassistent или оригинальная llama сказать сложно, ассистент затюнен на вопрос ответ, т.е. как инструмент общения он предпочтителен, а у llama больше мусора в ответе, но у меня есть ощущение что finetuning ломает модель, я почти уверен что если ее прогнать по тестам, по которым прогоняли llama, значения будут хуже.
    Ответ написан
    4 комментария
  • Как сделать переход по goto в пустую строку в C#?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Потому что label должен стоять около какого-нибудь выражения.
    Если выражения нет - это на самом деле return, а не goto
    Ответ написан
    Комментировать
  • Куда можно выложить свою первую игру на Unity?

    WNeZRoS
    @WNeZRoS
    itch.io — онлайн-сервис для размещения, продажи и загрузки инди-игр. Сервис запущен в марте 2013 года и на апрель 2021 года насчитывает более 200 тысяч игр.

    Выложить можно любую игру, но шансов что её скачают больше 10 человек за месяц без дополнительного распространения не много. Чтобы точно нашлись люди поигравшие в игру, и, возможно, даже оставившие отзыв, можно участвовать в геймджемах на том же itch.io.
    Ответ написан
    1 комментарий