Задать вопрос
  • Существует ли альтернатива видео api ютуба?

    @rPman
    В целом альтернатив youtube нет, любые варианты будут хуже, так как за ними не стоит компании, готовой вкладывать миллиарды годами в убыточный проект до тех пор пока даже самые стойкие конкуренты не протухнут, а население мира не станет воспринимать площадку как естественно единственный вариант.

    youtube это не только api но и люди, без них любая технология будет в забвении.

    p.s. попробуй peertube, технология позволяет во первых не зависеть от центра, не требует держать действительно дорогие сервера чтобы удерживать большие всплески посетителей (за счет того что видео грузится по технологии torrent с других веб клиентов) и там какие то механизмы объединения списка медиа в какой то каталог чтобы все было в одном месте а не миллион независимых сайтов... может у них получится.
    Ответ написан
    Комментировать
  • Микроразметка Schema org, что можно указать в поле price?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Никак. Это вам наказание за политику компании ))
    За "цена по запросу," "ответила в личку" и прочий бред.
    Ответ написан
    Комментировать
  • Спалят ли HR резюме?

    1. На начальных этапах никто не звонит работодателю для уточнения данных. Не кредит же тебе на миллион одобряют)

    2. Каких проблем ты ожидаешь от кадровиков? Типа что в обход твоего руководителя уволят или зп понизят за то что ты решил "предать партию" (а на каком основании лол?)? Чтобы ты ещё быстрее от них ушёл? Или на доску позора повесят?
    Объективно худшее, что может произойти - работодатель проигнорирует тот факт, что ты решил уйти.
    А скорее всего - включится механизм удержания с предложением перехода на другой, более интересный проект, или повышение зп.

    PS: ну и ты всегда можешь сказать, что не имеешь право указывать своё место работы или контакты работодателя.
    Ответ написан
    Комментировать
  • В каком приложении программировать на Python?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Я только начал учиться программированию

    Я бы остановился на одном из этих:
    • Sublime text
    • Notepad++

    Плюсы:
    • Есть подсветка кода;
    • Крайне "легкие" в плане ресурсов;
    • Минимум лишних функций;

    Есть и другие, по типу:
    Pycharm, VS Code

    Но пока вы не потратите хотя-бы пару месяцев на изучение - они будут вам только мешать.
    В частности, в них слишком много инструментов для автоматизации, которые будут создавать ложную иллюзию простоты.
    Из очевидных - автодополнение имен функций/классов, работа с окружением
    Ответ написан
    3 комментария
  • Микроразметка не видна - как исправить?

    sfi0zy
    @sfi0zy Куратор тега HTML
    Creative frontend developer
    Такие вещи всегда лучше для начала проверять с помощью официального Schema Markup Validator + Rich Results Test от Google. Первый проверит, что все ок с синтаксисом (вне зависимости от поисковых систем), а второй - что конкретно Google может посчитать странным. В данном случае синтаксически все хорошо, но Google докапывается до отсутствующих position и говорит, что без них не будет эти данные использовать. В примере для itemListElement (во вкладке microdata) можно посмотреть, куда эти мета теги с position добавить. Вероятно вам стоит все ваши страницы прогнать через эти сервисы и посмотреть, что там еще не так.
    Ответ написан
    9 комментариев
  • Правильная и красивая замена if?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Ну так не вызывайте эти функции, просто указывайте, а вызывайте одну, которую получите из словаря этого. Учить питон надо старательнее. Функция - это объект первого рода в питоне. Функцию можно присвоить в переменную, передать в аргумент.
    Ответ написан
    6 комментариев
  • Насколько эффективна REST-full архитектура?

    Во-первых не rest-full, а restful с одной l.
    При использовании REST-full запросов, на сколько я понимаю, вся информация хранится в БД и привязывается к модели @Entity

    Нет. REST-это исключительно про интерфейс, а что там под капотом - не важно.
    То есть даже видео и файлы изображений, которые загружаются на сервер, в случае с REST-full хранятся в базе данных, а не где-то в папке или на диске...

    НЕТ.
    Ответ написан
    Комментировать
  • На чем делаются кастомные push уведомления?

    thewind
    @thewind
    php программист, front / backend developer
    Просто popup, нажмете там «Включить» - появится стандартное окно браузера
    Ответ написан
    2 комментария
  • Почему неуникальные статьи занимают первые места?

    @Gabib
    Можешь проверить через be1 возраст страниц у разных сайтов, если увидишь, что сайт с топ-1 самый старый, вот и ответ тебе)
    Также, стоит учитывать, что создавая контент уникальный на 100%, который будет отвечать требованиям пользователя, очень сложно
    Можешь также глянуть, по каким запросам эти сайты в топ-1-3 и посмотреть, отвечает ли сайт на твой вопрос по этому ключу
    Ответ написан
    1 комментарий
  • Какая библиотека идентична с requests и bs4, но парсит сайт с JS?

    requests решает всего одну задачу - отправку http запросов.
    bs4 - только html парсит.

    Если тебе нужен парсинг и выполнение js - тебе нужен программно-управлякмый браузер.
    Как пример - уже упомянутый selenium или playwright.

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

    0xD34F
    @0xD34F Куратор тега Яндекс.Карты
    Сгруппируйте данные по координатам:

    const grouped = productData.reduce((acc, n) => (
      (acc[n.coordinates] ??= []).push(n),
      acc
    ), {});

    Соответственно, когда будете собирать строку для ballonContent метки, вместо одного объекта придётся пробежать по массиву объектов:

    for (const [ coord, data ] of Object.entries(grouped)) {
      const placemark = new ymaps.Placemark(
        coord.split(',').map(parseFloat),
        {
          balloonContent: data
            .map(n => `
              <div>
                ${n.address}
                <br>
                <a href="${n.productURL}">Подробнее</a>
              </div>`)
            .join(''),
        },
        {
          preset: 'islands#blueDotIcon',
          maxWidth: 300,
        }
      );
    
      map.geoObjects.add(placemark);
    }

    Или, воспользуйтесь кластеризатором:

    const placemarks = productData.map((n, i) => new ymaps.Placemark(
      n.coordinates.split(',').map(parseFloat),
      {
        balloonContent: `${n.address}<br><a href="${n.productURL}">Подробнее</a>`,
        clusterCaption: `Адрес №${i + 1}`,
      },
      {
        preset: 'islands#blueDotIcon',
        maxWidth: 300,
      }
    ));
    
    const clusterer = new ymaps.Clusterer({
      clusterDisableClickZoom: true,
    });
    
    clusterer.add(placemarks);
    map.geoObjects.add(clusterer);
    Ответ написан
    1 комментарий
  • Как откатить результат если не комитил?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Неважно, что вы делали, гит перед каждым изменением записывает хэш указателя текущей ветки в специальный журнал — reflog. Соответственно вы можете этот журнал посмотреть командой git reflog
    А можно просто сослаться на порядковый номер в журнале и откатить текущую ветку на два шага назад:
    git reset --hard HEAD@{2}
    Как-то как.
    Ответ написан
    Комментировать
  • Как распарсить этот XML?

    Maksim_64
    @Maksim_64
    Data Analyst
    С твоей библиотекой не работал, но с BeautifulSoup все работает как надо.
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(data, 'xml')
    name = soup.find('ns2:Name').text
    surname = soup.find('ns2:Surname').text
    email = soup.find('ns2:Email').text
    birthday = soup.find('ns2:Birthday').text
    Ответ написан
    2 комментария
  • Как уберечь аккаунт от бана несовершеннолетнему на Апворк?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Ты сам никак не можешь работать по правилам.

    Единственный вариант для тебя - оформить аккаунт на родителей или на старшего друга, и работать через него. Хотя это тоже нарушение, формально говоря.

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

    Как-то так.
    Ответ написан
    8 комментариев
  • Как использовать один компонент с разными типами данных?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Наверное ты хочешь этого:
    type Props = { data?: ITemplate } | {}
    const CreateTemplateForm: FC<Props> = (props) => {
      if ('data' in props && props.data) {
        
        return ...;
      }
    
      return ...;
    }
    Ответ написан
    5 комментариев
  • Что изучать после Тони Гэддиса Начинаем изучать пайтон?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Просто сравните содержание у Лутца, Сварупа и Гэддиса. Во первом раза в два больше тем рассмотрено. Но ни у кого из них не рассмотрена асинхронность, так что после Лутца стоит почитать ещё и документацию. А Ромальо лучше читать имея хотя бы базовый опыт, чтобы двинуться к вершинам мастерства надо сначала к самому мастерству прийти.
    Ответ написан
    Комментировать
  • Как организовать блокировку ip адресов?

    @SunTechnik
    1. В приведенном списке все адреса из одной сети. (192.168.0.0)

    Судя по тому, что такой вопрос вообще возник, используется WiFi. С какого устройства идет раздача WiFi и интернет?

    2. Какой способ шифрования WiFi сети используется? (рекомендуется wpa2, 3. Плохо - wep)

    3. Для начала: смените пароль WiFi, отключите wps.

    Правильно ли я понимаю, что претензии к адресам 10, 13?

    У Вас есть робот пылесос?
    Ответ написан
    3 комментария
  • Что может отслеживать конкретный сайт и как с этим бороться?

    @rPman
    Косвенная информация о месторасположении
    - по ip адресу клиента и по времени ответа можно выявить наличие vpn и даже расстояние от клиента до выходной ноды vpn
    - наличие прокси, с теми же возможностями, а если прокси внезапно на том же адресе что и выходной ip и анонимна, то анализ может быть более подробный

    Атака на сеть
    - можно анализировать локальную сеть запросами, подбирая ip адреса и типовые порты можно обнаружить наличие роутера и даже его тип (cors не дает читать содержимое https->http но есть информация о заголовках и самом факте верного ответа), помимо роутера программисты часто в десктопных приложениях поднимают веб сервер (особо криворукие - без авторизации), это можно обнаружить и при наличии ошибок даже на него повлиять (повторяю, пользователь заходит на веб сайт, и его локальная сеть может быть просканирована, уязвимые приложения найдены и атакованы... я наблюдал как сбер онлайн делал такое сканирование, делая запросы к localhost по разным портам), примером таких приложений могут быть remote control медиа плееров.
    - XSS/CSRF. открывая уязвимые веб приложения в прозрачном iframe можно двигать его под мышь пользователя таким образом, чтобы пользователь не ведая того, кликак в этом приложении в нужных местах (уязвимое приложение будет открыто с авторизацией пользователя, это оправдано и такие еще встречаются), доступа к данным не будет но действия пользователя пройдут.
    - можно просто ddos-ить какой-либо сайт запросами, которые будут идти от пользователя но referer так подделать нельзя, т.е. будет видно кто виновник (понятно что в iframe можно открыть заранее сгенерированные мусорные домены)
    Помню в одном веб приложении была ошибка, оно не проверяло результат и случайно ddos-ило гугловский сервис, который в результате отказывал в обслуживании пользователю вне этого веб приложения.
    - используя webrtc можно даже вылезти в локальную сеть (найти соседний браузер без proxy/vpn если там тоже открыта страница сервера)
    Было время, когда при использовании java applet/flash/silverlight и прочих нативных аддонов, можно было еще сильнее вылезать из браузерной песочницы и вытворять в сети пользователя лютую дичь.
    - есть какие то направления в атаке через уведомления (если ты подписываешься на них на сайте, всплывающее окошко с ним открывается в ином контексте безопасности чем оригинальная страница), я не изучал но наверняка тут тоже можно что то вытянуть

    Типовая информация о железе
    - характеристики монитора (разрешение, масштабирование, глубина цвета - хотя все уже 32бит но слабые железки могут быть все еще 16битными)
    Из размера окна можно вытянуть информацию об операционной системе, нестандартном оборудовании и установленных темах, меняющих его размер
    - производительность cpu и gpu замеряя их бенмчмарками
    можно вычислять размер кеша и от сюда косвенно получать информацию о модели процессора и даже о вендоре intel/amd/... arm
    - почти полную информацию о gpu и даже попытку скрыть ее за виртуальной машиной
    - через тайминги и сетевой бенчмарк можно собрать информацию о скорости сети (ethernet или wifi)
    - через storage api можно собрать бенчмарки по скорости жесткого диска, как минимум можно понять hdd или ssd
    - инструмент ввода мышь/тачпад, даже если ты на планшетнике запускаешь мобильный браузер в режиме и в режиме PC, по тому как работает пользователь с тачпадом можно вытянуть информацию (отсутствие mousemove там где оно должно быть)

    Атака на железо
    - до сих пор я вижу сообщения о закрываемых уязвимостях доступа к gpu ram при использовании особенностей gpu, доступные в т.ч. из браузера, т.е. буквально вытаскивают изображение экрана и содержимое окон соседних приложений... это не просто, не гарантированно но при наличии желания и ресурсов, адресные атаки возможны, не удивлюсь если так будут воровать веса приватных нейронок.
    - из производительности кеша процессора вытягивают информацию об оперативной памяти соседних процессов (уязвимости Meltdown/Spectre) но это еще сложнее

    Информацию о софте
    - класс браузера (firefox/chromium и при желании opera/edge/...) по поведению javascript и многим специфическим особенностям и само собой по заголовках запроса по useragent (это само собой подменяется)
    - наличие некоторых плагинов (по тому что они добавляют на странице, например api или специфические изменения)
    например блокировщики рекламы выявляются не сложно, правда лучше прикручивать автоматизацию на основе публикуемых правил

    Доступ к clipboard
    - clipboard api не дает доступа к буферу обмена, но при клике на страницу возможна его подмена, типовой пример - пользователь держит в буфере финансовую информацию (номер счета например) и кликая по 'сайту с инструкциями' может получить подмену содержимого буфера и вставить эту подмену как адрес для денежного перевода.

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

    p.s. а сколько открывается дивных возможностей, когда веб сервис запрашивает доступ к чему то еще и пользователь его разрешает, типа камера, положение по gps, доступ к clipboard,..

    Как бороться - отдельное железо для чувствительных вещей, или наоборот, отдельное железо для развлечения и интернета. Всегда помнить об этом (та же атака через звук).
    Ответ написан
    2 комментария