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

    @stastp
    В своём доме (тоже желаю сделать его независимым) я решил использовать радиоканал и ZigBee. Когда-то давно закупился Tuya, теперь жалею. Но у туя и плюс есть, а именно широкая поддержка типов устройств.
    Ответ написан
  • Telebot markup не работает клавиатура?

    @stastp Автор вопроса
    Нашел ответ на вопрос: случайно создавал клавиатуру в apigram а исспользовал в telebot
    Ответ написан
    Комментировать
  • Как запустить проект на облачном сервере через docker и nginx?

    @stastp
    0_0 длинный вопрос:)
    Судя по вашему описанию и предоставленным Dockerfile, вы столкнулись с ошибками на этапе сборки Docker-контейнера для фронтенда. Давайте разберем основные моменты и попробуем понять, в чем может быть проблема.

    ▎Ошибки в Dockerfile для фронта

    1. Ошибка в COPY:
    В вашем Dockerfile для фронтенда есть строки:
    COPY --from=build /build /usr/share/nginx/html
    COPY --from=build nginx.conf /etc/nginx/conf.d/default.conf


    Проблема в том, что вы пытаетесь скопировать из несуществующего контекста. Ваша сборка фронтенда начинается с FROM node:alpine as build, и вы должны указать правильный путь к артефактам сборки.

    Попробуйте изменить строку COPY --from=build /build /usr/share/nginx/html на:
    COPY --from=build /frontend/build /usr/share/nginx/html

    Это предполагает, что после выполнения команды npm run build в папке /frontend/build будет находиться ваша собранная версия приложения.

    2. nginx.conf:
    Убедитесь, что файл nginx.conf находится в правильной директории, откуда вы выполняете сборку. Если он не находится в контексте сборки, то Docker не сможет его скопировать.

    ▎Полный пример Dockerfile для фронта

    Вот как может выглядеть ваш Dockerfile для фронта с учетом вышеуказанных изменений:

    # Этап сборки
    FROM node:alpine as build

    WORKDIR /frontend

    COPY package.json package-lock.json ./

    RUN npm install

    COPY . .

    RUN npm run build

    # Этап запуска
    FROM nginx:stable-alpine

    COPY --from=build /frontend/build /usr/share/nginx/html
    COPY ./nginx.conf /etc/nginx/conf.d/default.conf
    EXPOSE 80
    CMD ["nginx", "-g", "daemon off;"]

    ▎Обновление docker-compose.yaml

    В вашем docker-compose.yaml также убедитесь, что вы правильно связываете порты и используете правильные пути:

    version: '3.8'

    networks:
    dev:

    services:
    nginx:
    build:
    context: .
    dockerfile: nginx.Dockerfile # если у вас отдельный Dockerfile для nginx
    ports:
    - "80:80"
    volumes:
    - './nginx.conf:/etc/nginx/nginx.conf'
    depends_on:
    - backend
    - frontend
    networks:
    - dev

    backend:
    build:
    context: ./backend
    networks:
    - dev

    frontend:
    build:
    context: ./frontend
    networks:
    - dev

    ▎Проверка 502 ошибки

    Ошибка 502 Bad Gateway обычно означает, что Nginx не может связаться с вашим бэкендом или фронтендом. Убедитесь, что:

    1. Бэкенд действительно запущен и доступен на порту 8000.

    2. Фронтенд действительно запущен и доступен на порту 3000.

    3. Проверьте логи Nginx и логи ваших приложений для получения более подробной информации о том, что может быть не так.

    ▎Запуск проекта

    После всех изменений попробуйте заново собрать и запустить проект:

    docker-compose up --build

    Если возникнут дополнительные ошибки, пожалуйста, предоставьте их текст для дальнейшего анализа.
    Ответ написан
    Комментировать
  • Как получить initData (startParams) в telegram mini app на React?

    @stastp
    ▎Шаги для получения initData

    1. Подключите Telegram Web App SDK:
    Убедитесь, что вы подключили скрипт SDK в вашем HTML-файле:

    <script src="https://telegram.org/js/telegram-web-app.js"></script>



    2. Инициализация в вашем React приложении:
    В вашем компоненте React вы можете инициализировать Telegram SDK и получить данные следующим образом:
    import React, { useEffect, useState } from 'react';
    
       const MyTelegramApp = () => {
           const [userData, setUserData] = useState(null);
    
           useEffect(() => {
               // Проверяем, доступен ли объект Telegram Web App
               if (window.Telegram && window.Telegram.WebApp) {
                   // Инициализируем Telegram Web App
                   window.Telegram.WebApp.ready();
    
                   // Получаем initData
                   const initData = window.Telegram.WebApp.initData;
    
                   // Парсим данные пользователя
                   const user = parseInitData(initData);
                   setUserData(user);
               } else {
                   console.error('Telegram Web App is not available');
               }
           }, []);
    
           const parseInitData = (initData) => {
               const params = new URLSearchParams(initData);
               return {
                   user: JSON.parse(params.get('user')),
                   hash: params.get('hash'),
                   auth_date: params.get('auth_date'),
                   start_param: params.get('start_param'),
                   chat_type: params.get('chat_type'),
                   chat_instance: params.get('chat_instance'),
               };
           };
    
           return (
               <div>
                   <h1>My Telegram Mini App</h1>
                   {userData ? (
                       <div>
                           <h2>User Info:</h2>
                           <pre>{JSON.stringify(userData, null, 2)}</pre>
                       </div>
                   ) : (
                       <p>Loading user data...</p>
                   )}
               </div>
           );
       };
    
       export default MyTelegramApp;



    3. Обработка ошибок:
    Убедитесь, что ваше приложение действительно запускается внутри Telegram. Если вы тестируете его в обычном браузере, объект window.Telegram не будет доступен, и вам нужно будет проверить это условие.

    ▎Замечания

    • Проверка окружения: Убедитесь, что вы тестируете приложение в самом Telegram, так как window.Telegram не будет доступен в обычном веб-браузере
    Ответ написан
    Комментировать
  • Телеграм не сохраняет просмотренные видео?

    @stastp
    Убедитесь, что у вас включено кеширование медиафайлов в настройках Telegram:

    • Откройте Telegram.

    • Перейдите в "Настройки" (Settings).

    • Выберите "Данные и хранилище" (Data and Storage).

    • Убедитесь, что опция "Сохранять медиафайлы" (Save to Gallery) включена.

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

    @stastp
    ▎1. HTTrack с дополнительными настройками

    Попробуйте изменить настройки HTTrack для более глубокого сканирования сайта:

    • Убедитесь, что вы используете опцию "Загружать все ссылки", чтобы HTTrack мог захватить все ресурсы.

    • В разделе "Настройки" (или "Set Options") добавьте фильтры для загрузки дополнительных ресурсов (например, JavaScript и CSS).

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

    ▎2. Использование Wget

    Wget — это мощный инструмент командной строки для скачивания сайтов. Попробуйте следующую команду:
    wget --mirror --convert-links --adjust-extension --page-requisites --no-parent <URL>


    Эта команда загрузит все необходимые файлы для отображения страницы, включая изображения и стили.
    Ответ написан
    Комментировать
  • По неподтверждённой информации, в нейросети Яндекса YALM-4 около 1.4 миллиардов параметров. В GPT-3 - 130 миллиардов. Насколько этот разрыв радикален?

    @stastp
    Разрыв в количестве параметров между YALM-4 и GPT-3 действительно значительный. Параметры нейросетей — это важный, но не единственный фактор, определяющий их эффективность. Более крупные модели, как правило, имеют лучшие способности к обобщению и могут справляться с более сложными задачами, но качество работы модели также зависит от качества данных, на которых она обучалась, архитектуры модели и алгоритмов обучения.
    Как вы отметили, параметры — это не единственный показатель. Важны также факторы, такие как доступ к данным, инфраструктура для обучения и развертывания моделей, а также способность адаптироваться к потребностям пользователей.
    В целом, хотя разрыв в количестве параметров значителен, он не является единственным определяющим фактором. С правильной стратегией и фокусом на локальные потребности Яндекс вполне способен конкурировать на российском рынке.
    Ответ написан
    5 комментариев