AvitoTech устраивает онлайн CTF с призами до 300 000 рублей команду 📍
Что внутри турнира: таски на веб-уязвимости, инфраструктурные мисконфиги, анализ скомпилированного кода, расследование инцидентов, слабости шифров и всё, что требует хакерской смекалки. Если это ваш первый опыт, вписывайтесь в Honey-лигу — туда опытных игроков не пускают.
❗️Регистрация, кстати, уже открыта❗️
Кажется, это знак собрать свою команду и попробовать себя в роли того самого медоеда! Проверьте защиту пчелиного улья и помогите найти все скрытые уязвимости в сотах 🐝
Что внутри турнира: таски на веб-уязвимости, инфраструктурные мисконфиги, анализ скомпилированного кода, расследование инцидентов, слабости шифров и всё, что требует хакерской смекалки. Если это ваш первый опыт, вписывайтесь в Honey-лигу — туда опытных игроков не пускают.
❗️Регистрация, кстати, уже открыта❗️
Кажется, это знак собрать свою команду и попробовать себя в роли того самого медоеда! Проверьте защиту пчелиного улья и помогите найти все скрытые уязвимости в сотах 🐝
Telegram
AvitoTech
Рассказываем, что у Авито под капотом, делимся инженерной экспертизой и зовём на митапы.
По всем вопросам: @direct_avitotech
Сайт: https://avito.tech
Хабр: habr.com/ru/company/avito
Гитхаб: github.com/avito-tech
Регистрация в РКН: https://clc.to/FOxC1A
По всем вопросам: @direct_avitotech
Сайт: https://avito.tech
Хабр: habr.com/ru/company/avito
Гитхаб: github.com/avito-tech
Регистрация в РКН: https://clc.to/FOxC1A
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ CyberScraper 2077 — веб-скрапер, который словно веб-разведчик на стероидах, агрегирующий в себе последние достижения ИИ от таких гигантов, как OpenAI, Gemini и Ollama.
Зачем оно вам? — чтобы ловко обходить капчи, защиту и глубже понимать контент, который вы собираетесь парсить.
Среди приятных особенностей:
💬 Кроссплатформенный, работает под Windows/Linux, можно запустить через Docker(инструкции по запуску на GitHub);
💬 Интуитивно понятный интерфейс;
💬 Возможность экспорта данных в форматах JSON, CSV, HTML, SQL или Excel;
💬 Точное структурирование извлеченной информации, где ИИ проявляет себя на все сто;
💬 Режим скрытности, чтобы оставаться незамеченным.
И это далеко не все мелочи, которыми может похвастаться этот продвинутый инструмент.
⚙️ GitHub/Инструкция
😳 Лайф | 📲 Зеркало Max
#python #github #soft
Зачем оно вам? — чтобы ловко обходить капчи, защиту и глубже понимать контент, который вы собираетесь парсить.
Среди приятных особенностей:
💬 Кроссплатформенный, работает под Windows/Linux, можно запустить через Docker(инструкции по запуску на GitHub);
💬 Интуитивно понятный интерфейс;
💬 Возможность экспорта данных в форматах JSON, CSV, HTML, SQL или Excel;
💬 Точное структурирование извлеченной информации, где ИИ проявляет себя на все сто;
💬 Режим скрытности, чтобы оставаться незамеченным.
И это далеко не все мелочи, которыми может похвастаться этот продвинутый инструмент.
⚙️ GitHub/Инструкция
😳 Лайф | 📲 Зеркало Max
#python #github #soft
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ CyberScraper 2077 — веб-скрапер, который словно веб-разведчик на стероидах, агрегирующий в себе последние достижения ИИ от таких гигантов, как OpenAI, Gemini и Ollama.
Зачем оно вам? — чтобы ловко обходить капчи, защиту и глубже понимать контент, который вы собираетесь парсить.
Среди приятных особенностей:
💬 Кроссплатформенный, работает под Windows/Linux, можно запустить через Docker(инструкции по запуску на GitHub);
💬 Интуитивно понятный интерфейс;
💬 Возможность экспорта данных в форматах JSON, CSV, HTML, SQL или Excel;
💬 Точное структурирование извлеченной информации, где ИИ проявляет себя на все сто;
💬 Режим скрытности, чтобы оставаться незамеченным.
И это далеко не все мелочи, которыми может похвастаться этот продвинутый инструмент.
⚙️ GitHub/Инструкция
#python #github #soft
Зачем оно вам? — чтобы ловко обходить капчи, защиту и глубже понимать контент, который вы собираетесь парсить.
Среди приятных особенностей:
💬 Кроссплатформенный, работает под Windows/Linux, можно запустить через Docker(инструкции по запуску на GitHub);
💬 Интуитивно понятный интерфейс;
💬 Возможность экспорта данных в форматах JSON, CSV, HTML, SQL или Excel;
💬 Точное структурирование извлеченной информации, где ИИ проявляет себя на все сто;
💬 Режим скрытности, чтобы оставаться незамеченным.
И это далеко не все мелочи, которыми может похвастаться этот продвинутый инструмент.
⚙️ GitHub/Инструкция
#python #github #soft
📂 Напоминалка для работы с Query Parameters!
Например,
На картинке — основные методы
Сохрани, чтобы не потерять!
📣 Code Ready | #ресурс
Например,
get() позволяет получить значение параметра, set() обновить существующий параметр, append() добавить новый, а delete() удалить ключ вместе со всеми значениями.На картинке — основные методы
URLSearchParams, примеры работы с параметрами запроса и базовые сценарии использования в современной web-разработке.Сохрани, чтобы не потерять!
📣 Code Ready | #ресурс
16 июля встречаемся с JS‑сообществом SberProfi в Сбер.Среде.
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
🔥 Обсудим изменения на реальных кейсах от Сбера, Cloud․ru и Mish. Очные участники увидят спецформат от блогеров и пообщаются с экспертами GigaCode и GitVerse.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
AI уже меняет JavaScript‑разработку. Вопрос не в том, заменит ли он инженеров, а в том, кто освоит его быстрее и качественнее.
🔥 Обсудим изменения на реальных кейсах от Сбера, Cloud․ru и Mish. Очные участники увидят спецформат от блогеров и пообщаются с экспертами GigaCode и GitVerse.
⏳ Начало в 17:00, встреча очных гостей - в 16:00.
Количество очных мест ограничено – успейте зарегистрироваться!
👩💻 Добавляем подсказки в поля формы с помощью атрибута placeholder!
Атрибут, который подсказывает пользователю, что именно нужно ввести в поле ввода (обычно это пример слова или фразы). А ещё значение атрибута исчезает, как только пользователь начинает вводить текст.
Чаще всего используется с:
Часто из-за дизайнерских решений
📣 Code Ready | #атрибут
Атрибут, который подсказывает пользователю, что именно нужно ввести в поле ввода (обычно это пример слова или фразы). А ещё значение атрибута исчезает, как только пользователь начинает вводить текст.
Чаще всего используется с:
• — для текстовых полей, поиска, email, телефона и других типов ввода;
• — для подсказок в многострочных полях.
Часто из-за дизайнерских решений
placeholder используется для замены более семантического элемента метки. Однако это не означает, что текст-заполнитель может заменить , поскольку это создаёт неудобства для пользователей с особыми потребностями.📣 Code Ready | #атрибут
Ищем новичков во фронтенд-разработке и вёрстке сайтов.
Поможем добавить в портфолио проект стоимостью 50 000 рублей и получить опыт работы с опытными разработчиками.
А именно:
- Сверстать веб-сайт на HTML + CSS;
- Реализовать функционал на JavaScript;
- Пощупать фронтенд-фреймворк Angular;
- Подключить Backend и загрузить сайт на хостинг.
Чтобы в итоге ты своими руками разработал качественный сайт, который не стыдно добавить в портфолио или продать.
Такой опыт можно получить на бесплатном практикуме уже завтра с поддержкой от опытных кураторов на каждом этапе.
👉 Приходи на бесплатное обучение
🔥 Набор идёт до 21.07.
Поможем добавить в портфолио проект стоимостью 50 000 рублей и получить опыт работы с опытными разработчиками.
А именно:
- Сверстать веб-сайт на HTML + CSS;
- Реализовать функционал на JavaScript;
- Пощупать фронтенд-фреймворк Angular;
- Подключить Backend и загрузить сайт на хостинг.
Чтобы в итоге ты своими руками разработал качественный сайт, который не стыдно добавить в портфолио или продать.
Такой опыт можно получить на бесплатном практикуме уже завтра с поддержкой от опытных кураторов на каждом этапе.
👉 Приходи на бесплатное обучение
🔥 Набор идёт до 21.07.
Проверяем интернет-скорость!
Хочешь узнать, насколько быстрый у тебя интернет? Для этого есть готовый пакет
Такой скрипт можно встроить в мониторинг или просто проверить сеть без браузера.
Шаг 1 — импортируем:
const speedTest = require('speedtest-net');
Шаг 2 — запускаем тест:
(async () => {
const res = await speedTest({ acceptLicense: true });
})();
Шаг 3 — форматируем и выводим результаты:
// Загрузка
console.log(`Download: ${(res.download.bandwidth / 125000).toFixed(2)} Mbps`);
// Выгрузка
console.log(`Upload: ${(res.upload.bandwidth / 125000).toFixed(2)} Mbps`);
// Пинг
console.log(`Ping: ${res.ping.latency} ms`);
🔥 Теперь у тебя свой
📣 Code Ready | #практика
Хочешь узнать, насколько быстрый у тебя интернет? Для этого есть готовый пакет
speedtest-net, который позволяет получить скорость загрузки, отдачи и пинга. Такой скрипт можно встроить в мониторинг или просто проверить сеть без браузера.
Шаг 1 — импортируем:
const speedTest = require('speedtest-net');
Шаг 2 — запускаем тест:
(async () => {
const res = await speedTest({ acceptLicense: true });
})();
Шаг 3 — форматируем и выводим результаты:
// Загрузка
console.log(`Download: ${(res.download.bandwidth / 125000).toFixed(2)} Mbps`);
// Выгрузка
console.log(`Upload: ${(res.upload.bandwidth / 125000).toFixed(2)} Mbps`);
// Пинг
console.log(`Ping: ${res.ping.latency} ms`);
🔥 Теперь у тебя свой
speedtest прямо в коде. Можно запускать вручную или добавить в cron для регулярного замера.📣 Code Ready | #практика
🖥 Presentation Template – яркие карточки для презентаций с крупными, броскими иллюстрациями. Они помогут привлечь внимание и не перегружать слайды информацией.
Сайтодел | #макет #figma
Сайтодел | #макет #figma
😎 Вайбкодеры ловите идею для мега приложения заслуживающего многомиллиардных инвестиций!
С добрым утром! ⚔️
С добрым утром! ⚔️
Крутая статья попалась на Хабре: «HTML Sanitizer API: конец эпохи DOMPurify и XSS-страданий»!
В этой статье:
📣 Code Ready | #статья
В этой статье:
• Разбирается, почему привычные способы защиты от XSS становятся сложнее и какие проблемы есть у старых подходов вроде DOMPurify;
• Показывается новый HTML Sanitizer API, который позволяет безопаснее работать с пользовательским HTML прямо на уровне браузера;
• Объясняется, как современные веб-разработчики могут упростить код и повысить безопасность приложений.🔊 Продолжай читать на Habr!
📣 Code Ready | #статья
This media is not supported in your browser
VIEW IN TELEGRAM
💾 Neural Noise – эффект для фона, который напоминает плазму. Пучки света двигаются за курсором, на нажатия они не реагируют.
Сайтодел | #сниппет #css
Сайтодел | #сниппет #css
Первое ощущение от ИИ-помощника — восторг. Второе — что каждый второй кусок кода приходится править за ним руками
Инструмент вторичен — Cursor, Copilot, Codeium, что угодно. Проблема одна: модель не знает, какие в вашей команде соглашения, какие типы обязательны, где заканчивается общий стандарт и начинается «в этом проекте у нас так». И пока она этого не знает — она пишет усредненно, а вам приходится дорабатывать.
Дальше два пути. Либо каждый раз править за агентом руками. Либо один раз собрать вокруг него слой правил и проверок, чтобы код с первого захода ложился в стандарт проекта.
На воркшопе karpovꓸcourses «AI-first разработка на Python» Алексей Жиряков за 4 часа показывает, как это делается. Собираете рабочую агентную среду: правила, автоматические проверки, тесты через агента, ревью по чек-листу архитектуры, метрики вклада ИИ в цифрах по коммитам.
Не слайды и не демо: рабочее место, которое переносите к себе в проект.
Стек — Litestar + PostgreSQL + Alembic. Тем, кто пишет на FastAPI, тоже подходит. Модели подключаете через OpenRouter (один ключ — gpt-5, Claude, DeepSeek, Qwen), сравниваете на своей задаче.
Алексей — 15+ лет в бэкенде, ex-Stream CTO KION, сейчас исполнительный директор в Сбере (блок «Развитие генеративного ИИ»).
Соберите правила один раз, чтобы не править за агентом:
С промокодом
Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFHjVXbP
Инструмент вторичен — Cursor, Copilot, Codeium, что угодно. Проблема одна: модель не знает, какие в вашей команде соглашения, какие типы обязательны, где заканчивается общий стандарт и начинается «в этом проекте у нас так». И пока она этого не знает — она пишет усредненно, а вам приходится дорабатывать.
Дальше два пути. Либо каждый раз править за агентом руками. Либо один раз собрать вокруг него слой правил и проверок, чтобы код с первого захода ложился в стандарт проекта.
На воркшопе karpovꓸcourses «AI-first разработка на Python» Алексей Жиряков за 4 часа показывает, как это делается. Собираете рабочую агентную среду: правила, автоматические проверки, тесты через агента, ревью по чек-листу архитектуры, метрики вклада ИИ в цифрах по коммитам.
Не слайды и не демо: рабочее место, которое переносите к себе в проект.
Стек — Litestar + PostgreSQL + Alembic. Тем, кто пишет на FastAPI, тоже подходит. Модели подключаете через OpenRouter (один ключ — gpt-5, Claude, DeepSeek, Qwen), сравниваете на своей задаче.
Алексей — 15+ лет в бэкенде, ex-Stream CTO KION, сейчас исполнительный директор в Сбере (блок «Развитие генеративного ИИ»).
Соберите правила один раз, чтобы не править за агентом:
С промокодом
aikarpov20 — скидка 20%Реклама. ООО «КАРПОВ КУРСЫ». ИНН 7811764627. erid: 2W5zFHjVXbP
Опа, тут бывший сеньор одного из IT-отделов Яндекса Игорь Никитин выкатил целый канал про Python — и это лучшее, что есть в рунете по теме.
Качественные гайды. Советы от известных прогеров. Тематические мемасы. Короче, ничего лишнего.
Хватит душить питона, учись его кодить: https://telegram.me/+TdJokxIz7K5lOTQ6 🐍
Качественные гайды. Советы от известных прогеров. Тематические мемасы. Короче, ничего лишнего.
Хватит душить питона, учись его кодить: https://telegram.me/+TdJokxIz7K5lOTQ6 🐍
IT мероприятия 🤘
Всё самое интересное для карьеры в IT: митапы, хакатоны, конференции, стажировки и обучение.
Подписывайся 🤘
1. Москва
2. Санкт-Петербург
3. Для стажеров и студентов
Всё самое интересное для карьеры в IT: митапы, хакатоны, конференции, стажировки и обучение.
Подписывайся 🤘
1. Москва
2. Санкт-Петербург
3. Для стажеров и студентов
Node.replaceWith() — замена DOM-элемента без пересборки HTML!
Когда нужно заменить элемент на странице, часто используют
Если вы работаете с динамическими интерфейсами, где есть состояние элементов и обработчики событий, такие детали становятся важными. Например:
const oldElement = document.querySelector('.message');
oldElement.outerHTML = `
Saved
`;
Выглядит просто: старый элемент заменили новым. Но браузер получает строку HTML, разбирает её и создаёт новый DOM-узел. Старый элемент исчезает из DOM, а на его месте появляется другой объект.
Если где-то была сохранена ссылка на старый элемент или на нём были обработчики событий, они не перейдут автоматически. Для браузера это уже другой DOM-объект.
Для замены конкретного узла есть более подходящий метод:
const oldElement = document.querySelector('.message');
const newElement = document.createElement('div');
newElement.textContent = 'Saved';
oldElement.replaceWith(newElement);
Это удобно, когда вокруг элемента есть другая разметка, которую не нужно трогать. Например:
const button = document.querySelector('.button');
const loader = document.createElement('span');
loader.textContent = 'Loading...';
button.replaceWith(loader);
Меняется только
Разница хорошо заметна, если сравнить с
const container = document.querySelector('.container');
container.innerHTML = `
New content
`;
Здесь браузер заново создаёт содержимое контейнера из строки. Даже если часть элементов выглядит так же, это могут быть уже новые DOM-объекты. Например:
const input = document.querySelector('.search');
input.value = 'frontend';
container.innerHTML += `
New block
`;
Если
Именно поэтому
const title = document.querySelector('.title');
const newTitle = document.createElement('h2');
newTitle.textContent = 'New title';
title.replaceWith(newTitle);
Это удобно, когда один элемент интерфейса переходит в другое состояние: загрузка заменяется результатом, временный блок заменяется данными с сервера или один компонент меняется на другой.
Но важно учитывать: новый элемент не наследует обработчики старого. Например:
const button = document.querySelector('.button');
button.addEventListener('click', handleClick);
const newButton = document.createElement('button');
button.replaceWith(newButton);
После замены новый
Если нужно сохранить поведение, обработчик нужно добавить заново:
newButton.addEventListener('click', handleClick);
Также
element.replaceWith(title, text, button);
Браузер удалит старый элемент и вставит переданные узлы на его место. Причём это могут быть не только элементы, но и текстовые узлы:
element.replaceWith('Hello');
🔥 Подведем итог:
📣 Code Ready | #практика
Когда нужно заменить элемент на странице, часто используют
innerHTML, outerHTML или удаляют старый узел, а потом создают новый. В небольших интерфейсах разницы почти не видно, но внутри браузера это разные операции.Если вы работаете с динамическими интерфейсами, где есть состояние элементов и обработчики событий, такие детали становятся важными. Например:
const oldElement = document.querySelector('.message');
oldElement.outerHTML = `
Saved
`;
Выглядит просто: старый элемент заменили новым. Но браузер получает строку HTML, разбирает её и создаёт новый DOM-узел. Старый элемент исчезает из DOM, а на его месте появляется другой объект.
Если где-то была сохранена ссылка на старый элемент или на нём были обработчики событий, они не перейдут автоматически. Для браузера это уже другой DOM-объект.
Для замены конкретного узла есть более подходящий метод:
const oldElement = document.querySelector('.message');
const newElement = document.createElement('div');
newElement.textContent = 'Saved';
oldElement.replaceWith(newElement);
replaceWith() работает непосредственно с DOM-узлами. Браузеру не нужно заново парсить HTML-строку — он получает готовый элемент и заменяет только нужное место в DOM-дереве.Это удобно, когда вокруг элемента есть другая разметка, которую не нужно трогать. Например:
const button = document.querySelector('.button');
const loader = document.createElement('span');
loader.textContent = 'Loading...';
button.replaceWith(loader);
Меняется только
button. Родительский элемент, соседние узлы и остальная структура страницы остаются без изменений.Разница хорошо заметна, если сравнить с
innerHTML. Например:const container = document.querySelector('.container');
container.innerHTML = `
New content
`;
Здесь браузер заново создаёт содержимое контейнера из строки. Даже если часть элементов выглядит так же, это могут быть уже новые DOM-объекты. Например:
const input = document.querySelector('.search');
input.value = 'frontend';
container.innerHTML += `
New block
`;
Если
input находится внутри container, старый элемент будет пересоздан вместе с содержимым. Можно потерять значение поля, обработчики событий и ссылки на старые DOM-объекты.Именно поэтому
innerHTML += часто становится причиной багов. replaceWith() такого поведения не создаёт, потому что меняет только указанный узел. Например:const title = document.querySelector('.title');
const newTitle = document.createElement('h2');
newTitle.textContent = 'New title';
title.replaceWith(newTitle);
Это удобно, когда один элемент интерфейса переходит в другое состояние: загрузка заменяется результатом, временный блок заменяется данными с сервера или один компонент меняется на другой.
Но важно учитывать: новый элемент не наследует обработчики старого. Например:
const button = document.querySelector('.button');
button.addEventListener('click', handleClick);
const newButton = document.createElement('button');
button.replaceWith(newButton);
После замены новый
button будет другим объектом, поэтому старый обработчик к нему не относится.Если нужно сохранить поведение, обработчик нужно добавить заново:
newButton.addEventListener('click', handleClick);
Также
replaceWith() может принимать несколько узлов:element.replaceWith(title, text, button);
Браузер удалит старый элемент и вставит переданные узлы на его место. Причём это могут быть не только элементы, но и текстовые узлы:
element.replaceWith('Hello');
🔥 Подведем итог:
replaceWith() удобен для точечной замены DOM-элементов без повторного парсинга HTML и пересоздания всей окружающей структуры. В отличие от innerHTML, он работает напрямую с узлами и даёт больше контроля над изменениями DOM.📣 Code Ready | #практика
🖥 DesignCode UI – дизайн-система для создания мобильных приложений. Она включает в себя полупрозрачные скругленные карточки и элементы с разноцветными градиентами.
Сайтодел | #макет #figma
Сайтодел | #макет #figma
⚡️ FOOTRUE — мега полезный сайт с более чем 300 сервисами для работы, учебы и отдыха в одном месте.
Надо быстро обработать PDF, сгенерировать пароль, отредактировать текст или поработать с кодом? Не нужно искать отдельные сервисы.
Footrue объединяет множество бесплатных онлайн-инструментов в одном интерфейсе.
Что умеет?
💬 Предлагает полезные инструменты для работы с кодом.
💬 Помогает с финансовыми расчетами и другими повседневными задачами.
💬 Форматирует, очищает и анализирует текст.
💬 Склеивает, разделяет, сжимает и конвертирует PDF.
💬 Генерирует QR-коды, надежные пароли и случайные данные.
💬 Обрезает, объединяет видео и много ещё чего интересного.
💥 Добавляем в закладки! Один сайт — десятки полезных сервисов на каждый день.
😳 Лайф | 📲 Зеркало Max
#soft
Надо быстро обработать PDF, сгенерировать пароль, отредактировать текст или поработать с кодом? Не нужно искать отдельные сервисы.
Footrue объединяет множество бесплатных онлайн-инструментов в одном интерфейсе.
Что умеет?
💬 Предлагает полезные инструменты для работы с кодом.
💬 Помогает с финансовыми расчетами и другими повседневными задачами.
💬 Форматирует, очищает и анализирует текст.
💬 Склеивает, разделяет, сжимает и конвертирует PDF.
💬 Генерирует QR-коды, надежные пароли и случайные данные.
💬 Обрезает, объединяет видео и много ещё чего интересного.
💥 Добавляем в закладки! Один сайт — десятки полезных сервисов на каждый день.
😳 Лайф | 📲 Зеркало Max
#soft
🎨 Цветовая палитра макета "Beauty And Skincare Landing Page"
⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра
HEX | RGB #D1E3E3 | rgb(209,227,227)
#93CCDF | rgb(147,204,223) #2B6477 | rgb(43,100,119)⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра