• Работа с сокетами средствами c++?

    15432
    @15432
    Системный программист ^_^
    Перед main

    #pragma comment(lib, "Ws2_32.lib")

    в начале кода

    WSADATA wsaData;
    WORD wVersionRequested = MAKEWORD(2, 2);
    WSAStartup(wVersionRequested, &wsaData);
    Ответ написан
    6 комментариев
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Интеграция Python'а в С/С++ для написания нейросети и последующее встраивание в микроконтроллеры?

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

    прототип, написанный на коленке на жирнопитоне на восьмиядерном контупере придется *портировать* на диалект языка си, который будет понятен компилятору, собирающему объектный код для микроконтроллера, попутно соображая, сколько килобайт памяти будет в твоем распоряжении на целевой платформе.
    Ответ написан
    1 комментарий
  • Инерциальная навигация и machine learning как?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Блин, ну что все помешались на НС. Зачем пихать ЭТО везде.
    Почему вы не можете использовать интеграторы для своих инерциальных датчиков ?
    Ответ написан
    2 комментария
  • Практическое применение ИИ?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вас ждет много открытий, например www.pyimagesearch.com

    задачи, доступные для воплощения, как минимум:
    1) одинаковых / схожих изображений
    2) поиска nude картинок
    3) антиплагиат
    4) поиск физиономии человека

    посложнее - как со скорингом - задачи оттока клиентов, простейшие и не очень рекомендательные сервисы - от фильмов до всего
    Ответ написан
    Комментировать
  • Имеет ли смысл начинать с Си?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Плюсы:

    Си это сила. У него пока нет конкурентов в системном программировании (разве что rust подкрадывается и D, но они чуть на другие вещи ориентированы).

    Минусы:

    Сегодня Си это специфика. Это либо системное программирование (разработка драйверов, низкоуровневых вещей, баз данных, интерпритаторов, компиляторов) либо микроконтроллеры и т.д. Так же есть определенные задачи для которых критически важна производительность, там и ассемблер иногда используют, но скоро перейдут на FPGA.

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

    Если же вас интересуют более мэйнстрим вещи вроде web или мобильная разработка - проще сразу брать какой-нибудь современный динамический язык (python, javascript) и радоваться жизни.
    Ответ написан
    12 комментариев
  • Какие разделы математики актуальны в сфере нейронных сетей и ИИ?

    gbg
    @gbg
    Любые ответы на любые вопросы
    • Линейная алгебра - основа основ, без нее никаких численных дел не будет
    • Теория операторов - и без нее тоже. Нужно уметь оценивать операторы.
    • Теория меры и интеграла Лебега - и измерать множества тоже нужно уметь
    • Функциональный анализ - и работать с абстрактными операторами тоже
    • Высшая алгебра - без нее к операторам лезть можно, но лучше выучить
    • Гармонический анализ - без него в машинное зрение лезть смысла нет. Всякие операторы, свертки, ядра - это все туда
    • ТФКП - аналогично
    • Уравнения математической физики - без понимания того, как работает свет в этом мире анализировать что-либо смысла нет.
    • Теория интерполяции - как превратить результаты измерений в формулы
    • Численные методы - основа основ.


    В профессиональной деятельности математика нет деления на разделы. Математика используется вся. Куском.

    Учитесь лучше.
    Ответ написан
    5 комментариев
  • Почему arduino не может умножить дальше пятизначного числа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Потому что int на ней -- 16-битный, и может принимать только значения от -32768 до 32767. Замени int на long, а 1000 * 100 на 1000l * 100l и будет тебе (временное) счастье.
    Ответ написан
    Комментировать
  • Заработать на программировании

    Тут два варианта: либо вы тролль (тогда слегка толстовато), либо немного наивный молодой человек.

    Если второе, тогда:

    1) О настоящей работе пока не думайте (лет 16 будет, тогда думайте).
    2) О фрилансе (я имею ввиду серьезный фриланс) - тоже.
    3) Остаётся только один вариант - помощь школьникам старших классов, либо студентам начальных курсов.

    То что вы изучаете такую сортировку, это безусловно хорошо. Ваши знания для ваших лет весьма неплохие, но зарабатывать на этом пока не очень реально, разве что то, что я указал - третий пункт. Пока изучайте алгоритмы, структуры данных. Смотрите другие языки и технологии.

    P.S. Под "опытом работы" обычно имеют ввиду настоящую работу, а не то, что вы имели дело с чем-то.
    Ответ написан
    3 комментария
  • Какие есть способы создания GUI на C/C++ для Linux?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    помимо упомянутого Qt есть GTK+ и wxWidgets
    Ответ написан
    Комментировать
  • Информация о задачах распознание образов

    @killla
    Для начала наверное вот это www.lektorium.tv/course/22847
    Дальше гуглишь по алгоритмам, которые упомянуты в этом курсе. Большинство из них уже реализованы в OpenCV.
    Потом закрепляешь практикой robocraft.ru/page/opencv
    Ответ написан
    Комментировать
  • Как собрать бюджетный FM-трансмиттер на базе Arduino?

    @sergeygarnov
    radioskot.ru/forum/4-755-16 изучайте
    только имейте в виду, что это незаконно и могут нагрянуть дяденьки в одинаковых костюмах
    Ответ написан
    1 комментарий
  • Как создать оконное приложение в обход WinAPI на C++?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Используйте Qt.
    Ответ написан
    Комментировать
  • Какие технологии, библиотеки и языки используются сейчас для разработки сайтов?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    стэк технологий для web настолько разнообразен что на ваш вопрос можно неделю ответ писать.

    Знаете c# - пишите на c#. Есть mono если не хотите платить за windows-сервер... Ну или же java (ближе к c#) или любой другой язык программирования. Обработка изображения не относится конкретно к web, тут туториалов хватает.
    Ответ написан
    Комментировать
  • Какие технологии, библиотеки и языки используются сейчас для разработки сайтов?

    iskros
    @iskros
    Руководитель проектов
    HTML/CSS, JavaScript(frameworks), PHP, Node.js, ...
    Ответ написан
    Комментировать
  • Хочется стабильности и красоты. Какой дистрибутив Linux подойдет?

    afiskon
    @afiskon
    Если нужна стабильность, используйте Debian. Но не жалуйтесь потом на устарелость пакетов.

    А в целом я считаю нужно сидеть под Ubuntu/Mint, выбирать нормальное железо, и кольскоро работаешь с Linux быть морально готовым к тому, что после апдейта может понадобится загружаться с флешки и что-то чинить вручную.
    Ответ написан
    3 комментария
  • Хочется стабильности и красоты. Какой дистрибутив Linux подойдет?

    sajgak
    @sajgak
    debian stable - основа deb-подобных дистров. + в последней версии использует Gnome 3. Я конечно не эстет, но вроде не дурно
    Ответ написан
    Комментировать
  • Какой встраиваемый язык выбрать: Lua или Python?

    @v_prom
    Lua очень любят разработчики игр и думаю это не просто так.
    Lua действительно очень быстрый (самый быстрый скриптовый язык)
    И существует много документации о использовании в этой связке.

    p.s. python тоже хорош, но в данном случае, уступает lua.
    Ответ написан
    Комментировать
  • Как работает Гистограмма Направленных Градиентов (HOG)?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    lear.inrialpes.fr/people/triggs/pubs/Dalal-cvpr05.pdf
    тут описаны все этапы поиска объектов при помощи HOG-дескрипторов. Что собственно еще нужно?
    Ответ написан
    1 комментарий
  • Какие есть системы сборки для C++ (не Cmake)?

    egor_nullptr
    @egor_nullptr
    make, qmake, qbs
    Ответ написан
    Комментировать