Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос

VoRoN1999

  • 0
    вклад
  • 49
    вопросов
  • 2
    ответа
  • 100%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как правильно написать запрос при помощи Query Builder?

    Fragster
    Антон Антон @Fragster
    помогло? отметь решением!
    Предлагаю переделать структуру и денормализовать данные. При получении ачивки записывать в какую-то таблицу признак необходимости пересчета для пользюка, асинхронно пересчитывать по расписанию раз в минуту или с помощью очередей. Хотя если пересчет делается меньше условной полусекунды, можно и синхронно при получении ачивки это делать. Хранить топ три можно в виде json поля в той самой таблице (как и баллы). Каждый раз при обновлении страницы делать столько джоинов ради этого слишком накладно, очень большое соотношение read/write.
    Ну а получать это все не через query builder, а с помощью eloquent и отношений.
    Ответ написан 28 февр.
    2 комментария
    2 комментария
  • Подойдет ли Docker для следующих задач?

    vabka
    Василий Банников @vabka
    Токсичный шарпист
    https://www.docker.com/blog/containers-are-not-vms/
    Докер предназначен для развёртывания приложений, а не предоставления доступа к виртуальным машинам.

    1) Возможность подключаться по ssh, ftp с любого ПК в одной локальной сети.

    Просто любой гипервизор. Хоть hyper-v, хоть vmware
    2) Возможность сделать копию текущего состояния и развернуть на другом ПК со всеми файлами БД и.т.д. (Не в текущей локальной сети)

    Как в п1. С докером такое сложно будет организовать.
    3) Возможность работать с nginx, apache, npm, php, python, mysql (это если выбрать докер, то чтобы все это было в одном контейнере)

    Запихнуть всё в один докер контейнер - это достаточно серьёзные пляски с шелл-скриптами будут.
    А на виртуалке элементарно.
    4) Быстрое обновление до последних версий вышеуказанных модулей. (Как у докера. Указал в конфиге версии и собрал контейнер по новой)

    sudo apt update && sudo apt upgrade

    В общем тебе нужна либо нормальная виртуалка, либо менять подход, который ты будешь использовать.
    Например под твои задачи вполне должен подходить k8s, но тогда придётся менять подход, ибо никакого подключения по ssh и разделения одной "машины" между несколькими пользователями там не будет.
    Ответ написан 28 февр.
    2 комментария
    2 комментария
  • Как заменить "." на "," по условию?

    rozhnev
    Slava Rozhnev @rozhnev Куратор тега PHP
    Fullstack programmer, DBA, медленно, дорого
    <?php
    $search = "Диагональ 17,6";
    
    echo preg_replace(
    		'/(\d),(\d)/', '$1.$2', 
    		$search
    ); //Диагональ 17.6


    PHP preg_replace
    Ответ написан 18 февр.
    Комментировать
    Комментировать
  • Как правильно настроить email рассылку в Laravel?

    spaceatmoon @spaceatmoon
    Вам в любом случае надо использовать специализированный сервис доставки писем. Ваше количество попадает только под бизнес аккаунты. Выбирайте необходимый тариф и шлите сразу 1000 писем, здесь проблем нет.
    Ответ написан 29 янв.
    Комментировать
    Комментировать
  • Как правильно настроить email рассылку в Laravel?

    JhaoDa
    JhaoDa @JhaoDa
    LaravelRUS Team
    1. Если ты делаешь рассылку не через сервисы типа Mailchimp, Sparkpost etc, а с ящика а-ля voron1999@gmail.com, то тебя забанят с вероятностью 99% даже за 10 писем.

    2. Некоторые упомянутые сервисы так же имею лимит типа «N писем в минуту» или «N адресов в копии».

    3. Ограничение из п. 2 решается механизмом rate limiting (есть в ларавел с 6.х) или поиском сервиса с большими лимитами или повышением лимитов за деньги/через поддержку.
    Ответ написан 29 янв.
    1 комментарий
    1 комментарий
  • Как правильно написать регулярку?

    Дмитрий @2fox
    |^/test/[^/]+/$|

    |/test/[^/]+/$|
    Ответ написан 27 авг. 2021
    Комментировать
    Комментировать
  • Как правильно написать регулярку?

    Марк @yourbatya
    Разрабатываю разработки
    /^\/test\/.+\/$/
    Ответ написан 27 авг. 2021
    Комментировать
    Комментировать
  • Как правильно написать регулярку для nginx?

    dodo512 @dodo512
    location ~ ^/(test/[^/]+)/test2/$ {
        return 301 /$1/;
    }

    Или

    rewrite ^/(test/[^/]+)/test2/$ /$1/ permanent;
    Ответ написан 24 авг. 2021
    2 комментария
    2 комментария
  • Как правильно получить дату?

    mletov @mletov

    Я отправляю post запросом дату в формате: Thu Oct 01 2020 00:00:00 GMT+0400 (+04)
    Вывожу $_POST приходит: 2020-09-30T20:00:00.000Z
    Форматы меня устраивают, но проблема в том, что всегда вычитается 1 день на сервере.


    В данном случае не 1 день, а 4 часа, посмотрите внимательно на время.

    Сказывается разница в часовых поясах между сервером и клиентом
    Условно говоря, человек из Тбилиси с часовым поясом GMT+0400 (+04) отправляет данные на сервер с часовым поясом Дублина GMT+000 (+0). И по дублинскому времени это будет на 4 часа меньше. Но по факту это будет одно и то же время.

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

    Введите в гугле "convert datetime from one timezone to another php"

    2020-09-30T20:00:00.000Z - это формат ISO 8601

    Если конвертнуть 2020-09-30T20:00:00.000Z в дату, то будет 2020-09-30T23:00:00+03:00 (по Москве) или 2020-10-01T00:00:00+04:00 (по Тбилиси)

    Поиграйтесь с конвертером
    https://dencode.com/en/date/iso8601
    Ответ написан более года назад
    9 комментариев
    9 комментариев
  • Как правильно написать запрос к БД?

    trapwalker
    Сергей Паньков @trapwalker
    Программист, энтузиаст
    Ну приджойньте table2 трижды под разными алиасами и будет вам разом три коэффициента.
    В чем проблема-то?
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Как правильно написать запрос к БД?

    Андрей @AndryG
    Если я правильно понял вот это все нагромождение id :)

    select 
     a.userId,
     sum(k1.val * k2.val * k3.val) points 
    from aciv a
     join users on u.userId = a.userId  -- эта строка вроде как и не нужна, если нут других ограничений по users
     join kof k1 on a.kof1 = k1.id
     join kof k2 on a.kof2 = k2.id
     join kof k3 on a.kof3 = k3.id
    group by a.userId
    order by 2 desc
    limit 5


    Запрос будет тяжелый, ибо без пересчета всех данных нужные не определить.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Какую библиотеку можно использовать для изменения ФИО по падежам?

    nokimaro
    nokimaro @nokimaro
    Меня невозможно остановить, если я смогу начать.
    https://github.com/petrovich/petrovich-php
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как добавить папку в gitignore?

    moonbow @moonbow
    QA
    Попробуйте таким способом: в командной оболочке гита - git rm --cached app
    используется для удаления файла (в данном случаи папки app) из индекса, оставляя его при этом в рабочем каталоге
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как импортировать каталог с ТП в бириксе?

    rpsv
    Илья @rpsv
    делай либо хорошо, либо никак
    ТП не связываются с товарами, потому что изменился ИД самих товаров, поэтому привязок нет.
    Пройдитесь скриптом приведите в соответствия идентификаторы (насколько помню внешний код после импорта хранит ид оригинального элемента, но это не точно). Если там хранятся гуиды (обменивались с 1С), то еще лучше по ним проще сопоставить
    -
    А вообще надежнее SQL дамп переносить, если другой сервер "голый"
    -
    Как вариант еще посмотрите в сторону https://github.com/andreyryabin/sprint.migration , в новых версиях появился импорт элементов
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как защитить get маршруты?

    jazzus @jazzus
    Если закрыть сам переход юзера по маршруту и просмотр json то сделать middleware isAjax c проверкой
    if (!$request->ajax()) {
     abort(404);
    }
    return $next($request);

    При попытке зайти отдаст 404. Но это не "защита" т.к. содержимое в network всегда есть в полном составе. Лучшая защита это отдавать только те данные, которые юзер видит на странице и не больше. Т.е. использовать API Resources, protected $hidden в моделях и точно составлять json ответ
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как правильно получать данные через axios?

    Kozack
    Alex @Kozack Куратор тега Vue.js
    Thinking about a11y
    А как вы объявляете errorsAxois ?
    Ответ написан более двух лет назад
    8 комментариев
    8 комментариев
  • Как создавать глобальные функции или переменные?

    TAbrahamyan
    Тигран Абрамян @TAbrahamyan
    Куда можно вынести функцию, чтобы она была видна во всех компонентах без подключения?

    С помощью миксинов.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как убрать редиректы при регистрации и авторизации в laravel?

    Alex_Wells
    Alex Wells @Alex_Wells
    PHP/TS/Kotlin developer
    accept: application/json
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как преобразовать дату?

    Kozack
    Alex @Kozack Куратор тега Vue.js
    Thinking about a11y
    Подробное описание читайте тут — Как в Vue правильно отобразить дату и время?

    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как настроить права?

    Zarom
    Дмитрий Шицков @Zarom
    У пользователей какой шелл?
    Похоже на lshell. Добавьте разрешенную комманду в список в /etc/lshell.conf, если это так.

    Подумайте прежде чем открывать доступ всем. Весь смысл применения lshell будет потерян
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • rPman
    • 10 ответов
    • 0 вопросов
  • Drno
    • 7 ответов
    • 0 вопросов
  • низкомолекулярный макрос
    • 6 ответов
    • 1 вопрос
  • ALonUa
    • 6 ответов
    • 0 вопросов
  • firedragon
    Владимир Коротенко
    • 5 ответов
    • 1 вопрос
  • delphinpro
    Сергей delphinpro
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации