• Как найти работу со сложными и комплексными проектами если нету опыта работы в таких проектах?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    У большинства программистов первое рабочее место - это унылая маленькая компания с примитивными технологиями и простыми задачами. Следующая работа немного лучше. Следующая ещё лучше. И так пока не заберëшься на максимально доступную тебе высоту. Потолок и скорость развития у всех разные, зависят в основном от того, на сколько сильно стараешься. Некоторые так никогда и не выбираются из эникейщиков и крутильщиков cms'ок. Немало тех, кто выбирается лет десять.
    Ответ написан
    Комментировать
  • Как скрыть код на питоне на мини-компьютере от пользвователя?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Решение, которое позволит поднять стоимость реверса Вашего приложения до неприличного значения:
    1. Обфусцируем код через https://github.com/dashingsoft/pyarmor .
    2. Перегоняем п1. через https://github.com/Nuitka/Nuitka в сишный код.
    3. Компилим п2. в машинный код.
    4. Запускаем п3. exe-шник на клиенте.

    Получаем:
    1. Увеличение производительности.
    2. Exe-шник из машинного кода.
    Ответ написан
    3 комментария
  • Часто ли телеграм боты подвергаются атакам и как вы этого избегаете?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    ЭЭЭ видимо так
    https://n0a.pw/telegram-get-remote-ip/
    Ответ написан
    Комментировать
  • Часто ли телеграм боты подвергаются атакам и как вы этого избегаете?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала что значит "атака"? Какую угрозу ты ожидаешь? Потому что ответы будут ОЧЕНЬ разные в зависимости от этого.

    IP бота можно будет попробовать узнать, если ты знаешь, что бот проходит по ссылкам, которые ты можешь ему отправить. Тогда, скинув боту ссылку на свой сайт, можно будет посмотреть, какие адреса заходили в этот момент.
    Если бот такого не делает, то скорее всего никак.

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

    Потыкать команды бота на пример SQL-инъекции? Если бот вообще использует БД, достаточно использовать стандартные средства подстановки параметров в запросы, а не колхозить SQL чере зформатирование строк.

    Угнать бота? Не пости его токен никуда. Если хранишь исходный код в какой-то системе хранения версий - храни токен в отдельном файле и добавь его в исключения. Если есть подозрение, что токен уже уплыл - меняй его у BotFather. А угон акка разработчика - это другая песня уже.

    Короче, ответь хотя бы для себя на вопросы:
    1. чего конкретно боишься?
    2. кому конкретно ты нужен?
    Ответ написан
    2 комментария
  • How docker compose push?

    Erik_Mironov
    @Erik_Mironov
    Старые вопросы: *Dies from cringe*
    1.Использование одного образа для разных сервисов: В вашем файле docker-compose.yml все три сервиса (app, webserver и db) используют один и тот же образ cubinez85/docker_compose/web:latest. Это неправильно, так как каждый из этих сервисов должен иметь свой образ, настроенный для конкретной задачи.

    2.Конфигурация NGINX: Если ваш NGINX не настроен правильно, он не сможет перенаправлять запросы на PHP контейнер. Вам нужно удостовериться, что конфигурация NGINX правильно перенаправляет запросы на fastcgi_pass адрес вашего PHP контейнера.

    3.Настройка PHP-FPM: Убедитесь, что PHP-FPM в вашем app контейнере настроен для прослушивания соединений (обычно это делается с помощью listen = 9000 в файле www.conf).

    Измените docker-compose.yml:
    version: '3.7'
    services:
        app:
            build: ${PWD}/fpm/
            image: cubinez85/docker_compose/app:latest
            container_name: app
            volumes:
                - ${PWD}/code:/data
            networks:
                - app-network
    
        webserver:
            build: ${PWD}/nginx/
            image: cubinez85/docker_compose/nginx:latest
            container_name: webserver
            volumes:
                - ${PWD}/code:/data
            ports:
                - "80:80"
                - "443:443"
            networks:
                - app-network
    
        db:
            image: mysql:latest
            container_name: db
            ports:
                - "3306:3306"
            environment:
                MYSQL_DATABASE: ${MYSQL_DATABASE}
                MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
            volumes:
                - ${PWD}/dbdata:/var/lib/mysql
            networks:
                - app-network
    
    networks:
        app-network:
            driver: bridge


    Убедитесь что в nginx.conf есть что-то вроде:
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        ...
    }

    Здесь app:9000 указывает на ваш PHP контейнер и порт 9000, который слушает PHP-FPM.
    Ответ написан
    7 комментариев
  • Какой Linux выбрать для прохождения курсов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    В данном случае это оправдано.
    Кали по сути дебиан, только знающие люди собрали для вас нужные инструменты, ну и это отраслевой стандарт.
    Ответ написан
    1 комментарий
  • Как сделать подключение к VPN на VPS (multi-hop)?

    @Drno
    конечно отрубается... ты же весь трафик переадресуешь внутрь ВПНа ))

    лично я для такой схемы использую LXD контейнеры.
    ставим контейнер, внутрь нужное ПО, далее командой
    lxc config device add vpn-real1 proxy_50007 proxy listen=tcp:[::]:50007 connect=tcp:127.0.0.1:443

    прокидваем внутрь контейнера нужный порт.
    в контейнере ставим второй VPN и не забываем влкючить NAT в ядре, и с помощью iptables NAT на eth0 (ну которая интернет) и к примеру на tun0 (ну которая VPN комерческий)

    Но если честно не ясно нафига нужен комерческий ВПН в этой схеме, когда проще просто купить сервак заграницей
    Ответ написан
    2 комментария
  • Зачем образу докера операционная система?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Потому что иногда удобнее иметь в контейнере минимальную ОС с окружением, а не конкретное приложение.
    Вы бы начали с изучения, что ответы на банальные вопросы можно гуглить - советую, пригодится.
    Ответ написан
    Комментировать
  • Как можно записать multiline строку в файл, сохраняя символы новой строки?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    просто представьте как парсинг происходит, если будет
    report_number=asd
    asd
    asd

    или
    report_number="asd
    asd
    asd"

    и вот тут кавычек добавьте
    report_number="$(head -n 1 "/root/cron_job_enumerator.txt" | tr -d '\n')"
    Ответ написан
    1 комментарий
  • Как можно записать multiline строку в файл, сохраняя символы новой строки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Есть два варианта:
    1. Экранировать обратным слешем проблемные символы (кавычки и обратный слеш):
    multiline = '''
    report_number=$(head -n 1 "/root/cron_job_enumerator.txt" | tr -d \'\\n\')
    '''
    print(multiline)

    2. использовать префикс строк r, который не дает обрабатывать содержимое строки, заставляет воспринимать ее как есть (тогда отдельные символы экранировать не надо):
    multiline = r'''
    report_number=$(head -n 1 "/root/cron_job_enumerator.txt" | tr -d '\n')
    '''
    print(multiline)
    Ответ написан
    3 комментария
  • Как войти в аккаунт на сайте с помощью python requests?

    Vindicar
    @Vindicar
    RTFM!
    Добавь заголовки запроса, в качестве реферера поставь тот же URL.
    Как это сделать, читай в доках requests.
    Ответ написан
    Комментировать
  • Как исправить частое хаотичное выключение postgresql 14?

    @XEHKOK
    Поздравляю с Майнером, система однозначно была скомпрометирована, вот гайд по устранению этого майнера: https://habr.com/ru/articles/582830/
    А вообще лучше снести систему и накатить все по новой, скорее всего вы не заметили но базу вашу почистили создали там таблицу read me с просьбой пополнить криптокошелек и тогда восстановят данные, если это продовый сервер то мониторьте каналы ТГ по сливам на наличие ваших данных в сливах.
    Удачи вам, и закрытых портов для ваших сервисов)
    Ответ написан
    Комментировать
  • Можно ли заменить дистрибутив линукс на другой если он стоит на одном диске вместе с win10?

    @aleks-th
    Можно, а вчем проблема то?
    Главное правильные разделы выбрать, чтоб Винду ненароком не снести
    Ответ написан
    Комментировать
  • Хорошая ли стратегия разбивать монолит джанго на микросервисы джанго?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Смотри. Уже прошло время когда все пилили монолиты на микросервисы. Щас пошло переосмысление.
    Объективно есть 2 причины пилить. Первое - организационная. Команда по какой-то причине не хочет
    или не может поддерживать приложение. Или там что-то с бизнесом. Слияние. Поглощение. Передача
    проекта другой команде в поддержку. Тогда берут и ставят задачу раздела отвественностей.
    Конвей про это писал еще.

    И второе - это баланс нагрузки и децентрализация. Про failover тут еще даже речи нет. Это
    тяжелая тема и распилить монолит так чтобы его части были отказоустойчивы очень трудно. Более
    того в случае синхронных взаимодействий между частями микросервисов может быть даже падение
    перформанса
    . Да. Теоретики которые там пишут восторженные отзывы - совершенно игнорируют
    накладные на RPC. И не упоминают что в монолите цена RPC была равна нулю. Иногда RPC заменяют
    на MQ - но это новая архитектура и это надо полностью переделывать бизнес.

    И что делать с базой данных? Это тот еще вопрос. Я почти готов спорить что вы базу пилить не будете.
    И что в результате будет? Иммитация микро-сервисов? Где слабая связность?

    Тоесть если у вас нет таких кричащих ситуаций что оргазниация требует или нужно баланс
    нагрузки как-то разнести - то тебе вообще-вообще нет смысла ходить ни в какие микросервисы.

    Но имеет смысл сделать модуляризацию монолита. Например что там...
    application
    - sales
    - hiring
    - userprofiles

    Тоже очень полезно для управления сложностью. И пускай себе будет монолит зато будет сильный
    контроль за изменениями.
    Ответ написан
    6 комментариев
  • Как грамотно подобрать компанию при трудоустройстве?

    @mkone112
    Начинающий питонист.
    Попробуй задавать вопросы на собесе - помогает
    Ответ написан
    Комментировать
  • Как сделать чтобы задача запускалась в диапазоне 0:00 - 01:00?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    В крон на 00:00 добавляете запуск
    /usr/bin/sleep $((`/usr/bin/od -An -N2 -t u2 /dev/random` % 3600)) && ваша_задача
    Ответ написан
    7 комментариев
  • Как запустить composer в docker?

    karabanov
    @karabanov Куратор тега Docker
    Системный администратор
    Директория app находится на два уровня выше директории php в которой размещён Dockerfile - поменяй путь в директиве COPY
    И WORKDIR /app создаёт директорию и делает её текущей, так что должно быть COPY ../../app .

    PS
    Никогда не используй Alpine образы ни для чего - этот дистрибутив оптимизирован для встраевыемых устройств с единицами мегабайт оперативной памяти и процессором с одним ядром, там вместо libc использован суррогат musl с неэффективным на б̀ольших объёмах памяти аллокатором, к тому же она не так сильно распростронена, как libc, что увеличивает вероятность столкнуться с чем нибудь вроде segmentation fault. К тому же часть пакетов в собранном виде отсутствует из-за чего во время установки происходит их сборка, что занимает значительное время, да и образ в итоге получается очень большим (компилятор то никто не умеет настраивать)

    Используй debian-slim и PHP устанавливай из Sury репозитория - установка произойдёт очень быстро, а итоговый образ будет компактным (если, конечно, не забывать стирать списки пакетов и кеши на том же слое, где они были созданы)

    PPS
    # Remove Cache
    RUN rm -rf /var/cache/apk/*

    Удалять что либо на следующем слое бесполезно - там Copy on Write файловай система и всё что было на предыдущем слое создано там и останется
    Ответ написан
    1 комментарий
  • Ubuntu 22.04 LTS не видит звуковую карту?

    Adamos
    @Adamos
    windows 11, которая установлена рядом всё работает

    Вот именно из-за нее и не работает под Убунтой, скорее всего. Потому что винда при выключении оставляет звуковуху "на низком старте", чтобы быстро запуститься с ней заново. После чего другие системы этот звук не видят вовсе.
    Ответ написан
  • Какие посоветуете книги для направления проектирования веб приложений?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не знаю кто тебе рассказал про EAV но это тебе точно не друг в производительных приложениях.

    Микросервисная архитектура. По этому есть книжка от Sam Newman.

    RabbitMq - быстр но недостаточно. В сравнительных характеристиках берут Kafka за образец.

    Redis - изучи обязательно. Вообще связка Redis/NGinx - это основа любого самого быстрого веб-приложения. Без нее - нечего даже и думать о быстроте.

    Postgresql - хорошая вещь но он не должен появляться именно во фронтовой части веб приложения
    напрямую. Основа любой скорости в вебе - это предварительный прогрев кешей и публикация в них вообще
    всего что может пользователь запросить.

    event sourcing - очень размытое понятие. Наверное все что я перечислил выше может просто
    быть частью этого огромного паттерна. Шаблон настолько общий и универсальный что его можно
    найти и в BigData, и в платежных системах, и в чатах и соцсетях.
    Ответ написан
    3 комментария
  • Обьсяните пожайлуста разницу между REST API и SQL-запросами?

    vabka
    @vabka
    Токсичный шарпист
    SQL - это язык запросов. Не протокол.
    Rest - это подход к дизайну программного интерфейса, а не протокол.

    => Первая половина вопроса просто не имеет смысла.

    sql-запросы практически не используются в js ( и вообще возможно ли сделать sql-запрос в js?)

    Из браузера не получится, тк почти все СУБД предлагают свой протокол на основе TCP. А из браузера нельзя работать напрямую с TCP.

    почему мы не можем использовать всегда REST API через js для работы с базой данных - мы ведь также работаем с базой данных на сервере

    Не понял вопрос.

    Или дело просто в безопасности?

    Не понял вопрос.
    Ответ написан
    Комментировать