Задать вопрос
  • Как "захватить" регуляркой оставшуюся часть строки после третьего дефиса?

    @alexalexes
    Регулярки не удаляют и не модифицируют исходную строку.
    Вашу задачу нужно рассматривать как:
    "Взять первые три слова, разделенные дефисами".
    Можно сматчить примерно такой регуляркой:
    ^([a-z]*\-){2}[a-z]*
    "Взять два раза слово+дефис и еще слово впереди".
    Ответ написан
    1 комментарий
  • Существует ли альтернатива видео api ютуба?

    @alexalexes
    Ну, так не единым ютубом жив видеохостинг.
    Если в ВК или в Рутубе вы воспользуетесь кнопкой "поделиться", то там обнаружите вариант для получения iframe, где будут ссылки следующего вида:
    https://vk.com/video_ext.php?oid=некий_ключ&id=некий_идентификатор_видео&hd=2

    https://rutube.ru/pl/?pl_id&pl_type&pl_video=некий_хеш_видео
    Ответ написан
    Комментировать
  • Можно ли как либо защитить php-проект от "угона" другим наёмным программистом (фрилансером)?

    @alexalexes
    Меры безопасности такие же как и в любом коммерческом банке.
    1. Разделение информационной системы предприятия на контуры по готовности релиза: продакш (к управлению допускаются только ключевые технические специалисты компании), предпродакш (к управлению допускается только помощники ключевых технических специалистов, в контуре могут испытываться как тестовые данные, так и часть боевых данных), дев-контур для разработчиков (допускаются разработчики только по узкому направлению, в контуре циркулируют только тестовые данные).
    2. Разделение информационной системы предприятия по функционалу и делегирование прав доступа от рядового разработчика к ключевому специалисту в рамках одной подсистемы. Разработчики и их руководители должны иметь только те права доступа, которые необходимы для текущей работы.
    Ответ написан
    1 комментарий
  • Как отредактировать dll-файл?

    @alexalexes
    Некоторые статичные сообщения программ можно посмотреть в dll через старый добрый Restorator.
    Ответ написан
    Комментировать
  • Как обратиться к определенному элементу внутри div и удалить весь div родительский?

    @alexalexes
    Нужно извлечь из страницы все ссылки с атрибутом rel="tag". Пройтись по списку найденных ссылок и найти ссылку с необходимым содержанием. Далее подняться на 4 предка вверх и удалить его.
    let anchors = document.querySelectorAll('a[rel="tag"]');
    for(let i = 0; i < anchors.length; i++)
    {
      if(anchors[i].innerHTML.indexOf('Онкология') >= 0)
      {
        anchors[i].closest('.case-col').remove();
        break;
      }
    }

    PS: Jquery должен умереть, не используйте его там, где справятся нативные функции JS.
    Ответ написан
    3 комментария
  • Как сохранить get параметр при переходе на другую страницу?

    @alexalexes
    Если вы хотите сохранить выбранный населенный пункт в вашем разрабатываемом сайте (интернет магазине), то вам не нужно тянуть этот параметр при каждой ссылке. Вам нужно при выборе города от пользователя получить этот параметр один раз и сохранить его либо в куках $_COOKIE, либо в сессионной переменной в $_SESSION, либо в базе данных в профиле пользователя.
    Далее, при любом обращении к любой странице вашего сайта доставать этот параметр из описанных выше источников и использовать как некую переменную контекста для выбора и формирования контента страницы.
    Ответ написан
    1 комментарий
  • Если файл, содержащий пространство имён, сам подключает файл через 'include', какое в подключаемом файле будет пространство имён?

    @alexalexes
    Проверяйте на практике:
    echo '"', __NAMESPACE__, '"';
    https://www.php.net/manual/en/language.namespaces....
    Сами разберетесь быстрее и вопросов меньше будете задавать.
    Ответ написан
    Комментировать
  • Как сделать боксы подряд?

    @alexalexes
    Либо по старинке - всем элементам, которые хотите сделать в ряд, даете свойство display: inline-block; либо по молодежному - делаете контейнер с display: flex и добавляете необходимые flex-свойства элементам, чтобы обеспечить выравнивание и пропорции заполнения блоков.
    Еще древнее способ и самый правильный с точки зрения семантики HTML - элемент .button используете как input, а не div, чтобы все элементы в ряду были строчного типа - тогда мучиться с выравниванием не придется.
    Ответ написан
    5 комментариев
  • Как вставить скрипт, чтоб он не открывался на всю страницу?

    @alexalexes
    Либо обращайтесь к разработчикам виджета - help@unitiki.com
    Либо смотрите, какие ccs-селекторы воздействуют на модальное окно виджета и пытайтесь перебить их свойства своими css-стилями.
    Ответ написан
    Комментировать
  • Успешно! вместо текста?

    @alexalexes
    Браузеру пофигу на метазаголовки, если сервер пришлет http-заголовок с другой кодировкой.
    Нужно смотреть:
    1) в какой кодировке файл php (можно пересохранить в другой кодировке);
    2) какой браузеру приходит http-заголовок, связанный с кодировкой от сервера на вкладке Сеть по F12 (можно добавить http-заголовок с нужной кодировкой через функцию header);
    3) meta-заголовки кодировки бесполезны, если выводом контента рулит php-скрипт.
    Ответ написан
    Комментировать
  • Возможно ли отследить утерянный ноутбук с сим картой?

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

    @alexalexes
    Проблем быть не должно с существующими антеннами.
    Ответ написан
    Комментировать
  • Почему сортировка по сумме двух полей не работает?

    @alexalexes
    Оберните все в подзапрос и посчитайте уже там:
    select A.*, (A.count + A.amount) total
    from (...) A
    order by total desc
    Ответ написан
    Комментировать
  • Не видит значение input, как исправить?

    @alexalexes
    Вам нужно получить значение текстового поля так:
    var intxt = document.querySelector('input').value;
    Как раз это и будет строка, у которой можно посмотреть length.
    Ответ написан
    Комментировать
  • Есть ли готовое приложение для использования кода Yandex SpeechKit API?

    @alexalexes
    1. Стоимость решения будет зависеть от функционала конвертера.
    Если вы готовы сами вытащить аудиодорожку из видео, и вам только не хватает шага "файл аудио -> API -> файл с текстом", то цена реализации в виде скрипта, написанного на коленке, будет минимальна.
    Если вам нужно делать синхронные субтитры к видео, выделять фрагменты видео, где нужно добавить субтитры, редактировать субтитры после их получения. То это совсем другой функционал и другой ценник.
    2. Не знаком с предметной областью, нужно изучать аналоги приложений.
    Ответ написан
    6 комментариев
  • Не работает выбор видеокарты в ноутбуке?

    @alexalexes
    Windows 10 ?
    1) Нужно снести видеодрайвер от Microsoft, скачать видеодрайвер от GeForce (запомните версию этого драйвера), установить его.
    2) Запретить системе обновлять драйвера.
    3) В любой непонятной ситуации, если Win10 присылает крупные обновления с переустановкой драйверов, возвращать оригинальную версию драйвера, которую вы заблаговременно скачали.
    Ответ написан
  • Как правильно оповестить пользователю о занятых его данных?

    @alexalexes
    Любой способ приемлем для оповещения о неверном логине/почты при регистрации или авторизации. Главное, не скатиться до кейса "Вы ввели неверный пароль, который уже занят пользователем <логин/почта>".
    Ответ написан
    Комментировать
  • Как сделать дистанционное управление клешней робота с помощью мыши?

    @alexalexes
    1. Решаете кейс, как в браузере перемещать простой div элемент в виде квадрата по его элементу-контейнеру, растянутого во всю ширину и длину просматриваемой области страницы, при помощи событий mousedown, mousemove, mouseup на JS (реализуете простетский drag-and-drop).
    2. Когда у вас ваша поделка 1 находится в состоянии отмены захвата (отпускания мыши), передаете на сервер через AJAX координаты dx, dy - разностные координаты от точки захвата, до точки отпускания.
    3. На сервере конвертируете dx, dy в азимут и склонение поворота вашей клешни/турели, или чего там.
    4. Отправляете параметры поворота исполняющему устройству.
    Ответ написан
    Комментировать
  • Как оптимальнее всего организовать хранение тяжёлых данных и чтобы потом максимально быстро доставать оттуда данные для отчётов?

    @alexalexes
    Структура таблицы нормальна, только добавьте индекс на поле date_submitted и индекс на поле score и будет летать.
    Запрос для получения рейтинга на каждый день для всех пользователей будет примерно такой:
    with date_list as (/*Любым способом получаете непрерывный список дат интересуемого диапазона */)
    select A.date, u.user_id, nvl(A.max_score, 0) max_score /* nvl зависит от СУБД */
    from (select dl.date, u.user_id, tb_max_score.max_score,
              rank() over (partition by dl.date order by random() /*реализация функции random зависит от СУБД*/ ) rnk
    from (select us.date_submitted, max(us.scope) max_score
               from user_score us) tb_max_score  -- выясняем макс-ные баллы
    left join date_list dl on dl.date = tb_max_score.date_submitted
    left join user_score us on dl.date = us.date_submitted  -- выясняем, у кого макс-ные баллы
                                      and us.score = tb_max_score.max_score
    ) A
    cross join user u u.user_id = A.user_id -- прицепляем тех, кто возможно не участвует в рейтинге
    where A.rnk = 1
    Ответ написан
    Комментировать
  • Как сделать расчет по нескольким группам в SQL?

    @alexalexes
    Примерно так, но без понимания матрицы переходов статусов написать кейсы в каунтах не получится корректно с моей стороны.
    select t.user_id,
              count(*) as calls,
              count(case when t.old_status = 'Open' then 1 end) as opened,
              count(case when t.new_status = 'Assigned' then 1 end) as assigned
              ....
     from log_ticket_statuses t
    group by  t.user_id

    PS: Хорошо бы статусы вынести в отдельный справочник, не комильфо использовать его как строку.
    PPS: Почему выбрали модель использования колонок old_stasus/new_status, почему бы не делать трек истории через связанные строки id_next? Туда неограниченное количество переходов статусов можно запихнуть на одного пользователя и по маркеру id_next is null удобно составлять запросы все ли треки завершены, и какие текущие статусы у пользователей с задачами.
    history_id, ticket_id, user_id, status_id, next_history_id
    1, 1, 1, 1, 2
    2, 1, 1, 2, null
    3, 1, 2, 1, null
    4, 2, 2, 1, 5
    5, 2, 2, 2, null
    Ответ написан
    Комментировать