Треды в Zig

Автор разбирает устройство std.Io.Threaded в Zig - реализации интерфейса ввода-вывода, которая использует обычные блокирующие системные вызовы и потоки, но при этом полноценно поддерживает отмену операций.

Фокус на различии между параллелизмом и конкурентностью. Проблема "просто использовать потоки" в том, что нет способа прервать заблокированный в ядре поток. Zig решает это на POSIX через сигналы: отменяющий поток выставляет флаг в разделяемой памяти и циклически посылает сигнал целевому потоку, пока тот не получит EINTR и не проверит флаг, аккуратно сворачивая работу через error.Canceled

Новости

Post Thumbnail

Мигаем диодом на Rust

Автор показывает использование Embedded Rust - от подключения программатора ST-LINK V2 через SWD-интерфейс до сборки и прошивки. Все это на STM32 Автор использует готовый шаблон проекта на базе крейта stm32f1xx-hal, разбирает ключевые атрибуты, а затем прям...

Post Thumbnail

Какой ты газонокосильщик

The Pudding провели интерактивный эксперимент, в котором больше 30 тысяч человек "косили" виртуальный газон, чтобы исследовать, насколько эффективно люди решают задачу Coverage Path Planning - родственную знаменитой "задаче коммивояжера" 52% участников улож...

Post Thumbnail

Typescript Defer

Автор экспериментировал с добавлением оператора defer из Go в компилятор TypeScript, реализовав парсинг, проверки и AST-трансформацию, которая оборачивает тело функции в try/finally и выполняет отложенные вызовы в обратном порядке (LIFO) с захватом значений на...

Post Thumbnail

Движение назад

Прикольная статья если вы хотите поковыряться в итераторах, джинериках и вот в этих новых фишечках Go. Автор в шутливой форме проводит мысленный эксперимент: как бы выглядела эволюция функции Backward для обхода слайса в обратном порядке, если бы ее писал н...

Post Thumbnail

AI фабрики не работают

Основатель HumanLayer разбирает, почему "lights-off software factory" - подход, при котором AI-агенты пишут код без человеческого ревью - не работает в долгую. Модели отлично решают разовые задачи и проходят бенчмарки, но не умеют сохранять поддерживаемост...

Post Thumbnail

Go 1.27

Антон Жиянов делал интерактивные туры по Go с версии 1.22 по 1.26, но решил остановиться. Хесус Эспино подхватил эстафету и разбирает здесь огромный массив нововведений Go 1.27 - от обобщенных методов и профиля goroutineleak до нового пакета uuid и эксперимент...

Статьи

Post Thumbnail

DNS на Zig

Это должен был быть перевод статьи "From Log Reader to Packet Crafter — Building DNS from Scratch in C". Но автор довольно фигово написал исходную статью и не удосужился показать весь написанный код, Поэтому я решил пойти дальше, реализовать очень маленький ин...

Post Thumbnail

Playdate

Наше поколение выросло вместе с первыми консолями. Мы все с теплотой вспоминаем время, когда у нас появилась первая денди. Теперь у нас есть самые разные движки и большие мощности для игр. Но чем больше возможностей, тем сложнее начать что-то делать, сложне...

Post Thumbnail

Привет Ethernet

Если вы читаете эту статью, то есть очень большая вероятность, что прямо сейчас вы пользуетесь Ethernet соединением где-то между вашими устройствами и хостингом, на котором размещён этот блог. Семейство технологий Ethernet - это строительные блоки для современ...

Post Thumbnail

RAG в Go проекте

Одна из ключевых задач для компаний, работающих с искусственным интеллектом, - обеспечить эффективный доступ к внутренним знаниям. На первый взгляд всё просто: загрузи корпоративные документы в большую языковую модель (LLM) и дай ей генерировать ответы. Но на ...

Инструменты

Post Thumbnail

frame

Нативная утилита для конвертации медиафайлов, написанная на языке Rust. Она предоставляет десктопный интерфейс для операций FFmpeg с детальным контролем над настройками видео, аудио, изображений, субтитров и метаданных

Post Thumbnail

Rayfish

Peer-to-peer mesh VPN на Rust, построенный поверх библиотеки iroh, который позволяет объединить все ваши устройства в частную сеть без аренды серверов, регистраций и единой точки управления. Достаточно одному участнику выполнить ray create, сгенерировать о...

Post Thumbnail

go-push-receiver

Go-библиотека для подписки на GCM/FCM и получения push-уведомлений напрямую, без необходимости в Android-устройстве или Firebase Admin SDK. Библиотека эмулирует поведение Android-клиента: использует protobuf-протоколы MCS и Checkin, заимствованные из Chrom...

Post Thumbnail

oscar

Селф-зостед сервер мгновенных сообщений на Go, совместимый с классическими AIM- и ICQ-клиентами, позволяющий запустить собственный аналог легендарных мессенджеров на Linux, macOS или Windows. Поддерживаются десятки старых клиентов: Windows AIM версий 1.x–7...