• Можно ли полностью перейти на Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Virtualbox нормально пробрасывает USB-uart интерфейсы. Мы разрабатываем embedded для нескольких устройств, и в основном все сидят на Linux, в случае необходимости - запускаем виртуалку с Windows, и все работает.
    Ответ написан
    Комментировать
  • Тема диплома для специальности вычислительная техника?

    @Alexey_Kutepov
    Разработчик программного обеспечения
    "Камера на шухере или как распознать полицию с помощью нейронных сетей"
    Ответ написан
    Комментировать
  • Как сделать интерфейс к консольной программе?

    @vilgeforce
    Раздолбай и программист
    Qt например. Встроенная поддержка INI имеется.
    Ответ написан
    3 комментария
  • Почему методы нельзя передавать в функции без делегатов?

    Nipheris
    @Nipheris Куратор тега C#
    Делегаты - это форма существования функтора на платформе .NET. Почитайте про функтор, и поймете (наверное), зачем нужен делегат.

    Если коротко и грубо - вызвать напрямую можно всегда только конкретный метод, который будет четко известен еще на стадии компиляции. Если же вы пишете некий обобщенный алгоритм и заранее не знаете, какие КОНКРЕТНО методы у каких КОНКРЕТНО объектов будете вызывать - вам необходимо будет воспользоваться делегатом.
    Простейший пример - LINQ-методы. Метод фильтрации Where получает своим параметром функтор, который возвращает true или false, что значит - оставить элемент в коллекции или выкинуть его. В этом методе в цикле foreach вызывается переданный делегат для каждого элемента. Where понятия не имеет, какой конкретно метод (или лямбда-выражение) вы захотите подставить в качестве фильтрующего предиката.

    Другой пример - события. События в дотнете - это делегаты с урезанным публичным интерфейсом. Так как, к примеру, кнопка не знает о том, кто захочет подписаться на событие ее нажатия, она никак не может вызвать конкретные методы у конкретных объектов. Чтобы иметь возможность сообщать о своем нажатии, кнопка выставляет событие Click наружу, давая возможность записать туда конкретные методы для вызова.

    Кстати, делегат выполняет еще и функцию связывания: для нестатических методов делегат хранит еще и объект, для которого будет вызван instance-метод (т.е. связывает пару объект-метод).

    Таким образом,
    > Почему методы нельзя передавать в функции без делегатов?
    Делегаты - это и есть передача методов в функции.
    Ответ написан
    Комментировать
  • Как послать http запрос через OpenVpn c#?

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

    @monah_tuk
    Я коллегу выше дополню.

    read/recv возвращает 0 когда соединение закрыто независимо от блокирующего или неблокирующего режима. Если у тебя данных нет в неблокирующем режиме, у тебя вернётся -1 и код ошибки будет EAGAIN или EWOULDBLOCK (WSAEWOULDBLOCK - на win). Проверить код ошибки можно спросив errno (*nix) или WSAGetLastError (win). Эти ошибки - не фатальные, соответственно нужно просто правильно их обработать. В большинстве случаев, правильная обработка - заигнорить :) и повторить запрос. Остальные ошибки обрабатываются согласно логике приложения, но часто - сессия закрывается.

    А ещё, попробуйте использовать Asio/libuv или средства мультиплексирования типа select/poll/epoll/kqueue (или обёртки типа libev/libevent) или асинхронный IO средствами IOCP на Win. Asio и libuv реализуют паттерн проактор и предоставляют лучший асинхронный способ на каждой платформе.
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы считать себя админом Centos?

    @LiguidCool
    facepalm.jpg~c200
    Все тоже самое, что для другого Linux дистрибутива. Уметь поставить ОС, сделать базовую настройку. А дальше все зависит от задач: нужен 1С - уметь 1С, нужна телефония - астер, фрисвич ... Собственно как и в винде.
    Ответ написан
    Комментировать