Обход Cloudflare. Часть I

Как обмануть алгоритмы отпечатков браузера и не спалиться? Первая часть трилогии о скрытии свойств браузера.
Трилогия будет полезна всем, кто хоть иногда сталкивается с блокировками при парсинге сайтов.

Браузер от Gooogle

Как обмануть алгоритмы отпечатков браузера и не спалиться? Первая часть трилогии о скрытии свойств браузера.
Трилогия будет полезна всем, кто хоть иногда сталкивается с блокировками при парсинге сайтов.

n8n — это мощный инструмент, который я, как и многие инженеры, полюбил за гибкость и простоту. Он позволяет собрать практически любую интеграцию, как из конструктора, но с возможностью в любой момент залезть «под капот» с кастомным JavaScript. Идеально.
Но у этой мощи есть и обратная сторона. Сложные воркфлоу превращаются в лабиринт из нод, где каждая требует тонкой настройки десятков полей. Постоянное переключение между вкладками документации, написание JSON-объектов, парсинг API через Curl, дебаггинг бесконечных ошибок... Знакомо? Время на продумывание логики уходило на рутину. И мне, как и многим, пришла в голову «гениальная» идея: а что, если всю эту рутину возьмет на себя ИИ?
Это история о том, как я прошел путь от веры в универсального агента до создания практичной группы ассистентов, которые не заменяют, а реально ускоряют работу.

Свойство CSS corner-shape — это одно из самых захватывающих нововведений в геометрический инструментарий веб-дизайна за последние годы. Оно расширяет наши возможности по управлению внешним видом углов, выходя за рамки привычных скруглений с помощью border-radius. Это на первый взгляд небольшое дополнение открывает целый мир новых возможностей, которые раньше требовали сложных реализаций на основе SVG или решений с использованием изображений.

Мне было лень бесконечно копипастить треды из Gmail/LinkedIn в GPT ради «сгенерировать ответ», а потом возвращать черновик назад.
За два вечера я с помощью ИИ собрал Chrome-расширение на ИИ, которое помогает отвечать на письма: оно тянет контекст цепочки и генерит черновик прямо в окне Gmail (in-place) - без переключений и лишних окон.
Под капотом - OpenRouter (свой API-ключ и выбор модели), system + custom prompts и минимальные permissions без бэкенда.
В статье - как я превратил эту «ленивую» боль в мини-продукт для генерации ответов, короткий путь от идеи до публикации в Chrome Web Store и грабли с ревью.

Разработчики Chrome, наконец, урезали поддержку лучшего блокировщика рекламы, uBlock Origin, и теперь популярность моего любимчика Firefox снова растёт1. Так что здесь я постараюсь убедить вас перейти на этот браузер и покажу, как его использовать.

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

Сундар Пичаи — один из самых влиятельных людей в технологическом мире. Он прошел путь от инженера в небольшой команде до главы огромной корпорации Alphabet, стоимость которой недавно превысила $1 трлн. Его история — это история успеха, основанная на упорстве, стратегическом видении и, конечно, глубоких технических знаниях.
Давно пользовался расширением The Great Suspender для приостановки вкладок, но оно давно заброшено и обновлений не планируется, а найти полноценную замену с Manifest V3 не удалось.
Тем временем Chrome окончательно отключает поддержку Manifest V2 для расширений начиная с версии 139, которая выйдет на днях (30 июля - Early Stable Release, 5 августа - Stable Release) и вопрос замены стал очень актуальным.
Посмотрел на исходный код The Great Suspender и решил, что проще написать с нуля, чем исправить. Изучил на API для расширений, всё должно быть просто: по таймеру проверяем вкладки, приостанавливаем (переадресовываем на страницу расширения) давно не использующиеся вкладки (определяем по свойству вкладки lastAccessed), по клику на приостановленной страницы возвращаем обратно на оригинальную страницу. Казалось бы, какие тут могут быть проблемы...

На Хабре иногда слышны жалобы на деградацию веб-дизайна и интерфейсов для более «примитивных» юзеров, дерьмофикацию хостингов кода, ожирение софта и прочие признаки ухудшения мира. Кажется, что каждый полезный сайт в интернете со временем превращается в шлак с бесконечным скроллингом, дофаминовой иглой и монетизацией.
Но у этой деградации есть естественная причина, и она очень простая. Дело в том, что большинству людей по большому счёту наплевать.

Google Photos — отличный сервис для хранения фотографий, но у него есть одна проблема: он не умеет находить дубликаты. Вернее может, но 100% одинаковые - даже разные EXIF данные - и все - давай, до свидания! За годы использования в моей библиотеке накопились тысячи похожих фотографий, и удалять их вручную — задача на десятки часов.
Особенно, когда тебя предупреждают, что 80% места занято - купи еще!
Я решил создать расширение для Chrome, которое автоматически найдет дубликаты. Казалось бы, простая задача: скачать фотографии, сравнить их с помощью нейросети, готово! Но оказалось, что браузерные расширения — это совершенно особый мир со своими ограничениями, и привычные подходы здесь не работают.

Попрощайтесь с хаками в виде бордеров и псевдоэлементов и поздоровайтесь с CSS gap decorations.
Команда разработчиков Microsoft Edge рада сообщить, что CSS gap decorations - новый способ стилизации отступов между элементами flex, grid и многоколоночных макетах - теперь доступны для пробного использования разработчиками в Chrome и Edge 139!
Попробуйте его и поделитесь своими отзывами, чтобы помочь сформировать будущее этого API.

