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

    можно что-то типа такого:
    SELECT d.id, name, p.type, pp.price_b, pp.price_c, pp.price_d FROM device d
    INNER JOIN (SELECT device_id, MAX(type) as "type" FROM price GROUP BY device_id) p ON p.device_id = d.id
    INNER JOIN price pp ON pp.type = p.type AND pp.device_id = d.id

    Но он не выдаёт товары без цены. Можно попробовать сделать LEFT JOIN, чтобы выводило товары без цены.

    Версия от ChatGPT

    Выглядит страшно, но работает
    SELECT d.id, 
        CASE 
            WHEN p3.type IS NOT NULL THEN p3.type 
            WHEN p2.type IS NOT NULL THEN p2.type 
            WHEN p1.type IS NOT NULL THEN p1.type 
        END AS type, 
        CASE 
            WHEN p3.type IS NOT NULL THEN p3.price_b 
            WHEN p2.type IS NOT NULL THEN p2.price_b 
            WHEN p1.type IS NOT NULL THEN p1.price_b 
        END AS price_b, 
        CASE 
            WHEN p3.type IS NOT NULL THEN p3.price_c 
            WHEN p2.type IS NOT NULL THEN p2.price_c 
            WHEN p1.type IS NOT NULL THEN p1.price_c 
        END AS price_c, 
        CASE 
            WHEN p3.type IS NOT NULL THEN p3.price_d 
            WHEN p2.type IS NOT NULL THEN p2.price_d 
            WHEN p1.type IS NOT NULL THEN p1.price_d 
        END AS price_d 
    FROM device d 
    LEFT JOIN (SELECT device_id, type, price_b, price_c, price_d 
               FROM price WHERE type = 3) p3 ON d.id = p3.device_id 
    LEFT JOIN (SELECT device_id, type, price_b, price_c, price_d 
               FROM price WHERE type = 2) p2 ON d.id = p2.device_id 
    LEFT JOIN (SELECT device_id, type, price_b, price_c, price_d 
               FROM price WHERE type = 1) p1 ON d.id = p1.device_id

    Ответ написан
  • Как бесплатно разместить бота?

    В Яндекс облаке есть free tier для serverless containers - просто упаковываешь своего бота в docker-котейнер. Не помню сколько там CPU минут бесплатно даётся, но для чего-то мелкого должно хватить.

    Ещё где-то порядка 50 копеек в месяц нужно будет выложить за container registry (по началу)
    Ответ написан
    Комментировать
  • Как перевести значение "1 день" в секунды? А еще как перевести значение "1 день" например в 19.05.2023 1:42?

    Простейшая арифметика из третьего класса школы + немного гуглежа по поводу работы со временем в js.
    function getTimerEndFromNow(prompt) {
     return getTimerEndFrom(new Date(), prompt);
    }
    
    function getTimerEndFrom(start, prompt) {
      return new Date(start.valueOf() + getSecondsByPrompt(prompt) * 1000);
    }
    
    function getSecondsByPrompt(prompt) {
      const [count, measure] = prompt.split(' ');
      return count * getSecondsByMeasure(measure);
    }
    
    function getSecondsByMeasure(measure) {
      switch(measure.toLowerCase()) {
        case 'день': return 60 * 60 * 24;
        case 'час': return 60 * 60;
        case 'минута': return 60;
        default: throw new Error(`Unknown measure ${measure}`);
      }
    }


    С ЭТИМ БЛИН ДАЖЕ БЕСПЛАТНЫЙ БОТ НА ОСНОВЕ GPT СПРАВЛЯЕТСЯ

    Запрос:

    /gpt
    Мне нужно перевести значение "1 день"/"1 час"/"1 минута" в секунды для таймера. А точнее функция, но я вообще не знаю как это сделать. И еще одну функцию для того что бы например таймер получил сегодня а пишется во сколько он закончится, точнее например в 19.05.2023 1:42

    Напиши функции на js

    Ответ:

    Для перевода "1 день"/"1 час"/"1 минута" в секунды можно использовать следующую функцию:

    function convertToSeconds(time) {
      const timeArr = time.split(' ');
      const value = parseInt(timeArr[0]);
      const unit = timeArr[1];
    
      switch (unit) {
        case 'день':
          return value * 24 * 60 * 60;
        case 'час':
          return value * 60 * 60;
        case 'минута':
          return value * 60;
        default:
          return 0;
      }
    }


    Пример использования:

    const secondsInDay = convertToSeconds('1 день'); // 86400
    const secondsInHour = convertToSeconds('1 час'); // 3600
    const secondsInMinute = convertToSeconds('1 минута'); // 60


    Для форматирования даты в строку можно использовать объект `Date` и методы `getFullYear()`, `getMonth()`, `getDate()`, `getHours()`, `getMinutes()`, `getSeconds()`:

    function formatDate(date) {
      const year = date.getFullYear();
      const month = addLeadingZero(date.getMonth() + 1);
      const day = addLeadingZero(date.getDate());
      const hours = addLeadingZero(date.getHours());
      const minutes = addLeadingZero(date.getMinutes());
      const seconds = addLeadingZero(date.getSeconds());
    
      return `${day}.${month}.${year} ${hours}:${minutes}:${seconds}`;
    }
    
    function addLeadingZero(value) {
      return value < 10 ? '0' + value : value;
    }


    Пример использования:

    const endDate = new Date(2023, 4, 19, 1, 42, 0);
    const formattedDate = formatDate(endDate); // '19.05.2023 01:42:00'


    Ответ написан
    7 комментариев
  • Как перевести деньги с иностранной карты на российскую?

    Можно на банковский счёт.
    Вроде с грузии в тинькофф должно нормально переводить денежки (спроси в поддержке на всякий случай, особенно по поводу комиссий).

    Ещё можно через p2p обменники.
    Сначала покупаешь монеты за деньги с payoneer или bank of georgia, а потом покупаешь рубли на тинькофф за эти моненты.
    Ответ написан
  • Что происходит с Xbox Series X?

    Диск медленный видимо.
    Например он может замедлиться из-за того что почти заполнен на полную.
    Емнип, из коробки в xsx SSD стоит не самый быстрый - можно попробовать заменить.
    Ответ написан
    Комментировать
  • Как скрестить SSO и ASP.NET Core Identity?

    Это реализуется через свой Authentication Provider:
    https://learn.microsoft.com/en-us/aspnet/core/secu...

    Авторизацию выбирай на свой вкус - её настройка никак не зависит от способа аутентификации:
    https://learn.microsoft.com/en-us/aspnet/core/secu...
    Ответ написан
    4 комментария
  • HP NVIDIA GeForce RTX 2060 Super редкая модель?

    Она поставляется только в комплекте с предсобранными компьютерами от HP.
    Не редкая - её просто редко продают отдельно от компьютера (только в случае апгрейда).
    Ничего особенно ценного в ней нет, а закрытое объявление на 70к - это, вероятно, ещё со времён дефицита.
    А ещё я только что нашёл объявление о продаже за 10к.
    Ответ написан
    Комментировать
  • Уход во время испытательного срока, нормально ли это?

    Да, это нормально.

    Испытательный срок на то и существует, чтобы ты мог для себя решить,подходит эта работа тебе по условиям или нет.

    Если это вопрос только денег - имея оффер на руках можно попробовать попросить больше денег.
    Ответ написан
    Комментировать
  • Как запустить python скрипт/exe файл через arduino?

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

    2. Простой, но костыльный и пахнущий зловредами - BadUSB

    Зависит от твоей задачи.
    Ответ написан
    Комментировать
  • Два IP на одном домене. Как настроить переадресацию?

    Это разруливается не через DNS, а через балансировщик.
    У тебя будет, получается, три узла: Основной, Резервный, и Балансер.
    В DNS ты прописываешь балансер (через A/AAA или CNAME - не важно).
    Все запросы от клиентов идут на Балансер и он их пересылает на основной.
    В случае сбоя, Балансер каким-то образом выясняет состояние основного узла (может прямо запрашивать периодически какой-нибудь GET /health или смотреть на ответы, которые он даёт клиентам), и перераспределяет запросы на Резервный в случае, когда был выявлен сбой, и наоборот - в случае сбоя Резервного можно попробовать перенаправить запросы снова на Основной (тут уже как настроишь).

    Попытаться обойтись без балансера можно, но тогда ты столкнёшся с той ситуацией, с которой ты столкнулся:

    При коннекте к www.site1.ru провайдеры через раз подключаются к правильному айпи, то к основному, то к резервному.
    Соответственно где то на сайт заходит, где то нет так как конектится ко 2 айпи который в текущий момент сервер не использует.

    И уйти от этого не получиться, тк это не баг, а фича - DNS сервер провайдера будет кэшировть информацию о записях в твоём домене, чтобы не нагружать твой сервер лишними запросами и быстрее отдавать ответ своим абонентам, при этом при кэшировании может учитываться тот TTL, который ты сам указал.
    + Кэширование может, и скорее всего будет в том числе и на стороне конечного клиента.

    Придирки к терминологии

    Не существует "DNS регистраторов". Есть просто регистраторы, которые говорят что домен принадлежит тебе и позволяют назначить dns-сервера, которые будут этот домен обслуживать.
    И есть отдельно dns-хостинги, где ты можешь прописать различие записи в рамках домена.
    Ответ написан
    5 комментариев
  • НЕ ВЫДАЕТ 144 ГЕРЦ?

    Либо кабель некачественный, либо материнская плата/процессор не поддерживают 144гц в выбранном тобой разрешении
    Ответ написан
    Комментировать
  • Что использовать для хранения файлов, картинок?

    За банку пива можно хранить файлы в S3 - это удобно и хорошо масштабируется.
    Все облачные провайдеры предлагают подобную услугу.

    Если у тебя там счёт не на терабайты идёт и сервис не очень нагруженный - выйдет очень дёшево:
    (Яндекс в качестве примера)
    https://cloud.yandex.ru/docs/storage/pricing
    + Тебя может заинтересовать CDN, который достаточно хорошо с S3 интегрируется

    В базу данных сохраняй только идентификатор, по которому потом сможешь найти файл в хранилище.

    А бесплатным бывает только сыр в мышеловке
    Ответ написан
    2 комментария
  • Как запустить программу Siemens NX?

    Процессор устарел - обновляйся.
    Видимо Siemens NX нужны AVX-инструкции, которых нет в твоём атлоне.
    "Пропатчить" невозможно.

    Ну и встречный вопрос - зачем тебе Siemens NX?
    Ответ написан
    9 комментариев
  • Где создать бесплатную PostgreSQL с соответствием 152-ФЗ?

    1. 152 ФЗ распространяется только на операторов ПД.

    2. Большинство требований 152 ФЗ идут не от использования какого-то "кошерного" ПО, а от введения различных регламентов и процедур на предприятии. Ведение различных журналов доступа к ПД, ограничение круга лиц, которые имеют к ПД доступ, введение ответственных за сохранность ПД, итд.

    3. Есть куча провайдеров, которые предоставляют IaaS, сертифицированный по 152-ФЗ, но просто перенести свои сервера в него, это:
    3.1. Дорого
    3.2. Не достаточно
    3.3. Не является безальтернативным вариантом - ты точно также можешь, в принципе, расположить в кладовке своего офиса стойку с сервером, и таким образом соблюсти требования ФЗ.

    4. Не всегда нужно покупать за 200к лицензию на сертифицированный постгрес - до определённых уровней защиты это можно компенсировать процедурами и регламентами.
    Ответ написан
    Комментировать
  • Как определить ОС с которой пользователь сидит в телеграм?

    Если бы такая функция была, то что она должна была бы вернуть, если пользователь сидит одновременно с десктопа и с мобильного клиента?
    Ответ написан
    2 комментария
  • Почему поле значимого типа не меняется при вызове метода?

    Не меняется оно у тебя из-за того что поле объявлено как readonly:
    private readonly Brick _controllableBrick;

    Убери readonly и всё будет работать.

    PS: Подобный код в тестах сильно снижает читабельность:
    Brick controlledBrick = new(Vector3Int.up * 5, BrickPatterns.LBlock);

    Убери сетап и пиши сразу так:

    var controlledBrick = new Brick(new Vector3Int(0,5,0), BrickPatterns.LBlock);
    var brickSpace = new(controlledBrick);
    brickSpace.LowerControllableBrick();
    Assert.AreEqual(new Vector3Int(0, 4, 0), _brickSpace.ControllableBlockPosition);
    Ответ написан
  • Unity выдает ошибку CS0103 что делать?

    В сообщении об ошибке всегда указывается строка, на которой она возникла и подробное описание.
    Ответ написан
  • Можно ли обучать нейросеть на базе книг?

    То что ты описываешь называется "языковая модель" - тема достаточно большая и очень сложная, если хочется получать что-то осмысленное.

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

    Советую также почитать про IBM Chef Watson:
    https://www.bonappetit.com/entertaining-style/tren...
    Там вообще нет по сути никакого машинного обучения.

    + Ещё учитывай, что просто взять текст произвольной книги и использовать для обучения нейросети - это преступление
    Ответ написан
    7 комментариев