• Как правильно обновлять файлы SVG в кэше браузера?

    smilingcheater
    @smilingcheater
    Что у вас в $url.icon? ссылка-на-svg#название-иконки? тогда, дописывая в конец этой строки ?{сгенерированный код} вы просто ломаете название иконки из svg-файла. Надо писать:
    ссылка-на-svg?{сгенерированный код}#название-иконки
    Ответ написан
    2 комментария
  • Почему selenium не видит элеманта captcha?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Капча расположена в iframe, это другой контекст, на который вначале необходимо переключиться, выполнить действия внутри этого контекста, затем переключиться (вернуться) на дефолтный контекст:
    import time
    from fake_useragent import UserAgent
    from selenium import webdriver
    from selenium.webdriver.chrome.service import Service
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    option = webdriver.ChromeOptions()
    ua = UserAgent()
    option.add_argument(f'user-agent={ua.random}')
    option.add_argument("--disable-infobars")
    
    s = Service(executable_path=r"C:\Python Scripts\валид\Steam Number\chromedriver.exe")
    
    driver = webdriver.Chrome(options=option, service=s)
    driver.maximize_window()
    driver.get('https://help.steampowered.com/en/wizard/HelpWithLoginInfo?issueid=406')
    
    # iframe
    iframe = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/div[7]/div[2]/div[2]/div/div[2]/div[1]/div[3]/form/div[3]/div[1]/div/div/div/iframe'))
    )
    
    # switch to iframe context
    driver.switch_to.frame(iframe)
    
    element_to_click = WebDriverWait(driver, 10).until(
        EC.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[3]'))
    )
    
    element_to_click.click()
    
    # switch to default context
    driver.switch_to.default_content()
    
    time.sleep(10)
    driver.quit()

    6672812eb9ca8801428501.png

    66728135eeb06375772906.png
    Ответ написан
    7 комментариев
  • Как сверстать такой radiobutton?

    IvanU7n
    @IvanU7n
    какой, нафиг, плагин, да ещё и к jQuery? это же элементарная конструкция
    <label><input type="radio"><span>1</span></label>
    плюс что-то типа
    label > input {
      position: absolute;
      width: 0;
      height: 0;
      overflow: hidden;
    }
    label > span {
      display: flex;
      align-items: center;
    }
    label > span::before {
      content: '';
      width: 2em;
      height: 2em;
      border-radius: 50%;
      border: 2px solid #888;
      background: content-box #FFF0;
      padding: 2px;
    }
    label > input:checked + span {
      background-color: #00F;
      border-color: #00F;
    }

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

    @alexalexes
    Читай все, но книжек мало.
    Чем меньше технологий в названии, тем меньше будет галопом по Европам в содержании.
    Ищите книжки отдельно по PHP (второй уровень прокачки - фреймворки: Laravel, Yii, Symphony и т.д.), отдельно JS (второй уровень прокачки: VueJS, React и т.д.), отдельно CSS (второй уровень - препроцессоры), MySQL (второй уровень Postgres, СУБД из кровавого интерпрайза). В дополнение всякие Memcached, Redis, Rest, TreeQL. Книги по шаблонам проектированиям, MVC модели и т.д., системы управления версиями, типа Git, контейнеризация, типа Docker и т.д., администрирование Linux/MS.
    https://roadmap.sh/full-stack
    https://roadmap.sh/frontend
    Ответ написан
    9 комментариев
  • Как в VS Code в Emmet добавлять / у одиночных теггов?

    otdameskapizm
    @otdameskapizm
    Помог ответ? Отметь решением...
    Пропишите это в settings.json
    "emmet.syntaxProfiles": {
            "html": {
                "self_closing_tag" : true
            }
    }


    Ну и в целом, прикладываю: https://docs.emmet.io/customization/syntax-profiles/
    Ответ написан
    1 комментарий
  • Почему transition не создает плавной анимации?

    divside
    @divside
    Chupapi Munyanyo
    transitiob: 250ms;

    А надо N. И ставить его надо в оба класса, чтобы при уводе мышки, плавность была и назад
    Ответ написан
    5 комментариев
  • Faker JS Node JS в чем ошибка?

    @fakerjs/faker !== @faker-js/faker
    В том, который вы установили, нет никакого datatype.
    Ответ написан
    2 комментария
  • Как изменить переменную BootStrap, которая есть?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    =))

    Ну давай попробую еще раз.

    Самая вредная переменная в желтой рамке. Ее надо убить первой.


    Вы ее уже "убили".
    Вы задали значение "none".
    У вас получилось после обработки браузером
    background-color: none !important
    Кстати, для background-color это не валидное значение. Оно может принимать только цвет.
    Но хрен с ним – невалидное значение будет проигнорировано. А значит цвет станет по умолчанию назначенным браузером. Како1 цвет у окна, когда не заданы вообще никакие стили? Правильно- белый.

    Теперь идем к сути проблемы. А именно смотрим на это:

    66696e238e184969345989.png

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

    Сначала браузер применяет стиль background-color: #DC143C; который прописан в index.html
    А потом применяет стиль background-color: var(--bs-body-bg);, который находится в bootstrap.scss

    Cами вы не догадываетесь почему. А все просто. Стили объявленные или подключенные ниже имеют больший приоритет.

    Обязательно почитайте что такое CSS-каскад. Оно, кстати, так и расшифровывается Cascade style sheets - каскадные таблицы стилей.

    На этом моменте, я надеюсь вы уже догадываетесь, что вам следует перенести style в index.html ниже подключения bootstrap.css

    66697009ad72b667145238.png

    Либо добавить там (в index.html) !important для стиля фона.

    Или самое простое и правильное - поменять значение переменной, а не пытаться ее "убить" =))

    6669702f6ec9d517413330.png

    Основная просьба: не трогать


    А почему? Цвет страницы задается скриптами и может меняться? Ну тогда этот цвет можно просто указывать в теге body и опять не заморачиваться с переопределениями и "убийствами" =)

    <body style="--bs-body-bg: red">
    Ответ написан
    9 комментариев
  • Карта изучения Selenium, есть у вас источники и книги для изучения?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Посоветуйте ресурсы

    - Write your first Selenium script.
    - Selenium Tutorial For Beginners Step by Step With ...
    мне бы хотелось максимально узнать как водить курсором с помощью этой бибилиотеки как человек

    - Кривые Bezier.
    - Алгоритм Джиттера.
    - Полиномиальные интерполяции.
    - Временные профили скорости (velocity profiles).
    Ответ написан
    2 комментария
  • Как наиболее грамотно запустить sql файл с инициализацией бд в Docker?

    black1277
    @black1277
    Вольный стрелок
    Проще всего сделать так:
    1 создаете папку initDatabase1 рядом с docker-compose-файлом
    2 в эту папку скопируйте все SQL-файлы, которые должны выполнится после старта БД
    3 в docker-compose в секции с db1 добавьте:
    volumes:
          - ./initDatabase1:/docker-entrypoint-initdb.d

    Для второй БД создайте папку initDatabase2 и поместите туда соответствующие SQL-файлы, а в секцию с db2:
    volumes:
          - ./initDatabase2:/docker-entrypoint-initdb.d
    Ответ написан
    1 комментарий
  • Почему выдаёт ошибку "audioContext"?

    @maksam07
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Audio Context Example</title>
    </head>
    <body>
        <input type="file" id="fileInput" accept=".mp3">
        <audio id="audioElement" controls></audio>
        
        <script>
            const fileInput = document.getElementById('fileInput');
            const audioElement = document.getElementById('audioElement');
            const audioContext = new AudioContext();
    
            fileInput.addEventListener('change', () => {
                const file = fileInput.files[0];
                if (file) {
                    const reader = new FileReader();
                    reader.onload = function (e) {
                        audioElement.src = e.target.result;
                        const source = audioContext.createMediaElementSource(audioElement);
                        source.connect(audioContext.destination);
                        audioElement.play();
                    };
                    reader.readAsDataURL(file);
                }
            });
        </script>
    </body>
    </html>
    Ответ написан
    Комментировать
  • Connection refused при попытке соединить spring-сервис и postgresSQL db в докере. Почему?

    @D3lphi
    При обращение к хосту контейнера нужно использовать не внешний порт, а внутренний: db1:5432
    Ответ написан
    Комментировать
  • Как начать путь backend-разработчика?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Забавно вы как-то подменяете местами причины и следствия.
    Вам надо научиться бэкенду, чтобы написать проектов и забить ими гитхаб профиль, чтобы вас взяли на работу?
    Надо понимать. что освоить придётся дохрена информации, повысить свою эрудицию и непрерывно учиться. Единого исчерпывающего источника всей необходимой информации не бывает, а бэкенд (даже питонячий) - это большая и широкая область, в которую в глубину можно копать тоже в любом направлении.

    Есть ряд простых и действенных советов.
    1) Блокнот терминов.
    Вы слушаете много всяких лекций по теме, читаете статьи, изучаете код других проектов и при этом встречаете много незнакомых слов, терминов, названий библиотек и технологий. Нужно выписывать эти слова в блокнотик. Не важно будет ли он бумажный или цифровой. Важно регулярно выделять время на сортировку его содержимого и изучение (хотя бы поверхностное) всего, что там написано. Это сформирует эрудицию.
    2) Читать чужой код. Искать инетресные вам проекты библиотек и вообще софта на гитхабе и разбираться как там внутри и что. Это пополнит ваш блокнот из п.1 и повысит насмотренность кода. Если что-то не понятно почему оно так как есть, то стоит лбо поразбираться в этом, либо отложить до лучших времен.
    3) Писать свой код. Если вам не интересно, то вы не достигнете никакого успеха. А если интересно, то вы будете этим заниматься, если не позволите себе прокрастенировать.
    Выберите интересны вам проекты и направления и пишите помаленьку код. Начните с простого, с MVP, потом развивайте. Если уже на этом шаге трудности, то впору задуматься надо ли оно вам. Если надо, то трудности можно преодолевать. Я не буду сейчас тут сочинять и придумывать за вас ваши трудности. Приходите с конкретными вопросами. Этот пункт про написание кода, которым за одно и заполнится ваш гитхаб. Выберите задачу, которая вам интересна, и делайте. Если на знаете с чего начать - сформулируйте в маркдауне бизнес-требования, выделите MVP, сформулируйте ТЗ, разбейте на крупные задачи, декомпозируйте их до выполнимых подзадачек. Если не писать код, то вы не научитесь это делать и у вас не будет кода. Если писать его, то всё будет.
    4) Идите в джуны и на стажировки. От вас там особо никто не будет требовать каких-то особых знаний, но может попасться хороший ментор, и, если вывезите, то будет хороший старт. Да, мало кто рискует и выделяет ресурсы чтобы учить джунов, но ищущие обрящут. см. п.6
    5) Читайте классику (книги по алгоритмам, технологиям, фреймворкам и т.д. Спорный пункт. но если читать такие книги как художественную литературу, то вы можете начать мыслить в контексте изучаемых технологий и нужными терминами.
    6) Ходите на собесы, решайте задачи публикуемые с собесов. Это позволит найти местечко для стажировки. перестать бояться собеседований и неудач, понять что нужно рынку и индустрии, пополнить блокнотик словами, которые следует изучить.
    7) Не путайте цели и средства. Пишут код. чтобы научиться, а не чтобы забить гихаб и благодаря этому устроиться. Работодателю пофиг на гитхаб, ему важно, чтобы вы делали его задачи из трекера и собеседвоание призвано вы]вить вашу способность к этому. Если какой-то конкретный работодатель предложил вам пойти сперва заполнить свой гитхаб, то это значит что он так вежливо вам намекнул, что ваша квалификация и опыт его не устраивают. Гитхаб - это предлог. Однако и индикатор, кстати, тоже.
    Ответ написан
    1 комментарий
  • Как можно сравнить полученный ботом id пользователя с каждым id из БД SQLite с помощью цикла?

    @Everything_is_bad
    никак, цикл тут не нужен, нужен учебник по SQL и минимум читать от начала до раздела про WHERE

    time.sleep(1.5) вот еще один фейл

    PS 100500 раз сказано, написание ботов не лучший способ учить питон, скорее один из худших.
    Ответ написан
    2 комментария
  • Почему отказались от оператора GoTo в высокоуровневых языках?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Никакие комьютеры не отказались от goto.
    Кроме того, это не функция, а оператор.

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

    black1277
    @black1277
    Вольный стрелок
    Это называется "Обрез видимого". Справа в атрибутах выбираете Режим-> Сцена и в настройках смотрите опцию Обрез видимого. В выпадающем списке варианты - обычно стоит Средний.
    Ответ написан
    Комментировать
  • Как правильно удалить эти коммиты?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    git revert

    1. Получаешь изменения
    2. Выполняешь git revert последовательно для каждого коммита в обратном порядке (т.е. с конца к началу), либо git revert --no-commit HEAD~10..
    3. Коммитишь это
    4. Пушишь


    т.е. примерно так

    git pull
    git revert HEAD~10..
    git commit -m "revert: newbie master push"
    git push


    Вот тут есть подробнее
    Ответ написан
    Комментировать
  • Как написать функцию, которая принимает цифру и возвращает число прописью?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Правильная идея.
    Объект, в котором каждая цифра будет ключом для четырёх значений - текст для единиц в мужском и женском роде, текст для десятков и сотен. Дополнительно текст для чисел 10-19.
    Объект, в котором номер триады будет ключом для склонений и рода (тысяча, тысячи, тысяч, ж).
    Функция, которая переводит триаду (три цифры) в текст нужного рода (м/ж).
    Функция, которая по числу выбирает склонение (одна тысяча, две тысячи, одиннадцать тысяч).
    Основная функция, которая разбирает число на триады, для каждой вызывает две другие функции и склеивает всё в строку.
    Ответ написан
    2 комментария