Задать вопрос
  • Почему lvm занял половину диска, вместо всего диска?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    У вас стандартное автоматическое разбиение диска от ubuntu, вы же умеете гуглить и можете найти любую инструкцию по запросу "ubuntu extend lvm", например эту https://rdr-it.com/en/ubuntu-extend-lvm-partition-...
    Ответ написан
    1 комментарий
  • Каков путь UX/UI дизайнера?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На фрилансе развития или вообще нет или мизерное и медленное в сравнении с ростом в офисе. Я об этом здесь пишу много лет. Например: раз, два, три, четыре, пять и шесть. И делаю это со знанием дела, так как несмотря на (не побоюсь этого слова) талант к самообучению, в свои фрилансерские периоды в развитии практически останавливался. Эксперимент проводился многократно на протяжении 23 лет.
    Ответ написан
    Комментировать
  • Почему не срабатывает бан IP по маске?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так посмотрите уже в документации что-ли, что значит HTTP статус 403. Тогда и поймёте, срабатывает ваше ограничение или не срабатывает.

    И да, для того, что бы запретить, Apache сначала должен коннект принять и обработать, а следовательно записать факт принятия и обработки в log файл. Если не должно быть коннектов вообще - блокируйте уровнем выше, на уровне предачи данных, то есть на сетевом уровне. iptables + ipset и прочие firewall-ы вам в помощь.
    Ответ написан
    Комментировать
  • Как сделать мультидоменность на Next.js?

    @djEban Автор вопроса
    Ну что сказать, это жоска, 6 часов убитого времени и вот в чем лично у меня была проблема , может кто столкнется

    Былая функция-обертка, условно такая

    async function withHost(getStaticPropsData) {
        const getStaticProps = async (ctx) => {
            const response = await getHost(ctx.params.host);
            const gspData = await getStaticPropsData(ctx);
            return {
                props: { host: response.data, ...gpsData.props }
            }
        };
    
        const getStaticPaths = async () => {
            const response = await ServerCache.get("hosts");
            return {
                paths: response.data.map(...), 
                fallback: "blocking" 
            };
        }
    
        return { getStaticPaths, getStaticProps };
    };


    Здесь все просто: каждую хост-страницу оборачиваю в данную обертку, чтобы получить статические пути + для каждой страницы базовую информацию о хосте

    Проблема была, не догадаетесь, в том, что я экспортировал getStaticPaths (!!!) и использовал вот так:

    // index.tsx
    
    export const { getStaticPaths, getStaticProps } = withHost(() => ({
        props: {}
    }))


    Достаточно было вынести gsp в отдельную функцию и использовать ее лично для каждого роута

    export const getStaticProps  = withHost(() => ({
        props: {}
    }))
    
    export const getStaticPaths = getHostsPaths();
    Ответ написан
    Комментировать
  • Как сделать автогенерацию поддомена?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    добавьте 2 записи типа A в свой днс
    @ - для самого домена
    * - для всех остальных

    и в коде фильтруйте по хосту
    Ответ написан
    Комментировать
  • Как читать книгу Вирт, Алгоритмы и Структуры данных школьнику?

    Adamos
    @Adamos
    Программирование в начале изучения - навык. Для него достаточно учебника, где простым языком написано, какие есть структуры и алгоритмы и как их использовать. Незачем лезть в издания, для прочтения которых требуется знание матана. Они - для тех, кто хочет разобраться, как оценить оптимальность использования тех или иных алгоритмов и структур.
    Вы же и по методичке без всякой аналитики можете выучить синтаксис и начать практиковаться. Потом, если захочется, полезете глубже. Спойлер: многие и многие программеры до этого этапа не доходят никогда ;)
    Ответ написан
    Комментировать
  • Как использовать в качестве АТС Android с SIM картой?

    @dronmaxman
    VoIP Administrator
    https://itgala.xyz/uk/mobile-phone-as-gsm-gateway-...

    Можно через Bluetooth захватить звук, ссылка как пример, не обязательно использовать asterisk.
    Ответ написан
    6 комментариев
  • После обновления прошивки пропали все данные, что делать?

    @alexalexes
    Восстанавливать данные из ssd - дохлый номер.
    Если каким-то образом запущена логика очистки внутри накопителя, то снаружи ее уже ничего не остановит.
    И даже если остановить процесс очистки, вы все равно не считаете неповрежденные данные. Они записываются в накопитель нелинейно, по соображениям степени износа ячеек. Только сам контроллер собирает такую статистику, и пишет в физическом порядке, ориентируясь на собственную статистику.
    Вы из вне никуда доступа не получите, если только физически распиливать микросхемы и считывать состояние электронным микроскопом.
    Ответ написан
    Комментировать
  • Для чего реально можно использовать AWS Lamda функции на реальном проекте?

    Viji
    @Viji
    DevOps Engineer
    1. 80% - это api запросы (через api gateway), получил, сходил в базу, изменил/прочитал, ответил. Вкл relational и dynamodb. На мой взгляд гораздо меньше хлопот, чем с кубером и в основном дешевле. Особенно, если писать на Golang или хотя бы на node.js

    2. 5-10% для передачи сообщений из/в event bus, sns, sqs... в общем, в составе event driven architecture. Супер вещь. Только желательно редчайшие случаи недоставки предусматривать

    3. 5-10% Сервисные функции... например работа по cron, каждую ночь перемещает сообщения из cloudwatch на s3, или trigger какого-то backup и множество других. Я иногда сохранял предыдущее состояние, если время работы более 15 мин и вызывал лямбду еще раз.

    4. Остальное - например получение данных из kinesis stream - если с big data работаешь, но тут уже надо по цене смотреть.
    Ответ написан
    2 комментария
  • От чего зависит звук беспроводных (радиочастотных) наушников?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    От теоремы Котельникова, энергопотребления и частотного диапазона.
    Итак мы имеем следующее распределение качества (гипотетическое)
    USB - цифра идет напрямую шумы от системника отсутствуют
    Wired - цап в компе и напрямую ловит шумы от системника, но плюс то что широта канала зашкаливает
    Bluetooth - шумов конечно нет, но жать нужно жестко, а с учетом диапазона все очень плохо.

    Так что бы не лили маркетологи в уши, это все по радиоканалу ну вы поняли
    Ответ написан
    5 комментариев
  • От чего зависит звук беспроводных (радиочастотных) наушников?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Привлекли экспертом - придётся отвечать... Но у вас в вопросе недостаточно информации, поэтому встречный вопрос.
    Думал, что особых различий не будет, но звук неплохо так отличается.
    Добавьте описание, чем именно отличается. Искажения (какие именно)? Дополнительные звуки, отсутствующие в исходном сигнале (шумы, фон 50 герц)? Изменение частотного диапазона (нет басов, нет высоких)? Может быть, что-то ещё?
    А по сути, от чего зависит звук радиочастотных наушников, можно ответить следующее.
    1. От типа канала передачи (цифровой, аналоговый). Цифровой ничего не искажает, зато вносит специфические искажения, называемые шумами квантования. Аналоговый вносит в сигнал всё, что угодно, и в отличие от цифрового, качество связи зависит от дальности передачи (чем дальше, тем больше шумов и искажений накапливается по пути), но сейчас его уже почти нигде не найти.
    2. от разрядности АЦП (на передающем конце канала связи) и ЦАП (на приёмном). В общем случае чем из большего числа разрядов состоят числа, в которые превращается сигнал, тем выше его качество, но тем сложнее аппаратура передачи, и тем больше места в радиоэфире (т.е. ширину полосы) займёт передавемый сигнал.
    3. От занимаемой в эфире полосы частот. Здесь должен быть копромисс, поскольку радиоэфир - ограниченный ресурс, он не бесконечен. Чем лучшее качество сигнала мы сохраним при передаче, тем бОльшую полосу в эфире он займёт. И наоборот: вынуждены пользоваться ограниченной полосой частот - значит, придётся мириться с искажениями передаваемого сигнала.
    Ответ написан
    Комментировать
  • Как отправлять массово 150 асинхронных запросов в минуту через pool, при этом чтобы была задержка в 150 запросов в минуту?

    2ord
    @2ord
    Например, при помощи алгоритмов Sliding Window (скользящее окно) и Leaky Bucket (протекающее ведро).

    https://habr.com/ru/articles/448438/
    https://www.geeksforgeeks.org/leaky-bucket-algorithm/
    Ответ написан
    Комментировать
  • Какой гайд поможет делать авторизацию на сайте golang?

    DollyPapper
    @DollyPapper
    Во первых аутентификацию. Авторизация это про проверку прав.
    Если без REST API, то классика это принимать через POST запрос данные с формы.
    Вот статья
    Если кратко:
    Делаете ручку /signin, которая проверяет пароль присланный пользователем с хешем паролей в базе данных (ну или где вы храните данные)
    Если всё ок, создаете сессию, сохраняете сессию где нибудь в хранилище (опять же это может быть база данных, может быть ин мемори, есть библиотеки для этого, погуглите, да хоть в памяти приложения в мапе храните)
    Далее ID сессии записываете в куки и посылаете ответ пользователю в заголовком Set-Cookie sessid="session_id", где session_id это айди который вы раньше сгенерили.
    А далее пользователь ходит на ваш сайт, и какая нибудь мидлвара берет из запроса куки, берете оттуда id сессии, ищет этот айди в хранилище. Если нашла, то пропускает запрос дальше, если нет - 401 Unauthorized.
    Ну в статье вобщем всё подробно описано.
    Ответ написан
    Комментировать
  • Онлайн-школа или личный ментор?

    xez
    @xez
    TL Junior Roo
    Тут дело такое:
    1. Хороший "личный ментор", скорее всего, вам не по карману. З.п. старшего java разработчика / тим лида сейчас от 300к. Т.е. ставка около 2тр/час. Какая у такого специалиста мотивация чтобы с вам возиться?
    2. Профессия разработчика подразумевает непрерывное постоянное самостоятельное обучение. Не умеете сами учиться? Не хватает мотивации? Эта профессия не для вас.
    Работа програмиста на 80% - это чтение кода, изучение технологий, ковыряние логов, отладка и т.д. Рутины будет много (как и в любой другой профессии) и эту рутину нужно любить чтобы не сгореть еще стажером.
    3. Курсы вам помогут системным подходом к обучению, но вся информация в них доступна бесплатно в интернете, а так же в книгах за сравнительно небольшой прайс.
    Ответ написан
    6 комментариев
  • Обработка исключений Django?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Понятия не имею, что в вашем случае означает "Запрос соответствия статьи не существует", но обычно Django ORM выбрасывает исключение DoesNotExist, если в БД не нашлось нужных данных.
    Ответ написан
    Комментировать
  • Как лучше хранить методы выплат?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    Тот самый случай где как раз уместнее просто jsonb.
    Для каждой системы будут нужны свои данные, это всё равно у вас будет фабрика в коде для обработки и валидации требований конкретной системы. А поиск по этому json напротив является исключением, а не частой ситуацией.

    То есть payment_data: id, user_id, payment_system (enum), data jsonb
    В users default_payment FK на payment_data

    PS: по моему опыту, лучше сразу предположите что в будущем возможно деление платежа в настраиваемых пользователем пропорциях на несколько кошельков. С задачей такой встречался несколько раз, во всех случаях через несколько лет приходили к задаче "нужно дать возможность пользователю настроить выплаты на несколько кошельков".
    Ответ написан
    2 комментария
  • Как автоматически проверить доступность телефонного номера?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Для мобильных телефонов искать по слову HLR, есть сервисы, которые позволяют делать HLR-запросы в сеть GSM с помощью API. Однако надо понимать, что работает это всегда надёжно, может давать ложноположительные и ложноотрицательные результаты, может работать не по всем операторам.

    Самый надёжный способ - совершить звонок и сбросить.

    Вообще, лучше было бы рассказать исходную задачу.
    Ответ написан
    6 комментариев
  • Как объяснить происходящее?

    HemulGM
    @HemulGM Куратор тега Windows
    Delphi Developer, сис. админ
    Правой кнопкой по процессу тыкаешь и там есть "открыть расположение файла"
    Ну и https://mywebpc.ru/windows/phoneexperiencehost/
    Ответ написан
    1 комментарий
  • Почему Git запрещает мне git push?

    delphinpro
    @delphinpro
    frontend developer
    генерируете ключ. Заливаете его на гитхаб.
    пушите в репу в URL который выглядит примерно так git@github.com:username/reponame.git
    Ответ написан
    6 комментариев
  • Зачем nginx ищет хост в Upstream?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Не стоит указывать в proxy_pass доменные имена, используйте IP. Но если очень невыносимо хочется, вопреки логике - тогда хотя бы укажите опцию resolver.
    Ответ написан
    2 комментария