Задать вопрос
  • Лучшие книги для изучении информатики с нуля?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    но понял что там 80% воды, 15% бредни "академиков" написавших эти книги, и только 5% реально годной информации


    Каким образом вы это определили?

    не писать быдлокод как 90% программистов


    Смелое заявление.

    Начните с «Код. Тайный язык информатики» Чарльза Петцольда — это прекрасная книга для постижения основ информатики. Далее берите учебники по ОС, Сетям, Алгоритмам. По-последнему очень рекомендую «Грокаем Алгоритмы».
    Ответ написан
    1 комментарий
  • Есть ли разница втыкать приёмник радио канала для мышки в USB 2.0 или USB 3.0?

    @alexalexes
    Не будут. Скорости USB 2.0 хватит на несколько адаптеров различных устройств управления.
    Но вы можете купить USB 3.0 хаб не только для подключения таких адаптеров, но для подключения внешних жестких дисков. Вот на них почувствуете разницу.
    Ответ написан
    Комментировать
  • Как установить utf8 локаль для postgresql?

    Попробуйте так:
    CREATE DATABASE "имя_базы"
      WITH OWNER "postgres"
      ENCODING 'UTF8'
      LC_COLLATE = 'ru_RU.UTF-8'
      LC_CTYPE = 'ru_RU.UTF-8';
    Ответ написан
    6 комментариев
  • Как установить utf8 локаль для postgresql?

    lesovsky
    @lesovsky
    System engineer and PostgreSQL DBA
    к этому нужно еще добавить TEMPLATE = template0.

    т.е. получится
    CREATE DATABASE "имя_базы"
      WITH OWNER "postgres"
      ENCODING 'UTF8'
      LC_COLLATE = 'ru_RU.UTF-8'
      LC_CTYPE = 'ru_RU.UTF-8'
      TEMPLATE = template0;
    Ответ написан
    Комментировать
  • Как сделать аутентификацию на сайте через телеграм?

    CoDeR2006
    @CoDeR2006 Автор вопроса
    TS
    И так, для меня в будущем, и для тех кто это нагуглил:

    Дело в том что без виджета на начало 2024 сделать авторизацию практический не возможно, вот реально правильное решение если у вас похожий стэк, и вы планируете делегировать саму регистрацию на сервер, а не делать все через front.

    Интегрируем виджет в приложение react + ts:
    (это если вам надо что бы был не редирект, а вызов функции со стороны telegram)
    import { useEffect } from 'react'
    import { ITelegramUser } from '../../../../types/telegram/api-telegram-user.ts'
    
    declare global {
      interface Window {
        onTelegramAuth: (user: ITelegramUser) => void
      }
    }
    
    export const ButtonTelegramAuth = () => {
      useEffect(() => {
        const button = document.createElement('script')
        button.async = true
        button.src = 'https://telegram.org/js/telegram-widget.js?22'
        button.setAttribute('data-telegram-login', 'name_bot')
        button.setAttribute('data-size', 'large')
        button.setAttribute('data-radius', '20')
        button.setAttribute('data-onauth', 'onTelegramAuth')
    
        document.body.appendChild(button)
    
        window.onTelegramAuth = function (user) {
          alert(
            'Logged in as ' +
              user.first_name +
              ' ' +
              user.last_name +
              ' (' +
              user.id +
              (user.username ? ', @' + user.username : '') +
              ')'
          )
        }
    
        return () => {
          document.body.removeChild(button)
        }
      }, [])
    
      return <div id="telegram-widget-container"></div>
    }


    если нужен все таки редирект мы добавляем такое поле:
    script.setAttribute('data-auth-url', 'https://site.pw');

    и удаляем это:
    button.setAttribute('data-onauth', 'onTelegramAuth')
    
    declare global {
      interface Window {
        onTelegramAuth: (user: ITelegramUser) => void
      }
    }
    
     window.onTelegramAuth = function (user) {
          alert(
            'Logged in as ' +
              user.first_name +
              ' ' +
              user.last_name +
              ' (' +
              user.id +
              (user.username ? ', @' + user.username : '') +
              ')'
          )
        }


    И так объясняю в чем задумка:
    В ваше приложение react интегрируется все тот же виджет, но правильным образом. После нажатия на виджет происходит авторизация пользователя (он вводит свои данные / просто нажимает войти). Потом телеграм передает все его данные вам (в функцию - №1 способ / по get параметрам в url). Если вы делегируете
    регистрацию на сервер (а так правильно) то выбираете 2 способ. Сервер получает данные валидирует их и заносит в БД, затем делает редирект вашего пользователя к вам обратно на front, и заносит token (или что там еще не разобрался) в HttpOnly Ckookie. Ну а далее в моем случае Guard будет проверять есть этот token или нет, годен он или нет.

    Передаю привет Максиму в будущем. Как дела Макс ?
    Ответ написан
    11 комментариев
  • Почему на MacBook'е Telegram и WhatsApp не загружают рандомные медиа: видео (практически все), большие фото (50/50), голосовухи (в редких случаях)?

    @strij
    Мне помогла авторизация через браузер на web.telegram.org с этого же макбука. После этого все медиа стали отображаться и в приложении
    Ответ написан
    3 комментария
  • Как убрать полоски фона на Behance?

    @KateKoles
    Редактировать проект > стили > интервалы у содержимого
    Ответ написан
    Комментировать