Реклама является основой монетизации цифрового контента в Интернете. Однако, с целью подбора более релевантной рекламы рекламные сети вынуждены собирать о пользователях как можно больше информации, и это тесно сопряжено с нарушением приватности. Все становится еще интереснее, когда крупнейшие представители рекламного бизнеса начинают продвигать идею конфиденциальности.
В статье повествуется интригующая история о том, как Alphabet (Google), владеющая одной из крупнейших рекламных сетей AdSense, самым популярным браузером Chrome и огромным влиянием на рынок мобильных устройств, попыталась бросить вызов самой себе, одним глазом подглядывая за пользователем, а другим надзирая, чтобы не подглядывал никто другой.
Данный материал подойдет тем, кто работает в сфере цифровой рекламы или вебе, тем, кто хочет разобраться, как работает современная реклама в Интернете, тем, кто борется за анонимность в сети, и тем, кто любит холивары, какие браузеры безопаснее и лучше. Автор старался не затрагивать сложные технические аспекты с целью адаптировать материал для новичков.

В этой серии статей мы пройдемся по каждому этапу работы V8: лексическому и синтаксическому анализу, построению AST, интерпретации и оптимизациям. Затронем Ignition, Sparkplug, Maglev и Turbofan; разберемся с hidden classes, байт-кодом, и много чем еще. Углубимся во все этапы достаточно, чтобы понимать, за что отвечает каждый из них.
В этой части посмотрим на лексический и синтаксический анализ.
Недавно я завершила обучение на курсе от Google по программе Управление проектами Поэтому я решила подготовить цикл из шести статей, в которых постараюсь передать ключевые идеи курса для русскоязычной аудитории.
Курс состоит из шести разделов, и каждая статья будет охватывать один раздел. Вот их список:

Недавно я завершила обучение на курсе от Google по программе «Продакт-менеджмент». Поэтому я решила подготовить цикл из шести статей, в которых постараюсь передать ключевые идеи курса для русскоязычной аудитории.
Курс состоит из шести разделов, и каждая статья будет охватывать один раздел. Вот их список:

Краткий обзор на последние обновления Google ai studio.
Google AI Studio - это не просто песочница для ИИ, а полноценная среда для разработки прототипов, интеграции генеративного ИИ в бизнес-процессы, учебных целей и исследований. С учетом растущей популярности моделей Gemini и глубокой интеграции с Google Cloud, AI Studio становится ключевым инструментом для всех.
Около месяца назад я принял решение, которое теперь считаю абсолютно правильным — я начал разрабатывать расширение для браузера.
Но самое удивительное произошло уже на второй день после публикации расширения в Chrome Web Store — я получил первую платную подписку.
Я был одновременно в восторге и немного взволнован. Восторг — потому что кто-то действительно готов платить за мой продукт. Волнение — потому что я не был уверен, как справлюсь с возможным ростом пользователей.
С момента появления идеи до выпуска первой рабочей версии прошло всего 3 дня. Сейчас, оглядываясь назад, я понимаю: я получил гораздо больше, чем потратил.

Привет всем! Меня зовут Антон Галич, я фронтенд-инженер в департаменте разработки Analytics Platform в Авито. В этой статье я рассказываю историю о том, как мы перевели аналитику для внутренних сервисов компании на нашу собственную платформу, отказавшись от стороннего решения Amplitude.

Всем привет! Меня зовут Паша и возможно вы уже пользуетесь моим расширением Ave blacklist для блокировки продавцов спамеров на авито. Но сегодня не об этом.
Больше года назад Кабинет министров не поддержал законопроект с ценой за килограмм или литр, новость была на Пикабу в том числе
Что ж, Кабинет министров не поддержал, а я поддерживаю двумя руками!
И написал расширение для браузеров для расчета цена за единицу измерения на сайтах доставок еды - заКило (chrome, firefox)
Мог бы научить и в офлайн магазинах цену за единицу измерения считать, но кто бы меня спрашивал :D

Увлекались ли вы когда-нибудь задачей так сильно, что полностью выпадали из жизни? Я — да. Писал код, разбирался с нюансами, тестировал, переделывал, снова тестировал… В какой-то момент мой друг, давно не слышавший обо мне, решил узнать, куда я пропал. Мы созвонились, и я рассказал, чем занимаюсь. Он послушал, усмехнулся: «Как же хорошо, что я выбрал бэкенд-разработку».
На самом деле ничего сверхъестественного в этой задаче не было. Но и простой её тоже не назовёшь — архитектура сложилась под влиянием множества ограничений: браузер не может напрямую запускать exe-файл, бэкенд не имеет доступа к локальному оборудованию, а взаимодействие между всеми этими частями нужно было выстроить чётко и последовательно.
Всё это заставляет внимательнее смотреть на возможности, которые предоставляет среда браузера. Chrome-расширения работают в строго изолированном контексте, JavaScript не имеет доступа к файловой системе или системным вызовам, и для связи с нативным приложением приходится учитывать ряд особенностей: протокол обмена, формат сообщений, правила безопасности и другие детали, которые легко упустить, если не сталкивался с этим раньше.
В этой статье я расскажу, как построить такую связку с помощью механизма Native Messaging: от интерфейса в браузере до запуска локального exe. Разберём архитектуру, покажу, какие задачи решает этот подход, и напишем рабочий пример — расширение, которое сможет общаться с программой на C.
Так что устраивайтесь поудобнее и давайте разбираться.