• Как преобразовать сайт в приложение на iOS бесплатно?

    alsolovyev
    @alsolovyev
    ¯\_(ツ)_/¯ Enjoy life, Eat well & Laugh often
    Изучайте Progressive web app
    Progressive Web App (PWA) — это веб-приложение, которое сочетает возможности сайтов и мобильных приложений. Оно работает в браузере, но при этом может устанавливаться на устройство как приложение, работать офлайн, поддерживать push-уведомления и обеспечивать быстрый отклик за счёт кэширования.
    Ответ написан
    Комментировать
  • Правильная ли архитектура БД?

    1. Я бы ещё раз подумал над неймингом
    2. У тебя тут в каждой таблице дублируются колонки названий для разных языков. Возможно есть смысл сделать отдельную таблицу для переводов разных строчек - по крайней мере так будет проще в будущем новые языки вводить + всё будет централизованно. Это на подумать.

    3. Возможно есть смысл добавить ещё историю изменений, но это на подумать

    4. Не уверен, действительно ли нужно order status как таблицу делать. Администратор должен иметь возможность добавлять новые статусы? Тогда нужно ещё добавлять таблицу с правилами переходов между статусами, чтобы в коде не хардкодить айдишники.

    5. Немного подумать. А всегда ли будет именно доставка еды? Не захочешь ли ты добавить самовывоз?

    6. Зачем в cart product created at и modified at?
    Я могу догадаться до одного варианта, где это может быть полезно, но понимаешь ли ты?

    7. А может ли у одного продукта быть несколько статусов одновременно? Типа и новинка и хит и скидка N%?

    8. Что из себя представляет бонус? Всегда ли он привязан к пользователю?
    Ответ написан
    Комментировать
  • Как отслеживать подключение пользователей к сайту?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Какие есть способы отслеживания подключений, как это делают соцсети?
    Магии не существует. «Соцсети» просто держат флаг активности ещё несколько секунд после разрыва соединения, чтобы обработать ситуацию «обновления страницы».
    Ответ написан
    5 комментариев
  • Как писать запросы к API на стадии разработки, если backend еще нигде не хостится?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    1) Запуск бэкенда локально через Docker для тестирования запросов и интеграции (это нормальная практика?)

    Вполне нормальная практика. А что смущает?
    Ответ написан
    Комментировать
  • Почему сайт загружается быстрее без плагина для кэширования?

    Основных причин две:
    1. У вас сайт может работать быстрее, а у среднего пользователя с другим интернетом, в другой локации и с другим поведением — медленнее.
    2. PageSpeed учитывает множество других факторов, на которые простое серверное кэширование не влияет. У вас может быть хорошее time to first byte, но много тяжёлого js и неоптимальные картинки, например.
    Ответ написан
    Комментировать
  • Как заменить только слово целиком в строке?

    kryamk
    @kryamk
    <?php
    
    // Исходный текст, в котором будем искать и заменять слова
    $field = "
    libero bryan, 
    sit amet adipiscing sem neque sed ipsum.bryan 
    bfringilla mauris sit amet nibh. https://site.com/member/bryan.html?r=nk07w, 
    https://site.com/member/bryan-t.html?r=nk07w. 
    https://site.com/bryan/test.html?r=nk07w Donec bibendum";
    
    // Регулярное выражение для поиска URL и слова 'bryan'
    // - https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
    //   Это паттерн для нахождения URL. Он включает http или https, необязательный www, и остальную часть URL.
    // - (\bbryan\b)
    //   Это паттерн для нахождения слова 'bryan' в тексте. Используем границы слова (\b) чтобы найти точное совпадение.
    //   Скобки вокруг \bbryan\b создают захватывающую группу, которую мы будем использовать в функции обратного вызова.
    $pattern = '/https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)|(\bbryan\b)/';
    
    // Заменяем слово 'bryan' на 'betty', но только если оно не является частью URL
    $field = preg_replace_callback(
        $pattern, // Паттерн для поиска URL и слова 'bryan'
        function ($matches) {
            // Функция обратного вызова, которая вызывается для каждого совпадения
            // $matches - массив, где:
            // - $matches[0] содержит всё совпадение (URL или слово 'bryan')
            // - $matches[1] содержит только слово 'bryan', если оно найдено
            
            // Если $matches[1] существует, это значит, что найдено слово 'bryan' (вторая группа в паттерне)
            // В таком случае заменяем его на 'betty'
            // Иначе возвращаем оригинальное совпадение (это был URL, который не нужно изменять)
            return isset($matches[1]) ? 'betty' : $matches[0];
        },
        $field // Исходный текст, который мы будем обрабатывать
    );
    
    // Выводим результат
    echo $field;
    Ответ написан
    3 комментария
  • Почему не сохраняются изменения при переборе цикла через foreach?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    function arraySquaring($arr)
    {
    -   foreach ($arr as $value) {
    +   foreach ($arr as &$value) {
            if (is_array($value)) {
                $value = arraySquaring($value);
            } else {
                $value **= 2;
            }
        }
        return $arr;
    }

    или так
    function arraySquaring($arr)
    {
    -   foreach ($arr as $value) {
    +   foreach ($arr as $key => $value) {
            if (is_array($value)) {
    -           $value = arraySquaring($value);
    +           $arr[$key] = arraySquaring($value);
            } else {
    -           $value **= 2;
    +           $arr[$key] **= 2;
            }
        }
        return $arr;
    }


    Еще вариант
    function arraySquaring($arr)
    {
        return array_map(function($item){
            return is_array($item) ? arraySquaring($item) : $item ** 2;
        }, $arr);
    }

    function arraySquaring($arr)
    {
        return array_map(fn($item) => is_array($item) ? arraySquaring($item) : $item ** 2, $arr);
    }
    Ответ написан
    2 комментария
  • Как правильно хранить время последнего визита пользователя?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Кардинально ускорить UPDATE не выйдет.

    Если критично время, то лучше класть значение в Redis, а оттуда уже фоновым скриптом переносить в таблицу (если вообще этот шаг нужен, потому что данные жалко потерять).

    Ну или просто сначала отдавать пользователю ответ, а потом в том же скрипте обновлять таблицу.

    Или убрать ON DUPLICATE KEY UPDATE, кидать в таблицу каждый раз новую строку, а потом в фоне её периодически пылесосить от мусора.
    Ответ написан
    1 комментарий
  • Какой тайм-трекер выбрать для фрилансера?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Дружище. У меня для тебя плохие новости. Я тебе советую распрощаться с этой контрой.
    Такого рода менеджмент времени вводят не от хорошей жизни а от плохой. И означает
    он что идет оптимизация ресурсов. И все это очень плохо заканчивается. Люди которые реально
    работают и думают 24/7 о продукте с точки зрения тайм трекинга выглядят не сильно хорошо.
    А те кто умеют тапать хомяка или задней левой ногой шевелить мышкой в фоновом режиме
    - достигают хороших показателей.

    Вобщем беги из этой конторы пока ты психологически еще не выгорел. Ни один нормальный
    работодатель такого обычно не делает.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы nvidia a100 заработала в yandex cloud с драйвером 535 и cuda 12.2?

    @rPman
    У меня только один вопрос, пробовал ли ты устанавливать необходимые версии софта в docker?
    Ответ написан
    3 комментария
  • Что такое AxCMS?

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

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

    @rPman
    бинарные типы данных binary, varbinary или blob потому и бинарные, что к ним не применяются правила символьной трансляции (charset), т.е. к примеру их нельзя сортировать по алфавиту.

    p.s. настоятельно рекомендую трижды подумать, зачем тебе нужно хранить изображения в базе данных, и с высокой вероятностью лучше их хранить в файлах на диске а в базе только имя файла (а можно и имена файлов привести к идентификаторам базы).
    Ответ написан
    Комментировать
  • Какую кодировку выбрать для бд чтобы хранить фото?

    @alexalexes
    В базе данных, обычно, не хранят бинарные данные файлов.
    Кладете на файловый сервер файл, берете путь к этому файлу и записываете в поле таблицы.
    Если очень приспичило какой-то бинарник положить в поле таблицы, то для этого есть binary/varbinary type.
    Но злоупотреблять возможностью записывать безразмерные данные в одно поле не стоит - намучаетесь с бекапами.
    Ответ написан
    Комментировать
  • Какую кодировку выбрать для бд чтобы хранить фото?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Любую. На BLOB кодировка не влияет.
    Но по уму фотографии не хранят в БД. Их записывают как отдельные файлы с уникальными именами, а в базе хранят оригинальное имя файла и путь к файлу.
    Ответ написан
    Комментировать
  • Какую базу данных использовать для хранения метаданных?

    @rPman
    Помимо поиска и чтения, есть вопрос по многопользовательскому доступа к данным, особенно на время записи, атомарные транзакции - одна из причин, почему выбирают сложные реляционные ьд (да это есть и в некоторых nosql).

    Если не нужно следить за целостностью данных и искать по атрибутам, только по идентификатору, то подойдёт любая база данных, даже простое хранение файлов на объект с любой сериализацией данных, современные файловые системы отлично работают с миллионом файлов в каталоге (правда при таких объемах я бы все же советовал норм базу), причем никакая реализация бд не будет давать быстрее доступ чем чтение файла.

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

    mayton2019
    @mayton2019
    Bigdata Engineer
    Основной use-case при работе с любыми данными это "запрос".

    Ты должен задать себе вопрос как я буду эти данные искать? По каким атрибутам?
    Например базы данных семейства key-value почти всегда всем подходят и всем нравятся
    за высокую скорость и дешевизну. Но это - только при условии что вы делаете поиск по ключевым атрибутам.
    Но вы не сможете к ним сделать агрегации (group by).

    Ничего плохого не могу сказать про Mongo. Но загрузи сначала туда хотя-бы сотню тысяч
    ситетических документов и смоделируй нагрузку. Вдруг Монга уже на этом этапе захлебнется
    и не потянет. Получается что твой выбор был неправильный.

    Из личного опыта. Часто выбирают какую-то БД из того что человек (команда) уже раньше
    с ней поработали и уже имеет опыт. И такое реально было и с Ораклом и с MS-SQL. Люди их
    выбирали не потому что они хороши а чаще всего потому что "так привыкли". И десяток
    лицензий были уже давно куплены. Почему-бы не использовать. Заказчик оплатил.
    Так жить проще. Так и живут. И так строят архитектуры.
    Ответ написан
    4 комментария
  • Как запаролить сайт?

    @motcart
    В корень сайта запишите файл .htpasswd в логином и паролем
    Ответ написан
    Комментировать
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    по тому что гладиолус документация?
    Ответ написан
    4 комментария
  • PHP: Почему 'mb_convert_encoding' не конвертирует простую строку?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    - var_dump( $str );
    + echo bin2hex($str);
    Получаем cf f0 e8 e2 e5 f2 20 32 30 31 39 20 cc e8 f0 21
    Открываем таблицу cp1251 и смотрим
    cf - П, f0 - р, e8 - и, e2 - в, e5 - е, f2 - т, 20 - пробел, 32 - 2, 30 - 0, 31 - 1, 39 - 9, 20 - пробел, cc - М, e8 - и, f0 - р, 21 - !
    Привет 2019 Мир!
    Всё вполне сконвертировалось.
    Ответ написан
    Комментировать