Цель этой библиотеки - предоставить простой, и беспроблемный способ запуска конвейеров машинного обучения Hugging face в ваших приложениях Go.
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Одна из интересных особенностей Go – это использование комментариев для управления компиляцией. Например, вот такая директива:
// +build !amd64
— это "обычный" комментарий в исходном коде, но его читает препроцессор и использует указание
+build
для того, чтобы определить платформу (всё, что не amd64
)Это, конечно, не какой-то там особенный и исключительный случай использования комментариев: вспомните что-нибудь типа
#!/usr/bin/perl
. Тем не менее, ситуация, когда содержание комментария непосредственно влияет на процесс сборки, всё же выглядит необычно.@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбираются такие штуки, как:
— Работа с
env
— Нюансы работы с командной строкой
— Работа с указателями
— Структуры
— Использование
defer
— ...и много всего ещё
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Давайте разберём такой супер-прикладной вопрос.
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
Проект, который предоставляет быстрый и простой способ создания каркаса 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
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
Библиотека Go для создания WhatsApp ботов для нескольких устройств.
▪Github
▪Docs
#golang
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Библиотека для управление логами, которая работает немного эффективнее, чем 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
Было опрошено 500 Go-разработчиков
Опрос затрагивает многие интересные вопросы:
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Известная валюта TON, связанная с Telegram, подобралась к $5.
Полезная статья для тех, кто активно работает с блокчейном TON.
В этой статье описывается:
▪Статья
▪Github
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM