Зачем эта статьяВ первую очередь статья (или статьи) написана ради комментариев, чтобы развлечь себя и читателя, но с надеждой получить какие‑то дельные советы и мнения по теме проекта.Как это началосьТочкой старта работы над проектом можно считать день, когда Дедушка Мороз положил мне под ёлку набор «Робот‑автомобиль для Raspberry Pi 4B» от Keyestudio.Keyestudio KS0223 Робот‑автомобиль для Raspberry Pi 4BУже не помню, почему у меня за условные два часа не получилось с первого раза запустить эт…
Всем привет! Меня зовут Илья Данилкин, я тимлид в Авито Авто.AI‑агенты обычно живут рядом с Python, но всё же немало команд выбирают язык Go. Дело в том, что агенты большую часть времени не заняты сложными математическими расчётами, а ждут ответа модели или результата инструмента. А ещё работают в режиме бесконечных параллельных запусков. И если пользователь останавливает задачу, его запрос и следующие вызовы инструментов тоже нужно остановить.Поэтому при выборе языка важны не только библиотеки…
Привет, хабарчане! Это четвертая статья про разработку RUSEON-core, Zero-Copy сервера потокового видео для AI-платформ и Edge-видеоинфраструктуры. В предыдущих статьях (первая, вторая, третья), были разобраны моменты с оптимизацией раздачи потоков при больших одновременных нагрузках, а также узкие места ОС в контексте потоковой записи на диск и реализация оптимизации HLS-мультиплексирования on-demand. Сегодня поговорим о кейсе с WebRTC и WHEP.FATAL: crypto/rand: blocked on getrandom() syscall и…
, и она потрясающая! Напоминаю, f4 — эксперимент по переписыванию Far Manager на go, чтобы сразу и кроссплатформенно и асинхронно и красиво.С красоты и начнём! На днях во фреймворк консольных интерфейсов vtui, который пишется под f4, добавлена поддержка Auto layout. Можно делать диалоги как у Apple! А чтобы это смотрелось красиво, предусмотрены две стратегии хинтинга: байткод, по аналогии с тем, как это сделано для рендеринга шрифтов у TrueType, и эвристики, как у FreeType. Для этого потребовал…
Привет, Хаброжители!Язык Go востребован в разработке облачных сервисов и распределенных систем благодаря простоте, высокой производительности и встроенной поддержке конкурентности. Книга выходит за рамки синтаксиса и фокусируется на проектировании гибких и масштабируемых архитектур.Вы сразу приступите к созданию проекта, который будет постепенно изменяться и усложняться от простых скриптов до полноценного клиент-серверного приложения. В процессе работы вы познакомитесь с конкурентным программир…
В начале августа я сел делать игру для мессенджера MAX – обычный вордли, слово из пяти букв, шесть попыток. Мини-приложение на ванильном JS, сервер на Go, самый дешёвый VPS. По моим прикидкам всё должно было заработать, за три вечера.Первый вечер целиком ушёл на то, чтобы сервер вообще смог поговорить с API мессенджера. Не на игру, не на словарь, а на TCP-соединение.Дальше было ещё семь таких мест. Каждое выглядело как мой баг, но каждое оказалось особенностью платформы, и ни одного из них нет …
Эта серия для тех, кто выучил синтаксис Go, написал первые go func() и хочет понять, что за ними стоит. Многопоточность знать не нужно: начнем с того, что такое поток. К концу первой части ты будешь понимать, почему поток операционной системы дорогой, что такое горутина физически и как Go пришел к схеме GMP.План серии:Почему потоки ОС не масштабируются и как Go придумал GMPПереезжающий стек, сигнал SIGURG и жизнь горутины. Скоро…syscall, netpoll, полный круг планировщика и свежий Go Скоро…TL;DR…
Мне нужен был сервис, в котором должны были работать несколько разных алгоритмов. Часть математики я помнил, часть понимал поверхностно, часть собирался восстановить по ходу работы. Чтобы быстрее получить прототип, я подключил LLM к генерации бойлерплейта, интерфейсов и первых реализаций.Через несколько дней (говно)кода стало много — вменяемого сервиса не получилось.Один BFS принимал map[string][]string. DFS жил на другом типе графа. В одной реализации направленность задавалась на уровне графа,…
Объясню кэш через холодильник, а потом покажу, где эта аналогия ломается, и что с этим делают в проде.Статья для тех, кто кэш уже ставил, но не разбирался, почему он иногда роняет сервис вместо того, чтобы его ускорять.ХолодильникЗахотел есть — открыл холодильник, взял. Пара секунд. Это кэш: нужное лежит рядом.Холодильник пустой — идёшь в магазин. Одеться, дойти, очередь, обратно. Это запрос в базу: дальше, медленнее и дороже.Смысл кэша ровно в этом: то, что нужно часто, держим поближе.func (s …