Задать вопрос
  • Как организовать умное кеширование MYSQL?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Как всегда, в заголовке одно, а в тексте вопроса совсем другое. И никакое кэширование автору делать на самом деле неохота - это же переделывать всё придется.

    При этом чего именно нужно автору, из вопроса непонятно. То ли проблема с потреблением памяти, то ли скорость запросов, то ли вообще никаких проблем нет, а просто поговорить на с кем.

    Ускорение запросов решается за счет создания индексов. Не "есть индексация", а конкретные осмысленные индексы для каждого используемого запроса. Если конкретный запрос тормозит, ему надо сделать explain, и на основе полученного результата подумать и реализовать индексы.
    При этом нормально индексы работают только если все они помещаются в памяти. А это значит, что по поводу "7 гигов занято" надо не плакать а радоваться.
    Существование "таблиц" для новых и старых сообщений в рамках одной таблицы - это партиционирование, например по дате. Но опять же, сначала надо определиться задачей, которую мы решаем.
    Ответ написан
    7 комментариев
  • Почему не получается задать либо один тип либо другой в typescript?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    В action ты кладёшь функцию onClick с сигнатурой (item: LinkItem) => void, а требуется (data: MobileMegaMenuItem | LinkItem) => void, , т.е. функция которая умеет работать и с тем и с тем. Подразумевается что onClick как раз не умеет и может привести к ошибке, потому и не даёт.

    Используй дженерик чтобы вывести конкретный тип:
    export const useOpenMenuByHash = <Data extends MobileMegaMenuItem | LinkItem>(
        data: Data[],
        action: (data: Data) => void,
        actionRoom?: () => void
    ) => {
      //...
    };
    
    useOpenMenuByHash(data, onClick); // ok

    Ну или кастуй руками:
    useOpenMenuByHash(data, onClick as (d: LinkItem | MobileMegaMenuItem) => void);
    Ответ написан
    4 комментария
  • Как преобразовать число вида 20240617114532 в дату-время?

    @SunTechnik
    Вам должно быть виднее, что там за формат времени у Вас, но, на первый взгляд, это выглядит как объединение без пробелов:
    Год месяц число часы минуты секунды.
    Соответственно Ваш запрос легко превращается в интервал (или два условия больше - меньше)
    Ответ написан
    1 комментарий
  • Самопроверка целостности кода контрольной суммой, как реализовать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Для точного восстановления кода по контрольной сумме последняя должна быть размером с архив этого кода.
    Как правило, если контрольная сумма не совпадает, то просто выдаётся ошибка и запуск оборудования останавливается. Так поступают, например, BIOS'ы компьютеров. Дальше нужно восстановить код из внешнего источника, это дело для сервисного техника, или внутреннего хранилища (если там всё в порядке), такое есть на материнских платах с двумя чипами BIOS.
    Как более сложный вариант - проверять контрольную сумму каждой функции. Если повреждена критическая функция, то останавливать работу, если некритическая, то не вызывать её во время работы.
    Ответ написан
    2 комментария
  • Что такое AxCMS?

    @maksam07
    Стоит ли использовать эту систему? Какие отзывы/рекомендации?

    Смотри. Я понятия не имею что эта за система, но из их сайта можно сделать вывод, что они перестали обновлять свой продукт примерно в 20-21-м году. Ссылка на блог не работает. Ссылка на твиттер ведет на аккаунт, у которого последний пост был в 21-м. Вряд ли этот продукт будет рекомендоваться к использованию.
    Ответ написан
    2 комментария
  • В wordpress дочерние рубрики почему-то попадают вверх в иерархии, а не вниз за другими дочерними рубриками, как исправить?

    v3xx
    @v3xx
    // _ AppSec // Bug Bounty / Legal Hacking
    Привет.

    Задачу тебе поставили максимально бредовую. Первый косяк тебе обозначили, что на странице категории присутствует сама категория. Вопрос: как это вышло? Второй вопрос: куда делась часть /category/ из ЧПУ? Третий вопрос, возможно, главный: как реализован вывод дочерних категорий в родительской, ведь там должны быть опубликованные записи?

    По факту есть какая-то кастомизация твоего сайта или что-то сломалось, "из коробки" описанный функционал так не работает, с установленным Elementor и темой оформления Hello Elementor тоже. Без подробностей реализации это всё будет гадание на кофейной гуще. Можешь, разве что, отключить Elementor и тему сменить на стандартную (twenty*) для диагностики, потому что этот конструктор страниц частенько ломает структуру сайта, как выясняется. И пересохранить структуру ЧПУ в настройках.
    Ответ написан
    Комментировать
  • RDP как его взламывают?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    IP определяются обычным перебором. При отправке на порт RDP нужного запроса, злоумышленник получает hello от сервиса. Дальше - брутфорс логина и пароля. Возможно логин и пароль подслушивают сетевым сниффером в общедоступных сетях. Бывают определённые 0-day уязвимости, которые позволяют зайти, выполнив специальный запрос. Если хотите подробностей - откройте у себя сниффер входящих запросов на RDP порту. Посмотрите - какие запросы к Вам приходят, какие методы при этом используются. Будет интересно )
    Ответ написан
    Комментировать
  • Как грамотно указать источник фото?

    Тебе нужно найти автора/правообладателя, а не просто первый попавшийся сайт.

    Далее уже смотри на условия, по которым автор распространяет картинку - иногда использование/копирование вообще запрещено. Иногда даже ссылаться на оригинал не обязательно.
    Ответ написан
    3 комментария
  • Как грамотно указать источник фото?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос пойдет про авторство картинок/фотографий, когда делаешь пост и берешь картинку из интернета, то нужно обязательно указывать кто авто картинки/фотографии или ссылку на источник

    Не всегда обязательно.
    Будет ли правильным, если я возьму картинку с первого попавшегося сайта, назовём его сайт "А", на котором не будет указано авторство и ссылка на автора, но я в свою очередь, размещу поста в картинкой у себя на сайте и укажу ссылку на источник сайт "А", будет ли правильным моё действие?

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

    P.S. не имеет значения, откуда Вы копируете изображение, имеет значение можно (и как) ли это делать вообще.
    Ответ написан
    Комментировать
  • Возможно ли ухудшение скорости Youtube только на телевизорах?

    ValdikSS
    @ValdikSS
    Кто может понимает что происходит?
    YouTube замедляется на оборудовании ТСПУ. https://zona.media/news/2024/07/12/youtube
    На ТВ оно сильное, скорее всего, из-за отсутствия поддержки протокола QUIC — его замедляют меньше.
    Ответ написан
    1 комментарий
  • Почему такая разница в цене видеокарт 4060?

    xez
    @xez
    TL Junior Roo
    Предположу, что вас интересует не вопрос "почему такая цена", а вопрос "чем они отличаются".

    Насчет "чем отличиются" есть вот такое видео, надеюсь, станет понятнее.
    Ответ написан
    Комментировать
  • Как сделать миграции в django проекте на GitLab?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вопрос похоже поставлен некорректно.
    На гитлабе хранятся только исходники. Там не надо выполнять миграции.
    Создать миграцию - это сделать файл миграции, который будет преобразовывать БД.
    Выполнить миграцию - это применить логику этого файла к конкретной БД.
    Выполнять миграцию вы можете на любой машине, но подключаться при этом должны к конкретной БД на которой хотите применить эту миграцию.
    Обычно к какой БД подключаться указывается в настройках.
    Если у вас есть продакшн-сервер, на котором запущен проект, то миграции делаются (выполняются, применяются к БД продакта) при деплое (релизе) очередной ревизии. Обычно это происходит после успешного слияния текущей рабочей ветки в релизную.
    Есть такой механизм, который называется CI\CD. Он отвечает за обнаружение нового коммита в релизной ветке, сборку продукта (докер-образов, например) и выкатку (остановку старой и запуск на проде новой версии продукта). При этом настроен автоматический запуск миграций.
    Ответ написан
    Комментировать
  • Как на php убрать тег html эллемента, и очистить форму?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    По уровню вопроса конечно понятно что гениальности от кода ждать не стоит, но все же...
    Для начала пару занудных замечаний:
    1)
    if($query = $db->query("SELECT `login`, `password` FROM `admin`")){
    Не стоит выбирать все записи из таблицы, если вам нужна одна, та где логины совпадают. Это в целом плохая практика, но еще хуже когда такой подход будет применен к большой таблице. SQL для этого и придуман чтобы так не делать. Так же, если у вас есть таблица пользователи, не нужно дублировать функционал, перенесите админов туда же, указав им уровень доступа или роль.
    2) пароли в бд должны быть соответствующе зашифрованы, используйте соответствующие функции password_hash() и password_verify() при создании и проверке пароля.
    3) Больше совет, чем инструкция: испльзуйте один стиль обрамления кодовых блоков везде, либо текстовые конструкции типа if - endif, либо везде фигурные скобки. Второе предпочтительнее.

    Что касается собственно вопроса, есть несколько вариантов, самый кривой из которых уже написал сеньор Sergei Parfenov. При неверном логине код просто продолжается формой и вы имеете все данные о проверке, включая правильность/неправильность пароля. Стоит отметить что в данном случае блок проверки логина нужно обрамить проверкой метода запроса и вызывать ее только в случае если метод запроса POST (как это сделать - задание на дом).

    Второй вариант более адекватный, так как первый имеет ряд недостатков.
    1) В начале формы создаем переменные в сессии: $_session['message'] и $_session['old'] с пустыми значениями
    2) В блоке проверки логина $_session['old'] присваиваем значения пришедшие из формы $_POST.
    3) Если в ходе проверки у нас возникли ошибки, пишем сообщение об ошибке в $_session['message'].
    4) Выполняем переадресацию. В форме сначала переносим в переменную $message = $_session['message']??'';; и $_session['message'] очищаем. Тоже самое делаем с $old, не забывая что там обычно массив;
    5) Переносим в поля формы старые значения там где это нужно из $old;
    6) Проверяем что лежит в $message, если там что-то есть - выводим сообщение об ошибке.
    Профит.
    Ответ написан
    Комментировать
  • Как перевернуть наоборот добавленные из бд отзывы?

    rozhnev
    @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    Я думаю что так лучше:
    SELECT `name`, `text`, `date` FROM `reviews` ORDER BY `date` DESC


    Кроме этого, я не советую использовать "root" для подключения к базе!
    Так же не советую выводить пользователю ошибки базы данных. Их следует писать в лог!
    Ответ написан
    Комментировать
  • Как добавить перенос строки на html странице?

    NeiroNx
    @NeiroNx
    Программист
    Заменить на \n на <br/> когда в параграф вставляете.
    Ответ написан
    2 комментария
  • Как заполнить таблицу excel?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Начать нужно с декомпозиции вашей задачи. Разбейте её на более простые подзадачи и решайте их по отдельности.
    Попробуйте решить вашу задачу для одного наименования. Потом решайте отдельно задачу как брать входные данные из таблицы, потом решайте как записывать результаты в таблицу.
    Это уже три отдельные задачи из совершенно разных областей и тем. Да, все три по отдельности и всю задачу в целом способен решить ИИ на текущем этапе. Но вы пришли не к ИИ, а на этом ресурсе есть правила. Здесь нельзя постить задания, только конкретные вопросы.
    Ответ написан
    2 комментария
  • Как можно каждый раз при нажатии на кнопку создавать input, и потом при отправке формы получить данные из всех созданных input'ов через flask?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    Ну генерируйте их через JS с уникальным name и потом отправляйте форму как FormData
    https://learn.javascript.ru/formdata

    Другой вариант - элементы формы доступны через свойство .elements у формы.
    https://learn.javascript.ru/form-elements

    Дополнительные статьи по вопросу:
    https://learn.javascript.ru/forms-submit
    https://learn.javascript.ru/modifying-document
    Ответ написан
    Комментировать
  • Git удалил коммит/ы при переключении веток с помощью checkout?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Git удалил коммит

    Коммиты удалить довольно сложно. И случайно это сделать вы уж точно не сможете.

    Как нормально переключаться, чтобы гит не удалял ничего?

    Очень просто. Перед тем как переключать ветки всегда смотреть git status, чтобы в рабочем каталоге не было несохраненных изменений. Если изменения есть, то их надо закоммитить, т. е. сохранить, либо сбросить, вернув файлы к первоначальному состоянию через restore например.

    вообще 1 лог остался изначальный

    Эта фраза вообще не понятна.

    если созданы новые файлы или переименованы, и ты возвращаешься, то он их не удаляет

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

    @tgarl
    Вроде вам очень хорошо описали что нужно сделать.
    У вас к вашему серверу должен быть в наличии SSH доступ(или sftp ещё некоторые могут подписывать), иногда бывает делают ftp доступ к папке /home/bitrix/ чтобы под одним доступом править все сайты если их несколько. В общем вам нужен доступ к серверу к папке /home/bitrix/
    Далее с помощью любой программы для подключения к серверу(в интернете их море, под виндой по мне самое удобное пользоваться это winScp, но на вкус как говорится) заходите в указанный раздел, внутри создаете если нет .bx_temp, проваливаетесь внутрь и создаете sitemanager, далее на эти папки даете права bitrix, в приведенном примере задание прав указано если использовать консоль
    По мне одна из самых удобных прог-консолей (может просто привык) Putty, но winScp позволяет все мышкой делать, если это удобнее.
    Ответ написан
    Комментировать