golang українською
68 subscribers
9 photos
1 video
58 links
Telegram автора: @nesymno
Linkedin автора: bit.ly/nesymno-linkedin
Github каналу: bit.ly/uagolang-github
Download Telegram
Колеги, вітаю з черговою п'ятницею 👋

Статті під загрозою, дні 4 буду в перельотах по світу, буду старатись, але не обіцяю. Дуже втомлюють мене довгі доріжки 😄
Можливо, замість статті буде якась цікава задачка 😎

А сьогоднішня підбірка орієнтована на інструменти для роботи зі штучним інтелектом та машинним навчанням.

1️⃣ gorse - це open-source рекомендаційна система, написана на Go. Вона дозволяє швидко побудувати рекомендаційні моделі для ваших застосунків, підтримує різні алгоритми та має зручний API.

🔗 Репозиторій: https://github.com/gorse-io/gorse

2️⃣ golearn - бібліотека машинного навчання, написана повністю на Go. Реалізує різноманітні алгоритми, включаючи класифікацію (наприклад, дерева рішень, k-NN), регресію, кластеризацію (k-Means) та попередню обробку даних.

🔗 Репозиторій: https://github.com/sjwhitworth/golearn

3️⃣ parquet-go - реалізація формату Apache Parquet на Go. Вона надає засоби для читання та запису файлів Parquet, зосереджуючись на відповідності специфікації формату, продуктивності та зручності використання. Дозволяє ефективно взаємодіяти з колонковими даними, які широко використовуються в аналітиці та ML-пайплайнах для оптимізації зберігання та доступу до великих наборів даних.

🔗 Репозиторій: https://github.com/parquet-go/parquet-go

А з якими інструментами, що пов'язані з AI/DataScience використовували ви? І які задачі вирішували?

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Колеги, всіх вітаю! 🫡

Я в переїздах, дуже тяжко мені даються постійні перельоти, але знаєте що? Я дописав все ж таки статтю.

Отже, це продовження першої частини про контроль доступу за допомогою Casbin. Також, я написав невеличку бібліотеку, яка значно спростить вам життя, якщо ви плануєте використовувати Casbin.

Українською:
https://uagolang.notion.site/Casbin-Go-2-1dc0710a945c80aa98c5cd78fa12c376

English:
https://uagolang.notion.site/Casbin-access-control-in-Go-Part-2-1e80710a945c803da942fd578c73af33

Став 👍 якщо сподобався матеріал та коментуй як в останнє!
Слава Україні 🇺🇦🇺🇦

#авторське@uagolang #authz@uagolang #casbin@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Всім привіт, колеги!

Бачу, що до 100 підписників повземо повільно, але все ж повземо)
Пропоную заздалегідь обсудити, на яку тему потім зробити вебінар і я почну вже готуватись по трохи.

Можливо, я вже задавав це запитання, але варто освіжити памʼять. Пишіть, про що хотіли б поговорити. Я памʼятаю, що хтось пропонував гру зробити. Але мені не подобається ця ідея, бо вона не надто прикладна. Хотілось би розібрати якусь дійсно існуючу біль, з якою стикається багато гоферів у своїй повсякденній роботі.

———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
Доброго ранку, шановні колеги 👋

Нарешті ми дожили до п'ятниці, а отже, вже дуже скоро нас чекає відпочинок (надіюсь) і вихідні. Саме час для нової підбірки, чи не так? 😎

1⃣ cdipaolo/goml - бібліотека машинного навчання, написана повністю на Go. Містить чисті реалізації популярних алгоритмів (класифікація, регресія, кластеризація, тощо), корисна для простих ML-завдань без зовнішніх залежностей.

🔗 Репозиторій: https://github.com/cdipaolo/goml

2⃣ alecthomas/participle - бібліотека для створення парсерів текстових даних. Дозволяє визначати граматику мови або формату даних за допомогою Go-структур та тегів, а Participle автоматично генерує парсер. Чудово підходить для розбору конфігураційних файлів, логів, DSL (Domain-Specific Languages) або інших нестандартних текстових форматів.

🔗 Репозиторій: https://github.com/alecthomas/participle

3⃣ spf13/afero - пакет, що надає абстракцію файлової системи. Надає уніфікований інтерфейс для роботи з файловими системами, дозволяючи легко перемикатися між реальною ФС, in-memory ФС для тестування, або навіть кастомними реалізаціями (наприклад, для роботи з віртуальними ФС). Незамінний інструмент для тестування коду, що взаємодіє з файлами.

