Задать вопрос
  • Скачивания файлов (в браузере) с 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 комментариев
  • Всем привет. Я зарегистрировала свое приложение на hh.api, получила client id и client secret. Не разобралась, что делать дальше?

    @rPman
    а дальше идешь на сайт с документацией
    https://github.com/hhru/api
    там будет все красиво описано со ссылками на другую документацию, с примерами, по русски (так не привычно), оформлено очень качественно
    https://api.hh.ru/openapi/redoc
    Ответ написан
    6 комментариев
  • Нужен сайт сообщество по типу vc.ru и tjournal.ru. На чем лучше реализовать? СКРИПТ?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    {PHP, MySql, HTML, JS, CSS} developer
    Вордпресс + пяток плагинов, или какой-нибудь октобер цмс... Собсно это же блоги + комменты, не?
    Ответ написан
    Комментировать
  • Как создать сайт для связи двух отделов компании?

    Sanes
    @Sanes
    Любая Ticket система или CRM
    Начните отсюда.
    Ответ написан
    Комментировать
  • Что дешевле: переменные или массив?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Для вашего случая нет разницы. Нужно руководстоваться не соображениями производительности, а соображенями понятности кода. Если код легко воспринимать и легко модифицировать под изменения задачи в ближайшем прогнозируемом будущем, то это правильно написанный код.
    Судя по ашему вопросу, опыта у вас не так много.
    Вопросы прихводительности в таких вещах придут позже. Сейчас сконцентрируйтесь на алгоритмах, и побльше практики. Найдите ментора и отдавайте ему код на ревью. Читайте чужой код других проектов, чтобы набраться опыта и начитанности.
    Ответ написан
    Комментировать
  • Как подобрать корпус для huananzhi x99-f8d?

    Ищи корпус, у которого заявлена поддержка EATX.

    Это как правило достаточно большие корпуса
    Ответ написан
    6 комментариев
  • Аналог результатов функции из TypeScript в C#?

    Никак. В C# нет никаких юнионов и это пахнет говнокодом.

    Если void или картинку, то возвращай картинку или null.

    Если нужно строку или число - создавай новый класс или структуру для этого.
    Ответ написан
    2 комментария
  • Существует ли способ проверить является ли заданная строка корпоративным email или нет?

    @mletov
    А какой критерий корпоративности?
    В адресе нет популярных доменов бесплатной почты (yandex.ru, mail.ru и т д) ?

    Тогда регуляркой или тупо циклом, составить справочник этих доменов и проверять, что адрес не заканчивается на @domainName

    Или вопрос в том, где взять такой справочник? Или в том, чтобы вам готовый критерий корпоративности придумали?
    Ответ написан
    Комментировать
  • Почему метод match не работает RegExp включающий JS-переменную?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Потому что у вас в regex содержится обычная строка, а не объект регулярного выражения.
    Собирать этот объект из строки нужно так: new RegExp('[' + v + ']', 'g');
    https://developer.mozilla.org/en-US/docs/Web/JavaS...
    Ответ написан
    2 комментария
  • Как вызвать функцию которые находится внутри функции замыкания на js?

    @Sozdavan
    В JavaScript функция замыкания — это функция, которая имеет доступ к переменным в своей родительской области видимости даже после возврата родительской функции. Чтобы вызвать функцию внутри функции замыкания, вам нужно сначала вернуть внутреннюю функцию из внешней функции замыкания, а затем вызвать ее, вызвав возвращенную функцию. Вот пример:

    function outerFunction() {
      let x = "Hello";
    
      return function innerFunction() {
        console.log(x);
      }
    }
    
    let myFunction = outerFunction();
    myFunction(); // Output: "Hello"


    В этом примере outerFunction это функция закрытия, которая возвращает innerFunction. Переменная x доступна innerFunction даже после outerFunction возврата. Чтобы вызвать innerFunction, мы сначала присваиваем его переменной myFunction, вызывая outerFunction(), а затем вызываем myFunction(), что выводит «Hello» на консоль.
    Ответ написан
    3 комментария
  • Как встроить страницы стороннего сайта в свой?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Iframe либо парсинг сайта
    Ответ написан
    Комментировать
  • Безопасно ли SSH соединение?

    ValdikSS
    @ValdikSS
    Первая же ссылка в поисковике полностью отвечает на все ваши вопросы.
    https://ikarus.sg/rsa-is-not-dead/
    Ответ написан
    Комментировать
  • Порекомендуйте варианты построения и оборудования для ЛВС в строящемся административно-складском здании 1500м2?

    @Akina
    Сетевой и системный админ, SQL-программист.
    • Выделение отдельного помещения для размещения внешнего ввода (Интернет и телефонные линии), кросса, серверов и активного оборудования. Металлическая дверь, кодовый замок.
    • Три линии питания - две для питания оборудования, причём запитанные от разных лучей, или хотя бы от разных фаз, плюс одна для питания кондиционера (минимум 7 кВт), плюс дежурное освещение.
    • Система пожаротушения - газовая, углекислота или фреон. Порошок - нафиг, случись что, всё оборудование можно выбрасывать и закупать новое. Воды быть не должно в принципе - даже просто проходящих через помещение труб.
    • Обязательно стойка (или стойки). Лотки, органайзеры, включая органайзеры электропитания.
    • Обязательно бесперебойники - причём время удержания должно быть минимум часа полтора, причём с учётом рабочей деградации батарей.
    • СКС разводится от розеток возле рабочих мест и до патч-панелей стойки витой парой 5 или 5е категории, чистой одножильной медью, многожилка или омеднённый алюминий ни в коем случае. Какие-то промежуточные и местные коммутаторы - забудь как страшный сон. Прокладка - по запотолочным металлическим лоткам, последний метр в коробе, монтаж на встраиваемые в короб розетки (для рабочих мест в центре комнаты - напольные короба и встраиваемые в пол розеточные блоки). Прокладка до внешних камер соответственно проводом для внешней прокладки, розетки во влагозащищённых распаечных коробках (по опыту - минимум 100х150). С розетками внутри не жадничать - на одно рабочее место минимум 2 розетки (локальная сеть, телефон), плюс дополнительные для сетевых принтеров и для точек доступа, ну и учесть, что сотрудники любят переставлять мебель самым идиотским образом. Судя по чертежам и описанию - будет штук 200 розеток.
    • Коммутаторы - управляемые как минимум L2+, PoE для подключения точек доступа, видеокамер и IP-телефонов, обычные для подключения компов и сетевых принтеров. Модель не сильно важна, но лучше сразу иметь дохрена резервных портов, чем потом докупать. Клиентские порты гигабит однозначно. Но я бы рекомендовал брать с хотя бы парой 10-гигабитных портов. Вендор по вкусу (лично я бы ставил D-Link).
    • Маршрутизатор - согласен с предыдущими товарищами насчёт Микротика вменяемой старшей модели.
    • Точки доступа - лучше сразу брать комплект для бесшовного покрытия всего здания. Насчёт количества, размещения и необходимости внешних антенн вместо встроенных ничего не скажу - это только по месту решается.


    Ну по минимуму где-то так.
    Ответ написан
    6 комментариев