Задать вопрос
  • Как быть с тестовыми заданиями при трудоустройстве?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    когда тебе говорят выполнить ТЗ, которое не является для тебя вызовом и занимает всего час времени, а потом не отвечают вообще - это довольно грустно

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

    Стоит ли пытаться "удивить" проверяющего? Есть ли прок от того, что в задании, где просят написать коротенький код, я его дополняю, подключая celery, меняя базу данных с локальной на более релевантную, засовывая приложение в докер образ?

    Можно написать базовую версию, а потом сделать ветку и навертеть в неё сверху всякого, что показывает глубокое знание языка, владение абстракциями и шаблонами, знание тонкостей фреймворка, умение писать масштабируемые системы и т.д. и т.п.

    Стоит все эти техзадания публиковать и добавить ссылку на github в резюме, если она ещё не там.
    Ответ написан
    5 комментариев
  • Как считать из stdin русский текст и вывести его как wchar_t?

    @blecked88 Автор вопроса
    Проблема в итоге решилась так.

    #include <stdio.h>
    #include <tchar.h>
    #include <io.h>
    #include <fcntl.h>
    
    #define SZ 256
    
    int main(void)
    {
        int _ = _setmode(_fileno(stdin), _O_U16TEXT);
        _ = _setmode(_fileno(stdout), _O_U16TEXT);
    
        TCHAR input[SZ] = { 0 };
    
        _tprintf(L"Введите текст: ");
        fgetws(input, SZ, stdin); input[wcslen(input) - 1] = 0;
        _tprintf(L"Введенны текст: %s", input);
    
        return 0;
    }
    Ответ написан
    3 комментария
  • Почему может передоваться только 8 байт через сокеты клиенту?

    15432
    @15432
    Системный программист ^_^
    У вас там sizeof(get_buffer) стоит. Вы спрашиваете размер указателя, что равно 8. Таким способом можно указывать размер только статических массивов, для динамической памяти - только указывать конкретные значения
    Ответ написан
    1 комментарий
  • Какой протокол VPN выбрать для удаленки?

    @Drno
    SSTP \ ocserv
    Zerotier
    Ответ написан
    Комментировать
  • Как решить проблему с uwebsockets в С++ Visual Studio2022?

    @adg2004
    Congifuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions и туда вписать _CRT_SECURE_NO_WARNINGS
    Ответ написан
    2 комментария
  • Как обновить программу "ip" в Linux?

    @AlexVWill
    Насколько я помню ip
    (если мы конечно говорим про whereis ip )
    ip: /usr/bin/ip /usr/sbin/ip /usr/share/man/man7/ip.7.gz /usr/share/man/man8/ip.8.gz

    часть пакета iproute2, исходники которого лежат на www.kernel.org, что с ними делать я думаю вы сами знаете.
    Ответ написан
    3 комментария
  • Проблема с командой bash отказано в доступе. Как решить?

    paran0id
    @paran0id Куратор тега Linux
    Умный, но ленивый
    Он пытается распаковаться в /usr/local/bin, у вашего пользователя нет туда доступа, есть у root. Запускать непонятные скрипты из интернета от имени root - плохо.
    Ответ написан
    2 комментария
  • Как решать задачу?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Надо сделать несколько наблюдений: во-первых, нам без разницы, в каком порядке шары на каждом уровне - важны лишь количества там шаров всех 4 цветов. Во-вторых, если на каком-то уровне остались только белые шары - то мы этот уровень больше никогда трогать не будем. В-третьих, что бы мы не делали на одном уровне - это никак не влияет на другие уровни. Поэтому можно их все рассматривать независимо. Надо решить задачу для каждого уровня отдельно и просуммировать количество дней (и единицы, если на уровне можно что-то оставить).

    Рассмотрим теперь один уровень, который описан 4 числами a,b,c,d и нам надо оставить как можно больше шаров белого цвета (их d). За один ход мы можем приравнять к 0 одно из 4 чисел и вычесть по 1 из отсавшихся ненулвевых. Ясно, что нет смысла занулять d. Т.о. за 3 хода мы можем получть 0,0,0,max(0,d-3). Но, например, если у нас было 2 2 2 3, то занулив a и b мы уменьшениями на 1 зануляем и c. Т.е. для маленьких чисел имеет смысл подумать в каком порядке их занулять. Но мне лень даже думать как именно - ведь их всего 3 числа - можно тупо перебрать все 6 перестанвок и выбрать ту, в которой за наименьшее количество ходов мы их все занулим.
    Ответ написан
    6 комментариев
  • Почему от добавления функций помимо main() в начало кода ядро перестает работать?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему от добавления функций помимо main() в начало кода ядро перестает работать?

    смотри: ты собираешь образ kernel следующей командой:
    i686-elf-ld -Ttext 0x7E00 --oformat binary kernel.o -o kernel -e main

    а запускаешь следующей:
    ; Jump to the kernel's entry point
        JMP 0x0000:0x7E00

    как по-твоему здесь используется информация о точке входа -e main?

    Ответ
    никак, выполнение всегда начинается с начала образа kernel, куда выполняет переход начальный загрузчик; что там будет, то и начнёт выполняться. Эта информация даже никуда не записывается, потому что файл формата binary -- это тупо склеенные вместе загружаемые сегменты, там нет места для метаинформации. Если бы ты собирал ELF, то этот адрес был бы записан в поле e_entry заголовка ELF.

    Если не модифицировать загрузчик, то образ ядра должен начинаться с кода точки входа, в твоём случае -- с кода main(). Чтобы поместить нужный код в нужное место собранного образа обычно используют скрипт линковщика.
    Ответ написан
    Комментировать
  • Как удалить бесконечную папку?

    @Zerg89
    rd /s "\\?\C:\full-path"
    Ответ написан
    Комментировать
  • Почему не работает программа на C++ с решением задачи об "Игре в жизнь"?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    У вас ошибка в логике: вы меняете поле отдельно в каждой клетке. И потом используете уже поменянные клетки для подсчета количества соседей в следующей клетке. Но в игре жизнь все клетки считаются параллельно.

    Для этого вам понадобится 2 массива map. Один для текущей итерации, и другой для следующей. Или массив должен быть не bool, а int, и там вы должны разными числами помечать живые клетки, которые умрут, живые клетки, пустые клетки и пустые клетки, которые родятся. В первый проход вы считаете соседей и помечаете клетки, а вторым проходом все изменения применяете.

    Кажется, из-за этого у вас там поле никогда не вымирает и программа не останавливается.
    Ответ написан
    1 комментарий
  • Почему программа заканчивается даже не начавшись?

    В Setup вы присваиваете gameOverStatus ноль, а потом в while проверяете его на равность единице (в комментарии пишете при этом противоположное).
    Естественно, 0 != 1, цикл не запускается и программа заканчивает исполнение.
    Ответ написан
    3 комментария
  • Почему объект не передается по ссылке?

    @Mercury13
    Программист на «си с крестами» и не только
    В BoxContainer, скорее всего, не происходит инициализация nbox.
    Поскольку NumberBox не имеет конструктора по умолчанию, компилятор ругается, что нельзя это поле инициализировать по умолчанию.
    Так что варианта два
    1. nbox инициализировать, наконец.
    BoxContainer::BoxContainer(NumberBox& nb) : nbox(nb) { ... }

    2. Придумать NumberBox конструктор по умолчанию
    class NumberBox {
    	...
    public:
    	NumberBox();
    	NumberBox(int i);
    	...
    };
    Ответ написан
    1 комментарий
  • Можно ли использовать mozilla thunderbird как SMTP-сервер?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Нельзя. Thunderbird - это клиент.
    Поднять свой сервер гораздо сложнее, чем кажется на первый взгляд. Придётся получить фиксированный белый IP, разобраться в DNS, настроить SPF, DKIM, DMARK. Гораздо проще разобраться, как отправлять письма через SMTP-сервер того же gmail.
    Ответ написан
    7 комментариев
  • Почему запрашивается пароль при git push если авторизация по ключу настроена?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Если вы хотите аутентификацию по ключу, то вам нужен remote с URL для SSH-протокола, а у вас тут HTTPS-протокол, на который ваши SSH-ключи никак не влияют — там аутентификация своя — по паролю, либо токену.

    Скорее всего вам надо поменять ссылку на правильную.
    git remote set-url origin git@gitlab.com:malashko/bla-bla-bla.git
    Ответ написан
    1 комментарий
  • Почему компилятор выдает ошибку error: expected declaration or statement at end of input?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Пропущена закрывающая фигурная скобка в print_arr
    Ответ написан
    Комментировать
  • Будет ли правильным если в ESXI один вирутальный сервер будет подключен сразу к трём физически разным сетям, две из которых относятся к КИИ?

    @SunTechnik
    Можно или нельзя - определяется Вашими регламентами.
    Если сети изолированный друг от друга, то это сделано по каким-то причинам. Включение сервера одновременно во все три, нарушает условие физической изоляции и добавляет вектор атаки.

    Но даже если Вы поставили в каждую сеть свой сервер zabbix, как потом планируется рассылать/получать уведомления о событиях?
    Ответ написан
    2 комментария
  • Что будет если сделать 2 одинаковых домена в разных зонах?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Куда укажешь - туда и будет ссылаться. Но habr.com.ru (как и любой домен 3-го уровня) можно "купить" только у администратора com.ru.
    Ответ написан
    Комментировать
  • Как восстановить конкретную папку на btrfs если нет снапшотов?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    восстановить конкретную папку на btrfs ... нет снэпшотов ... Сижу из под другой системы, которая даже о btrfs ничего не знает.

    Если Windows (оптимальный выбор для вашей задачи), то пробуйте Klennet Recovery и UFS Explorer (последний есть и под другие ОС, но лучше Винда). Вряд ли какие-либо другие инструменты найдут больше.

    Понятно, что если Виндоус предложит инициализацию, форматирование, и т.п. диска-пациента, то надо отказываться - записывать на него ничего нельзя, станет хуже.

    Дамп всего nvme тоже сделал

    Но если успел отработать TRIM, то беда - почти наверняка с данными надо прощаться. Можно пробовать обращение к специалистам, но вероятность успеха низкая, особенно с учётом специфики БТРФС.
    Ответ написан
    3 комментария
  • Как получить нужное значение на разных версиях виндовс?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Заведите, например enum со всеми версиями виндоуз и занумеруйте их. Смещения ваши раскладывайте не по неймспейсам, а массиве. Во время исполнения через winapi получайте версию винды и приводите ее к значению в вашем энуме. Его используйте как индекс в массиве.
    Ответ написан
    2 комментария