🐙 Appwrite – бэкенд-сервер с открытым исходным кодом. Платформа позволяет хранить данные приложения и использовать аутентификацию, а также предоставляет удобное API.
Сайтодел | #репозиторий #github
Сайтодел | #репозиторий #github
🔴 Завтра тестовое собеседование на Middle Python с разработчиком из Авито
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Element.replaceChildren() — полная замена содержимого элемента через DOM API!
Для полной замены содержимого элемента часто сначала очищают контейнер, а затем добавляют новые узлы либо используют
Для этой задачи DOM API предоставляет специализированный метод
Очистить элемент можно одним вызовом:
const list = document.querySelector('.list');
list.replaceChildren();
Метод удаляет все дочерние узлы элемента независимо от их типа. Одновременно можно передать новое содержимое, которое заменит существующее:
const list = document.querySelector('.list');
const item = document.createElement('li');
item.textContent = 'JavaScript';
list.replaceChildren(item);
После вызова прежние дочерние узлы будут удалены, а переданный элемент станет единственным дочерним узлом контейнера. Метод принимает любое количество DOM-узлов:
const container = document.querySelector('.container');
const title = document.createElement('h2');
title.textContent = 'Статьи';
const description = document.createElement('p');
description.textContent = 'Последние публикации';
container.replaceChildren(title, description);
Также можно передавать строки:
container.replaceChildren('Загрузка...');
Они автоматически преобразуются в текстовые узлы. Если передать существующий DOM-узел, он будет не скопирован, а перемещён:
const card = document.querySelector('.card');
const sidebar = document.querySelector('.sidebar');
sidebar.replaceChildren(card);
Это соответствует общей модели DOM: один узел не может одновременно находиться в нескольких местах дерева. В отличие от
container.replaceChildren('<strong>Text</strong>');
В контейнер будет добавлен обычный текст:
<strong>Text</strong>
Если требуется вставить HTML-разметку, можно использовать
🔥
📣 Code Ready | #практика
Для полной замены содержимого элемента часто сначала очищают контейнер, а затем добавляют новые узлы либо используют
innerHTML.Для этой задачи DOM API предоставляет специализированный метод
replaceChildren().Очистить элемент можно одним вызовом:
const list = document.querySelector('.list');
list.replaceChildren();
Метод удаляет все дочерние узлы элемента независимо от их типа. Одновременно можно передать новое содержимое, которое заменит существующее:
const list = document.querySelector('.list');
const item = document.createElement('li');
item.textContent = 'JavaScript';
list.replaceChildren(item);
После вызова прежние дочерние узлы будут удалены, а переданный элемент станет единственным дочерним узлом контейнера. Метод принимает любое количество DOM-узлов:
const container = document.querySelector('.container');
const title = document.createElement('h2');
title.textContent = 'Статьи';
const description = document.createElement('p');
description.textContent = 'Последние публикации';
container.replaceChildren(title, description);
Также можно передавать строки:
container.replaceChildren('Загрузка...');
Они автоматически преобразуются в текстовые узлы. Если передать существующий DOM-узел, он будет не скопирован, а перемещён:
const card = document.querySelector('.card');
const sidebar = document.querySelector('.sidebar');
sidebar.replaceChildren(card);
Это соответствует общей модели DOM: один узел не может одновременно находиться в нескольких местах дерева. В отличие от
innerHTML, метод не разбирает переданные строки как HTML-разметку:container.replaceChildren('<strong>Text</strong>');
В контейнер будет добавлен обычный текст:
<strong>Text</strong>
Если требуется вставить HTML-разметку, можно использовать
innerHTML или insertAdjacentHTML(), но только для доверенной либо предварительно санитизированной разметки. Более безопасный вариант — сформировать необходимое дерево DOM-узлов программно.🔥
replaceChildren() определён в DOM Standard и позволяет заменить всё содержимое одним вызовом. Это делает намерение кода более явным и избавляет от необходимости отдельно очищать контейнер перед добавлением новых узлов.📣 Code Ready | #практика
📚 RSS Daily Digest – 5 августа 2026
Только что проверил подписки. Вот интересные новости, появившиеся за последние 24 ч.
Hacker News
• Eight Myths on Software Engineering and GenAI – https://queue.acm.org/detail.cfm?id=3807963
• Stateless MCP has recaptured my interest – https://simonwillison.net/2026/Jul/31/stateless-mcp/
• Pi’s Minimalism Is Its Advantage – https://earendil.com/posts/pi-autoresearch-and-databricks/
• The Golden Age of British Ice Cream – https://www.vittlesmagazine.com/p/the-golden-age-of-british-ice-cream
• Mistral’s Shieldstral: 3B open‑weights model for multimodal moderation – https://mistral.ai/news/shieldstral/
• Why is it all in the kernel? – https://lawrencecpaulson.github.io//2026/07/30/Collatz.html
• IP and DNS Leaks in WebKit Affecting Proxy Browsers and iCloud Private Relay – https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/
• Zigbee vs. Matter over Thread: Understanding IoT Protocol Performance in Practice – https://arxiv.org/abs/2603.04221
• Rio‑vt and librio: Rio’s terminal engine, now embeddable – https://rioterm.com/blog/2026/07/27/rio-vt-and-librio
• The sale of Electronic Arts has been finalized – https://www.bbc.com/news/articles/cjejyl34345o
───
Если нужны детали, фильтры по темам или иной формат — дайте знать!
Только что проверил подписки. Вот интересные новости, появившиеся за последние 24 ч.
Hacker News
• Eight Myths on Software Engineering and GenAI – https://queue.acm.org/detail.cfm?id=3807963
• Stateless MCP has recaptured my interest – https://simonwillison.net/2026/Jul/31/stateless-mcp/
• Pi’s Minimalism Is Its Advantage – https://earendil.com/posts/pi-autoresearch-and-databricks/
• The Golden Age of British Ice Cream – https://www.vittlesmagazine.com/p/the-golden-age-of-british-ice-cream
• Mistral’s Shieldstral: 3B open‑weights model for multimodal moderation – https://mistral.ai/news/shieldstral/
• Why is it all in the kernel? – https://lawrencecpaulson.github.io//2026/07/30/Collatz.html
• IP and DNS Leaks in WebKit Affecting Proxy Browsers and iCloud Private Relay – https://mysk.blog/2026/08/04/webkit-proxy-icloud-private-relay-ip-leak/
• Zigbee vs. Matter over Thread: Understanding IoT Protocol Performance in Practice – https://arxiv.org/abs/2603.04221
• Rio‑vt and librio: Rio’s terminal engine, now embeddable – https://rioterm.com/blog/2026/07/27/rio-vt-and-librio
• The sale of Electronic Arts has been finalized – https://www.bbc.com/news/articles/cjejyl34345o
───
Если нужны детали, фильтры по темам или иной формат — дайте знать!
Simon Willison’s Weblog
Stateless MCP has recaptured my interest (and inspired mcp-explorer and datasette-mcp)
Tuesday was Stateless MCP day—the rollout of MCP 2.0, or the 2026-07-28 Model Context Protocol specification to use the more formal but less memorable name. This is the most significant …
💾 Password Generator – генератор надежных длинных паролей со специальными символами. Каждый вариант можно скопировать нажатием на иконку.
Сайтодел | #сниппет #css
Сайтодел | #сниппет #css
🎨 Цветовая палитра макета "Performance Driven Gym"
⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра
HEX | RGB #E9ECFF | rgb(233, 236, 255)#808CFD | rgb(128, 140, 253)#3C3E4C | rgb(60, 62, 76)⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра
👨💻 Сохраняем ещё один полезный ресурс для разработчиков
Нашли @Hanza_chat - IT-комьюнити, где можно не только читать очередную подборку инструментов, но и нормально пообщаться с другими разработчиками.
А для больших разборов у ребят есть отдельный Hanza.io - форум с разделами.
Чат: @Hanza_chat
Форум: Hanza.io
Нашли @Hanza_chat - IT-комьюнити, где можно не только читать очередную подборку инструментов, но и нормально пообщаться с другими разработчиками.
А для больших разборов у ребят есть отдельный Hanza.io - форум с разделами.
Чат: @Hanza_chat
Форум: Hanza.io
👩💻 Можно ли одной строкой сбросить все CSS-свойства элемента?
Свойство
Основные значения:
• initial — сбрасывает свойства к значениям по умолчанию;
• inherit — наследует все свойства от родителя;
• unset — сочетает initial и inherit в зависимости от свойства;
• revert — возвращает стили, заданные браузером или пользовательскими стилями.
📣 Code Ready | #свойство
Свойство
all позволяет одновременно сбросить или переопределить почти все CSS-свойства элемента. Это удобно, когда нужно убрать влияние внешних стилей и начать оформление с чистого листа.Основные значения:
• initial — сбрасывает свойства к значениям по умолчанию;
• inherit — наследует все свойства от родителя;
• unset — сочетает initial и inherit в зависимости от свойства;
• revert — возвращает стили, заданные браузером или пользовательскими стилями.
all часто используют при создании собственных компонентов, кнопок и виджетов, чтобы быстро избавиться от нежелательных стилей без перечисления каждого свойства отдельно.📣 Code Ready | #свойство
✍️ Digital 7 Mono – ретро-шрифт с прямоугольными формами, созданный в стиле старых дисплеев. Пример можно увидеть в сниппете Metal Gear Radar States
Сайтодел | #шрифт
Сайтодел | #шрифт
🎨 Цветовая палитра макета "Social Factory"
⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра
HEX | RGB #FEFBF6 | rgb(254, 251, 246)#FE0000 | rgb(254, 0, 0)#5C1B15 | rgb(92, 27, 21)⚠️ Цвет копируется одним кликом!
Сайтодел | #палитра
💾 Made With CSS – анимированное кольцо с текстом. Так как оно вращается против часовой стрелки, слова легко считываются справа налево.
Сайтодел | #сниппет #css
Сайтодел | #сниппет #css
URL.canParse() — нативная проверка URL без try...catch!
При работе с пользовательскими данными часто требуется проверить, может ли строка быть разобрана как URL. Распространённый подход — использовать конструктор
try {
new URL(value);
} catch {
console.log('Не удалось разобрать URL');
}
Современный Web API предоставляет более удобный способ — статический метод
URL.canParse('https://example.com');
// true
URL.canParse('not-a-url');
// false
Для относительных адресов необходимо передать базовый URL:
URL.canParse('/users/1', 'https://example.com');
// true
Без базового URL такой вызов вернёт
Если нужен только результат проверки,
const url = URL.parse(value);
if (url) {
console.log(url.hostname);
}
const input = document.querySelector('input');
if (!URL.canParse(input.value)) {
input.setCustomValidity('Введите абсолютный URL');
} else {
input.setCustomValidity('');
}
Если приложение допускает относительные адреса, передайте
Например, URL с протоколом
const url = URL.parse(value);
if (url?.protocol === 'https:') {
// дальнейшая обработка
}
Перед выполнением запроса удобно сразу получить объект
const url = URL.parse(apiUrl, document.baseURI);
if (!url || !['http:', 'https:'].includes(url.protocol)) {
throw new Error('Недопустимый адрес API');
}
await fetch(url);
🔥
📣 Code Ready | #практика
При работе с пользовательскими данными часто требуется проверить, может ли строка быть разобрана как URL. Распространённый подход — использовать конструктор
URL внутри try...catch, поскольку при некорректной строке он выбрасывает исключение:try {
new URL(value);
} catch {
console.log('Не удалось разобрать URL');
}
Современный Web API предоставляет более удобный способ — статический метод
URL.canParse(). Он проверяет, может ли строка быть разобрана по алгоритму URL Standard, и возвращает true или false без использования try...catch:URL.canParse('https://example.com');
// true
URL.canParse('not-a-url');
// false
Для относительных адресов необходимо передать базовый URL:
URL.canParse('/users/1', 'https://example.com');
// true
Без базового URL такой вызов вернёт
false, поскольку относительный адрес невозможно разрешить без контекста.Если нужен только результат проверки,
URL.canParse() — оптимальный выбор. Если после проверки требуется объект URL, удобнее сразу использовать URL.parse(), чтобы не выполнять разбор дважды:const url = URL.parse(value);
if (url) {
console.log(url.hostname);
}
URL.parse() возвращает объект URL при успешном разборе и null при ошибке. Например, для проверки пользовательского ввода:const input = document.querySelector('input');
if (!URL.canParse(input.value)) {
input.setCustomValidity('Введите абсолютный URL');
} else {
input.setCustomValidity('');
}
Если приложение допускает относительные адреса, передайте
document.baseURI вторым аргументом. Важно понимать, что URL.canParse() проверяет только возможность разбора строки. Метод не проверяет существование ресурса, доступность сервера, допустимость протокола для приложения или безопасность адреса. Например, URL с протоколом
javascript: или data: может успешно пройти проверку. Если приложение принимает только HTTPS, протокол необходимо проверить отдельно:const url = URL.parse(value);
if (url?.protocol === 'https:') {
// дальнейшая обработка
}
Перед выполнением запроса удобно сразу получить объект
URL:const url = URL.parse(apiUrl, document.baseURI);
if (!url || !['http:', 'https:'].includes(url.protocol)) {
throw new Error('Недопустимый адрес API');
}
await fetch(url);
document.baseURI учитывает базовый адрес документа, включая значение элемента <base>. Проверка протокола также не защищает от SSRF, поэтому на сервере необходима дополнительная валидация адресов.🔥
URL.canParse() подходит для случаев, когда нужна только проверка возможности разбора URL, а URL.parse() — когда требуется сразу получить объект URL. При использовании этих методов в проектах с поддержкой старых браузеров и устаревших WebView следует учитывать совместимость.📣 Code Ready | #практика
🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют
По данным Минфин 32% граждан покинули своё место работы, поскольку в среднем уже в первый месяц тут можно зарабатывать от 140 000 рублей, а через 2-3 месяца с легкостью выйти на семизначные числа.
Самое смешное, что лишь 8% россиян что-то слышали об этой профессии, хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют
Там объясняют, как имея телефон и доступ в интернет, заработать свои первые $2000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка!
Быстрее вступайте, пока это бесплатно — https://t.me/+U-f4ZwrEo-pmZGYy
По данным Минфин 32% граждан покинули своё место работы, поскольку в среднем уже в первый месяц тут можно зарабатывать от 140 000 рублей, а через 2-3 месяца с легкостью выйти на семизначные числа.
Самое смешное, что лишь 8% россиян что-то слышали об этой профессии, хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют
Там объясняют, как имея телефон и доступ в интернет, заработать свои первые $2000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка!
Быстрее вступайте, пока это бесплатно — https://t.me/+U-f4ZwrEo-pmZGYy
🖥 Weather Glitch App – необычный дизайн мобильного приложения для погоды. Его основа – произвольные линии из текста и иконок, геометрические фигуры и цветные блики.
Сайтодел | #макет #figma
Сайтодел | #макет #figma
💾 Card Swipe Carousel – стопка карточек, которые нужно перетаскивать вправо и влево. От простого нажатия карточка остается на месте.
Сайтодел | #сниппет #css
Сайтодел | #сниппет #css
⌨️ Оживляем код: первые шаги в ООП на Python
Приглашаем на открытый урок.
🗓 03 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Pyhon-разработчик».
На занятии вы узнаете:
✔️ Что такое класс и объект, и зачем они нужны.
✔️ Как создавать свои типы данных с атрибутами и методами.
✔️ Как объединять данные и логику внутри класса.
✔️ Как применить ООП на простом практическом примере.
🔗 Ссылка на регистрацию: https://otus.pw/r7ks/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Приглашаем на открытый урок.
🗓 03 августа в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Pyhon-разработчик».
На занятии вы узнаете:
✔️ Что такое класс и объект, и зачем они нужны.
✔️ Как создавать свои типы данных с атрибутами и методами.
✔️ Как объединять данные и логику внутри класса.
✔️ Как применить ООП на простом практическом примере.
🔗 Ссылка на регистрацию: https://otus.pw/r7ks/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🔥 Мини-приложения с иконкой в трее — на Python? Легко!
Pystray — библиотека, которая превращает твой скрипт в настоящее десктоп-приложение с иконкой рядом с часами.
👨💻 Что умеет Pystray:
🟢Создаёт фоновое приложение без окон и GUI
🟢Добавляет иконку в системный трей — как у VPN, антивирусов и Telegram.
🟢Работает на Windows, macOS и Linux.
🟢Идеально для трекеров, бэкапов, Telegram-ботов, утилит и напоминалок.
🟢Простой API — минимум кода, максимум пользы.
⚙️ Простая установка:
pip install pystray
📚 Документация/Примеры кода
Используй Pystray, чтобы твои скрипты выглядели как настоящие нативные приложения.
И никаких окон. Только стиль и функциональность.
#python #soft #code #github
Pystray — библиотека, которая превращает твой скрипт в настоящее десктоп-приложение с иконкой рядом с часами.
👨💻 Что умеет Pystray:
🟢Создаёт фоновое приложение без окон и GUI
🟢Добавляет иконку в системный трей — как у VPN, антивирусов и Telegram.
🟢Работает на Windows, macOS и Linux.
🟢Идеально для трекеров, бэкапов, Telegram-ботов, утилит и напоминалок.
🟢Простой API — минимум кода, максимум пользы.
⚙️ Простая установка:
pip install pystray
📚 Документация/Примеры кода
Используй Pystray, чтобы твои скрипты выглядели как настоящие нативные приложения.
И никаких окон. Только стиль и функциональность.
#python #soft #code #github
🤨 Ученые предложили постепенно сократить население Земли почти вдвое — до 4 миллиардов человек к 2200 году.
Авторы исследования считают, что постепенное снижение численности населения может уменьшить нагрузку на природные ресурсы, сократить экологические проблемы и повысить качество жизни. При этом речь идет не о принудительных мерах, а о долгосрочном снижении рождаемости и добровольных подходах.
С добрым утром 🌟
Авторы исследования считают, что постепенное снижение численности населения может уменьшить нагрузку на природные ресурсы, сократить экологические проблемы и повысить качество жизни. При этом речь идет не о принудительных мерах, а о долгосрочном снижении рождаемости и добровольных подходах.
С добрым утром 🌟
Вышла интересная статья на Хабре: «TAMA-90: тамагочи из 90-х своими руками на JavaScript»!
В этой статье:
🔊 Продолжайте читать на Habr!
📣 Code Ready | #статья
В этой статье:
• Показывается, как создать современную версию тамагочи на чистом JavaScript без фреймворков и сторонних библиотек;• Разбирается архитектура проекта, работа с Canvas, localStorage, игровой логикой, случайными событиями и мини-играми;• Объясняется, как программно рисовать пиксельных питомцев, организовать сохранения, коллекцию персонажей и систему развития без готовых спрайтов.🔊 Продолжайте читать на Habr!
📣 Code Ready | #статья
🐙 Text Extract API – инструмент для преобразования картинок, pdf-файлов и других документов в формат Markdown или JSON. Работает с табличными данными, числами и математическими формулами, использует FastAPI.
Сайтодел | #репозиторий #github
Сайтодел | #репозиторий #github