Задать вопрос
  • Почему C# не кроссплатформенный?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    С# работает на виртуальной архитектуре

    Правильнее говорить: имеет собственный байт код. Приложения .NET не запускаются в виртуальной машине! Они компилируются JIT'ом и просто могут взаимодействовать с платформой, но нет никакой ВМ (например, песочница как в JVM отсутствует - ты видишь обычный процесс.
    Почему так?

    Потому что C# (и .NET Framework в частности) был ориентирован для работы под Windows и там очень много специфичных для нее деталей есть (взять ту же концепцию COM объектов).
    Java изначально поддерживала другую стратегию + была поддержка Linux (на котором сидели энтузиасты), что в итоге вылилось в то, что эти самые энтузиасты полюбили Java и начали писать на ней везде (а для этого надо было иметь реализацию JVM под нужную платформу)
    Сейчас ситуация меняется: .NET есть под MacOS, Linux и Windows. Это не полная кроссплатформенность, но философия другая: мы будем поддерживать несколько платформ, но делать это качественно. Сейчас упор делается в Linux и веб в частности.
    Дополнительно:
    - Спецификация открытая и ничто не мешает реализовать под свои платформы. Взять тот же .net nanoFramework, mono, unity
    - Mono вышел в 2004 году, а значит еще с тех пор .NET был кроссплатформенным
    Ответ написан
    2 комментария
  • Почему C# не кроссплатформенный?


    Почему C# не кроссплатформенный?

    На этот вопрос нельзя ответить сразу по двум причинам:
    1. C# - это язык, а язык не может быть кросс-платформенным, так как платформы в разрезе языка и нет.
    2. .NET уже много лет как кросс-платформенный.
    Начиная с уже мейнстримного .NET 8, заканчивая mono и всякой экзотикой типа nano framework


    но при этом, это не так

    Ничто нельзя запустить на "чём угодно"


    но в неё вопрос кроссплатформенности решена абсолютно полностью

    Если вопрос "абсолютно полностью" решён, то почему я не могу запускать программы, написанные на Java, на любом железе?
    Ответ написан
    Комментировать
  • Частые перезагрузки и черные экраны на ПК что делать?

    @NortheR73
    системный инженер
    Обновлял драйвера на видеокарте
    а на чипсет драйвера обновляли?
    Хотя для P55 Express и Windows 10 официально поддержка не заявлена в обе стороны. И для вашей материнской платы самые свежие драйвера чипсета - от 2011 года максимум для Windows 7
    Ответ написан
    2 комментария
  • Как добавить Windows в grub?

    xez
    @xez
    TL Junior Roo
    Видимо, вам подойдет refind.
    Вот статья: https://habr.com/ru/articles/394005/
    Ответ написан
    Комментировать
  • Как программировать на машинных кодах?

    @unclegluk
    Напишите эмулятор простенького процессора. Какого? Да хоть сами придумайте. Или возьмите 6502 за основу. Для этого не нужно программировать в машинных кодах, сойдет даже Python.
    Ответ написан
    1 комментарий
  • Как программировать на машинных кодах?

    @Belvarm
    Java TeamLead, интеграционные решения
    Ответ написан
    Комментировать
  • Как получить метку проверенного издателя при запуске своего приложения?

    @Kypidon4ik
    Фрилансер, Wordpress developer
    Комментировать
  • Как получить угол поворота руля с CAN-шины?

    Daemon23RUS
    @Daemon23RUS
    Одновременно и просто и сложно, зависит от "глубины погружения в тему"
    Для различных авто немного по разному, но принцип один и тот же, по ОБД данные доступны через запросы к соответствующему модулю (MRM,ABS,ESP ....) (думаю для разных машин по разному и с различной точностью, количеством инфо) скорость поворота руля и угол поворота (если память не изменяет с точностью до десятых долей) скорость вращения каждого колеса тоже с точностью до десятой доли км/ч. Но тут встает момент, что некоторые модули ABS при таких запросах становится в диагностический режим а свыше 30-50 км/ч выходят из него и перестают отвечать на подобные запросы. Но это не отменяет возможности подслушивать эти сообщения по CAN, например в приборку прилетает постоянно скорость. Но и тут от модели авто зависит, где-то это просто скорость, а где-то 4 значения по каждому колесу.
    И 2й вариант подслушивать эти сообщения на шине, когда блоки общаются между собой. И опять ньюанс, на разных машинах по разному, но например высокоскоростная шина моторного (мотор коробка абс) не флудит этим трафиком в ОБД, а на некоторых машинах наоборот все слышно по ОБД
    По частоте запросов точно не скажу, тоже вариативно, но минимум 1-2 запроса в секунду должно проходить, если запрашивать у блока, а если подслушивать, тот тут все от блока зависит. Вы же понимаете, что для своих целей внутри ABS получает данные напрямую с датчика, и в состоянии определить пропущенный сегмент на задающем диске а частота опроса в милисекндундах.
    Ответ написан
    3 комментария
  • Что нужно для запуска консольного приложения C#?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Ты указал режим развертывания - зависит от платформы. Это значит, что там где выполняется приложение тоже должен быть установлен рантайм под который ты разрабывал.
    Попробуй либо под .net framework скомпилировать (он почти на каждой винде установлен).
    Либо выстави режим развертывания "независит от платформы" (или типа того, не помню название) - тогда можно будет запускать даже там, где .net не установлен
    Ответ написан
    1 комментарий
  • Что такое культура программирования?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Не слышал о таком понятии. Скорее всего это HR развлекается
    Ответ написан
    Комментировать
  • Что такое культура программирования?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Просто умение работать по стандартам принятым в этой организации, умение работать в команде этой организации.

    А так - слишком обтекаемая фраза, чтобы приделять слишком большое значение
    Ответ написан
    1 комментарий
  • Как преобразовать List в строку?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    Зачем нам весь ваш код?

    Вот небольшой метод для решения вашей задачи:

    public string ListConcat(ICollection<Player> players)
    {
         string list = string.Empty;
         foreach (Player player in players)
              list += player.Name;
    }


    А вообще посмотрите в сторону метода string.Concat
    Ответ написан
    5 комментариев
  • Как программировать на машинных кодах?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У меня есть идея, создать свой диалект ассемблера с простым синтаксисом, что бы на нем мог программировать любой человек, не проигрывая в скорости.

    Это очень наивная идея. Она была работоспособной в XX веке, когда система команд была простая и процессоры
    были однопоточные и без кешей и конвейеров и микро-кода (КР580, Z80...)

    Современный компиллятор знает больше чем обычный человек-разработчик. И очень мало людей в мире
    в состоянии писать машинный код думая одновременно
    1) О состоянии кешей
    2) О состоянии всех регистров
    3) О микрокоде и о загрузке конвейеров
    4) Об таймингах mmx, sse, avr командах и сравнивать их на ходу по скорости исполнения
    5) О прогнозировании переходов

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

    Обычный кейс - надо писать код.
    Надо писать МНОГО кода.
    Надо не делать ошибок.
    Надо гарантировать хорошую производительность этого кода.
    Ответ написан
    Комментировать
  • Как «правильно» перенести файловое хранилище?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Любой способ, переносящий данные и права доступа. Можно и Dfs и копирование с помощью robocopy
    Ответ написан
    Комментировать
  • Какие простые, "бытовые" задачи подходят для изучения машинного обучения?

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

    Вы совершенно правильно ставите вопрос говоря
    Но зачем мне инструмент машинное обучение если я и сам могу сравнить все исходные массивы, и найти тот, что совпадает?


    В этом есть инженерная мысль - решать задачи подходящим инструментом. И если ВАША задача решается
    методами базовой линейной алгебры (скалярное произведение векторов)
    или мат-статистики то и решайте ее так как удобно.

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

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

    По поводу декомпозиции. Обычно такой вопрос возникает когда кода много или когда задача большая.
    Эта декомпозиция идет параллельно со знанием таких частей ООП как Single-Responsibility, и структурных
    шаблонов проектирования
    . Начни это применять и декомпозиция сама собой пойдет.

    Чаще заказывай code-review своего кода и слушай советы старших коллег. Даже если обидно и стыдно.
    Слушай. Записывай и потом применяй.

    По поводу Алгоритмов и Структур данных. Почитай Никлауса Вирта. Он как раз такую книгу и написал.
    Ответ написан
    2 комментария
  • Как наработать навык декомпозиции задач?

    yesbro
    @yesbro
    Думаю, помогаю думать
    С декомпозицией все просто. Для начала берешь любую задачу из жизни и думаешь какие шаги нужно сделать что бы ее решить. Когда это станет просто, то переходишь к программированию. Лучше всего взять какой-то готовый небольшой проект и сам себе ставишь задачи, сначала очень простые(!!!), потом сложнее(добавить метод, добавить что-то еще, изменить логику и прочее). Не начинаешь программировать пока по шагам не напишешь себе что надо делать. В процессе разработки смотришь насколько твой план расходится с реальностью. Запоминаешь, учитываешь в следующий раз.

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

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

    GavriKos
    @GavriKos
    Микропетпроджект - https://home-cloud.store/
    Мне кажется, этот навык приобретается как раз в ходе изучения программирования. Когда начинаешь реально с основ и мелочей. Но - надо понимать, что не факт что у вас это в принципе получится. Я например рисовать не умею, и какую литературу я бы не читал - просто это не мое и все.

    А что сейчас за должность, раз не разработчик?
    Ответ написан
    5 комментариев
  • Можете посоветовать сервис (CRM?) где есть удобный календарь на день?

    Sanes
    @Sanes
    Удобство, вещь субъективная. Смотрите всё подряд или пишите свой велосипед. Всё равно этими календарями никто не пользуется. А если пользуются, то в очень упрощенном режиме.
    Ответ написан
    Комментировать
  • Как сделать шлюз для изолированой сети?

    @Stariyded
    Сетевой админ
    А просто запретить трафик из 10.10.11.0/24 в 192.168.0.0/24 до НАТа пробовали?
    sudo iptables -A FORWARD -s 10.10.11.0/24 -d 192.168.0.0/24 -j DROP
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    Еще можно в маскараде указать -d !192.168.0.0/25
    Ответ написан
    Комментировать