Задать вопрос
  • Как растянуть соседний блок параллельно основному?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял задачу:
    Ответ написан
  • Можно ли удалить файл theme.min.css из dev сборки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    а менять его неправильно. так как бы временный

    Это не временный, а минимизированный и постоянный css файл для продакшен ветки (по крайней мере так они именуются).
    Можно ли удалить файл theme.min.css из dev сборки?

    Вообще, визуально, файл похож на итоговый минимизированный css файл для продакшена, НО! Зависит от контекста конкретного проекта, вполне можно случиться так, что:
    - Предыдущий разраб так назвал постоянный файл для dev ветки.
    - Файл участвует как часть в scss или js при сборке.

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

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Корректно ли это делать при каждом просмотре поста?

    Или тут зависит от посещаемости? Чем больше она, тем больше проблем от этого способа будет?

    Все верно, нагрузка на сервер/бд будет прямо пропорциональна посещаемости.
    Хотел узнать, каким образом правильно обновлять количество просмотров в БД.

    Или данные где-то сохраняются и в базу добавляются потом, а не так часто?

    Все верно, но зависит от нагрузки:
    - Малая нагрузка: делаем стандартным образом, при обновление поста - обновляем счетчик в бд.
    - Средняя нагрузка: обновляем код так, чтобы он мог использовать транзитное кэширование wp (set_transient()).
    - Большая нагрузка: используем внешние очереди (например redis или rabbitmq), данные с которых снимаем и пишем в бд раз в N сек/мин.
    Ответ написан
    Комментировать
  • Как лучше настроить режимы в WebPack сборке?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    но я не могу понять что такое NODE_ENV и isDev

    Режим сборки, development или production.
    можно ли как-то задать режимы попроще?

    А что тут сложного? Если проект не маленький, то обычно создают 2 разных файла конфигурации вебпака, один под devevelopment, другой под production.
    Ответ написан
  • Нужен ли большой монитор для разработки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Но смотря ролики на ютубе, часто стал замечать, что многие предпочетают работать на ноутбуках, покупают подставки, чтоб на уровне глаз был экран, отдельные клавиатуры и тд.

    У меня на работе 2 монитора (ноут и 27 дюймов (не хватает, нужно 34)), расположены так:
    Расположение
    dual-screen-setup.jpg

    Дома 3 монитора (ноут, 34 дюйма (основной) и 24 дюйма), расположены так:
    Расположение
    csm_IMG_9410_46aee6a722.jpg

    Отдельную клаву не использую.
    Какие плюсы от этого?

    Субъективно, не нужно постоянно переключаться между окнами, а достаточно бросить взгляд на нужный дисплей, особенно, когда у меня открыто 5-10 окон.

    А ну и шея качается, не нужны лишние подходы в зале...
    Ответ написан
    Комментировать
  • React-Select. Что может мешать выбору элементов с клавиатуры?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как минимум, имеется несколько вариантов, кто мог повлиять на клаву:
    - Имеется ли aria-disabled=true? Попробуйте false.
    - Попробуйте
    - blurInputOnSelect
    - pageSize
    - onKeyDown
    Ответ написан
    Комментировать
  • Как предотвратить перенос компонентов на новую строку в React BootStrap?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    если бы это было написано на чистых гридах все бы было ок. но это Bootstrap 5

    Так прикрутите класс и допишите "чистых гридов":
    .items {
        grid-auto-columns: 100px;
        grid-auto-flow: column;
    }
    Ответ написан
    4 комментария
  • Стотит ли менять asp.net mvc на asp.net web api + nextjs?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В первую очереди улучшить UI за счёт React библиотек

    Mantine как свежий воздух, после монстров в виде and и material.
    Но в общем, я не хочу тратить время на написание сервера на каком-то NodeJS и т.д.

    Нода не лучший вариант вложения своего времени, если же Вы уже не работаете с ней.

    В остальном, согласен с теми, кто сомневается. Давайте точнее, сколько денег Вы заработаете/сэкономите при всем это переписывание? Если нисколько или мало, то предлагаю - расстрелять преждевременных оптимизаторов.
    Ответ написан
    6 комментариев
  • Как сделать чтобы в скроле менялся контент?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    - У Вас 2 контейнера на странице (нужный Вам - второй), какой элемент по счету получает querySelector()?
    - Если Вы не знаете точно, зачем Вам получать элементы по классам, или это единственный получаемый такой элемент - используйте id.

    Ниже исправленный код, все работает. Вам необходимо добавить в верстке id="select" для списка, и id="output" для вывода:
    const list = {
        'Audi': 'Audi AG — немецкая автомобилестроительная компания в составе концерна Volkswagen Group, специализирующаяся на выпуске автомобилей под маркой Audi. Штаб-квартира расположена в Ингольштадте.',
        'Volkswagen': 'Volkswagen — немецкая автомобильная марка, одна из многих, принадлежащих концерну Volkswagen AG. Под этой маркой в 2007 году было реализовано 5 млн 20 тыс. автомобилей. Штаб-квартира — в Вольфсбурге.',
        'Opel': 'Adam Opel AG — немецкий производитель автомобилей. Штаб-квартира расположена в Рюссельсхайме, Германия. Компания была основана 21 января 1863 года и приступила к выпуску автомобилей в 1899 году. С 1929 года принадлежала концерну General Motors.'
    }
    
    document.addEventListener('DOMContentLoaded', () => {
        const select = document.querySelector('#select');
        const output = document.querySelector('#output');
    
        select.addEventListener('change', () => {
            output.textContent = list[select.value];
        });
    });

    КартинкО
    65f325a63b6b4624965081.png
    Ответ написан
  • Как использовать два контекста в методе правильно JS?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Используя стрелочную функцию:
    init() {
        this.targets.forEach((target, index) => {
            target.index = index;
            target.addEventListener("click", (event) => this.animateTab(event, this));
        });
    }

    Используя метод bind():
    init() {
        for (let i = 0; i < this.targets.length; i++) {
            this.targets[i].index = i;
            this.targets[i].addEventListener("click", this.animateTab.bind(this));
        }
    }
    Ответ написан
    3 комментария
  • Как составить букмарклет для поиска в Yandex из Google?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Так?
    javascript:(function(){var q=encodeURIComponent(document.querySelector('input[name="q"]').value);window.open("https://yandex.ru/search/?text="+q);})();
    Ответ написан
    1 комментарий
  • Как описываются апи роута поиска по имени и части имени?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    А как описывается апишка, когда я хочу добавить вариант поиска по совпадениям с начала строки?

    Начинается на max, на max или vasya:
    api/users/search?name=max&startsWith=true
    api/users/search?name=max|vasya&startsWith=true

    Оканчивается, содержит или похоже:
    api/users/search?name=max&endsWith=true
    api/users/search?name=max&contains=true
    api/users/search?name=max&fuzzy=true

    Взято как база из Java, C#, JS, Python, в которых присутствуют аналогичные методы (как минимум startsWith и endsWith) при проверке расположения значения в строке.
    Ответ написан
    2 комментария
  • Как машина состояний AIOGRAM хранит данные?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если множество пользователей, скажем 500 вызовут её

    А Вы попробуйте, программист должен уметь тестировать.

    При использование await state.update_data(text=message.text) данные сохраняются отдельно, для каждого из пользователей.
    Важное условие, ни бд, ни MemoryStorage не используется.

    В aiogram по дефолту используется MemoryStorage (хранение в оперативе сервера).
    Ответ написан
    Комментировать
  • Картинки мутные только на сафари, есть выход?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте следующие варианты:
    img {
        image-rendering: optimizeQuality;
    }

    или:
    <object type="image/svg+xml" data="img.svg" width="100" height="100"></object>

    или:
    <embed type="image/svg+xml" src="img.svg" width="100" height="100"/>
    Ответ написан
    1 комментарий
  • Платить или не платить за чужую картинку на своём сайте?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Мнение юриста компании: Оплатить 50 тыс защитникам законности, ибо суд те выиграют и будет еще хуже.

    Юрист передает бумагу на подпись директору, где изложены его рекомендации и план действий относительно настоящего дела, директор подписывает бумагу и оплачивает штраф. Вы либо слушайте юриста, либо увольте его, если он не компетентен.
    Мнение директора: эти деньги списать с того вебмастера, который 10 лет назад эту картинку из интернета опубликовал.

    Рекомендация выше. Юрист говорит, что все получится, проигрывает 1, 2, 3 дело и на выход с вещами. Либо, говорит что ничего не получится, а значит сразу закрываете вопрос.
    Я думаю, что подобный инцидент не повлечёт за собой никакого судебного разбирательства

    Рекомендация выше. Укажите, что возместите расходы, если Ваше предположение окажется ложным.
    Ответ написан
    2 комментария
  • Как можно обновить head в next.js?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Я бы использовал существующий компонент Head, вместе с контекстом и состоянием, а так же кастомный HeadProvider:
    // _app.js
    import {HeadProvider} from './HeadProvider';
    
    function App({Component, pageProps}) {
        return (
            <HeadProvider>
                <Component {...pageProps} />
            </HeadProvider>
        );
    }

    // HeadProvider.js
    import React, {createContext, useContext, useState} from 'react';
    
    const HeadContext = createContext();
    export const useHead = () => useContext(HeadContext);
    
    export function HeadProvider({children}) {
        const [headData, setHeadData] = useState({
            title: 'Init title',
            description: 'Init description',
            keywords: 'Init keywords'
        });
    
        return (
            <HeadContext.Provider value={{headData, setHeadData}}>
                {children}
            </HeadContext.Provider>
        );
    }

    // MyBestHead.js
    import Head from 'next/head';
    import {useHead} from './HeadProvider';
    
    export function MyBestHead() {
        const {headData} = useHead();
    
        return (
            <Head>
                <title>{headData.title}</title>
                <meta name="description" content={headData.description}/>
                {/* more head items */}
            </Head>
        );
    }

    // MyComponent.js
    import React, {useCallback} from 'react';
    import {useHead} from './HeadProvider';
    
    export function MyComponent() {
        const {setHeadData} = useHead();
    
        const handleClick = useCallback(() => {
            setHeadData({
                title: 'New title',
                description: 'New description',
                keywords: 'New keywords'
            });
        }, [setHeadData]);
    
        return (
            <button onClick={handleClick}>Update Head Data</button>
        );
    }
    Ответ написан
    1 комментарий
  • Как написать функцию для обновления списка комнат для single-page application?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял вопрос, то Вам нужно чистить state между переходами?
    const prevPathname = useRef(pathname);
    
    useEffect(() => {
        if (pathname !== prevPathname.current) {
            dispatch(resetRooms());
        }
    
        prevPathname.current = pathname;
    }, [pathname, dispatch]);
    Ответ написан
    3 комментария
  • Где у меня ошибка в sqlite3?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Вы используете зарезервированное в sql слово order, для названия столбца. Если другого варианта нет, то можно обернуть его кавычками. Да и f строки не рекомендуется использовать при работе с sql (Почему не стоит использовать f строки в SQL Python запросах? и Как сделать безопасно строку с sql запросом и различными параметрами?).

    Попробуйте так:
    async def add_order(self, order, name, tg, number, amount, promo, date):
        with self.connection:
            return self.cursor.execute('INSERT INTO orders ("order", name, tg, number, amount, promo, date) VALUES (?, ?, ?, ?, ?, ?, ?)', (order, name, tg, number, amount, promo, date))
    Ответ написан
    Комментировать
  • Составить карту для парсинга и автоматизации ставок?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Планирую сделать парсер букмекерской конторы

    подскажите какие темы нужно поучить

    Selenium
    selenium-stealth (это букмекеры, Вы у них не первый, а значит броня прокачена).
    есть начальные знания питона, остановился на списках, кортежах и тп

    Это не начальные знания, начальные знания - это весь python (от корки до корки), с малым количеством написанного кода.
    Ответ написан
    3 комментария