Задать вопрос
  • Почему программисты не пользуются конструкторами сайтов (Nicepage например)?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Почему программисты не пользуются конструкторами сайтов

    Пользуются. Каждый инструмент нужен по свои задачи. Вы же не кушаете молотком, вы берете ложку.

    Молоток в примере выше:
    Есть бизнес, условное 8 марта, где нужно создать посадочную страницу(лендинг) и продавать цветы через 2 дня. Если писать руками весь проект с нуля - есть шанс что вы ничего не заработаете(не берем в рассчет локальный бизнес и сарафанное радио). Выход: вы берете конструктор, быстро накидываете дизайн и выводите прототип в продакш. Далее подключаете контекстную рекламу гугла и яндекса = профит.

    Ложка в примере выше:
    Есть бизнес: бизнес больше ИП. Масштабируемый, со сложной логикой, где требуется быстрый сайт, быстрый отлик, переиспользуемость компонентов, адекватное SEO, проект который будет поддерживаться ближайшие n-лет, где штат разработчиков больше одного человека, и присутствует четкое разделение на фронтенд и бэкэнд.

    Подойдет ли для такого конструктор? На 99% что нет, здесь вы уже используете шаблонизаторы, языки программирования, паттерны и сложную архитектуру. Которая при должном уровне разработке даст вашему бизнесу и вашим клиентам - отличный продукт, приложение или сайт.

    Плюсы конструктора:
    Быстро,
    Не качественно, но дешево,
    Минусы:
    Не поддерживаемый код,
    отсутствие масштабируемости как таковой,
    Бизнес выше среднего - лесом.
    Ответ написан
    Комментировать
  • Как из интернет-магазина сделать мобильное приложение?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Научиться писать приложения для Андроид/iOS.
    Чтобы было не криво, потренироваться на чем-нибудь попроще.
    Изучить верстку и дизайн, чтобы было красиво.
    Потренироваться верстать и дизайнить на чем-нибудь, чтобы получить опыт.

    Написать мобильное приложение.
    Ответ написан
    8 комментариев
  • Почему гарнитура Italic не отличается от Oblique?

    Elwen
    @Elwen
    Довольно маленькое количество web шрифтов имеют oblique как таковое. И если его нет в семействе (или не подключен), то браузеры будут воспринимать oblique как italic.
    Ответ написан
    Комментировать
  • Обучение в буткемпе, стоит ли оно того?

    DevMan
    @DevMan
    курсы и буткемпы - очень классная вещь. и они реально стоят своих денег.
    но только при соблюдении 2-х пунктов:
    1. они толковые.
    2. нацелены на людей, которые уже знают и могут.

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Программу можно сделать, взяв буквы и цифры, скобки и пробелы, ещё всякие значки. Расставить их как вам хочется, и смотреть, какие ошибки будут. Устраняйте ошибки. Как ошибок не станет - программа готова.
    Ответ написан
    2 комментария
  • Я пишу телеграм бота с помощью TelegramBotApi. Как сделать?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Используй три переменные и три присваивания
    Ответ написан
    3 комментария
  • Как отслеживать прогрузку элементов на сайте в selenium?

    MinTnt
    @MinTnt
    Как пример
    from selenium.webdriver.support.wait import WebDriverWait
    
    WebDriverWait(driver, 300).until(lambda x: x.find_element_by_css_selector('.test'))
    Ответ написан
    Комментировать
  • В каком возрасте лучше начинать втягивать своего ребёнка в IT-индустрию/программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Втяните его грамотным пользователем для начала.

    Скорость печати, английский, эксель. Если у него есть какие-то интересы на компе (простые игрушки), можно научить их ломать или через какой-то auto-it ботоводить.

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Никак. Вся суть объявления вложенных функции в изоляции их в пределах области видимости объемлющей.
    Ответ написан
    Комментировать
  • Чем сеанс отличается от сессии?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    1 комментарий
  • Можно ли заработать школьнику на создании сайтов? Как?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Зря вы недооцениваете сайт для мамы/папы по работе. У мамы и папы есть друзья, у тех могут быть дети постарше и родственники, которым нужен простой сайт не за дорого. И если со знаниями у вас всё действительно хорошо, можно получить 5-10 работ в портфолио, чего достаточно для запуска сарафанного радио.
    Ответ написан
    1 комментарий
  • Какой уровень Python должен быть у начинающего Junior DevOps инженера?

    @CrazySerGo
    Выше уже хорошо ответили, просто дополню чуть желаниями тех кто ищет(промелькнуло в linkedin). Как видно на начальном этапе scripting может даже совсем не понадобиться.

    Требования:
    - Junior: ориентироваться в Linux и сетях, Intermediate English, понимание принципов CI/CD. Желание развиваться в AWS, Terraform, Kubernetes.

    - Middle/Senior: 2+ лет опыта с AWS, уверенные знания Docker, Kubernetes, Jenkins, Terraform/Cloudformation, Python/Bash scripting, Intermediate English.

    Различные проекты от стартапов до Enterprise, краткосрочные и долгосрочные. В обязанности входит создание облачной инфраструктуры AWS (Terraform/CloudFormation), CI/CD для микросервисных или serverless приложений, настройка мониторинга и логирования, консультации заказчика...
    Ответ написан
    Комментировать
  • Как изучаем Python?

    s0ci0pat
    @s0ci0pat
    I'm Awesome
    Только лучшее по Python'у, без лишних слов и воды: https://docs.python.org/
    Ответ написан
    2 комментария
  • Как сделать почтовый сервер для принятия входящей почты?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    гайда Вам никто не даст, а вот если эту работу разбить на этапы то можно много постичь по ходу

    -ДНС
    -Сервисы smtp, imap, pop3
    -Courier-imap или Dovecot?
    -Учетные записи пользователей системные или виртуальные? Виртуальные удобнее, да и база данных у Вас уже настроена и работает. Если вдруг потребуется прогонять входящую почту через фильтр procmail, то придется вводить системные учетные записи, потому что с виртуальными procmail не работает
    -Настройка шифрования. Сервисы smtps, imaps, pop3s
    -Настройка smtp-авторизации
    -Установка и настройка антивируса и антиспама
    -Установка веб-интерфейса для работы с почтой
    -Фильтр входящей почты procmail. Необязательно, но ознакомиться стоит

    на полгода достадочно
    Ответ написан
    2 комментария
  • Как получить содержимое атрибута xpath?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    1)
    //li/@data-video-id
    Тестировал здесь: xpather.com

    2) Зависит от ситуации. Если на странице только один тег "li", у которого присутствует аттрибут "data-video-id" - тогда не надо.

    XPath примеры - шпаргалка для разбора страниц
    Ответ написан
    1 комментарий
  • SQL инъекция в UPDATE возможна ли?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Инъекция может быть через любой запрос.
    И защищать тоже надо любые запросы.
    Никогда не надо торговаться, "а можно я не буду защищать именно этот запрос? Ну мааааам!"
    Надо просто всегда следовать простым правилам - любая переменная попадает в запрос только через плейсхолдер

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

    Уязвимость — это сама возможность с помощью переданных в запрос данных изменить его код.
    Даже если ты не знаешь ни одного способа ей воспользоваться, уязвимость от этого никуда не девается.
    Даже если та возможность, про которую ты знаешь, в данном случае не прокатит - остаются ещё тысячи других.
    Если есть уязвимость, то способы ей воспользоваться всегда найдутся.

    То есть сама уязвимость никак не зависит ни от каких второстепенных факторов - типа запроса, передаваемых данных, способов их валидации, твоих знаний SQL. Это сам факт. Можно подставить свой код в запрос? Значит он уязвим. А как конкретно можно нагадить - это отдельная тема.

    Кроме того, любая уязвимость - это всегда ошибки. Если в $id будет пусто, то запрос вызовет ошибку. Если в $id будет слово select то запрос вызовет ошибку. Если будет слово "привет", то запрос вызовет ошибку. Оно тебе надо?

    При этом разных вариантов возможных ошибок и способов воспользоваться уязвимостью - тысячи, им посвящены целые учебники и статьи. Но для того чтобы защищаться, не надо знать ни одного. Потому что защищаться надо не от отдельных способов эксплуатации, а закрывать саму уязвимость. И сделать это очень просто:
    1. Любые данные должны добавляться в запрос только через плейсхолдеры
    2. Любые другие элементы запроса должны выбираться из белого списка - заранее прописанных в нашем коде значений.


    Если вопрос "а можно я не буду защищаться?" вызван ленью, то это тоже решаемо. В принципе, лень - это очень важное качество для программиста. Главное - направить её в нужное русло.

    Если каждый раз писать по три строчки долго
    $sql = "INSERT INTO users SET email = ?, password = ?"; // заменяем на знаки вопроса
    $stmt = $db->prepare($sql); // подготавливаем запрос, получаем stmt
    $stmt->bind_param("ss", $email, $hash); // два знака вопроса - две переменных - две буквы s
    $stmt->execute(); // выполняем запрос

    То надо воспользоваться такой вещью, как программирование. И написать функцию, которая возьмет на себя всю рутинную работу.
    function prepared_query($mysqli, $sql, $params, $types = "")
    {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    и в итоге предыдущие 4 строчки превратятся в одну:
    prepared_query($db, "INSERT INTO users SET email = ?, password = ?", [$email, $hash]);

    или твой запрос:
    prepared_query($db, "UPDATE table SET test WHERE id = ?", [$id]);

    - просто, быстро, удобно и безопасно
    Ответ написан
    26 комментариев
  • SQL инъекция в UPDATE возможна ли?

    Fernus
    @Fernus
    Техник - Механик :)
    Смысл есть!

    UPD:
    Поясню...я тебе в $id передам 9999 or 1 = 1 и все записи нафиг потерпят изменения!
    Ответ написан
    2 комментария
  • Как запустить скрипт из другого скрипта без конфликтов?

    @kgbplus
    Выше правильно говорят, как надо запускать. Но если хочется именно запустить на исполнение другой скрипт, то так же как и любую другую программу - subprocess.Popen илиsubprocess.call
    в зависимости от того, нужно контролировать выполнение процесса или нет
    Ответ написан
    Комментировать
  • Как оптимизировать следующий код?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    total_sum = 0
    cntr = 0
    numbers = []
    
    for _ in range(10):
        numbers.append(int(input()))
    
    total_sum = sum(numbers)
    avg = total_sum / len(numbers)
    
    for number in numbers:
        if number > avg:
            cntr += 1
    
    print(cntr)
    Ответ написан
    7 комментариев