• Я могу использовать модифицированную тему в интернете?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Я хочу отредактировать тему Вордпресса, распространяемую под лицензией GNU General Public License v2.
    Я могу использовать эту модифицированную тему для своего сайта в интернете? Как сделать это правильно, чтобы избежать юридических казусов?

    GPLv2 позволяет свободно использовать и изменять ПО, при условии, что вы также распространяете его под той же лицензией.
    Мне кажется, что использование модифицированной темы на сайте в интернете не является распространением, так ли это?

    Если Вы не предлагаете скачать или продать эту тему, то да.
    Ответ написан
    1 комментарий
  • Как/где нынче визуально рисуют сайты?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Вопрос - а как сейчас принято делать веб-дизайн?

    1. Создание чернового макета (прототипа).
    2. Создание дизайна на основе п1. в Figma (все целевые страницы + минимум под 3 разрешения дисплея) и Photoshop (для сложной обработки изображений).
    3. Фронт:
    - Верстка и натяжка на CMS (bootstrap + свои компоненты).
    - Или более сложная разработка фронта на React (mantine + свои компоненты).
    + Сборщик webpack/nextjs с компиляцией, оптимизацией, нарезкой изображений и прочей мартышкиной работой.
    4. Тесты.
    5. Публикация.
    неужто исключительно в текстовом редакторе?

    Нет, в ide webstorm/phpstrom/pycharm.
    Ответ написан
    6 комментариев
  • Как получить текст ответа ASP Net Core API?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Как в случае ошибки получить данный текст ("Совпадений не найдено") на стороне клиента, с помощью JS?

    - fetch()
    - Axios

    fetch():
    fetch('//site.com/api/v1/send')
        .then((response) => {
            // error handler
            if (!response.ok) {
                return response.text().then((text) => throw new Error(text));
            }
    
            return response.json();
        })
    
        .then((data) => console.log('Свежая инфа: ', data))
        .catch((error) => console.error('ОшибкО:', error.message));
    Ответ написан
    Комментировать
  • Как лучше загрузить сайт на React на GitHub для доказательства, что он действительно на React?

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

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

    Либо, чтобы из репы можно было скопировать лишь dist/ и сразу опубликовать это как приложение в любом месте, без дополнительных команд.
    От такого способа не будет видно, что применялся Реакт?

    Слепой не увидит ничего, в остальном - все чекается на раз-два.

    Рекомендую изучить крупные репы и обратить внимание на то, что там в рамках одной репы имеются исходники (src), сборки разных видов (dist/build), опубликованы все необходимые команды так, чтобы даже не зрячая обезьянка могла скопировать и выполнить эту команду, чтобы получить желаемый результат.
    Ответ написан
    1 комментарий
  • Почему не работает поиск по классу?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Что возвращает метод getElementsByClassName()?

    console.log(document.getElementsByClassName('child2')) // HTMLCollection

    Какому элемент Вы собрались изменять текст (textContent), если там целая html коллекция?

    Вначале, необходимо обойти коллекцию, одним из способов ниже:
    // old
    Array.from(document.getElementsByClassName('child2')).forEach((el) => {
        el.textContent = 'Измененная строка 2';
    });
    
    // new
    document.querySelectorAll('.child2').forEach((el) => {
      el.textContent = 'Измененная строка 2';
    });
    Ответ написан
    Комментировать
  • Как вывести сумму по колонке в джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Примерно так (импорты и наименование в бд свои пропишите):
    from django.db.models import Sum
    from .models import Raschet
    
    # counter
    count = Raschet.objects.aggregate(total=Sum('summa'))['total']
    Ответ написан
    6 комментариев
  • Ошибка при запросе к API Тинькофф Кассы?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    а через Postman все как работало, так работает

    Но запрос из постмена Вы конечно же не покажите, чтобы сравнить ;)

    Попробуйте так:
    # response = requests.post("https://securepay.tinkoff.ru/v2/Init", data=data_json, headers=headers)
    response = requests.post("https://securepay.tinkoff.ru/v2/Init", json=data, headers=headers)
    Ответ написан
  • Как в next js добавить класс к элементу?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как в обычном реакте:
    const Icon = ({title, href, active}) => {
        const className = active ? 'active' : '';
    
        return (
            <Link href={href} className={`svgh m-auto ${className}`}>
                {/* svg */}
            </Link>
        );
    }

    'use client'
    import React, {useState, useEffect} from 'react';
    import Icon from './icons/Icon';
    
    const links = [
        {href: '#home_anchor', svgIcon: 'home'},
        {href: '#user_anchor', svgIcon: 'user'}
        // others
    ];
    
    const Navbar = () => {
        const [activeLink, setActiveLink] = useState('');
    
        useEffect(() => {
            const handleScroll = () => {
                // logic scroll
            }
    
            // add anchor
            window.addEventListener('scroll', handleScroll);
    
            // remove anchor from unmount
            return () => window.removeEventListener('scroll', handleScroll)
    
        }, []);
    
        return (
            <nav className="flex flex-col fixed bg-gray-800 align-center">
                {links.map((l) => (
                    <Icon href={l.href} key={l.svgIcon} title={l.svgIcon} active={activeLink === l.href}/>
                ))}
            </nav>
        );
    }
    Ответ написан
    1 комментарий
  • Реализация поиска только внутри модального окна?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Есть какие-то варианты решения данной проблемы? Знаю что можно впихнуть кастомный поиск и отменить эвент ctrl + f.

    Нативного - не встречал, только перехват и прослушка комбинации ctrl + f.
    Ответ написан
  • Как избавиться от моргания блоков при их смене после подгрузок данных с сервера?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Моргает он потому, что в момент отрисовки старый уже удален, а новый еще не отрисован. Варианты решения:
    - Убедиться точно, что новый контент загружен и лишь затем его выводить. Если контент будет слишком тяжелый для устройства клиента, то этот метод не сработает, т.к. устройству еще понадобится время для его рендера, т.е. моргание будет заметно.
    - Добавить некий loading в место, где ожидается появление новых данных.

    Как вариант, вместо пустого дива:
    <section>
        <div ref={tables} className={style.tableWrapper}>
            {isLoading ? createTable(currentTable) : createTable(table)}
        </div>
    </section>
    Ответ написан
  • В каком визуальном редакторе создавать формы для Django с динамическим размером полей и шрифтов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как сохранить в общественном доступе фото (видео) с гарантией его неизменности?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    с гарантией его неизменности?

    Никак. Самое большее, что можно сделать - оформить объект интеллектуальной собственности на аудиовизуальный материал, но это так же не является гарантией его неизменности.
    Ответ написан
    Комментировать
  • Как быстро создать каталог без движка?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли, используя инструменты парсинга, быстро скопировать такой же себе?

    Возможно.
    но я действительно не знаю способов сделать этот процесс не таким трудо-временезатратным.

    Вариантов не много:
    - Копировать руками.
    - Копировать самописным скриптом.
    - Копировать плагином к какой то cms.
    Сайт представляет собой файлы в формате php с кодом html и кусочками php.
    Нужно сделать каталог информационный. Пробовала сделать вручную посредством сил html, но это ОЧЕНЬ долго, и мне кажется, не самое прогрессивное решение.

    Подскажите, пожалуйста, есть ли способы быстро создать каталог из 120 страниц?

    Возьмите WordPress, и скопируйте данные с помощью одного из плагинов:
    - WP Content Crawler Plugin.
    - WordPress Automatic Plugin.
    - WP Scraper Plugin.
    Ответ написан
  • Подойдет ли оперативная память с большей частотой?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Обязательно ли ставить эту же фирму оперативки в ноут, и обязательно ли иметь такую же частоту, или можно больше?

    Необязательно, главное, чтобы совпадал форм-фактор и тип ddr. Частота будет понижена автоматом до поддерживаемой.
    Ответ написан
    Комментировать
  • Дальнейшие этапы в создании Приложения после создания прототипа?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. Дизайнер (человек красиво оформляющий всё нарисованное)

    Дизайнер интерфейсов или дизайнер landing page (если речь про продающую страницу).
    2. Программист (что за программист*).
    * прочитала про бэкэнд разработчиков и … не совсем поняла – это узкая специализация программистов, они прям необходимы или достаточно одного грамотного программера?

    Backend для программирования серверной части приложения, и frontend для фронта/клиента. Fullstack сможет все вместе, но с большей вероятностью - хуже одно/оба из направлений.
    3. Специалист по БД. Это один и тот же человек, что и код пишет?

    Backend без отдельной специализации в проектирование БД, вполне потянет малый/средний проект.
    4. Безопасность. Кто этим занимается, кто прописывает, кто разбирается. Это отдельный человек или навыков программиста достаточно.

    Backend, но! Зависит от того, что Вы понимаете под "безопасностью". Если это безопасность приложения, то либо back, либо front (в зависимости, чья "территория"), если же это сетевая безопасность, то нужен сисадмин.
    Бюджет очень ограничен, поэтому студии однозначно мимо

    Рекомендую оплатить ТЗ от Software Architect, чтобы он расписал, что должен написать back и front.
    - самый-самый минимальный набор специалистов на эти последующие этапы, вплоть до полностью рабочего релиза (т.е. например, дизайнер, программист: ява/питон/С, ???).

    Если рассматривается MVP вариант, то:
    - Сайт/лендинг: WordPress/WooCommerce (PHP, JavaScript).
    - Нестандартное веб-приложение: Back (Python/PHP), Front (JavaScript/TypeScript).
    - Мобильное приложение: Back (Python/PHP), Front (React Native/Flutter).

    Если уходить дальше и предположить, что Ваш MVP начал приносить достаточную прибыль, то я бы рассмотрел переписывание проекта и уход от интерпретируемых ЯП с динамической типизацией в сторону компилируемых ЯП со статической типизацией, например C# + ASP.NET + PostgreSQL.
    Ответ написан
  • Как через API Facebook выключить рекламную кампанию?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    https://developers.facebook.com/docs/business-sdk/...
    https://developers.facebook.com/docs/marketing-apis/
    https://developers.facebook.com/docs/marketing-api...
    https://developers.facebook.com/docs/marketing-api...
    configured_status
    enum {ACTIVE, PAUSED, DELETED, ARCHIVED}

    from facebook_business.api import FacebookAdsApi
    from facebook_business.adobjects.adaccount import AdAccount
    
    my_app_id = '{app-id}'
    my_app_secret = '{appsecret}'
    my_access_token = '{access-token}'
    FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token)
    my_account = AdAccount('act_{{adaccount-id}}')
    campaigns = my_account.get_campaigns()
    print(campaigns)

    campaign = Campaign('123') # campaign id
    campaign.update({
        'status': Campaign.Status.paused,
    })
    Ответ написан
    Комментировать
  • Как на html css наложить градиент поверх картинки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как вариант, mask-image:
    Ответ написан
  • Стоит ли переживать за сайт если IP в спике dronebl.org?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Стоит переживать за сайт если IP в спике dronebl.org?

    Не стоит. Но! Выделенный ip для сайта у меня на 39 позиции, в плане оптимизации.
    Ответ написан
  • Как подружить поисковую оптимизацию с вложенными маршрутами в одностраничном приложении?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Но что с точки зрения SEO, не лучше ли будет использовать вложенный маршрут

    Лучше.
    Не будет ли такой способ приводить к дублированию контента с точки зрения поисковиков?

    Будет.

    Но я бы начал с типа сайта, если это не ssg/ssr, то в поиске Вы проиграете первому встречному классическом сайту без оптимизации.
    Ответ написан
  • Нарушает ли показ в боте данных из whois законы РФ?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Что будет если я сделаю бота в VK который будет смотреть айпи адреса и выводить ФИО владельцев и номера телефонов?

    Если предоставленный номер телефона сможет точно идентифицировать человека с указанным ФИО, то Вы попадаете под 153 ФЗ. Да и согласие субъекта на обработку его ПД у Вас имеется?
    Это по закону УК РФ запрещено?

    Это разрешено, пока Вы не стали объектом интереса.

    Можно добавить звёздочек в ФИО, но опять же, смотрите Выше.
    Ответ написан
    Комментировать