Задать вопрос
  • Как вы настраиваете табуляцию?

    для php psr-2 гласит
    Code MUST use 4 spaces for indenting, not tabs.

    для python pep-8 гласит
    As mentioned above, you should use spaces instead of tabs when indenting code. You can adjust the settings in your text editor to output 4 spaces instead of a tab character, when you press the Tab key.
    Ответ написан
    Комментировать
  • Как в Git продолжать разработку без отправки изменений на удалённый репозиторий?

    1) Фичу 1 оставить в своем репозитории и не лить ее в мастер локально
    2) Если для Фичи 2 изменения в Фиче 1 не нужны, просто переходишь в мастер, делаешь гит пулл и делаешь бранч для Фичи 2
    2а) Если для Фичи 2 нужны изменения, которые ты сделал в Фиче 1, то после второго шага делаешь gi rebase F1
    3) Перед тем как делать мерж реквест и к первой фиче и ко второй делаешь
    git fetch && git rebase origin/master таким образом ты в ветку подтянешь накопленные в мастере обновления и решишь конфликты если возникнут
    Ответ написан
    4 комментария
  • Нужен антивирус для слабого нотбука?

    flapflapjack
    @flapflapjack
    на треть я прав
    если обновления включены, используйте стандартный windows defender. Он есть в виндоусах начиная с XP.
    Ответ написан
    Комментировать
  • Требуется совет по разрешению дилеммы интеграции Linux в Winodws, как быть?

    bingo347
    @bingo347
    Crazy on performance...
    Я как то уже писал на хабр статью, про мое использование WSL
    https://habr.com/ru/post/412633/
    используя я его с GUI (Xfce) и норм терминалом

    так же для себя писал хелпер на шарпе (хост) + ноде (WSL), для автоматическим рулением vcxsrv (X сервер под винду), WSL, а так же прокидыванием системной раскладки в WSL
    https://github.com/bingo347/XHelper

    ну и еще добавлю, что перешел сейчас на debian (когда писалась статья его еще не было в сторе), в нем изначально меньше мусора под снос
    впринципе все тоже самое можно провернуть и с виртуалкой
    а у virtualbox еще есть режим интеграции рабочего стола
    Ответ написан
    1 комментарий
  • Как автоматизировать сборку зависимостей программы?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Смотрите в сторону любого менеджера зависимостей вроде Conan или vcpkg. У конана точно есть интеграция с CMake. Только учтите, что много чего вам всё равно придётся писать руками. Управление зависимостями -- это головная боль в C++, т.к. язык очень старый. Обычно у всех компаний есть свои велосипеды для этого.

    С помощью связки CMake + Conan реально получить то, что вы хотите.

    Следующим шагом будет создание установщика для уже скомпилированной программы, который будет устанавливать программу на компьютер пользователя. Тут всё ещё хуже на самом деле :) Но это уже другой вопрос.
    Ответ написан
    2 комментария
  • Как автоматизировать сборку зависимостей программы?

    @rPman
    Возьмите тот же make, мы все привыкли что makefile содержат какой-нибудь автогенирированный эпический код, в котором уже давно никто полноценно не разбирается, но вообще то это неплозая система автоматического контроля версий файлов и сборки с учетом зависимостей.

    Когда вы пишите
    целевой_файл:используемые файлы
      командная строка для сборки целевого файла
    вы фактически описываете процесс, когда make проверяет версии используемых файлов по цепочкам зависимостей автоматически и запускает соответствующие команды.

    Для каждой своей зависимости у вас можно написать bat-файл, который переходит в нужный каталог и пересобирает ее, затем копирует результат в каталог вашего проекта. Вы можете для каждого написать по паре строчек в вашем makefile указав в качестве используемых файлов вообще все файлы каждого проекта или лучше какой-нибудь один (например index файл из их git каталога) и все, при любом обновлении у вас будет происходить запуск сборки. Затем вы можете добавить этот makefile в ваш проект (либо вручную прописать его вызов) на сколько я помню в visual studio есть куча возможностей для этого.

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

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    1. Выбираете 1-е число из полного диапазона.
    2. Выкидываете множество выпавшего числа.
    3. Выбираете 2-е число из оставшегося диапазона.


    Например:
    1. случайное из [0, 2346] оказалось 105 из диапазона "B"
    2. выкидываем диапазон B, остаётся [0, 1902], т.к. длина "B" 544-101+1 = 444, 2346 - 444 = 1902
    3. случайное из [0,1902] оказалось, например, 404. Для чисел выше 100 добавляем 444 и получаем 848 из диапазона "C" по старому стилю )
    Ответ написан
    Комментировать
  • Как правильно искать работу (откликаться на вакансии) без опыта работы?

    opium
    @opium
    Просто люблю качественно работать
    Писать что знаете
    Ничего не писать
    На любые вакансии откликаться
    Ответ написан
    Комментировать
  • Как снизить нагрузку на БД или какую БД использовать?

    landergate
    @landergate
    IT-шный jack-of-all-trades
    Миллионы записей - это совершенно обычный и, я бы сказал, крайне небольшой кейс для MySQL.

    Самое быстрое: отпрофилировать запросы (например, performance_schema=1 и подключить sys-таблицы, они наполнятся данными по прошествии времени), найти неоптимизированные индексами и добавить недостающие индексы на этих таблицах.
    Ответ написан
    8 комментариев
  • Где почитать как работают беспроводные наушники?

    @terka43
    В Гугле забанили?
    аудиоресивер и Bluetooth декодер это плата, батарея, выходы на динамики, если надо, то можно ещё и микрофон запилить.
    По Bluetooth спариваются 2 устройства, потом поток передаётся на декодер, потом усилитель, потом в динамики
    Ответ написан
    Комментировать
  • Как собрать .c проект для Windows 10?

    myjcom
    @myjcom
    однако меня заверили, что и на 10 это возможно

    https://sourceforge.net/p/wipfw/discussion/388595/...
    I use mingw to compile userland part and NTDDK + VC6 to build sys driver.
    Ответ написан
    1 комментарий
  • Чем отличается обявление int* a от int *a в Си?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Ни чем не отличается. Пробельные символы допустимо ставить в любом месте, где они не разрывают ключевое слово, идентификатор или константу. Все варианты ниже полностью эквивалентны:
    int*a;
    int* a;
    int *a;
    int * a;

    Но есть некоторая тонкость. Если посмотреть на синтаксис объявления нескольких переменных:
    int * a, * b, c, * d, e; // a, b и d - указатели, c и e - числа

    то будет видно, что "звездочка" является скорее модификатором переменной, чем модификатором типа. Чтобы подчеркнуть этот факт, рекомендуется всегда писать "звездочку" около переменной. Такая привычка позволяет избежать глупых ошибок:
    int *a, *b; // нормально
    int* a, b;  // Ошибка: b кажется указателем, но на самом деле - число.

    А синтаксис у C простой.
    5c77e725c3f4a317612433.jpeg
    Ответ написан
    1 комментарий
  • Зачем ставить фигурные скобки после вызова метода?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Фигурные скобки создают новый блок со своей областью видимости (к последнему выражению это отношения не имеет):
    int A = 0;
    
    {
        int A = 1;
        int B = 1;
        std::cout << A << "\n"; // 1
        std::cout << B << "\n"; // 1
    }
      
    std::cout << A << "\n"; // 0
    //std::cout << B << "\n"; // <-- error: B was not declared in this scope
    Ответ написан
    16 комментариев
  • Как сейчас актуально делать свой почтовый сервер, чтобы доходило до gmail/yandex/mail?

    @CHolfield
    Чтобы доходили письма, нужно:
    1. Настроить DNS. MX- запись, А-запись хоста, в обратной зоне соответствующая PTR-запись.
    2. Купить сертификат для SMTP и прикрутить его к серваку. Имя субъекта в серте должно совпадать с именем хоста DNS.
    3. Пройтись по публичным блек-листам и удалить свой айпишник оттуда, если он там был.
    Ответ написан
  • Как работать с выгоранием?

    @Ksushqa
    Unity developer
    Как же я вас понимаю! Тоже 2+ года и тоже чувствую себя выжатой как лимон. Работа за копейки, нет конца и края меняющимся требованиям. Хотят много, дают в ответ мало, даже хотя бы банального эмоционального отклика (я довольно идейный человек и мне искренняя благодарность очень важна) нет. Ни "спасибо", ничерта... Сделай за себя и за того парня. В итоге пришлось идти в больничку. Обследовалась от и до. Сказали все "болезни" у меня от нервного истощения, тело здорово. Была недавно на больничном, даже отдохнуть не дали нормально. Всё равно пришлось работать. На выходных – часто работаю. Короче, вы понимаете, каково это :) И при этом работать на устаревшем ***, за 2+ года мало роста.

    На этой неделе понесу заявление на увольнение.

    Вина на вас только в том смысле, что вы себя недостаточно любили :) Не отстаивали свои "границы", как любят говорить психологи.

    Как то можно заранее выявить такую компанию с таким же отношением и организацией, чтоб не попасть на те же грабли?

    Заранее не всегда возможно. Но вы должны быть внутренне настроены на то, какую работу вы хотите, а что терпеть не будете точно (что аукается на ваше здоровье?). И отстаивать это в общении с работодателем. Я начала отказываться работать на выходных, перестала торопиться всё успеть, потому что начальству захотелось. Перестала соглашаться со всеми заданиями подряд, а если что-то вижу слишком затратным или нецелесообразным – так и говорю с приводом аргументов. А в любую оценку времени на работу теперь нагло прибавляю время на отдых/восстановление (просто потому что привыкла себя загонять и хочу чуть замедлиться, а значит нужно больше времени). Ничего, никто не умер. Едут на том, кто везет :) Не болейте!

    P.s.:
    Ну вот собственно, выгорание случилось, как теперь работать с выгоранием?
    Возьмите направление к неврологу. Если верите в "психологов", можете на консультации походить. Тут дело не только в сложности работы, но и в том, что вы берете всю нагрузку, что на вас взваливают (быть хорошим? вина при отказе?). Двояко.
    Ответ написан
  • Как правильно сделать "git pull для обновления" чтобы получить изменения из одной папки в другую на одном компьютере?

    Stalker_RED
    @Stalker_RED
    Вы не получите простую инструкцию из двух команд. Просто потому, что их для нормальной работы понадобится чуток побольше, чем две. Ближе к десятку.
    В принципе, можно написать несколько sh скриптов, которые будут скрывать в себе все внутренности, но это до первого конфликта.

    Вам в любом случае понадобиться узнать что такое add, commit, pull, push, checkout и merge. А рано или поздно еще и некоторые ключи к ним.

    Книжка вот: https://git-scm.com/book/ru/v2
    Ответ написан
  • Правильно ли я понимаю?

    15432
    @15432
    Системный программист ^_^
    Неа, number[3] - четвертый элемент массива, нумерация с нуля идёт (0, 1, 2, 3 ,4).
    Ответ написан
    1 комментарий
  • Почему неправильно преобразуется структура?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из за чего это ?

    Из-за выравнивания полей данных в структуре и из-за того, что long -- 8 байт. В структуре my_struct_in у тебя идут подряд short, short и long. Первые два short -- выравнены, а чтобы выравнять long компилятор вставил перед ним в структуру дырку длиной в 4 байта. Можно напечатать offsetof(struct my_struct_in, addr) чтобы в этом убедиться.

    Что делать? Использовать типы фиксированной ширины (uint32_t addr, если имелся в виду IP адрес). Паковать структуры (если выравнять нельзя), либо располагать поля согласно их натуральному выравниванию.
    Ответ написан
    3 комментария
  • В чем ошибка (работа с памятью, деструкторы)?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    У вас же C++, т.е. можете использовать вектор для хранения элементов без необходимости явного выделения памяти:
    #include <vector>
    
    // double* _coords;
    std::vector<double> _coords;
    
    // _coords = new double[N];
    _coords.resize(N);

    Ну и деструктор можете не писать.
    Ответ написан
    Комментировать
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    Я отвечу на вопрос из заголовка: потому что сложность алгоритма говорит о том, как он будет вести себя при неограниченном увеличении размерностей входных данных. И больше ни о чём. Т.е. нельзя имея два линейных алгоритма сказать, что они будут работать одинаковое время. Но можно имея линейный и квадратичный алгоритм сказать, что начиная с какого-то момента линейный всегда будет работать быстрее.
    Ответ написан
    2 комментария