• Ошибка str не могу исправить, как ее исправить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Какая-то из переменных price, name, url приходит из парсера со значением None. Чтобы ошибки не было, надо предварительно проверять каждую переменную на None, либо перехватывать ошибку и обрабатывать (так прямее).
    Ответ написан
    Комментировать
  • Как зафиксировать бекграунд картинки?

    noder_ss
    @noder_ss
    Линуксоид-энтузиаст и SQL разработчик
    добавь в фону background-attachment: fixed;
    Ответ написан
    Комментировать
  • Как найти элемент (Selenium)?

    @alexbprofit
    Junior SE
    LocationRightAnswer = browser.find_element(by=By.XPATH, value=f"//input[@name={name_Answer} and @value={value_Answer}]").location
    Ответ написан
    1 комментарий
  • Как реализоваться сохранение сессии в selenium chrome чтобы логин информация сохранялась?

    glaphire
    @glaphire
    PHP developer
    Чтобы сохранять данные между сессиями, нужно создать профиль пользователя chrome и в коде конфига хромдрайвера указать путь к папке с этим профилем. Обычно профиль нужно создать заранее (зайти как юзер в свой хром, создать нового пользователя, найти в системе папку с этим профилем и скопировать ее к себе в репозиторий).
    Пример на SO
    Ответ написан
    Комментировать
  • Может ли отсутствие заземления компьютера влиять на его компоненты?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    Нет, отсутствие заземления на описанные вами симптомы влиять не может. Заземление влияет на электробезопасность и на помеховую обстановку вокруг компа, которую чувствуют другие аппараты (скажем, радиоприёмники), но испускаемые компом помехи на него самого не действуют.
    То, что вы описали - не помехи, это что-то другое.
    Ответ написан
    21 комментарий
  • Как скачать платный курс с udemy?

    tvhell
    @tvhell
    Вот работающий способ описан:
    Качает все видеофайлы (прихватывая внешние субтитры, можно ставить, можно нет), а также файлы, прикреплённые автором курса. Очень удобно.
    Требуется утилита с гитхаба: https://github.com/r0oth3x49/udemy-dl/
    А также Python. Как раз сейчас скачиваю купленный курс, потому что хотелось бы иметь возможность посмотреть его оффлайн.
    Ответ написан
    2 комментария
  • Типы аргументов функции и их разница?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ты - не фигней страдай, а практикой, тогда усвоишь нужное, а не коня в вакууме

    функциями весь Питон перепахан

    и когда какой лучше использовать?

    всегда такой, что лучше

    давай функцию вычисления площади треугольника по высоте: S = 1/2*a*h

    позиционные - аргументы можно передать в строгом порядке (a, h), передал h, a - получил не тот ответ
    именованные - у аргментов есть имя , порядок произвольный, но после позиционных (a=a, h=h)

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прочитайте "Чистый код" Роберта Мартина, там это доходчиво объясняется. Все существующие парадигмы программирования, паттерны проектирования и архитектурные принципы существуют ровно с одной целью - снизить сложность сопровождения и развития большой кодовой базы.
    Ответ написан
    Комментировать
  • Зачем нужно ООП?

    @UnformedVoid
    Разработчик ПО
    ООП задумывалось как подход для декомпозиции кода на модули — классы. Каждый класс выполняет свою функцию и код остаётся чистым. Это в идеале. Но в реале, ООП устраняя сложности процедурного программирования, добавляет свои. Всё как вы и описали. Идеи, описанные в книжках, в реальных примерах не имеют применений. Для написания хорошего ООП кода нужно много знать и хорошо понимать абстрактную сторону. Плюс, ООП реализовано множеством способов. Популярные реализации ООП (Java, C#) по-сути являются Класс-Ориентированным Программированием. Помимо этого ООП увеличивает объём кода. Также, постулаты на котором, основано текущее (популярное) ООП создают предпосылки для хрупкого кода. Например, наследование. Изначально наследование подразумевалось как метод для переиспользования кода. Но со временем стало понятно, что большие иерархии классов ведут к непредсказуемым ошибкам. Если обнаруживается ошибка в базовом классе при наличии уже большой иерархии, её исправление чревато появлением сложных ситуаций с падением модулей завязанных на него. Можно привести другие примеры, но это тема для целой статьи, а возможно и для нескольких. Сейчас в языки ООП внедряются фичи из функционального программирования. Функциональное программирование базируется на идее композиции функций. ООП сейчас переходит (или уже перешло) от наследования к композиции объектов. То есть рекомендуется использовать композицию вместо больших иерархий наследования. Функциональное программирование лишено проблем ООП. Многие вещи, которые в ООП надо специально изучать (например шаблоны проектирования, внедрение зависимостей), в ФП являются либо основополагающим принципом, либо естественно выплывающим следствием (в ООП тоже много хороших практик выплывают естественным образом, однако, чтоб понять их естественность приходится хорошенько вглядываться). ФП очень многое даёт из коробки. ООП — неплохая штука, однако оно отживает свой век. ФП позволяет с гораздо меньшими затратами писать надёжный, расширяемый, краткий, элегантный и эффективный код.

    Прошу не воспринимать моё отношение к ООП как негативное — у него есть свои плюсы, своя ниша. Плюс, в контексте ООП люди смогли изучить очень многое, ведь ООП навело их на многие мысли, создало необходимость в изучении структуризации и модуляризации кода. В контексте ФП это не было бы так очевидно (например, внедрение зависимостей в рамках ФП вообще не интересно изучать, так как в ФП — это просто передача параметров функции, то что мы итак понимаем). Так что всему своё место и время.
    Ответ написан
    7 комментариев
  • Реально в 36-40 лет стать тестировщиком или программистом если есть свободное время?

    Moskus
    @Moskus
    Реально, только есть тонкости.
    Во-первых, тестирование - как правило, самая "чёрная" и дешёвая работа в этой области.
    Во-вторых, программирование похоже на спорт: чем раньше начинаете, тем лучше результат. Это не значит, что у вас ничего не получится, просто многое может даваться с заметно большим трудом.
    В-третьих, стоит поинтересоваться, нет ли в уже знакомой вам области производства задач узкоспециализированного программирования. Как в машиностроении - программирование ЧПУ-станков или роботов, а также - автоматизация на PLC. Если вы научитесь чему-то такому, у вас будет преимущество опыта. А в каком-нибудь web вы будете ещё одним полным новичком из тысяч.
    Ответ написан
    2 комментария
  • Пишет обязательное поле, хотя выставлено Null?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Добавить blank=True
    Ответ написан
    1 комментарий
  • Как организовать тестирование своего сайта в небольшой компании?

    @grinat
    Если бесплатно, то весь зоопарк придется у себя разворачивать, некоторые не развернешь(в том плане что в ci хрен интегрируешь), тесты писать вручную, есть утилиты, которые упрощают их написание:
    https://github.com/checkly/puppeteer-recorder
    https://github.com/SeleniumHQ/selenium-ide
    но сложные сценарии писать вручную. А те сценарии где что-то ломается на одном из бразуером обычно всегда сложные. Если у вас ломается только верстка, то это отдельная песня: galenframework.com

    Если за денюжки, то https://www.browserstack.com/ и https://saucelabs.com/

    Если делать по дешману, то проще просто выписать список критически важных страниц, и перед релизом их вручную чекать. Т.е. развернуть в virtual box, кучу виртуалок с браузерами, туды заходишь и все проверяешь. Так даже лучше. На самом деле все e2e тесты сложны, капризны, имеют свойство периодически ломаться, по разным малообъяснимым причинам.
    Ответ написан
    Комментировать
  • Как правильно зарегистрировать глобальную горячую клавишу в Java под Windows?

    @antonwx Автор вопроса
    сам спросил - сам и отвечаю, а суть в том, что регистрировать надо клавишу в том же потоке, который слушает сообщения. User32.RegisterHotKey(null, 1, 0x000, KeyEvent.VK_F); идёт в run() и всё начинает работать.
    Ответ написан
    Комментировать
  • Нужна математика для python?

    GavriKos
    @GavriKos
    Фактически ни для одного ЯП математика не нужна. Математика нужна для предметной области.
    Ответ написан
    3 комментария
  • На сколько безопасны risc-v процессоры?

    sim3x
    @sim3x
    Помнится то ли на BH, то ли где-то еще на конфе у безопасника интел спросили
    - Ну вот к вам вернулся чип с производства, как вы валидируете, что там нет закладок от производителя?
    На что безопасник ответил:
    - Никак. Сложность проектирования такова, что мы можем валидировать, то что покрыто нашими тестами, чуть-чуть пофазить и все

    И все ето у компании, которая имеет свою ОС на ring minus 2
    Ответ написан
    5 комментариев
  • Почему разные выходные значения Java и Python?

    Vamp
    @Vamp
    Причина в том, что второй вызов метода вычисляется в значение, не влезающее в тип данных long. То есть возникает классический integer overflow. В java и php старшие биты, не поместившиеся в long, просто отбрасываются. В python и ruby на уровне языка поддерживается bignum арифметика, поэтому результат другой. То есть числа могут быть сколь угодно велики без опасности возникновения переполнения. В php такое тоже возможно при помощи модуля bcmath или gmp. В java аналогичную арифметику предоставляет класс BigInteger:

    import java.math.BigInteger;
    
    public class A {
        public static void main(String[] args) {
            BigInteger output_1 = generate(400732734464L, -74, 12);
            BigInteger output_2 = generate(1641401281110016L, 100, 14);
    
            System.out.println(output_1);
            System.out.println(output_2);
        }
    
        public static BigInteger generate(long val1, int val2, int val3) {
            return BigInteger.valueOf(val2 & 255)
                .add(BigInteger.valueOf(val1))
                .shiftLeft(val3);
        }
    }
    Ответ написан
    Комментировать
  • Что такое TDD и для чего применяется?

    Maksclub
    @Maksclub
    maksfedorov.ru
    TDD это когда сначала пишешь тест а уже потом код, а не наоборот?

    Как бы да, но скорее не просто сам тест пишешь, а пишешь клиентский код (ведь тест для чего пишешь? для кода который скоро будет), то есть ты как бы уже проектируешь на этом этапе свою программу -- что и как будет работать, а тесты показывает как этот код должен вести себя при разных ситуациях

    далее реализуешь уже запроектированный код
    Ответ написан
    Комментировать