Skip to content
Snippets Groups Projects

add fosdem 2024 notes

Merged Axel Prel requested to merge topic/default/axel-fosdem into branch/default
1 unresolved thread
+ 73
5
@@ -46,7 +46,7 @@
## Learning from livesaving communities
[Learning from disaster response teams to save the internet](https://fosdem.org/2024/schedule/event/fosdem-2024-3553-learning-from-disaster-response-teams-to-save-the-internet/)
> [Learning from disaster response teams to save the internet](https://fosdem.org/2024/schedule/event/fosdem-2024-3553-learning-from-disaster-response-teams-to-save-the-internet/)
Great motiviational talk, makes one want to contribute even more to FOSS!
@@ -192,10 +192,16 @@
Many nice talks in the [Go track](https://fosdem.org/2024/schedule/track/go/), here follow notes on some we attended.
### golang fuzz-tests
### The state of go
> [The state of go](https://fosdem.org/2024/schedule/event/fosdem-2024-1681-the-state-of-go/)
Like each year, a summary of what's next in the language. This year thez went through all the new stuff in go 1.21 that is released from some time now, and they also talked about go 1.22 that will release soon (at this date of 2024-02-08)
### Golang fuzz-tests
> [Effortless Bug Hunting with Differential Fuzzing](https://fosdem.org/2024/schedule/event/fosdem-2024-1927-effortless-bug-hunting-with-differential-fuzzing/)
oss-fuzz project
asserts: usually no asserts in fuzz tests (just making sure no crashes) except environmental / basic error/success
diff fuzzing: 1 input -> 2 implementations -> check for disagreement
@@ -196,8 +202,13 @@
> [Effortless Bug Hunting with Differential Fuzzing](https://fosdem.org/2024/schedule/event/fosdem-2024-1927-effortless-bug-hunting-with-differential-fuzzing/)
oss-fuzz project
asserts: usually no asserts in fuzz tests (just making sure no crashes) except environmental / basic error/success
diff fuzzing: 1 input -> 2 implementations -> check for disagreement
ex diff fuzz between go stdlib htmltokenizer vs lexbor (apache C lib)
ex diff fuzz between go stdlib htmltokenizer vs lexbor (apache C lib)
Like said above, the two only ways a fuzz test can make asserts is when:
- you have two implementations of the same function (when you refactor or optimize your code for example)
- your function is reversible and you have the reversed function on hand (serializers, mappers, marshallers, etc..) -> f-1(f(x)) = x
@@ -203,8 +214,16 @@
### fyne
### The secret life of a goroutine
> [The secret life of a goroutine](https://fosdem.org/2024/schedule/event/fosdem-2024-1704-the-secret-life-of-a-goroutine/)
Goroutines is how Golang runs stuff in parallel.
This talk was very eye-opening for someone like me, how has been using Go fors a few years but also went through goroutine based errors frequently.
Now that I understand how goroutines are created, killed, and what their status acutally mean and how it changes, it will be much easier to deal with them while coding.
### Fyne
> [Building Cross-platform GUI apps with ease (and Go) - desktop, mobile and beyond!](https://fosdem.org/2024/schedule/event/fosdem-2024-2631-building-cross-platform-gui-apps-with-ease-and-go-desktop-mobile-and-beyond-/)
Not in the Go track per se, but still about Go! 🙃
go gui lib
@@ -205,7 +224,56 @@
> [Building Cross-platform GUI apps with ease (and Go) - desktop, mobile and beyond!](https://fosdem.org/2024/schedule/event/fosdem-2024-2631-building-cross-platform-gui-apps-with-ease-and-go-desktop-mobile-and-beyond-/)
Not in the Go track per se, but still about Go! 🙃
go gui lib
founder learnt go after starting fyne, had gui lib concept before picking lang
founder learnt go after starting fyne, had gui lib concept before picking lang
The idea of Fyne is to create another low-code web interface language, but in Golang.
The stack created for this purpose is very impressive:
- FyneLabs, low code interface builder
- FyshOS, linux based OS based on Fyne
Cross-building your apps is very easy (mobile, pc)
### GoReleaser
> [Putting an end to Makefiles in go projects with GoReleaser](https://fosdem.org/2024/schedule/event/fosdem-2024-1853-putting-an-end-to-makefiles-in-go-projects-with-goreleaser/)
> [github](https://github.com/goreleaser/goreleaser)
in most of our golang-project we use either Makefile or Taskfile, where we define project-specific commands.
What Goreleaser has that those two don't have:
- no need to define general variables like VERSION or TAG, Goreleaser does it for us
- cross-build on differents OS, mobile, windows, linux, is very easy
- also very easy to build, push images, post on socials using Goreleaser
However, there might be issues integrating Goreleaser in Mercurial Hg versionned projects
### REST in peace
> [REST in Peace: using generics to remove REST boilerplate](https://fosdem.org/2024/schedule/event/fosdem-2024-2568-rest-in-peace-using-generics-to-remove-rest-boilerplate/)
> [github](https://github.com/dolanor/rip)
with REST and go-swagger, that we use on most of our go-powered APIs, it's already
quite simple to make an API from scratch using code generation
REST in peace (rip) tries to go beyond that. one line of code will be able to generate basic CRUD (create, read, update, delete) for your golang models.
Christophe said that this implementation is very interesting but too restrictive for our needs. but still, it's a project to be on the lookout for.
### Golang powered games
> [Creating a multiplayer game in Go, from zero](https://fosdem.org/2024/schedule/event/fosdem-2024-1886-creating-a-multiplayer-game-in-go-from-zero/)
> [go 2D engine](https://github.com/hajimehoshi/ebiten)
### Golang powered MIDI
> [Having fun with MIDI and Go](https://fosdem.org/2024/schedule/event/fosdem-2024-2492--replacement-talk-having-fun-with-midi-and-go/)
This was a last minute replacement talk so the slides are a bit rough.
Loading