Задать вопрос
  • Стоит ли поступать в вуз на программу по математике, если в будущем хочешь иметь профессию, связанную с программированием?

    @Murmakil
    Вот хожу я по собесам уже полгода и понимаю, что высшее образование бесполезно. Если ты не понравился интервьюеру, то пусть даже ты опытнее его самого, то все равно откажут. Лучше идти на специальность " Как понравиться интервьюеру"
    Ответ написан
    2 комментария
  • Как оптимизировали сайт, что он летает?

    @Vitsliputsli
    Не прав. Изучите, как минимум, что такое ping, протокол icmp, http. Пока все ваши выводы бессмысленны.
    Ответ написан
    Комментировать
  • Как оптимизировали сайт, что он летает?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Пинг вообще не имеет отношения к скорости работы сайта (но имеет к скорости доставки).
    Чтобы дать первоначальную оценку скорости загрузки на локальный ПК нужно открыть вебтулс, смотреть на цифры и думать.
    spoiler
    7BfC9lu.png
    вс имеет более быструю загрузку в первую очередь из-за грамотной работы с изображениями (ленивая подгрузка, миниатюры, оптимизация и пр). Чего у хабра не наблюдается (или частично).


    Для оценки "в среднем по больнице" нужно пользоваться различными сервисами (не забывая про регион). Например tools.pingdom.com
    Ответ написан
    Комментировать
  • Что такое Cardinality и зачем оно нужно?

    @DinaN
    Может имелась ввиду ситуация когда SHOW INDEX FROM ... возвращает для cardinality значение NULL?
    Столкнулась с такой ситуацией на живой БД, после ANALYZE все выправилось.
    Таблица была MyISAM.
    Ответ написан
    Комментировать
  • Как оптимально реализовать вкладки?

    Ankhena
    @Ankhena Куратор тега JavaScript
    Нежно люблю верстку
    я понимаю что есть более правильный подход но не могу найти

    Как вариант:

    1. Вешаем слушатель событий на документ или родителя этих табов
    2. Всем табам даем одинаковый класс
    3. Проверяем попал ли таргет на таб
    4. Всем убираем класс open
    5. Тому, который в таргете задаем его

    const CLASS_TAB = 'tab';
    const CLASS_OPEN = 'open';
    
    const block = document.querySelector('.block'); // родительский блок табов
    const tabs = block.querySelectorAll(`.${CLASS_TAB}`);
    
    block.addEventListener('click', ({target}) => {
      const tab = target.closest(`.${CLASS_TAB}`);
      if (tab) {
        tabs.forEach((item) => {
          item.classList.remove(CLASS_OPEN);
        });
        tab.classList.add(CLASS_OPEN);
      }
    });


    Условие тоже можно перезаписать компактнее, но мне кажется у вас вопрос как раз в логике кода, а не в сокращении символов.

    На что-то такое
    if (tab) tabs.forEach(t => t.classList.toggle('open', t === tab));


    Когда дойдёте до задачи, когда нужно менять класс не самой кнопке-табу, а соответствующему блоку с контентом, то:
    - Почитайте про DOM дерево, поиск родителей, соседей и т.д.
    - Так же рекомендую использовать data-атрибуты для связи элементов.
    Ответ написан
    9 комментариев
  • Как в crontab удалять папку после поиска этой папки?

    @SunTechnik
    До кучи:
    find / -name kinsing -exec rm -rf {} \;

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

    проверить отчёты и т.д. в панели веб-мастера Яндекса/Гугла для начала
    Ответ написан
    4 комментария
  • Почему VS Code подчёркивает синтаксис, содержимое переменной?

    suprunchuk
    @suprunchuk
    Это не ошибка.

    Включена подсветка парных скобок и активной строки:

    * Жёлтая рамка вокруг { и } — это bracket pair highlight (подсветка соответствующих скобок).
    * Подсвеченная строка "age": 35 — это текущая активная строка, где стоит курсор.
    * Цвет числа 35 — обычная семантическая подсветка типов (number literal).

    Синтаксически код корректен. VS Code ничего не ругает — он просто визуально показывает структуру и текущую позицию курсора.
    Ответ написан
    1 комментарий
  • Как убрать ошибку php которая возникла при обновлении копии битрикса?

    @Ras
    В файле
    /home/bitrix/www/bitrix/modules/bizproc/compatibility.php
    оставьте только
    <?php

    После этого можно будет войти в админку. Дообновите сайт (обновится в т.ч. модуль main). Верните содержимое файла на место
    <?php
    
    \Bitrix\Main\Loader::registerClassAliases([
            'Bitrix\Bizproc\WorkflowTemplateTable' => 'Bitrix\Bizproc\Workflow\Template\Entity\WorkflowTemplateTable',
            'Bitrix\Bizproc\WorkflowInstanceTable' => 'Bitrix\Bizproc\Workflow\Entity\WorkflowInstanceTable',
            'Bitrix\Bizproc\WorkflowStateTable' => 'Bitrix\Bizproc\Workflow\Entity\WorkflowStateTable',
            'CBPAllWorkflowPersister' => 'CBPWorkflowPersister',
            'CBPAllHistoryService' => 'CBPHistoryService',
            'CBPAllStateService' => 'CBPStateService',
            'CBPAllTaskService' => 'CBPTaskService',
            'CBPAllTrackingService' => 'CBPTrackingService',
            'CAllBPWorkflowTemplateLoader' => 'CBPWorkflowTemplateLoader',
            'CBPCalc' => 'Bitrix\Bizproc\Calc\Parser',
    ]);
    Ответ написан
    Комментировать
  • Как сделать полную копию сайта?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Нанять на фрилансе разработчика или дев-опса для бэкапа сайта. Список задач примерно такой:
    1. Сменить пароли и доступ к аккаунту хостинга и серверу
    2. Выяснить как работает сайт и с помощью каких инструментов он создан
    3. Сменить пароли и доступ к административным ресурсам сайта (админка, ssh, root и прочее)
    4. Сделать бэкап сайта
    5. Задокументировать основные процессы — что там и где, бэкап сайта, его деплой и запуск

    Т.е., чтобы у вас была инструкция для запуска вашего сайта на любом другом хостинге. Остальное — по рекомендациям исполнителя.
    Ответ написан
    5 комментариев
  • Есть ли платформы или агенты которые могут сами заполнять сайт контентом?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Конечно есть! Фрилансер называется.
    spoiler
    Есть такие кто будут сами работать, а есть такие которые сделают автоматическую систему
    Ответ написан
    Комментировать
  • Нормальна ли практика деплоя от root и кто отвечает за разграничение прав на VPS?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Твои вопросы показывают отсутствие опыта и необходимых знаний. Но не переживай, это наживное :)
    Для начала - все рабочие процессы сотрудников должны быть регламентированы должностной инструкцией. Тогда вопрос кто что должен и за что отвечает сразу отпадает.
    Если на предприятии нет ДО и всё держится на честном слове (ака "доверии") - это рано или поздно приводит к проблемам.

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

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Для этого вам надо использовать либо эмулятор браузерного движка для ноды либо полноценный браузерный движок. Эмулятор не реализует полный функционал браузера и в некоторых случаях код на странице может работать некорректно. С браузером есть несколько вариантов: использовать селениум или любую другой альтернативный способ управления браузером либо использовать браузерные движки с интегрированной нодой типа NWJS или Electron. Обычно сайты блокируют попытки парсинга страниц ботами. Поэтому, при наличии APi следует использовать именно API, а не парсинг самого сайта.
    Ответ написан
    Комментировать
  • ИИ на ноутбуке с 64 Гб ОЗУ?

    @tukreb
    Только на Макбуках последнего и предпоследнего поколения с M4 Max и от 64–128 ГБ памяти вы сможете локально использовать вайбкодинг на серьёзных моделях. Потому что только у Apple есть ноутбуки с unified memory, куда влезает 200B модель в 4-битной квантизации . Всё что ниже будет не вайбкодить, а копрокодинг. Даже 70B модель на RTX 4090 без CPU offload не завезти, там 24 ГБ просто не хватит.

    В ПК просто нет альтернатив, если вы не готовы отдать до полумиллиона долларов на топовые nvidia карты.
    Ответ написан
  • ИИ на ноутбуке с 64 Гб ОЗУ?

    @alexalexes
    Вам ничего не мешает установить ollama на этот ноут и проверить возможности моделей, которые влезут в его память.
    PS: Отвечу заранее, мощностей моделей хватит, чтобы с вами поболтать о погоде, играть в шарады, но ни о какой серьезной работе речь идти не может - модели объемов для персональных компов слишком туповаты, они не вместят в него необходимый контекст.
    PPS: Единственное направление для нейросетей, развернутых на коленке - это нейросети для распознавания образов. OCR, категоризация объектов, отслеживание наступления какого-либо состояния по изображению, звуку, других аналоговых метрик. Вот это можно ковырять в походных условиях. Про полноценную LLM даже не мечтайте развернуть.
    Ответ написан
    Комментировать
  • Обгорела изоляция на вилке, безопасно в дальнейшей эксплуатации?

    @alexalexes
    При вытаскивании вилки можете попасть на ситуацию, когда поврежденный контакт обломится и он останется в розетке. Когда начнете вытягивать зарядку, застрявший контакт потянет проводок из внутренностей зарядки, если он порвется с другой стороны, то оголенный конец проводка может попасть вам на руку. Если это будет фазный провод, то почувствуете заряд бодрости (опасно!).

    PS: Пора заменить не только зарядку, но и обслужить розетку. Нужно либо заменить розетку или подтянуть клеммы, чтобы вилка зажималась надежно.
    Ответ написан
    Комментировать
  • Как оптимизировать или создать правильно mysql запрос?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    (select count(id) from orders_items where order_id=orders.order_id)=1

    Запрос будет выполняться для каждой строки, которую найдет бд (10000 заказов - 10000 выполнится поиск) - это не очень эффективно...

    Можно попробовать найти товар в orders_items, затем присоединить таблицу orders, затем использовать not exist, чтобы убедиться, что в заказе нет других записей:
    SELECT
        o.order_id,
        o.shipment_date
    FROM
        orders_items oi
    
            -- Присоединяем таблицу заказов, чтобы получить доступ к дате и статусу.
            INNER JOIN
        orders o ON oi.order_id = o.order_id
    WHERE
    
        -- Находим строки конкретного товара.
        oi.sku = '$sku'
      AND oi.quantity = 1
    
      -- Фильтры таблицы заказов.
      AND o.place_order = 0
      
      -- Отсекаем лишнее по дате.
      AND o.shipment_date <= (NOW() - INTERVAL 20 DAY)
    
      -- В этом заказе не должно быть других позиций.
      AND NOT EXISTS (
        SELECT 1
        FROM orders_items oi_check
        WHERE oi_check.order_id = oi.order_id
    
          -- Ищем любую запись с тем же order_id, но другим id.
          AND oi_check.id <> oi.id
    )
    ORDER BY
        o.id DESC
        LIMIT 1;

    P.S. этот запрос будет производительный лишь в том случае, если у вас есть индексы. Проверьте наличие индексов у orders_items(sku) (лучше составной (sku, quantity)), orders_items(order_id) и orders(order_id).
    Ответ написан
    Комментировать
  • Почему некорректно работает проверка наличия постов?

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

    Потому что есть путаница в переменных и в логике действий в целом.

    Будет иметь больше смысла:
    $myposts = get_posts( [
    	'posts_per_page' => -1,
    	'offset'         => 4, // советую переосмыслить нужность этого параметра
    	'post_status'    => 'publish',
    ] );
    
    if ( ! empty( $myposts ) ) {
    	global $post;
    	foreach ( $myposts as $post ) {
    		setup_postdata( $post );
    		...
    	}
    	wp_reset_postdata(); 
    } else {
    	...
    }
    Ответ написан
    2 комментария
  • Где ошибка в подключении библиотеки?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    не могу понять почему не могу воспроизвести работу библиотеки

    Потому что ваш код не соответствует тому коду, который размещён по вашей ссылке. Т.е., вы просто выкинули часть кода. Достаточно открыть код страницы и сравнить с вашим. Что вам помешало выполнить код как есть и попытаться понять что именно вы сделали не так?
    Ответ написан
    Комментировать
  • Подобие яндекс.метрики и google analytics на закрытых объектах - есть ли готовые решения?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ, боты и пр.
    Но вопрос все тот же - возможно, есть уже подобные решения?

    Полным-полно. Как платных, так и бесплатных опенсорсных.
    Например я пользовался Matomo когда он ещё Piwik-ом был.
    Ответ написан
    Комментировать