Задать вопрос
  • Какую технологию выбрать?

    vabka
    @vabka Куратор тега Веб-разработка
    Самое главное не указал:
    1. Для чего именно ты собираешь окружение? Для разработки или для прода?
    2. Что такое "веб-ресурсы пользователей"?
    3. Для чего тебе к этому подключаться по ssh и ftp? (для каждого нужно отдельное пояснение)
    4. Что подразумевает под собой словосочетание "возможность работать с ..."?
    5. Кто такие "пользователи"?

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

    Если тебе всё-таки именно виртуальные машины нужны, то тогда и бери виртуальные машины и настраивай их при помощи ansible.

    Если тебе нужны контейнеры, то бери k8s, но тогда уже придётся отказаться от 1,2 и частично 4 с 5, тк:
    1. Контейнеры не должны иметь состояние. Так что сразу отлетает п2
    2. Контейнеры должны быть изолированы, а по тому сразу отлетает п1 с доступом внутрь контейнеров
    3. Обновление зависимостей (например базового образа) требует пересборки и перезапуска контейнера
    4. Один контейнер - одно приложение. Не будет такого, что у тебя в одном контейнере будет всё что ты описал в п3 одновременно работать.
    5. Никаких "папок" для пользователей не будет. Но у каждого пользователя-человека вполне может быть своя учётка для доступа в кластер, чтобы в нём создавать свои ресурсы. При этом на уровне учётки можно запретить одному пользователю доступ к ресурсам другого пользователя например.
    Ответ написан
  • Минимизация стоимости входящих в роуминге. Как принимать звонок по сотовой сети и переадресовывать по интернету?

    @dronmaxman
    VoIP Administrator
    Вариантики
    1) Сложный, надо понимать что и как ты делаешь. Своя АТС+GSM шлюз, приложение на телефон.
    2) Запросить у своего оператора возможно отдать номер по SIP, поставить приложение на телефон.
    3) Отнести симку оператору который поставит ее в свой шлюз и отдаст по SIP, поставить приложение на телефон.
    4) Самый удобный и не требующий особых навыков. Поищи на ali устройство по ключевому слову SIMBOX
    Ответ написан
    2 комментария
  • Для чего нужен грид в 24 колонки?

    neuotq
    @neuotq
    Прокрастинация
    Чаще всего используют 12 колонок. Причина в сравнении с красивыми 10 проста - большее количество вариаций делений при относительно небольшом числе колонок, учитывая исходные что ширина бОльшей часть экранов кратно 8. Поэтому может вернее будет назвать эту систему системой 8-пиксельной, тк шаг в 8 пикселей для большинства размеров(при хард сетке всё кратно 8, при софт только расстояния между элементами). Таким образом легко быстро выстраивается модульная сетка с приятным ритмом.
    Поэтому многие системы/фреймворки по умолчанию настроены на 12 колонок.
    24 колонки - можно условно считать вариацией для любителей чуть большей вариативности и тонкостей с шириной/расстоянием между колонками и шага в 4 пикселя и тонкой настройки золотого сечения на странице.
    Отдельно стоят любители 16 колонок(относительно популярный вариант), это, как другие менее популярные, уже частные случаи сетки и дизайна, где все в ручную подбирается, либо изначально допускается меньшая вариативность размещения элементов/колонок/модулей. Поэтому прям зацикливаться не стоит, исходите из своих задач и требований, полёта фантазии дизайнера.
    Ответ написан
    Комментировать
  • Dot notation в композиции компонентов React?

    В документации всего один абзац посвящён этой возможности:
    You can also refer to a React component using dot-notation from within JSX. This is convenient if you have a single module that exports many React components. For example, if MyComponents.DatePicker is a component, you can use it directly from JSX with:
    import React from 'react';
    
    const MyComponents = {
      DatePicker: function DatePicker(props) {
        return <div>Imagine a {props.color} datepicker here.</div>;
      }
    }
    
    function BlueDatePicker() {
      return <MyComponents.DatePicker color="blue" />;
    }


    Вроде бы всё просто: если модуль экспортирует много компонентов, как вариант, удобно использовать запись через точку, чтобы не писать длиннющий импорт.

    Интересует мнение
    Собирать мнения и проводить опросы тут нельзя. Правила. Лучше задавать вопрос, на который можно дать однозначный проверяемый воспроизводимый ответ.
    Ответ написан
    Комментировать
  • Как заблокировать скролл страницы?

    delphinpro
    @delphinpro Куратор тега JavaScript
    frontend developer
    Современное решение без javascript

    .modal-wrapper {
        position: fixed;
        left: 0;
        top: 0;
        right: 0;
        bottom: 0;
        /* То, что нужно */
        overscroll-behavior: contain;
    }

    https://developer.mozilla.org/en-US/docs/Web/CSS/o...
    Поддержка 87% https://caniuse.com/css-overscroll-behavior
    Ответ написан
    1 комментарий
  • Как распарсить строку средствами sql?

    Enokin
    @Enokin
    Full-stack разработчик
    Это может быть сделано с использованием функции SQL JSON_EXTRACT(). Например, следующий запрос выберет массив valuation-tools из каждой подстроки в столбце text_column:

    SELECT JSON_EXTRACT(
      JSON_EXTRACT(text_column, '$[*].current[*]'),
      '$[*]."valuation-tools"'
    )
    FROM table_name;
    Ответ написан
    3 комментария
  • Стоит ли разработчикам платить за баги?

    @aleks-th
    У меня примерно так:
    1. Если задание выполнено строго по ТЗ и принято - любой вновь найденый баг - это уже новая работа которая должна быть оплачена.
    2. Если задание не выполнено по ТЗ и баги при приемке не принимать - то это ошибка разработчика, пусть исправит.
    ---
    3. ТЗ должно быть составлено так чтобы не могло быть двойного трактования - если ТЗ позволяет трактовать задачу размыто и компания может предполагать одно, а исполнитель другое - ошибка того кто дал это задание разработчику - соответственно это не проблема разработчика, он не знает что у вас в голове и работа по переделке будет оплачена.
    ---

    А вообще никаких общих правил не существует - как договоритесь так и будет.
    Ответ написан
    Комментировать
  • Заказывать CMS с 0 или использовать существующие?

    @mletov
    Составляете список того, что должно быть в проекте. А лучше не просто список, а написать полноценное техническое задание.

    Далее смотрите, что из требуемого функционала уже есть в CMS (хотя бы похожее или что CMS позволяет быстро реализовать), а что носит уникальный характер, заточенный именно под ваши нужны. Чем больше уникального функционала, тем больше плюсов в написании с нуля, ну и наоборот, чем проект более типовой (новости, статьи, каталоги, фотогалереи, формы обратной связи и т д), тем выгоднее брать CMS.
    Ответ написан
    1 комментарий
  • До какой ширины стоит адаптировать сайты?

    HardBot
    @HardBot
    back-end, front-end developer
    420 максимум, под 320 даже почти уже никто не адаптирует
    Ответ написан
    9 комментариев
  • Как реализовать очередь в 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 комментарий
  • Как объединить два объекта с одинаковыми ключами?

    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 комментария
  • Можно ли написать в React компонент на js, вместо jsx?

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

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

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

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

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

    opium
    @opium
    Просто люблю качественно работать
    Если зарабатываешь три копейки забей
    Если больше сотки в месяц то самозанятый
    Ответ написан
    Комментировать
  • Почему mssql до сих пор требуется на новых вакансиях, если грянуло импортозамещение?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    В каких-то компаниях не находят ресурсов, чтобы слезть с западной проприетарщины, и будут теперь годами сидеть на единожды купленной лицензии, без обновлений и без развития. В каких-то ещё идёт процесс миграции со старых систем на новые, и специалисты по MSSQL/Oracle будут нужны ещё несколько лет. В каких-то остались небольшое количество доживающих проектов, которые мало используются, не развиваются и естественным образом потеряют актуальность с годами, а значит дешевле держать под них пару спецов, чем переписывать и мигрировать.
    Ответ написан
    Комментировать
  • Почему mssql до сих пор требуется на новых вакансиях, если грянуло импортозамещение?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Потому что MSSQL, Oracle , DB2 это энтерпрайз в которые вколочены тысячи человеко-лет.

    И опенсорсные записные книжки с sql интерфейсом не дают таких возможностей.

    ЗЫ кстати реально российская СУБД https://www.linter.ru/
    Ответ написан
    9 комментариев
  • Как быть с сайтами в топе которые скоро надо закрыть ввиду нового сайта и переименования бренда?

    @Kypidon4ik
    Фрилансер, Wordpress developer
    Сделай редиректы с A и B на C
    PS Только не простой редирект (где все url с a будут указывать на homepage) а по умному с A/tovar12345 на C/tovar12345
    Ответ написан
    Комментировать
  • Как узнать минимальные требования для собственной игры?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    через тестирование на разных платформах с разными характеристиками.
    Профессия тестировщика в том числе и для этого существует
    Ответ написан
    Комментировать
  • Проблема в индексировании страниц в Google Search Console. Как решить?

    google очень плохо индексирует страницы в последнее время, я уже тут писал ранее, но если в двух словах что я заметил:
    1) карта сайта может быть правильной, страницы уникальнейшие, сайт отличным, ошибок в консоли нет - а результат почти нулевой, мало страниц в индексе. Но проверить карту конечно стоит в верификаторе.
    2) не любит домены типы store, top, pro и т.п. в последнее время и ru
    3) не особо любит когда его грузят тысячами страниц, индексирует их очень медленно и подозрительно, в то же время если страницы штучные, то в индекс влетает в течение пары дней - вот например https://www.google.com/search?q=site%3Ahttps%3A%2F... - буквально неделю назад был совершенно нулевой в google и через несколько дней уже страниц 10 в индексе.
    4) не любит запутанные структуры, каждая страница должна быть в одном варианте, чтобы как можно проще и понятнее.
    5) не любит тяжелые грузные сайты, типа с кучей pdf или видео встроенного и т.п., он их реально дольше обрабатывает, ну и в целом не любит тормозные сайты, которые по 20 сек загружаются в пейджспид.

    ну и ждать.
    не дергаться.
    нормой сейчас считается 1-2 месяца и уже должны произойти какие-то более чувствительные изменения в индексе, а не просто пара страниц, хотя бы половина уже должна проиндексироваться успешно.
    Ответ написан
    1 комментарий
  • Есть ли курсы по Go наподобие JavaRush?

    @nakem
    gotour https://go.dev/tour/welcome/1
    Это обязательно для прохождения
    Ответ написан
    Комментировать