Цель этой библиотеки - предоставить простой, и беспроблемный способ запуска конвейеров машинного обучения Hugging face в ваших приложениях Go.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3❤2
Одна из интересных особенностей Go – это использование комментариев для управления компиляцией. Например, вот такая директива:
// +build !amd64
— это "обычный" комментарий в исходном коде, но его читает препроцессор и использует указание
+build
для того, чтобы определить платформу (всё, что не amd64
)Это, конечно, не какой-то там особенный и исключительный случай использования комментариев: вспомните что-нибудь типа
#!/usr/bin/perl
. Тем не менее, ситуация, когда содержание комментария непосредственно влияет на процесс сборки, всё же выглядит необычно.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14👎9❤4🔥2🤯1
Разбираются такие штуки, как:
— Работа с
env
— Нюансы работы с командной строкой
— Работа с указателями
— Структуры
— Использование
defer
— ...и много всего ещё
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤5🔥4
Давайте разберём такой супер-прикладной вопрос.
python-telegram-bot
называется ConversationHandler
'ы. Они уже реализованы как дополнение к пакету: https://github.com/and3rson/telemux?tab=readme-ov-fileВыглядеть будет примерно так:
mux := tm.NewMux().
AddHandler(tm.NewCommandHandler(
"start",
func(u *tm.Update) {
bot.Send(tgbotapi.NewMessage(u.Message.Chat.ID, "Hello! Say something. :)"))
},
)).
AddHandler(tm.NewHandler(
tm.Any(),
func(u *tm.Update) {
bot.Send(tgbotapi.NewMessage(u.Message.Chat.ID, "You said: "+u.Message.Text))
},
))
— Соотносишь команду с хендлером
— Хендлеры заносишь в мапу по ключу команды
— При получении команды от пользователя проверяешь ее наличие в мапе и вызываешь метод хендлера, в который можешь передать ответ и обработать как тебе нужно
Как-то так ¯\_(ツ)_/¯
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤6🔥5
Проект, который предоставляет быстрый и простой способ создания каркаса http-сервера Go.
Технический стек, включенный в это проект, включает Go, HTML, Temple и Tailwind.
git clone https://github.com/phillip-england/templ-quickstart <target-directory>
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Разработчикам, использующим пакет, придется вводить его имя каждый раз, когда они вызывают функцию из этого пакета. (Вспомните
fmt.Printf
, fmt.Println
, fmt.Print
и т. д.) Чтобы не возникало проблем, при выборе имен пакетов следует соблюдать несколько правил:
fmt
).strconv
).(Например, если бы пакет
fmt
назывался format
, то импорт этого пакета создавал бы риск конфликта с локальной переменной format
)@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤7🔥4😢1
Библиотека Go для создания WhatsApp ботов для нескольких устройств.
▪Github
▪Docs
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4❤3
Библиотека для управление логами, которая работает немного эффективнее, чем Splunk .
Разработчикам приходится перебирать различные инструменты для ведения журналов, метрик, трассировок
Splunk, DataDog, New Relic стоят дорого 💸 💸 💸
ElasticSearch требует много машин, обслуживание кластера несет сложности 👩 💻 👩 💻
Grafana Loki имеет низкую производительность запросов 🐌 🐌
Всего оддин двоичный файл, который вы можете запустить на своем ноутбуке и обрабатывать 8 ТБАЙТ в день.
▪Поддерживает: Open Telemetry, Elastic, Splunk HEC, Loki
▪Поддерживает несколько языков запросов: Splunk SPL, SQL и Loki LogQL
▪Простая архитектура,
▪Легко начать работу.
🔗 GIthub
🔗 Docs
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥40👍5❤4🥰1
Было опрошено 500 Go-разработчиков
Опрос затрагивает многие интересные вопросы:
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥2🎉1
Forwarded from DevOps Docker
Схема взаимодействия контейнерных технологий в рамках работы с привычными инструментами может быть представлена так:
podman
с помощью Libpod API обращается к библиотеке libpod
, которая вызывает низкоуровневый container runtime
(по умолчанию утилиту runc
)containers/podman
Podman Commands
docker
с помощью Docker API вызывает сервис dockerd
docker/cli
Docker CLI reference
Docker architecture
Docker API
dockerd
вызывает сервис containerd
Dockerd reference
containerd
вызывает низкоуровневый container runtime
(по умолчанию утилиту runc
)containerd/containerd
Containerd Scope and principles
kubelet
с помощью протокола CRI вызывает сервис container runtime
(например, containerd
или crio
)Container Runtime Interface
Container Runtimes
CRI: the Container Runtime Interface
containerd
вызывает низкоуровневый container runtime
(по умолчанию runc
)Containerd CRI
cri-o
вызывает низкоуровневый container runtime
(по умолчанию runc
)cri-o/cri-o
container runtime
(по умолчанию runc
):runc
с помощью библиотеки libcontainer
создает контейнер по runtime-spec
, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces
) и контрольными группами (cgroups
)opencontainers/runc
runc man
opencontainers/runc/libcontainer
crun
создает контейнер по runtime-spec
, взаимодействуя с подсистемами ядра Linux – пространствами имен (namespaces
) и контрольными группами (cgroups
)containers/crun
Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤4🔥3