Задать вопрос
  • Подбор пароль к хэшу?

    Sanes
    @Sanes
    Я не могу додуматься как сделать расшифровщик хэшей, на некоторых сайтах есть.

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

    zkrvndm
    @zkrvndm Автор вопроса
    Архитектор решений
    Всем спасибо, похоже я нашел решение. На равне с типами запроса GET, POST и другими оказывается существует еще тип запроса HEAD. Этот тип запроса позволяет запросить заголовки ответа, без самого тела ответа.

    Соответственно факт изменения файла можно проверить через сверку заголовка ETag:
    (await fetch('/', { method: 'HEAD' })).headers.get('ETag');

    Заголовок HTTP ответа ETag является идентификатором специфической версии ресурса. Если ресурс по заданному URL изменился, будет сгенерированно новое значение Etag. Поэтому Etag чем-то похож на отпечаток ("fingerprints") и позволяет быстро определить являются ли два представления ресурса одними и теме же.

    https://developer.mozilla.org/ru/docs/Web/HTTP/Hea...
    Ответ написан
    1 комментарий
  • Существует ли, утилита для Linux с выводом программ для их запуска?

    все установленные программы

    В Linux нет такого понятия, как "установить". В принципе любой исполняемый файл в системе - это уже рабочая программа, которую можно вызывать. Для удобства только они добавляются в $PATH
    Например:
    1. Vim
    2. MIDNIGHTCOMMANDER
    3. ...

    В таком виде никак не получится, так как в Linux нигде не сохраняется человекочитаемое название.

    Так что в целом список всех установленных программ - это ls
    А для запуска нужной достаточно ввести её имя.

    Но такой список вам никакой пользы не даст, так как он будет просто огромный.
    Вот например что выдаёт ls /bin:
    .                                    h2ph                               sbverify
     ..                                   h2xs                               scp
     NF                                   hd                                 screen
     VGAuthService                        head                               screendump
     X11                                  helpztags                          script
    '['                                   hexdump                            scriptreplay
     aa-enabled                           host                               scsi_logging_level
     aa-exec                              hostid                             scsi_mandat
     ab                                   hostname                           scsi_readcap
     add-apt-repository                   hostnamectl                        scsi_ready
     addpart                              htcacheclean                       scsi_satl
     addr2line                            htdbm                              scsi_start
     apport-bug                           htdigest                           scsi_stop
     apport-cli                           htop                               scsi_temperature
     apport-collect                       htpasswd                           sdiff
     apport-unpack                        hwe-support-status                 sed
     appres                               i386                               see
     apropos                              i386-tcc                           select-editor
     apt                                  iconv                              sensible-browser
     apt-add-repository                   id                                 sensible-editor
     apt-cache                            info                               sensible-pager
     apt-cdrom                            infobrowser                        seq
     apt-config                           infocmp                            serialver
     apt-extracttemplates                 infotocap                          setarch
     apt-ftparchive                       install                            setfont
     apt-get                              install-info                       setkeycodes
     apt-key                              instmodsh                          setleds
     apt-mark                             ionice                             setlogcons
     apt-sortpkgs                         ip                                 setmetamode
     ar                                   ipcmk                              setpci
     arch                                 ipcrm                              setpriv
     as                                   ipcs                               setsid
     at                                   iptables-xml                       setterm
     atq                                  ischroot                           setupcon
     atrm                                 iscsiadm                           sftp
     automat-visualize3                   jaotc                              sg
     awk                                  jar                                sg_bg_ctl
     b2sum                                jarsigner                          sg_compare_and_write
     base32                               java                               sg_copy_results
     base64                               javac                              sg_dd
    ... дальне не влезло в лимит по символам.
    Ответ написан
    Комментировать
  • Как корректно подставлять текст к ссылке?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как можно реализовать это?
    Если я правильно понял, вам нужно сравнение без кейс сенситив.
    Будем считать что у вас адекватный архитектурный подход и для хранения данных используется БД. Тогда вариантов два:
    1) Магия strtolower(). При регистрации все данные перегоняем в нижний регистр и так и записываем. Соответственно перед выборкой тоже делаем искомой строке strtolower().
    2) Задаем таблице кодировку с постфиксом _ci, то есть кейс инсенситив. Тогда выборка будет игнорировать регистр, и в выборке GazEs12 = gazes12.
    Ответ написан
    7 комментариев
  • Как узнать свой пароль для sudo юзера в ubuntu?

    @pfg21
    ex-турист
    от тебя требуется ввести пароль для юзера someuser

    специальная фишка sudo для того чтобы не светить всяким пользователям пароль root.
    Ответ написан
    6 комментариев
  • В каких случаях нужно регистрировать стили(WordPress)?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Регистрация нужна для корректной работы скриптов и стилей, которые подключаются с зависимостями. Например, скрипт jquery уже зарегистрирован в WordPress, но по умолчанию он не выводится. Если какой-то плагин или вы в функцию wp_enqueue_script() третьим параметром передадите зависимость от скрипта jquery, то сначала подключится он, после него ваш скрипт

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

    Когда ты делаешь новую фичу, ты создаёшь специально для неё новую ветку.
    Вот в неёи пуш, даже если ещё не закончил
    Ответ написан
    4 комментария
  • Как упростить if выражение в JavaScript?

    Alexandroppolus
    @Alexandroppolus
    кодир
    https://developer.mozilla.org/ru/docs/Web/JavaScri...

    let today = [yearToday, monthToday, dayToday].map(s => s.padStart(2, '0')).join('-')
    Ответ написан
    1 комментарий
  • Какой стек технологий лучше всего подойдет для работы с объемными базами данных?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    исходя из вышеизложенного, какой бы стек технологий вы бы выбрали как разработчик чтобы решить вышеописанную задачу?

    Для начала немного контекста - 2 важных примечания:
    1) Описанная задача решается на любом упомянутом стеке, + еще десяток возможных вариантов (Java/Spring, питон, нода, дотнет, голанг и т.д.).
    2) Быстродействие системы зависит от ее самой медленной части, и в 95% случаев самая медленная часть - БД, просто в силу специфики работы: много данных со сложными связями, выборки с сортировкой и фильтрацией из большого массива и вот это все, в то время как язык бэкенда в основном выполняет достаточно простые манипуляции с уже готовыми наборами данных (за редчайшими исключениями, которых в вашем кейсе нет, или они не описаны в вопросе).

    В вашем случае:
    - база можно сказать совсем небольшая, до 1 миллиона записей условный мускуль ворочает весьма шустро, если железо соответствует.
    - задача сбора метрик достаточно тривиальная, особого ума в сохранении действий пользователя не надо, бОльшая часть работы - вывод в красивые графики и написание быстрых запросов с хитрыми выборками/агрегациями, немного пошаманить с формулами, возможно делать какие-то сводные выборки с денормализованными результатами для отчетов и прочие мелочи. Работа не сложная, но нудная, и ее много.

    Насчет стоимости и условий:
    полный самопис 150к+ (я это не тяну) или же сайт на Laravel +MySQL а дальше варьируется.
    полный самопис - либо маркетинг, либо идиотизм, писать на голом языке не будет ни одна нормальная студия, в принципе в данном случае либо используется фреймворк и заказчику преподносится как "сделано вручную программистами девственниками под светом серебряной луны", либо разработчики идиоты, мнящие себя круче всех (нет). В первом случае это то же что и "сайт на Laravel +MySQL" (норма и стандарт для среднего уровня студий), во втором - развод на мани на пустом месте и попытка продать г**но в обертке "иксклюзивнасти".

    По цене - на сегодняшний день, если я не ошибаюсь, 150к деревянных это +- 1000уе. Цена приемлемая за нормальную работу, если найдете дешевле "на Laravel" - думаю будет вообще ок. Опять же, цены штука такая, кто-то за копейки сделает хорошо, кто-то за дорого каку сляпает. Влияет так же регион, понятно что в Мск цена будет серьезно больше чем в условном Челябинске...

    Важный момент - нормальное ТЗ в разы упрощает как поиск исполнителя, так и оценку работы. Я бы на вашем месте погрузился именно в тему создания качественного ТЗ, нежели в дебри современных технологий.

    UPD:
    проект планируется на 100 к+ посетителей в месяц...
    предупреждают что если аудитория достигнет условных 100 тысяч в месяц Лара начнет потихонечку задыхаться от нагрузки,
    ок, пусть будет 200к для наглядности.
    В среднем, если это маркетплейс, то постоянных посетителей будет не много, думаю около 10%, так что ими можно пренебречь. Условно - 200к / 30 дней = 6600 в сутки, при активных 10-12 часах посещения это ~600 в час. Пусть на 1 посетителя будет 5 запросов страниц, это 600*5=3000 в час = 50 в минуту или менее 1 запроса в секунду.
    Даже если умножить это на 30 (допустим такая пиковая нагрузка), 30rps вообще "ниачем". Не знаю кто там вам считал то это проблема, любое современное железо среднего уровня вытягивает без напряга.
    Ответ написан
    2 комментария
  • Как скачивать большие файлы по ссылке php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Правильное решение - запускать консольный скрипт в отдельном потоке, тогда ждать ничего не надо, и таймлимит на консольные приложения отсутствует.
    Ответ написан
    3 комментария
  • Как задать второе значение переменной если 1 не найдено?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    $city = $gorod ?? 'Текст';
    Ответ написан
    1 комментарий
  • Как добавить отдельные классы для каждого объекта в цикле while?

    @Vic87
    Конечно, не присваиваются. $classes[$i] для $i > 4 у вас не определены. Ессно, что класс будет пустым.

    Не думали пойти другим путем, без заморотов с присвоением класса каждому посту? Например, используя псевдокласс :nth-child и через него реализовать особенности верстки. Тогда вывод постов можете делать без всякого гимора, обычным порядком.
    Ответ написан
    Комментировать
  • Что хранит в себе данная функция?

    @alekcena
    Нелинейный наставник
    reduce / метод для работы с масивами. Он принимает 1 аргументом функцию. 2м accumulator.)
    В accumulator - содержится промежуточное значение между операциями
    Функция должна реализовывать 2 аргумента( accumulator, новое значение)
    Это своего рода короткая запись для цикла с лишнем объявлением переменной.
    let allBudget = 0;
    for(let i = 0; i < people.length; i++){
        allBudget += people[i].money;
    }

    Классический js можно всегда посмотреть на этой доке.
    Там чаще всего приводятся примеры https://developer.mozilla.org/ru/docs/Web/JavaScri...
    Ответ написан
    Комментировать
  • Как сделать регулярное выражение чтобы получить часть строки после определенного слова?

    Stalker_RED
    @Stalker_RED
    Регуляркой как-то так: /\?(.*)/
    https://regex101.com/r/5rpoUX/1/
    Потом можно разбить строку на пары по знаку & и потом каждую пару разбить на ключ и значение по знаку =.

    Но гораздо лучше воспользоваться встроенным в JS интерфейсом URL:
    const url = new URL('https://mydomen.ru/category/search?area=32&city=31');
    console.log('host', url.host);
    console.log('search', url.search);
    const city = url.searchParams.get('city');
    console.log('city', city);
    Ответ написан
    Комментировать
  • Почему вылетает ошибка агента битрикс?

    @PetrPo
    Предположу, что вызывается $USER->GetID(), в документации указано, что Переменная $USER в агентах отсутствует.. По всей видимости, в этом модуле есть событие на добавление элемента инфоблока, в котором вызывается $USER->GetID() и т.к. $USER=null, а не объект класса CUser получаешь ошибку.
    Ответ написан
    Комментировать
  • Почему биндить в PDO надо обязательно переменную?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну вообще-то в сообщении об ошибке всё сказано. C bindParam можно использовать только переменные. Потому что биндинг идёт по ссылке (by reference). А на строку, вписанную прямо в коде, ссылку не поставишь. В этом случае надо использовать другой метод
    $b=$pdo->prepare(" INSERT INTO `main` SET tel=:tel");
    $b->bindValue(":tel", '79998887766');

    или вообще передавать данные сразу в execute():
    $pdo->prepare(" INSERT INTO `main` SET tel=:tel")->execute(["tel" => '79998887766']);

    и всё будет работать
    Ответ написан
    3 комментария
  • Почему не работает команда в exec(), но работает, если просто ввести ее в консоли вручную?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если при выполнении exec() возникает ошибка, то она выводится в stderr.
    Надо просто прочитать её, там будет написано, почему не работает.
    В частности, чтобы получать весь вывод кроновских команд на почту, в том числе и ошибки, надо написать в начале крон файла MAILTO=свойемейл

    Если есть проблемы с чтением stderr, то можно добавить перенаправление в stdout, записать его в переменную и дальше уже направлять по своему усмотрению
    $out = exec('cd /path && mysql -u root < "/path/my-sql.sql" 2>&1');
    log_error($out);
    Ответ написан
    Комментировать
  • Как помень class всем элементам данного class?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    Зачем вам javascript?

    Ответ написан
    Комментировать
  • Как вывести конкретное пользовательское поле в news.list?

    Rucklless
    @Rucklless
    если нижний код из news.list то почему там $arResult, а не $arItem? Как в верхнем варианте. Там же $arResult в foreach перебирается как $arItem.

    Если я правильно помню...

    <?if(!empty($arItem["DISPLAY_PROPERTIES"]["SUB_HEADER"]["VALUE"])):?>
        <?=$arItem["DISPLAY_PROPERTIES"]["SUB_HEADER"]["VALUE"]?>
                       <?endif;?>
    Ответ написан
    Комментировать