Задать вопрос
  • Чем мониторите температуру процессора на Windows серверах?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Тем же, чем в любых других серверах - дёрганьем IPMI-метрик материнки. ОС, как бы, тут вообще ни при чём.
    Ответ написан
    Комментировать
  • Можно ли приостановить функцию до "приёма сигнала"?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Сделать то можно, например так:
    const moveQueue = {
      queue: [],
      index: 0,
      create() {
        let endMoveCallback;
        // создаём висячий промис и присваиваем его разрешение в endMoveCallback
        const movePending = new Promise(resolve => endMoveCallback = resolve);
        // index чисто для лога
        endMoveCallback.index = this.index++; 
        // добавляем в очередь
        this.queue.push(endMoveCallback);
        // возвращаем проис ждущий вызова endMoveCallback
        return movePending;
      },
      last() {
        // забираем из очереди последнее добавленное
        return this.queue.pop();
      }
    }
    
    async function turn() {
      await startMove();
      await startShoot();
    }
    
    function startMove() {
      console.log('startMove', moveQueue.index);
    
      return moveQueue.create();
    }
    
    function endMove() {
      const activeMoveEnd = moveQueue.last();
      if (activeMoveEnd) {
    
        console.log('endMove', activeMoveEnd.index)
    
        activeMoveEnd();
      } else {
        onsole.error('`endMove` called when there are no active moves')
      }
    }
    
    function startShoot() {
      console.log('startShoot');
    }
    
    turn();
    setTimeout(() => endMove(), 1000)

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network.


    В общем так:
    * .Net 6
    * Razor - для общедоступных страниц
    * https://mui.com/ для админки
    * база данных - MSSql или Postgree
    * система - ubuntu, windows, redhat

    Что не понятно уточняйте.

    UP реально постучитесь в телеграмм, консультация выйдет не дорого, но позволит сэкономить прилично
    Ответ написан
    Комментировать
  • Как правильно выбрать фреймворк и яп для проекта, если ты заказчик?

    Задача очень абстрактная и в такой постановке может выполняться на любом языке.

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

    @historydev Куратор тега JavaScript
    Mistkerl, drück den Knopf.
    Закругления работают. Ваша проблема в смещении spacing на -30:
    <template>
        <div class="doughnut">
            <canvas ref="chart"></canvas>
        </div>
    </template>
    
    <script setup>
    
    import {onMounted, ref} from "vue";
    import {
        Chart,
        DoughnutController,
        ArcElement,
    } from 'https://cdn.skypack.dev/chart.js@4.2.1';
      
    Chart.register(
        DoughnutController,
        ArcElement,
    );
    
    const chart = ref(null);
    
    const data = {
        datasets: [
            {
                data: [40, 22, 8, 30],
                backgroundColor: [
                    "#F04B92",
                    "#54B2FD",
                    "#FFC24B",
                    "#49EBCE",
                ],
                display: true,
                offset: 2,
                spacing: -30,
                borderColor: "#fff",
                borderWidth: 2,
                borderRadius: [
                    {outerStart: 16,  outerEnd: 2, innerStart: 16},
                    {outerStart: 16,  outerEnd: 2, innerStart: 16},
                    {outerStart: 16,  outerEnd: 2, innerStart: 16},
                    {outerStart: 16,  outerEnd: 16, innerStart: 16, innerEnd: 16}
                ],
                cutout: "58%",
            }
        ],
        labels: false
    };
    
    const config = {
        type: 'doughnut',
        data,
        options: {
            rotation: 270,
            circumference: 180,
            maintainAspectRatio: false,
            responsive: true,
            animation: {
                animateRotate: true
            }
        },
    }
    
    onMounted(() => {
      
        const myChart = new Chart(
            chart.value,
            config
        );
      
        const ctx = myChart.canvas.getContext("2d");
    
        ctx.scale(0.8, 0.8);
    });
      
      
    
    </script>
    Ответ написан
    6 комментариев
  • Как отписаться от 2000 пользователей в Инстаграм?

    @rPman
    Расширение к браузеру типа tempermonkey, запускающее пользовательский JavaScript по маске в url.
    Заранее помести список ид пользователей в localstorage и скриптом бери следующий id пользователя, открывай его страницу, или элементов с помощью css selector и метода querySelector, и жми на кнопку отписаться .click()

    Паузы между действиями с помощью setTimeout
    Ответ написан
    Комментировать
  • LDAP для ПК с Windwos и Linux, есть решение?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Только лдап? Например, FreeIPA или OpenLDAP.
    Ответ написан
    6 комментариев
  • Почему не отсеиваются нули при сравнении 0 < 0?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    array[index + 1] ? item < array[index + 1] : true Что эта конструкция делает, можете объяснить? Ошибка в ней.
    Ответ написан
    5 комментариев
  • Почему не отсеиваются нули при сравнении 0 < 0?

    @Wexter
    А что по вашему должен вернуть этот код?
    0 ? .. : true
    Спойлер
    он всегда вернёт true
    Ответ написан
    1 комментарий
  • Что означает запись?

    @res2001
    Developer, ex-admin
    Похоже, это прям низкий уровень - работа с регистрами UART.
    COMBase - это базовый адрес порта. По этому адресу находятся регистры порта их несколько. Добавляя число вы пишите данные в регистр, соответствующий заданному смещению относительно базового адреса.
    Вот тут есть старинное хорошее описание низкоуровневой работы с UART и последовательным портом, с регистрами и прочим.
    Ответ написан
    Комментировать
  • Что означает запись?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В контроллере COM-порта несколько регистров. Запись в них определённых значений меняет режим работы порта. Эти регистры адресуются от базового адреса контроллера.
    _outp(COMBase+3,0x80); - Line Control Register (LCR). Установка старшего бита разрешает доступ к делителю.
    _outp(COMBase,0x01); - установка младшего байта делителя (0x01 => 115200 tick/s).
    _outp(COMBase+3,0x03); - отключение доступа к делителю и установка размера символа 8 бит, 1 стоп-бит, без контроля чётности.
    _outp(COMBase+1,0x00); - Inerrupt Enable Register (IER), запрет всех прерываний.
    _outp(COMBase+2,0xC7); - FIFO Control Register (FCR), разрешить буферы FIFO размером 14 байт и очистить их.
    _inp(COMBase); - прочитать байт из буфера.
    www.osdever.net/documents/CP_serial.pdf
    Ответ написан
    Комментировать
  • Как лучше подключать svg иконки во vue js?

    @Pike-meow
    Pike - is a life
    На самом деле, решение зависит от ситуации.

    Если у вас есть не огромный(!) набор иконок для повсеместного использования - то вам нужен SVG Sprite. В других ответах уже накидали даже названий библиотек для Vue.

    Если коротко, то использование выглядит следующим образом:

    Кладете в public файл со спрайтами (обычно, сборка такого файла берут на себя библиотеки. Не хитрый SVG файл, который можно один раз собрать и юзать сборку)

    А далее - элементарный компонент

    Icon.vue
    <template>
      <svg>
        <use :xlink:href="`path-to-sprite.svg#${iconName}`"></use>
      </svg>
    </template>
    
    <script lang="ts" setup>
      defineProps<{
        iconName: string;
      }>();
    </script>


    Использования будет выглядеть следующим образом:
    App.vue
    <template>
      <div>
        <Icon name="some-icon-1" />
        <Icon name="some-icon-2" />
        <Icon name="some-icon-3" />
      </div>
    </template>
    
    <script lang="ts" setup>
      import Icon from './Icon.vue';
    </script>


    Тут есть небольшой подводный камень, связанный с размерами (use не учитывает width, height, viewBox иконки, которая в Spritemap). Обходится элементарно - добавлением размера для svg с помощью CSS.

    Если вам нужны 2-3 иконки - более рационально будет просто заинлайнить их в template. Не очень оптимизировано, зато не тратим кучи времени на ненужные телодвижения.

    В случае с большим количеством иконок (более 500) SVG Sprite будет неэффективен ввиду того, что на каждую страницу будет загружаться тонна ненужных иконок. В таких случаях, лучше хранить иконки без спрайта, просто в ассетах и использовать ссылки на них в <use>.

    Ссылки:
    - https://developer.mozilla.org/en-US/docs/Web/SVG/E...
    Ответ написан
    Комментировать
  • Как лучше подключать svg иконки во vue js?

    @iljaGolubev
    Если точно нужны inline svg, то vue-svg-loader - он делает автоматически ваш 1-й вариант.

    Ещё есть vite-svg-loader - подключается как плагин к vite и удобен тем, что можно из vite.config менять как импортировать файл (url или raw).

    Можно написать свой компонент в который передавать имя иконки. Только не делайте свой 2-й вариант - его недостаток в том, что все иконки всегда загружаются в браузер даже если никогда не будут показаны.

    через "v-if/v-else-if" рендерить ту, которая равна "close".

    Если у вас всего 2-3 иконки - можно и так, но в общем случае - старайтесь не использовать длинные "портянки" if/else. Почти всегда можно обойтись без такого кода. (conponent is или defineAsyncComponent)
    Ответ написан
    Комментировать
  • Не работает ПК и выдает ошибку хоть раньше проблем? ?не было только техники стало больше?

    @Drno
    Нестабильное напряжение в 220в - ставить бесперебойник
    Либо - нехватает опять же питания из розетки - отключите другие потребители(типа холодоса. микроволновки, чайника итд, что много жрет) и попробуйте
    Ответ написан
    3 комментария
  • Болт для крепления видеокарты к корпусу?

    @Drno
    1е фото - крайний справа
    Ответ написан
    Комментировать
  • Почему метод map in array вернул строку, а не массив?

    Вернул строку, потому, что команда .join(', '); - превращает массив в строку с разделителем ', '
    Ответ написан
    4 комментария
  • Какую базу данных использовать для сервиса маркетинга?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Мать моя женщина про нормализацию ни кто не вспоминает итак

    Вам нужно как минимум 2 таблицы

    Domains
    id
    domainname

    Customers
    id
    domainId
    email
    firstName
    lastName

    NoSQL использовать не нужно.
    Ответ написан
    1 комментарий
  • Каким образом определяют наиболее старую версию python для работоспособности кода?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никто этим не занимается. В современном мире есть 100500 способов виртуализации Python
    библиотек
    . Виртуалки, Докеры, Кубернетисы, И всякие анаконды, конды и прочее что можно
    в командной строке делать просто меняя PATH.
    Ответ написан
    Комментировать
  • Каким образом определяют наиболее старую версию python для работоспособности кода?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    - у тебя какой версии X?
    - Y
    - ага, а у меня Z. Значит напишем "не тестировалось с X версии ниже Y"


    Спустя время
    - давай поднимем минимальную версию до Z, смотря какая там фича полезная нам была бы
    - хм, вышел он N времени назад, проблемой оказаться не должно, не возражаю, добавь только в доку "требуется X версии минимум Z"


    Так оно и происходит обычно.
    Ответ написан
    Комментировать
  • Почему свитч не видит IP-камеру видеонаблюдения?

    @Drno
    принести свитч к камерам и воткнуть - если работает, проблема в обжиме \ кабеле \ длине
    если не работает - то очевидно что в свитче

    так же могли порты повыгорать, на свитче

    ну или не хватает бюджета POE у свитча, отключите все другие камеры и пробуйте их включить по 1й, те которые не работают
    Ответ написан
    Комментировать