Мы делаем пет‑проект «Чатограмма», который считает статистику переписки: кто пишет первым, кто быстрее отвечает, в какие часы вы на связи. С первого дня у него одно жёсткое правило: файл с перепиской не уходит на сервер. Всё считается в браузере пользователя, а сервер не видит ни одного сообщения — не потому, что обещает не смотреть, а потому, что сообщения до него физически не доходят.Потом понадобилась подарочная книга: PDF формата A5, где самые яркие моменты переписки собраны по главам — с ч…
10 браузерных API, заменяющих пакеты NPM и плагины jQuery: dialog, popover, переходы отображения (view transitions), structuredClone, groupBy и Temporal с заметками о поддержке.❯ 1. IntersectionObserverНа протяжении многих лет “ленивая” (lazy) загрузка изображений означала установку lazysizes или lozad. lazysizes “слушает” события прокрутки, измеряет элементы с помощью getBoundingClientRect() при каждом таком событии и меняет атрибут data-src на src, когда изображение приближается к области про…
Выражение */15 9-17 * * 1-5 компьютер понимает однозначно, а человек читает с трудом. Особенно это мешает, когда расписание задаёт пользователь: в боте‑напоминалке, в админке, в настройках отчётов. Человек хочет написать «каждые 15 минут с 9 до 18 по будням» и увидеть, что его поняли правильно. Писать для этого форму с пятью выпадающими списками не хочется никому.Готовых решений для русского языка я не нашёл, поэтому написал своё.Библиотека называется cronsense. Она переводит расписание, записа…
Я работаю над bffi‑rs, экспериментальным фреймворком для нативных биндингов Bun, написанным на Rust.Проект появился из довольно практичной задачи. Я хотел сделать небольшое desktop‑приложение с нативным WebView, но при этом оставить Bun основным рантаймом.В экосистеме уже есть решения для подобных приложений. Например, некоторые интеграции WebView для Bun используют Rust и napi-rs. В варианте Electrobun, который я рассматривал, для WebView используется Wry, а связка между Rust и JavaScript стро…
An advanced guide which might benefit you a lot 🎉 . 韩先凯的人生进阶指南 人生进阶指南 离谱的人生 人生进阶 AI学习 AI指南 韩先凯的AI学习指南 英语学习指南/英语学习教程/英语学习/学英语 title 人生进阶指南|AI 时代终身学习 description 《人生进阶指南》帮助普通人在 AI 时代持续学习、完成真实项目、穿越人生低谷并留下成长证据。 updated 2026-09-02 人生进阶指南 中文 | English 韩先凯 著(笔名:离谱) 副标题:AI 时代终身学习指南。这是一份持续更新的书稿,从英语这扇具体的门出发,写到 AI 学习、真实项目、创业失败、身体恢复,以及一个普通人怎样把生活一点点交还给自己。 持续更新书稿 下载中文 EPUB Download English EPUB 下载中文 PDF Download English PDF 源码与勘误 读者实践回执 正文 CC…
Open Source Introductory Systems Programming Textbook for the University of IllinoisCoursebook Welcome to the systems programming coursebook! This repository houses a high-quality, open-source introductory systems programming textbook used by the CS 341: System Programming course at the University of Illinois Urbana-Champaign The book assumes that you have taken a programming language course and are familiar with assembly instructions. All of the code and instruction will be in C, a…
При разборе инцидентов я всё чаще использую ИИ-агента: он быстро собирает информацию о сервере — нагрузку, память, диски, процессы, журналы — и сводит её с данными мониторинга, чтобы понять, почему тормозит сайт, чем забит диск или что упало ночью. По его выводам я могу попросить агента и решить проблему, а для этого ему может понадобиться перезапустить сервис, изменить конфиг или даже настройки ядра. Дать ему для этого SSH с sudo — не самый безопасный путь. Мне хотелось попробовать другой подх…
В первой части я рассказывал о системе автоматизации теплицы на Raspberry Pi 4. Она собирала показания датчиков и управляла оборудованием. Постепенно захотелось применить её и за пределами теплицы: дома, в мастерской или серверной. Задачи там знакомые — следить за температурой, включать устройства по условию и получать уведомления.Для этого понадобились новые способы подключения устройств, удалённый доступ и обновления с сохранением настроек. В проекте появились Zigbee‑датчики, поддержка Rock P…
Сразу хочу обозначить важный момент: эта статья не столько про пакет SilentJSON, сколько про схему работы с информацией, которую на его примере удалось реализовать и проверить на практике.SilentJSON здесь – скорее инструмент и конкретная реализация идеи. Ту же архитектуру вполне можно реализовать самостоятельно, адаптировать под другой формат данных, другой язык или конкретные ограничения проекта. Она может получиться лучше или хуже SilentJSON, но главное – она может оказаться гораздо лучше при…