Задать вопрос
  • CURL выдаёт на локалке 200 и нужную инфу а на сервере выдаёт 403 cloud forbiden, в чем проблема?

    dmitriylanets
    @dmitriylanets
    1. можно на вашем компьютере поднять прокси сервер и через него работать
    2. можно найти лучше библиотеки на питоне для парсинга (селениум, рандомный юзерагент)

    п.с не силен в питоне
    Написано
  • CURL выдаёт на локалке 200 и нужную инфу а на сервере выдаёт 403 cloud forbiden, в чем проблема?

    dmitriylanets
    @dmitriylanets
    С компа вы делаете запросы от IP вашего провайдера, а с серверов IP сервера, который автоматически определяется как серверный и банят. Вам нужно использовать прокси.
    Написано
  • Как разблокировать iphone 7?

    dmitriylanets
    @dmitriylanets Автор вопроса
    Drno, уже неделя прошла
    Написано
  • Как разблокировать iphone 7?

    dmitriylanets
    @dmitriylanets Автор вопроса
    Aragorn, ошибся, исправил
    Написано
  • Как разблокировать iphone 7?

    dmitriylanets
    @dmitriylanets Автор вопроса
    676729badc4dc231233107.jpeg
    Написано
  • Как разблокировать iphone 7?

    dmitriylanets
    @dmitriylanets Автор вопроса
    он пытался пароль подобрать
    Написано
  • Как разблокировать iphone 7?

    dmitriylanets
    @dmitriylanets Автор вопроса
    На экране Устройство iphone недоступно. Доступна функция SOS и все.
    Гугл говорит через прогу ITunes которая почему-то не работает на Windows 8 и программу Устройства Apple которая на windows 8 не открывается на скачку https://apps.microsoft.com/detail/9np83lwlpz9k?hl=...

    п.с возможно что то с виндой (предустановленная версия ноута) или устарела, я открываю этот ноут раз в пол года.
    Написано
  • Что такое уровни абстракции в книге 'Чистый код' Мартина?

    dmitriylanets
    @dmitriylanets
    Простыми словами, например если вам нужен компьютер вы покупаете системник, монитор, клаву , мыш - это уровень вам позволяет использовать провод для разетки, hdmi кабеля и тд для соединения и использования ваших устройств.

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

    Есть вариант погрузится в другую абстракцию на уровень транзисторов, там будут другие интерфейсы, коннекторы и тд.

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

    Каждый уровень использует нижестоящий, но не наоборот, это позволяет снизить зависимость.

    В ПО, я использую:
    Слой Инфраструктуры
    Слой Представления
    Слой Приложения
    Слой Домена

    Правила для слоев:
    - Слой НЕ использует вышестоящий
    - Каждый слой меняется со своей периодичностью, как правило чем ближе к представлению тем чаще меняется
    - Общение между слоями реализуется через абстракции
    - Для каждого слоя свои паттерны и правила разработки, например для Домена - это всегда ООП, много тестов. Для aplication - это UseCases, в основном Busines Process, для Presentation - это меньше ООП, больше процедурного кода, меньше тестов, покрайней мере у меняя.

    Расслоение значительно повышает стабильность, понимание.
    Написано
  • Как в chrome headless добавить прокси с логином и паролем?

    dmitriylanets
    @dmitriylanets
    это проблема cromium драйвера, в gekodriver (fierfox) должно работать
    Написано
  • Какие есть способы синхронизации проектов локального веб-сервера между разными рабочими станциями?

    dmitriylanets
    @dmitriylanets
    Виктор, с таким подходом еще долго будете осваивать технологии разработки. читайте дальше про коммит изменений через докер
    Написано
  • Какие есть способы синхронизации проектов локального веб-сервера между разными рабочими станциями?

    dmitriylanets
    @dmitriylanets
    Иногда докер позволяет также комитить изменения в образ , состояние базы, файлов и поднимать на разных машинах
    Написано
  • Как в docker работать с несколькими проектами?

    dmitriylanets
    @dmitriylanets
    сайт будет доступен по адресу localhost:8082

    в другой проект кидаешь этот же, меняешь сеть и volumes site_name на название сайта + меняешь порт на 8083
    и будет доступен localhost:8083
    Написано
  • Как в docker работать с несколькими проектами?

    dmitriylanets
    @dmitriylanets
    привет, можно поднимать одновременно и использовать просто разные внешние порты, вот пример стандартного docker-compose который я использую
    version: "3.8"
    networks:
        site_name:
            driver: bridge
    services:
    
        nginx:
            build: ./docker/nginx
            ports:
                - "8082:80"
            environment:
                PHP_IDE_CONFIG: serverName=default
            volumes:
                - ./:/var/www
                - ./docker/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
            networks:
                - site_name
            depends_on:
                - php-fpm
        php-fpm:
            build: ./docker/php-fpm
            working_dir: /var/www/
            environment:
                PHP_IDE_CONFIG: serverName=default
            volumes:
                - ./:/var/www
                - ~/.ssh/id_rsa:/var/www/.ssh/id_rsa
            networks:
                - site_name
            depends_on:
                - db
        db:
            image: mysql:5.6.51
            # Подключаем к общей сети с другими контейнерами
            networks:
                - site_name
            # Показываем наружу порт
            ports:
                - "3336:3306"
            # Задаем параметры для инициализации БД
            environment:
                LANG: C.UTF-8
                MYSQL_INITDB_CHARSET: utf8mb3
                # Пароль к БД
                MYSQL_ROOT_PASSWORD: root
                # Создаваемая по умолчанию бд
                MYSQL_DATABASE: db
            # Линкуем внешнюю папку для хранения БД
            volumes:
                - "mysql-partscanner-data:/var/lib/mysql:rw"
            command: mysqld --character-set-server=utf8mb3 --collation-server=utf8mb3_general_ci
    volumes:
        mysql-site_name-data:
    Написано
  • Как ускорить выполнение запроса?

    dmitriylanets
    @dmitriylanets Автор вопроса
    Спасибо за предыдущие рекомендации, немного кокретики.
    Консьюмер получает сообщение в котором находится 100 пар артикул+бренд, уникальных. Эти артикулы летят в КХ и извлекают ценовые предложения по данным парам артикул, бренд, кол-во, цена и данных много так как одна деталь каждый день может быть с разной ценой или кол-вом.
    Консьюмер логирует в файл то что делает вот лог
    [11/03/2024 15:23:48] [DEBUG] generate part report start, hash 000125dadae7fa7b2d1273bd3a1751bf [Context [] Extra []]
    [11/03/2024 15:24:25] [DEBUG] execute success, 1 time: 37.32 [Context [] Extra []]
    [11/03/2024 15:24:26] [DEBUG] calculatePart finish, hash 000125dadae7fa7b2d1273bd3a1751bf mem: 19.00 MB [Context [] Extra []]
    [11/03/2024 15:24:26] [DEBUG] save results finish, hash 000125dadae7fa7b2d1273bd3a1751bf mem: 19.35 MB [Context [] Extra []]
    [11/03/2024 15:24:26] [DEBUG] generate part report finish, time: 0.01 hash 000125dadae7fa7b2d1273bd3a1751bf mem: 19.33 MB [Context [] Extra []]

    Запросы такого плана
    SELECT * FROM partscanner_sheet_raw_log WHERE event_date >= '2023-12-01' AND event_date <= '2024-02-24' AND sheet_id IN (15,17,18,19,20,21,22,23,24,25,26,.........,255,256,257,258,259,260,261,262,263) AND type = 'info' AND upperUTF8(key) IN ('MAZ_54321310400601','..........'MAZ_54322704125','MAZ_54322801080') ORDER BY event_time ASC LIMIT 0,10000000

    Кстати сейчас заглянул в лог, вижу ошибки такого плана
    In StreamIO.php line 268:

    fwrite(): Send of 21 bytes failed with errno=104 Connection reset by peer

    Может действительно раббит барахлит, StreamIO.php - класс раббита php
    Написано
  • Как максимально сжимать данных в clickhouse?

    dmitriylanets
    @dmitriylanets Автор вопроса
    1. Date datetime data object_id
    2. Data - string с json данными это лог который хранится
    3. 365 дней
    4. Да
    5. Сложно сказать
    6. В данном случае это и есть архив
  • 5 000 000 статей возможно на Джумле?

    dmitriylanets
    @dmitriylanets
    1. смотрите если забить туда 5 млн статей и вывести в публичной части, например последние 10 статей, то проблем не будет
    2. если работать с ним в админке то могут быть проблемы
    3. много зависит от сервера если настроен соответсвующе то потянет и джумлу с 5млн
  • Go, расширение DTO класса для принимающего аргумента метода интерфейса?

    dmitriylanets
    @dmitriylanets
    Я бы пересмотрел арх.решение для задачи потому что не совсем верно менять дто под разные репозитории, вот почему:
    1. Репозиторий это реализация работы с хранилищем для доменной модели, в идеале вы должны откинуть всю инфраструктуру и реализовать поставленную задачу. Например активация пользователя: действие активировать, объект пользователь. Реализуете поведение используя ArrayRepository для теста например.
    2. Далее подключаете инфраструктуру и реализуете уже работу репозитория с внешним хранилищем , поведение при этом не должно меняться.

    3. Возможно вам нужно использовать TariffActivationDtoInterface вместо UserActivationDto
    тогда public function tariffActivation(TariffActivationDtoInterface $dto): TariffActivationResponse2Dto
    то есть поведение будет соблюдено + $dto может иметь свой функционал