#Performance
📎 Скрытая ловушка mmap: почему async/await не работает как ожидается
Memory-mapped файлы выглядят как идеальное решение: доступ к файлу как к обычному массиву без лишних копирований. Но есть подвох — они могут убить всю конкурентность в async-коде.
Проблема в цифрах
Эксперимент показал шокирующие результаты при чтении 8 файлов по 256 МБ каждый:
- async/await + mmap: 2.5-3 секунды
- 8 потоков + mmap: 0.75-0.8 секунды
- async/await + обычный I/O: 0.62-0.65 секунды
Асинхронная версия с mmap работает как однопоточная — конкурентность полностью исчезает!
Что происходит под капотом?
Memory mapping создает иллюзию, что файл находится в памяти:
Но на самом деле:
1. При первом обращении к странице происходит page fault
2. ОС блокирует поток и загружает данные с диска
3. В это время НЕТ await — исполнитель не может переключиться на другую задачу
4. Весь async runtime замораживается
Коварство скрытой блокировки
Самое опасное —
Код не подозревает, что индексация может вызвать I/O блокировку.
Когда mmap действительно быстр
С прогретым кэшем результаты кардинально меняются:
- Холодный кэш: 2.5 секунды
- Прогретый кэш: 0.12 секунды (в 21 раз быстрее!)
Memory mapping отлично работает, когда данные уже в памяти — меньше накладных расходов, чем у обычного I/O.
Практические выводы
✅ Используйте mmap когда:
- Данные помещаются в память
- Работаете с синхронным кодом
- Нужен произвольный доступ к файлу
❌ Избегайте mmap в async/await когда:
- Файлы больше доступной памяти
- Критична отзывчивость системы
- Используете кооперативную многозадачность
Альтернативы для async
Для асинхронного кода лучше использовать:
-
- Разбиение больших файлов на чанки
- Предварительная загрузка критичных данных
Memory mapping — мощный инструмент, но в async-мире он может превратить конкурентный код в последовательный. Знание этой особенности поможет избежать неожиданных проблем с производительностью.
📎 Ссылка
🎙 Новости
📝 База вопросов
Memory-mapped файлы выглядят как идеальное решение: доступ к файлу как к обычному массиву без лишних копирований. Но есть подвох — они могут убить всю конкурентность в async-коде.
Проблема в цифрах
Эксперимент показал шокирующие результаты при чтении 8 файлов по 256 МБ каждый:
- async/await + mmap: 2.5-3 секунды
- 8 потоков + mmap: 0.75-0.8 секунды
- async/await + обычный I/O: 0.62-0.65 секунды
Асинхронная версия с mmap работает как однопоточная — конкурентность полностью исчезает!
Что происходит под капотом?
Memory mapping создает иллюзию, что файл находится в памяти:
let mmapped = unsafe { memmap2::Mmap::map(file)? };
let byte = mmapped[0]; // Выглядит как обычная индексация
Но на самом деле:
1. При первом обращении к странице происходит page fault
2. ОС блокирует поток и загружает данные с диска
3. В это время НЕТ await — исполнитель не может переключиться на другую задачу
4. Весь async runtime замораживается
Коварство скрытой блокировки
Самое опасное —
Mmap
разыменовывается в &[u8]
. Функция получает обычный срез:fn process_data(data: &[u8]) {
let value = data[1000]; // Может заблокировать весь runtime!
}
Код не подозревает, что индексация может вызвать I/O блокировку.
Когда mmap действительно быстр
С прогретым кэшем результаты кардинально меняются:
- Холодный кэш: 2.5 секунды
- Прогретый кэш: 0.12 секунды (в 21 раз быстрее!)
Memory mapping отлично работает, когда данные уже в памяти — меньше накладных расходов, чем у обычного I/O.
Практические выводы
- Данные помещаются в память
- Работаете с синхронным кодом
- Нужен произвольный доступ к файлу
- Файлы больше доступной памяти
- Критична отзывчивость системы
- Используете кооперативную многозадачность
Альтернативы для async
Для асинхронного кода лучше использовать:
-
tokio::fs::File
с явными read().await
- Разбиение больших файлов на чанки
- Предварительная загрузка критичных данных
Memory mapping — мощный инструмент, но в async-мире он может превратить конкурентный код в последовательный. Знание этой особенности поможет избежать неожиданных проблем с производительностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from YeaHub
Аудитория:
→ 3 500 зарегистрированных пользователей
→ 10 000 подписчиков в экосистеме YeaHub (Telegram)
→ 2 000 подписчиков в Instagram
→ 1 000 подписчиков на YouTube
→ 1 200 подписчиков в TikTok
→ 100 000+ посетителей с ноября 2024 года
Команда и развитие:
→ Более 100 IT-специалистов работали над платформой (разработчики, дизайнеры, тестировщики)
→ Инкубировали 60+ молодых специалистов, успешно трудоустроившихся после стажировки
→ 4 стажёра на Go разрабатывают новый сервис для YeaHub
В планах – привлечение начинающих тестировщиков для работы с реальным проектом. Хотите на бесплатную стажировку? Пишите: @yeahub_support
Развитие платформы:
→ Расширяем партнёрство с экспертами для создания качественного контента
→ Разрабатываем новые сервисы для IT-развития
→ Постоянно улучшаем функционал платформы
YeaHub растёт, обучает и создаёт новые возможности для IT-сообщества. 🚀
Подписывайтесь на каналы Экосистемы YeaHub
Проект YeaHub:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#AI
2025 год продолжает удивлять: пока одни нейросети соревнуются в создании видео, Midjourney наконец решила показать свои карты.
Компания, которая долгое время игнорировала видеотренды, представила Midjourney Video V1 — свой первый инструмент для превращения статичных изображений в анимацию.
Разбираемся, стоит ли овчинка выделки и как новая функция меняет расклад сил на рынке ИИ-видео⬇️
📎 Статья
🎙 Новости
📝 База вопросов
2025 год продолжает удивлять: пока одни нейросети соревнуются в создании видео, Midjourney наконец решила показать свои карты.
Компания, которая долгое время игнорировала видеотренды, представила Midjourney Video V1 — свой первый инструмент для превращения статичных изображений в анимацию.
Разбираемся, стоит ли овчинка выделки и как новая функция меняет расклад сил на рынке ИИ-видео
Please open Telegram to view this post
VIEW IN TELEGRAM
#Docker
📎 Свой Docker-реестр: просто, безопасно, под контролем
Если ты:
– Не хочешь зависеть от сторонних сервисов
– Работаешь с чувствительными данными
– Или просто хочешь больше контроля над инфраструктурой
📦 Поднять свой Docker Registry — проще, чем кажется.
Достаточно:
1. Установить Docker и Docker Compose
2. Настроить
3. Добавить nginx с SSL-сертификатом
4. Авторизовать пользователей через
Реестр запускается как контейнер и легко расширяется — например, UI от (https://github.com/Joxit/docker-registry-ui) или интеграция с Kubernetes.
Гайд, инструкции и код — уже ждут тебя⬇️
📎 Статья
🎙 Новости
📝 База вопросов
Если ты:
– Не хочешь зависеть от сторонних сервисов
– Работаешь с чувствительными данными
– Или просто хочешь больше контроля над инфраструктурой
Достаточно:
1. Установить Docker и Docker Compose
2. Настроить
compose.yaml
3. Добавить nginx с SSL-сертификатом
4. Авторизовать пользователей через
htpasswd
Реестр запускается как контейнер и легко расширяется — например, UI от (https://github.com/Joxit/docker-registry-ui) или интеграция с Kubernetes.
Гайд, инструкции и код — уже ждут тебя
Please open Telegram to view this post
VIEW IN TELEGRAM
#npm
💡 8 команд npm/yarn, которые сделают вас продуктивнее
JavaScript-разработчики, сколько времени вы тратите на управление зависимостями? Эти команды помогут вам работать быстрее прямо из CLI!
1. Список пакетов
2. Зачем установлен пакет?
Узнайте, почему менеджер пакетов установил конкретную зависимость.
3. Информация о пакете
Все о пакете: зависимости, мейнтейнеры, версии.
4. Лицензии (только yarn)
Проверьте лицензии всех установленных пакетов.
5. Открыть домашнюю страницу
Откроет браузер с официальной страницей пакета.
6. Проверка устаревших пакетов
Найдите, какие зависимости нужно обновить.
7. Инициализация проекта
Создайте package.json через интерактивный
мастер.
8. Обновление зависимостей
🎙 Новости
📝 База вопросов
JavaScript-разработчики, сколько времени вы тратите на управление зависимостями? Эти команды помогут вам работать быстрее прямо из CLI!
1. Список пакетов
npm list -g --depth 0 # глобальные пакеты
yarn list --pattern gulp # поиск по шаблону
2. Зачем установлен пакет?
npm why react
yarn why react
Узнайте, почему менеджер пакетов установил конкретную зависимость.
3. Информация о пакете
npm info react --json
yarn info react
Все о пакете: зависимости, мейнтейнеры, версии.
4. Лицензии (только yarn)
yarn licenses list
Проверьте лицензии всех установленных пакетов.
5. Открыть домашнюю страницу
npm home react
Откроет браузер с официальной страницей пакета.
6. Проверка устаревших пакетов
npm outdated
yarn outdated
Найдите, какие зависимости нужно обновить.
7. Инициализация проекта
npm init
yarn init
Создайте package.json через интерактивный
мастер.
8. Обновление зависимостей
npm update
yarn upgrade --latest --pattern "gulp*"
Совет: Забыли параметры? Используйтеnpm command -h
илиyarn command -h
для справки!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#HR
Разбор резюме от HR Яндекса
Возможность узнать, как эйчары из крутых IT-компаний оценивают ваш опыт и навыки. На что смотрят в первую очередь, что в вашем резюме цепляет, а что настораживает.
📱 Видео
🎙 Новости
📝 База вопросов
Разбор резюме от HR Яндекса
Возможность узнать, как эйчары из крутых IT-компаний оценивают ваш опыт и навыки. На что смотрят в первую очередь, что в вашем резюме цепляет, а что настораживает.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Linux
🔖 Драйвер для USB-устройства под Linux
Устройство Nanoleaf Pegboard Desk Dock поддерживает только Windows и macOS. А что делать, если ты на Linux? Ответ — написать свой драйвер! 😎
Без глубоких знаний ядра и без сложностей — всего за 50 строк на Rust.
В посте:
📎 Статья
🎙 Новости
📝 База вопросов
Устройство Nanoleaf Pegboard Desk Dock поддерживает только Windows и macOS. А что делать, если ты на Linux? Ответ — написать свой драйвер! 😎
Без глубоких знаний ядра и без сложностей — всего за 50 строк на Rust.
В посте:
• Как получить документацию у производителя
• Как общаться с USB через `rusb`
• Почему GRB вместо RGB
• Что делать с яркостью и перезагрузками
• И зачем нужна фоновая задача для прерываний
Please open Telegram to view this post
VIEW IN TELEGRAM
#AI
🔖 ИИ (не) отнимает работу у разработчиков, или Почему вас пока не уволят
ИИ пишет треть кода в Microsoft, четверть — в Google. Duolingo переходит на AI-first, Shopify требует объяснений, если задачу нельзя отдать нейросети. При этом бигтех увольняет десятки тысяч айтишников.
Но паниковать рано. Давайте разберёмся, почему ИИ (пока) не заменит живых разработчиков.
1️⃣ Без человека — никуда
ИИ — как джун: ему нужно чётко объяснить, что делать. Если ты сам не понимаешь задачу, нейросеть выдаст мусор.
Исследование METR:
— Опытные разработчики думали, что ИИ ускорит их на 24%.
— На деле работа с нейросетью заняла на 19% больше времени.
— Промпты, правки, откаты — ИИ часто мешает, а не помогает.
Вывод: ИИ не заменяет, а дополняет. Без сильного специалиста — он бесполезен.
2️⃣ Вайб-кодинг = технический долг
— «Сделай сайт для котят» → за 3 минуты готово. Криво, но работает.
— «Добавь оплату» → ещё 2 минуты.
— А потом… всё сыпется.
ИИ не помнит, что делал вчера. Не объясняет логику. Не учитывает архитектуру. Чем больше кода от нейросети — тем больше костылей и сложнее поддержка.
Вывод: запустить MVP с ИИ можно, но расти без живых разработчиков — нельзя.
3️⃣ Железо и R&D — вне зоны доступа ИИ
— Веб-шаблоны? Легко.
— Микроконтроллеры, прошивки, кастомные B2B-системы? Провал.
ИИ учится на открытых данных, а в низкоуровневой разработке каждый чип — уникален. Нет шаблонов → нет решений.
Вывод: если работа требует изобретательства — ИИ бессилен.
4️⃣ ИИ экономит, но не зарабатывает
Нейросети умеют:
✅ Генерить код
✅ Писать тесты
✅ Оптимизировать рутину
Но они не умеют:
❌ Придумывать прорывные фичи
❌ Чувствовать рынок
❌ Создавать ценность для бизнеса
Вывод: ИИ — инструмент, а не конкурент. Ценны те, кто думает.
📎 Статья
🎙 Новости
📝 База вопросов
ИИ пишет треть кода в Microsoft, четверть — в Google. Duolingo переходит на AI-first, Shopify требует объяснений, если задачу нельзя отдать нейросети. При этом бигтех увольняет десятки тысяч айтишников.
Но паниковать рано. Давайте разберёмся, почему ИИ (пока) не заменит живых разработчиков.
ИИ — как джун: ему нужно чётко объяснить, что делать. Если ты сам не понимаешь задачу, нейросеть выдаст мусор.
Исследование METR:
— Опытные разработчики думали, что ИИ ускорит их на 24%.
— На деле работа с нейросетью заняла на 19% больше времени.
— Промпты, правки, откаты — ИИ часто мешает, а не помогает.
Вывод: ИИ не заменяет, а дополняет. Без сильного специалиста — он бесполезен.
— «Сделай сайт для котят» → за 3 минуты готово. Криво, но работает.
— «Добавь оплату» → ещё 2 минуты.
— А потом… всё сыпется.
ИИ не помнит, что делал вчера. Не объясняет логику. Не учитывает архитектуру. Чем больше кода от нейросети — тем больше костылей и сложнее поддержка.
Вывод: запустить MVP с ИИ можно, но расти без живых разработчиков — нельзя.
— Веб-шаблоны? Легко.
— Микроконтроллеры, прошивки, кастомные B2B-системы? Провал.
ИИ учится на открытых данных, а в низкоуровневой разработке каждый чип — уникален. Нет шаблонов → нет решений.
Вывод: если работа требует изобретательства — ИИ бессилен.
Нейросети умеют:
Но они не умеют:
Вывод: ИИ — инструмент, а не конкурент. Ценны те, кто думает.
ИИ не заменит разработчиков, но изменит их роль. Будущее — за теми, кто уходит от рутины и решает сложные задачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Tech
📂 Деревянная электроника: будущее или утопия?
Представьте смартфон из дерева. Звучит безумно? Но ученые уже создают транзисторы из бальсы и печатные платы из целлюлозы!
Как это работает:
🔸 Удаляют лигнин из древесины (природный "клей")
🔸 Пропитывают проводящим полимером
🔸 Получают функциональный транзистор
Что уже создали:
🔸 Прозрачное дерево прочнее стекла
🔸 Деревянные транзисторы (медленнее обычных, но работают!)
🔸 Печатные платы из древесных отходов
🔸 Биочернила с углеродными нановолокнами
Преимущества:
🔸 Биоразлагаемость
🔸 В 17 раз меньше энергии на производство чем стекло
🔸 Легкий вес
🔸 Возобновляемый ресурс
Проблемы:
🔸 Низкая производительность
🔸 Сложность создания проводящих материалов
🔸 Вопросы надежности
Компания Woodoo уже анонсировала светодиодные дисплеи из дерева. А в Новой Зеландии создали схемы, которые растворяются в воде для переработки.
Пока деревянная электроника не заменит кремний, но может стать нишевым решением для экологичных устройств. Особенно интересно для носимой электроники и IoT-датчиков.
📎 Статья
🎙 Новости
📝 База вопросов
Представьте смартфон из дерева. Звучит безумно? Но ученые уже создают транзисторы из бальсы и печатные платы из целлюлозы!
Как это работает:
В 2019 году мир произвел 53 млн тонн электронных отходов. К 2030 году — 82 млн тонн. Переработали только 20%.
Что уже создали:
Преимущества:
Проблемы:
Компания Woodoo уже анонсировала светодиодные дисплеи из дерева. А в Новой Зеландии создали схемы, которые растворяются в воде для переработки.
Пока деревянная электроника не заменит кремний, но может стать нишевым решением для экологичных устройств. Особенно интересно для носимой электроники и IoT-датчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
#IT
От +5% до +50%: как IT-специалисты добиваются повышения зарплаты
Проанализировали истории читателей и выяснили самые эффективные стратегии переговоров с руководством.
Спойлер: иногда достаточно просто спросить⬇️
📎 Статья
🎙 Новости
📝 База вопросов
От +5% до +50%: как IT-специалисты добиваются повышения зарплаты
Проанализировали истории читателей и выяснили самые эффективные стратегии переговоров с руководством.
Спойлер: иногда достаточно просто спросить
Please open Telegram to view this post
VIEW IN TELEGRAM
#TechLead
🔖 Знакомая дилемма для каждого лида: достиг руководящей позиции, команда работает, процессы налажены — и вдруг вопрос "А что дальше?"
Расти вверх в менеджмент? Но там меньше кода и больше людей. Остаться на месте? Но в IT принято развиваться. А может... вернуться обратно в разработку?
Максим Шульга, руководитель департамента разработки МойОфис с 20+ летним опытом, честно рассказывает о трёх путях развития лида — включая тот, о котором не принято говорить вслух.
Спойлер: иногда "шаг назад" — это самое мудрое карьерное решение⬇️
📎 Статья
🎙 Новости
📝 База вопросов
Расти вверх в менеджмент? Но там меньше кода и больше людей. Остаться на месте? Но в IT принято развиваться. А может... вернуться обратно в разработку?
Максим Шульга, руководитель департамента разработки МойОфис с 20+ летним опытом, честно рассказывает о трёх путях развития лида — включая тот, о котором не принято говорить вслух.
Спойлер: иногда "шаг назад" — это самое мудрое карьерное решение
Please open Telegram to view this post
VIEW IN TELEGRAM
#observability
🔖 Наблюдаемость как суперспособность
На каждой новой работе этот инженер сталкивался с разными инструментами наблюдаемости. Сначала — Prometheus, затем ELK-стек (Elasticsearch, Logstash, Kibana) с логами на 30 дней. А в incident.io он открыл для себя трассировки — и теперь считает их одной из главных инженерных суперспособностей.
Благодаря трассировкам команда часто замечает баги и аномалии раньше, чем об этом успеют сообщить клиенты. Каждый запрос превращается в дерево событий: от HTTP-эндпоинта до запросов в базу и сторонние сервисы. Видно, что произошло, в каком порядке, сколько это заняло времени — и где всё пошло не так.
В коде трассировка выглядит просто: пара строк — и span готов. Добавил метаданные, завернул в
Инфраструктура тоже продумана: локально трассы уходят в Google Cloud Trace, а на продакшене — в Grafana Tempo. Инженеры могут искать трассировки по пользователю, организации, типу запроса — и делиться ссылками в Slack. Каждое сообщение об инциденте начинается с одного и того же:
«Вот трассировка, она выглядит подозрительно».
Трассировка дополняет логи и ошибки: в логах есть trace\_url, ошибки в Sentry связаны с конкретной трассировкой, каждый запрос возвращает ID трассы в заголовке.
Несколько советов от команды:
Наблюдаемость — это не просто «видеть баг». Это понимать систему на уровне, где можно реагировать быстрее всех. И трассировки — её сердце.
📎 Статья
🎙 Новости
📝 База вопросов
На каждой новой работе этот инженер сталкивался с разными инструментами наблюдаемости. Сначала — Prometheus, затем ELK-стек (Elasticsearch, Logstash, Kibana) с логами на 30 дней. А в incident.io он открыл для себя трассировки — и теперь считает их одной из главных инженерных суперспособностей.
Благодаря трассировкам команда часто замечает баги и аномалии раньше, чем об этом успеют сообщить клиенты. Каждый запрос превращается в дерево событий: от HTTP-эндпоинта до запросов в базу и сторонние сервисы. Видно, что произошло, в каком порядке, сколько это заняло времени — и где всё пошло не так.
В коде трассировка выглядит просто: пара строк — и span готов. Добавил метаданные, завернул в
defer
, и у тебя уже есть точка наблюдения за производительностью.Инфраструктура тоже продумана: локально трассы уходят в Google Cloud Trace, а на продакшене — в Grafana Tempo. Инженеры могут искать трассировки по пользователю, организации, типу запроса — и делиться ссылками в Slack. Каждое сообщение об инциденте начинается с одного и того же:
«Вот трассировка, она выглядит подозрительно».
Трассировка дополняет логи и ошибки: в логах есть trace\_url, ошибки в Sentry связаны с конкретной трассировкой, каждый запрос возвращает ID трассы в заголовке.
Несколько советов от команды:
— Автоматизируйте всё, что можно: пусть span’ы создаются в HTTP и БД клиентах без лишнего кода.
— Делайте трассировки доступными для всех — через логи, ошибки, заголовки.
— Настраивайте локально так же, как в проде — чтобы навык развивался в повседневной работе.
Наблюдаемость — это не просто «видеть баг». Это понимать систему на уровне, где можно реагировать быстрее всех. И трассировки — её сердце.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Backend
🔖 Реактивное программирование vs сопрограммы: что выбрать для высокой нагрузки?
В эпоху микросервисов приложения обрабатывают десятки тысяч запросов одновременно. Привычная модель "один поток на запрос" больше не работает — потоки занимают 128-256 КБ памяти каждый, и ресурсы быстро заканчиваются.
Два основных подхода решают эту проблему: реактивное программирование и сопрограммы.
📎 Реактивное программирование
Использует асинхронные функциональные цепочки с операторами типа
Плюсы:
• Высокая эффективность
• Мощные операторы для работы с потоками данных
Минусы:
• Сложность в понимании и отладке
• Любая обработка ошибок превращается в цепочку реактивных операторов
• Пример простого добавления персонажа в Spring WebFlux занимает несколько строк с
📎 Сопрограммы (Coroutines)
Позволяют писать асинхронный код в привычном императивном стиле.
Плюсы:
• Функции помечаются как
• Можно использовать знакомые конструкции:
• Тот же функционал добавления персонажа реализуется простым
Минусы:
• Требует изучения концепций приостановки и возобновления
📎 Главное различие
Реактивное программирование требует полной перестройки мышления и кодовой базы под функциональные цепочки.
Сопрограммы позволяют сохранить привычный стиль, просто добавив
Производительность
Обе концепции показывают сопоставимую производительность — обе минимизируют использование потоков и эффективно масштабируются.
📎 Статья
🎙 Новости
📝 База вопросов
В эпоху микросервисов приложения обрабатывают десятки тысяч запросов одновременно. Привычная модель "один поток на запрос" больше не работает — потоки занимают 128-256 КБ памяти каждый, и ресурсы быстро заканчиваются.
Два основных подхода решают эту проблему: реактивное программирование и сопрограммы.
Использует асинхронные функциональные цепочки с операторами типа
flatMap
, switchIfEmpty
, onErrorResume
. Плюсы:
• Высокая эффективность
• Мощные операторы для работы с потоками данных
Минусы:
• Сложность в понимании и отладке
• Любая обработка ошибок превращается в цепочку реактивных операторов
• Пример простого добавления персонажа в Spring WebFlux занимает несколько строк с
filter
, flatMap
и обработкой исключений через Mono.error
Позволяют писать асинхронный код в привычном императивном стиле.
Плюсы:
• Функции помечаются как
suspend
, но выглядят как обычный последовательный код• Можно использовать знакомые конструкции:
try-catch
, if-else
• Тот же функционал добавления персонажа реализуется простым
if
и оператором ?.let
Минусы:
• Требует изучения концепций приостановки и возобновления
Реактивное программирование требует полной перестройки мышления и кодовой базы под функциональные цепочки.
Сопрограммы позволяют сохранить привычный стиль, просто добавив
suspend
к методам.Производительность
Обе концепции показывают сопоставимую производительность — обе минимизируют использование потоков и эффективно масштабируются.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#WebDev
🔖 WebAssembly в 2025: почему это не просто "быстрый JavaScript"
Пока все говорят о том, что WebAssembly делает веб быстрее, мало кто замечает более важную вещь — он кардинально меняет то, что вообще возможно в браузере.
Забудьте про "замену JavaScript". WASM открывает веб для языков и экосистем, которые раньше были привязаны к десктопу.
📎 Что происходит прямо сейчас:
Figma — весь движок рендеринга написан на C++ и скомпилирован в WASM. Результат? Производительность нативного приложения в браузере.
Adobe Photoshop — полноценный фоторедактор работает в браузере благодаря портированию C++ кодовой базы через WASM.
AutoCAD Web — инженерные расчеты и 3D-рендеринг, которые раньше требовали мощного железа, теперь доступны онлайн.
📎 Реальные цифры производительности:
• Обработка изображений: в 10-20 раз быстрее чистого JS
• Математические вычисления: в 3-5 раз быстрее
• Работа с большими массивами данных: в 2-8 раз быстрее
📎 Прорывные возможности:
Портирование legacy-кода
Десятилетия разработки на C/C++/Rust можно перенести в веб за недели, а не годы переписывания.
Микросервисы в браузере
Serverless функции теперь могут работать на клиенте — от обработки данных до ML-инференса.
Универсальные библиотеки
Одна кодовая база на Rust может работать в браузере, на сервере, в мобильном приложении и на десктопе.
Мы живем в моменте, когда веб перестает быть платформой только для "веб-приложений" и становится универсальной средой исполнения для любого кода.
WebAssembly — это не эволюция JavaScript. Это революция веб-платформы.
🎙 Новости
📝 База вопросов
Пока все говорят о том, что WebAssembly делает веб быстрее, мало кто замечает более важную вещь — он кардинально меняет то, что вообще возможно в браузере.
Забудьте про "замену JavaScript". WASM открывает веб для языков и экосистем, которые раньше были привязаны к десктопу.
Figma — весь движок рендеринга написан на C++ и скомпилирован в WASM. Результат? Производительность нативного приложения в браузере.
Adobe Photoshop — полноценный фоторедактор работает в браузере благодаря портированию C++ кодовой базы через WASM.
AutoCAD Web — инженерные расчеты и 3D-рендеринг, которые раньше требовали мощного железа, теперь доступны онлайн.
• Обработка изображений: в 10-20 раз быстрее чистого JS
• Математические вычисления: в 3-5 раз быстрее
• Работа с большими массивами данных: в 2-8 раз быстрее
Портирование legacy-кода
Десятилетия разработки на C/C++/Rust можно перенести в веб за недели, а не годы переписывания.
Микросервисы в браузере
Serverless функции теперь могут работать на клиенте — от обработки данных до ML-инференса.
Универсальные библиотеки
Одна кодовая база на Rust может работать в браузере, на сервере, в мобильном приложении и на десктопе.
Мы живем в моменте, когда веб перестает быть платформой только для "веб-приложений" и становится универсальной средой исполнения для любого кода.
WebAssembly — это не эволюция JavaScript. Это революция веб-платформы.
Please open Telegram to view this post
VIEW IN TELEGRAM
#IT
Как выйти из IT... и пойти слесарем на завод. Попытка дауншифтинга
«Как войти в IT» — мантра, которую слышал каждый. Но что, если попробовать выйти? Не в метафорическом смысле «уволиться в никуда», а по-настоящему — сменить монитор на гаечный ключ, коворкинг на цех, а митапы на планерки у проходной.
Я рискнул.
Что получилось:
Зарплата дворника на 30% выше, чем у госпрограммиста
1,5 часа ожидания ради 5 минут собеседования
HR-призраки, «архивные» вакансии и квест «найди кабинет»
Отказ из-за паспорта — даже дворником не взяли (спойлер: я всё же устроился, но об этом позже)
Это — история не про «уйти в айти», а про обратный билет. О том, как цифровой кочевник столкнулся с реалиями «нормальной» работы, бюрократией белорусских заводов и загадочными KPI кадровиков.⬇️
📎 Статья
🎙 Новости
📝 База вопросов
Как выйти из IT... и пойти слесарем на завод. Попытка дауншифтинга
«Как войти в IT» — мантра, которую слышал каждый. Но что, если попробовать выйти? Не в метафорическом смысле «уволиться в никуда», а по-настоящему — сменить монитор на гаечный ключ, коворкинг на цех, а митапы на планерки у проходной.
Я рискнул.
Что получилось:
Зарплата дворника на 30% выше, чем у госпрограммиста
1,5 часа ожидания ради 5 минут собеседования
HR-призраки, «архивные» вакансии и квест «найди кабинет»
Отказ из-за паспорта — даже дворником не взяли (спойлер: я всё же устроился, но об этом позже)
Это — история не про «уйти в айти», а про обратный билет. О том, как цифровой кочевник столкнулся с реалиями «нормальной» работы, бюрократией белорусских заводов и загадочными KPI кадровиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Linux
🔖 Скрипт-реаниматор: автоматическое восстановление упавших SSH-сессий
Потеряли важную SSH-сессию из-за обрыва соединения? Каждый, кто работает с удаленными серверами, знает это чувство: запустил долгий процесс, отошел на кофе, а по возвращению — соединение разорвано, данные потеряны, начинай сначала.
Есть решение — скрипт-реаниматор!
🔸 Что умеет скрипт:
• Автоматически переподключается при обрыве
• Восстанавливает tmux-сессии
• Ведет подробное логирование
• Отправляет уведомления в Telegram
• Работает на Bash и PowerShell
🔸 Принцип работы:
• Мониторит соединение через ServerAliveInterval и ServerAliveCountMax
• При обрыве пытается переподключиться и восстановить окружение
• Использует цикл while true для постоянного поддержания соединения
🔸 Особенно полезно для:
• Работы с нестабильным интернетом
• Долгих процессов на сервере
• Критически важных сессий
Готовые скрипты + инструкция по настройке
🎙 Новости
📝 База вопросов
Потеряли важную SSH-сессию из-за обрыва соединения? Каждый, кто работает с удаленными серверами, знает это чувство: запустил долгий процесс, отошел на кофе, а по возвращению — соединение разорвано, данные потеряны, начинай сначала.
Есть решение — скрипт-реаниматор!
• Автоматически переподключается при обрыве
• Восстанавливает tmux-сессии
• Ведет подробное логирование
• Отправляет уведомления в Telegram
• Работает на Bash и PowerShell
• Мониторит соединение через ServerAliveInterval и ServerAliveCountMax
• При обрыве пытается переподключиться и восстановить окружение
• Использует цикл while true для постоянного поддержания соединения
• Работы с нестабильным интернетом
• Долгих процессов на сервере
• Критически важных сессий
Готовые скрипты + инструкция по настройке
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#WebSocket
WebSocket для получения крипто-данных в реальном времени
Проблема: Обычные HTTP-запросы для получения цен криптовалют работают медленно. Пока ваш бот сделает запрос и получит ответ, цена уже может измениться!
Решение: WebSocket — это постоянное соединение с сервером, через которое данные приходят мгновенно при любом изменении цены.
HTTP vs WebSocket
✅ Где это нужно?
- Торговые боты для криптовалют
- Мониторинг цен акций
- Live-чаты и уведомления
- Торговые терминалы и биржи
✅ Как это работает на практике?
Пример: Создаем бота для мониторинга Bitcoin и Ethereum через CryptoCompare
Шаг 1: Исследуйте сайт
• Откройте DevTools в браузере (F12)
• Найдите вкладку WS (WebSocket)
• Скопируйте URL и сообщения для подключения
Шаг 2: Пишите код
Результат: Ваш бот получает обновления цен мгновенно, как только они меняются на бирже!
✅ Частые проблемы и решения:
🔸 "Connection is already closed"
Причина: Сервер блокирует подключение
Решение: Используйте VPN или прокси
🔸 HTTP 401 Unauthorized
Причина: Неправильные заголовки запроса
Решение: Скопируйте заголовки из браузера точно
🔸 HTTP 403 Forbidden
Причина: Изменилась система аутентификации
Решение: Обновите логику подключения
✅ Зачем это нужно трейдерам?
Представьте: Bitcoin упал на 5% за 10 секунд. Ваш конкурент с HTTP-запросами узнает об этом через минуту, а ваш WebSocket-бот — мгновенно! Кто быстрее отреагирует на рынке?
Итог: WebSocket дает реальное преимущество в скорости получения данных. Это критично для любых алгоритмических торговых стратегий.
📎 Статья
🎙 Новости
📝 База вопросов
WebSocket для получения крипто-данных в реальном времени
Проблема: Обычные HTTP-запросы для получения цен криптовалют работают медленно. Пока ваш бот сделает запрос и получит ответ, цена уже может измениться!
Решение: WebSocket — это постоянное соединение с сервером, через которое данные приходят мгновенно при любом изменении цены.
HTTP vs WebSocket
HTTP: Запрос → Ожидание → Ответ → Новый запрос (медленно)
WebSocket: Открыли соединение → Данные льются потоком (быстро)
- Торговые боты для криптовалют
- Мониторинг цен акций
- Live-чаты и уведомления
- Торговые терминалы и биржи
Пример: Создаем бота для мониторинга Bitcoin и Ethereum через CryptoCompare
Шаг 1: Исследуйте сайт
• Откройте DevTools в браузере (F12)
• Найдите вкладку WS (WebSocket)
• Скопируйте URL и сообщения для подключения
Шаг 2: Пишите код
from websocket import create_connection
import json
Подключаемся к серверу CryptoCompare
ws = create_connection('wss://streamer.cryptocompare.com/v2?format=streamer')
Подписываемся на обновления цен
ws.send(json.dumps({"action":"SubAdd","subs":["24~CCCAGG~BTC~USD~H"]}))
ws.send(json.dumps({"action":"SubAdd","subs":["24~CCCAGG~ETH~USD~H"]}))
Получаем данные каждую секунду
while True:
price_data = ws.recv()
print(f"Новые данные: {price_data}")
Результат: Ваш бот получает обновления цен мгновенно, как только они меняются на бирже!
Причина: Сервер блокирует подключение
Решение: Используйте VPN или прокси
Причина: Неправильные заголовки запроса
Решение: Скопируйте заголовки из браузера точно
Причина: Изменилась система аутентификации
Решение: Обновите логику подключения
Представьте: Bitcoin упал на 5% за 10 секунд. Ваш конкурент с HTTP-запросами узнает об этом через минуту, а ваш WebSocket-бот — мгновенно! Кто быстрее отреагирует на рынке?
Итог: WebSocket дает реальное преимущество в скорости получения данных. Это критично для любых алгоритмических торговых стратегий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1