Задать вопрос
  • Можно ли что нибудь оптимизировать в коде функции поиска?

    @Everything_is_bad
    Хочешь помощи, пиши нормальный код, почитай про pep8, а то на твой код без боли нельзя смотреть.

    Ну и учись самостоятельно оптимизировать, начни с профилирования для поиска тяжелый мест. Хочешь помощи именно по алгоритмам, так сформулируй проблемное место.

    лучший в мире решатель
    зачем выдумывать такое?

    зачем нам нужна ссылка на видео?
    Ответ написан
  • Возможно ли назначение устройства в качестве шлюза, если для выхода в интернет на нём необходимо поднимать VPN?

    @Drno
    возможно сделать то что Вы хотите, но Вы можете за это огрести вплоть до увольнения
    пишите служебки, пусть админы делают то, что нужно Вам для работы
    Это самый логичный вариант
    Ответ написан
    Комментировать
  • Как сгруппировать данные в отчете без скд по двум полям одновременно?

    fosihas
    @fosihas
    Автоматизации учета на 1С.
    используй это... повесив на Цену, прямо в запросе.
    https://its.1c.ru/db/v8327doc#bookmark:usr:TI000000291
    КОЛИЧЕСТВО (РАЗЛИЧНЫЕ) (COUNT (DISTINCT))
    Эта функция рассчитывает количество различных значений. В качестве параметра может быть использован результат функции Массив.


    в отчетах хоть какая нибудь документация есть

    итс рулит
    Ответ написан
    3 комментария
  • Какой CMS движок учить начинающему?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Никакой. Изучайте разработку ПО, языки программирования, построение архитектуры ПО, алгоритмы, математику и т.д и т.п.

    UPD
    Приведу немного аргументации и очевидных вещей для тех, кто не понимает почему ответ именно такой. На самом деле все очень просто: в IT индустрии всё развивается и меняется очень, очень-очень быстро. И как следствие возникает проблема устаревания знаний и умений. Вот например 15-20 лет назад изучение языка программирования под названием "Дельфи" и популярной тогда его среды разработки для десктопных приложений вполне имело смысл и было популярным явлением, т.к. оно тогда довольно широко использовалось, или например Perl для создания сайтов. А где оно сейчас? Почему сегодня сайты пишутся на джаваскрипте? А как на счет десктопных приложений? А ведь те же десять лет назад попробуй скажи такое — как бы область деятельности не пришлось менять. И вот такое происходит просто с языками программирования за довольно короткое время. А основа любого CMS, фреймворка и иже с ними — это как раз таки язык программирования. И вот за время жизни языка программирования в нём случаются новые стандарты, изменения и прочее, а популярное ПО на нём переписываются десятки и сотни раз. Т.е., изменчивость продуктов какого либо языка зависит как от самого языка так и от его популярности. И чем они выше — тем чаще что-то меняется. Из всего этого вытекает очень логичный вывод: в долгосрочной перспективе выгоднее те знания, которые не устареют как можно дольше. И вот тут как раз таки знания разработки ПО и языков программирования, построения архитектура, алгоритмы и прочее имеют наибольший срок устаревания. А уж сколько тысяч лет математике можно и не вспоминать. А она, кстати именно благодаря стремительному развитию IT тоже развивается очень быстрыми темпами. Так вот, при наличии вот таких фундаментальных знаний можно легко и быстро осваивать любые новые фреймворки, CMS, языки программирования и прочее. А уж при наличии подробных мануалов, гугла, форумов и прочего большинство задач сводится тупо к вбиванию "как сделать YYY в ZZZ" в строке поиска (я вот например никак не могу понять ход мыслей людей, которые задают вопросы на форумах и прочих ресусах, ответ на которые выдается в первых же строчках гугла, складывается впечатление, что они вообще первый раз в интернете и про гугл не знают вообще ничего).
    Если есть желание именно в изучении CMS — ставим себе задачу и решаем её используя разные CMS, далее выбираем наиболее понравившуюся и пользуемся пока не надоест или не устареет. А после — повторить.

    Немного перефразирую сам вопрос и соседний популярный ответ:
    — Каким инструментом учиться пользоваться начинающему строителю?
    — Учись использовать молоток и гвозди, леса полно, доски везде используются.
    Вот только строительство — это не одни только доски, в которые забиваются гвозди, а еще архитектура, сопромат и иже с ним, экстерьер, интерьер, отопление, освещение, канализация, вентиляция и ещё куча всего. Аналогично и во всех остальных областях, в том числе и web разработке.
    Ответ написан
    9 комментариев
  • Как можно на роутере микротик вести лог потерь соединения с компьютерами в локальной сети?

    b1ora
    @b1ora Куратор тега MikroTik
    Контакты в профиле
    Через netwatch на событие up/down сделать

    :log info "ping up/down";
    Ответ написан
    Комментировать
  • Как перенаправлять весь траффик на определенный сайт через прокси сервер с помощью C/C++?

    @AnKu_11
    NAT-перехват и редирект целевых IP/портов на прокси
    NAT-перенаправление всех TCP-пакетов заданного IP ...
    #include <winsock2.h>
    #include <ws2tcpip.h>
    #include <windows.h>
    #include <windivert.h>
    #include <stdio.h>
    
    #pragma comment(lib, "Ws2_32.lib")
    
    #define PROXY_IP   "192.168.1.100"
    #define PROXY_PORT 3128
    
    int main()
    {
        HANDLE handle;
        char filter[] =
          "outbound && (tcp.DstPort == 80 || tcp.DstPort == 443)";
    
        WINDIVERT_ADDRESS addr;
        UINT8 packet[0xFFFF];
        UINT  packetLen;
    
        handle = WinDivertOpen(filter, WINDIVERT_LAYER_NETWORK, 0, 0);
        if (!handle) {
            printf("WinDivertOpen failed: %d\n", GetLastError());
            return 1;
        }
    
        WSADATA wsa;
        WSAStartup(MAKEWORD(2,2), &wsa);
    
        printf("Перехват запущен...\n");
        while (TRUE) {
            if (!WinDivertRecv(handle, packet, sizeof(packet), &addr, &packetLen))
                continue;
    
            // Парсим заголовки
            PWINDIVERT_IPHDR  ipHdr  = (PWINDIVERT_IPHDR) packet;
            PWINDIVERT_TCPHDR tcpHdr = (PWINDIVERT_TCPHDR)((UINT8*)ipHdr + ipHdr->HdrLength * 4);
    
            // Подменяем на прокси
            inet_pton(AF_INET, PROXY_IP, &ipHdr->DstAddr);
            tcpHdr->DstPort = htons(PROXY_PORT);
    
            // Пересчёт контрольных сумм
            WinDivertHelperCalcChecksums(packet, packetLen, &addr, 0);
    
            // Отправляем изменённый пакет
            WinDivertSend(handle, packet, packetLen, &addr, NULL);
        }
    
        WinDivertClose(handle);
        WSACleanup();
        return 0;
    }
    Ответ написан
    Комментировать