Недавно наткнулся на простенький Mqtt брокер написанный на Go, единственный минус который бросился в глаза это отсутствие масштабирования, но думаю это скоро поправят..
#mqtt #go
https://github.com/DrmagicE/gmqtt
#mqtt #go
https://github.com/DrmagicE/gmqtt
GitHub
GitHub - DrmagicE/gmqtt: Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x…
Gmqtt is a flexible, high-performance MQTT broker library that fully implements the MQTT protocol V3.x and V5 in golang - DrmagicE/gmqtt
Howto по использованию новую директиву go:embed, с помощью которой можно упаковывать файлы ресурсов в бинарник Go и появится она в Go 1.16.
#go #goembed
https://blog.carlmjohnson.net/post/2021/how-to-use-go-embed/
#go #goembed
https://blog.carlmjohnson.net/post/2021/how-to-use-go-embed/
blog.carlana.net
How to Use //go:embed
A how-to for embedding files and directories in Go applications
Ну и еще одно self-hosted решение Focalboard (https://www.focalboard.com/), которое является альтернативой для таких продуктов как Trello и Asana
#go #trello #selfhosted
#go #trello #selfhosted
В последнее время я увлёкся изучение вопроса ИБ и чтобы лучше разобраться в теме инжекта кода написал статью о том как это сделать в Linux.
#go #c #security #ld_preload
https://www.swe-notes.ru/post/ld-preload-golang/
#go #c #security #ld_preload
https://www.swe-notes.ru/post/ld-preload-golang/
www.swe-notes.ru
Замещение функций через LD_PRELOAD · Заметки разработчика
В статье описан способ замещения функций в готовых библиотеках c помощью С или Go
Обзорная статья патернов для конкуренции в Go, подойдёт для новичков
#go #concurrent #pattern
https://marksalpeter.com/concurrent-api-patterns-in-go-52fcb5a9c681
#go #concurrent #pattern
https://marksalpeter.com/concurrent-api-patterns-in-go-52fcb5a9c681
Интересная библиотека для формирования Web страниц на основе html компонентов, без написания собственно html...
#go #componetns
https://www.gomponents.com/
#go #componetns
https://www.gomponents.com/
Gomponents
gomponents, HTML components in pure Go
HTML components in pure Go, that render to HTML 5.
Большая статья о подводных камнях в "простом" языке Go.
#golang #go
https://rytisbiel.com/2021/03/06/darker-corners-of-go/
#golang #go
https://rytisbiel.com/2021/03/06/darker-corners-of-go/
Интересная статья о внутриностях работы len в go
#go #internal
https://tpaschalis.github.io/golang-len/
#go #internal
https://tpaschalis.github.io/golang-len/
tpaschalis.github.io
How does Go calculate len()..?
The impetus for this post was a question on the Gophers Slack a while back. A fellow developer wanted to know where to find more information on len.
Интересная статья о сравнении Go и С для встраиваемого приложения.
Если в кратце команда выбирала язык для создания приложения под кастомый образ Linux. В кандидатах были Go, C, C++ и в итоге ребята остановились на Go
#Go #C #embeded
Если в кратце команда выбирала язык для создания приложения под кастомый образ Linux. В кандидатах были Go, C, C++ и в итоге ребята остановились на Go
#Go #C #embeded
Stack Overflow Blog
Comparing Go vs. C in embedded applications
Impossibly tight deadlines, unrealistic schedules, and constant pressure to develop and release applications on time, while at the same time achieving excellent quality. Sound familiar?
Forwarded from Блог*
#prog #go #article
Understanding Real-World Concurrency Bugs in Go (PDF)
In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors.
<...>
Our study found that message passing does not necessarily make multithreaded programs less error-prone than shared memory. In fact, message passing is the main cause of blocking bugs.
<...>
We believe that message passing offers a clean form of inter-thread communication and can be useful in passing data and signals. But they are only useful if used correctly, which requires programmers to not only understand message passing mechanisms well but also other synchronization mechanisms of Go.
Надо отметить, что результаты могут быть искажены тем, что:
а) выборка только из шести проектов (Docker, Kubernetes, etcd, CockroachDB, BoltDB, gRPC-go);
б) рассматриваются только баги, которые были исправлены.
Understanding Real-World Concurrency Bugs in Go (PDF)
In this paper, we perform the first systematic study on concurrency bugs in real Go programs. We studied six popular Go software including Docker, Kubernetes, and gRPC. We analyzed 171 concurrency bugs in total, with more than half of them caused by non-traditional, Go-specific problems. Apart from root causes of these bugs, we also studied their fixes, performed experiments to reproduce them, and evaluated them with two publicly-available Go bug detectors.
<...>
Our study found that message passing does not necessarily make multithreaded programs less error-prone than shared memory. In fact, message passing is the main cause of blocking bugs.
<...>
We believe that message passing offers a clean form of inter-thread communication and can be useful in passing data and signals. But they are only useful if used correctly, which requires programmers to not only understand message passing mechanisms well but also other synchronization mechanisms of Go.
Надо отметить, что результаты могут быть искажены тем, что:
а) выборка только из шести проектов (Docker, Kubernetes, etcd, CockroachDB, BoltDB, gRPC-go);
б) рассматриваются только баги, которые были исправлены.
ACM Conferences
Understanding Real-World Concurrency Bugs in Go | Proceedings of the Twenty-Fourth International Conference on Architectural Support…
👍1
A 10x Faster TypeScript
MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.
#Go #js
MS решили переписать компилятор TypeScript переписали с TypeScript на Go и это дало уже дало ускорение в прототипе ~10 раз. По словам авторов Go выбран за оптимальное размещение структур в памяти, GC и удобный подход к concurrency.
#Go #js
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.