Задать вопрос
  • Что такое PRIMARY KEY, CONSTRAINT, FOREIGN KEY, REFERENCES, INSERT INTO и для чего они нужны?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    New_Horizons
    @New_Horizons
    Бред:
    Просто ещё один примерчик:
    Когда нужно из апи получить какие-то данные постранично, но ты не знаешь сколько там вообще их, может быть 0, а может быть миллион. Т.е. тебе в любом случае нужно сделать хотя бы один запрос в апи, чтобы узнать сколько товаров, сколько страниц и т.п. Тут и пригождается do-while. Далем первоначальный запрос, а дальше уже в зависимости от ответа либо продолжаем цикл, пока не получим все страницы, либо выходим из цикла, если данных вообще нет или не более одной страницы.
    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    @res2001
    Developer, ex-admin
    Например, функции ввода/вывода в POSIX возвращают EINTR, если во время их работы в приложение пришел сигнал.
    Сигнал вы можете перехватить, обработать и можно продолжать дальше. Но функция (например write) вернет EINTR. Если эту ситуацию не обрабатывать отдельно, то это может вызвать, например, завершение приложения (из-за ошибки ввода/вывода), тогда как приложение могло бы дальше работать.
    В этом случае удобно вызов функции заключать в do while:
    int ret;
    do {
      ret = write(...);
    } while(ret == EINTR);

    Это один из вариантов, когда надо выполнить действие, и по результатам действия будет понятно надо ли еще раз его запустить или уже достаточно.
    В этот же цикл можно добавить и другой функционал.
    В случае неблокируемых операций ввода/вывода операция может завершится не записав или не прочитав все что нужно или вообще вернуть EAGAIN, если ничего нет. Можно эти проверки добавить в этот же цикл do while вместе с проверкой на EINTR.
    Вариантов использования, на самом деле много. Вы это увидите, когда столкнетесь с таким вариантом в своей практике.

    Но самый популярный вариант у Си программистов, это использование в макросах:
    #define MACRO(x)      do { тут что-то делаем } while(0)

    Этот фиктивный цикл служит двум целям:
    1. внутри цикла можно объявлять локальные переменные, которые не будут видны вне цикла
    2. При использовании макроса можно в конце ставить точку с запятой, не нарываясь на предупреждения компилятора: MACRO(val);. Компилятор в итоге уберет цикл, но все побочные эффекты сохранятся.
    В плюсах этот вариант практически не используется, т.к. тут есть шаблоны и т.п. и от макросов в основном отказываются. Но в Си макросы вполне актуальный инструмент.

    Но циклы for и while применяются чаще, чем do while.
    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    mayton2019
    @mayton2019
    Bigdata Engineer
    do-while удобно применять когда например есть пользовательский ввод и есть реакция на ошибу. Где нужно ввод
    повторить. Например

    do {
      s = input("Enter your bidthday: ")
    } while(!isValidDate(s));

    Еще я использовал для простого I/O когда надо что-то по-символьно читать и проверять
    что файл не закончился (результат не отрицательный).

    В последних версиях Scala (3.x) мусье Одерский внезапно зобанил оператор цикла с постусловием.
    Я уж не помню как он это аргументировал.

    В качестве альтернативы предлагалось делать такой композитный предикат который делает
    сначала действие а потом проверяет.

    while ({ <body> ; <cond> }) ()

    Еще дальше пошел Дейкстра. Он придумал специальный вид do-while для конечных автоматов.
    Такой себе гибрид do-switch-case-while. Где можно как в DSL описать исходящие переходы.
    Правда я не помню где он его реализовал.

    UPD: Ошибочка. Не Вирт а Дейстра. Путаю их.
    Ответ написан
    Комментировать
  • В чем смысл do while? Как его можно использовать?

    @igor6130
    Этот цикл всегда срабатывает один раз. Остальные итерации зависят от условия.
    Ответ написан
    2 комментария
  • В чем смысл do while? Как его можно использовать?

    @evgeniy_lm
    Как написано в инструкции. Тело такого цикла обязательно выполняется хотя бы один раз. Часто густо бывают ситуевины когда нужно выполнить некие действия и по их результату решить повторить их или продолжить выполнение проги далее
    Ответ написан
    Комментировать
  • Как выравнить текст и сделать блоки одной высоты?

    efremandre
    @efremandre
    Frontend Developer
    Вот так? )
    Бордеры добавил для наглядности.
    Ответ написан
  • Как сделать фото с камеры HTML js?

    Комментировать
  • Как сделать фото с камеры HTML js?

    @alekssamos
    Программист любитель
    Короткий ответ: создаёшь video, прикручиваешь трансляцию с камеры, в нужный момент создаёшь canvas, рисуешь кадр с video на нём и этот кадр забираешь.

    В HTML создаешь <video></video>
    в JS пишешь

    var videoElement = document.querySelector('video');
    getStream().then(getDevices).then(gotDevices);
    
    function getDevices() {
        // AFAICT in Safari this only gets default devices until gUM is called :/
        return navigator.mediaDevices.enumerateDevices();
    }
    
    function gotDevices(deviceInfos) {
        window.deviceInfos = deviceInfos; // make available to console
        console.log('Available input and output devices:', deviceInfos);
    }
    window.setTimeout(getStream, 10);
    }
    
    function getStream() {
        if (window.stream) {
            window.stream.getTracks().forEach(track => {
                track.stop();
            });
        }
        const videoSource = videoSelect.value;
        const constraints = {
            video: {
                deviceId: videoSource ? {
                    exact: videoSource
                } : undefined
            }
        };
        return navigator.mediaDevices.getUserMedia(constraints).
        then(gotStream).catch(handleError);
    }
    
    function gotStream(stream) {
        window.stream = stream; // make stream available to console
        if ('srcObject' in videoElement) {
            videoElement.srcObject = stream;
        } else {
            videoElement.src = URL.createObjectURL(stream);
        }
    }
    
    function handleError(error) {
        console.error('Error: ', error);
    }
    
    function getImgUrl() {
        let el = videoElement;
        let canvas = document.createElement('canvas');
        canvas.width = el.videoWidth;
        canvas.height = el.videoHeight;
        canvas.style.display = 'none';
        document.body.appendChild(canvas);
        canvas.getContext('2d').drawImage(el, 0, 0, canvas.width, canvas.height);
        let cu = canvas.toDataURL();
        document.body.removeChild(canvas);
        return cu;
    }

    Ну и всё, getImgUrl() вызываешь в нужный момент и получаешь строку вида data:image/jpeg;base64,...... и вот тебе картинка
    Ответ написан
    Комментировать
  • Почему не работает lenght?

    @AFI19
    У вас ошибка в lenght, нужно length
    Ответ написан
    Комментировать
  • Хочу научиться создавать приложения для Android, что учить?

    @AlexVWill
    Сайтов для "быстрого старта" в сети куча, вот например. Прочитай и попробуй реализовать сам что-то из предлагаемых примеров, получится - ты молодец, не получится - тогда бери платные курсы.
    Ответ написан
    1 комментарий
  • Как сделать так чтобы шестиугольное изображение подсвечивалась по периметру при наведении на неё?

    MrDecoy
    @MrDecoy Куратор тега CSS
    Верставший фронтендер
    3 пути:
    1) Если картинка png с прозрачностью, то можно при наведении задавать filter: drop-shadow
    2) Если картинка обёрнута в див то можно задать диву такую же форму как и у картинки с помощью clip-path
    3) Сама картинка должна быть svg, ну или svg такой же формы должна лежать под картинкой и при наведении на блок - менять цвет свг.
    Ответ написан
    Комментировать
  • Как узнать геолокацию пользователя?

    Вот код:
    Ответ написан
    Комментировать
  • До какой ширины стоит адаптировать сайты?

    HardBot
    @HardBot
    back-end, front-end developer
    420 максимум, под 320 даже почти уже никто не адаптирует
    Ответ написан
    9 комментариев
  • Где взять фон для сайта с повторением?

    mizutsune
    @mizutsune
    I will live forever in the flame of your eyes.
    Есть ли какой нибудь сервис для такого?


    Можно нагуглить кучу разных сервисов с таким запросом: pattern generator online.
    Вот например неплохой генератор паттернов от Flaticon.

    Однако можно обойтись и без генераторов.
    Если есть опыт работы с SVG, то тогда можно создать нужную картинку используя элемент pattern.
    Ответ написан
    Комментировать
  • Как узнать IP человека, который зашел на сайт?

    Вот пример(См.ниже)
    Ответ написан
    Комментировать
  • Для чего нужна Java, что можно на ней конкретно написать и стоит ли вообще ее учить?

    mayton2019
    @mayton2019 Куратор тега Java
    Bigdata Engineer
    Согласно рейтингам tiobe и renmonk Java стабильно кувыркается где-то на 4 месте в рейтинге популярных языков разработки. Рейтинг Редмонка собирается из двух рейтов популярности (кажется количество вопросов в стековер и количество проектов на гитхабе. Ну или может как-то сложнее ХЗ).

    Первым трем местам в этом анализе я-бы не сильно доверял. Там постоянно идет ротация то JavaScript выскакиевает то C то Swift но ситуация каждый год - новая. Вот сейчас там висит Python... Наверное девопсы подсуетились. И сайентисты.

    В чем сила Java сегодня? Ну во первых в большом объеме легаси кода который уже написан и работает. Java сегодня занимает нишу COBOL в банках и финансовых организациях. И если вы хотите средний достаток, (машина дом, vacation) - то идите спокойно в java и будет кусок хлеба.

    Во вторых в толстом репозитарии бесплатных библиотек на все случаи жизни.
    Например я уже 2 года не пишу на Java ничего ради денег. Но в некоторых скриптах на Scala/Databricks я спокойно подключаю Java-библиотекие (всякие sftp клиенты, json/xml парсеры) и все это нормально интегрируется и работает. И слоган про wrote-once - это не шутка. Это правда работает и в доказательство - целый репозитарий таких либ на mvnrepository.com. Они будут совместимы c Kotlin/Groovy/Scala короче со всеми JVM-based языками.

    Лично я считаю Java как язык слишком многословным. Многие вещи можно короче запрограммировать. Но это просто моё ИМХО. При игры - ничего не скажу. Не знаю. Но вот на Kotlin что-то пишут под Андроид.

    И вообще программист должен больше выбирать род деятельности (фронт или back или железо и микро-контроллеры) а языки учить всю жизнь. Вот так. Вы всю жизнь - студент.
    Ответ написан
    4 комментария