🔗 Репозиторій: https://github.com/spf13/afero

Ну, якось так :)

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Всім фізкульт-привіт, колеги! Є дуже цікава тема для статті. Я її напишу. Але, на жаль, практичного застосування їй не буде. Деталі згодом. Знаю… Сам розчарований 😩

Але тема дуже цікава, шкода-шкода…

———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👀4
Шановні колеги, радий всіх вас знову бачити 😎

Як і обіцяв, написав цікаву (надіюсь) статтю по темі, якій, на жаль, не судилось стати частиною нашої улюбленої гошки ☹️

Сьогодні ми розглянемо, що таке арени пам'яті, які вони мають плюси та мінуси, порівняємо їх з Rust Lifetimes, та зрозуміємо, чому їм ніколи не вийти в продакшн...

Українською:
https://uagolang.notion.site/Go-1f10710a945c8045adf5cb99ab590cbf

English:
https://uagolang.notion.site/Memory-Arenas-in-Go-failed-experiment-1f20710a945c8069b9e9ff11caa73992

Став 👍 якщо сподобався матеріал та коментуй як в останнє!
Слава Україні 🇺🇦🇺🇦

#авторське@uagolang #memory_arenas@uagolang #gc@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
П'ятниця-розвратниця 🙃

Шановні колеги, ми лишились живими цього тижня, а тому перед вихідними пропоную заварити чайок і глянути нову підбірку!

1⃣ traefik/yaegi - інтерпретатор Go, написаний на Go. Дозволяє виконувати Go-код під час виконання програми, інтегрувати скриптинг або динамічно завантажувати функціональність. Дуже потужний інструмент для плагін-систем чи кастомної логіки.

🔗 Репозиторій: https://github.com/traefik/yaegi

2⃣ loov/goda - інструмент для роботи із залежностями (Go-пакетів 😄). Дозволяє аналізувати структуру проєктів, знаходити залежності, та будувати їх графи. Дуже корисно для складного аналізу кодової бази та зовнішніх пакетів.

🔗 Репозиторій: https://github.com/loov/goda

3⃣ olekukonko/tablewriter - дозволяє красиво форматувати та виводити табличні дані в консоль або будь-який io.Writer. Підтримує різні стилі оформлення. Незамінна утиліта для CLI-інструментів, яким потрібно відображати структуровані дані.

🔗 Репозиторій: https://github.com/olekukonko/tablewriter

