• Как вместо числа "5620", показывать "5,6K"?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Вы какой-то не тот интернет "облазили". Задача давно решена, ответ ищется за три секунды: https://www.google.com/search?q=thousands+to+k+php
    Но даже если предположить, что никто до вас такого не делал, то ведь это алгоритм на десять строчек...
    Ответ написан
    Комментировать
  • Как узнать название вложенного массива?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    foreach ($array as $key => value) {
      var_dump($key, $value);
    }


    $keys = array_keys($array)
    foreach ($keys as $key) {
      var_dump($key);
    }
    Ответ написан
    Комментировать
  • Как узнать название вложенного массива?

    @alexalexes
    Вы пользуетесь неполной версией foreach.
    foreach($arr as $value)
    {
      echo $value;
    }

    Нужно та, что ключи перебирает.
    foreach($arr as $key => $value)
    {
      echo $key;
    }
    Ответ написан
    Комментировать
  • Как развернуть сайт на Openserver и загрузить его на CMS?

    YBB
    @YBB
    Судя по именам директорий:
    1. это НЕ Wordpress. Что это можно попытаться узнать, почитав файлы composer.json и/или README.md
    2. CMS/фреймворк уже входит в состав файлов.
    3. В конфиге httpd в качестве DocumentRoot для этого сайта должна быть указана субдиректория public. (нет, я не знаю где и что лежит у Openserver)
    4. Не исключено, что кроме файлов сайта, может понадобиться еще и база данных от него.
    Ответ написан
    1 комментарий
  • Можете порекомендовать бесплатные отправители почты со своего домена?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1. Купить дешевый VPS, настроить почтовый сервер.
    2. Перенести почту на сервис почты для домена почты яндекс или почты mail.ru и т.п.
    Ответ написан
    8 комментариев
  • Как настроить spf к нескольким сервисам?

    https://mxtoolbox.com/emailhealth
    че говорит ?
    Ответ написан
    Комментировать
  • Почему SMTP Gmail не отправляет письма на некоторые email?

    У них есть ограничение на количество отправленных в сутки писем. В зависимости от типа аккаунта лимит может быть от 500 писем.
    Код ошибки при превышении лимита - 421.
    Ответ написан
    6 комментариев
  • Как убрать отступ у кода и оставить только сам код?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вообще-то никакого отступа не будет. Тэг code сам по себе только включает отображение моноширинным шрифтом. Правила работы с пробелами и переносами строк не меняются.
    У вас либо использован дополнительно тэг pre, либо в CSS заданы кастомные параметры отображения для code.
    Ответ написан
    2 комментария
  • Как правильно делать запросы в цикле?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    it depends

    • если запросы зависимые, то в цикле
    • если запросы можно выполнить "параллельно", то можно асинхронно сделать сразу все 4 запроса и подождать самый медленный


    например через multi curl, тогда все 4 запроса будут выполняться за время самого медленного из них, а не за сумму времени, удобно через Guzzle Async

    $promise1 = $client->getAsync('http://www.example.com/foo1');
    $promise2 = $client->getAsync('http://www.example.com/foo2');
    $promise3 = $client->getAsync('http://www.example.com/foo3');
    $promises = [$promise1, $promise2, $promise3];
    
    $results = GuzzleHttp\Promise\settle($promises)->wait(); // тут все результаты


    в обоих случаях не понятно, зачем таймаут, тк синхронно второй запрос начнется только ПОСЛЕ выполнения предыдущего, а в асинхронном варианте они просто выполнятся "одновременно" и вы получите результат сразу от всех запросов... таймаут ни к селу ни к городу
    Ответ написан
    1 комментарий
  • В каком сервисе/программе ставить задачи себе/сотрудникам?

    GavriKos
    @GavriKos
    НАчните не с задачи, а с методологии. Скрам, канбан, водопад, еще какая нить дичь. Потом продумайте что вы хотите от этой системы более детально - статусы задач, нужны ли вложения, нотификации на почту, автоматизации. Опять таки планирование как будет вестись, нужен ли Гант, фильтры...

    Если все это для вас ни о чем - наймите ПМа или используйте трелло
    Ответ написан
    Комментировать
  • В каком сервисе/программе ставить задачи себе/сотрудникам?

    xez
    @xez
    TL Junior Roo
    - jira
    - trello
    - YouTrack

    Ну и https://clickup.com/blog/jira-alternatives/
    Ответ написан
    Комментировать
  • Как определить интервал в расписание на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вычисляйте минимум и максимум разницы минут между рейсами.
    18 - 3 = 15
    28 - 18 = 10
    38 - 28 = 10
    48 - 38 = 10
    58 - 48 = 10
    min = 10, max = 15
    Ответ написан
    Комментировать
  • Как сделать отправляемые запросы анонимными?

    Vindicar
    @Vindicar
    RTFM!
    Анонимность - штука многогранная.
    Для начала, что значит "со мной"? Кто есть "я"? Другая учётка на этом же сайте? Айпишник из российского диапазона? Учётка в соцсетях? Физлицо Вася Пупкин, паспорт-серия-номер-выдан? Ответы будут очень разные.
    1. Какие данные сайт требует для работы? Можно ли по этим данным тебя идентифицировать?
    Грубо говоря, если для реги нужен телефон, и сайт не работает с российским сегментом, то VPN не поможет, если у тебя нет зарубежного номера.
    2. Какие данные отдаёт твой клиент? Например, куки, localStorage, эксплоиты для анализа истории, инфа от логинов в соцсетях, и тому подобные вещи. requests и другие клиенты-либы ничего такого не отдают, если специально их не настроить. В случае с селениумом есть browser fingerprint, но он тоже ломается при желании.
    3. Что сайт знает о твоём IP адресе? Принципиально ли ему вообще это знание? Одно дело, если сайт требует/не допускает айпишники из определённого диапазона. Другое - если там ограничение на число запросов с одного IP. Третье - если ему вообще пофиг на IP и он пытается идентифицировать юзера иначе.

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

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну, на основной вопрос уже ответили, а я освещу отдельную проблему, которая очень часто волнует умы юных падаванов.

    когда лучше реляционную и нереляционную использовать?

    Ответ на этот вопрос очень простой.
    Нереляционная БД - это НЕ база данных.
    А узкоспециализированное хранилище, которое может выполнять какую-то одну определенную функцию лучше, чем база данных. Это может быть кэширующий демон, или поисковый движок, или решение для аналитики, или какое-то подсобное хранилище для всякого мусора.

    Как только осознаёшь этот простой факт, то всё сразу становится на место:
    Если нужна база данных, то и использовать надо базу данных. Реляционную. Какую именно - в вашем случае не принципиально.

    Если вдруг проект пройдет стадию "неясные идеи", и выльется во что-то практическое, и даже появится какая-то нагрузка, то можно будет начать думать про использование одного или нескольких подсобных хранилищ в дополнение к базе данных.
    Ответ написан
    2 комментария
  • Где украли деньги?

    Vindicar
    @Vindicar
    RTFM!
    Ранее для личных целей с личного телефона пользовался данным сервисом - проблем не было (так что вряд ли сам сервис занимается воровством).

    Тоже не факт, они просто могут не трогать сравнительно небольшие суммы, а ждать, пока клиент положит что-то покрупнее. Но тогда не было бы нужды в переписке с ботом. Так что больше похоже на удалённое управление.
    Ответ написан
    Комментировать
  • Как быстро умножают края матриц?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Можно дополнить матрицы нулями до размера кратного 8. Так (но со степенью двойки) работает умножение через быстрое преобразование фурье, например.

    Или можно наивно последние 1-7 слагаемых в каждой сумме подсчитать. Это займет O(n^2), что по сравнению с остальным алгоритмом - копейки.
    Ответ написан
    2 комментария
  • Как конвертировать чат в вопросы и ответы?

    @rPman
    Сядь и подробно опиши, как ты будешь описывать эту работу человеку, причем максимально далекому от темы, не очень сообразительному но внезапно эрудированному (считай что написанное этот человек будет понимать сразу, с учетом опечаток, сленга и т.п., этому обучать не придется).

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

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

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

    0xD34F
    @0xD34F Куратор тега React
    Погуглите, что такое всплытие событий, и как его останавливать.
    А можете и не гуглить.
    const onClickRow = () => {
      console.log('Строка');
    };
    
    const onClickButton = e => {
      e.stopPropagation();
      console.log('Кнопка');
    };

    <div onClick={onClickRow}>
      <button onClick={onClickButton}>click me</button>
    </div>

    Или оставьте один обработчик, на родительском элементе, внутри которого в зависимости от target события выполняйте различные действия.
    Всё ещё ленитесь гуглить? - ну тогда жмите сюда.
    const onClickRow = e => {
      if (e.target.tagName === 'BUTTON') {
        console.log('Кнопка');
      } else {
        console.log('Строка');
      }
    };

    <div onClick={onClickRow}>
      <button>click me</button>
    </div>
    Ответ написан
    1 комментарий