#Tech
🐱 Приложение для общения с питомцем
Представьте, что вы наконец можете понять, что хочет сказать ваша кошка! Компания Akvelon разработала необычное приложение MeowTalk, которое переводит кошачьи звуки в понятные человеку фразы.
Как это работает?
Приложение использует искусственный интеллект, обученный на тысячах кошачьих звуков. Нейросеть анализирует мяуканье и определяет его значение: голоден питомец, просится гулять или просто хочет внимания.
Ps: Учёные пока не доказали существование единого "кошачьего языка". Поэтому разработчики предусмотрели возможность настройки приложения под конкретного питомца – ведь каждая кошка общается по-своему.
Скачать: MeowTalk в Google Play, App Store
🔗 Ссылка
🌐 Новости
🖥 Платформа
Представьте, что вы наконец можете понять, что хочет сказать ваша кошка! Компания Akvelon разработала необычное приложение MeowTalk, которое переводит кошачьи звуки в понятные человеку фразы.
Как это работает?
Приложение использует искусственный интеллект, обученный на тысячах кошачьих звуков. Нейросеть анализирует мяуканье и определяет его значение: голоден питомец, просится гулять или просто хочет внимания.
Ps: Учёные пока не доказали существование единого "кошачьего языка". Поэтому разработчики предусмотрели возможность настройки приложения под конкретного питомца – ведь каждая кошка общается по-своему.
Скачать: MeowTalk в Google Play, App Store
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Play
Приложения в Google Play – MeowTalk кот-переводчик
Переводчик кошачьего языка! Голосовой чат между человеком и домашним животным!
Хабр
Что используют в работе «белые хакеры»: инструменты для кибербезопасности и проведения пентестов
В арсенале специалистов по информационной безопасности и пентесту есть много инструментов и методов для защиты безопасности информационных систем и сетей. Рассказываем о популярных. Помните:...
#CyberSecurity
🛡 Арсенал белого хакера
Мир кибербезопасности постоянно развивается, и специалисты по информационной безопасности должны быть во всеоружии. В этой статье рассматриваются основные инструменты, которые используют белые хакеры для защиты информационных систем.
В статье вы узнаете:
• Какие инструменты используются для анализа уязвимостей
• Как работают системы управления информационной безопасностью
• Что применяется для защиты сетевого периметра
• Какие ОС предпочитают специалисты по безопасности
🔗 Статья
🌐 Новости
🖥 Платформа
Мир кибербезопасности постоянно развивается, и специалисты по информационной безопасности должны быть во всеоружии. В этой статье рассматриваются основные инструменты, которые используют белые хакеры для защиты информационных систем.
В статье вы узнаете:
• Какие инструменты используются для анализа уязвимостей
• Как работают системы управления информационной безопасностью
• Что применяется для защиты сетевого периметра
• Какие ОС предпочитают специалисты по безопасности
🔖 Важно: Все описанные инструменты предназначены исключительно для легального использования профессионалами в области кибербезопасности. Их несанкционированное применение является уголовным преступлением.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Frontend
⏺ Что такое JSON и как с ним работать?
JSON (JavaScript Object Notation) — это текстовый формат для хранения и передачи данных. Он широко используется в API, базах данных, веб-приложениях и мобильных играх.
⏺ Структура JSON
- Данные представляются в виде структуры «ключ-значение».
- Объекты записываются в
- Массивы хранятся в
Пример:
⏺ Типы данных в JSON
- Объекты — сложные сущности, например, профиль пользователя.
- Массивы — списки однотипных данных, например, товары в каталоге.
- Строки — текстовая информация.
- Числа — целые и дробные, поддерживают отрицательные значения.
- Булевы значения —
- Null — обозначает отсутствие данных.
⏺ Преимущества JSON
- Компактный, экономит трафик.
- Читаемый человеком и понятный машинам.
- Поддерживается большинством языков программирования.
⏺ JSON vs другие форматы
- XML — громоздкий, но позволяет задавать атрибуты.
- YAML — проще читается, но чувствителен к отступам.
⏺ Работа с JSON в JavaScript
-
-
⏺ Дополненные версии JSON
- JSON5 — поддерживает комментарии, одинарные кавычки и Infinity.
- JSON Schema — позволяет задавать правила для структуры JSON.
⏺ Безопасность при работе с JSON
- Возможные угрозы: JSON Injection, XSS, SQL-инъекции.
- Решения: валидация данных, санитизация, использование безопасных запросов.
⏺ Как открыть JSON?
- Любой текстовый редактор (VS Code, Sublime Text).
- Онлайн-инструменты для проверки и форматирования JSON.
🔗 Статья
🌐 Новости
🖥 Платформа
JSON (JavaScript Object Notation) — это текстовый формат для хранения и передачи данных. Он широко используется в API, базах данных, веб-приложениях и мобильных играх.
- Данные представляются в виде структуры «ключ-значение».
- Объекты записываются в
{}
и состоят из ключей (в двойных кавычках) и значений. - Массивы хранятся в
[]
и содержат однотипные данные. Пример:
{
"user": {
"name": "Алекс",
"age": 30,
"skills": ["JavaScript", "Python", "SQL"]
}
}
- Объекты — сложные сущности, например, профиль пользователя.
- Массивы — списки однотипных данных, например, товары в каталоге.
- Строки — текстовая информация.
- Числа — целые и дробные, поддерживают отрицательные значения.
- Булевы значения —
true
или false
, полезны для условий. - Null — обозначает отсутствие данных.
- Компактный, экономит трафик.
- Читаемый человеком и понятный машинам.
- Поддерживается большинством языков программирования.
- XML — громоздкий, но позволяет задавать атрибуты.
- YAML — проще читается, но чувствителен к отступам.
-
JSON.stringify(obj)
— превращает объект в строку JSON. -
JSON.parse(jsonString)
— преобразует JSON-строку в объект. - JSON5 — поддерживает комментарии, одинарные кавычки и Infinity.
- JSON Schema — позволяет задавать правила для структуры JSON.
- Возможные угрозы: JSON Injection, XSS, SQL-инъекции.
- Решения: валидация данных, санитизация, использование безопасных запросов.
- Любой текстовый редактор (VS Code, Sublime Text).
- Онлайн-инструменты для проверки и форматирования JSON.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
#Frontend
Мощь FFmpeg в браузере
FFmpeg.wasm - это порт популярного фреймворка FFmpeg в WebAssembly, который позволяет обрабатывать видео и аудио прямо в браузере. Это решает проблему обработки медиафайлов без необходимости отправки их на сервер.
1⃣ Какие задачи решает FFmpeg.wasm?
- Обрезка видео и аудио
- Конвертация форматов
- Изменение размера видео
- Применение фильтров и эффектов
- Извлечение аудиодорожки
- Создание превью и миниатюр
2⃣ Какие есть ограничения?
⏺ Размер библиотеки:
- Базовый модуль около 25MB
- Дополнительные кодеки увеличивают размер
⏺ Требования к браузеру:
- Поддержка WebAssembly
- Поддержка SharedArrayBuffer
- Специальные заголовки COOP/COEP
⏺ Ограничения производительности:
- Работа с большими файлами может быть медленной
- Ограничения памяти браузера
3⃣ Когда стоит использовать FFmpeg.wasm?
⏺ Подходит для:
- Простой обработки видео
- Приложений с приватностью данных
- Небольших проектов
⏺ Не подходит для:
- Сложной видеообработки
- Работы с большими файлами
- Приложений с высокими требованиями к производительности
Пример реализации приложения для обрезки видео можете посмотреть здесь
🌐 Новости
🖥 Платформа
Мощь FFmpeg в браузере
FFmpeg.wasm - это порт популярного фреймворка FFmpeg в WebAssembly, который позволяет обрабатывать видео и аудио прямо в браузере. Это решает проблему обработки медиафайлов без необходимости отправки их на сервер.
- Обрезка видео и аудио
- Конвертация форматов
- Изменение размера видео
- Применение фильтров и эффектов
- Извлечение аудиодорожки
- Создание превью и миниатюр
- Базовый модуль около 25MB
- Дополнительные кодеки увеличивают размер
- Поддержка WebAssembly
- Поддержка SharedArrayBuffer
- Специальные заголовки COOP/COEP
- Работа с большими файлами может быть медленной
- Ограничения памяти браузера
- Простой обработки видео
- Приложений с приватностью данных
- Небольших проектов
- Сложной видеообработки
- Работы с большими файлами
- Приложений с высокими требованиями к производительности
Пример реализации приложения для обрезки видео можете посмотреть здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Tech
🟡 Flux 1 – модель машинного обучения для генерации изображений
Она была разработана для создания реалистичных и детализированных изображений, используя методы глубинного обучения.
❓ Как работает Flux 1?
Flux 1 использует диффузионные модели (diffusion models), которые обучаются превращать шум в осмысленные изображения. Процесс включает два этапа:
1. Прямой процесс (Forward Process) – модель добавляет шум к изображениям, постепенно разрушая их.
2. Обратный процесс (Reverse Process) – обученная модель учится удалять шум, восстанавливая реалистичные изображения.
❓ Ключевые особенности Flux 1
- Генерация изображений с высоким разрешением.
- Обучение на больших датасетах, что позволяет создавать реалистичные и стилизованные изображения.
- Поддержка текстовых промптов, что делает её похожей на DALL·E и Stable Diffusion.
Сгенерируйте изображение*⃣ здесь*⃣
🌐 Новости
🖥 Платформа
Она была разработана для создания реалистичных и детализированных изображений, используя методы глубинного обучения.
Flux 1 использует диффузионные модели (diffusion models), которые обучаются превращать шум в осмысленные изображения. Процесс включает два этапа:
1. Прямой процесс (Forward Process) – модель добавляет шум к изображениям, постепенно разрушая их.
2. Обратный процесс (Reverse Process) – обученная модель учится удалять шум, восстанавливая реалистичные изображения.
- Генерация изображений с высоким разрешением.
- Обучение на больших датасетах, что позволяет создавать реалистичные и стилизованные изображения.
- Поддержка текстовых промптов, что делает её похожей на DALL·E и Stable Diffusion.
Сгенерируйте изображение
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
Раскройте секреты, которые выведут ваши навыки на новый уровень! Эти малоизвестные концепции — настоящий «арсенал ниндзя» для разработчика. Освойте их, чтобы:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#Tech
📖 Что почитать начинающему тестировщику ?
Если вы хотите стать тестировщиком, важно не только освоить практические навыки, но и понимать принципы тестирования. Вот список полезных книг, которые помогут разобраться в профессии.
⭐️ Тестирование dot com
Автор: Роман Савин
- Классика тестирования, актуальная даже спустя годы.
- Описывает профессию тестировщика и его задачи.
- Простым языком объясняет, как искать ошибки в ПО.
⭐️ Тестирование программного обеспечения
Автор: Святослав Куликов
- Отличный базовый курс тестирования.
- Разбирает разные виды тестирования, чек-листы и автоматизацию.
- Включает примеры команд и сценариев для автотестов.
⭐️ Ключевые процессы тестирования
Автор: Рэкс Блэк
- Глубокое погружение в процессы тестирования.
- Разбор тестирования на примере проекта «Суматра».
- Помогает понять, как правильно строить процессы в команде.
⭐️ Софт отстой и что с этим делать
Автор: Дэвид Платт
- Книга с юмором, но с полезными выводами.
- Рассматривает тестирование с точки зрения пользователя.
- Показывает, как выявлять проблемы в юзабилити.
⭐️ A Practitioner’s Guide to Software Test Design
Автор: Lee Copeland
- Единственная книга в подборке на английском.
- Описывает 7 подходов к тестированию.
- Подходит для новичков благодаря простому языку.
Эти книги помогут вам лучше понять тестирование и начать карьеру в этой сфере.
🔗 Статья
🌐 Новости
🖥 Платформа
Если вы хотите стать тестировщиком, важно не только освоить практические навыки, но и понимать принципы тестирования. Вот список полезных книг, которые помогут разобраться в профессии.
Автор: Роман Савин
- Классика тестирования, актуальная даже спустя годы.
- Описывает профессию тестировщика и его задачи.
- Простым языком объясняет, как искать ошибки в ПО.
Автор: Святослав Куликов
- Отличный базовый курс тестирования.
- Разбирает разные виды тестирования, чек-листы и автоматизацию.
- Включает примеры команд и сценариев для автотестов.
Автор: Рэкс Блэк
- Глубокое погружение в процессы тестирования.
- Разбор тестирования на примере проекта «Суматра».
- Помогает понять, как правильно строить процессы в команде.
Автор: Дэвид Платт
- Книга с юмором, но с полезными выводами.
- Рассматривает тестирование с точки зрения пользователя.
- Показывает, как выявлять проблемы в юзабилити.
Автор: Lee Copeland
- Единственная книга в подборке на английском.
- Описывает 7 подходов к тестированию.
- Подходит для новичков благодаря простому языку.
Эти книги помогут вам лучше понять тестирование и начать карьеру в этой сфере.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
#Frontend
Эй! Давай создадим свою слот-машину, как в онлайн-казино! Это будет классный проект, где мы сделаем три вертикальных слота с эмодзи фруктов и овощей.
Сначала мы подготовим HTML-страничку с контейнерами для слотов и кнопкой. Потом добавим стиль, чтобы всё выглядело круто. А после этого напишем скрипт, который будет случайным образом менять эмодзи, когда мы будем нажимать на кнопку.
Также можем добавить какие-нибудь улучшения, например, проверку совпадений или звуки, когда слоты крутятся. В общем, будет весело и полезно! Попробуем?
🔗 Статья
🌐 Новости
🖥 Платформа
Эй! Давай создадим свою слот-машину, как в онлайн-казино! Это будет классный проект, где мы сделаем три вертикальных слота с эмодзи фруктов и овощей.
Сначала мы подготовим HTML-страничку с контейнерами для слотов и кнопкой. Потом добавим стиль, чтобы всё выглядело круто. А после этого напишем скрипт, который будет случайным образом менять эмодзи, когда мы будем нажимать на кнопку.
Также можем добавить какие-нибудь улучшения, например, проверку совпадений или звуки, когда слоты крутятся. В общем, будет весело и полезно! Попробуем?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Программирование на гранях техники: Компьютеры, Редакторы и цифровые DSL
В программировании есть интересные концепции, делающие код более гибким и выразительным. Одной из таких концепций является метапрограммирование. Давайте разберемся, что это такое.
📝 Введение в метапрограммирование
Метапрограммирование позволяет изменять или генерировать код во время выполнения, адаптируя его к изменяющимся условиям.
📝 Метаклассы: магия за кулисами классов
Метаклассы — мощный инструмент для изменения процесса создания классов. Они позволяют автоматически регистрировать классы или динамически изменять их поведение, создавая более адаптивные структуры.
📝 Декораторы: магические обёртки для функций и классов
Декораторы добавляют дополнительное поведение к функциям и классам без изменения их исходного кода. Например, их можно использовать для логирования вызовов функций, что упрощает отладку.
📝 Динамические DSL: создание доменно-специфичных языков
DSL (доменно-специфические языки) решают специфические задачи в определенных областях. Метаклассы и декораторы позволяют создавать динамические DSL, адаптированные под нужды конкретного проекта.
Понимание этих концепций повысит вашу эффективность как разработчика и поможет создавать более гибкие и расширяемые системы!
🔗 Статья
🌐 Новости
🖥 Платформа
В программировании есть интересные концепции, делающие код более гибким и выразительным. Одной из таких концепций является метапрограммирование. Давайте разберемся, что это такое.
Метапрограммирование позволяет изменять или генерировать код во время выполнения, адаптируя его к изменяющимся условиям.
Метаклассы — мощный инструмент для изменения процесса создания классов. Они позволяют автоматически регистрировать классы или динамически изменять их поведение, создавая более адаптивные структуры.
Декораторы добавляют дополнительное поведение к функциям и классам без изменения их исходного кода. Например, их можно использовать для логирования вызовов функций, что упрощает отладку.
DSL (доменно-специфические языки) решают специфические задачи в определенных областях. Метаклассы и декораторы позволяют создавать динамические DSL, адаптированные под нужды конкретного проекта.
Понимание этих концепций повысит вашу эффективность как разработчика и поможет создавать более гибкие и расширяемые системы!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#Tech
🎭 Советы для избежания частых ошибок в разработке
1. Недостаточная обработка исключений
Реальный мир непредсказуем: некорректные данные, недоступные сервисы, повреждённые файлы. Грамотная обработка исключений — это забота о пользователе и бизнесе.
2. Забывая о DRY, пишем дважды
Копирование кода кажется быстрым решением, но становится кошмаром при внесении изменений. Выделение повторяющихся частей в функции — инвестиция в будущую продуктивность.
3. Глобальные переменные
Удобные на первый взгляд, они становятся источником неожиданных проблем. Лучше передавать данные через параметры и возвращаемые значения.
4. Тесты
Код без тестов подобен сложному трюку без страховки. Тесты выявляют ошибки на ранних этапах и документируют ожидаемое поведение программы.
5. Искусство работы с данными
Оптимизируйте алгоритмы и структуры данных. Используйте современные инструменты — генераторы, встроенные функции, специализированные коллекции.
6. SOLID
Эти принципы помогают создавать гибкие, расширяемые системы, устойчивые к изменениям требований.
7. Многопоточность
Без правильных механизмов блокировки и синхронизации параллельное выполнение задач приводит к непредсказуемым результатам.
8. Структура проекта
Логическое разделение на модули и пакеты помогает быстро ориентироваться в проекте и понимать взаимосвязи компонентов.
9. Магические числа:
Замена числовых значений на константы с говорящими именами делает код понятнее.
10. Логирование
Грамотное логирование — ваш проводник при выявлении причин сбоев на продакшене.
11. Планирование
Анализ требований и проектирование архитектуры помогают избежать ненужных переделок.
12. Единообразие
Единый стиль кодирования делает код читаемым и упрощает командную работу.
🔗 Статья
🌐 Новости
🖥 Платформа
1. Недостаточная обработка исключений
Реальный мир непредсказуем: некорректные данные, недоступные сервисы, повреждённые файлы. Грамотная обработка исключений — это забота о пользователе и бизнесе.
2. Забывая о DRY, пишем дважды
Копирование кода кажется быстрым решением, но становится кошмаром при внесении изменений. Выделение повторяющихся частей в функции — инвестиция в будущую продуктивность.
3. Глобальные переменные
Удобные на первый взгляд, они становятся источником неожиданных проблем. Лучше передавать данные через параметры и возвращаемые значения.
4. Тесты
Код без тестов подобен сложному трюку без страховки. Тесты выявляют ошибки на ранних этапах и документируют ожидаемое поведение программы.
5. Искусство работы с данными
Оптимизируйте алгоритмы и структуры данных. Используйте современные инструменты — генераторы, встроенные функции, специализированные коллекции.
6. SOLID
Эти принципы помогают создавать гибкие, расширяемые системы, устойчивые к изменениям требований.
7. Многопоточность
Без правильных механизмов блокировки и синхронизации параллельное выполнение задач приводит к непредсказуемым результатам.
8. Структура проекта
Логическое разделение на модули и пакеты помогает быстро ориентироваться в проекте и понимать взаимосвязи компонентов.
9. Магические числа:
Замена числовых значений на константы с говорящими именами делает код понятнее.
10. Логирование
Грамотное логирование — ваш проводник при выявлении причин сбоев на продакшене.
11. Планирование
Анализ требований и проектирование архитектуры помогают избежать ненужных переделок.
12. Единообразие
Единый стиль кодирования делает код читаемым и упрощает командную работу.
Ошибки — не повод для разочарования, а возможность для роста. Применяя лучшие практики, middle-разработчики могут подняться на новую ступень мастерства.
Постоянное обучение, критический взгляд на собственный код и открытость к обратной связи — ключи к профессиональному успеху.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
#Backend
SQL Practice
Это интерактивная платформа для освоения и совершенствования навыков SQL. Здесь вы решаете реальные задачи по работе с базами данных в удобной онлайн-среде.
Ключевые особенности:
- Обучение через практику — решайте задачи разной сложности
- Мгновенная обратная связь — система сразу проверяет ваши решения
- Реалистичные базы данных — работа с данными, имитирующими реальные сценарии
- Последовательное развитие — от простых запросов к сложным техникам
Как использовать
1. Перейдите на www.sql-practice.com
2. Выберите раздел и сложность
3. Напишите SQL-запрос для решения задачи
4. Получите результат и переходите к следующей задаче
🌐 Новости
🖥 Платформа
SQL Practice
Это интерактивная платформа для освоения и совершенствования навыков SQL. Здесь вы решаете реальные задачи по работе с базами данных в удобной онлайн-среде.
Ключевые особенности:
- Обучение через практику — решайте задачи разной сложности
- Мгновенная обратная связь — система сразу проверяет ваши решения
- Реалистичные базы данных — работа с данными, имитирующими реальные сценарии
- Последовательное развитие — от простых запросов к сложным техникам
Как использовать
1. Перейдите на www.sql-practice.com
2. Выберите раздел и сложность
3. Напишите SQL-запрос для решения задачи
4. Получите результат и переходите к следующей задаче
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1
#Frontend
🎓 Crunchzilla - это образовательная платформа, которая предлагает несколько интерактивных обучающих инструментов для изучения JavaScript.
На сайте представлены следующие программы:
1. Code Monster - интерактивный учебник по JavaScript для детей. Учит базовым концепциям программирования через создание анимации и графики.
2. Code Maven - более продвинутая версия для подростков и взрослых. Покрывает более сложные концепции JavaScript и создание интерактивных визуализаций.
3. Game Maven - учит создавать игры с использованием JavaScript, включая управление физикой, детектирование столкновений и другие игровые механики.
Это отличный способ для начинающих узнать основы программирования в интерактивной форме.
🔗 Ссылка
🌐 Новости
🖥 Платформа
На сайте представлены следующие программы:
1. Code Monster - интерактивный учебник по JavaScript для детей. Учит базовым концепциям программирования через создание анимации и графики.
2. Code Maven - более продвинутая версия для подростков и взрослых. Покрывает более сложные концепции JavaScript и создание интерактивных визуализаций.
3. Game Maven - учит создавать игры с использованием JavaScript, включая управление физикой, детектирование столкновений и другие игровые механики.
Все эти инструменты построены по принципу "учись, делая" - они предлагают пошаговые инструкции, которые пользователь выполняет прямо в браузере, сразу видя результаты своего кода.
Это отличный способ для начинающих узнать основы программирования в интерактивной форме.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Микросервисы зарекомендовали себя как эффективный подход в разработке, но бывают ли ситуации, когда они не оправдывают ожиданий?
В этой статье рассмотрены 10 распространенных антипаттернов в работе с микросервисами и решения для их предотвращения.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1
Всегда хотели создать собственное расширение для браузера, но думали, что это сложно? На самом деле, вы можете сделать простое, но полезное расширение всего за 10 минут!
В конце 2020 года я разработал скрипт с падающим снегом для сайтов. Но возникла проблема: скрипт нужно было запускать через консоль браузера, что становилось невозможным на сайтах с жёсткой политикой безопасности. Решение? Создать собственное расширение!
Манифест — это главный документ расширения, который определяет его параметры:
- Название
- Права доступа
- Фоновые скрипты
- Иконку
- Действия при клике
Создадим файл
manifest.json
:
{
"name": "Snow Fall",
"version": "1.0",
"manifest_version": 3,
"action": {
"default_popup": "popup.html"
},
"permissions": ["activeTab", "scripting"],
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
}
}
1. Откройте Chrome и перейдите в раздел
chrome://extensions/
2. Включите "Режим разработчика"
3. Нажмите "Загрузить распакованное расширение" и выберите папку с вашими файлами
Настройка иконок и разрешений
Для работы расширения нам нужны разрешения:
-
activeTab
— доступ к активной вкладке-
scripting
— возможность запускать скриптыА для всплывающего меню создадим файл
popup.html
:
<!DOCTYPE html>
<html>
<head>
<style>
button { width: 100px; height: 30px; }
</style>
</head>
<body>
<button id="start">Запустить снег</button>
<script src="popup.js"></script>
</body>
</html>
Теперь создадим файл
popup.js
с кодом для запуска:
document.getElementById('start').addEventListener('click', async () => {
let [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
chrome.scripting.executeScript({
target: { tabId: tab.id },
function: snowFall
});
});
function snowFall() {
// Здесь должен быть код со снежинками
// Пример:
const snow = document.createElement('div');
snow.innerHTML = '❄️';
snow.style.position = 'fixed';
snow.style.top = '0';
snow.style.left = Math.random() * 100 + '%';
snow.style.animation = 'fall 10s linear';
document.body.appendChild(snow);
// Добавьте здесь полный код для снежинок
}
После создания всех файлов и добавления расширения в браузер, вы можете:
1. Зайти на любой сайт
2. Нажать на иконку расширения
3. Нажать кнопку "Запустить снег"
Вуаля! Снежинки появляются даже на сайтах с жёсткой политикой безопасности.
Оригинальная статья
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#WebDevelopment
📡 Какие методы HTTP-запросов существуют?
HTTP — это основа для передачи данных в интернете. Разберём основные HTTP-методы:
➕ GET — Получение данных
• Запрашивает данные без изменений
• Параметры в URL
• Кэшируется
• Можно добавить в закладки
• Идемпотентный
➕ POST — Создание ресурса
• Отправляет данные на сервер
• Для создания новых ресурсов
• Данные в теле запроса
• Не кэшируется
• Не идемпотентный
➕ PUT — Полное обновление
• Заменяет ресурс полностью
• Может создать новый ресурс
• Идемпотентный
➕ DELETE — Удаление
• Удаляет ресурс
• Идемпотентный
➕ PATCH — Частичное обновление
• Частично изменяет ресурс
• Передаёт только изменяемые поля
• Обычно не идемпотентный
➕ HEAD — Только заголовки
• Возвращает только HTTP-заголовки
• Для проверки доступности ресурса
• Идемпотентный
➕ OPTIONS — Информация о ресурсе
• Запрашивает информацию о методах и заголовках
• Используется для CORS
• Идемпотентный
➕ CONNECT — Туннелирование
• Создаёт туннель через прокси
• Для HTTPS через HTTP-прокси
➕ TRACE — Диагностика
• Возвращает запрос обратно
• Для отладки
• Обычно отключен
💡 Что такое идемпотентность?
🌐 Новости
🖥 Платформа
📡 Какие методы HTTP-запросов существуют?
HTTP — это основа для передачи данных в интернете. Разберём основные HTTP-методы:
GET /api/users?id=123 HTTP/1.1
Host: example.com
• Запрашивает данные без изменений
• Параметры в URL
• Кэшируется
• Можно добавить в закладки
• Идемпотентный
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Алексей",
"email": "alex@example.com"
}
• Отправляет данные на сервер
• Для создания новых ресурсов
• Данные в теле запроса
• Не кэшируется
• Не идемпотентный
PUT /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "Алексей",
"email": "new.alex@example.com"
}
• Заменяет ресурс полностью
• Может создать новый ресурс
• Идемпотентный
DELETE /api/users/123 HTTP/1.1
Host: example.com
• Удаляет ресурс
• Идемпотентный
PATCH /api/users/123 HTTP/1.1
Host: example.com
Content-Type: application/json
{
"email": "newest.alex@example.com"
}
• Частично изменяет ресурс
• Передаёт только изменяемые поля
• Обычно не идемпотентный
• Возвращает только HTTP-заголовки
• Для проверки доступности ресурса
• Идемпотентный
• Запрашивает информацию о методах и заголовках
• Используется для CORS
• Идемпотентный
• Создаёт туннель через прокси
• Для HTTPS через HTTP-прокси
• Возвращает запрос обратно
• Для отладки
• Обычно отключен
💡 Что такое идемпотентность?
Идемпотентность — многократное выполнение одной операции даёт один результат.
Идемпотентные методы:
• GET
• PUT
• DELETE
• HEAD
• OPTIONS
Не идемпотентные:
• POST
• PATCH (обычно)
Please open Telegram to view this post
VIEW IN TELEGRAM
#Tech
🔐 Хеширование: защита данных в цифровом мире
В эпоху, когда каждый клик оставляет цифровой след, безопасность наших данных становится не роскошью, а необходимостью. Ежесекундно по всему миру пересылаются терабайты конфиденциальной информации — пароли, платежные данные, личная переписка.
Но как убедиться, что эти данные в безопасности? На помощь приходит хеширование — мощный инструмент в арсенале кибербезопасности.
В отличие от шифрования, которое позволяет вернуть данные к исходному виду с помощью ключа, хеширование создает уникальный "отпечаток" информации, который невозможно обратить.
В этой статье мы погрузимся в мир хеш-функций, разберем их типы и применение в реальной жизни — от защиты ваших паролей до блокчейн-технологий.
🔗 Статья
🌐 Новости
🖥 База вопросов
В эпоху, когда каждый клик оставляет цифровой след, безопасность наших данных становится не роскошью, а необходимостью. Ежесекундно по всему миру пересылаются терабайты конфиденциальной информации — пароли, платежные данные, личная переписка.
Но как убедиться, что эти данные в безопасности? На помощь приходит хеширование — мощный инструмент в арсенале кибербезопасности.
В отличие от шифрования, которое позволяет вернуть данные к исходному виду с помощью ключа, хеширование создает уникальный "отпечаток" информации, который невозможно обратить.
В этой статье мы погрузимся в мир хеш-функций, разберем их типы и применение в реальной жизни — от защиты ваших паролей до блокчейн-технологий.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Tech
Вспоминая школьные годы, когда мы часами разбирали старые гаджеты в попытке понять, как они работают, я недавно наткнулась на нечто особенное. Это Retro Gadgets – игра, которая переносит магию создания электроники в цифровой мир.
Что действительно зацепило меня — это возможность не просто собирать, но и программировать свои создания на Lua.
Если вы когда-нибудь мечтали стать изобретателем или просто любите возиться с ретро-электроникой, стоит заглянуть на их сайт. Я давно не испытывала такого творческого азарта.
🔗 Ссылка
🌐 Новости
🖥 База вопросов
Вспоминая школьные годы, когда мы часами разбирали старые гаджеты в попытке понять, как они работают, я недавно наткнулась на нечто особенное. Это Retro Gadgets – игра, которая переносит магию создания электроники в цифровой мир.
Представьте себе: вы берёте виртуальные микросхемы, кнопки, дисплеи и соединяете их в устройство своей мечты. Может быть портативную игровую консоль? Или музыкальный синтезатор?
Что действительно зацепило меня — это возможность не просто собирать, но и программировать свои создания на Lua.
Если вы когда-нибудь мечтали стать изобретателем или просто любите возиться с ретро-электроникой, стоит заглянуть на их сайт. Я давно не испытывала такого творческого азарта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Tech
Рейтинги языков программирования: не верь одному источнику!
Думаешь, какой язык учить или куда двигаться дальше? Разные рейтинги дают совершенно разные картины популярности!
Что показывают основные рейтинги в 2025:
TIOBE:
- Python
- C++
- Java
- Delphi внезапно на 9 месте (серьезно?!)
PYPL (Google Trends):
- Python по-прежнему король
- Java обгоняет C++
- Delphi скромно сидит на 30-м месте
RedMonk (GitHub + StackOverflow):
- JavaScript впереди Python
- CSS попал в топ-7 (хотя это не язык программирования)
Вакансии в России:
- Python (10 526)
- JavaScript (6198)
- Java (4354)
Почему языки становятся популярными:
- Python = машинное обучение и AI
- Go & Rust = облачные технологии и микросервисы
- TypeScript = надежный фронтенд
- C++ = сырая производительность
🔗 Ссылка
🌐 Новости
🖥 База вопросов
Рейтинги языков программирования: не верь одному источнику!
Думаешь, какой язык учить или куда двигаться дальше? Разные рейтинги дают совершенно разные картины популярности!
Что показывают основные рейтинги в 2025:
TIOBE:
- Python
- C++
- Java
- Delphi внезапно на 9 месте (серьезно?!)
PYPL (Google Trends):
- Python по-прежнему король
- Java обгоняет C++
- Delphi скромно сидит на 30-м месте
RedMonk (GitHub + StackOverflow):
- JavaScript впереди Python
- CSS попал в топ-7 (хотя это не язык программирования)
Вакансии в России:
- Python (10 526)
- JavaScript (6198)
- Java (4354)
Почему языки становятся популярными:
- Python = машинное обучение и AI
- Go & Rust = облачные технологии и микросервисы
- TypeScript = надежный фронтенд
- C++ = сырая производительность
Не верь одному рейтингу! Сравнивай разные источники. Смотри на тренды в своей сфере. Некоторые всплески популярности (как с Delphi) — просто статистические аномалии или результат маркетинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Рейтинги языков программирования: что за ними скрывается?
Написать эту статью меня побудил один забавный случай. Он хорошо демонстрирует, что не стоит слепо доверять одному источнику, каким бы авторитетным он ни был. Впрочем, обо всём по порядку. Когда...
👍2
#Frontend
🏗️ Шаблоны проектирования
Что такое шаблоны проектирования:
- Руководства по решению конкретных проблем
- Не являются законченными архитектурными решениями
- Описывают подход к решению проблемы, а не её поиск
1️⃣ Порождающие шаблоны
Описывают механизмы создания объектов:
Простая фабрика
- Генерирует экземпляр объекта без предоставления логики экземпляра
- Пример: создание дверей на фабрике
Фабричный метод
- Использует генерирующие методы для создания объектов
- Пример: создание интервьюеров на фабрике
Абстрактная фабрика
- Группирует индивидуальные фабрики без указания конкретных классов
- Пример: создание дверей и специалистов для их установки
Строитель
- Помогает при создании объектов с несколькими свойствами или большим количеством этапов
- Пример: создание бургеров с различными ингредиентами
- Позволяет добавлять новые опции без изменения структуры
Прототип
- Создаёт объекты путём клонирования существующего объекта
- Пример: клонирование объекта «Овца» для создания новых объектов
- Используется, когда создание объекта с нуля дороже клонирования
Одиночка
- Ограничивает создание класса единственным объектом
- Пример: создание единственного экземпляра класса «Президент»
- Антипаттерн, так как вносит глобальное состояние в приложение
2️⃣ Структурные шаблоны
Определяют способ взаимоотношений между сущностями:
Адаптер
- Помещает несовместимый объект в обёртку для совместимости с другим классом
- Пример: адаптер для совместимости дикой собаки с охотником
Мост
- Предпочитает компоновку наследованию
- Пример: реализация тем оформления веб-страниц
Компоновщик
- Позволяет клиентам обрабатывать объекты в едином порядке
- Пример: обработка сотрудников компании как единой группы, с расчетом зарплаты
Декоратор
- Позволяет динамически изменять поведение объекта
- Пример: добавление ингредиентов к кофе (молоко, взбитые сливки, ваниль)
Фасад
- Предоставляет упрощённый интерфейс для сложной подсистемы
- Пример: компьютерный фасад с функциями включения и выключения
Приспособленец
- Минимизирует использование памяти за счёт общего использования объектов
- Пример: кэширование типов чая в чайном магазине
Заместитель
- Представляет функциональность другого класса
- Пример: класс безопасности проверяет пароль и выполняет функции двери
3️⃣ Поведенческие шаблоны
Определяют алгоритмы и способы взаимодействия объектов:
Цепочка ответственности
- Создание цепочек объектов для обработки запросов
- Пример: банковский счёт и цепочка оплаты
Команда
- Инкапсуляция действий в объекты
- Пример: система заказов в ресторане и пульт управления
Итератор
- Доступ к элементам объекта без раскрытия базового представления
- Пример: перебор радиостанций
Посредник
- Добавление стороннего объекта для управления взаимодействием
- Пример: чат-комната как посредник между пользователями
Хранитель
- Фиксирует текущее состояние объекта для лёгкого восстановления
- Пример: сохранение состояния текстового редактора
Наблюдатель
- Определяет зависимость между объектами для уведомления об изменениях
- Пример: уведомления о новых вакансиях для соискателей
Посетитель
- Позволяет добавлять будущие операции без изменения объектов
- Пример: зоопарк с различными видами животных и типами посетителей
Стратегия
- Переключается между алгоритмами в зависимости от ситуации
- Пример: выбор между пузырьковой и быстрой сортировкой
Состояние
- Меняет поведение класса при изменении состояния
- Пример: инструмент «Кисть» в графическом редакторе
- Реализует машину состояний объектно-ориентированным способом
- Каждое состояние представлено производным классом
- Пример: текстовый редактор с различными начертаниями текста
Шаблонный метод
- Определяет каркас выполнения алгоритма
- Реализация этапов делегируется дочерним классам
- Пример: инструмент для сборки и тестирования с реализациями для Android и iOS
🔗 Ссылка
🌐 Новости
🖥 База вопросов
Что такое шаблоны проектирования:
- Руководства по решению конкретных проблем
- Не являются законченными архитектурными решениями
- Описывают подход к решению проблемы, а не её поиск
Описывают механизмы создания объектов:
Простая фабрика
- Генерирует экземпляр объекта без предоставления логики экземпляра
- Пример: создание дверей на фабрике
Фабричный метод
- Использует генерирующие методы для создания объектов
- Пример: создание интервьюеров на фабрике
Абстрактная фабрика
- Группирует индивидуальные фабрики без указания конкретных классов
- Пример: создание дверей и специалистов для их установки
Строитель
- Помогает при создании объектов с несколькими свойствами или большим количеством этапов
- Пример: создание бургеров с различными ингредиентами
- Позволяет добавлять новые опции без изменения структуры
Прототип
- Создаёт объекты путём клонирования существующего объекта
- Пример: клонирование объекта «Овца» для создания новых объектов
- Используется, когда создание объекта с нуля дороже клонирования
Одиночка
- Ограничивает создание класса единственным объектом
- Пример: создание единственного экземпляра класса «Президент»
- Антипаттерн, так как вносит глобальное состояние в приложение
Определяют способ взаимоотношений между сущностями:
Адаптер
- Помещает несовместимый объект в обёртку для совместимости с другим классом
- Пример: адаптер для совместимости дикой собаки с охотником
Мост
- Предпочитает компоновку наследованию
- Пример: реализация тем оформления веб-страниц
Компоновщик
- Позволяет клиентам обрабатывать объекты в едином порядке
- Пример: обработка сотрудников компании как единой группы, с расчетом зарплаты
Декоратор
- Позволяет динамически изменять поведение объекта
- Пример: добавление ингредиентов к кофе (молоко, взбитые сливки, ваниль)
Фасад
- Предоставляет упрощённый интерфейс для сложной подсистемы
- Пример: компьютерный фасад с функциями включения и выключения
Приспособленец
- Минимизирует использование памяти за счёт общего использования объектов
- Пример: кэширование типов чая в чайном магазине
Заместитель
- Представляет функциональность другого класса
- Пример: класс безопасности проверяет пароль и выполняет функции двери
Определяют алгоритмы и способы взаимодействия объектов:
Цепочка ответственности
- Создание цепочек объектов для обработки запросов
- Пример: банковский счёт и цепочка оплаты
Команда
- Инкапсуляция действий в объекты
- Пример: система заказов в ресторане и пульт управления
Итератор
- Доступ к элементам объекта без раскрытия базового представления
- Пример: перебор радиостанций
Посредник
- Добавление стороннего объекта для управления взаимодействием
- Пример: чат-комната как посредник между пользователями
Хранитель
- Фиксирует текущее состояние объекта для лёгкого восстановления
- Пример: сохранение состояния текстового редактора
Наблюдатель
- Определяет зависимость между объектами для уведомления об изменениях
- Пример: уведомления о новых вакансиях для соискателей
Посетитель
- Позволяет добавлять будущие операции без изменения объектов
- Пример: зоопарк с различными видами животных и типами посетителей
Стратегия
- Переключается между алгоритмами в зависимости от ситуации
- Пример: выбор между пузырьковой и быстрой сортировкой
Состояние
- Меняет поведение класса при изменении состояния
- Пример: инструмент «Кисть» в графическом редакторе
- Реализует машину состояний объектно-ориентированным способом
- Каждое состояние представлено производным классом
- Пример: текстовый редактор с различными начертаниями текста
Шаблонный метод
- Определяет каркас выполнения алгоритма
- Реализация этапов делегируется дочерним классам
- Пример: инструмент для сборки и тестирования с реализациями для Android и iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Frontend
🍪 Работа с куки: эволюция подходов
Работа с куки в JavaScript никогда не была удобной. Метод появился в 1996 году и почти не изменился. Разберем разницу между старым и новым подходом.
1️⃣ Классический способ (document.cookie)
Недостатки:
- Синхронные операции блокируют поток
- Нельзя узнать срок действия или домен куки
- Неудобно работать с несколькими куки
- Нельзя использовать в сервис-воркерах
2️⃣ Современный Cookie Store API
Преимущества:
- Асинхронный API не блокирует поток
- Доступ ко всей информации о куки
- Работает в сервис-воркерах
- Подписка на изменения куки
🔗 Ссылка
🌐 Новости
🖥 База вопросов
🍪 Работа с куки: эволюция подходов
Работа с куки в JavaScript никогда не была удобной. Метод появился в 1996 году и почти не изменился. Разберем разницу между старым и новым подходом.
Недостатки:
- Синхронные операции блокируют поток
- Нельзя узнать срок действия или домен куки
- Неудобно работать с несколькими куки
- Нельзя использовать в сервис-воркерах
Преимущества:
- Асинхронный API не блокирует поток
- Доступ ко всей информации о куки
- Работает в сервис-воркерах
- Подписка на изменения куки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1