Всім бажаю гарних вихідних! Скоро побачимось!

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Всім привіт! Друзі, я захворів, тому на цьому тижні буде тільки підбірка. Вибачте, зовсім немає сил зараз :(
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
💊3👍2
Шановні колеги!

Всіх вітаю із завершенням робочого тижня. Я захворів і не дуже був у робочому стані, тому цього тижня вийшла тільки ця підбірка.

1⃣ google/go-cmp - бібліотека для глибокого порівняння Go-структур. Показує, чому саме об’єкти відрізняються. Особливо корисно в snapshot-тестах і when-debugging-hell.

🔗 Репозиторій: https://github.com/google/go-cmp

2⃣ cucumber/godog - BDD для Go. Якщо любиш Gherkin (Given-When-Then) або хочеш, щоб бізнес аналітик міг читати/писати тести - ця штука якраз те, що треба.

🔗 Репозиторій: https://github.com/cucumber/godog

3⃣ vektra/mockery - генератор моків на основі Go-інтерфейсів. Ідеально інтегрується з testify, працює просто і стабільно. Підтримує кастомні шаблони та автоматичну генерацію.

🔗 Репозиторій: https://github.com/vektra/mockery

Бажаю всім гарних вихідних! І не хворійте, це не прикольно 🫠

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Вітаю всіх знову, шановні колеги! ☺️

Мені вже трохи краще, а це означає, що пора повертатись в робочий ритм.

Сьогоднішня тема далеко не нова, але не менш важлива. В статті розберемось - що таке GC, для чого він потрібен. Чому розробники мови обрали саме такий варіант і як він працює під капотом?

Тема статті доволі банальна, але якщо я вже почав - потрібно розібрати кожен важливий аспект мови. Приємного прочитання, надіюсь, ви зачерпнете для себе чогось нового, або просто згадаєте деякі нюанси.

Українською:
https://uagolang.notion.site/GC-Go-2000710a945c801e83becd96ddb99ba4

English:
https://uagolang.notion.site/Non-ideality-doesn-t-mean-inefficiency-GC-in-Go-2000710a945c802cae6bd6bf8226b3e2

Став 👍 якщо сподобався матеріал та коментуй як в останнє!
Слава Україні 🇺🇦🇺🇦

#авторське@uagolang #gc@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Колеги, всіх вітаю з останньою п'ятницею весни! 🍊

Вже за пару днів починається літо. Але, на жаль, лише в календарі та на душі.
Погодка ще досі (як на мене) не зовсім літня. Радує тільки одне - я знову в Україні!

Ліричний відступ закінчено 🐤🐤🐤

Сьогодні вирішив зробити підбірку з інструментами для скрепінгу даних та web-емуляції. Поїхали!

1⃣ gocolly/colly - дуже потіжний інструмент для скрепінгу в Go. Простий у використанні, але має все необхідне для якісного відпрацювання - cookies, rate-limit, проксі, парсинг HTML-елементів. Використовував в продакшені, і вам раджу, якщо є необхідність.

🔗 Репозиторій: https://github.com/gocolly/colly

2⃣ go-rod/rod - потужний headless-браузер, що має дуже зручний API, підтримує інтеракції, PDF/скріншоти, емулювання мобільних пристроїв. Якщо ви працювали з Puppeteer на JS, то це дуже непогана альтернатива на Go.

🔗 Репозиторій: https://github.com/go-rod/rod

3⃣ asciimoo/wuzz - CLI-утиліта для HTTP-запитів, але в неї можна зазичити приклади роботи з HTTP і парсингом, або обгорнути в Go-сценарій. Дуже корисний пакет для дебагу скреперів.

🔗 Репозиторій: https://github.com/asciimoo/wuzz

На цьому все! Бажаю вам сонячних і теплих (нарешті) літніх днів!
Не пийте багато холодної кави і вина! Тільки трошки 👌

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6
Всім доброго дня, шановні колеги! 😐

Скоро на мене чекатиме дуже цікава задача! 🎶
Буду контриб'ютити AWS контролери для k8s, а саме для сервісу Bedrock.

Ця робота пов'язана з моєю основною діяльність - стартапом у сфері управління k8s інфраструктурою. Так як наразі сам AWS не має повного покриття для Bedrock - будемо реалізовувати його самі для того, щоб автоматизувати розгортання та налаштування АІ інфраструктури в пару кліків.

Але більше деталей, поки що, надати не можу. Лише запевнити - буде цікаво! 🍊🍊🍊

Stay tuned! ❗️

#announce@uagolang #aws@uagolang #ai@uagolang #k8s_operators@uagolang #bedrock_aws@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Всіх вітаю! Надіюсь, цю ніч всі пережили нормально, йобана русня не дала поспати вночі 😈

Перша літня п'ятнична підбірка включатиме наступні пакети 😒

1⃣ go-nsq - легка розподілена система обміну повідомленнями в реальному часі. Ідеально підходить для побудови асинхронних сервісів та event-driven архітектури без потреби в Kafka чи RabbitMQ.

📦 https://github.com/nsqio/go-nsq

2⃣ tunny - пул воркерів для контролю паралельного виконання горутин. Дозволяє обмежити навантаження на систему, ефективно використовуючи ресурси.

📦 https://github.com/Jeffail/tunny

3⃣ goleak - інструмент від uber для виявлення витоків горутин у тестах. Прекрасно інтегрується з testing.T і допомагає зловити недозакриті ресурси.

📦 https://github.com/uber-go/goleak

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Всім привіт! Знаю, вже давно не було від мене новин, дуже зараз напряжний момент життя в мене. Стартап над яким ми з командою працювали останні півтора роки, нарешті, вийшов в продакшн, підключили першого клієнта! З цим можете привітати.

Але є і демотивуючі речі, я трохи приунив і не знаходжу сил писати статті кожного тижня. Як тільки трохи стабілізуюсь - все відновиться. Вибачте, надіюсь, зрозумієте мене 🫡
🎉11
Всім привіт! Стараюсь по трохи входити в робочий ритм 😒

До написання статей ще не добрався, але приніс вам іншу цікавинку.
Знаєте ви чи ні, але в серпні планується реліз Go 1.25!

Багато цікавих штук завезли:

🕒 Синтетичний час для тестів - пакет synctest тепер стабільний - тестуйте таймаути без очікування реального часу. Створює "бульбашки", де час стрибає миттєво.

📋 JSON v2 - повністю переписаний JSON пакет з підтримкою кастомних маршалерів для одного типу.

🐳 Контейнер-свідомий GOMAXPROCS - Go тепер автоматично враховує CPU ліміти Docker/Kubernetes контейнерів. Якщо контейнер має 4 CPU - GOMAXPROCS буде 4, а не 8, якщо, наприклад, на машині 8 ядер.

🗑 Green Tea GC - експериментальний збирач сміття для програм з багатьма малими об'єктами. Перші бенчмарки показали зменшення накладних витрат GC на 10-40%!

🛡 Захист від CSRF - вбудований http.CrossOriginProtection для захисту від міжсайтових атак. Автоматично перевіряє заголовки та блокує підозрілі запити.

WaitGroup.Go() - нарешті додали очевидний метод wg.Go(func(){}) замість wg.Add(1) + go func() + defer wg.Done(). Після 13 років!

✈️ Flight Recording - новий trace.FlightRecorder записує ковзне вікно виконання програми. Ідеально для ловлі рідкісних багів та проблем продуктивності.

📁 Більше методів os.Root - додано купу методів: Chmod, WriteFile, MkdirAll та інші. Тепер os.Root майже повноцінна заміна пакету os.

🔍 reflect.TypeAssertT - типобезпечне перетворення reflect.Value без боксингу в interface{}. Швидше та зручніше ніж старий спосіб.

🧪 Атрибути тестів - t.Attr("issue", "PROJ-123") для додавання метаданих до тестів. Корисно для CI систем та аналізу результатів.

📊 slog.GroupAttrs() - можна створювати групи атрибутів зі слайсів slog.Attr. Вирішує проблему з slog.Group().

🔐 hash.Cloner - всі хеш-функції тепер можна клонувати для ефективного обчислення зі спільними префіксами.

Став 👍 якщо сподобався матеріал!
Слава Україні 🇺🇦🇺🇦

#release_notes@uagolang #go1_25@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Надіюсь, всі живі здорові. Я тут пережив під 50 прильотів за останні декілька годин… такого піздєца ще не було!
😢71
фальш-старт, сорі)
опитування буде завтра зранку
Всім доброго ранку! Хтось користується neoVim?
Мене дуже мотивує мій колега, дуже жорсткий тіп)
Коли ми сидимо на колі, я просто кайфую, коли наблюдаю його роботу в ньому.
Так, доведеться під вчитись, але думаю воно того варте.
І, що не менш важливо, neoVim вимагає НАБАГАТО менше ресурсів комп'ютера.

