Задать вопрос
  • Указываются ли комментарии в листинге кода?

    @res2001
    Developer, ex-admin
    В исходники смотрят люди, которые могут понять код. Соответственно комментарии в коде пишутся для них, т.е. для программистов. А раз человек может прочитать код, то проще всего написать код так, что бы он был достаточно прост для понимания читающего. Тут включаются стандартные правила об именовании переменных, стилю написания кода, KISS и т.д. и т.п.
    В реальности комментарии необходимы только для не тривиальных, трудных для понимания частей кода, где используется какой-то хитрый алгоритм или не очевидный хак.
    Если вы будете использовать систему авто-генерации документации, то тут уже придется писать комментарии к каждой сущности в коде по правилам этой системы и программист заодно становится и тех.писателем.
    Ответ написан
    Комментировать
  • Как маршрутизировать траффик через промежуточный локальный интерфейс?

    @res2001
    Developer, ex-admin
    Вам нужно на роутере добавить маршрут до сети 192.168.5.0/24 через IP eth0.
    На самом компе добавлять маршрут не нужно, т.к. он имеет IP адреса во всех задействованных сетях, то маршруты уже есть.
    Пингами с роутера проверяете доступность IP eth1.
    Т.к. eth2 работает мимо ОС, то схема должна работать.
    Естественно на компе надо включить маршрутизацию пакетов и настроить/выключить фаервол.
    Сниффером слушаете eth1.

    Более "чистая" и точно рабочая схема была бы, если использовать второй ПК: eth2<=>второй ПК<=>router
    На втором ПК можно настраивать сниффер и видеть весь трафик.
    Ответ написан
    1 комментарий
  • Какой ВПН установить на сервер, без установки конфигураций?

    @res2001
    Developer, ex-admin
    Все ВПН клиенты требуют той или иной конфигурации. Т.к. вы работаете с линуксом, то конфигурация находится в файлах. Была бы винда, был бы еще вариант конфигурации в реестре. Но в любом случае конфигурация будет.
    Приведенная вами команда генерирует конфиг сама, а то и не один, не проверял. Ссылки на дополнительные скрипты, указанные в вашем скрипте сейчас не доступны. И это не РКН их блочит. Ссылки ведут на github, но github изменил стиль ссылок на raw файлы. В скрипте используются старые ссылки, которые сейчас не работают. Можете поправить ссылки вручную в скрипте при желании.
    Этот скрипт мало того, что конфигурирует ВПН, он еще и устанавливает необходимые пакеты. Т.е. нормально так вмешивается в систему.
    Родной github репозиторий вашего скрипта тут: https://github.com/hwdsl2/setup-ipsec-vpn
    Там же лежат и другие скрипты, которые выкачиваются первым скриптом.
    Ответ написан
    Комментировать
  • Как оценивается идентификатор функции без оператора вызова?

    @res2001
    Developer, ex-admin
    Как указатель на функцию.
    При повышенном уровне сообщений компилятора скорее всего будет какое-то предупреждение. С точки зрения языка ошибки нет, но фактически действие бесполезное, поэтому и предупреждение.
    Ответ написан
  • Как создать изолированную учетную запись в Windows 10?

    @res2001
    Developer, ex-admin
    "Нормальные" современные программы сохраняют свои документы, настройки или временные файлы в профиль пользователя, из-под которого они были запущены, в каталоги типа Documents, %Temp%, %AppData% и ветки реестра в разделе HKCU.
    Это не влияет на подобные сохранения других пользователей этой программы на этом компьютере.
    Конечно могут быть и исключения. Например, некоторые настройки каких-то программ могут быть сделаны только на уровне системы, в таких случаях подобная настройка повлияет на всех пользователей. Или криво написанная программа может сохранять свои настройки и временные файлы куда-то в каталог/раздел реестра, который будет общим для всех пользователей.

    Новый пользователь всегда создается с чистым профилем (точнее с профилем "по умолчанию", который то же можно менять), но ему доступны все программы установленные ранее администратором (см.ответ Hemul GM ).
    Если не хотите, что бы пользователи влияли друг на друга, используйте для сохранения программ каталоги профиля пользователя и отберите администраторские права у всех пользователей, кроме одного.
    Ответ написан
    Комментировать
  • Как создать ссылку от имени другого пользователя в Linux?

    @res2001
    Developer, ex-admin
    В скрипте после создания ссылки измените ее владельца с помощью chown.
    Ответ написан
    4 комментария
  • Предопределено ли присвоение типу данных значения, не помещающегося в этот тип данных?

    @res2001
    Developer, ex-admin
    В стандарте С11 п.6.5.4 пишут, что лишние байты будут отброшены ("removes any extra range and precision").
    Какой результат будет, если типы знаковые и значение а отрицательное и не влазит в диапазон целевого типа не уточняется.
    В плюсовом стандарте я что-то ничего не нашел на эту тему, но по факту поведение аналогично Си.
    Ответ написан
    Комментировать
  • Задание создания динамического массива до первого отрицательного числа, как это сделать?

    @res2001
    Developer, ex-admin
    Лучше использовать std::vector. Просто вводите числа в промежуточную переменную. После ввода каждого числа проверяете отрицательно ли оно, если нет, то добавляете число в вектор. Если число отрицательное и вектор не нулевого размера, то сортируете вектор с помощью std::sort и выводите вектор на экран. Все.

    Вместо вектора можно использовать и "сырые" Си массивы в динамической памяти. Алгоритм тот же, но при добавлении каждого нового числа вам нужно выделить новый массив большего размера, скопировать содержимое старого в новый, старый удалить. Для перевыделения массива можно использовать realloc(), она выполняет все эти операции. Вектор скрывает эти операции от вас и делает все то же самое, но без вашего участия, так же в векторе есть оптимизация, позволяющая делать меньше перевыделений памяти.
    Ответ написан
    Комментировать
  • Как получить вывод команды с терминала в переменную?

    @res2001
    Developer, ex-admin
    Через файл - это самый простой вариант.
    Более технологичный вариант - запускать процесс с перенаправлением потоков stdin/stdout/stderr в каналы (pipe).
    В этом случае можно в режиме "on-line" получать вывод от запущенного приложения и генерировать вход для приложения. Этот сложнее, но дает гораздо больше гибкости в работе с запускаемым процессом.
    Ответ написан
    Комментировать
  • Как добавить Lua дополнения в игру?

    @res2001
    Developer, ex-admin
    Кроме Lua добавляют и Python и другие интерпретируемые языки.
    Это называется "встраивание Lua" в свое приложение (embeded Lua, embeded Python, ...). Гуглите в этом направлении.
    В официальной документации по питону, есть отдельный раздел на эту тему. Видимо, то же и в Lua должно быть.
    Ответ написан
    6 комментариев
  • Как запустить сеанс от другого пользователя в окне на том же самом компьютере в Windows 7 Prо?

    @res2001
    Developer, ex-admin
    У десктопной винды может быть активен только один сеанс, это лицензионное ограничение. Хотите много сеансов - нужен Windows Server.
    Ограничение можно обойти с помощью RDPWrapper. Он позволяет подключаться по RDP, не отключая консольный сеанс. Но это нарушение лицензии.
    Хотя кому в наше время интересны ограничения какой-то иностранной компании из недружественной страны :)
    Ответ написан
    1 комментарий
  • Как данные перемещаются в сети интернет, всегда конвертируются в кадры Ethernet или остаются в пакетах IP?

    @res2001
    Developer, ex-admin
    Если смотреть только на Ethernet, то он представляет плоскую сеть, где все узлы равноправны и могут обмениваться трафиком друг с другом на прямую без всякой маршрутизации. Ethernet ничего не знает о других сетях. Для него есть только одна сеть.
    Поэтому для взаимодействия между разными сетями нужен более высокоуровневый протокол, который позволяет отличить адреса "своей" сети, от "чужих" адресов (обеспечивает маршрутизацию между сетями). Это IP. Датаграммы IP вкладываются в поле данных Ethernet.
    Над IP есть TCP и UDP. TCP гарантирует доставку пакетов, UDP - не гарантирует. Общее между ними то, что оба протокола позволяют идентифицировать конечные приложения на хосте получателя и отправителя по номерам портов. Сам по себе IP не позволяет этого делать, для него конечной точкой является хост в сети, средств идентификации приложений внутри хоста в IP нет. TCP и UDP пакеты вкладываются в поле данных IP пакета.
    Ну и далее поверх TCP и UDP куча прикладных протоколов, которые решают какие-то специфические задачи. Эти прикладные протоколы точно так же вкладываются в поле данных протоколов TCP или UDP.

    И нет никакой конвертации и преобразования, просто пакет вышележащего протокола является данными для пакета нижележащего протокола (инкапсуляция). Про инкапсуляцию смотри аналогию CityCat4 о картошке.
    Ответ написан
  • Можно мне книг по шаблонному программированию в С++?

    @res2001
    Developer, ex-admin
    Для теории есть книга "Шаблоны С++".
    Так же можно посмотреть исходники STL там шаблоны очень активно применяются. А так же и другие свободные библиотеки, например boost.
    Ответ написан
    1 комментарий
  • Как читать вывод git diff?

    @res2001
    Developer, ex-admin
    Файл был переименован. index, видимо, показывает коммит где файл появился первоначально с правами на файл 0644 (стандартные права файловых систем Unix). 10 - "обычный файл".
    Утилита stat выводит такую же инфу о правах, но в шестнадцатиричном виде, а тут восьмеричный.
    Вместо 10 может быть еще 12 - ссылка, и возможно еще какие-то варианты.

    Три минуса и три плюса - стандартное для diff обозначение для сравниваемых файлов. Типа первый файл это ---, второй файл +++.
    Цифры в @@ отрицательная - это "строка, колонка" для первого файла, положительная - для второго. Указывают место где файлы различаются.
    Ответ написан
    Комментировать
  • Почему MinGW не видит winapi функцию?

    @res2001
    Developer, ex-admin
    С чего вы это взяли что компилятор не видит функцию?
    Если бы это было так, то ошибка была бы что-типа "undefined refference" или "implicit declaration".
    У вас похоже ошибка где-то выше по коду, а в этом месте компилятор просто понял, что тут ошибка.
    Ответ написан
  • Как получить текущий путь в BAT файле?

    @res2001
    Developer, ex-admin
    Именно так и узнавать текущий путь: %CD%
    Это не важно где лежит батник, т.к. исполняется не сам батник, а cmd.exe. Т.е. когда вы 2ПКМите на батнике, лежащем на раб.столе запускается команда: cmd.exe /c c:\users\user\Desktop\file.bat
    При этом путь где лежит батник никакого отношения к текущему пути не имеет. cmd.exe обычно запускается с текущим каталогом %SystemRoot%\System32.
    Чтоб перейти в каталог, где лежит батник, используйте команду: cd /d "%~dp0"
    Пути можно получать из параметров батника, указанным способом, то же самое можно делать для переменных цикла, и параметров процедур. Список доступных модификаторов (буквы после %~ доступны в описании команд call и for.
    Ответ написан
    1 комментарий
  • В чём отличие git bash и просто bash?

    @res2001
    Developer, ex-admin
    Это обычный bash, в комплекте с которым идут утилиты необходимые для работы gitа, в т.ч. и сам консольный git. Ничего лишнего.
    Там легко может не быть каких-то утилит, которые в bashe под linux есть. Они не являются частью bash или git, но являются частью linux.
    Ответ написан
    3 комментария
  • Как исправить ошибку LNK2019?

    @res2001
    Developer, ex-admin
    В интернетах пишут, что надо добавить еще opengl32.lib
    Ответ написан
  • Папка " Пользователи ", ее возможно перенести из диска С на диск Е?

    @res2001
    Developer, ex-admin
    Можно перенести и на рабочей системе. Но есть нюанс - в папке содержатся не только профили реальных пользователей, но и All Users, Default, ... Эти специальные профили, лучше оставить на своих местах.
    Описывал ручной вариант переноса тут не однократно, вот мой последний ответ по этому поводу: https://qna.habr.com/answer?answer_id=2161662#answ...
    Там внутри есть ссылки на более полные ответы.
    Ответ написан
    Комментировать
  • Есть ли смысл в уточнении типов данных чисел? И что это даст?

    @res2001
    Developer, ex-admin
    Смысл в этом есть. Будет меньше расходоваться память стека.
    Но только в том случае, если вы программируете для системы с ограниченными ресурсами (какой-нибудь эмбедед и т.п.). Там подобная экономия может быть оправдана, да и то не всегда. В обычных приложениях для винды или линукса подобная экономия "на спичках" никакого эффекта не даст.
    Ответ написан