🔬 Go-HEP — библиотеки и инструменты для анализа данных в физике высоких энергий
go-hep — это набор библиотек на языке Go, созданных для упрощения и ускорения HEP-анализа (High Energy Physics). Проект предоставляет всё необходимое, чтобы читать, обрабатывать и визуализировать физические данные — и всё это с помощью удобного, параллельного и надёжного кода на Go.
🧩 Что входит:
• Чтение/запись ROOT-файлов
• Построение гистограмм
• Event loop системы
• Матричные и векторные вычисления
• Нативная реализация на Go без C/C++-биндингов
📚 Документация: доступна через GoDoc
📬 Форум: ~sbinet/go-hep@lists.sr.ht
💡 Подробнее: [go-hep.org](https://go-hep.org)
🎯 Зачем это нужно:
Анализ данных в HEP требует мощных инструментов. Одно из ключевых условий — это работа с форматом ROOT. Go-HEP предоставляет этот уровень совместимости, позволяя встраивать свои анализы в существующие пайплайны HEP-сообщества.
⚡ Почему Go:
Go даёт:
• высокую скорость
• удобный параллелизм через goroutines
• развитую экосистему и простую поддержку CI/CD
• чистую архитектуру и масштабируемый код
🧠 Go-HEP позволяет физикам сосредоточиться на анализе, а не на инфраструктуре.
🔗 GitHub: github.com/go-hep/hep
📜 Лицензия: BSD-3
🤝 Как помочь: go-hep.org/contributing
#golang #HEP #science #physics #opensource
go-hep — это набор библиотек на языке Go, созданных для упрощения и ускорения HEP-анализа (High Energy Physics). Проект предоставляет всё необходимое, чтобы читать, обрабатывать и визуализировать физические данные — и всё это с помощью удобного, параллельного и надёжного кода на Go.
🧩 Что входит:
• Чтение/запись ROOT-файлов
• Построение гистограмм
• Event loop системы
• Матричные и векторные вычисления
• Нативная реализация на Go без C/C++-биндингов
📚 Документация: доступна через GoDoc
📬 Форум: ~sbinet/go-hep@lists.sr.ht
💡 Подробнее: [go-hep.org](https://go-hep.org)
🎯 Зачем это нужно:
Анализ данных в HEP требует мощных инструментов. Одно из ключевых условий — это работа с форматом ROOT. Go-HEP предоставляет этот уровень совместимости, позволяя встраивать свои анализы в существующие пайплайны HEP-сообщества.
⚡ Почему Go:
Go даёт:
• высокую скорость
• удобный параллелизм через goroutines
• развитую экосистему и простую поддержку CI/CD
• чистую архитектуру и масштабируемый код
🧠 Go-HEP позволяет физикам сосредоточиться на анализе, а не на инфраструктуре.
🔗 GitHub: github.com/go-hep/hep
📜 Лицензия: BSD-3
🤝 Как помочь: go-hep.org/contributing
#golang #HEP #science #physics #opensource
go-hep.org
Writing HEP software with ease and Go
❤9👍2🌚2
Forwarded from Golang
В релизе Go 1.25 представлена важная улучшенная логика работы
GOMAXPROCS
в контейнеризованных средах — например, в Kubernetes.Как это работает:
- Раньше по умолчанию
GOMAXPROCS
устанавливался равным числу логических CPU на хосте. - Теперь на Linux runtime автоматически учитывает CPU limits, заданные для контейнера. Если лимит меньше числа логических ядер —
GOMAXPROCS
устаналивается на уровне лимита. - Более того, runtime периодически обновляет
GOMAXPROCS
, если меняются доступные CPU или ограничения, без необходимости внешнего вмешательства. Почему это важно:
Ранее разработчикам приходилось использовать внешние решения вроде
uber-go/automaxprocs
, чтобы вручную синхронизировать GOMAXPROCS
с лимитами контейнера. Теперь runtime делает это автоматически и точнее: - Внутри контейнера Go не будет пытаться использовать все ядра хоста
- Уменьшаются лишние горутины, контекстные переключения и нагрузка на GC
Кратко: начиная с Go 1.25,
GOMAXPROCS
адаптируется под реальные CPU-ресурсы контейнера — без дополнительных усилий.📌 Подробности
@golang_google
#golang #Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤7
⚡ Or-channel паттерн в Go — мощный приём для работы с конкурентностью.
Он позволяет объединять несколько done-каналов в один общий.
Как только закрывается любой из входных каналов — автоматически закрывается и новый канал.
Такой подход даёт единый сигнал для завершения или отмены операции.
#golang
Он позволяет объединять несколько done-каналов в один общий.
Как только закрывается любой из входных каналов — автоматически закрывается и новый канал.
Такой подход даёт единый сигнал для завершения или отмены операции.
#golang
🔥20🥴14👍7❤5
📌 В Go есть два разных способа собирать пути, и это важно понимать:
👉 Нужно указать путь к файлу на диске?
Используй
Он сам подставит правильные разделители:
-
-
👉 Нужно собрать путь со слешами, например для URL?
Используй
Он всегда будет использовать
⚠️ На Linux оба варианта могут выглядеть одинаково, но на Windows результат будет другим.
#golang #go #programming #backend
👉 Нужно указать путь к файлу на диске?
Используй
filepath.Join
из пакета path/filepath
. Он сам подставит правильные разделители:
-
/
на Linux и macOS -
\
на Windows 👉 Нужно собрать путь со слешами, например для URL?
Используй
path.Join
из пакета path
. Он всегда будет использовать
/
и работать одинаково на всех ОС. ⚠️ На Linux оба варианта могут выглядеть одинаково, но на Windows результат будет другим.
#golang #go #programming #backend
👍19❤2
🔧 go-update-lens — библиотека на Go для обновления «линз» (lens) и реактивного патчинга данных в структурах
📌 Что умеет:
- Позволяет динамически изменять вложенные структуры без полной перезаписи
- Поддерживает создание “линз” - функциональный подход к фокусировке на части данных
- Работает “in-place”, минимизируя копирование и сохраняя производительность
🌟 Почему это полезно:
- Упрощает работу с вложенными структурами, когда нужно изменить лишь часть
- Особенно удобно в приложениях с состоянием и реактивными моделями
- Помогает избежать boilerplate-кода для обновления вложенных полей
🔗 Репозиторий: https://github.com/PatchLens/go-update-lens
#golang #architecture #library #data #update_ops
📌 Что умеет:
- Позволяет динамически изменять вложенные структуры без полной перезаписи
- Поддерживает создание “линз” - функциональный подход к фокусировке на части данных
- Работает “in-place”, минимизируя копирование и сохраняя производительность
🌟 Почему это полезно:
- Упрощает работу с вложенными структурами, когда нужно изменить лишь часть
- Особенно удобно в приложениях с состоянием и реактивными моделями
- Помогает избежать boilerplate-кода для обновления вложенных полей
🔗 Репозиторий: https://github.com/PatchLens/go-update-lens
#golang #architecture #library #data #update_ops