Діліться, хто якими IDE користується?
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
Всім привіт! П’ятниця прийшла, а разом з нею - свіжа трійка корисних Go-пакетів, з якими можна трохи покопатися у вихідні ☕️💻

1⃣ semver - бібліотека для роботи з SemVer. Дозволяє парсити, порівнювати та валідувати версії. Часто використовується в системах керування залежностями або автоматичного оновлення.

📦 https://github.com/Masterminds/semver

2⃣ mcp-golang - бібліотека для побудови інструментів із підтримкою MCP-протоколу, що забезпечує type safety через опис аргументів у вигляді Go-структур, автоматичну генерацію схем, обробку помилок і десеріалізацію. Підтримує кастомні транспорти, зокрема stdio та HTTP, та дозволяє будувати як клієнти, так і сервери з мінімумом boilerplate-коду. Складається з модульних компонентів, які можна використовувати окремо: транспорт, протокол, клієнт/сервер.

📦 https://github.com/metoro-io/mcp-golang

3⃣ Gokapi - легкий self-hosted сервіс для обміну файлами з CLI і браузера. Написаний на Go, підтримує токени, TTL, розміри файлів. Можна використовувати AWS S3 для зберігання файлів. Чудово підійде для невеликих команд, яким потрібно шерити документацію, і які цінують приватність.

📦 https://github.com/Forceu/Gokapi

Став 👍 якщо сподобався матеріал!

Слава Україні 🇺🇦
Смерть ворогам 🖕🐖

#підбірки@uagolang #friday3@uagolang
———————
golang українською
🇺🇦
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3