Задать вопрос
  • Ютуб-канал Simple Сode может ли научить яп C#?

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

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Ставьте nginx на proxmox, и обратнопроксируйте внутрь виртуалок в зависимости от server_name.

    Или второй вариант, nginx принимает коннекты на стандартном 80-ом порту, а потом в зависимости от доменного имени редиректит на домен1:8080, домен2:8081, и т.д. А уже эти порты напрямую прокинуты внутрь виртуалок. Nginx тоже может быть в какой-нибудь из виртуалок, главное 80-ый порт завести в неё.
    Ответ написан
    Комментировать
  • Как добавить класс active, когда слайд активен?

    Nolis
    @Nolis
    it-гопник
    для начала нужно создать массив слайдов, потом сгенерить на его основе DOM.
    const slides = [
    { id: 0, img: 'путь', active: true },
    { id: 1, img: 'путь', active: false }
    ]
    После нажатия кнопки перехода, делай новый слайд активным, а все остальные переводи в active: false
    Другой вариант: тык
    Ответ написан
    Комментировать
  • Почему не работает?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    if(!message.content.includes(settings.greetingMessageText) && !message.content.includes(autoRespData[i].command)) {
    Ответ написан
    2 комментария
  • Как округлить тысячные?

    Dr_Elvis
    @Dr_Elvis
    В гугле забанен
    окей гугл, js округление до десятых
    Ответ написан
    Комментировать
  • Как округлить тысячные?

    Если число больше тысячи, то делим его на тысячу, либо сотни и приписываем к строке " тыс.".
    Если чисто больше миллиона, то делим его на миллион и получаем цифру 1 и приписываем к ней " млн.".

    Думаю логика понятна, пишите её сами. Ведь вы хотите чему то научится, а не чтобы за вас делали работу.

    UPD!
    По случайности мне пришлось написать аналогичное, мне необходимо было округлять большие суммы в тысячи, миллионы и т.д. Я решил, что будет полезно поделится этим с вами.

    Написал небольшую функцию, выглядит следующим образом:
    function num(number) {
        function number_format(number, decimals, dec_point, thousands_sep) {
            number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
            let n = !isFinite(+number) ? 0 : +number,
                prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
                sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
                dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
                s = '',
                toFixedFix = function (n, prec) {
                    let k = Math.pow(10, prec);
                    return '' + Math.round(n * k) / k;
                };
    
            s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
            if (s[0].length > 3) {
                s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
            }
            
            if ((s[1] || '').length < prec) {
                s[1] = s[1] || '';
                s[1] += new Array(prec - s[1].length + 1).join('0');
            }
            
            return s.join(dec);
        }
    
        if (number <= 9999 && number >= -9999)  {
            return number_format(number, 0, '.', '');
        } else if(number <= 999999 && number >= -999999){
            return number_format(number/1e3, 2, '.', '') + ' тыс. ';
        } else if(number <= 999999999 && number >= -999999999){
            return number_format(number/1e6, 2, '.', '') + ' млн. ';
        } else {
            return number_format(number/1e9, 2, '.', '') + ' млрд.';
        }
    }


    Вызывается соответственно `num(integral/float)`
    Ответ написан
    1 комментарий
  • Как реализовать очередь в node js?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если в стеке технологий у вас стоит Redis - то можно его использовать для очереди
    https://redis.com/redis-best-practices/communicati...
    Ответ написан
    Комментировать
  • Как задать путь для установки программы, у которой отсутствует эта возможность?

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

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    Ответ написан
    Комментировать
  • Как реализовать очередь в node js?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Как правильнее было бы реализовать это?

    Не изобретать велосипед, а погуглить готовые решения для очередей.
    Беглый поиск:
    https://www.npmjs.com/package/queue
    https://github.com/bee-queue/bee-queue
    https://levelup.gitconnected.com/how-to-implement-...
    Ну и всякие там rabbitmq и т.п.
    Ответ написан
    1 комментарий
  • Как увеличить FPS в системе?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Как увеличить FPS в системе?

    Ты уже задавал этот вопрос в комментариях к предыдущему вопросу, там есть ответ:

    Основной способ стандартный -- не перерисовывать всё, если можно этого избежать.

    Нет нужды перерисовывать весь интерфейс в бэк-буфере, если ничего не изменилось кроме положения мыши. Указатель мыши вообще можно рисовать прямо во фрейм-буфере, когда он перемещается копировать маленький квадратик из бэк-буфера и рисовать стрелку в новом месте.
    Ответ написан
  • Скачивания файлов (в браузере) с FTP сервера через VPS?

    @rPman
    ftp худший способ, работает медленно, веб сервером не поддерживается
    купил FTP сервер
    где же такой ужас нашел
    p.s. fuse mount будет глючить, проверено, любой косяк даже малейший с сетью до ftp и вся машина висит и ожидает таймаут.

    Ищи способ раздачи файлов по http, тогда nginx поддерживает проксирование, в т.ч. с авторизацией

    При наличии полноценной vps-ки можно настроить nfs, не самый лучший способ (возможно я плохо настраивал, у меня было медленно) зато универсально и из коробки поддерживается всеми linux

    Я помню настраивал nbd сетевое блочное устройство (можно ограничить доступ по ip адресам через фаервол) это было самое быстрое решение (не нагружает ни сервер ни клиент, никаких лишних накладных расходов так как доступ монопольный), все можно красиво кешировать на принимающей стороне средствами ОС, недостаток - лучше при плохой связи не монтировать на запись (считай диск выдергиваешь во время записи) ну и конечно это блочное устройство с монопольным доступом, на принимающей стороне его нужно монтировать а для обслуживания (если нужна запись) отключать, т.е. останавливать работу.

    Полностью аналогичное nbd решение - это iscsi сервер (на linux рекомендую использовать istgt, очень простая и легкая реализация, другие кушают процессор), в этом случае его может подключить и windows машина.

    Так вот главный момент, подключив медленное блочное устройство в linux можно поверх него добавить кеширование на локальный диск меньшего размера, например с помощью универсального bcache (есть еще старый lvcache), так же файловая система zfs умеет штатно кеширующие устройства для кеша на чтение. В общем возможности очень гибкие.
    Ответ написан
    4 комментария
  • Почему мощность колонок указывают в Ваттах если единица громкости - Децибелл? Можете осветить это в контексте чувствительности колонки?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    лол не покупайтесь на PMPO. 20 ИЛИ 50 ватт это гробик на 6-20 кг.
    Причем это современная колонка с ниодимом.
    В общем физика она никуда не уходит.
    Ответ написан
    Комментировать
  • Как объединить два объекта с одинаковыми ключами?

    Seasle
    @Seasle Куратор тега JavaScript
    const keys = new Set(
      Object.values(data)
        .map((entry) => Object.keys(entry))
        .flat()
    );
    const properties = Object.keys(data).map((key) => [
      key.split("_").shift(),
      key,
    ]);
    
    const result = [...keys].reduce((acc, key) => {
      acc[key] = Object.fromEntries(
        properties.map(([property, type]) => [property, data[type][key] ?? 0])
      );
    
      return acc;
    }, {});

    Другие варианты

    const mappedData = Object.entries(data).reduce((acc, [type, entry]) => {
        const property = type.split('_').shift();
        for (const key in entry) {
            acc[key] = { ...acc[key], [property]: entry[key] };
        }
        return acc;
    }, {});
    console.log(mappedData);
    /* 
    {
        "Машины и оборудование прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": 2
        },
        "Насосное оборудование, комлектующие, сопутствующие": {
            "active": 1,
            "inactive": 2
        },
        "Электродвигатели, генераторы и трансформаторы силовые": {
            "active": 1,
            "inactive": 2
        },
        "Средства транспортные прочие, не включенные в другие группировки": {
            "active": 1
        }
    }
    */

    или
    const result = {};
    const propertyMap = Object.fromEntries(Object.keys(data).map((key) => [key.split('_').shift(), key]));
    for (const property in propertyMap) {
        for (const key in data[propertyMap[property]]) {
            result[key] ??= {};
            result[key][property] = data[propertyMap[property]][key];
        }
    }
    for (const key in result) {
        for (const property in propertyMap) {
            if (property in result[key] === false) {
                result[key][property] = null;
            }
        }
    }
    console.log(result);
    /*
    {
        "Машины и оборудование прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": 2
        },
        "Насосное оборудование, комлектующие, сопутствующие": {
            "active": 1,
            "inactive": 2
        },
        "Электродвигатели, генераторы и трансформаторы силовые": {
            "active": 1,
            "inactive": 2
        },
        "Средства транспортные прочие, не включенные в другие группировки": {
            "active": 1,
            "inactive": null
        }
    }
    */

    Ответ написан
    3 комментария
  • Почему у ссылки ширина больше чем ширина текста?

    daemonhk
    @daemonhk
    ПсиХоПат
    .home__list-link добавить display: inline-block;

    Совсем разучились тыкать до победного...
    Ответ написан
    Комментировать
  • Почему у ссылки ширина больше чем ширина текста?

    noder_ss
    @noder_ss
    Линуксоид-энтузиаст и SQL разработчик
    Ссылке добавьте display:inline-block;
    Она станет строчным элементом(Ширина будет зависить от контента), но темнемение на нее буду продолжать действовать блочные свойства, такие как ширина и прочее.
    Советую посмотреть это видео.
    Ответ написан
    Комментировать
  • Можно ли написать в React компонент на js, вместо jsx?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    только начал React изучать

    Рекомендую таки сначала закончить, дочитать документацию 2 раза и вопрос сам собой отпадёт. В документации есть пример компонента С jsx и БЕЗ него. Надо просто дочитать.
    Ответ написан
    Комментировать
  • Как написать приложение подобное photoshop?

    GavriKos
    @GavriKos
    То, чего нет в обычных компонентах - делается на нестандартных компонентах. Можно писать свои компоненты же.

    Сетку на изображение можно даже в обычном Bitmap накладывать.

    В общем вам нужно огромную задачу "написать фотошоп" раздробить очень-очень мелко, и искать инфу уже по очнеь мелким задачам. Например - как создать свой конрол
    Ответ написан
    Комментировать
  • Объясните пожалуйста по этапам логику действия функции?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Примерно правильно понимаете.

    Сначала создаётся объект-оглавление indexPatients.
    Ключи id – значения объекты:
    {
      "1": { id: 1, name: "Максим" },
      "2": { id: 2, name: "Николай" },
      // и так далее
    }

    Из такого объекта-индекса удобно по id вытащить соотв. объект.

    Вторым шагом берём массив, где перечислены id в нужном порядке.
    И заменяем методом map() каждый id на соотв. ему полный объект.

    В итоге получаем массив с объектами в нужном порядке.
    Ответ написан
    5 комментариев