Задать вопрос
  • Индикатор загрузки при запросах является обязательным?

    DevMan
    @DevMan
    просто интерактив: дабы пользователь понимал что что-то происходит, а не приложение зависло.
    Ответ написан
    Комментировать
  • Как правильно установить Let’s Encrypt, если Nginx - балансировщик, а сам сайт на IIS?

    megafax
    @megafax
    CTO in MarTech
    Просто добавьте
    location ^~ /.well-known/acme-challenge/ {
    	root /var/www/_letsencrypt;
    }

    в директиву с 80 портом. Таким образом у Вас IIS даже не будет знать что он с сертификатом (ему и не надо). А проверяющие файлы certbot будт складывать в /var/www/_letsencrypt на убунтовой машине
    Ответ написан
    Комментировать
  • Как реализовать захват с зеркальной камеры (dslr)?

    Kalombyr
    @Kalombyr
    Обычно, есть какое-либо API, у меня SONY альфа, там можно практически что угодно творить с ней.
    Так же, обычно, у них есть HDMI выход, так что может через плату видеозахвата? Тогда без особых проблем сможете с "любой", где есть выход без использования зоопарка API камер.
    Ответ написан
    3 комментария
  • Как вникнуть в ES2016, ES2017, ES2018?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Посмотрите в Википедии. Ну и Гугл тоже может помочь, как бы это оскорбительно и занудно ни звучало.

    Но вы не торопитесь юзать новые фичи. Не все оперативно обновляют свои браузеры. Так что ES2016 лучше начинать юзать в 2021, ES2017 - в 2022 и т.д. В этом плане ES2015 исключение, слишком крутой скачок, а дальше хоть трава не расти.
    Ответ написан
    2 комментария
  • Как реализовать permissions для отдельных объектов модели?

    @FulTupFul
    class Action:
        class Meta:
            permissions = (("can_something", "что-то может"),)

    Сохраняем в базу
    python manage.py makemigrations <app>
    python manage.py migrate

    В нужном месте проверяем права
    action.has_perm("can_something")
    Ответ написан
    Комментировать
  • Что такое web-маяки и как их искать?

    Stalker_RED
    @Stalker_RED
    https://en.wikipedia.org/wiki/Web_beacon

    Не совсем понятно зачем их искать. Вы их потеряли?
    Ответ написан
    2 комментария
  • Как правильно учить Javascript?

    @davex69
    Сейчас на Hexlet проходит интересный курс по Java Script. Он чисто об особенностях языка. Думаю, будет интересно.

    Ваша проблема, как я понял, Вы не знаете, что делать с полученными знаниями. Тогда поставьте себе цель какую-то, например, написать змейку или тетрис. Попробуйте отправить заявку на вакансию js программиста и попросите тестовое задание.

    Drink coffee write JavaScript :-)
    Ответ написан
    Комментировать
  • Зачем ботов заворачивают во Flask (как пример)?

    @hail3b
    От http вы получите много готовых решений. Таких как, масштабирование, балансировку, мониторинг, следовательно стабильность, производительность, ускоренное решение проблем.
    Ответ написан
    5 комментариев
  • Зачем ботов заворачивают во Flask (как пример)?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Чтобы вместо long-polling использовать http call back, например) хотя пилить ботов в таком виде на своем сервере все-равно мазохизм
    Ответ написан
    Комментировать
  • Как правильно сделать хостинг на сервере?

    Jump
    @Jump
    Системный администратор со стажем.
    Как правильно сделать хостинг на сервере?
    Пригласить системного администратора.
    Ну или самому установить ОС и поднять веб сервер, если есть необходимые знания.

    Насколько я понимаю если использовать Node.js или c#, то это уже скорее веб-приложение, чем сайт.
    Сайт это одна или несколько страниц с информацией доступные в сети интернет. От того какие технологии и инструменты вы используете его название не меняется.
    Веб приложение это программа у которой графический интерфейс реализован в виде вебстраницы.

    а как и что используется для запуска веб-приложений на сервере?
    А просто запустить их вас не устраивает? Обязательно что-то использовать?

    какие есть аналоги apache
    nginx
    что использовать для обеспечения безопасности на сервере?
    нормального админа.
    Ответ написан
    Комментировать
  • Как сделать шапку как у юлы?

    SmthTo
    @SmthTo Куратор тега CSS
    Все перепёлки мира будут оплакивать мою смерть.
    Ну ОК, конечно, но:
    1. Я не понимаю, почему надо везде использовать Bootstrap и страдать, когда что-то внезапно на нем не выходит.
    2. Я не понимаю, почему нельзя посмотреть код того, как сделано это на самом сайте «Юлы».

    А-ля так:
    Ответ написан
    6 комментариев
  • Подключение к базе данных MySql, как правильно и современно?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос хороший, но неправильно сформулирован.
    Поскольку тут на самом деле два вопроса - какой драйвер использовать и уже потом - как правильно соединяться.
    Ответ на первый вопрос очевиден. Если выбирать из mysql_connect, mysqli и PDO, то достаточно зайти на страницу мануала, посвященную каждому варианту, и посмотреть, что там написано. Ну или попробовать использовать в своем коде и посмотреть что получится.

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

    Теоретически, можно использовать mysqli. Но не нужно. Потому что это низкоуровневый драйвер и пользоваться им без подготовки очень неудобно. Но если вот прям так приспичило, то вот как правильно соединяться используя mysqli

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

    Но правильным ответом, если выбирать из перечисленных трех, будет PDO. Здесь тоже не так просто, поэтому смотрим как правильно соединяться используя PDO - учитывая те же ключевые моменты, которые указаны выше.

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

    Пароль в базе данных не шифруется а хэшируется. Делается это с посощью функции password_hash
    Ответ написан
    3 комментария
  • Почему так странно ищет substr?

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

    Во-вторых переменные $posnamevalstart и $posnamevalend у вас имеют одинаковые значения. Раз вы ищете в обеих переменных одинаковые значения, то нужно смещать начальную точку:
    $posnamevalend = mb_strpos($findstr, "\"", $posnamevalstart + 1);

    В-третьих третьим параметром в функции substr() передается ДЛИНА ВОЗВРАЩАЕМОЙ СТРОКИ. Значит нужно написать эту строку следующим образом:
    $namevalue = mb_substr($findstr, ($posnamevalstart + 1), ($posnamevalend - $posnamevalstart - 1));

    Ну и самое главное - зачем вы вообще это делаете? Если просто понять как работать с strpos() и substr() то окей. А так у вас там обычная сериализованная строка (только почему-то обрезанная вами), которая представляется в массив функцией unserialize()
    Ответ написан
    6 комментариев
  • Где сейчас тусуются серьезные PHP программисты?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Завсит от цели, для чего это спрашивается.

    Если чтобы поприставать с нубскими вопросами - то нигде.
    Если чтобы почитать умных мыслей - РНР дайджест на Хабре прекрасно суммирует все, что было написано за две недели. У меня например никогда не хватает времени, чтобы прочесть всё. Куда больше-то - я уж и не знаю.
    Если чтобы поучаствовать в серьезном прокете - на гитхабе, выбирай любой.
    Если чтобы послушать интересные доклады и пообщаться вживую - то конференции.
    Если интересует внутренне устройство языка - то php internals.
    Если интересует, что пишут пхп селебрити про что угодно, кроме программирования - то твиттер (Расмус показывает картинки из аэропортов и роботов, которых собирает его сын, Сара постит котиков - и так далее).

    Где точно не тусуются:
    Тостер и всякие подобные ресурсы типа стаковерфлоя.
    Ну то есть специалиста можно найти, если поискать, но концентрация будет гомеопатическая, если учитывать количество восторженных щеночков, которые увидели язык вчера, и спешат срочно поделиться уже накопленным багажом знаний.
    Чаты. Телеграм, дискорд - вот это вот все.
    Самая адовая трата времени, которая в принципе бывает в жизни.
    Опять же, люди пишут о чем угодно, кроме программирования, и ради пары полезных строчек надо убить весь день.
    Ответ написан
    4 комментария
  • Можно ли спарсить Json с не экранированными кавычками?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Можно попробовать исправить поломанный JSON.
    Примерно так, но это не покрывает 100% случаев из вашего вопроса
    <?php
    $str = '{"name": "my "name"", "value": "123456789"}';
    
    function fixJSON($str) {
        $len = strlen($str);
        $result = '';
        $space = '';
        $mode = 0;
        for($i=0;$i<$len;$i++){
            $c = $str[$i];
            switch ($mode) {
                case 0: //вне строки
                    if ($c == '"') $mode = 1;
                    $result .= $c;
                    break;
                case 1: //внутри строки
                    if ($c == '"') {
                        $mode = 3;
                        $space = $c;
                        break;
                    }
                    if ($c == '\\') $mode = 2;
                    $result .= $c;
                    break;
                case 2: //сразу после слеша (игнорим один любой символ)
                    $mode = 1;
                    $result .= $c;
                    break;
                case 3: //была кавычка внутри строки
                    if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
                        $space .= $c;
                    elseif ($c == ',' || $c == '}' || $c == ']' || $c == ':') {
                        //вероятно был конец строки (шанс 99%)
                        $mode = 0;
                        $result .= $space.$c;
                    } else {
                        //мы остались внутри строки на 100%. Экранируем
                        $mode = 1;
                        $result .= '\\'.$space;
                        $i--; //уходим назад, т.к. вдруг это снова кавычка
                    }
                    break;
            }
        }
        return $result;
    }
    
    echo(fixJSON($str)); //{"name": "my \"name\"", "value": "123456789"}
    ?>

    Но лучше исправить то место, которое приводит к поломке JSON, чтобы оттуда к вам сразу нормальные строки приходили, а не костыли изобретать.

    P.S.
    Более совершенный и более упоротый вариант
    <?php
    $str = '{"say": ""my name", hi", "value": "123456789"}';
    
    function fixJSON($str) {
        $len = strlen($str);
        $result = '';
        $space = '';
        $mode = 0;
        for($i=0;$i<$len;$i++){
            $c = $str[$i];
            switch ($mode) {
                case 0: //вне строки
                    if ($c == '"') $mode = 1;
                    $result .= $c;
                    break;
                case 1: //внутри строки
                    if ($c == '"') {
                        $mode = 3;
                        $space = $c;
                        break;
                    }
                    if ($c == '\\') $mode = 2;
                    $result .= $c;
                    break;
                case 2: //сразу после слеша (игнорим один любой символ)
                    $mode = 1;
                    $result .= $c;
                    break;
                case 3: //была кавычка внутри строки
                    if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
                        $space .= $c;
                    elseif ($c == '}' || $c == ']') {
                        //вероятно был конец строки (шанс 99%)
                        $mode = 4;
                        $space .= $c;
                    }
                    elseif ($c == ',' || $c == ':') {
                        //вероятно был конец строки (шанс 90%)
                        $mode = 5;
                        $space .= $c;
                    } else {
                        //мы остались внутри строки на 100%. Экранируем
                        $mode = 1;
                        $result .= '\\'.$space;
                        $i--; //уходим назад, т.к. вдруг это снова кавычка
                    }
                    break;
                case 4: //после спец символа
                    if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
                        $space .= $c;
                    elseif ($c == ',') {
                        //был конец строки с шансом 99.99%
                        $mode = 0;
                        $result .= $space.$c;
                    } else {
                        //внтури строки на 100%
                        $mode = 1;
                        $result .= '\\'.$space;
                        $i--;
                    }
                    break;
                case 5: //после запятой
                    if ($c == ' ' || $c == '\n' || $c == '\t' || $c == '\r')
                        $space .= $c;
                    elseif (preg_match('/[0-9"-]+/', $c)) {
                        //был конец строки с шансом 99.9%
                        $mode = 0;
                        $result .= $space;
                        $i--;
                    } else {
                        //внтури строки на 100%
                        $mode = 1;
                        $result .= '\\'.$space;
                        $i--;
                    }
                    break;
            }
        }
        if ($mode>2) $result .= $space;
        return $result;
    }
    
    echo(fixJSON($str)); //{"say": "\"my name\", hi", "value": "123456789"}
    ?>
    Но всегда можно в строку засунуть другой JSON и никакой конечный фиксер не справится с такой глубиной.
    Ответ написан
    Комментировать
  • Есть ли какая-то библиотека реализующая подобное?

    Robur
    @Robur
    Знаю больше чем это необходимо
    Библиотеки не знаю (и сомневаюсь что есть - очередных придумок очередного дизайнера куда больше чем тех кто заморочится это реализовать).
    Реализовать проще всего можно на canvas или svg. Скорее всего если нацепить нердовские очки и сильно заморочиться то и на css тоже.
    Ответ написан
    Комментировать
  • Как избавиться от переносов текста?

    @FulTupFul
    Сохраните текст в отдельных текстовых файлах, и просто читайте их когда это понадобится.
    with open("success.txt", "r") as f:
        success_text = f.read()
    Ответ написан
    Комментировать
  • Как вместо таймера прописать дату?

    coderisimo
    @coderisimo
    У вас ведь есть секунды?
    $seconds = time()-$deposits['unixtime'];

    А сколько секунд в сутках ? 86400
    Значит если вы разделите все ваши секунды на 86400 (отбросив все, что после запятой) , то . получите дни. Если же получилось меньше единицы (типа 0.4545) - напишите "осталось меньше одного дня"
    Ответ написан
    4 комментария
  • Почему метод array.push в цикле while не добавляет значения в массив?

    rockon404
    @rockon404
    Frontend Developer
    const a = tns.map(el => el.type);

    По вашему коду:
    1. Условие tns[i] == !undefined возвращает false
    2. Выражение [i]['type'] возвращает undefined.
    Ответ написан
    3 комментария
  • Как установить PHP на Win отдельно для Apache и Nginx?

    dark_tke
    @dark_tke
    Помогли? Отметь решением!
    1. Ставь виртуальную машину с linux (ubuntu server например для начала)на борту. 98% всех систем с которыми ты будешь работать именно на базе linux, и научиться настраивать это нормально в linux окружении намного важнее, чем под виндой.
    2. Можно сделать и через Apache и через nginx один экземпляр php. Также можно использовать связку Nginx + Apache + PHP, так как nginx может быть просто проксирующим сервером. Но как по мне, лучше налечь на изучение именно nginx, но всех сколько либо крупных проектах Apache не используют без крайней на то необходимости.

    Бонусный вопрос: Использовать можно. Настраивается через nginx
    Ответ написан
    4 комментария