Привет, Хабр! Продолжаю серию статей по проектированию и разработке отказоустойчивой микросервисной системы сокращения ссылок.Если вы только присоединились, рекомендую ознакомиться с предыдущими частями:Часть 1. Определили требования к системе и декомпозировали её на независимые сервисы.Часть 2. Создали микросервис генерации уникальных идентификаторов.Наш микросервис генерации ID полностью готов, но пока живёт только в среде разработки. Сегодня подготовим его к развёртыванию в локальном Kuberne…
Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.Мы разрабатывали другой проект, и поначалу для него был написан минимальный чат на CodeIgniter 4 с Vanilla JS и CSS плюс WebSocket‑сервер на Go. Затем стало очевидно, что такой чат слабоват, а для …
Каждый, кто касался Go, наверняка слышал о том, что горутина — это «легковесный поток», который управляется самим рантаймом, и именно поэтому вы можете запускать тысячи и более горутин. Нас точно не обманывают, но давайте разберёмся, почему это так и какой в этом компромисс.Что именно будем измерятьЯ планирую замерить время запуска программы, объём потребляемой оперативной памяти и загрузку процессора, а также проверить, сколько горутин действительно существует внутри программы. Будем двигаться…
Аналоги умеют мигать рамкой вокруг обновившегося компонента. Этого хватает, чтобы заметить проблему, но не чтобы её починить: остаётся вопрос «а что вообще изменилось?».Оказалось, Vue знает ответ и отдаёт его сам — просто этим почти никто не пользуется. Под катом: как устроен хук renderTriggered, почему сырое событие из него нечитаемо, и три способа уронить прод‑сборку чужого приложения дев‑инструментом, который в проде вообще не должен работать.Чего не хваталоЕсть Vue DevTools с галкой «Highli…
Электронные навигационные карты (ENC) формата S-57 стоят на каждом коммерческом судне в мире. Стандарт живёт с 1996 года, но живого JavaScript-парсера для него я так и не нашёл: либо серверный GDAL, либо проприетарные SDK за шестизначные суммы в год. Я написал полный стек с нуля: бинарный парсер ISO 8211, доменную модель S-57 и S-101, рендер символики S-52 на Canvas2D. Всё бесплатно работает в браузере, без сервера, MIT-лицензия. s57-parser: морская карта S-57 в браузере. В коде слева оставил п…
盯盘侠 PanWatch · 自托管 AI 盯盘助手,集成 TradingAgents 多 Agent 投资决策 | A股/港股/美股实时监控、持仓管理、智能分析、全渠道推送盯盘侠 PanWatch 自托管 AI 盯盘助手 · 集成 TradingAgents 多 Agent 投资决策 — A 股 / 港股 / 美股实时监控、持仓管理、智能分析、全渠道推送 🧠 持仓页点一下 → TradingAgents 9-Agent 投研团队接力分析 → 看多看空辩论 → 风控审查 → PM 决策书,3-5 分钟一条完整推理链,结论直推到你的 IM。 📸 功能一览 持仓 · 多账户汇总 机会页 · AI 评分选股 模拟盘 · 净值曲线 + 绩效 个股深度详情 技术指标共振 · 一眼 MACD/RSI/KDJ 价格提醒 · 条件组合触发 移动端截图 📱 支持 PWA,移动端可「添加到主屏幕」当原生 App 用。 💡 如果盯盘侠对你有帮助,点右上角 ⭐ Star 支持一下 —— 这是对开源项目最好的鼓励,也能让更多人发现它…
Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. Spirula Studio Download • Build from Source • Gallery • Web Viewer Spirula Studio trains 3D Gaussian Splatting models – from raw photo/video to splat to textured mesh – in one self-contained binary. No Python/PyTorch, no separate COLMAP install. Runs on NVIDIA, AMD, Intel, and Apple GPUs via Vulkan, trains 10M full-SH Gaussians in 8 GB VRAM, and has native support for fisheye and 360° cameras. Dataset …
Build an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python & TypeScript - any model, any cloud. Strands Agents A model-driven approach to building AI agents in just a few lines of code. Documentation ◆ Samples ◆ MCP Server ◆ Discord Strands Agents is an open-source SDK for building and running AI agents in Python …
По данным СМИ, во время тестирования ИИ-модель Google Gemini самостоятельно получила несанкционированный доступ к системам трех реальных организаций. Никаких сложных эксплоитов при этом задействовано не было: в одном случае модель просто перебирала пароли, а в двух других обнаружила учетные данные, забытые в публичном репозитории.