• В чем логика быть MAC адресу на первом месте при декапсулировании?

    @Tabletko
    никого не трогаю, починяю примус
    В чем смысл при путешествии фрейма от одного узла к другому (находятся не в одной сети) указывать первым мак адрес, если было бы логичнее указать IP, чтобы фрейм нашел нужную сети, а затем уже в этой сети по мак адресу нашел нужный узел.
    Если получатель не в нашей сети, то в L2 заголовке получателем будет роутер, а не конечный получатель.
    Ответ написан
    4 комментария
  • Корректен ли данный код, возможна ли оптимизация?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    В целом неплохо, оптимизировать тут нечего, ибо программа тривиальная и работает так быстро как это только возможно.

    По коду есть комментарии:
    1)
    if ((valVAT == 10) || (valVAT == 18) || (valVAT == 20)) {
    ...


    Тут у вас один большой мега-if в котором что-то делается. Гораздо проще для понимания и визуально читабельнее, если делать "ранний выход". Вместо if(a) { много кода } стоит писать:
    if (!a) {
      continue; // или return; если это в функции.
    }
    // много кода.


    У вас стоит сначала проверить, что valVAT == 0 и выйти из цикла через break в этом случае. Потом проверить, что valVat != 10 && valVAT != 18 && valVAT != 20 и вывести сообщение об ошибке и сделать continue. Дальше уже идет тело цикла с вычислениями.

    2) Вместо if(chng == 1) {} else if (chng == 2) {}... стоит использовать конструкцию
    switch (chng) {
    case 0:
      // код
      break;
    case 1:
      // код
      break;
    case 2:
      // код
      break;
    default:
      // сообщение об ошибке
      continue;
    }


    3)
    sleep(1) после вывода сообщения об ошибке, на мой взгляд не нужен. Зачем это? Заставить пользователя прочитать сообщение об ошибке?
    Ответ написан
    4 комментария
  • Почему принято писать пробелы вместо табов?

    DevMan
    @DevMan
    4 пробела – везде и всегда равны 4 пробелам, а размер таб'а плавает.
    при неумелом обращении, особенно при командной разработке, это может привести к неожиданному виду кода.

    дело личных привычек/предпочтений и/или договоренности.
    в умелых руках проблемы "space vs tab" вообще не существует.
    Ответ написан
    Комментировать
  • Возможно ли скомпилить из linux exe файл?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    sudo apt-get install mingw-w64
    Ответ написан
    2 комментария
  • Почему разные сигнатуры в уроке по указателям Clang?

    В уроке опечатка, символа * после char c быть не должно.
    Ответ написан
    Комментировать
  • Стоит ли это заучивать?

    GavriKos
    @GavriKos
    Имеет смысл ПОНЯТЬ все что там есть. А не заучивать.
    Ответ написан
    Комментировать
  • /deletethis/deletethis?

    @rPman
    Учебные заведения, в основном, это не место где ты получаешь знания, за очень некоторыми исключениями (например ты берешь проект/дипломную и работая со своим куратором изучаешь свою конкретно узкую область), это место:
    * где у тебя есть возможность получить затравку своим знаниям (как затравка для получения кристалла - подвешиваешь крохотную часть в раствор и со временем оно вырастает в огромный кристалл)
    Тут ты учишься учиться. Спросите, зачем мне эти знания что в меня вдалбливают в школе/универе - так вот это тренировка мозга, этот процесс как тренировка мышц выполнением бессмысленных повторяющихся движений и поднятия тяжестей.
    * где у тебя есть возможность получить очень небольшую мотивацию по учебе, логика тут примерно такая - ты уже потратил кучу сил/денег и бросать на середине пути - значит признаться что эти затраты были в пустую
    * главное, у тебя есть возможность встретиться с единомышленниками, людьми, которые как и ты крутятся в этой области знаний
    * и с боку - у тебя есть возможность встретить жену/мужа (если ты женщина), а учебное заведение выступает в качестве фильтра чтобы отсеять совсем уж быдло недостойных внимания (кстати женщины часто это делают, я знаю пример когда одна дама больше 10 лет сверх срока, оплачивала обучение именно с этой целью).
    p.s.
    * университет/институт - неплохое место чтобы найти работу, обычно туда идет работодатель за работниками, очень часто заключаются соответствующие договора с учебным заведением.
    Ответ написан
    2 комментария
  • Как происходит процесс оформления ПО ТК РФ на удаленку?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Запрошенные кадрами. В соответствии с последними правками можно в виде подписанных pdf'ок.
    Ответ написан
    9 комментариев
  • Не могу разобраться с ошибкой "выражение должно иметь константное значение" в коде Си?

    @vanyamba-electronics
    Поместите код инициализации этих переменных в тело функции main().
    Ответ написан
    Комментировать
  • Как запустить Usb 4g dongle + OpenVpn соединение?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Вы хотите, чтобы у вас впн поднимался, типа, прямо внутри модема - как иногда делают с вайфай-роутерами? А у него вообще есть такая функциональность? По виду - он обычный USB-свисток, они таким, по-моему, не занимаются.
    Ответ написан
    Комментировать
  • Можно ли использовать iSCSI для хранения картинок для сайта?

    @MechanID
    Админ хостинг провайдера
    iSCSI - один из стандартов в индустрии по предоставлению места с СХД потребителям, повсеместно используется в виртуализации например. Если у вас отдельная сетевая карта 10 гигабит, а лучше две в бонде, мту 9000 то у вас будет все хорошо, и вы врядли упретесь в гораничения iSCSI, скорее исчерпаете лимиты скорости и операций ввода/вывода (IOps) вам предоставит СХД.
    Ответ написан
    8 комментариев
  • Как открыть 22 порт на Убунту?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Судя по скриншоту из комментария - у вас просто SSH-сервер не запущен, фаерволл тут ни при чём, расходимся. Ну и вообще - было бы странно, если какие-то обновления рушили доступ по SSH.

    Прибейте конфиги и переустановите сервис, скорее всего поможет.
    Ответ написан
    Комментировать
  • Можно ли переписать код с питона на C++?

    mezastel
    @mezastel
    Финансовая математика, программирование
    Тут есть одна проблема, насколько я помню код на питоне использует целочисленные значения неограниченных размеров, в то время как на С++ требуется явно указать размер переменной. Возможно для реализации кода выше, в частности возведения в большую степень по модулю (как у вас) придётся писать совершенно другую реализацию. Ну или брать какую-то библиотеку которая работает с arbitrary-precision arithmetic.
    Ответ написан
    Комментировать
  • Проблемы с работой туннеля, пока не пингуешь какой нибудь яндекс. Поможете?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Поставьте в опенвпне кипалайв покороче с обеих сторон. UDP-сессии могут быстро закрываться при отсутствии передачи данных.
    Ответ написан
  • Сито, как правильно отсортировать?

    @Homemade
    Просто выведи диаметры сит в порядке убывания.
    Ответ написан
    1 комментарий
  • Как настроить планировщик задач Windows, чтобы задачи выполнялись в фоне?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Видите чекбокс - "выполнять только для пользователей вошедших в систему" ?
    Вы вошли в систему - под вашей учеткой исполняется задание, и соответственно именно на вашем экране мелькает черное окошко батника.

    Запустите под другим пользователем - который не входит в систему. Поскольку он не вошел в систему, у него нет экрана на котором он будет видеть мелькание окошка.
    Ответ написан
    Комментировать
  • Что такое буфер ввода/вывода?

    Для ввода-вывода в консоль или файл программа делает системные вызовы чтения или записи. Не вдаваясь в подробности, скажу, что они дорогие. Если ты читаешь по одному символу из std::cin, то это будет работать жутко медленно.

    Что происходит на практике: происходит один системный вызов, cin читает в свой внутренний буфер сразу, скажем, 4096 байт, и потом отдаёт тебе из буфера по одному символу, которые ты у него запрашиваешь. Нетрудно заметить, что работать это будет (в моём примере) где-то в 4096 раз быстрее.

    Зачем очищать. Пока ты не сделал flush, то, что ты вывел в поток, находится в буфере. cout ждёт, пока ты докинешь ему ещё байтиков, чтобы вывести всё потом большим куском. Если же ты хочешь, чтобы вывод произошёл прямо сейчас, то нужен flush.
    Ответ написан
    Комментировать
  • Как определить переменную среды Environment?

    @Griglapidus
    C++/Qt
    что бы задать переменную в пределах текущей сессии терминала:
    set MXUPDATE_PATH=C:\project\MxUpdate\
    что бы задать переменную на совсем:
    setx MXUPDATE_PATH C:\project\MxUpdate\
    Ответ написан
    3 комментария
  • Как с помощью функции напечатать двухмерный массив?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему выводит только первую строку а остальные что-то непонятное?

    int print_arr(int str, int stlb, int matr[][stlb]){
    ...
    }
    
    int mass[10][10];
    ...
    print_arr(N, L, &mass[k][i]);


    Здесь две ошибки:
    - во-первых ты пообещал, что передашь в print_arr массив, последняя размерность которого равна второму параметру функции, а передаёшь массив, вторая размерность которого равна 10 и никак от второго параметра не зависит
    - во-вторых вместо массива ты передаёшь адрес элемента, который ты даже не заполнил.

    Если уж ты решил использовать VLA, то делай это последовательно, например так:

    int  main()
    {
        int L = 0, N = 0, k, i;
        scanf("%d", &N);
        L=N;
        int mass[N][L];
        for(k = 0; k < N; k++){
            printf("[%d]\n", k);
            for(i = 0; i < L; i++){
        	    scanf("%d", &mass[k][i]);
            }
        }
        printf("matrix NxN\n");
        print_arr(N, L, mass);
        return 0;
    }
    Ответ написан
    Комментировать
  • Как реализовать выделение памяти (malloc) через функцию?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Чтобы менять значение передаваемого элемента нужно передавать указатель на него - в данному случае передавать указатель на указатель :)
    Ответ написан
    Комментировать