• Что не так с favicon?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Это просто рекомендация или это означает, что с фавиконом все еще есть проблемы?

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

    ky0
    @ky0 Куратор тега Nginx
    Миллиардер, филантроп, патологический лгун
    Nginx, например, позволяет использовать в качестве параметра разделения не только ip-port, а что уогдно - хоть клиентскую куку, хоть юзерагента.

    Если я правильно понял, вам нужна не балансировка, а решение по равномерной утилизации каналов. Такое умеет, например, MPTCP.
    Ответ написан
    1 комментарий
  • Почему при нажатии на кнопку слайдера картинка пропадает js?

    Elaryks
    @Elaryks
    Картинки переключаются (это видно, если убрать overflow: hidden у .card-list). Просто они расположены в столбик, который ограничен по высоте, при этом неактивные карточки занимают своё положение в документе даже при opacity: 0. Вероятно, вы где-то пропустили часть логики или стилей, чтобы первая картинка заменялась на активную картинку. Поскольку у карточек в вашем примере размеры одинаковые, достаточно заменить position: relative на position: absolute у .card.
    Ответ написан
    1 комментарий
  • Как подключить бд к серверу в docker-compose?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Server=localhost

    Чей локалхост? У каждого контейнера он свой. Тогда какой указывать? Оптимально - по имени.
    https://docs.docker.com/compose/networking/
    Reference containers by name, not IP, whenever possible. Otherwise you’ll need to constantly update the IP address you use.

    Port=6002

    Чья туфля порт? Внутри докер-сети (Вы же указали: networks>postgres-network) контейнеры общаются по внутренним портам (рекомендуется).

    Если резюмировать, то будет примерно так (поправить местами при необходимости):

    "Postgres": "Server=localhost; Port=6002; Database=post; User ID=postgres; Password=passwd; Pooling=true"

    "Postgres": "Server=postgres_db; Port=5432; Database=post; User ID=postgres; Password=passwd; Pooling=true"

    docker-compose.yml:
    version: '3.8'
    
    networks:
      postgres-network:
        driver: bridge
    
    services:
      gchain.posts.api:
        image: gchain.posts.api
        build:
          context: .
          dockerfile: GChain.Posts.Api/Dockerfile
        ports:
          - "80:8080"
        networks:
          - postgres-network
        depends_on:
          - postgres_db
    
      postgres_db:
        container_name: postgres_post
        image: postgres:latest
        environment:
          POSTGRES_USER: ${POSTGRES_USER:-postgres}
          POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-passwd}
          POSTGRES_DB: post
        volumes:
          - postgres-data:/var/lib/postgresql/data
        ports:
          - "6002:5432"
        networks:
          - postgres-network
        restart: unless-stopped
    
    volumes:
      postgres-data:
    Ответ написан
    Комментировать
  • Что из перечисленного является протоколом прикладного уровня?

    vabka
    @vabka
    Токсичный шарпист
    Https тоже должен считаться прикладным, раз это "http но с шифрованием".
    udp точно не прикладной.
    chrome и navigator - браузеры
    jpeg - формат картинок.

    => ответ http, https, ftp.
    Если это неправильный ответ - это уже ошибка составителя теста.
    Ответ написан
    7 комментариев
  • Что означает запись [4]byte в языке Go?

    @calculator212
    а как понять, то что перед типом указано - [4] ?
    В го конкретно в данном случае это будет частью типа, по сути это означает, что массив (именно массив а не слайс) - это отдельный тип, который представляет из себя последовательность из 4 элементов.
    Массив считается отдельным типом сам по себе, т.е. [4]byte, [3]byte, []byte это три разных типа.
    Ответ написан
    1 комментарий
  • Почему при добавление переменно в style, она перестаёт обновляться?

    @drawnofmymind
    Когда scale становится 2 он перекрывает твои кнопки.
    Добавь для примера margin-top: 30px; для div
    Ответ написан
    1 комментарий
  • Как обновить верстку на NEXT.JS c Wordpress?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Надо смотреть конкретный конфиг некста, но предположу, что никак. Скорее всего, фронт живет отдельной жизнью, используя api wp.
    в файловом менеджере на vps, где файлы самого next я нашел скрипт, который надо поменять, поменял его

    Так нельзя делать, т.к. это итоговая компиляция проекта. Вам необходимо вносить изменения в исходники некст проекта, затем билдить и экспортировать (если старый проект) проект как статику.
    Ответ написан
    7 комментариев
  • Почему получается подключить Core в Dockerfile?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял задачу (использовать одну общую либу Core для нескольких проектов), то я бы использовал 2 варианта:
    - Создание NuGet пакета (если Core изменяется не часто), затем подключаем его в любом проекте.
    - Или docker multi-stage builds (если Core изменяется часто).

    Пример docker multi-stage builds с авто сборкой Core lib + Api proj (поправить пути и наименования директорий при необходимости):
    # Build Core lib
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS core-build
    WORKDIR /src
    COPY ["../Core/Core.csproj", "./Core/"]
    RUN dotnet restore "./Core/Core.csproj"
    COPY ["../Core/", "./Core/"]
    RUN dotnet build "./Core/Core.csproj" -c Release -o /app/core
    
    # Build API proj
    FROM mcr.microsoft.com/dotnet/sdk:8.0 AS api-build
    WORKDIR /src
    COPY ["Service/API/API.csproj", "./Service/API/"]
    RUN dotnet restore "./Service/API/API.csproj"
    COPY ["Service/API/", "./Service/API/"]
    COPY --from=core-build /app/core /lib
    RUN dotnet build "./Service/API/API.csproj" -c Release -o /app/service
    
    # Create final image
    FROM mcr.microsoft.com/dotnet/aspnet:8.0
    WORKDIR /app
    COPY --from=api-build /app/service .
    ENTRYPOINT ["dotnet", "API.dll"]
    Ответ написан
    1 комментарий
  • Ведётся ли здесь статистика кликов "Отметить решением"? Если да, то каков процент тех вопрошающих, кто НЕ делает это?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Ведётся ли здесь статистика кликов «Отметить решением»?

    Нет, но можно накатить отличное расширение Toster-Comfort, появится процент решений и многое другое. Обезьян можно добавлять в ЧС, но не хватает функции скрытия их вопросов, а так же, удаляю ответы без реакций (предположительно, ответ не помог сообществу).
    Но как мне кажется, куда чаще это происходит из-за наплевательского отношения к статистике и обратной связи. Ответ дан, прочитан, принят к сведению, и гуд-бай! А куда-то там кликать никто никого не обязывал.

    В целом, согласен (исключая новеньких, которые не понимают, зачем нужны эти кнопки). Стараюсь не отвечать на вопросы, если процент решения меньше 40% и самих вопросов несколько десятков.
    мало кто пользуется этой возможностью.

    Пользуюсь постоянно (вне куратора тега).
    может, можно сообразить какой-нибудь способ принуждения?

    Куратор тега может поместит вопрос решением, но автор вопроса все равно может снять решение.
    Ответ написан
    Комментировать
  • Ведётся ли здесь статистика кликов "Отметить решением"? Если да, то каков процент тех вопрошающих, кто НЕ делает это?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Я, во-первых, запоминаю злостных неотмечальщиков и перестаю им отвечать, и во-вторых, удаляю дней через десять ответы, не отмеченные решением, даже если они хорошие.
    Ответ написан
    3 комментария
  • Какова механика работы метода bind?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    bind кэширует текущее значение своего this в момент своего вызова, т.е. он привязывает именно функцию, а не объект, в котором находится функция. Иначе нельзя было бы вызывать bind на просто функции по типу foo.bind(abc). В мануале, кстати, описано что именно она кэширует - там полный список есть: https://developer.mozilla.org/ru/docs/Web/JavaScri...

    Упрощенный пример реализации bind для понимания механизма:
    function binder(that) { 
        let targetFunction = this; // кэш целевой функции
        return function() { targetFunction.call(that) } // В возвращаемой функции используем кэш
    }
    
    let user = {
      name: "Tom",
      intro() {
        console.log("I am " + this.name);
      }
    }
    
    user.intro.binder = binder 
    let f = user.intro.binder(user);
    
    setTimeout(f, 1000);
    
    user.name = "Sid";
    user.intro = function() {
      console.log("Вообще другая функция. name: " + this.name);
    }
    Ответ написан
    1 комментарий
  • Дальнейшие этапы в создании Приложения после создания прототипа?

    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.
    Ответ написан
  • Как решить ошибку с mazelib?

    fleshandmolodoy
    @fleshandmolodoy
    Замени generator на generate (https://github.com/john-science/mazelib)
    Должно получиться так:
    from mazelib.generate.Prims import Prims
    Ответ написан
    Комментировать
  • Почему при разном подходе отправки запроса не появляется response в консоли?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    1. await axios.post().then(), точно правильно?
    2. request_json точно в нужном месте axios.post()?

    Если попробовать так?
    try {
        const res = await axios.post(
            'https://jsonplaceholder.typicode.com/posts',
            JSON.stringify(sendData),
            {
                headers: {'Content-Type': 'application/json'}
            }
        );
    
        console.log(res.data);
    
    } catch (error) {
        console.error('Error: ', error);
    }

    onClick на сабмите и без preventDefault, страница перезагрузится и Вы можете не увидеть ответ в консоль.
    Ответ написан
    Комментировать
  • Как правильно читать(видеть) счетчик(рекламную вставку) на сайте? И правильно интерпретировать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В чем смысл этой вставки и для чего она нужна?

    Это пример классического трекинга посетителей ресурса, где расположен данный элемент (так же известен как "пиксель").
    img src="URI#1.px.png?r=123123&pr=false&u=URI#2"

    Одно-пиксельное прозрачное изображение с url (utm) параметрами.
    style="position: absolute; bottom: 0px; right: 0px; width: 0px; height: 0px;"

    Расположение пикселя так, чтобы он не мешал посетителям и не ломал верстку сайта.

    Принцип работы:
    1. JS на сайте создает этот пиксель с url хоста аналитики и необходимым url (utm) параметрами.
    2. В момент п1 отправляется запрос на хост аналитики с данными из п1.
    3. В момент п2, хост аналитики видит запрос с определенного сайта, парсит url (utm) параметрами и таким образом собирает стату.
    Ответ написан
    Комментировать
  • Платить или не платить за чужую картинку на своём сайте?

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

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

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

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

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Несколько вариантов:

    - How-To: 4 Essential Parts of Multiprocessing in Python (не подходит для синхронизации доступа к файлу, который используется часто, так как может привести к снижению производительности):
    from multiprocessing import Lock, Pool
    
    lock = Lock()
    
    with lock:
        driver = uc.Chrome(seleniumwire_options=wire_options, options=options)

    - Multiprocessing Manager Example in Python (подходит только для синхронизации доступа к простым объектам, таким как списки):
    from multiprocessing import Manager, Pool
    
    manager = Manager()
    
    def get_whoer(proxy: str):
        # ...
    
    if __name__ == '__main__':
        """ip:port:login:password"""
        with Pool(processes=2) as p:
            p.map(get_whoer, proxy_list)

    - How Python Keeps Your Queues Thread-Safe (подходит для синхронизации доступа к любым объектам, но код немного сложнее):
    from queue import Queue
    from multiprocessing import Pool
    
    queue = Queue()
    
    def get_whoer(proxy: str):
        # ...
    
    if __name__ == '__main__':
        """ip:port:login:password"""
        proxy_list = list(map(str.rstrip, open('proxy.txt').readlines()))
        for proxy in proxy_list:
            queue.put(proxy)
        with Pool(processes=2) as p:
            p.map(get_whoer, range(len(proxy_list)))
    Ответ написан
    Комментировать
  • Как создать небольшой Интернет Магазин без Woocommerce?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    преподаватель сказал, что нам нельзя использовать Woocommerce, Elementor для создания магазина.

    1. Создать 3 новых типа записей "Товар", "Категория товара" и "Корзина", с необходимыми полями.
    2. Написать php код, который будет добавлять товар в корзину, если кликнули на соответствующую кнопку.
    3. Наполнить тестовыми товарами и протестировать работу своего велосипеда.
    Подскажите, пожалуйста, как можно создать более менее рабочий магазин?

    и прочие функции типичного Интернет магазина.

    Я бы начал с ТЗ, а не реализации, т.к. слово "прочие функции" слишком широко трактуется.
    Не очень понимаю, как возможно реализовать "добавление товара в корзину"

    Пример работы через сессии:
    if (!session_id()) {
        session_start();
    }
    
    function test_session() {
        if (!session_id()) {
            session_start();
        }
    }
    
    add_action('init', 'test_session', 1);

    Функция добавление товара в корзину:
    function add_to_cart($id, $q = 1) {
        if (isset($_SESSION['cart'][$id])) {
            $_SESSION['cart'][$id] += $q;
        } else {
            $_SESSION['cart'][$id] = $q;
        }
    }

    Функция получения товаров из корзины:
    function show_cart() {
        if (!empty($_SESSION['cart'])) {
            foreach($_SESSION['cart'] as $id => $q) {
                $product = get_post($id);
                echo "<div>{$product->post_title} (x$q)</div>";
            }
        } else {
            echo "Cart has empty";
        }
    }
    Ответ написан
    Комментировать
  • Есть ли сервис, который составит план разработки сайта со всеми нюансами?

    @Drno
    Любой сайт фриланса. Там за денюшку Вам составят подробный план и проект)
    Насчет технических моментов - это не Ваша проблема, а реализатора
    Ответ написан
    Комментировать